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

Разработка Far.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

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

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

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

IMHO, сейчас самый удачный момент для введения данной технологии, если это будет признано полезным...
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

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

Post by t-rex »

ну так у нас для этого есть макросы
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

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

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

И всё именно потому что макрос привязан к клавише, а не к действию.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

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

С макросовым подходом целевая аудитория этого подхода была бы шире, чем если то же самое сделать через АПИ. А в АПИ по большому счету это все уже есть. Экпортируемые функи плагинов и реализуют интенты.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

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

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

Причем она выскакивает вне зависимости от того нажал я кнопку F5, выбрал пункт меню "Copy" или программно инициировал копирование через FarAPI.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Да, это тоже интересно и имеет смысл. Как бы о двух разных вещах получается идет речь, хоть и родственных. С макросами я как бы немного о другом влез, но все равно это было полезно, макросы тут пишут многие и легко могли бы получить пользу по своему вкусу. Плагины пишут не многие, все-таки.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

А, ты имеешь ввиду, что обработчиками таких событий могли бы быть и специально описанные макросы? Да, это тоже, наверное, имеет смысл...
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Ну да, была бы зона макросов Event и набор документированных событий и их параметров. По умолчанию Фар что-то делает по этим событиям, но если есть макрос, то зовет его. Макрос либо работает сам, либо вызывает $AEvent (как сейчас $AKey), чтобы отработала дефолтая обработка. А через макросы можно и плагины вызывать, если надо, но важно, что многие и без плагинов только макросами обойдутся, но сделают, что им надо.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

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

Хотя, один придумал: поддержка старых плагинов, которые не используют новое (гипотетическое) API привязки к событиям. Что бы они не были в пролете - их можно будет прикрутить макросами...
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

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

Post by Kildor »

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

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

xmpp:kildor@jabber.ru
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Юз кейс я тоже привел - как можно было бы подключить Network к Фару вместо того, как это сделано сейчас (гуид в generalconfig.db - интересно, кто-то когда-то захочет воспользоваться такой кастомизацией?)
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

NightRoman wrote:Юз кейс я тоже привел - как можно было бы подключить Network к Фару вместо того, как это сделано сейчас
Не, я исхожу из того, что подобные привязки будут происходить автоматом, без макросов. А макросы можно было бы писать для особых случаев, когда обычная обработка не устраивает.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

Kildor wrote:Жаль только, что этого не будет.
Ну почему же. Если идея в целом будет признана полезной, я бы мог сделать базовую реализацию в FAR. Только не хочется потом еще и уговаривать кого-то чтобы правки приняли. Поэтому хотелось бы обсудить сначала стоит ли за это браться.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

Мне идея нравится, в бис-сборку включу с удовольствием :D
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

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

Return to “Development”