summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--after/ftplugin/jsx.vim2
-rw-r--r--after/syntax/puppet.vim28
-rw-r--r--after/syntax/ruby.vim115
-rw-r--r--after/syntax/yardoc_support.vim128
-rw-r--r--autoload/go/config.vim7
-rw-r--r--autoload/polyglot/ft.vim23
-rw-r--r--autoload/polyglot/init.vim2
-rw-r--r--autoload/polyglot/sleuth.vim2
-rw-r--r--compiler/lilypond.vim23
-rw-r--r--ctags/puppet.ctags3
-rw-r--r--extras/filetype.vim4
-rw-r--r--ftplugin/erlang.vim5
-rw-r--r--ftplugin/fstab.vim4
-rw-r--r--ftplugin/lilypond.vim61
-rw-r--r--indent/lilypond.vim64
-rw-r--r--indent/systemverilog.vim2
-rw-r--r--packages.yaml4
-rw-r--r--syntax/abap.vim4
-rw-r--r--syntax/crystal.vim64
-rw-r--r--syntax/julia.vim4
-rw-r--r--syntax/lilypond-words.vim7
-rw-r--r--syntax/lilypond.vim91
-rw-r--r--syntax/ocaml.vim6
-rw-r--r--syntax/odin.vim14
-rw-r--r--syntax/pgsql.vim16
-rw-r--r--syntax/prolog.vim10
-rw-r--r--syntax/typescriptreact.vim4
28 files changed, 272 insertions, 429 deletions
diff --git a/README.md b/README.md
index e2e1ee74..be4ceb04 100644
--- a/README.md
+++ b/README.md
@@ -108,7 +108,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [idris](https://github.com/idris-hackers/idris-vim) (Idris syntax highlighting for idr and lidr files)
- [ion](https://github.com/vmchale/ion-vim) (Syntax highlighting for ion files)
- [javascript-sql](https://github.com/statico/vim-javascript-sql)
-- [javascript](https://github.com/pangloss/vim-javascript) (JavaScript syntax highlighting for js, bones, cjs, es, es6 and 17 more files)
+- [javascript](https://github.com/pangloss/vim-javascript) (JavaScript syntax highlighting for js, bones, cjs, es, es6 and 18 more files)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (Syntax highlighting for jenkinsfile and Jenkinsfile files)
- [jq](https://github.com/vito-c/jq.vim) (JSONiq syntax highlighting for jq files)
- [json5](https://github.com/GutenYe/json5.vim) (JSON5 syntax highlighting for json5 files)
@@ -116,7 +116,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [jsonc](https://github.com/neoclide/jsonc.vim) (Syntax highlighting for cjson and jsonc files)
- [jsonnet](https://github.com/google/vim-jsonnet) (Jsonnet syntax highlighting for jsonnet and libsonnet files)
- [jst](https://github.com/briancollins/vim-jst) (EJS syntax highlighting for ejs, ect and jst files)
-- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (JSX syntax highlighting for jsx files)
+- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (Syntax highlighting for jsx files)
- [julia](https://github.com/JuliaEditorSupport/julia-vim) (Julia syntax highlighting for jl files)
- [kotlin](https://github.com/udalov/kotlin-vim) (Kotlin syntax highlighting for kt, ktm and kts files)
- [ledger](https://github.com/ledger/vim-ledger) (Syntax highlighting for ldg, ledger and journal files)
diff --git a/after/ftplugin/jsx.vim b/after/ftplugin/jsx.vim
index e1af589f..d3bd2a8d 100644
--- a/after/ftplugin/jsx.vim
+++ b/after/ftplugin/jsx.vim
@@ -15,7 +15,7 @@ endif
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words = '(:),\[:\],{:},<:>,' .
- \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
+ \ '<\@<=\([A-z0-9.]\+\):\(</\)\@<=\1'
endif
" For andymass/vim-matchup plugin
diff --git a/after/syntax/puppet.vim b/after/syntax/puppet.vim
new file mode 100644
index 00000000..e39f48d0
--- /dev/null
+++ b/after/syntax/puppet.vim
@@ -0,0 +1,28 @@
+if polyglot#init#is_disabled(expand('<sfile>:p'), 'yard', 'after/syntax/puppet.vim')
+ finish
+endif
+
+" Puppet syntax extensions for highlighting YARD documentation.
+"
+" Author: Gabriel Filion <gabster@lelutin.ca>
+" URI: https://github.com/noprompt/vim-yardoc
+" Version: 0.0.1
+"
+" This file reuses the main yardoc syntax definitions and glues them together
+" with puppet syntax groups from vim-puppet
+
+runtime! after/syntax/yardoc_support.vim
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Yard glue to puppet
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+syn match puppetComment "\s*#.*$" contains=puppetTodo,@Spell,yardComment
+syn region puppetComment start="/\*" end="\*/" contains=puppetTodo,@Spell,yardComment extend fold keepend
+syn cluster puppetNotTop add=@yardTags,@yardDirectives,@yardTypes,@yardLists,@yardHashes
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Tacking on Yard to puppet syntax classes
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+hi def link yardComment puppetComment
+hi def link yardGenericTag puppetKeyword
+hi def link yardGenericDirective puppetKeyword
diff --git a/after/syntax/ruby.vim b/after/syntax/ruby.vim
index 082115e1..85de287e 100644
--- a/after/syntax/ruby.vim
+++ b/after/syntax/ruby.vim
@@ -7,125 +7,22 @@ endif
" Author: Joel Holdbrooks <https://github.com/noprompt>
" URI: https://github.com/noprompt/vim-yardoc
" Version: 0.0.1
+"
+" This file reuses the main yardoc syntax definitions and glues them together
+" with Vim's builtin ruby syntax groups
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Tags
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-syn match yardGenericTag "@\h\+" contained
-syn match yardAbstract "@abstract" contained
-syn match yardApi "@api" contained
-syn match yardAttr "@attr" contained
-syn match yardAttrReader "@attr_reader" contained
-syn match yardAttrWriter "@attr_writer" contained
-syn match yardAuthor "@author" contained
-syn match yardDeprecated "@deprecated" contained
-syn match yardExample "@example" contained
-syn match yardNote "@note" contained
-syn match yardOption "@option" contained
-syn match yardOverload "@overload" contained
-syn match yardParam "@param" contained
-syn match yardParamName /@param \h\+/hs=s+7 contained contains=yardParam
-syn match yardPrivate "@private" contained
-syn match yardRaise "@raise" contained
-syn match yardReturn "@return" contained
-syn match yardSee "@see" contained
-syn match yardSince "@since" contained
-syn match yardTodo "@todo" contained
-syn match yardVersion "@version" contained
-syn match yardYield "@yield" contained
-syn match yardYieldParam "@yieldparam" contained
-syn match yardYieldReturn "@yieldreturn" contained
-syn cluster yardTags contains=yardGenericTag,yardAbstract,yardApi,yardAttr,yardAttrReader,yardAttrWriter,yardAuthor,yardDeprecated,yardExample,yardNote,yardOption,yardOverload,yardParam,yardParamName,yardPrivate,yardRaise,yardReturn,yardSee,yardSince,yardTodo,yardVersion,yardYield,yardYieldParam,yardYieldReturn
-
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Directives
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-syn match yardGenericDirective "@!\h\+" contained
-syn match yardAttribute "@!attribute" contained
-syn match yardEndGroup "@!endgroup" contained
-syn match yardGroup "@!group" contained
-syn match yardMacro "@!macro" contained
-syn match yardMethod "@!method" contained
-syn match yardParse "@!parse" contained
-syn match yardScope "@!scope" contained
-syn match yardVisibility "@!visibility" contained
-
-syn cluster yardDirectives contains=yardGenericDirective,yardAttribute,yardEndGroup,yardGroup,yardMacro,yardMethod,yardParse,yardScope,yardVisibility
-
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Types, Lists, and Hashes
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-syn match yardDuckType "#\h\+" contained
-syn match yardType "[A-Z]\h\+" contained
-syn match yardLiteral "\(true\|false\|nil\|self\|void\)" contained
-syn match yardComma "," nextgroup=@yardTypes contained
-syn match yardArrow "=>" nextgroup=@yardTypes contained
-
-syn region yardParametricType start="[A-Z]\+\h\+<" end=">" contains=yardType,yardOrderDependentList,yardComma skipwhite contained
-syn region yardOrderDependentList start="(" end=")" contains=@yardTypes,yardComma skipwhite contained
-syn region yardTypeList start="\[" end="]" contains=@yardTypes,yardOrderDependentList,@yardHashes skipwhite contained
-syn region yardHashAngle start="Hash<" end=">" contains=yardDuckType,yardType,yardLiteral,yardArrow,yardComma skipwhite contained
-syn region yardHashCurly start="Hash{" end="}" contains=@yardTypes,yardArrow,yardComma skipwhite contained
-
-syn cluster yardTypes contains=yardDuckType,yardType,yardLiteral,yardParametricType
-syn cluster yardHashes contains=yardArrow,yardHashAngle,yardHashCurly
-syn cluster yardLists contains=yardComma,yardTypeList,yardOrderDependentList
+runtime! after/syntax/yardoc_support.vim
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Yard
+" Yard glue to ruby
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-syn match yardComment "#\s*@!\{,1}\h\+.*" contains=@yardTags,@yardDirectives,yardTypeList
syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell,yardComment
syn region rubyMultilineComment start="\%(\%(^\s*#.*\n\)\@<!\%(^\s*#.*\n\)\)\%(\(^\s*#.*\n\)\{1,}\)\@=" end="\%(^\s*#.*\n\)\@<=\%(^\s*#.*\n\)\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
syn cluster rubyNotTop add=@yardTags,@yardDirectives,@yardTypes,@yardLists,@yardHashes
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Links
+" Tacking on Yard to ruby syntax classes
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
hi def link yardComment rubyComment
-" Tags
hi def link yardGenericTag rubyKeyword
-hi def link yardAbstract yardGenericTag
-hi def link yardApi yardGenericTag
-hi def link yardAttr yardGenericTag
-hi def link yardAttrReader yardGenericTag
-hi def link yardAttrWriter yardGenericTag
-hi def link yardAuthor yardGenericTag
-hi def link yardDeprecated yardGenericTag
-hi def link yardExample yardGenericTag
-hi def link yardNote yardGenericTag
-hi def link yardOption yardGenericTag
-hi def link yardOverload yardGenericTag
-hi def link yardParam yardGenericTag
-hi def link yardPrivate yardGenericTag
-hi def link yardRaise yardGenericTag
-hi def link yardReturn yardGenericTag
-hi def link yardSee yardGenericTag
-hi def link yardSince yardGenericTag
-hi def link yardTodo yardGenericTag
-hi def link yardVersion yardGenericTag
-hi def link yardYield yardGenericTag
-hi def link yardYieldParam yardGenericTag
-hi def link yardYieldReturn yardGenericTag
-" Directives
hi def link yardGenericDirective rubyKeyword
-hi def link yardAttribute yardGenericDirective
-hi def link yardEndGroup yardGenericDirective
-hi def link yardGroup yardGenericDirective
-hi def link yardMacro yardGenericDirective
-hi def link yardMethod yardGenericDirective
-hi def link yardParse yardGenericDirective
-hi def link yardScope yardGenericDirective
-hi def link yardVisibility yardGenericDirective
-" Types
-hi def link yardComma yardComment
-hi def link yardType yardComment
-hi def link yardDuckType yardComment
-hi def link yardLiteral yardComment
-" Lists
-hi def link yardTypeList yardComment
-hi def link yardParametricType yardComment
-" Hashes
-hi def link yardArrow yardComment
-hi def link yardHashAngle yardComment
-hi def link yardHashCurly yardComment
diff --git a/after/syntax/yardoc_support.vim b/after/syntax/yardoc_support.vim
new file mode 100644
index 00000000..757ead24
--- /dev/null
+++ b/after/syntax/yardoc_support.vim
@@ -0,0 +1,128 @@
+if polyglot#init#is_disabled(expand('<sfile>:p'), 'yard', 'after/syntax/yardoc_support.vim')
+ finish
+endif
+
+" Generic syntax extensions for highlighting YARD documentation.
+"
+" Author: Joel Holdbrooks <https://github.com/noprompt>
+" URI: https://github.com/noprompt/vim-yardoc
+" Version: 0.0.1
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Tags
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+syn match yardGenericTag "@\h\+" contained
+syn match yardAbstract "@abstract" contained
+syn match yardApi "@api" contained
+syn match yardAttr "@attr" contained
+syn match yardAttrReader "@attr_reader" contained
+syn match yardAttrWriter "@attr_writer" contained
+syn match yardAuthor "@author" contained
+syn match yardDeprecated "@deprecated" contained
+syn match yardExample "@example" contained
+syn match yardNote "@note" contained
+syn match yardOption "@option" contained
+syn match yardOverload "@overload" contained
+syn match yardParam "@param" contained
+syn match yardParamName /@param \h\+/hs=s+7 contained contains=yardParam
+syn match yardPrivate "@private" contained
+syn match yardRaise "@raise" contained
+syn match yardReturn "@return" contained
+syn match yardSee "@see" contained
+syn match yardSince "@since" contained
+syn match yardTodo "@todo" contained
+syn match yardVersion "@version" contained
+syn match yardYield "@yield" contained
+syn match yardYieldParam "@yieldparam" contained
+syn match yardYieldReturn "@yieldreturn" contained
+syn cluster yardTags contains=yardGenericTag,yardAbstract,yardApi,yardAttr,yardAttrReader,yardAttrWriter,yardAuthor,yardDeprecated,yardExample,yardNote,yardOption,yardOverload,yardParam,yardParamName,yardPrivate,yardRaise,yardReturn,yardSee,yardSince,yardTodo,yardVersion,yardYield,yardYieldParam,yardYieldReturn
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Directives
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+syn match yardGenericDirective "@!\h\+" contained
+syn match yardAttribute "@!attribute" contained
+syn match yardEndGroup "@!endgroup" contained
+syn match yardGroup "@!group" contained
+syn match yardMacro "@!macro" contained
+syn match yardMethod "@!method" contained
+syn match yardParse "@!parse" contained
+syn match yardScope "@!scope" contained
+syn match yardVisibility "@!visibility" contained
+
+syn cluster yardDirectives contains=yardGenericDirective,yardAttribute,yardEndGroup,yardGroup,yardMacro,yardMethod,yardParse,yardScope,yardVisibility
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Types, Lists, and Hashes
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+syn match yardDuckType "#\h\+" contained
+syn match yardType "[A-Z]\h\+" contained
+syn match yardLiteral "\(true\|false\|nil\|self\|void\)" contained
+syn match yardComma "," nextgroup=@yardTypes contained
+syn match yardArrow "=>" nextgroup=@yardTypes contained
+
+syn region yardParametricType start="[A-Z]\+\h\+<" end=">" contains=yardType,yardOrderDependentList,yardComma skipwhite contained
+syn region yardOrderDependentList start="(" end=")" contains=@yardTypes,yardComma skipwhite contained
+syn region yardTypeList start="\[" end="]" contains=@yardTypes,yardOrderDependentList,@yardHashes skipwhite contained
+syn region yardHashAngle start="Hash<" end=">" contains=yardDuckType,yardType,yardLiteral,yardArrow,yardComma skipwhite contained
+syn region yardHashCurly start="Hash{" end="}" contains=@yardTypes,yardArrow,yardComma skipwhite contained
+
+syn cluster yardTypes contains=yardDuckType,yardType,yardLiteral,yardParametricType
+syn cluster yardHashes contains=yardArrow,yardHashAngle,yardHashCurly
+syn cluster yardLists contains=yardComma,yardTypeList,yardOrderDependentList
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Yard
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+syn match yardComment "#\s*@!\{,1}\h\+.*" contains=@yardTags,@yardDirectives,yardTypeList
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Links
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" @note The links to language syntax classes is done in each language syntax
+" script.
+"
+" Tags
+hi def link yardAbstract yardGenericTag
+hi def link yardApi yardGenericTag
+hi def link yardAttr yardGenericTag
+hi def link yardAttrReader yardGenericTag
+hi def link yardAttrWriter yardGenericTag
+hi def link yardAuthor yardGenericTag
+hi def link yardDeprecated yardGenericTag
+hi def link yardExample yardGenericTag
+hi def link yardNote yardGenericTag
+hi def link yardOption yardGenericTag
+hi def link yardOverload yardGenericTag
+hi def link yardParam yardGenericTag
+hi def link yardPrivate yardGenericTag
+hi def link yardRaise yardGenericTag
+hi def link yardReturn yardGenericTag
+hi def link yardSee yardGenericTag
+hi def link yardSince yardGenericTag
+hi def link yardTodo yardGenericTag
+hi def link yardVersion yardGenericTag
+hi def link yardYield yardGenericTag
+hi def link yardYieldParam yardGenericTag
+hi def link yardYieldReturn yardGenericTag
+" Directives
+hi def link yardAttribute yardGenericDirective
+hi def link yardEndGroup yardGenericDirective
+hi def link yardGroup yardGenericDirective
+hi def link yardMacro yardGenericDirective
+hi def link yardMethod yardGenericDirective
+hi def link yardParse yardGenericDirective
+hi def link yardScope yardGenericDirective
+hi def link yardVisibility yardGenericDirective
+" Types
+hi def link yardComma yardComment
+hi def link yardType yardComment
+hi def link yardDuckType yardComment
+hi def link yardLiteral yardComment
+" Lists
+hi def link yardTypeList yardComment
+hi def link yardParametricType yardComment
+" Hashes
+hi def link yardArrow yardComment
+hi def link yardHashAngle yardComment
+hi def link yardHashCurly yardComment
diff --git a/autoload/go/config.vim b/autoload/go/config.vim
index b087b2c4..ca89b16f 100644
--- a/autoload/go/config.vim
+++ b/autoload/go/config.vim
@@ -263,13 +263,14 @@ function! go#config#SetTemplateAutocreate(value) abort
let g:go_template_autocreate = a:value
endfunction
+let s:default_metalinter = 'staticcheck'
function! go#config#MetalinterCommand() abort
- return get(g:, 'go_metalinter_command', 'golangci-lint')
+ return get(g:, 'go_metalinter_command', s:default_metalinter)
endfunction
function! go#config#MetalinterAutosaveEnabled() abort
let l:default = []
- if get(g:, 'go_metalinter_command', 'golangci-lint') == 'golangci-lint'
+ if get(g:, 'go_metalinter_command', s:default_metalinter) == 'golangci-lint'
let l:default = ['govet', 'golint']
endif
@@ -278,7 +279,7 @@ endfunction
function! go#config#MetalinterEnabled() abort
let l:default = []
- if get(g:, 'go_metalinter_command', 'golangci-lint') == 'golangci-lint'
+ if get(g:, 'go_metalinter_command', s:default_metalinter) == 'golangci-lint'
let l:default = ['vet', 'golint', 'errcheck']
endif
diff --git a/autoload/polyglot/ft.vim b/autoload/polyglot/ft.vim
index 35812c37..f872bf9c 100644
--- a/autoload/polyglot/ft.vim
+++ b/autoload/polyglot/ft.vim
@@ -362,6 +362,10 @@ func polyglot#ft#FTinc()
setf aspvbs
elseif lines =~ "<?"
setf php
+ " Pascal supports // comments but they're vary rarely used for file
+ " headers so assume POV-Ray
+ elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? s:ft_pascal_keywords
+ setf pascal
else
call polyglot#ft#FTasmsyntax()
if exists("b:asmsyntax")
@@ -408,6 +412,9 @@ func polyglot#ft#FTprogress_asm()
setf progress
endfunc
+let s:ft_pascal_comments = '^\s*\%({\|(\*\|//\)'
+let s:ft_pascal_keywords = '^\s*\%(program\|unit\|library\|uses\|begin\|procedure\|function\|const\|type\|var\)\>'
+
func polyglot#ft#FTprogress_pascal()
if exists("g:filetype_p")
exe "setf " . g:filetype_p
@@ -419,8 +426,7 @@ func polyglot#ft#FTprogress_pascal()
let lnum = 1
while lnum <= 10 && lnum < line('$')
let line = getline(lnum)
- if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
- \ || line =~ '^\s*{' || line =~ '^\s*(\*'
+ if line =~ s:ft_pascal_comments || line =~? s:ft_pascal_keywords
setf pascal
return
elseif line !~ '^\s*$' || line =~ '^/\*'
@@ -433,6 +439,19 @@ func polyglot#ft#FTprogress_pascal()
setf progress
endfunc
+func polyglot#ft#FTpp()
+ if exists("g:filetype_pp")
+ exe "setf " . g:filetype_pp
+ else
+ let line = getline(nextnonblank(1))
+ if line =~ s:ft_pascal_comments || line =~? s:ft_pascal_keywords
+ setf pascal
+ else
+ setf puppet
+ endif
+ endif
+endfunc
+
func polyglot#ft#FTr()
let max = line("$") > 50 ? 50 : line("$")
diff --git a/autoload/polyglot/init.vim b/autoload/polyglot/init.vim
index 19134f9e..bd91a37f 100644
--- a/autoload/polyglot/init.vim
+++ b/autoload/polyglot/init.vim
@@ -2336,7 +2336,7 @@ if !has_key(g:polyglot_is_disabled, 'jsx')
endif
if !has_key(g:polyglot_is_disabled, 'javascript')
- au BufNewFile,BufRead *._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.javascript,*.js,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,Jakefile setf javascript
+ au BufNewFile,BufRead *._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.javascript,*.js,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.jsx,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,Jakefile setf javascript
au BufNewFile,BufRead *.flow setf flow
endif
diff --git a/autoload/polyglot/sleuth.vim b/autoload/polyglot/sleuth.vim
index 725e1887..f3df470a 100644
--- a/autoload/polyglot/sleuth.vim
+++ b/autoload/polyglot/sleuth.vim
@@ -256,7 +256,7 @@ let s:globs = {
\ 'jam': '*.jpl,*.jpr,Prl*.*,JAM*.*',
\ 'java': '*.java,*.jav',
\ 'javacc': '*.jj,*.jjt',
- \ 'javascript': '*.js,*._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,*.javascript,Jakefile',
+ \ 'javascript': '*.js,*._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.jsx,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,*.javascript,Jakefile',
\ 'javascriptreact': '*.jsx',
\ 'jess': '*.clp',
\ 'jgraph': '*.jgr',
diff --git a/compiler/lilypond.vim b/compiler/lilypond.vim
deleted file mode 100644
index 60a1c52b..00000000
--- a/compiler/lilypond.vim
+++ /dev/null
@@ -1,23 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'lilypond', 'compiler/lilypond.vim')
- finish
-endif
-
-" LilyPond compiler file
-" Language: LilyPond
-" Maintainer: Heikki Junes <hjunes@cc.hut.fi>
-" Last Change: 2004 Mar 01
-"
-" Installed As: vim/compiler/lilypond.vim
-"
-" Only load this indent file when no other was loaded.
-if exists("current_compiler")
- finish
-endif
-let current_compiler = "lilypond"
-
-" default make
-setlocal makeprg=lilypond\ $*
-" errorformat for lily (with columns) and gcc
-" (how to see multiple-line error messages?)
-setlocal errorformat=%f:%l:%c:\ %m,%f:%l:\ %m,In\ file\ included\ from\ %f:%l:,\^I\^Ifrom\ %f:%l%m
-"
diff --git a/ctags/puppet.ctags b/ctags/puppet.ctags
index ba9ca180..23716997 100644
--- a/ctags/puppet.ctags
+++ b/ctags/puppet.ctags
@@ -1,10 +1,11 @@
--langdef=puppet
--langmap=puppet:.pp
+--regex-puppet=/^[[:space:]]*class[[:space:]]*([a-z][a-zA-Z0-9_:\-]+)/::\1/c,class/
--regex-puppet=/^[[:space:]]*class[[:space:]]*([a-z][a-zA-Z0-9_:\-]+)/\1/c,class/
--regex-puppet=/^[[:space:]]*site[[:space:]]*([a-zA-Z0-9_\-]+)/\1/s,site/
--regex-puppet=/^[[:space:]]*node[[:space:]]*[\'|\"]*([a-zA-Z0-9_\.\-]+)[\'|\"]*/\1/n,node/
--regex-puppet=/^[[:space:]]*define[[:space:]]*([a-z][a-zA-Z0-9_:\-]+)/\1/d,definition/
---regex-puppet=/^[[:space:]]*(include|require)[[:space:]]*([a-zA-Z0-9_:]+)/\1 \2/i,include/
+--regex-puppet=/^[[:space:]]*(include|require)[[:space:]]*:{0,2}([a-zA-Z0-9_:]+)/\1 ::\2/i,include/
--regex-puppet=/^[[:space:]]*([\$][a-zA-Z0-9_:]+)[[:space:]]*=/\1/v,variable/
--regex-puppet=/^[[:space:]]*[~|\-]?>?[[:space:]]*([a-z][a-zA-Z0-9_:]+)[[:space:]]*\{ *(.*):/\1[\2]/r,resource/
--regex-puppet=/([A-Z][a-zA-Z0-9_:]+)[[:space:]]*\{/\1/f,default/
diff --git a/extras/filetype.vim b/extras/filetype.vim
index 703ff96e..9e0be36d 100644
--- a/extras/filetype.vim
+++ b/extras/filetype.vim
@@ -1174,7 +1174,9 @@ au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp
au BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd
" Pascal (also *.p)
-au BufNewFile,BufRead *.pas,*.pp setf pascal
+au BufNewFile,BufRead *.pas setf pascal
+
+au BufNewFile,BufRead *.pp call polyglot#ft#FTpp()
" Delphi or Lazarus program file
au BufNewFile,BufRead *.dpr,*.lpr setf pascal
diff --git a/ftplugin/erlang.vim b/ftplugin/erlang.vim
index f23ba875..798f1ded 100644
--- a/ftplugin/erlang.vim
+++ b/ftplugin/erlang.vim
@@ -3,14 +3,15 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'erlang', 'ftplugin/erlang.vim
endif
" Vim ftplugin file
-" Language: Erlang
+" Language: Erlang (http://www.erlang.org)
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
" Author: Oscar Hellström <oscar@oscarh.net>
" Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
" Eduardo Lopez (http://github.com/tapichu)
" Arvid Bjurklint (http://github.com/slarwise)
+" Last Update: 2021-Jan-08
" License: Vim license
-" Version: 2012/01/25
+" URL: https://github.com/vim-erlang/vim-erlang-runtime
if exists('b:did_ftplugin')
finish
diff --git a/ftplugin/fstab.vim b/ftplugin/fstab.vim
index 5f0972ca..437c1247 100644
--- a/ftplugin/fstab.vim
+++ b/ftplugin/fstab.vim
@@ -6,7 +6,7 @@ endif
" Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/ftplugin/fstab.vim
-" Last Change: 2020 Dec 29
+" Last Change: 2021 Jan 02
" Version: 1.0
"
" Credits:
@@ -20,4 +20,4 @@ let b:did_ftplugin = 1
setlocal commentstring=#%s
let b:undo_ftplugin = "setlocal commentstring<"
-" vim: ts=8 ft=vim \ No newline at end of file
+" vim: ts=8 ft=vim
diff --git a/ftplugin/lilypond.vim b/ftplugin/lilypond.vim
deleted file mode 100644
index ed2d1cdb..00000000
--- a/ftplugin/lilypond.vim
+++ /dev/null
@@ -1,61 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'lilypond', 'ftplugin/lilypond.vim')
- finish
-endif
-
-" LilyPond filetype plugin
-" Language: LilyPond (ft=ly)
-" Maintainer: Heikki Junes <hjunes@cc.hut.fi>
-" Last Change: 2010 Jul 26
-"
-" Installed As: vim/ftplugin/lilypond.vim
-" Uses Generated File: vim/syntax/lilypond-words.vim
-"
-" Only do this when not done yet for this buffer
-if exists("b:did_ftplugin")
- finish
-endif
-
-" Don't load another plugin for this buffer
-let b:did_ftplugin = 1
-
-setlocal autoindent
-setlocal shiftwidth=2
-"
-" some handy key mappings
-"
-" <F4> save & make and play midi with timidity
-map <buffer> <F4> :w<Return>:se makeprg=lilypond\ \"%<\"<Return>:make<Return>:!timidity "%<.midi"<Return>
-"
-" <F5> save & make
-map <buffer> <F5> :w<Return>:se makeprg=lilypond\ \"%<\"<Return>:make<Return>
-"
-" <F6> view ps with ghostview
-map <buffer> <F6> :!gv --watch "%<.ps" &<Return>
-"
-" <F7> prev error
-map <buffer> <F7> :cp<Return>
-"
-" <F8> next error
-map <buffer> <F8> :cn<Return>
-"
-" <F9> make
-map <buffer> <F9> :w<Return>:se makeprg=make\ -k<Return>:make<Return>
-"
-" <F10> menu
-source $VIMRUNTIME/menu.vim
-setlocal wildmenu
-setlocal cpo-=<
-setlocal wcm=<C-Z>
-map <buffer> <F10> :emenu <C-Z>
-"
-" <F12> comment region
-map <buffer> <F12> :g!/%.*/normal 0i%<Return>
-"
-" <S-F12> remove comments in region
-map <buffer> <S-F12> :g/%.*/normal 0x<Return>
-"
-" Completions in Insert/Replace-mode with <Ctrl-N>
-setlocal dictionary-=$VIM/syntax/lilypond-words dictionary+=$VIM/syntax/lilypond-words
-setlocal complete-=k complete+=k
-"
-setlocal showmatch
diff --git a/indent/lilypond.vim b/indent/lilypond.vim
deleted file mode 100644
index 3d3edb05..00000000
--- a/indent/lilypond.vim
+++ /dev/null
@@ -1,64 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'lilypond', 'indent/lilypond.vim')
- finish
-endif
-
-" LilyPond indent file
-" Language: LilyPond
-" Maintainer: Heikki Junes <hjunes@cc.hut.fi>
-" Last Change: 2010 Jul 26
-"
-" Installed As: vim/indent/lilypond.vim
-"
-" Only load this indent file when no other was loaded.
-if exists("b:did_indent")
- finish
-endif
-let b:did_indent = 1
-
-setlocal indentexpr=GetLilyPondIndent()
-setlocal indentkeys=o,O,},>>,!^F
-
-" Only define the function once.
-if exists("*GetLilyPondIndent")
- finish
-endif
-
-function GetLilyPondIndent()
- if v:lnum == 1
- return 0
- endif
-
- "Find a non-blank line above the current line.
- let lnum = prevnonblank(v:lnum - 1)
- "Check if a block was started: '{' or '<<' is the last non-blank character of the previous line.
- if getline(lnum) =~ '^.*\({\|<<\)\s*$'
- let ind = indent(lnum) + &sw
- else
- let ind = indent(lnum)
- endif
-
- "Check if a block was ended: '}' or '>>' is the first non-blank character of the current line.
- if getline(v:lnum) =~ '^\s*\(}\|>>\)'
- let ind = ind - &sw
- endif
-
- " Check if the first character from the previous line is within
- " a `lilyScheme' region, and if so, use lisp-style indentation
- " for the current line.
- "
- " TODO:
- " - Only works in version 7.1.215 or later, though it should
- " silently fail in older versions.
- " - We should support `lilyScheme' regions that begin in the
- " middle of the line, too.
- for id in synstack(lnum, 1)
- if synIDattr(id, "name") == "lilyScheme"
- let ind = lispindent(v:lnum)
- endif
- endfor
-
- return ind
-endfunction
-"
-"
-"
diff --git a/indent/systemverilog.vim b/indent/systemverilog.vim
index 0f8321b5..ed1d97a5 100644
--- a/indent/systemverilog.vim
+++ b/indent/systemverilog.vim
@@ -231,4 +231,4 @@ endfunction
let &cpo = s:cpo_save
unlet s:cpo_save
-" vim:sw=2 \ No newline at end of file
+" vim:sw=2
diff --git a/packages.yaml b/packages.yaml
index cb469f02..a102eebc 100644
--- a/packages.yaml
+++ b/packages.yaml
@@ -942,7 +942,9 @@ remote: MaxMEllon/vim-jsx-pretty
dependencies: javascript
filetypes:
- name: javascriptreact
- linguist: JSX
+ patterns:
+ - pattern: '*.jsx'
+ description: Syntax Extension to JavaScript
---
name: julia
remote: JuliaEditorSupport/julia-vim
diff --git a/syntax/abap.vim b/syntax/abap.vim
index ed10cce9..534e06ef 100644
--- a/syntax/abap.vim
+++ b/syntax/abap.vim
@@ -5,7 +5,7 @@ endif
" Vim ABAP syntax file
" Language: SAP - ABAP/R4
" Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com>
-" Last Change: 2018 Dec 12
+" Last Change: 2021 Jan 02
" Comment: Thanks to EPI-USE Labs for all your assistance. :)
" Quit when a syntax file was already loaded
@@ -197,4 +197,4 @@ hi def link abapHex Number
let b:current_syntax = "abap"
-" vim: ts=8 sw=2 \ No newline at end of file
+" vim: ts=8 sw=2
diff --git a/syntax/crystal.vim b/syntax/crystal.vim
index 7dfdf507..a776e59b 100644
--- a/syntax/crystal.vim
+++ b/syntax/crystal.vim
@@ -93,10 +93,6 @@ syn match crystalStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}"
syn match crystalStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
syn region crystalInterpolation matchgroup=crystalInterpolationDelim start="#{" end="}" contained contains=TOP
-syn match crystalInterpolation "#\%(\$\|@@\=\)\w\+" display contained contains=crystalInterpolationDelim,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable,crystalPredefinedVariable
-syn match crystalInterpolationDelim "#\ze\%(\$\|@@\=\)\w\+" display contained
-syn match crystalInterpolation "#\$\%(-\w\|\W\)" display contained contains=crystalInterpolationDelim,crystalPredefinedVariable,crystalInvalidVariable
-syn match crystalInterpolationDelim "#\ze\$\%(-\w\|\W\)" display contained
syn region crystalNoInterpolation start="\\#{" end="}" contained
syn match crystalNoInterpolation "\\#{" display contained
syn match crystalNoInterpolation "\\#\%(\$\|@@\=\)\w\+" display contained
@@ -156,7 +152,6 @@ syn match crystalAnnotationName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w
syn match crystalConstant "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@="
syn match crystalClassVariable "@@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
syn match crystalInstanceVariable "@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
-syn match crystalGlobalVariable "$\%(\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*\|-.\)"
syn match crystalFreshVariable "\%(\h\|[^\x00-\x7F]\)\@1<!%\%(\h\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
syn match crystalSymbol "[]})\"':]\@1<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[][=?]\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)"
syn match crystalSymbol "[]})\"':]\@1<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
@@ -172,17 +167,11 @@ SynFold ':' syn region crystalSymbol start="[]})\"':]\@1<!:\"" end="\"" skip="\\
syn match crystalBlockParameter "\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" contained
syn region crystalBlockParameterList start="\%(\%(\<do\>\|{\)\s*\)\@<=|" end="|" oneline display contains=crystalBlockParameter
-syn match crystalInvalidVariable "$[^ %A-Za-z_-]"
-syn match crystalPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~]#
-syn match crystalPredefinedVariable "$\d\+" display
-syn match crystalPredefinedVariable "$_\>" display
-syn match crystalPredefinedVariable "$-[0FIKadilpvw]\>" display
-syn match crystalPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>" display
-syn match crystalPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display
-syn match crystalPredefinedConstant "\%(\%(\.\@1<!\.\)\@2<!\|::\)\_s*\zs\%(MatchingData\|ARGF\|ARGV\|ENV\)\>\%(\s*(\)\@!"
-syn match crystalPredefinedConstant "\%(\%(\.\@1<!\.\)\@2<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\)\>\%(\s*(\)\@!"
-syn match crystalPredefinedConstant "\%(\%(\.\@1<!\.\)\@2<!\|::\)\_s*\zs\%(STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!"
-syn match crystalPredefinedConstant "\%(\%(\.\@1<!\.\)\@2<!\|::\)\_s*\zs\%(crystal_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!"
+" In Crystal, almost all special variables were removed and global variables
+" are not supported https://github.com/crystal-lang/crystal/commit/e872c716d0e936557b34c614efc5a4c24d845f79
+" NOTE: Only $~ and $? are supported since they are actually not global.
+syn match crystalPredefinedVariable "$[~?]"
+syn match crystalPredefinedConstant "\%(\%(\.\@1<!\.\)\@2<!\|::\)\_s*\zs\%(ARGF\|ARGV\|ENV\|STDERR\|STDIN\|STDOUT\)\>\%(\s*(\)\@!"
" Normal Regular Expression
SynFold '/' syn region crystalRegexp matchgroup=crystalRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|ifdef\|when\|in\|not\|then\|else\)\|[;\~=!|&(,[<>?:*+-]\)\s*\)\@<=/" end="/[imx]*" skip="\\\\\|\\/" contains=@crystalRegexpSpecial
@@ -250,9 +239,9 @@ SynFold '<<' syn region crystalString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\
SynFold '<<' syn region crystalString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=crystalStringDelimiter end=+^\s*\zs\z1$+ contains=crystalHeredocStart,@crystalStringSpecial keepend
" Module, Class, Method, and Alias Declarations
-syn match crystalAliasDeclaration "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable nextgroup=crystalAliasDeclaration2 skipwhite
-syn match crystalAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable
-syn match crystalMethodDeclaration "[^[:space:];#(]\+" contained contains=crystalConstant,crystalFunction,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable
+syn match crystalAliasDeclaration "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalPredefinedVariable nextgroup=crystalAliasDeclaration2 skipwhite
+syn match crystalAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalPredefinedVariable
+syn match crystalMethodDeclaration "[^[:space:];#(]\+" contained contains=crystalConstant,crystalFunction,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable
syn match crystalFunctionDeclaration "[^[:space:];#(=]\+" contained contains=crystalFunction
syn match crystalTypeDeclaration "[^[:space:];#=]\+" contained contains=crystalTypeName
syn match crystalClassDeclaration "[^[:space:];#<]\+" contained contains=crystalClassName,crystalOperator
@@ -283,7 +272,6 @@ if !exists('b:crystal_no_expensive') && !exists('g:crystal_no_expensive')
syn match crystalDefine "\<alias\>" nextgroup=crystalAliasDeclaration skipwhite skipnl
syn match crystalDefine "\<def\>" nextgroup=crystalMethodDeclaration skipwhite skipnl
syn match crystalDefine "\<fun\>" nextgroup=crystalFunctionDeclaration skipwhite skipnl
- syn match crystalDefine "\<undef\>" nextgroup=crystalFunction skipwhite skipnl
syn match crystalDefine "\<\%(type\|alias\)\>\%(\s*\h\w*\s*=\)\@=" nextgroup=crystalTypeDeclaration skipwhite skipnl
syn match crystalClass "\<class\>" nextgroup=crystalClassDeclaration skipwhite skipnl
syn match crystalModule "\<module\>" nextgroup=crystalModuleDeclaration skipwhite skipnl
@@ -293,13 +281,17 @@ if !exists('b:crystal_no_expensive') && !exists('g:crystal_no_expensive')
syn match crystalEnum "\<enum\>" nextgroup=crystalEnumDeclaration skipwhite skipnl
syn match crystalAnnotation "\<annotation\>" nextgroup=crystalAnnotationDeclaration skipwhite skipnl
- SynFold 'def' syn region crystalMethodBlock start="\<\%(def\|macro\)\>" matchgroup=crystalDefine end="\%(\<\%(def\|macro\)\_s\+\)\@<!\<end\>" contains=TOP
- SynFold 'class' syn region crystalBlock start="\<class\>" matchgroup=crystalClass end="\<end\>" contains=TOP
- SynFold 'module' syn region crystalBlock start="\<module\>" matchgroup=crystalModule end="\<end\>" contains=TOP
- SynFold 'struct' syn region crystalBlock start="\<struct\>" matchgroup=crystalStruct end="\<end\>" contains=TOP
- SynFold 'lib' syn region crystalBlock start="\<lib\>" matchgroup=crystalLib end="\<end\>" contains=TOP
- SynFold 'enum' syn region crystalBlock start="\<enum\>" matchgroup=crystalEnum end="\<end\>" contains=TOP
- SynFold 'annotation' syn region crystalBlock start="\<annotation\>" matchgroup=crystalAnnotation end="\<end\>" contains=TOP
+ SynFold 'def' syn region crystalMethodBlock start="\<def\>" matchgroup=crystalDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=TOP,crystalForallKeyword
+ SynFold 'macro' syn region crystalMethodBlock start="\<macro\>" matchgroup=crystalDefine end="\%(\<macro\_s\+\)\@<!\<end\>" contains=TOP
+ SynFold 'class' syn region crystalBlock start="\<class\>" matchgroup=crystalClass end="\<end\>" contains=TOP
+ SynFold 'module' syn region crystalBlock start="\<module\>" matchgroup=crystalModule end="\<end\>" contains=TOP
+ SynFold 'struct' syn region crystalBlock start="\<struct\>" matchgroup=crystalStruct end="\<end\>" contains=TOP
+ SynFold 'lib' syn region crystalBlock start="\<lib\>" matchgroup=crystalLib end="\<end\>" contains=TOP
+ SynFold 'enum' syn region crystalBlock start="\<enum\>" matchgroup=crystalEnum end="\<end\>" contains=TOP
+ SynFold 'annotation' syn region crystalBlock start="\<annotation\>" matchgroup=crystalAnnotation end="\<end\>" contains=TOP
+
+ " keywords in method declaration
+ syn match crystalForallKeyword "\<forall\>[?!]\@!" contained containedin=crystalMethodBlock
" modifiers
syn match crystalConditionalModifier "\<\%(if\|unless\|ifdef\)\>" display
@@ -341,8 +333,9 @@ else
syn match crystalControl "\<macro\>[?!]\@!" nextgroup=crystalMacroDeclaration skipwhite skipnl
syn match crystalControl "\<enum\>[?!]\@!" nextgroup=crystalEnumDeclaration skipwhite skipnl
syn match crystalControl "\<annotation\>[?!]\@!" nextgroup=crystalAnnotationDeclaration skipwhite skipnl
- syn match crystalControl "\<\%(case\|begin\|do\|if\|ifdef\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|in\|end\)\>[?!]\@!"
- syn match crystalKeyword "\<\%(alias\|undef\)\>[?!]\@!"
+ syn match crystalControl "\<\%(case\|begin\|do\|if\|ifdef\|unless\|while\|select\|until\|else\|elsif\|ensure\|then\|when\|in\|end\)\>[?!]\@!"
+ syn match crystalKeyword "\<alias\>[?!]\@!"
+ syn match crystalForallKeyword "\<forall\>[?!]\@!"
endif
" Link attribute
@@ -353,13 +346,13 @@ if !exists('g:crystal_no_special_methods')
syn keyword crystalAccess protected private
" attr is a common variable name
syn keyword crystalAttribute abstract
- syn match crystalAttribute "\<\%(class_\)\=\%(getter\|setter\|property\)[!?]\=\s" display
+ syn match crystalAttribute "\<\%(\%(class_\)\=\%(getter\|setter\|property\)[!?]\=\|def_\%(clone\|equals\|equals_and_hash\|hash\)\|delegate\|forward_missing_to\)\s" display
syn match crystalControl "\<\%(abort\|at_exit\|exit\|fork\|loop\)\>[?!]\@!" display
syn keyword crystalException raise
" false positive with 'include?'
syn match crystalInclude "\<include\>[?!]\@!" display
syn keyword crystalInclude extend require
- syn keyword crystalKeyword caller typeof pointerof sizeof instance_sizeof
+ syn keyword crystalKeyword caller typeof pointerof sizeof instance_sizeof offsetof
syn match crystalRecord "\<record\%(\s\+\u\w*\)\@=" display
endif
@@ -404,16 +397,16 @@ SynFold '#' syn region crystalMultilineComment start="\%(\%(^\s*#.*\n\)\@<!\%(^\
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(alias\|begin\|break\|case\|class\|def\|defined\|do\|else\|select\)\>" transparent contains=NONE
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(elsif\|end\|ensure\|false\|for\|if\|ifdef\|in\|module\|next\|nil\)\>" transparent contains=NONE
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(rescue\|return\|self\|super\|previous_def\|then\|true\)\>" transparent contains=NONE
-syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(undef\|unless\|until\|when\|in\|while\|yield\|with\|__FILE__\|__LINE__\)\>" transparent contains=NONE
+syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(unless\|until\|when\|in\|while\|yield\|with\|__FILE__\|__LINE__\)\>" transparent contains=NONE
syn match crystalKeywordAsMethod "\<\%(alias\|begin\|case\|class\|def\|do\|end\)[?!]" transparent contains=NONE
-syn match crystalKeywordAsMethod "\<\%(if\|ifdef\|module\|undef\|unless\|until\|while\)[?!]" transparent contains=NONE
+syn match crystalKeywordAsMethod "\<\%(if\|ifdef\|module\|unless\|until\|while\)[?!]" transparent contains=NONE
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(abort\|at_exit\|caller\|exit\)\>" transparent contains=NONE
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(extend\|fork\|include\|asm\)\>" transparent contains=NONE
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(loop\|private\|protected\)\>" transparent contains=NONE
syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(require\|raise\)\>" transparent contains=NONE
-syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(typeof\|pointerof\|sizeof\|instance_sizeof\|\)\>" transparent contains=NONE
+syn match crystalKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%(typeof\|pointerof\|sizeof\|instance_sizeof\|offsetof\|\)\>" transparent contains=NONE
hi def link crystalClass crystalDefine
hi def link crystalModule crystalDefine
@@ -450,7 +443,6 @@ hi def link crystalStructName crystalConstant
hi def link crystalLibName crystalConstant
hi def link crystalEnumName crystalConstant
hi def link crystalAnnotationName crystalConstant
-hi def link crystalGlobalVariable crystalIdentifier
hi def link crystalBlockParameter crystalIdentifier
hi def link crystalInstanceVariable crystalIdentifier
hi def link crystalFreshVariable crystalIdentifier
@@ -486,9 +478,9 @@ hi def link crystalRegexp crystalString
hi def link crystalMacro PreProc
hi def link crystalMacroDelim crystalMacro
hi def link crystalMacroKeyword crystalKeyword
+hi def link crystalForallKeyword crystalDefine
hi def link crystalLinkAttrDelim crystalMacroDelim
hi def link crystalError Error
-hi def link crystalInvalidVariable crystalError
hi def link crystalSpaceError crystalError
hi def link crystalInvalidInteger crystalError
diff --git a/syntax/julia.vim b/syntax/julia.vim
index 056df9c4..42ed6acb 100644
--- a/syntax/julia.vim
+++ b/syntax/julia.vim
@@ -143,7 +143,7 @@ exec 'syntax region juliaConditionalEBlock matchgroup=juliaConditional transpar
exec 'syntax region juliaWhileBlock matchgroup=juliaRepeat start="'.s:nodot.'\<while\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaForBlock matchgroup=juliaRepeat start="'.s:nodot.'\<for\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaOuter fold'
exec 'syntax region juliaBeginBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<begin\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
-exec 'syntax region juliaFunctionBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<function\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
+exec 'syntax region juliaFunctionBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<function\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaMacroBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<macro\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaQuoteBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<quote\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaStructBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
@@ -344,7 +344,7 @@ exec 'syntax region juliaQuotedParBlockS matchgroup=juliaQParDelim contained s
" force precedence over Symbols
syntax match juliaOperator display "::"
-syntax region juliaCommentL matchgroup=juliaCommentDelim excludenl start="#\ze\%([^=]\|$\)" end="$" contains=juliaTodo,juliaCommentM,@juliaSpellcheckComments
+syntax region juliaCommentL matchgroup=juliaCommentDelim excludenl start="#\ze\%([^=]\|$\)" end="$" contains=juliaTodo,@juliaSpellcheckComments
syntax region juliaCommentM matchgroup=juliaCommentDelim fold start="#=\ze\%([^#]\|$\)" end="=#" contains=juliaTodo,juliaCommentM,@juliaSpellcheckComments
syntax keyword juliaTodo contained TODO FIXME XXX
diff --git a/syntax/lilypond-words.vim b/syntax/lilypond-words.vim
deleted file mode 100644
index 5d3c5a90..00000000
--- a/syntax/lilypond-words.vim
+++ /dev/null
@@ -1,7 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'lilypond', 'syntax/lilypond-words.vim')
- finish
-endif
-
-syn match lilyKeyword "[-_^]\?\\\(xNotesOn\|xNotesOff\|xNote\|wordwrap-string-internal\|wordwrap-string\|wordwrap-lines\|wordwrap-internal\|wordwrap-field\|wordwrap\|withMusicProperty\|with-url\|with-link\|with-dimensions\|with-color\|with\|whiteout\|whiteTriangleMarkup\|walkerHeadsMinor\|walkerHeads\|vspace\|void\|voiceTwoStyle\|voiceTwo\|voiceThreeStyle\|voiceThree\|voiceOneStyle\|voiceOne\|voiceNeutralStyle\|voiceFourStyle\|voiceFour\|vocalName\|virgula\|virga\|verylongfermata\|versus\|version\|verbatim-file\|vcenter\|varcoda\|upright\|upprall\|upmordent\|upbow\|up\|unset\|unit\|unfoldRepeats\|undo\|underline\|unaCorda\|unHideNotes\|typewriter\|type\|tweak\|turn\|tupletUp\|tupletSpan\|tupletNeutral\|tupletDown\|tuplet\|trill\|triangle\|treCorde\|transposition\|transposedCueDuring\|transpose\|transparent\|translate-scaled\|translate\|topLevelAlignment\|tocTitleMarkup\|tocItemWithDotsMarkup\|tocItemMarkup\|tocItem\|tiny\|timing\|times\|timeSignatureSettings\|timeSignatureFraction\|time\|tied-lyric\|tieWaitForNote\|tieUp\|tieSolid\|tieNeutral\|tieHalfSolid\|tieHalfDashed\|tieDown\|tieDotted\|tieDashed\|tieDashPattern\|thumb\|textSpannerUp\|textSpannerNeutral\|textSpannerDown\|textLengthOn\|textLengthOff\|text\|tenuto\|temporary\|tempoWholesPerMinute\|tempo\|teeny\|tag\|table-of-contents\|tablatureFormat\|tabStaffLineLayoutFunction\|tabFullNotation\|systemStartDelimiter\|sustainOn\|sustainOff\|super\|subdivideBeams\|sub\|styledNoteHeads\|strut\|stropha\|strokeFingerOrientations\|stringTunings\|stringOneTopmost\|stringNumberOrientations\|stopped\|stopTrillSpan\|stopTextSpan\|stopStaff\|stopSlashedGraceMusic\|stopMeasureCount\|stopGroup\|stopGraceSlur\|stopGraceMusic\|stopAppoggiaturaMusic\|stopAcciaccaturaMusic\|stop\|stencil\|stemUp\|stemNeutral\|stemDown\|startTrillSpan\|startTextSpan\|startStaff\|startSlashedGraceMusic\|startRepeatType\|startMeasureCount\|startGroup\|startGraceSlur\|startGraceMusic\|startAppoggiaturaMusic\|startAcciaccaturaMusic\|start\|staccato\|staccatissimo\|squashedPosition\|spp\|spacingTweaks\|sp\|southernHarmonyHeadsMinor\|southernHarmonyHeads\|sostenutoOn\|sostenutoOff\|soloText\|soloIIText\|snappizzicato\|smaller\|smallCaps\|small\|slurUp\|slurSolid\|slurNeutral\|slurHalfSolid\|slurHalfDashed\|slurDown\|slurDotted\|slurDashed\|slurDashPattern\|slashedGrace\|slashed-digit\|slashChordSeparator\|skipTypesetting\|skip\|single\|simultaneous\|simple\|signumcongruentiae\|showStaffSwitch\|showSplitTiedTabNotes\|shortfermata\|shortVocalName\|shortInstrumentName\|shiftOnnn\|shiftOnn\|shiftOn\|shiftOff\|shiftDurations\|sharp\|shape\|sfz\|sfp\|sff\|sf\|settingsFrom\|setDefaultDurationToQuarter\|set\|sesquisharp\|sesquiflat\|sequential\|semisharp\|semiflat\|semicirculus\|semiGermanChords\|segno\|searchForVoice\|scriptDefinitions\|score\|scaleDurations\|scale\|sans\|sacredHarpHeadsMinor\|sacredHarpHeads\|rtoe\|rounded-box\|rotate\|roman\|rightHandFinger\|right-column\|right-brace\|right-align\|right\|rheel\|rfz\|revertTimeSignatureSettings\|revert\|reverseturn\|retrograde\|restrainOpenStrings\|rest-by-number\|rest\|responsum\|resetRelativeOctave\|replace\|repeatTie\|repeatCountVisibility\|repeat\|removeWithTag\|remove\|relative\|rehearsalMark\|raise\|quotedEventTypes\|quotedCueEventTypes\|quoteDuring\|quilisma\|put-adjacent\|pushToTag\|pt\|property-recursive\|printPartCombineTexts\|printKeyCancellation\|predefinedFretboardsOn\|predefinedFretboardsOff\|predefinedDiagramTable\|prallup\|prallprall\|prallmordent\|pralldown\|prall\|ppppp\|pppp\|ppp\|pp\|powerChords\|powerChordSymbol\|powerChordExceptions\|postscript\|portato\|pointAndClickTypes\|pointAndClickOn\|pointAndClickOff\|pitchedTrill\|phrygian\|phrasingSlurUp\|phrasingSlurSolid\|phrasingSlurNeutral\|phrasingSlurHalfSolid\|phrasingSlurHalfDashed\|phrasingSlurDown\|phrasingSlurDotted\|phrasingSlurDashed\|phrasingSlurDashPattern\|pes\|pedalUnaCordaStyle\|pedalUnaCordaStrings\|pedalSustainStyle\|pedalSustainStrings\|pedalSostenutoStyle\|pedalSostenutoStrings\|pattern\|path\|partialJazzMusic\|partialJazzExceptions\|partial\|partcombineUp\|partcombineUnisonoOnce\|partcombineUnisono\|partcombineSoloIOnce\|partcombineSoloIIOnce\|partcombineSoloII\|partcombineSoloI\|partcombineForce\|partcombineDown\|partcombineChordsOnce\|partcombineChords\|partcombineAutomaticOnce\|partcombineAutomatic\|partcombineApartOnce\|partcombineApart\|partcombine\|partCombineTextsOnNote\|partCombineListener\|parenthesize\|parallelMusic\|paper\|palmMuteOn\|palmMuteOff\|palmMute\|pageTurn\|pageBreak\|page-ref\|page-link\|pad-x\|pad-to-box\|pad-markup\|pad-around\|p\|overrideTimeSignatureSettings\|overrideProperty\|override-lines\|override\|oval\|ottava\|oriscus\|open\|oneVoice\|once\|on-the-fly\|omit\|offset\|octaveCheck\|numericTimeSignature\|number\|null\|notemode\|noteToFretFunction\|note-by-number\|note\|normalsize\|normal-text\|normal-size-super\|normal-size-sub\|noPageTurn\|noPageBreak\|noChordSymbol\|noBreak\|noBeam\|newSpacingSection\|new\|neumeDemoLayout\|natural\|name\|musicglyph\|musicMap\|mp\|mordent\|modalTranspose\|modalInversion\|mm\|mixolydian\|minorChordModifier\|minor\|midiInstrument\|midiChannelMapping\|midi\|middleCPosition\|middleCClefPosition\|mf\|metronomeMarkFormatter\|mergeDifferentlyHeadedOn\|mergeDifferentlyHeadedOff\|mergeDifferentlyDottedOn\|mergeDifferentlyDottedOff\|melismaEnd\|melismaBusyProperties\|melisma\|medium\|maxima\|markuplist\|markup\|markletter\|markalphabet\|markLengthOn\|markLengthOff\|markFormatter\|mark\|marcato\|map-markup-commands\|makeClusters\|majorSevenSymbol\|major\|maininput\|magnify\|lyricsto\|lyrics\|lyricmode\|lyricMelismaAlignment\|lydian\|ltoe\|lower\|lookup\|longfermata\|longa\|locrian\|localKeySignature\|lineprall\|linea\|line\|ligature\|lheel\|left-column\|left-brace\|left-align\|left\|layout\|larger\|large\|languageSaveAndChange\|languageRestore\|language\|laissezVibrer\|label\|killCues\|kievanOn\|kievanOff\|keyAlterationOrder\|key\|keepWithTag\|keepAliveInterfaces\|justify-string\|justify-field\|justify\|justified-lines\|italic\|italianChords\|ionian\|inversion\|interscoreline\|instrumentTransposition\|instrumentSwitch\|instrumentName\|instrumentEqualizer\|indent\|include\|inclinatum\|inStaffSegno\|in\|improvisationOn\|improvisationOff\|implicitTimeSignatureVisibility\|ij\|iij\|ignoreFiguredBassRest\|ignoreBarChecks\|ignatzekExceptions\|ignatzekExceptionMusic\|ictus\|huge\|hspace\|highStringOne\|hideStaffSwitch\|hideSplitTiedTabNotes\|hideNotes\|hide\|header\|hcenter-in\|hbracket\|harp-pedal\|harmonicsOn\|harmonicsOff\|harmonicNote\|harmonicByRatio\|harmonicByFret\|harmonicAccidentals\|harmonic\|handleNegativeFrets\|halign\|halfopen\|grobdescriptions\|graceSettings\|grace\|glissando\|germanChords\|general-align\|fz\|funkHeadsMinor\|funkHeads\|fullJazzExceptions\|fromproperty\|fret-diagram-verbose\|fret-diagram-terse\|fret-diagram\|frenchChords\|fraction\|fp\|footnote\|fontsize\|fontSize\|fontCaps\|flexa\|flat\|flageolet\|firstClef\|fingeringOrientations\|finger\|finalis\|filled-box\|fill-with-pattern\|fill-line\|figures\|figuremode\|figuredBassFormatter\|fffff\|ffff\|fff\|ff\|fermataMarkup\|fermata\|featherDurations\|f\|eyeglasses\|extraNatural\|explicitKeySignatureVisibility\|explicitCueClefVisibility\|explicitClefVisibility\|expandFullBarRests\|eventChords\|espressivo\|epsfile\|episemInitium\|episemFinis\|endincipit\|enddim\|enddecresc\|enddecr\|endcresc\|endcr\|endSpanners\|endRepeatType\|ellipse\|easyHeadsOn\|easyHeadsOff\|dynamicUp\|dynamicNeutral\|dynamicDown\|dynamicAbsoluteVolumeFunction\|dynamic\|drums\|drummode\|drumStyleTable\|drumPitchTable\|draw-line\|draw-hline\|draw-dotted-line\|draw-dashed-line\|draw-circle\|downprall\|downmordent\|downbow\|down\|doublesharp\|doubleflat\|doubleRepeatType\|dotsUp\|dotsNeutral\|dotsDown\|dorian\|divisioMinima\|divisioMaxima\|divisioMaior\|displayScheme\|displayMusic\|displayLilyMusic\|dir-column\|dimTextDim\|dimTextDecresc\|dimTextDecr\|dimHairpin\|dim\|description\|descendens\|deprecatedenddim\|deprecatedendcresc\|deprecateddim\|deprecatedcresc\|denies\|deminutum\|defineBarLine\|defaultchild\|defaultTimeSignature\|defaultNoteHeads\|defaultBarType\|default\|decrescendoSpanner\|decresc\|decr\|deadNotesOn\|deadNotesOff\|deadNote\|dashUnderscore\|dashPlus\|dashLarger\|dashHat\|dashDot\|dashDash\|dashBang\|cueDuringWithClef\|cueDuring\|cueClefUnset\|cueClefTranspositionFormatter\|cueClef\|crossStaff\|crescendoSpanner\|crescTextCresc\|crescHairpin\|cresc\|createSpacing\|cr\|context\|consists\|concat\|compressFullBarRests\|compoundMeter\|command-name\|combine\|column-lines\|column\|coda\|cm\|clefTranspositionFormatter\|clefTransposition\|clefPosition\|clefGlyph\|clef\|circulus\|circle\|chords\|chordmodifiers\|chordmode\|chordRootNamer\|chordPrefixSpacer\|chordNoteNamer\|chordNameSeparator\|chordNameLowercaseMinor\|chordNameFunction\|chordNameExceptionsPartial\|chordNameExceptionsFull\|chordNameExceptions\|char\|change\|center-column\|center-align\|center\|cavum\|caps\|caesura\|cadenzaOn\|cadenzaOff\|breve\|breathe\|breakDynamicSpan\|break\|bracket\|box\|bookpart\|bookOutputSuffix\|bookOutputName\|book\|bold\|blackTriangleMarkup\|bigger\|bendAfter\|beamHalfMeasure\|beam\|bassStaffProperties\|bassFigureStaffAlignmentUp\|bassFigureStaffAlignmentNeutral\|bassFigureStaffAlignmentDown\|bassFigureExtendersOn\|bassFigureExtendersOff\|barNumberVisibility\|barNumberFormatter\|barNumberCheck\|barCheckSynchronize\|barAlways\|bar\|balloonText\|balloonLengthOn\|balloonLengthOff\|balloonGrobText\|backslashed-digit\|automaticBars\|autochange\|autoCautionaries\|autoBeaming\|autoBeamOn\|autoBeamOff\|autoBeamCheck\|autoAccidentals\|auto-footnote\|augmentum\|auctum\|assertBeamSlope\|assertBeamQuant\|ascendens\|arrow-head\|arpeggioParenthesisDashed\|arpeggioParenthesis\|arpeggioNormal\|arpeggioBracket\|arpeggioArrowUp\|arpeggioArrowDown\|arpeggio\|appoggiatura\|applyOutput\|applyMusic\|applyContext\|appendToTag\|alternative\|alterBroken\|allowVoltaHook\|allowPageTurn\|alias\|aikenHeadsMinor\|aikenHeads\|afterGraceFraction\|afterGrace\|aeolian\|addlyrics\|additionalPitchPrefix\|addQuote\|addInstrumentDefinition\|accidentalStyle\|acciaccatura\|accepts\|accentus\|accent\|absolute\|abs-fontsize\|aDueText\|RemoveEmptyTabStaffContext\|RemoveEmptyStaffContext\|RemoveEmptyRhythmicStaffContext\|RemoveEmptyDrumStaffContext\|IJ\|IIJ\|C\|B\|AncientRemoveEmptyStaffContext\|A\|n\)\(\A\|\n\)"me=e-1
-syn match lilyReservedWord "\(\A\|\n\)\(warnings\|staff\|spacing\|signature\|shift\|routine\|notes\|handler\|corrected\|beams\|arpeggios\|Volta_engraver\|Voice\|Vertical_align_engraver\|Vaticana_ligature_engraver\|VaticanaVoice\|VaticanaStaff\|Tweak_engraver\|Tuplet_engraver\|Trill_spanner_engraver\|Timing_translator\|Time_signature_performer\|Time_signature_engraver\|Tie_performer\|Tie_engraver\|Text_spanner_engraver\|Text_engraver\|Tempo_performer\|Tab_tie_follow_engraver\|Tab_staff_symbol_engraver\|Tab_note_heads_engraver\|TabVoice\|TabStaff\|System_start_delimiter_engraver\|Stem_engraver\|Stanza_number_engraver\|Stanza_number_align_engraver\|Staff_symbol_engraver\|Staff_performer\|Staff_collecting_engraver\|StaffGroup\|Staff\|Spanner_break_forbid_engraver\|Span_bar_stub_engraver\|Span_bar_engraver\|Span_arpeggio_engraver\|Spacing_engraver\|Slur_performer\|Slur_engraver\|Slash_repeat_engraver\|Separating_line_group_engraver\|Script_row_engraver\|Script_engraver\|Script_column_engraver\|Score\|Rhythmic_column_engraver\|RhythmicStaff\|Rest_engraver\|Rest_collision_engraver\|Repeat_tie_engraver\|Repeat_acknowledge_engraver\|Pure_from_neighbor_engraver\|Pitched_trill_engraver\|Pitch_squash_engraver\|Piano_pedal_performer\|Piano_pedal_engraver\|Piano_pedal_align_engraver\|PianoStaff\|Phrasing_slur_engraver\|PetrucciVoice\|PetrucciStaff\|Percent_repeat_engraver\|Part_combine_engraver\|Parenthesis_engraver\|Paper_column_engraver\|Output_property_engraver\|Ottava_spanner_engraver\|NullVoice\|Note_spacing_engraver\|Note_performer\|Note_name_engraver\|Note_heads_engraver\|Note_head_line_engraver\|NoteNames\|New_fingering_engraver\|Multi_measure_rest_engraver\|Midi_control_function_performer\|Metronome_mark_engraver\|Mensural_ligature_engraver\|MensuralVoice\|MensuralStaff\|Mark_engraver\|Lyrics\|Lyric_performer\|Lyric_engraver\|Ligature_bracket_engraver\|Ledger_line_engraver\|Laissez_vibrer_engraver\|Kievan_ligature_engraver\|KievanVoice\|KievanStaff\|Key_performer\|Key_engraver\|Keep_alive_together_engraver\|Instrument_switch_engraver\|Instrument_name_engraver\|Hyphen_engraver\|Grob_pq_engraver\|GregorianTranscriptionVoice\|GregorianTranscriptionStaff\|GrandStaff\|Grace_spacing_engraver\|Grace_engraver\|Grace_beam_engraver\|Grace_auto_beam_engraver\|Global\|Glissando_engraver\|Fretboard_engraver\|FretBoards\|Forbid_line_break_engraver\|Footnote_engraver\|Font_size_engraver\|Fingering_engraver\|Fingering_column_engraver\|Figured_bass_position_engraver\|Figured_bass_engraver\|FiguredBass\|Extender_engraver\|Episema_engraver\|Dynamics\|Dynamic_performer\|Dynamic_engraver\|Dynamic_align_engraver\|Drum_notes_engraver\|Drum_note_performer\|DrumVoice\|DrumStaff\|Double_percent_repeat_engraver\|Dots_engraver\|Dot_column_engraver\|Devnull\|Default_bar_line_engraver\|Custos_engraver\|Cue_clef_engraver\|CueVoice\|Control_track_performer\|Concurrent_hairpin_engraver\|Collision_engraver\|Cluster_spanner_engraver\|Clef_engraver\|Chord_tremolo_engraver\|Chord_name_engraver\|ChordNames\|ChordNameVoice\|ChoirStaff\|Breathing_sign_engraver\|Break_align_engraver\|Bend_engraver\|Beam_performer\|Beam_engraver\|Beam_collision_engraver\|Bar_number_engraver\|Bar_engraver\|Axis_group_engraver\|Auto_beam_engraver\|Arpeggio_engraver\|Accidental_engraver\|Score\)\(\A\|\n\)"ms=s+1,me=e-1
-syn match lilyNote "\<\(\(\(solx\|soltcs\|soltcb\|solstqt\|solss\|solsqt\|solsd\|solsb\|sols\|solkk\|solk\|soldsd\|soldd\|sold\|solcs\|solcb\|solbtqt\|solbsb\|solbqt\|solbb\|solb\|sol\|six\|sitcs\|sitcb\|sistqt\|siss\|sisqt\|sisd\|sisb\|sis\|sikk\|sik\|sidsd\|sidd\|sid\|sics\|sicb\|sibtqt\|sibsb\|sibqt\|sibb\|sib\|si\|rex\|retcs\|retcb\|restqt\|ress\|resqt\|resd\|resb\|res\|rekk\|rek\|redsd\|redd\|red\|recs\|recb\|rebtqt\|rebsb\|rebqt\|rebb\|reb\|re\|mix\|mitcs\|mitcb\|mistqt\|miss\|misqt\|misd\|misb\|mis\|mikk\|mik\|midsd\|midd\|mid\|mics\|micb\|mibtqt\|mibsb\|mibqt\|mibb\|mib\|mi\|lax\|latcs\|latcb\|lastqt\|lass\|lasqt\|lasd\|lasb\|las\|lakk\|lak\|ladsd\|ladd\|lad\|lacs\|lacb\|labtqt\|labsb\|labqt\|labb\|lab\|la\|hississ\|hiss\|hisis\|hisih\|his\|hih\|hessess\|heses\|heseh\|h\|gx\|gtqs\|gtqf\|gss\|gsharpsharp\|gsharp\|gs\|gqs\|gqf\|gississ\|giss\|gisis\|gisih\|gis\|gih\|gflatflat\|gflat\|gff\|gf\|gessess\|gess\|geses\|geseh\|ges\|geh\|g\|fx\|ftqs\|ftqf\|fss\|fsharpsharp\|fsharp\|fs\|fqs\|fqf\|fississ\|fiss\|fisis\|fisih\|fis\|fih\|fflatflat\|fflat\|fff\|ff\|fessess\|fess\|feses\|feseh\|fes\|feh\|fax\|fatcs\|fatcb\|fastqt\|fass\|fasqt\|fasd\|fasb\|fas\|fakk\|fak\|fadsd\|fadd\|fad\|facs\|facb\|fabtqt\|fabsb\|fabqt\|fabb\|fab\|fa\|f\|ex\|etqs\|etqf\|essess\|ess\|esharpsharp\|esharp\|eses\|eseh\|es\|eqs\|eqf\|eississ\|eiss\|eisis\|eisih\|eis\|eih\|eflatflat\|eflat\|eff\|ef\|eessess\|eess\|eeses\|eeseh\|ees\|eeh\|e\|dx\|dtqs\|dtqf\|dss\|dsharpsharp\|dsharp\|ds\|dqs\|dqf\|dox\|dotcs\|dotcb\|dostqt\|doss\|dosqt\|dosd\|dosb\|dos\|dokk\|dok\|dodsd\|dodd\|dod\|docs\|docb\|dobtqt\|dobsb\|dobqt\|dobb\|dob\|do\|dississ\|diss\|disis\|disih\|dis\|dih\|dflatflat\|dflat\|dff\|df\|dessess\|dess\|deses\|deseh\|des\|deh\|d\|cx\|ctqs\|ctqf\|css\|csharpsharp\|csharp\|cs\|cqs\|cqf\|cississ\|ciss\|cisis\|cisih\|cis\|cih\|cflatflat\|cflat\|cff\|cf\|cessess\|cess\|ceses\|ceseh\|ces\|ceh\|c\|bx\|btqs\|btqf\|bss\|bsharpsharp\|bsharp\|bs\|bqs\|bqf\|bisis\|bisih\|bis\|bih\|bflatflat\|bflat\|bff\|bf\|bess\|beses\|beseh\|bes\|beh\|bb\|b\|ax\|atqs\|atqf\|assess\|ass\|asharpsharp\|asharp\|ases\|aseh\|asas\|asah\|as\|aqs\|aqf\|aississ\|aiss\|aisis\|aisih\|ais\|aih\|aflatflat\|aflat\|aff\|af\|aessess\|aess\|aeses\|aeseh\|aes\|aeh\|a\|a\)\([,']\)\{,4}\([?!]\)\?\)\|s\|r\|R\|q\)\(\(128\|64\|32\|16\|8\|4\|2\|1\|\\breve\|\\longa\|\\maxima\)[.]\{,8}\)\?\(\A\|\n\)"me=e-1
diff --git a/syntax/lilypond.vim b/syntax/lilypond.vim
deleted file mode 100644
index c8ea6d46..00000000
--- a/syntax/lilypond.vim
+++ /dev/null
@@ -1,91 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'lilypond', 'syntax/lilypond.vim')
- finish
-endif
-
-" LilyPond syntax file
-" Language: LilyPond
-" Maintainer: Heikki Junes <hjunes@cc.hut.fi>
-" Last Change: 2010 Jul 26
-"
-" Installed As: vim/syntax/lilypond.vim
-" Uses Generated File: vim/syntax/lilypond-words.vim
-"
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
- finish
-endif
-
-" Read the LilyPond syntax match groups:
-" lilyKeyword, lilyReservedWord, lilyNote
-if version < 600
- so <sfile>:p:h/lilypond-words.vim
-else
- runtime! syntax/lilypond-words.vim
- if exists("b:current_syntax")
- unlet b:current_syntax
- endif
-endif
-
-" Match also parethesis of angle type
-setlocal mps+=<:>
-
-" Case matters
-syn case match
-
-syn cluster lilyMatchGroup contains=lilyMatcher,lilyString,lilyComment,lilyStatement,lilyNumber,lilySlur,lilySpecial,lilyNote,lilyKeyword,lilyArticulation,lilyReservedWord,lilyScheme
-
-syn region lilyMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[<>]" end="}" contains=@lilyMatchGroup fold
-syn region lilyMatcher matchgroup=Delimiter start="\[" end="]" contains=@lilyMatchGroup fold
-syn region lilyMatcher matchgroup=Delimiter start="<" skip="\\\\\|\\[{<>}]" end=">" contains=@lilyMatchGroup fold
-
-syn region lilyString start=/"/ end=/"/ skip=/\\"/
-syn region lilyComment start="%{" skip="%$" end="%}"
-syn region lilyComment start="%\([^{]\|$\)" end="$"
-
-syn match lilyNumber "[-_^.]\?\d\+[.]\?"
-syn match lilySlur "[(~)]"
-syn match lilySlur "\\[()]"
-syn match lilySpecial "\\[<!>\\]"
-" avoid highlighting the extra character in situations like
-" c--\mf c^^\mf c__\mf
-syn match lilyArticulation "[-_^][-_^+|>.]"
-
-" Include Scheme syntax highlighting, where appropriate
-syn include @embeddedScheme syntax/scheme.vim
-unlet b:current_syntax
-syn region lilyScheme matchgroup=Delimiter start="#['`]\?(" matchgroup=Delimiter end=")" contains=@embeddedScheme
-
-" Rest of syntax highlighting rules start here
-"
-" " Define the default highlighting.
-" " For version 5.7 and earlier: only when not done already
-" " For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_lily_syn_inits")
- if version < 508
- let did_lily_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink Delimiter Identifier
-
- HiLink lilyString String
- HiLink lilyComment Comment
-
- HiLink lilyNote Identifier
- HiLink lilyArticulation PreProc
- HiLink lilyKeyword Keyword
- HiLink lilyReservedWord Type
-
- HiLink lilyNumber Constant
- HiLink lilySpecial Special
- HiLink lilySlur ModeMsg
-
- delcommand HiLink
-endif
-
-let b:current_syntax = "lilypond"
diff --git a/syntax/ocaml.vim b/syntax/ocaml.vim
index 032c133d..c3508ce8 100644
--- a/syntax/ocaml.vim
+++ b/syntax/ocaml.vim
@@ -27,6 +27,9 @@ if exists("b:current_syntax") && b:current_syntax == "ocaml"
finish
endif
+let s:keepcpo = &cpo
+set cpo&vim
+
" ' can be used in OCaml identifiers
setlocal iskeyword+='
@@ -388,4 +391,7 @@ hi def link ocamlPpxEncl ocamlEncl
let b:current_syntax = "ocaml"
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
" vim: ts=8
diff --git a/syntax/odin.vim b/syntax/odin.vim
index bafd9575..10374351 100644
--- a/syntax/odin.vim
+++ b/syntax/odin.vim
@@ -8,6 +8,7 @@ endif
syntax keyword odinUsing using
syntax keyword odinTransmute transmute
+syntax keyword odinCast cast
syntax keyword odinDistinct distinct
syntax keyword odinOpaque opaque
@@ -68,7 +69,6 @@ syntax match odinFunction "\v<\w*>(\s*::\s*proc)@="
syntax match odinTagNote "@\<\w\+\>" display
-syntax match odinClass "\v<[A-Z]\w+>" display
syntax match odinConstant "\v<[A-Z0-9,_]+>" display
syntax match odinRange "\.\." display
syntax match odinHalfRange "\.\.\<" display
@@ -79,7 +79,11 @@ syntax match odinReturnOp "->" display
syntax match odinInteger "\-\?\<\d\+\>" display
syntax match odinFloat "\-\?\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=" display
-syntax match odinHex "\-\?\<0x[0-9A-Fa-f]\+\>" display
+syntax match odinHex "\<0[xX][0-9A-Fa-f]\+\>" display
+syntax match odinDoz "\<0[zZ][0-9a-bA-B]\+\>" display
+syntax match odinOct "\<0[oO][0-7]\+\>" display
+syntax match odinBin "\<0[bB][01]\+\>" display
+
syntax match odinAddressOf "&" display
syntax match odinDeref "\^" display
@@ -93,6 +97,7 @@ syntax region odinBlockComment start=/\v\/\*/ end=/\v\*\// contains=odinBlockCom
highlight link odinUsing Keyword
highlight link odinTransmute Keyword
+highlight link odinCast Keyword
highlight link odinDistinct Keyword
highlight link odinOpaque Keyword
highlight link odinReturn Keyword
@@ -162,8 +167,6 @@ highlight link odinFixMe Todo
highlight link odinNoCheckin Todo
highlight link odinHack Todo
-highlight link odinClass Type
-
highlight link odinTemplate Constant
highlight link odinTagNote Identifier
@@ -174,5 +177,8 @@ highlight link odinNull Type
highlight link odinInteger Number
highlight link odinFloat Float
highlight link odinHex Number
+highlight link odinOct Number
+highlight link odinBin Number
+highlight link odinDoz Number
let b:current_syntax = "odin"
diff --git a/syntax/pgsql.vim b/syntax/pgsql.vim
index 81acfd2b..70c3d38c 100644
--- a/syntax/pgsql.vim
+++ b/syntax/pgsql.vim
@@ -9,7 +9,7 @@ endif
" License: Vim license (see `:help license`)
" Based on PostgreSQL 13.1
-" Automatically generated on 2020-12-30 at 10:21:40
+" Automatically generated on 2021-01-13 at 20:54:21
if exists("b:current_syntax")
finish
@@ -2010,20 +2010,26 @@ else
\ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
endif
-" Folding
-syn region sqlFold start='^\s*\zs\c\(create\|update\|alter\|select\|insert\|do\)\>' end=';$' transparent fold contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlIdentifier,sqlNumber,sqlOperator,sqlSpecial,sqlString,sqlTodo,plpgsql
+let s:plgroups = 'plpgsql'
" PL/<any other language>
fun! s:add_syntax(s)
- execute 'syn include @PL' . a:s . ' syntax/' . a:s . '.vim'
+ execute 'syn include @PL' .. a:s .. ' syntax/' .. a:s .. '.vim'
unlet b:current_syntax
- execute 'syn region pgsqlpl' . a:s . ' matchgroup=sqlString start=+\$' . a:s . '\$+ end=+\$' . a:s . '\$+ keepend contains=@PL' . a:s
+ execute 'syn region pgsqlpl' .. a:s .. ' matchgroup=sqlString start=+\$' .. a:s .. '\$+ end=+\$' .. a:s .. '\$+ keepend contains=@PL' .. a:s
+ let s:plgroups .= ',pgsqlpl' .. a:s
endf
for pl in get(b:, 'pgsql_pl', get(g:, 'pgsql_pl', []))
call s:add_syntax(pl)
endfor
+" Folding
+execute "syn region sqlFold start='^\s*\zs\c\(create\|update\|alter\|select\|insert\|do\)\>' end=';$' transparent fold "
+ \ .. "contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlIdentifier,sqlNumber,sqlOperator,sqlSpecial,sqlString,sqlTodo," .. s:plgroups
+
+unlet s:plgroups
+
" Default highlighting
hi def link sqlCatalog Constant
hi def link sqlComment Comment
diff --git a/syntax/prolog.vim b/syntax/prolog.vim
index c7c9dab4..028b0000 100644
--- a/syntax/prolog.vim
+++ b/syntax/prolog.vim
@@ -5,7 +5,7 @@ endif
" Vim syntax file
" Language: PROLOG
" Maintainer: Anton Kochkov <anton.kochkov@gmail.com>
-" Last Change: 2019 Aug 29
+" Last Change: 2021 Jan 05
" There are two sets of highlighting in here:
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
@@ -25,16 +25,16 @@ syn case match
" Very simple highlighting for comments, clause heads and
" character codes. It respects prolog strings and atoms.
-syn region prologCComment start=+/\*+ end=+\*/+
-syn match prologComment +%.*+
+syn region prologCComment start=+/\*+ end=+\*/+ contains=@Spell
+syn match prologComment +%.*+ contains=@Spell
if !exists("prolog_highlighting_no_keyword")
syn keyword prologKeyword module meta_predicate multifile dynamic
endif
syn match prologCharCode +0'\\\=.+
-syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
-syn region prologClause matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause
+syn region prologClause matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause contains=@NoSpell
if !exists("prolog_highlighting_clean")
diff --git a/syntax/typescriptreact.vim b/syntax/typescriptreact.vim
index 123b4caf..02fe927e 100644
--- a/syntax/typescriptreact.vim
+++ b/syntax/typescriptreact.vim
@@ -111,13 +111,13 @@ syntax match tsxEqual +=+ display contained
" <tag id="sample">
" s~~~~~~e
-syntax region tsxString contained start=+"+ end=+"+ contains=tsxEntity,@Spell display
+syntax region tsxString contained start=+["']+ end=+["']+ contains=tsxEntity,@Spell display
" <tag key={this.props.key}>
" s~~~~~~~~~~~~~~e
syntax region tsxEscJs
\ contained
- \ contains=@typescriptValue,@tsxComment
+ \ contains=@typescriptValue,@tsxComment,typescriptObjectSpread
\ matchgroup=typescriptBraces
\ start=+{+
\ end=+}+