LuaFAR for Editor
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaFAR for Editor
Здесь можно обсуждать плагин LuaFAR for Editor.
Анонс: http://forum.farmanager.com/viewtopic.p ... 412#p36412
Скрипты и пакеты:
Анонс: http://forum.farmanager.com/viewtopic.p ... 412#p36412
Скрипты и пакеты:
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
Исправлена неправильная сортировка вертикальных блоков.
http://luaforge.net/frs/download.php/38 ... _0.2.1.zip
http://luaforge.net/frs/download.php/38 ... _0.2.1.zip
Re: LuaFAR for Editor
Shmuel, а есть ли возможность повесить вызов lua-функции на хоткей минуя вызов меню? Или это из области фантастики?
Re: LuaFAR for Editor
при попытке вызвать os.popen('dir') плагин вылетает.
Т.к. я запускаю фар из под wine, я не знаю чья это ошибка, а возможности проверить под виндой у меня нет. Так что извините, если ложная тревога (:
Т.к. я запускаю фар из под wine, я не знаю чья это ошибка, а возможности проверить под виндой у меня нет. Так что извините, если ложная тревога (:
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
Нет, это реально, просто я думал, что раз можно сделать макросами Фара, то не стоит делать в плагине. Подумаю.maxdrfl wrote:Shmuel, а есть ли возможность повесить вызов lua-функции на хоткей минуя вызов меню? Или это из области фантастики?
Во-первых, io.popen, а во-вторых красный мессидж об ошибке ещё не означает, что плагин вылетел. Что конкретно у тебя означает "плагин вылетает"?maxdrfl wrote:при попытке вызвать os.popen('dir') плагин вылетает.
Т.к. я запускаю фар из под wine, я не знаю чья это ошибка, а возможности проверить под виндой у меня нет.
Code: Select all
local f = io.popen("dir")
local s = f:read("*all")
f:close()
far.Message(s,nil,nil,"l")
Re: LuaFAR for Editor
1) да, io. Это я в форуме опечатался.Shmuel wrote:Во-первых, io.popen, а во-вторых красный мессидж об ошибке ещё не означает, что плагин вылетел. Что конкретно у тебя означает "плагин вылетает"?maxdrfl wrote:при попытке вызвать os.popen('dir') плагин вылетает.
Т.к. я запускаю фар из под wine, я не знаю чья это ошибка, а возможности проверить под виндой у меня нет.Code: Select all
local f = io.popen("dir") local s = f:read("*all") f:close() far.Message(s,nil,nil,"l")
2) вылетает сразу, на строчке local f = io.popen("dir").
3) Вылетает --- это значит exception in lf4ed_emb.dll. Access violation.
Есть лог, но боюсь что это связано с wine, т.ч. нет смысла разбираться.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
У меня в XP - работает. Проверил на Windows 98 - не работает. Так что, io.popen - не вполне надёжная штука.maxdrfl wrote: 2) вылетает сразу, на строчке local f = io.popen("dir").
3) Вылетает --- это значит exception in lf4ed_emb.dll. Access violation.
Есть лог, но боюсь что это связано с wine, т.ч. нет смысла разбираться.
Re: LuaFAR for Editor
А если я добавляю два пункта меню, ссылающиеся на один файл
Файл зачитывается два раза или один?
Code: Select all
AddToMenu("Item1","file.lua","function1")
AddToMenu("Item2","file.lua","function2")
Можно в принципе заменить на такую конструкцию:Shmuel wrote:У меня в XP - работает. Проверил на Windows 98 - не работает. Так что, io.popen - не вполне надёжная штука.
Code: Select all
os.execute('dir>dir.out')
local f=io.open('dir.out')
f:read('*a')
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
При формировании меню - ни разу. При исполнении любого из этих пунктов меню - файл будет загружаться каждый раз. Это удобно для отладки.maxdrfl wrote:А если я добавляю два пункта меню, ссылающиеся на один файлФайл зачитывается два раза или один?Code: Select all
AddToMenu("Item1","file.lua","function1") AddToMenu("Item2","file.lua","function2")
Можно. Есть и другие варианты, связанные с добавлением соответствующих функций в LuaFAR, либо с использованием внешних библиотек.maxdrfl wrote:Можно в принципе заменить на такую конструкцию:Code: Select all
os.execute('dir>dir.out') local f=io.open('dir.out') f:read('*a')
LuaFAR for Editor
А как то можно обрабатывать пустые значения в колонках при сортировке ф-циями C NC ?
Vadim
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
Думаю, что можно. Покажи пример данных (хотя бы три строчки) и скажи, какая сортировка нужна.pult wrote:А как то можно обрабатывать пустые значения в колонках при сортировке ф-циями C NC ?
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
Вижу на данный момент три способа (сам пользуюсь первым из них):maxdrfl wrote:а можно путь к плагину добавить в package.path? А то если макрос разбит на несколько файлов, их приходится перемещать в %farhome%\lua.
1-й способ:
-- прописать в переменной окружения LUA_INIT файл, в котором устанавливаются package.path/package.cpath.
-- в одной из папок, прописанных в package.path создать подпапку far2, куда и помещать все фаровские луа модули
-- в луа скриптах делать так: require "far2.module_name"
2-й способ:
-- положить в %FARHOME% файл luafar_init.lua. LuaFAR запускает этот файл один раз при инициализации каждого "своего" плагина. В этом файле можно играться с package.path/cpath.
3-й способ:
-- тот, что ты применил.
Last edited by Shmuel on Tue 02 Dec, 2008 08:31, edited 1 time in total.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: LuaFAR for Editor
Ещё один способ, но хакерский: в начале скрипта (выше любого require) вставить следующий кусок:maxdrfl wrote:а можно путь к плагину добавить в package.path? А то если макрос разбит на несколько файлов, их приходится перемещать в %farhome%\lua.
Code: Select all
if not far["package.path.modified"] then
local path = far.PluginStartupInfo().ModuleName:match(".+[/\\]")
package.path = path .. "?.lua;" .. package.path
far["package.path.modified"] = true
end