| SciTE Ru-Board Kernel Changes

Документация FAQ Регулярные выражения LUA SciTE Director Команды SciTE и Scintilla Сборка Ru-Board Ядро SciTE-Ru Shell SciTE Helper История

# Текстовый редактор SciTE RU-Board 1.78 .64

Все модификации оригинального кода редактора SciTE выполнены энтузиастами форума Ru-Board.
Данный файл содержит полный список всех доработок кода относительно исходной версии редактора.
Все изменения, внесенные в код редактора, помечались характерными комментариями, что позволяет при желании применить к оригинальному коду любое из них по отдельности.
Демонстрацию работы обновленного редактора с многочисленными примерами использования его расширенных возможностей, вы можете увидеть, загрузив пакет SciTE-Ru.

Для удобства восприятия список разбит на три раздела:

- Интерфейс
- Расширения
- Устранение ошибок

### Интерфейс

##### new [find.fillout] (Авторы: Frank Wunderlich, VladVRO)

Новый параметр find.fillout в .properties, который позволяет задать способ начального заполнения поля в диалоге поиска:
0 (по умолчанию) - если есть выделение и оно не содержит переводов строк, то использовать его, иначе взять слово рядом с курсором (как это и было ранее),
1 - использовать выделение, если выделения нет, то оставить поле пустым,
2 - всегда оставлять поле пустым.

##### new [MoreRecentFiles] (Автор: Daniel Cardenas)

Список последних открывавшихся файлов можно расширить до 30 пунктов используя новый параметр:
save.recent.max=30

##### [save.session.multibuffers.only] (Автор: VladVRO)

Новый параметр в .properties, который позволяет запретить запись файла сессии при выходе из редактора, если открыта только одна вкладка:
save.session.multibuffers.only=1

##### [session.close.buffers.onload] (Автор: VladVRO)

Новый параметр session.close.buffers.onload в .properties позволяет задать закрывать или нет уже открытые файлы при загрузке сессии.
Например, для того что бы вкладки остались открытыми:
session.close.buffers.onload=0
по умолчанию при загрузке сессии все открытые файлы закрываются.

##### [ReadOnlyTabMarker] (Авторы: Midas, VladVRO)

Добавлена возможность отображать состояние "только для чтения" с помощью доп. символов в имени вкладки, которые задаются в настройках параметром tabbar.readonly.marker, например:
tabbar.readonly.marker= R/O

##### [HighlightCurrFolder] (Автор: VladVRO)

Добавлена подсветка текущего блока свертки текста в поле фолдинга.
Новый параметр в настройках для задания цвета подсветки:
fold.highlight.colour=#0099FF
если цвет не задан, подсветка выключается.

##### [TrueTextSelMargin] (Автор: VladVRO)

Изменено отображение курсора над левым полем, там где отображаются номера строк, метки и фолдинг.
Курсор меняется на перевернутый указатель только тогда, когда доступна функция выделения текста, иначе курсор принимает свой обычный вид.

##### [SubMenu] (Автор: HSolo, Доработка: Дмитрий Маслов)

Немного изменен вид меню Tools. Теперь встроенные команды отделены от пользовательских разделителями.
В меню Tools теперь возможно вставлять разделители.
Например, command.separator.34.*=1 вставляет разделитель перед командой 34.
Так же возможна установка отметки перед выбранным пунктом меню.
Например, так: command.checked.34.*=1.
Добавлена возможность создания вложенных подменю в меню Tools.
Они создаются вначале меню и отделены от остальных пунктов разделителем.
Сначала задаются названия подменю:
command.submenu.name.2.*=Insert from Text
если они вложены в другое подменю, то задается номер родительского меню:
command.submenu.parent.2.*=4
Затем для команд, входящих в подменю, задается номер родительского меню:
command.parent.6.*=2
command.name.6.*=Date and Time
Текст всех пунктов меню и подменю Tools русифицируется так же как и основное меню - через файл locale.properties.

##### [ToolsMax] (Автор: Moon_aka_Sun, VladVRO)

Число допустимых пунктов в меню Tools увеличено до 300.
Для создания пользовательских команд в user.context.menu следует использовать формулу:
пользовательская команда = 9000 + номер этой команды в меню Tools

##### updated [ExtendedContextMenu] (Автор: Дмитрий Маслов, VladVRO)

