LaTeX Lexer

All questions regarding lexer highlighting schemes are discussed here...
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

Alexey wrote:твое правило --после плавила symbol; поставь выше. Ок?
А расположение токена имеет значение?
Alexey
Posts: 1634
Joined: 05.10.2012 22:10

Post by Alexey »

токена в плавиле (rules tab) да.
ты меняешь положение парсера в parsers
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

Получился такой лексер.

Не хватает пока дерева для команд секционирования

Code: Select all

\part
    \chapter
        \section
            \subsection
Alexey
Posts: 1634
Joined: 05.10.2012 22:10

Post by Alexey »

И не будет дерева- блоки то без конца, initialy closed/ no end rule
Alexey
Posts: 1634
Joined: 05.10.2012 22:10

Post by Alexey »

взял твой лекс. переименовал стили (чтоб легче набивать Карту стилей Cudatext) и чутьчуть регэксы. Обновил
Alexey
Posts: 1634
Joined: 05.10.2012 22:10

Post by Alexey »

Cudatext theme
Image
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

Good. Thank you

Там немного ошибка в парсере (Token) Dimension
В лексе pt|pc|pt|cm|mm|ex|em
Нужно pt|pc|cm|mm|ex|em

И еще, в LaTeX много команд с использованием символа "@". Их тоже нужно обрабатывать как Cmd, for example:

Code: Select all

\@biblabel
\g@addto@macro
Online example
Alexey
Posts: 1634
Joined: 05.10.2012 22:10

Post by Alexey »

поправил regex- \\[a-z@]*
Поправил цвета на невырвиглазные
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

1. Добавил в лексер спецкоментарии = директивы компилятору (Directives)
2. Добавил нормальный код в окне просмотра результата действия лексера.

Там и заметил баги:
1. В обычном тексте подкрашиваются слова exercitation.
2. Некоторые слова текста воспринимаются как параметры команд, если после стоит запятая, например: physics,
Параметры в LaTeX могум разделятся пробелом, например:

Code: Select all

\node[above left] 
above left - Id param
Alexey
Posts: 1634
Joined: 05.10.2012 22:10

Post by Alexey »

правка RE-
direct- %[\x20\x09]+\!.*
dimens- \b (pt|pc|cm|mm|ex|em) \b

делаю Парамы
Post Reply