Расширение API - Intent

Разработка Far.
User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Расширение API - Intent

Post by Max Rusov » Mon 07 Mar, 2011 14:27

Предлагаю добавить в FAR 3 API понятие Intent (намерение) - мне кажется, что для такой системы как FAR,
чья функциональность практически в каждом аcпекте может быть расширена плагинами это было бы очень удобно.

Подробное описание данной идеи, удачно реализованной в платформе Android, можно посмотреть здесь:
http://developer.android.com/reference/ ... ntent.html

Вкратце: Вводится понятие "типовых действий" (Редактировать, Просмотреть, Скопировать, Искать и т.д.),
плагин, при регистрации, говорит, что он хочет обрабатывать такие-то действия (сообщает о намерении).
При возникновении необходимости выполнить данное действие FAR смотрит список всех зарегистрированных
обработчиков, и если их > 1 - выводит меню со списком и галочкой "использовать в дальнейшем".
Внутренний обработчик FAR (если он есть) - равноправен со всеми остальными, установленными плагинами.
Запомненная настройка может быть в любой момент сброшена через меню настроек (или при нажатии
волшебной клавиши, например выполнить команду, удерживая Shift...)

IMHO, сейчас самый удачный момент для введения данной технологии, если это будет признано полезным...

User avatar
t-rex
Страшный и ужасный
Posts: 4871
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

Re: Расширение API - Intent

Post by t-rex » Mon 07 Mar, 2011 22:27

ну так у нас для этого есть макросы

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

Re: Расширение API - Intent

Post by John Doe » Tue 08 Mar, 2011 19:24

Если на минуту забыть о целевой аудитории фара, то предложение интересное.

Кстати и для самих макросов тоже, а то сейчас приходится в каждый макрос пихать проверку а не открыта ли плагиновая панель, а если открыта, то реальные ли на ней файлы.

И всё именно потому что макрос привязан к клавише, а не к действию.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: Расширение API - Intent

Post by NightRoman » Wed 25 Jan, 2012 09:40

t-rex wrote:ну так у нас для этого есть макросы
Кажется, было бы хорошо для этого задействовать макросы. Но пока это не то, о чем автор говорит. Макросы покрывают класс операций описываемых 2-мя параметрами - зона и клавиша. А автор говорит об абстрактных событиях и возможно с параметрами. Например, событие/интент/как-угодно-назовите "перейти вверх с сетевой шары", параметр - путь этой шары. Сейчас Фар дергает плагин Network и это забито через гуид. А мог бы быть макрос в спец-зоне Event. Только бы еще параметры засылать в макрос уметь, а уж умельцы такие макросы напишут. В случае же с "перейти вверх с сетевой шары" Фар мог бы предоставлять аддон, что установит макрос, вызывающий Network (и я бы его себе не ставил, кстати, у нас такой нетворк обширный, что это операция долгая и малополезная, я бы что-то другое прицепил на эту операцию; ну это я так, просто для примера).

С макросовым подходом целевая аудитория этого подхода была бы шире, чем если то же самое сделать через АПИ. А в АПИ по большому счету это все уже есть. Экпортируемые функи плагинов и реализуют интенты.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Расширение API - Intent

Post by Max Rusov » Wed 25 Jan, 2012 09:47

Ну вообще-то хотелось бы для таких действий как раз обойтись без макросов. Допустим, ставлю я плагин копирования, нажимаю F5 и у меня выскакивает менюшка:

Копировать с помощью:
1. Far
2. Extended Copy
[ ] Использовать в дальнейшем

Причем она выскакивает вне зависимости от того нажал я кнопку F5, выбрал пункт меню "Copy" или программно инициировал копирование через FarAPI.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: Расширение API - Intent

Post by NightRoman » Wed 25 Jan, 2012 09:52

Да, это тоже интересно и имеет смысл. Как бы о двух разных вещах получается идет речь, хоть и родственных. С макросами я как бы немного о другом влез, но все равно это было полезно, макросы тут пишут многие и легко могли бы получить пользу по своему вкусу. Плагины пишут не многие, все-таки.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Расширение API - Intent

Post by Max Rusov » Wed 25 Jan, 2012 09:56

А, ты имеешь ввиду, что обработчиками таких событий могли бы быть и специально описанные макросы? Да, это тоже, наверное, имеет смысл...

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: Расширение API - Intent

Post by NightRoman » Wed 25 Jan, 2012 10:04

Ну да, была бы зона макросов Event и набор документированных событий и их параметров. По умолчанию Фар что-то делает по этим событиям, но если есть макрос, то зовет его. Макрос либо работает сам, либо вызывает $AEvent (как сейчас $AKey), чтобы отработала дефолтая обработка. А через макросы можно и плагины вызывать, если надо, но важно, что многие и без плагинов только макросами обойдутся, но сделают, что им надо.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Расширение API - Intent

Post by Max Rusov » Wed 25 Jan, 2012 10:11

По правде говоря я пока usecase'ов не вижу, но, наверное, они найдутся...

Хотя, один придумал: поддержка старых плагинов, которые не используют новое (гипотетическое) API привязки к событиям. Что бы они не были в пролете - их можно будет прикрутить макросами...

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Contact:

Re: Расширение API - Intent

Post by Kildor » Wed 25 Jan, 2012 10:31

Ещё один юзкейз — выполнить какие-то пре/пост действия.
Макрос что-то сделал, потом запустил обработчик, потом сделал что-то ещё.

Жаль только, что этого не будет.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: Расширение API - Intent

Post by NightRoman » Wed 25 Jan, 2012 10:35

Юз кейс я тоже привел - как можно было бы подключить Network к Фару вместо того, как это сделано сейчас (гуид в generalconfig.db - интересно, кто-то когда-то захочет воспользоваться такой кастомизацией?)

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Расширение API - Intent

Post by Max Rusov » Wed 25 Jan, 2012 10:47

NightRoman wrote:Юз кейс я тоже привел - как можно было бы подключить Network к Фару вместо того, как это сделано сейчас
Не, я исхожу из того, что подобные привязки будут происходить автоматом, без макросов. А макросы можно было бы писать для особых случаев, когда обычная обработка не устраивает.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Расширение API - Intent

Post by Max Rusov » Wed 25 Jan, 2012 10:53

Kildor wrote:Жаль только, что этого не будет.
Ну почему же. Если идея в целом будет признана полезной, я бы мог сделать базовую реализацию в FAR. Только не хочется потом еще и уговаривать кого-то чтобы правки приняли. Поэтому хотелось бы обсудить сначала стоит ли за это браться.

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Расширение API - Intent

Post by Maximus5 » Wed 25 Jan, 2012 12:52

Мне идея нравится, в бис-сборку включу с удовольствием :D

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Расширение API - Intent

Post by Max Rusov » Wed 25 Jan, 2012 12:55

Может ты, для начала, http://bugs.farmanager.com/view.php?id=1914 включишь?

User avatar
Kerberos464
Posts: 1238
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 times
Been thanked: 1 time

Re: Расширение API - Intent

Post by Kerberos464 » Wed 25 Jan, 2012 13:45

"свой фар с играми и дамами" =)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

Post Reply

Return to “Development”