API для описаний файлов (descript.ion)?

Разработка Far.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

API для описаний файлов (descript.ion)?

Post by John Doe »

Alexey Samlyukov wrote:при наличии АПИ под дескрипшины - сделаю, иначе - увы...
Поскольку никто из активных разработчиков фара и плагинов не использует описания, не видать нам АПИ как своих ушей.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: VisRen: Visual renaming — визуальное переименование файл

Post by Maximus5 »

Из разработчиков плагинов описания использую я :)
Только меня в АПИ не пустят :)
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: VisRen: Visual renaming — визуальное переименование файл

Post by John Doe »

Ну почему же так категорично.
Описания всё равно в фаре и некоторых стандартных плагинах обрабатываются, и никто пока выбрасывать их не собирается.
Вряд ли фартим будет возражать против унификации этого дела.

И даже наоборот: унификация обработки описаний файлов позволит вынести весь код их обновления из фара в спец. плагин.
Думаю никто из фартим не будет возражать против того чтобы выкинуть обновление описаний из ядра фара :)

Update
DrKnS сам не так давно предлагал идею API.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: VisRen: Visual renaming — визуальное переименование файл

Post by John Doe »

:idea:
  • Это позволит реализовать альтернативные методы хранения описаний, помимо морально устаревших files.bbs/descript.ion.
  • С помощью такого АПИ фар мог бы выводить в колонке описаний вообще всё что угодно. Собственно именно этим когда-то занимался плагин Description Manager
  • Тут недавно просили историю действий в фаре, как раз помогло бы подобное АПИ.
Last edited by John Doe on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: API колонок и API описаний не стоит смешивать
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by Maximus5 »

Помнится мне, как-то уже заходил разговор про АПИ для пользовательских колонок.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by John Doe »

Заходил, но как-то мельком (см. Custom колонки плагинов). Или ещё где-то было?

А вообще согласен - идея правильная: убрать колонку описаний как класс, а вместо неё дать плагинам API для пользовательских колонок.
Но это уже отдельная тема.

Что касается API для обновления описаний, как я понимаю, от фара нужно 2 вещи:
  1. Уведомлять плагин_реализующий_описания об изменении/копировании/переименовании/перемещении файлов и директорий (реальных или виртуальных).
  2. Какие файлы фар сам двигает он знает, а сторонние плагины должны будут как-то уведомлять фар об изменениях.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by Maximus5 »

Для начала нужно определиться с задачей.

[*] Убирать из ядра фара описания для выноса в плагин (для ясности назовем его dizman)?

[*] Заложиться на то, что колонок может быть более одной? То есть не только Description, но например Version (для PE), Bitrate (для mp3), Author для документов, "статус" для исходников из SVN, и т.п.

[*] Может ли быть более одного плагина рулящего описаниями? Или достаточно будет "модулей" для этого dizman?

[*] Как именовать эти колонки для настройки режимов панелей? Наиболее простое - Z оставить для Description, а Z1,Z2,... отвести для дополнительных колонок. В настройке же dizman дать возможность пользователю выбрать для каждого Z что именно отображать в колонке (шаблоны).

[*] Наверное (как минимум) должно остаться поле?

Code: Select all

struct PluginPanelItem
{...
  wchar_t      *Description;
...};
То есть dizman не должен перекрывать Description, предоставляемый открытым на панели плагином?

Пока мысли такие. Когда концепция устаканится (общими силами :), и если не последует возражений от фартима - можно будет заняться.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by John Doe »

[*] Убирать из ядра фара описания для выноса в плагин (для ясности назовем его dizman)?
Если будет АПИ, то зачем они в ядре?
[*] Заложиться на то, что колонок может быть более одной?
Конечно >1.
Но это имеет значении только при отображении, поскольку custom-колонки в идеале это вообще отдельная сущность.
А при самом обновлении описаний плагин может и не делиться этой информацией - она никому не нужна.
[*] Может ли быть более одного плагина рулящего описаниями? Или достаточно будет "модулей" для этого dizman?
Да, почему бы и нет. Может быть наоборот - в субплагинах не будет особого смысла, поскольку будет слишком мало общего.
Только почему именно "описаниями"? Как насчёт плагина ведущего историю действий, с возможностью отмены?

