Поделиться через


Данные документа и представление документов в пользовательских редакторах

Пользовательский редактор состоит из двух частей: объекта данных документа и объекта представления документов. В качестве предлагаемых имен объект данных документа представляет отображаемые текстовые данные. Аналогичным образом объект представления документа (или представление) представляет одно или несколько окон, в которых отображается объект данных документа.

Объект данных документа

Объект данных документа — это представление текста в текстовом буфере. Это COM-объект, в который хранятся текст документа и другие сведения. Объект данных документа также обрабатывает сохраняемость документов и включает несколько представлений данных. Дополнительные сведения доступны здесь.

DocumentData[] и Документ Windows.

Пользовательские редакторы и конструкторы могут использовать VsTextBuffer объект или собственный пользовательский буфер. VsTextBuffer следует упрощенной модели внедрения для стандартного редактора, поддерживает несколько представлений и предоставляет интерфейсы событий, используемые для управления несколькими представлениями.

Объект представления документов

Окно, отображающее код и другой текст, называется представлением документа или представлением. При создании редактора можно выбрать одно представление, в котором текст отображается в одном окне. Можно выбрать несколько представлений, в которых текст отображается в нескольких окнах. Выбор зависит от вашего приложения. Например, если требуется параллельное редактирование, можно выбрать несколько представлений. Каждое представление связано с записью в интегрированной среде разработки (IDE), работающей в таблице документов (RDT). Окна просмотра относятся к проекту или объекту IVsHierarchy .

Если редактор поддерживает несколько представлений объекта данных документа, то данные документа и объекты представления документов должны быть разделены. В противном случае их можно сгруппировать. Дополнительные сведения см. в разделе "Поддержка нескольких представлений документов".

Интегрированная среда разработки уведомляет представления о событиях (например, при закрытии решения, содержащего документ) путем сопоставления идентификатора элемента (ItemID) для каждой записи в работающей таблице документов. Дополнительные сведения об этом см. в статье "Запуск таблицы документов".

Существует два варианта создания представления для пользовательского редактора. Одна из них — это модель активации на месте, где представление размещается в окне с помощью элемента управления ActiveX или объекта данных документа. Во-вторых, упрощенная модель внедрения, где представление размещается Visual Studio и IVsWindowPane реализуется для обработки команд окна. Сведения о модели активации на месте см. в разделе "Активация на месте". Сведения об упрощенной модели внедрения см. в разделе "Упрощенное внедрение".