Обработчики событий: запуск макросов по событиям

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

Обработчики событий: запуск макросов по событиям

Post by John Doe »

Реализован запуск макросов по событиям (build 3157+), документация тут:

Данная статья в MacroAPI manual весьма лаконична, т.к. ссылается на LuaFAR manual, который в свою очередь ссылается на Far PluginAPI.
Скакать между различными файлами документации по меньшей мере неудобно (edit: уже появились гиперссылки, стало намного лучше).
Чтобы облегчить усвоение и без того непростого и фрагментированного материала я скомпоновал для себя информацию в одном месте.
  • result = export.ProcessViewerEvent (ViewerID, Event)
  • result = export.ProcessEditorEvent (EditorID, Event, Param)

    result = editor.SubscribeChangeEvent (EditorId, Subscribe)
  • result = export.ProcessEditorInput (Rec)
    Rec: table InputRecord
  • ret = export.ProcessDialogEvent (Event, Param)
Важно: Ограничения в использовании некоторых функций

Примеры обработчиков событий в готовых макросах:

Основная тема: LuaMacro — Lua как язык макросов
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by John Doe »

Latest post of the previous page:

Мне видится что различать выгрузку плагина и RecreateLuaState на практике вряд ли нужно, а если понадобится, то отличить можно анализируя эту самую переменную.
Поэтому я бы предложил ограничиться одним значением true/false (по смыслу UnloadMacro, или наоборот, TrueExit, имхо непринципиально)

P.S.
А вот что на практике надо, так это отличать окончание сессии фара от выгрузки плагина.
Но полагаю вы будете против, поскольку официально апи плагинов такого не предусматривает.
Last edited by John Doe on Mon 05 Sep, 2016 08:10, edited 1 time in total.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Обработчики событий: запуск макросов по событиям

Post by Shmuel »

John Doe wrote: отличить можно анализируя эту самую переменную
Всё гениальное просто.
John Doe wrote: А вот что на практике надо, так это отличать окончание сессии фара от выгрузки плагина.
Но полагаю вы будете против, поскольку официально апи плагинов такого не предусматривает.
Это можно сделать в рамках расширения API, т.к. ExitFARW() получает параметр-структуру, на данный момент пустую.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by zg »

а можно реальный сценарий, когда принципиально различать выгрузку плагина и выход из фара? а то мне фантазии даже на нереальный сценарий не хватает.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by John Doe »

zg wrote: а можно реальный сценарий
Реального пожалуй не знаю.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by zg »

John Doe wrote:Реального пожалуй не знаю.
к чему тогда это всё?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by John Doe »

Это ж обсуждение вроде?
Ещё раз обдумал возможные сценарии, и согласился с вами.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by zg »

John Doe wrote: Это ж обсуждение вроде?
какой смысл обсуждать фичу, практическая польза которой неясна?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by John Doe »

Отсутствие пользы выяснилось в процессе обсуждения. А сначала казалось польза есть.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Обработчики событий: запуск макросов по событиям

Post by ccaid »

Фар делают добрые люди
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Обработчики событий: запуск макросов по событиям

Post by Xerox »

zg wrote: Mon 05 Sep, 2016 12:25 какой смысл обсуждать фичу, практическая польза которой неясна?
Я считаю что
Фича находящаяся в гармонии с окружающим, создает благотворную экосистему и приятные чувства.
Или, иными словами, консистентный (предсказуемый) в поведении АПИ, является самоценным сам по себе
Ну например вот мы открываем некий хэндл.
соответственно, мы должны его закрыть, чтобы не болтался.
Даже если он и может закрыться сам по garbage collection или закрытию всех проги.
Ну если реализация не слишком затруднительна, то АПИ "для красоты" имеет право на обсуждениe,
даже если нет немедленной практической пользы,
я щитаю
Last edited by Xerox on Mon 09 Dec, 2019 16:13, edited 2 times in total.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Обработчики событий: запуск макросов по событиям

Post by zg »

Xerox wrote: Mon 09 Dec, 2019 16:13Фича находящаяся в гармонии с окружающим, создает благотворную экосистему и приятные чувства.
Или, иными словами, консистентный (предсказуемый) в поведении АПИ, является самоценным сам по себе
вы разные вещи пытаетесь выдать за одну, это демагогия. не делайте так.
Xerox wrote: Mon 09 Dec, 2019 16:13Ну например вот мы открываем некий хэндл.
соответственно, мы должны его закрыть, чтобы не болтался.
Даже если он и может закрыться сам по garbage collection или закрытию всех проги.
Ну если реализация не слишком затруднительна, то АПИ "для красоты" имеет право на обсуждениe,
даже если нет немедленной практической пользы,
я щитаю
вы не разобрались в вопросе, вырвали фразу из контекста, что-то там себе нафантазировали и привели пример. бесполезный. почти. он подтверждает мою точку зрения. не делайте так больше, читайте внимательно то, на что отвечаете.
Post Reply

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