EditorInfo

Programming Far Manager plugins

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

Замечания

Смотрите также: