Сразу скажу, что поправлю только откровенные баги. То, что где-то что-то можно подсветить получше я и сам знаю. Я с питоном и этим лексером как обезьяна с гранатой. Ни языка не знаю ни лексера. Любой кастомайз — сущее мученье. Так что любые идеи по улучшению в руках предлагающих.
Сам колорайзер нужен для гитхаба, ну и возможно кому-то еще пригодится (для trac например).
Здравствуйте, Ziaw, Вы писали:
Z>Для рекурсивной строки я сделал контексты:
Z>
Z>(r'\$\s*<#', String, 'splice-string2'),
Z>
Как я понял, это $-строка. А без $ контекста нет.
Z>Правда в рут я ее не возвращаю. По идее конечно надо сделать контекст для выражений. По другой идее вообще полный лексер языка можно сделать, но стоит ли? Подсветка, на первый взгляд, работает не хуже чем на гуглкоде.
Ну, проверь ее на простом тесте: <# 1 <# 2 #> 3 #>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Ziaw, Вы писали:
Z>https://bitbucket.org/ziaw/pygments-main
Z>Сразу скажу, что поправлю только откровенные баги. То, что где-то что-то можно подсветить получше я и сам знаю. Я с питоном и этим лексером как обезьяна с гранатой. Ни языка не знаю ни лексера. Любой кастомайз — сущее мученье. Так что любые идеи по улучшению в руках предлагающих.
(r'<#(?:[^#>])*#>', String),
Вот это точно можно было бы написать по приличнее. У них там явно есть контексты через которые можно рекурсию организовать. А стало быть можно правильно подсветить рекурсивную строку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
Z>>Сразу скажу, что поправлю только откровенные баги. То, что где-то что-то можно подсветить получше я и сам знаю. Я с питоном и этим лексером как обезьяна с гранатой. Ни языка не знаю ни лексера. Любой кастомайз — сущее мученье. Так что любые идеи по улучшению в руках предлагающих.
VD>(r'<#(?:[^#>])*#>', String),
VD>Вот это точно можно было бы написать по приличнее. У них там явно есть контексты через которые можно рекурсию организовать. А стало быть можно правильно подсветить рекурсивную строку.
Для рекурсивной строки я сделал контексты:
(r'\$\s*<#', String, 'splice-string2'),
Правда в рут я ее не возвращаю. По идее конечно надо сделать контекст для выражений. По другой идее вообще полный лексер языка можно сделать, но стоит ли? Подсветка, на первый взгляд, работает не хуже чем на гуглкоде.