id: latex-patterns
name: LaTeX Patterns
description: LaTeX Patterns
readonly: true
languageSettings:
  - languageId: latex
    locale: '*'
    patterns:
      - name: LaTexMacrosFunctionNames
        pattern: >
          /(?<!\\)\\(?:\\\\)*\w+/g
        description: Match against LaTex Macro function names
      - name: LaTexMacros
        pattern: >
          /(?<!\\)\\\w*(\[.*?\])?(\{.*?\})?/g
        description: Match against single-line LaTex Macros
      - name: LaTexMacrosMultiLine
        pattern: >
          /(?<!\\)\\(?:\\\\)*(?!(?:title|color|section|subsection|footnote|chapter|part|caption|emph|enquote|text|in\b))\w+(?:\[[^]*?\]|\{[^]*?\})*/gi
        description: Match against multi-line LaTex Macros
      - name: LaTexMath
        pattern: >
          /(?<!(?<!\\)(?:\\\\)*%.*)(?<!\\)(?:\\\\)*[$]+(.|\r|\n)+?(?<!(?<!\\)(?:\\\\)*%.*)(?<!\\)(?:\\\\)*[$]+/g
        description: Match against LaTex Math Macros (dollar-delimited and uncommented only)
      - name: comments
        pattern: >
          /((?<!\\)(?:\\\\)*)%.*/g
        description: Matches single-line comments in a LaTeX File
