fl_scripts — набор скриптов для LuaFAR for Editor и LuaMacro

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
User avatar
Aidar
Posts: 524
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 7 times
Been thanked: 6 times
Contact:

fl_scripts — набор скриптов для LuaFAR for Editor и LuaMacro

Post by Aidar » Fri 28 Nov, 2008 17:37

FAR Lua scripts — набор скриптов для LuaFAR for Editor и LuaMacro

Внимание:
В связи с появлением макросов-аналогов скриптов набора fl_scripts мной больше не поддерживается.

Основные возможности:
  • Общие:
    • Список экранов.
    • Калькулятор (поддерживает пользовательские функции).
  • Редактор:
    • Smartkeys.
    • Поиск секций.
    • Вставка шаблонов для новых файлов.
    • Копирование верхнего/нижнего символа.
    • Навигация (поиск ассоциированных файлов).
    • Буфер обмена с произвольным количеством ячеек.
    • Расширенное выделение, Переход по выделению, Смещение выделения.
    • (Рас)Комментирование (с учётом типа файла, строчное и блочное).
  • Редактор:
    • Фильтр панели.
    • Работа с алиасами.
    • Быстрый переход по выделенным файлам.
  • Команды:
  • Калькулятор (lfe:calc).
  • Фильтр панели (lfe:filter).
  • Меню файловой системы для текущей папки (lfe:dir).
  • Примеры скриптов:
    • Кей-логгер.
    • Меню файловой системы.
    • Меню для адресной книги Opera.
Требуется:
LuaFAR for Editor или LuaMacro + UM Adapter, LuaFAR context.

Тестовая версия: http://raidar.github.com/Programs/FarSc ... fl_scripts
Ссылки:
Описание, GitHub, tags, zipball, master.zip.

User avatar
HaRT
Moderator
Posts: 8026
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Re: LuaFAR for Editor

Post by HaRT » Fri 28 Nov, 2008 21:37

maxdrfl wrote: Ради интереса и для пользоваться набросал скрипт, который делает две вещи:
--- Навигацию (как у TrueTemplate).
--- Открывает исходник, с именем как у хедера.

Для создания меню скрипт использует menu.lua из поставки luafar первой версии.
Для определения наличия файла скрипт использует luafilesystem:
http://www.keplerproject.org/luafilesystem/

Обнаружилось две проблемы:
1) Переменные среды, которыми пользуется LuaFar, видимо наследуются с момента запуска плагина. Т.е. если в процессе поменять несколько переменных, то LuaFar изменений не увидит. Перезагрузка плагина через Underscore не помогает.
2) Нет способа открыть немодальный редактор. Обидно, да (:
maxdrfl wrote:… и для пользоваться …
[...]
Открывает исходник, с именем как у хедера
А очень гибкий макрос не нравится?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5100
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

Re: LuaFAR for Editor

Post by Shmuel » Fri 28 Nov, 2008 22:24

maxdrfl wrote:Ради интереса и для пользоваться набросал скрипт, который делает две вещи:
[...]
Обнаружилось две проблемы:
[...]
Скрипт: работает! Сделал 2 маленькие правки (приложено).
Модулем menu.lua не стоит пользоваться: far.Menu имеет неплохой API сам по себе.
(Доки по LuaFAR API в процессе работы).

Проблемы:
1) переменные среды - это скорее всего проблема os.getenv, а не LuaFAR
2) немодальный редактор - исправил, теперь все флаги поддерживаются. Будет в следующей версии. Если хочешь уже - скажи куда выложить.
Attachments
nav2.zip
(1.19 KiB) Downloaded 227 times

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Sat 29 Nov, 2008 10:31

HaRT, неужели он быстрее и гибче чем макрос на lua?

