zg 30.09.2012 03:26:20 +0200 - build 2851
1. слияние с проектом Spring (https://github.com/shmuz/Spring).
в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
после перехода на Lua: macroapi_manual.ru.chm.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
я спросил у ИИ: как переписать регулярное выражение ^([^:/]*://)?([^?#:/]*) используя lua pattern Он мне ответил:
Перевод в Lua pattern:
Lua patterns немного отличаются от PCRE (Perl Compatible Regular Expressions),
которые часто используются в других языках. Вот как мы можем переписать это
выражение в Lua:
просмотрел каждую функцию из luafar_manual.chm. ничего подходящего не увидел. их там много, мог зевнуть, но руководство смотрел. На форуме тоже пробовал искать, И даже в Far Faq заглянул.
gotar wrote: ↑Thu 09 Jan, 2025 21:39
Я точно знаю, что в Lua для Фар есть regexp. Как надо написать чтобы использовать регулярные выражения?
Я всё же отвечу, т.к. по документации это искать бесполезно, если не знать где искать.
Есть таблица regex; в ней есть функции match и (для повышения эффективности) new и exec. Также есть gmatch . Остальное - в документации
gotar wrote: ↑Thu 09 Jan, 2025 23:42
какой функцией выводить сообщение об ошибке из макроса?
far.Message с флагом 'w' или mf.msgbox с флагом 0x00000001
Судя по вопросам, Вы занялись написанием макросов, но не ориентируетесь. Я очень советую Вам установить мои скрипты Active-Help и LuaComplete Tabbed
Last edited by buniak_a_h on Fri 10 Jan, 2025 03:10, edited 1 time in total.
gotar wrote: ↑Fri 10 Jan, 2025 11:14
Что должна возвращать функция action макроса? Я помню что возвращаемое значение както обрабатывается или было предложение както его обрабатывать
Опциональное поле action – функция.
Если макрос успешно прошёл все предварительные проверки (область действия, флаги, маска файла, приоритет), то вызывается функция action.
Вызывается с одним аргументом: копией таблицы-аргумента функции Macro. Это та же самая таблица, которая передаётся вторым аргуметом в функцию condition.
и ничего о возвращаемом значении
Last edited by gotar on Fri 10 Jan, 2025 11:34, edited 1 time in total.
gotar wrote: ↑Fri 10 Jan, 2025 11:32
и ничего о возвращаемом значении
О возвращаемом значении action из макросов не слышал. Зато у обработчика событий результат значим. Его значение зависит от группы событий и типа. Например, для обработки группы DialogEvent:
Возвращаемое значение
1 - плагин самостоятельно обработал событие. Переменная ProcessDialogEventInfo.FarDialogEvent.Result будет использована в качестве возвращаемого значения обработчика диалога.
если функция обработки макроса вызвала другую функцию эта функция вызвала третью и т.д. и на большом уровне вложенности обнаружилось что продолжать обработку макроса из за ошибки бессмысленно. Есть ли другая возможность завершить макрос кроме как return из главной функции?