[Moscow.pm] Про подсветку синтаксиса

Андрей Асякин asan999 на gmail.com
Пн Дек 23 02:34:15 PST 2013


vim

http://clip2net.com/s/6rJCOD


16.12.2013 23:04, Иван Бессарабов пишет:
> Тут в соседнем треде ("вопрос юзерам Sublime Text") подняли очень интересную
> тему подсветки синтаксиса перла.
>
> Покажите, пожалуйста, скриншоты, как в вашем редакторе выглядит подсведка
> синтаксиса вот в таком скрипте: https://gist.github.com/bessarabov/7991901
>
> У меня в vim это выглядит вот так:
> http://upload.bessarabov.ru/bessarabov/A57U8eZRPI7Cc9FQeWI58RBwavo.png
>
> Vim ошибается с подсведкой во второй строчке этого кода:
>
>      say with_prototype    / 10 ; # /  ; die "this dies!";
>      say without_prototype / 10 ; # /  ; die "this dies!";
>
> Этот код идентичен вот такому, но vim это не понимает:
>
>      say with_prototype()   / 10 ; # /  ; die "this dies!";
>      say without_prototype( / 10 ; # / ); die "this dies!";
>
> У меня есть гипотеза что ни один редактор не отобразит эти строки правильно,
> так как все редакторы парсят код как простой текст, и не используют перл для
> разбора кода.
>
> Этот пример я увидел вот в этом посте на stackoverflow:
> http://stackoverflow.com/questions/4625408/where-can-i-find-a-formal-grammar-for-the-perl-programming-language
>
> Мне очень жаль что для языка Perl5 невозможно написать граматику. Была бы
> грамматика перла и с его кодом было бы сильно удобнее работать. Можно было бы
> и правильную подсведку сделать, и код приводить к стандартному виду (более
> гибким и правильным инструментом чем ненавистный мне perltidy), и
> автоматический рефакторинг делать.
>
> И я чуть-чуть завидую языкам для которых есть грамматики:
>
>   * Go: http://golang.org/ref/spec
>   * Python: http://inst.eecs.berkeley.edu/~cs164/fa11/python-grammar.html
>   * Java: http://cs.au.dk/~amoeller/dRegAut/JavaBNF.html
>   * C: http://www.cs.man.ac.uk/~pjj/bnf/c_syntax.bnf
>   * Perl6: https://github.com/jwodder/jbobaf/blob/master/perl6/Gerna.bnf.pm6



Подробная информация о списке рассылки Moscow-pm