Page 1 of 3

Far 3 API Status

Posted: Sat 03 Nov, 2012 17:25
by zg
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. новые функции в апи, которые будут добавляться в будущем по умолчанию имеют статус экспериментальных и об их стабилизации будет сообщаться дополнительно.

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 18:03
by 2useven10
3.1 ?

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 18:12
by zg
2useven10 wrote:3.1 ?
?

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 18:15
by 2useven10
не пора ли сменить номер версии?
add: то что есть сейчас уже очень сильно отличается от того, что было в феврале 2011-го.

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 18:25
by NightRoman
Хотелось бы чтобы SetDirectory когда-нибудь в будущем передавал в плагин не только имя элемента панели, но и указатель на его структуру UserData (имена не годятся в некоторых "сложных" панелях). Без ломки это можно будет сделать? Если нет, то еще это бы учесть сейчас.

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 18:48
by zg
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 новых полей, чтобы при этом текущие плагины не сломались.

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 19:27
by 2useven10
я не очень понимаю, откуда у всех такая фиксация на смене версий.
откуда такая фиксация на 3.0 :)
версия сменилась на 3.0 именно потому, что планировались масштабные изменения.
запланированные изменения по большому счёту сделаны. поэтому вполне логично было бы это подчеркнуть.

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 19:33
by zg
2useven10 wrote:поэтому вполне логично было бы это подчеркнуть.
подчёркнуто.

Re: Far 3 API Status

Posted: Sat 03 Nov, 2012 20:07
by 2useven10
ок, можно и так.

Re: Far 3 API Status

Posted: Sun 04 Nov, 2012 11:41
by Alexey Samlyukov
Энциклопедия адаптирована, за исключением того, что указано в todo. В связи с тем, что писалось по типу "что вижу - то и пишу" необходимо авторам кода вычитать адаптацию, т.к. мое виденье кода может отличаться от задуманного автором.

Re: Far 3 API Status

Posted: Sun 04 Nov, 2012 21:57
by t-rex
commonapi/index.html потерялся где то (линк с главное страницы)

Re: Far 3 API Status

Posted: Sun 04 Nov, 2012 23:33
by t-rex
А зачем там в енц. везде просят проверять размер структур полученых от фара (что они больше или равны чем структуры плагина)?
Ведь и так плагин задаёт MinFarVersion в GetGlobalInfoW(), так что все эти проверки смысла не имеют.

Re: Far 3 API Status

Posted: Sun 04 Nov, 2012 23:41
by DrKnS
емнип, на случай появления "межплагинного взаимодействия", т. е. если структура вдруг пришла не от фара, а от какого-то плагина, не факт, что нового.

Re: Far 3 API Status

Posted: Mon 05 Nov, 2012 00:43
by t-rex
Не понял

Re: Far 3 API Status

Posted: Mon 05 Nov, 2012 01:35
by DrKnS
Ну типа вдруг экспорт вызовет не фар, а какой-то более другой плагин (напрямую или через какие-то будущие интерфейсы, хз), а структура у этого вызывающего плагина меньше, чем ожидается, как-то так.