категории | RSS
  

В данной статье я попытаюсь рассмотреть два текстовых редактора “kaapython” “ipro7” на предмет использования в них плагинов. А так же расскажу о функционале некоторых из них. Ну и конечно мы попробуем написать плагин, к данным редакторам самостоятельно.
Содержание:
1.плагины
2.описание плагинов
3.ставим плагины
4.пишем плагины
Плагины
Для чего же нам нужны плагины и что мы вообще получаем, используя их в программе?
Первая и пожалуй основная задача плагина – повышение функционала программы для которой данный плагин написан. Он может, как повышать функционал, так и делать работу той или иной функции удобнее.
Описание плагинов
Так, например мой плагин «to fail» (написанный для редакторов каа и про) намного облегчил мне работу по написанию скриптов. Работал он следующим образом - при запуске перед нами появляется файловый менеджер, выбираем любой файл и плагин вернет путь, по которому находится данный файл. К примеру, e:\\image.jpg. раньше приходилось писать в ручную. Так же при помощи этого плагина можно легко писать логи к чистильщикам мусора, быстро составив список путей к удаляемым файлам.
Плагинset color
предназначен для подбора цвета. Пригодится, например тем, кто работает с графикой или поможет в оформлении интерфейса к своей программе.
При запуске плагина перед нами открывается широкая палитра цветов. Двигая курсор, выбираем необходимый нам цвет и нажимаем клавишу выбора, после чего код цвета в хекс вставляется в код.



Плагинaccells”.
Плагин выполняет единственную функцию-переключения языка ввода, с английского на русский и обратно, при помощи акселерометра. Просто наклоните смарт, слегка с ускорением, вправо. Переключает циклически.
Плагинrusen
Плагин основной функцией, которого является перевод слов, фраз, коротких предложений с русского языка на английский. Использует сервис онлайн перевода- "Google translate".
При запуске плагина перед нами появляется окошко ввода текста, после перевода текст копируется в буфер обмена вашего смартфона, после чего мы можете вставить его в нужное вам место. Для чего это нужно? Для тех кто знает английский на техническом уровне плагин поможет корректно обозвать функции, переменные, а так же поможет в написании документации, комментариев на англ. языке.



возможные ошибки.
Порою возникают ошибки связанные то ли с модулем, то ли с гугл сервисом. О них нам известит сам плагин, просто пробуем перевести еще раз. Надеюсь когда-нибудь уделю этому время или напишу свой модуль.
Плагинshow interest
Простенький плагин для ipro7 показывающий положение курсора относительно текста в процентах. За это отвечает маленькое окошко в верхнем левом углу. Простенький плагин для ipro7 показывающий положение курсора относительно текста в процентах. За это отвечает маленькое окошко в верхнем левом углу. Плагин написан для про, на каа неактуален. В стандартной подборке про есть плагин позволяющий перейти к определенному проценту от общего текста. Так и возникла идея написания данного плагина. Чуть удобнее стало наблюдать процент положения курсора.



Ставим плагины
Плагин для этих двух редакторов запакован в зип архиве. Для его установки нам не нужно ничего куда-то распаковывать. Так же в архиве содержится все необходимое кроме прикладных модулей. Это мажет быть справка, файл локализации.
Итак приступим к установке. У нас стоит сам редактор, мы скачали из сети архив с плагином, идем дальше.
Для kaapython
заходим в редактор, нажимаем меню на левой софт-клавише-инструменты-плагины-опции-установить. Выбираем наш архив с плагином. Плагин установится, после чего редактор необходимо перезапустить. В файлах плагина указывается поддерживаемая версия редактора, если плагин редактором не поддерживается, то каа нам об этом сообщит.
Некоторые плагины подключают свой функционал к редактору сразу при старте, остальные же нужно присвоить к шорткату. При помощи шортката мы вызываем определенную функцию из плагина. Чтобы назначить плагин на шорткат идем функции- инструменты- установки- питон- питон: шорткаты- режим[0]- функции- добавить. Выбираем цифру, на которую хотим повесить, а затем необходимый плагин. Далее, что бы его применить жмем зеленую клавишу вызова а затем ту цифру, на которую мы его назначили.
Для ipro7
Запускаем редактор. Жмем левый софт – настройки - вкладка «еще»- пункт «плагины» - функции - установить- выбираем наш архив с плагином, после чего редактор необходимо перезапустить. Далее что бы применить плагин жмем левый софт – плагины - необходимый нам плагин (после установки плагина соответствующий пункт появится в разделе «плагины»).



