Доработал механизм идентификации процедур/функций, в которых найдено совпадение:
* как писал выше, отвязался (возможно, только временно) от SyntaxAnalysis в пользу анализа строк на начало/конец метода по мере поиска;
* вместе с этим решил проблему с идентификацией методов в ситуациях, когда часть объявления параметров перенесена на новую строку (решена проблема только для частной ситуации поиска, в SyntaxAnalasis проблема пока не решена, т.к. там решение требуется полноценное):
Код:
Процедура ИмяПроцедуры (Парам1, Парам2,
Парам3, Парам 4)
//...
КонецПроцедуры
* Тип метода (процедура/функция) отображается в виде соответствующих пиктограмм.
Вот как это выглядит теперь:
Вложение:
extSearch-methods.jpg [ 73.58 КБ | Просмотров: 9370 ]
Экспериментально добавил возможность группировки результатов поиска по процедурам/функциям:
Вложение:
extSearch-groupings.jpg [ 57.15 КБ | Просмотров: 9370 ]
Включается кнопкой на командной панели. Режим дерево/список переключается налету, выбранный режим сохраняется между сеансами.
P.S.
Проблема идентификации метода в случае, когда ключевое слово Функция/Процедура и ИмяМетода - на разных строках не решена и честно говоря, мне не хочется решать ее на регулярках. К счастью, такие случаи объявления встречаются редко (я вообще не помню, чтобы мне встречалось), поэтому серьезных проблем отсутствие обработки такого случая не должно вызывать.