Far 3 API Status

Разработка Far.
User avatar
zg
zero-gravity
Posts: 5312
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Far 3 API Status

Post by zg » Sat 03 Nov, 2012 17:25

1. Большая часть апи с билда фара 2922 переходит в состояние release. это значит, что в пределах версии 3 будут предпринято всё зависящее от разработчиков far, чтобы сохранить работу плагинов.
1.1. при этом нужно осознавать, что некорректно написанный плагин может работать в более старом фаре и перестать работать в более новом не по причине нарушение совместимости, а по причине своей некорректности. например:

Code: Select all

void     WINAPI FreeFindDataW(const FreeFindDataInfo* info)     { if (info && info->StructSize == sizeof(FreeFindDataInfo)) far_plugin::instance()->FreeFindDataW(info); }
1.2. так же нужно осознавать, что если какая-то функция не работала, то исправление её работы не является нарушением совместимости.
1.3. нетривиальная очерёдность и количество каких-либо событий не гарантируется. тривиальная очерёдность — это например приход FreeFindDataW после GetFindDataW, но при этом нет никаких гарантий, что не будет вложенных или накладывающихся вызовов GetFindDataW/FreeFindDataW.
2. апи, находящееся в статусе отличном от релиза:
2.1. GetCustomDataW и FreeCustomDataW. обсуждение.
2.2. ProcessConsoleInput.
3. новые функции в апи, которые будут добавляться в будущем по умолчанию имеют статус экспериментальных и об их стабилизации будет сообщаться дополнительно.

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Re: Far 3 API Status

Post by 2useven10 » Sat 03 Nov, 2012 18:03

3.1 ?

User avatar
zg
zero-gravity
Posts: 5312
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Re: Far 3 API Status

Post by zg » Sat 03 Nov, 2012 18:12

2useven10 wrote:3.1 ?
?

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Re: Far 3 API Status

Post by 2useven10 » Sat 03 Nov, 2012 18:15

не пора ли сменить номер версии?
add: то что есть сейчас уже очень сильно отличается от того, что было в феврале 2011-го.

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

Re: Far 3 API Status

Post by NightRoman » Sat 03 Nov, 2012 18:25

Хотелось бы чтобы SetDirectory когда-нибудь в будущем передавал в плагин не только имя элемента панели, но и указатель на его структуру UserData (имена не годятся в некоторых "сложных" панелях). Без ломки это можно будет сделать? Если нет, то еще это бы учесть сейчас.

User avatar
zg
zero-gravity
Posts: 5312
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Re: Far 3 API Status

Post by zg » Sat 03 Nov, 2012 18:48

2useven10 wrote:не пора ли сменить номер версии?
add: то что есть сейчас уже очень сильно отличается от того, что было в феврале 2011-го.
я не очень понимаю, откуда у всех такая фиксация на смене версий. версия сменилась на 3.0 именно потому, что планировались масштабные изменения. вот они более-менее закончились, вот он готовый far 3.0 для всех, но нет, надо сменить версию. зачем?
NightRoman wrote:Хотелось бы чтобы SetDirectory когда-нибудь в будущем передавал в плагин не только имя элемента панели, но и указатель на его структуру UserData (имена не годятся в некоторых "сложных" панелях). Без ломки это можно будет сделать? Если нет, то еще это бы учесть сейчас.
кто о чём, а вшивый о бане. во-первых у нас на форуме запрещен кропостинг вопросов в разные темы. во-вторых вопрос вроде как бы уже и обсуждали, и насколько я помню, проблема там отнюдь не в апи. в-третьих:

Code: Select all

intptr_t WINAPI SetDirectoryW(const struct SetDirectoryInfo *Info)
я не вижу никаких технических препятствий добавить в struct SetDirectoryInfo хоть 100500 новых полей, чтобы при этом текущие плагины не сломались.

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Re: Far 3 API Status

Post by 2useven10 » Sat 03 Nov, 2012 19:27

я не очень понимаю, откуда у всех такая фиксация на смене версий.
откуда такая фиксация на 3.0 :)
версия сменилась на 3.0 именно потому, что планировались масштабные изменения.
запланированные изменения по большому счёту сделаны. поэтому вполне логично было бы это подчеркнуть.

User avatar
zg
zero-gravity
Posts: 5312
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Re: Far 3 API Status

Post by zg » Sat 03 Nov, 2012 19:33

2useven10 wrote:поэтому вполне логично было бы это подчеркнуть.
подчёркнуто.

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Re: Far 3 API Status

Post by 2useven10 » Sat 03 Nov, 2012 20:07

ок, можно и так.

User avatar
Alexey Samlyukov
Posts: 1759
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 2 times
Contact:

Re: Far 3 API Status

Post by Alexey Samlyukov » Sun 04 Nov, 2012 11:41

Энциклопедия адаптирована, за исключением того, что указано в todo. В связи с тем, что писалось по типу "что вижу - то и пишу" необходимо авторам кода вычитать адаптацию, т.к. мое виденье кода может отличаться от задуманного автором.

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

Re: Far 3 API Status

Post by t-rex » Sun 04 Nov, 2012 21:57

commonapi/index.html потерялся где то (линк с главное страницы)

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

Re: Far 3 API Status

Post by t-rex » Sun 04 Nov, 2012 23:33

А зачем там в енц. везде просят проверять размер структур полученых от фара (что они больше или равны чем структуры плагина)?
Ведь и так плагин задаёт MinFarVersion в GetGlobalInfoW(), так что все эти проверки смысла не имеют.

User avatar
DrKnS
Posts: 4644
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Re: Far 3 API Status

Post by DrKnS » Sun 04 Nov, 2012 23:41

емнип, на случай появления "межплагинного взаимодействия", т. е. если структура вдруг пришла не от фара, а от какого-то плагина, не факт, что нового.

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

Re: Far 3 API Status

Post by t-rex » Mon 05 Nov, 2012 00:43

Не понял

User avatar
DrKnS
Posts: 4644
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Re: Far 3 API Status

Post by DrKnS » Mon 05 Nov, 2012 01:35

Ну типа вдруг экспорт вызовет не фар, а какой-то более другой плагин (напрямую или через какие-то будущие интерфейсы, хз), а структура у этого вызывающего плагина меньше, чем ожидается, как-то так.

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

Re: Far 3 API Status

Post by t-rex » Mon 05 Nov, 2012 08:51

1. Если это будет через интерфэйсы то напрямую никакие структуры передаваться не должны.
2. Если на прямую, то это как бы проблема вызывающего плагина ведь опять такие минфарвер сообщили.
Зачем прям в Енц. советовать делать кучу бесполезных движений которых нет ни в одном офф плагине и которые в текущем АПЙ довольно бесполезны?

Post Reply

Return to “Development”