P.S.
В пользу хостплагина/субплагинов: возможность комбинировать всю информацию в 1 колонку, по шаблону.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by Maximus5 »

John Doe wrote:
[*] Заложиться на то, что колонок может быть более одной?
Конечно >1.
Но это имеет значении только при отображении,
Это имеет значение в принципе, а не только при отображении. От этого будет зависеть новая архитектура.
поскольку custom-колонки в идеале это вообще отдельная сущность.
Custom-колонки не трогаем, ибо они предоставляются плагином держащим текущую панель.
John Doe wrote:
[*] Может ли быть более одного плагина рулящего описаниями? Или достаточно будет "модулей" для этого dizman?
Да, почему бы и нет. Может быть наоборот - в субплагинах не будет особого смысла, поскольку будет слишком мало общего.
Ну, попробуй описать ситуацию, которую нельзя решить субплагином? У всех субплагинов будет одно общее - они должны предоставить некоторую информацию по запрошенному файлу.
В пользу единственного плагина то, что так можно настроить режимы панелей пользователю.
Если же давать возможность нескольким плагинам (уровня фара) рулить колонками описаний - становится не понятно как можно настроить режим отображения панелей (Z,Z1..Z9 уже не прокатят).
John Doe wrote:Только почему именно "описаниями"?
Во избежание путаницы. Колонки описаний будут совсем не то, что custom-колонки, предоставляемые плагином, открытым на панели.
John Doe wrote:Как насчёт плагина ведущего историю действий, с возможностью отмены?
Что-то я не понял, с какого перепугу в теме про колонки появился "плагин ведущего историю действий" :?:
John Doe wrote:В пользу хостплагина/субплагинов: возможность комбинировать всю информацию в 1 колонку, по шаблону.
Это уж как пользователю захочется... С другой стороны станет непонятно, как редактировать такое "описание" по Ctrl-Z :?
Видимо, независимо от шаблона отображения - редактирование полей, предоставляемых субплагинами (если субплагин позволяет редактирование).
Кстати, таким образом можно будет редактировать тэги mp3-ек, например.

P.S., я не туда смотрю, или в хелпе по настройке режимов панелей нет упоминания по C0...C9?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by John Doe »

Maximus5 wrote:Custom-колонки не трогаем, ибо они предоставляются плагином держащим текущую панель.
Речь не о тех который держит текущий плагин, а об универсальных, которых ещё в природе нету, и только обсуждались (см. линк выше)
Maximus5 wrote:Если же давать возможность нескольким плагинам (уровня фара) рулить колонками описаний - становится не понятно как можно настроить режим отображения панелей (Z,Z1..Z9 уже не прокатят).
Да, непросто. Думаю нужны будут не буквенные обозначения, а нормальные имена.
Maximus5 wrote:
John Doe wrote:Только почему именно "описаниями"?
Во избежание путаницы. Колонки описаний будут совсем не то, что custom-колонки, предоставляемые плагином, открытым на панели.
См. ссылку выше. Предлагается вообще уйти от колонки описаний, в пользу универсальных кустомных колонок.
Maximus5 wrote:
John Doe wrote:Как насчёт плагина ведущего историю действий, с возможностью отмены?
Что-то я не понял, с какого перепугу в теме про колонки появился "плагин ведущего историю действий" :?:
Обсуждаемое АПИ покрывает потребности этого гипотетического плагина, так что почему бы и нет?
Maximus5 wrote:Кстати, таким образом можно будет редактировать тэги mp3-ек, например.
Примерно.
И кстати сам шорткат Ctrl-Z уже не обязан быть командой фара.
Т.е. в случае нескольких плагинов это могут быть вообще разные шорткаты. Или например меню со списком всех "контентных" плагинов...
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by Maximus5 »