Новые параметры в .properties позволяют ПОЛНОСТЬЮ настроить контекстные меню:
user.context.menu.* - контекстное меню редактора
user.tabcontext.menu.* - контекстное меню вкладок
user.outputcontext.menu.* - контекстное меню консоли
С помощью параметров POPUPBEGIN и POPUPEND возможно создание подменю!
Формат:
user.context.menu.*=\
Имя команды1|IDM_COMMAND1|\
Имя команды2|IDM_COMMAND2|...
Чтобы вставить разделитель нужно оба поля оставить пустыми
user.context.menu.*=\
Имя команды1|IDM_COMMAND1|\
||\
Имя команды2|IDM_COMMAND2|...
Если параметр не задан в настройках, то отображается стандартное контекстное меню.

##### updated [user.toolbar] (Автор: Дмитрий Маслов, VladVRO)

Новый параметр user.toolbar.* в .properties позволяет ПОЛНОСТЬЮ настроить панель инструментов.
Формат:
user.toolbar.*=\
Всплывающая подсказка1|IDM_COMMAND1|номер иконки1|\
Всплывающая подсказка2|IDM_COMMAND2|номер иконки2|...
Чтобы вставить разделитель нужно все три поля оставить пустыми
user.toolbar.*=\
Всплывающая подсказка1|IDM_COMMAND1|номер иконки1|\
|||\
Всплывающая подсказка2|IDM_COMMAND2|номер иконки2|...
Если параметр не задан в настройках, то отображается стандартный тулбар.
Новый параметр в настройках позволяет задать пользовательскую библиотеку с иконками: user.toolbar.iconlib.*=$(SciteUserHome)\gnome.dll

##### new [ToolbarButtonPressed] (Авторы: UR4LTZ, VladVRO)

Кнопки на панели инструментов теперь могут отображать состояние вкл/откл в зависимости от текущего значения изменяемого кнопкой параметра.
Так по виду (нажата/отжата) таких кнопок как IDM_WRAP, IDM_READONLY, IDM_VIEWSPACE и т.п. можно видеть текущее состояние соответствующих им установок - wrap, read.only, view.whitespace.

##### [FindResultListStyle] (Авторы: VladVRO, Дмитрий Маслов)

Улучшена наглядность строк, выводимых встроенным инструментом для поиска текста в файлах (Ctrl+Shift+F):
- путь до файла в каждой строке результата отображается в сокращенном виде, относительным от каталога поиска,
- в результирующем тексте табуляция заменяется на пробелы, вначале строки пробелы не выводятся, двойные пробелы заменяются одинарными (эта опция отключается, если задать lexer.errorlist.value.separate=2),
- искомая подстрока может быть выделена в строках результата с помощью задания своего стиля отображения:
style.errorlist.30=fore:#000000 ,bold
Параметр в .properties lexer.errorlist.findliststyle=0 позволяет отключить эту возможность.
Добавлена возможность выделить искомую подстроку в строках результата внешнего поиска. Новые параметры в .properties lexer.errorlist.findtitle.begin и lexer.errorlist.findtitle.end позволяют задать формат заголовка поиска.

##### [close.find.window] (Автор: Дмитрий Маслов)

Новый параметр в .properties
find.replace.closefind=число
0 - предотвращает закрытие окна поиска после нажатия на кнопку "Найти", 1 - закрыть окно (обычное поведение по умолчанию).

##### [find.bookmark.disable] (Автор: dB6)

Новый параметр в .properties
find.bookmark.disable=1
Если 1, то при нажатии на кнопку "Пометить все" метки (bookmarks) не устанавливаются.

##### [NewFind-MarkerDeleteAll] (Автор: Дмитрий Маслов)

Новый параметр в .properties
find.mark.delete=1
Если 1, то при нажатии на кнопку "Пометить все" удаляются все установленные ранее метки (bookmarks) и маркеры.

##### [TabsMoving] (Автор: VladVRO и Дмитрий Маслов)

В редактор добавлены две новых команды IDM_MOVETABLEFT и IDM_MOVETABRIGHT позволяющие перемещать текущую вкладку. Они доступны в меню Вкладки.
Кроме того реализовано перемещение вкладок с помощью мыши.

##### [TabbarTitleMaxLength] (Автор: VladVRO)

