far.Host API
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
far.Host API
В LuaFAR появились несколько новых функций в таблице far.Host. Эти функции и сама таблица пока не документированы.
Данные функции внутри себя вызывают экспортируемые функции панельных плагинов (плагины не знают, что их вызывает не Фар).
Идея - восполнить недостающиее API для общения с панельными плагинами.
Приложенная утилита демонстрирует поиск из открытой плагиновой панели, например, панели Arclite, Observer, PortaDev.
Выкладываю с целью получить предложения/замечания и т.п. Сама утилита пока находится в статусе демо.
Данные функции внутри себя вызывают экспортируемые функции панельных плагинов (плагины не знают, что их вызывает не Фар).
Идея - восполнить недостающиее API для общения с панельными плагинами.
Приложенная утилита демонстрирует поиск из открытой плагиновой панели, например, панели Arclite, Observer, PortaDev.
Выкладываю с целью получить предложения/замечания и т.п. Сама утилита пока находится в статусе демо.
far.Host API
я как сторонник открытости и интегрированности всего со всем, горячо одобряю.
мне выглядит очень разумным направлением развития.
Наблюдаю следующие фунцкии:
1. FreeUserData
2. GetFiles
3. GetFindData
4. PutFiles
5. SetDirectory
то что стало можно писать в плагин (PutFiles) очень хорошо.
что можно теперь искать - GetFiles, GetFindData - очевидно, здорово, правильно.
Буняк недавно и безуспешно хотел получать список файлов из Обсервера,
теперь проблем с этим не будет ни в каком плагине я так понимаю.
SetDirectory - вроде и раньше можно было гулять по плагину через АПИ, но это я думаю будет способ попрямее.
Начал думать как это может помочь получить историю файлов открытых из плагинов (ArcLite) пока не придумывается,
планируется ли расширение АПИ и интеграции под эту задачу,
или это никак не связано ни сейчас, и не будет в будущем?
Довольно аналогичный вопрос - получать результаты "плагинового" поиска (АркЛайт) в панель (TmpPanel)?
Пока тоже не придумывается но наверное можно если подумать и подобавлять интеграции/АПИ
Заранее извиняюсь если чего-то неправильно понял
мне выглядит очень разумным направлением развития.
Наблюдаю следующие фунцкии:
1. FreeUserData
2. GetFiles
3. GetFindData
4. PutFiles
5. SetDirectory
то что стало можно писать в плагин (PutFiles) очень хорошо.
что можно теперь искать - GetFiles, GetFindData - очевидно, здорово, правильно.
Буняк недавно и безуспешно хотел получать список файлов из Обсервера,
теперь проблем с этим не будет ни в каком плагине я так понимаю.
SetDirectory - вроде и раньше можно было гулять по плагину через АПИ, но это я думаю будет способ попрямее.
Начал думать как это может помочь получить историю файлов открытых из плагинов (ArcLite) пока не придумывается,
планируется ли расширение АПИ и интеграции под эту задачу,
или это никак не связано ни сейчас, и не будет в будущем?
Довольно аналогичный вопрос - получать результаты "плагинового" поиска (АркЛайт) в панель (TmpPanel)?
Пока тоже не придумывается но наверное можно если подумать и подобавлять интеграции/АПИ
Заранее извиняюсь если чего-то неправильно понял
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
far.Host API
Это не связано, но это возможно сделать в Фаре или в плагине/макросе. По-видимому эта фича до сих пор вызывала мало интереса у разработчиков.
Тоже возможно, только для этого надо немножко расширить функциональность TmpPanel.
Есть правда отдельные вопросы, например, где открывать TmpPanel: если в активной панели, то закроется панель плагина, что не всегда желательно.
- zg
- zero-gravity
- Posts: 6036
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
far.Host API
нормальной поддержки OPEN_SHORTCUT в хотя бы актуальных плагинах. можно бы было немодальное редактирование сделать на панельных плагинах, но да.
far.Host API
для результатов файлкового поиска было бы разумным сделать две кнопки "В акт. панель" и "В пас. панель",
вместо одной "В панель" как сейчас.
и тогда народ пусть действительно поступает как хочет/как надо,
Как и некоторые плагины в кaких-то сценариях можно и свободно закрыть темп. панелью,
и наоборот может быть нужным не закрывать активную панель (даже если это не плагин),
а результаты поиска пихать в ненужную пассивную.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
far.Host API
1. Получение содержимого файлов.
2. Модификация (перезапись) файлов, добавление новых файлов, удаление файлов.
3. Создание папок, удаление папок.
4. API для поиска в архивах.
Возможно что-то ещё упустил.
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
far.Host API
Увы, видимо, с вопросом опоздал, но …
С плагином multiarc этот far.Host, вроде, не дружит.
С плагином multiarc этот far.Host, вроде, не дружит.
far.Host.GetFindData
, во всяком случае, возвращает nil- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
far.Host API
Теперь «документированы», но…
Пример.
Функция
far.Host.GetFiles
Второй параметр описан так:
На самом деле это:Items: table (array of tPluginPanelItem)
(а) не совсем
array of tPluginPanelItem
(в каждом элементе массива должны быть (!) ещё два не описанных поля ExtUserData
и FreeUserData
)(б) массив Items нельзя просто получить функциями panel.GetPanelItem и panel.GetCurrentPanelItem, которые возвращают массив (или одну) таблиц
tPluginPanelItem
, а обязательно требуется вызвать far.Host.GetFindData
. Без этого выгрузить файлы из контейнера у меня не получилось. Возможно, я что-то делал не так, но если то, что я написал - верно, то это должно быть отражено в документации. Я на это потратил 2 дня, убирая лишнее из приводимого примера.
Last edited by buniak_a_h on Sat 10 Apr, 2021 18:25, edited 2 times in total.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
far.Host API
buniak_a_h, far.Host - это была новая функциональность, которой я занимался немного больше одного месяца, и которая была прервана на полпути (в лучшем случае), когда я прекратил разработку. Сейчас не уверен, что этим кто-то занимается.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
far.Host API
А не могли бы вы вкратце описать что ещё планировалось сделать?
https://t.me/FarManager — Telegram чат
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
far.Host API
Идея была получить полное управление панельными плагинами из LuaFAR-плагина.
Это означает возможность говорить с плагинами на языке Far API.
Была реализована коммуникация только в части экспортируемых функций, и то, что реализовано, не было достаточно испытано и отшлифовано.
В коде всё можно видеть и получить ответы на вопросы, а в данной ветке есть пример применения.
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
far.Host API
Shmuel, я это понимаю, и не в претензии. Просто получается, что в описании недосказанность.
P/S. Надеюсь, эту тему читают те, кто имеет возможность дополнить описание функции
P/S. Надеюсь, эту тему читают те, кто имеет возможность дополнить описание функции
far.Host.GetFiles
(%FarHome%\Encyclopedia\luafar_manual.chm::/85.html).-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
far.Host API
buniak_a_h, дело не в претензиях, я их не боюсь
Мой ответ вам был, обратите внимвние, совсем не техническим, а описывающим общее положение дел с подсистемой far.Host.
А оно таково, что данная подсистема недоделана и недо-документирована, а я ею больше не занимаюсь. Это касается и поддержки.
Мой ответ вам был, обратите внимвние, совсем не техническим, а описывающим общее положение дел с подсистемой far.Host.
А оно таково, что данная подсистема недоделана и недо-документирована, а я ею больше не занимаюсь. Это касается и поддержки.