Автор Тема: Sublime Text 2  (Прочитано 128858 раз)

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #135 : Октябрь 28, 2012, 05:50:25 pm »
Есть отдельный в сети. для Паскаля Но в целом обработка синтаксиса через километры xml и регулярных выражений, как и положено, sucks. В общем пытаюсь начать писать код на php. Если перед вторым аргументом функции поставить тип array, он не будет подсвечен, в отличие от первого. Если скобки не в египетском стиле ставятся, то некоторые(!) функции подсвечиваются фиолетовым как константы и т.д. Осилить больше 100 кб спагетти настроек не смог. И да, в NPP своя подсветка за пол часа для целевого языка делается через GUI.

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #136 : Октябрь 28, 2012, 06:00:14 pm »

Скобки для функции на новой строке - функция уже определяется как константа.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Sublime Text 2
« Ответ #137 : Октябрь 28, 2012, 06:04:04 pm »
Вообще вроде не сильно сложно:
http://sublimetext.info/docs/en/extensibility/syntaxdefs.html

Но нужно время потратить чтобы вкурить. А времени нет.
Я кстати не уверен, что гуй сильно поможет при данном формате настроек.

А более всего меня интересуют возможности этой штуки. Например настройка синтаксиса паскаля в TextMate не понимает вложенные комментарии, и непонятно можно ли вообще такое настроить.
« Последнее редактирование: Октябрь 28, 2012, 06:05:41 pm от ilovb »

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Sublime Text 2
« Ответ #138 : Октябрь 28, 2012, 06:31:34 pm »
Однако я вру кажись. В паскале комментарии не такие как в обероне.

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #139 : Октябрь 29, 2012, 02:58:04 pm »
А что толку от описания, когда в рамках одной строки действуют регулярные выражения?
\s по спецификации должен включать \n, но даже с явным \n ничего не выходит. Следовательно, шаблон функции (идентификатор пробелы и переводы строк символ "(") попросту не прописать.

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #140 : Октябрь 29, 2012, 03:11:32 pm »
<string>(?=(?&lt;regex&gt;(?#simple syntax)\$(?&lt;name&gt;[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?&lt;index&gt;[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g&lt;name&gt;)\]|-&gt;\g&lt;name&gt;(\(.*?\))?)?|(?#simple syntax with braces)\$\{(?:\g&lt;name&gt;(?&lt;indices&gt;\[(?:\g&lt;index&gt;|'(?:\\.|[^'\\])*'|"(?:\g&lt;regex&gt;|\\.|[^"\\])*")\])?|\g&lt;complex&gt;|\$\{\g&lt;complex&gt;\})\}|(?#complex syntax)\{(?&lt;complex&gt;\$(?&lt;segment&gt;\g&lt;name&gt;(\g&lt;indices&gt;*|\(.*?\))?)(?:-&gt;\g&lt;segment&gt;)*|\$\g&lt;complex&gt;|\$\{\g&lt;complex&gt;\})\}))\{</string>
Одна строка из конфига )

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Sublime Text 2
« Ответ #141 : Октябрь 29, 2012, 06:01:39 pm »
На всякий случай:
Цитировать
Sublime Text uses Oniguruma‘s syntax for regular expressions in syntax definitions. Several existing syntax definitions make use of features supported by this regular expression engine that aren’t part of perl-style regular expressions, hence the requirement for Oniguruma.
http://sublimetext.info/docs/en/extensibility/syntaxdefs.html

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Sublime Text 2
« Ответ #142 : Октябрь 29, 2012, 06:08:06 pm »
Еще думаю что полезна в этом плане документация TextMate:
http://manual.macromates.com/en/language_grammars#language_grammars

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #143 : Октябрь 30, 2012, 11:16:31 am »
Спасибо. Я читал Oniguruma‘s syntax. Увы, но видно функции регулярного выражения передаётся аргумент, включающий сугубо однострочный режим. Я проверил больше десятка вариантов. Выражения действуют только в рамках одной физической строки. Более того, даже убогие километровые правила не накладываются на грамматику языка. Например, комментарий между двумя лексемами убивает любое правило.

Несколько схожая проблема выдалась с подсветкой 1С (понадобилосьв  создаваемом руководстве). Нашёл только highlighter.js, который на дух не переваривает кириллицу.. В итоге \b, \w и ряд других спецификаторов не работает, диапазоны класса а-яА-Я игнорируют буквы "Ф", "Т" и вообще ведут себя странно. Неудивительно, что на офиц. сайте такой скудный пример по 1С.

А всё из-за того, что раскраска тоже на регулярках. В итоге начал писать скрипт на php, попробовал снова Sublime Text 2, наткнулся на её раскраску и в сердцах решил никогда синтаксис чего-либо (ББ-кодов для форума или подсветки ЯП) регулярными выражениями не обрабатывать. Они не созданы для этого.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #144 : Октябрь 30, 2012, 11:34:04 am »
А всё из-за того, что раскраска тоже на регулярках. В итоге начал писать скрипт на php, попробовал снова Sublime Text 2, наткнулся на её раскраску и в сердцах решил никогда синтаксис чего-либо (ББ-кодов для форума или подсветки ЯП) регулярными выражениями не обрабатывать. Они не созданы для этого.

Правильно. Для подсветки нужен как минимум полноценный лексер. А лучше - парсер.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #145 : Ноябрь 07, 2012, 11:39:58 am »
Как же мееедлеееннооо запускается этот сублиме. Не могут они, что ли, сделать его мгновенно стартующим, как тот же Edit+? о_О
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Sublime Text 2
« Ответ #146 : Ноябрь 07, 2012, 11:41:18 am »
Что есть то есть...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #147 : Ноябрь 07, 2012, 12:13:59 pm »
Как же мееедлеееннооо запускается этот сублиме. Не могут они, что ли, сделать его мгновенно стартующим, как тот же Edit+? о_О
У меня запускается за 3 секунды со всеми ранее открытыми файлами.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #148 : Ноябрь 07, 2012, 12:59:17 pm »
У меня запускается за 3 секунды со всеми ранее открытыми файлами.
Это же чертовски медленно. Нормальное время реакции (комфортное) -- доля секунды, желательно не более (и не менее) 0.1 сек...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Sublime Text 2
« Ответ #149 : Ноябрь 07, 2012, 01:14:14 pm »
У меня запускается за 3 секунды со всеми ранее открытыми файлами.
Это же чертовски медленно. Нормальное время реакции (комфортное) -- доля секунды, желательно не более (и не менее) 0.1 сек...
А ты его что, постоянно запускаешь? У меня вот он был уже неделю запущен как, и чтобы проверить как оно запускается, пришлось специально его закрывать. :-)
Y = λf.(λx.f (x x)) (λx.f (x x))