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
Номер текущей используемой кодовой страницы символов в редакторе.
Замечания
Смотрите также: