Latest post of the previous page:
В дистрибутиве фара забыли посмотреть?Перенос макросов из прошлых версий фара в LuaMacro
- John Doe
- Бюрократ
- Posts: 13867
- 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
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Ликбез по Луа
При чём тут вообще Lua
Посмотрите примеры макросов в Addons хотя бы
action=function() end;
Посмотрите примеры макросов в Addons хотя бы
action=function() end;
Re: Ликбез по Луа
Я перепробовал все варианты, в том числе и этот. В этом случае выдается ошибка, что это глобальный маккрос или типо того.John Doe wrote:При чём тут вообще Lua
Посмотрите примеры макросов в Addons хотя бы
action=function() end;
Docent1
Re: Ликбез по Луа
Code: Select all
Macro {
description="colorer on off";
area="Editor";
key="AltR";
flags="DisableOutput";
action=function()
Keys("F11")
if Menu.Select("FarColorer", 0) > 0 then
Keys("Enter C Space Enter")
else
Keys("Esc") Keys("AKey")
end;
end;
}
...s (x86)\Far3\Profile\Macros\internal\Editor_AltR.lua:98: attempt to call global
'Macro' (a nil value)
Last edited by Docent1 on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [code]
Reason: [code]
Docent1
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Ликбез по Луа
В internal нечего делать макросам (поиск по changelog поможет)
Отсюда и ошибка.
P.S.
Я проверил, ваш макрос (в последней его редакции) прекрасно работает.
Поместить надо в любой сабфолдер внутри Macros\scripts
Отсюда и ошибка.
P.S.
Я проверил, ваш макрос (в последней его редакции) прекрасно работает.
Поместить надо в любой сабфолдер внутри Macros\scripts
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Перенос макросов из прошлых версий фара в LuaMacro
Некоторые ньюансы.
DisableOutput уже не существует
А плагины лучше вызывать посредством Plugin.Menu и прочих функций того же семейства.
DisableOutput уже не существует
А плагины лучше вызывать посредством Plugin.Menu и прочих функций того же семейства.
Re: Перенос макросов из прошлых версий фара в LuaMacro
John Doe
Так бы и сказали, что нужно помещать их в scripts.
Shmuel
Спасибо за Lua! Да, это первая попыка "переползти" с Far2 на Far3 и я вижу уже что Lua дает многое!
Так бы и сказали, что нужно помещать их в scripts.
Shmuel
Спасибо за Lua! Да, это первая попыка "переползти" с Far2 на Far3 и я вижу уже что Lua дает многое!
Docent1
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Перенос макросов из прошлых версий фара в LuaMacro
Конвертер не любит символ CR.
Результат:
Code: Select all
local Macro1='%Comment="test1";\r\n%Comment="test1";\r\n'
local Macro2='%Comment="test1";\n%Comment="test1";\n'
local guid = "50b1abe5-91ba-478c-be2d-64366a81d47c"
far.Show(Plugin.Call(guid, "chunk", Macro1),Plugin.Call(guid, "chunk", Macro2))
Code: Select all
╔═══════════════════════╗
║ 1│ Comment="test1";♪ ║
║ │ Comment="test1";♪ ║
║ │ ║
║ 2│ -- test1 ║
║ │ -- test1 ║