ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
92936 Топик полностью
Evgeny_CD (30.06.2007 13:14, просмотров: 1) ответил AD на И получается жесткая привязка к конкретному редактору
Да Вы чего? Как раз независимость от редактора полная! Еще раз алгоритим. Встаю курсором на комент вида /** AFDE-01 **/ (например, на сам идентификатор). Запускаю макрос в редакторе. Он берет слово, на котором стоит курсор, и вызвывает тулзу, передавая ей в качестве параметра это слово (ну еще чего, если вдруг надо, например, имя файла и номер строки - чтобы тулзе меньше парсить пришлось). тулза берет этот ID, шарится по базе, и выводит список сущностей, связанных с этим ID. Выбираем их из лист бокса, enter, и сущность открывается. Т.е. в идеале у меня открыт текстовый редактор, небольшое окно тулзы, и окно, куда выводится информация. Это может быть другой instanсe того же редактора, другое окно его же, Acrobat Reader, браузер какой-нибудь и т.д. Важно 1. Информация, связанная с метой, может быть любая. Абсолютно!!! 2. Требовать, чтобы _текстовый_ редактор занимался отображением произвольной ифонрмации - забивать микроскопом гвозди. Таким образом, требования к скриптовому языку редактора - минимальные. Он должен уметь запустить system() с параметрами командной строки, и прочитать вывод в поток, который делает внешная консольная прога. Ну и простейшие операции по манипуляциями с текстом - типа вставить string от позиции курсора, в конец строки и т.д. В моем понимании, любой программистский редактор это должен умет делать. Тулза - это постоянно запущенная прога, которая имеет свое окно. Она имеет сокетный интерефейс управления (типа встроенного телнетного свервера). Есть посредник - простенькая утилитка, которая читает параметры командной строки, открывает сокет на locahost, сует их туда, читает, и загоняет выход из сокета в stdout. Для удобства работы тулза хранит историю обращения юзера, чтобы можно было повторно смотреть найденное. Теперь как работает обратный вызов - из тулзы в редактор. В окне тулзы мы находим нечто, с чем хотим разобраться в редакторе. Жмем батон - типа жди обращения и передай инфу. Alt-Tab в редактор. В редакторе запускаем макрос. Он читает через посредника имя файла, номер строки, может, даже номер позиции, и открывает небходимый нам файл, и позифионирует курсор. Опять же, полная совместимость во всем на свете.