Массовые захоронения возможностей в Plugin API

Разработка Far.
Post Reply
Nikolay
Posts: 558
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 18 times

Массовые захоронения возможностей в Plugin API

Post by Nikolay »

zg 13.03.2012 01:09:42 +0200 - build 2541

1. как было обещано, удалены ... ACTL_GETSYSTEMSETTINGS, ACTL_GETPANELSETTINGS, ACTL_GETINTERFACESETTINGS, ... ACTL_GETDESCSETTINGS, .... и ACTL_GETDIALOGSETTINGS.
Вопрос - почему некоторые из опций удосужились стать избранными (те, кто в CFG перекочевали в FSSF_*, отличные от FSSF_PRIVATE), подавляющее же большинство стало просто недоступными? Почему нельзя все опции опубликовать?
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Re: Массовые захоронения возможностей в Plugin API

Post by zg »

Nikolay wrote:Почему нельзя все опции опубликовать?
ответ на этот вопрос очевиден.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: Массовые захоронения возможностей в Plugin API

Post by Max Rusov »

zg wrote:ответ на этот вопрос очевиден.
Вообще то - нет.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Re: Массовые захоронения возможностей в Plugin API

Post by zg »

Max Rusov wrote:Вообще то - нет.
правда?
это ж так просто. в фаре порядка 300 настроек. если их всех опубликовать, то придётся их же всех поддерживать как минимум до 4-ой версии, если вдруг такая будет. хотя есть много мусора типа "EscTwiceToInterrupt". и вот завтра я решу её выкинуть, а как бы и нельзя.
или например "AnsiCodePageForNewFile". вот решит завтра DrKnS заменить эту опцию на выбор кодировки по умолчанию. и что делать? по апи-то она доступна была, кто знает, какой плагин отвалится?
Nikolay
Posts: 558
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 18 times

Re: Массовые захоронения возможностей в Plugin API

Post by Nikolay »

zg wrote:в фаре порядка 300 настроек.
1. Ну, изначально я имел в виду не все абсолютно настройки, а те несколько десятков, доступных ранее через удаляемые сейчас ACTL_GET* (потому и такое название темы, а не - "хочу все 300 настроек!").
2. Что до оставшихся сотен настроек - почему бы и к ним не дать доступ? Слом тонких настроек - это не глобальный слом API, поголовно все плагины не отвалятся, а те, что отвалятся - ну не просто же так они отвалятся, раз они использовали настройку, значит она им нужна.
Т.е., как вариант, можно сделать два набора настроек - документированный официальный и поддерживаемый набор (кандидаты - те настройки, что были доступны ранее) и неофициальный, на страх и риск плагинописателей (типа, узаконенный, но хак).
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

Re: Массовые захоронения возможностей в Plugin API

Post by NightRoman »

Мне тоже нравится идея доступ дать, но объявить, что все недокументированные настройки - на свой страх и риск.

Настройки всякие хотя бы для тестирования могут быть полезны. Конкретного юз-кейса пока нет. Но потому и нет, может, что и доступа нет.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Re: Массовые захоронения возможностей в Plugin API

Post by zg »

Nikolay wrote:1. Ну, изначально я имел в виду не все абсолютно настройки, а те несколько десятков, доступных ранее через удаляемые сейчас ACTL_GET* (потому и такое название темы, а не - "хочу все 300 настроек!").
Почему нельзя все опции опубликовать?
именно так и воспринимается.
2. Что до оставшихся сотен настроек - почему бы и к ним не дать доступ?
зачем?
Слом тонких настроек - это не глобальный слом API, поголовно все плагины не отвалятся, а те, что отвалятся - ну не просто же так они отвалятся, раз они использовали настройку, значит она им нужна.
не согласен с таким подходом.
Т.е., как вариант, можно сделать два набора настроек - документированный официальный и поддерживаемый набор (кандидаты - те настройки, что были доступны ранее) и неофициальный, на страх и риск плагинописателей (типа, узаконенный, но хак).
1. баг репорты в случае чего писать будут нам. вон джон доу кричит что надо даже баги плагинов для первого фара поддерживать во врапере для которых исходники есть. так что на свой страх и риск реально означает, что опубликованные настройки трогать нельзя.
2. среди старого фигня была тоже всякая. FSS_CREATEFOLDERSINUPPERCASE, FDS_*. да и многое из FDIS_* не представляю зачем плагинам нужно.
NightRoman wrote:Мне тоже нравится идея доступ дать, но объявить, что все недокументированные настройки - на свой страх и риск.
то что ты даже явные баги юзаешь как фичи я помню.
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

Re: Массовые захоронения возможностей в Plugin API

Post by NightRoman »

то что ты даже явные баги юзаешь как фичи я помню.
:) Я не помню, но допускаю, что могу. Если это решает то, что надо, то почему бы и нет. А что оно временное... пока оно отвалится, либо осел умрет, либо падишах...
User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Массовые захоронения возможностей в Plugin API

Post by DAtaMan »

Nikolay wrote:Почему нельзя все опции опубликовать?
Пользуйтесь вызовом макрокоманды Far.Cfg.Get(Key, Name) :)
Там (пока) без приватностей.

Хочу добавить в макросы набор команд (если не будет возражений):

Code: Select all

