Редактирование текстовых документов

Оценить
(0 голоса)

С точки зрения Visual Studio текст в текстовом документе имеет два различных "представ­ления": виртуальное и физическое. Физическое представление — это обычней файл кода, находящийся на диске. Виртуальное представление — это то, что Visual Studio представляет на экране: это интерпретированное представление текста кодового файла, которое учиты­вает различные функциональные возможности (такие как структурирование кода, виртуаль­ные интервалы и перенос слов).

На рис. 11.7 показана эта связь. При отображении текстового документа Visual Studio читает исходный файл в текстовый буфер, а затем текстовый редактор отображает для вас его представление (в зависимости от опций, которые вы настроили в редакторе).

Рис. 11.7. Представление текстовых документов в интегрированной среде

Манипуляции производятся либо с буферизованным текстом, либо с "представлением" тек­ста, которое вы видите в редакторе. Существуют четыре различных объекта расширяемости,

при помощи которых можно работать с текстом; два из них работают с текстовым буфером,

и два — с представлением редактора.

Для текстового буфера:

□    объекты Text Point (текстовая точка) используются для нахождения в текстовом доку­менте определенных точек. Опрашивая свойства TextPoint, вы можете определить номер строки этой точки, количество символов ее смещения относительно начала стро­ки, количество символов ее смещения от начала документа и номер ее столбца в окне текстового редактора. Вы можете также получить ссылку на объект CodeModel, пред­ставляющий код в текущем положении текстовой точки;

□    объект EditPoint (точка редактирования) наследует от объекта TextPoint; это основ­ной объект, используемый для манипулирования текстом в текстовом буфере. Вы може­те добавлять, удалять или переносить текст при помощи точек редактирования, и сами эти точки также можно перемещать внутри текстового буфера.

И для представления редактора:

□    объект VirtualPoint (виртуальная точка) эквивалентен объекту TextPoint, за исклю­чением того, что он может использоваться для запроса тех мест текста, которые нахо­дятся в "виртуальном" пространстве текстового представления (виртуальное простран­ство — это незаполненное пространство после последнего символа в строке документа). Экземпляр VirtualPoint возвращается через объект TextSelection;

□    объект TextSelection (выделение текста) эквивалентен интерфейсу EditPoint и ра­ботает с текстом в представлении текстового редактора (а не с текстовым буфером). Ко­гда вы используете этот объект, то активно влияете на текст, который отображается в текстовом редакторе. Описание: image280

Методы и свойства этого объекта фактически являются программными аппроксимациями различных способов ручной работы с текстом: вы може­те перемещаться по страницам отображения вверх/вниз; вырезать, копировать и встав­лять текст; выбирать блок текста; разворачивать или сворачивать области текста.

Поскольку объект VirtualPoint почти идентичен объекту TextPoint, а объект TextSelection почти идентичен объекту EditPoint, то мы не будем подробно описывать все эти четыре объекта. Вместо этого мы сосредоточимся на операциях с текстовым буфе­ром при помощи EditPoint и TextPoint. После этого вы сможете легко применить эти концепции и к текстовому представлению.

Поскольку объекты EditPoint предоставляют большую часть функциональности и играют центральную роль при редактировании текста, то мы приводим список их членов в табл. 11.13. Описание: image281

Теперь рассмотрим различные сценарии манипуляций с текстом.

Добавление текста
Редактирование текста
Перемещение точки редактирования
Объекты команд
Выполнение команды

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.