Latest post of the previous page:
str_out, str_message = Plugin.Call(guid, "chunk", Editor.SelValue)Перенос макросов из прошлых версий фара в LuaMacro
Re: Spring — внедрение Lua в качестве макроязыка
Macro2Lua незнает функцию panelitem (я исползуюсь panelitem(0,i,8)). Какой ее lua эквивалент?
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Spring — внедрение Lua в качестве макроязыка
Луа не при чём, со времён Far 2 функция называется Panel.Item
http://api.farmanager.com/ru/macro/macr ... index.html
А вообще рекомендую macroapi_manual.chm (в поставке)
http://api.farmanager.com/ru/macro/macr ... index.html
А вообще рекомендую macroapi_manual.chm (в поставке)
Re: Spring — внедрение Lua в качестве макроязыка
Спасибо, но это документация для макроязыка для FAR2. LUA FAR3 API то же самое?
Panelitem какая то устаревшая функциа. Но макросы, каторые ее исползуют, постоянно работают (но Macro2Lua ее незнает). Имеют аргументы Panel.Item те же значения?
Panelitem какая то устаревшая функциа. Но макросы, каторые ее исползуют, постоянно работают (но Macro2Lua ее незнает). Имеют аргументы Panel.Item те же значения?
Re: Spring — внедрение Lua в качестве макроязыка
Если это был ответ на мой первий вопрос, то это грустно, что здес нет никакой документации для LUA FAR3 API.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Сколько таких, кто уже пересел на Far 3 с Far 2
Для тех макросов, конвертация которых обламывается, я использую такой хелпер:Shmuel wrote:В "плане миграции" упомянуто, что конвертер макросов часто обламывается[...]
Code: Select all
Macro {
area="Editor";
key="CtrlEnter";
description="*.macro convert";
filemask="*.macro";
action=function()
if not Object.Selected then Keys("CtrlA") end
local Macro=Editor.SelValue:gsub("\r","")
:gsub(";;([^\n]+)",function(s)
return ("%%Comment=%q;"):format(s:gsub('"','"')):gsub("\r","")
end)
local guid = "50b1abe5-91ba-478c-be2d-64366a81d47c"
local str_out, str_message = Plugin.Call(guid, "chunk", Macro)
if str_out then
if msgbox("[[ "..str_message.." ]]", str_out, 0x00000008)==1 then mf.clip(1,str_out:gsub('"','"')) end
else
msgbox("Error",Macro,0x1+0x8)
end
end;
}
Хелпер настроен на срабатывание в файлах *.macro
Запуск - CtrlEnter.
Обрабатывается выделенный блок, если нет - то выделяется весь файл.
В случае успеха результат выводится в msgbox, и доступен в буфере обмена.
В случае неуспеха - можно найти блок, на котором спотыкается.
У автора макролиба есть сходный хелпер: http://forum.farmanager.com/viewtopic.p ... 406#p99406
P.S.
Перед конвертацией необходимо ознакомиться не только с macroapi_manual.chm, но и (обязательно!) с readme.txt конвертера.
Re: Сколько таких, кто уже пересел на Far 3 с Far 2
Спасибо, воспользуюсь чуть позже. Если мне не изменяет мой склероз, $Text выпилили ещё из двойки, до 1807. Но в целом а) понятно, учту, б) в любом случае нужно изучать новый макроязык и его обвязку детально. А так вломммм.
А, и да, самые используемые и самые простые макросы наподобии BS = CtrlPgUp перетащил и уровень комфорта благодаря этому скакнул на порядок.
А, и да, самые используемые и самые простые макросы наподобии BS = CtrlPgUp перетащил и уровень комфорта благодаря этому скакнул на порядок.
Пользуюсь ФАРом больше 20 лет © собирательный.
Re: Ликбез по Луа
Перевел все макросы с помощью macro2lua v.07 из Far2
Далее нажал Ctrl. и записа макрос. Получил
area="Editor" key="AltR" flags="" description="" code="Keys("x")
Вставил вместо code то, что перевелось и что хотелось;
code="Keys("F11") if Menu.Select("FarColorer", 0) > 0 then Keys("Enter C Space Enter") else Keys("Esc") Keys("AKey") end"
При старте Фара 3.0.3235.0 получаю ошибку в макросе
"C:\Program Files (x86)\Far3\Profile\Macros\internal\Editor_AltR.lua:5: '=' expected near 'C'"
Буду признателен, чзн?
Далее нажал Ctrl. и записа макрос. Получил
area="Editor" key="AltR" flags="" description="" code="Keys("x")
Вставил вместо code то, что перевелось и что хотелось;
code="Keys("F11") if Menu.Select("FarColorer", 0) > 0 then Keys("Enter C Space Enter") else Keys("Esc") Keys("AKey") end"
При старте Фара 3.0.3235.0 получаю ошибку в макросе
"C:\Program Files (x86)\Far3\Profile\Macros\internal\Editor_AltR.lua:5: '=' expected near 'C'"
Буду признателен, чзн?
Docent1
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Ликбез по Луа
В первую очередь настоятельно рекомендую не пользоваться таким способом создания макросов, то-есть редактированием клавиатурных макросов. Лучше поставьте этот макрос и пользуйтесь им.Docent1 wrote:Code: Select all
code="Keys("F11") if Menu.Select("FarColorer", 0) > 0 then Keys("Enter C Space Enter") else Keys("Esc") Keys("AKey") end"
А код ваш не компилируется потому, что внутри закавыченного стринга есть незаэкранированные кавычки. Замените внешние кавычки " на одинарные ', должно помочь.
Re: Ликбез по Луа
Спасибо, Shmuel, наверняка lua хорош, но из головы уже вылезают всякие "языки и макросы" в виде шишек!
Docent1
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Ликбез по Луа
Если не ошибаюсь, это был твой первый пост по Lua-макросам? Что же ты хочешь: пришёл, увидел, победил? Так бывает редко. Язык Lua - очень простой на самом деле, так что иронии я не понял. Но если нужна будет помощь - всегда с удовольствием.Docent1 wrote:Спасибо, Shmuel, наверняка lua хорош, но из головы уже вылезают всякие "языки и макросы" в виде шишек!
Re: Ликбез по Луа
Shmuel
Заменил
Выдает ошибку:
F:\Program Files (x86)\Far3\Profile\Macros\internal\Editor_AltR.lua:103: '}' expected
(to close '{' at line 98) near 'if'
Может, есть какие соображения?
Придется все-таки изучать LUA.
Переписал твой фай в "F:\Program Files (x86)\Far3\Profile\Macros\internal\Editor_AltR.lua"Shmuel wrote:Если не ошибаюсь, это был твой первый пост по Lua-макросам? Что же ты хочешь: пришёл, увидел, победил? Так бывает редко. Язык Lua - очень простой на самом деле, так что иронии я не понял. Но если нужна будет помощь - всегда с удовольствием.Docent1 wrote:Спасибо, Shmuel, наверняка lua хорош, но из головы уже вылезают всякие "языки и макросы" в виде шишек!
Заменил
Code: Select all
Macro {
description="colorer on off";
area="Editor";
key="AltR";
flags="DisableOutput";
action=Keys("F11") if Menu.Select("FarColorer", 0) > 0 then Keys("Enter C Space Enter") else Keys("Esc") Keys("AKey") end;
}
F:\Program Files (x86)\Far3\Profile\Macros\internal\Editor_AltR.lua:103: '}' expected
(to close '{' at line 98) near 'if'
Может, есть какие соображения?
Придется все-таки изучать LUA.
Last edited by Docent1 on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [code]
Reason: [code]
Docent1