[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

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

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Wed 29 Jul, 2009 21:34

Пакет скриптов и утилит для LuaFAR for Editor.

Состав пакета:
  • Утилита "Пользовательское меню Lua" (LUM) — вывод меню с учётом типа файла.
  • Утилита "Прямоугольное меню" (RectMenu) — вывод меню в виде таблицы.
  • Общие скрипты:
    ~ Скрипт "Настраиваемое меню" (CustomMenu).
    ~ Скрипт "Фильтрационное меню" (FilterMenu).
    ~ Скрипт "Календарь" (Calendar).
    ~ Скрипт "Таблица символов" (CharsMap).
    ~ Скрипт "Меню из пунктов вывода символов" (CharsMenu).
    ~ Скрипт "Конфигуратор пакета Rh_Scripts" (rhsConfig).
  • Скрипты для редактора:
    ~ Скрипт "Текстовые шаблоны" (TextTemplate) — заменитель плагина "true macro processor".
    ~ Скрипт "Завершение слов" (WordComplete) — заменитель плагина "Word completion".
    ~ Скрипт "Усекатель пустоты" (VoidTruncate) — заменитель плагинов "Trucer" и "TruncateTXT".
    ~ Скрипты для использования скриптов в авторежиме.
  • Служебные скрипты для работы скриптов и утилит.




Требуется:
LuaFAR for Editor, LuaFAR context, для меню flsLUM — пакет fl_scripts.

Дополнительно:
  • Для работы с меню Tortoise SVN:
    1. Скопируйте файл "TortoiseSVN.cfg.example" в файл "TortoiseSVN.cfg" каталога %FarProfile%\data\scripts\Rh_Scripts\LuaPUM\config, если его там нет.
    2. Настройте параметры конфигурации в файле "TortoiseSVN.cfg".
  • Для таблицы символов:
    1. Скачайте файлы "NamesList.txt" и "Blocks.txt" с сайта "The Unicode Consortium" по ссылкам:
    http://www.unicode.org/Public/UNIDATA/NamesList.txt
    http://www.unicode.org/Public/UNIDATA/Blocks.txt
    2. Скопируйте скачанные файлы в каталог %FarProfile%\data\scripts\Rh_Scripts\data.
Текущая версия: PlugRing.
Ссылки:
Описание, GitHub, tags, zipball, master.zip.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

Re: LuaFAR for Editor

Post by Shmuel » Thu 30 Jul, 2009 10:21

Aidar wrote:Скрипт пользовательского меню в зависимости от файла
http://pmi-rai.narod.ru/Programs/FarUti ... serMenu.7z
Скрипт выводит пользовательское меню, связанное с группой файлов,
к которой принадлежит файл, открытый в редакторе.
Подробнее см. файл RhUserMenu 1_x.txt из архива.
1. В поставке недостаёт файла UM_Deft.lum (естественно, пользователь может добавить сам, но лучше включить).

2. В Lua-программах для хранения настроек и конфигураций обычно используют Lua-файлы (расширение при этом не обязано быть .lua), это гораздо удобнее и мощнее, чем ini-файл формат, к тому же не нужно писать функции парсинга.

3. В целом - хорошо для начала. :)
Last edited by HaRT on Tue 04 Aug, 2009 19:21, edited 1 time in total.
Reason: Часть сообщения перенесена в соответствующую тему

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Thu 30 Jul, 2009 22:08

1. Это демонстрационные версии ini- и lum-файлов - для тех, кто желает создавать свои файлы.
Но конкретные примеры конечно нужны.
Думаю для Html-файлов прописать шаблоны для стандартных тегов,
для исходных файлов на языках программирования то же что-то подобное сделать.
И в итоге повесить общие горячие клавиши на них. Тогда в зависимости от файла будет
использоваться нужный шаблон.
2. Ini-файл содержит привязку меню к файлам, а не конфигурацию скрипта.
Вопрос: как организовать это (в частности, название ini-файла и т.п.), чтобы пользователю было удобно.
В мануале об этом ничего нет.
3. выложена обновлённая версия под тем же названием:
Теперь для каждой группы поддерживается несколько файлов-меню.
Можно сделать общие меню и вставлять их для нужных групп.

По поводу LuaFar.
1. А исходники самого LuaFar for Editor будут выложены?
2. Скачал с одной из страниц набор скриптов.
Может, их тоже лучше выложить на LuaForge, чтобы знать об обновлениях.
Или я их просто не нашёл :) .

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

Re: LuaFAR for Editor

Post by Shmuel » Fri 31 Jul, 2009 10:11

2. Ini-файл содержит привязку меню к файлам, а не конфигурацию скрипта.
Вопрос: как организовать это (в частности, название ini-файла и т.п.), чтобы пользователю было удобно.
В мануале об этом ничего нет.
Не очень-то понял вопрос. Независимо от названия (будь то "конфигурация" или "привязка"), использование ini-файлов в новой Lua-программе выглядит, скажем так, неоптимальным. Есть много способов хранить данные в Lua-файлах, один из них описан здесь. Но - не будем на этом зацикливаться :)

