Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Разработка Far.
lort
Posts: 33
Joined: Thu 25 Dec, 2008 19:42

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by lort »

Latest post of the previous page:

WARP ItSelf wrote:Дальнейшее обсуждение предлагается вести в следующем ключе: чего не хватает внешним плагинам/программам для полноценного управления Far'ом.
Сейчас из основного функционала не хватает аналогов mmode, clip, history.disable и функций работы с меню, предлагаю добавить:

Code: Select all

ACTL_ENABLEREDRAW, Param1=1 - разрешить перерисовку окна фара, Param1=0 - запретить перерисовку, Param1=-1 - получить текущее состояние
ACTL_ENABLEHISTORY - параметры аналогичные, разрешает/запрещает историю
ACTL_USEINTERNALCLIPBOARD - включает/выключает использование внутреннего буфера обмена


ACTL_GETMENUINFO - получить информацию о текущем меню, Param2 указывает на структуру:
struct FarMenuInfo
{
  size_t StructSize;
  GUID PluginId; //гуид плагина или фара
  GUID Id; //гуид меню
  size_t ItemsNumber; //элементов в меню
  size_t CurrentItem; //текущий элемент
};

ACTL_GETMENUITEM - получить элемент меню, Param1 - размер буфера, на который указывает Param2, Param2 - указатель на FarMenuItem. Возвращает нужный размер буфера
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Skirda »

На сколько верны утверждения:
1. сейчас сделано решение, когда текст макроса передается на интерпретацию в плагин по приватному АПИ
2. плагин является посредником между ФАРом и ядром интерпретатора языка.
3. для получения некоторой внутренней информации плагин обращается через приватное АПИ к FAR
4. отсутствует описание механизма взаимодействия Пользователь-ФАР-Макрос-Интерпретатор (негде прочитать, кроме ковыряния в коде ФАРа и плагина)
5. решение из п.1 завершенное (т.е. достаточно скорректировать структуру базы macros.db, добавив поле lang, немного изменить код ФАРа и можно "пристыковывать" по некоторым правилам другой язык)
6. решение из п.1 НЕ завершенное (оно притянуто за уши к одному языку почти так же, как и раньше, т.е. заточено именно под вызов LUA; "пристыковка" иного скриптового языка проблематична и требует серьёзных доработок)
We are the Borg. You will be assimilated.
So Say We All!
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by zg »

Skirda wrote:На сколько верны утверждения:
1. сейчас сделано решение, когда текст макроса передается на интерпретацию в плагин по приватному АПИ
да.
3. для получения некоторой внутренней информации плагин обращается через приватное АПИ к FAR
да.
4. отсутствует описание механизма взаимодействия Пользователь-ФАР-Макрос-Интерпретатор (негде прочитать, кроме ковыряния в коде ФАРа и плагина)
да.
5. решение из п.1 завершенное (т.е. достаточно скорректировать структуру базы macros.db, добавив поле lang, немного изменить код ФАРа и можно "пристыковывать" по некоторым правилам другой язык)
6. решение из п.1 НЕ завершенное (оно притянуто за уши к одному языку почти так же, как и раньше, т.е. заточено именно под вызов LUA; "пристыковка" иного скриптового языка проблематична и требует серьёзных доработок)
заточки именно под луа — нет. для реализации Keys (и может быть чего-то ещё) используются coroutines. coroutines есть много где. и не обязательно нужны они, подойдёт любой способ вернуть управление хосту, с возможностью возврата в той же точке.
Yegor
Posts: 1328
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Yegor »

Единственное что смущает, так это слово "приватное" возле слова "АПИ" (если такое действительно имеет место быть). Реально ли сейчас при текущем открытом АПИ сделать jsmacro прослойку (с минимальными ограничениями по сравнению с luamacro)?

EDIT: уточнил про "ограничения"
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by zg »

Yegor wrote:Единственное что смущает, так это слово "приватное" возле слова "АПИ" (если такое действительно имеет место быть).
оно есть ну прям очень давно. используется для взаимодействия с конкретными плагинами. первым был плагин network.
в случае луа приватность обусловлена в первую очередь тем, что до того состояния, когда это апи примет приличный вид — пилить ещё очень и очень долго.
Реально ли сейчас при текущем открытом АПИ сделать jsmacro прослойку (пусть с какими-то ограничениями)?
текущее положение lua в фаре выросло из плагина lua4editor, который с некоторыми ограничениями позволял и раньше писать некоторое подобие макросов на луа. если что-то подобное будет на каком-то другом языке, естественно можно будет рассматривать вопрос о более глубокой интеграции.
Post Reply

Return to “Development”