Как я могу найти все пустые попытки... кроме блоков с GExperts grep?

В новых версиях GExperts утилита grep теперь поддерживает больше "экспертных" выражений.

Я еще не нашел способ найти пустую попытку... кроме блоков в источниках Delphi с использованием регулярных выражений, как я могу сделать это с помощью инструмента grep GExperts?

2 ответа

Решение

Я сомневаюсь, что функциональность GExperts Regex позволяет искать за пределами разделителей строк.

Если вы не возражаете против использования компонента, такого как TPerlRegEx, следующий код должен помочь вам начать свой собственный поиск.

var
  emptyExceptBlock: TPerlRegEx;
  Results: TStringList;

emptyExceptBlock := TPerlRegEx.Create(nil);
emptyExceptBlock.RegEx := except\s+((//.*|/\*.*\*/|\(\*.*\*\))\s+)*end;
emptyExceptBlock.Options := [preExtended];
emptyExceptBlock.Subject := LoadFromFile('YourFile.pas');
Results := TStringList.Create;
if emptyExceptBlock.Match then begin
    repeat
        Results.Add(emptyExceptBlock.MatchedExpression);
    until not emptyExceptBlock.MatchAgain;
end;

Существует инструмент под названием Insert Auto Todo (который не является частью GExperts, я думаю, что я получил его от CodeCentral), который автоматически вставляет задачи в пустые блоки начала / конца. Может быть, это то, что вы хотите?

Другие вопросы по тегам