-- применение tostring к 1-му аргументу far.Message - излишне
-- можно обойтись без reg-файла, просто сделать так:

Code: Select all

AddToMenu("e", "User &Menu", "Scripts/LuaUM/RhUserMenu.lua", "LuaUserMenu|Alt+F2")
По поводу LuaFar.
1. А исходники самого LuaFar for Editor будут выложены?
2. Скачал с одной из страниц набор скриптов.
Может, их тоже лучше выложить на LuaForge, чтобы знать об обновлениях.
Или я их просто не нашёл :) .
Исходники LuaFar for Editor постараюсь выложить в течение ближайшего месяца. Там надо изменить структуру директорий и привести мейкфайл в более приличный вид. (Только хочу подчеркнуть, что LuaFar for Editor не является необходимым для написания плагинов на Lua - LuaFar'а вполне достаточно.)

Скрипты, написанные не мной, могут быть выложены на LuaForge их авторами (если они сочтут нужным), как отдельные проекты. Если есть другие предложения - высказывайтесь.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Fri 31 Jul, 2009 19:08

Lua User Menu: небольшое обновление 1.0.2
http://pmi-rai.narod.ru/Programs/FarUti ... enu_1_x.7z
Основное изменение:
Можно использовать ключи вида: "Sequence"="Текст макроса".
Это упрощает перенос готовых макросов из reg-файлов.
По старой ссылке - версия 1.0.1

Code: Select all

AddToMenu("e", "User &Menu", "Scripts/LuaUM/RhUserMenu.lua", "LuaUserMenu|Alt+F2")
А если есть KeyMacros на этой клавише, что же на самом деле сработает. Явно не хватает хотя бы FAQ.
Видимо, авторы скриптов лучше разбираются в плагинах и Lua.

Вопрос по far.Menu: как получить BreakCode при использовании BreakKeys. Что-то по исходному коду не понял.

По скриптам:
Скрипты, написанные не мной, могут быть выложены на LuaForge их авторами (если они сочтут нужным), как отдельные проекты. Если есть другие предложения - высказывайтесь.
Думаю, с согласия авторов можно организовать пакет скриптов, выкладываемый на LuaForge,
там же выложить ссылки, откуда можно скачать обновления отдельных скриптов.
Неизвестно ведь, кому что нужно: весь пакет или отдельные скрипты.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Fri 31 Jul, 2009 19:24

Видимо, авторы скриптов лучше разбираются в плагинах и Lua.
Предложение неполное, не успел до конца набрать текст, так что извиняюсь, если получилось резко.
Просто я сам плагины не писал, посмотреть бы самые простые образцы (где-то на форуме уже просили :) ).
Так что взял более знакомый по STALKER'у язык Lua и написал скрипт, так как плагин Editor User Menu (EUM) глючный,
автор его, кажется, забросил, а исходников нет. Других аналогичных тоже нет.
Вот и сидишь с открытыми руководствами по LuaFar, Far Encyclopedia, Руководство по Lua (на русском) и Programming in Lua Иерусалимского -- и по-тихоньку методом тыка изучаешь :) . Это видно хотя бы по количеству far.Message в скрипте :) .

Насчёт первого параметра к far.Message: там может быть nil, а я вроде получил тогда "красное окошко".
Так что не стал выяснять, может с far.Message nil проходит нормально.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Thu 06 Aug, 2009 22:33

Lua User Menu: небольшое обновление 1.0.2
http://pmi-rai.narod.ru/Programs/FarUti ... enu_1_x.7z
Основные изменения:
- Использование псевдонимов в макросах (по аналогии с FarMacEx)
- Многострочные макросы при использовании " \" в конце строки

Shmuel пишет
Вопрос по far.Menu: как получить BreakCode при использовании BreakKeys. Что-то по исходному коду не понял.
Да, это сделано неинтуитивно. Нужно проверять поля (хотя бы одно из них) text и BreakKeys у возвращаемого значения. Хороший пример работы с break keys (хотя и неэлементарный) - файл searchmenu.lua из пакета maxdrfl.
Спасибо, посмотрю.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

Re: LuaFAR for Editor

Post by Shmuel » Fri 07 Aug, 2009 12:39

Aidar wrote:Lua User Menu: небольшое обновление 1.0.2
http://pmi-rai.narod.ru/Programs/FarUti ... enu_1_x.7z
Основные изменения:
- Использование псевдонимов в макросах (по аналогии с FarMacEx)
- Многострочные макросы при использовании " \" в конце строки
Не потому что я против публикации анонсов здесь, а просто для обсуждения:
может быть правильнее было бы завести отдельную тему в разделе "Анонсы новых плагинов"?

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Fri 07 Aug, 2009 22:31

