EditorInfo
Структура
EditorInfo
используется в функции EditorControl для получения информации о текущем состоянии редактора Far Manager.
struct EditorInfo { size_t StructSize; intptr_t EditorID; intptr_t WindowSizeX; intptr_t WindowSizeY; intptr_t TotalLines; intptr_t CurLine; intptr_t CurPos; intptr_t CurTabPos; intptr_t TopScreenLine; intptr_t LeftPos; intptr_t Overtype; intptr_t BlockType; intptr_t BlockStartLine; uintptr_t Options; intptr_t TabSize; size_t BookmarkCount; size_t SessionBookmarkCount; uintptr_t CurState; uintptr_t CodePage; };
Элементы
StructSize
Это поле должно содержать размер структуры
EditorInfo
. Перед использованием структуры плагин должен заполнить поле.EditorID
Идентификатор экземпляра редактора. Каждый экземпляр редактора имеет уникальный идентификатор, который не повторяется в текущей сессии Far Manager.
WindowSizeX, WindowSizeY
Ширина и высота окна редактора.
TotalLines
Количество строк в редактируемом тексте.
CurLine
Номер текущей строки. Нумерация начинается с 0.
CurPos
Позиция курсора в текущей строке. Нумерация начинается с 0.
CurTabPos
Экранная позиция курсора в текущей строке. Нумерация начинается с 0. Если строка не содержит символов табуляции,
CurTabPos
эквивалентна CurPos
.TopScreenLine
Номер строки вверху экрана. Нумерация начинается с 0.
LeftPos
Позиция левой границы окна редактора в редактируемом тексте. Нумерация начинается с 0.
Overtype
0
- режим вставки, 1
- замены.BlockType
Тип выбранного блока. Одно из следующих значений (перечисление EDITOR_BLOCK_TYPES):
Тип блока | Описание |
---|---|
BTYPE_NONE | снять выделение с блока |
BTYPE_STREAM | выделить строковой блок |
BTYPE_COLUMN | выделить вертикальный блок |
BlockStartLine
Номер первой строки блока. Нумерация начинается с 0.
Options
Описывает состояние настроек редактора. Может быть комбинацией следующих флагов (перечисление EDITOR_OPTIONS):
Флаг | Описание |
---|---|
EOPT_EXPANDALLTABS | Включена опция "Преобразовывать все символы табуляции в пробелы".
При открытии документа в редакторе все символы Tab заменить на соответствующее количество пробелов. Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_EXPANDTABS). |
EOPT_EXPANDONLYNEWTABS | Включена опция "Преобразовывать новые символы табуляции в пробелы".
При редактировании документа введённый символ Tab заменять на соответствующее количество пробелов. Остальные символы Tab не преобразовывать. Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_EXPANDTABS). |
EOPT_PERSISTENTBLOCKS | Включена опция "Постоянные блоки". |
EOPT_DELREMOVESBLOCKS | Включена опция "Del удаляет блоки". |
EOPT_AUTOINDENT | Включена опция "Автоотступ". Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_AUTOINDENT). |
EOPT_AUTODETECTCODEPAGE | Включена опция "Автоопределение кодовой страницы". |
EOPT_CURSORBEYONDEOL | Включена опция "Курсор за пределами строки". Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_CURSORBEYONDEOL). |
EOPT_SAVEFILEPOSITION | Включена опция "Сохранять позицию файла". Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_SAVEFILEPOSITION). |
EOPT_SHOWWHITESPACE | Включена опция "Пробельные символы". Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_SHOWWHITESPACE). |
EOPT_BOM | Установлена опция "Добавить сигнатуру (BOM)" для файлов в кодировке Unicode/UTF8. Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_SETBOM). |
EOPT_SHOWLINEBREAK | Включена опция "Пробельные символы" в третьем режиме [?]. Этот параметр можно изменить используя команду ECTL_SETPARAM (ESPT_SHOWWHITESPACE). |
EOPT_SHOWTITLEBAR | Показана статусная строка. |
EOPT_SHOWKEYBAR | Показана линейка функциональных клавиш. |
EOPT_SHOWSCROLLBAR | Показана полоса прокрутки. |
TabSize
Размер табуляции. Этот параметр можно изменить используя команду ECTL_SETPARAM.
BookmarkCount
Количество закладок в редакторе. Для получения информации о закладках используйте команду ECTL_GETBOOKMARKS.
SessionBookmarkCount
Количество временных (в рамках текущей сессии редактора) закладок в редакторе. Для получения информации о закладках используйте команду ECTL_GETSESSIONBOOKMARKS.
CurState
Текущее состояние редактируемого текста.
Может быть набором из следующих значений (перечисление EDITOR_CURRENTSTATE):
Флаг | Описание |
---|---|
ECSTATE_MODIFIED | модифицирован |
ECSTATE_SAVED | сохранён |
ECSTATE_LOCKED | заблокирован (Ctrl+L) |
CodePage
Номер текущей используемой кодовой страницы символов в редакторе.
Замечания
Смотрите также: