aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/latex
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/latex')
-rw-r--r--runtime/queries/latex/folds.scm14
-rw-r--r--runtime/queries/latex/highlights.scm342
-rw-r--r--runtime/queries/latex/injections.scm36
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)