Расширенные возможности Visual Studio
Несмотря на то, что вы объявили объект события и написали обработчик события, это еще не все: вам нужно еще инициализировать объект события. Исполняющая среда макросов сама имеет два события, которые вам необходимо перехватить для того, чтобы обеспечить правильную инициализацию объекта события при каждом старте или сбросе исполняющей среды макросов. Без этого шага объект события синтаксически завершен, но не получит никаких событий от основной интегрированной среды разработки.
Вам необходимо позаботиться о двух событиях, причем оба они предоставляются классом DTEEvents. Первое из них — это DTEEvents . OnMacrosRuntimeReset; это событие происходит тогда, когда по какой-либо причине происходит сброс исполняющей среды. Поскольку сброс…
Из обсуждения Macro Explorer вы знаете* что одним из способов запустить макрос является простой двойной щелчок по макросу в окне Macro Explorer. Мы описали также запуск макроса по событию интегрированной среды разработки. Другим обычным вариантом, который вы, возможно, захотите обеспечить для некоторых макросов, является запуск макроса из основной интегрированной среды при помощи кнопок панели инструментов, пунктов меню и клавиатурных комбинаций быстрого вызова.
Запуск макросов из панелей инструментов и меню
Если вы хотите обеспечить быстрый доступ к макросам разворачивания и сворачивания узлов, то можете присвоить их кнопкам панели инструментов или пунктам меню главной интегрированной среды. Это можно сделать при помощи диалогового…
Для запуска макроса при помощи клавиатурной комбинации быстрого вызова вам нужно присвоить макросу последовательность клавиш (при помощи диалогового qKHa Options) следующим образом:
1. Откройте диалоговое окно Options (при помощи выбора меню Tools | Options).
2. В узле Environment выберите страницу Keyboard.
Рис. 12.14. Присваивание клавиатурной комбинации макросу
3. На странице настроек Keyboard выберите макрос в списке команд (вы можете отфильтровать этот список при помощи ввода имени макроса или посредством ввода слова macros в текстовом поле Show commands containing). Все макросы перечислены по макропроектам, названиям модулей и по именам.
4. Поместите курсор в текстовое поле Press shortcut keys, а затем нажмите…
Как вы уже видели по шагам, необходимым для запуска макроса при помощи панели инструментов/меню и клавиатурных комбинаций, каждый макрос представлен в интегрированной среде командой (см. разд. ”Объекты команд” главы II). Для выполнения команд предназначено командное окно, поэтому макросы также можно запускать из командной строки.
В командной строке введите букву m для того, чтобы сработала IntelliSense и показала вам список макросов. Прокрутите список и выберите нужный вам макрос; затем нажмите клавишу <Enter>. Макрос выполнится.
Несмотря на то, что для макросов характерно выполнение без всякого взаимодействия с пользователем, иногда может быть полезно написать макрос, который принимает параметры (как часть определения его функции/процедуры).
Рассмотрим макрос Re size IDE в листинге 12.4. Он принимает в качестве параметров значения ширины и высоты, а затем соответственно изменяет размер окна основной интегрированной среды.
Imports EnvDTE Imports EnvDTE80
Public Module MacroExamples
Public Sub ResizelDE(Optional ByVal width As Integer = 800, _
Optional ByVal height As Integer = 600)
Dim ide As Window2 = DTE.MainWindow ide.Width = width ide.Height = height End Sub End Module
Если бы вам было нужно вызвать этот…
В этой главе мы описали, как использовать мощь интерфейсов прикладного программирования расширяемости Visual Studio для создания макросов, дополнительных модулей и мастеров.
Вы увидели, что запись макроса быстро дает вам начальную точку для управления различными компонентами интегрированной среды разработки, что Macro Explorer является центральным местом для управления вашими коллекциями макросов, и что Visual Studio предоставляет полноценную среду разработки, созданную специально для разработки макросов. При помощи этих инструментов вы можете либо записывать простые макросы и использовать их как стартовую точку для более сложных макросов, либо создавать макросы с нуля при помощи языка Visual Basic.
Если макросы представляют собой быстрый и простой подход к автоматизации, то надстройки — это их более сложные и более мощные аналоги. Надстройки — это откомпилированные проекты на языках Visual Basic, Visual C# и даже Visual C++. Надстройки полезны для более сложных случаев расширения — вплоть до создания в интегрированной среде ваших собственных форм, окон инструментов и визуальных конструкторов.
Еще одна родственная тема, которой мы коснемся в этой главе, — это создание и доработка мастеров Visual Studio. Мастера запускаются каждый раз, когда вы создаете новый проект ^1ли добавляете в проект элемент. Эти мастера обычно представляют собой одно или более диалоговых окон,…
Самый простой способ начать работу с надстройками— это запустить мастер Add-in Wizard. Так же как и при записи макроса, этот мастер даст вам стартовую точку для реализации ваших собственных надстроек; а при изучении кода, создаваемого мастером Add-in Wizard, вы поймете многие аспекты надстроек.
Мастер Add-in Wizard запускается тогда, когда вы пытаетесь создать новый проект типа Visual Studio Add-in. В диалоговом окне New Project, открываемом командой File | New Project, выберите узел Other Project Types | Extensibility в дереве типов проектов. Здесь вы увидите два шаблона проектов: Visual Studio Add-in и Shared Add-in (рис. 13.1).
Мы затронем разницу между этими двумя…
Мастер Add-in Wizard соберет всю необходимую информацию для определения основных параметров проекта надстройки: язык, на котором вы хотите вести разработку, хост-приложение, а также информацию о надстройке для стадии выполнения (такую как описание, а также информацию для окна About). Давайте кратко изучим каждую страницу мастера.
После начальной страницы приветствия первое, что вы должны будете сообщить, — это язык, который вы хотите использовать для разработки надстройки (рис. 13.2).
Рис. 13.2. Выбор языка разработки надстройки
Имеющийся список языков будет зависеть от двух вещей:
□ от языков, которые инсталлированы как часть вашего пакета Visual Studio;
□ от типа надстройки (совместно используемый или для Visual Studio).
Надстройки Visual Studio поддерживают Visual С#, Visual Basic, а также как управляемый, так и неуправляемый Visual C++.
*