Page 1 of 1

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

Posted: Thu Oct 23, 2008 8:12 pm
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), но в принципе умельцы собирают и под винду, если кому надо...

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

Posted: Fri Oct 24, 2008 6:51 am
by NightRadio
Классно! Подсветка - вещь очень полезная. Обязательно попробую.
За примечания тоже спасибо. Попробую их учесть при составлении плана нового Pixilang.

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

Posted: Fri Oct 24, 2008 9:35 am
by Al_Rado
Пишу под Windows на Notepad++, насколько сложно сделать такое под него?

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

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

P.S. Вообще, конечно, нужно пересаживаться на emacs или vim

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

Posted: Fri Oct 24, 2008 12:05 pm
by NightRadio
У меня такое ощущение, что некий баг-трекер есть на google.code, где собственно и лежит Pixilang. Надо глянуть.
Emacs и Vim - это да... классика =) Так я и не попробывал ни того ни другого :)

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

Posted: Fri Oct 24, 2008 1:44 pm
by Zuf
Еще в примечаниях я зыбыл указать, что не получается сделать привязку файлов. Т.к. расширение txt, естественно, занято. Может поменять "официальное" расширение на на что то вроде ".pixi"?

На google code есть Issue tracker, собственно то что нам надо.

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

Posted: Sat Oct 25, 2008 10:33 am
by NightRadio
Можно и *.pixi.
Кстати, Pixilang это расширение уже поддерживает давно - я на всякий случай добавлял :)

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

Posted: Tue Dec 09, 2008 3:43 pm
by NightRadio
До сих пор под Linux редактировал исходники в MC (CoolEdit) или Gedit, но на днях попробывал Kate, и он мне показался гораздо более удобным в использовании. Интуитивный интерфейс, встроенная консоль, диспетчер файлов - очень полезные фичи!
Думаю вот еще Kdevelop глянуть...

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

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