Все зависит от того, сколько времени вы хотите на это потратить. У меня около 2000 часов работы в моих проектах Visual Studio IntelliSense, в результате чего я получаю ровно одну в основном полную языковую службу. Тем не менее, это не ваше «среднее» расширение IntelliSense для Visual Studio - см. Набор функций для получения дополнительной информации .
Вот несколько хороших ресурсов для просмотра. Я склонен писать с предположением, что пользователи уже знакомы как с основами расширяемости Visual Studio, так и с разбором ANTLR. Если это не так, вам, вероятно, стоит начать с www.antlr.org и с моим "портом ANTLR" одного из простых руководств по языковой службе Visual Studio .
Вот несколько сообщений, показывающих, насколько серьезно я отношусь к этой теме. : D
- Как работает завершение кода?
- Интеллектуальное завершение кода оригинал и повторно . Ясно, что я отношусь к последним более серьезно, чем к другим людям (голосовали против и за закрытие ?!), но я считаю, что это просто дает моим пользователям лучший продукт. :)
- Высокоскоростной пошаговый лексинг для подсветки синтаксиса оригинал (под лексерами, поддерживающими IScanner) , очищен (значительно - гораздо предпочтительнее оригинала) , и сделан пока снова в 6 раз быстрее в 1/4 памяти .
- Такие мелочи, как вменяемые комментарии / раскомментирование и соответствие скобок действительно имеют значение. Напомним, что после того, как вы используете один, который хорошо себя ведет, другие (в том числе для некоторых языков Microsoft в Visual Studio) довольно раздражают.
- Если можете, прочитайте все сообщения, связанные с IntelliSense, в моем блоге.
- Умный отступ - это PITA (я имею в виду действительно умный, например, языковая служба C # в VS2008). У меня есть отношения любви / ненависти с этим. Теперь я раздражен, потому что написание этой пули заставило меня задуматься об этом. Argh. Мое понимание здесь заставляет меня немного прощать, что они ломают его для VS2010 Beta 1, но это не мешает мне не упустить его удивительность.
PS: теперь я могу создать подсветку синтаксиса для нового языка, комментирующего / раскомментирующего за 1 день. В тот же день я также могу включить панель типов и элементов.