Page 1 of 2

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

Re: Far 3 API Status

Posted: Mon 05 Nov, 2012 08:51
by t-rex
1. Если это будет через интерфэйсы то напрямую никакие структуры передаваться не должны.
2. Если на прямую, то это как бы проблема вызывающего плагина ведь опять такие минфарвер сообщили.
Зачем прям в Енц. советовать делать кучу бесполезных движений которых нет ни в одном офф плагине и которые в текущем АПЙ довольно бесполезны?