Подсветка синтаксиса Pixilang для Kate

Pixilang по русски
Post Reply
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Подсветка синтаксиса Pixilang для Kate

Post by Zuf »

Подсветка синтаксиса Pixilang для Kate (http://www.kate-editor.org/)

Вот сегодня набросал файл подсветки синтаксиса для текстового редактора Kate (http://ru.wikipedia.org/wiki/Kate).
Может кому сгодится.
Файл я создал на основе подсветки для C, также заглядывал в другие файлы подсветки и в документацию (http://docs.kde.org/kde3/ru/kdebase/kate/highlight.html).

Чтобы установить файл подсветки нужно скопировать pixilang.xml в $KDEDIR/share/apps/katepart/syntax.

Скачать файл подсветки

Скриншоты:
Image
Image
Image
Image
Image
Image


Примечания:

1. В ходе создания этого файла возникло несколько проблем идентификации сущностей в пикси.

Пример:

Code: Select all

INCLUDE "somefile.txt"

// Не зная контекста совершенно невозможно понять zxc это переменная или подпрограмма.
abc = 123 + zxc
Так получается намного понятнее:

Code: Select all

INCLUDE "somefile.txt"

abc = 123 + zxc()
Поэтому не любой вызов подпрограммы подсвечивается. Подсвечивается только вызов со скобками() и одиночная команда типа:

Code: Select all

zxc
Хотя zxc может быть и переменной, все же обычно это вызов подпрограммы.

2. Еще у меня было желание делать сворачиваемыми подпрограммы.
Типиченая подпрограмма:

Code: Select all

sub_prog1:
// что-то делаем
ret
Если определить метку "sub_prog1:" в качестве начала блока и команду "ret" (также блок могут завершить "go" или "goto") в качетве конца, то в этом примере все работает хорошо.
но если метки используются не для создания продпрограмм, а сами по себе, то возникает не очень красивая ситуация, как на одном из скриншотов,
когда закрывается только "вложенная" (или лучше сказать "следующая") метка, а вышестоящая метка тянется до конца файла.
Кому не нравится такое поведение можно вообще убрать свертывание для подпрограмм. Для этого необходимо закомментировать строки в файле разметки:

Code: Select all

        <!-- BEGIN: Fold subprograms -->
        <RegExpr attribute="Label" context="#stay" String="[\w_]+:" beginRegion="Subprog1"   />
        <RegExpr attribute="Keyword" context="#stay" String="ret" endRegion="Subprog1" />
        <RegExpr attribute="Keyword" context="#stay" String="(^|\s)+(goto)(^|\s)+" endRegion="Subprog1" />
        <RegExpr attribute="Keyword" context="#stay" String="(^|\s)+(go)($|\s)+" endRegion="Subprog1" />
        <!-- END: Fold subprograms -->
А строку чуть выше, наоборот раскомментировать, чтобы осталась подсветка меток:

Code: Select all

        <!--  Highlight labels UNCOMMENT ONLY IF YOU DON'T WANT USE subprograms folding (see below) -->
        <!-- <RegExpr attribute="Label" context="#stay" String="[\w_]+:" /> -->
3. Можно специальными комментариями задавать сворачиваемые блоки:

Code: Select all

//BEGIN initial values
mouse_is_down=0
select_forecolor=1
//END
См. скриншоты.

А если у кого есть какие пожелания, или кто ошибки найдет - обращайтесь :)

P.S. Kate - это редактор в KDE (под Linux), но в принципе умельцы собирают и под винду, если кому надо...
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by NightRadio »

Классно! Подсветка - вещь очень полезная. Обязательно попробую.
За примечания тоже спасибо. Попробую их учесть при составлении плана нового Pixilang.
User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by Al_Rado »

Пишу под Windows на Notepad++, насколько сложно сделать такое под него?
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by Zuf »

NightRadio wrote:Классно! Подсветка - вещь очень полезная. Обязательно попробую.
За примечания тоже спасибо. Попробую их учесть при составлении плана нового Pixilang.
Может нам запустить какой-нибудь багтрекер не слишком перегруженный функуионалом (мне кажется неплох trac), чтобы централизовать все ошибки и пожелания?
NightRadio wrote:Пишу под Windows на Notepad++, насколько сложно сделать такое под него?
Ну, можно попробовать. Наверное даже лучше сделать для SciTE. Это мощный редактор под все основные платформы (правда я его не использовал много).

P.S. Вообще, конечно, нужно пересаживаться на emacs или vim
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by NightRadio »

У меня такое ощущение, что некий баг-трекер есть на google.code, где собственно и лежит Pixilang. Надо глянуть.
Emacs и Vim - это да... классика =) Так я и не попробывал ни того ни другого :)
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by Zuf »

Еще в примечаниях я зыбыл указать, что не получается сделать привязку файлов. Т.к. расширение txt, естественно, занято. Может поменять "официальное" расширение на на что то вроде ".pixi"?

На google code есть Issue tracker, собственно то что нам надо.
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by NightRadio »

Можно и *.pixi.
Кстати, Pixilang это расширение уже поддерживает давно - я на всякий случай добавлял :)
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by NightRadio »

До сих пор под Linux редактировал исходники в MC (CoolEdit) или Gedit, но на днях попробывал Kate, и он мне показался гораздо более удобным в использовании. Интуитивный интерфейс, встроенная консоль, диспетчер файлов - очень полезные фичи!
Думаю вот еще Kdevelop глянуть...
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Подсветка синтаксиса Pixilang для Kate

Post by Zuf »

NightRadio wrote:До сих пор под Linux редактировал исходники в MC (CoolEdit) или Gedit, но на днях попробывал Kate, и он мне показался гораздо более удобным в использовании. Интуитивный интерфейс, встроенная консоль, диспетчер файлов - очень полезные фичи!
Думаю вот еще Kdevelop глянуть...
Если речь о исходниках С/С++, то рекомендую Eclipse + CDT.
Post Reply