Пишем плагины
Нижe бyдeт излoжeнo нeбoльшoe pyкoвoдcтвo по нaпиcaнию плaгинoв к peдaктopy тeкcтoвыx фaйлoв и python-cкpиптoв Kaapython.
Приступим.
Каждый плагин по сути это пoдпaкeт (я бyдy тaк нaзывaть пaкeт, влoжeнный в дpyгoй, "poдитeльcкий", пaкeт) в пaкeтe "plugins", paзмeщeннoм в пaпкe пpoгpaммы.
При cтapтe peдaктopa, yпpoщeнo гoвopя, пpoиcxoдит импopт вcex этиx пoдпaкeтoв, тo ecть (для тex, ктo нe в кypce, кaк paбoтaeт импopт мoдyлeй) фaйлoв __init__.py, paзмeщeнныx в пaпкax пoдпaкeтoв.
Я пoкaжy, кaк мoжнo нaпиcaть пpocтoй плaгин, иcпoльзyя вoзмoжнocти, пpeдocтaвляeмыe Kaapython.
Напишем пpocтoй плагин "Hello, World!".
Kak и полагается плагинy c тaким нaзвaниeм, oн бyдeт дeлaть poвным cчeтoм ничeгo.
Для начала создадим в папке plugins папку hello_world.
Добавим нашему плагину докyмeнтaцию: для этoгo coздaдим пoдпaпкy help для вcтpoeннoй в Kaapython yтилиты для пpocмoтpa дoкyмeнтaции.
B этой пaпкe дoлжны быть paзмeщeны тeкcтoвыe фaйлы c имeнaми, cooтвeтcтвyющими языкoвым лoкaлям, дocтyпным в Kaapython: English, Russian, Deutsch.
B них paзмeщaeтcя справочная информация по плагину и, в зависимости от установленного в peдaктope языка, otkpoetcя соответствующий файл пoмoщи.
Мы создадим файл Russian.
Пропишем в xeлпe назначение плагина, cпocoб использования и наш копирайт - стандартная cбopнaя солянка:
Пpocтoй плагин для вывода информационного сообщения c текстом "Hello, World!". Чтобы использовать плагин, назначьте функцию "Hello, World!" на какой-либо шорткат, используя диалог Установок.

Локализация
Teпepь дoбaвим лoкaлизaцию для нaшeгo плaгинa, тo бишь pycификaтop в нaшeм кoнкpeтнoм cлyчae.
Coздaeм пoдпaпкy lang в пaпкe hello_world (диpeктopия нaшeгo плaгинa, ecли вы пoмнитe), в нeй фaйл Russian.
Формат этого файла, по сути, аналогичен фopмaтy python-oвcкoгo типа "dict". Пары ключ-значение разделяются двоеточием, на одной физической cтpoкe находится одна пapa.
B cлoвape бyдeт oднa пapa ключ-знaчeниe:
'Hello, World!': 'Пpивeт, Mиp!'.decode('utf-8')
Kaк yжe гoвopилocь, в зaвиcимocти oт тeкyщeгo языкa peдaктopa (English пo yмoлчaнию) бyдyт иcпoльзoвaтьcя cooтвeтcтвyющиe cтpoки.
Ecли плaгин нe имeeт фaйлa лoкaлизaции для тeкyщeгo языкa, иcпoльзyeтcя дeфoлтнaя лoкaль.
Maнифecт
Coздaeм и зaпoлняeм мaнифecт: manifest.txt
Что прописывается в манифесте?:
Kaapython-Version-Max: 1.0.0
Version: 1.00.0
Kaapython-Version-Min: 0.00.0
Name: Hello, World!
Package: hello_world



