You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- %YAML 1.2
- ---
- # http://www.sublimetext.com/docs/3/syntax.html
- name: VimL
- file_extensions:
- - vim
- scope: source.viml
- contexts:
- main:
- - include: comment
- - include: string_quoted_double
- - include: string_quoted_single
- - include: string_regex
- - include: inline_comment
- - include: number_int
- - include: number_hex
- - include: keyword
- - include: support_function
- - include: support_variable
- - include: support_type
- - include: function_params
- - include: function_definition
- - include: function_call
- - include: function
- - include: variable
- - include: expr
- comment:
- - match: ^\s*".*$
- scope: comment.line.quotes.viml
- captures:
- 1: punctuation.definition.comment.vim
- expr:
- - match: (\|\||&&|==(\?|#)?|(!|>|<)=(#|\?)?|(=|!)~(#|\?)?|(>|<)(#|\?)is|isnot|\.|\*|\\|%)
- scope: storage.function.viml
- function:
- - match: \b(fu(n|nction)?|end(f|fu|fun|function)?)\b
- scope: storage.function.viml
- function_call:
- - match: '(([sgbwtl]|)?:?[0-9a-zA-Z_#]+)(?=\()'
- scope: support.function.any-method
- function_definition:
- - match: '^\s*(function)\s*!?\s+(?=(s:)?[0-9a-zA-Z_#]+\s*\()'
- captures:
- 1: storage.function.viml
- push:
- - meta_scope: meta.function.viml
- - match: (\()
- captures:
- 1: punctuation.definition.parameters.begin.viml
- pop: true
- - match: "(s:)?[0-9a-zA-Z_#]+"
- scope: entity.name.function.viml
- function_params:
- - match: '-\w+='
- scope: support.type.viml
- inline_comment:
- - match: '(?!\$)(")(?!\{).*$\n?'
- scope: comment.line.quotes.viml
- captures:
- 1: punctuation.definition.comment.vim
- keyword:
- - match: \b(if|while|for|try|return|throw|end(if|for|while|try)?|au(g|group)|else(if|)?|do|in|catch|finally|:)\b
- scope: keyword.control.viml
- number_hex:
- - match: "#[0-9a-f]{6}"
- scope: constant.numeric.hex
- number_int:
- - match: '-?\d+'
- scope: constant.numeric.integer
- string_quoted_double:
- - match: '"(\\\\|\\"|\n[^\S\n]*\\|[^\n"])*"'
- scope: string.quoted.double.viml
- string_quoted_single:
- - match: '''(''''|\n[^\S\n]*\\|[^\n''])*'''
- scope: string.quoted.single.viml
- string_regex:
- - match: '/(\\\\|\\/|\n[^\S\n]*\\|[^\n/])*/'
- scope: string.regexp.viml
- support_function:
- - match: \b(set(local|global)?|let|command|filetype|colorscheme|\w*map|\w*a(b|brev)?|syn|exe(c|cute)?|ec(ho|)?|au(tocmd|)?)\b
- scope: support.function.viml
- support_type:
- - match: <.*?>
- scope: support.type.viml
- support_variable:
- - match: '\b(am(enu|)?|(hl|inc)?search|[Bb]uf([Nn]ew[Ff]ile|[Rr]ead)?|[Ff]ile[Tt]ype)\b'
- scope: support.variable.viml
- variable:
- - match: '([sSgGbBwWlLaAvV]:|@|$|&(?!&))\w*'
- scope: variable.other.viml
|