Адаптеры (или плагины на любых языках и с любым интерфейсом)

Разработка Far.
User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 4 times

Re: Адаптеры (или плагины на любых языках и с любым интерфей

Post by techie »

Latest post of the previous page:

Я вот так и не понял.

Может плагин хост инициировать загрузку/выгрузку плагина в любой момент времени?
Как хост сообщает информацию о новом плагине Фару - вызывает ли он функцию типа CreatePlugin(pluginfo, evenhandler) или сам Far чего-то там по Си АйПиАю дергает (лезет грузить .dll или что там ему ещё нужно)?

User avatar
DrKnS
Posts: 5646
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 307 times

Re: Адаптеры (или плагины на любых языках и с любым интерфей

Post by DrKnS »

Это не хост. Это прослойка.
Если всё сделано правильно, то загрузка/выгрузка твоего plugin.py ничем не будет отличаться от plugin.dll.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 4 times

Re: Адаптеры (или плагины на любых языках и с любым интерфей

Post by techie »

А мне наоборот надо чтобы отличалось, потому что я не вникаю в то, как это работает на уровня С. В Питоне я бы хотел генерить плагины вообще динамически, чтобы не важно было откуда он берётся, но чтобы в меню всё исправно добавлял.

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Post by cmd.exe »

Враппер для множества языков отлично сздан в Vim. Для сравнения можно исходники понюхать...
Всех с наступающим новым годом!
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
DrKnS
Posts: 5646
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 307 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Post by DrKnS »

DrKnS wrote: В аттаче пример для Python. Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.
Обсуждение адаптера питона переехало сюда.

gotar
Posts: 326
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times
Been thanked: 1 time

Python adapter

Post by gotar »

А что плохого в том, чтобы Фар отдавал адаптерам и каталоги тоже? Если это делать, то надо делать сейчас, чтобы не потерять обратную совместимость.

User avatar
DrKnS
Posts: 5646
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 307 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Post by DrKnS »

Я как-то не вижу смысла.
Каталог сам по себе информации не содержит. В нем всё равно должны быть какие-то файлы, с какими-то специфичными именами или расширениями, по которым его однозначно можно опознать как плагин.
Непонятно, как обрабатывать вложенные каталоги.
Учитывая, что для пользователя разница только в синтаксисе load: и unload: - овчинка не стоит выделки.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 4 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Post by techie »

// Уж не плагин ли filename? Вызывается для всего подряд, в общем случае тут достаточно проверки расширения.
BOOL WINAPI IsPlugin(const wchar_t* filename)
{
return ExstensionIsSame(filename, L".plg");
}
Так только файлы скармливает? Судя по последнему посту, видимо да.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 4 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Post by techie »

DrKnS wrote: Непонятно, как обрабатывать вложенные каталоги.
Я бы в них не лез. но вообще чем плохо?
DrKnS wrote: Учитывая, что для пользователя разница только в синтаксисе load: и unload: - овчинка не стоит выделки.
Ну вообще удобненько было бы питоновские плагины мутузить по их имени без суффикса __init__.py. Я бы ещё list: какой-нибудь добавил, чтобы понимать какие плагины вообще есть и активны.

User avatar
DrKnS
Posts: 5646
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 307 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Post by DrKnS »

techie wrote: Ну вообще удобненько было бы питоновские плагины мутузить по их имени без суффикса __init__.py
Как предложено в другой теме, это вполне решается на уровне farcmds.

Post Reply

Return to “Development”