# 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`.
Смотрите также:
структуры