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

### Замечания

Смотрите также:
структуры