Новый параметр в .properties
tabbar.title.maxlength=число
накладывает ограничение на длину надписи (имя файла) в табе. Если текст надписи длиннее, то он будет урезан и завершен символом "…"

##### [NewBufferPosition] (Автор: VladVRO)

Новый параметр в .properties
buffers.new.position=число
0 - открывать новую вкладку в конце списка (default), 1 - следующей за текущей, 2 - в начале списка.

##### [warning.couldnotopenfile.disable] (Автор: mozers)

Новый параметр в .properties
warning.couldnotopenfile.disable=1
1 - убирает предупреждение "Не удается открыть файл", появляющееся при открытии несуществующего файла и новый файл с заданным именем создается молча.

##### [ZorderSwitchingOnClose] (Автор: VladVRO)

Модификация параметра в .properties
buffers.zorder.switching=1
теперь, если установлена в 1, то после закрытия вкладки редактор возвращается к последней открытой до этого.

##### [new_on_dbl_clk] (Автор: Дмитрий Маслов)

Добавлен функционал: На двойной клик по свободному месту справа от вкладок открывается новый файл (а ля FireFox)

##### [close_on_dbl_clk] (Автор: Дмитрий Маслов, Moon_aka_Sun, VladVRO)

Добавлен функционал: Закрытие активной вкладки по двойному клику мыши на ней

##### [SetBookmark] (Автор: Midas)

Установка Bookmark'а по 1 щелчку на панели Bookmark'ов.
Новый параметр в .properties margin.bookmark.by.single.click=0 отключает эту возможность

##### [output.caret] (Автор: VladVRO)

Новые параметры в .properties
output.caret.fore
output.caret.line.back
output.caret.line.back.alpha
для задания стиля курсора в окне консоли.

##### [NewIcons] (Автор: VladVRO)

Новые иконки для файлов, ассоциированных с SciTE и для файлов сессий.

##### [AbbrevRefactoring] (Автор: VladVRO)

Использование символа '|' работает одинаково и для вставки сокращения (Ctrl+Shift+R) и для расшифровки сокращения (Сtrl+B).

##### [VarAbbrev] (Автор: mimir, VladVRO)

В списки сокращений (abbrev) можно добавлять пользовательские переменные.
- %SEL% - выделенный текст
- %CLP% - текст из буфера обмена
- %[имя_переменной]% - значение внутренней переменной SciTE (например, CurrentSelection, FileNameExt, SciteDefaultHome и т.п.)
- %GUID% - уникальный GUID нового объекта (идея принадлежит codewarlock1101)
Так, например, забив в файл abbrev такую строку:
<a+=<a href="%CLP%" title="|">%SEL%</a>
Копируем в буфер обмена текст "http://scite.net.ru/"
Пишем "<a+Наш сайт", выделяем текст "Наш сайт", затем нажимаем Сtrl+B - получаем готовую конструкцию:
<a href="http://scite.net.ru/" title="|">Наш сайт</a>
где курсор находится на месте символа '|'.
То же самое получится если написать "Наш сайт" и выделив этот текст, нажать Ctrl+Shift+R и выбрать "<a+" из раскрывающегося списка.
Новый параметр в .properties
abbrev.preserve.selection=1
позволяет вставлять выделенный текст без использования переменной %SEL%.
В этом случае выделенный текст размещается вместо последнего символа '|'.

##### [abbrev.always.update] (Автор: mimir)

Новый параметр в .properties
abbrev.always.update=1
позволяет обновлять файл сокращений без перезапуска Scite

##### [AbbrevExpandIncremental] (Автор: VladVRO)

Новый параметр в .properties
abbrev.expand.incremental=1
Изменяет порядок поиска сокращения по Ctrl+B от малого к большему, иначе говоря, сперва берется один символ, потом два и т.д.

##### [AbbrevMaxLength] (Автор: VladVRO)

Новый параметр в .properties
abbrev.maximum.length=[число]
Задает максимальную длину сокращения, обрабатываемого по Ctrl+B, иначе говоря, максимальную длину текста который будет сравниваться с набором сокращений.

##### [import] (Автор: mimir, VladVRO)

Переделан механизм импорта в файлах настроек, теперь редактор сперва делает попытку загрузить файл с явно указанным именем, если не находит, то добавляет расширение ".properties" и повторяет попытку.
Возможно использование директивы import в файлах *.abbrev

##### [selection.hide.on.deactivate] (Автор: mozers)

