Как мне реализовать intellisense для моего языка в visual studio?
Я упоминаю, что я проектирую язык. План всегда заключался не в том, чтобы реализовать его, а в том, чтобы спроектировать его, но я рассматриваю возможность его реализации, если думаю, что смогу сделать это в разумные сроки.
Как бы я мог использовать мой язык intellisense в визуальных студиях? У BooLangStudio есть это http://www.codinginstinct.com/2008/05/boo-in-visual-studio.html, http://www.codeplex.com/BooLangStudio
3 ответа
Все зависит от того, сколько времени вы хотите на это потратить. У меня есть около 2000 часов работы в моих проектах Visual Studio IntelliSense, в результате чего получается ровно одна, в основном, полная языковая служба. Тем не менее, это не ваше "среднее" расширение IntelliSense для Visual Studio - см. Набор функций для получения дополнительной информации.
Вот несколько хороших ресурсов для просмотра. Я склонен писать с предположением, что пользователи уже знакомы как с основами расширяемости Visual Studio, так и с разбором ANTLR. Если нет, вам, вероятно, следует начать с http://www.antlr.org/ и с моего "порта ANTLR" одного из простых учебных пособий по языковой службе Visual Studio.
Вот несколько сообщений, показывающих, насколько серьезно я отношусь к этой теме.:D
- Как работает завершение кода?
- Смарт-завершение кода оригинальное и пересмотренное. Понятно, что я отношусь к последним более серьезно, чем к другим людям (проголосовавшим за или против за то, что закрыли?!), но я считаю, что это просто дает моим пользователям лучший продукт.:)
- Высокоскоростной пошаговый лексинг для выделения синтаксиса оригинала (под лексерами, удобными для IScanner), очищен (значительно - значительно предпочтительнее оригинала) и снова увеличен в 6 раз в 1/4 памяти.
- Маленькие вещи, такие как здравое комментирование / раскомментирование и сопоставление скобок, имеют значение. Кстати, после того, как вы используете один, который хорошо себя ведет, другие (в том числе для некоторых языков Microsoft в Visual Studio) довольно раздражают.
- Если можете, прочитайте все посты, связанные с IntelliSense, в моем блоге.
- Умный отступ - это PITA (я имею в виду действительно умный, например, языковая служба C# в VS2008). У меня есть отношения любви / ненависти с этим. Теперь я раздражен, потому что написание этой пули заставило меня задуматься об этом. Argh. Мое понимание здесь заставляет меня немного прощать, что они ломают его для VS2010 Beta 1, но это не мешает мне не упустить его удивительность.
PS: теперь я могу создать подсветку синтаксиса для нового языка, комментирующего / раскомментирующего за 1 день. В тот же день я также могу включить панель типов и членов.
По состоянию на 4-4-2017: В этой статье, кажется, даны все основы для создания языкового расширения, которое включает выделение слов и обеспечение intellisense (завершение кода).
https://code.visualstudio.com/docs/extensions/example-language-server