Shmuel wrote:Не потому что я против публикации анонсов здесь, а просто для обсуждения:
может быть правильнее было бы завести отдельную тему в разделе "Анонсы новых плагинов"?
Я как раз думал, что может быть создать общую тему "Скрипты Lua Far и Lua Far for Editor"
в "Анонсы новых плагинов" и Обсуждение плагинов, чтобы не засорять эти разделы.
А здесь обсуждать вопросы и неясности возникающие при написании скриптов с самим плагином.
Но надо организовать доступ записи к этой теме в анонсах для всех lua-скриптописателей.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

Re: LuaFAR for Editor

Post by Shmuel » Sat 08 Aug, 2009 09:47

Aidar wrote:Я как раз думал, что может быть создать общую тему "Скрипты Lua Far и Lua Far for Editor" в "Анонсы новых плагинов" и Обсуждение плагинов, чтобы не засорять эти разделы. А здесь обсуждать вопросы и неясности возникающие при написании скриптов с самим плагином. Но надо организовать доступ записи к этой теме в анонсах для всех lua-скриптописателей.
Не думаю, что надо бояться "засорения" разделов, если за 7 последних месяцев появилось только 2 продукта под LuaFAR for Editor и ни одного под LuaFAR. Пользователю обычно до лампочки, на чём написан плагин, его интересует функциональность, удобство использования и т.п.

По-моему, каждый плагин нужно помещать в отдельную выделенную для него тему (будь то плагин 1-го или 2-го уровня, или набор скриптов, для пользователя это не суть важно). Иначе в одной теме будут анонсироваться (а в другой обсуждаться) продукты, у которых между собой нет ничего общего, кроме того, что они используют LuaFAR. Ну а что касается вопросов по LuaFAR (for Editor или нет), то для этого уже существуют выделенные темы в соответствующих разделах.

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

LuaUserMenu — Пользовательское меню (над LuaFar for Editor)

Post by maxdrfl » Sat 08 Aug, 2009 13:41

Здесь обсуждается LuaUserMenu — Пользовательское меню (скрипт для плагина LuaFar for Editor).
Aidar wrote:Lua User Menu: небольшое обновление 1.0.2
http://pmi-rai.narod.ru/Programs/FarUti ... enu_1_x.7z
Основные изменения:
- Использование псевдонимов в макросах (по аналогии с FarMacEx)
- Многострочные макросы при использовании " \" в конце строки
Спасибо за скрипт (:

Небольшая заметка: функция ParseFileName() не работает с именами содержащими больше одной точки (типа lf4ed_5.1.dll).
Предлагаю замену:

Code: Select all

 :match("^(.-[\\\/])(([^\\\/%.]*)%.([^\\\/%.]*))")
:match("^(.-[\\\/])(([^\\\/]*)%.([^\\\/%.]*))") 
Last edited by HaRT on Mon 10 Aug, 2009 09:34, edited 1 time in total.
Reason: Добавлена ссылка на анонс

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed]Rh_Scripts pack — пакет скриптов д/ LuaFAR for Editor

Post by Aidar » Sat 08 Aug, 2009 22:55

[анонс]
Last edited by Aidar on Wed 20 Mar, 2013 15:55, edited 37 times in total.

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

Re: LuaUserMenu — Пользовательское меню (над LuaFar for Editor)

Post by maxdrfl » Tue 11 Aug, 2009 03:27

Aidar, а будет ли возможность использовать макросы на Lua?
Т. е. описывать некую функцию в отдельном файле .lua, потом ассоциировать её с каким-либо пунктом меню?

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

Re: LuaUserMenu — Пользовательское меню (над LuaFar for Editor)

Post by Shmuel » Tue 11 Aug, 2009 08:00

maxdrfl wrote:Небольшая заметка: функция ParseFileName() не работает с именами содержащими больше одной точки (типа lf4ed_5.1.dll).
Предлагаю замену:

Code: Select all

 :match("^(.-[\\\/])(([^\\\/%.]*)%.([^\\\/%.]*))")
:match("^(.-[\\\/])(([^\\\/]*)%.([^\\\/%.]*))") 
Ну а как насчёт имён, не содержащих ни одной точки?
(Думаю, что для корректной обработки всех случаев, лучше разбить парсинг на 2 ступени: сначала выделение пути, а затем имени-расширения. При использовании PCRE, может и одной ступени бы хватило).

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

Re: LuaUserMenu — Пользовательское меню (над LuaFar for Editor)

Post by maxdrfl » Tue 11 Aug, 2009 10:09

:match("^(.-[\\\/])(([^\\\/%.]+)%.?([^\\\/%.]*))") ?

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

Re: LuaUserMenu — Пользовательское меню (над LuaFar for Editor)

Post by Shmuel » Tue 11 Aug, 2009 10:19

maxdrfl wrote::match("^(.-[\\\/])(([^\\\/%.]+)%.?([^\\\/%.]*))") ?
Мне не хотелось бы начинать дискуссию на эту тему (тем более, что off-topic). Данное выражение не обработает корректно имена, где отсутствует путь. Для регекспов Луа нужны 2 ступени.

Post Reply

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