Skip to content

Commit 62ef832

Browse files
authored
[LaTeX] Add support for IEEEarray environments (#4123)
This commit... 1. adds support for `\begin{IEEEeqnarray}` math environments. specified by: https://moser-isi.ethz.ch/docs/typeset_equations.pdf inspired by: SublimeText/LaTeXTools#1413 2. fixes `meta.environment.math.block` scope by removing incomplete `.be`. 3. fixes `\end` scope using `keyword.control.flow.end.latex`.
1 parent 83da0ee commit 62ef832

2 files changed

Lines changed: 71 additions & 9 deletions

File tree

LaTeX/LaTeX.sublime-syntax

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,16 +634,31 @@ contexts:
634634
4: variable.parameter.function.latex
635635
5: punctuation.definition.group.brace.end.tex
636636
push: block-math-begin-end-command-body
637+
- match: |-
638+
(?x)
639+
((\\)begin)
640+
\s* (\{) \s* ( IEEEeqnarray\*? ) \s* (\})
641+
(?: \s* (\{) \s* ( {{letter}}+ ) \s* (\}) )?
642+
captures:
643+
1: support.function.begin.latex keyword.control.flow.begin.latex
644+
2: punctuation.definition.backslash.latex
645+
3: punctuation.definition.group.brace.begin.tex
646+
4: variable.parameter.function.latex
647+
5: punctuation.definition.group.brace.end.tex
648+
6: punctuation.definition.group.brace.begin.tex
649+
7: variable.parameter.function.latex
650+
8: punctuation.definition.group.brace.end.tex
651+
push: block-math-begin-end-command-body
637652
638653
block-math-begin-end-command-body:
639-
- meta_content_scope: meta.environment.math.block.be.latex markup.math.block
654+
- meta_content_scope: meta.environment.math.block.latex markup.math.block
640655
- include: block-math-begin-end-command-end
641656
- include: math-content
642657

643658
block-math-begin-end-command-end:
644659
- match: ((\\)end)(\{)\s*(\4)\s*(\})
645660
captures:
646-
1: support.function.end.latex keyword.control.flow.begin.latex
661+
1: support.function.end.latex keyword.control.flow.end.latex
647662
2: punctuation.definition.backslash.latex
648663
3: punctuation.definition.group.brace.begin.tex
649664
4: variable.parameter.function.latex

LaTeX/tests/syntax_test_latex.tex

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,13 @@ \subsubsection{name}
784784
% ^^^^^^^^^^ markup.math.inline - string
785785
% ^ punctuation.definition.string.end.tex - markup.math.inline
786786
787+
$\verb!$! \alpha$
788+
%^ meta.environment.math.inline.dollar.tex string.other.math.tex punctuation.definition.string.begin.tex
789+
% ^^^^^^^^^^^^^^^ meta.environment.math.inline.dollar.tex markup.math.inline
790+
% ^ markup.raw.verb.latex
791+
% ^^^^^^ keyword.other.math.greek.tex
792+
% ^ meta.environment.math.inline.dollar.tex string.other.math.tex punctuation.definition.string.end.tex
793+
787794
$$f(x) = x^2$$
788795
%^^ string.other.math.tex punctuation.definition.string.begin.tex
789796
%^^^^^^^^^^^^^^ meta.environment.math.block.dollar.tex
@@ -838,21 +845,61 @@ \subsubsection{name}
838845
% ^^^^^^^^ variable.parameter.function.latex
839846
% ^ punctuation.definition.group.brace.end.tex
840847
f(x) = x^2
841-
% <- meta.environment.math.block.be.latex variable.other.math.tex
848+
% <- meta.environment.math.block.latex variable.other.math.tex
842849
%^^^^^^^^^ meta.environment.math.block
843850
\end{equation}
844-
% <- support.function.end.latex keyword.control.flow.begin.latex punctuation.definition.backslash.latex
845-
%^^^ support.function.end.latex keyword.control.flow.begin.latex
851+
% <- support.function.end.latex keyword.control.flow.end.latex punctuation.definition.backslash.latex
852+
%^^^ support.function.end.latex keyword.control.flow.end.latex
846853
% ^ punctuation.definition.group.brace.begin.tex
847854
% ^^^^^^^^ variable.parameter.function.latex
848855
% ^ punctuation.definition.group.brace.end.tex
849856
857+
\begin{equation*}
858+
% <- support.function.begin.latex keyword.control.flow.begin.latex punctuation.definition.backslash.latex
859+
%^^^^^ support.function.begin.latex keyword.control.flow.begin.latex
860+
% ^ punctuation.definition.group.brace.begin.tex
861+
% ^^^^^^^^^ variable.parameter.function.latex
862+
% ^ punctuation.definition.group.brace.end.tex
863+
f(x) = x^2
864+
% <- meta.environment.math.block.latex variable.other.math.tex
865+
%^^^^^^^^^ meta.environment.math.block
866+
\end{equation*}
867+
% <- support.function.end.latex keyword.control.flow.end.latex punctuation.definition.backslash.latex
868+
%^^^ support.function.end.latex keyword.control.flow.end.latex
869+
% ^ punctuation.definition.group.brace.begin.tex
870+
% ^^^^^^^^^ variable.parameter.function.latex
871+
% ^ punctuation.definition.group.brace.end.tex
850872
851-
$\verb!$! \alpha$
852-
%^^^^^^^^^^^^^^^ meta.environment.math.inline.dollar.tex markup.math.inline
853-
% ^ markup.raw.verb.latex
854-
% ^^^^^^ keyword.other.math.greek.tex
873+
\begin{IEEEeqnarray}
874+
%^^^^^ support.function.begin.latex keyword.control.flow.begin.latex
875+
% ^ punctuation.definition.group.brace.begin.tex
876+
% ^^^^^^^^^^^^ variable.parameter.function.latex
877+
% ^ punctuation.definition.group.brace.end.tex
878+
f(x) = x^2
879+
% <- meta.environment.math.block.latex variable.other.math.tex
880+
%^^^^^^^^^ meta.environment.math.block
881+
\end{IEEEeqnarray}
882+
%^^^ support.function.end.latex keyword.control.flow.end.latex
883+
% ^ punctuation.definition.group.brace.begin.tex
884+
% ^^^^^^^^^^^^ variable.parameter.function.latex
885+
% ^ punctuation.definition.group.brace.end.tex
855886
887+
\begin{IEEEeqnarray}{c}
888+
%^^^^^ support.function.begin.latex keyword.control.flow.begin.latex
889+
% ^ punctuation.definition.group.brace.begin.tex
890+
% ^^^^^^^^^^^^ variable.parameter.function.latex
891+
% ^ punctuation.definition.group.brace.end.tex
892+
% ^ punctuation.definition.group.brace.begin.tex
893+
% ^ variable.parameter.function.latex
894+
% ^ punctuation.definition.group.brace.end.tex
895+
f(x) = x^2
896+
% <- meta.environment.math.block.latex variable.other.math.tex
897+
%^^^^^^^^^ meta.environment.math.block
898+
\end{IEEEeqnarray}
899+
%^^^ support.function.end.latex keyword.control.flow.end.latex
900+
% ^ punctuation.definition.group.brace.begin.tex
901+
% ^^^^^^^^^^^^ variable.parameter.function.latex
902+
% ^ punctuation.definition.group.brace.end.tex
856903
857904
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
858905
% Boxes

0 commit comments

Comments
 (0)