Параметр selection.hide.on.deactivate=0 позволяет не снимать выделение с текста когда окно SciTE теряет фокус.

##### [scite.userhome] (Автор: gansA, mozers, VladVRO)

Новый параметр в .properties
scite.userhome позволяет задать путь к каталогу $SciteUserHome для сохранения пользовательских данных (SciTE.recent, SciTE.ses, SciTEUser.properties)
Позволяет использовать в пути внутренние переменные SciTE, например, так:
scite.userhome=$(SciteDefaultHome)\home

##### [IncrementalSearch.AddHotkeys] (Автор: Midas)

Добавляет в "Быстрый поиск" (Ctrl+Alt+I) горячие клавиши:
- Enter или F3 - следующее вхождение
- Shift+Enter или Shift+F3 - предыдущее вхождение

##### [WarningMessage] (Автор: VladVRO)

Добавлена возможность настроить отображение предупреждения для информационных событий редактора (warning), сообщения задаются параметрами:
warning.findwrapped.message=текст сообщения
warning.notfound.message=текст сообщения
warning.wrongfile.message=текст сообщения
warning.executeok.message=текст сообщения
warning.executeko.message=текст сообщения
warning.nootherbookmark.message=текст сообщения

##### [AutoComplete] (Автор: mimir, VladVRO)

Функция автозавершения (Ctrl+I, Ctrl+Space) берет варианты завершения слова не только из соответствующего .api файла (как в оригинальном SciTE), но и из редактируемого текста.

##### [oem2ansi] (Автор: gansA)

Параметр output.code.page.oem2ansi=1 включает перекодировку текста, выводимого в окно консоли, из OEM в ANSI.
Это позволяет редактировать скрипт в кодировке win1251 и видеть его вывод в консоли в кодировке dos866 не прибегая к переключению.

##### [caret] (Автор: mimir)

Добавлена возможность настраивать ширину и цвет курсора индивидуально для каждого лексера, например, так:
caret.fore.$(file.patterns.cpp)=#FF0000
caret.width.$(file.patterns.cpp)=3
Это акктуально для тех, у кого для разных языков заданы принципиально отличающиеся цветовые решения, например, с разным (светлым и темным) фоном.

##### [BetterCalltips] (Автор: chupakabra)

Новые параметры в .properties
calltip.lexer.automatic
calltip.*.automatic
Yстановка этого параметра в 0 означает что не будет происходить автоматическое отображение окошка с calltip'ом при наборе текста, но останется возможность вызвать его вручную.
calltip.lexer.show.per.page
calltip.*.show.per.page
Возможность указать количество определений, отображаемых одновременно в calltip'е. Значение по умолчанию - 1.
calltip.lexer.word.wrap
calltip.*.word.wrap
Опция включает возможность переноса по словам длинных calltip'ов, её значение определяет максимальный размер строки calltip'а в символах, 0 означает что данная функция будет отключена.
Если окошко calltip'а по горизонтали выходит за пределы окна редактора (к примеру, если курсор находится близко к правой границе окна), то смещаем горизонтальную позицию calltip таким образом, чтобы на экране было видно максимальное количество информации.
Добавлена возможность указывать несколько диапазонов подсветки для окошка calltip'а, введены новые команды Scintilla для этих целей (SCI_CALLTIPADDHLT, SCI_CALLTIPCLEARHLT, SCI_CALLTIPUPDATEHLT)

##### [TextSizeMax for Dialog] (Автор: dB6)

Максимально допустимый размер строки в диалогах поиска и замены увеличен до 1024 байт.

##### [ignore_overstrike_change] (Автор: Дмитрий Маслов)

Новый параметр в .properties
change.overwrite.enable=0 включает режим игнорирования переключения режима вставка/замена.
При 1 или отсутствии этого параметра действует режим по умолчанию.
Добавлена возможность установить этот параметр через SCI_SETOVERTYPE
0 - режим вставки (дефолтный)
1 - режим заменты
2 - игнорировать переключение режима
3 - не игнорировать переключение режима (дефолтный)
(через SCI_SETOVERTYPE можно переключать режим независимо от установки игнорирования)

### Расширения

##### new [IndicatorsFillAlpha] (Автор: VladVRO)

