LuaFAR for Editor

Здесь можно обсудить ваш любимый плагин.
User avatar
HaRT
Moderator
Posts: 8751
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 81 times
Been thanked: 148 times

Re: LuaFAR for Editor

Post by HaRT » Mon 15 Dec, 2008 13:14

Latest post of the previous page:

Shmuel
Только сейчас заметил, что LuaFar и LuaFar for Editor — это отдельные плагины. Правильно ли я понимаю, что второй — это фактически под-плагин для первого? Если нет, то как оно на самом деле?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Mon 15 Dec, 2008 15:57

HaRT wrote:Только сейчас заметил, что LuaFar и LuaFar for Editor — это отдельные плагины. Правильно ли я понимаю, что второй — это фактически под-плагин для первого? Если нет, то как оно на самом деле?
На самом деле так:

1. LuaFAR
Это не плагин вообще. Это - библиотека (luafar.dll), которой могут пользоваться плагины. Она имеет Си-интерфейс (для взаимодействия с плагинами) и Луа-интерфейс (для взаимодействия с Луа-скриптами). Одна luafar.dll может обслуживать произвольное количество плагинов.

Плагин (который на Си) обычно является простейшей оболочкой, которая переадресует фаровские вызовы экспортируемых ф-ций на luafar.dll, а она, в свою очередь, вызывает соответствующие функции из Луа-скриптов. Поскольку функциональность - в Луа-скриптах, то копии этого плагина-оболочки (он весит несколько KB) могут использоваться для разных плагинов.

2. LuaFAR for Editor
Это - плагин, набор утилит для редактора. Поначалу задумывался именно как набор утилит, затем стал ещё и мини-платформой для добавления новых утилит. То-есть, новую утилиту (написанную на Луа) можно добавить одной строчкой в файле _usermenu.lua, и сразу пользоваться, без перезагрузки Фара.

Для того, чтобы не морочить голову пользователю с установкой, всё встроено в одну DLL:
lua.dll + luafar.dll + "плагин оболочка" + утилиты на Луа.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Mon 22 Dec, 2008 14:30

А в каком случае появляется кнопка --- перейти на строку с ошибкой? Что-то я ошибки везде расставляю, но кроме OK ничего нет.

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Mon 22 Dec, 2008 14:35

maxdrfl wrote:А в каком случае появляется кнопка --- перейти на строку с ошибкой? Что-то я ошибки везде расставляю, но кроме OK ничего нет.
Дай, пожалуйста, пример.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Tue 23 Dec, 2008 07:36

Ни в одном из этих случаев не видел кнопки:
1) пишу 'dgdfh' в любой строке _usermenu.lua
2) пишу 'sdfj kjhf ljsdf' в пустом lua файле и пытаюсь выполнить как скрипт.
3) пишу 'sdf' в nav.lua, открываю другой файл и пытаюсь вызвать навигацию.

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Tue 23 Dec, 2008 14:34

1) _usermenu.lua - это особый случай, "системный" файл. Он должен быть простым, поэтому в нём можно обойтись без "интерактивной" отладки.

2) это можно будет поправить, подумаю

3) исправил, будет в след. версии

Если же ты хочешь уже сейчас увидеть, как выглядят эти новые кнопки и переходы на строку с ошибкой, вставь вызов error("foo") или assert(false, "bar").

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Tue 23 Dec, 2008 14:37

Shmuel wrote:1) _usermenu.lua - это особый случай, "системный" файл. Он должен быть простым, поэтому в нём можно обойтись без "интерактивной" отладки.
Это понятно. Просто я уже всё перебрал.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Mon 29 Dec, 2008 12:28

В последнем релизе отвалился searchmenu. Встроенный я не использую, он выключен. Используется локальная копия. Ты там ничего не менял?

А jump --- это просто обалденно (: . Может можно ещё в меню добавить кнопку F4 --- редактировать файл, связанный с текущим пунктом меню.

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Mon 29 Dec, 2008 13:13

maxdrfl wrote:В последнем релизе отвалился searchmenu.
Открой searchmenu.lua в редакторе и замени все VK_ на пустую строку. После этого должно заработать. (Это описано в разделе "incompatibilities" мануала LuaFAR).

Кроме этого, сейчас доступны все клавиши, включая те что с пунктуацией.
maxdrfl wrote:Может можно ещё в меню добавить кнопку F4 --- редактировать файл, связанный с текущим пунктом меню.
Положил в "wish list" :)

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Mon 29 Dec, 2008 13:18

Shmuel wrote:Открой searchmenu.lua в редакторе и замени все VK_ на пустую строку. После этого должно заработать. (Это описано в разделе "incompatibilities" мануала LuaFAR).
вот. В мане к lf4ed посмотрел incompatibilities, а в мане к lf, забыл (: .
Спасибо.

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Tue 30 Dec, 2008 09:47

Что касается знаков препинания и т.д.. Я не могу найти как их использовать. В файле service.cpp к символам кажется ничего нового не добавлено.

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Tue 30 Dec, 2008 10:08

Извиняюсь, конечно я мог указать это в предыдущем посте. На самом деле - добавлено, то-есть массив VirtualKeyStrings приведен (почти) в полное соответствие вот с этим:
http://api.farmanager.com/ru/winapi/vir ... codes.html

Другое дело, что эти клавиши имеют неинтуитивные названия, типа OEM_1, OEM_PLUS и т.д., но я не решился их сразу переименовать. Предложения принимаются :wink:

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Tue 30 Dec, 2008 10:22

точно, нашел. Спасибо.

позабавило: OEM_PA3 (:
надо добавить OEM_ДВА и т. д.
Shmuel wrote:Другое дело, что эти клавиши имеют неинтуитивные названия, типа OEM_1, OEM_PLUS и т.д., но я не решился их сразу переименовать. Предложения принимаются :wink:
С одной стороны с этим можно вообще не заморачиваться.
С другой, можно сделать таблицу, где интуитивно понятным названиям соответствуют интуитивно-непонятные. И в меню подставлять элементы таблицы, как это сделано с флагами.

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Sat 03 Jan, 2009 18:23

maxdrfl wrote:У меня в фаре при старте вызывается макрос, который вызывает пункт меню, утанавливающий некие переменные среды.
Раньше os.getenv() видел эти переменные. В последней версии перестал.
Попробуй приложенный файл: распакуй и положи туда, где у тебя lfs.dll. Дальше, в своём скрипте попробуй вместо os.getenv(var) поставить require("getenv")(var). Если будет работать, то в следующей версии LuaFAR это будет внутри, в виде far.getenv.
Attachments
getenv.zip
getenv.dll
(2.37 KiB) Downloaded 144 times

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: LuaFAR for Editor

Post by maxdrfl » Sat 03 Jan, 2009 19:22

работает.

Grey
Posts: 77
Joined: Wed 16 Mar, 2005 11:19
Location: Киев

Re: LuaFAR for Editor

Post by Grey » Wed 28 Jan, 2009 23:07

А можно выложить собранный LuaFAR плз

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

Re: LuaFAR for Editor

Post by Shmuel » Thu 29 Jan, 2009 06:26

Grey wrote:А можно выложить собранный LuaFAR плз
Выложил: http://luaforge.net/frs/?group_id=419

Post Reply

Return to “Обсуждение плагинов”