Я хотел бы записать плагин для Visual Studio 2010, но на самом деле я сталкиваюсь с некоторыми проблемами. То, что я хочу сделать, кажется легким, я хотел бы ту небольшую панель инструментов, появляется при выборе текста в редакторе кода как в Resharper (мало пера с меню, которое помогает в рефакторинге), или как здесь:
http://www.axtools.com/products-vs2010-extensions.php?tab=selection-popup
Я хотел бы знать:
Есть ли anu шаблон Visual Studio, который помогает запуститься? Я пробую "Украшением Области просмотра Редактора", но я не уверен в этом.
Я должен разработать от запуска панель инструментов, или я могу показать некоторые кнопки от системной панели инструментов? В axtools плагине из ссылки это - изготовленная на заказ панель инструментов или система один?
Как обнаружить, что текст был выбран?
У меня больше нет вопросов в настоящий момент. Я - довольно веб-разработчик настолько пишущий плагин Visual Studio, это - новая вещь для меня.
Заранее спасибо.
Я могу ответить на две части этого вопроса:
AdornmentLayerDefinition
для визуального менеджера (самое важное, что нужно изменить, по умолчанию вы получаете с шаблон проекта - это атрибут Order
, чтобы убедиться, что ваше украшение отображается поверх любого текста). UIElement
, но в остальном это действительно зависит от вас. Из ] ITextView
, который у вас будет как часть IWpfTextViewCreationListener
, реализованный как часть примера (он передается в AgentBadgeVisualManager
), вы можете подписаться на SelectionChanged событие вроде этого:
view.Selection.SelectionChanged + = (sender, args) => / * здесь вызываются методы для обновления вашего украшения * /;
Обратите внимание, что событие не будет запускается, когда выделение пусто и следует за курсором, поэтому, если вы хотите отслеживать это, вам также необходимо прослушивать события изменения каретки.Однако, если вас просто интересует а) когда выделение не пусто или б) когда выделение меняется с пустого на непустое, этого события будет достаточно.
Для получения более общей информации о расширяемости вы можете проверить другие расширения, которые я написал на моей странице github , прочитать о том, как я их написал в моем блоге , проверить страницу примеров VSX или страницу примеров редактора на codeplex .