Поправлен диапазон значений параметра прозрачности заливки метки (mark) для стиля ROUNDBOX, который может принимать значения от 0 до 255 под Windows OS.
Для работы с ним добавлен интерфейс в API редактора editor.IndicAlpha[num].

##### [ForthImprovement] (Автор: VladVRO)

Улучшены лексеры Forth и Crontab. Добавлен фолдинг и созданы дополнительные группы ключевых слов.
В лексере Forth исправлен алгоритм поиска закрывающего тега для строки [ ].

##### [BatchLexerImprovement] (Автор: VladVRO)

Значительно доработан лексер batch (используется для отображения пакетных файлов *.bat, *.cmd, *.nt).
Исправлена ошибка обработки круглой открывающей скобки.
Круглые скобки теперь отображаются стилем SCE_BAT_OPERATOR и по ним сделан фолдинг.
Добавлено три новых стиля:
- SCE_BAT_ENVIRONMENT используется для отображения переменных окружения вида %variable%,
- SCE_BAT_EXPANSION используется для отображения переменных окружения вида !variable!,
новый параметр в .properties lexer.batch.enabledelayedexpansion=1 включает подсветку переменных этого вида, по умолчанию она выключена.
- SCE_BAT_CLABEL используется для отображения указателей на метки вида :name,
Дополнительная информация в Issue 96.

##### [LocalizationFromLua] (Автор: VladVRO)

В SciTE Lua Scripting Extension добавлена новая команда:
scite.GetTranslation(s, [retainIfNotFound]), которая возвращает перевод строки s,
где retainIfNotFound - (по умолчанию true) указывает на возврат исходного значения в случае, если перевод не найден.
Переводы строк берутся из файла locale.properties.

##### [OnFinalise] (Автор: VladVRO)

Добавлено новое событие SciTE в Луа API OnFinalise(). Событие возникает при закрытии редактора.

##### [ABAP] (Автор: VladVRO)

Добавлен новый лексер для языка ABAP/4.

##### [EditorUnicodeMode] (Автор: VladVRO)

Добавлен новый параметр editor.unicode.mode в который редактор сохраняет текущее значение режима двухбитной кодировки, заданного одним из следующего множества значений: IDM_ENCODING_DEFAULT, IDM_ENCODING_UCS2BE, IDM_ENCODING_UCS2LE, IDM_ENCODING_UTF8, IDM_ENCODING_UCOOKIE.

##### [macro] (Автор: VladVRO)

Поддержка записи и воспроизведения макросов с помощью LUA

##### [OnMenuCommand] (Автор: VladVRO)

Добавлено новое событие SciTE - OnMenuCommand (msg, source)
msg - id функции (SCI_constant)
source - является вторым входным параметром внутренней функции редактора MenuCommand.
Он может быть равным IDM_SRCWIN (350) - окно редактора, или IDM_RUNWIN (351) - окно вывода, или еще чему-то тому, где находится фокус.

##### [OnSendEditor] (Автор: VladVRO)

Добавлено новое событие SciTE - OnSendEditor (msg, wp, lp)
Параметры теже что и у функции SendEditor.
msg - id функции (SCI_constant)
wp и lp - входные параметры для этой функции, причем wp - числовой параметр, lp - текстовый. В зависимости от функции они могут использоваться или нет.
OnSendEditor вызывается для команд доступных для записи в макрос и для SCI_SETREADONLY.
Пример вызова скрипта для смены регистра:
function OnSendEditor (msg)
if msg == SCI_UPPERCASE then
ChangeCase("U")
elseif msg == SCI_LOWERCASE then
ChangeCase("L")
end
end

##### [OnClick] (Автор: Дмитрий Маслов)

Добавлено новое событие SciTE OnClick(). Событие возникает при одиночном клике мыши в окне редактирования или в окне консоли.
Получает в строке параметров состояния клавиш-модификаторов (Shift, Ctrl, Alt):
function OnClick(shift, ctrl, alt)

##### [OnDoubleClick] (Автор: mimir, Дмитрий Маслов)

Событие OnDoubleClick(), теперь получает состояния клавиш-модификаторов (Shift, Ctrl, Alt):
function OnDoubleClick(shift, ctrl, alt)

##### [OnKey] (Автор: Дмитрий Маслов)

Расширена функция луа OnKey, теперь в нее передается также нажатый символ:
function OnKey(key, shift, ctrl, alt, char)

##### [OnMouseButtonUp] (Автор: VladVRO)

