Page 1 of 13

Pygin — Python adapter

Posted: Wed 30 Dec, 2015 17:52
by DrKnS
Image

Не прошло и трёх лет, как у меня дошли руки набросать демо для Python.
Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.

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

Posted: Wed 30 Dec, 2015 21:18
by techie
DrKnS wrote: В аттаче пример для Python. Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.
Я понимаю, шо новый год, но это ж прям праздник какой-то. =) Только бы вот если бы он ещё не крэшился.

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

Posted: Wed 30 Dec, 2015 21:55
by DrKnS
techie wrote: Только бы вот если бы он ещё не крэшился.
Питон не нашло? Фар, старее, чем сегодняшний 4498, будет падать, если не нашло.
Надо версия 3.5 и чтобы в %PATH% путь прописан был, см. readme.

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

Posted: Wed 30 Dec, 2015 22:33
by tstr
эх, если бы в _macroinit.lua эти пути выставлять...

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

Posted: Thu 31 Dec, 2015 06:14
by techie
DrKnS wrote: Питон не нашло? Фар, старее, чем сегодняшний 4498, будет падать, если не нашло.
4498 уже не падает.
DrKnS wrote: Надо версия 3.5 и чтобы в %PATH% путь прописан был, см. readme.
Класс. Работает. =)

А нельзя выбрать с какой версией дружить? Или выбрать её автоматом в расчёте на то, что питоновский код совместим между версиями.

Когда ошибка в скрипте, непонятно как дебажить. Всё что есть это .

Не перегружается плагин, если отредактировать его. Неудобно.

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

Posted: Thu 31 Dec, 2015 09:53
by DrKnS
techie wrote: А нельзя выбрать с какой версией дружить? Или выбрать её автоматом в расчёте на то, что питоновский код совместим между версиями.
Нельзя, увы. Линкуется с pythonNN.dll статически, другого способа я не знаю.
techie wrote: Когда ошибка в скрипте, непонятно как дебажить. Всё что есть это вот.
Ошибка выводится в stdout. Если запусить с погашенными панелями, будет видно.

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

Posted: Thu 31 Dec, 2015 14:19
by HaRT
DrKnS wrote: другого способа я не знаю
Интересно, как PTVS дружит с несколькими экземплярами установленного питона на выбор…

Использование адаптера питона

Posted: Fri 01 Jan, 2016 21:24
by gotar
Создаю каталог helloworld. В него записываю __init__.py из архива. Делаю load:helloworld. В меню по f11 ничего не появляется. Что я делаю не так? Если каталог helloworld переписать в %FARHOME%\Plugins и перезапустить far, то все работает.

Использование адаптера питона

Posted: Fri 01 Jan, 2016 22:46
by DrKnS
load:__init__.py

Использование адаптера питона

Posted: Sat 02 Jan, 2016 12:45
by gotar
Можно ли таким образом загрузить другой плагин на питоне и чем он должен отличаться от первого?

Использование адаптера питона

Posted: Sat 02 Jan, 2016 14:28
by DrKnS
С этой версией будет можно.
Отличаться должен гуидом.
Точек в именах папок быть не должно.

Использование адаптера питона

Posted: Sat 02 Jan, 2016 23:33
by gotar
unload: реализован?

Использование адаптера питона

Posted: Sun 03 Jan, 2016 09:56
by DrKnS
Наверное, попробуй.

Использование адаптера питона

Posted: Sun 03 Jan, 2016 15:16
by gotar
У меня не получается изменить текст, печатываемый плагином, без перезагрузки Фара.

Нельзя ли сделать так, чтобы в load: можно было указывать имя каталога, содержащего __init.py__ , чтобы было видно какой plugin грузится?

Использование адаптера питона

Posted: Sun 03 Jan, 2016 18:23
by DrKnS
gotar wrote: У меня не получается изменить текст, печатываемый плагином, без перезагрузки Фара.
Питон не особо умеет выгрузку вообще. Но перегрузить вроде бы можно. Версия в шапке обновлена.
gotar wrote: Нельзя ли сделать так, чтобы в load: можно было указывать имя каталога, содержащего __init.py__ , чтобы было видно какой plugin грузится?
Можно запускать load:имя_папки\__init__.py из папки уровнем выше, например.