latex-syntax
This package provides rich LaTeX syntax highlighting for VSCode. It provides
only syntax highlighting: no annoying snippets etc. that only serve to mess
up your work. It is recommended to be combined with texlab. The latter
provides language intelligence/auto-completion and a build system interface.
The present package complements texlab with richer syntax highlighting. The
grammar is derived from LaTeX-Workshop, but has improvements including
a) Highlighting for the todonotes
package: \todo
and \missingfigure
as well as custom-defined
\XYtodo
for author initials X
and Y
.
b) Likewise (custom-defined) \reply
and \XYreply
macros are highlighted to
allow discussion of document review.
c) Footnote highlighting (\footnote
, \footnotemark
, and \footnotetext
).
d) Highlighting of comment
environments as comment blocks.
The highlighting of todo-notes and footnotes has to be specifically configured:
see below.
Unfortunately, VSCode does not appear to let extensions contribute token colours
for syntax highlighting. Therefore, to enable syntax highlighting for \todo
, \reply
, and
\footnote
, add the following (with possibly customised colours) to your user
settings.json
(Cmd+Shift+P, “Open Settings (JSON)”):
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
"entity.name.todo.latex",
"support.function.todo.latex",
"entity.name.footnote.latex",
"support.function.footnote.latex"
],
"settings": {
"foreground": "#d17000",
"fontStyle": "italic"
}
},
{
"scope": [
"entity.name.todo.reply.latex",
"support.function.todo.reply.latex",
],
"settings": {
"foreground": "#d17000",
"fontStyle": "italic bold"
}
}
]
}
Initial-prefixed \XYtodo
custom todonotes commands are also supported.
For example, \lstodo{a latex-syntax todo}
will be highlighted if you do
the above colour customisations and in your LaTeX source define
\newcommand{\lstodo}[2][]{\todo[color=DarkRed!40,#1]{#2}}
(The colour setting here only affects LaTeX output, not VSCode.)
To define \reply
for discussion inside todonotes, a simple one is
\newcommand{\reply}[1]{\textbf{#1}}