Добавлено новое событие SciTE OnMouseButtonUp(). Событие возникает при отжатии кнопки мыши в окне редактирования или в окне консоли.
Получает в строке параметров состояние клавиши-модификатора Ctrl:
function OnMouseButtonUp(ctrl)

##### [MouseClickHandled] (Автор: VladVRO)

Добавлено новое сообщение SCI_SETMOUSECAPTURE для ядра Scintilla, позволяющее менять реакцию на события от мыши.
С его помощью можно сообщить ядру, что нажатие кнопки мыши обработано.
Пример: SendEditor(SCI_SETMOUSECAPTURE, 0)
Такое сообщение теперь отправляется, если OnClick() или OnDoubleClick() возвращает true.

##### [Perform] (Автор: VladVRO)

В SciTE Lua Scripting Extension добавлена новая команда
scite.Perform(actionList) - исполняет команды SciTE Director Interface
где actionList - одна или несколько команд разделенных символом новой строки.

##### [ReloadStartupScript] (Автор: VladVRO)

В SciTE Lua Scripting Extension добавлена новая команда
scite.ReloadStartupScript() - которая позволяет перезагрузить стартовый Луа скрипт

##### [GetLexerLanguage] (Автор: Дмитрий Маслов)

Добавлено сообщение к Scitilla позволяющее получить имя текущего лексера:
Теперь editor.LexerLanguage - позволяет как установить лексер, так и получить текущий

##### new [GetWordChars] (Автор: Дмитрий Маслов, VladVRO)

Добавлено сообщение к Scitilla позволяющее получить текущий набор символов являющихся частью слов:
Теперь editor.WordChars - позволяет как задать набор, так и получить текущий

##### [GetAPIPath] (Автор: dB6)

APIPath - новая внутренняя переменная SciTE. Cодержит путь к текущему api файлу.

##### [GetAbbrevPath] (Автор: dB6)

AbbrevPath - новая внутренняя переменная SciTE. Cодержит путь к текущему abbrev файлу.

##### [BufferNumber] (Автор: VladVRO)

BufferNumber - новая внутренняя переменная SciTE. Cодержит номер текущего буфера.

##### [AbbrevRefactoring] (Автор: Дмитрий Маслов)

В SciTE Lua Scripting Extension добавлена новая команда
InsertAbbreviation(string)
где "string" - это текст, по формату аналогичный сокращениям (abbrev), например:
scite.InsertAbbreviation("<a href="|" title="">%SEL%</a>")

##### [ParametersDialogFromLua] (Автор: VladVRO)

В SciTE Lua Scripting Extension добавлена новая команда для вызова диалогового окна "Параметры" (Shift+F8)
scite.ShowParametersDialog(text)
где text - короткий комментарий в окне параметров.
Возвращает false если пользователь отказался (нажал отмену или Escape) иначе true.
Пример:
function Dialog()
props["1"]=props["CurrentSelection"]
props["2"]=props["SciteDefaultHome"]
if scite.ShowParametersDialog("Please set params") then
print ("1="..props["1"].."\n2="..props["2"].."\n3="..props["3"].."\n4="..props["4"])
else
print ("Cancel")
end
end

##### [FileAttr in PROPS] (Автор: Midas)

Теперь из скриптов доступны дополнительные свойства файла
FileAttr, FileTime, FileDate.

##### [CalltipBreaks] (Автор: Mitchell Foral)

Длинные всплывающие подсказки можно перенести на другую строку (добавлением символа \n в соответствующую строчку в api-файле)

##### [Euphoria] (Автор: M Duffy, Midas)

Добавлен новый лексер для языка Euphoria

##### [C_Word] (Автор: mimir)

Добавлено 3 новых класса ключевых слов для LexCpp (т.е. теперь можно задавать до 4х дополнительных наборов слов с разной подсветкой)

##### [PropsKeysSets] (Автор: VladVRO)

Добавлено 4 класса ключевых слов для лексера props.
Tеперь можно задавать до 4х дополнительных наборов слов с разной подсветкой, причем слова могут содержать символ ~, означающий произвольный набор символов, например block.start.~ или braces.~.style.
В результате постоянная часть переменной будет выделена одним цветом, а переменная часть - другим.

##### [PropsKeywords] (Автор: VladVRO)

Добавлена подсветка для ключевых слов "import" и "if" в файлах .properties.

##### [GetApplicationProps] (Автор: VladVRO)

Новая функция SciTEBase::GetProps() (для разработчиков) позволяет получить доступ к настройкам редактора в любом месте кода редактора.

##### [Zoom] (Автор: Дмитрий Маслов)

Теперь в функцию OnSendEditor передается событие SCI_SETZOOM, возникающее при изменении размера шрифта.

### Устранение ошибок

##### new [Reloads if old time] (Автор: UR4LTZ)

Если отредактированный файл был заменен первоначальной (более ранней по времени) версией, то SciTE не замечал подмены, несмотря на установку load.on.activate=1

##### [ExtensionThreadFix] (Автор: qvaclav)

Исправлено ошибочное размножение запущенного скрипта Lua

##### [PropsColouriseFix] (Автор: VladVRO)

Исправлена подсветка синтаксиса в файлах настроек для длинных строк (более 1024 символов) и строк с символом переноса.

##### [LuaLexerImprovement] (Автор: VladVRO)

Переделан лексер для языка Lua.
Теперь символы ":" и "." обрабатываются в качестве разделителя сложного объекта. В настройках ключевых слов лексера как и ранее можно указывать слова вида string.sub или editor:append, и кроме того можно задать функции или поля объекта, например :GetText или .Cursor.

##### [GoMessageImprovement] (Автор: VladVRO)

Сделано перемещение фокуса в окно редактора после позиционирования на строке при клике мышкой в окне консоли на строке с ошибкой или результатом поиска.
Использована доработка [OnMouseButtonUp].

##### [fix_invalid_codepage] (Автор: Дмитрий Маслов)

Исправлена ошибка при которой не работало переключение в кодировку по умолчанию, если параметр code.page был задан неверно. (подробности)

##### [English_KeyCode] (Автор: Дмитрий Маслов)

Исправлена ошибка при которой назначенные шорткаты переставали работать после переключения раскладки клавиатуры. (подробности)

##### [InputErr] (Автор: mimir)

Исправлена ошибка зависания SciTE при использовании command.input.
Если пользователь забыл выделить текст перед запуском скрипта, то SciTE зависал.

##### [SelectionErr] (Автор: mimir)

Исправлена ошибка с выводом текста по command.input и $(CurrentSelection) исключительно в кодировке UTF-8.
Это не позволяло передать русский текст во внешний скрипт или программу.

##### [StyleDefault] (Автор: VladVRO, Дмитрий Маслов)

Убраны дефолтовые значения цвета символов (черный) и фона (белый), что позволяет не задавать их явно в файлах настройки во всех стилях для получения соответствующего фона при экспорте файла.
Если в style.*.32 явно не задан цвет символов и фона, то эти параметры берутся из настроек Windows, т.е. равными системным Window Text/Background.

##### [LowerUpperCase] (Автор: Midas, VladVRO)

Корректная работа с русскими символами
- при переводе в нижний/верхний регистр,
- при поиске без учета регистра
- при поиске с использованием регулярных выражений

##### [FindInFiles] (Автор: dB6)

Выделенный текст вставлялся в диалог поиска в файлах исключительно в кодировке UTF-8, поэтому русский текст превращался в "крякозяблы".

##### [find_in_files_no_empty] (Автор: Дмитрий Маслов)

Поиск текста в файлах теперь не запускается если в строку поиска ничего не ввели. (Issue 52).

##### [FileReaderUnlimitedLen] (Автор: VladVRO)

Убрано ограничение на длину строк во встроенном поиске по файлам. Раньше в длинных строках поиск работал только до 1001 символа, все остальное в строке игнорировалось.

##### [AbbrevFixCaretPos] (Автор: VladVRO, Дмитрий Маслов)

Исправлено позиционирование курсора при вставке сокращения (insert abbreviation).
Ошибка возникала в случае если в теле сокращения был один символ '|' и не было выделенного текста во время вставки.
Если в сокращении имелся символ \t то курсор так же позиционировался не верно.

##### [no_wornings] (Автор: Дмитрий Маслов)

Добавлена совместимость с компилятором Visual C++ 6.0
Убраны причины некоторых предупреждений при компиляции в Visual C++ 6.0
warning C4702: unreachable code

##### [SQLcase] (Автор: mimir)

В LexSQL добавлено слово "case" для начала фолдинга