Как расширить предметы IntelliSense? - PullRequest
16 голосов
/ 03 февраля 2012

Я хотел бы вручную расширить список IntelliSense различными пунктами. Я хочу нести ответственность за действие, вызванное элементом (т.е. завершение кода и информация всплывающей подсказки). Неважно, какие предметы.

Возможно ли это с надстройкой VisualStudio, ReSharper / DXCore или любым другим плагином?

Справочная информация:

Некоторые из вас могут знать FOP (функционально-ориентированное программирование). FOP потребует различных изменений в intellisense и поведении редактора.

Edit:

Еще один интересный пост .

Ответы [ 3 ]

16 голосов
/ 10 февраля 2012

Это определенно легко сделать, если написать плагин ReSharper .

  • Начните с реализации ICodeCompletionItemsProvider, которая обеспечит дополнительные элементы IntelliSense. Самый простой способ - наследовать от ItemsProviderOfSpecificContext<TContext>TContext, равным CSharpCodeCompletionContext, если вы заинтересованы в завершении кода C #).

  • Ваш провайдер добавит дополнительные элементы в реализацию AddLookupItems(). У вас есть возможность предоставить пользовательскую реализацию ILookupItem здесь: метод Accept() этого интерфейса будет вызван, когда пользователь выберет элемент во всплывающем окне завершения. Вот ваш шанс выполнить код, который вам нужен.

Обратите внимание, что эта информация относится к R # 6.1 / 7.0. Я не думаю, что это сильно отличается в предыдущих версиях, хотя. Очевидно, что для этого нужно включить ReSharper IntelliSense вместо Visual Studio IntelliSense.

3 голосов
/ 06 февраля 2012

Пользовательский XML-редактор intelliSense для VS2010 можно добавить, поместив пользовательские xsd-файлы в папку C:\Program Files\Microsoft Visual Studio 10.0\Xml\Schemas, но, думаю, вы ищете что-то еще.Создание и использование фрагментов кода IntelliSense и решите, является ли это тем, что вы ищете. Этот вопрос для программистов.stockexchange также может быть полезен.Этот вопрос также кажется похожим, что предполагает CSharpIntellisensePresenter (бесплатно).

0 голосов
/ 08 февраля 2012

Может быть, вам пригодятся живые шаблоны ReSharper (ReSharper-> Live Templates ...).

...