[IDE] Добавил поддержку пользовательской навигации по коду
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.08.10 02:45
Оценка:
Теперь любой макрос может поместив в typeBuilder.UserData["GoToInfoMap"] хэш-таблицу типа Hashtable[Location, Location], обеспечить поддержку "навигации к определению" (Go To Defenition) для произвольного кода. Первый Location (ключ) — это локейшон области в которой должна срабатывать навигация. Второй локейшон — это локешон куда должен переместиться курсор при выборе пункта контекстного меню "Go To Defenition".

Это позволяет макросам задавать собственные правила навигации к определениям.

Я реализовал эту фичу для макроса PegGrammar. Теперь в нем можно выделить ссылку на правило, выбрать из контекстного меню пункт "Go To Defenition" и курсор переместится к соответствующему правилу.

Если пункт контекстного меню "Go To Defenition" выбрать на имени правила, курсор переместится к методу-обработчику.

Если пункт контекстного меню "Go To Defenition" выбрать на имени метода-обработчика, курсор переместится на определение соответствующего правила.

ЗЫ

Остается реализовать аналогичную поддержку для "Go To Reference". Так же, возможно, имеет смысл сделать поддержку пользовательского автодополнения при вводе и пользовательских хинтов. Тогда к хитрым ДСЛ-ям вроде грамматики в PegGrammar можно будет приделать практически полную поддержку интеллисенса. При этом не придется ничего хардкодить, так как поддержка будет универсальной.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.