John Doe wrote:
Maximus5 wrote:Если же давать возможность нескольким плагинам (уровня фара) рулить колонками описаний - становится не понятно как можно настроить режим отображения панелей (Z,Z1..Z9 уже не прокатят).
Да, непросто. Думаю нужны будут не буквенные обозначения, а нормальные имена.
Вопрос спорный.
"номальные" имена сложнее обработать в фаре,
для "нормальных" имен не настроишь шаблон - т.к. это уже будет ссылка на колонку (а если давать в интерфейсе dizman именовать колонки - это уже перебор будет).
John Doe wrote:
Maximus5 wrote:Кстати, таким образом можно будет редактировать тэги mp3-ек, например.
Примерно.
И кстати сам шорткат Ctrl-Z уже не обязан быть командой фара.
С одной стороны - да. А с другой... межплагинового взаимодействия у нас (пока?) нет, так что для того чтобы порулить описаниями из плагина (переименование в VisRen) - нужно бы дернуть функцию фара типа
FSF.MoveDescriptions ( const wchar_t* SrcFile, const wchar_t* DstFile ).
И мне кажется, что все-таки фар должен обрабатывать CtrlZ (просто дернуть функцию плагина).
Можно конечно сделать макрос, но он "из коробки" будет отсутствовать?
John Doe wrote:Т.е. в случае нескольких плагинов это могут быть вообще разные шорткаты.
мне идея с несколькими плагинами не нравится. настраивать неудобно будет.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by Maximus5 »

Ну, как вариант, можно и несколько плагинов сделать (не субплагинов). Только тогда весь функционал по обработке колонок (в смысле вычитывания, настройки, диалогов редактирования) будет в самом FAR.
Иначе будет зоопарк?

Сейчас как - нажал Ctrl-Z, отредактировал, закрыл.

Если куча плагинов - нажал F11, думаешь какой-же все-таки плагин отвечает за колонку, которую ты хочешь отредактировать, выбираешь его, редактируешь, закрываешь. А если нужно поправить сразу несколько колонок, предоставляемых разными плагинами?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by John Doe »

Maximus5 wrote:(а если давать в интерфейсе dizman именовать колонки - это уже перебор будет).
Не пойму в чём проблема?
Maximus5 wrote:Можно конечно сделать макрос, но он "из коробки" будет отсутствовать?
Я подозреваю что и сам плагин из коробки будет отсутствовать.
Maximus5 wrote:И мне кажется, что все-таки фар должен обрабатывать CtrlZ (просто дернуть функцию плагина).
Имхо вопрос вообще непринципиальный. Тем более неясно что делать в случае нескольких плагинов.
Maximus5 wrote:межплагинового взаимодействия у нас (пока?) нет, так что для того чтобы порулить описаниями из плагина (переименование в VisRen) - нужно бы дернуть функцию фара типа
FSF.MoveDescriptions ( const wchar_t* SrcFile, const wchar_t* DstFile ).
Как я писал выше, у предполагаемого АПИ могут быть 2 стороны: VisRen оповещает фар об изменении имён, а фар уже дёргает по очереди все подписанные на изменения плагины.

И если учитывать универсальность АПИ, то слово Descriptions слишком конкретное. Лучше что-нибудь в сторону MoveNotification.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by John Doe »

Maximus5 wrote:Ну, как вариант, можно и несколько плагинов сделать (не субплагинов). Только тогда весь функционал по обработке колонок (в смысле вычитывания, настройки, диалогов редактирования) будет в самом FAR.
Не понял. В фаре уже сейчас есть настройка какие колонки в каком режиме отображать, и в каком порядке.

А чтобы удобнее было - можно будет настраивать это плагином. Например, этот функционал впишется в PlugMenu.

Против субплагинов я естественно тоже ничего принципиально против не имею. И даже скорее за.

Просто кого-то может не устроить АПИ хост-плагина. Это раз.
И два: какие-то плагины просто не будут нуждаються в хосте, т.к. не отображают колонки.
А какие-то наоборот - колонки отображают, но описания не меняют.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: API для описаний файлов (descript.ion)?

Post by Maximus5 »

Не понял. В фаре уже сейчас есть настройка какие колонки в каком режиме отображать, и в каком порядке.
Замечательно. Каким образом ты предлагаешь пользователю вместо "N,Z" вводить информацию, что он хочет видеть: <FileName>, <Descript.ion>, <MP3 bitrate>
для примера?
Просто кого-то может не устроить АПИ хост-плагина. Это раз.
С таким же успехом другого "кого-то" не устроит АПИ фара. Так что это не аргумент.
И два: какие-то плагины просто не будут нуждаються в хосте, т.к. не отображают колонки.
Ты похоже совсем запутался. Я говорю про "универсальные" колонки, а не про "custom-колонки", которые уже есть в АПИ.
Post Reply

Return to “Development”