Far.Cfg.Count
Far.Cfg.Name(N[, Type]) (Type: 0 - keyname, 1 - valuename)
Far.Cfg.Value(N)
Почему бы и для плагинов не сделать что-то подобное?
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
User avatar
SUSim
Posts: 1548
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 12 times

Re: Массовые захоронения возможностей в Plugin API

Post by SUSim »

DAtaMan, блин, аккуратней с такими высказываниями, а то фартимовцы у нас люди суровые - рубят с горяча иногда - "Ампутировать правую ногу - тюк, я сказал ногу! - тюк, я сказал правую!!!" :)
SimSU ··· ·· -- ··· ··-
Nikolay
Posts: 558
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 18 times

Re: Массовые захоронения возможностей в Plugin API

Post by Nikolay »

zg wrote:
Nikolay wrote:1. Ну, изначально я имел в виду не все абсолютно настройки, а те несколько десятков, доступных ранее через удаляемые сейчас ACTL_GET* (потому и такое название темы, а не - "хочу все 300 настроек!").
Почему нельзя все опции опубликовать?
именно так и воспринимается.
Ну, извиняюсь, значит, некорректно сформулировал. Сильно желал не все, а только ранее опубликованные настройки.
2. Что до оставшихся сотен настроек - почему бы и к ним не дать доступ?
зачем?
Затем, что это невредно как минимум.
Ну, вот пример. У меня в AltHistory еще для FAR1, 2 был написан функционал для поиска исполняемых файлов, так, как это делает FAR (использовалось содержимое System\Executor). В FAR3 курю бамбук - забил на реальное состояние UseAppPath и ExcludeCmds, использую значения по умолчанию (не думаю, что кто-нибудь заметил этот косяк). И в мыслях нет просить железно документировать эти настройки (кому они еще нужны), но от неофициального доступа не отказался бы - лучше неофициальный, чем никакой.
Т.е., как вариант, можно сделать два набора настроек - документированный официальный и поддерживаемый набор (кандидаты - те настройки, что были доступны ранее) и неофициальный, на страх и риск плагинописателей (типа, узаконенный, но хак).
1. баг репорты в случае чего писать будут нам.
Багрепорты по плагинам очевидно, что надо писать разработчикам плагинов.

среди старого фигня была тоже всякая. FSS_CREATEFOLDERSINUPPERCASE
FSS_CREATEFOLDERSINUPPERCASE, конечно же, великий атавизм. :)
многое из FDIS_* не представляю зачем плагинам нужно.
Ну, я в AltHistory FDIS_PERSISTENTBLOCKSINEDITCONTROLS юзаю (точнее, юзал до сегодняшнего дня :( )
DAtaMan wrote:Пользуйтесь вызовом макрокоманды Far.Cfg.Get(Key, Name) :)
Там (пока) без приватностей.
Усложнение логики. Чтобы макрос выполнился, нужно отдать управление FAR'у (или я отстал от жизни?).
User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Массовые захоронения возможностей в Plugin API

Post by DAtaMan »

Nikolay wrote:
DAtaMan wrote:Пользуйтесь вызовом макрокоманды Far.Cfg.Get(Key, Name) :)
Там (пока) без приватностей.
Усложнение логики.
Да, ненамного.
Nikolay wrote:Чтобы макрос выполнился, нужно отдать управление FAR'у.
Ну и что?
На всякий случай - я про вызов макроса из плагина.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Re: Массовые захоронения возможностей в Plugin API

Post by zg »

Nikolay wrote:Ну, я в AltHistory FDIS_PERSISTENTBLOCKSINEDITCONTROLS юзаю (точнее, юзал до сегодняшнего дня :( )
зачем?
Nikolay
Posts: 558
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 18 times

Re: Массовые захоронения возможностей в Plugin API

Post by Nikolay »

zg wrote:
Nikolay wrote:Ну, я в AltHistory FDIS_PERSISTENTBLOCKSINEDITCONTROLS юзаю (точнее, юзал до сегодняшнего дня :( )
зачем?
Нужно вставить текст в DI_EDIT. C учетом позиции курсора, выделения текста и, разумеется, типа блока.
Nikolay
Posts: 558
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 18 times

Re: Массовые захоронения возможностей в Plugin API

Post by Nikolay »

Сразу не заметил сообщение.
DAtaMan wrote:
Nikolay wrote:
DAtaMan wrote:Пользуйтесь вызовом макрокоманды Far.Cfg.Get(Key, Name) :)
Там (пока) без приватностей.
Усложнение логики.
Да, ненамного.
Nikolay wrote:Чтобы макрос выполнился, нужно отдать управление FAR'у.
Ну и что?
То, что вместо нормального последовательного выполнения некоего кода плагина будет городиться чехарда из:
1. Выполняется код плагина, в конце вызов макрокоманды.
2. Выполняется макрокоманда, засовывает результаты в callplugin
3. Плагин анализирует, чего от него хотят, находит нужную ветку, "продолжает" выполнять прерванный ранее код (в кавычках, потому что фактически код-то и не связан последовательным исполнением - это эмулируется с сохранением локального состояния и пр. нужностей, автоматически доступных из последовательного выполнения плагина без прерываний на вызов макросов).
4. Нужно еще что-то от макросов - идем на п.1.
Вообщем, код увеличивается и усложняется на ровном месте. Всё из-за странности, суть которой - плагины (по сути более низкоуровневая вещь) не имеет доступа к функциональности, доступной из высокоуровневых макросов.
Post Reply

Return to “Development”