Shmuel, знаю что работает (:.
Что касается исправлений --- могу подождать до релиза.

спасибо за правки.

User avatar
HaRT
Moderator
Posts: 8026
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Re: LuaFAR for Editor

Post by HaRT » Sat 29 Nov, 2008 16:29

maxdrfl
Ответил там.
Фар есть инструмент, а не нянька. © 2009 DrKnS

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Sat 29 Nov, 2008 20:34

HaRT, в данном случае ты прав --- в первую очередь дело привычки. С фаровскими макросами и реестром я стараюсь иметь дел как можно меньше.

Кроме того, открытие парного файла, это побочная функция. Её было легко добавить к навигации и при желании поиск на панелях тоже несложно добавить. Вообще lua дает на много больше возможностей чем макроязык фара, так что если начал что-то реализовывать на lua, нет смысла делать вставки на макросах.

Я хочу при помощи макросов lua заменить ряд плагинов, в которых меня что-либо не устраивает:
--- сделать пользовательское меню для редактора.
--- сделать компиляцию с переходом по ошибке. Существующие плагины меня не устраивают, т.к. не работают под линуксом с выводом линуксовых программ.
--- комментирование.
Несколько раздражает обилие плагинов для редактора, каждый из которых определяет тип файла и что-то настраивает --- это всё можно объединить.

User avatar
HaRT
Moderator
Posts: 8026
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Re: LuaFAR for Editor

Post by HaRT » Sat 29 Nov, 2008 20:49

maxdrfl wrote:каждый из которых определяет тип файла и что-то настраивает
Тогда, на мой взгляд, стоит задуматься о какой-либо интеграции с плагином [ESC]
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Wave
Posts: 1708
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

Re: LuaFAR for Editor

Post by Wave » Sat 29 Nov, 2008 22:09

Задуматься только если у [ESC] есть какая-то перспектива. Пока что под 1.8 он бьёт тексты. Будет ли кто-то патчить ФАР под него или Синтюрин плуг под ФАР?
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
t-rex
Страшный и ужасный
Posts: 4871
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

Re: LuaFAR for Editor

Post by t-rex » Sat 29 Nov, 2008 22:18

Wave
Чтоб что то патчить надо сначало знать в чём проблема. Если ты думаешь что те проблемы с которыми ты встречаешся всем известны то ты ошибаеся, бегом на мантис.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Mon 01 Dec, 2008 08:06

Немного оптимизировал навигацию:
+ поиск на панелях (с плагинами не дружит).
+ исключает из списка парные файлы.
+ в меню автоматически переходит на пункт, соответствующий текущей строке.
+ функция для навигации только по текущей строке.
+ определение типов файлов вынесено в отдельный макрос. Файл det_type.lua надо поместить в %farhome%\lua.

Больше обновлять не буду, пока не сделаю всё, что запланировал.
Shmuel, а можно путь к плагину добавить в package.path? А то если макрос разбит на несколько файлов, их приходится перемещать в %farhome%\lua.
HaRT wrote:Тогда, на мой взгляд, стоит задуматься о какой-либо интеграции с плагином [ESC]…
а зачем?

User avatar
HaRT
Moderator
Posts: 8026
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Re: LuaFAR for Editor

Post by HaRT » Mon 01 Dec, 2008 08:54

maxdrfl wrote:
HaRT wrote: Тогда, на мой взгляд, стоит задуматься о какой-либо интеграции с плагином [ESC]…
а зачем?
Чтобы было единое место для конфигурирования поведения редактора для разных типов файлов.
Фар есть инструмент, а не нянька. © 2009 DrKnS

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Mon 01 Dec, 2008 08:59

HaRT, а кто будет делать интеграцию ESC? (-:
Думаю, что конфигурирование поведения редактора для разных типов файлов можно тоже на lua реализовать. По крайней мере если lua4fareditor и Shmuel позволят, я это и сделаю. По крайней мере для себя.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Thu 11 Dec, 2008 12:43

вот, что накопилось из макросов.

det_type.lua --- простой определитель типа файла.
searchable_menu.lua --- меню с автопоиском. Знает буквы английского алфавита, backspace и Ins(любой символ).
Не знаю как различить нажатие BreakKey и не BreakKey. На данный момент просто проверяет наличие поля call у первого возвращаемого значения.
dialog.lua --- твой, чтобы далеко не бегать.
textable --- делает таблицы latex заданного размера. Пока никуда не прикрутил.

block.lua --- две функции: прыжок на начало и конец выделения.
calc.lua --- калькулятор. Обновленный.
comment.lua --- комментирование (использует det_type). Умеет делать как строчные так и блочные комментарии (как в xml).
При выделении вертикального блока может в каждой строке закомментировать строку от начала до конца блока.
Раскомментировать умеет пока только строчные комментарии.
nav.lua --- навигация. Использует автопоиск по меню и det_type.

Shmuel
Posts: 5100
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

Re: LuaFAR for Editor

Post by Shmuel » Thu 11 Dec, 2008 15:36

maxdrfl
Игрался с твоей подборкой. Спасибо за неё!
--- searchable menu: очень понравилось, но попробую его ещё улучшить.
--- калькулятор: мне кажется, нужно сделать, чтобы операции копирования и вставки не закрывали диалог.

По поводу терминологии: слово "макрос" приводит к некоторой путанице (с макросами Фара). Мне кажется, варианты "скрипт" и "утилита" являются более однозначными.

Думаю на днях выложить версии 0.4 луафар и плагина.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Thu 11 Dec, 2008 16:10

--- searchable menu: очень понравилось, но попробую его ещё улучшить.
Давай. На самом деле всё будет улучшаться по мере использования. Так, пока самое необходимое работает.
Кстати, а там ограничение в 31 BreakKey для меню принципиальное или нет?
--- калькулятор: мне кажется, нужно сделать, чтобы операции копирования и вставки не закрывали диалог.
Сначала так и было. Могу вернуть (:.

Shmuel
Posts: 5100
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

Re: LuaFAR for Editor

Post by Shmuel » Thu 11 Dec, 2008 19:14

maxdrfl wrote: Кстати, а там ограничение в 31 BreakKey для меню принципиальное или нет?
Не принципиальное. Уберу его. А что, кому-то может понадобиться больше?

Да, пожалуйста, восстанови у себя старую версию dialog.lua. "If it ain't broke, don't fix it".

Post Reply

Return to “Полезные макросы и скрипты”