Расширенные возможности Visual Studio
Оценить
(0 голоса)
Объект EditPoint является ключевым при добавлении текста, и вы создаете его либо при помощи объекта TextDocument, либо при помощи объекта TextPoint. Экземпляр TextPoint может создать экземпляр EditPoint в том же самом месте (при по­мощи вызова TextPoint. Createlnstance). При помощи типа TextDocument вы можете вызвать метод CreateEditPoint и передать в него TextPoint. Поскольку объекты TextPoint применяются для определения конкретных точек в докумен­те, то объект TextPoint используется как входной параметр для CreateEditPoint. По существу, объект TextPoint сообщает методу, где именно нужно создать точку редактиро­вания. Если вы не предоставляете объект TextPoint, то точка редактирования будет созда­на в начале документа. Следующий фрагмент кода показывает…
Оценить
(0 голоса)
Объект EditPoint поддерживает удаление, замену, вырезку, копирование и вставку текста в документе. Некоторые из этих операций требуют для своей работы более одной точки. Например, если вы хотите вырезать слово илИ целую строку кода из документа, то вам нужно указать на­чальную и конечную точки, которые зададут этот блок текста (рис. 11.8). Следующий фрагмент кода использует две конечных точки — одна в начале документа и одна в конце — для удаления всего содержимого документа: Dim doc As Document = DTE.ActiveDocument Dim txtDoc As TextDocument = doc.Object Dim tpStart As TextPoint = txtDoc.StartPoint Dim tpEnd As TextPoint = txtDoc.EndPoint Dim epStart As EditPoint2…
Оценить
(0 голоса)
После установки Edit Point вы можете перенести ее в любое заданное место документа (при помощи различных методов). Методы CharLeft и CharRight переносят точку на лю­бое количество символов влево или вправо, в то время как методы WordLeft и WordRight выполняют то же самое для слов: ' Перенести точку редактирования на 4 слова вправо epStart.WordRight(4) Методы LineUp и Line Down переносят точку на указанное количество строк вверх или вниз. Вы можете также перенести Edit Point на любую заданную строку документа при помощи метода MoveToLineAndOf f set. Этот метод также помещает точку в определенную позицию строки: ' Перенести точку редактирования в строку 100,…
Оценить
(0 голоса)
Каждое действие, которое можно выполнить через меню и панели инструментов в Visual Studio, в общем смысле является командой. Например, вставка текста в окно является командой, точно так же, как и сборка проекта, активирование точки останова и закрывание окна. Для каждой поддерживаемой интегрированной средой команды существует соответствую­щий объект Command; коллекция DTE.Commands содержит все экземпляры объектов Command. Каждая команда имеет название, которое категоризирует, описывает и уникально идентифицирует команду. Например, команда "paste" доступна по строковому ключу "Edit.Paste". Если вы хотите получить объект Command, который соответствует команде "paste", то вы должны извлечь его из коллекции Commands при помощи этого строкового ключа: Dim commands As…
Оценить
(0 голоса)
Команды можно выполнять двумя способами. Объект DTE имеет метод ExecuteCommand, который вы можете использовать для запуска команды по ее имени: DTE. ExecuteCommand ("Window. CloseDocumentWindow") Коллекция Commands также является средством запуска команд (при помощи ее метода Raise). Вместо использования имени команды метод Raise применяет ее GUID и ID: Dim commands As Commands2 = DTE.Commands Dim cmd As Command = commands. Item("Window.CloseDocumentWindow") Dim customln, customOut As Object commands .Raise (cmd.Guid, cmd. ID, customin, customout) Некоторые команды принимают аргументы. Пример— команда shell. Она используется для запуска внешнего приложения в среде командного процессора и принимает в качестве одного из своих параметров имя приложения. Вы…
Оценить
(0 голоса)
Большинство команд может быть запущено при помощи клавиатурной комбинации быстро­го вызова (в дополнение к пункту меню или кнопке панели команд). Вы можете настроить эти клавиатурные комбинации для каждой команды при помощи свойства Command.Bindings. Это свойство возвращает или принимает SafeArray (по существу это массив объектов), который содержит клавиатурные комбинации (в виде элементов массива). Привязки клавиш представлены в виде строк следующего формата: " [scopenajne] : : [modifier*] [key] ". * Scopename используется для ссылки на ту область видимости, где комбинация действует (такую как Text Editor или Global). Лексема modifier используется для указания моди­фикатора, такого как Mctrl+", "Alt+" или "Shift+" (модификатор не обязателен).…
Оценить
(0 голоса)
Объектная модель расширяемости предоставляет объект Debugger, который позволяет вам управлять отладчиком в Visual Studio. Экземпляр Debugger можно получить при помощи свойства DTE. Debugger: Dim debugger As EnvDTE.Debugger debugger = DTE.Debugger При помощи объекта Debugger вы можете делать следующее: □    настраивать точки останова; □    запускать и останавливать отладчик для заданного процесса; О управлять различными способами прохождения кода в отладчике (такими как Step Into, Step Over и Step Out); □    вызывать команду отладчика Run to Cursor; , □    запрашивать у отладчика его текущий режим (например, режим останова, режим конст­руирования или режим выполнения). Отладчик можно запустить (если он еще не запущен) при помощи…
Оценить
(0 голоса)
Если вашему макросу или надстройке нужно получить уведомление об определенном собы­тии, то для этого во всех ранее обсуждавшихся категориях объектов расширяемости под­держиваются различные объекты событий. Имеются события для окон, редакторов, проек­тов и т. д. Для каждого события (поддерживаемого интегрированной средой) соответ­ствующий класс модели расширяемости позволяет вам перехватить событие (и выполнить нужное действие в случае его возникновения). Объектное дерево событий имеет корень в свойстве DTE.Events (рис. 11.10). Поскольку события обрабатываются по-разному (в зависимости от того; работаете ли вы с кодом настройки или кодом макроса), то описание подробностей обработки событий мы отложим до следующей главы. Однако основная идея очень проста: вы получаете…
Оценить
(0 голоса)
Объектная модель расширяемости Visual Studio— это глубокий и обширный интерфейс прикладного программирования, который предоставляет многие компоненты интегрирован­ной среды для работы с управляемым кодом, выполняющимся как макрос или надстройка. В данной главе мы описали организацию этого API и его возможности в плане управления средой Visual Studio: отладчиком, редакторами, окнами, окнами инструментов, решениями и проектами. Мы обсудили также модель событий этого API и рассмотрели его возможности в смысле доступа к структуре кода проекта, запуска команд внутри интегрированной среды и про­граммного редактирования текстовых документов. Используя методы и свойства объектов расширяемости, вы можете автоматизировать в ин­тегрированной среде стандартные задачи и расширить Visual Studio такими…
Оценить
(1 голос)
В предыдущей главе мы изучили интерфейс прикладного программирования (API), имею­щийся у разработчиков для настройки и управления различными частями интегрированной среды Visual Studio. Данная глава основывается на этих знаниях и показывает вам, как пи­сать макросы, которые используют объектную модель расширяемости. Задача макроса— обеспечить вам способ написания ваших собственных модулей расшире­ния. В предыдущих главах вы видели множество функций интегрированной среды, которые автоматизируют повторяющиеся задачи. Встроенная поддержка рефакторинга, технология автоматического дописывания слов IntelliSense, фрагменты кода — вот только некоторые из таких функций. И по мере того как вы разрабатываете решения в Visual Studio, вы будете выполнять все больше повторяющихся задач, которые просто просят…
© 2017 www.visualstudios.ru. Все права защищены.