LuaFAR — библиотека для создания плагинов на языке Lua

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Wed 29 Jul, 2009 21:41

Библиотека LuaFAR делает возможным написание плагинов на языке Lua, предоставляя им адаптированную версию FAR API.

Входит в состав FAR manager (начиная с 3.0 build 2851), и доступна для использования в макросах.

Справка по функциям библиотеки — luafar_manual.chm (в дистрибутиве, папка Encyclopedia).
Мануал весьма лаконичен, предполагает что вы ориентируетесь в FAR Plugins API (FarEncyclopedia.ru.chm, в дистрибутиве)

Дополнения к мануалу:

Полезное по теме: См. также:

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Tue 01 Sep, 2015 21:42

Latest post of the previous page:

Shmuel wrote: Как по мне, то можно оставить всё как есть.
Полез посмотреть я как же оно в c api, и... завис.
Возвращаемое значение
Функция возвращает или -1, если пользователь отменил меню, или номер выбранного элемента меню.
Т.е. вижу что возвращается номер пункта, и всё.
Хоть убей НЕ ПОНИМАЮ как же тогда (например) в меню плагинов после удаления одного или нескольких пунктов по Enter вызывается правильный плагин?!

P.S.
Видимо изнутри фара меню не то же самое, что доступно через апи плагинам.
И как ни крути far.Menu невозможно научить тому, чего нет в апи.

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Thu 03 Sep, 2015 15:03

А не поломалось ли колоночное апи? Или я не то делаю?

Code: Select all

Column types
N,<test>

Code: Select all

function export.GetContentFields(ColNames)
  for i,v in ipairs(ColNames) do
    if v:lower()=="test" then return true end
  end
end

function export.GetContentData (FilePath, ColNames)
  local data = {}
  for i,v in ipairs(ColNames) do
    if v:lower()=="test" then
      data[i] = "test"
    end
  end
  return next(data) and data
end
В результате колонка пустая.
(раньше вроде работало)

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Thu 03 Sep, 2015 16:16

Вы это, случайно, не в LuaMacro делаете? Если в нём, то работать и не должно, т.к. luamacro.dll не экспортирует соответствующие функции.

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Thu 03 Sep, 2015 16:40

Я использую выложенные вами шаблоны плагинов. И функции реально вызываются, хотя как-то странно...

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Thu 03 Sep, 2015 17:10

Сейчвс проверил на 3.0.4409 с вашим скриптом - работает.

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Thu 03 Sep, 2015 17:36

Что не всегда работает - это переход на данный режим из диалога настройки режима по CtrlEnter. Иногда работает сразу, иногда надо сначала сделать CtrlEnter из другого режима, затем повторить в данном. Раньше такого не замечал.
Отбой, я просто делал это неправильно.

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Thu 03 Sep, 2015 17:55

Shmuel wrote: Иногда работает сразу, иногда надо сначала сделать CtrlEnter из другого режима, затем повторить в данном.
Отображение заголовков включено?
При первом переходе режим панели устанавливается сразу, вот только панель не обновляется. Т.е. приходится жать CtrlR, чтобы заполнилась наша колонка.
Если в этой папке попереключать режимы дальше, то панель уже будет обновляться сама.
Но если перейти в другую папку, то всё по новой.

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Thu 03 Sep, 2015 18:14

John Doe wrote: Отображение заголовков включено?
Включено.
(Предыдущее сообщение отредактировано).

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Thu 03 Sep, 2015 18:19

А моё наблюдение подтверждаете? На мантис?

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Thu 03 Sep, 2015 18:37

John Doe wrote: А моё наблюдение подтверждаете? На мантис?
Не могу повторить, вроде всё работает без CtrlR. Распишите подробнее, по шагам, для тупых.

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Thu 03 Sep, 2015 18:50

С единственным плагином действительно не повторяется...
Буду искать "виновника" (пока что выяснил что это не luamacro)
Оказалось что и с единственным повторяется...

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Thu 03 Sep, 2015 20:39

Неверно указал способ воспроизведения.
Похоже надо переключаться не с Medium, а с какого-нибудь другого режима c custom-колонками.

P.S.
По шагам:

Есть созданный ранее режим "test".
Создаю ещё один custom-режим "asdf" N,<asdf>, и включаю его.
Перехожу в любую другую папку.
Открываю список режимов, выбираю "test", и жму CtrlEnter.
По заголовкам видно, что режим включился, но в колонках пусто.
Закрываю список режимов, жму CtrlR, и только после этого колонка заполняется.

http://bugs.farmanager.com/view.php?id=3083

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Thu 03 Sep, 2015 21:26

Воспроизвёл.
На мантис, проект=Far Manager.

User avatar
John Doe
Бюрократ
Posts: 11383
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 16 times
Been thanked: 100 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe » Sat 05 Sep, 2015 00:10

Для чего lua-плагины экспортируют GetMinFarVersionW?
Вроде бы в Far 3 это не требуется.

Edit:

Code: Select all

// This is exported in order not to crash when run from under Far 2.0.xxxx
// Minimal Far version = 3.0.0
Для чего такое может понадобиться?

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Sat 05 Sep, 2015 14:06

John Doe wrote: Для чего такое может понадобиться?
Это перестраховка от падения при запуске из-под Far2. Типа, пусть лучше будет сообщение о неправильной версии, чем падение. Практика, однако, показала, что за всё время у меня такого случая не было ни разу.

User avatar
HaRT
Moderator
Posts: 8105
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by HaRT » Fri 09 Oct, 2015 18:56

Вот что я сейчас словил: “PANIC: unprotected error in call to Lua API (attempt to call a nil value)
Image
Траплог не нашёл. Воспроизвести падение пока не получается, но вдруг у авторов появятся какие-то идеи.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5222
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 150 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel » Fri 09 Oct, 2015 19:06

HaRT, этот макрос у вас не установлен?

Post Reply

Return to “Обсуждение макросов”