LaTeX Lexer

All questions regarding lexer highlighting schemes are discussed here...
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Params-
завел ренжи от [ до ]- они ставят parser state=1
парамы требуют этот state=1, RE- [a-z]\w*
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Залил (еще правки для вложеных {} )
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Залил №2, renamed styles
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Залил№3, слова в {} светятся по признаку parser state=2
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Залил№4
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

Заметил еще баг:
В пример из лексера.
Окружения без * обрабатываются с помощью стиля Environment BG

Code: Select all

\begin{equation} \label{eu_eqn}
e^{\pi i} + 1 = 0
\end{equation}
а окружения с * уже не обрабатываются

Code: Select all

\begin{multline*}
p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3\\ 
- 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3
\end{multline*}
В LaTeX два способа использования звездочки.
1. После команды, например \part*, \newcommand*, с точки зрения лексера - это должно обрабатыватся как и \part, \newcommand
2. Окружения со звездочками \begin{environment*} ... \end{environment*} с точки зрения лексера - это должно обрабатыватся как и \begin{environment} ... \end{environment}

RegExp: Cmd: \\[a-z@\*]*
Id param: [a-z]\*\w*
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

Поюзал лексер со со своими документами, обнаружил следующее. Удобнее будет сделать:
Для

Code: Select all

\begin{environment} 
 \end{environment}
динамическую подвсетку, позиция каретки: В блоке, checkbox: Выделение минимального блока.

Для

Code: Select all

 \begin{document} 
 \end{document}
отдельно сделать стиль и статическую Document BG.

У меня вот лексер

Там почему-то Document BG недокрашивает {document} в \end{document}

Получился очень удобный лекс, вид окна с подсветкой
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

чтоб докрашивало конец, надо прибавить 3 токена к block-offset для конца блока.
Заливаю, свою, 5 минут
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

Заметил еще баг.
Внутри \verb| | (токен Str verbatim) нужно отключать всю любую раскраску, это так называемый verbatim текст.
В этом случае все нормально \verb|Температура $T=30^\circ C$|
В случае, если в начале идут символы из токена Symbol, то внутри есть раскраска, напримен \verb|~$E=mc^2$|
Last edited by sergiokapone on 21.01.2017 16:12, edited 1 time in total.
sergiokapone
Posts: 51
Joined: 19.01.2017 15:33

Post by sergiokapone »

И еще, как включать расцветку для сублексера? У меня не раскрасило. В LaTeX обычто используется Lua и Python

Окружения для lua (и со * аналогично)
\begin{luacode}
\end{luacode}

Для Python
\begin{pycode}
\end{pycode}
и еще некоторые

UPD. Разобрался. Добавил Условие начала \\begin\{pycode\} и конца соответственно. Но вылетела ошибка
Post Reply