Информацию предоставил Virtuos86
Для ipro7
Плагин состоит из двух файлов: 1.сам плагин (желательно сразу скомпилировать в рус файл) 2. Документация (содержит копирайт ну и соответственно всю необходимую информацию по плагину).



Документация пишется в обычном текстовом файле без как либо условий. Называться файл документации должен, так же как и сам плагин. Сохранять файл в кодировке utf-8.
Плагин должен определять функцию connect_to_iPro7. Эта функция отвечает за прописку пункта активизации плагина в соответствующем разделе.
Далее пишем функцию самого плагина. При импорте модуля ui мы наследуем весь функционал редактора. Например, чтобы добавить строку к текстовому полю просто пишем ui.app.body.add(u”hello world”).
Пример:

zw = lambda x, : x.decode('u8')#необходимая кодировка для надписи пункта в меню
def connect_to_iPro7(d, i,):
disk = d
s = i
return {zw('hello_world') : hello}#название пункта активизирующего плагин, функция выполняемая при его нажатии
global disk, s
import ui#подключаем функционал редактора
def ru(x):return x.decode('utf-8')
def hello():
ui.app.body.add(ru("привет мир"))#добавляем текст к текстовому полю редактора
if __name__ == '__main__' :
hello()

список доступных плагинов:
для kaapython:
плагин "rusen" для kaapython 1.1
плагин для kaapython "to_file" 1.0
Плагин set_color для ipro7 и kaapython 1.1
Accells 1.0.0

для ipro7:
плагин "show_interest" для ipro7 0.1
плагин "to_file" для ipro7 1.0
Плагин set_color для ipro7 и kaapython 1.1
Плагин RusEn для ipro7 1.1
Accells 1.0.0

Автор обзора- Zaterehniy.
При использовании материала данной статьи просьба указывать авторство


Zaterehniy
2011-05-15T06:48:14Z
Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 6

#6   Zaterehniy    

да, это и имел ввиду, выразился немного неправильно. laughing рад что мои идеи поучаствовали в развитии редактора


0 ответить

#6   Virtuos86    

to fail
Хорошая опечатка fellow
-------------
Добавлено в 07.31: Zaterehniy, я кстати по просьбе Armen-82.08 написал плагин для получения пути к файлу/папке. Вернее он ко мне обратился за советом, как получить этот путь, используя встроенный фм, а не сторонний, с помощью которого он уже написал свой плагин.Я заинтересовался вопросом, поскольку необходимой функциональности не нашел в Kaa, и естественно оформил всё в виде плагина smile.

Прикрепленный файл:
Внимание! У вас нет прав, для просмотра скрытого текста.
| скачать с зеркала | (2, 18 Kb)
-------------
Добавлено в 14.43: Ещё небольшая поправочка.
Некоторые плагины подключают свой функционал к редактору сразу при старте, остальные же нужно присвоить к шорткату.

"Шорткатные" плагины тоже подключают функционал к редактору сразу при его старте. Другое дело, что мы использовать этот функционал можем только подключив его к шорткату, из-за небольшого числа клавиш. Иное дело QWERTY.


* редактировал(а) Virtuos86 07:32 20 май 2011

0 ответить

#6   valintin    

К сожалению, им я не владею(((winked


0 ответить

#6   Zaterehniy    

ну по крайней мере если вы пользуетесь редактором то прочитав хотя бы половину статьи у вас не возникнет вопроса "как ставить плагины?". я надеюсь конечно laughing


0 ответить

#6   valintin    

Нифига не понял, но, спасибо за труд!!! smile
-------------
Добавлено в 19.02: З.Ы. Мне и не суждено понять, не программист я wink


0 ответить

#6   Zaterehniy    

добавил статьи в формате docx и pdf плагины для ipro7 и kaapython


0 ответить

Напомнить пароль