Создание пользовательских редакторов и конструкторов
Интегрированная среда разработки Visual Studio может размещать различные типы редактора:
Редактор ядра Visual Studio
Пользовательские редакторы
Внешние редакторы
Конструкторы
Следующие сведения помогут выбрать нужный тип редактора.
Типы редактора
Сведения о редакторе ядра Visual Studio см. в разделе "Расширение редактора и языковых служб".
Пользовательские редакторы
Пользовательский редактор — это тот, который предназначен для работы в специализированных обстоятельствах. Например, можно создать редактор, функция которого заключается в чтении и записи данных в определенный репозиторий, например на сервере Microsoft Exchange. Выберите пользовательский редактор, если вы хотите, чтобы редактор работал только с типом проекта или если требуется редактор с несколькими определенными командами. Обратите внимание, что пользователи не смогут использовать пользовательский редактор для редактирования стандартных проектов Visual Studio.
Настраиваемый редактор может использовать фабрику редактора и добавлять сведения о редакторе в реестр. Однако тип проекта, связанный с пользовательским редактором, может создать экземпляр пользовательского редактора другими способами.
Настраиваемый редактор может использовать активацию на месте или упрощенное внедрение для реализации представления.
Внешние редакторы
Внешние редакторы — это редакторы, которые не интегрированы в Visual Studio, такие как Microsoft Word, Блокнот или Microsoft FrontPage. Например, вы можете вызвать такой редактор, если вы передаете в него текст из VSPackage. Внешние редакторы регистрируют себя и могут использоваться за пределами Visual Studio. При вызове внешнего редактора и его можно внедрить в окно узла, а затем он отображается в окне интегрированной среды разработки. В противном случае интегрированная среда разработки создает для него отдельное окно.
Метод IsDocumentInProject задает приоритет документа с помощью VSDOCUMENTPRIORITY перечисления. DP_External
Если задано значение, файл можно открыть внешним редактором.
Решения по проектированию редактора
Следующие вопросы по проектированию помогут выбрать тип редактора, который лучше всего подходит для вашего приложения:
Сохраните ли приложение данные в файлах или нет? Если данные будут сохранены в файлах, они будут находиться в пользовательском или стандартном формате?
Если вы используете стандартный формат файла, другие типы проектов в дополнение к проекту смогут открывать и читать и записывать в них данные. Однако если вы используете пользовательский формат файла, только тип проекта сможет открывать и читать и записывать данные в них.
Если проект использует файлы, необходимо настроить стандартный редактор. Если проект не использует файлы, а использует элементы в базе данных или другом репозитории, необходимо создать пользовательский редактор.
Требуется ли редактору размещать элементы ActiveX?
Если редактор размещает элементы ActiveX, то реализуйте редактор активации на месте, как описано в активации на месте. Если он не размещает элементы activeX, используйте упрощенный редактор внедрения или настройте редактор по умолчанию Visual Studio.
Будет ли ваш редактор поддерживать несколько представлений? Необходимо поддерживать несколько представлений, если вы хотите, чтобы представления редактора отображались одновременно с редактором по умолчанию.
Если редактор должен поддерживать несколько представлений, то для редактора должны быть отдельные объекты данных документа и представления документов. Дополнительные сведения см. в разделе "Поддержка нескольких представлений документов".
Если редактор поддерживает несколько представлений, планируется ли использовать реализацию текстового буфера редактора Visual Studio core (VsTextBuffer объект) для объекта данных документа? Это значит, что вы хотите поддерживать представление редактора параллельно с редактором ядра Visual Studio? Возможность сделать это является основой конструктора форм..
Если необходимо разместить внешний редактор, можно ли внедрить редактор в Visual Studio?
Если его можно внедрить, необходимо создать окно узла для внешнего редактора, а затем вызвать IsDocumentInProject метод и задать VSDOCUMENTPRIORITY значение
DP_External
перечисления. Если редактор не может быть внедрен, интегрированная среда разработки автоматически создаст отдельное окно для него.
В этом разделе
Пошаговое руководство. Создание пользовательского редактора
Описывает создание пользовательского редактора.
Пошаговое руководство. Добавление функций в пользовательский редактор
Объясняет, как добавить функции в пользовательский редактор.
Настройка инициализации и метаданных конструктора
Объясняет, как инициализировать конструктор.
Предоставление поддержки отмены конструкторам
Описывает, как предоставить поддержку отмены для конструкторов.
Цвет синтаксиса в пользовательских редакторах
Объясняет разницу между цветом синтаксиса в основном редакторе и в пользовательских редакторах.
Данные документа и представление документов в пользовательских редакторах
Описание реализации данных документа и представлений документов в пользовательских редакторах.
Связанный контент
Устаревшие интерфейсы в редакторе
Объясняет, как получить доступ к основному редактору с помощью устаревшего API.Разработка устаревшей языковой службы
Объясняет, как реализовать языковую службу.Расширение других частей Visual Studio
Описание создания элементов пользовательского интерфейса, соответствующих остальной части Visual Studio.