Расширение API - Intent
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Расширение API - Intent
Предлагаю добавить в FAR 3 API понятие Intent (намерение) - мне кажется, что для такой системы как FAR,
чья функциональность практически в каждом аcпекте может быть расширена плагинами это было бы очень удобно.
Подробное описание данной идеи, удачно реализованной в платформе Android, можно посмотреть здесь:
http://developer.android.com/reference/ ... ntent.html
Вкратце: Вводится понятие "типовых действий" (Редактировать, Просмотреть, Скопировать, Искать и т.д.),
плагин, при регистрации, говорит, что он хочет обрабатывать такие-то действия (сообщает о намерении).
При возникновении необходимости выполнить данное действие FAR смотрит список всех зарегистрированных
обработчиков, и если их > 1 - выводит меню со списком и галочкой "использовать в дальнейшем".
Внутренний обработчик FAR (если он есть) - равноправен со всеми остальными, установленными плагинами.
Запомненная настройка может быть в любой момент сброшена через меню настроек (или при нажатии
волшебной клавиши, например выполнить команду, удерживая Shift...)
IMHO, сейчас самый удачный момент для введения данной технологии, если это будет признано полезным...
чья функциональность практически в каждом аcпекте может быть расширена плагинами это было бы очень удобно.
Подробное описание данной идеи, удачно реализованной в платформе Android, можно посмотреть здесь:
http://developer.android.com/reference/ ... ntent.html
Вкратце: Вводится понятие "типовых действий" (Редактировать, Просмотреть, Скопировать, Искать и т.д.),
плагин, при регистрации, говорит, что он хочет обрабатывать такие-то действия (сообщает о намерении).
При возникновении необходимости выполнить данное действие FAR смотрит список всех зарегистрированных
обработчиков, и если их > 1 - выводит меню со списком и галочкой "использовать в дальнейшем".
Внутренний обработчик FAR (если он есть) - равноправен со всеми остальными, установленными плагинами.
Запомненная настройка может быть в любой момент сброшена через меню настроек (или при нажатии
волшебной клавиши, например выполнить команду, удерживая Shift...)
IMHO, сейчас самый удачный момент для введения данной технологии, если это будет признано полезным...
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Расширение API - Intent
Если на минуту забыть о целевой аудитории фара, то предложение интересное.
Кстати и для самих макросов тоже, а то сейчас приходится в каждый макрос пихать проверку а не открыта ли плагиновая панель, а если открыта, то реальные ли на ней файлы.
И всё именно потому что макрос привязан к клавише, а не к действию.
Кстати и для самих макросов тоже, а то сейчас приходится в каждый макрос пихать проверку а не открыта ли плагиновая панель, а если открыта, то реальные ли на ней файлы.
И всё именно потому что макрос привязан к клавише, а не к действию.
- 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
Кажется, было бы хорошо для этого задействовать макросы. Но пока это не то, о чем автор говорит. Макросы покрывают класс операций описываемых 2-мя параметрами - зона и клавиша. А автор говорит об абстрактных событиях и возможно с параметрами. Например, событие/интент/как-угодно-назовите "перейти вверх с сетевой шары", параметр - путь этой шары. Сейчас Фар дергает плагин Network и это забито через гуид. А мог бы быть макрос в спец-зоне Event. Только бы еще параметры засылать в макрос уметь, а уж умельцы такие макросы напишут. В случае же с "перейти вверх с сетевой шары" Фар мог бы предоставлять аддон, что установит макрос, вызывающий Network (и я бы его себе не ставил, кстати, у нас такой нетворк обширный, что это операция долгая и малополезная, я бы что-то другое прицепил на эту операцию; ну это я так, просто для примера).t-rex wrote:ну так у нас для этого есть макросы
С макросовым подходом целевая аудитория этого подхода была бы шире, чем если то же самое сделать через АПИ. А в АПИ по большому счету это все уже есть. Экпортируемые функи плагинов и реализуют интенты.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Расширение API - Intent
Ну вообще-то хотелось бы для таких действий как раз обойтись без макросов. Допустим, ставлю я плагин копирования, нажимаю F5 и у меня выскакивает менюшка:
Копировать с помощью:
1. Far
2. Extended Copy
[ ] Использовать в дальнейшем
Причем она выскакивает вне зависимости от того нажал я кнопку F5, выбрал пункт меню "Copy" или программно инициировал копирование через FarAPI.
Копировать с помощью:
1. Far
2. Extended Copy
[ ] Использовать в дальнейшем
Причем она выскакивает вне зависимости от того нажал я кнопку F5, выбрал пункт меню "Copy" или программно инициировал копирование через FarAPI.
- 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
Да, это тоже интересно и имеет смысл. Как бы о двух разных вещах получается идет речь, хоть и родственных. С макросами я как бы немного о другом влез, но все равно это было полезно, макросы тут пишут многие и легко могли бы получить пользу по своему вкусу. Плагины пишут не многие, все-таки.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Расширение API - Intent
А, ты имеешь ввиду, что обработчиками таких событий могли бы быть и специально описанные макросы? Да, это тоже, наверное, имеет смысл...
- 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
Ну да, была бы зона макросов Event и набор документированных событий и их параметров. По умолчанию Фар что-то делает по этим событиям, но если есть макрос, то зовет его. Макрос либо работает сам, либо вызывает $AEvent (как сейчас $AKey), чтобы отработала дефолтая обработка. А через макросы можно и плагины вызывать, если надо, но важно, что многие и без плагинов только макросами обойдутся, но сделают, что им надо.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Расширение API - Intent
По правде говоря я пока usecase'ов не вижу, но, наверное, они найдутся...
Хотя, один придумал: поддержка старых плагинов, которые не используют новое (гипотетическое) API привязки к событиям. Что бы они не были в пролете - их можно будет прикрутить макросами...
Хотя, один придумал: поддержка старых плагинов, которые не используют новое (гипотетическое) API привязки к событиям. Что бы они не были в пролете - их можно будет прикрутить макросами...
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Re: Расширение API - Intent
Ещё один юзкейз — выполнить какие-то пре/пост действия.
Макрос что-то сделал, потом запустил обработчик, потом сделал что-то ещё.
Жаль только, что этого не будет.
Макрос что-то сделал, потом запустил обработчик, потом сделал что-то ещё.
Жаль только, что этого не будет.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
- 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
Юз кейс я тоже привел - как можно было бы подключить Network к Фару вместо того, как это сделано сейчас (гуид в generalconfig.db - интересно, кто-то когда-то захочет воспользоваться такой кастомизацией?)
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Расширение API - Intent
Не, я исхожу из того, что подобные привязки будут происходить автоматом, без макросов. А макросы можно было бы писать для особых случаев, когда обычная обработка не устраивает.NightRoman wrote:Юз кейс я тоже привел - как можно было бы подключить Network к Фару вместо того, как это сделано сейчас
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Расширение API - Intent
Ну почему же. Если идея в целом будет признана полезной, я бы мог сделать базовую реализацию в FAR. Только не хочется потом еще и уговаривать кого-то чтобы правки приняли. Поэтому хотелось бы обсудить сначала стоит ли за это браться.Kildor wrote:Жаль только, что этого не будет.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Расширение API - Intent
Может ты, для начала, http://bugs.farmanager.com/view.php?id=1914 включишь?