Перенос макросов из прошлых версий фара в LuaMacro

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Перенос макросов из прошлых версий фара в LuaMacro

Post by John Doe »

В данной теме можно задавать вопросы по миграции макросов.

Macro2Lua конвертер [анонс] преобразует макросы с макроязыка в язык Lua 5.1.
Служит для облегчения переноса, но результат как правило требует коррекции!

Рекомендуется к прочтению:
  • macroapi_manual.ru.chm (в дистрибутиве, папка Encyclopedia)
    В первую очередь см. статью Изменения API в сравнении с макроязыком.
  • readme.txt конвертера macro2lua, читать полностью
Связанные обсуждения:
См. также:
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Если не ошибаюсь. С конвертером есть одна подлянка, которую надо иметь в виду, и после конвертации просмотреть макросы все равно. В Луа число 0 в местах, где логическое значение ожидается, трактуется, как true, а не как false в некоторых (или многих) других языках. (В Луа только false и nil трактуются как false).

Так что старое выражение типа

Code: Select all

$if (Plugin.Call(...)) ...
будет не совсем правильно сконвертировано в

Code: Select all

if Plugin.Call(...) then ...
правильно так:

Code: Select all

if Plugin.Call(...) ~= 0 then ...
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Max Rusov »

Так может лучше сделать, чтобы Plugin.Call возвращал True/False?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Max Rusov wrote:Так может лучше сделать, чтобы Plugin.Call возвращал True/False?
По мне True/False было бы вполне хорошо. (Но идея-то была вроде, что с int плагин больше инфы может в макрос вернуть.)
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Но "подлянка" не только с Plugin.Call, таких мест в не совсем тривиальных макросах найдется еще. Все равно надо эту особенность Луа иметь в виду после конвертации (если она не будет это делать сама).
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Ну это как девелоперы решат. По мне true|false было бы нормально в этом конкретном случае с Plugin.Call
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Skirda »

NightRoman wrote:правильно так:

Code: Select all

if Plugin.Call(...) ~= 0 then ...
или...

Code: Select all

if  Plugin.Exist(ColorerGUID) > 0 then 
Но все равно, да... подлянка.
Max Rusov wrote:
NightRoman wrote:Но идея-то была вроде, что с int плагин больше инфы может в макрос вернуть.
По факту сейчас - не может. А чтобы мог - планировалось RegisterMacroFunc (или как-то так)... Или на это теперь забили?
А смысл? Ты в луо-макросе можешь написать func...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Spring — внедрение Lua в качестве макроязыка

Post by Raistlin »

Shmuel wrote:В Macro2Lua конвертере пришлось проявить особую лояльность к переменной %Comment
Хм. А я комментарии в переменных %Rem размещаю. Перед конвертацией надо все переделывать? Может, задавать имя комментирующей переменной в комстроке?
Magically yours
Raistlin
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Raistlin wrote:
Shmuel wrote:В Macro2Lua конвертере пришлось проявить особую лояльность к переменной %Comment
Хм. А я комментарии в переменных %Rem размещаю. Перед конвертацией надо все переделывать? Может, задавать имя комментирующей переменной в комстроке?
1. Сделайте бэкап своих файлов
2. Из панелей вызовите плагин, делающий поиск и замену с регулярными выражениями: RESearch, LF Search, S&R.
3. Выставьте рег. выражение для поиска %Rem\b, для замены - %Comment
4. Произведите операцию.
5. Запустите M2L конвертер.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by John Doe »

Видел у двух пользователей, но вот уж не подозревал что использование %Comment для комментариев это распространённое явление.
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Re: Spring — внедрение Lua в качестве макроязыка

Post by Raistlin »

Shmuel wrote: 1. Сделайте бэкап своих файлов
2. Из панелей вызовите плагин, делающий поиск и замену с регулярными выражениями: RESearch, LF Search, S&R.
3. Выставьте рег. выражение для поиска %Rem\b, для замены - %Comment
4. Произведите операцию.
5. Запустите M2L конвертер.
Это все понятно. Непонятно, почему тогда вы так фантазировали на тему %Comment, а не посоветовали тот же путь.
Magically yours
Raistlin
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Max Rusov »

Прошу подсказать: какое решение сейчас есть для замены глобальных переменных, которые в старых макросах начинались на "%%"? Без сохранения между сеансами?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Max Rusov »

Еще, по поводу mf.msave / mf.mload. Как я понимаю, они сохраняют настройки в *.db файле плагина LuaMacro. Не лучше ли в Macro.db?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Max Rusov wrote:Прошу подсказать: какое решение сейчас есть для замены глобальных переменных, которые в старых макросах начинались на "%%"? Без сохранения между сеансами?
Старый макрос: %%Var
Новый макрос: _G.Var
Max Rusov wrote:Еще, по поводу mf.msave / mf.mload. Как я понимаю, они сохраняют настройки в *.db файле плагина LuaMacro. Не лучше ли в Macro.db?
Это делает плагин, а у него нет доступа к Macro.db. Вопрос по-видимому с точки зрения удобства переносимости?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Raistlin wrote:
Shmuel wrote: 1. Сделайте бэкап своих файлов
2. Из панелей вызовите плагин, делающий поиск и замену с регулярными выражениями: RESearch, LF Search, S&R.
3. Выставьте рег. выражение для поиска %Rem\b, для замены - %Comment
4. Произведите операцию.
5. Запустите M2L конвертер.
Это все понятно. Непонятно, почему тогда вы так фантазировали на тему %Comment, а не посоветовали тот же путь.
1. Это когда я фантазировал? (забыл вообще, когда последний раз фантазировал)
2. Кому я должен был посоветовать "тот же путь" ?
Эти вопросы без сарказма: мне совершенно непонятно, что вы хотели сказать.
Post Reply

Return to “Нужна помощь”