Подтвердить что ты не робот

Как расширить элементы IntelliSense?

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

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

Фон:

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

Edit:

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

4b9b3361

Ответ 1

Это, безусловно, можно сделать с помощью создания плагина ReSharper.

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

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

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

Ответ 2

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

Вы должны взглянуть на Создание и использование фрагментов кода IntelliSense и решить, является ли это то, что вы ищете. Этот question на programers.stockexchange также может быть полезен. Этот question также кажется схожим, что предполагает CSharpIntellisensePresenter (бесплатно).

Ответ 3

Возможно, вам могут помочь ReSharper Live Templates (ReSharper- > Live Templates...).