diff options
Diffstat (limited to 'runtime/queries/latex')
| -rw-r--r-- | runtime/queries/latex/folds.scm | 14 | ||||
| -rw-r--r-- | runtime/queries/latex/highlights.scm | 342 | ||||
| -rw-r--r-- | runtime/queries/latex/injections.scm | 36 |
3 files changed, 392 insertions, 0 deletions
diff --git a/runtime/queries/latex/folds.scm b/runtime/queries/latex/folds.scm new file mode 100644 index 000000000..1ee7946b8 --- /dev/null +++ b/runtime/queries/latex/folds.scm @@ -0,0 +1,14 @@ +[ + (chapter) + (part) + (section) + (subsection) + (subsubsection) + (paragraph) + (subparagraph) + (generic_environment) + (math_environment) + (comment_environment) + (block_comment) + (displayed_equation) +] @fold diff --git a/runtime/queries/latex/highlights.scm b/runtime/queries/latex/highlights.scm new file mode 100644 index 000000000..c39cd1b14 --- /dev/null +++ b/runtime/queries/latex/highlights.scm @@ -0,0 +1,342 @@ +; General syntax +(command_name) @function @nospell + +(caption + command: _ @function) + +; Turn spelling on for text +(text) @spell + +; \text, \intertext, \shortintertext, ... +(text_mode + command: _ @function @nospell + content: (curly_group + (_) @none @spell)) + +; Variables, parameters +(placeholder) @variable + +(key_value_pair + key: (_) @variable.parameter @nospell + value: (_)) + +(curly_group_spec + (text) @variable.parameter) + +(brack_group_argc) @variable.parameter + +[ + (operator) + "=" + "_" + "^" +] @operator + +"\\item" @punctuation.special + +(delimiter) @punctuation.delimiter + +(math_delimiter + left_command: _ @punctuation.delimiter + left_delimiter: _ @punctuation.delimiter + right_command: _ @punctuation.delimiter + right_delimiter: _ @punctuation.delimiter) + +[ + "[" + "]" + "{" + "}" +] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX + +; General environments +(begin + command: _ @module + name: (curly_group_text + (text) @label @nospell)) + +(end + command: _ @module + name: (curly_group_text + (text) @label @nospell)) + +; Definitions and references +(new_command_definition + command: _ @function.macro @nospell) + +(old_command_definition + command: _ @function.macro @nospell) + +(let_command_definition + command: _ @function.macro @nospell) + +(environment_definition + command: _ @function.macro @nospell + name: (curly_group_text + (_) @label @nospell)) + +(theorem_definition + command: _ @function.macro @nospell + name: (curly_group_text_list + (_) @label @nospell)) + +(paired_delimiter_definition + command: _ @function.macro @nospell + declaration: (curly_group_command_name + (_) @function)) + +(label_definition + command: _ @function.macro + name: (curly_group_text + (_) @markup.link @nospell)) + +(label_reference_range + command: _ @function.macro + from: (curly_group_text + (_) @markup.link) + to: (curly_group_text + (_) @markup.link)) + +(label_reference + command: _ @function.macro + names: (curly_group_text_list + (_) @markup.link)) + +(label_number + command: _ @function.macro + name: (curly_group_text + (_) @markup.link) + number: (_) @markup.link) + +(citation + command: _ @function.macro @nospell + keys: (curly_group_text_list) @markup.link @nospell) + +((hyperlink + command: _ @function @nospell + uri: (curly_group_uri + (_) @markup.link.url @nospell)) @_hyperlink + (#set! @_hyperlink url @markup.link.url)) + +(glossary_entry_definition + command: _ @function.macro @nospell + name: (curly_group_text + (_) @markup.link @nospell)) + +(glossary_entry_reference + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(acronym_definition + command: _ @function.macro @nospell + name: (curly_group_text + (_) @markup.link @nospell)) + +(acronym_reference + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(color_definition + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(color_reference + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)?) + +; Sectioning +(title_declaration + command: _ @module + options: (brack_group + (_) @markup.heading.1)? + text: (curly_group + (_) @markup.heading.1)) + +(author_declaration + command: _ @module + authors: (curly_group_author_list + (author)+ @markup.heading.1)) + +(chapter + command: _ @module + toc: (brack_group + (_) @markup.heading.2)? + text: (curly_group + (_) @markup.heading.2)) + +(part + command: _ @module + toc: (brack_group + (_) @markup.heading.2)? + text: (curly_group + (_) @markup.heading.2)) + +(section + command: _ @module + toc: (brack_group + (_) @markup.heading.3)? + text: (curly_group + (_) @markup.heading.3)) + +(subsection + command: _ @module + toc: (brack_group + (_) @markup.heading.4)? + text: (curly_group + (_) @markup.heading.4)) + +(subsubsection + command: _ @module + toc: (brack_group + (_) @markup.heading.5)? + text: (curly_group + (_) @markup.heading.5)) + +(paragraph + command: _ @module + toc: (brack_group + (_) @markup.heading.6)? + text: (curly_group + (_) @markup.heading.6)) + +(subparagraph + command: _ @module + toc: (brack_group + (_) @markup.heading.6)? + text: (curly_group + (_) @markup.heading.6)) + +; Beamer frames +(generic_environment + (begin + name: (curly_group_text + (text) @label) + (#any-of? @label "frame")) + . + (curly_group + (_) @markup.heading)) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (_) @markup.heading)) + (#eq? @_name "\\frametitle")) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (_) @markup.italic)) + (#any-of? @_name "\\emph" "\\textit" "\\mathit")) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (_) @markup.strong)) + (#any-of? @_name "\\textbf" "\\mathbf")) + +(generic_command + (command_name) @keyword.conditional + (#lua-match? @keyword.conditional "^\\if[a-zA-Z@]+$")) + +(generic_command + (command_name) @keyword.conditional + (#any-of? @keyword.conditional "\\fi" "\\else")) + +; File inclusion commands +(class_include + command: _ @keyword.import + path: (curly_group_path) @string) + +(package_include + command: _ @keyword.import + paths: (curly_group_path_list) @string) + +(latex_include + command: _ @keyword.import + path: (curly_group_path) @string.special.path) + +(verbatim_include + command: _ @keyword.import + path: (curly_group_path) @string.special.path) + +(import_include + command: _ @keyword.import + directory: (curly_group_path) @string.special.path + file: (curly_group_path) @string.special.path) + +(bibstyle_include + command: _ @keyword.import + path: (curly_group_path) @string) + +(bibtex_include + command: _ @keyword.import + paths: (curly_group_path_list) @string.special.path) + +(biblatex_include + "\\addbibresource" @keyword.import + glob: (curly_group_glob_pattern) @string.regexp) + +(graphics_include + command: _ @keyword.import + path: (curly_group_path) @string.special.path) + +(svg_include + command: _ @keyword.import + path: (curly_group_path) @string.special.path) + +(inkscape_include + command: _ @keyword.import + path: (curly_group_path) @string.special.path) + +(tikz_library_import + command: _ @keyword.import + paths: (curly_group_path_list) @string) + +; Turn spelling off for whole nodes +[ + (label_reference) + (label_reference_range) + (label_number) + (glossary_entry_reference) + (acronym_reference) + (color_definition) + (color_reference) + (class_include) + (package_include) + (latex_include) + (verbatim_include) + (import_include) + (bibstyle_include) + (bibtex_include) + (biblatex_include) + (graphics_include) + (svg_include) + (inkscape_include) + (tikz_library_import) +] @nospell + +; Math +[ + (displayed_equation) + (inline_formula) +] @markup.math @nospell + +(math_environment + (_) @markup.math) + +; Comments +[ + (line_comment) + (block_comment) + (comment_environment) +] @comment @spell + +((line_comment) @keyword.directive @nospell + (#lua-match? @keyword.directive "^%% !TeX")) + +((line_comment) @keyword.directive @nospell + (#lua-match? @keyword.directive "^%%&")) diff --git a/runtime/queries/latex/injections.scm b/runtime/queries/latex/injections.scm new file mode 100644 index 000000000..53d808c1d --- /dev/null +++ b/runtime/queries/latex/injections.scm @@ -0,0 +1,36 @@ +([ + (line_comment) + (block_comment) + (comment_environment) +] @injection.content + (#set! injection.language "comment")) + +(pycode_environment + code: (source_code) @injection.content + (#set! injection.language "python")) + +(sagesilent_environment + code: (source_code) @injection.content + (#set! injection.language "python")) + +(sageblock_environment + code: (source_code) @injection.content + (#set! injection.language "python")) + +(luacode_environment + code: (source_code) @injection.content + (#set! injection.language "lua")) + +(asy_environment + code: (source_code) @injection.content + (#set! injection.language "c")) + +(asydef_environment + code: (source_code) @injection.content + (#set! injection.language "c")) + +(minted_environment + (begin + language: (curly_group_text + (text) @injection.language)) + (source_code) @injection.content) |
