EditorSetParameter

Programming Far Manager plugins

EditorSetParameter

Структура EditorSetParameter используется в функции EditorControl для изменения настроек текущего редактора Far Manager.
struct EditorSetParameter
{
  size_t StructSize;
  enum EDITOR_SETPARAMETER_TYPES Type;
  union
  {
    intptr_t iParam;
    wchar_t *wszParam;
    intptr_t Reserved;
  }
#ifndef __cplusplus
  Param
#endif
  ;
  unsigned __int64 Flags;
  size_t Size;
};

Элементы

StructSize
Это поле должно содержать размер структуры EditorSetParameter. Перед использованием структуры плагин должен заполнить поле.
Type
Тип настройки. Может быть одним из следующих (перечисление EDITOR_SETPARAMETER_TYPES):
НастройкаОписание
ESPT_AUTOINDENT Включение/выключение режима "Автоотступ".
iParam соответственно должен быть равен TRUE или FALSE.
ESPT_CHARCODEBASE Указать формат показа кода текущего символа в статусной строке редактора.
iParam может принимать следующие значения:
  • 0 - восьмеричное значение (3 символа с ведущим нулями)
  • 1 - десятеричное значение (3 символа с ведущими пробелами)
  • 2 - шестнадцатеричное значение (2 символа под цифру + символ 'h')
ESPT_CODEPAGE Изменить текущую кодировку в редакторе.
iParam - номер устанавливаемой кодовой страницы. В случае неудачи EditorControl возвращает FALSE, кодировка не изменяется. Можно использовать значения CP_REDETECT и CP_DEFAULT, для автоматического определения кодировки и установки последней сохранённой кодировки из истории.
ESPT_CURSORBEYONDEOL Включение/выключение режима "Курсор за пределами строки".
iParam соответственно должен быть равен TRUE или FALSE.
ESPT_EXPANDTABS Управление поведением замены пробелов вместо табуляции.
iParam может быть одним из следующих режимов (перечисление EXPAND_TABS):
ФлагОписание
EXPAND_NOTABS
EXPAND_ALLTABS
EXPAND_NEWTABS

ВНИМАНИЕ! ВНИМАНИЕ!

  • Данная операция необратима, т.е. если в файле были использованы пробелы вместо табуляции, то при переходе к обычным символам табуляции присутствующие в файле идущие подряд пробелы в символы табуляции преобразованы не будут.
ESPT_LOCKMODE Включение/выключение запрета модификации текста (аналог Ctrl+L).
Если iParam равен TRUE, то включается запрет модификации текста, если FALSE - запрет отменяется.
ESPT_SAVEFILEPOSITION Включение/выключение опции "Сохранять позицию файла".
iParam соответственно должен быть равен TRUE или FALSE.
ESPT_SHOWWHITESPACE Включение/выключение опции "Пробельные символы".
iParam может принимать следующие значения:
  • 0 - не показывать пробельные символы, знаки табуляции и окончания строк
  • 1 - показывать пробельные символы и знаки табуляции
  • 2 - показывать пробельные символы, знаки табуляции и окончания строк
ESPT_SETBOM Включение/выключение опции "Добавить сигнатуру (BOM)" при сохранении файла в кодировке Unicode/UTF8.
iParam соответственно должен быть равен TRUE или FALSE.
ESPT_SETWORDDIV Позволяет изменить строку символов-разделителей слов (параметр wszParam) для текущей копии редактора.
Если wszParam равен NULL или пустой строке, то в качестве строки разделителей принимается установленное по умолчанию значение - "~!%^&*()+|{}:"<>?`-=\[];',./" Эта строка может содержать не более 255 символов.
ESPT_GETWORDDIV Позволяет получить (в поле wszParam) строку символов-разделителей слов длиною Size для текущей копии редактора.
wszParam должен указывать на буфер выделенный плагином. Если wszParam = NULL, то EditorControl возвращает необходимый размер буфера в символах.
ESPT_TABSIZE Изменение размера табуляции.
iParam содержит новое значение - от 1 до 512. Значение размера табуляции, выходящее за указанные границы, выставляется равным 8.
iParam
Содержит число, см. описание по конкретному типу настройки.
wszParam
Указатель на строку, оканчивающуюся нулём, см. описание по конкретному типу настройки.
Reserved
Размер этого параметра всегда равен размеру объединения Param, что позволяет использовать этот параметр для платформенно-независимой инициализации..
Flags
Содержит дополнительные условия/данные, см. описание по конкретному типу настройки.
Size
Содержит число, см. описание по конкретному типу настройки.

Замечания

Если плагин меняет одновременно размер табуляции и состояние режима "Пробелы вместо табуляции", то имеет смысл применять команды в такой последовательности: сначала ESPT_TABSIZE, потом ESPT_EXPANDTABS.
Смотрите также: