сделать стартовой  |  добавить в избранное

   SciTE - редактор кода для программистов

Реализация записи макросов с помощью LUA


Автор: VladVRO / Дата: 22.09.2006 / Комментариев: 5
Категория: SciTE, Полезные утилиты, LUA


В SciTE заложена поддержка записи, воспроизведения и работы со списком макросов, но реализует ее только внешнее приложение Filerx (Windows - SciTE Projects & Macros), что далеко не всегда удобно.

Подправив немного код я добавил интерфейс для расширений на LUA и написал скрипт реализующий запись макросов в память и воспроизведение любого из них, экспорт макросов в текстовое или LUA представление в текущий открытый буфер и считывание макросов в текстовом представлении из выделенного текста.


Установка:

Для использования нужно выполнить следующие действия:
1. либо скачать исходники редактора (версия 1.71) + подправленый код и пересобрать редактор, либо если у вас винда, то скачать бинарник под win32
2. скачать скрипт в папку с редактром и добавить в файл настроек строчку:

ext.lua.startup.script=$(SciteDefaultHome)\macro_support.lua

и строчки для меню:
# Считать макросы из выделения
command.name.30.*=Считать макросы из выделения
command.30.*=MacroLoadFromSelection
command.mode.30.*=subsystem:lua,savebefore:no

# Выгрузить макросы в буфер
command.name.31.*=Выгрузить макросы в буфер
command.31.*=MacroFillToBuffer
command.mode.31.*=subsystem:lua,savebefore:no

# Выгрузить макросы в буфер как LUA
command.name.32.*=Выгрузить макросы в буфер как LUA
command.32.*=MacroFillToBuffer LUA
command.mode.32.*=subsystem:lua,savebefore:no



Измененные файлы исходников редактора:
scite171src_updated.zip


Скомпилированный бинарник под win32:
scite171exe_updated.zip


Текст скрипта:
macro_support.lua

Версия для печати / Прочитано: 16099 раз(а)

Комментариев: 5 (rss)

1. mozers™ / 15.09.2006 - 09:22
Да... Это - крупный прорыв!
Пожалуй, один из самых серьезных за последние пол-года... а то и больше...
Рассуждений на эту тему звучало предостаточно, но никто до сей поры не реализовал это в натуре.
Браво, автор! :)
Очень бы хотелось задать несколько вопросов...
форуме это было бы удобнее :)
Цитата
2. VladVRO / 22.09.2006 - 09:03
Ну вот я и доработал скрипт. Опять пришлось лезть в код редактора и дополнять интерфейс для LUA. Теперь есть новая функция scite.Perform, через которую можно вызывать команды "SciTE Director Interface". И все из-за внутреней переменной редатора currentMacro, до которой можно добраться только из командной строки или через этот интерфейс... вобщем теперь я получил доступ :)
Так что качаем новую версию скрипта и новую версию редактора/кода
Цитата
3. VladVRO / 25.09.2006 - 07:38
! bug fix:
в скрипте обнаружен баг, возникающий при завершениии записи пустого макроса, редактор выдает ошибку:
startup_script.lua:47: attempt to concatenate local `name' (a nil value)
для исправления нужно поменять строчку 47 с:
scite.Perform("currentmacro:"..name)
на
scite.Perform("currentmacro:"..ifnil(name,""))
либо просто скачать обновленный файл скрипта
Цитата
4. VladVRO / 03.10.2006 - 09:17
(!) bug fix:
внесены исправления в файл скрипта startup_script.lua
теперь при выгрузке в текстовое представление и загрузке обратно коррекно обрабатывается перенос строки.
ремарка:
сменился способ записи текстового параметра, текст макросов сформированый старой версией скрипта не будет загружаться.
Цитата
5. VladVRO / 13.10.2006 - 07:46
(!) bug fix:
исправлена работа с рядом функций, использующими числовой или и числовой и текстовый параметры. все изменения относятся к тексту скрипта.

всвязи с тем, что изменения вошли в русскую сборку 1.71, то изменено имя скрипта на macro_support.lua.
Цитата


Добавить комментарий:
Имя:
E-mail:
        BBCodes




Интересные статьи / Тематические материалы © 2004 - 2017 - Хранение данных