summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2021-12-21 14:41:23 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2021-12-21 14:41:23 +0100
commit87a26c5bf169bafbee837e2323f24cfb07e35250 (patch)
tree326eb21bb10c3d3633b83263d21c85c98f92a67e
parent918610d427503c5c7b380eae4a954bd8cb427db5 (diff)
downloadvim-polyglot-87a26c5bf169bafbee837e2323f24cfb07e35250.tar.gz
vim-polyglot-87a26c5bf169bafbee837e2323f24cfb07e35250.zip
Update
-rw-r--r--README.md15
-rw-r--r--after/compiler/tex.vim2
-rw-r--r--after/ftplugin/requirements.vim2
-rw-r--r--after/ftplugin/tex.vim2
-rw-r--r--after/indent/tex.vim2
-rw-r--r--after/syntax/rescript/graphql.vim42
-rw-r--r--after/syntax/zsh.vim126
-rw-r--r--autoload/ada.vim6
-rw-r--r--autoload/clojurecomplete.vim4
-rw-r--r--autoload/csv.vim2
-rw-r--r--autoload/fsharp.vim65
-rw-r--r--autoload/go/config.vim4
-rw-r--r--autoload/julia_blocks.vim10
-rw-r--r--autoload/nim.vim6
-rw-r--r--autoload/polyglot/ft.vim46
-rw-r--r--autoload/polyglot/init.vim70
-rw-r--r--autoload/polyglot/sleuth.vim16
-rw-r--r--autoload/smt2/parser.vim2
-rw-r--r--autoload/unison.vim108
-rw-r--r--compiler/ledger.vim4
-rw-r--r--compiler/powershell.vim24
-rw-r--r--extras/filetype.vim106
-rw-r--r--ftplugin/8th.vim10
-rw-r--r--ftplugin/aap.vim13
-rw-r--r--ftplugin/clojure.vim4
-rw-r--r--ftplugin/diff.vim11
-rw-r--r--ftplugin/dosini.vim2
-rw-r--r--ftplugin/dune.vim4
-rw-r--r--ftplugin/erlang.vim22
-rw-r--r--ftplugin/git.vim45
-rw-r--r--ftplugin/gitcommit.vim46
-rw-r--r--ftplugin/gitrebase.vim13
-rw-r--r--ftplugin/indent.vim7
-rw-r--r--ftplugin/kotlin.vim21
-rw-r--r--ftplugin/mail.vim10
-rw-r--r--ftplugin/meson.vim23
-rw-r--r--ftplugin/nginx.vim4
-rw-r--r--ftplugin/nsis.vim4
-rw-r--r--ftplugin/oasis.vim6
-rw-r--r--ftplugin/ocaml.vim38
-rw-r--r--ftplugin/ocamlbuild_tags.vim6
-rw-r--r--ftplugin/omake.vim2
-rw-r--r--ftplugin/ruby.vim40
-rw-r--r--ftplugin/sexplib.vim2
-rw-r--r--ftplugin/systemverilog.vim2
-rw-r--r--ftplugin/toml.vim14
-rw-r--r--ftplugin/unison.vim11
-rw-r--r--ftplugin/vb.vim82
-rw-r--r--ftplugin/zig.vim8
-rw-r--r--ftplugin/zimbu.vim61
-rw-r--r--indent/ada.vim2
-rw-r--r--indent/ansible.vim26
-rw-r--r--indent/cdl.vim15
-rw-r--r--indent/clojure.vim13
-rw-r--r--indent/cobol.vim3
-rw-r--r--indent/config.vim17
-rw-r--r--indent/css.vim12
-rw-r--r--indent/dosbatch.vim4
-rw-r--r--indent/dtd.vim15
-rw-r--r--indent/dune.vim2
-rw-r--r--indent/dylan.vim3
-rw-r--r--indent/erlang.vim2
-rw-r--r--indent/eterm.vim9
-rw-r--r--indent/framescript.vim9
-rw-r--r--indent/haml.vim2
-rw-r--r--indent/hamster.vim21
-rw-r--r--indent/javascript.vim2
-rw-r--r--indent/julia.vim2
-rw-r--r--indent/kotlin.vim11
-rw-r--r--indent/ld.vim9
-rw-r--r--indent/lifelines.vim2
-rw-r--r--indent/mail.vim4
-rw-r--r--indent/make.vim9
-rw-r--r--indent/meson.vim2
-rw-r--r--indent/nginx.vim2
-rw-r--r--indent/nsis.vim4
-rw-r--r--indent/ocaml.vim3
-rw-r--r--indent/occam.vim3
-rw-r--r--indent/pascal.vim15
-rw-r--r--indent/postscr.vim7
-rw-r--r--indent/pov.vim2
-rw-r--r--indent/prolog.vim7
-rw-r--r--indent/readline.vim9
-rw-r--r--indent/rust.vim2
-rw-r--r--indent/sdl.vim4
-rw-r--r--indent/svelte.vim2
-rw-r--r--indent/systemverilog.vim4
-rw-r--r--indent/tcl.vim8
-rw-r--r--indent/teraterm.vim4
-rw-r--r--indent/treetop.vim2
-rw-r--r--indent/verilog.vim4
-rw-r--r--indent/zimbu.vim4
-rw-r--r--packages.yaml5
-rw-r--r--syntax/8th.vim535
-rw-r--r--syntax/abel.vim2
-rw-r--r--syntax/ada.vim2
-rw-r--r--syntax/ahdl.vim2
-rw-r--r--syntax/aspvbs.vim10
-rw-r--r--syntax/autoit.vim3
-rw-r--r--syntax/basic/identifiers.vim2
-rw-r--r--syntax/basic/literal.vim2
-rw-r--r--syntax/cfg.vim2
-rw-r--r--syntax/clojure.vim37
-rw-r--r--syntax/csc.vim2
-rw-r--r--syntax/css.vim54
-rw-r--r--syntax/cupl.vim2
-rw-r--r--syntax/debchangelog.vim5
-rw-r--r--syntax/debsources.vim5
-rw-r--r--syntax/django.vim3
-rw-r--r--syntax/dosbatch.vim2
-rw-r--r--syntax/elixir.vim1
-rw-r--r--syntax/focexec.vim2
-rw-r--r--syntax/forth.vim2
-rw-r--r--syntax/gdb.vim13
-rw-r--r--syntax/git.vim36
-rw-r--r--syntax/gitcommit.vim91
-rw-r--r--syntax/gitrebase.vim12
-rw-r--r--syntax/glsl.vim1
-rw-r--r--syntax/go.vim16
-rw-r--r--syntax/hamster.vim2
-rw-r--r--syntax/helm.vim2
-rw-r--r--syntax/help.vim2
-rw-r--r--syntax/indent.vim9
-rw-r--r--syntax/iss.vim4
-rw-r--r--syntax/kotlin.vim47
-rw-r--r--syntax/lisp.vim26
-rw-r--r--syntax/meson.vim16
-rw-r--r--syntax/nim.vim1
-rw-r--r--syntax/nsis.vim42
-rw-r--r--syntax/ocaml.vim1
-rw-r--r--syntax/odin.vim4
-rw-r--r--syntax/pgsql.vim1471
-rw-r--r--syntax/postscr.vim12
-rw-r--r--syntax/rst.vim36
-rw-r--r--syntax/ruby.vim6
-rw-r--r--syntax/sml.vim7
-rw-r--r--syntax/spup.vim6
-rw-r--r--syntax/st.vim4
-rw-r--r--syntax/swift.vim2
-rw-r--r--syntax/tcl.vim24
-rw-r--r--syntax/texinfo.vim406
-rw-r--r--syntax/tmux.vim28
-rw-r--r--syntax/toml.vim55
-rw-r--r--syntax/vb.vim84
-rw-r--r--syntax/vlang.vim16
-rw-r--r--syntax/xpm.vim7
-rw-r--r--syntax/yats/es6-array.vim6
-rw-r--r--syntax/yats/es6-object.vim2
-rw-r--r--syntax/yats/es6-promise.vim2
-rw-r--r--syntax/yats/es6-regexp.vim2
-rw-r--r--syntax/yats/es6-string.vim6
-rw-r--r--syntax/yats/es6-symbol.vim2
-rw-r--r--syntax/zig.vim7
-rw-r--r--tests/filetypes.vim18
154 files changed, 2479 insertions, 2192 deletions
diff --git a/README.md b/README.md
index 53451d46..2ded4872 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ A collection of language packs for Vim.
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
-- It **installs and updates 120+ times faster** than the <!--Package Count-->598<!--/Package Count--> packages it consists of.
+- It **installs and updates 120+ times faster** than the <!--Package Count-->597<!--/Package Count--> packages it consists of.
- It is also more secure (scripts loaded for every filetype are generated by vim-polyglot)
- Best syntax and indentation support (no other features). Hand-selected language packs.
- Automatically detects indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth), can be disabled)
@@ -53,7 +53,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey) (AutoHotkey syntax highlighting for ahk and ahkl files)
- [blade](https://github.com/jwalton512/vim-blade) (Blade syntax highlighting for blade and blade.php files)
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
-- [c/c++](https://github.com/vim-jp/vim-cpp) (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 17 more files)
+- [c/c++](https://github.com/vim-jp/vim-cpp) (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 18 more files)
- [caddyfile](https://github.com/isobit/vim-caddyfile)
- [carp](https://github.com/hellerve/carp-vim) (Syntax highlighting for carp files)
- [cjsx](https://github.com/mtscout6/vim-cjsx)
@@ -70,8 +70,8 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [dart](https://github.com/dart-lang/dart-vim-plugin) (Dart syntax highlighting for dart and drt files)
- [dhall](https://github.com/vmchale/dhall-vim) (Dhall syntax highlighting for dhall files)
- [dlang](https://github.com/JesseKPhillips/d.vim) (D syntax highlighting for d, di, lst, dd, ddoc and sdl files)
-- [docker](https://github.com/ekalinin/Dockerfile.vim)
-- [elixir](https://github.com/elixir-lang/vim-elixir) (Elixir and HTML+EEX syntax highlighting for ex, exs, eex, html.leex and leex files)
+- [docker-compose](https://github.com/ekalinin/Dockerfile.vim)
+- [elixir](https://github.com/elixir-lang/vim-elixir) (Elixir and HTML+EEX syntax highlighting for ex, exs, eex, html.heex, html.leex and leex files)
- [elm](https://github.com/andys8/vim-elm-syntax) (Elm syntax highlighting for elm files)
- [emberscript](https://github.com/yalesov/vim-ember-script) (EmberScript syntax highlighting for em and emberscript files)
- [emblem](https://github.com/yalesov/vim-emblem) (Syntax highlighting for emblem and em files)
@@ -85,7 +85,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [git](https://github.com/tpope/vim-git) (Git Config syntax highlighting for gitconfig files)
- [gitignore](https://github.com/SirJson/fzf-gitignore)
- [gleam](https://github.com/gleam-lang/gleam.vim) (Syntax highlighting for gleam files)
-- [glsl](https://github.com/tikhomirov/vim-glsl) (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 16 more files)
+- [glsl](https://github.com/tikhomirov/vim-glsl) (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 18 more files)
- [gmpl](https://github.com/maelvalais/gmpl.vim) (Syntax highlighting for mod files)
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (Gnuplot syntax highlighting for gp, gnu, gnuplot, p, plot, plt and gpi files)
- [go](https://github.com/fatih/vim-go) (Go syntax highlighting for go and tmpl files)
@@ -113,7 +113,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [json](https://github.com/elzr/vim-json) (JSON syntax highlighting for json, avsc, geojson, gltf, har and 13 more files)
- [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)
+- [jst](https://github.com/briancollins/vim-jst) (EJS syntax highlighting for ejs, ect, ejs.t and jst 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)
- [just](https://github.com/NoahTheDuke/vim-just) (Syntax highlighting for just files)
@@ -202,12 +202,11 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
- [velocity](https://github.com/lepture/vim-velocity) (Syntax highlighting for vm files)
- [vue](https://github.com/posva/vim-vue) (Vue syntax highlighting for vue and wpy files)
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (Syntax highlighting for xdc files)
-- [xml](https://github.com/amadeus/vim-xml) (XML syntax highlighting for xml, adml, admx, ant, axml and 94 more files)
+- [xml](https://github.com/amadeus/vim-xml) (XML syntax highlighting for xml, adml, admx, ant, axml and 95 more files)
- [xsl](https://github.com/vim-scripts/XSLT-syntax) (XSLT syntax highlighting for xslt and xsl files)
- [yard](https://github.com/noprompt/vim-yardoc)
- [zephir](https://github.com/xwsoul/vim-zephir) (Zephir syntax highlighting for zep files)
- [zig](https://github.com/ziglang/zig.vim) (Zig syntax highlighting for zir, zig and zir files)
-- [zinit](https://github.com/zinit-zsh/zplugin-vim-syntax)
<!--/Language Packs-->
## Updating
diff --git a/after/compiler/tex.vim b/after/compiler/tex.vim
index d6038c2b..575c6684 100644
--- a/after/compiler/tex.vim
+++ b/after/compiler/tex.vim
@@ -22,7 +22,7 @@ endif
if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') ||
\(!filereadable('Makefile') && !filereadable('makefile'))
" If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
- " otherwize the same for global variable with same name, else it will be
+ " otherwise the same for global variable with same name, else it will be
" LaTeX
if exists("b:tex_flavor")
let current_compiler = b:tex_flavor
diff --git a/after/ftplugin/requirements.vim b/after/ftplugin/requirements.vim
index 6c3e1d24..5097952c 100644
--- a/after/ftplugin/requirements.vim
+++ b/after/ftplugin/requirements.vim
@@ -37,4 +37,6 @@ if executable('pip-compile')
setlocal makeprg=pip-compile\ %
endif
endif
+
+setlocal commentstring=#\ %s
" vim: et sw=4 ts=4 sts=4:
diff --git a/after/ftplugin/tex.vim b/after/ftplugin/tex.vim
index e2898321..31542d04 100644
--- a/after/ftplugin/tex.vim
+++ b/after/ftplugin/tex.vim
@@ -32,7 +32,7 @@ let &l:define .= '\|\\\(re\)\=new\(boolean\|command\|counter\|environment\|font'
" Tell Vim how to recognize LaTeX \include{foo} and plain \input bar :
let &l:include .= '\|\\include{'
-" On some file systems, "{" and "}" are inluded in 'isfname'. In case the
+" On some file systems, "{" and "}" are included in 'isfname'. In case the
" TeX file has \include{fname} (LaTeX only), strip everything except "fname".
let &l:includeexpr = "substitute(v:fname, '^.\\{-}{\\|}.*', '', 'g')"
diff --git a/after/indent/tex.vim b/after/indent/tex.vim
index cbb4f01b..79eb7609 100644
--- a/after/indent/tex.vim
+++ b/after/indent/tex.vim
@@ -292,7 +292,7 @@ function! GetTeXIndent() " {{{
let ind = ind - shiftwidth()
let stay = 0
endif
- " lines following to '\item' are intented once again:
+ " lines following to '\item' are indented once again:
if line =~ g:tex_items
let ind = ind + shiftwidth()
let stay = 0
diff --git a/after/syntax/rescript/graphql.vim b/after/syntax/rescript/graphql.vim
new file mode 100644
index 00000000..f7891338
--- /dev/null
+++ b/after/syntax/rescript/graphql.vim
@@ -0,0 +1,42 @@
+if polyglot#init#is_disabled(expand('<sfile>:p'), 'graphql', 'after/syntax/rescript/graphql.vim')
+ finish
+endif
+
+" Copyright (c) 2016-2021 Jon Parise <jon@indelible.org>
+"
+" Permission is hereby granted, free of charge, to any person obtaining a copy
+" of this software and associated documentation files (the "Software"), to
+" deal in the Software without restriction, including without limitation the
+" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+" sell copies of the Software, and to permit persons to whom the Software is
+" furnished to do so, subject to the following conditions:
+"
+" The above copyright notice and this permission notice shall be included in
+" all copies or substantial portions of the Software.
+"
+" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+" IN THE SOFTWARE.
+"
+" Language: GraphQL
+" Maintainer: Jon Parise <jon@indelible.org>
+
+if exists('b:current_syntax')
+ let s:current_syntax = b:current_syntax
+ unlet b:current_syntax
+endif
+
+let b:graphql_nested_syntax = 1
+syn include @GraphQLSyntax syntax/graphql.vim
+unlet b:graphql_nested_syntax
+
+if exists('s:current_syntax')
+ let b:current_syntax = s:current_syntax
+endif
+
+syntax region graphqlExtensionPoint start=+%graphql(+ end=+)+ contains=graphqlExtensionPointS
+syntax region graphqlExtensionPointS matchgroup=String start=+`+ end=+`+ contains=@GraphQLSyntax contained
diff --git a/after/syntax/zsh.vim b/after/syntax/zsh.vim
deleted file mode 100644
index cf4f9246..00000000
--- a/after/syntax/zsh.vim
+++ /dev/null
@@ -1,126 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'zinit', 'after/syntax/zsh.vim')
- finish
-endif
-
-" Copyright (c) 2019 Sebastian Gniazdowski
-"
-" Syntax highlighting for Zinit commands in any file of type `zsh'.
-" It adds definitions for the Zinit syntax to the ones from the
-" existing zsh.vim definitions-file.
-
-" Main Zinit command.
-" Should be the only TOP rule for the whole syntax.
-syntax match ZinitCommand /\<zinit\>\s/me=e-1
- \ skipwhite
- \ nextgroup=ZinitSubCommands,ZinitPluginSubCommands,ZinitSnippetSubCommands
- \ contains=ZinitSubCommands,ZinitPluginSubCommands,ZinitSnippetSubCommands
-
-" TODO: add options for e.g. light
-syntax match ZinitSubCommands /\s\<\%(ice\|compinit\|env-whitelist\|cdreplay\|cdclear\|update\)\>\s/ms=s+1,me=e-1
- \ contained
-
-syntax match ZinitPluginSubCommands /\s\<\%(light\|load\)\>\s/ms=s+1,me=e-1
- \ skipwhite nextgroup=ZinitPlugin1,ZinitPlugin2,ZinitPlugin3
- \ contains=ZinitPlugin1,ZinitPlugin2,ZinitPlugin3
-
-syntax match ZinitSnippetSubCommands /\s\<\%(snippet\)\>\s/ms=s+1,me=e-1
- \ skipwhite
- \ nextgroup=ZinitSnippetShorthands1,ZinitSnippetShorthands2
- \ contains=ZinitSnippetShorthands1,ZinitSnippetShorthands2
-
-" "user/plugin"
-syntax match ZinitPlugin1 /\s["]\%([!-_]*\%(\/[!-_]\+\)\+\|[!-_]\+\)["]/ms=s+1,hs=s+2,he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" 'user/plugin'
-syntax match ZinitPlugin2 /\s[']\%([!-_]*\%(\/[!-_]\+\)\+\|[!-_]\+\)[']/ms=s+1,hs=s+2,he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" user/plugin
-syntax match ZinitPlugin3 /\s\%([!-_]*\%(\/[!-_]\+\)\+\|[!-_]\+\)/ms=s+1,me=e+2
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" OMZ:: or PZT::
-" TODO: 'OMZ:: or 'PZT::
-syntax match ZinitSnippetShorthands1 /\s\<\%(\%(OMZ\|PZT\)\>::\|\)/hs=s+1,he=e-2
- \ contained
- \ skipwhite
- \ nextgroup=ZinitSnippetUrl1,ZinitSnippetUrl2
- \ contains=ZinitSnippetUrl1,ZinitSnippetUrl2
-
-" "OMZ:: or "PZT::
-syntax match ZinitSnippetShorthands2 /\s["]\%(\%(OMZ\|PZT\)\>::\|\)/hs=s+2,he=e-2
- \ contained
- \ skipwhite
- \ nextgroup=ZinitSnippetUrl3,ZinitSnippetUrl4
- \ contains=ZinitSnippetUrl3,ZinitSnippetUrl4
-
-syntax match ZinitSnippetUrl3 /\<\%(http:\/\/\|https:\/\/\|ftp:\/\/\|\$HOME\|\/\)[!-_]\+\%(\/[!-_]\+\)*\/\?["]/he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" TODO: Fix ZinitTrailingWhiteSpace not matching
-syntax match ZinitSnippetUrl4 /\%(\%(OMZ\|PZT\)::\)[!-_]\+\%(\/[!-_]\+\)*\/\?["]/hs=s+5,he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" http://… or https://… or ftp://… or $HOME/… or /…
-" TODO: Fix $HOME/… and /… not matching
-syntax match ZinitSnippetUrl1 /\<\%(http:\/\/\|https:\/\/\|ftp:\/\/\|\$HOME\|\/\)[!-_]\+\%(\/[!-_]\+\)*\/\?/
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" TODO: Fix ZinitTrailingWhiteSpace not matching
-syntax match ZinitSnippetUrl2 /\<\%(\%(OMZ\|PZT\)::\)[!-_]\+\%(\/[!-_]\+\)*\/\?/hs=s+5
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-syntax match ZinitTrailingWhiteSpace /[[:space:]]\+$/ contained
-
-" TODO: differentiate the no-value ices
-" TODO: use contained
-syntax match ZinitIceSubCommand /\sice\s/ms=s+1,me=e-1 nextgroup=ZinitIceModifiers
-syntax match ZinitIceModifiers /\s\<\%(svn\|proto\|from\|teleid\|bindmap\|cloneopts\|id-as\|depth\|if\|wait\|load\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(unload\|blockf\|on-update-of\|subscribe\|pick\|bpick\|src\|as\|ver\|silent\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(lucid\|notify\|mv\|cp\|atinit\|atclone\|atload\|atpull\|nocd\|run-atpull\|has\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(cloneonly\|make\|service\|trackbinds\|multisrc\|compile\|nocompile\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(nocompletions\|reset-prompt\|wrap-track\|reset\|aliases\|sh\|bash\|ksh\|csh\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(\\!sh\|!sh\|\\!bash\|!bash\|\\!ksh\|!ksh\|\\!csh\|!csh\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(blockf\|silent\|lucid\|trackbinds\|cloneonly\|nocd\|run-atpull\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(\|sh\|\!sh\|bash\|\!bash\|ksh\|\!ksh\|csh\|\!csh\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(nocompletions\|svn\|aliases\|trigger-load\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(light-mode\|is-snippet\|countdown\|ps-on-unload\|ps-on-update\)\>/ms=s+1
-
-" Include also ices added by the existing annexes
-syntax match ZinitIceModifiers /\s\<\%(test\|zman\|submod\|dl\|patch\|fbin\|sbin\|fsrc\|ferc\|fmod\|gem\|node\|rustup\|cargo\)\>/ms=s+1
-
-" Additional Zsh and Zinit functions
-syntax match ZshAndZinitFunctions /\<\%(compdef\|compinit\|zpcdreplay\|zpcdclear\|zpcompinit\|zpcompdef\)\>/
-
-" Link
-highlight def link ZshAndZinitFunctions Keyword
-highlight def link ZinitCommand Statement
-highlight def link ZinitSubCommands Title
-highlight def link ZinitPluginSubCommands Title
-highlight def link ZinitSnippetSubCommands Title
-highlight def link ZinitIceModifiers Type
-highlight def link ZinitSnippetShorthands1 Keyword
-highlight def link ZinitSnippetShorthands2 Keyword
-highlight def link ZinitPlugin1 Macro
-highlight def link ZinitPlugin2 Macro
-highlight def link ZinitPlugin3 Macro
-highlight def link ZinitSnippetUrl1 Macro
-highlight def link ZinitSnippetUrl2 Macro
-highlight def link ZinitSnippetUrl3 Macro
-highlight def link ZinitSnippetUrl4 Macro
-highlight def link ZinitTrailingWhiteSpace Error
diff --git a/autoload/ada.vim b/autoload/ada.vim
index 792fc03f..3d58cbb7 100644
--- a/autoload/ada.vim
+++ b/autoload/ada.vim
@@ -71,13 +71,13 @@ if exists ('g:ada_with_gnat_project_files')
endfor
endif
-" Section: add standart exception {{{2
+" Section: add standard exception {{{2
"
for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
- \ 'info': 'Ada standart exception.',
+ \ 'info': 'Ada standard exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
@@ -214,7 +214,7 @@ function ada#Word (...)
let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
" Cope with tag searching for items in comments; if we are, don't loop
- " backards looking for previous lines
+ " backwards looking for previous lines
if l:Column_Nr > strlen(l:Line)
" We were in a comment
let l:Line = getline(l:Line_Nr)
diff --git a/autoload/clojurecomplete.vim b/autoload/clojurecomplete.vim
index ea2de428..bc352ccb 100644
--- a/autoload/clojurecomplete.vim
+++ b/autoload/clojurecomplete.vim
@@ -12,8 +12,8 @@ endif
" -*- COMPLETION WORDS -*-
" Generated from https://github.com/clojure-vim/clojure.vim/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
-" Clojure version 1.10.2
-let s:words = ["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","PrintWriter-on","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-tap","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc!","assoc","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","case-fallthrough-err-impl","cast","cat","catch","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","def","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj!","disj","dissoc!","dissoc","distinct","distinct?","do","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-cause","ex-data","ex-info","ex-message","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","finally","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","monitor-enter","monitor-exit","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","new","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop!","pop","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","quote","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read+string","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","recur","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-tap","remove-watch","repeat","repeatedly","replace","replicate","require","requiring-resolve","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set!","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","tap>","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","try","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"]
+" Clojure version 1.10.3
+let s:words = ["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","PrintWriter-on","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-tap","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc!","assoc","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","catch","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","def","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj!","disj","dissoc!","dissoc","distinct","distinct?","do","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-cause","ex-data","ex-info","ex-message","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","finally","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","monitor-enter","monitor-exit","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","new","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop!","pop","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","quote","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read+string","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","recur","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-tap","remove-watch","repeat","repeatedly","replace","replicate","require","requiring-resolve","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set!","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","tap>","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","try","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"]
" Simple word completion for special forms and public vars in clojure.core
function! clojurecomplete#Complete(findstart, base)
diff --git a/autoload/csv.vim b/autoload/csv.vim
index 36a65dd3..34943bc7 100644
--- a/autoload/csv.vim
+++ b/autoload/csv.vim
@@ -2724,7 +2724,7 @@ fu! csv#Tabularize(bang, first, last) "{{{3
if getline(a:first)[-1:] isnot? b:delimiter
let b:col_width[-1] += 1
endif
- let marginline = s:td.scol. join(map(copy(b:col_width), 'repeat(s:td.hbar, v:val)'), s:td.cros). s:td.ecol
+ let marginline = s:td.scol. join(map(copy(b:col_width), 'repeat(s:td.hbar, v:val-1)'), s:td.cros). s:td.ecol
call csv#NewDelimiter(s:td.vbar, 1, line('$'))
"exe printf('sil %d,%ds/%s/%s/ge', a:first, (a:last+adjust_last),
diff --git a/autoload/fsharp.vim b/autoload/fsharp.vim
index d18f2bbc..5d8bb79d 100644
--- a/autoload/fsharp.vim
+++ b/autoload/fsharp.vim
@@ -3,7 +3,6 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'fsharp', 'autoload/fsharp.vim
endif
" Vim autoload functions
-
if exists('g:loaded_autoload_fsharp')
finish
endif
@@ -240,14 +239,6 @@ function! fsharp#loadConfig()
if !exists('g:fsharp#fsautocomplete_command')
let s:fsac = fnamemodify(s:script_root_dir . "fsac/fsautocomplete.dll", ":p")
-
- " check if FSAC exists
- if empty(glob(s:fsac))
- echoerr "FSAC not found. :FSharpUpdateFSAC to download."
- let &cpo = s:cpo_save
- finish
- endif
-
let g:fsharp#fsautocomplete_command =
\ ['dotnet', s:fsac,
\ '--background-service-enabled'
@@ -331,6 +322,29 @@ function! fsharp#loadConfig()
endif
endif
+ " FSI keymaps
+ if g:fsharp#fsi_keymap == "vscode"
+ if has('nvim')
+ let g:fsharp#fsi_keymap_send = "<M-cr>"
+ let g:fsharp#fsi_keymap_toggle = "<M-@>"
+ else
+ let g:fsharp#fsi_keymap_send = "<esc><cr>"
+ let g:fsharp#fsi_keymap_toggle = "<esc>@"
+ endif
+ elseif g:fsharp#fsi_keymap == "vim-fsharp"
+ let g:fsharp#fsi_keymap_send = "<leader>i"
+ let g:fsharp#fsi_keymap_toggle = "<leader>e"
+ elseif g:fsharp#fsi_keymap == "custom"
+ let g:fsharp#fsi_keymap = "none"
+ if !exists('g:fsharp#fsi_keymap_send')
+ echoerr "g:fsharp#fsi_keymap_send is not set"
+ elseif !exists('g:fsharp#fsi_keymap_toggle')
+ echoerr "g:fsharp#fsi_keymap_toggle is not set"
+ else
+ let g:fsharp#fsi_keymap = "custom"
+ endif
+ endif
+
let s:config_is_loaded = 1
endfunction
@@ -398,39 +412,6 @@ endfunction
" .NET/F# specific operations
-function! s:findWorkspace(dir, cont)
- let s:cont_findWorkspace = a:cont
- function! s:callback_findWorkspace(result)
- let result = a:result
- let content = json_decode(result.result.content)
- if len(content.Data.Found) < 1
- return []
- endif
- let workspace = { 'Type': 'none' }
- for found in content.Data.Found
- if workspace.Type == 'none'
- let workspace = found
- elseif found.Type == 'solution'
- if workspace.Type == 'project'
- let workspace = found
- else
- let curLen = len(workspace.Data.Items)
- let newLen = len(found.Data.Items)
- if newLen > curLen
- let workspace = found
- endif
- endif
- endif
- endfor
- if workspace.Type == 'solution'
- call s:cont_findWorkspace([workspace.Data.Path])
- else
- call s:cont_findWorkspace(workspace.Data.Fsprojs)
- endif
- endfunction
- call s:workspacePeek(a:dir, g:fsharp#workspace_mode_peek_deep_level, g:fsharp#exclude_project_directories, function("s:callback_findWorkspace"))
-endfunction
-
let s:workspace = []
function! fsharp#handle_notifyWorkspace(payload) abort
diff --git a/autoload/go/config.vim b/autoload/go/config.vim
index f7389cdc..0ee1466f 100644
--- a/autoload/go/config.vim
+++ b/autoload/go/config.vim
@@ -215,6 +215,10 @@ function! go#config#DebugWindows() abort
endfunction
+function! go#config#DebugSubstitutePaths() abort
+ return get(g:, 'go_debug_substitute_paths', [])
+endfunction
+
function! go#config#DebugPreserveLayout() abort
return get(g:, 'go_debug_preserve_layout', 0)
endfunction
diff --git a/autoload/julia_blocks.vim b/autoload/julia_blocks.vim
index 6a0c05c9..11bbb435 100644
--- a/autoload/julia_blocks.vim
+++ b/autoload/julia_blocks.vim
@@ -339,7 +339,7 @@ function! s:on_begin()
let [l,c] = [line('.'), col('.')]
normal! ^
let patt = '\%<'.(c+1).'c\(' . b:julia_begin_keywordsm . '\)\%>'.(c-1).'c'
- let n = search(patt, 'Wnc', l)
+ let n = search('\C' . patt, 'Wnc', l)
call cursor(l, c)
return n > 0
endfunction
@@ -350,7 +350,7 @@ function! s:matchit()
endfunction
function! s:move_before_begin()
- call search(b:julia_begin_keywordsm, 'Wbc')
+ call search('\C' . b:julia_begin_keywordsm, 'Wbc')
normal! h
endfunction
@@ -382,7 +382,7 @@ function! s:moveto_block_delim(toend, backwards, ...)
normal! bh
endif
while 1
- let searchret = search(pattern, flags)
+ let searchret = search('\C' . pattern, flags)
if !searchret
return ret
endif
@@ -473,7 +473,7 @@ function! s:moveto_currentblock_end()
normal! b
endif
- let ret = searchpair(b:julia_begin_keywordsm, '', b:julia_end_keywords, flags, b:match_skip)
+ let ret = searchpair('\C' . b:julia_begin_keywordsm, '', '\C' . b:julia_end_keywords, flags, b:match_skip)
if ret <= 0
return s:abort()
endif
@@ -679,7 +679,7 @@ function! s:find_block(current_mode)
normal! l
normal! b
endif
- let searchret = searchpair(b:julia_begin_keywordsm, '', b:julia_end_keywords, flags, b:match_skip)
+ let searchret = searchpair('\C' . b:julia_begin_keywordsm, '', '\C' . b:julia_end_keywords, flags, b:match_skip)
if searchret <= 0
if !b:jlblk_did_select
return s:abort()
diff --git a/autoload/nim.vim b/autoload/nim.vim
index c0faf6e1..7f55f25f 100644
--- a/autoload/nim.vim
+++ b/autoload/nim.vim
@@ -23,8 +23,8 @@ fun! nim#init() abort
if !v:shell_error && expand('%:e') ==# 'nim'
let false = 0 " Needed for eval of json
let true = 1 " Needed for eval of json
- let dumpdata = eval(substitute(raw_dumpdata, "\n", '', 'g'))
-
+ let dumpdata = json_decode(raw_dumpdata)
+
let b:nim_project_root = dumpdata['project_path']
let b:nim_defined_symbols = dumpdata['defined_symbols']
let b:nim_caas_enabled = g:nim_caas_enabled || index(dumpdata['defined_symbols'], 'forcecaas') != -1
@@ -211,7 +211,9 @@ fun! GotoDefinition_nim_ready(def_output) abort
let defBits = split(rawDef, '\t')
let file = defBits[4]
let line = defBits[5]
+ let column = defBits[6]
exe printf('e +%d %s', line, file)
+ call cursor(line, column + 1)
return 1
endf
diff --git a/autoload/polyglot/ft.vim b/autoload/polyglot/ft.vim
index e4c32415..56012da1 100644
--- a/autoload/polyglot/ft.vim
+++ b/autoload/polyglot/ft.vim
@@ -1,7 +1,7 @@
" Vim functions for file type detection
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2020 Aug 17
+" Last Change: 2021 Nov 27
" These functions are moved here from runtime/filetype.vim to make startup
" faster.
@@ -219,6 +219,23 @@ func polyglot#ft#FTe()
endif
endfunc
+" Distinguish between Forth and F#.
+" Provided by Doug Kearns.
+func polyglot#ft#FTfs()
+ if exists("g:filetype_fs")
+ exe "setf " . g:filetype_fs
+ else
+ let line = getline(nextnonblank(1))
+ " comments and colon definitions
+ if line =~ '^\s*\.\=( ' || line =~ '^\s*\\G\= ' || line =~ '^\\$'
+ \ || line =~ '^\s*: \S'
+ setf forth
+ else
+ setf fsharp
+ endif
+ endif
+endfunc
+
" Distinguish between HTML, XHTML and Django
func polyglot#ft#FThtml()
let n = 1
@@ -269,7 +286,10 @@ func polyglot#ft#FTm()
return
endif
- let octave_block_terminators = '\<end\%(_try_catch\|classdef\|enumeration\|events\|for\|function\|if\|methods\|parfor\|properties\|switch\|while\)\>'
+ " excluding end(for|function|if|switch|while) common to Murphi
+ let octave_block_terminators = '\<end\%(_try_catch\|classdef\|enumeration\|events\|methods\|parfor\|properties\)\>'
+
+ let objc_preprocessor = '^\s*#\s*\%(import\|include\|define\|if\|ifn\=def\|undef\|line\|error\|pragma\)\>'
let n = 1
let saw_comment = 0 " Whether we've seen a multiline comment leader.
@@ -281,12 +301,11 @@ func polyglot#ft#FTm()
" anything more definitive.
let saw_comment = 1
endif
- if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
+ if line =~ '^\s*//' || line =~ '^\s*@import\>' || line =~ objc_preprocessor
setf objc
return
endif
- if line =~ '^\s*\%(#\|%!\|[#%]{\=\s*$\)' ||
- \ line =~ '^\s*unwind_protect\>' ||
+ if line =~ '^\s*\%(#\|%!\)' || line =~ '^\s*unwind_protect\>' ||
\ line =~ '\%(^\|;\)\s*' .. octave_block_terminators
setf octave
return
@@ -792,6 +811,23 @@ func polyglot#ft#Redif()
endwhile
endfunc
+" This function is called for all files under */debian/patches/*, make sure not
+" to non-dep3patch files, such as README and other text files.
+func polyglot#ft#Dep3patch()
+ if expand('%:t') ==# 'series'
+ return
+ endif
+
+ for ln in getline(1, 100)
+ if ln =~# '^\%(Description\|Subject\|Origin\|Bug\|Forwarded\|Author\|From\|Reviewed-by\|Acked-by\|Last-Updated\|Applied-Upstream\):'
+ setf dep3patch
+ return
+ elseif ln =~# '^---'
+ " end of headers found. stop processing
+ return
+ endif
+ endfor
+endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
diff --git a/autoload/polyglot/init.vim b/autoload/polyglot/init.vim
index fcba050f..1457f11a 100644
--- a/autoload/polyglot/init.vim
+++ b/autoload/polyglot/init.vim
@@ -1769,10 +1769,6 @@ if !has_key(g:polyglot_is_disabled, 'gitignore')
au BufNewFile,BufRead *.git/info/exclude,*/.config/git/ignore,{.,}gitignore setf gitignore
endif
-if !has_key(g:polyglot_is_disabled, 'tads')
- au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
-endif
-
if !has_key(g:polyglot_is_disabled, 'prolog')
au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl()
au BufNewFile,BufRead *.pdb,*.pro,*.prolog,*.yap setf prolog
@@ -1787,7 +1783,7 @@ if !has_key(g:polyglot_is_disabled, 'odin')
endif
if !has_key(g:polyglot_is_disabled, 'dosini')
- au BufNewFile,BufRead *.dof,*.ini,*.lektorproject,*.prefs,*.pro,*.properties,*/etc/pacman.conf,*/etc/yum.conf,{.,}editorconfig,{.,}npmrc,buildozer.spec setf dosini
+ au BufNewFile,BufRead *.dof,*.ini,*.lektorproject,*.prefs,*.pro,*.properties,*/etc/pacman.conf,*/etc/yum.conf,{.,}editorconfig,{.,}flake8,{.,}npmrc,buildozer.spec setf dosini
au BufNewFile,BufRead php.ini-* call s:StarSetf('dosini')
au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini')
endif
@@ -1961,7 +1957,7 @@ if !has_key(g:polyglot_is_disabled, 'slim')
endif
if !has_key(g:polyglot_is_disabled, 'sh')
- au BufNewFile,BufRead *.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh,*.sh.in,*.tmux,*.tool,*/etc/udev/cdsymlinks.conf,{.,}bash_aliases,{.,}bash_history,{.,}bash_logout,{.,}bash_profile,{.,}bashrc,{.,}cshrc,{.,}env,{.,}env.example,{.,}flaskenv,{.,}login,{.,}profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,login,man,profile setf sh
+ au BufNewFile,BufRead *.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh,*.sh.in,*.tmux,*.tool,*/etc/udev/cdsymlinks.conf,{.,}bash_aliases,{.,}bash_history,{.,}bash_logout,{.,}bash_profile,{.,}bashrc,{.,}cshrc,{.,}env,{.,}env.example,{.,}flaskenv,{.,}kshrc,{.,}login,{.,}profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,kshrc,login,man,profile setf sh
au BufNewFile,BufRead *.zsh,*/etc/zprofile,{.,}zfbfmarks,{.,}zlogin,{.,}zlogout,{.,}zprofile,{.,}zshenv,{.,}zshrc setf zsh
au BufNewFile,BufRead .zsh* call s:StarSetf('zsh')
au BufNewFile,BufRead .zlog* call s:StarSetf('zsh')
@@ -2011,13 +2007,6 @@ if !has_key(g:polyglot_is_disabled, 'raml')
au BufNewFile,BufRead *.raml setf raml
endif
-if !has_key(g:polyglot_is_disabled, 'raku')
- au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
- au! BufNewFile,BufRead,BufWritePost *.pm call polyglot#detect#Pm()
- au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl()
- au BufNewFile,BufRead *.6pl,*.6pm,*.nqp,*.p6,*.p6l,*.p6m,*.pl6,*.pm6,*.pod6,*.raku,*.rakudoc,*.rakumod,*.rakutest,*.t6 setf raku
-endif
-
if !has_key(g:polyglot_is_disabled, 'ragel')
au BufNewFile,BufRead *.rl setf ragel
endif
@@ -2097,22 +2086,6 @@ if !has_key(g:polyglot_is_disabled, 'pgsql')
au BufNewFile,BufRead *.pgsql let b:sql_type_override='pgsql' | set ft=sql
endif
-if !has_key(g:polyglot_is_disabled, 'perl')
- au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
- au! BufNewFile,BufRead,BufWritePost *.pm call polyglot#detect#Pm()
- au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl()
- au BufNewFile,BufRead *.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.psgi,{.,}gitolite.rc,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc setf perl
- au BufNewFile,BufRead *.pod setf pod
- au BufNewFile,BufRead *.comp,*.mason,*.mhtml setf mason
- au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
- au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
- au BufNewFile,BufRead *.xs setf xs
-endif
-
-if !has_key(g:polyglot_is_disabled, 'rc')
- au BufNewFile,BufRead *.rc,*.rch setf rc
-endif
-
if !has_key(g:polyglot_is_disabled, 'opencl')
au BufNewFile,BufRead *.cl,*.opencl setf opencl
endif
@@ -2225,7 +2198,34 @@ if !has_key(g:polyglot_is_disabled, 'julia')
endif
if !has_key(g:polyglot_is_disabled, 'jst')
- au BufNewFile,BufRead *.ect,*.ejs,*.jst setf jst
+ au BufNewFile,BufRead *.ect,*.ejs,*.ejs.t,*.jst setf jst
+endif
+
+if !has_key(g:polyglot_is_disabled, 'tads')
+ au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
+endif
+
+if !has_key(g:polyglot_is_disabled, 'raku')
+ au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
+ au! BufNewFile,BufRead,BufWritePost *.pm call polyglot#detect#Pm()
+ au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl()
+ au BufNewFile,BufRead *.6pl,*.6pm,*.nqp,*.p6,*.p6l,*.p6m,*.pl6,*.pm6,*.pod6,*.raku,*.rakudoc,*.rakumod,*.rakutest,*.t6 setf raku
+endif
+
+if !has_key(g:polyglot_is_disabled, 'perl')
+ au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T()
+ au! BufNewFile,BufRead,BufWritePost *.pm call polyglot#detect#Pm()
+ au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl()
+ au BufNewFile,BufRead *.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.psgi,{.,}gitolite.rc,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc setf perl
+ au BufNewFile,BufRead *.pod setf pod
+ au BufNewFile,BufRead *.comp,*.mason,*.mhtml setf mason
+ au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
+ au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2()
+ au BufNewFile,BufRead *.xs setf xs
+endif
+
+if !has_key(g:polyglot_is_disabled, 'rc')
+ au BufNewFile,BufRead *.rc,*.rch setf rc
endif
if !has_key(g:polyglot_is_disabled, 'jsonnet')
@@ -2339,7 +2339,7 @@ endif
if !has_key(g:polyglot_is_disabled, 'glsl')
au! BufNewFile,BufRead,BufWritePost *.fs call polyglot#detect#Fs()
- au BufNewFile,BufRead *.comp,*.fp,*.frag,*.frg,*.fsh,*.fshader,*.geo,*.geom,*.glsl,*.glslf,*.glslv,*.gs,*.gshader,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader setf glsl
+ au BufNewFile,BufRead *.comp,*.fp,*.frag,*.frg,*.fsh,*.fshader,*.geo,*.geom,*.glsl,*.glslf,*.glslv,*.gs,*.gshader,*.rchit,*.rmiss,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader setf glsl
endif
if !has_key(g:polyglot_is_disabled, 'git')
@@ -2398,7 +2398,7 @@ endif
if !has_key(g:polyglot_is_disabled, 'elixir')
au BufNewFile,BufRead *.ex,*.exs,mix.lock setf elixir
- au BufNewFile,BufRead *.eex,*.html.leex,*.leex setf eelixir
+ au BufNewFile,BufRead *.eex,*.html.heex,*.html.leex,*.leex setf eelixir
endif
if !has_key(g:polyglot_is_disabled, 'docker-compose')
@@ -2406,7 +2406,7 @@ if !has_key(g:polyglot_is_disabled, 'docker-compose')
endif
if !has_key(g:polyglot_is_disabled, 'yaml')
- au BufNewFile,BufRead *.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml,*.yml.mysql,{.,}clang-format,{.,}clang-tidy,{.,}gemrc,fish_history,fish_read_history,glide.lock,yarn.lock setf yaml
+ au BufNewFile,BufRead *.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml,*.yml.mysql,{.,}clang-format,{.,}clang-tidy,{.,}gemrc,CITATION.cff,fish_history,fish_read_history,glide.lock,yarn.lock setf yaml
endif
if !has_key(g:polyglot_is_disabled, 'mysql')
@@ -2534,7 +2534,7 @@ endif
if !has_key(g:polyglot_is_disabled, 'c/c++')
au! BufNewFile,BufRead,BufWritePost *.h call polyglot#detect#H()
- au BufNewFile,BufRead *.c++,*.cc,*.cp,*.cpp,*.cxx,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.moc,*.tcc,*.tlh,*.tpp setf cpp
+ au BufNewFile,BufRead *.c++,*.cc,*.cp,*.cpp,*.cxx,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.ixx,*.moc,*.tcc,*.tlh,*.tpp setf cpp
au! BufNewFile,BufRead,BufWritePost *.h call polyglot#detect#H()
au BufNewFile,BufRead *.c,*.cats,*.idc,*.qc,*enlightenment/*.cfg setf c
endif
@@ -2575,7 +2575,7 @@ if !has_key(g:polyglot_is_disabled, 'ant')
endif
if !has_key(g:polyglot_is_disabled, 'xml')
- au BufNewFile,BufRead *.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.cdxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.csproj.user,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.tpm,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wpl,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*/etc/blkid.tab,*/etc/blkid.tab.old,*/etc/xdg/menus/*.menu,*fglrxrc,{.,}classpath,{.,}cproject,{.,}project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config setf xml
+ au BufNewFile,BufRead *.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.cdxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.csproj.user,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.hzp,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.tpm,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wpl,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*/etc/blkid.tab,*/etc/blkid.tab.old,*/etc/xdg/menus/*.menu,*fglrxrc,{.,}classpath,{.,}cproject,{.,}project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config setf xml
endif
if !has_key(g:polyglot_is_disabled, 'csv')
diff --git a/autoload/polyglot/sleuth.vim b/autoload/polyglot/sleuth.vim
index e3c0752e..9e943079 100644
--- a/autoload/polyglot/sleuth.vim
+++ b/autoload/polyglot/sleuth.vim
@@ -85,7 +85,7 @@ let s:globs = {
\ 'conf': '*.conf,auto.master,config',
\ 'config': 'configure.in,configure.ac,Pipfile',
\ 'context': '*.mkii,*.mkiv,*.mkvi',
- \ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.tcc,*.tpp,*.moc,*.tlh',
+ \ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.ixx,*.tcc,*.tpp,*.moc,*.tlh',
\ 'cql': '*.cql',
\ 'crm': '*.crm',
\ 'crontab': 'crontab,crontab.*',
@@ -129,7 +129,7 @@ let s:globs = {
\ 'dnsmasq': '',
\ 'dockerfile': '*.Dockerfile,*.dock,Containerfile,Dockerfile,dockerfile,Dockerfile*',
\ 'dosbatch': '*.bat,*.sys',
- \ 'dosini': '*.wrap,*.ini,*.dof,*.lektorproject,*.prefs,*.pro,*.properties,buildozer.spec,.editorconfig,.npmrc,php.ini-*',
+ \ 'dosini': '*.wrap,*.ini,*.dof,*.lektorproject,*.prefs,*.pro,*.properties,.flake8,buildozer.spec,.editorconfig,.npmrc,php.ini-*',
\ 'dot': '*.dot,*.gv',
\ 'dracula': '*.drac,*.drc,*lvs,*lpe,drac.*',
\ 'dsdl': '*.sdl',
@@ -143,7 +143,7 @@ let s:globs = {
\ 'ecd': '*.ecd',
\ 'ecrystal': '*.ecr',
\ 'edif': '*.ed\(f\|if\|o\)',
- \ 'eelixir': '*.eex,*.html.leex,*.leex',
+ \ 'eelixir': '*.eex,*.html.heex,*.html.leex,*.leex',
\ 'elf': '*.am',
\ 'elinks': 'elinks.conf',
\ 'elixir': '*.ex,*.exs,mix.lock',
@@ -190,7 +190,7 @@ let s:globs = {
\ 'gitsendemail': '.gitsendemail.*',
\ 'gkrellmrc': 'gkrellmrc,gkrellmrc_?',
\ 'gleam': '*.gleam',
- \ 'glsl': '*.glsl,*.fp,*.frag,*.frg,*.fs,*.fsh,*.fshader,*.geo,*.geom,*.glslf,*.glslv,*.gs,*.gshader,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader,*.comp',
+ \ 'glsl': '*.glsl,*.fp,*.frag,*.frg,*.fs,*.fsh,*.fshader,*.geo,*.geom,*.glslf,*.glslv,*.gs,*.gshader,*.rchit,*.rmiss,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader,*.comp',
\ 'gmpl': '*.mod',
\ 'gnash': 'gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc',
\ 'gnuplot': '*.gp,*.gnu,*.gnuplot,*.p,*.plot,*.plt,*.gpi',
@@ -265,7 +265,7 @@ let s:globs = {
\ 'jsonc': '*.cjson,*.jsonc,coc-settings.json,.eslintrc.json,.babelrc,.jshintrc,.jslintrc,.mocharc.json,coffeelint.json,tsconfig.json,jsconfig.json',
\ 'jsonnet': '*.jsonnet,*.libsonnet',
\ 'jsp': '*.jsp',
- \ 'jst': '*.ejs,*.ect,*.jst',
+ \ 'jst': '*.ejs,*.ect,*.ejs.t,*.jst',
\ 'julia': '*.jl',
\ 'just': '*.just,justfile',
\ 'kconfig': 'Kconfig,Kconfig.debug,Kconfig.*',
@@ -480,7 +480,7 @@ let s:globs = {
\ 'services': '',
\ 'setserial': '',
\ 'sexplib': '*.sexp',
- \ 'sh': '*.sh,*.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh.in,*.tmux,*.tool,.bash_aliases,.bash_history,.bash_logout,.bash_profile,.bashrc,.cshrc,.env,.env.example,.flaskenv,.login,.profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,login,man,profile',
+ \ 'sh': '*.sh,*.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh.in,*.tmux,*.tool,.bash_aliases,.bash_history,.bash_logout,.bash_profile,.bashrc,.cshrc,.env,.env.example,.flaskenv,.kshrc,.login,.profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,kshrc,login,man,profile',
\ 'sieve': '*.siv,*.sieve',
\ 'sil': '*.sil',
\ 'simula': '*.sim',
@@ -611,7 +611,7 @@ let s:globs = {
\ 'xhtml': '*.xhtml,*.xht',
\ 'xinetd': '',
\ 'xmath': '*.msc,*.msf',
- \ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,*.tpm,*.csproj.user,*.wpl,.classpath,.cproject,.project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config,*fglrxrc',
+ \ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.hzp,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,*.tpm,*.csproj.user,*.wpl,.classpath,.cproject,.project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config,*fglrxrc',
\ 'xml.twig': '*.xml.twig',
\ 'xmodmap': '*Xmodmap,*xmodmap*',
\ 'xpm': '*.xpm,*.pm',
@@ -622,7 +622,7 @@ let s:globs = {
\ 'xsl': '*.xslt,*.xsl',
\ 'xslt': '*.xsl,*.xslt',
\ 'yacc': '*.yy,*.yxx,*.y++',
- \ 'yaml': '*.yml,*.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml.mysql,.clang-format,.clang-tidy,.gemrc,glide.lock,yarn.lock,fish_history,fish_read_history',
+ \ 'yaml': '*.yml,*.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml.mysql,.clang-format,.clang-tidy,.gemrc,CITATION.cff,glide.lock,yarn.lock,fish_history,fish_read_history',
\ 'yaml.ansible': 'playbook.y{a,}ml,site.y{a,}ml,main.y{a,}ml,local.y{a,}ml,requirements.y{a,}ml,tasks.*.y{a,}ml,roles.*.y{a,}ml,handlers.*.y{a,}ml',
\ 'yaml.docker-compose': 'docker-compose*.yaml,docker-compose*.yml',
\ 'z8a': '*.z8a',
diff --git a/autoload/smt2/parser.vim b/autoload/smt2/parser.vim
index ef4068e5..b9e4837f 100644
--- a/autoload/smt2/parser.vim
+++ b/autoload/smt2/parser.vim
@@ -157,7 +157,7 @@ def ParseSExpr(scanner: dict<any>): dict<any>
scanner->ParseLParen()
# Expr*
- var exprs: list<any>
+ var exprs: list<dict<any>>
while scanner->AtStartOfExpr()
exprs->add(scanner->ParseExpr())
endwhile
diff --git a/autoload/unison.vim b/autoload/unison.vim
new file mode 100644
index 00000000..cdc2efe5
--- /dev/null
+++ b/autoload/unison.vim
@@ -0,0 +1,108 @@
+if polyglot#init#is_disabled(expand('<sfile>:p'), 'unison', 'autoload/unison.vim')
+ finish
+endif
+
+" Unison functionality for Vim, including type/term omnicompletion.
+"
+" Maintainer: Unison Computing
+" Original Author: Cody Allen (ceedubs)
+
+if exists('g:autoloaded_unison')
+ finish
+endif
+let g:autoloaded_unison = 1
+
+let s:required_config_value = "!REQUIRED!"
+
+" adapted from https://github.com/rust-lang/rust.vim/blob/4aa69b84c8a58fcec6b6dad6fe244b916b1cf830/autoload/rust.vim#L9-L18
+function! s:config(name, default) abort
+ let name = 'unison_' . a:name
+ " Local buffer variable with same name takes predeence over global
+ if has_key(b:, name)
+ return get(b:, name)
+ elseif has_key(g:, name)
+ return get(g:, name)
+ elseif a:default == s:required_config_value
+ throw 'Missing required configuration value: ' . name
+ else
+ return a:default
+ endif
+endfunction
+
+function! s:curl_path() abort
+ return s:config('curl_path', "curl")
+endfunction
+
+function! s:jq_path() abort
+ return s:config('jq_path', "jq")
+endfunction
+
+function! unison#SetBufferDefaults() abort
+ if s:config('set_buffer_defaults', 1)
+ " Since Unison completion is fuzzy and not prefix-based, 'longest' doesn't
+ " work well, and 'noinsert' behaves a little better.
+ setlocal completeopt=menuone,noinsert,preview
+
+ setlocal omnifunc=unison#Complete
+ endif
+endfunction
+
+" Unison completion satisfying the standard vim completion signature, such
+" that it can be assigned to omnifunc.
+" vim will first call this to find the base input that should be completed,
+" and then will call it again with the base input.
+function! unison#Complete(findstart, base) abort
+ if a:findstart
+ " locate the start of the word
+ let line = getline('.')
+ let start = col('.') - 1
+ while start > 0 && line[start - 1] !~ '\s' && line[start - 1] != '(' && line[start - 1] != ')'
+ let start -= 1
+ endwhile
+ return start
+ else
+ return unison#CompleteForBase(a:base)
+ endif
+endfunction
+
+" Return an array of completion items for the provided base input. For example
+" base could be 'List.foldL', in which case the top result would probably be
+" 'List.foldLeft'.
+function! unison#CompleteForBase(base) abort
+ let resultLimit = s:config('complete_result_limit', 20)
+ let apiHost = s:config('api_host', 'localhost')
+ let apiPort = s:config('api_port', s:required_config_value)
+ let apiToken = s:config('api_token', s:required_config_value)
+ let apiUri = 'http://' . apiHost . ':' . apiPort . '/' . apiToken . '/api/find'
+
+ let curlCommand = s:curl_path() . " -Gfs
+ \ --data-urlencode 'limit=" . resultLimit . "'
+ \ --data-urlencode 'query=" . a:base . "' "
+ \ . apiUri
+
+ let jqFilter = '
+ \ def prettyTermType: .termType|[(.[] | .segment)]|add;
+ \ def prettyTypeDef: if .tag == "BuiltinObject" then "builtin type " else "" end + (.contents|[(.[] | .segment)]|add);
+ \ def termToMatch: {
+ \ word: .bestFoundTermName,
+ \ info: (.namedTerm.termName + " : " + (.namedTerm|prettyTermType)),
+ \ menu: .namedTerm|prettyTermType
+ \ };
+ \ def typeToMatch: {
+ \ word: .bestFoundTypeName,
+ \ info: (.namedType.typeName + " : " + (.typeDef|prettyTypeDef)),
+ \ menu: .typeDef|prettyTypeDef
+ \ };
+ \ .[][1]|(
+ \ (select(.tag == "FoundTermResult")|.contents|termToMatch),
+ \ (select(.tag == "FoundTypeResult")|.contents|typeToMatch)
+ \ )'
+
+ let command = curlCommand . " | " . s:jq_path() . " -c '" . jqFilter . "'"
+ let lines = system(command)
+ let resultObjects = split(lines, "\n")
+ call map(resultObjects, {_, val -> json_decode(val)})
+ return resultObjects
+endfunction
+
+" vim: set et sw=2 sts=2 ts=2:
diff --git a/compiler/ledger.vim b/compiler/ledger.vim
index 3fca6442..1e35f64b 100644
--- a/compiler/ledger.vim
+++ b/compiler/ledger.vim
@@ -30,7 +30,7 @@ if !g:ledger_is_hledger
CompilerSet errorformat+=%tarning:\ \"%f\"\\,\ line\ %l:\ %m
" Skip all other lines:
CompilerSet errorformat+=%-G%.%#
- exe 'CompilerSet makeprg='.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . expand('g:ledger_main::S') . '\ '.substitute(g:ledger_extra_options, ' ', '\\ ', 'g').'\ source\ ' . expand('g:ledger_main::S')
+ exe 'CompilerSet makeprg='.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . substitute(shellescape(expand(g:ledger_main)), ' ', '\\ ', 'g') . '\ '.substitute(g:ledger_extra_options, ' ', '\\ ', 'g').'\ source\ ' . shellescape(expand(g:ledger_main))
else
- exe 'CompilerSet makeprg=('.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . expand('g:ledger_main::S') . '\ print\ '.substitute(g:ledger_extra_options, ' ', '\\ ', 'g') . '\ >\ /dev/null)'
+ exe 'CompilerSet makeprg=('.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . substitute(shellescape(expand(g:ledger_main)), ' ', '\\ ', 'g') . '\ print\ '.substitute(g:ledger_extra_options, ' ', '\\ ', 'g').'\ >\ /dev/null)'
endif
diff --git a/compiler/powershell.vim b/compiler/powershell.vim
index 0ba5776c..99fbfa32 100644
--- a/compiler/powershell.vim
+++ b/compiler/powershell.vim
@@ -33,14 +33,36 @@ endif
if !executable(g:ps1_makeprg_cmd)
echoerr "To use the powershell compiler, please set g:ps1_makeprg_cmd to the powershell executable!"
+ finish
endif
" Show CategoryInfo, FullyQualifiedErrorId, etc?
let g:ps1_efm_show_error_categories = get(g:, 'ps1_efm_show_error_categories', 0)
+let &l:makeprg = g:ps1_makeprg_cmd
+" Load Vanilla Shell and show syntax errors
+" See https://zigford.org/powershell-syntax-now-supported-by-ale-vim-plugin.html
+if has('win32')
+setlocal makeprg+=\ -NoProfile\ -NoLogo\ -NonInteractive\ -command\ \"&{
+ \trap{$_.tostring();continue}&{
+ \[void]$executioncontext.invokecommand.invokescript('%')
+ \}
+ \}\"
+elseif has('unix')
+setlocal makeprg+=\ -NoProfile\ -NoLogo\ -NonInteractive\ -command\ "&{
+ \trap{\\$_.tostring();continue}&{
+ \[void]\\$executioncontext.invokecommand.invokescript('%')
+ \}
+ \}"
+ \}\"
+else
+ echoerr "To use the powershell compiler, please run it under Microsoft Windows or Unix!"
+ finish
+endif
" Use absolute path because powershell requires explicit relative paths
" (./file.ps1 is okay, but # expands to file.ps1)
-let &l:makeprg = g:ps1_makeprg_cmd .' %:p:S'
+setlocal makeprg+=\ %:p:S
+silent CompilerSet makeprg
" Parse file, line, char from callstacks:
" Write-Ouput : The term 'Write-Ouput' is not recognized as the name of a
diff --git a/extras/filetype.vim b/extras/filetype.vim
index 6ef1fa21..78087d04 100644
--- a/extras/filetype.vim
+++ b/extras/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2021 Aug 23
+" Last Change: 2021 Dec 14
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -123,7 +123,7 @@ au BufNewFile,BufRead *.aml setf aml
" APT config file
au BufNewFile,BufRead apt.conf setf aptconf
au BufNewFile,BufRead */.aptitude/config setf aptconf
-au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
+" more generic pattern far down
" Arch Inventory file
au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch
@@ -260,7 +260,7 @@ au BufNewFile,BufRead *.lpc,*.ulpc setf lpc
au BufNewFile,BufRead calendar setf calendar
" C#
-au BufNewFile,BufRead *.cs setf cs
+au BufNewFile,BufRead *.cs,*.csx setf cs
" CSDL
au BufNewFile,BufRead *.csdl setf csdl
@@ -488,7 +488,10 @@ au BufNewFile,BufRead *.desktop,*.directory setf desktop
au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
" Dictd config
-au BufNewFile,BufRead dictd.conf setf dictdconf
+au BufNewFile,BufRead dictd*.conf setf dictdconf
+
+" DEP3 formatted patch files
+au BufNewFile,BufRead */debian/patches/* call polyglot#ft#Dep3patch()
" Diff files
au BufNewFile,BufRead *.diff,*.rej setf diff
@@ -617,6 +620,9 @@ autocmd BufRead,BufNewFile *.fnl setf fennel
" Fetchmail RC file
au BufNewFile,BufRead .fetchmailrc setf fetchmail
+" Fish shell
+au BufNewFile,BufRead *.fish setf fish
+
" FlexWiki - disabled, because it has side effects when a .wiki file
" is not actually FlexWiki
"au BufNewFile,BufRead *.wiki setf flexwiki
@@ -629,7 +635,7 @@ au BufNewFile,BufRead auto.master setf conf
au BufNewFile,BufRead *.mas,*.master setf master
" Forth
-au BufNewFile,BufRead *.fs,*.ft,*.fth setf forth
+au BufNewFile,BufRead *.ft,*.fth setf forth
" Reva Forth
au BufNewFile,BufRead *.frt setf reva
@@ -646,8 +652,14 @@ au BufNewFile,BufRead *.fsl setf framescript
" FStab
au BufNewFile,BufRead fstab,mtab setf fstab
+" F# or Forth
+au BufNewFile,BufRead *.fs call polyglot#ft#FTfs()
+
+" F#
+au BufNewFile,BufRead *.fsi,*.fsx setf fsharp
+
" GDB command files
-au BufNewFile,BufRead .gdbinit setf gdb
+au BufNewFile,BufRead .gdbinit,gdbinit setf gdb
" GDMO
au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
@@ -707,6 +719,7 @@ au BufNewFile,BufRead *.gpi setf gnuplot
" Go (Google)
au BufNewFile,BufRead *.go setf go
+au BufNewFile,BufRead Gopkg.lock setf toml
" GrADS scripts
au BufNewFile,BufRead *.gs setf grads
@@ -780,6 +793,10 @@ au BufNewFile,BufRead *.hb setf hb
" Httest
au BufNewFile,BufRead *.htt,*.htb setf httest
+" i3 (and sway)
+au BufNewFile,BufRead */i3/config,*/sway/config setf i3config
+au BufNewFile,BufRead */.i3/config,*/.sway/config setf i3config
+
" Icon
au BufNewFile,BufRead *.icn setf icon
@@ -876,6 +893,9 @@ au BufNewFile,BufRead *.json-patch setf json
" Jupyter Notebook is also json
au BufNewFile,BufRead *.ipynb setf json
+" Other files that look like json
+au BufNewFile,BufRead .babelrc,.eslintrc,.prettierrc,.firebaserc setf json
+
" JSONC
au BufNewFile,BufRead *.jsonc setf jsonc
@@ -1092,6 +1112,9 @@ au BufNewFile,BufRead *.moo setf moo
" Modconf
au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf
+" MPD is based on XML
+au BufNewFile,BufRead *.mpd setf xml
+
" Mplayer config
au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf
@@ -1107,11 +1130,15 @@ au BufNewFile,BufRead *.msql setf msql
" Mysql
au BufNewFile,BufRead *.mysql setf mysql
-" Mutt setup files (must be before catch *.rc)
-au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc')
+" Tcl Shell RC file
+au BufNewFile,BufRead tclsh.rc setf tcl
" M$ Resource files
-au BufNewFile,BufRead *.rc,*.rch setf rc
+" /etc/Muttrc.d/file.rc is muttrc
+au BufNewFile,BufRead *.rc,*.rch
+ \ if expand("<afile>") !~ "/etc/Muttrc.d/" |
+ \ setf rc |
+ \ endif
" MuPAD source
au BufRead,BufNewFile *.mu setf mupad
@@ -1140,6 +1167,9 @@ au BufNewFile,BufRead Neomuttrc setf neomuttrc
" Netrc
au BufNewFile,BufRead .netrc setf netrc
+" Nginx
+au BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/nginx/conf/*,*/nginx/*.conf setf nginx
+
" Ninja file
au BufNewFile,BufRead *.ninja setf ninja
@@ -1278,7 +1308,7 @@ au BufNewFile,BufRead *.rcp setf pilrc
au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
" Pipenv Pipfiles
-au BufNewFile,BufRead Pipfile setf config
+au BufNewFile,BufRead Pipfile setf toml
au BufNewFile,BufRead Pipfile.lock setf json
" PL/1, PL/I
@@ -1400,7 +1430,7 @@ au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
" Radiance
au BufNewFile,BufRead *.rad,*.mat setf radiance
-" Raku (formelly Perl6)
+" Raku (formerly Perl6)
au BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku
" Ratpoison config/command files
@@ -1480,6 +1510,9 @@ au BufNewFile,BufRead robots.txt setf robots
" Rpcgen
au BufNewFile,BufRead *.x setf rpcgen
+" MikroTik RouterOS script
+au BufRead,BufNewFile *.rsc setf routeros
+
" reStructuredText Documentation Format
au BufNewFile,BufRead *.rst setf rst
@@ -1512,6 +1545,7 @@ au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby
" Rust
au BufNewFile,BufRead *.rs setf rust
+au BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials setf toml
" S-lang (or shader language, or SmallLisp)
au BufNewFile,BufRead *.sl setf slang
@@ -1623,6 +1657,9 @@ au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call polyglot#ft#Set
" (patterns ending in a start further below)
au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call polyglot#ft#CSH()
+" Zig
+au BufNewFile,BufRead *.zig setf zig
+
" Z-Shell script (patterns ending in a star further below)
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
@@ -1709,6 +1746,9 @@ au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup
" Slice
au BufNewFile,BufRead *.ice setf slice
+" Microsoft Visual Studio Solution
+au BufNewFile,BufRead *.sln setf solution
+
" Spice
au BufNewFile,BufRead *.sp,*.spice setf spice
@@ -1730,6 +1770,9 @@ au BufNewFile,BufRead *.sqlj setf sqlj
" SQR
au BufNewFile,BufRead *.sqr,*.sqi setf sqr
+" Squirrel
+au BufNewFile,BufRead *.nut setf squirrel
+
" OpenSSH configuration
au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig
au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig
@@ -1802,7 +1845,7 @@ au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
au BufRead,BufNewFile *.task setf taskedit
" Tcl (JACL too)
-au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl
+au BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc setf tcl
" TealInfo
au BufNewFile,BufRead *.tli setf tli
@@ -1996,14 +2039,15 @@ au BufNewFile,BufRead *.ws[fc] setf wsh
" XHTML
au BufNewFile,BufRead *.xhtml,*.xht setf xhtml
-" X Pixmap (dynamically sets colors, use BufEnter to make it work better)
-au BufEnter *.xpm
+" X Pixmap (dynamically sets colors, this used to trigger on BufEnter to make
+" it work better, but that breaks setting 'filetype' manually)
+au BufNewFile,BufRead *.xpm
\ if getline(1) =~ "XPM2" |
\ setf xpm2 |
\ else |
\ setf xpm |
\ endif
-au BufEnter *.xpm2 setf xpm2
+au BufNewFile,BufRead *.xpm2 setf xpm2
" XFree86 config
au BufNewFile,BufRead XF86Config
@@ -2038,9 +2082,15 @@ au BufNewFile,BufRead *.xml call polyglot#ft#FTxml()
" XMI (holding UML models) is also XML
au BufNewFile,BufRead *.xmi setf xml
-" CSPROJ files are Visual Studio.NET's XML-based project config files
+" CSPROJ files are Visual Studio.NET's XML-based C# project config files
au BufNewFile,BufRead *.csproj,*.csproj.user setf xml
+" FSPROJ files are Visual Studio.NET's XML-based F# project config files
+au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
+
+" VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files
+au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
+
" Qt Linguist translation source and Qt User Interface Files are XML
" However, for .ts Typescript is more common.
au BufNewFile,BufRead *.ui setf xml
@@ -2124,6 +2174,12 @@ augroup filetypedetect
+" Plain text files, needs to be far down to not override others. This avoids
+" the "conf" type being used if there is a line starting with '#'.
+" But before patterns matching everything in a directory.
+au BufNewFile,BufRead *.text,README,LICENSE,COPYING,AUTHORS setf text
+
+
" Extra checks for when no filetype has been detected now. Mostly used for
" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim
" script file.
@@ -2136,7 +2192,10 @@ au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
" More Apache config files
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
-au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
+au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
+
+" APT config file
+au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} call s:StarSetf('aptconf')
" Asterisk config file
au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk')
@@ -2239,6 +2298,9 @@ au BufNewFile,BufRead */etc/modutils/*
\|endif
au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf')
+" Mutt setup files (must be before catch *.rc)
+au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc')
+
" Mutt setup file
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
@@ -2284,12 +2346,18 @@ au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]alias
au BufNewFile,BufRead .kshrc* call polyglot#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead .profile* call polyglot#ft#SetFileTypeSH(getline(1))
+" Sudoers
+au BufNewFile,BufRead */etc/sudoers.d/* call s:StarSetf('sudoers')
+
" tcsh scripts ending in a star
au BufNewFile,BufRead .tcshrc* call polyglot#ft#SetFileTypeShell("tcsh")
" csh scripts ending in a star
au BufNewFile,BufRead .login*,.cshrc* call polyglot#ft#CSH()
+" tmux configuration with arbitrary extension
+au BufNewFile,BufRead {.,}tmux*.conf* setf tmux
+
" VHDL
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
@@ -2325,10 +2393,6 @@ au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
-" Plain text files, needs to be far down to not override others. This avoids
-" the "conf" type being used if there is a line starting with '#'.
-au BufNewFile,BufRead *.text,README setf text
-
" Help files match *.txt but should have a last line that is a modeline.
au BufNewFile,BufRead *.txt
\ if getline('$') !~ 'vim:.*ft=help'
diff --git a/ftplugin/8th.vim b/ftplugin/8th.vim
index e9a63dc1..c7dce2b3 100644
--- a/ftplugin/8th.vim
+++ b/ftplugin/8th.vim
@@ -5,9 +5,10 @@ endif
" Vim ftplugin file
" Language: 8th
" Version: any
-" Last Change: 2015/11/08
+" Last Change: 2021 Sep 20
+" Last Change: 2021/09/20
" Maintainer: Ron Aaron <ron@aaron-tech.com>
-" URL: https://8th-dev.com/
+" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: 8th allows any non-whitespace in a name, so you need to do:
" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
@@ -18,12 +19,13 @@ if exists("b:did_8thplugin")
finish
endif
-" Don't load another plugin for this buffer
+" Don't load another 8th plugin for this buffer
let b:did_8thplugin = 1
setlocal ts=2 sts=2 sw=2 et
-setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
+setlocal com=s1:/*,mb:*,ex:*/,b:--,be:\\
setlocal fo=tcrqol
setlocal matchpairs+=\::;
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
setlocal suffixesadd=.8th
+let b:undo_ftplugin = "setlocal ts< sts< sw< et< com< fo< mps< isk< sua<"
diff --git a/ftplugin/aap.vim b/ftplugin/aap.vim
index 3a8f1cbb..40f4597b 100644
--- a/ftplugin/aap.vim
+++ b/ftplugin/aap.vim
@@ -5,7 +5,7 @@ endif
" Vim filetype plugin file
" Language: Aap recipe
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2013 Apr 05
+" Last Change: 2021 Nov 14
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -15,8 +15,9 @@ endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
-" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin.
-let b:undo_ftplugin = "setl fo< com< et<"
+" Reset 'formatoptions', 'comments', 'commentstring' and 'expandtab' to undo
+" this plugin.
+let b:undo_ftplugin = "setl fo< com< cms< et<"
" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
@@ -24,6 +25,12 @@ setlocal fo-=t fo+=croql
" Set 'comments' to format dashed lists in comments.
setlocal comments=s:#\ -,m:#\ \ ,e:#,n:#,fb:-
+setlocal commentstring=#\ %s
" Expand tabs to spaces to avoid trouble.
setlocal expandtab
+
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\nAll Files (*.*)\t*.*\n"
+ let b:undo_ftplugin .= " | unlet! b:browsefilter"
+endif
diff --git a/ftplugin/clojure.vim b/ftplugin/clojure.vim
index 2c2882e3..7fe81f9d 100644
--- a/ftplugin/clojure.vim
+++ b/ftplugin/clojure.vim
@@ -68,8 +68,8 @@ if exists('loaded_matchit')
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
endif
-" Win32 can filter files in the browse dialog
-if has("gui_win32") && !exists("b:browsefilter")
+" Filter files in the browse dialog
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
diff --git a/ftplugin/diff.vim b/ftplugin/diff.vim
index c7d8cefc..feaefc57 100644
--- a/ftplugin/diff.vim
+++ b/ftplugin/diff.vim
@@ -5,7 +5,7 @@ endif
" Vim filetype plugin file
" Language: Diff
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2020 Jul 18
+" Last Change: 2021 Nov 14
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -13,10 +13,15 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin = 1
-let b:undo_ftplugin = "setl modeline<"
+let b:undo_ftplugin = "setl modeline< commentstring<"
" Don't use modelines in a diff, they apply to the diffed file
setlocal nomodeline
" If there are comments they start with #
-let &commentstring = "# %s"
+let &l:commentstring = "# %s"
+
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\nAll Files (*.*)\t*.*\n"
+ let b:undo_ftplugin .= " | unlet! b:browsefilter"
+endif
diff --git a/ftplugin/dosini.vim b/ftplugin/dosini.vim
index fc739a01..5ee9a5e0 100644
--- a/ftplugin/dosini.vim
+++ b/ftplugin/dosini.vim
@@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'dosini', 'ftplugin/dosini.vim
endif
" Vim filetype plugin file
-" Language: Configuration File (ini file) for MSDOS/MS Windows
+" Language: Configuration File (ini file) for MS-DOS/MS Windows
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
diff --git a/ftplugin/dune.vim b/ftplugin/dune.vim
index 4f78d7c6..c89e40d2 100644
--- a/ftplugin/dune.vim
+++ b/ftplugin/dune.vim
@@ -15,10 +15,12 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin=1
-set lisp
+setl lisp
" Comment string
setl commentstring=;\ %s
setl comments=n:;
setl iskeyword+=#,?,.,/
+
+let b:undo_ftplugin = "setlocal lisp< cms< com< isk<"
diff --git a/ftplugin/erlang.vim b/ftplugin/erlang.vim
index 798f1ded..85f57209 100644
--- a/ftplugin/erlang.vim
+++ b/ftplugin/erlang.vim
@@ -34,6 +34,28 @@ setlocal commentstring=%%s
setlocal formatoptions+=ro
+if get(g:, 'erlang_extend_path', 1)
+ " typical erlang.mk paths
+ let &l:path = join([
+ \ 'deps/*/include',
+ \ 'deps/*/src',
+ \ 'deps/*/test',
+ \ 'deps/*/apps/*/include',
+ \ 'deps/*/apps/*/src',
+ \ &g:path], ',')
+ " typical rebar3 paths
+ let &l:path = join([
+ \ 'apps/*/include',
+ \ 'apps/*/src',
+ \ '_build/default/lib/*/src',
+ \ '_build/default/*/include',
+ \ &l:path], ',')
+ " typical erlang paths
+ let &l:path = join(['include', 'src', 'test', &l:path], ',')
+
+ set wildignore+=*/.erlang.mk/*,*.beam
+endif
+
setlocal suffixesadd=.erl,.hrl
let &l:include = '^\s*-\%(include\|include_lib\)\s*("\zs\f*\ze")'
diff --git a/ftplugin/git.vim b/ftplugin/git.vim
deleted file mode 100644
index 9a5ac16c..00000000
--- a/ftplugin/git.vim
+++ /dev/null
@@ -1,45 +0,0 @@
-if polyglot#init#is_disabled(expand('<sfile>:p'), 'git', 'ftplugin/git.vim')
- finish
-endif
-
-" Vim filetype plugin
-" Language: generic git output
-" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2019 Dec 05
-
-" Only do this when not done yet for this buffer
-if (exists("b:did_ftplugin"))
- finish
-endif
-let b:did_ftplugin = 1
-
-if !exists('b:git_dir')
- if expand('%:p') =~# '[\/]\.git[\/]modules[\/]\|:[\/][\/]\|^\a\a\+:'
- " Stay out of the way
- elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
- let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
- elseif expand('%:p') =~# '\.git\>'
- let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
- elseif $GIT_DIR != ''
- let b:git_dir = $GIT_DIR
- endif
- if (has('win32') || has('win64')) && exists('b:git_dir')
- let b:git_dir = substitute(b:git_dir,'\\','/','g')
- endif
-endif
-
-if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
- if b:git_dir =~# '/\.git$' " Not a bare repository
- let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
- endif
- let &l:path = escape(b:git_dir,'\, ').','.&l:path
- let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
-else
- setlocal keywordprg=git\ show
-endif
-if has('gui_running') && &guioptions !~# '!'
- let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','')
-endif
-
-setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
-let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
diff --git a/ftplugin/gitcommit.vim b/ftplugin/gitcommit.vim
index caa96db8..56e72973 100644
--- a/ftplugin/gitcommit.vim
+++ b/ftplugin/gitcommit.vim
@@ -12,60 +12,50 @@ if (exists("b:did_ftplugin"))
finish
endif
-runtime! ftplugin/git.vim
let b:did_ftplugin = 1
-setlocal comments=:# commentstring=#\ %s
-setlocal include=^\+\+\+
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q formatoptions+=n
setlocal formatlistpat+=\\\|^\\s*[-*+]\\s\\+
+setlocal include=^+++
+setlocal includeexpr=substitute(v:fname,'^[bi]/','','')
-let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms< formatlistpat<'
+let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms< formatlistpat< inc< inex<'
-if exists("g:no_gitcommit_commands") || v:version < 700
- finish
-endif
+let s:l = search('\C\m^[#;@!$%^&|:] -\{24,\} >8 -\{24,\}$', 'cnW', '', 100)
+let &l:comments = ':' . (matchstr(getline(s:l ? s:l : '$'), '^[#;@!$%^&|:]\S\@!') . '#')[0]
+let &l:commentstring = &l:comments[1] . ' %s'
+unlet s:l
-if !exists("b:git_dir")
- let b:git_dir = expand("%:p:h")
+if exists("g:no_gitcommit_commands")
+ finish
endif
-command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
+command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
-function! s:diffcomplete(A,L,P)
+function! s:diffcomplete(A, L, P) abort
let args = ""
if a:P <= match(a:L." -- "," -- ")+3
let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
end
- if exists("b:git_dir") && a:A !~ '^-'
- let tree = fnamemodify(b:git_dir,':h')
- if strpart(getcwd(),0,strlen(tree)) == tree
- let args = args."\n".system("git diff --cached --name-only")
- endif
+ if a:A !~ '^-' && !empty(getftype('.git'))
+ let args = args."\n".system("git diff --cached --name-only")
endif
return args
endfunction
-function! s:gitdiffcached(bang,gitdir,...)
- let tree = fnamemodify(a:gitdir,':h')
+function! s:gitdiffcached(bang, ...) abort
let name = tempname()
- let git = "git"
- if strpart(getcwd(),0,strlen(tree)) != tree
- let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
- endif
if a:0
- let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
+ let extra = join(map(copy(a:000), 'shellescape(v:val)'))
else
let extra = "-p --stat=".&columns
endif
- call system(git." diff --cached --no-color --no-ext-diff ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
- exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
+ call system("git diff --cached --no-color --no-ext-diff ".extra." > ".shellescape(name))
+ exe "pedit " . fnameescape(name)
wincmd P
- let b:git_dir = a:gitdir
- command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
- nnoremap <buffer> <silent> q :q<CR>
+ command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
endfunction
diff --git a/ftplugin/gitrebase.vim b/ftplugin/gitrebase.vim
index 7163f916..285f76a4 100644
--- a/ftplugin/gitrebase.vim
+++ b/ftplugin/gitrebase.vim
@@ -12,15 +12,13 @@ if (exists("b:did_ftplugin"))
finish
endif
-runtime! ftplugin/git.vim
let b:did_ftplugin = 1
-setlocal comments=:# commentstring=#\ %s formatoptions-=t
+let &l:comments = ':' . (matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0]
+let &l:commentstring = &l:comments[1] . ' %s'
+setlocal formatoptions-=t
setlocal nomodeline
-if !exists("b:undo_ftplugin")
- let b:undo_ftplugin = ""
-endif
-let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
+let b:undo_ftplugin = "setl com< cms< fo< ml<"
function! s:choose(word) abort
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
@@ -45,8 +43,7 @@ if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps")
finish
endif
-nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K'
nnoremap <buffer> <silent> <C-A> :<C-U><C-R>=v:count1<CR>Cycle<CR>
nnoremap <buffer> <silent> <C-X> :<C-U><C-R>=v:count1<CR>Cycle!<CR>
-let b:undo_ftplugin = b:undo_ftplugin . "|exe 'nunmap <buffer> K'|exe 'nunmap <buffer> <C-A>'|exe 'nunmap <buffer> <C-X>'"
+let b:undo_ftplugin = b:undo_ftplugin . "|exe 'nunmap <buffer> <C-A>'|exe 'nunmap <buffer> <C-X>'"
diff --git a/ftplugin/indent.vim b/ftplugin/indent.vim
index 89a779c4..094dcd9e 100644
--- a/ftplugin/indent.vim
+++ b/ftplugin/indent.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'indent', 'ftplugin/indent.vim
endif
" Vim filetype plugin file
-" Language: indent(1) configuration file
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: indent(1) configuration file
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/ftplugin/kotlin.vim b/ftplugin/kotlin.vim
index ca0b35fc..e6677fdf 100644
--- a/ftplugin/kotlin.vim
+++ b/ftplugin/kotlin.vim
@@ -2,8 +2,29 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'kotlin', 'ftplugin/kotlin.vim
finish
endif
+" Vim filetype plugin file
+" Language: Kotlin
+" Maintainer: Alexander Udalov
+" URL: https://github.com/udalov/kotlin-vim
+" Last Change: 7 November 2021
+
if exists('b:did_ftplugin') | finish | endif
let b:did_ftplugin = 1
+let s:save_cpo = &cpo
+set cpo&vim
+
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
setlocal commentstring=//\ %s
+
+setlocal formatoptions-=t formatoptions+=croqnl
+silent! setlocal formatoptions+=j
+
+setlocal includeexpr=substitute(v:fname,'\\.','/','g')
+setlocal suffixesadd=.kt
+
+let b:undo_ftplugin = "setlocal comments< commentstring< ".
+ \ "formatoptions< includeexpr< suffixesadd<"
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/ftplugin/mail.vim b/ftplugin/mail.vim
index 6e4e9a4f..e621acca 100644
--- a/ftplugin/mail.vim
+++ b/ftplugin/mail.vim
@@ -5,7 +5,7 @@ endif
" Vim filetype plugin file
" Language: Mail
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2012 Nov 20
+" Last Change: 2021 Oct 23
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -30,6 +30,14 @@ setlocal fo+=tcql
" Add n:> to 'comments, in case it was removed elsewhere
setlocal comments+=n:>
+" .eml files are universally formatted with DOS line-endings, per RFC5322.
+" If the file was not DOS the it will be marked as changed, which is probably
+" a good thing.
+if expand('%:e') ==? 'eml'
+ let b:undo_ftplugin .= " fileformat=" .. &fileformat
+ setlocal fileformat=dos
+endif
+
" Add mappings, unless the user doesn't want this.
if !exists("no_plugin_maps") && !exists("no_mail_maps")
" Quote text by inserting "> "
diff --git a/ftplugin/meson.vim b/ftplugin/meson.vim
index 79ff47c6..a3608522 100644
--- a/ftplugin/meson.vim
+++ b/ftplugin/meson.vim
@@ -16,9 +16,28 @@ set cpo&vim
setlocal commentstring=#\ %s
setlocal comments=:#
+setlocal formatoptions+=croql formatoptions-=t
-setlocal shiftwidth=2
-setlocal softtabstop=2
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+if get(g:, "meson_recommended_style", 1)
+ setlocal expandtab
+ setlocal shiftwidth=2
+ setlocal softtabstop=2
+ let b:undo_ftplugin .= " | setl et< sts< sw<"
+endif
+
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_words = '\<if\>:\<elif\>:\<else\>:\<endif\>,' .
+ \ '\<foreach\>:\<break\>:\<continue\>:\<endforeach\>'
+ let b:undo_ftplugin .= " | unlet! b:match_words"
+endif
+
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "Meson Build Files (meson.build)\tmeson.build\n" .
+ \ "All Files (*.*)\t*.*\n"
+ let b:undo_ftplugin .= " | unlet! b:browsefilter"
+endif
let &cpo = s:keepcpo
unlet s:keepcpo
diff --git a/ftplugin/nginx.vim b/ftplugin/nginx.vim
index 45442242..61b8a760 100644
--- a/ftplugin/nginx.vim
+++ b/ftplugin/nginx.vim
@@ -2,4 +2,8 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'nginx', 'ftplugin/nginx.vim')
finish
endif
+setlocal comments=:#
setlocal commentstring=#\ %s
+setlocal formatoptions+=croql formatoptions-=t
+
+let b:undo_ftplugin = "setl fo< cms< com<"
diff --git a/ftplugin/nsis.vim b/ftplugin/nsis.vim
index ab54e5d3..2a387b4a 100644
--- a/ftplugin/nsis.vim
+++ b/ftplugin/nsis.vim
@@ -7,7 +7,7 @@ endif
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-nsis
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Last Change: 2018-01-26
+" Last Change: 2021-10-18
if exists("b:did_ftplugin")
finish
@@ -19,7 +19,6 @@ set cpo&vim
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
- \ " | unlet! b:match_ignorecase b:match_words"
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
setlocal formatoptions-=t formatoptions+=croql
@@ -41,6 +40,7 @@ if exists("loaded_matchit")
\ '\${MementoSection}:\${MementoSectionEnd},' .
\ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
\ '!macro\>:!macroend\>'
+ let b:undo_ftplugin .= " | unlet! b:match_ignorecase b:match_words"
endif
let &cpo = s:cpo_save
diff --git a/ftplugin/oasis.vim b/ftplugin/oasis.vim
index ad7dd1a5..7c5771db 100644
--- a/ftplugin/oasis.vim
+++ b/ftplugin/oasis.vim
@@ -2,6 +2,12 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'ocaml', 'ftplugin/oasis.vim')
finish
endif
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin=1
setlocal comments=:#
setlocal commentstring=#\ %s
+
+let b:undo_ftplugin = "com< cms<"
diff --git a/ftplugin/ocaml.vim b/ftplugin/ocaml.vim
index 6ce2adcb..858e4fd4 100644
--- a/ftplugin/ocaml.vim
+++ b/ftplugin/ocaml.vim
@@ -46,6 +46,8 @@ setlocal comments=sr:(*\ ,mb:\ ,ex:*)
setlocal comments^=sr:(**,mb:\ \ ,ex:*)
setlocal commentstring=(*%s*)
+let b:undo_ftplugin = "setlocal com< cms<"
+
" Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
" (un)commenting
@@ -54,6 +56,11 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
xmap <buffer> <LocalLeader>c <Plug>BUncomOn
nmap <buffer> <LocalLeader>C <Plug>LUncomOff
xmap <buffer> <LocalLeader>C <Plug>BUncomOff
+ let b:undo_ftplugin .=
+ \ " | silent! execute 'nunmap <buffer> <LocalLeader>c'" .
+ \ " | silent! execute 'xunmap <buffer> <LocalLeader>c'" .
+ \ " | silent! execute 'nunmap <buffer> <LocalLeader>C'" .
+ \ " | silent! execute 'xunmap <buffer> <LocalLeader>C'"
endif
nnoremap <buffer> <Plug>LUncomOn gI(* <End> *)<ESC>
@@ -66,17 +73,27 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
nmap <buffer> <LocalLeader>t <Plug>OCamlPrintType
xmap <buffer> <LocalLeader>t <Plug>OCamlPrintType
+
+ let b:undo_ftplugin .=
+ \ " | silent! execute 'nunmap <buffer> <LocalLeader>s'" .
+ \ " | silent! execute 'nunmap <buffer> <LocalLeader>S'" .
+ \ " | silent! execute 'nunmap <buffer> <LocalLeader>t'" .
+ \ " | silent! execute 'xunmap <buffer> <LocalLeader>t'"
endif
-" Let % jump between structure elements (due to Issac Trotts)
-let b:mw = '\<let\>:\<and\>:\(\<in\>\|;;\)'
-let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
-let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>'
-let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
-let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
-let b:match_words = b:mw
+if exists("loaded_matchit") && !exists("b:match_words")
+ " Let % jump between structure elements (due to Issac Trotts)
+ let b:mw = '\<let\>:\<and\>:\(\<in\>\|;;\)'
+ let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
+ let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>'
+ let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
+ let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
+ let b:match_words = b:mw
+
+ let b:match_ignorecase=0
-let b:match_ignorecase=0
+ let b:undo_ftplugin .= " | unlet! b:match_ignorecase b:match_words"
+endif
function! s:OcpGrep(bang,args) abort
let grepprg = &l:grepprg
@@ -154,12 +171,9 @@ endif
if exists("g:ocaml_folding")
setlocal foldmethod=expr
setlocal foldexpr=OMLetFoldLevel(v:lnum)
+ let b:undo_ftplugin .= " | setlocal fdm< fde<"
endif
-let b:undo_ftplugin = "setlocal efm< foldmethod< foldexpr<"
- \ . "| unlet! b:mw b:match_words b:match_ignorecase"
-
-
" - Only definitions below, executed once -------------------------------------
if exists("*OMLetFoldLevel")
diff --git a/ftplugin/ocamlbuild_tags.vim b/ftplugin/ocamlbuild_tags.vim
index 5e83406d..5eecc1ce 100644
--- a/ftplugin/ocamlbuild_tags.vim
+++ b/ftplugin/ocamlbuild_tags.vim
@@ -2,6 +2,12 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'ocaml', 'ftplugin/ocamlbuild_
finish
endif
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin=1
setlocal comments=:#
setlocal commentstring=#\ %s
+
+let b:undo_ftplugin = "com< cms<"
diff --git a/ftplugin/omake.vim b/ftplugin/omake.vim
index 59e11101..fe99ea15 100644
--- a/ftplugin/omake.vim
+++ b/ftplugin/omake.vim
@@ -26,3 +26,5 @@ setlocal expandtab
" Including files.
let &l:include = '^\s*include'
+
+let b:undo_ftplugin = "fo< com< cms< et< inc<"
diff --git a/ftplugin/ruby.vim b/ftplugin/ruby.vim
index 1c6f828f..fcf346a0 100644
--- a/ftplugin/ruby.vim
+++ b/ftplugin/ruby.vim
@@ -90,8 +90,14 @@ endfunction
function! s:build_path(path) abort
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
- if &g:path !~# '\v^%(\.,)=%(/%(usr|emx)/include,)=,$'
- let path = substitute(&g:path,',,$',',','') . ',' . path
+ if &g:path =~# '\v^%(\.,)=%(/%(usr|emx)/include,)=,$'
+ let path = path . ',.,,'
+ elseif &g:path =~# ',\.,,$'
+ let path = &g:path[0:-4] . path . ',.,,'
+ elseif &g:path =~# ',,$'
+ let path = &g:path[0:-2] . path . ',,'
+ else
+ let path = substitute(&g:path, '[^,]\zs$', ',', '') . path
endif
return path
endfunction
@@ -167,6 +173,8 @@ let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><ctag>| sil! cunmap <buffer
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
nmap <buffer><script> <SID>: :<C-U>
nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
+ cmap <buffer> <SID><cfile> <Plug><cfile>
+ cmap <buffer> <SID><ctag> <Plug><ctag>
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'b','n')<CR>
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>',['rubyDefine'],'','n')<CR>
@@ -213,20 +221,20 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
- call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><ctag>"<SID>tagzv<CR>')
- call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><ctag>"<CR>')
- call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><ctag>"<CR>')
-
- call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
- call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
- call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
- call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
+ call s:map('n', '<script><silent>', '<C-]> <SID>:exe v:count1."tag <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', 'g<C-]> <SID>:exe "tjump <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', 'g] <SID>:exe "tselect <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', '<C-W>] <SID>:exe v:count1."stag <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', '<C-W><C-]> <SID>:exe v:count1."stag <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', '<C-W>g<C-]> <SID>:exe "stjump <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', '<C-W>g] <SID>:exe "stselect <SID><ctag>"<SID>tagzv<CR>')
+ call s:map('n', '<script><silent>', '<C-W>} <SID>:exe v:count1."ptag <SID><ctag>"<CR>')
+ call s:map('n', '<script><silent>', '<C-W>g} <SID>:exe "ptjump <SID><ctag>"<CR>')
+
+ call s:map('n', '<script><silent>', 'gf <SID>c:find <SID><cfile><CR>')
+ call s:map('n', '<script><silent>', '<C-W>f <SID>c:sfind <SID><cfile><CR>')
+ call s:map('n', '<script><silent>', '<C-W><C-F> <SID>c:sfind <SID><cfile><CR>')
+ call s:map('n', '<script><silent>', '<C-W>gf <SID>c:tabfind <SID><cfile><CR>')
endif
let &cpo = s:cpo_save
diff --git a/ftplugin/sexplib.vim b/ftplugin/sexplib.vim
index 976e3897..74a00e54 100644
--- a/ftplugin/sexplib.vim
+++ b/ftplugin/sexplib.vim
@@ -17,3 +17,5 @@ let b:did_ftplugin=1
" Comment string
setl commentstring=;\ %s
setl comments=n:;
+
+let b:undo_ftplugin = "setl cms< com<"
diff --git a/ftplugin/systemverilog.vim b/ftplugin/systemverilog.vim
index 53bd1351..6db92d88 100644
--- a/ftplugin/systemverilog.vim
+++ b/ftplugin/systemverilog.vim
@@ -36,7 +36,7 @@ if exists("loaded_matchit")
\ '\<checker\>:\<endchecker\>,' .
\ '\<class\>:\<endclass\>,' .
\ '\<clocking\>:\<endclocking\>,' .
- \ '\<gruop\>:\<endgruop\>,' .
+ \ '\<group\>:\<endgroup\>,' .
\ '\<interface\>:\<endinterface\>,' .
\ '\<package\>:\<endpackage\>,' .
\ '\<program\>:\<endprogram\>,' .
diff --git a/ftplugin/toml.vim b/ftplugin/toml.vim
index 8d45ea77..689b016c 100644
--- a/ftplugin/toml.vim
+++ b/ftplugin/toml.vim
@@ -2,13 +2,15 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'toml', 'ftplugin/toml.vim')
finish
endif
-" File: ftplugin/toml.vim
-" Author: Kevin Ballard <kevin@sb.org>
-" Description: FileType Plugin for Toml
-" Last Change: Feb 12, 2019
+" Vim filetype plugin
+" Language: TOML
+" Homepage: https://github.com/cespare/vim-toml
+" Maintainer: Aman Verma
+" Author: Kevin Ballard <kevin@sb.org>
+" Last Change: Sep 21, 2021
if exists('b:did_ftplugin')
- finish
+ finish
endif
let b:did_ftplugin = 1
@@ -22,4 +24,4 @@ setlocal comments=:#
let &cpo = s:save_cpo
unlet s:save_cpo
-" vim: set et sw=4 ts=4:
+" vim: et sw=2 sts=2
diff --git a/ftplugin/unison.vim b/ftplugin/unison.vim
new file mode 100644
index 00000000..93ac81d6
--- /dev/null
+++ b/ftplugin/unison.vim
@@ -0,0 +1,11 @@
+if polyglot#init#is_disabled(expand('<sfile>:p'), 'unison', 'ftplugin/unison.vim')
+ finish
+endif
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+call unison#SetBufferDefaults()
diff --git a/ftplugin/vb.vim b/ftplugin/vb.vim
index 0b5763f2..36c2a9f1 100644
--- a/ftplugin/vb.vim
+++ b/ftplugin/vb.vim
@@ -3,46 +3,72 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'visual-basic', 'ftplugin/vb.v
endif
" Vim filetype plugin file
-" Language: VisualBasic (ft=vb)
-" Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
+" Language: Visual Basic (ft=vb)
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: 2021 Nov 17
-if exists("b:did_ftplugin") | finish | endif
+if exists("b:did_ftplugin")
+ finish
+endif
let b:did_ftplugin = 1
-setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal comments=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
+setlocal commentstring='\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let b:undo_ftplugin = "setlocal com< cms< fo<"
" we need this wrapper, as call doesn't allow a count
-fun! <SID>VbSearch(pattern, flags)
+function! s:VbSearch(pattern, flags)
let cnt = v:count1
while cnt > 0
call search(a:pattern, a:flags)
let cnt = cnt - 1
endwhile
-endfun
+endfunction
-let s:cpo_save = &cpo
-set cpo&vim
+if !exists("no_plugin_maps") && !exists("no_vb_maps")
+ nnoremap <buffer> <silent> [[ <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sbW')<CR>
+ vnoremap <buffer> <silent> [[ <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sbW')<CR>
+ nnoremap <buffer> <silent> ]] <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sW')<CR>
+ vnoremap <buffer> <silent> ]] <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sW')<CR>
+ nnoremap <buffer> <silent> [] <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sbW')<CR>
+ vnoremap <buffer> <silent> [] <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sbW')<CR>
+ nnoremap <buffer> <silent> ][ <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sW')<CR>
+ vnoremap <buffer> <silent> ][ <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sW')<CR>
+ let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> [[' | sil! exe 'vunmap <buffer> [['" .
+ \ " | sil! exe 'nunmap <buffer> ]]' | sil! exe 'vunmap <buffer> ]]'" .
+ \ " | sil! exe 'nunmap <buffer> []' | sil! exe 'vunmap <buffer> []'" .
+ \ " | sil! exe 'nunmap <buffer> ][' | sil! exe 'vunmap <buffer> ]['"
+endif
+
+" TODO: line start anchors are almost certainly overly restrictive - allow
+" after statement separators. Even in QuickBasic only block IF statements
+" were required to be at the start of a line.
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_ignorecase = 1
+ let b:match_words =
+ \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*\%($\|''\):\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
+ \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
+ \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
+ \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
+ \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
+ \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
+ \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
+ \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
+ \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
+ let b:undo_ftplugin .= " | unlet! b:match_words b:match_ignorecase"
+endif
-" NOTE the double escaping \\|
-nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
-nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
-nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
-nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
-
-" matchit support
-if exists("loaded_matchit")
- let b:match_ignorecase=1
- let b:match_words=
- \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
- \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
- \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
- \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
- \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
- \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
- \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
- \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
- \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "Visual Basic Source Files (*.bas)\t*.bas\n" .
+ \ "Visual Basic Form Files (*.frm)\t*.frm\n" .
+ \ "All Files (*.*)\t*.*\n"
+ let b:undo_ftplugin .= " | unlet! b:browsefilter"
endif
let &cpo = s:cpo_save
diff --git a/ftplugin/zig.vim b/ftplugin/zig.vim
index cb2f3e84..1e6f91b3 100644
--- a/ftplugin/zig.vim
+++ b/ftplugin/zig.vim
@@ -39,14 +39,18 @@ endif
let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
-if exists("*json_decode") && executable('zig')
+if !exists('g:zig_std_dir') && exists('*json_decode') && executable('zig')
silent let s:env = system('zig env')
if v:shell_error == 0
- let &l:path=json_decode(s:env)['std_dir'] . ',' . &l:path
+ let g:zig_std_dir = json_decode(s:env)['std_dir']
endif
unlet! s:env
endif
+if exists('g:zig_std_dir')
+ let &l:path = g:zig_std_dir . ',' . &l:path
+endif
+
let b:undo_ftplugin =
\ 'setl isk< et< ts< sts< sw< fo< sua< mp< com< cms< inex< inc< pa<'
diff --git a/ftplugin/zimbu.vim b/ftplugin/zimbu.vim
index a16fe8c0..0605d513 100644
--- a/ftplugin/zimbu.vim
+++ b/ftplugin/zimbu.vim
@@ -5,7 +5,7 @@ endif
" Vim filetype plugin file
" Language: Zimbu
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Dec 05
+" Last Change: 2021 Nov 12
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -38,9 +38,11 @@ setlocal errorformat^=%f\ line\ %l\ col\ %c:\ %m,ERROR:\ %m
" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments.
-let b:match_words = '\(^\s*\)\@<=\(MODULE\|CLASS\|INTERFACE\|BITS\|ENUM\|SHARED\|FUNC\|REPLACE\|DEFINE\|PROC\|EQUAL\|MAIN\|IF\|GENERATE_IF\|WHILE\|REPEAT\|WITH\|DO\|FOR\|SWITCH\|TRY\)\>\|{\s*$:\(^\s*\)\@<=\(ELSE\|ELSEIF\|GENERATE_ELSE\|GENERATE_ELSEIF\|CATCH\|FINALLY\)\>:\(^\s*\)\@<=\(}\|\<UNTIL\>\)'
-
-let b:match_skip = 's:comment\|string\|zimbuchar'
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_words = '\(^\s*\)\@<=\(MODULE\|CLASS\|INTERFACE\|BITS\|ENUM\|SHARED\|FUNC\|REPLACE\|DEFINE\|PROC\|EQUAL\|MAIN\|IF\|GENERATE_IF\|WHILE\|REPEAT\|WITH\|DO\|FOR\|SWITCH\|TRY\)\>\|{\s*$:\(^\s*\)\@<=\(ELSE\|ELSEIF\|GENERATE_ELSE\|GENERATE_ELSEIF\|CATCH\|FINALLY\)\>:\(^\s*\)\@<=\(}\|\<UNTIL\>\)'
+ let b:match_skip = 's:comment\|string\|zimbuchar'
+ let b:undo_ftplugin .= " | unlet! b:match_words b:match_skip"
+endif
setlocal tw=78
setlocal et sts=2 sw=2
@@ -139,9 +141,60 @@ iabbr <buffer> <expr> until GCUpperSpace("until")
iabbr <buffer> <expr> while GCUpperSpace("while")
iabbr <buffer> <expr> repeat GCUpper("repeat")
+let b:undo_ftplugin ..=
+ \ " | iunabbr <buffer> alias" ..
+ \ " | iunabbr <buffer> arg" ..
+ \ " | iunabbr <buffer> break" ..
+ \ " | iunabbr <buffer> case" ..
+ \ " | iunabbr <buffer> catch" ..
+ \ " | iunabbr <buffer> check" ..
+ \ " | iunabbr <buffer> class" ..
+ \ " | iunabbr <buffer> interface" ..
+ \ " | iunabbr <buffer> implements" ..
+ \ " | iunabbr <buffer> shared" ..
+ \ " | iunabbr <buffer> continue" ..
+ \ " | iunabbr <buffer> default" ..
+ \ " | iunabbr <buffer> extends" ..
+ \ " | iunabbr <buffer> do" ..
+ \ " | iunabbr <buffer> else" ..
+ \ " | iunabbr <buffer> elseif" ..
+ \ " | iunabbr <buffer> enum" ..
+ \ " | iunabbr <buffer> exit" ..
+ \ " | iunabbr <buffer> false" ..
+ \ " | iunabbr <buffer> fail" ..
+ \ " | iunabbr <buffer> finally" ..
+ \ " | iunabbr <buffer> for" ..
+ \ " | iunabbr <buffer> func" ..
+ \ " | iunabbr <buffer> if" ..
+ \ " | iunabbr <buffer> import" ..
+ \ " | iunabbr <buffer> in" ..
+ \ " | iunabbr <buffer> io" ..
+ \ " | iunabbr <buffer> main" ..
+ \ " | iunabbr <buffer> module" ..
+ \ " | iunabbr <buffer> new" ..
+ \ " | iunabbr <buffer> nil" ..
+ \ " | iunabbr <buffer> ok" ..
+ \ " | iunabbr <buffer> proc" ..
+ \ " | iunabbr <buffer> proceed" ..
+ \ " | iunabbr <buffer> return" ..
+ \ " | iunabbr <buffer> step" ..
+ \ " | iunabbr <buffer> switch" ..
+ \ " | iunabbr <buffer> sys" ..
+ \ " | iunabbr <buffer> this" ..
+ \ " | iunabbr <buffer> throw" ..
+ \ " | iunabbr <buffer> try" ..
+ \ " | iunabbr <buffer> to" ..
+ \ " | iunabbr <buffer> true" ..
+ \ " | iunabbr <buffer> until" ..
+ \ " | iunabbr <buffer> while" ..
+ \ " | iunabbr <buffer> repeat"
+
if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
+ let b:undo_ftplugin ..=
+ \ " | silent! exe 'nunmap <buffer> [['" ..
+ \ " | silent! exe 'nunmap <buffer> ]]'"
endif
" Using a function makes sure the search pattern is restored
diff --git a/indent/ada.vim b/indent/ada.vim
index 1127ca11..261d2af4 100644
--- a/indent/ada.vim
+++ b/indent/ada.vim
@@ -223,7 +223,7 @@ function GetAdaIndent()
" Move indent in twice (next 'when' will move back)
let ind = ind + 2 * shiftwidth()
elseif line =~ '^\s*end\s*record\>'
- " Move indent back to tallying 'type' preceeding the 'record'.
+ " Move indent back to tallying 'type' preceding the 'record'.
" Allow indent to be equal to 'end record's.
let ind = s:MainBlockIndent( ind+shiftwidth(), lnum, 'type\>', '' )
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
diff --git a/indent/ansible.vim b/indent/ansible.vim
index 65a51a64..6b2c4923 100644
--- a/indent/ansible.vim
+++ b/indent/ansible.vim
@@ -22,6 +22,7 @@ let s:named_module_entry = '\v^\s*-\s*(name|hosts|role):\s*\S' " - name: 'do stu
let s:dictionary_entry = '\v^\s*[^:-]+:\s*$' " with_items:
let s:key_value = '\v^\s*[^:-]+:\s*\S' " apt: name=package
let s:scalar_value = '\v:\s*[>|\|]\s*$' " shell: >
+let s:blank = '\v^\s*$' " line with only spaces
if exists('*GetAnsibleIndent')
finish
@@ -37,26 +38,29 @@ function GetAnsibleIndent(lnum)
endif
endif
let prevlnum = prevnonblank(a:lnum - 1)
- let maintain = indent(prevlnum)
- let increase = maintain + &sw
+ let default = GetYAMLIndent(a:lnum)
+ let increase = indent(prevlnum) + &sw
- let line = getline(prevlnum)
- if line =~ s:array_entry
- if line =~ s:named_module_entry
+ let prevline = getline(prevlnum)
+ let line = getline(a:lnum)
+ if line !~ s:blank
+ return default " we only special case blank lines
+ elseif prevline =~ s:array_entry
+ if prevline =~ s:named_module_entry
return increase
else
- return maintain
+ return default
endif
- elseif line =~ s:dictionary_entry
+ elseif prevline =~ s:dictionary_entry
return increase
- elseif line =~ s:key_value
- if line =~ s:scalar_value
+ elseif prevline =~ s:key_value
+ if prevline =~ s:scalar_value
return increase
else
- return maintain
+ return default
endif
else
- return maintain
+ return default
endif
endfunction
diff --git a/indent/cdl.vim b/indent/cdl.vim
index 4c679e83..9d39a01b 100644
--- a/indent/cdl.vim
+++ b/indent/cdl.vim
@@ -3,7 +3,8 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'cdl', 'indent/cdl.vim')
endif
" Description: Comshare Dimension Definition Language (CDL)
-" Author: Raul Segura Acevedo <raulseguraaceved@netscape.net>
+" Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net> (Invalid email address)
+" Doug Kearns <dougkearns@gmail.com>
" Last Change: Fri Nov 30 13:35:48 2001 CST
if exists("b:did_indent")
@@ -20,8 +21,8 @@ if exists("*CdlGetIndent")
"finish
endif
-" find out if an "...=..." expresion is an assignment (or a conditional)
-" it scans 'line' first, and then the previos lines
+" find out if an "...=..." expression is an assignment (or a conditional)
+" it scans 'line' first, and then the previous lines
fun! CdlAsignment(lnum, line)
let f = -1
let lnum = a:lnum
@@ -37,7 +38,7 @@ fun! CdlAsignment(lnum, line)
endif
" it's formula if there's a ';', 'elsE', 'theN', 'enDif' or 'expr'
" conditional if there's a '<', '>', 'elseif', 'if', 'and', 'or', 'not',
- " 'memberis', 'childrenof' and other \k\+of funcions
+ " 'memberis', 'childrenof' and other \k\+of functions
let f = line[inicio-1] =~? '[en;]' || strpart(line, inicio-4, 4) =~? 'ndif\|expr'
endw
let lnum = prevnonblank(lnum-1)
@@ -110,7 +111,7 @@ fun! CdlGetIndent(lnum)
elseif c == '(' || c ==? 'f' " '(' or 'if'
let ind = ind + shiftwidth()
else " c == '='
- " if it is an asignment increase indent
+ " if it is an assignment increase indent
if f == -1 " we don't know yet, find out
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
end
@@ -121,11 +122,11 @@ fun! CdlGetIndent(lnum)
endw
" CURRENT LINE, if it starts with a closing element, decrease indent
- " or if it starts with '=' (asignment), increase indent
+ " or if it starts with '=' (assignment), increase indent
if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
let ind = ind - shiftwidth()
elseif match(thisline, '^\s*=') >= 0
- if f == -1 " we don't know yet if is an asignment, find out
+ if f == -1 " we don't know yet if is an assignment, find out
let f = CdlAsignment(lnum, "")
end
if f == 1 " formula increase it
diff --git a/indent/clojure.vim b/indent/clojure.vim
index 7f79c9a2..c6069324 100644
--- a/indent/clojure.vim
+++ b/indent/clojure.vim
@@ -60,8 +60,7 @@ if exists("*searchpairpos")
endfunction
function! s:ignored_region()
- let name = s:syn_id_name()
- return (name =~? '\vstring|regex|comment|character') && (name !~# '^clojureCommentReaderMacro\(Form\)\?$')
+ return s:syn_id_name() =~? '\vstring|regex|comment|character'
endfunction
function! s:current_char()
@@ -76,14 +75,10 @@ if exists("*searchpairpos")
return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()
endfunction
- " Returns 1 if string matches a pattern in 'patterns', which may be a
- " list of patterns, or a comma-delimited string of implicitly anchored
- " patterns.
+ " Returns 1 if string matches a pattern in 'patterns', which should be
+ " a list of patterns.
function! s:match_one(patterns, string)
- let list = type(a:patterns) == type([])
- \ ? a:patterns
- \ : map(split(a:patterns, ','), '"^" . v:val . "$"')
- for pat in list
+ for pat in a:patterns
if a:string =~# pat | return 1 | endif
endfor
endfunction
diff --git a/indent/cobol.vim b/indent/cobol.vim
index 7a0b7f07..37af5dcd 100644
--- a/indent/cobol.vim
+++ b/indent/cobol.vim
@@ -11,6 +11,7 @@ endif
" Ankit Jain 22.03.2019 Changes & fixes:
" Allow chars in 1st 6 columns
" #C22032019
+" Ankit Jain 24.09.2021 add b:undo_indent (request by tpope)
if exists("b:did_indent")
finish
@@ -22,6 +23,8 @@ setlocal indentexpr=GetCobolIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+=0<*>,0/,0$,0=01,=~division,=~section,0=~end,0=~then,0=~else,0=~when,*<Return>,.
+let b:undo_indent = "setlocal expandtab< indentexpr< indentkeys<"
+
" Only define the function once.
if exists("*GetCobolIndent")
finish
diff --git a/indent/config.vim b/indent/config.vim
index 986b8c4d..5b1a3aa4 100644
--- a/indent/config.vim
+++ b/indent/config.vim
@@ -3,11 +3,12 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'config', 'indent/config.vim')
endif
" Vim indent file
-" Language: Autoconf configure.{ac,in} file
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
-" TODO: how about nested [()]'s in one line
-" what's wrong with '\\\@!'?
+" Language: Autoconf configure.{ac,in} file
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
+
+" TODO: how about nested [()]'s in one line what's wrong with '\\\@!'?
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -20,6 +21,8 @@ setlocal indentexpr=GetConfigIndent()
setlocal indentkeys=!^F,o,O,=then,=do,=else,=elif,=esac,=fi,=fin,=fil,=done
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
" Only define the function once.
if exists("*GetConfigIndent")
finish
@@ -66,8 +69,8 @@ function GetConfigIndent()
let ind = s:GetOffsetOf(line, '\[')
endif
- " if previous line had an unmatched closing parantheses,
- " indent to the matching opening parantheses
+ " if previous line had an unmatched closing parentheses,
+ " indent to the matching opening parentheses
if line =~ '[^(]\+\\\@<!)$'
call search(')', 'bW')
let lnum = searchpair('\\\@<!(', '', ')', 'bWn')
diff --git a/indent/css.vim b/indent/css.vim
index b383d448..9f2bfb7a 100644
--- a/indent/css.vim
+++ b/indent/css.vim
@@ -3,10 +3,12 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'css', 'indent/css.vim')
endif
" Vim indent file
-" Language: CSS
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2012-05-30
-" Use of shiftwidth() added by Oleg Zubchenko.
+" Language: CSS
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
+
+" Use of shiftwidth() added by Oleg Zubchenko.
if exists("b:did_indent")
finish
@@ -17,7 +19,7 @@ setlocal indentexpr=GetCSSIndent()
setlocal indentkeys=0{,0},!^F,o,O
setlocal nosmartindent
-let b:undo_indent = "setl smartindent< indentkeys< indentexpr<"
+let b:undo_indent = "setl inde< indk< si<"
if exists("*GetCSSIndent")
finish
diff --git a/indent/dosbatch.vim b/indent/dosbatch.vim
index a98c3886..d91a42cd 100644
--- a/indent/dosbatch.vim
+++ b/indent/dosbatch.vim
@@ -6,7 +6,7 @@ endif
" Language: MSDOS batch file (with NT command extensions)
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-dosbatch-indent
-" Last Change: 2017 May 10
+" Last Change: 2021-10-18
" Filenames: *.bat
" License: VIM License
@@ -21,6 +21,8 @@ setlocal indentexpr=GetDosBatchIndent(v:lnum)
setlocal indentkeys=!^F,o,O
setlocal indentkeys+=0=)
+let b:undo_indent = "setl ai< inde< indk< si<"
+
if exists("*GetDosBatchIndent")
finish
endif
diff --git a/indent/dtd.vim b/indent/dtd.vim
index 7faa9483..41363410 100644
--- a/indent/dtd.vim
+++ b/indent/dtd.vim
@@ -3,14 +3,17 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'dtd', 'indent/dtd.vim')
endif
" Vim indent file
-" Language: DTD (Document Type Definition for XML)
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-07-08
+" Language: DTD (Document Type Definition for XML)
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
setlocal indentexpr=GetDTDIndent()
setlocal indentkeys=!^F,o,O,>
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
if exists("*GetDTDIndent")
finish
endif
@@ -123,16 +126,16 @@ function GetDTDIndent()
" Next comes the content model. If the token we’ve found isn’t a
" parenthesis it must be either ANY, EMPTY or some random junk. Either
" way, we’re done indenting this element, so set it to that of the first
- " line so that the terminating “>” winds up having the same indention.
+ " line so that the terminating “>” winds up having the same indentation.
if token != '('
return indent
endif
" Now go through the content model. We need to keep track of the nesting
" of parentheses. As soon as we hit 0 we’re done. If that happens we must
- " have a complete content model. Thus set indention to be the same as that
+ " have a complete content model. Thus set indentation to be the same as that
" of the first line so that the terminating “>” winds up having the same
- " indention. Otherwise, we’ll indent to the innermost parentheses not yet
+ " indentation. Otherwise, we’ll indent to the innermost parentheses not yet
" matched.
let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
if indent_of_innermost != -1
diff --git a/indent/dune.vim b/indent/dune.vim
index 009f7eba..429d6354 100644
--- a/indent/dune.vim
+++ b/indent/dune.vim
@@ -15,3 +15,5 @@ let b:did_indent = 1
" dune format-dune-file uses 1 space to indent
setlocal softtabstop=1 shiftwidth=1 expandtab
+
+let b:undo_indent = "setl et< sts< sw<"
diff --git a/indent/dylan.vim b/indent/dylan.vim
index 4e83a51d..826265d7 100644
--- a/indent/dylan.vim
+++ b/indent/dylan.vim
@@ -4,9 +4,10 @@ endif
" Vim indent file
" Language: Dylan
+" Maintainer: Brent A. Fulgham <bfulgham@debian.org> (Invalid email address)
+" Doug Kearns <dougkearns@gmail.com>
" Version: 0.01
" Last Change: 2017 Jun 13
-" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
diff --git a/indent/erlang.vim b/indent/erlang.vim
index 5a5637a7..adfd0dd9 100644
--- a/indent/erlang.vim
+++ b/indent/erlang.vim
@@ -36,6 +36,8 @@ endif
setlocal indentexpr=ErlangIndent()
setlocal indentkeys+=0=end,0=of,0=catch,0=after,0=when,0=),0=],0=},0=>>
+let b:undo_indent = "setl inde< indk<"
+
" Only define the functions once
if exists("*ErlangIndent")
finish
diff --git a/indent/eterm.vim b/indent/eterm.vim
index 88502cf4..67738fe9 100644
--- a/indent/eterm.vim
+++ b/indent/eterm.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'eterm', 'indent/eterm.vim')
endif
" Vim indent file
-" Language: Eterm configuration file
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: Eterm configuration file
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
if exists("b:did_indent")
finish
@@ -16,6 +17,8 @@ setlocal indentexpr=GetEtermIndent()
setlocal indentkeys=!^F,o,O,=end
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
if exists("*GetEtermIndent")
finish
endif
diff --git a/indent/framescript.vim b/indent/framescript.vim
index 883f4a4d..04abe1bd 100644
--- a/indent/framescript.vim
+++ b/indent/framescript.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'framescript', 'indent/framesc
endif
" Vim indent file
-" Language: FrameScript
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-19
+" Language: FrameScript
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
if exists("b:did_indent")
finish
@@ -16,6 +17,8 @@ setlocal indentexpr=GetFrameScriptIndent()
setlocal indentkeys=!^F,o,O,0=~Else,0=~EndIf,0=~EndLoop,0=~EndSub
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
if exists("*GetFrameScriptIndent")
finish
endif
diff --git a/indent/haml.vim b/indent/haml.vim
index f0efff18..ae4f2d10 100644
--- a/indent/haml.vim
+++ b/indent/haml.vim
@@ -18,6 +18,8 @@ setlocal autoindent
setlocal indentexpr=GetHamlIndent()
setlocal indentkeys=o,O,*<Return>,},],0),!^F,=end,=else,=elsif,=rescue,=ensure,=when
+let b:undo_indent = "setl ai< inde< indk<"
+
" Only define the function once.
if exists("*GetHamlIndent")
finish
diff --git a/indent/hamster.vim b/indent/hamster.vim
index 86f86bf8..0e7ced5c 100644
--- a/indent/hamster.vim
+++ b/indent/hamster.vim
@@ -4,9 +4,15 @@ endif
" Vim indent file
" Language: Hamster Script
-" Version: 2.0.6.0
-" Last Change: Wed Nov 08 2006 12:02:42 PM
-" Maintainer: David Fishburn <fishburn@ianywhere.com>
+" Version: 2.0.6.1
+" Last Change: 2021 Oct 11
+" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
+" Download: https://www.vim.org/scripts/script.php?script_id=1099
+"
+" 2.0.6.1 (Oct 2021)
+" Added b:undo_indent
+" Added cpo check
+"
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -18,12 +24,17 @@ setlocal indentkeys+==~if,=~else,=~endif,=~endfor,=~endwhile
setlocal indentkeys+==~do,=~until,=~while,=~repeat,=~for,=~loop
setlocal indentkeys+==~sub,=~endsub
+let b:undo_indent = "setl indentkeys<"
+
" Define the appropriate indent function but only once
setlocal indentexpr=HamGetFreeIndent()
if exists("*HamGetFreeIndent")
finish
endif
+let s:keepcpo = &cpo
+set cpo&vim
+
function HamGetIndent(lnum)
let ind = indent(a:lnum)
let prevline=getline(a:lnum)
@@ -56,4 +67,8 @@ function HamGetFreeIndent()
return ind
endfunction
+" Restore:
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
" vim:sw=2 tw=80
diff --git a/indent/javascript.vim b/indent/javascript.vim
index 0a3b3bc2..c3880b45 100644
--- a/indent/javascript.vim
+++ b/indent/javascript.vim
@@ -23,7 +23,7 @@ setlocal indentkeys+=0],0)
" "+norm! gg=G" '+%print' '+:q!' testfile.js \
" | diff -uBZ testfile.js -
-let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
+let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys< lisp<'
" Only define the function once.
if exists('*GetJavascriptIndent')
diff --git a/indent/julia.vim b/indent/julia.vim
index d118f3f4..9f7c4dd0 100644
--- a/indent/julia.vim
+++ b/indent/julia.vim
@@ -18,6 +18,8 @@ setlocal indentkeys-=0{
setlocal indentkeys-=0}
setlocal nosmartindent
+let b:undo_indent = "setl ai< inde< indk< si<"
+
" Only define the function once.
if exists("*GetJuliaIndent")
finish
diff --git a/indent/kotlin.vim b/indent/kotlin.vim
index 8fdb2f85..fd7e0cea 100644
--- a/indent/kotlin.vim
+++ b/indent/kotlin.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'kotlin', 'indent/kotlin.vim')
endif
" Vim indent file
-" Language: Kotlin
-" Maintainer: Alexander Udalov
-" Latest Revision: 26 May 2019
+" Language: Kotlin
+" Maintainer: Alexander Udalov
+" URL: https://github.com/udalov/kotlin-vim
+" Last Change: 7 November 2021
if exists('b:did_indent')
finish
@@ -49,11 +50,11 @@ function! GetKotlinIndent()
let cur_close_brace = cur =~ '^\s*}.*$'
if prev_open_paren && !cur_close_paren || prev_open_brace && !cur_close_brace
- return prev_indent + &shiftwidth
+ return prev_indent + shiftwidth()
endif
if cur_close_paren && !prev_open_paren || cur_close_brace && !prev_open_brace
- return prev_indent - &shiftwidth
+ return prev_indent - shiftwidth()
endif
return prev_indent
diff --git a/indent/ld.vim b/indent/ld.vim
index 339c1542..6fcd2f60 100644
--- a/indent/ld.vim
+++ b/indent/ld.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'ld', 'indent/ld.vim')
endif
" Vim indent file
-" Language: ld(1) script
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: ld(1) script
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
if exists("b:did_indent")
finish
@@ -16,6 +17,8 @@ setlocal indentexpr=GetLDIndent()
setlocal indentkeys=0{,0},!^F,o,O
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
if exists("*GetLDIndent")
finish
endif
diff --git a/indent/lifelines.vim b/indent/lifelines.vim
index 960a01b3..d569def5 100644
--- a/indent/lifelines.vim
+++ b/indent/lifelines.vim
@@ -15,7 +15,7 @@ endif
let b:did_indent = 1
" LifeLines uses cindent without ; line terminator, C functions
-" declarations, C keywords, C++ formating
+" declarations, C keywords, C++ formatting
setlocal cindent
setlocal cinwords=""
setlocal cinoptions+=+0
diff --git a/indent/mail.vim b/indent/mail.vim
index 633a2da5..e5fb96bb 100644
--- a/indent/mail.vim
+++ b/indent/mail.vim
@@ -5,7 +5,7 @@ endif
" Vim indent file
" Language: Mail
" Maintainer: Bram Moolenaar
-" Last Change: 2009 Jun 03
+" Last Change: 2021 Sep 26
if exists("b:did_indent")
finish
@@ -15,3 +15,5 @@ let b:did_indent = 1
" What works best is auto-indenting, disable other indenting.
" For formatting see the ftplugin.
setlocal autoindent nosmartindent nocindent indentexpr=
+
+let b:undo_indent = "setl ai< cin< inde< si<"
diff --git a/indent/make.vim b/indent/make.vim
index 59e698ab..728dd944 100644
--- a/indent/make.vim
+++ b/indent/make.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'make', 'indent/make.vim')
endif
" Vim indent file
-" Language: Makefile
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-05-07
+" Language: Makefile
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
if exists("b:did_indent")
finish
@@ -16,6 +17,8 @@ setlocal indentexpr=GetMakeIndent()
setlocal indentkeys=!^F,o,O,<:>,=else,=endif
setlocal nosmartindent
+let b:undo_indent = "setl ai< inde< indk<"
+
if exists("*GetMakeIndent")
finish
endif
diff --git a/indent/meson.vim b/indent/meson.vim
index 65d039e9..eb726902 100644
--- a/indent/meson.vim
+++ b/indent/meson.vim
@@ -24,6 +24,8 @@ setlocal autoindent " indentexpr isn't much help otherwise
setlocal indentexpr=GetMesonIndent(v:lnum)
setlocal indentkeys+==elif,=else,=endforeach,=endif,0)
+let b:undo_indent = "setl ai< inde< indk< lisp<"
+
" Only define the function once.
if exists("*GetMesonIndent")
finish
diff --git a/indent/nginx.vim b/indent/nginx.vim
index e9335e7a..dedcd970 100644
--- a/indent/nginx.vim
+++ b/indent/nginx.vim
@@ -13,3 +13,5 @@ setlocal indentexpr=
setlocal cindent
" Just make sure that the comments are not reset as defs would be.
setlocal cinkeys-=0#
+
+let b:undo_indent = "setl cin< cink< inde<"
diff --git a/indent/nsis.vim b/indent/nsis.vim
index d6e65634..a4c09e39 100644
--- a/indent/nsis.vim
+++ b/indent/nsis.vim
@@ -6,7 +6,7 @@ endif
" Language: NSIS script
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-nsis
-" Last Change: 2018-01-21
+" Last Change: 2021-10-18
" Filenames: *.nsi
" License: VIM License
@@ -21,6 +21,8 @@ setlocal indentexpr=GetNsisIndent(v:lnum)
setlocal indentkeys=!^F,o,O
setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif
+let b:undo_indent = "setl ai< inde< indk< si<"
+
if exists("*GetNsisIndent")
finish
endif
diff --git a/indent/ocaml.vim b/indent/ocaml.vim
index 82e5825e..e2d09842 100644
--- a/indent/ocaml.vim
+++ b/indent/ocaml.vim
@@ -28,6 +28,8 @@ setlocal indentkeys+=0=and,0=class,0=constraint,0=done,0=else,0=end,0=exception,
setlocal nolisp
setlocal nosmartindent
+let b:undo_indent = "setl et< inde< indk< lisp< si<"
+
" At least Marc Weber and Markus Mottl do not like this:
" setlocal textwidth=80
@@ -37,6 +39,7 @@ if !exists("no_ocaml_comments")
setlocal comments=sr:(*\ ,mb:\ ,ex:*)
setlocal comments^=sr:(**,mb:\ \ ,ex:*)
setlocal fo=cqort
+ let b:undo_indent .= " | setl com< fo<"
endif
endif
diff --git a/indent/occam.vim b/indent/occam.vim
index c9949c3f..96114354 100644
--- a/indent/occam.vim
+++ b/indent/occam.vim
@@ -4,7 +4,8 @@ endif
" Vim indent file
" Language: occam
-" Maintainer: Mario Schweigler <ms44@kent.ac.uk>
+" Maintainer: Mario Schweigler <ms44@kent.ac.uk> (Invalid email address)
+" Doug Kearns <dougkearns@gmail.com>
" Last Change: 23 April 2003
" Only load this indent file when no other was loaded.
diff --git a/indent/pascal.vim b/indent/pascal.vim
index d4a6a5a7..a9b95076 100644
--- a/indent/pascal.vim
+++ b/indent/pascal.vim
@@ -6,11 +6,9 @@ endif
" Language: Pascal
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
" Created: 2004 Jul 13
-" Last Change: 2021 Jul 01
+" Last Change: 2021 Sep 22
"
-" This is version 2.0, a complete rewrite.
-"
-" For further documentation, see http://psy.swansea.ac.uk/staff/carter/vim/
+" For further documentation, see https://psy.swansea.ac.uk/staff/carter/vim/
if exists("b:did_indent")
@@ -24,13 +22,14 @@ setlocal indentkeys+==end;,==const,==type,==var,==begin,==repeat,==until,==for
setlocal indentkeys+==program,==function,==procedure,==object,==private
setlocal indentkeys+==record,==if,==else,==case
-let b:undo_indent = "setl indentkeys< indentexpr<"
+let b:undo_indent = 'setlocal indentexpr< indentkeys<'
if exists("*GetPascalIndent")
finish
endif
+" ________________________________________________________________
function! s:GetPrevNonCommentLineNum( line_num )
" Skip lines starting with a comment
@@ -48,6 +47,7 @@ function! s:GetPrevNonCommentLineNum( line_num )
endfunction
+" ________________________________________________________________
function! s:PurifyCode( line_num )
" Strip any trailing comments and whitespace
let pureline = 'TODO'
@@ -55,6 +55,7 @@ function! s:PurifyCode( line_num )
endfunction
+" ________________________________________________________________
function! GetPascalIndent( line_num )
" Line 0 always goes at column 0
@@ -188,7 +189,7 @@ function! GetPascalIndent( line_num )
endif
-" ____________________________________________________________________
+" ________________________________________________________________
" Object/Borland Pascal/Delphi Extensions
"
" Note that extended-pascal is handled here, unless it is simpler to
@@ -226,8 +227,6 @@ function! GetPascalIndent( line_num )
endif
-" ____________________________________________________________________
-
" If nothing changed, return same indent.
return indnt
endfunction
diff --git a/indent/postscr.vim b/indent/postscr.vim
index e3ba7942..5388ce20 100644
--- a/indent/postscr.vim
+++ b/indent/postscr.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'postscr', 'indent/postscr.vim
endif
" PostScript indent file
-" Language: PostScript
-" Maintainer: Mike Williams <mrw@netcomuk.co.uk>
-" Last Change: 2nd July 2001
+" Language: PostScript
+" Maintainer: Mike Williams <mrw@netcomuk.co.uk> (Invalid email address)
+" Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2nd July 2001
"
" Only load this indent file when no other was loaded.
diff --git a/indent/pov.vim b/indent/pov.vim
index ae2d15e8..4c19f164 100644
--- a/indent/pov.vim
+++ b/indent/pov.vim
@@ -48,7 +48,7 @@ function GetPoVRayIndent()
return -1
endif
- " Search backwards for the frist non-empty, non-comment line.
+ " Search backwards for the first non-empty, non-comment line.
let plnum = prevnonblank(v:lnum - 1)
let plind = indent(plnum)
while plnum > 0 && synIDattr(synID(plnum, plind+1, 0), "name") =~? "comment"
diff --git a/indent/prolog.vim b/indent/prolog.vim
index d23510a7..0aef18e8 100644
--- a/indent/prolog.vim
+++ b/indent/prolog.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'prolog', 'indent/prolog.vim')
endif
" vim: set sw=4 sts=4:
-" Maintainer : Gergely Kontra <kgergely@mcl.hu>
-" Revised on : 2002.02.18. 23:34:05
-" Language : Prolog
+" Language: Prolog
+" Maintainer: Gergely Kontra <kgergely@mcl.hu> (Invalid email address)
+" Doug Kearns <dougkearns@gmail.com>
+" Revised on: 2002.02.18. 23:34:05
" Last change by: Takuya Fujiwara, 2018 Sep 23
" TODO:
diff --git a/indent/readline.vim b/indent/readline.vim
index 100878fa..21cb0875 100644
--- a/indent/readline.vim
+++ b/indent/readline.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'readline', 'indent/readline.v
endif
" Vim indent file
-" Language: readline configuration file
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: readline configuration file
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 24 Sep 2021
if exists("b:did_indent")
finish
@@ -16,6 +17,8 @@ setlocal indentexpr=GetReadlineIndent()
setlocal indentkeys=!^F,o,O,=$else,=$endif
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
if exists("*GetReadlineIndent")
finish
endif
diff --git a/indent/rust.vim b/indent/rust.vim
index 8be1cc03..87f3d6ad 100644
--- a/indent/rust.vim
+++ b/indent/rust.vim
@@ -28,6 +28,8 @@ setlocal indentkeys=0{,0},!^F,o,O,0[,0],0(,0)
setlocal indentexpr=GetRustIndent(v:lnum)
+let b:undo_indent = "setlocal cindent< cinoptions< cinkeys< cinwords< lisp< autoindent< indentkeys< indentexpr<"
+
" Only define the function once.
if exists("*GetRustIndent")
finish
diff --git a/indent/sdl.vim b/indent/sdl.vim
index 19c9d264..7046c524 100644
--- a/indent/sdl.vim
+++ b/indent/sdl.vim
@@ -5,7 +5,7 @@ endif
" Vim indent file
" Language: SDL
" Maintainer: Michael Piefel <entwurf@piefel.de>
-" Last Change: 10 December 2011
+" Last Change: 2021 Oct 03
" Shamelessly stolen from the Vim-Script indent file
@@ -18,6 +18,8 @@ let b:did_indent = 1
setlocal indentexpr=GetSDLIndent()
setlocal indentkeys+==~end,=~state,*<Return>
+let b:undo_indent = "setl inde< indk<"
+
" Only define the function once.
if exists("*GetSDLIndent")
" finish
diff --git a/indent/svelte.vim b/indent/svelte.vim
index 047d1479..147df65b 100644
--- a/indent/svelte.vim
+++ b/indent/svelte.vim
@@ -183,7 +183,7 @@ function! GetSvelteIndent()
call s:Log('... or current line is pug template tag')
let ind = 0
elseif s:has_init_indent
- if s:SynSvelteScriptOrStyle(cursyn) && ind < 1
+ if s:SynSvelteScriptOrStyle(cursyn) && ind == 0
call s:Log('add initial indent')
let ind = &sw
endif
diff --git a/indent/systemverilog.vim b/indent/systemverilog.vim
index ed1d97a5..e39a670f 100644
--- a/indent/systemverilog.vim
+++ b/indent/systemverilog.vim
@@ -68,7 +68,7 @@ function SystemVerilogIndent()
let vverb = 0
endif
- " Indent accoding to last line
+ " Indent according to last line
" End of multiple-line comment
if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/'
let ind = ind - offset_comment1
@@ -224,7 +224,7 @@ function SystemVerilogIndent()
endif
- " Return the indention
+ " Return the indentation
return ind
endfunction
diff --git a/indent/tcl.vim b/indent/tcl.vim
index 47fdb84f..17e6d896 100644
--- a/indent/tcl.vim
+++ b/indent/tcl.vim
@@ -3,10 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'tcl', 'indent/tcl.vim')
endif
" Vim indent file
-" Language: Tcl
-" Latest Update: Chris Heithoff <chrisheithoff@gmail.com>
+" Language: Tcl
+" Maintainer: Chris Heithoff <chrisheithoff@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2018-12-05
+" Last Change: 24 Sep 2021
if exists("b:did_indent")
finish
@@ -17,6 +17,8 @@ setlocal indentexpr=GetTclIndent()
setlocal indentkeys=0{,0},!^F,o,O,0]
setlocal nosmartindent
+let b:undo_indent = "setl inde< indk< si<"
+
if exists("*GetTclIndent")
finish
endif
diff --git a/indent/teraterm.vim b/indent/teraterm.vim
index c1239038..efd35c8c 100644
--- a/indent/teraterm.vim
+++ b/indent/teraterm.vim
@@ -7,7 +7,7 @@ endif
" Based on Tera Term Version 4.100
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
-" Last Change: 2018-08-31
+" Last Change: 2021-10-18
" Filenames: *.ttl
" License: VIM License
@@ -22,6 +22,8 @@ setlocal indentexpr=GetTeraTermIndent(v:lnum)
setlocal indentkeys=!^F,o,O,e
setlocal indentkeys+==elseif,=endif,=loop,=next,=enduntil,=endwhile
+let b:undo_indent = "setl ai< inde< indk< si<"
+
if exists("*GetTeraTermIndent")
finish
endif
diff --git a/indent/treetop.vim b/indent/treetop.vim
index 269be1b5..b3d0c9fe 100644
--- a/indent/treetop.vim
+++ b/indent/treetop.vim
@@ -38,5 +38,5 @@ function GetTreetopIndent()
let ind -= shiftwidth()
end
- retur ind
+ return ind
endfunction
diff --git a/indent/verilog.vim b/indent/verilog.vim
index 77065208..2e5cec01 100644
--- a/indent/verilog.vim
+++ b/indent/verilog.vim
@@ -80,7 +80,7 @@ function GetVerilogIndent()
let vverb = 0
endif
- " Indent accoding to last line
+ " Indent according to last line
" End of multiple-line comment
if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/'
let ind = ind - offset_comment1
@@ -223,7 +223,7 @@ function GetVerilogIndent()
endif
- " Return the indention
+ " Return the indentation
return ind
endfunction
diff --git a/indent/zimbu.vim b/indent/zimbu.vim
index 51416adc..0a8b9041 100644
--- a/indent/zimbu.vim
+++ b/indent/zimbu.vim
@@ -5,7 +5,7 @@ endif
" Vim indent file
" Language: Zimbu
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Jan 25
+" Last Change: 2021 Sep 26
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -20,7 +20,7 @@ setlocal indentkeys=0{,0},!^F,o,O,0=ELSE,0=ELSEIF,0=CASE,0=DEFAULT,0=FINALLY
" We impose recommended defaults: no Tabs, 'shiftwidth' = 2
setlocal sw=2 et
-let b:undo_indent = "setl et< sw< ai< indentkeys< indentexpr="
+let b:undo_indent = "setl ai< cin< et< indentkeys< indentexpr< lisp< sw<"
" Only define the function once.
if exists("*GetZimbuIndent")
diff --git a/packages.yaml b/packages.yaml
index 524f7708..26649933 100644
--- a/packages.yaml
+++ b/packages.yaml
@@ -1517,11 +1517,6 @@ filetypes:
- '.zsh*'
- '*/etc/zprofile'
---
-name: zinit
-remote: zinit-zsh/zplugin-vim-syntax
-# just adds to zsh filetype
-filetypes: []
----
name: slim
remote: slim-template/vim-slim
filetypes:
diff --git a/syntax/8th.vim b/syntax/8th.vim
index abad0092..b962e855 100644
--- a/syntax/8th.vim
+++ b/syntax/8th.vim
@@ -4,7 +4,8 @@ endif
" Vim syntax file
" Language: 8th
-" Version: 19.01d
+" Version: 21.08
+" Last Change: 2021 Sep 20
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" Filetypes: *.8th
@@ -34,246 +35,318 @@ syn match eighthClassWord "\<\S\+:.\+" contains=eighthClasses
syn keyword eighthEndOfColonDef ; i;
syn keyword eighthDefine var var,
-" Built in words
+" Built in words:
com! -nargs=+ Builtin syn keyword eighthBuiltin <args>
-"Builtin ^ < <# <#> = > - -- ,# ; ;; ! ??? / . .# ' () @ * */ \
-Builtin ! G:! #! G:#! ## G:## #> G:#> #if G:#if ' G:' ( G:( (* G:(* (:) G:(:) (code) G:(code) (getc) G:(getc)
-Builtin (gets) G:(gets) (interp) G:(interp) (needs) G:(needs) (putc) G:(putc) (puts) G:(puts) (putslim) G:(putslim)
-Builtin (say) G:(say) (stat) G:(stat) ) G:) +listener G:+listener +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN
-Builtin -Inf G:-Inf -Inf? G:-Inf? -listener G:-listener -ref G:-ref -rot G:-rot . G:. .# G:.# .needs G:.needs
-Builtin .r G:.r .s G:.s .stats G:.stats .ver G:.ver .with G:.with 0; G:0; 2dip G:2dip 2drop G:2drop
-Builtin 2dup G:2dup 2over G:2over 2swap G:2swap 3drop G:3drop 4drop G:4drop 8thdt? G:8thdt? 8thver? G:8thver?
-Builtin : G:: ; G:; ;; G:;; ;;; G:;;; ;then G:;then ;with G:;with <# G:<# <#> G:<#> >clip G:>clip >json G:>json
-Builtin >kind G:>kind >n G:>n >r G:>r >s G:>s ?: G:?: ??? G:??? @ G:@ Inf G:Inf Inf? G:Inf? NaN G:NaN
-Builtin NaN? G:NaN? SED-CHECK G:SED-CHECK SED: G:SED: SED: G:SED: \ G:\ ` G:` `` G:`` actor: G:actor:
-Builtin again G:again ahead G:ahead and G:and appname G:appname apropos G:apropos argc G:argc args G:args
-Builtin array? G:array? assert G:assert base G:base bi G:bi bits G:bits break G:break break? G:break?
-Builtin build? G:build? buildver? G:buildver? bye G:bye c# G:c# c/does G:c/does case G:case caseof G:caseof
-Builtin chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold compat-level G:compat-level
-Builtin compile G:compile compile? G:compile? conflict G:conflict const G:const container? G:container?
-Builtin cr G:cr curlang G:curlang curry G:curry curry: G:curry: decimal G:decimal defer: G:defer: deg>rad G:deg>rad
-Builtin depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack dump G:dump dup G:dup dup? G:dup?
-Builtin else G:else enum: G:enum: eval G:eval eval! G:eval! eval0 G:eval0 execnull G:execnull expect G:expect
-Builtin extra! G:extra! extra@ G:extra@ false G:false fnv G:fnv fourth G:fourth free G:free func: G:func:
-Builtin getc G:getc getcwd G:getcwd getenv G:getenv gets G:gets handler G:handler header G:header help G:help
-Builtin hex G:hex i: G:i: i; G:i; if G:if if; G:if; isa? G:isa? items-used G:items-used jcall G:jcall
-Builtin jclass G:jclass jmethod G:jmethod json-nesting G:json-nesting json-pretty G:json-pretty json-throw G:json-throw
-Builtin json> G:json> k32 G:k32 keep G:keep l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc
+Builtin args #:args b #:b dhm #:dhm exec# #:exec# id2ns #:id2ns id? #:id? idd #:idd key #:key oa #:oa
+Builtin oid #:oid okey #:okey with #:with with! #:with! zip #:zip gen-secret 2fa:gen-secret gen-url 2fa:gen-url
+Builtin validate-code 2fa:validate-code ! G:! #! G:#! ## G:## #> G:#> #if G:#if ' G:' ( G:( (* G:(*
+Builtin (:) G:(:) (code) G:(code) (defer) G:(defer) (dump) G:(dump) (getc) G:(getc) (gets) G:(gets)
+Builtin (interp) G:(interp) (log) G:(log) (needs) G:(needs) (parseln) G:(parseln) (putc) G:(putc) (puts) G:(puts)
+Builtin (putslim) G:(putslim) (stat) G:(stat) (with) G:(with) ) G:) +hook G:+hook +listener G:+listener
+Builtin +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN -Inf G:-Inf -Inf? G:-Inf? -hook G:-hook
+Builtin -listener G:-listener -ref G:-ref -rot G:-rot . G:. .# G:.# .hook G:.hook .needs G:.needs .r G:.r
+Builtin .s G:.s .s-truncate G:.s-truncate .stats G:.stats .ver G:.ver .with G:.with 0; G:0; 2dip G:2dip
+Builtin 2drop G:2drop 2dup G:2dup 2over G:2over 2swap G:2swap 3drop G:3drop 3rev G:3rev 4drop G:4drop
+Builtin 8thdt? G:8thdt? 8thsku G:8thsku 8thver? G:8thver? 8thvernum? G:8thvernum? : G:: ; G:; ;; G:;;
+Builtin ;;; G:;;; ;with G:;with <# G:<# <#> G:<#> >clip G:>clip >json G:>json >kind G:>kind >n G:>n
+Builtin >r G:>r >s G:>s ?: G:?: @ G:@ BITMAP: G:BITMAP: ENUM: G:ENUM: FLAG: G:FLAG: Inf G:Inf Inf? G:Inf?
+Builtin NaN G:NaN NaN? G:NaN? SED-CHECK G:SED-CHECK SED: G:SED: SED: G:SED: \ G:\ _dup G:_dup _swap G:_swap
+Builtin actor: G:actor: again G:again ahead G:ahead and G:and appname G:appname apropos G:apropos argc G:argc
+Builtin args G:args array? G:array? assert G:assert base G:base bi G:bi bits G:bits break G:break break? G:break?
+Builtin breakif G:breakif build? G:build? buildver? G:buildver? bye G:bye c# G:c# c/does G:c/does case: G:case:
+Builtin catch G:catch chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold
+Builtin compile G:compile compile? G:compile? compiling? G:compiling? conflict G:conflict const G:const
+Builtin container? G:container? counting-allocations G:counting-allocations cr G:cr curlang G:curlang
+Builtin curry G:curry curry: G:curry: decimal G:decimal default: G:default: defer: G:defer: deferred: G:deferred:
+Builtin deg>rad G:deg>rad depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack dump G:dump
+Builtin dup G:dup dup>r G:dup>r dup? G:dup? e# G:e# enum: G:enum: error? G:error? eval G:eval eval! G:eval!
+Builtin eval0 G:eval0 execnull G:execnull expect G:expect extra! G:extra! extra@ G:extra@ false G:false
+Builtin fnv G:fnv fourth G:fourth free G:free func: G:func: getc G:getc getcwd G:getcwd getenv G:getenv
+Builtin gets G:gets handler G:handler header G:header help G:help hex G:hex i: G:i: i; G:i; isa? G:isa?
+Builtin items-used G:items-used jcall G:jcall jclass G:jclass jmethod G:jmethod json! G:json! json-8th> G:json-8th>
+Builtin json-nesting G:json-nesting json-pretty G:json-pretty json-throw G:json-throw json> G:json>
+Builtin json@ G:json@ k32 G:k32 keep G:keep l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc
Builtin listener@ G:listener@ literal G:literal locals: G:locals: lock G:lock lock-to G:lock-to locked? G:locked?
-Builtin log G:log log-async G:log-async log-task G:log-task log-time G:log-time log-time-local G:log-time-local
-Builtin long-days G:long-days long-months G:long-months loop G:loop loop- G:loop- map? G:map? mark G:mark
-Builtin mark? G:mark? memfree G:memfree mobile? G:mobile? n# G:n# name>os G:name>os name>sem G:name>sem
-Builtin ndrop G:ndrop needs G:needs new G:new next-arg G:next-arg nip G:nip noop G:noop not G:not ns G:ns
-Builtin ns: G:ns: ns>ls G:ns>ls ns>s G:ns>s ns? G:ns? null G:null null; G:null; null? G:null? number? G:number?
-Builtin off G:off on G:on onexit G:onexit only G:only op! G:op! or G:or os G:os os-names G:os-names
-Builtin os>long-name G:os>long-name os>name G:os>name over G:over p: G:p: pack G:pack parse G:parse
-Builtin parsech G:parsech parseln G:parseln parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear
-Builtin prior G:prior private G:private process-args G:process-args prompt G:prompt public G:public
-Builtin putc G:putc puts G:puts putslim G:putslim quote G:quote r! G:r! r> G:r> r@ G:r@ rad>deg G:rad>deg
-Builtin rand G:rand rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed randbuf G:randbuf randbuf-pcg G:randbuf-pcg
-Builtin rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack ref@ G:ref@ reg! G:reg! reg@ G:reg@
-Builtin regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat reset G:reset roll G:roll
-Builtin rop! G:rop! rot G:rot rpick G:rpick rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage
-Builtin s>ns G:s>ns same? G:same? scriptdir G:scriptdir scriptfile G:scriptfile sem G:sem sem-post G:sem-post
-Builtin sem-rm G:sem-rm sem-wait G:sem-wait sem-wait? G:sem-wait? sem>name G:sem>name semi-throw G:semi-throw
-Builtin set-wipe G:set-wipe setenv G:setenv settings! G:settings! settings![] G:settings![] settings@ G:settings@
-Builtin settings@? G:settings@? settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days
-Builtin short-months G:short-months sleep G:sleep space G:space stack-check G:stack-check stack-size G:stack-size
-Builtin step G:step string? G:string? struct: G:struct: swap G:swap syslang G:syslang sysregion G:sysregion
+Builtin log G:log log-syslog G:log-syslog log-task G:log-task log-time G:log-time log-time-local G:log-time-local
+Builtin long-days G:long-days long-months G:long-months longjmp G:longjmp lookup G:lookup loop G:loop
+Builtin loop- G:loop- map? G:map? mark G:mark mark? G:mark? memfree G:memfree mobile? G:mobile? n# G:n#
+Builtin name>os G:name>os name>sem G:name>sem ndrop G:ndrop needs G:needs new G:new next-arg G:next-arg
+Builtin nip G:nip noop G:noop not G:not nothrow G:nothrow ns G:ns ns: G:ns: ns>ls G:ns>ls ns>s G:ns>s
+Builtin ns? G:ns? null G:null null; G:null; null? G:null? number? G:number? of: G:of: off G:off on G:on
+Builtin onexit G:onexit only G:only op! G:op! or G:or os G:os os-names G:os-names os>long-name G:os>long-name
+Builtin os>name G:os>name over G:over p: G:p: pack G:pack parse G:parse parse-csv G:parse-csv parsech G:parsech
+Builtin parseln G:parseln parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear pool-clear-all G:pool-clear-all
+Builtin prior G:prior private G:private process-args G:process-args process-args-fancy G:process-args-fancy
+Builtin process-args-help G:process-args-help process-args-vars G:process-args-vars prompt G:prompt
+Builtin public G:public putc G:putc puts G:puts putslim G:putslim quote G:quote r! G:r! r> G:r> r@ G:r@
+Builtin rad>deg G:rad>deg rand-jit G:rand-jit rand-jsf G:rand-jsf rand-native G:rand-native rand-normal G:rand-normal
+Builtin rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed rand-range G:rand-range rand-select G:rand-select
+Builtin randbuf-pcg G:randbuf-pcg random G:random rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack
+Builtin ref@ G:ref@ reg! G:reg! reg@ G:reg@ regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat
+Builtin required? G:required? requires G:requires reset G:reset roll G:roll rop! G:rop! rot G:rot rpick G:rpick
+Builtin rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage s>ns G:s>ns same? G:same? scriptdir G:scriptdir
+Builtin scriptfile G:scriptfile sem G:sem sem-post G:sem-post sem-rm G:sem-rm sem-wait G:sem-wait sem-wait? G:sem-wait?
+Builtin sem>name G:sem>name semi-throw G:semi-throw set-wipe G:set-wipe setenv G:setenv setjmp G:setjmp
+Builtin settings! G:settings! settings![] G:settings![] settings@ G:settings@ settings@? G:settings@?
+Builtin settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days short-months G:short-months
+Builtin sleep G:sleep sleep-until G:sleep-until slog G:slog space G:space stack-check G:stack-check
+Builtin stack-size G:stack-size step G:step sthrow G:sthrow string? G:string? struct: G:struct: swap G:swap
Builtin tab-hook G:tab-hook tell-conflict G:tell-conflict tempdir G:tempdir tempfilename G:tempfilename
-Builtin then G:then third G:third throw G:throw thrownull G:thrownull times G:times tlog G:tlog tri G:tri
-Builtin true G:true tuck G:tuck type-check G:type-check typeassert G:typeassert unlock G:unlock unpack G:unpack
-Builtin until G:until until! G:until! var G:var var, G:var, while G:while while! G:while! with: G:with:
+Builtin third G:third throw G:throw thrownull G:thrownull times G:times tlog G:tlog tri G:tri true G:true
+Builtin tuck G:tuck type-check G:type-check typeassert G:typeassert uid G:uid uname G:uname unlock G:unlock
+Builtin unpack G:unpack until G:until until! G:until! while G:while while! G:while! with: G:with: word? G:word?
Builtin words G:words words-like G:words-like words/ G:words/ xchg G:xchg xor G:xor >auth HTTP:>auth
-Builtin sh I:sh tpush I:tpush trace-word I:trace-word call JSONRPC:call auth-string OAuth:auth-string
-Builtin gen-nonce OAuth:gen-nonce params OAuth:params call SOAP:call ! a:! + a:+ - a:- 2each a:2each
-Builtin 2map a:2map 2map+ a:2map+ 2map= a:2map= = a:= >map a:>map @ a:@ @@ a:@@ bsearch a:bsearch clear a:clear
-Builtin close a:close diff a:diff dot a:dot each a:each each-slice a:each-slice exists? a:exists? filter a:filter
-Builtin generate a:generate group a:group indexof a:indexof insert a:insert intersect a:intersect join a:join
-Builtin len a:len map a:map map+ a:map+ map= a:map= mean a:mean mean&variance a:mean&variance new a:new
-Builtin op a:op op! a:op! op= a:op= open a:open pop a:pop push a:push qsort a:qsort randeach a:randeach
-Builtin reduce a:reduce reduce+ a:reduce+ rev a:rev shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+
-Builtin slide a:slide sort a:sort union a:union when a:when when! a:when! x a:x x-each a:x-each xchg a:xchg
-Builtin y a:y zip a:zip 8thdir app:8thdir asset app:asset atrun app:atrun atrun app:atrun atrun app:atrun
-Builtin basedir app:basedir current app:current datadir app:datadir exename app:exename isgui app:isgui
-Builtin main app:main oncrash app:oncrash orientation app:orientation pid app:pid restart app:restart
-Builtin resumed app:resumed shared? app:shared? standalone app:standalone subdir app:subdir suspended app:suspended
-Builtin sysquit app:sysquit (here) asm:(here) >n asm:>n avail asm:avail c, asm:c, here! asm:here! n> asm:n>
-Builtin used asm:used w, asm:w, ! b:! + b:+ / b:/ = b:= >base64 b:>base64 >hex b:>hex >mpack b:>mpack
-Builtin @ b:@ append b:append base64> b:base64> bit! b:bit! bit@ b:bit@ clear b:clear compress b:compress
-Builtin conv b:conv each b:each each-slice b:each-slice expand b:expand fill b:fill getb b:getb hex> b:hex>
-Builtin len b:len mem> b:mem> move b:move mpack-date b:mpack-date mpack-ignore b:mpack-ignore mpack> b:mpack>
-Builtin new b:new op b:op rev b:rev search b:search shmem b:shmem slice b:slice splice b:splice ungetb b:ungetb
-Builtin writable b:writable xor b:xor +block bc:+block .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash
+Builtin (curry) I:(curry) notimpl I:notimpl sh I:sh trace-word I:trace-word call JSONRPC:call auth-string OAuth:auth-string
+Builtin gen-nonce OAuth:gen-nonce params OAuth:params call SOAP:call ! a:! + a:+ - a:- / a:/ 2each a:2each
+Builtin 2map a:2map 2map+ a:2map+ 2map= a:2map= = a:= @ a:@ @? a:@? _@ a:_@ all a:all any a:any bsearch a:bsearch
+Builtin centroid a:centroid clear a:clear close a:close diff a:diff dot a:dot each a:each each! a:each!
+Builtin each-slice a:each-slice exists? a:exists? filter a:filter generate a:generate group a:group
+Builtin indexof a:indexof insert a:insert intersect a:intersect join a:join len a:len map a:map map+ a:map+
+Builtin map= a:map= mean a:mean mean&variance a:mean&variance merge a:merge new a:new op! a:op! open a:open
+Builtin pop a:pop push a:push qsort a:qsort randeach a:randeach reduce a:reduce reduce+ a:reduce+ remove a:remove
+Builtin rev a:rev shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+ slide a:slide smear a:smear
+Builtin sort a:sort union a:union x a:x x-each a:x-each xchg a:xchg y a:y zip a:zip 8thdir app:8thdir
+Builtin asset app:asset atrun app:atrun atrun app:atrun atrun app:atrun basedir app:basedir current app:current
+Builtin datadir app:datadir exename app:exename lowmem app:lowmem main app:main name app:name oncrash app:oncrash
+Builtin opts! app:opts! opts@ app:opts@ orientation app:orientation orientation! app:orientation! pid app:pid
+Builtin post-main app:post-main pre-main app:pre-main raise app:raise request-perm app:request-perm
+Builtin restart app:restart resumed app:resumed signal app:signal standalone app:standalone subdir app:subdir
+Builtin suspended app:suspended sysquit app:sysquit terminated app:terminated trap app:trap (here) asm:(here)
+Builtin >n asm:>n avail asm:avail c, asm:c, here! asm:here! n> asm:n> used asm:used w, asm:w, ! b:!
+Builtin + b:+ / b:/ 1+ b:1+ 1- b:1- = b:= >base16 b:>base16 >base32 b:>base32 >base64 b:>base64 >base85 b:>base85
+Builtin >hex b:>hex >mpack b:>mpack @ b:@ append b:append base16> b:base16> base32> b:base32> base64> b:base64>
+Builtin base85> b:base85> bit! b:bit! bit@ b:bit@ clear b:clear compress b:compress conv b:conv each b:each
+Builtin each! b:each! each-slice b:each-slice expand b:expand fill b:fill getb b:getb hex> b:hex> len b:len
+Builtin mem> b:mem> move b:move mpack-compat b:mpack-compat mpack-date b:mpack-date mpack-ignore b:mpack-ignore
+Builtin mpack> b:mpack> n! b:n! n+ b:n+ n@ b:n@ new b:new op b:op pad b:pad rev b:rev search b:search
+Builtin shmem b:shmem slice b:slice splice b:splice ungetb b:ungetb unpad b:unpad writable b:writable
+Builtin xor b:xor +block bc:+block .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash
Builtin block@ bc:block@ first-block bc:first-block hash bc:hash last-block bc:last-block load bc:load
Builtin new bc:new save bc:save set-sql bc:set-sql validate bc:validate validate-block bc:validate-block
Builtin add bloom:add filter bloom:filter in? bloom:in? accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect
-Builtin disconnect bt:disconnect err? bt:err? leconnect bt:leconnect lescan bt:lescan listen bt:listen
+Builtin disconnect bt:disconnect init bt:init leconnect bt:leconnect lescan bt:lescan listen bt:listen
Builtin on? bt:on? read bt:read scan bt:scan service? bt:service? services? bt:services? write bt:write
Builtin * c:* * c:* + c:+ + c:+ = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg
-Builtin conj c:conj conj c:conj im c:im n> c:n> new c:new new c:new re c:re >aes128gcm cr:>aes128gcm
-Builtin >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe >decrypt cr:>decrypt >edbox cr:>edbox >encrypt cr:>encrypt
-Builtin >nbuf cr:>nbuf >rsabox cr:>rsabox >uuid cr:>uuid CBC cr:CBC CFB cr:CFB CTR cr:CTR ECB cr:ECB
-Builtin GCM cr:GCM OFB cr:OFB aad? cr:aad? aes128box-sig cr:aes128box-sig aes128gcm> cr:aes128gcm>
-Builtin aes256box-sig cr:aes256box-sig aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm blakehash cr:blakehash
-Builtin chacha20box-sig cr:chacha20box-sig chachapoly cr:chachapoly cipher! cr:cipher! cipher@ cr:cipher@
-Builtin cp> cr:cp> cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> dh-genkey cr:dh-genkey
-Builtin dh-secret cr:dh-secret dh-sign cr:dh-sign dh-verify cr:dh-verify ebox-sig cr:ebox-sig ecc-genkey cr:ecc-genkey
-Builtin ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign ecc-verify cr:ecc-verify edbox-sig cr:edbox-sig
-Builtin edbox> cr:edbox> encrypt cr:encrypt encrypt+ cr:encrypt+ encrypt> cr:encrypt> ensurekey cr:ensurekey
-Builtin err? cr:err? gcm-tag-size cr:gcm-tag-size genkey cr:genkey hash cr:hash hash! cr:hash! hash+ cr:hash+
-Builtin hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hmac cr:hmac hotp cr:hotp iv? cr:iv? mode cr:mode
-Builtin mode@ cr:mode@ randkey cr:randkey restore cr:restore root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt
-Builtin rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig
-Builtin rsabox> cr:rsabox> rsagenkey cr:rsagenkey save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac
-Builtin shard cr:shard tag? cr:tag? totp cr:totp totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step
-Builtin unshard cr:unshard uuid cr:uuid uuid> cr:uuid> validate-pgp-sig cr:validate-pgp-sig (.hebrew) d:(.hebrew)
-Builtin (.islamic) d:(.islamic) + d:+ +day d:+day +hour d:+hour +min d:+min +msec d:+msec - d:- .hebrew d:.hebrew
-Builtin .islamic d:.islamic .time d:.time / d:/ = d:= >fixed d:>fixed >hebepoch d:>hebepoch >msec d:>msec
-Builtin >unix d:>unix >ymd d:>ymd Adar d:Adar Adar2 d:Adar2 Adar2 d:Adar2 Av d:Av Elul d:Elul Fri d:Fri
-Builtin Heshvan d:Heshvan Iyar d:Iyar Kislev d:Kislev Mon d:Mon Nissan d:Nissan Sat d:Sat Shevat d:Shevat
-Builtin Sivan d:Sivan Sun d:Sun Tammuz d:Tammuz Tevet d:Tevet Thu d:Thu Tishrei d:Tishrei Tue d:Tue
-Builtin Wed d:Wed adjust-dst d:adjust-dst between d:between d. d:d. dawn d:dawn days-in-hebrew-year d:days-in-hebrew-year
-Builtin displaying-hebrew d:displaying-hebrew do-dawn d:do-dawn do-dusk d:do-dusk do-rise d:do-rise
-Builtin doy d:doy dst? d:dst? dstquery d:dstquery dstzones? d:dstzones? dusk d:dusk elapsed-timer d:elapsed-timer
-Builtin elapsed-timer-seconds d:elapsed-timer-seconds first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow
-Builtin fixed>hebrew d:fixed>hebrew fixed>islamic d:fixed>islamic format d:format hanukkah d:hanukkah
-Builtin hebrew-epoch d:hebrew-epoch hebrew>fixed d:hebrew>fixed hebrewtoday d:hebrewtoday hmonth-name d:hmonth-name
-Builtin islamic.epoch d:islamic.epoch islamic>fixed d:islamic>fixed islamictoday d:islamictoday join d:join
-Builtin last-day-of-hebrew-month d:last-day-of-hebrew-month last-dow d:last-dow last-month d:last-month
-Builtin last-week d:last-week last-year d:last-year latitude d:latitude longitude d:longitude longitude d:longitude
-Builtin msec d:msec msec> d:msec> new d:new next-dow d:next-dow next-month d:next-month next-week d:next-week
-Builtin next-year d:next-year number>hebrew d:number>hebrew omer d:omer parse d:parse pesach d:pesach
+Builtin conj c:conj conj c:conj im c:im n> c:n> new c:new new c:new re c:re >redir con:>redir accept con:accept
+Builtin accept-pwd con:accept-pwd ansi? con:ansi? black con:black blue con:blue clreol con:clreol cls con:cls
+Builtin cyan con:cyan down con:down free con:free getxy con:getxy gotoxy con:gotoxy green con:green
+Builtin key con:key key? con:key? left con:left load-history con:load-history magenta con:magenta onBlack con:onBlack
+Builtin onBlue con:onBlue onCyan con:onCyan onGreen con:onGreen onMagenta con:onMagenta onRed con:onRed
+Builtin onWhite con:onWhite onYellow con:onYellow print con:print red con:red redir> con:redir> redir? con:redir?
+Builtin right con:right save-history con:save-history size? con:size? up con:up white con:white yellow con:yellow
+Builtin >aes128gcm cr:>aes128gcm >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe >decrypt cr:>decrypt
+Builtin >edbox cr:>edbox >encrypt cr:>encrypt >nbuf cr:>nbuf >rsabox cr:>rsabox >uuid cr:>uuid CBC cr:CBC
+Builtin CFB cr:CFB CTR cr:CTR ECB cr:ECB GCM cr:GCM OFB cr:OFB aad? cr:aad? aes128box-sig cr:aes128box-sig
+Builtin aes128gcm> cr:aes128gcm> aes256box-sig cr:aes256box-sig aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm
+Builtin blakehash cr:blakehash chacha20box-sig cr:chacha20box-sig chachapoly cr:chachapoly cipher! cr:cipher!
+Builtin cipher@ cr:cipher@ cp> cr:cp> cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt>
+Builtin dh-genkey cr:dh-genkey dh-secret cr:dh-secret dh-sign cr:dh-sign dh-verify cr:dh-verify ebox-sig cr:ebox-sig
+Builtin ecc-genkey cr:ecc-genkey ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign ecc-verify cr:ecc-verify
+Builtin edbox-sig cr:edbox-sig edbox> cr:edbox> encrypt cr:encrypt encrypt+ cr:encrypt+ encrypt> cr:encrypt>
+Builtin ensurekey cr:ensurekey gcm-tag-size cr:gcm-tag-size genkey cr:genkey hash cr:hash hash! cr:hash!
+Builtin hash+ cr:hash+ hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hmac cr:hmac hotp cr:hotp iv? cr:iv?
+Builtin mode cr:mode mode@ cr:mode@ rand cr:rand randbuf cr:randbuf randkey cr:randkey restore cr:restore
+Builtin root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign
+Builtin rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig rsabox> cr:rsabox> rsagenkey cr:rsagenkey
+Builtin save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac shard cr:shard tag? cr:tag? totp cr:totp
+Builtin totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step unshard cr:unshard uuid cr:uuid uuid> cr:uuid>
+Builtin validate-pgp-sig cr:validate-pgp-sig (.hebrew) d:(.hebrew) (.islamic) d:(.islamic) + d:+ +day d:+day
+Builtin +hour d:+hour +min d:+min +msec d:+msec - d:- .hebrew d:.hebrew .islamic d:.islamic .time d:.time
+Builtin / d:/ = d:= >fixed d:>fixed >hebepoch d:>hebepoch >jdn d:>jdn >msec d:>msec >unix d:>unix >ymd d:>ymd
+Builtin ?= d:?= Adar d:Adar Adar2 d:Adar2 Adar2 d:Adar2 Av d:Av Elul d:Elul Fri d:Fri Heshvan d:Heshvan
+Builtin Iyar d:Iyar Kislev d:Kislev Mon d:Mon Nissan d:Nissan Sat d:Sat Shevat d:Shevat Sivan d:Sivan
+Builtin Sun d:Sun Tammuz d:Tammuz Tevet d:Tevet Thu d:Thu Tishrei d:Tishrei Tue d:Tue Wed d:Wed adjust-dst d:adjust-dst
+Builtin approx! d:approx! approx? d:approx? approximates! d:approximates! between d:between d. d:d.
+Builtin dawn d:dawn days-in-hebrew-year d:days-in-hebrew-year displaying-hebrew d:displaying-hebrew
+Builtin do-dawn d:do-dawn do-dusk d:do-dusk do-rise d:do-rise doy d:doy dst? d:dst? dstquery d:dstquery
+Builtin dstzones? d:dstzones? dusk d:dusk elapsed-timer d:elapsed-timer elapsed-timer-seconds d:elapsed-timer-seconds
+Builtin first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow fixed>hebrew d:fixed>hebrew fixed>islamic d:fixed>islamic
+Builtin format d:format hanukkah d:hanukkah hebrew-epoch d:hebrew-epoch hebrew>fixed d:hebrew>fixed
+Builtin hebrewtoday d:hebrewtoday hmonth-name d:hmonth-name islamic.epoch d:islamic.epoch islamic>fixed d:islamic>fixed
+Builtin islamictoday d:islamictoday jdn> d:jdn> join d:join last-day-of-hebrew-month d:last-day-of-hebrew-month
+Builtin last-dow d:last-dow last-month d:last-month last-week d:last-week last-year d:last-year latitude d:latitude
+Builtin longitude d:longitude longitude d:longitude msec d:msec msec> d:msec> new d:new next-dow d:next-dow
+Builtin next-month d:next-month next-week d:next-week next-year d:next-year number>hebrew d:number>hebrew
+Builtin omer d:omer parse d:parse parse-approx d:parse-approx parse-range d:parse-range pesach d:pesach
Builtin prev-dow d:prev-dow purim d:purim rosh-chodesh? d:rosh-chodesh? rosh-hashanah d:rosh-hashanah
Builtin shavuot d:shavuot start-timer d:start-timer sunrise d:sunrise taanit-esther d:taanit-esther
-Builtin ticks d:ticks ticks/sec d:ticks/sec timer d:timer tisha-beav d:tisha-beav tzadjust d:tzadjust
-Builtin unix> d:unix> updatetz d:updatetz year@ d:year@ ymd d:ymd ymd> d:ymd> yom-haatsmaut d:yom-haatsmaut
-Builtin yom-kippur d:yom-kippur add-func db:add-func bind db:bind close db:close col db:col col[] db:col[]
-Builtin col{} db:col{} err? db:err? errmsg db:errmsg exec db:exec exec-cb db:exec-cb key db:key mysql? db:mysql?
-Builtin odbc? db:odbc? open db:open open? db:open? prepare db:prepare query db:query query-all db:query-all
-Builtin rekey db:rekey sqlerrmsg db:sqlerrmsg bp dbg:bp except-task@ dbg:except-task@ go dbg:go line-info dbg:line-info
-Builtin prompt dbg:prompt stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter trace-leave dbg:trace-leave
-Builtin abspath f:abspath append f:append associate f:associate atime f:atime canwrite? f:canwrite?
-Builtin chmod f:chmod close f:close copy f:copy copydir f:copydir create f:create ctime f:ctime dir? f:dir?
-Builtin dname f:dname eachbuf f:eachbuf eachline f:eachline enssep f:enssep eof? f:eof? err? f:err?
-Builtin exists? f:exists? flush f:flush fname f:fname getb f:getb getc f:getc getline f:getline getmod f:getmod
-Builtin glob f:glob glob-nocase f:glob-nocase include f:include launch f:launch link f:link link> f:link>
-Builtin link? f:link? mkdir f:mkdir mmap f:mmap mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime
-Builtin mv f:mv open f:open open-ro f:open-ro popen f:popen print f:print read f:read relpath f:relpath
-Builtin rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep show f:show size f:size slurp f:slurp
-Builtin stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell times f:times trash f:trash ungetb f:ungetb
-Builtin ungetc f:ungetc unzip f:unzip unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen
-Builtin zip+ f:zip+ zip@ f:zip@ zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave
-Builtin bold font:bold face? font:face? glyph-path font:glyph-path glyph-pos font:glyph-pos info font:info
-Builtin italic font:italic ls font:ls measure font:measure new font:new pixels font:pixels pixels? font:pixels?
-Builtin points font:points points? font:points? styles font:styles styles? font:styles? underline font:underline
-Builtin +child g:+child +kind g:+kind +path g:+path -child g:-child /path g:/path >img g:>img >progress g:>progress
-Builtin add-items g:add-items adjustwidth g:adjustwidth allow-orient g:allow-orient arc g:arc arc2 g:arc2
-Builtin autohide g:autohide back g:back bezier g:bezier bg g:bg bg? g:bg? bounds g:bounds bounds? g:bounds?
-Builtin box-label g:box-label btn-font g:btn-font bubble g:bubble button-size g:button-size buttons-visible g:buttons-visible
-Builtin c-text g:c-text callout g:callout center g:center child g:child clear g:clear clearpath g:clearpath
-Builtin clr>n g:clr>n coleven g:coleven colordlg g:colordlg colwidth g:colwidth connectededges g:connectededges
-Builtin contrasting g:contrasting cp g:cp curmouse? g:curmouse? default-font g:default-font deselect-row g:deselect-row
-Builtin dismiss g:dismiss do g:do draw-fitted-text g:draw-fitted-text draw-text g:draw-text draw-text-at g:draw-text-at
-Builtin each g:each edit-on-double-click g:edit-on-double-click editable g:editable editdlg g:editdlg
-Builtin empty-text g:empty-text enable g:enable enabled? g:enabled? fade g:fade fb-files g:fb-files
-Builtin fcolor g:fcolor fg g:fg fg? g:fg? file-filter g:file-filter file-name g:file-name filedlg g:filedlg
-Builtin fill g:fill fillall g:fillall fit-text g:fit-text flex! g:flex! focus g:focus fontdlg g:fontdlg
-Builtin forward g:forward fullscreen g:fullscreen get-lasso-items g:get-lasso-items get-tab g:get-tab
-Builtin getclr g:getclr getfont g:getfont getimage g:getimage getpath g:getpath getroot g:getroot gradient g:gradient
-Builtin gui? g:gui? handle g:handle headerheight g:headerheight hide g:hide image g:image image-at g:image-at
-Builtin invalidate g:invalidate ix? g:ix? justify g:justify keyinfo g:keyinfo l-text g:l-text laf g:laf
-Builtin laf! g:laf! laf? g:laf? len g:len line-width g:line-width lineto g:lineto list+ g:list+ list- g:list-
-Builtin loadcontent g:loadcontent localize g:localize m! g:m! m@ g:m@ menu-font g:menu-font menu-update g:menu-update
-Builtin menuenabled g:menuenabled mouse? g:mouse? mousepos? g:mousepos? moveto g:moveto msgdlg g:msgdlg
-Builtin multi g:multi name g:name named-skin g:named-skin new g:new new-laf g:new-laf next g:next obj g:obj
-Builtin on g:on on? g:on? ontop g:ontop oshandle g:oshandle outlinethickness g:outlinethickness panel-size g:panel-size
-Builtin panel-size? g:panel-size? parent g:parent path g:path path>s g:path>s pie g:pie pix! g:pix!
-Builtin pop g:pop popmenu g:popmenu pos? g:pos? prev g:prev propval! g:propval! propval@ g:propval@
-Builtin push g:push qbezier g:qbezier quit g:quit r-text g:r-text readonly g:readonly rect g:rect refresh g:refresh
-Builtin restore g:restore root g:root root-item-visible g:root-item-visible rotate g:rotate rowheight g:rowheight
-Builtin rrect g:rrect s>path g:s>path save g:save say g:say scale g:scale scolor g:scolor scrollthickness g:scrollthickness
-Builtin sectionenable g:sectionenable select! g:select! select@ g:select@ selected-rows g:selected-rows
-Builtin set-lasso g:set-lasso set-long-press g:set-long-press set-popup-font g:set-popup-font set-range g:set-range
-Builtin set-swipe g:set-swipe set-value g:set-value setcursor g:setcursor setfont g:setfont setheader g:setheader
-Builtin sethtml g:sethtml setimage g:setimage setname g:setname setroot g:setroot settab g:settab show g:show
-Builtin show-line-numbers g:show-line-numbers show-pct g:show-pct showmenu g:showmenu showtooltip g:showtooltip
-Builtin size g:size size? g:size? skin g:skin skin-class g:skin-class stackix g:stackix state g:state
-Builtin state? g:state? stepsize g:stepsize stroke g:stroke stroke-fill g:stroke-fill style g:style
-Builtin tabname g:tabname text g:text text-box-style g:text-box-style text? g:text? textcolor g:textcolor
-Builtin textsize g:textsize timer! g:timer! timer@ g:timer@ toback g:toback tofront g:tofront toggle-row g:toggle-row
-Builtin tooltip g:tooltip top g:top transition g:transition translate g:translate tree-open g:tree-open
-Builtin triangle g:triangle update g:update updateitems g:updateitems url g:url user g:user user! g:user!
-Builtin vertical g:vertical view g:view visible? g:visible? vpos! g:vpos! vpos@ g:vpos@ waitcursor g:waitcursor
-Builtin winding g:winding xy g:xy xy? g:xy? +edge gr:+edge +edge+w gr:+edge+w +node gr:+node connect gr:connect
-Builtin edges gr:edges m! gr:m! m@ gr:m@ neighbors gr:neighbors new gr:new node-edges gr:node-edges
-Builtin nodes gr:nodes traverse gr:traverse + h:+ clear h:clear len h:len new h:new peek h:peek pop h:pop
-Builtin push h:push unique h:unique arm? hw:arm? camera hw:camera camera-fmt hw:camera-fmt camera-img hw:camera-img
-Builtin camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? displaysize? hw:displaysize?
-Builtin err? hw:err? gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c!
-Builtin i2c!reg hw:i2c!reg i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? iswatch? hw:iswatch?
-Builtin mac? hw:mac? mem? hw:mem? poll hw:poll sensor hw:sensor start hw:start stop hw:stop fetch-full imap:fetch-full
-Builtin fetch-uid-mail imap:fetch-uid-mail login imap:login new imap:new select-inbox imap:select-inbox
-Builtin >file img:>file copy img:copy crop img:crop data img:data desat img:desat fill img:fill filter img:filter
-Builtin flip img:flip from-svg img:from-svg new img:new pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen
-Builtin qr-parse img:qr-parse rotate img:rotate scale img:scale scroll img:scroll size img:size countries iso:countries
-Builtin find loc:find sort loc:sort ! m:! !? m:!? + m:+ +? m:+? - m:- @ m:@ @? m:@? @@ m:@@ clear m:clear
-Builtin data m:data each m:each exists? m:exists? iter m:iter iter-all m:iter-all keys m:keys len m:len
-Builtin map m:map new m:new op! m:op! open m:open vals m:vals xchg m:xchg ! mat:! * mat:* + mat:+ = mat:=
-Builtin @ mat:@ col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n ident mat:ident
-Builtin m. mat:m. minor mat:minor n* mat:n* new mat:new row mat:row same-size? mat:same-size? trans mat:trans
-Builtin ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:>
-Builtin BIGE n:BIGE BIGPI n:BIGPI E n:E PI n:PI ^ n:^ abs n:abs acos n:acos acos n:acos asin n:asin
-Builtin asin n:asin atan n:atan atan n:atan atan2 n:atan2 band n:band between n:between bfloat n:bfloat
-Builtin bic n:bic bint n:bint binv n:binv bnot n:bnot bor n:bor bxor n:bxor ceil n:ceil clamp n:clamp
-Builtin cmp n:cmp comb n:comb cos n:cos cosd n:cosd exp n:exp expmod n:expmod float n:float floor n:floor
+Builtin ticks d:ticks ticks/sec d:ticks/sec timer d:timer timer-ctrl d:timer-ctrl tisha-beav d:tisha-beav
+Builtin tzadjust d:tzadjust unix> d:unix> unknown d:unknown unknown? d:unknown? updatetz d:updatetz
+Builtin year@ d:year@ ymd d:ymd ymd> d:ymd> yom-haatsmaut d:yom-haatsmaut yom-kippur d:yom-kippur add-func db:add-func
+Builtin aes! db:aes! begin db:begin bind db:bind bind-exec db:bind-exec bind-exec[] db:bind-exec[]
+Builtin close db:close col db:col col[] db:col[] col{} db:col{} commit db:commit each db:each exec db:exec
+Builtin exec-cb db:exec-cb exec-name db:exec-name get db:get get-sub db:get-sub key db:key kind? db:kind?
+Builtin last-rowid db:last-rowid mysql? db:mysql? odbc? db:odbc? open db:open open? db:open? prep-name db:prep-name
+Builtin prepare db:prepare query db:query query-all db:query-all rekey db:rekey rollback db:rollback
+Builtin set db:set set-sub db:set-sub sql@ db:sql@ bp dbg:bp except-task@ dbg:except-task@ go dbg:go
+Builtin line-info dbg:line-info prompt dbg:prompt stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter
+Builtin trace-leave dbg:trace-leave / f:/ abspath f:abspath absrel f:absrel append f:append associate f:associate
+Builtin atime f:atime canwrite? f:canwrite? chmod f:chmod close f:close copy f:copy copydir f:copydir
+Builtin create f:create ctime f:ctime dir? f:dir? dname f:dname eachbuf f:eachbuf eachline f:eachline
+Builtin enssep f:enssep eof? f:eof? exists? f:exists? flush f:flush fname f:fname getb f:getb getc f:getc
+Builtin getline f:getline getmod f:getmod glob f:glob glob-nocase f:glob-nocase homedir f:homedir homedir! f:homedir!
+Builtin include f:include ioctl f:ioctl join f:join launch f:launch link f:link link> f:link> link? f:link?
+Builtin mkdir f:mkdir mmap f:mmap mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime mv f:mv
+Builtin name@ f:name@ open f:open open-ro f:open-ro popen f:popen print f:print read f:read read? f:read?
+Builtin relpath f:relpath rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep size f:size slurp f:slurp
+Builtin sparse? f:sparse? spit f:spit stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell times f:times
+Builtin tmpspit f:tmpspit trash f:trash truncate f:truncate ungetb f:ungetb ungetc f:ungetc unzip f:unzip
+Builtin unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen zip+ f:zip+ zip@ f:zip@
+Builtin zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave atlas! font:atlas!
+Builtin atlas@ font:atlas@ default-size font:default-size info font:info ls font:ls measure font:measure
+Builtin new font:new oversample font:oversample pixels font:pixels pixels? font:pixels? +edge gr:+edge
+Builtin +edge+w gr:+edge+w +node gr:+node connect gr:connect edges gr:edges edges! gr:edges! m! gr:m!
+Builtin m@ gr:m@ neighbors gr:neighbors new gr:new node-edges gr:node-edges nodes gr:nodes traverse gr:traverse
+Builtin weight! gr:weight! + h:+ clear h:clear cmp! h:cmp! len h:len max! h:max! new h:new peek h:peek
+Builtin pop h:pop push h:push unique h:unique arm? hw:arm? camera hw:camera camera-img hw:camera-img
+Builtin camera-limits hw:camera-limits camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays?
+Builtin displaysize? hw:displaysize? finger-match hw:finger-match finger-support hw:finger-support
+Builtin gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c! i2c!reg hw:i2c!reg
+Builtin i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? iswatch? hw:iswatch? mac? hw:mac? mem? hw:mem?
+Builtin model? hw:model? poll hw:poll sensor hw:sensor start hw:start stop hw:stop uid? hw:uid? fetch-full imap:fetch-full
+Builtin fetch-uid-mail imap:fetch-uid-mail login imap:login logout imap:logout new imap:new search imap:search
+Builtin select-inbox imap:select-inbox >file img:>file >fmt img:>fmt copy img:copy crop img:crop data img:data
+Builtin desat img:desat fill img:fill fillrect img:fillrect filter img:filter flip img:flip from-svg img:from-svg
+Builtin new img:new pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen qr-parse img:qr-parse rotate img:rotate
+Builtin scale img:scale scroll img:scroll size img:size countries iso:countries find loc:find sort loc:sort
+Builtin ! m:! !? m:!? + m:+ +? m:+? - m:- >arr m:>arr @ m:@ @? m:@? _! m:_! _@ m:_@ arr> m:arr> bitmap m:bitmap
+Builtin clear m:clear data m:data each m:each exists? m:exists? filter m:filter iter m:iter iter-all m:iter-all
+Builtin keys m:keys len m:len map m:map merge m:merge new m:new op! m:op! open m:open slice m:slice
+Builtin vals m:vals xchg m:xchg zip m:zip ! mat:! * mat:* + mat:+ = mat:= @ mat:@ affine mat:affine
+Builtin col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n ident mat:ident inv mat:inv
+Builtin m. mat:m. minor mat:minor n* mat:n* new mat:new new-minor mat:new-minor rotate mat:rotate row mat:row
+Builtin same-size? mat:same-size? scale mat:scale shear mat:shear trans mat:trans translate mat:translate
+Builtin xform mat:xform 2console md:2console 2html md:2html 2nk md:2nk bounds meta:bounds color meta:color
+Builtin console meta:console end meta:end ffi meta:ffi ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/
+Builtin /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:> BIGE n:BIGE BIGPI n:BIGPI E n:E PI n:PI ^ n:^
+Builtin _mod n:_mod abs n:abs acos n:acos acos n:acos asin n:asin asin n:asin atan n:atan atan n:atan
+Builtin atan2 n:atan2 band n:band between n:between bfloat n:bfloat bic n:bic bint n:bint binv n:binv
+Builtin bnot n:bnot bor n:bor bxor n:bxor cast n:cast ceil n:ceil clamp n:clamp cmp n:cmp comb n:comb
+Builtin cos n:cos cosd n:cosd emod n:emod exp n:exp expm1 n:expm1 expmod n:expmod float n:float floor n:floor
Builtin fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? lcm n:lcm ln n:ln
-Builtin max n:max median n:median min n:min mod n:mod neg n:neg odd? n:odd? perm n:perm prime? n:prime?
-Builtin quantize n:quantize quantize! n:quantize! r+ n:r+ range n:range rot32l n:rot32l rot32r n:rot32r
-Builtin round n:round round2 n:round2 running-variance n:running-variance running-variance-finalize n:running-variance-finalize
-Builtin sgn n:sgn shl n:shl shr n:shr sin n:sin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand
-Builtin trunc n:trunc ~= n:~= ! net:! >url net:>url @ net:@ DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6
-Builtin PROTO_TCP net:PROTO_TCP PROTO_UDP net:PROTO_UDP STREAM net:STREAM accept net:accept addrinfo>o net:addrinfo>o
-Builtin again? net:again? alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf bind net:bind browse net:browse
-Builtin close net:close connect net:connect err>s net:err>s err? net:err? get net:get getaddrinfo net:getaddrinfo
-Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? listen net:listen net-socket net:net-socket
-Builtin opts net:opts port-is-ssl? net:port-is-ssl? post net:post proxy! net:proxy! read net:read recvfrom net:recvfrom
-Builtin s>url net:s>url sendto net:sendto server net:server setsockopt net:setsockopt socket net:socket
-Builtin tlshello net:tlshello url> net:url> user-agent net:user-agent wait net:wait write net:write
-Builtin MAX ns:MAX cast ptr:cast len ptr:len pack ptr:pack unpack ptr:unpack unpack_orig ptr:unpack_orig
+Builtin ln1p n:ln1p max n:max median n:median min n:min mod n:mod neg n:neg odd? n:odd? perm n:perm
+Builtin prime? n:prime? quantize n:quantize quantize! n:quantize! r+ n:r+ range n:range rot32l n:rot32l
+Builtin rot32r n:rot32r round n:round round2 n:round2 rounding n:rounding running-variance n:running-variance
+Builtin running-variance-finalize n:running-variance-finalize sgn n:sgn shl n:shl shr n:shr sin n:sin
+Builtin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand trunc n:trunc ~= n:~= ! net:! !? net:!?
+Builtin - net:- >url net:>url @ net:@ @? net:@? DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6 PROTO_TCP net:PROTO_TCP
+Builtin PROTO_UDP net:PROTO_UDP STREAM net:STREAM accept net:accept addrinfo>o net:addrinfo>o again? net:again?
+Builtin alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf bind net:bind close net:close closed? net:closed?
+Builtin connect net:connect debug? net:debug? delete net:delete get net:get getaddrinfo net:getaddrinfo
+Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? listen net:listen map>url net:map>url
+Builtin net-socket net:net-socket opts net:opts port-is-ssl? net:port-is-ssl? post net:post proxy! net:proxy!
+Builtin put net:put read net:read read-all net:read-all recvfrom net:recvfrom s>url net:s>url sendto net:sendto
+Builtin server net:server setsockopt net:setsockopt socket net:socket tlshello net:tlshello url> net:url>
+Builtin user-agent net:user-agent wait net:wait write net:write (begin) nk:(begin) (chart-begin) nk:(chart-begin)
+Builtin (chart-begin-colored) nk:(chart-begin-colored) (chart-end) nk:(chart-end) (end) nk:(end) (group-begin) nk:(group-begin)
+Builtin (group-end) nk:(group-end) (property) nk:(property) >img nk:>img addfont nk:addfont anti-alias nk:anti-alias
+Builtin any-clicked? nk:any-clicked? bounds nk:bounds bounds! nk:bounds! button nk:button button-color nk:button-color
+Builtin button-label nk:button-label button-set-behavior nk:button-set-behavior button-symbol nk:button-symbol
+Builtin button-symbol-label nk:button-symbol-label chart-add-slot nk:chart-add-slot chart-add-slot-colored nk:chart-add-slot-colored
+Builtin chart-push nk:chart-push chart-push-slot nk:chart-push-slot checkbox nk:checkbox clicked? nk:clicked?
+Builtin close-this! nk:close-this! close-this? nk:close-this? close? nk:close? color-picker nk:color-picker
+Builtin combo nk:combo combo-begin-color nk:combo-begin-color combo-begin-label nk:combo-begin-label
+Builtin combo-cb nk:combo-cb combo-end nk:combo-end contextual-begin nk:contextual-begin contextual-close nk:contextual-close
+Builtin contextual-end nk:contextual-end contextual-item-image-text nk:contextual-item-image-text contextual-item-symbol-text nk:contextual-item-symbol-text
+Builtin contextual-item-text nk:contextual-item-text cp! nk:cp! cp@ nk:cp@ display-info nk:display-info
+Builtin display@ nk:display@ do nk:do down? nk:down? draw-image nk:draw-image draw-image-at nk:draw-image-at
+Builtin draw-image-centered nk:draw-image-centered draw-sub-image nk:draw-sub-image draw-text nk:draw-text
+Builtin draw-text-high nk:draw-text-high draw-text-wrap nk:draw-text-wrap edit-focus nk:edit-focus
+Builtin edit-string nk:edit-string event nk:event event-boost nk:event-boost event-msec nk:event-msec
+Builtin event-wait nk:event-wait fill-arc nk:fill-arc fill-circle nk:fill-circle fill-poly nk:fill-poly
+Builtin fill-rect nk:fill-rect fill-rect-color nk:fill-rect-color fill-triangle nk:fill-triangle flags! nk:flags!
+Builtin flags@ nk:flags@ fullscreen nk:fullscreen get nk:get get-row-height nk:get-row-height getfont nk:getfont
+Builtin getmap nk:getmap gl? nk:gl? grid nk:grid grid-push nk:grid-push group-scroll-ofs nk:group-scroll-ofs
+Builtin group-scroll-ofs! nk:group-scroll-ofs! hovered? nk:hovered? image nk:image init nk:init input-button nk:input-button
+Builtin input-key nk:input-key input-motion nk:input-motion input-scroll nk:input-scroll input-string nk:input-string
+Builtin key-down? nk:key-down? key-pressed? nk:key-pressed? key-released? nk:key-released? label nk:label
+Builtin label-colored nk:label-colored label-wrap nk:label-wrap label-wrap-colored nk:label-wrap-colored
+Builtin layout-bounds nk:layout-bounds layout-grid-begin nk:layout-grid-begin layout-grid-end nk:layout-grid-end
+Builtin layout-push-dynamic nk:layout-push-dynamic layout-push-static nk:layout-push-static layout-push-variable nk:layout-push-variable
+Builtin layout-ratio-from-pixel nk:layout-ratio-from-pixel layout-reset-row-height nk:layout-reset-row-height
+Builtin layout-row nk:layout-row layout-row-begin nk:layout-row-begin layout-row-dynamic nk:layout-row-dynamic
+Builtin layout-row-end nk:layout-row-end layout-row-height nk:layout-row-height layout-row-push nk:layout-row-push
+Builtin layout-row-static nk:layout-row-static layout-row-template-begin nk:layout-row-template-begin
+Builtin layout-row-template-end nk:layout-row-template-end layout-space-begin nk:layout-space-begin
+Builtin layout-space-end nk:layout-space-end layout-space-push nk:layout-space-push layout-widget-bounds nk:layout-widget-bounds
+Builtin list-begin nk:list-begin list-end nk:list-end list-new nk:list-new list-range nk:list-range
+Builtin m! nk:m! m@ nk:m@ make-style nk:make-style max-vertex-element nk:max-vertex-element measure nk:measure
+Builtin measure-font nk:measure-font menu-begin nk:menu-begin menu-close nk:menu-close menu-end nk:menu-end
+Builtin menu-item-image nk:menu-item-image menu-item-label nk:menu-item-label menu-item-symbol nk:menu-item-symbol
+Builtin menubar-begin nk:menubar-begin menubar-end nk:menubar-end mouse-pos nk:mouse-pos msgdlg nk:msgdlg
+Builtin option nk:option plot nk:plot plot-fn nk:plot-fn pop-font nk:pop-font popup-begin nk:popup-begin
+Builtin popup-close nk:popup-close popup-end nk:popup-end popup-scroll-ofs nk:popup-scroll-ofs popup-scroll-ofs! nk:popup-scroll-ofs!
+Builtin progress nk:progress prop-int nk:prop-int pt>local nk:pt>local pt>screen nk:pt>screen pts>rect nk:pts>rect
+Builtin push-font nk:push-font rect-center nk:rect-center rect-intersect nk:rect-intersect rect-ofs nk:rect-ofs
+Builtin rect-pad nk:rect-pad rect-shrink nk:rect-shrink rect-union nk:rect-union rect/high nk:rect/high
+Builtin rect/wide nk:rect/wide rect>center nk:rect>center rect>local nk:rect>local rect>pos nk:rect>pos
+Builtin rect>pts nk:rect>pts rect>screen nk:rect>screen rect>size nk:rect>size released? nk:released?
+Builtin render nk:render restore nk:restore rotate nk:rotate save nk:save scale nk:scale scancode? nk:scancode?
+Builtin screen-saver nk:screen-saver screen-size nk:screen-size screen-win-close nk:screen-win-close
+Builtin selectable nk:selectable set nk:set set-font nk:set-font set-num-vertices nk:set-num-vertices
+Builtin setpos nk:setpos setwin nk:setwin slider nk:slider slider-int nk:slider-int space nk:space
+Builtin spacing nk:spacing stroke-arc nk:stroke-arc stroke-circle nk:stroke-circle stroke-curve nk:stroke-curve
+Builtin stroke-line nk:stroke-line stroke-polygon nk:stroke-polygon stroke-polyline nk:stroke-polyline
+Builtin stroke-rect nk:stroke-rect stroke-tri nk:stroke-tri style-from-table nk:style-from-table sw-gl nk:sw-gl
+Builtin text? nk:text? tooltip nk:tooltip translate nk:translate tree-pop nk:tree-pop tree-state-push nk:tree-state-push
+Builtin use-style nk:use-style vsync nk:vsync widget nk:widget widget-bounds nk:widget-bounds widget-fitting nk:widget-fitting
+Builtin widget-high nk:widget-high widget-hovered? nk:widget-hovered? widget-mouse-click-down? nk:widget-mouse-click-down?
+Builtin widget-mouse-clicked? nk:widget-mouse-clicked? widget-pos nk:widget-pos widget-size nk:widget-size
+Builtin widget-wide nk:widget-wide win nk:win win-bounds nk:win-bounds win-bounds! nk:win-bounds! win-close nk:win-close
+Builtin win-closed? nk:win-closed? win-collapse nk:win-collapse win-collapsed? nk:win-collapsed? win-content-bounds nk:win-content-bounds
+Builtin win-focus nk:win-focus win-focused? nk:win-focused? win-hidden? nk:win-hidden? win-high nk:win-high
+Builtin win-hovered? nk:win-hovered? win-pos nk:win-pos win-scroll-ofs nk:win-scroll-ofs win-scroll-ofs! nk:win-scroll-ofs!
+Builtin win-show nk:win-show win-size nk:win-size win-wide nk:win-wide win? nk:win? MAX ns:MAX ! o:!
+Builtin + o:+ +? o:+? ??? o:??? @ o:@ class o:class exec o:exec isa o:isa method o:method mutate o:mutate
+Builtin new o:new super o:super devname os:devname env os:env lang os:lang mem-arenas os:mem-arenas
+Builtin notify os:notify region os:region cast ptr:cast len ptr:len null? ptr:null? pack ptr:pack unpack ptr:unpack
+Builtin unpack_orig ptr:unpack_orig publish pubsub:publish qsize pubsub:qsize subscribe pubsub:subscribe
Builtin + q:+ clear q:clear len q:len new q:new notify q:notify overwrite q:overwrite peek q:peek pick q:pick
-Builtin pop q:pop push q:push shift q:shift size q:size slide q:slide throwing q:throwing wait q:wait
-Builtin ++match r:++match +/ r:+/ +match r:+match / r:/ @ r:@ err? r:err? len r:len match r:match new r:new
-Builtin rx r:rx str r:str ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts <+ s:<+ = s:= =ic s:=ic
-Builtin >base64 s:>base64 >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> clear s:clear cmp s:cmp
-Builtin cmpi s:cmpi compress s:compress days! s:days! each s:each eachline s:eachline expand s:expand
-Builtin fill s:fill fmt s:fmt gershayim s:gershayim globmatch s:globmatch hexupr s:hexupr insert s:insert
-Builtin intl s:intl intl! s:intl! lang s:lang lc s:lc len s:len lsub s:lsub ltrim s:ltrim map s:map
-Builtin months! s:months! new s:new replace s:replace replace! s:replace! rev s:rev rsearch s:rsearch
-Builtin rsub s:rsub rtrim s:rtrim script? s:script? search s:search size s:size slice s:slice strfmap s:strfmap
-Builtin strfmt s:strfmt trim s:trim tsub s:tsub uc s:uc ucs2> s:ucs2> utf8? s:utf8? zt s:zt close sio:close
-Builtin enum sio:enum open sio:open opts! sio:opts! opts@ sio:opts@ read sio:read write sio:write new smtp:new
-Builtin send smtp:send apply-filter snd:apply-filter devices? snd:devices? end-record snd:end-record
-Builtin filter snd:filter formats? snd:formats? freq snd:freq gain snd:gain gain? snd:gain? len snd:len
-Builtin loop snd:loop mix snd:mix new snd:new pause snd:pause play snd:play played snd:played rate snd:rate
-Builtin record snd:record seek snd:seek stop snd:stop stopall snd:stopall unmix snd:unmix volume snd:volume
-Builtin volume? snd:volume? + st:+ . st:. clear st:clear len st:len ndrop st:ndrop new st:new op! st:op!
-Builtin peek st:peek pick st:pick pop st:pop push st:push roll st:roll shift st:shift size st:size
-Builtin slide st:slide swap st:swap throwing st:throwing >buf struct:>buf arr> struct:arr> buf struct:buf
-Builtin buf> struct:buf> byte struct:byte double struct:double field! struct:field! field@ struct:field@
-Builtin float struct:float ignore struct:ignore int struct:int long struct:long struct; struct:struct;
-Builtin word struct:word ! t:! @ t:@ assign t:assign curtask t:curtask def-queue t:def-queue def-stack t:def-stack
-Builtin done? t:done? err! t:err! err? t:err? getq t:getq guitask t:guitask handler t:handler kill t:kill
-Builtin list t:list main t:main name! t:name! name@ t:name@ notify t:notify pop t:pop priority t:priority
-Builtin push t:push push< t:push< q-notify t:q-notify q-wait t:q-wait qlen t:qlen result t:result task t:task
-Builtin task-n t:task-n task-stop t:task-stop wait t:wait ! w:! @ w:@ alias: w:alias: cb w:cb deprecate w:deprecate
-Builtin exec w:exec exec? w:exec? ffifail w:ffifail find w:find forget w:forget is w:is undo w:undo
-Builtin >s xml:>s >txt xml:>txt parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream
+Builtin pop q:pop push q:push remove q:remove shift q:shift size q:size slide q:slide throwing q:throwing
+Builtin wait q:wait ++match r:++match +/ r:+/ +match r:+match / r:/ @ r:@ len r:len match r:match new r:new
+Builtin rx r:rx str r:str * rat:* + rat:+ - rat:- / rat:/ >n rat:>n >s rat:>s new rat:new proper rat:proper
+Builtin ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts <+ s:<+ = s:= =ic s:=ic >base64 s:>base64
+Builtin >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> clear s:clear cmp s:cmp cmpi s:cmpi compress s:compress
+Builtin days! s:days! dist s:dist each s:each each! s:each! eachline s:eachline escape s:escape expand s:expand
+Builtin fill s:fill fmt s:fmt fold s:fold gershayim s:gershayim globmatch s:globmatch hexupr s:hexupr
+Builtin insert s:insert intl s:intl intl! s:intl! lang s:lang lc s:lc lc? s:lc? len s:len lsub s:lsub
+Builtin ltrim s:ltrim map s:map months! s:months! new s:new norm s:norm reduce s:reduce repinsert s:repinsert
+Builtin replace s:replace replace! s:replace! rev s:rev rsearch s:rsearch rsub s:rsub rtrim s:rtrim
+Builtin script? s:script? search s:search size s:size slice s:slice soundex s:soundex strfmap s:strfmap
+Builtin strfmt s:strfmt text-wrap s:text-wrap trim s:trim tsub s:tsub uc s:uc uc? s:uc? ucs2> s:ucs2>
+Builtin utf8? s:utf8? zt s:zt close sio:close enum sio:enum open sio:open opts! sio:opts! opts@ sio:opts@
+Builtin read sio:read write sio:write @ slv:@ auto slv:auto build slv:build constraint slv:constraint
+Builtin dump slv:dump edit slv:edit named-variable slv:named-variable new slv:new relation slv:relation
+Builtin reset slv:reset suggest slv:suggest term slv:term update slv:update v[] slv:v[] variable slv:variable
+Builtin v{} slv:v{} new smtp:new send smtp:send apply-filter snd:apply-filter devices? snd:devices?
+Builtin end-record snd:end-record filter snd:filter formats? snd:formats? freq snd:freq gain snd:gain
+Builtin gain? snd:gain? init snd:init len snd:len loop snd:loop loop? snd:loop? mix snd:mix new snd:new
+Builtin pause snd:pause play snd:play played snd:played rate snd:rate ready? snd:ready? record snd:record
+Builtin resume snd:resume seek snd:seek stop snd:stop stopall snd:stopall volume snd:volume volume? snd:volume?
+Builtin + st:+ . st:. clear st:clear len st:len ndrop st:ndrop new st:new op! st:op! peek st:peek pick st:pick
+Builtin pop st:pop push st:push roll st:roll shift st:shift size st:size slide st:slide swap st:swap
+Builtin throwing st:throwing >buf struct:>buf arr> struct:arr> buf struct:buf buf> struct:buf> byte struct:byte
+Builtin double struct:double field! struct:field! field@ struct:field@ float struct:float ignore struct:ignore
+Builtin int struct:int long struct:long struct; struct:struct; word struct:word ! t:! @ t:@ by-name t:by-name
+Builtin cor t:cor cor-drop t:cor-drop curtask t:curtask def-queue t:def-queue def-stack t:def-stack
+Builtin done? t:done? err! t:err! err? t:err? errno? t:errno? getq t:getq handler t:handler handler@ t:handler@
+Builtin kill t:kill list t:list main t:main max-exceptions t:max-exceptions name! t:name! name@ t:name@
+Builtin notify t:notify parent t:parent pop t:pop priority t:priority push t:push q-notify t:q-notify
+Builtin q-wait t:q-wait qlen t:qlen result t:result set-affinity t:set-affinity setq t:setq start t:start
+Builtin task t:task task-n t:task-n task-stop t:task-stop wait t:wait yield t:yield yield! t:yield!
+Builtin add tree:add binary tree:binary bk tree:bk btree tree:btree cmp! tree:cmp! data tree:data del tree:del
+Builtin find tree:find iter tree:iter next tree:next nodes tree:nodes parent tree:parent parse tree:parse
+Builtin prev tree:prev root tree:root search tree:search trie tree:trie ! w:! (is) w:(is) @ w:@ alias: w:alias:
+Builtin cb w:cb deprecate w:deprecate dlcall w:dlcall dlopen w:dlopen dlsym w:dlsym exec w:exec exec? w:exec?
+Builtin ffifail w:ffifail find w:find forget w:forget is w:is name w:name undo w:undo >s xml:>s >txt xml:>txt
+Builtin md-init xml:md-init md-parse xml:md-parse parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream
Builtin getmsg[] zmq:getmsg[] sendmsg[] zmq:sendmsg[]
+
" numbers
syn keyword eighthMath decimal hex base@ base!
syn match eighthInteger '\<-\=[0-9.]*[0-9.]\+\>'
+
" recognize hex and binary numbers, the '$' and '%' notation is for eighth
syn match eighthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
syn match eighthInteger '\<\x*\d\x*\>' " *2* --- this order!
@@ -284,20 +357,17 @@ syn match eighthInteger "\<'.\>"
syn region eighthString start=+\.\?\"+ skip=+"+ end=+$+
syn keyword jsonNull null
syn keyword jsonBool /\(true\|false\)/
- syn region eighthString start=/\<"/ end=/"\>/
+syn region eighthString start=/\<"/ end=/"\>/
syn match jsonObjEntry /"\"[^"]\+\"\ze\s*:/
-"syn region jsonObject start=/{/ end=/}/ contained contains=jsonObjEntry,jsonArray,jsonObject, jsonBool, eighthString
-"syn region jsonArray start=/\[/ end=/\]/ contained contains=jsonArray,jsonObject, jsonBool, eighthString
-
" Include files
-" syn match eighthInclude '\<\(libinclude\|include\|needs\)\s\+\S\+'
syn region eighthComment start="\zs\\" end="$" contains=eighthTodo
" Define the default highlighting.
if !exists("did_eighth_syntax_inits")
let did_eighth_syntax_inits=1
- " The default methods for highlighting. Can be overridden later.
+
+ " The default methods for highlighting. Can be overriden later.
hi def link eighthTodo Todo
hi def link eighthOperators Operator
hi def link eighthMath Number
@@ -324,16 +394,15 @@ if !exists("did_eighth_syntax_inits")
hi def link eighthBuiltin Define
hi def link eighthClasses Define
hi def link eighthClassWord Keyword
-
hi def link jsonObject Delimiter
hi def link jsonObjEntry Label
hi def link jsonArray Special
- hi def link jsonNull Function
- hi def link jsonBool Boolean
+ hi def link jsonNull Function
+ hi def link jsonBool Boolean
endif
let b:current_syntax = "8th"
let &cpo = s:cpo_save
unlet s:cpo_save
-" vim: ts=8:sw=4:nocindent:smartindent:
+" vim: ft=vim:ts=8:sw=4:nocindent:smartindent:
diff --git a/syntax/abel.vim b/syntax/abel.vim
index 26ee20c7..c6adb940 100644
--- a/syntax/abel.vim
+++ b/syntax/abel.vim
@@ -63,7 +63,7 @@ syn region abelSpecifier start='istype' end=';' contains=abelTypeIdChar,abelType
syn match abelTypeIdChar "[,']" contained
syn match abelTypeIdEnd ";" contained
-" string contstants and special characters within them
+" string constants and special characters within them
syn match abelSpecial contained "\\['\\]"
syn region abelString start=+'+ skip=+\\"+ end=+'+ contains=abelSpecial
diff --git a/syntax/ada.vim b/syntax/ada.vim
index 87a3ad7b..fcf74e39 100644
--- a/syntax/ada.vim
+++ b/syntax/ada.vim
@@ -163,7 +163,7 @@ endif
" Section: end {{{1
" Unless special ("end loop", "end if", etc.), "end" marks the end of a
-" begin, package, task etc. Assiging it to adaEnd.
+" begin, package, task etc. Assigning it to adaEnd.
syntax match adaEnd /\<end\>/
syntax keyword adaPreproc pragma
diff --git a/syntax/ahdl.vim b/syntax/ahdl.vim
index feaeb0fe..80739e1f 100644
--- a/syntax/ahdl.vim
+++ b/syntax/ahdl.vim
@@ -42,7 +42,7 @@ syn keyword ahdlMegafunction lpm_rom lpm_dff lpm_tff clklock pll ntsc
syn keyword ahdlTodo contained TODO
-" String contstants
+" String constants
syn region ahdlString start=+"+ skip=+\\"+ end=+"+
" valid integer number formats (decimal, binary, octal, hex)
diff --git a/syntax/aspvbs.vim b/syntax/aspvbs.vim
index 8af43626..7cf34164 100644
--- a/syntax/aspvbs.vim
+++ b/syntax/aspvbs.vim
@@ -38,7 +38,7 @@ syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*"
" Functions and methods that are in VB but will cause errors in an ASP page
-" This is helpfull if your porting VB code to ASP
+" This is helpful if your porting VB code to ASP
" I removed (Count, Item) because these are common variable names in AspVBScript
syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo
syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke
@@ -60,7 +60,7 @@ syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\
syn match AspVBSError contained "Respon\?ce\.\S*"
syn match AspVBSError contained "Respose\.\S*"
" When I looked up the VBScript syntax it mentioned that Property Get/Set/Let
-" statements are illegal, however, I have recived reports that they do work.
+" statements are illegal, however, I have received reports that they do work.
" So I commented it out for now.
" syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>"
@@ -112,7 +112,7 @@ syn match AspVBSMethods contained "Response\.\w*"
" Colorize boolean constants:
syn keyword AspVBSMethods contained true false
-" AspVBScript Number Contstants
+" AspVBScript Number Constants
" Integer number, or floating point number without a dot.
syn match AspVBSNumber contained "\<\d\+\>"
" Floating point number, with dot
@@ -120,7 +120,7 @@ syn match AspVBSNumber contained "\<\d\+\.\d*\>"
" Floating point number, starting with a dot
syn match AspVBSNumber contained "\.\d\+\>"
-" String and Character Contstants
+" String and Character Constants
" removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in
" strings (or does it?)
syn region AspVBSString contained start=+"+ end=+"+ keepend
@@ -147,7 +147,7 @@ syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods
syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend
syn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend
-" Define AspVBScript delimeters
+" Define AspVBScript delimiters
" <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax.
syn region AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold
syn region AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=vbscript"\=[^>]*\s\+runatserver[^>]*>+ end=+</script>+ contains=@AspVBScriptTop
diff --git a/syntax/autoit.vim b/syntax/autoit.vim
index 705aff02..53903e3e 100644
--- a/syntax/autoit.vim
+++ b/syntax/autoit.vim
@@ -9,6 +9,7 @@ endif
" Authored By: Riccardo Casini <ric@libero.it>
" Script URL: http://www.vim.org/scripts/script.php?script_id=1239
" ChangeLog: Please visit the script URL for detailed change information
+" Included change from #970.
" Quit when a syntax file was already loaded.
if exists("b:current_syntax")
@@ -936,7 +937,7 @@ syn match autoitConst "\$SD_POWERDOWN"
" constants - string
syn match autoitConst "\$STR_NOCASESENSE"
syn match autoitConst "\$STR_CASESENSE"
-syn match autoitConst "\STR_STRIPLEADING"
+syn match autoitConst "\$STR_STRIPLEADING"
syn match autoitConst "\$STR_STRIPTRAILING"
syn match autoitConst "\$STR_STRIPSPACES"
syn match autoitConst "\$STR_STRIPALL"
diff --git a/syntax/basic/identifiers.vim b/syntax/basic/identifiers.vim
index f85b2d15..e238c8d2 100644
--- a/syntax/basic/identifiers.vim
+++ b/syntax/basic/identifiers.vim
@@ -22,7 +22,7 @@ syntax match typescriptProp contained /\K\k*!\?/
\ nextgroup=@afterIdentifier
\ skipwhite skipempty
-syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/rs=s+1 end=/]/he=e-1 contains=@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty
+syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/ end=/]/ contains=@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty
syntax match typescriptDotNotation /\.\|?\.\|!\./ nextgroup=typescriptProp skipnl
syntax match typescriptDotStyleNotation /\.style\./ nextgroup=typescriptDOMStyle transparent
diff --git a/syntax/basic/literal.vim b/syntax/basic/literal.vim
index de71af92..d6204014 100644
--- a/syntax/basic/literal.vim
+++ b/syntax/basic/literal.vim
@@ -24,7 +24,7 @@ syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x
" From vim runtime
" <https://github.com/vim/vim/blob/master/runtime/syntax/javascript.vim#L48>
-syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}:]+me=e-1 nextgroup=typescriptDotNotation oneline
+syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimsuy]\{0,5\}\s*$+ end=+/[gimsuy]\{0,5\}\s*[;.,)\]}:]+me=e-1 nextgroup=typescriptDotNotation oneline
syntax region typescriptTemplate
\ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/
diff --git a/syntax/cfg.vim b/syntax/cfg.vim
index ad81bb05..cd6a91c4 100644
--- a/syntax/cfg.vim
+++ b/syntax/cfg.vim
@@ -36,7 +36,7 @@ syn match CfgComment "#.*"
syn match CfgComment ";.*"
syn match CfgComment "\/\/.*"
-" Define the default hightlighting.
+" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link CfgOnOff Label
hi def link CfgComment Comment
diff --git a/syntax/clojure.vim b/syntax/clojure.vim
index cdf8346d..6fb36244 100644
--- a/syntax/clojure.vim
+++ b/syntax/clojure.vim
@@ -26,14 +26,14 @@ endif
" -*- KEYWORDS -*-
" Generated from https://github.com/clojure-vim/clojure.vim/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
-" Clojure version 1.10.2
+" Clojure version 1.10.3
let s:clojure_syntax_keywords = {
\ 'clojureBoolean': ["false","true"]
\ , 'clojureCond': ["case","clojure.core/case","clojure.core/cond","clojure.core/cond->","clojure.core/cond->>","clojure.core/condp","clojure.core/if-let","clojure.core/if-not","clojure.core/if-some","clojure.core/when","clojure.core/when-first","clojure.core/when-let","clojure.core/when-not","clojure.core/when-some","cond","cond->","cond->>","condp","if-let","if-not","if-some","when","when-first","when-let","when-not","when-some"]
\ , 'clojureConstant': ["nil"]
\ , 'clojureDefine': ["clojure.core/definline","clojure.core/definterface","clojure.core/defmacro","clojure.core/defmethod","clojure.core/defmulti","clojure.core/defn","clojure.core/defn-","clojure.core/defonce","clojure.core/defprotocol","clojure.core/defrecord","clojure.core/defstruct","clojure.core/deftype","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype"]
\ , 'clojureException': ["catch","finally","throw","try"]
- \ , 'clojureFunc': ["*","*'","+","+'","-","-'","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","/","<","<=","=","==",">",">=","PrintWriter-on","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-tap","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","ancestors","any?","apply","array-map","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case-fallthrough-err-impl","cast","cat","char","char-array","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","clojure.core/*","clojure.core/*'","clojure.core/+","clojure.core/+'","clojure.core/-","clojure.core/-'","clojure.core/->ArrayChunk","clojure.core/->Eduction","clojure.core/->Vec","clojure.core/->VecNode","clojure.core/->VecSeq","clojure.core/-cache-protocol-fn","clojure.core/-reset-methods","clojure.core//","clojure.core/<","clojure.core/<=","clojure.core/=","clojure.core/==","clojure.core/>","clojure.core/>=","clojure.core/PrintWriter-on","clojure.core/StackTraceElement->vec","clojure.core/Throwable->map","clojure.core/accessor","clojure.core/aclone","clojure.core/add-classpath","clojure.core/add-tap","clojure.core/add-watch","clojure.core/agent","clojure.core/agent-error","clojure.core/agent-errors","clojure.core/aget","clojure.core/alength","clojure.core/alias","clojure.core/all-ns","clojure.core/alter","clojure.core/alter-meta!","clojure.core/alter-var-root","clojure.core/ancestors","clojure.core/any?","clojure.core/apply","clojure.core/array-map","clojure.core/aset","clojure.core/aset-boolean","clojure.core/aset-byte","clojure.core/aset-char","clojure.core/aset-double","clojure.core/aset-float","clojure.core/aset-int","clojure.core/aset-long","clojure.core/aset-short","clojure.core/assoc","clojure.core/assoc!","clojure.core/assoc-in","clojure.core/associative?","clojure.core/atom","clojure.core/await","clojure.core/await-for","clojure.core/await1","clojure.core/bases","clojure.core/bean","clojure.core/bigdec","clojure.core/bigint","clojure.core/biginteger","clojure.core/bit-and","clojure.core/bit-and-not","clojure.core/bit-clear","clojure.core/bit-flip","clojure.core/bit-not","clojure.core/bit-or","clojure.core/bit-set","clojure.core/bit-shift-left","clojure.core/bit-shift-right","clojure.core/bit-test","clojure.core/bit-xor","clojure.core/boolean","clojure.core/boolean-array","clojure.core/boolean?","clojure.core/booleans","clojure.core/bound-fn*","clojure.core/bound?","clojure.core/bounded-count","clojure.core/butlast","clojure.core/byte","clojure.core/byte-array","clojure.core/bytes","clojure.core/bytes?","clojure.core/case-fallthrough-err-impl","clojure.core/cast","clojure.core/cat","clojure.core/char","clojure.core/char-array","clojure.core/char?","clojure.core/chars","clojure.core/chunk","clojure.core/chunk-append","clojure.core/chunk-buffer","clojure.core/chunk-cons","clojure.core/chunk-first","clojure.core/chunk-next","clojure.core/chunk-rest","clojure.core/chunked-seq?","clojure.core/class","clojure.core/class?","clojure.core/clear-agent-errors","clojure.core/clojure-version","clojure.core/coll?","clojure.core/commute","clojure.core/comp","clojure.core/comparator","clojure.core/compare","clojure.core/compare-and-set!","clojure.core/compile","clojure.core/complement","clojure.core/completing","clojure.core/concat","clojure.core/conj","clojure.core/conj!","clojure.core/cons","clojure.core/constantly","clojure.core/construct-proxy","clojure.core/contains?","clojure.core/count","clojure.core/counted?","clojure.core/create-ns","clojure.core/create-struct","clojure.core/cycle","clojure.core/dec","clojure.core/dec'","clojure.core/decimal?","clojure.core/dedupe","clojure.core/delay?","clojure.core/deliver","clojure.core/denominator","clojure.core/deref","clojure.core/derive","clojure.core/descendants","clojure.core/destructure","clojure.core/disj","clojure.core/disj!","clojure.core/dissoc","clojure.core/dissoc!","clojure.core/distinct","clojure.core/distinct?","clojure.core/doall","clojure.core/dorun","clojure.core/double","clojure.core/double-array","clojure.core/double?","clojure.core/doubles","clojure.core/drop","clojure.core/drop-last","clojure.core/drop-while","clojure.core/eduction","clojure.core/empty","clojure.core/empty?","clojure.core/ensure","clojure.core/ensure-reduced","clojure.core/enumeration-seq","clojure.core/error-handler","clojure.core/error-mode","clojure.core/eval","clojure.core/even?","clojure.core/every-pred","clojure.core/every?","clojure.core/ex-cause","clojure.core/ex-data","clojure.core/ex-info","clojure.core/ex-message","clojure.core/extend","clojure.core/extenders","clojure.core/extends?","clojure.core/false?","clojure.core/ffirst","clojure.core/file-seq","clojure.core/filter","clojure.core/filterv","clojure.core/find","clojure.core/find-keyword","clojure.core/find-ns","clojure.core/find-protocol-impl","clojure.core/find-protocol-method","clojure.core/find-var","clojure.core/first","clojure.core/flatten","clojure.core/float","clojure.core/float-array","clojure.core/float?","clojure.core/floats","clojure.core/flush","clojure.core/fn?","clojure.core/fnext","clojure.core/fnil","clojure.core/force","clojure.core/format","clojure.core/frequencies","clojure.core/future-call","clojure.core/future-cancel","clojure.core/future-cancelled?","clojure.core/future-done?","clojure.core/future?","clojure.core/gensym","clojure.core/get","clojure.core/get-in","clojure.core/get-method","clojure.core/get-proxy-class","clojure.core/get-thread-bindings","clojure.core/get-validator","clojure.core/group-by","clojure.core/halt-when","clojure.core/hash","clojure.core/hash-combine","clojure.core/hash-map","clojure.core/hash-ordered-coll","clojure.core/hash-set","clojure.core/hash-unordered-coll","clojure.core/ident?","clojure.core/identical?","clojure.core/identity","clojure.core/ifn?","clojure.core/in-ns","clojure.core/inc","clojure.core/inc'","clojure.core/indexed?","clojure.core/init-proxy","clojure.core/inst-ms","clojure.core/inst-ms*","clojure.core/inst?","clojure.core/instance?","clojure.core/int","clojure.core/int-array","clojure.core/int?","clojure.core/integer?","clojure.core/interleave","clojure.core/intern","clojure.core/interpose","clojure.core/into","clojure.core/into-array","clojure.core/ints","clojure.core/isa?","clojure.core/iterate","clojure.core/iterator-seq","clojure.core/juxt","clojure.core/keep","clojure.core/keep-indexed","clojure.core/key","clojure.core/keys","clojure.core/keyword","clojure.core/keyword?","clojure.core/last","clojure.core/line-seq","clojure.core/list","clojure.core/list*","clojure.core/list?","clojure.core/load","clojure.core/load-file","clojure.core/load-reader","clojure.core/load-string","clojure.core/loaded-libs","clojure.core/long","clojure.core/long-array","clojure.core/longs","clojure.core/macroexpand","clojure.core/macroexpand-1","clojure.core/make-array","clojure.core/make-hierarchy","clojure.core/map","clojure.core/map-entry?","clojure.core/map-indexed","clojure.core/map?","clojure.core/mapcat","clojure.core/mapv","clojure.core/max","clojure.core/max-key","clojure.core/memoize","clojure.core/merge","clojure.core/merge-with","clojure.core/meta","clojure.core/method-sig","clojure.core/methods","clojure.core/min","clojure.core/min-key","clojure.core/mix-collection-hash","clojure.core/mod","clojure.core/munge","clojure.core/name","clojure.core/namespace","clojure.core/namespace-munge","clojure.core/nat-int?","clojure.core/neg-int?","clojure.core/neg?","clojure.core/newline","clojure.core/next","clojure.core/nfirst","clojure.core/nil?","clojure.core/nnext","clojure.core/not","clojure.core/not-any?","clojure.core/not-empty","clojure.core/not-every?","clojure.core/not=","clojure.core/ns-aliases","clojure.core/ns-imports","clojure.core/ns-interns","clojure.core/ns-map","clojure.core/ns-name","clojure.core/ns-publics","clojure.core/ns-refers","clojure.core/ns-resolve","clojure.core/ns-unalias","clojure.core/ns-unmap","clojure.core/nth","clojure.core/nthnext","clojure.core/nthrest","clojure.core/num","clojure.core/number?","clojure.core/numerator","clojure.core/object-array","clojure.core/odd?","clojure.core/parents","clojure.core/partial","clojure.core/partition","clojure.core/partition-all","clojure.core/partition-by","clojure.core/pcalls","clojure.core/peek","clojure.core/persistent!","clojure.core/pmap","clojure.core/pop","clojure.core/pop!","clojure.core/pop-thread-bindings","clojure.core/pos-int?","clojure.core/pos?","clojure.core/pr","clojure.core/pr-str","clojure.core/prefer-method","clojure.core/prefers","clojure.core/print","clojure.core/print-ctor","clojure.core/print-dup","clojure.core/print-method","clojure.core/print-simple","clojure.core/print-str","clojure.core/printf","clojure.core/println","clojure.core/println-str","clojure.core/prn","clojure.core/prn-str","clojure.core/promise","clojure.core/proxy-call-with-super","clojure.core/proxy-mappings","clojure.core/proxy-name","clojure.core/push-thread-bindings","clojure.core/qualified-ident?","clojure.core/qualified-keyword?","clojure.core/qualified-symbol?","clojure.core/quot","clojure.core/rand","clojure.core/rand-int","clojure.core/rand-nth","clojure.core/random-sample","clojure.core/range","clojure.core/ratio?","clojure.core/rational?","clojure.core/rationalize","clojure.core/re-find","clojure.core/re-groups","clojure.core/re-matcher","clojure.core/re-matches","clojure.core/re-pattern","clojure.core/re-seq","clojure.core/read","clojure.core/read+string","clojure.core/read-line","clojure.core/read-string","clojure.core/reader-conditional","clojure.core/reader-conditional?","clojure.core/realized?","clojure.core/record?","clojure.core/reduce","clojure.core/reduce-kv","clojure.core/reduced","clojure.core/reduced?","clojure.core/reductions","clojure.core/ref","clojure.core/ref-history-count","clojure.core/ref-max-history","clojure.core/ref-min-history","clojure.core/ref-set","clojure.core/refer","clojure.core/release-pending-sends","clojure.core/rem","clojure.core/remove","clojure.core/remove-all-methods","clojure.core/remove-method","clojure.core/remove-ns","clojure.core/remove-tap","clojure.core/remove-watch","clojure.core/repeat","clojure.core/repeatedly","clojure.core/replace","clojure.core/replicate","clojure.core/require","clojure.core/requiring-resolve","clojure.core/reset!","clojure.core/reset-meta!","clojure.core/reset-vals!","clojure.core/resolve","clojure.core/rest","clojure.core/restart-agent","clojure.core/resultset-seq","clojure.core/reverse","clojure.core/reversible?","clojure.core/rseq","clojure.core/rsubseq","clojure.core/run!","clojure.core/satisfies?","clojure.core/second","clojure.core/select-keys","clojure.core/send","clojure.core/send-off","clojure.core/send-via","clojure.core/seq","clojure.core/seq?","clojure.core/seqable?","clojure.core/seque","clojure.core/sequence","clojure.core/sequential?","clojure.core/set","clojure.core/set-agent-send-executor!","clojure.core/set-agent-send-off-executor!","clojure.core/set-error-handler!","clojure.core/set-error-mode!","clojure.core/set-validator!","clojure.core/set?","clojure.core/short","clojure.core/short-array","clojure.core/shorts","clojure.core/shuffle","clojure.core/shutdown-agents","clojure.core/simple-ident?","clojure.core/simple-keyword?","clojure.core/simple-symbol?","clojure.core/slurp","clojure.core/some","clojure.core/some-fn","clojure.core/some?","clojure.core/sort","clojure.core/sort-by","clojure.core/sorted-map","clojure.core/sorted-map-by","clojure.core/sorted-set","clojure.core/sorted-set-by","clojure.core/sorted?","clojure.core/special-symbol?","clojure.core/spit","clojure.core/split-at","clojure.core/split-with","clojure.core/str","clojure.core/string?","clojure.core/struct","clojure.core/struct-map","clojure.core/subs","clojure.core/subseq","clojure.core/subvec","clojure.core/supers","clojure.core/swap!","clojure.core/swap-vals!","clojure.core/symbol","clojure.core/symbol?","clojure.core/tagged-literal","clojure.core/tagged-literal?","clojure.core/take","clojure.core/take-last","clojure.core/take-nth","clojure.core/take-while","clojure.core/tap>","clojure.core/test","clojure.core/the-ns","clojure.core/thread-bound?","clojure.core/to-array","clojure.core/to-array-2d","clojure.core/trampoline","clojure.core/transduce","clojure.core/transient","clojure.core/tree-seq","clojure.core/true?","clojure.core/type","clojure.core/unchecked-add","clojure.core/unchecked-add-int","clojure.core/unchecked-byte","clojure.core/unchecked-char","clojure.core/unchecked-dec","clojure.core/unchecked-dec-int","clojure.core/unchecked-divide-int","clojure.core/unchecked-double","clojure.core/unchecked-float","clojure.core/unchecked-inc","clojure.core/unchecked-inc-int","clojure.core/unchecked-int","clojure.core/unchecked-long","clojure.core/unchecked-multiply","clojure.core/unchecked-multiply-int","clojure.core/unchecked-negate","clojure.core/unchecked-negate-int","clojure.core/unchecked-remainder-int","clojure.core/unchecked-short","clojure.core/unchecked-subtract","clojure.core/unchecked-subtract-int","clojure.core/underive","clojure.core/unreduced","clojure.core/unsigned-bit-shift-right","clojure.core/update","clojure.core/update-in","clojure.core/update-proxy","clojure.core/uri?","clojure.core/use","clojure.core/uuid?","clojure.core/val","clojure.core/vals","clojure.core/var-get","clojure.core/var-set","clojure.core/var?","clojure.core/vary-meta","clojure.core/vec","clojure.core/vector","clojure.core/vector-of","clojure.core/vector?","clojure.core/volatile!","clojure.core/volatile?","clojure.core/vreset!","clojure.core/with-bindings*","clojure.core/with-meta","clojure.core/with-redefs-fn","clojure.core/xml-seq","clojure.core/zero?","clojure.core/zipmap","coll?","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","dedupe","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-cause","ex-data","ex-info","ex-message","extend","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn?","fnext","fnil","force","format","frequencies","future-call","future-cancel","future-cancelled?","future-done?","future?","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","ifn?","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","long","long-array","longs","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy-call-with-super","proxy-mappings","proxy-name","push-thread-bindings","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read+string","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-tap","remove-watch","repeat","repeatedly","replace","replicate","require","requiring-resolve","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","tap>","test","the-ns","thread-bound?","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","with-bindings*","with-meta","with-redefs-fn","xml-seq","zero?","zipmap"]
+ \ , 'clojureFunc': ["*","*'","+","+'","-","-'","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","/","<","<=","=","==",">",">=","PrintWriter-on","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-tap","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","ancestors","any?","apply","array-map","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","cast","cat","char","char-array","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","clojure.core/*","clojure.core/*'","clojure.core/+","clojure.core/+'","clojure.core/-","clojure.core/-'","clojure.core/->ArrayChunk","clojure.core/->Eduction","clojure.core/->Vec","clojure.core/->VecNode","clojure.core/->VecSeq","clojure.core/-cache-protocol-fn","clojure.core/-reset-methods","clojure.core//","clojure.core/<","clojure.core/<=","clojure.core/=","clojure.core/==","clojure.core/>","clojure.core/>=","clojure.core/PrintWriter-on","clojure.core/StackTraceElement->vec","clojure.core/Throwable->map","clojure.core/accessor","clojure.core/aclone","clojure.core/add-classpath","clojure.core/add-tap","clojure.core/add-watch","clojure.core/agent","clojure.core/agent-error","clojure.core/agent-errors","clojure.core/aget","clojure.core/alength","clojure.core/alias","clojure.core/all-ns","clojure.core/alter","clojure.core/alter-meta!","clojure.core/alter-var-root","clojure.core/ancestors","clojure.core/any?","clojure.core/apply","clojure.core/array-map","clojure.core/aset","clojure.core/aset-boolean","clojure.core/aset-byte","clojure.core/aset-char","clojure.core/aset-double","clojure.core/aset-float","clojure.core/aset-int","clojure.core/aset-long","clojure.core/aset-short","clojure.core/assoc","clojure.core/assoc!","clojure.core/assoc-in","clojure.core/associative?","clojure.core/atom","clojure.core/await","clojure.core/await-for","clojure.core/await1","clojure.core/bases","clojure.core/bean","clojure.core/bigdec","clojure.core/bigint","clojure.core/biginteger","clojure.core/bit-and","clojure.core/bit-and-not","clojure.core/bit-clear","clojure.core/bit-flip","clojure.core/bit-not","clojure.core/bit-or","clojure.core/bit-set","clojure.core/bit-shift-left","clojure.core/bit-shift-right","clojure.core/bit-test","clojure.core/bit-xor","clojure.core/boolean","clojure.core/boolean-array","clojure.core/boolean?","clojure.core/booleans","clojure.core/bound-fn*","clojure.core/bound?","clojure.core/bounded-count","clojure.core/butlast","clojure.core/byte","clojure.core/byte-array","clojure.core/bytes","clojure.core/bytes?","clojure.core/cast","clojure.core/cat","clojure.core/char","clojure.core/char-array","clojure.core/char?","clojure.core/chars","clojure.core/chunk","clojure.core/chunk-append","clojure.core/chunk-buffer","clojure.core/chunk-cons","clojure.core/chunk-first","clojure.core/chunk-next","clojure.core/chunk-rest","clojure.core/chunked-seq?","clojure.core/class","clojure.core/class?","clojure.core/clear-agent-errors","clojure.core/clojure-version","clojure.core/coll?","clojure.core/commute","clojure.core/comp","clojure.core/comparator","clojure.core/compare","clojure.core/compare-and-set!","clojure.core/compile","clojure.core/complement","clojure.core/completing","clojure.core/concat","clojure.core/conj","clojure.core/conj!","clojure.core/cons","clojure.core/constantly","clojure.core/construct-proxy","clojure.core/contains?","clojure.core/count","clojure.core/counted?","clojure.core/create-ns","clojure.core/create-struct","clojure.core/cycle","clojure.core/dec","clojure.core/dec'","clojure.core/decimal?","clojure.core/dedupe","clojure.core/delay?","clojure.core/deliver","clojure.core/denominator","clojure.core/deref","clojure.core/derive","clojure.core/descendants","clojure.core/destructure","clojure.core/disj","clojure.core/disj!","clojure.core/dissoc","clojure.core/dissoc!","clojure.core/distinct","clojure.core/distinct?","clojure.core/doall","clojure.core/dorun","clojure.core/double","clojure.core/double-array","clojure.core/double?","clojure.core/doubles","clojure.core/drop","clojure.core/drop-last","clojure.core/drop-while","clojure.core/eduction","clojure.core/empty","clojure.core/empty?","clojure.core/ensure","clojure.core/ensure-reduced","clojure.core/enumeration-seq","clojure.core/error-handler","clojure.core/error-mode","clojure.core/eval","clojure.core/even?","clojure.core/every-pred","clojure.core/every?","clojure.core/ex-cause","clojure.core/ex-data","clojure.core/ex-info","clojure.core/ex-message","clojure.core/extend","clojure.core/extenders","clojure.core/extends?","clojure.core/false?","clojure.core/ffirst","clojure.core/file-seq","clojure.core/filter","clojure.core/filterv","clojure.core/find","clojure.core/find-keyword","clojure.core/find-ns","clojure.core/find-protocol-impl","clojure.core/find-protocol-method","clojure.core/find-var","clojure.core/first","clojure.core/flatten","clojure.core/float","clojure.core/float-array","clojure.core/float?","clojure.core/floats","clojure.core/flush","clojure.core/fn?","clojure.core/fnext","clojure.core/fnil","clojure.core/force","clojure.core/format","clojure.core/frequencies","clojure.core/future-call","clojure.core/future-cancel","clojure.core/future-cancelled?","clojure.core/future-done?","clojure.core/future?","clojure.core/gensym","clojure.core/get","clojure.core/get-in","clojure.core/get-method","clojure.core/get-proxy-class","clojure.core/get-thread-bindings","clojure.core/get-validator","clojure.core/group-by","clojure.core/halt-when","clojure.core/hash","clojure.core/hash-combine","clojure.core/hash-map","clojure.core/hash-ordered-coll","clojure.core/hash-set","clojure.core/hash-unordered-coll","clojure.core/ident?","clojure.core/identical?","clojure.core/identity","clojure.core/ifn?","clojure.core/in-ns","clojure.core/inc","clojure.core/inc'","clojure.core/indexed?","clojure.core/init-proxy","clojure.core/inst-ms","clojure.core/inst-ms*","clojure.core/inst?","clojure.core/instance?","clojure.core/int","clojure.core/int-array","clojure.core/int?","clojure.core/integer?","clojure.core/interleave","clojure.core/intern","clojure.core/interpose","clojure.core/into","clojure.core/into-array","clojure.core/ints","clojure.core/isa?","clojure.core/iterate","clojure.core/iterator-seq","clojure.core/juxt","clojure.core/keep","clojure.core/keep-indexed","clojure.core/key","clojure.core/keys","clojure.core/keyword","clojure.core/keyword?","clojure.core/last","clojure.core/line-seq","clojure.core/list","clojure.core/list*","clojure.core/list?","clojure.core/load","clojure.core/load-file","clojure.core/load-reader","clojure.core/load-string","clojure.core/loaded-libs","clojure.core/long","clojure.core/long-array","clojure.core/longs","clojure.core/macroexpand","clojure.core/macroexpand-1","clojure.core/make-array","clojure.core/make-hierarchy","clojure.core/map","clojure.core/map-entry?","clojure.core/map-indexed","clojure.core/map?","clojure.core/mapcat","clojure.core/mapv","clojure.core/max","clojure.core/max-key","clojure.core/memoize","clojure.core/merge","clojure.core/merge-with","clojure.core/meta","clojure.core/method-sig","clojure.core/methods","clojure.core/min","clojure.core/min-key","clojure.core/mix-collection-hash","clojure.core/mod","clojure.core/munge","clojure.core/name","clojure.core/namespace","clojure.core/namespace-munge","clojure.core/nat-int?","clojure.core/neg-int?","clojure.core/neg?","clojure.core/newline","clojure.core/next","clojure.core/nfirst","clojure.core/nil?","clojure.core/nnext","clojure.core/not","clojure.core/not-any?","clojure.core/not-empty","clojure.core/not-every?","clojure.core/not=","clojure.core/ns-aliases","clojure.core/ns-imports","clojure.core/ns-interns","clojure.core/ns-map","clojure.core/ns-name","clojure.core/ns-publics","clojure.core/ns-refers","clojure.core/ns-resolve","clojure.core/ns-unalias","clojure.core/ns-unmap","clojure.core/nth","clojure.core/nthnext","clojure.core/nthrest","clojure.core/num","clojure.core/number?","clojure.core/numerator","clojure.core/object-array","clojure.core/odd?","clojure.core/parents","clojure.core/partial","clojure.core/partition","clojure.core/partition-all","clojure.core/partition-by","clojure.core/pcalls","clojure.core/peek","clojure.core/persistent!","clojure.core/pmap","clojure.core/pop","clojure.core/pop!","clojure.core/pop-thread-bindings","clojure.core/pos-int?","clojure.core/pos?","clojure.core/pr","clojure.core/pr-str","clojure.core/prefer-method","clojure.core/prefers","clojure.core/print","clojure.core/print-ctor","clojure.core/print-dup","clojure.core/print-method","clojure.core/print-simple","clojure.core/print-str","clojure.core/printf","clojure.core/println","clojure.core/println-str","clojure.core/prn","clojure.core/prn-str","clojure.core/promise","clojure.core/proxy-call-with-super","clojure.core/proxy-mappings","clojure.core/proxy-name","clojure.core/push-thread-bindings","clojure.core/qualified-ident?","clojure.core/qualified-keyword?","clojure.core/qualified-symbol?","clojure.core/quot","clojure.core/rand","clojure.core/rand-int","clojure.core/rand-nth","clojure.core/random-sample","clojure.core/range","clojure.core/ratio?","clojure.core/rational?","clojure.core/rationalize","clojure.core/re-find","clojure.core/re-groups","clojure.core/re-matcher","clojure.core/re-matches","clojure.core/re-pattern","clojure.core/re-seq","clojure.core/read","clojure.core/read+string","clojure.core/read-line","clojure.core/read-string","clojure.core/reader-conditional","clojure.core/reader-conditional?","clojure.core/realized?","clojure.core/record?","clojure.core/reduce","clojure.core/reduce-kv","clojure.core/reduced","clojure.core/reduced?","clojure.core/reductions","clojure.core/ref","clojure.core/ref-history-count","clojure.core/ref-max-history","clojure.core/ref-min-history","clojure.core/ref-set","clojure.core/refer","clojure.core/release-pending-sends","clojure.core/rem","clojure.core/remove","clojure.core/remove-all-methods","clojure.core/remove-method","clojure.core/remove-ns","clojure.core/remove-tap","clojure.core/remove-watch","clojure.core/repeat","clojure.core/repeatedly","clojure.core/replace","clojure.core/replicate","clojure.core/require","clojure.core/requiring-resolve","clojure.core/reset!","clojure.core/reset-meta!","clojure.core/reset-vals!","clojure.core/resolve","clojure.core/rest","clojure.core/restart-agent","clojure.core/resultset-seq","clojure.core/reverse","clojure.core/reversible?","clojure.core/rseq","clojure.core/rsubseq","clojure.core/run!","clojure.core/satisfies?","clojure.core/second","clojure.core/select-keys","clojure.core/send","clojure.core/send-off","clojure.core/send-via","clojure.core/seq","clojure.core/seq?","clojure.core/seqable?","clojure.core/seque","clojure.core/sequence","clojure.core/sequential?","clojure.core/set","clojure.core/set-agent-send-executor!","clojure.core/set-agent-send-off-executor!","clojure.core/set-error-handler!","clojure.core/set-error-mode!","clojure.core/set-validator!","clojure.core/set?","clojure.core/short","clojure.core/short-array","clojure.core/shorts","clojure.core/shuffle","clojure.core/shutdown-agents","clojure.core/simple-ident?","clojure.core/simple-keyword?","clojure.core/simple-symbol?","clojure.core/slurp","clojure.core/some","clojure.core/some-fn","clojure.core/some?","clojure.core/sort","clojure.core/sort-by","clojure.core/sorted-map","clojure.core/sorted-map-by","clojure.core/sorted-set","clojure.core/sorted-set-by","clojure.core/sorted?","clojure.core/special-symbol?","clojure.core/spit","clojure.core/split-at","clojure.core/split-with","clojure.core/str","clojure.core/string?","clojure.core/struct","clojure.core/struct-map","clojure.core/subs","clojure.core/subseq","clojure.core/subvec","clojure.core/supers","clojure.core/swap!","clojure.core/swap-vals!","clojure.core/symbol","clojure.core/symbol?","clojure.core/tagged-literal","clojure.core/tagged-literal?","clojure.core/take","clojure.core/take-last","clojure.core/take-nth","clojure.core/take-while","clojure.core/tap>","clojure.core/test","clojure.core/the-ns","clojure.core/thread-bound?","clojure.core/to-array","clojure.core/to-array-2d","clojure.core/trampoline","clojure.core/transduce","clojure.core/transient","clojure.core/tree-seq","clojure.core/true?","clojure.core/type","clojure.core/unchecked-add","clojure.core/unchecked-add-int","clojure.core/unchecked-byte","clojure.core/unchecked-char","clojure.core/unchecked-dec","clojure.core/unchecked-dec-int","clojure.core/unchecked-divide-int","clojure.core/unchecked-double","clojure.core/unchecked-float","clojure.core/unchecked-inc","clojure.core/unchecked-inc-int","clojure.core/unchecked-int","clojure.core/unchecked-long","clojure.core/unchecked-multiply","clojure.core/unchecked-multiply-int","clojure.core/unchecked-negate","clojure.core/unchecked-negate-int","clojure.core/unchecked-remainder-int","clojure.core/unchecked-short","clojure.core/unchecked-subtract","clojure.core/unchecked-subtract-int","clojure.core/underive","clojure.core/unreduced","clojure.core/unsigned-bit-shift-right","clojure.core/update","clojure.core/update-in","clojure.core/update-proxy","clojure.core/uri?","clojure.core/use","clojure.core/uuid?","clojure.core/val","clojure.core/vals","clojure.core/var-get","clojure.core/var-set","clojure.core/var?","clojure.core/vary-meta","clojure.core/vec","clojure.core/vector","clojure.core/vector-of","clojure.core/vector?","clojure.core/volatile!","clojure.core/volatile?","clojure.core/vreset!","clojure.core/with-bindings*","clojure.core/with-meta","clojure.core/with-redefs-fn","clojure.core/xml-seq","clojure.core/zero?","clojure.core/zipmap","coll?","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","dedupe","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-cause","ex-data","ex-info","ex-message","extend","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn?","fnext","fnil","force","format","frequencies","future-call","future-cancel","future-cancelled?","future-done?","future?","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","ifn?","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","long","long-array","longs","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy-call-with-super","proxy-mappings","proxy-name","push-thread-bindings","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read+string","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-tap","remove-watch","repeat","repeatedly","replace","replicate","require","requiring-resolve","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","tap>","test","the-ns","thread-bound?","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","with-bindings*","with-meta","with-redefs-fn","xml-seq","zero?","zipmap"]
\ , 'clojureMacro': ["->","->>","..","amap","and","areduce","as->","assert","binding","bound-fn","clojure.core/->","clojure.core/->>","clojure.core/..","clojure.core/amap","clojure.core/and","clojure.core/areduce","clojure.core/as->","clojure.core/assert","clojure.core/binding","clojure.core/bound-fn","clojure.core/comment","clojure.core/declare","clojure.core/delay","clojure.core/dosync","clojure.core/doto","clojure.core/extend-protocol","clojure.core/extend-type","clojure.core/for","clojure.core/future","clojure.core/gen-class","clojure.core/gen-interface","clojure.core/import","clojure.core/io!","clojure.core/lazy-cat","clojure.core/lazy-seq","clojure.core/letfn","clojure.core/locking","clojure.core/memfn","clojure.core/ns","clojure.core/or","clojure.core/proxy","clojure.core/proxy-super","clojure.core/pvalues","clojure.core/refer-clojure","clojure.core/reify","clojure.core/some->","clojure.core/some->>","clojure.core/sync","clojure.core/time","clojure.core/vswap!","clojure.core/with-bindings","clojure.core/with-in-str","clojure.core/with-loading-context","clojure.core/with-local-vars","clojure.core/with-open","clojure.core/with-out-str","clojure.core/with-precision","clojure.core/with-redefs","comment","declare","delay","dosync","doto","extend-protocol","extend-type","for","future","gen-class","gen-interface","import","io!","lazy-cat","lazy-seq","letfn","locking","memfn","ns","or","proxy","proxy-super","pvalues","refer-clojure","reify","some->","some->>","sync","time","vswap!","with-bindings","with-in-str","with-loading-context","with-local-vars","with-open","with-out-str","with-precision","with-redefs"]
\ , 'clojureRepeat': ["clojure.core/doseq","clojure.core/dotimes","clojure.core/while","doseq","dotimes","while"]
\ , 'clojureSpecial': [".","clojure.core/fn","clojure.core/let","clojure.core/loop","def","do","fn","if","let","loop","monitor-enter","monitor-exit","new","quote","recur","set!","var"]
@@ -102,7 +102,7 @@ syntax region clojureRegexpQuote start=/\\Q/ skip=/\\\\\|\\"/ end=/\\E/
" -*- CHARACTER PROPERTY CLASSES -*-
" Generated from https://github.com/clojure-vim/clojure.vim/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
-" Java version 15.0.2
+" Java version 17
syntax match clojureRegexpPosixCharClass "\v\\[pP]\{%(Cntrl|A%(l%(pha|num)|SCII)|Space|Graph|Upper|P%(rint|unct)|Blank|XDigit|Digit|Lower)\}" contained display
syntax match clojureRegexpJavaCharClass "\v\\[pP]\{java%(Whitespace|JavaIdentifier%(Part|Start)|SpaceChar|Mirrored|TitleCase|I%(SOControl|de%(ographic|ntifierIgnorable))|D%(efined|igit)|U%(pperCase|nicodeIdentifier%(Part|Start))|L%(etter%(OrDigit)?|owerCase)|Alphabetic)\}" contained display
syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(l%(owercase|etter)|hex%(digit|_digit)|w%(hite%(_space|space)|ord)|noncharacter%(_code_point|codepoint)|p%(rint|unctuation)|ideographic|graph|a%(l%(num|phabetic)|ssigned)|uppercase|join%(control|_control)|titlecase|blank|digit|control)\}" contained display
@@ -137,21 +137,24 @@ syntax keyword clojureCommentTodo contained FIXME XXX TODO BUG NOTE HACK FIXME:
syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell
syntax match clojureComment "#!.*$"
-
-" Comment forms highlight comment forms as comment. Based on: <https://git.sr.ht/~evhan/vim-scheme/>
-syntax region clojureComentReaderMacro matchgroup=clojureComentReaderMacro start=/#_[ ,\t\n`'~]*/ end=/[, \t\n()\[\]{}";]/me=e-1
-syntax region clojureComentReaderMacro matchgroup=clojureComentReaderMacro start=/#_[ ,\t\n`'~]*"/ skip=/\\[\\"]/ end=/"/
-syntax region clojureComentReaderMacro matchgroup=clojureComentReaderMacro start=/#_[ ,\t\n`'~]*(/ end=/)/ contains=clojureComentReaderMacroForm
-syntax region clojureComentReaderMacro matchgroup=clojureComentReaderMacro start=/#_[ ,\t\n`'~]*\[/ end=/\]/ contains=clojureComentReaderMacroForm
-syntax region clojureComentReaderMacro matchgroup=clojureComentReaderMacro start=/#_[ ,\t\n`'~]*{/ end=/}/ contains=clojureComentReaderMacroForm
-
-syntax region clojureComentReaderMacroForm start="(" end=")" contained contains=clojureComentReaderMacroForm
-syntax region clojureComentReaderMacroForm start="{" end="}" contained contains=clojureComentReaderMacroForm
-syntax region clojureComentReaderMacroForm start="\[" end="\]" contained contains=clojureComentReaderMacroForm
+syntax match clojureComment ","
+
+" Comment out discarded forms. <https://clojure.org/guides/weird_characters#_discard>
+if exists('g:clojure_discard_macro') && g:clojure_discard_macro
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*/ end=/[, \t\n()\[\]{}";]/me=e-1
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*"/ skip=/\\[\\"]/ end=/"/
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*(/ end=/)/ contains=clojureDiscardForm
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*\[/ end=/\]/ contains=clojureDiscardForm
+ syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*{/ end=/}/ contains=clojureDiscardForm
+
+ syntax region clojureDiscardForm start="(" end=")" contained contains=clojureDiscardForm
+ syntax region clojureDiscardForm start="{" end="}" contained contains=clojureDiscardForm
+ syntax region clojureDiscardForm start="\[" end="\]" contained contains=clojureDiscardForm
+endif
" -*- TOP CLUSTER -*-
" Generated from https://github.com/clojure-vim/clojure.vim/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
-syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector,clojureComentReaderMacro
+syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDiscard,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector
syntax region clojureSexp matchgroup=clojureParen start="(" end=")" contains=@clojureTop fold
syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold
@@ -206,8 +209,8 @@ highlight default link clojureDispatch SpecialChar
highlight default link clojureComment Comment
highlight default link clojureCommentTodo Todo
-highlight default link clojureComentReaderMacro clojureComment
-highlight default link clojureComentReaderMacroForm clojureComentReaderMacro
+highlight default link clojureDiscard clojureComment
+highlight default link clojureDiscardForm clojureDiscard
highlight default link clojureError Error
diff --git a/syntax/csc.vim b/syntax/csc.vim
index 1d775e06..04f58950 100644
--- a/syntax/csc.vim
+++ b/syntax/csc.vim
@@ -145,7 +145,7 @@ sy keyword cscBPMacro contained EndLoop AllMembers SelectedMembers If Else EndIf
sy match cscBPMacro contained "!"
sy match cscBPW "!\s*\a*" contains=cscBPmacro
-" when wanted, highlighting lhs members or erros in asignments (may lag the editing)
+" when wanted, highlighting lhs members or errors in assignments (may lag the editing)
if exists("csc_asignment")
sy match cscEqError '\("[^"]*"\s*\|[^][\t !%()*+,--/:;<=>{}~]\+\s*\|->\s*\)*=\([^=]\@=\|$\)'
sy region cscFormula transparent matchgroup=cscVarName start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\s*=\([^=]\@=\|\n\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition
diff --git a/syntax/css.vim b/syntax/css.vim
index ba7f4595..ccaa6d69 100644
--- a/syntax/css.vim
+++ b/syntax/css.vim
@@ -6,12 +6,12 @@ endif
" Language: Cascading Style Sheets
" Previous Contributor List:
" Jules Wang <w.jq0722@gmail.com>
-" Claudio Fleiner <claudio@fleiner.com> (Maintainer)
+" Claudio Fleiner <claudio@fleiner.com>
" Yeti (Add full CSS2, HTML4 support)
" Nikolai Weibull (Add CSS2 support)
-" URL: https://github.com/jsit/css.vim
+" URL: https://github.com/vim-language-dept/css-syntax.vim
" Maintainer: Jay Sitter <jay@jaysitter.com>
-" Last Change: 2019 Jul. 29
+" Last Change: 2021 Oct 20
" quit when a syntax file was already loaded
if !exists("main_syntax")
@@ -27,6 +27,8 @@ let s:cpo_save = &cpo
set cpo&vim
syn case ignore
+" Add dash to allowed keyword characters.
+syn iskeyword @,48-57,_,192-255,-
" HTML4 tags
syn keyword cssTagName abbr address area a b base
@@ -36,7 +38,7 @@ syn keyword cssTagName dfn div dl dt em fieldset form
syn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
syn keyword cssTagName iframe input ins isindex kbd label legend li
syn keyword cssTagName link map menu meta noscript ol optgroup
-syn keyword cssTagName option p param pre q s samp script small
+syn keyword cssTagName option p param picture pre q s samp script small
syn keyword cssTagName span strong sub sup tbody td
syn keyword cssTagName textarea tfoot th thead title tr ul u var
syn keyword cssTagName object svg
@@ -118,7 +120,7 @@ syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFac
syn case ignore
syn match cssImportant contained "!\s*important\>"
-syn match cssCustomProp contained "--[a-zA-Z0-9-_]*"
+syn match cssCustomProp contained "\<--[a-zA-Z0-9-_]*\>"
syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<currentColor\>"
@@ -128,10 +130,11 @@ syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
+syn region cssMathGroup contained matchgroup=cssMathParens start="(" end=")" containedin=cssFunction,cssMathGroup contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
-syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
+syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\|conic-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(blur\|brightness\|contrast\|drop-shadow\|grayscale\|hue-rotate\|invert\|opacity\|saturate\|sepia\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
@@ -224,7 +227,7 @@ syn keyword cssFlexibleBoxProp contained order
syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
-syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"
+syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\|evenly\)\)\=\>"
" CSS Fonts Module Level 3
" http://www.w3.org/TR/css-fonts-3/
@@ -238,9 +241,7 @@ syn keyword cssFontAttr contained larger smaller
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
" font-family attributes
-syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
-syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
-syn keyword cssFontAttr contained cursive fantasy monospace
+syn keyword cssFontAttr contained sans-serif serif cursive fantasy monospace
" font-feature-settings attributes
syn keyword cssFontAttr contained on off
" font-stretch attributes
@@ -287,6 +288,7 @@ syn match cssGridProp contained "\<grid\>"
syn match cssGridProp contained "\<grid-template\(-\(columns\|rows\|areas\)\)\=\>"
syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
syn match cssGridProp contained "\<grid-\(area\|gap\)\>"
+syn match cssGridProp contained "\<gap\>"
syn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>"
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
@@ -298,6 +300,10 @@ syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic
syn keyword cssListAttr contained disc circle square hebrew armenian georgian
syn keyword cssListAttr contained inside outside
+" object-fit https://www.w3.org/TR/css-images-3/#the-object-fit
+syn match cssObjectProp contained "\<object-\(fit\|position\)\>"
+syn keyword cssObjectAttr contained fill contain cover scale-down
+
syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>"
@@ -307,7 +313,7 @@ syn keyword cssPositioningAttr contained left right both
syn match cssPositioningAttr contained "\<list-item\>"
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
syn match cssPositioningAttr contained "\<flow\(-root\)\=\>"
-syn keyword cssPositioningAttr contained static relative absolute fixed subgrid
+syn keyword cssPositioningAttr contained static relative absolute fixed subgrid sticky
syn keyword cssPrintAttr contained landscape portrait crop cross always
@@ -394,9 +400,9 @@ syn match cssUIAttr contained '\<preserve-3d\>'
syn match cssIEUIAttr contained '\<bicubic\>'
" Webkit/iOS specific properties
-syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
+syn match cssUIProp contained '\<\(tap-highlight-color\|user-select\|touch-callout\)\>'
" IE specific properties
-syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
+syn match cssIEUIProp contained '\<\(interpolation-mode\|zoom\|filter\)\>'
" Webkit/Firebox specific properties/attributes
syn keyword cssUIProp contained appearance
@@ -422,11 +428,15 @@ syn keyword cssAuralAttr contained male female child code digits continuous
syn match cssMobileTextProp contained "\<text-size-adjust\>"
syn keyword cssMediaProp contained width height orientation scan
-syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
-syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
-syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
-syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
+syn keyword cssMediaProp contained any-hover any-pointer color-gamut grid hover
+syn keyword cssMediaProp contained overflow-block overflow-inline pointer update
+syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio\>/
+syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-pixel-ratio\>/
+syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-\(height\|width\)\>/
+syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)\>/
syn keyword cssMediaAttr contained portrait landscape progressive interlace
+syn keyword cssMediaAttr contained coarse fast fine hover infinite p3 paged
+syn keyword cssMediaAttr contained rec2020 scroll slow srgb
syn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition
syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
syn keyword cssPageProp contained content size
@@ -444,17 +454,17 @@ syn match cssBraceError "}"
syn match cssAttrComma ","
" Pseudo class
-" http://www.w3.org/TR/css3-selectors/
+" https://www.w3.org/TR/selectors-4/
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
syn keyword cssPseudoClassId contained link visited active hover before after left right
-syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
+syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid
syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
-syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ
+syn match cssPseudoClassId contained "\<focus\(-within\|-visible\)\=\>"
+syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier
" ------------------------------------
" Vendor specific properties
syn match cssPseudoClassId contained "\<selection\>"
-syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
" Misc highlight groups
@@ -552,6 +562,7 @@ hi def link cssMarqueeProp cssProp
hi def link cssMultiColumnProp cssProp
hi def link cssPagedMediaProp cssProp
hi def link cssPositioningProp cssProp
+hi def link cssObjectProp cssProp
hi def link cssPrintProp cssProp
hi def link cssRubyProp cssProp
hi def link cssSpeechProp cssProp
@@ -585,6 +596,7 @@ hi def link cssMultiColumnAttr cssAttr
hi def link cssPaddingAttr cssAttr
hi def link cssPagedMediaAttr cssAttr
hi def link cssPositioningAttr cssAttr
+hi def link cssObjectAttr cssAttr
hi def link cssGradientAttr cssAttr
hi def link cssPrintAttr cssAttr
hi def link cssRubyAttr cssAttr
diff --git a/syntax/cupl.vim b/syntax/cupl.vim
index 8ad97a81..913e6579 100644
--- a/syntax/cupl.vim
+++ b/syntax/cupl.vim
@@ -27,7 +27,7 @@ syn keyword cuplTodo contained TODO XXX FIXME
" cuplHeaderContents uses default highlighting except for numbers
syn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained
-" String contstants
+" String constants
syn region cuplString start=+'+ end=+'+
syn region cuplString start=+"+ end=+"+
diff --git a/syntax/debchangelog.vim b/syntax/debchangelog.vim
index a6b5c871..7b0f6528 100644
--- a/syntax/debchangelog.vim
+++ b/syntax/debchangelog.vim
@@ -7,7 +7,7 @@ endif
" Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2021 Aug 03
+" Last Change: 2021 Oct 19
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
" Standard syntax initialization
@@ -28,7 +28,8 @@ let s:supported = [
\ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
\ 'trixie', 'sid', 'rc-buggy',
\
- \ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'devel'
+ \ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'jammy',
+ \ 'devel'
\ ]
let s:unsupported = [
\ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
diff --git a/syntax/debsources.vim b/syntax/debsources.vim
index f8ed8d99..9929e629 100644
--- a/syntax/debsources.vim
+++ b/syntax/debsources.vim
@@ -6,7 +6,7 @@ endif
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2021 Aug 03
+" Last Change: 2021 Oct 19
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
" Standard syntax initialization
@@ -30,7 +30,8 @@ let s:supported = [
\ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
\ 'trixie', 'sid', 'rc-buggy',
\
- \ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'devel'
+ \ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'jammy',
+ \ 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
diff --git a/syntax/django.vim b/syntax/django.vim
index 82e50070..2bf08fac 100644
--- a/syntax/django.vim
+++ b/syntax/django.vim
@@ -5,7 +5,7 @@ endif
" Vim syntax file
" Language: Django template
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
-" Last Change: 2014 Jul 13
+" Last Change: 2021 Nov 29
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -35,6 +35,7 @@ syn keyword djangoStatement contained closecomment widthratio url with endwith
syn keyword djangoStatement contained get_current_language trans noop blocktrans
syn keyword djangoStatement contained endblocktrans get_available_languages
syn keyword djangoStatement contained get_current_language_bidi plural
+syn keyword djangoStatement contained translate blocktranslate endblocktranslate
" Django templete built-in filters
syn keyword djangoFilter contained add addslashes capfirst center cut date
diff --git a/syntax/dosbatch.vim b/syntax/dosbatch.vim
index ce7bfed7..79506222 100644
--- a/syntax/dosbatch.vim
+++ b/syntax/dosbatch.vim
@@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'dosbatch', 'syntax/dosbatch.v
endif
" Vim syntax file
-" Language: MSDOS batch file (with NT command extensions)
+" Language: MS-DOS batch file (with NT command extensions)
" Maintainer: Mike Williams <mrw@eandem.co.uk>
" Filenames: *.bat
" Last Change: 6th September 2009
diff --git a/syntax/elixir.vim b/syntax/elixir.vim
index 5928805b..22e0e5ed 100644
--- a/syntax/elixir.vim
+++ b/syntax/elixir.vim
@@ -119,6 +119,7 @@ syntax include @HTML syntax/html.vim
unlet b:current_syntax
syntax region elixirLiveViewSigil matchgroup=elixirSigilDelimiter keepend start=+\~L\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold
syntax region elixirSurfaceSigil matchgroup=elixirSigilDelimiter keepend start=+\~H\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold
+syntax region elixirSurfaceSigil matchgroup=elixirSigilDelimiter keepend start=+\~F\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold
syntax region elixirPhoenixESigil matchgroup=elixirSigilDelimiter keepend start=+\~E\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold
syntax region elixirPhoenixeSigil matchgroup=elixirSigilDelimiter keepend start=+\~e\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold
diff --git a/syntax/focexec.vim b/syntax/focexec.vim
index c2ae774a..d7a18403 100644
--- a/syntax/focexec.vim
+++ b/syntax/focexec.vim
@@ -12,7 +12,7 @@ endif
" this is a very simple syntax file - I will be improving it
" one thing is how to do computes
" I don't like that &vars and FUSE() functions highlight to the same color
-" I think some of these things should get different hilights -
+" I think some of these things should get different highlights -
" should MODIFY commands look different than TABLE?
" quit when a syntax file was already loaded
diff --git a/syntax/forth.vim b/syntax/forth.vim
index 4090be42..94bb78be 100644
--- a/syntax/forth.vim
+++ b/syntax/forth.vim
@@ -185,7 +185,7 @@ syn keyword forthMath DECIMAL HEX BASE
syn match forthInteger '\<-\=[0-9]\+.\=\>'
syn match forthInteger '\<&-\=[0-9]\+.\=\>'
" recognize hex and binary numbers, the '$' and '%' notation is for gforth
-syn match forthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
+syn match forthInteger '\<\$\x*\x\+\>' " *1* --- don't mess
syn match forthInteger '\<\x*\d\x*\>' " *2* --- this order!
syn match forthInteger '\<%[0-1]*[0-1]\+\>'
syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe]\d\+\>'
diff --git a/syntax/gdb.vim b/syntax/gdb.vim
index 587274fd..0e0931bf 100644
--- a/syntax/gdb.vim
+++ b/syntax/gdb.vim
@@ -6,7 +6,8 @@ endif
" Language: GDB command files
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/gdb.vim
-" Last Change: 2012 Oct 05
+" Last Change: 2021 Nov 15
+" Additional changes by Simon Sobisch
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -25,19 +26,19 @@ syn match gdbInfo contained "all-registers"
syn keyword gdbStatement contained actions apply attach awatch backtrace break bt call catch cd clear collect commands
-syn keyword gdbStatement contained complete condition continue delete detach directory disable disassemble display down
+syn keyword gdbStatement contained complete condition continue delete detach directory disable disas[semble] disp[lay] down
syn keyword gdbStatement contained echo else enable end file finish frame handle hbreak help if ignore
syn keyword gdbStatement contained inspect jump kill list load maintenance make next nexti ni output overlay
-syn keyword gdbStatement contained passcount path print printf ptype pwd quit rbreak remote return run rwatch
-syn keyword gdbStatement contained search section set sharedlibrary shell show si signal source step stepi stepping
+syn keyword gdbStatement contained passcount path print printf ptype python pwd quit rbreak remote return run rwatch
+syn keyword gdbStatement contained search section set sharedlibrary shell show si signal skip source step stepi stepping
syn keyword gdbStatement contained stop target tbreak tdump tfind thbreak thread tp trace tstart tstatus tstop
-syn keyword gdbStatement contained tty undisplay unset until up watch whatis where while ws x
+syn keyword gdbStatement contained tty und[isplay] unset until up watch whatis where while ws x
syn match gdbFuncDef "\<define\>.*"
syn match gdbStatmentContainer "^\s*\S\+" contains=gdbStatement,gdbFuncDef
syn match gdbStatement "^\s*info" nextgroup=gdbInfo skipwhite skipempty
" some commonly used abbreviations
-syn keyword gdbStatement c disp undisp disas p
+syn keyword gdbStatement c cont p py
syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end\s*$"
diff --git a/syntax/git.vim b/syntax/git.vim
index 16a86a6a..66a77c20 100644
--- a/syntax/git.vim
+++ b/syntax/git.vim
@@ -52,39 +52,39 @@ syn match gitDiffRemoved "\[-[^]]*-\]" contained containedin=gitDiff
syn match gitKeyword /^commit \@=/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
syn match gitKeyword /^\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitHead nextgroup=gitHash skipwhite contains=@NoSpell
syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
-syn match gitIdentityKeyword /^\%(author\|committer\|tagger\) \@=/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
-syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
-syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
+syn match gitIdentityKeyword /^\%(author\|committer\|tagger\) \@=/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell
+syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell
+syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite contains=@NoSpell
syn match gitKeyword /^[*|\/\\_ ]\+\zscommit \@=/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
syn match gitKeyword /^[|\/\\_ ]\+\zs\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitGraph nextgroup=gitHash skipwhite contains=@NoSpell
syn match gitKeyword /^[|\/\\_ ]\+\zsMerge:/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
-syn match gitIdentityKeyword /^[|\/\\_ ]\+\zs\%(author\|committer\|tagger\) \@=/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite
-syn match gitIdentityHeader /^[|\/\\_ ]\+\zs\%(Author\|Commit\|Tagger\):/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite
-syn match gitDateHeader /^[|\/\\_ ]\+\zs\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitGraph nextgroup=gitDate skipwhite
+syn match gitIdentityKeyword /^[|\/\\_ ]\+\zs\%(author\|committer\|tagger\) \@=/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell
+syn match gitIdentityHeader /^[|\/\\_ ]\+\zs\%(Author\|Commit\|Tagger\):/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell
+syn match gitDateHeader /^[|\/\\_ ]\+\zs\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitGraph nextgroup=gitDate skipwhite contains=@NoSpell
syn match gitKeyword /^type \@=/ contained containedin=gitHead nextgroup=gitType skipwhite contains=@NoSpell
syn match gitKeyword /^\%(summary\|boundary\|filename\|\%(author\|committer\)-\%(time\|tz\)\) \@=/ contained containedin=gitHead skipwhite contains=@NoSpell
syn match gitKeyword /^tag \@=/ contained containedin=gitHead nextgroup=gitReference skipwhite contains=@NoSpell
-syn match gitIdentityKeyword /^\%(author\|committer\)-mail \@=/ contained containedin=gitHead nextgroup=gitEmail skipwhite
-syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
-syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
-syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity
+syn match gitIdentityKeyword /^\%(author\|committer\)-mail \@=/ contained containedin=gitHead nextgroup=gitEmail skipwhite contains=@NoSpell
+syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite contains=@NoSpell
+syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite contains=@NoSpell
+syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity contains=@NoSpell
-syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
-syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
-syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
-syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained
-syn match gitDate /\<\d\+ \l\+ ago\>/ contained
-syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHashAbbrev skipwhite
-syn match gitReference /\S\+\S\@!/ contained
+syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite contains=@NoSpell
+syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity contains=@NoSpell
+syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained contains=@NoSpell
+syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained contains=@NoSpell
+syn match gitDate /\<\d\+ \l\+ ago\>/ contained contains=@NoSpell
+syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
+syn match gitReference /\S\+\S\@!/ contained contains=@NoSpell
syn match gitHash /\<\x\{40,\}\>/ contained nextgroup=gitIdentity,gitHash skipwhite contains=@NoSpell
syn match gitReflogOld /^\x\{40,\} \@=/ contained nextgroup=gitReflogNew skipwhite contains=@NoSpell
syn match gitReflogNew /\<\x\{40,\} \@=/ contained nextgroup=gitIdentity skipwhite contains=@NoSpell
syn match gitHashAbbrev /\<\x\{4,\}\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
syn match gitHashStage /\<\x\{4,\}\>/ contained nextgroup=gitStage skipwhite contains=@NoSpell
-syn match gitStage /\<\d\t\@=/ contained
+syn match gitStage /\<\d\t\@=/ contained contains=@NoSpell
syn match gitNotesHeader /^Notes:\ze\n /
diff --git a/syntax/gitcommit.vim b/syntax/gitcommit.vim
index 842c453d..3839fffb 100644
--- a/syntax/gitcommit.vim
+++ b/syntax/gitcommit.vim
@@ -12,6 +12,8 @@ if exists("b:current_syntax")
finish
endif
+scriptencoding utf-8
+
syn case match
syn sync minlines=50
syn sync linebreaks=1
@@ -21,62 +23,69 @@ if has("spell")
endif
syn include @gitcommitDiff syntax/diff.vim
-syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold contains=@gitcommitDiff
+syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@gitcommitDiff
syn match gitcommitSummary "^.*\%<51v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
syn match gitcommitOverflow ".*" contained contains=@Spell
-syn match gitcommitBlank "^[^#].*" contained contains=@Spell
-
-syn match gitcommitTrailers "\n\@<=\n\%([[:alnum:]-]\+\s*:.*\|(cherry picked from commit .*\)\%(\n\s.*\|\n[[:alnum:]-]\+\s*:.*\|\n(cherry picked from commit .*\)*\%(\n\n*#\|\n*\%$\)\@="
-syn match gitcommitTrailerToken "^[[:alnum:]-]\+\s*:" contained containedin=gitcommitTrailers
+syn match gitcommitBlank "^.\+" contained contains=@Spell
+syn match gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank,gitcommitComment skipnl
+
+let s:scissors = 0
+let s:l = search('^[#;@!$%^&|:] -\{24,\} >8 -\{24,\}$', 'cnW', '', 100)
+if s:l == 0
+ let s:l = line('$')
+elseif getline(s:l)[0] !=# getline(s:l - 1)[0]
+ let s:scissors = 1
+endif
+let s:comment = escape((matchstr(getline(s:l), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')
-if get(b:, "gitcommit_cleanup", get(g:, "gitcommit_cleanup", "")) is# "scissors"
- syn match gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank skipnl
- syn region gitcommitComment start=/^# -\+ >8 -\+$/ end=/\%$/ contains=gitcommitDiff
+if s:scissors
+ let s:comment .= ' -\{24,\} >8 -\{24,\}$'
+ exe 'syn region gitcommitComment start="^' . s:comment . '" end="\%$" contains=gitcommitDiff'
else
- syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl
- syn match gitcommitComment "^#.*"
+ exe 'syn match gitcommitComment "^' . s:comment . '.*"'
endif
+exe 'syn match gitcommitTrailers "\n\@<=\n\%([[:alnum:]-]\+\s*:.*\|(cherry picked from commit .*\)\%(\n\s.*\|\n[[:alnum:]-]\+\s*:.*\|\n(cherry picked from commit .*\)*\%(\n\n*\%(' . s:comment . '\)\|\n*\%$\)\@="'
-syn match gitcommitHash "\<\x\{40,}\>" contains=@NoSpell display
-syn match gitcommitHead "^\%(# .*\n\)\+#$" contained transparent
-syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
-syn match gitcommitOnBranch "\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
-syn match gitcommitBranch "[^ ']\+" contained
-syn match gitcommitNoBranch "\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment
-syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment
-syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^# \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
-syn match gitcommitNoChanges "\%(^# \)\@<=No changes$" contained containedin=gitcommitComment
-
-syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
-syn match gitcommitUntrackedFile "\t\@<=.*" contained
-
-syn region gitcommitDiscarded start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
-syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
-syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
+unlet s:l s:comment s:scissors
+syn match gitcommitTrailerToken "^[[:alnum:]-]\+\s*:" contained containedin=gitcommitTrailers
-syn match gitcommitDiscardedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
-syn match gitcommitSelectedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
-syn match gitcommitUnmergedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
-syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
-syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
-syn match gitcommitUnmergedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+syn match gitcommitHash "\<\x\{40,}\>" contains=@NoSpell display
+syn match gitcommitOnBranch "\%(^. \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+syn match gitcommitOnBranch "\%(^. \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+syn match gitcommitBranch "[^ ']\+" contained
+syn match gitcommitNoBranch "\%(^. \)\@<=Not currently on any branch." contained containedin=gitcommitComment
+syn match gitcommitHeader "\%(^. \)\@<=\S.*[::]\%(\n^$\)\@!$" contained containedin=gitcommitComment
+syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^. \)\@<=\%(Author\|Committer\|Date\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
+syn match gitcommitHeader "\%(^. \)\@<=commit\%( \x\{40,\}$\)\@=" contained containedin=gitcommitComment nextgroup=gitcommitHash skipwhite
+syn match gitcommitNoChanges "\%(^. \)\@<=No changes$" contained containedin=gitcommitComment
+
+syn match gitcommitType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained containedin=gitcommitComment nextgroup=gitcommitFile skipwhite
+syn match gitcommitFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitArrow
+syn match gitcommitArrow " -> " contained nextgroup=gitcommitFile
+syn match gitcommitUntrackedFile "\%(^.\t\)\@<=[^::/]*\%(/.*\)\=$" contained containedin=gitcommitComment
+
+syn region gitcommitUntracked start=/^\z(.\) Untracked files:$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
+syn region gitcommitDiscarded start=/^\z(.\) Change\%(s not staged for commit\|d but not updated\):$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader,gitcommitDiscardedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
+syn region gitcommitSelected start=/^\z(.\) Changes to be committed:$/ end=/^\z1$\|^\z1\@!/ contains=gitcommitHeader,gitcommitSelectedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
+syn region gitcommitUnmerged start=/^\z(.\) Unmerged paths:$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader,gitcommitUnmergedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold
+
+syn match gitcommitUntrackedFile "\%(^.\t\)\@<=.*" contained containedin=gitcommitUntracked
+
+syn match gitcommitDiscardedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitDiscardedFile skipwhite
+syn match gitcommitSelectedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitSelectedFile skipwhite
+syn match gitcommitUnmergedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitUnmergedFile skipwhite
+syn match gitcommitDiscardedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
+syn match gitcommitSelectedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+syn match gitcommitUnmergedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitUnmergedArrow
syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile
syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile
-syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitSelectedFile
-
-syn match gitcommitWarning "\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl
-syn match gitcommitWarning "^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
-syn match gitcommitWarning "^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"
+syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitUnmergedFile
hi def link gitcommitSummary Keyword
hi def link gitcommitTrailerToken Label
hi def link gitcommitComment Comment
-hi def link gitcommitUntracked gitcommitComment
-hi def link gitcommitDiscarded gitcommitComment
-hi def link gitcommitSelected gitcommitComment
-hi def link gitcommitUnmerged gitcommitComment
hi def link gitcommitHash Identifier
hi def link gitcommitOnBranch Comment
hi def link gitcommitBranch Special
diff --git a/syntax/gitrebase.vim b/syntax/gitrebase.vim
index 762c2f44..c042f193 100644
--- a/syntax/gitrebase.vim
+++ b/syntax/gitrebase.vim
@@ -14,6 +14,8 @@ endif
syn case match
+let s:c = escape((matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')
+
syn match gitrebaseHash "\v<\x{7,}>" contained contains=@NoSpell
syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite contains=@NoSpell
syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite
@@ -30,14 +32,15 @@ syn match gitrebaseLabel "\v^l(abel)=>" nextgroup=gitrebaseName skipwhite
syn match gitrebaseReset "\v^(t|reset)=>" nextgroup=gitrebaseName skipwhite
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
syn match gitrebaseCommand ".*" contained
-syn match gitrebaseEmpty " \zs# empty$" containedin=gitrebaseSummary contained
-syn match gitrebaseComment "# " containedin=gitrebaseEmpty contained
-syn match gitrebaseComment "^\s*#.*" contains=gitrebaseHash
+exe 'syn match gitrebaseComment " \@<=' . s:c . ' empty$" containedin=gitrebaseSummary contained'
+exe 'syn match gitrebaseComment "^\s*' . s:c . '.*" contains=gitrebaseHash'
syn match gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite
syn match gitrebaseMergeOption "\v-[Cc]>" nextgroup=gitrebaseMergeCommit skipwhite contained
syn match gitrebaseMergeCommit "\v<\x{7,}>" nextgroup=gitrebaseName skipwhite contained
syn match gitrebaseName "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained
-syn match gitrebaseMergeComment "#" nextgroup=gitrebaseSummary skipwhite contained
+exe 'syn match gitrebaseMergeComment "' . s:c . '" nextgroup=gitrebaseSummary skipwhite contained'
+
+unlet s:c
hi def link gitrebaseCommit gitrebaseHash
hi def link gitrebaseHash Identifier
@@ -54,7 +57,6 @@ hi def link gitrebaseMerge Exception
hi def link gitrebaseLabel Label
hi def link gitrebaseReset Keyword
hi def link gitrebaseSummary String
-hi def link gitrebaseEmpty Error
hi def link gitrebaseComment Comment
hi def link gitrebaseSquashError Error
hi def link gitrebaseMergeCommit gitrebaseCommit
diff --git a/syntax/glsl.vim b/syntax/glsl.vim
index eee593f1..34230a91 100644
--- a/syntax/glsl.vim
+++ b/syntax/glsl.vim
@@ -454,6 +454,7 @@ syn keyword glslBuiltinVariable gl_TextureMatrixInverseTranspose
syn keyword glslBuiltinVariable gl_TextureMatrixTranspose
syn keyword glslBuiltinVariable gl_Vertex
syn keyword glslBuiltinVariable gl_VertexID
+syn keyword glslBuiltinVariable gl_VertexIndex
syn keyword glslBuiltinVariable gl_ViewportIndex
syn keyword glslBuiltinVariable gl_WorkGroupID
syn keyword glslBuiltinVariable gl_WorkGroupSize
diff --git a/syntax/go.vim b/syntax/go.vim
index 1bca27c2..c4861715 100644
--- a/syntax/go.vim
+++ b/syntax/go.vim
@@ -108,6 +108,8 @@ else
syn region goRawString start=+`+ end=+`+
endif
+syn match goImportString /^\%(\s\+\|import \)\(\h\w* \)\?\zs"[^"]\+"$/ contained containedin=goImport
+
if go#config#HighlightFormatStrings()
" [n] notation is valid for specifying explicit argument indexes
" 1. Match a literal % not preceded by a %.
@@ -125,6 +127,7 @@ if go#config#HighlightFormatStrings()
hi def link goFormatSpecifier goSpecialString
endif
+hi def link goImportString String
hi def link goString String
hi def link goRawString String
@@ -144,9 +147,9 @@ endif
" import
if go#config#FoldEnable('import')
- syn region goImport start='import (' end=')' transparent fold contains=goImport,goString,goComment
+ syn region goImport start='import (' end=')' transparent fold contains=goImport,goImportString,goComment
else
- syn region goImport start='import (' end=')' transparent contains=goImport,goString,goComment
+ syn region goImport start='import (' end=')' transparent contains=goImport,goImportString,goComment
endif
" var, const
@@ -277,10 +280,11 @@ hi def link goOperator Operator
" Functions;
if go#config#HighlightFunctions() || go#config#HighlightFunctionParameters()
syn match goDeclaration /\<func\>/ nextgroup=goReceiver,goFunction,goSimpleParams skipwhite skipnl
+ syn match goReceiverDecl /(\s*\zs\%(\%(\w\+\s\+\)\?\*\?\w\+\)\ze\s*)/ contained contains=goReceiverVar,goReceiverType,goPointerOperator
syn match goReceiverVar /\w\+\ze\s\+\%(\w\|\*\)/ nextgroup=goPointerOperator,goReceiverType skipwhite skipnl contained
syn match goPointerOperator /\*/ nextgroup=goReceiverType contained skipwhite skipnl
syn match goFunction /\w\+/ nextgroup=goSimpleParams contained skipwhite skipnl
- syn match goReceiverType /\w\+/ contained
+ syn match goReceiverType /\w\+\ze\s*)/ contained
if go#config#HighlightFunctionParameters()
syn match goSimpleParams /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType nextgroup=goFunctionReturn skipwhite skipnl
syn match goFunctionReturn /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType skipwhite skipnl
@@ -290,7 +294,7 @@ if go#config#HighlightFunctions() || go#config#HighlightFunctionParameters()
hi def link goReceiverVar goParamName
hi def link goParamName Identifier
endif
- syn match goReceiver /(\s*\w\+\%(\s\+\*\?\s*\w\+\)\?\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverVar skipwhite skipnl
+ syn match goReceiver /(\s*\%(\w\+\s\+\)\?\*\?\s*\w\+\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverDecl skipwhite skipnl
else
syn keyword goDeclaration func
endif
@@ -351,7 +355,7 @@ endif
" Build Constraints
if go#config#HighlightBuildConstraints()
- syn match goBuildKeyword display contained "+build"
+ syn match goBuildKeyword display contained "+build\|go:build"
" Highlight the known values of GOOS, GOARCH, and other +build options.
syn keyword goBuildDirectives contained
\ android darwin dragonfly freebsd linux nacl netbsd openbsd plan9
@@ -365,7 +369,7 @@ if go#config#HighlightBuildConstraints()
" The rs=s+2 option lets the \s*+build portion be part of the inner region
" instead of the matchgroup so it will be highlighted as a goBuildKeyword.
syn region goBuildComment matchgroup=goBuildCommentStart
- \ start="//\s*+build\s"rs=s+2 end="$"
+ \ start="//\(\s*+build\s\|go:build\)"rs=s+2 end="$"
\ contains=goBuildKeyword,goBuildDirectives
hi def link goBuildCommentStart Comment
hi def link goBuildDirectives Type
diff --git a/syntax/hamster.vim b/syntax/hamster.vim
index dda5dd48..35750f60 100644
--- a/syntax/hamster.vim
+++ b/syntax/hamster.vim
@@ -13,7 +13,7 @@ endif
" It allows the use of multiple news- and mailserver and combines them to one
" mail- and newsserver for the news/mail-client. It load faster than a normal
" newsreader because many threads can run simultaneous. It contains scorefile
-" for news and mail, a build-in script language, the GUI allows translation to
+" for news and mail, a built-in script language, the GUI allows translation to
" other languages, it can be used in a network and that's not all features...
"
" quit when a syntax file was already loaded
diff --git a/syntax/helm.vim b/syntax/helm.vim
index 85d82edc..06265a86 100644
--- a/syntax/helm.vim
+++ b/syntax/helm.vim
@@ -74,7 +74,7 @@ hi def link goImaginary Number
syn cluster gotplLiteral contains=goString,goRawString,goCharacter,@goInt,goFloat,goImaginary
syn keyword gotplControl contained if else end range with template include tpl required define
syn keyword gotplFunctions contained and call html index js len not or print printf println urlquery eq ne lt le gt ge
-syn keyword goSprigFunctions contained abbrev abbrevboth add add1 adler32sum ago append atoi b32dec b32enc b64dec b64enc base biggest buildCustomCert camelcase cat ceil clean coalesce \contains compact date dateInZone dateModify date_in_zone date_modify default derivePassword dict dir div empty ext fail first float64 floor fromJson fromYaml genCA genPrivateKey genSelfSignedCert genSignedCert has hasKey hasPrefix hasSuffix hello htmlDate htmlDateInZone indent initial initials int int64 isAbs join kebabcase keys kindIs kindOf last list lower max merge mergeOverwrite min mod mul nindent nospace now omit pick pluck plural prepend quote randAlpha randAlphaNum randAscii randNumeric regexFind regexFindAll regexMatch regexReplaceAll regexReplaceAllLiteral regexSplit repeat replace rest reverse round semver semverCompare set sha1sum sha256sum shuffle slice snakecase sortAlpha split splitList splitn squote sub substr swapcase ternary title toDate toJson toPrettyJson toString toStrings toToml toYaml trim trimAll trimPrefix trimSuffix trimall trunc tuple typeIs typeIsLike typeOf uniq unixEpoch unset until untilStep untitle upper uuidv4 values without wrap wrapWith
+syn keyword goSprigFunctions contained abbrev abbrevboth add add1 adler32sum ago append atoi b32dec b32enc b64dec b64enc base biggest buildCustomCert bcrypt camelcase cat ceil clean coalesce \contains compact chunk date dateInZone dateModify date_in_zone date_modify default derivePassword dict dir div dig deepCopy decryptAES encryptAES env expandenv empty ext fail first float64 floor fromJson fromYaml genCA genCAWithKey genPrivateKey genSelfSignedCert genSelfSignedCertWithKey genSignedCert genSignedCertWithKey getHostByName has hasKey hasPrefix hasSuffix hello htmlDate htmlDateInZone htpasswd indent initial initials int int64 isAbs join kebabcase keys kindIs kindOf last list lower max merge mergeOverwrite min mod mul nindent nospace now omit pick pluck plural prepend quote randAlpha randAlphaNum randAscii randNumeric randBytes regexFind regexFindAll regexMatch regexReplaceAll regexReplaceAllLiteral regexSplit repeat replace rest reverse round semver semverCompare set sha1sum sha256sum shuffle slice snakecase sortAlpha split splitList splitn squote sub substr swapcase ternary title toDate toJson toPrettyJson toString toStrings toToml toYaml trim trimAll trimPrefix trimSuffix trimall trunc tuple typeIs typeIsLike typeOf uniq unixEpoch unset until untilStep untitle upper uuidv4 values without wrap wrapWith
syn match gotplVariable contained /\$[a-zA-Z0-9_]*\>/
syn match goTplIdentifier contained /\.[^\s}]+\>/
diff --git a/syntax/help.vim b/syntax/help.vim
index 9f7fc101..5a39fd99 100644
--- a/syntax/help.vim
+++ b/syntax/help.vim
@@ -5,7 +5,7 @@ endif
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
-" Last Change: 2020 Jul 28
+" Last Change: 2021 Jun 13
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
diff --git a/syntax/indent.vim b/syntax/indent.vim
index 14785ca6..b5dcdb29 100644
--- a/syntax/indent.vim
+++ b/syntax/indent.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'indent', 'syntax/indent.vim')
endif
" Vim syntax file
-" Language: indent(1) configuration file
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2010-01-23
+" Language: indent(1) configuration file
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 2021 Nov 17
" indent_is_bsd: If exists, will change somewhat to match BSD implementation
"
" TODO: is the deny-all (a la lilo.vim nice or no?)...
@@ -31,7 +32,7 @@ syn region indentComment start='//' skip='\\$' end='$'
\ contains=indentTodo,@Spell
if !exists("indent_is_bsd")
- syn match indentOptions '-i\|--indentation-level\|-il\|--indent-level'
+ syn match indentOptions '-i\|--indent-level\|-il\|--indent-label'
\ nextgroup=indentNumber skipwhite skipempty
endif
syn match indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
diff --git a/syntax/iss.vim b/syntax/iss.vim
index 5c82ae34..819f0aae 100644
--- a/syntax/iss.vim
+++ b/syntax/iss.vim
@@ -6,10 +6,10 @@ endif
" Language: Inno Setup File (iss file) and My InnoSetup extension
" Maintainer: Jason Mills (jmills@cs.mun.ca)
" Previous Maintainer: Dominique Stéphan (dominique@mggen.com)
-" Last Change: 2019 Sep 27
+" Last Change: 2021 Aug 30
"
" Todo:
-" - The paramter String: is matched as flag string (because of case ignore).
+" - The parameter String: is matched as flag string (because of case ignore).
" - Pascal scripting syntax is not recognized.
" - Embedded double quotes confuse string matches. e.g. "asfd""asfa"
diff --git a/syntax/kotlin.vim b/syntax/kotlin.vim
index b5e75dba..7175f7e3 100644
--- a/syntax/kotlin.vim
+++ b/syntax/kotlin.vim
@@ -3,9 +3,10 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'kotlin', 'syntax/kotlin.vim')
endif
" Vim syntax file
-" Language: Kotlin
-" Maintainer: Alexander Udalov
-" Latest Revision: 3 July 2021
+" Language: Kotlin
+" Maintainer: Alexander Udalov
+" URL: https://github.com/udalov/kotlin-vim
+" Last Change: 7 November 2021
if exists('b:current_syntax')
finish
@@ -20,11 +21,12 @@ syn keyword ktException try catch finally throw
syn keyword ktInclude import package
-" The following is generated by generate-stdlib-class-names.main.kts
+" Generated stdlib class names {{{
+" The following is generated by https://github.com/udalov/kotlin-vim/blob/master/extra/generate-stdlib-class-names.main.kts
syn keyword ktType AbstractCollection AbstractCoroutineContextElement AbstractCoroutineContextKey AbstractDoubleTimeSource AbstractIterator AbstractList AbstractLongTimeSource
syn keyword ktType AbstractMap AbstractMutableCollection AbstractMutableList AbstractMutableMap AbstractMutableSet AbstractSet AccessDeniedException Accessor Annotation
syn keyword ktType AnnotationRetention AnnotationTarget Any Appendable ArithmeticException Array ArrayDeque ArrayList AssertionError Boolean BooleanArray BooleanIterator
-syn keyword ktType BuilderInference Byte ByteArray ByteIterator CallsInPlace CancellationException Char CharArray CharCategory CharDirectionality CharIterator CharProgression
+syn keyword ktType BuilderInference Byte ByteArray ByteIterator CName CallsInPlace CancellationException Char CharArray CharCategory CharDirectionality CharIterator CharProgression
syn keyword ktType CharRange CharSequence CharacterCodingException Charsets ClassCastException Cloneable ClosedFloatingPointRange ClosedRange Collection Comparable Comparator
syn keyword ktType ConcurrentModificationException ConditionalEffect Continuation ContinuationInterceptor ContractBuilder CoroutineContext DeepRecursiveFunction DeepRecursiveScope
syn keyword ktType Delegates Deprecated DeprecatedSinceKotlin DeprecationLevel Destructured Double DoubleArray DoubleIterator DslMarker Duration DurationUnit Effect Element
@@ -33,19 +35,20 @@ syn keyword ktType ExperimentalTime ExperimentalTypeInference ExperimentalUnsign
syn keyword ktType FileWalkDirection Float FloatArray FloatIterator Function Function0 Function1 Function10 Function11 Function12 Function13 Function14 Function15 Function16
syn keyword ktType Function17 Function18 Function19 Function2 Function20 Function21 Function22 Function3 Function4 Function5 Function6 Function7 Function8 Function9 FunctionN
syn keyword ktType Getter Grouping HashMap HashSet IllegalArgumentException IllegalStateException IndexOutOfBoundsException IndexedValue Int IntArray IntIterator IntProgression
-syn keyword ktType IntRange InvocationKind Iterable Iterator JsExport JsName JvmDefault JvmDefaultWithoutCompatibility JvmField JvmInline JvmMultifileClass JvmName JvmOverloads
-syn keyword ktType JvmRecord JvmStatic JvmSuppressWildcards JvmSynthetic JvmWildcard KAnnotatedElement KCallable KClass KClassifier KDeclarationContainer KFunction KMutableProperty
-syn keyword ktType KMutableProperty0 KMutableProperty1 KMutableProperty2 KParameter KProperty KProperty0 KProperty1 KProperty2 KType KTypeParameter KTypeProjection KVariance
-syn keyword ktType KVisibility Key Kind KotlinNullPointerException KotlinReflectionNotSupportedError KotlinVersion Lazy LazyThreadSafetyMode Level LinkedHashMap LinkedHashSet List
-syn keyword ktType ListIterator Long LongArray LongIterator LongProgression LongRange Map MatchGroup MatchGroupCollection MatchNamedGroupCollection MatchResult Metadata Monotonic
-syn keyword ktType MustBeDocumented MutableCollection MutableEntry MutableIterable MutableIterator MutableList MutableListIterator MutableMap MutableSet NoSuchElementException
-syn keyword ktType NoSuchFileException NoWhenBranchMatchedException NotImplementedError Nothing NullPointerException Number NumberFormatException ObservableProperty OnErrorAction
-syn keyword ktType OptIn OptionalExpectation OverloadResolutionByLambdaReturnType Pair ParameterName PropertyDelegateProvider PublishedApi PurelyImplements Random RandomAccess
-syn keyword ktType ReadOnlyProperty ReadWriteProperty Regex RegexOption Repeatable ReplaceWith RequiresOptIn RestrictsSuspension Result Retention Returns ReturnsNotNull
-syn keyword ktType RuntimeException Sequence SequenceScope Set Setter SharedImmutable Short ShortArray ShortIterator SimpleEffect SinceKotlin Strictfp String StringBuilder Suppress
-syn keyword ktType Synchronized Target TestTimeSource ThreadLocal Throwable Throws TimeMark TimeSource TimedValue Transient Triple TypeCastException Typography UByte UByteArray
-syn keyword ktType UByteIterator UInt UIntArray UIntIterator UIntProgression UIntRange ULong ULongArray ULongIterator ULongProgression ULongRange UShort UShortArray UShortIterator
-syn keyword ktType UninitializedPropertyAccessException Unit UnsafeVariance UnsupportedOperationException UseExperimental Volatile
+syn keyword ktType IntRange InvocationKind Iterable Iterator JsEagerInitialization JsExport JsName JvmDefault JvmDefaultWithoutCompatibility JvmField JvmInline JvmMultifileClass
+syn keyword ktType JvmName JvmOverloads JvmRecord JvmStatic JvmSuppressWildcards JvmSynthetic JvmWildcard KAnnotatedElement KCallable KClass KClassifier KDeclarationContainer
+syn keyword ktType KFunction KMutableProperty KMutableProperty0 KMutableProperty1 KMutableProperty2 KParameter KProperty KProperty0 KProperty1 KProperty2 KType KTypeParameter
+syn keyword ktType KTypeProjection KVariance KVisibility Key Kind KotlinNullPointerException KotlinReflectionNotSupportedError KotlinVersion Lazy LazyThreadSafetyMode Level
+syn keyword ktType LinkedHashMap LinkedHashSet List ListIterator Long LongArray LongIterator LongProgression LongRange Map MatchGroup MatchGroupCollection MatchNamedGroupCollection
+syn keyword ktType MatchResult Metadata Monotonic MustBeDocumented MutableCollection MutableEntry MutableIterable MutableIterator MutableList MutableListIterator MutableMap
+syn keyword ktType MutableSet NoSuchElementException NoSuchFileException NoWhenBranchMatchedException NotImplementedError Nothing NullPointerException Number NumberFormatException
+syn keyword ktType ObservableProperty OnErrorAction OptIn OptionalExpectation OverloadResolutionByLambdaReturnType Pair ParameterName PropertyDelegateProvider PublishedApi
+syn keyword ktType PurelyImplements Random RandomAccess ReadOnlyProperty ReadWriteProperty Regex RegexOption Repeatable ReplaceWith RequiresOptIn RestrictsSuspension Result
+syn keyword ktType Retention Returns ReturnsNotNull RuntimeException Sequence SequenceScope Set Setter SharedImmutable Short ShortArray ShortIterator SimpleEffect SinceKotlin
+syn keyword ktType Strictfp String StringBuilder Suppress Synchronized Target TestTimeSource ThreadLocal Throwable Throws TimeMark TimeSource TimedValue Transient Triple
+syn keyword ktType TypeCastException Typography UByte UByteArray UByteIterator UInt UIntArray UIntIterator UIntProgression UIntRange ULong ULongArray ULongIterator ULongProgression
+syn keyword ktType ULongRange UShort UShortArray UShortIterator UninitializedPropertyAccessException Unit UnsafeVariance UnsupportedOperationException UseExperimental Volatile
+" }}}
syn keyword ktModifier annotation companion enum inner abstract final open override sealed vararg dynamic expect actual suspend
syn keyword ktStructure class object interface typealias fun val var constructor init
@@ -63,7 +66,7 @@ syn match ktModifier "\v<(const)>\ze\@=.*<val>"
syn match ktModifier "\v<(lateinit)>\ze\@=.*<var>"
syn match ktModifier "\v<(internal|private|protected|public)>\ze\@=.*<(class|object|interface|typealias|fun|val|var|constructor|get|set)>"
-syn match ktOperator "\v\?:|::|\<\=? | \>\=?|[!=]\=\=?|<as>\??|[-!%&*+/|]"
+syn match ktOperator "\v\?:|::|\<\=? | \>\=?|[!=]\=\=?|<as>\??|[-*+/%]\=?|[!&|]"
syn keyword ktTodo TODO FIXME XXX contained
syn match ktShebang "\v^#!.*$"
@@ -84,9 +87,9 @@ syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
syn match ktCharacter "\v'\\''" contains=ktSpecialChar
syn match ktCharacter "\v'[^\\]'"
-" TODO: highlight label in 'this@Foo'
syn match ktAnnotation "\v(\w)@<!\@[[:alnum:]_.]*(:[[:alnum:]_.]*)?"
syn match ktLabel "\v\w+\@"
+syn match ktLabel "\v(\w)@<=\@\w+"
syn match ktSimpleInterpolation "\v\$\h\w*" contained
syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation,ktTodo,ktSpecialCharError,ktSpecialChar,ktDocTag,ktDocTagParam
@@ -101,6 +104,8 @@ syn match ktEscapedName "\v`.*`"
syn match ktExclExcl "!!"
syn match ktArrow "->"
+syn region ktFold start="{" end="}" transparent fold
+
exec "syntax sync ccomment ktComment minlines=10"
hi def link ktStatement Statement
@@ -148,3 +153,5 @@ hi def link ktExclExcl Special
hi def link ktArrow Structure
let b:current_syntax = 'kotlin'
+
+" vim:foldmethod=marker
diff --git a/syntax/lisp.vim b/syntax/lisp.vim
index d8dd9ca8..beeee5af 100644
--- a/syntax/lisp.vim
+++ b/syntax/lisp.vim
@@ -5,8 +5,8 @@ endif
" Vim syntax file
" Language: Lisp
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
-" Last Change: Jul 11, 2019
-" Version: 30
+" Last Change: Nov 10, 2021
+" Version: 31
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
@@ -58,20 +58,20 @@ if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
else
- syn region lispList matchgroup=lispParen start="(" skip="|.\{-}|" matchgroup=lispParen end=")" contains=@lispListCluster
- syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
+ syn region lispList matchgroup=lispParen start="(" skip="|.\{-}|" matchgroup=lispParen end=")" contains=@lispListCluster
+ syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
endif
" ---------------------------------------------------------------------
" Atoms: {{{1
-syn match lispAtomMark "'"
-syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
-syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
-syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
-syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
-syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispEscapeSpecial
-syn match lispAtomNmbr contained "\<\d\+"
-syn match lispLeadWhite contained "^\s\+"
+syn match lispAtomMark "'"
+syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
+syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
+syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
+syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
+syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispEscapeSpecial
+syn match lispAtomNmbr contained "\<\d\+"
+syn match lispLeadWhite contained "^\s\+"
" ---------------------------------------------------------------------
" Standard Lisp Functions and Macros: {{{1
@@ -557,6 +557,8 @@ syn match lispParenError ")"
syn cluster lispCommentGroup contains=lispTodo,@Spell
syn match lispComment ";.*$" contains=@lispCommentGroup
syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
+syn region lispComment start="#+nil" end="\ze)" contains=@lispCommentGroup
+syn match lispComment '^\s*#+nil.*$' contains=@lispCommentGroup
syn keyword lispTodo contained combak combak: todo todo:
" ---------------------------------------------------------------------
diff --git a/syntax/meson.vim b/syntax/meson.vim
index 8e151a7e..3a5b50e2 100644
--- a/syntax/meson.vim
+++ b/syntax/meson.vim
@@ -60,9 +60,11 @@ syn match mesonEscape "\\$"
" Meson only supports integer numbers
" http://mesonbuild.com/Syntax.html#numbers
syn match mesonNumber "\<\d\+\>"
+syn match mesonNumber "\<0x\x\+\>"
+syn match mesonNumber "\<0o\o\+\>"
" booleans
-syn keyword mesonConstant false true
+syn keyword mesonBoolean false true
" Built-in functions
syn keyword mesonBuiltin
@@ -101,6 +103,8 @@ syn keyword mesonBuiltin
\ install_headers
\ install_man
\ install_subdir
+ \ install_symlink
+ \ install_emptydir
\ is_disabler
\ is_variable
\ jar
@@ -138,15 +142,15 @@ endif
" The default highlight links. Can be overridden later.
hi def link mesonStatement Statement
hi def link mesonConditional Conditional
-hi def link mesonRepeat Repeat
+hi def link mesonRepeat Repeat
hi def link mesonOperator Operator
hi def link mesonComment Comment
hi def link mesonTodo Todo
-hi def link mesonString String
-hi def link mesonEscape Special
-hi def link mesonNumber Number
+hi def link mesonString String
+hi def link mesonEscape Special
+hi def link mesonNumber Number
hi def link mesonBuiltin Function
-hi def link mesonConstant Number
+hi def link mesonBoolean Boolean
if exists("meson_space_error_higlight")
hi def link mesonSpaceError Error
endif
diff --git a/syntax/nim.vim b/syntax/nim.vim
index c3aa7b3f..2957866c 100644
--- a/syntax/nim.vim
+++ b/syntax/nim.vim
@@ -116,6 +116,7 @@ if nim_highlight_builtins == 1
syn keyword nimBuiltin addquitproc addQuitProc
syn keyword nimBuiltin copy setlen setLen newstring newString zeromem zeroMem copymem copyMem movemem moveMem
syn keyword nimBuiltin equalmem equalMem alloc alloc0 realloc dealloc assert
+ syn keyword nimBuiltin typedesc typed untyped stmt expr
syn keyword nimBuiltin echo swap getrefcount getRefcount getcurrentexception getCurrentException Msg
syn keyword nimBuiltin getoccupiedmem getOccupiedMem getfreemem getFreeMem gettotalmem getTotalMem isnil isNil seqtoptr seqToPtr
syn keyword nimBuiltin find pop GC_disable GC_enable GC_fullCollect
diff --git a/syntax/nsis.vim b/syntax/nsis.vim
index 76a338f6..5ada2c2c 100644
--- a/syntax/nsis.vim
+++ b/syntax/nsis.vim
@@ -3,11 +3,11 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'nsis', 'syntax/nsis.vim')
endif
" Vim syntax file
-" Language: NSIS script, for version of NSIS 3.03 and later
+" Language: NSIS script, for version of NSIS 3.08 and later
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-nsis
" Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
-" Last Change: 2018-10-02
+" Last Change: 2020-10-18
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -101,6 +101,8 @@ syn match nsisSysVar "$RESOURCES_LOCALIZED"
syn match nsisSysVar "$CDBURN_AREA"
syn match nsisSysVar "$HWNDPARENT"
syn match nsisSysVar "$PLUGINSDIR"
+syn match nsisSysVar "$\%(USERTEMPLATES\|USERSTARTMENU\|USERSMPROGRAMS\|USERDESKTOP\)"
+syn match nsisSysVar "$\%(COMMONTEMPLATES\|COMMONSTARTMENU\|COMMONSMPROGRAMS\|COMMONDESKTOP\|COMMONPROGRAMDATA\)"
syn match nsisSysVar "$\\r"
syn match nsisSysVar "$\\n"
syn match nsisSysVar "$\\t"
@@ -153,7 +155,7 @@ syn keyword nsisStatement contained Section nextgroup=nsisSectionOpt skipwhite
syn region nsisSectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd
syn match nsisSectionKwd contained "/o\>"
-syn keyword nsisStatement contained SectionIn nextgroup=nsisSectionInOpt skipwhite
+syn keyword nsisStatement contained SectionInstType SectionIn nextgroup=nsisSectionInOpt skipwhite
syn region nsisSectionInOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd
syn keyword nsisSectionInKwd contained RO
@@ -273,10 +275,22 @@ syn keyword nsisAttribute contained ManifestDPIAware nextgroup=nsisManifestDPIAw
syn region nsisManifestDPIAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd
syn keyword nsisManifestDPIAwareKwd contained notset true false
+syn keyword nsisAttribute contained ManifestLongPathAware nextgroup=nsisManifestLongPathAwareOpt skipwhite
+syn region nsisManifestLongPathAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestLongPathAwareKwd
+syn match nsisManifestLongPathAwareKwd contained "\<\%(notset\|true\|false\)\>"
+
syn keyword nsisAttribute contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite
syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd
syn match nsisManifestSupportedOSKwd contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>"
+syn keyword nsisAttribute contained PEAddResource nextgroup=nsisPEAddResourceOpt skipwhite
+syn region nsisPEAddResourceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPEAddResourceKwd
+syn match nsisPEAddResourceKwd contained "/\%(OVERWRITE\|REPLACE\)\>"
+
+syn keyword nsisAttribute contained PERemoveResource nextgroup=nsisPERemoveResourceOpt skipwhite
+syn region nsisPERemoveResourceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPERemoveResourceKwd
+syn match nsisPERemoveResourceKwd contained "/NOERRORS\>"
+
syn keyword nsisAttribute contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite
syn region nsisRequestExecutionLevelOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd
syn keyword nsisRequestExecutionLevelKwd contained none user highest admin
@@ -357,7 +371,7 @@ syn keyword nsisInstruction contained ExpandEnvStrings ReadEnvStr
syn keyword nsisInstruction contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite
syn region nsisDeleteRegKeyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry
-syn match nsisDeleteRegKeyKwd contained "/ifempty\>"
+syn match nsisDeleteRegKeyKwd contained "/\%(ifempty\|ifnosubkeys\|ifnovalues\)\>"
syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite
\ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr
@@ -372,8 +386,8 @@ syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend cont
syn keyword nsisSetRegViewKwd contained default lastused
"FUNCTIONS - general purpose (4.9.3)
-syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetDLLVersion
-syn keyword nsisInstruction contained GetDLLVersionLocal GetFileTime GetFileTimeLocal
+syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetWinVer
+syn keyword nsisInstruction contained GetFileTime GetFileTimeLocal GetKnownFolderPath
syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL UnRegDLL
syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite
@@ -384,6 +398,10 @@ syn keyword nsisInstruction contained CreateShortcut nextgroup=nsisCreateShortcu
syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd
syn match nsisCreateShortcutKwd contained "/NoWorkingDir\>"
+syn keyword nsisInstruction contained GetDLLVersion GetDLLVersionLocal nextgroup=nsisGetDLLVersionOpt skipwhite
+syn region nsisGetDLLVersionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetDLLVersionKwd
+syn match nsisGetDLLVersionKwd contained "/ProductVersion\>"
+
syn keyword nsisInstruction contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite
syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd
syn match nsisGetFullPathNameKwd contained "/SHORT\>"
@@ -399,6 +417,7 @@ syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_TEMPORARY
syn keyword nsisInstruction contained Abort Call ClearErrors GetCurrentAddress
syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress Goto
syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent
+syn keyword nsisInstruction contained IfShellVarContextAll IfRtlLanguage
syn keyword nsisInstruction contained IntCmp IntCmpU Int64Cmp Int64CmpU IntPtrCmp IntPtrCmpU
syn keyword nsisInstruction contained Return Quit SetErrors StrCmp StrCmpS
@@ -464,6 +483,10 @@ syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt skipwhite
syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite
\ LockWindow SetAutoClose
+syn keyword nsisInstruction contained LoadAndSetImage nextgroup=nsisLoadAndSetImageOpt skipwhite
+syn region nsisLoadAndSetImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLoadAndSetImageKwd
+syn match nsisLoadAndSetImageKwd contained "/\%(EXERESOURCE\|STRINGID\|RESIZETOFIT\%(WIDTH\|HEIGHT\)\)\>"
+
syn keyword nsisInstruction contained SendMessage nextgroup=nsisSendMessageOpt skipwhite
syn region nsisSendMessageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd
syn match nsisSendMessageKwd contained "/TIMEOUT\>"
@@ -560,7 +583,7 @@ syn keyword nsisVerboseKwd contained push pop
"PREPROCESSOR (5.4)
syn match nsisDefine contained "!define\>" nextgroup=nsisDefineOpt skipwhite
syn region nsisDefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd
-syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|math\|file\)\>"
+syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|file\|intfmt\|math\)\>"
syn match nsisDefine contained "!undef\>"
syn match nsisPreCondit contained "!ifdef\>"
@@ -619,7 +642,10 @@ hi def link nsisInstTypeKwd Constant
hi def link nsisLicenseBkColorKwd Constant
hi def link nsisLicenseForceSelectionKwd Constant
hi def link nsisManifestDPIAwareKwd Constant
+hi def link nsisManifestLongPathAwareKwd Constant
hi def link nsisManifestSupportedOSKwd Constant
+hi def link nsisPEAddResourceKwd Constant
+hi def link nsisPERemoveResourceKwd Constant
hi def link nsisRequestExecutionLevelKwd Constant
hi def link nsisShowInstDetailsKwd Constant
hi def link nsisSilentInstallKwd Constant
@@ -637,11 +663,13 @@ hi def link nsisWriteRegMultiStrKwd Constant
hi def link nsisSetRegViewKwd Constant
hi def link nsisCopyFilesKwd Constant
hi def link nsisCreateShortcutKwd Constant
+hi def link nsisGetDLLVersionKwd Constant
hi def link nsisGetFullPathNameKwd Constant
hi def link nsisFileAttrib Constant
hi def link nsisMessageBox Constant
hi def link nsisFileWriteUTF16LEKwd Constant
hi def link nsisSetShellVarContextKwd Constant
+hi def link nsisLoadAndSetImageKwd Constant
hi def link nsisSendMessageKwd Constant
hi def link nsisSetBrandingImageKwd Constant
hi def link nsisSetDetailsViewKwd Constant
diff --git a/syntax/ocaml.vim b/syntax/ocaml.vim
index 14939535..e3e6cfa3 100644
--- a/syntax/ocaml.vim
+++ b/syntax/ocaml.vim
@@ -172,6 +172,7 @@ syn match ocamlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s+1 skipwhite skipempty ne
" Quoted strings
syn region ocamlString matchgroup=ocamlQuotedStringDelim start="{\z\([a-z_]*\)|" end="|\z1}" contains=@Spell
+syn region ocamlString matchgroup=ocamlQuotedStringDelim start="{%[a-z_]\+\(\.[a-z_]\+\)\?\( \z\([a-z_]\+\)\)\?|" end="|\z1}" contains=@Spell
syn keyword ocamlKeyword and as assert class
syn keyword ocamlKeyword constraint else
diff --git a/syntax/odin.vim b/syntax/odin.vim
index 10374351..ed09f607 100644
--- a/syntax/odin.vim
+++ b/syntax/odin.vim
@@ -44,7 +44,7 @@ syntax match odinFixMe "FIXME"
syntax match odinNoCheckin "NOCHECKIN"
syntax match odinHack "HACK"
-syntax keyword odinDataType string cstring bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint uintptr i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int
+syntax keyword odinDataType string cstring bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint uintptr i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int complex complex32 complex64 complex128 quaternion quaternion64 quaternion128 quaternion256 matrix
syntax keyword odinBool true false
syntax keyword odinNull nil
syntax keyword odinDynamic dynamic
@@ -64,6 +64,7 @@ syntax keyword odinDefer defer
syntax region odinChar start=/\v'/ skip=/\v\\./ end=/\v'/
syntax region odinString start=/\v"/ skip=/\v\\./ end=/\v"/
+syntax region odinRawString start=/\v`/ skip=/\v\\./ end=/\v`/
syntax match odinFunction "\v<\w*>(\s*::\s*proc)@="
@@ -140,6 +141,7 @@ highlight link odinTernaryQMark Operator
highlight link odinReturnOp Operator
highlight link odinString String
+highlight link odinRawString String
highlight link odinChar String
highlight link odinStruct Structure
diff --git a/syntax/pgsql.vim b/syntax/pgsql.vim
index 48bccdc6..807f998e 100644
--- a/syntax/pgsql.vim
+++ b/syntax/pgsql.vim
@@ -8,8 +8,8 @@ endif
" Version: 2.3.1
" License: Vim license (see `:help license`)
-" Based on PostgreSQL 13.2
-" Automatically generated on 2021-04-22 at 08:36:13
+" Based on PostgreSQL 14.1
+" Automatically generated on 2021-12-03 at 11:21:19
if exists("b:current_syntax")
finish
@@ -38,42 +38,41 @@ syn keyword sqlStatement contained rollback savepoint security select select set
syn keyword sqlStatement contained truncate unlisten update vacuum values work
syn match sqlStatement contained /\<create\%(\_s\+or\_s\+replace\)\=\>/
" Types
-syn keyword sqlType contained aclitem addbandarg addr addr_gid_seq addrfeat addrfeat_gid_seq
-syn keyword sqlType contained agg_count agg_samealignment anyarray anycompatible
-syn keyword sqlType contained anycompatiblearray anycompatiblenonarray anycompatiblerange anyelement
-syn keyword sqlType contained anyenum anynonarray anyrange bg bg_gid_seq bit bool box box2d box2df box3d
+syn keyword sqlType contained aclitem addbandarg addr addrfeat agg_count agg_samealignment
+syn keyword sqlType contained anyarray anycompatible anycompatiblearray anycompatiblemultirange
+syn keyword sqlType contained anycompatiblenonarray anycompatiblerange anyelement anyenum
+syn keyword sqlType contained anymultirange anynonarray anyrange bg bit bool box box2d box2df box3d
syn keyword sqlType contained bpchar bytea cardinal_number char character_data cid cidr circle
-syn keyword sqlType contained citext county county_gid_seq county_lookup countysub_lookup cousub
-syn keyword sqlType contained cousub_gid_seq cstring cube date daterange dblink_pkey_results
-syn keyword sqlType contained direction_lookup ean13 earth edges edges_gid_seq errcodes
-syn keyword sqlType contained event_trigger faces faces_gid_seq fdw_handler featnames featnames_gid_seq
+syn keyword sqlType contained citext county county_lookup countysub_lookup cousub cstring cube date
+syn keyword sqlType contained datemultirange daterange dblink_pkey_results direction_lookup
+syn keyword sqlType contained ean13 earth edges errcodes event_trigger faces fdw_handler featnames
syn keyword sqlType contained float4 float8 gbtreekey16 gbtreekey32 gbtreekey4 gbtreekey8
syn keyword sqlType contained gbtreekey_var geocode_settings geocode_settings_default geography
syn keyword sqlType contained geography_columns geometry geometry_columns geometry_dump geomval
syn keyword sqlType contained getfaceedges_returntype ghstore gidx gtrgm gtsvector hstore
-syn keyword sqlType contained index_am_handler inet int2 int2vector int4 int4range int8 int8range
-syn keyword sqlType contained intbig_gkey internal interval isbn isbn13 ismn ismn13 issn issn13 json
-syn keyword sqlType contained jsonb jsonpath language_handler layer line lo loader_lookuptables
-syn keyword sqlType contained loader_platform loader_variables lquery lseg ltree ltree_gist
-syn keyword sqlType contained ltxtquery macaddr macaddr8 money norm_addy numeric numrange oid
-syn keyword sqlType contained oidvector pagc_gaz pagc_gaz_id_seq pagc_lex pagc_lex_id_seq pagc_rules
-syn keyword sqlType contained pagc_rules_id_seq path pg_all_foreign_keys pg_ddl_command
-syn keyword sqlType contained pg_dependencies pg_lsn pg_mcv_list pg_ndistinct pg_node_tree
-syn keyword sqlType contained pg_snapshot place place_gid_seq place_lookup point polygon query_int
-syn keyword sqlType contained rastbandarg raster raster_columns raster_overviews reclassarg record
-syn keyword sqlType contained refcursor regclass regcollation regconfig regdictionary
-syn keyword sqlType contained regnamespace regoper regoperator regproc regprocedure regrole regtype
+syn keyword sqlType contained index_am_handler inet int2 int2vector int4 int4multirange int4range
+syn keyword sqlType contained int8 int8multirange int8range intbig_gkey internal interval isbn
+syn keyword sqlType contained isbn13 ismn ismn13 issn issn13 json jsonb jsonpath language_handler
+syn keyword sqlType contained layer line lo loader_lookuptables loader_platform loader_variables
+syn keyword sqlType contained lquery lseg ltree ltree_gist ltxtquery macaddr macaddr8 money
+syn keyword sqlType contained norm_addy numeric nummultirange numrange oid oidvector pagc_gaz pagc_lex
+syn keyword sqlType contained pagc_rules path pg_all_foreign_keys pg_brin_bloom_summary
+syn keyword sqlType contained pg_brin_minmax_multi_summary pg_ddl_command pg_dependencies pg_lsn
+syn keyword sqlType contained pg_mcv_list pg_ndistinct pg_node_tree pg_snapshot
+syn keyword sqlType contained pg_stat_statements_info place place_lookup point polygon query_int rastbandarg
+syn keyword sqlType contained raster raster_columns raster_overviews reclassarg record refcursor
+syn keyword sqlType contained regclass regcollation regconfig regdictionary regnamespace
+syn keyword sqlType contained regoper regoperator regproc regprocedure regrole regtype
syn keyword sqlType contained secondary_unit_lookup seg spatial_ref_sys spheroid sql_identifier state
-syn keyword sqlType contained state_gid_seq state_lookup stdaddr street_type_lookup
-syn keyword sqlType contained summarystats tabblock tabblock_gid_seq table_am_handler
-syn keyword sqlType contained tablefunc_crosstab_2 tablefunc_crosstab_3 tablefunc_crosstab_4 tap_funky text
-syn keyword sqlType contained tid time time_stamp timestamp timestamptz timetz topoelement
-syn keyword sqlType contained topoelementarray topogeometry topology topology_id_seq tract
-syn keyword sqlType contained tract_gid_seq tsm_handler tsquery tsrange tstzrange tsvector txid_snapshot
-syn keyword sqlType contained unionarg upc us_gaz us_gaz_id_seq us_lex us_lex_id_seq us_rules
-syn keyword sqlType contained us_rules_id_seq uuid valid_detail validatetopology_returntype
-syn keyword sqlType contained varbit varchar void xid xid8 xml yes_or_no zcta5 zcta5_gid_seq
-syn keyword sqlType contained zip_lookup zip_lookup_all zip_lookup_base zip_state zip_state_loc
+syn keyword sqlType contained state_lookup stdaddr street_type_lookup summarystats tabblock
+syn keyword sqlType contained tabblock20 table_am_handler tablefunc_crosstab_2 tablefunc_crosstab_3
+syn keyword sqlType contained tablefunc_crosstab_4 tap_funky text tid time time_stamp timestamp
+syn keyword sqlType contained timestamptz timetz topoelement topoelementarray topogeometry
+syn keyword sqlType contained topology tract tsm_handler tsmultirange tsquery tsrange
+syn keyword sqlType contained tstzmultirange tstzrange tsvector txid_snapshot unionarg upc us_gaz us_lex
+syn keyword sqlType contained us_rules uuid valid_detail validatetopology_returntype varbit varchar
+syn keyword sqlType contained void xid xid8 xml yes_or_no zcta5 zip_lookup zip_lookup_all
+syn keyword sqlType contained zip_lookup_base zip_state zip_state_loc
syn match sqlType /\<pg_toast_\d\+\>/
syn match sqlType /\<time\%[stamp]\s\+with\%[out]\>/
syn match sqlKeyword /\<with\s\+grant\>/
@@ -86,57 +85,58 @@ syn keyword sqlType contained int integer interval numeric precision real serial
syn keyword sqlType contained serial8 smallint smallserial timestamp varying xml zone
" Keywords
syn keyword sqlKeyword contained absolute access action admin after aggregate all also always
-syn keyword sqlKeyword contained analyse and any as asc assertion assignment asymmetric attach attribute
-syn keyword sqlKeyword contained authorization backward basetype before between binary both by
-syn keyword sqlKeyword contained bypassrls cache call called cascade cascaded case cast catalog century chain
-syn keyword sqlKeyword contained characteristics check class coalesce collate collation column
-syn keyword sqlKeyword contained columns combinefunc comments committed concurrently configuration
-syn keyword sqlKeyword contained conflict connection constraint content continue conversion cost
-syn keyword sqlKeyword contained createdb createrole cross csv current current_catalog current_date
-syn keyword sqlKeyword contained current_role current_schema current_time current_timestamp
-syn keyword sqlKeyword contained current_user cursor cycle data database day dec decade default defaults
-syn keyword sqlKeyword contained deferrable deferred definer delimiter delimiters depends desc
-syn keyword sqlKeyword contained deserialfunc detach dictionary disable distinct document domain dow doy each
-syn keyword sqlKeyword contained else enable encoding encrypted enum epoch escape event except exclude
-syn keyword sqlKeyword contained excluding exclusive exists expression extension external extract
-syn keyword sqlKeyword contained false family filter finalfunc finalfunc_extra finalfunc_modify
-syn keyword sqlKeyword contained first float following for force foreign forward freeze from full function
-syn keyword sqlKeyword contained functions generated global granted greatest group grouping groups
-syn keyword sqlKeyword contained handler having header hold hour hypothetical identity if ilike
-syn keyword sqlKeyword contained immediate immutable implicit in include including increment index indexes
-syn keyword sqlKeyword contained inherit inherits initcond initially inline inner inout input
-syn keyword sqlKeyword contained insensitive instead intersect into invoker is isnull isodow isolation
-syn keyword sqlKeyword contained isoyear join key language large last lateral lc_collate lc_ctype leading
-syn keyword sqlKeyword contained leakproof least left level like limit local locale localtime
-syn keyword sqlKeyword contained localtimestamp location locked logged login mapping match materialized
-syn keyword sqlKeyword contained maxvalue method mfinalfunc mfinalfunc_extra mfinalfunc_modify
-syn keyword sqlKeyword contained microseconds millennium milliseconds minitcond minute minvalue
-syn keyword sqlKeyword contained minvfunc mode month msfunc msspace mstype name names national natural nchar
-syn keyword sqlKeyword contained new next nfc nfd nfkc nfkd no nobypassrls nocreatedb nocreaterole
-syn keyword sqlKeyword contained noinherit nologin none noreplication normalize normalized nosuperuser
-syn keyword sqlKeyword contained not nothing notnull nowait null nullif nulls object of off offset oids
-syn keyword sqlKeyword contained old on only operator option options or order ordinality others out
-syn keyword sqlKeyword contained outer over overlaps overlay overriding owned owner parallel parser
-syn keyword sqlKeyword contained partial partition passing password permissive placing plans policy
-syn keyword sqlKeyword contained position preceding preserve primary prior privileges procedural
-syn keyword sqlKeyword contained procedure procedures program provider public publication quarter quote
-syn keyword sqlKeyword contained range read read_write readonly recheck recursive ref references
-syn keyword sqlKeyword contained referencing relative rename repeatable replace replica replication
-syn keyword sqlKeyword contained restart restrict restricted restrictive returning returns right role
-syn keyword sqlKeyword contained rollup routine routines row rows rule safe schema schemas scroll search
-syn keyword sqlKeyword contained second sequence sequences serialfunc serializable server session
-syn keyword sqlKeyword contained session_user setof sets sfunc share shareable similar simple skip
-syn keyword sqlKeyword contained snapshot some sortop sql sspace stable standalone statement statistics
-syn keyword sqlKeyword contained stdin stdout storage stored strict strip stype subscription
-syn keyword sqlKeyword contained substring superuser support symmetric sysid system table tables
-syn keyword sqlKeyword contained tablesample tablespace temp template temporary then ties timezone
-syn keyword sqlKeyword contained timezone_hour timezone_minute to trailing transform treat trigger trim true
-syn keyword sqlKeyword contained trusted type types uescape unbounded uncommitted unencrypted union
-syn keyword sqlKeyword contained unique unknown unlogged unsafe until usage user using valid validate
-syn keyword sqlKeyword contained validator value variadic verbose version view views volatile week when
-syn keyword sqlKeyword contained where whitespace window with within without wrapper write
-syn keyword sqlKeyword contained xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlnamespaces
-syn keyword sqlKeyword contained xmlparse xmlpi xmlroot xmlserialize xmltable year yes
+syn keyword sqlKeyword contained analyse and any as asc asensitive assertion assignment asymmetric atomic
+syn keyword sqlKeyword contained attach attribute authorization backward basetype before between
+syn keyword sqlKeyword contained binary both breadth by bypassrls cache call called cascade cascaded case
+syn keyword sqlKeyword contained cast catalog century chain characteristics check class coalesce
+syn keyword sqlKeyword contained collate collation column columns combinefunc comments committed
+syn keyword sqlKeyword contained compression concurrently configuration conflict connection constraint
+syn keyword sqlKeyword contained content continue conversion cost createdb createrole cross csv
+syn keyword sqlKeyword contained current current_catalog current_date current_role current_schema
+syn keyword sqlKeyword contained current_time current_timestamp current_user cursor cycle data
+syn keyword sqlKeyword contained database day dec decade default defaults deferrable deferred definer
+syn keyword sqlKeyword contained delimiter delimiters depends depth desc deserialfunc detach dictionary
+syn keyword sqlKeyword contained disable distinct document domain dow doy each else enable encoding
+syn keyword sqlKeyword contained encrypted enum epoch escape event except exclude excluding exclusive
+syn keyword sqlKeyword contained exists expression extension external extract false family filter
+syn keyword sqlKeyword contained finalfunc finalfunc_extra finalfunc_modify finalize first float
+syn keyword sqlKeyword contained following for force foreign forward freeze from full function functions
+syn keyword sqlKeyword contained generated global granted greatest group grouping groups handler having
+syn keyword sqlKeyword contained header hold hour hypothetical identity if ilike immediate immutable
+syn keyword sqlKeyword contained implicit in include including increment index indexes inherit
+syn keyword sqlKeyword contained inherits initcond initially inline inner inout input insensitive instead
+syn keyword sqlKeyword contained intersect into invoker is isnull isodow isolation isoyear join key
+syn keyword sqlKeyword contained language large last lateral lc_collate lc_ctype leading leakproof
+syn keyword sqlKeyword contained least left level like limit local locale localtime localtimestamp
+syn keyword sqlKeyword contained location locked logged login mapping match materialized maxvalue method
+syn keyword sqlKeyword contained mfinalfunc mfinalfunc_extra mfinalfunc_modify microseconds
+syn keyword sqlKeyword contained millennium milliseconds minitcond minute minvalue minvfunc mode month
+syn keyword sqlKeyword contained msfunc msspace mstype name names national natural nchar new next nfc nfd
+syn keyword sqlKeyword contained nfkc nfkd no nobypassrls nocreatedb nocreaterole noinherit nologin
+syn keyword sqlKeyword contained none noreplication normalize normalized nosuperuser not nothing
+syn keyword sqlKeyword contained notnull nowait null nullif nulls object of off offset oids old on only
+syn keyword sqlKeyword contained operator option options or order ordinality others out outer over
+syn keyword sqlKeyword contained overlaps overlay overriding owned owner parallel parser partial partition
+syn keyword sqlKeyword contained passing password permissive placing plans policy position
+syn keyword sqlKeyword contained preceding preserve primary prior privileges procedural procedure
+syn keyword sqlKeyword contained procedures program provider public publication quarter quote range read
+syn keyword sqlKeyword contained read_write readonly recheck recursive ref references referencing
+syn keyword sqlKeyword contained relative rename repeatable replace replica replication restart restrict
+syn keyword sqlKeyword contained restricted restrictive return returning returns right role rollup
+syn keyword sqlKeyword contained routine routines row rows rule safe schema schemas scroll search second
+syn keyword sqlKeyword contained sequence sequences serialfunc serializable server session
+syn keyword sqlKeyword contained session_user setof sets sfunc share shareable similar simple skip snapshot
+syn keyword sqlKeyword contained some sortop sql sspace stable standalone statement statistics stdin
+syn keyword sqlKeyword contained stdout storage stored strict strip stype subscription substring
+syn keyword sqlKeyword contained superuser support symmetric sysid system table tables tablesample
+syn keyword sqlKeyword contained tablespace temp template temporary then ties timezone timezone_hour
+syn keyword sqlKeyword contained timezone_minute to trailing transform treat trigger trim true trusted
+syn keyword sqlKeyword contained type types uescape unbounded uncommitted unencrypted union unique
+syn keyword sqlKeyword contained unknown unlogged unsafe until usage user using valid validate validator
+syn keyword sqlKeyword contained value variadic verbose version view views volatile week when where
+syn keyword sqlKeyword contained whitespace window with within without wrapper write xmlattributes
+syn keyword sqlKeyword contained xmlconcat xmlelement xmlexists xmlforest xmlnamespaces xmlparse
+syn keyword sqlKeyword contained xmlpi xmlroot xmlserialize xmltable year yes
syn keyword sqlConstant contained information_schema pg_catalog
" Built-in functions
syn keyword sqlFunction contained RI_FKey_cascade_del RI_FKey_cascade_upd RI_FKey_check_ins
@@ -148,242 +148,265 @@ syn keyword sqlFunction contained aclitemin aclitemout aclremove acos acosd acos
syn keyword sqlFunction contained any_out anyarray_in anyarray_out anyarray_recv anyarray_send
syn keyword sqlFunction contained anycompatible_in anycompatible_out anycompatiblearray_in
syn keyword sqlFunction contained anycompatiblearray_out anycompatiblearray_recv
-syn keyword sqlFunction contained anycompatiblearray_send anycompatiblenonarray_in anycompatiblenonarray_out
-syn keyword sqlFunction contained anycompatiblerange_in anycompatiblerange_out anyelement_in
-syn keyword sqlFunction contained anyelement_out anyenum_in anyenum_out anynonarray_in anynonarray_out
-syn keyword sqlFunction contained anyrange_in anyrange_out anytextcat area areajoinsel areasel array_agg
-syn keyword sqlFunction contained array_agg_array_finalfn array_agg_array_transfn
-syn keyword sqlFunction contained array_agg_finalfn array_agg_transfn array_append array_cat array_dims array_eq
-syn keyword sqlFunction contained array_fill array_ge array_gt array_in array_larger array_le
-syn keyword sqlFunction contained array_length array_lower array_lt array_ndims array_ne array_out
-syn keyword sqlFunction contained array_position array_positions array_prepend array_recv array_remove
-syn keyword sqlFunction contained array_replace array_send array_smaller array_to_json
-syn keyword sqlFunction contained array_to_string array_to_tsvector array_typanalyze array_unnest_support
-syn keyword sqlFunction contained array_upper arraycontained arraycontains arraycontjoinsel
-syn keyword sqlFunction contained arraycontsel arrayoverlap ascii asin asind asinh atan atan2 atan2d atand
-syn keyword sqlFunction contained atanh avg bernoulli big5_to_euc_tw big5_to_mic big5_to_utf8
-syn keyword sqlFunction contained binary_upgrade_create_empty_extension
-syn keyword sqlFunction contained binary_upgrade_set_missing_value binary_upgrade_set_next_array_pg_type_oid
-syn keyword sqlFunction contained binary_upgrade_set_next_heap_pg_class_oid
-syn keyword sqlFunction contained binary_upgrade_set_next_index_pg_class_oid binary_upgrade_set_next_pg_authid_oid
-syn keyword sqlFunction contained binary_upgrade_set_next_pg_enum_oid binary_upgrade_set_next_pg_type_oid
-syn keyword sqlFunction contained binary_upgrade_set_next_toast_pg_class_oid
-syn keyword sqlFunction contained binary_upgrade_set_next_toast_pg_type_oid binary_upgrade_set_record_init_privs
-syn keyword sqlFunction contained bit bit_and bit_in bit_length bit_or bit_out bit_recv bit_send bitand
-syn keyword sqlFunction contained bitcat bitcmp biteq bitge bitgt bitle bitlt bitne bitnot bitor
+syn keyword sqlFunction contained anycompatiblearray_send anycompatiblemultirange_in anycompatiblemultirange_out
+syn keyword sqlFunction contained anycompatiblenonarray_in anycompatiblenonarray_out
+syn keyword sqlFunction contained anycompatiblerange_in anycompatiblerange_out anyelement_in anyelement_out
+syn keyword sqlFunction contained anyenum_in anyenum_out anymultirange_in anymultirange_out
+syn keyword sqlFunction contained anynonarray_in anynonarray_out anyrange_in anyrange_out anytextcat area
+syn keyword sqlFunction contained areajoinsel areasel array_agg array_agg_array_finalfn
+syn keyword sqlFunction contained array_agg_array_transfn array_agg_finalfn array_agg_transfn array_append
+syn keyword sqlFunction contained array_cat array_dims array_eq array_fill array_ge array_gt
+syn keyword sqlFunction contained array_in array_larger array_le array_length array_lower array_lt
+syn keyword sqlFunction contained array_ndims array_ne array_out array_position array_positions
+syn keyword sqlFunction contained array_prepend array_recv array_remove array_replace array_send
+syn keyword sqlFunction contained array_smaller array_subscript_handler array_to_json array_to_string
+syn keyword sqlFunction contained array_to_tsvector array_typanalyze array_unnest_support array_upper
+syn keyword sqlFunction contained arraycontained arraycontains arraycontjoinsel arraycontsel
+syn keyword sqlFunction contained arrayoverlap ascii asin asind asinh atan atan2 atan2d atand atanh avg
+syn keyword sqlFunction contained bernoulli big5_to_euc_tw big5_to_mic big5_to_utf8
+syn keyword sqlFunction contained binary_upgrade_create_empty_extension binary_upgrade_set_missing_value
+syn keyword sqlFunction contained binary_upgrade_set_next_array_pg_type_oid
+syn keyword sqlFunction contained binary_upgrade_set_next_heap_pg_class_oid binary_upgrade_set_next_index_pg_class_oid
+syn keyword sqlFunction contained binary_upgrade_set_next_multirange_array_pg_type_oid
+syn keyword sqlFunction contained binary_upgrade_set_next_multirange_pg_type_oid
+syn keyword sqlFunction contained binary_upgrade_set_next_pg_authid_oid binary_upgrade_set_next_pg_enum_oid
+syn keyword sqlFunction contained binary_upgrade_set_next_pg_type_oid
+syn keyword sqlFunction contained binary_upgrade_set_next_toast_pg_class_oid binary_upgrade_set_record_init_privs bit bit_and
+syn keyword sqlFunction contained bit_count bit_in bit_length bit_or bit_out bit_recv bit_send bit_xor
+syn keyword sqlFunction contained bitand bitcat bitcmp biteq bitge bitgt bitle bitlt bitne bitnot bitor
syn keyword sqlFunction contained bitshiftleft bitshiftright bittypmodin bittypmodout bitxor bool
-syn keyword sqlFunction contained bool_accum bool_accum_inv bool_alltrue bool_and bool_anytrue bool_or
-syn keyword sqlFunction contained booland_statefunc booleq boolge boolgt boolin boolle boollt boolne
-syn keyword sqlFunction contained boolor_statefunc boolout boolrecv boolsend bound_box box box_above
-syn keyword sqlFunction contained box_above_eq box_add box_below box_below_eq box_center box_contain
-syn keyword sqlFunction contained box_contain_pt box_contained box_distance box_div box_eq box_ge
-syn keyword sqlFunction contained box_gt box_in box_intersect box_le box_left box_lt box_mul box_out
-syn keyword sqlFunction contained box_overabove box_overbelow box_overlap box_overleft
+syn keyword sqlFunction contained bool_accum bool_accum_inv bool_alltrue bool_and bool_anytrue
+syn keyword sqlFunction contained bool_or booland_statefunc booleq boolge boolgt boolin boolle boollt
+syn keyword sqlFunction contained boolne boolor_statefunc boolout boolrecv boolsend bound_box box
+syn keyword sqlFunction contained box_above box_above_eq box_add box_below box_below_eq box_center
+syn keyword sqlFunction contained box_contain box_contain_pt box_contained box_distance box_div box_eq
+syn keyword sqlFunction contained box_ge box_gt box_in box_intersect box_le box_left box_lt box_mul
+syn keyword sqlFunction contained box_out box_overabove box_overbelow box_overlap box_overleft
syn keyword sqlFunction contained box_overright box_recv box_right box_same box_send box_sub bpchar
syn keyword sqlFunction contained bpchar_larger bpchar_pattern_ge bpchar_pattern_gt bpchar_pattern_le
syn keyword sqlFunction contained bpchar_pattern_lt bpchar_smaller bpchar_sortsupport bpcharcmp
-syn keyword sqlFunction contained bpchareq bpcharge bpchargt bpchariclike bpcharicnlike bpcharicregexeq
-syn keyword sqlFunction contained bpcharicregexne bpcharin bpcharle bpcharlike bpcharlt bpcharne
-syn keyword sqlFunction contained bpcharnlike bpcharout bpcharrecv bpcharregexeq bpcharregexne
-syn keyword sqlFunction contained bpcharsend bpchartypmodin bpchartypmodout brin_desummarize_range
-syn keyword sqlFunction contained brin_inclusion_add_value brin_inclusion_consistent
+syn keyword sqlFunction contained bpchareq bpcharge bpchargt bpchariclike bpcharicnlike
+syn keyword sqlFunction contained bpcharicregexeq bpcharicregexne bpcharin bpcharle bpcharlike bpcharlt
+syn keyword sqlFunction contained bpcharne bpcharnlike bpcharout bpcharrecv bpcharregexeq bpcharregexne
+syn keyword sqlFunction contained bpcharsend bpchartypmodin bpchartypmodout brin_bloom_add_value
+syn keyword sqlFunction contained brin_bloom_consistent brin_bloom_opcinfo brin_bloom_options
+syn keyword sqlFunction contained brin_bloom_summary_in brin_bloom_summary_out
+syn keyword sqlFunction contained brin_bloom_summary_recv brin_bloom_summary_send brin_bloom_union
+syn keyword sqlFunction contained brin_desummarize_range brin_inclusion_add_value brin_inclusion_consistent
syn keyword sqlFunction contained brin_inclusion_opcinfo brin_inclusion_union brin_minmax_add_value
-syn keyword sqlFunction contained brin_minmax_consistent brin_minmax_opcinfo brin_minmax_union
-syn keyword sqlFunction contained brin_summarize_new_values brin_summarize_range brinhandler broadcast
-syn keyword sqlFunction contained btarraycmp btboolcmp btbpchar_pattern_cmp
-syn keyword sqlFunction contained btbpchar_pattern_sortsupport btcharcmp btequalimage btfloat48cmp btfloat4cmp
-syn keyword sqlFunction contained btfloat4sortsupport btfloat84cmp btfloat8cmp btfloat8sortsupport bthandler
-syn keyword sqlFunction contained btint24cmp btint28cmp btint2cmp btint2sortsupport btint42cmp
-syn keyword sqlFunction contained btint48cmp btint4cmp btint4sortsupport btint82cmp btint84cmp
-syn keyword sqlFunction contained btint8cmp btint8sortsupport btnamecmp btnamesortsupport btnametextcmp
-syn keyword sqlFunction contained btoidcmp btoidsortsupport btoidvectorcmp btrecordcmp
-syn keyword sqlFunction contained btrecordimagecmp btrim bttext_pattern_cmp bttext_pattern_sortsupport
-syn keyword sqlFunction contained bttextcmp bttextnamecmp bttextsortsupport bttidcmp btvarstrequalimage
-syn keyword sqlFunction contained bytea_sortsupport bytea_string_agg_finalfn
-syn keyword sqlFunction contained bytea_string_agg_transfn byteacat byteacmp byteaeq byteage byteagt byteain byteale
-syn keyword sqlFunction contained bytealike bytealt byteane byteanlike byteaout bytearecv byteasend
-syn keyword sqlFunction contained cardinality cash_cmp cash_div_cash cash_div_flt4 cash_div_flt8
-syn keyword sqlFunction contained cash_div_int2 cash_div_int4 cash_div_int8 cash_eq cash_ge cash_gt
-syn keyword sqlFunction contained cash_in cash_le cash_lt cash_mi cash_mul_flt4 cash_mul_flt8
-syn keyword sqlFunction contained cash_mul_int2 cash_mul_int4 cash_mul_int8 cash_ne cash_out cash_pl
-syn keyword sqlFunction contained cash_recv cash_send cash_words cashlarger cashsmaller cbrt ceil ceiling
-syn keyword sqlFunction contained center char_length character_length chareq charge chargt charin
-syn keyword sqlFunction contained charle charlt charne charout charrecv charsend chr cideq cidin cidout
-syn keyword sqlFunction contained cidr cidr_in cidr_out cidr_recv cidr_send cidrecv cidsend circle
-syn keyword sqlFunction contained circle_above circle_add_pt circle_below circle_center
-syn keyword sqlFunction contained circle_contain circle_contain_pt circle_contained circle_distance
-syn keyword sqlFunction contained circle_div_pt circle_eq circle_ge circle_gt circle_in circle_le
-syn keyword sqlFunction contained circle_left circle_lt circle_mul_pt circle_ne circle_out circle_overabove
-syn keyword sqlFunction contained circle_overbelow circle_overlap circle_overleft
-syn keyword sqlFunction contained circle_overright circle_recv circle_right circle_same circle_send circle_sub_pt
-syn keyword sqlFunction contained clock_timestamp close_lb close_ls close_lseg close_pb close_pl
-syn keyword sqlFunction contained close_ps close_sb close_sl col_description concat concat_ws
-syn keyword sqlFunction contained contjoinsel contsel convert convert_from convert_to corr cos cosd cosh cot
-syn keyword sqlFunction contained cotd count covar_pop covar_samp cstring_in cstring_out
-syn keyword sqlFunction contained cstring_recv cstring_send cume_dist cume_dist_final current_database
-syn keyword sqlFunction contained current_query current_schema current_schemas current_setting
-syn keyword sqlFunction contained current_user currtid currtid2 currval cursor_to_xml cursor_to_xmlschema
-syn keyword sqlFunction contained database_to_xml database_to_xml_and_xmlschema
-syn keyword sqlFunction contained database_to_xmlschema date date_cmp date_cmp_timestamp date_cmp_timestamptz
-syn keyword sqlFunction contained date_eq date_eq_timestamp date_eq_timestamptz date_ge
-syn keyword sqlFunction contained date_ge_timestamp date_ge_timestamptz date_gt date_gt_timestamp
-syn keyword sqlFunction contained date_gt_timestamptz date_in date_larger date_le date_le_timestamp
-syn keyword sqlFunction contained date_le_timestamptz date_lt date_lt_timestamp date_lt_timestamptz date_mi
-syn keyword sqlFunction contained date_mi_interval date_mii date_ne date_ne_timestamp
-syn keyword sqlFunction contained date_ne_timestamptz date_out date_part date_pl_interval date_pli date_recv
-syn keyword sqlFunction contained date_send date_smaller date_sortsupport date_trunc daterange
-syn keyword sqlFunction contained daterange_canonical daterange_subdiff datetime_pl datetimetz_pl
-syn keyword sqlFunction contained dcbrt decode degrees dense_rank dense_rank_final dexp diagonal
-syn keyword sqlFunction contained diameter dispell_init dispell_lexize dist_bl dist_bp dist_bs
-syn keyword sqlFunction contained dist_cpoint dist_cpoly dist_lb dist_lp dist_ls dist_pathp dist_pb dist_pc
+syn keyword sqlFunction contained brin_minmax_consistent brin_minmax_multi_add_value
+syn keyword sqlFunction contained brin_minmax_multi_consistent brin_minmax_multi_distance_date
+syn keyword sqlFunction contained brin_minmax_multi_distance_float4 brin_minmax_multi_distance_float8
+syn keyword sqlFunction contained brin_minmax_multi_distance_inet brin_minmax_multi_distance_int2
+syn keyword sqlFunction contained brin_minmax_multi_distance_int4
+syn keyword sqlFunction contained brin_minmax_multi_distance_int8 brin_minmax_multi_distance_interval
+syn keyword sqlFunction contained brin_minmax_multi_distance_macaddr brin_minmax_multi_distance_macaddr8
+syn keyword sqlFunction contained brin_minmax_multi_distance_numeric brin_minmax_multi_distance_pg_lsn
+syn keyword sqlFunction contained brin_minmax_multi_distance_tid brin_minmax_multi_distance_time
+syn keyword sqlFunction contained brin_minmax_multi_distance_timestamp
+syn keyword sqlFunction contained brin_minmax_multi_distance_timetz brin_minmax_multi_distance_uuid
+syn keyword sqlFunction contained brin_minmax_multi_opcinfo brin_minmax_multi_options brin_minmax_multi_summary_in
+syn keyword sqlFunction contained brin_minmax_multi_summary_out brin_minmax_multi_summary_recv
+syn keyword sqlFunction contained brin_minmax_multi_summary_send brin_minmax_multi_union
+syn keyword sqlFunction contained brin_minmax_opcinfo brin_minmax_union brin_summarize_new_values
+syn keyword sqlFunction contained brin_summarize_range brinhandler broadcast btarraycmp btboolcmp
+syn keyword sqlFunction contained btbpchar_pattern_cmp btbpchar_pattern_sortsupport btcharcmp
+syn keyword sqlFunction contained btequalimage btfloat48cmp btfloat4cmp btfloat4sortsupport btfloat84cmp
+syn keyword sqlFunction contained btfloat8cmp btfloat8sortsupport bthandler btint24cmp btint28cmp
+syn keyword sqlFunction contained btint2cmp btint2sortsupport btint42cmp btint48cmp btint4cmp
+syn keyword sqlFunction contained btint4sortsupport btint82cmp btint84cmp btint8cmp btint8sortsupport
+syn keyword sqlFunction contained btnamecmp btnamesortsupport btnametextcmp btoidcmp
+syn keyword sqlFunction contained btoidsortsupport btoidvectorcmp btrecordcmp btrecordimagecmp btrim
+syn keyword sqlFunction contained bttext_pattern_cmp bttext_pattern_sortsupport bttextcmp bttextnamecmp
+syn keyword sqlFunction contained bttextsortsupport bttidcmp btvarstrequalimage bytea_sortsupport
+syn keyword sqlFunction contained bytea_string_agg_finalfn bytea_string_agg_transfn byteacat
+syn keyword sqlFunction contained byteacmp byteaeq byteage byteagt byteain byteale bytealike bytealt
+syn keyword sqlFunction contained byteane byteanlike byteaout bytearecv byteasend cardinality cash_cmp
+syn keyword sqlFunction contained cash_div_cash cash_div_flt4 cash_div_flt8 cash_div_int2
+syn keyword sqlFunction contained cash_div_int4 cash_div_int8 cash_eq cash_ge cash_gt cash_in cash_le
+syn keyword sqlFunction contained cash_lt cash_mi cash_mul_flt4 cash_mul_flt8 cash_mul_int2
+syn keyword sqlFunction contained cash_mul_int4 cash_mul_int8 cash_ne cash_out cash_pl cash_recv cash_send
+syn keyword sqlFunction contained cash_words cashlarger cashsmaller cbrt ceil ceiling center char_length
+syn keyword sqlFunction contained character_length chareq charge chargt charin charle charlt charne
+syn keyword sqlFunction contained charout charrecv charsend chr cideq cidin cidout cidr cidr_in cidr_out
+syn keyword sqlFunction contained cidr_recv cidr_send cidrecv cidsend circle circle_above
+syn keyword sqlFunction contained circle_add_pt circle_below circle_center circle_contain
+syn keyword sqlFunction contained circle_contain_pt circle_contained circle_distance circle_div_pt circle_eq
+syn keyword sqlFunction contained circle_ge circle_gt circle_in circle_le circle_left circle_lt
+syn keyword sqlFunction contained circle_mul_pt circle_ne circle_out circle_overabove circle_overbelow
+syn keyword sqlFunction contained circle_overlap circle_overleft circle_overright circle_recv
+syn keyword sqlFunction contained circle_right circle_same circle_send circle_sub_pt clock_timestamp
+syn keyword sqlFunction contained close_lb close_ls close_lseg close_pb close_pl close_ps close_sb
+syn keyword sqlFunction contained close_sl col_description concat concat_ws contjoinsel contsel convert
+syn keyword sqlFunction contained convert_from convert_to corr cos cosd cosh cot cotd count covar_pop
+syn keyword sqlFunction contained covar_samp cstring_in cstring_out cstring_recv cstring_send
+syn keyword sqlFunction contained cume_dist cume_dist_final current_database current_query
+syn keyword sqlFunction contained current_schema current_schemas current_setting current_user currtid2
+syn keyword sqlFunction contained currval cursor_to_xml cursor_to_xmlschema database_to_xml
+syn keyword sqlFunction contained database_to_xml_and_xmlschema database_to_xmlschema date date_bin date_cmp
+syn keyword sqlFunction contained date_cmp_timestamp date_cmp_timestamptz date_eq
+syn keyword sqlFunction contained date_eq_timestamp date_eq_timestamptz date_ge date_ge_timestamp
+syn keyword sqlFunction contained date_ge_timestamptz date_gt date_gt_timestamp date_gt_timestamptz date_in
+syn keyword sqlFunction contained date_larger date_le date_le_timestamp date_le_timestamptz date_lt
+syn keyword sqlFunction contained date_lt_timestamp date_lt_timestamptz date_mi date_mi_interval
+syn keyword sqlFunction contained date_mii date_ne date_ne_timestamp date_ne_timestamptz date_out
+syn keyword sqlFunction contained date_part date_pl_interval date_pli date_recv date_send
+syn keyword sqlFunction contained date_smaller date_sortsupport date_trunc datemultirange daterange
+syn keyword sqlFunction contained daterange_canonical daterange_subdiff datetime_pl datetimetz_pl dcbrt
+syn keyword sqlFunction contained decode degrees dense_rank dense_rank_final dexp diagonal diameter
+syn keyword sqlFunction contained dispell_init dispell_lexize dist_bl dist_bp dist_bs dist_cpoint
+syn keyword sqlFunction contained dist_cpoly dist_lb dist_lp dist_ls dist_pathp dist_pb dist_pc
syn keyword sqlFunction contained dist_pl dist_polyc dist_polyp dist_ppath dist_ppoly dist_ps dist_sb
syn keyword sqlFunction contained dist_sl dist_sp div dlog1 dlog10 domain_in domain_recv dpow dround
syn keyword sqlFunction contained dsimple_init dsimple_lexize dsnowball_init dsnowball_lexize dsqrt
-syn keyword sqlFunction contained dsynonym_init dsynonym_lexize dtrunc elem_contained_by_range
-syn keyword sqlFunction contained encode enum_cmp enum_eq enum_first enum_ge enum_gt enum_in
-syn keyword sqlFunction contained enum_larger enum_last enum_le enum_lt enum_ne enum_out enum_range enum_recv
-syn keyword sqlFunction contained enum_send enum_smaller eqjoinsel eqsel euc_cn_to_mic
-syn keyword sqlFunction contained euc_cn_to_utf8 euc_jis_2004_to_shift_jis_2004 euc_jis_2004_to_utf8
-syn keyword sqlFunction contained euc_jp_to_mic euc_jp_to_sjis euc_jp_to_utf8 euc_kr_to_mic
-syn keyword sqlFunction contained euc_kr_to_utf8 euc_tw_to_big5 euc_tw_to_mic euc_tw_to_utf8
-syn keyword sqlFunction contained event_trigger_in event_trigger_out every exp factorial family fdw_handler_in
-syn keyword sqlFunction contained fdw_handler_out first_value float4 float48div float48eq float48ge
-syn keyword sqlFunction contained float48gt float48le float48lt float48mi float48mul float48ne
-syn keyword sqlFunction contained float48pl float4_accum float4abs float4div float4eq float4ge float4gt
-syn keyword sqlFunction contained float4in float4larger float4le float4lt float4mi float4mul float4ne
-syn keyword sqlFunction contained float4out float4pl float4recv float4send float4smaller float4um
-syn keyword sqlFunction contained float4up float8 float84div float84eq float84ge float84gt float84le
-syn keyword sqlFunction contained float84lt float84mi float84mul float84ne float84pl float8_accum
-syn keyword sqlFunction contained float8_avg float8_combine float8_corr float8_covar_pop
-syn keyword sqlFunction contained float8_covar_samp float8_regr_accum float8_regr_avgx float8_regr_avgy
-syn keyword sqlFunction contained float8_regr_combine float8_regr_intercept float8_regr_r2
-syn keyword sqlFunction contained float8_regr_slope float8_regr_sxx float8_regr_sxy float8_regr_syy
-syn keyword sqlFunction contained float8_stddev_pop float8_stddev_samp float8_var_pop float8_var_samp
-syn keyword sqlFunction contained float8abs float8div float8eq float8ge float8gt float8in
-syn keyword sqlFunction contained float8larger float8le float8lt float8mi float8mul float8ne float8out
-syn keyword sqlFunction contained float8pl float8recv float8send float8smaller float8um float8up floor
-syn keyword sqlFunction contained flt4_mul_cash flt8_mul_cash fmgr_c_validator
-syn keyword sqlFunction contained fmgr_internal_validator fmgr_sql_validator format format_type gb18030_to_utf8
-syn keyword sqlFunction contained gbk_to_utf8 gcd gen_random_uuid generate_series
-syn keyword sqlFunction contained generate_series_int4_support generate_series_int8_support generate_subscripts
-syn keyword sqlFunction contained get_bit get_byte get_current_ts_config getdatabaseencoding
-syn keyword sqlFunction contained getpgusername gin_clean_pending_list gin_cmp_prefix gin_cmp_tslexeme
-syn keyword sqlFunction contained gin_compare_jsonb gin_consistent_jsonb gin_consistent_jsonb_path
-syn keyword sqlFunction contained gin_extract_jsonb gin_extract_jsonb_path
-syn keyword sqlFunction contained gin_extract_jsonb_query gin_extract_jsonb_query_path gin_extract_tsquery
-syn keyword sqlFunction contained gin_extract_tsvector gin_triconsistent_jsonb
-syn keyword sqlFunction contained gin_triconsistent_jsonb_path gin_tsquery_consistent gin_tsquery_triconsistent
-syn keyword sqlFunction contained ginarrayconsistent ginarrayextract ginarraytriconsistent ginhandler
-syn keyword sqlFunction contained ginqueryarrayextract gist_box_consistent gist_box_distance
-syn keyword sqlFunction contained gist_box_penalty gist_box_picksplit gist_box_same gist_box_union
-syn keyword sqlFunction contained gist_circle_compress gist_circle_consistent gist_circle_distance
-syn keyword sqlFunction contained gist_point_compress gist_point_consistent gist_point_distance
-syn keyword sqlFunction contained gist_point_fetch gist_poly_compress gist_poly_consistent
+syn keyword sqlFunction contained dsynonym_init dsynonym_lexize dtrunc elem_contained_by_multirange
+syn keyword sqlFunction contained elem_contained_by_range encode enum_cmp enum_eq enum_first
+syn keyword sqlFunction contained enum_ge enum_gt enum_in enum_larger enum_last enum_le enum_lt enum_ne
+syn keyword sqlFunction contained enum_out enum_range enum_recv enum_send enum_smaller eqjoinsel
+syn keyword sqlFunction contained eqsel euc_cn_to_mic euc_cn_to_utf8 euc_jis_2004_to_shift_jis_2004
+syn keyword sqlFunction contained euc_jis_2004_to_utf8 euc_jp_to_mic euc_jp_to_sjis
+syn keyword sqlFunction contained euc_jp_to_utf8 euc_kr_to_mic euc_kr_to_utf8 euc_tw_to_big5 euc_tw_to_mic
+syn keyword sqlFunction contained euc_tw_to_utf8 event_trigger_in event_trigger_out every exp extract
+syn keyword sqlFunction contained factorial family fdw_handler_in fdw_handler_out first_value
+syn keyword sqlFunction contained float4 float48div float48eq float48ge float48gt float48le float48lt
+syn keyword sqlFunction contained float48mi float48mul float48ne float48pl float4_accum float4abs
+syn keyword sqlFunction contained float4div float4eq float4ge float4gt float4in float4larger float4le
+syn keyword sqlFunction contained float4lt float4mi float4mul float4ne float4out float4pl float4recv
+syn keyword sqlFunction contained float4send float4smaller float4um float4up float8 float84div
+syn keyword sqlFunction contained float84eq float84ge float84gt float84le float84lt float84mi float84mul
+syn keyword sqlFunction contained float84ne float84pl float8_accum float8_avg float8_combine
+syn keyword sqlFunction contained float8_corr float8_covar_pop float8_covar_samp float8_regr_accum
+syn keyword sqlFunction contained float8_regr_avgx float8_regr_avgy float8_regr_combine
+syn keyword sqlFunction contained float8_regr_intercept float8_regr_r2 float8_regr_slope float8_regr_sxx
+syn keyword sqlFunction contained float8_regr_sxy float8_regr_syy float8_stddev_pop
+syn keyword sqlFunction contained float8_stddev_samp float8_var_pop float8_var_samp float8abs float8div float8eq
+syn keyword sqlFunction contained float8ge float8gt float8in float8larger float8le float8lt float8mi
+syn keyword sqlFunction contained float8mul float8ne float8out float8pl float8recv float8send
+syn keyword sqlFunction contained float8smaller float8um float8up floor flt4_mul_cash flt8_mul_cash
+syn keyword sqlFunction contained fmgr_c_validator fmgr_internal_validator fmgr_sql_validator format
+syn keyword sqlFunction contained format_type gb18030_to_utf8 gbk_to_utf8 gcd gen_random_uuid
+syn keyword sqlFunction contained generate_series generate_series_int4_support
+syn keyword sqlFunction contained generate_series_int8_support generate_subscripts get_bit get_byte
+syn keyword sqlFunction contained get_current_ts_config getdatabaseencoding getpgusername gin_clean_pending_list
+syn keyword sqlFunction contained gin_cmp_prefix gin_cmp_tslexeme gin_compare_jsonb
+syn keyword sqlFunction contained gin_consistent_jsonb gin_consistent_jsonb_path gin_extract_jsonb
+syn keyword sqlFunction contained gin_extract_jsonb_path gin_extract_jsonb_query
+syn keyword sqlFunction contained gin_extract_jsonb_query_path gin_extract_tsquery gin_extract_tsvector
+syn keyword sqlFunction contained gin_triconsistent_jsonb gin_triconsistent_jsonb_path gin_tsquery_consistent
+syn keyword sqlFunction contained gin_tsquery_triconsistent ginarrayconsistent ginarrayextract
+syn keyword sqlFunction contained ginarraytriconsistent ginhandler ginqueryarrayextract
+syn keyword sqlFunction contained gist_box_consistent gist_box_distance gist_box_penalty gist_box_picksplit
+syn keyword sqlFunction contained gist_box_same gist_box_union gist_circle_compress
+syn keyword sqlFunction contained gist_circle_consistent gist_circle_distance gist_point_compress
+syn keyword sqlFunction contained gist_point_consistent gist_point_distance gist_point_fetch
+syn keyword sqlFunction contained gist_point_sortsupport gist_poly_compress gist_poly_consistent
syn keyword sqlFunction contained gist_poly_distance gisthandler gtsquery_compress gtsquery_consistent
-syn keyword sqlFunction contained gtsquery_penalty gtsquery_picksplit gtsquery_same
-syn keyword sqlFunction contained gtsquery_union gtsvector_compress gtsvector_consistent gtsvector_decompress
+syn keyword sqlFunction contained gtsquery_penalty gtsquery_picksplit gtsquery_same gtsquery_union
+syn keyword sqlFunction contained gtsvector_compress gtsvector_consistent gtsvector_decompress
syn keyword sqlFunction contained gtsvector_options gtsvector_penalty gtsvector_picksplit
syn keyword sqlFunction contained gtsvector_same gtsvector_union gtsvectorin gtsvectorout
syn keyword sqlFunction contained has_any_column_privilege has_column_privilege has_database_privilege
syn keyword sqlFunction contained has_foreign_data_wrapper_privilege has_function_privilege
syn keyword sqlFunction contained has_language_privilege has_schema_privilege has_sequence_privilege
syn keyword sqlFunction contained has_server_privilege has_table_privilege has_tablespace_privilege
-syn keyword sqlFunction contained has_type_privilege hash_aclitem hash_aclitem_extended
-syn keyword sqlFunction contained hash_array hash_array_extended hash_numeric hash_numeric_extended
-syn keyword sqlFunction contained hash_range hash_range_extended hashbpchar hashbpcharextended
+syn keyword sqlFunction contained has_type_privilege hash_aclitem hash_aclitem_extended hash_array
+syn keyword sqlFunction contained hash_array_extended hash_multirange hash_multirange_extended
+syn keyword sqlFunction contained hash_numeric hash_numeric_extended hash_range hash_range_extended
+syn keyword sqlFunction contained hash_record hash_record_extended hashbpchar hashbpcharextended
syn keyword sqlFunction contained hashchar hashcharextended hashenum hashenumextended hashfloat4
-syn keyword sqlFunction contained hashfloat4extended hashfloat8 hashfloat8extended hashhandler hashinet
-syn keyword sqlFunction contained hashinetextended hashint2 hashint2extended hashint4
+syn keyword sqlFunction contained hashfloat4extended hashfloat8 hashfloat8extended hashhandler
+syn keyword sqlFunction contained hashinet hashinetextended hashint2 hashint2extended hashint4
syn keyword sqlFunction contained hashint4extended hashint8 hashint8extended hashmacaddr hashmacaddr8
-syn keyword sqlFunction contained hashmacaddr8extended hashmacaddrextended hashname hashnameextended
-syn keyword sqlFunction contained hashoid hashoidextended hashoidvector hashoidvectorextended hashtext
-syn keyword sqlFunction contained hashtextextended hashtid hashtidextended hashvarlena
+syn keyword sqlFunction contained hashmacaddr8extended hashmacaddrextended hashname
+syn keyword sqlFunction contained hashnameextended hashoid hashoidextended hashoidvector hashoidvectorextended
+syn keyword sqlFunction contained hashtext hashtextextended hashtid hashtidextended hashvarlena
syn keyword sqlFunction contained hashvarlenaextended heap_tableam_handler height host hostmask
syn keyword sqlFunction contained iclikejoinsel iclikesel icnlikejoinsel icnlikesel icregexeqjoinsel
-syn keyword sqlFunction contained icregexeqsel icregexnejoinsel icregexnesel in_range index_am_handler_in
-syn keyword sqlFunction contained index_am_handler_out inet_client_addr inet_client_port
+syn keyword sqlFunction contained icregexeqsel icregexnejoinsel icregexnesel in_range
+syn keyword sqlFunction contained index_am_handler_in index_am_handler_out inet_client_addr inet_client_port
syn keyword sqlFunction contained inet_gist_compress inet_gist_consistent inet_gist_fetch
-syn keyword sqlFunction contained inet_gist_penalty inet_gist_picksplit inet_gist_same inet_gist_union inet_in
-syn keyword sqlFunction contained inet_merge inet_out inet_recv inet_same_family inet_send
-syn keyword sqlFunction contained inet_server_addr inet_server_port inet_spg_choose inet_spg_config
-syn keyword sqlFunction contained inet_spg_inner_consistent inet_spg_leaf_consistent
-syn keyword sqlFunction contained inet_spg_picksplit inetand inetmi inetmi_int8 inetnot inetor inetpl initcap int2
-syn keyword sqlFunction contained int24div int24eq int24ge int24gt int24le int24lt int24mi int24mul
-syn keyword sqlFunction contained int24ne int24pl int28div int28eq int28ge int28gt int28le int28lt
-syn keyword sqlFunction contained int28mi int28mul int28ne int28pl int2_accum int2_accum_inv
-syn keyword sqlFunction contained int2_avg_accum int2_avg_accum_inv int2_mul_cash int2_sum int2abs int2and
-syn keyword sqlFunction contained int2div int2eq int2ge int2gt int2in int2int4_sum int2larger int2le
-syn keyword sqlFunction contained int2lt int2mi int2mod int2mul int2ne int2not int2or int2out int2pl
-syn keyword sqlFunction contained int2recv int2send int2shl int2shr int2smaller int2um int2up
-syn keyword sqlFunction contained int2vectorin int2vectorout int2vectorrecv int2vectorsend int2xor int4
-syn keyword sqlFunction contained int42div int42eq int42ge int42gt int42le int42lt int42mi int42mul
-syn keyword sqlFunction contained int42ne int42pl int48div int48eq int48ge int48gt int48le int48lt int48mi
-syn keyword sqlFunction contained int48mul int48ne int48pl int4_accum int4_accum_inv int4_avg_accum
-syn keyword sqlFunction contained int4_avg_accum_inv int4_avg_combine int4_mul_cash int4_sum
-syn keyword sqlFunction contained int4abs int4and int4div int4eq int4ge int4gt int4in int4inc int4larger
-syn keyword sqlFunction contained int4le int4lt int4mi int4mod int4mul int4ne int4not int4or int4out
-syn keyword sqlFunction contained int4pl int4range int4range_canonical int4range_subdiff int4recv
-syn keyword sqlFunction contained int4send int4shl int4shr int4smaller int4um int4up int4xor int8
-syn keyword sqlFunction contained int82div int82eq int82ge int82gt int82le int82lt int82mi int82mul
-syn keyword sqlFunction contained int82ne int82pl int84div int84eq int84ge int84gt int84le int84lt int84mi
-syn keyword sqlFunction contained int84mul int84ne int84pl int8_accum int8_accum_inv int8_avg
-syn keyword sqlFunction contained int8_avg_accum int8_avg_accum_inv int8_avg_combine
-syn keyword sqlFunction contained int8_avg_deserialize int8_avg_serialize int8_mul_cash int8_sum int8abs int8and
-syn keyword sqlFunction contained int8dec int8dec_any int8div int8eq int8ge int8gt int8in int8inc
-syn keyword sqlFunction contained int8inc_any int8inc_float8_float8 int8larger int8le int8lt int8mi
-syn keyword sqlFunction contained int8mod int8mul int8ne int8not int8or int8out int8pl int8pl_inet
-syn keyword sqlFunction contained int8range int8range_canonical int8range_subdiff int8recv int8send
-syn keyword sqlFunction contained int8shl int8shr int8smaller int8um int8up int8xor integer_pl_date
-syn keyword sqlFunction contained inter_lb inter_sb inter_sl internal_in internal_out interval
-syn keyword sqlFunction contained interval_accum interval_accum_inv interval_avg interval_cmp
-syn keyword sqlFunction contained interval_combine interval_div interval_eq interval_ge interval_gt
-syn keyword sqlFunction contained interval_hash interval_hash_extended interval_in interval_larger
-syn keyword sqlFunction contained interval_le interval_lt interval_mi interval_mul interval_ne
-syn keyword sqlFunction contained interval_out interval_pl interval_pl_date interval_pl_time
-syn keyword sqlFunction contained interval_pl_timestamp interval_pl_timestamptz interval_pl_timetz
-syn keyword sqlFunction contained interval_recv interval_send interval_smaller interval_support interval_um
-syn keyword sqlFunction contained intervaltypmodin intervaltypmodout is_normalized isclosed isempty
-syn keyword sqlFunction contained isfinite ishorizontal iso8859_1_to_utf8 iso8859_to_utf8
-syn keyword sqlFunction contained iso_to_koi8r iso_to_mic iso_to_win1251 iso_to_win866 isopen isparallel
-syn keyword sqlFunction contained isperp isvertical johab_to_utf8 json_agg json_agg_finalfn
-syn keyword sqlFunction contained json_agg_transfn json_array_element json_array_element_text
-syn keyword sqlFunction contained json_array_elements json_array_elements_text json_array_length
-syn keyword sqlFunction contained json_build_array json_build_object json_each json_each_text
-syn keyword sqlFunction contained json_extract_path json_extract_path_text json_in json_object
-syn keyword sqlFunction contained json_object_agg json_object_agg_finalfn json_object_agg_transfn
-syn keyword sqlFunction contained json_object_field json_object_field_text json_object_keys json_out
-syn keyword sqlFunction contained json_populate_record json_populate_recordset json_recv json_send
-syn keyword sqlFunction contained json_strip_nulls json_to_record json_to_recordset json_to_tsvector
-syn keyword sqlFunction contained json_typeof jsonb_agg jsonb_agg_finalfn jsonb_agg_transfn
-syn keyword sqlFunction contained jsonb_array_element jsonb_array_element_text jsonb_array_elements
-syn keyword sqlFunction contained jsonb_array_elements_text jsonb_array_length jsonb_build_array
-syn keyword sqlFunction contained jsonb_build_object jsonb_cmp jsonb_concat jsonb_contained
-syn keyword sqlFunction contained jsonb_contains jsonb_delete jsonb_delete_path jsonb_each
-syn keyword sqlFunction contained jsonb_each_text jsonb_eq jsonb_exists jsonb_exists_all jsonb_exists_any
-syn keyword sqlFunction contained jsonb_extract_path jsonb_extract_path_text jsonb_ge jsonb_gt
-syn keyword sqlFunction contained jsonb_hash jsonb_hash_extended jsonb_in jsonb_insert jsonb_le jsonb_lt
-syn keyword sqlFunction contained jsonb_ne jsonb_object jsonb_object_agg
-syn keyword sqlFunction contained jsonb_object_agg_finalfn jsonb_object_agg_transfn jsonb_object_field
-syn keyword sqlFunction contained jsonb_object_field_text jsonb_object_keys jsonb_out jsonb_path_exists
-syn keyword sqlFunction contained jsonb_path_exists_opr jsonb_path_exists_tz jsonb_path_match
-syn keyword sqlFunction contained jsonb_path_match_opr jsonb_path_match_tz jsonb_path_query
-syn keyword sqlFunction contained jsonb_path_query_array jsonb_path_query_array_tz jsonb_path_query_first
-syn keyword sqlFunction contained jsonb_path_query_first_tz jsonb_path_query_tz
-syn keyword sqlFunction contained jsonb_populate_record jsonb_populate_recordset jsonb_pretty jsonb_recv jsonb_send
-syn keyword sqlFunction contained jsonb_set jsonb_set_lax jsonb_strip_nulls jsonb_to_record
+syn keyword sqlFunction contained inet_gist_penalty inet_gist_picksplit inet_gist_same inet_gist_union
+syn keyword sqlFunction contained inet_in inet_merge inet_out inet_recv inet_same_family inet_send
+syn keyword sqlFunction contained inet_server_addr inet_server_port inet_spg_choose
+syn keyword sqlFunction contained inet_spg_config inet_spg_inner_consistent inet_spg_leaf_consistent
+syn keyword sqlFunction contained inet_spg_picksplit inetand inetmi inetmi_int8 inetnot inetor inetpl initcap
+syn keyword sqlFunction contained int2 int24div int24eq int24ge int24gt int24le int24lt int24mi
+syn keyword sqlFunction contained int24mul int24ne int24pl int28div int28eq int28ge int28gt int28le
+syn keyword sqlFunction contained int28lt int28mi int28mul int28ne int28pl int2_accum int2_accum_inv
+syn keyword sqlFunction contained int2_avg_accum int2_avg_accum_inv int2_mul_cash int2_sum int2abs
+syn keyword sqlFunction contained int2and int2div int2eq int2ge int2gt int2in int2int4_sum int2larger
+syn keyword sqlFunction contained int2le int2lt int2mi int2mod int2mul int2ne int2not int2or int2out
+syn keyword sqlFunction contained int2pl int2recv int2send int2shl int2shr int2smaller int2um int2up
+syn keyword sqlFunction contained int2vectorin int2vectorout int2vectorrecv int2vectorsend int2xor
+syn keyword sqlFunction contained int4 int42div int42eq int42ge int42gt int42le int42lt int42mi int42mul
+syn keyword sqlFunction contained int42ne int42pl int48div int48eq int48ge int48gt int48le int48lt
+syn keyword sqlFunction contained int48mi int48mul int48ne int48pl int4_accum int4_accum_inv
+syn keyword sqlFunction contained int4_avg_accum int4_avg_accum_inv int4_avg_combine int4_mul_cash
+syn keyword sqlFunction contained int4_sum int4abs int4and int4div int4eq int4ge int4gt int4in int4inc
+syn keyword sqlFunction contained int4larger int4le int4lt int4mi int4mod int4mul int4multirange int4ne
+syn keyword sqlFunction contained int4not int4or int4out int4pl int4range int4range_canonical
+syn keyword sqlFunction contained int4range_subdiff int4recv int4send int4shl int4shr int4smaller int4um
+syn keyword sqlFunction contained int4up int4xor int8 int82div int82eq int82ge int82gt int82le int82lt
+syn keyword sqlFunction contained int82mi int82mul int82ne int82pl int84div int84eq int84ge int84gt
+syn keyword sqlFunction contained int84le int84lt int84mi int84mul int84ne int84pl int8_accum
+syn keyword sqlFunction contained int8_accum_inv int8_avg int8_avg_accum int8_avg_accum_inv
+syn keyword sqlFunction contained int8_avg_combine int8_avg_deserialize int8_avg_serialize int8_mul_cash
+syn keyword sqlFunction contained int8_sum int8abs int8and int8dec int8dec_any int8div int8eq int8ge
+syn keyword sqlFunction contained int8gt int8in int8inc int8inc_any int8inc_float8_float8 int8larger
+syn keyword sqlFunction contained int8le int8lt int8mi int8mod int8mul int8multirange int8ne int8not
+syn keyword sqlFunction contained int8or int8out int8pl int8pl_inet int8range int8range_canonical
+syn keyword sqlFunction contained int8range_subdiff int8recv int8send int8shl int8shr int8smaller
+syn keyword sqlFunction contained int8um int8up int8xor integer_pl_date inter_lb inter_sb inter_sl
+syn keyword sqlFunction contained internal_in internal_out interval interval_accum interval_accum_inv
+syn keyword sqlFunction contained interval_avg interval_cmp interval_combine interval_div
+syn keyword sqlFunction contained interval_eq interval_ge interval_gt interval_hash interval_hash_extended
+syn keyword sqlFunction contained interval_in interval_larger interval_le interval_lt interval_mi
+syn keyword sqlFunction contained interval_mul interval_ne interval_out interval_pl
+syn keyword sqlFunction contained interval_pl_date interval_pl_time interval_pl_timestamp
+syn keyword sqlFunction contained interval_pl_timestamptz interval_pl_timetz interval_recv interval_send
+syn keyword sqlFunction contained interval_smaller interval_support interval_um intervaltypmodin
+syn keyword sqlFunction contained intervaltypmodout is_normalized isclosed isempty isfinite ishorizontal
+syn keyword sqlFunction contained iso8859_1_to_utf8 iso8859_to_utf8 iso_to_koi8r iso_to_mic
+syn keyword sqlFunction contained iso_to_win1251 iso_to_win866 isopen isparallel isperp isvertical
+syn keyword sqlFunction contained johab_to_utf8 json_agg json_agg_finalfn json_agg_transfn
+syn keyword sqlFunction contained json_array_element json_array_element_text json_array_elements
+syn keyword sqlFunction contained json_array_elements_text json_array_length json_build_array json_build_object
+syn keyword sqlFunction contained json_each json_each_text json_extract_path
+syn keyword sqlFunction contained json_extract_path_text json_in json_object json_object_agg json_object_agg_finalfn
+syn keyword sqlFunction contained json_object_agg_transfn json_object_field
+syn keyword sqlFunction contained json_object_field_text json_object_keys json_out json_populate_record
+syn keyword sqlFunction contained json_populate_recordset json_recv json_send json_strip_nulls json_to_record
+syn keyword sqlFunction contained json_to_recordset json_to_tsvector json_typeof jsonb_agg
+syn keyword sqlFunction contained jsonb_agg_finalfn jsonb_agg_transfn jsonb_array_element
+syn keyword sqlFunction contained jsonb_array_element_text jsonb_array_elements jsonb_array_elements_text
+syn keyword sqlFunction contained jsonb_array_length jsonb_build_array jsonb_build_object
+syn keyword sqlFunction contained jsonb_cmp jsonb_concat jsonb_contained jsonb_contains jsonb_delete
+syn keyword sqlFunction contained jsonb_delete_path jsonb_each jsonb_each_text jsonb_eq jsonb_exists
+syn keyword sqlFunction contained jsonb_exists_all jsonb_exists_any jsonb_extract_path
+syn keyword sqlFunction contained jsonb_extract_path_text jsonb_ge jsonb_gt jsonb_hash jsonb_hash_extended
+syn keyword sqlFunction contained jsonb_in jsonb_insert jsonb_le jsonb_lt jsonb_ne jsonb_object
+syn keyword sqlFunction contained jsonb_object_agg jsonb_object_agg_finalfn jsonb_object_agg_transfn
+syn keyword sqlFunction contained jsonb_object_field jsonb_object_field_text jsonb_object_keys
+syn keyword sqlFunction contained jsonb_out jsonb_path_exists jsonb_path_exists_opr
+syn keyword sqlFunction contained jsonb_path_exists_tz jsonb_path_match jsonb_path_match_opr
+syn keyword sqlFunction contained jsonb_path_match_tz jsonb_path_query jsonb_path_query_array
+syn keyword sqlFunction contained jsonb_path_query_array_tz jsonb_path_query_first jsonb_path_query_first_tz
+syn keyword sqlFunction contained jsonb_path_query_tz jsonb_populate_record jsonb_populate_recordset
+syn keyword sqlFunction contained jsonb_pretty jsonb_recv jsonb_send jsonb_set jsonb_set_lax
+syn keyword sqlFunction contained jsonb_strip_nulls jsonb_subscript_handler jsonb_to_record
syn keyword sqlFunction contained jsonb_to_recordset jsonb_to_tsvector jsonb_typeof jsonpath_in
syn keyword sqlFunction contained jsonpath_out jsonpath_recv jsonpath_send justify_days justify_hours
syn keyword sqlFunction contained justify_interval koi8r_to_iso koi8r_to_mic koi8r_to_utf8
syn keyword sqlFunction contained koi8r_to_win1251 koi8r_to_win866 koi8u_to_utf8 lag language_handler_in
-syn keyword sqlFunction contained language_handler_out last_value lastval latin1_to_mic
-syn keyword sqlFunction contained latin2_to_mic latin2_to_win1250 latin3_to_mic latin4_to_mic lcm lead left
-syn keyword sqlFunction contained length like like_escape likejoinsel likesel line line_distance line_eq
+syn keyword sqlFunction contained language_handler_out last_value lastval latin1_to_mic latin2_to_mic
+syn keyword sqlFunction contained latin2_to_win1250 latin3_to_mic latin4_to_mic lcm lead left length
+syn keyword sqlFunction contained like like_escape likejoinsel likesel line line_distance line_eq
syn keyword sqlFunction contained line_horizontal line_in line_interpt line_intersect line_out
-syn keyword sqlFunction contained line_parallel line_perp line_recv line_send line_vertical ln
-syn keyword sqlFunction contained lo_close lo_creat lo_create lo_export lo_from_bytea lo_get lo_import
+syn keyword sqlFunction contained line_parallel line_perp line_recv line_send line_vertical ln lo_close
+syn keyword sqlFunction contained lo_creat lo_create lo_export lo_from_bytea lo_get lo_import
syn keyword sqlFunction contained lo_lseek lo_lseek64 lo_open lo_put lo_tell lo_tell64 lo_truncate
-syn keyword sqlFunction contained lo_truncate64 lo_unlink log log10 loread lower lower_inc lower_inf
-syn keyword sqlFunction contained lowrite lpad lseg lseg_center lseg_distance lseg_eq lseg_ge lseg_gt
+syn keyword sqlFunction contained lo_truncate64 lo_unlink log log10 loread lower lower_inc lower_inf lowrite
+syn keyword sqlFunction contained lpad lseg lseg_center lseg_distance lseg_eq lseg_ge lseg_gt
syn keyword sqlFunction contained lseg_horizontal lseg_in lseg_interpt lseg_intersect lseg_le
syn keyword sqlFunction contained lseg_length lseg_lt lseg_ne lseg_out lseg_parallel lseg_perp lseg_recv
syn keyword sqlFunction contained lseg_send lseg_vertical ltrim macaddr macaddr8 macaddr8_and
@@ -392,65 +415,79 @@ syn keyword sqlFunction contained macaddr8_lt macaddr8_ne macaddr8_not macaddr8_
syn keyword sqlFunction contained macaddr8_recv macaddr8_send macaddr8_set7bit macaddr_and
syn keyword sqlFunction contained macaddr_cmp macaddr_eq macaddr_ge macaddr_gt macaddr_in macaddr_le
syn keyword sqlFunction contained macaddr_lt macaddr_ne macaddr_not macaddr_or macaddr_out macaddr_recv
-syn keyword sqlFunction contained macaddr_send macaddr_sortsupport make_date make_interval
-syn keyword sqlFunction contained make_time make_timestamp make_timestamptz makeaclitem masklen
-syn keyword sqlFunction contained matchingjoinsel matchingsel max md5 mic_to_big5 mic_to_euc_cn
-syn keyword sqlFunction contained mic_to_euc_jp mic_to_euc_kr mic_to_euc_tw mic_to_iso mic_to_koi8r
+syn keyword sqlFunction contained macaddr_send macaddr_sortsupport make_date make_interval make_time
+syn keyword sqlFunction contained make_timestamp make_timestamptz makeaclitem masklen
+syn keyword sqlFunction contained matchingjoinsel matchingsel max md5 mic_to_big5 mic_to_euc_cn mic_to_euc_jp
+syn keyword sqlFunction contained mic_to_euc_kr mic_to_euc_tw mic_to_iso mic_to_koi8r
syn keyword sqlFunction contained mic_to_latin1 mic_to_latin2 mic_to_latin3 mic_to_latin4 mic_to_sjis
syn keyword sqlFunction contained mic_to_win1250 mic_to_win1251 mic_to_win866 min min_scale mod mode
-syn keyword sqlFunction contained mode_final money mul_d_interval mxid_age name nameconcatoid nameeq
-syn keyword sqlFunction contained nameeqtext namege namegetext namegt namegttext nameiclike nameicnlike
-syn keyword sqlFunction contained nameicregexeq nameicregexne namein namele nameletext namelike
-syn keyword sqlFunction contained namelt namelttext namene namenetext namenlike nameout namerecv
-syn keyword sqlFunction contained nameregexeq nameregexne namesend neqjoinsel neqsel netmask network
-syn keyword sqlFunction contained network_cmp network_eq network_ge network_gt network_larger
-syn keyword sqlFunction contained network_le network_lt network_ne network_overlap network_smaller
-syn keyword sqlFunction contained network_sortsupport network_sub network_subeq network_subset_support
-syn keyword sqlFunction contained network_sup network_supeq networkjoinsel networksel nextval
-syn keyword sqlFunction contained nlikejoinsel nlikesel normalize notlike now npoints nth_value ntile
-syn keyword sqlFunction contained num_nonnulls num_nulls numeric numeric_abs numeric_accum
-syn keyword sqlFunction contained numeric_accum_inv numeric_add numeric_avg numeric_avg_accum
-syn keyword sqlFunction contained numeric_avg_combine numeric_avg_deserialize numeric_avg_serialize numeric_cmp
-syn keyword sqlFunction contained numeric_combine numeric_deserialize numeric_div
-syn keyword sqlFunction contained numeric_div_trunc numeric_eq numeric_exp numeric_fac numeric_ge numeric_gt
-syn keyword sqlFunction contained numeric_in numeric_inc numeric_larger numeric_le numeric_ln
-syn keyword sqlFunction contained numeric_log numeric_lt numeric_mod numeric_mul numeric_ne numeric_out
-syn keyword sqlFunction contained numeric_poly_avg numeric_poly_combine numeric_poly_deserialize
-syn keyword sqlFunction contained numeric_poly_serialize numeric_poly_stddev_pop
-syn keyword sqlFunction contained numeric_poly_stddev_samp numeric_poly_sum numeric_poly_var_pop
-syn keyword sqlFunction contained numeric_poly_var_samp numeric_power numeric_recv numeric_send
-syn keyword sqlFunction contained numeric_serialize numeric_smaller numeric_sortsupport numeric_sqrt
-syn keyword sqlFunction contained numeric_stddev_pop numeric_stddev_samp numeric_sub numeric_sum
-syn keyword sqlFunction contained numeric_support numeric_uminus numeric_uplus numeric_var_pop
-syn keyword sqlFunction contained numeric_var_samp numerictypmodin numerictypmodout numnode numrange
-syn keyword sqlFunction contained numrange_subdiff obj_description octet_length oid oideq oidge oidgt oidin
-syn keyword sqlFunction contained oidlarger oidle oidlt oidne oidout oidrecv oidsend oidsmaller
-syn keyword sqlFunction contained oidvectoreq oidvectorge oidvectorgt oidvectorin oidvectorle oidvectorlt
-syn keyword sqlFunction contained oidvectorne oidvectorout oidvectorrecv oidvectorsend
-syn keyword sqlFunction contained oidvectortypes on_pb on_pl on_ppath on_ps on_sb on_sl ordered_set_transition
-syn keyword sqlFunction contained ordered_set_transition_multi overlaps overlay parse_ident path
-syn keyword sqlFunction contained path_add path_add_pt path_center path_contain_pt path_distance
-syn keyword sqlFunction contained path_div_pt path_in path_inter path_length path_mul_pt path_n_eq
-syn keyword sqlFunction contained path_n_ge path_n_gt path_n_le path_n_lt path_npoints path_out
-syn keyword sqlFunction contained path_recv path_send path_sub_pt pclose percent_rank percent_rank_final
-syn keyword sqlFunction contained percentile_cont percentile_cont_float8_final
-syn keyword sqlFunction contained percentile_cont_float8_multi_final percentile_cont_interval_final
-syn keyword sqlFunction contained percentile_cont_interval_multi_final percentile_disc
-syn keyword sqlFunction contained percentile_disc_final percentile_disc_multi_final pg_advisory_lock
-syn keyword sqlFunction contained pg_advisory_lock_shared pg_advisory_unlock pg_advisory_unlock_all
-syn keyword sqlFunction contained pg_advisory_unlock_shared pg_advisory_xact_lock
-syn keyword sqlFunction contained pg_advisory_xact_lock_shared pg_available_extension_versions pg_available_extensions
-syn keyword sqlFunction contained pg_backend_pid pg_backup_start_time pg_blocking_pids
-syn keyword sqlFunction contained pg_cancel_backend pg_char_to_encoding pg_client_encoding
-syn keyword sqlFunction contained pg_collation_actual_version pg_collation_for pg_collation_is_visible
+syn keyword sqlFunction contained mode_final money mul_d_interval multirange
+syn keyword sqlFunction contained multirange_adjacent_multirange multirange_adjacent_range multirange_after_multirange
+syn keyword sqlFunction contained multirange_after_range multirange_before_multirange
+syn keyword sqlFunction contained multirange_before_range multirange_cmp multirange_contained_by_multirange
+syn keyword sqlFunction contained multirange_contained_by_range multirange_contains_elem
+syn keyword sqlFunction contained multirange_contains_multirange multirange_contains_range
+syn keyword sqlFunction contained multirange_eq multirange_ge multirange_gist_compress
+syn keyword sqlFunction contained multirange_gist_consistent multirange_gt multirange_in multirange_intersect
+syn keyword sqlFunction contained multirange_intersect_agg_transfn multirange_le multirange_lt
+syn keyword sqlFunction contained multirange_minus multirange_ne multirange_out
+syn keyword sqlFunction contained multirange_overlaps_multirange multirange_overlaps_range
+syn keyword sqlFunction contained multirange_overleft_multirange multirange_overleft_range multirange_overright_multirange
+syn keyword sqlFunction contained multirange_overright_range multirange_recv multirange_send
+syn keyword sqlFunction contained multirange_typanalyze multirange_union multirangesel mxid_age name
+syn keyword sqlFunction contained nameconcatoid nameeq nameeqtext namege namegetext namegt
+syn keyword sqlFunction contained namegttext nameiclike nameicnlike nameicregexeq nameicregexne namein
+syn keyword sqlFunction contained namele nameletext namelike namelt namelttext namene namenetext
+syn keyword sqlFunction contained namenlike nameout namerecv nameregexeq nameregexne namesend neqjoinsel
+syn keyword sqlFunction contained neqsel netmask network network_cmp network_eq network_ge network_gt
+syn keyword sqlFunction contained network_larger network_le network_lt network_ne network_overlap
+syn keyword sqlFunction contained network_smaller network_sortsupport network_sub network_subeq
+syn keyword sqlFunction contained network_subset_support network_sup network_supeq networkjoinsel
+syn keyword sqlFunction contained networksel nextval nlikejoinsel nlikesel normalize notlike now
+syn keyword sqlFunction contained npoints nth_value ntile num_nonnulls num_nulls numeric numeric_abs
+syn keyword sqlFunction contained numeric_accum numeric_accum_inv numeric_add numeric_avg
+syn keyword sqlFunction contained numeric_avg_accum numeric_avg_combine numeric_avg_deserialize
+syn keyword sqlFunction contained numeric_avg_serialize numeric_cmp numeric_combine numeric_deserialize
+syn keyword sqlFunction contained numeric_div numeric_div_trunc numeric_eq numeric_exp numeric_ge
+syn keyword sqlFunction contained numeric_gt numeric_in numeric_inc numeric_larger numeric_le
+syn keyword sqlFunction contained numeric_ln numeric_log numeric_lt numeric_mod numeric_mul numeric_ne
+syn keyword sqlFunction contained numeric_out numeric_pl_pg_lsn numeric_poly_avg
+syn keyword sqlFunction contained numeric_poly_combine numeric_poly_deserialize numeric_poly_serialize
+syn keyword sqlFunction contained numeric_poly_stddev_pop numeric_poly_stddev_samp numeric_poly_sum
+syn keyword sqlFunction contained numeric_poly_var_pop numeric_poly_var_samp numeric_power numeric_recv
+syn keyword sqlFunction contained numeric_send numeric_serialize numeric_smaller
+syn keyword sqlFunction contained numeric_sortsupport numeric_sqrt numeric_stddev_pop numeric_stddev_samp
+syn keyword sqlFunction contained numeric_sub numeric_sum numeric_support numeric_uminus numeric_uplus
+syn keyword sqlFunction contained numeric_var_pop numeric_var_samp numerictypmodin
+syn keyword sqlFunction contained numerictypmodout nummultirange numnode numrange numrange_subdiff
+syn keyword sqlFunction contained obj_description octet_length oid oideq oidge oidgt oidin oidlarger oidle oidlt
+syn keyword sqlFunction contained oidne oidout oidrecv oidsend oidsmaller oidvectoreq oidvectorge
+syn keyword sqlFunction contained oidvectorgt oidvectorin oidvectorle oidvectorlt oidvectorne
+syn keyword sqlFunction contained oidvectorout oidvectorrecv oidvectorsend oidvectortypes on_pb on_pl
+syn keyword sqlFunction contained on_ppath on_ps on_sb on_sl ordered_set_transition
+syn keyword sqlFunction contained ordered_set_transition_multi overlaps overlay parse_ident path path_add path_add_pt
+syn keyword sqlFunction contained path_center path_contain_pt path_distance path_div_pt path_in
+syn keyword sqlFunction contained path_inter path_length path_mul_pt path_n_eq path_n_ge path_n_gt
+syn keyword sqlFunction contained path_n_le path_n_lt path_npoints path_out path_recv path_send
+syn keyword sqlFunction contained path_sub_pt pclose percent_rank percent_rank_final percentile_cont
+syn keyword sqlFunction contained percentile_cont_float8_final percentile_cont_float8_multi_final
+syn keyword sqlFunction contained percentile_cont_interval_final
+syn keyword sqlFunction contained percentile_cont_interval_multi_final percentile_disc percentile_disc_final
+syn keyword sqlFunction contained percentile_disc_multi_final pg_advisory_lock pg_advisory_lock_shared
+syn keyword sqlFunction contained pg_advisory_unlock pg_advisory_unlock_all pg_advisory_unlock_shared
+syn keyword sqlFunction contained pg_advisory_xact_lock pg_advisory_xact_lock_shared
+syn keyword sqlFunction contained pg_available_extension_versions pg_available_extensions pg_backend_pid
+syn keyword sqlFunction contained pg_backup_start_time pg_blocking_pids pg_cancel_backend
+syn keyword sqlFunction contained pg_char_to_encoding pg_client_encoding pg_collation_actual_version
+syn keyword sqlFunction contained pg_collation_for pg_collation_is_visible pg_column_compression
syn keyword sqlFunction contained pg_column_is_updatable pg_column_size pg_conf_load_time pg_config
syn keyword sqlFunction contained pg_control_checkpoint pg_control_init pg_control_recovery
syn keyword sqlFunction contained pg_control_system pg_conversion_is_visible
syn keyword sqlFunction contained pg_copy_logical_replication_slot pg_copy_physical_replication_slot
syn keyword sqlFunction contained pg_create_logical_replication_slot pg_create_physical_replication_slot
syn keyword sqlFunction contained pg_create_restore_point pg_current_logfile pg_current_snapshot
-syn keyword sqlFunction contained pg_current_wal_flush_lsn pg_current_wal_insert_lsn pg_current_wal_lsn
-syn keyword sqlFunction contained pg_current_xact_id pg_current_xact_id_if_assigned pg_cursor
+syn keyword sqlFunction contained pg_current_wal_flush_lsn pg_current_wal_insert_lsn
+syn keyword sqlFunction contained pg_current_wal_lsn pg_current_xact_id pg_current_xact_id_if_assigned pg_cursor
syn keyword sqlFunction contained pg_database_size pg_ddl_command_in pg_ddl_command_out
syn keyword sqlFunction contained pg_ddl_command_recv pg_ddl_command_send pg_dependencies_in
syn keyword sqlFunction contained pg_dependencies_out pg_dependencies_recv pg_dependencies_send
@@ -458,33 +495,37 @@ syn keyword sqlFunction contained pg_describe_object pg_drop_replication_slot pg
syn keyword sqlFunction contained pg_encoding_to_char pg_event_trigger_ddl_commands
syn keyword sqlFunction contained pg_event_trigger_dropped_objects pg_event_trigger_table_rewrite_oid
syn keyword sqlFunction contained pg_event_trigger_table_rewrite_reason pg_export_snapshot
-syn keyword sqlFunction contained pg_extension_config_dump pg_extension_update_paths pg_file_rename pg_file_sync
-syn keyword sqlFunction contained pg_file_unlink pg_file_write pg_filenode_relation
-syn keyword sqlFunction contained pg_function_is_visible pg_get_constraintdef pg_get_expr
+syn keyword sqlFunction contained pg_extension_config_dump pg_extension_update_paths pg_file_rename
+syn keyword sqlFunction contained pg_file_sync pg_file_unlink pg_file_write pg_filenode_relation
+syn keyword sqlFunction contained pg_function_is_visible pg_get_backend_memory_contexts
+syn keyword sqlFunction contained pg_get_catalog_foreign_keys pg_get_constraintdef pg_get_expr
syn keyword sqlFunction contained pg_get_function_arg_default pg_get_function_arguments
-syn keyword sqlFunction contained pg_get_function_identity_arguments pg_get_function_result pg_get_functiondef
-syn keyword sqlFunction contained pg_get_indexdef pg_get_keywords pg_get_multixact_members
-syn keyword sqlFunction contained pg_get_object_address pg_get_partition_constraintdef pg_get_partkeydef
-syn keyword sqlFunction contained pg_get_publication_tables pg_get_replica_identity_index
-syn keyword sqlFunction contained pg_get_replication_slots pg_get_ruledef pg_get_serial_sequence
-syn keyword sqlFunction contained pg_get_shmem_allocations pg_get_statisticsobjdef pg_get_triggerdef
-syn keyword sqlFunction contained pg_get_userbyid pg_get_viewdef pg_has_role pg_hba_file_rules
+syn keyword sqlFunction contained pg_get_function_identity_arguments pg_get_function_result pg_get_function_sqlbody
+syn keyword sqlFunction contained pg_get_functiondef pg_get_indexdef pg_get_keywords
+syn keyword sqlFunction contained pg_get_multixact_members pg_get_object_address pg_get_partition_constraintdef
+syn keyword sqlFunction contained pg_get_partkeydef pg_get_publication_tables
+syn keyword sqlFunction contained pg_get_replica_identity_index pg_get_replication_slots pg_get_ruledef
+syn keyword sqlFunction contained pg_get_serial_sequence pg_get_shmem_allocations pg_get_statisticsobjdef
+syn keyword sqlFunction contained pg_get_statisticsobjdef_columns
+syn keyword sqlFunction contained pg_get_statisticsobjdef_expressions pg_get_triggerdef pg_get_userbyid pg_get_viewdef
+syn keyword sqlFunction contained pg_get_wal_replay_pause_state pg_has_role pg_hba_file_rules
syn keyword sqlFunction contained pg_identify_object pg_identify_object_as_address
syn keyword sqlFunction contained pg_import_system_collations pg_index_column_has_property pg_index_has_property
syn keyword sqlFunction contained pg_indexam_has_property pg_indexam_progress_phasename
-syn keyword sqlFunction contained pg_indexes_size pg_is_in_backup pg_is_in_recovery pg_is_other_temp_schema
-syn keyword sqlFunction contained pg_is_wal_replay_paused pg_isolation_test_session_is_blocked
-syn keyword sqlFunction contained pg_jit_available pg_last_committed_xact
+syn keyword sqlFunction contained pg_indexes_size pg_is_in_backup pg_is_in_recovery
+syn keyword sqlFunction contained pg_is_other_temp_schema pg_is_wal_replay_paused
+syn keyword sqlFunction contained pg_isolation_test_session_is_blocked pg_jit_available pg_last_committed_xact
syn keyword sqlFunction contained pg_last_wal_receive_lsn pg_last_wal_replay_lsn pg_last_xact_replay_timestamp
-syn keyword sqlFunction contained pg_listening_channels pg_lock_status pg_logdir_ls
-syn keyword sqlFunction contained pg_logical_emit_message pg_logical_slot_get_binary_changes
-syn keyword sqlFunction contained pg_logical_slot_get_changes pg_logical_slot_peek_binary_changes
-syn keyword sqlFunction contained pg_logical_slot_peek_changes pg_ls_archive_statusdir pg_ls_dir pg_ls_logdir
-syn keyword sqlFunction contained pg_ls_tmpdir pg_ls_waldir pg_lsn_cmp pg_lsn_eq pg_lsn_ge pg_lsn_gt
-syn keyword sqlFunction contained pg_lsn_hash pg_lsn_hash_extended pg_lsn_in pg_lsn_larger
-syn keyword sqlFunction contained pg_lsn_le pg_lsn_lt pg_lsn_mi pg_lsn_ne pg_lsn_out pg_lsn_recv
-syn keyword sqlFunction contained pg_lsn_send pg_lsn_smaller pg_mcv_list_in pg_mcv_list_items
-syn keyword sqlFunction contained pg_mcv_list_out pg_mcv_list_recv pg_mcv_list_send pg_my_temp_schema
+syn keyword sqlFunction contained pg_listening_channels pg_lock_status
+syn keyword sqlFunction contained pg_log_backend_memory_contexts pg_logdir_ls pg_logical_emit_message
+syn keyword sqlFunction contained pg_logical_slot_get_binary_changes pg_logical_slot_get_changes
+syn keyword sqlFunction contained pg_logical_slot_peek_binary_changes pg_logical_slot_peek_changes
+syn keyword sqlFunction contained pg_ls_archive_statusdir pg_ls_dir pg_ls_logdir pg_ls_tmpdir pg_ls_waldir pg_lsn
+syn keyword sqlFunction contained pg_lsn_cmp pg_lsn_eq pg_lsn_ge pg_lsn_gt pg_lsn_hash
+syn keyword sqlFunction contained pg_lsn_hash_extended pg_lsn_in pg_lsn_larger pg_lsn_le pg_lsn_lt pg_lsn_mi
+syn keyword sqlFunction contained pg_lsn_mii pg_lsn_ne pg_lsn_out pg_lsn_pli pg_lsn_recv pg_lsn_send
+syn keyword sqlFunction contained pg_lsn_smaller pg_mcv_list_in pg_mcv_list_items pg_mcv_list_out
+syn keyword sqlFunction contained pg_mcv_list_recv pg_mcv_list_send pg_my_temp_schema
syn keyword sqlFunction contained pg_ndistinct_in pg_ndistinct_out pg_ndistinct_recv pg_ndistinct_send
syn keyword sqlFunction contained pg_nextoid pg_node_tree_in pg_node_tree_out pg_node_tree_recv
syn keyword sqlFunction contained pg_node_tree_send pg_notification_queue_usage pg_notify
@@ -493,8 +534,8 @@ syn keyword sqlFunction contained pg_options_to_table pg_partition_ancestors pg_
syn keyword sqlFunction contained pg_partition_tree pg_postmaster_start_time pg_prepared_statement
syn keyword sqlFunction contained pg_prepared_xact pg_promote pg_read_binary_file pg_read_file
syn keyword sqlFunction contained pg_read_file_old pg_relation_filenode pg_relation_filepath
-syn keyword sqlFunction contained pg_relation_is_publishable pg_relation_is_updatable
-syn keyword sqlFunction contained pg_relation_size pg_reload_conf pg_replication_origin_advance
+syn keyword sqlFunction contained pg_relation_is_publishable pg_relation_is_updatable pg_relation_size
+syn keyword sqlFunction contained pg_reload_conf pg_replication_origin_advance
syn keyword sqlFunction contained pg_replication_origin_create pg_replication_origin_drop
syn keyword sqlFunction contained pg_replication_origin_oid pg_replication_origin_progress
syn keyword sqlFunction contained pg_replication_origin_session_is_setup pg_replication_origin_session_progress
@@ -520,205 +561,216 @@ syn keyword sqlFunction contained pg_stat_get_bgwriter_buf_written_checkpoints p
syn keyword sqlFunction contained pg_stat_get_bgwriter_maxwritten_clean
syn keyword sqlFunction contained pg_stat_get_bgwriter_requested_checkpoints pg_stat_get_bgwriter_stat_reset_time
syn keyword sqlFunction contained pg_stat_get_bgwriter_timed_checkpoints pg_stat_get_blocks_fetched
-syn keyword sqlFunction contained pg_stat_get_blocks_hit pg_stat_get_buf_alloc
-syn keyword sqlFunction contained pg_stat_get_buf_fsync_backend pg_stat_get_buf_written_backend
+syn keyword sqlFunction contained pg_stat_get_blocks_hit pg_stat_get_buf_alloc pg_stat_get_buf_fsync_backend
+syn keyword sqlFunction contained pg_stat_get_buf_written_backend
syn keyword sqlFunction contained pg_stat_get_checkpoint_sync_time pg_stat_get_checkpoint_write_time
-syn keyword sqlFunction contained pg_stat_get_db_blk_read_time pg_stat_get_db_blk_write_time
-syn keyword sqlFunction contained pg_stat_get_db_blocks_fetched pg_stat_get_db_blocks_hit
-syn keyword sqlFunction contained pg_stat_get_db_checksum_failures pg_stat_get_db_checksum_last_failure
-syn keyword sqlFunction contained pg_stat_get_db_conflict_all pg_stat_get_db_conflict_bufferpin
-syn keyword sqlFunction contained pg_stat_get_db_conflict_lock pg_stat_get_db_conflict_snapshot
-syn keyword sqlFunction contained pg_stat_get_db_conflict_startup_deadlock pg_stat_get_db_conflict_tablespace
-syn keyword sqlFunction contained pg_stat_get_db_deadlocks pg_stat_get_db_numbackends
-syn keyword sqlFunction contained pg_stat_get_db_stat_reset_time pg_stat_get_db_temp_bytes
-syn keyword sqlFunction contained pg_stat_get_db_temp_files pg_stat_get_db_tuples_deleted
-syn keyword sqlFunction contained pg_stat_get_db_tuples_fetched pg_stat_get_db_tuples_inserted
-syn keyword sqlFunction contained pg_stat_get_db_tuples_returned pg_stat_get_db_tuples_updated
-syn keyword sqlFunction contained pg_stat_get_db_xact_commit pg_stat_get_db_xact_rollback pg_stat_get_dead_tuples
-syn keyword sqlFunction contained pg_stat_get_function_calls pg_stat_get_function_self_time
-syn keyword sqlFunction contained pg_stat_get_function_total_time pg_stat_get_ins_since_vacuum
-syn keyword sqlFunction contained pg_stat_get_last_analyze_time pg_stat_get_last_autoanalyze_time
-syn keyword sqlFunction contained pg_stat_get_last_autovacuum_time pg_stat_get_last_vacuum_time
-syn keyword sqlFunction contained pg_stat_get_live_tuples pg_stat_get_mod_since_analyze
-syn keyword sqlFunction contained pg_stat_get_numscans pg_stat_get_progress_info pg_stat_get_slru
+syn keyword sqlFunction contained pg_stat_get_db_active_time pg_stat_get_db_blk_read_time
+syn keyword sqlFunction contained pg_stat_get_db_blk_write_time pg_stat_get_db_blocks_fetched pg_stat_get_db_blocks_hit
+syn keyword sqlFunction contained pg_stat_get_db_checksum_failures
+syn keyword sqlFunction contained pg_stat_get_db_checksum_last_failure pg_stat_get_db_conflict_all
+syn keyword sqlFunction contained pg_stat_get_db_conflict_bufferpin pg_stat_get_db_conflict_lock
+syn keyword sqlFunction contained pg_stat_get_db_conflict_snapshot pg_stat_get_db_conflict_startup_deadlock
+syn keyword sqlFunction contained pg_stat_get_db_conflict_tablespace pg_stat_get_db_deadlocks
+syn keyword sqlFunction contained pg_stat_get_db_idle_in_transaction_time pg_stat_get_db_numbackends
+syn keyword sqlFunction contained pg_stat_get_db_session_time pg_stat_get_db_sessions
+syn keyword sqlFunction contained pg_stat_get_db_sessions_abandoned pg_stat_get_db_sessions_fatal
+syn keyword sqlFunction contained pg_stat_get_db_sessions_killed pg_stat_get_db_stat_reset_time
+syn keyword sqlFunction contained pg_stat_get_db_temp_bytes pg_stat_get_db_temp_files
+syn keyword sqlFunction contained pg_stat_get_db_tuples_deleted pg_stat_get_db_tuples_fetched
+syn keyword sqlFunction contained pg_stat_get_db_tuples_inserted pg_stat_get_db_tuples_returned
+syn keyword sqlFunction contained pg_stat_get_db_tuples_updated pg_stat_get_db_xact_commit
+syn keyword sqlFunction contained pg_stat_get_db_xact_rollback pg_stat_get_dead_tuples pg_stat_get_function_calls
+syn keyword sqlFunction contained pg_stat_get_function_self_time pg_stat_get_function_total_time
+syn keyword sqlFunction contained pg_stat_get_ins_since_vacuum pg_stat_get_last_analyze_time
+syn keyword sqlFunction contained pg_stat_get_last_autoanalyze_time pg_stat_get_last_autovacuum_time
+syn keyword sqlFunction contained pg_stat_get_last_vacuum_time pg_stat_get_live_tuples
+syn keyword sqlFunction contained pg_stat_get_mod_since_analyze pg_stat_get_numscans
+syn keyword sqlFunction contained pg_stat_get_progress_info pg_stat_get_replication_slot pg_stat_get_slru
syn keyword sqlFunction contained pg_stat_get_snapshot_timestamp pg_stat_get_subscription
syn keyword sqlFunction contained pg_stat_get_tuples_deleted pg_stat_get_tuples_fetched
syn keyword sqlFunction contained pg_stat_get_tuples_hot_updated pg_stat_get_tuples_inserted
syn keyword sqlFunction contained pg_stat_get_tuples_returned pg_stat_get_tuples_updated pg_stat_get_vacuum_count
-syn keyword sqlFunction contained pg_stat_get_wal_receiver pg_stat_get_wal_senders
+syn keyword sqlFunction contained pg_stat_get_wal pg_stat_get_wal_receiver pg_stat_get_wal_senders
syn keyword sqlFunction contained pg_stat_get_xact_blocks_fetched pg_stat_get_xact_blocks_hit
-syn keyword sqlFunction contained pg_stat_get_xact_function_calls pg_stat_get_xact_function_self_time
-syn keyword sqlFunction contained pg_stat_get_xact_function_total_time pg_stat_get_xact_numscans
-syn keyword sqlFunction contained pg_stat_get_xact_tuples_deleted pg_stat_get_xact_tuples_fetched
-syn keyword sqlFunction contained pg_stat_get_xact_tuples_hot_updated
+syn keyword sqlFunction contained pg_stat_get_xact_function_calls
+syn keyword sqlFunction contained pg_stat_get_xact_function_self_time pg_stat_get_xact_function_total_time
+syn keyword sqlFunction contained pg_stat_get_xact_numscans pg_stat_get_xact_tuples_deleted
+syn keyword sqlFunction contained pg_stat_get_xact_tuples_fetched pg_stat_get_xact_tuples_hot_updated
syn keyword sqlFunction contained pg_stat_get_xact_tuples_inserted pg_stat_get_xact_tuples_returned
-syn keyword sqlFunction contained pg_stat_get_xact_tuples_updated pg_stat_reset pg_stat_reset_shared
-syn keyword sqlFunction contained pg_stat_reset_single_function_counters pg_stat_reset_single_table_counters
-syn keyword sqlFunction contained pg_stat_reset_slru pg_statistics_obj_is_visible pg_stop_backup
-syn keyword sqlFunction contained pg_switch_wal pg_table_is_visible pg_table_size
-syn keyword sqlFunction contained pg_tablespace_databases pg_tablespace_location pg_tablespace_size
-syn keyword sqlFunction contained pg_terminate_backend pg_timezone_abbrevs pg_timezone_names
-syn keyword sqlFunction contained pg_total_relation_size pg_trigger_depth pg_try_advisory_lock
-syn keyword sqlFunction contained pg_try_advisory_lock_shared pg_try_advisory_xact_lock
-syn keyword sqlFunction contained pg_try_advisory_xact_lock_shared pg_ts_config_is_visible pg_ts_dict_is_visible
-syn keyword sqlFunction contained pg_ts_parser_is_visible pg_ts_template_is_visible
-syn keyword sqlFunction contained pg_type_is_visible pg_typeof pg_visible_in_snapshot pg_wal_lsn_diff
-syn keyword sqlFunction contained pg_wal_replay_pause pg_wal_replay_resume pg_walfile_name
-syn keyword sqlFunction contained pg_walfile_name_offset pg_xact_commit_timestamp pg_xact_status
-syn keyword sqlFunction contained phraseto_tsquery pi plainto_tsquery plperl_call_handler plperl_inline_handler
-syn keyword sqlFunction contained plperl_validator plperlu_call_handler plperlu_inline_handler
-syn keyword sqlFunction contained plperlu_validator plpgsql_call_handler plpgsql_inline_handler
-syn keyword sqlFunction contained plpgsql_validator pltcl_call_handler pltclu_call_handler point
-syn keyword sqlFunction contained point_above point_add point_below point_distance point_div
-syn keyword sqlFunction contained point_eq point_horiz point_in point_left point_mul point_ne point_out
-syn keyword sqlFunction contained point_recv point_right point_send point_sub point_vert poly_above
-syn keyword sqlFunction contained poly_below poly_center poly_contain poly_contain_pt
-syn keyword sqlFunction contained poly_contained poly_distance poly_in poly_left poly_npoints poly_out
-syn keyword sqlFunction contained poly_overabove poly_overbelow poly_overlap poly_overleft poly_overright
-syn keyword sqlFunction contained poly_recv poly_right poly_same poly_send polygon popen position
-syn keyword sqlFunction contained positionjoinsel positionsel postgresql_fdw_validator pow power
-syn keyword sqlFunction contained prefixjoinsel prefixsel prsd_end prsd_headline prsd_lextype
-syn keyword sqlFunction contained prsd_nexttoken prsd_start pt_contained_circle pt_contained_poly
-syn keyword sqlFunction contained query_to_xml query_to_xml_and_xmlschema query_to_xmlschema querytree
-syn keyword sqlFunction contained quote_ident quote_literal quote_nullable radians radius random
-syn keyword sqlFunction contained range_adjacent range_after range_before range_cmp
-syn keyword sqlFunction contained range_contained_by range_contains range_contains_elem range_eq range_ge
+syn keyword sqlFunction contained pg_stat_get_xact_tuples_updated pg_stat_reset
+syn keyword sqlFunction contained pg_stat_reset_replication_slot pg_stat_reset_shared
+syn keyword sqlFunction contained pg_stat_reset_single_function_counters pg_stat_reset_single_table_counters pg_stat_reset_slru
+syn keyword sqlFunction contained pg_statistics_obj_is_visible pg_stop_backup pg_switch_wal
+syn keyword sqlFunction contained pg_table_is_visible pg_table_size pg_tablespace_databases
+syn keyword sqlFunction contained pg_tablespace_location pg_tablespace_size pg_terminate_backend
+syn keyword sqlFunction contained pg_timezone_abbrevs pg_timezone_names pg_total_relation_size
+syn keyword sqlFunction contained pg_trigger_depth pg_try_advisory_lock pg_try_advisory_lock_shared
+syn keyword sqlFunction contained pg_try_advisory_xact_lock pg_try_advisory_xact_lock_shared
+syn keyword sqlFunction contained pg_ts_config_is_visible pg_ts_dict_is_visible
+syn keyword sqlFunction contained pg_ts_parser_is_visible pg_ts_template_is_visible pg_type_is_visible pg_typeof
+syn keyword sqlFunction contained pg_visible_in_snapshot pg_wal_lsn_diff pg_wal_replay_pause
+syn keyword sqlFunction contained pg_wal_replay_resume pg_walfile_name pg_walfile_name_offset
+syn keyword sqlFunction contained pg_xact_commit_timestamp pg_xact_commit_timestamp_origin pg_xact_status
+syn keyword sqlFunction contained phraseto_tsquery pi plainto_tsquery plperl_call_handler
+syn keyword sqlFunction contained plperl_inline_handler plperl_validator plperlu_call_handler
+syn keyword sqlFunction contained plperlu_inline_handler plperlu_validator plpgsql_call_handler
+syn keyword sqlFunction contained plpgsql_inline_handler plpgsql_validator pltcl_call_handler
+syn keyword sqlFunction contained pltclu_call_handler point point_above point_add point_below point_distance
+syn keyword sqlFunction contained point_div point_eq point_horiz point_in point_left point_mul
+syn keyword sqlFunction contained point_ne point_out point_recv point_right point_send point_sub
+syn keyword sqlFunction contained point_vert poly_above poly_below poly_center poly_contain
+syn keyword sqlFunction contained poly_contain_pt poly_contained poly_distance poly_in poly_left poly_npoints
+syn keyword sqlFunction contained poly_out poly_overabove poly_overbelow poly_overlap poly_overleft
+syn keyword sqlFunction contained poly_overright poly_recv poly_right poly_same poly_send polygon
+syn keyword sqlFunction contained popen position positionjoinsel positionsel
+syn keyword sqlFunction contained postgresql_fdw_validator pow power prefixjoinsel prefixsel prsd_end prsd_headline
+syn keyword sqlFunction contained prsd_lextype prsd_nexttoken prsd_start pt_contained_circle
+syn keyword sqlFunction contained pt_contained_poly query_to_xml query_to_xml_and_xmlschema
+syn keyword sqlFunction contained query_to_xmlschema querytree quote_ident quote_literal quote_nullable radians
+syn keyword sqlFunction contained radius random range_adjacent range_adjacent_multirange
+syn keyword sqlFunction contained range_after range_after_multirange range_agg range_agg_finalfn
+syn keyword sqlFunction contained range_agg_transfn range_before range_before_multirange range_cmp
+syn keyword sqlFunction contained range_contained_by range_contained_by_multirange range_contains
+syn keyword sqlFunction contained range_contains_elem range_contains_multirange range_eq range_ge
syn keyword sqlFunction contained range_gist_consistent range_gist_penalty range_gist_picksplit
syn keyword sqlFunction contained range_gist_same range_gist_union range_gt range_in range_intersect
-syn keyword sqlFunction contained range_le range_lt range_merge range_minus range_ne range_out
-syn keyword sqlFunction contained range_overlaps range_overleft range_overright range_recv range_send
-syn keyword sqlFunction contained range_typanalyze range_union rangesel rank rank_final record_eq
-syn keyword sqlFunction contained record_ge record_gt record_image_eq record_image_ge record_image_gt
-syn keyword sqlFunction contained record_image_le record_image_lt record_image_ne record_in
-syn keyword sqlFunction contained record_le record_lt record_ne record_out record_recv record_send
-syn keyword sqlFunction contained regclass regclassin regclassout regclassrecv regclasssend
-syn keyword sqlFunction contained regcollationin regcollationout regcollationrecv regcollationsend regconfigin
-syn keyword sqlFunction contained regconfigout regconfigrecv regconfigsend regdictionaryin
-syn keyword sqlFunction contained regdictionaryout regdictionaryrecv regdictionarysend regexeqjoinsel
-syn keyword sqlFunction contained regexeqsel regexnejoinsel regexnesel regexp_match regexp_matches
-syn keyword sqlFunction contained regexp_replace regexp_split_to_array regexp_split_to_table
-syn keyword sqlFunction contained regnamespacein regnamespaceout regnamespacerecv regnamespacesend
-syn keyword sqlFunction contained regoperatorin regoperatorout regoperatorrecv regoperatorsend
-syn keyword sqlFunction contained regoperin regoperout regoperrecv regopersend regprocedurein
-syn keyword sqlFunction contained regprocedureout regprocedurerecv regproceduresend regprocin regprocout
-syn keyword sqlFunction contained regprocrecv regprocsend regr_avgx regr_avgy regr_count
-syn keyword sqlFunction contained regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy regrolein
-syn keyword sqlFunction contained regroleout regrolerecv regrolesend regtypein regtypeout regtyperecv
-syn keyword sqlFunction contained regtypesend repeat replace reverse right round row_number
-syn keyword sqlFunction contained row_security_active row_to_json rpad rtrim satisfies_hash_partition
-syn keyword sqlFunction contained scalargejoinsel scalargesel scalargtjoinsel scalargtsel
-syn keyword sqlFunction contained scalarlejoinsel scalarlesel scalarltjoinsel scalarltsel scale schema_to_xml
-syn keyword sqlFunction contained schema_to_xml_and_xmlschema schema_to_xmlschema session_user
-syn keyword sqlFunction contained set_bit set_byte set_config set_masklen setseed setval setweight
-syn keyword sqlFunction contained sha224 sha256 sha384 sha512 shell_in shell_out
-syn keyword sqlFunction contained shift_jis_2004_to_euc_jis_2004 shift_jis_2004_to_utf8 shobj_description sign
-syn keyword sqlFunction contained similar_escape similar_to_escape sin sind sinh sjis_to_euc_jp
-syn keyword sqlFunction contained sjis_to_mic sjis_to_utf8 slope spg_bbox_quad_config spg_box_quad_choose
-syn keyword sqlFunction contained spg_box_quad_config spg_box_quad_inner_consistent
-syn keyword sqlFunction contained spg_box_quad_leaf_consistent spg_box_quad_picksplit spg_kd_choose
-syn keyword sqlFunction contained spg_kd_config spg_kd_inner_consistent spg_kd_picksplit
-syn keyword sqlFunction contained spg_poly_quad_compress spg_quad_choose spg_quad_config
-syn keyword sqlFunction contained spg_quad_inner_consistent spg_quad_leaf_consistent spg_quad_picksplit
-syn keyword sqlFunction contained spg_range_quad_choose spg_range_quad_config spg_range_quad_inner_consistent
-syn keyword sqlFunction contained spg_range_quad_leaf_consistent spg_range_quad_picksplit
-syn keyword sqlFunction contained spg_text_choose spg_text_config spg_text_inner_consistent
-syn keyword sqlFunction contained spg_text_leaf_consistent spg_text_picksplit spghandler split_part sqrt
-syn keyword sqlFunction contained starts_with statement_timestamp stddev stddev_pop stddev_samp
-syn keyword sqlFunction contained string_agg string_agg_finalfn string_agg_transfn string_to_array
-syn keyword sqlFunction contained strip strpos substr substring sum
-syn keyword sqlFunction contained suppress_redundant_updates_trigger system table_am_handler_in table_am_handler_out table_to_xml
-syn keyword sqlFunction contained table_to_xml_and_xmlschema table_to_xmlschema tan tand tanh text
-syn keyword sqlFunction contained text_ge text_gt text_larger text_le text_lt text_pattern_ge
-syn keyword sqlFunction contained text_pattern_gt text_pattern_le text_pattern_lt text_smaller
-syn keyword sqlFunction contained textanycat textcat texteq texteqname textgename textgtname texticlike
+syn keyword sqlFunction contained range_intersect_agg range_intersect_agg_transfn range_le
+syn keyword sqlFunction contained range_lt range_merge range_minus range_ne range_out range_overlaps
+syn keyword sqlFunction contained range_overlaps_multirange range_overleft
+syn keyword sqlFunction contained range_overleft_multirange range_overright range_overright_multirange range_recv
+syn keyword sqlFunction contained range_send range_typanalyze range_union rangesel rank rank_final
+syn keyword sqlFunction contained raw_array_subscript_handler record_eq record_ge record_gt
+syn keyword sqlFunction contained record_image_eq record_image_ge record_image_gt record_image_le
+syn keyword sqlFunction contained record_image_lt record_image_ne record_in record_le record_lt record_ne
+syn keyword sqlFunction contained record_out record_recv record_send regclass regclassin regclassout
+syn keyword sqlFunction contained regclassrecv regclasssend regcollationin regcollationout
+syn keyword sqlFunction contained regcollationrecv regcollationsend regconfigin regconfigout
+syn keyword sqlFunction contained regconfigrecv regconfigsend regdictionaryin regdictionaryout
+syn keyword sqlFunction contained regdictionaryrecv regdictionarysend regexeqjoinsel regexeqsel regexnejoinsel
+syn keyword sqlFunction contained regexnesel regexp_match regexp_matches regexp_replace
+syn keyword sqlFunction contained regexp_split_to_array regexp_split_to_table regnamespacein
+syn keyword sqlFunction contained regnamespaceout regnamespacerecv regnamespacesend regoperatorin
+syn keyword sqlFunction contained regoperatorout regoperatorrecv regoperatorsend regoperin regoperout
+syn keyword sqlFunction contained regoperrecv regopersend regprocedurein regprocedureout regprocedurerecv
+syn keyword sqlFunction contained regproceduresend regprocin regprocout regprocrecv regprocsend
+syn keyword sqlFunction contained regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope
+syn keyword sqlFunction contained regr_sxx regr_sxy regr_syy regrolein regroleout regrolerecv
+syn keyword sqlFunction contained regrolesend regtypein regtypeout regtyperecv regtypesend repeat replace
+syn keyword sqlFunction contained reverse right round row_number row_security_active row_to_json
+syn keyword sqlFunction contained rpad rtrim satisfies_hash_partition scalargejoinsel scalargesel
+syn keyword sqlFunction contained scalargtjoinsel scalargtsel scalarlejoinsel scalarlesel
+syn keyword sqlFunction contained scalarltjoinsel scalarltsel scale schema_to_xml
+syn keyword sqlFunction contained schema_to_xml_and_xmlschema schema_to_xmlschema session_user set_bit set_byte set_config
+syn keyword sqlFunction contained set_masklen setseed setval setweight sha224 sha256 sha384 sha512
+syn keyword sqlFunction contained shell_in shell_out shift_jis_2004_to_euc_jis_2004
+syn keyword sqlFunction contained shift_jis_2004_to_utf8 shobj_description sign similar_escape similar_to_escape
+syn keyword sqlFunction contained sin sind sinh sjis_to_euc_jp sjis_to_mic sjis_to_utf8 slope
+syn keyword sqlFunction contained spg_bbox_quad_config spg_box_quad_choose spg_box_quad_config
+syn keyword sqlFunction contained spg_box_quad_inner_consistent spg_box_quad_leaf_consistent
+syn keyword sqlFunction contained spg_box_quad_picksplit spg_kd_choose spg_kd_config
+syn keyword sqlFunction contained spg_kd_inner_consistent spg_kd_picksplit spg_poly_quad_compress spg_quad_choose
+syn keyword sqlFunction contained spg_quad_config spg_quad_inner_consistent
+syn keyword sqlFunction contained spg_quad_leaf_consistent spg_quad_picksplit spg_range_quad_choose
+syn keyword sqlFunction contained spg_range_quad_config spg_range_quad_inner_consistent
+syn keyword sqlFunction contained spg_range_quad_leaf_consistent spg_range_quad_picksplit spg_text_choose spg_text_config
+syn keyword sqlFunction contained spg_text_inner_consistent spg_text_leaf_consistent
+syn keyword sqlFunction contained spg_text_picksplit spghandler split_part sqrt starts_with
+syn keyword sqlFunction contained statement_timestamp stddev stddev_pop stddev_samp string_agg string_agg_finalfn
+syn keyword sqlFunction contained string_agg_transfn string_to_array string_to_table strip strpos
+syn keyword sqlFunction contained substr substring sum suppress_redundant_updates_trigger system
+syn keyword sqlFunction contained table_am_handler_in table_am_handler_out table_to_xml
+syn keyword sqlFunction contained table_to_xml_and_xmlschema table_to_xmlschema tan tand tanh text text_ge
+syn keyword sqlFunction contained text_gt text_larger text_le text_lt text_pattern_ge text_pattern_gt
+syn keyword sqlFunction contained text_pattern_le text_pattern_lt text_smaller textanycat textcat
+syn keyword sqlFunction contained texteq texteqname textgename textgtname texticlike
syn keyword sqlFunction contained texticlike_support texticnlike texticregexeq texticregexeq_support
-syn keyword sqlFunction contained texticregexne textin textlen textlename textlike
-syn keyword sqlFunction contained textlike_support textltname textne textnename textnlike textout textrecv
-syn keyword sqlFunction contained textregexeq textregexeq_support textregexne textsend thesaurus_init
-syn keyword sqlFunction contained thesaurus_lexize tideq tidge tidgt tidin tidlarger tidle tidlt tidne
-syn keyword sqlFunction contained tidout tidrecv tidsend tidsmaller time time_cmp time_eq time_ge
-syn keyword sqlFunction contained time_gt time_hash time_hash_extended time_in time_larger time_le
-syn keyword sqlFunction contained time_lt time_mi_interval time_mi_time time_ne time_out
-syn keyword sqlFunction contained time_pl_interval time_recv time_send time_smaller time_support timedate_pl
-syn keyword sqlFunction contained timeofday timestamp timestamp_cmp timestamp_cmp_date
-syn keyword sqlFunction contained timestamp_cmp_timestamptz timestamp_eq timestamp_eq_date
-syn keyword sqlFunction contained timestamp_eq_timestamptz timestamp_ge timestamp_ge_date timestamp_ge_timestamptz
-syn keyword sqlFunction contained timestamp_gt timestamp_gt_date timestamp_gt_timestamptz
-syn keyword sqlFunction contained timestamp_hash timestamp_hash_extended timestamp_in timestamp_larger
-syn keyword sqlFunction contained timestamp_le timestamp_le_date timestamp_le_timestamptz
-syn keyword sqlFunction contained timestamp_lt timestamp_lt_date timestamp_lt_timestamptz timestamp_mi
+syn keyword sqlFunction contained texticregexne textin textlen textlename textlike textlike_support
+syn keyword sqlFunction contained textltname textne textnename textnlike textout textrecv textregexeq
+syn keyword sqlFunction contained textregexeq_support textregexne textsend thesaurus_init
+syn keyword sqlFunction contained thesaurus_lexize tideq tidge tidgt tidin tidlarger tidle tidlt tidne tidout
+syn keyword sqlFunction contained tidrecv tidsend tidsmaller time time_cmp time_eq time_ge time_gt
+syn keyword sqlFunction contained time_hash time_hash_extended time_in time_larger time_le time_lt
+syn keyword sqlFunction contained time_mi_interval time_mi_time time_ne time_out time_pl_interval
+syn keyword sqlFunction contained time_recv time_send time_smaller time_support timedate_pl timeofday
+syn keyword sqlFunction contained timestamp timestamp_cmp timestamp_cmp_date
+syn keyword sqlFunction contained timestamp_cmp_timestamptz timestamp_eq timestamp_eq_date timestamp_eq_timestamptz
+syn keyword sqlFunction contained timestamp_ge timestamp_ge_date timestamp_ge_timestamptz
+syn keyword sqlFunction contained timestamp_gt timestamp_gt_date timestamp_gt_timestamptz timestamp_hash
+syn keyword sqlFunction contained timestamp_hash_extended timestamp_in timestamp_larger
+syn keyword sqlFunction contained timestamp_le timestamp_le_date timestamp_le_timestamptz timestamp_lt
+syn keyword sqlFunction contained timestamp_lt_date timestamp_lt_timestamptz timestamp_mi
syn keyword sqlFunction contained timestamp_mi_interval timestamp_ne timestamp_ne_date
-syn keyword sqlFunction contained timestamp_ne_timestamptz timestamp_out timestamp_pl_interval
-syn keyword sqlFunction contained timestamp_recv timestamp_send timestamp_smaller timestamp_sortsupport
+syn keyword sqlFunction contained timestamp_ne_timestamptz timestamp_out timestamp_pl_interval timestamp_recv
+syn keyword sqlFunction contained timestamp_send timestamp_smaller timestamp_sortsupport
syn keyword sqlFunction contained timestamp_support timestamptypmodin timestamptypmodout timestamptz
syn keyword sqlFunction contained timestamptz_cmp timestamptz_cmp_date timestamptz_cmp_timestamp
syn keyword sqlFunction contained timestamptz_eq timestamptz_eq_date timestamptz_eq_timestamp
syn keyword sqlFunction contained timestamptz_ge timestamptz_ge_date timestamptz_ge_timestamp
-syn keyword sqlFunction contained timestamptz_gt timestamptz_gt_date timestamptz_gt_timestamp
-syn keyword sqlFunction contained timestamptz_in timestamptz_larger timestamptz_le timestamptz_le_date
+syn keyword sqlFunction contained timestamptz_gt timestamptz_gt_date timestamptz_gt_timestamp timestamptz_in
+syn keyword sqlFunction contained timestamptz_larger timestamptz_le timestamptz_le_date
syn keyword sqlFunction contained timestamptz_le_timestamp timestamptz_lt timestamptz_lt_date
syn keyword sqlFunction contained timestamptz_lt_timestamp timestamptz_mi timestamptz_mi_interval
syn keyword sqlFunction contained timestamptz_ne timestamptz_ne_date timestamptz_ne_timestamp
-syn keyword sqlFunction contained timestamptz_out timestamptz_pl_interval timestamptz_recv
-syn keyword sqlFunction contained timestamptz_send timestamptz_smaller timestamptztypmodin
-syn keyword sqlFunction contained timestamptztypmodout timetypmodin timetypmodout timetz timetz_cmp timetz_eq
-syn keyword sqlFunction contained timetz_ge timetz_gt timetz_hash timetz_hash_extended timetz_in
-syn keyword sqlFunction contained timetz_larger timetz_le timetz_lt timetz_mi_interval timetz_ne
-syn keyword sqlFunction contained timetz_out timetz_pl_interval timetz_recv timetz_send
-syn keyword sqlFunction contained timetz_smaller timetzdate_pl timetztypmodin timetztypmodout timezone
-syn keyword sqlFunction contained to_ascii to_char to_date to_hex to_json to_jsonb to_number to_regclass
-syn keyword sqlFunction contained to_regcollation to_regnamespace to_regoper to_regoperator
-syn keyword sqlFunction contained to_regproc to_regprocedure to_regrole to_regtype to_timestamp to_tsquery
-syn keyword sqlFunction contained to_tsvector transaction_timestamp translate trigger_in
-syn keyword sqlFunction contained trigger_out trim_scale trunc ts_debug ts_delete ts_filter ts_headline
+syn keyword sqlFunction contained timestamptz_out timestamptz_pl_interval timestamptz_recv timestamptz_send
+syn keyword sqlFunction contained timestamptz_smaller timestamptztypmodin timestamptztypmodout
+syn keyword sqlFunction contained timetypmodin timetypmodout timetz timetz_cmp timetz_eq timetz_ge
+syn keyword sqlFunction contained timetz_gt timetz_hash timetz_hash_extended timetz_in
+syn keyword sqlFunction contained timetz_larger timetz_le timetz_lt timetz_mi_interval timetz_ne timetz_out
+syn keyword sqlFunction contained timetz_pl_interval timetz_recv timetz_send timetz_smaller
+syn keyword sqlFunction contained timetzdate_pl timetztypmodin timetztypmodout timezone to_ascii to_char
+syn keyword sqlFunction contained to_date to_hex to_json to_jsonb to_number to_regclass
+syn keyword sqlFunction contained to_regcollation to_regnamespace to_regoper to_regoperator to_regproc
+syn keyword sqlFunction contained to_regprocedure to_regrole to_regtype to_timestamp to_tsquery
+syn keyword sqlFunction contained to_tsvector transaction_timestamp translate trigger_in trigger_out
+syn keyword sqlFunction contained trim_array trim_scale trunc ts_debug ts_delete ts_filter ts_headline
syn keyword sqlFunction contained ts_lexize ts_match_qv ts_match_tq ts_match_tt ts_match_vq ts_parse
syn keyword sqlFunction contained ts_rank ts_rank_cd ts_rewrite ts_stat ts_token_type ts_typanalyze
syn keyword sqlFunction contained tsm_handler_in tsm_handler_out tsmatchjoinsel tsmatchsel
-syn keyword sqlFunction contained tsq_mcontained tsq_mcontains tsquery_and tsquery_cmp tsquery_eq
-syn keyword sqlFunction contained tsquery_ge tsquery_gt tsquery_le tsquery_lt tsquery_ne tsquery_not
-syn keyword sqlFunction contained tsquery_or tsquery_phrase tsqueryin tsqueryout tsqueryrecv
-syn keyword sqlFunction contained tsquerysend tsrange tsrange_subdiff tstzrange tstzrange_subdiff
-syn keyword sqlFunction contained tsvector_cmp tsvector_concat tsvector_eq tsvector_ge tsvector_gt
-syn keyword sqlFunction contained tsvector_le tsvector_lt tsvector_ne tsvector_to_array
-syn keyword sqlFunction contained tsvector_update_trigger tsvector_update_trigger_column tsvectorin tsvectorout
-syn keyword sqlFunction contained tsvectorrecv tsvectorsend txid_current txid_current_if_assigned
-syn keyword sqlFunction contained txid_current_snapshot txid_snapshot_in txid_snapshot_out
-syn keyword sqlFunction contained txid_snapshot_recv txid_snapshot_send txid_snapshot_xip
-syn keyword sqlFunction contained txid_snapshot_xmax txid_snapshot_xmin txid_status txid_visible_in_snapshot
-syn keyword sqlFunction contained uhc_to_utf8 unique_key_recheck unknownin unknownout unknownrecv
-syn keyword sqlFunction contained unknownsend unnest upper upper_inc upper_inf utf8_to_big5
-syn keyword sqlFunction contained utf8_to_euc_cn utf8_to_euc_jis_2004 utf8_to_euc_jp utf8_to_euc_kr
-syn keyword sqlFunction contained utf8_to_euc_tw utf8_to_gb18030 utf8_to_gbk utf8_to_iso8859
-syn keyword sqlFunction contained utf8_to_iso8859_1 utf8_to_johab utf8_to_koi8r utf8_to_koi8u
-syn keyword sqlFunction contained utf8_to_shift_jis_2004 utf8_to_sjis utf8_to_uhc utf8_to_win uuid_cmp uuid_eq
-syn keyword sqlFunction contained uuid_ge uuid_gt uuid_hash uuid_hash_extended uuid_in uuid_le
-syn keyword sqlFunction contained uuid_lt uuid_ne uuid_out uuid_recv uuid_send uuid_sortsupport var_pop
-syn keyword sqlFunction contained var_samp varbit varbit_in varbit_out varbit_recv varbit_send
-syn keyword sqlFunction contained varbit_support varbitcmp varbiteq varbitge varbitgt varbitle varbitlt
-syn keyword sqlFunction contained varbitne varbittypmodin varbittypmodout varchar_support
-syn keyword sqlFunction contained varcharin varcharout varcharrecv varcharsend varchartypmodin
-syn keyword sqlFunction contained varchartypmodout variance version void_in void_out void_recv void_send
-syn keyword sqlFunction contained websearch_to_tsquery width width_bucket win1250_to_latin2
-syn keyword sqlFunction contained win1250_to_mic win1251_to_iso win1251_to_koi8r win1251_to_mic
-syn keyword sqlFunction contained win1251_to_win866 win866_to_iso win866_to_koi8r win866_to_mic
-syn keyword sqlFunction contained win866_to_win1251 win_to_utf8 xid xid8cmp xid8eq xid8ge xid8gt xid8in xid8le
-syn keyword sqlFunction contained xid8lt xid8ne xid8out xid8recv xid8send xideq xideqint4 xidin xidneq
-syn keyword sqlFunction contained xidneqint4 xidout xidrecv xidsend xml xml_in xml_is_well_formed
-syn keyword sqlFunction contained xml_is_well_formed_content xml_is_well_formed_document xml_out
-syn keyword sqlFunction contained xml_recv xml_send xmlagg xmlcomment xmlconcat2 xmlexists xmlvalidate
-syn keyword sqlFunction contained xpath xpath_exists
+syn keyword sqlFunction contained tsmultirange tsq_mcontained tsq_mcontains tsquery_and tsquery_cmp
+syn keyword sqlFunction contained tsquery_eq tsquery_ge tsquery_gt tsquery_le tsquery_lt tsquery_ne
+syn keyword sqlFunction contained tsquery_not tsquery_or tsquery_phrase tsqueryin tsqueryout
+syn keyword sqlFunction contained tsqueryrecv tsquerysend tsrange tsrange_subdiff tstzmultirange tstzrange
+syn keyword sqlFunction contained tstzrange_subdiff tsvector_cmp tsvector_concat tsvector_eq
+syn keyword sqlFunction contained tsvector_ge tsvector_gt tsvector_le tsvector_lt tsvector_ne
+syn keyword sqlFunction contained tsvector_to_array tsvector_update_trigger
+syn keyword sqlFunction contained tsvector_update_trigger_column tsvectorin tsvectorout tsvectorrecv tsvectorsend
+syn keyword sqlFunction contained txid_current txid_current_if_assigned txid_current_snapshot
+syn keyword sqlFunction contained txid_snapshot_in txid_snapshot_out txid_snapshot_recv txid_snapshot_send
+syn keyword sqlFunction contained txid_snapshot_xip txid_snapshot_xmax txid_snapshot_xmin
+syn keyword sqlFunction contained txid_status txid_visible_in_snapshot uhc_to_utf8 unique_key_recheck
+syn keyword sqlFunction contained unistr unknownin unknownout unknownrecv unknownsend unnest upper
+syn keyword sqlFunction contained upper_inc upper_inf utf8_to_big5 utf8_to_euc_cn utf8_to_euc_jis_2004
+syn keyword sqlFunction contained utf8_to_euc_jp utf8_to_euc_kr utf8_to_euc_tw utf8_to_gb18030
+syn keyword sqlFunction contained utf8_to_gbk utf8_to_iso8859 utf8_to_iso8859_1 utf8_to_johab
+syn keyword sqlFunction contained utf8_to_koi8r utf8_to_koi8u utf8_to_shift_jis_2004 utf8_to_sjis
+syn keyword sqlFunction contained utf8_to_uhc utf8_to_win uuid_cmp uuid_eq uuid_ge uuid_gt uuid_hash
+syn keyword sqlFunction contained uuid_hash_extended uuid_in uuid_le uuid_lt uuid_ne uuid_out
+syn keyword sqlFunction contained uuid_recv uuid_send uuid_sortsupport var_pop var_samp varbit varbit_in
+syn keyword sqlFunction contained varbit_out varbit_recv varbit_send varbit_support varbitcmp
+syn keyword sqlFunction contained varbiteq varbitge varbitgt varbitle varbitlt varbitne varbittypmodin
+syn keyword sqlFunction contained varbittypmodout varchar_support varcharin varcharout varcharrecv
+syn keyword sqlFunction contained varcharsend varchartypmodin varchartypmodout variance version
+syn keyword sqlFunction contained void_in void_out void_recv void_send websearch_to_tsquery width
+syn keyword sqlFunction contained width_bucket win1250_to_latin2 win1250_to_mic win1251_to_iso
+syn keyword sqlFunction contained win1251_to_koi8r win1251_to_mic win1251_to_win866 win866_to_iso
+syn keyword sqlFunction contained win866_to_koi8r win866_to_mic win866_to_win1251 win_to_utf8 xid xid8cmp
+syn keyword sqlFunction contained xid8eq xid8ge xid8gt xid8in xid8le xid8lt xid8ne xid8out xid8recv
+syn keyword sqlFunction contained xid8send xideq xideqint4 xidin xidneq xidneqint4 xidout xidrecv
+syn keyword sqlFunction contained xidsend xml xml_in xml_is_well_formed xml_is_well_formed_content
+syn keyword sqlFunction contained xml_is_well_formed_document xml_out xml_recv xml_send xmlagg
+syn keyword sqlFunction contained xmlcomment xmlconcat2 xmlexists xmlvalidate xpath xpath_exists
" Extensions names
syn keyword sqlConstant contained address_standardizer address_standardizer_data_us adminpack
syn keyword sqlConstant contained amcheck autoinc bloom bool_plperl bool_plperlu btree_gin
syn keyword sqlConstant contained btree_gist citext cube dblink dict_int dict_xsyn earthdistance file_fdw
syn keyword sqlConstant contained fuzzystrmatch hstore hstore_plperl hstore_plperlu insert_username
syn keyword sqlConstant contained intagg intarray isn jsonb_plperl jsonb_plperlu lo ltree moddatetime
-syn keyword sqlConstant contained pageinspect pg_buffercache pg_freespacemap pg_prewarm
-syn keyword sqlConstant contained pg_stat_statements pg_trgm pg_visibility pgcrypto pgrouting pgrowlocks
-syn keyword sqlConstant contained pgstattuple pgtap plperl plperlu plpgsql pltcl pltclu postgis
-syn keyword sqlConstant contained postgis_raster postgis_sfcgal postgis_tiger_geocoder postgis_topology
-syn keyword sqlConstant contained postgres_fdw refint seg sslinfo tablefunc tcn temporal_tables
-syn keyword sqlConstant contained tsm_system_rows tsm_system_time unaccent xml2
+syn keyword sqlConstant contained old_snapshot pageinspect pg_buffercache pg_freespacemap
+syn keyword sqlConstant contained pg_prewarm pg_stat_statements pg_surgery pg_trgm pg_visibility pgcrypto
+syn keyword sqlConstant contained pgrouting pgrowlocks pgstattuple pgtap plperl plperlu plpgsql pltcl
+syn keyword sqlConstant contained pltclu postgis postgis_raster postgis_sfcgal
+syn keyword sqlConstant contained postgis_tiger_geocoder postgis_topology postgres_fdw refint seg sslinfo tablefunc
+syn keyword sqlConstant contained tcn temporal_tables tsm_system_rows tsm_system_time unaccent xml2
" Legacy extensions names
syn keyword sqlConstant contained chkpass hstore_plpython2u hstore_plpython3u hstore_plpythonu
syn keyword sqlConstant contained jsonb_plpython3u ltree_plpython2u ltree_plpython3u
@@ -727,7 +779,7 @@ syn keyword sqlConstant contained ltree_plpythonu pldbgapi plpython2u plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'refint') == -1
syn keyword sqlFunction contained check_foreign_key check_primary_key
endif " refint
-" Extension: postgis (v3.1.1)
+" Extension: postgis (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis') == -1
syn keyword sqlFunction contained addauth addgeometrycolumn box
syn keyword sqlFunction contained box2d box2d_in box2d_out box2df_in
@@ -1022,7 +1074,7 @@ endif " dict_xsyn
if index(get(g:, 'pgsql_disabled_extensions', []), 'bool_plperlu') == -1
syn keyword sqlFunction contained bool_to_plperlu plperlu_to_bool
endif " bool_plperlu
-" Extension: address_standardizer (v3.1.1)
+" Extension: address_standardizer (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer') == -1
syn keyword sqlFunction contained parse_address standardize_address
syn keyword sqlType contained stdaddr
@@ -1037,7 +1089,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'xml2') == -1
syn keyword sqlFunction contained xpath_bool xpath_list xpath_nodeset
syn keyword sqlFunction contained xpath_number xpath_string xpath_table xslt_process
endif " xml2
-" Extension: hstore (v1.7)
+" Extension: hstore (v1.8)
if index(get(g:, 'pgsql_disabled_extensions', []), 'hstore') == -1
syn keyword sqlFunction contained akeys avals defined delete
syn keyword sqlFunction contained each exist exists_all exists_any
@@ -1051,12 +1103,12 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'hstore') == -1
syn keyword sqlFunction contained hstore_ge hstore_gt hstore_hash
syn keyword sqlFunction contained hstore_hash_extended hstore_in hstore_le hstore_lt
syn keyword sqlFunction contained hstore_ne hstore_out hstore_recv
- syn keyword sqlFunction contained hstore_send hstore_to_array hstore_to_json
- syn keyword sqlFunction contained hstore_to_json_loose hstore_to_jsonb
- syn keyword sqlFunction contained hstore_to_jsonb_loose hstore_to_matrix hstore_version_diag
- syn keyword sqlFunction contained isdefined isexists populate_record
- syn keyword sqlFunction contained skeys slice slice_array svals
- syn keyword sqlFunction contained tconvert
+ syn keyword sqlFunction contained hstore_send hstore_subscript_handler
+ syn keyword sqlFunction contained hstore_to_array hstore_to_json hstore_to_json_loose
+ syn keyword sqlFunction contained hstore_to_jsonb hstore_to_jsonb_loose
+ syn keyword sqlFunction contained hstore_to_matrix hstore_version_diag isdefined
+ syn keyword sqlFunction contained isexists populate_record skeys slice
+ syn keyword sqlFunction contained slice_array svals tconvert
syn keyword sqlType contained ghstore hstore
endif " hstore
" Extension: pg_visibility (v1.2)
@@ -1065,7 +1117,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pg_visibility') == -1
syn keyword sqlFunction contained pg_truncate_visibility_map pg_visibility
syn keyword sqlFunction contained pg_visibility_map pg_visibility_map_summary
endif " pg_visibility
-" Extension: cube (v1.4)
+" Extension: cube (v1.5)
if index(get(g:, 'pgsql_disabled_extensions', []), 'cube') == -1
syn keyword sqlFunction contained cube cube_cmp cube_contained
syn keyword sqlFunction contained cube_contains cube_coord cube_coord_llur
@@ -1073,15 +1125,15 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'cube') == -1
syn keyword sqlFunction contained cube_ge cube_gt cube_in cube_inter
syn keyword sqlFunction contained cube_is_point cube_le cube_ll_coord
syn keyword sqlFunction contained cube_lt cube_ne cube_out cube_overlap
- syn keyword sqlFunction contained cube_size cube_subset cube_union
- syn keyword sqlFunction contained cube_ur_coord distance_chebyshev distance_taxicab
- syn keyword sqlFunction contained g_cube_consistent g_cube_distance
- syn keyword sqlFunction contained g_cube_penalty g_cube_picksplit g_cube_same
- syn keyword sqlFunction contained g_cube_union
+ syn keyword sqlFunction contained cube_recv cube_send cube_size
+ syn keyword sqlFunction contained cube_subset cube_union cube_ur_coord
+ syn keyword sqlFunction contained distance_chebyshev distance_taxicab g_cube_consistent
+ syn keyword sqlFunction contained g_cube_distance g_cube_penalty
+ syn keyword sqlFunction contained g_cube_picksplit g_cube_same g_cube_union
syn keyword sqlType contained cube
syn keyword sqlFunction contained g_cube_compress g_cube_decompress
endif " cube
-" Extension: postgis_tiger_geocoder (v3.1.1)
+" Extension: postgis_tiger_geocoder (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_tiger_geocoder') == -1
syn keyword sqlFunction contained count_words create_census_base_tables
syn keyword sqlFunction contained cull_null diff_zip
@@ -1112,12 +1164,12 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_tiger_geocoder') ==
syn keyword sqlTable contained loader_platform loader_variables pagc_gaz
syn keyword sqlTable contained pagc_lex pagc_rules place place_lookup
syn keyword sqlTable contained secondary_unit_lookup state state_lookup
- syn keyword sqlTable contained street_type_lookup tabblock tract zcta5
- syn keyword sqlTable contained zip_lookup zip_lookup_all zip_lookup_base
- syn keyword sqlTable contained zip_state zip_state_loc
+ syn keyword sqlTable contained street_type_lookup tabblock tabblock20 tract
+ syn keyword sqlTable contained zcta5 zip_lookup zip_lookup_all
+ syn keyword sqlTable contained zip_lookup_base zip_state zip_state_loc
syn keyword sqlType contained norm_addy
endif " postgis_tiger_geocoder
-" Extension: seg (v1.3)
+" Extension: seg (v1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'seg') == -1
syn keyword sqlFunction contained gseg_consistent gseg_penalty
syn keyword sqlFunction contained gseg_picksplit gseg_same gseg_union seg_center
@@ -1185,11 +1237,11 @@ endif " pgstattuple
if index(get(g:, 'pgsql_disabled_extensions', []), 'autoinc') == -1
syn keyword sqlFunction contained autoinc
endif " autoinc
-" Extension: address_standardizer_data_us (v3.1.1)
+" Extension: address_standardizer_data_us (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer_data_us') == -1
syn keyword sqlTable contained us_gaz us_lex us_rules
endif " address_standardizer_data_us
-" Extension: postgis_topology (v3.1.1)
+" Extension: postgis_topology (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlFunction contained addedge addface addnode
syn keyword sqlFunction contained addtopogeometrycolumn addtosearchpath asgml
@@ -1222,7 +1274,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlType contained topoelementarray topogeometry
syn keyword sqlType contained validatetopology_returntype
endif " postgis_topology
-" Extension: postgis_raster (v3.1.1)
+" Extension: postgis_raster (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_raster') == -1
syn keyword sqlFunction contained addoverviewconstraints addrasterconstraints
syn keyword sqlFunction contained box3d bytea dropoverviewconstraints
@@ -1299,6 +1351,10 @@ endif " pg_freespacemap
if index(get(g:, 'pgsql_disabled_extensions', []), 'file_fdw') == -1
syn keyword sqlFunction contained file_fdw_handler file_fdw_validator
endif " file_fdw
+" Extension: pg_surgery (v1.0)
+if index(get(g:, 'pgsql_disabled_extensions', []), 'pg_surgery') == -1
+ syn keyword sqlFunction contained heap_force_freeze heap_force_kill
+endif " pg_surgery
" Extension: pg_buffercache (v1.3)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pg_buffercache') == -1
syn keyword sqlFunction contained pg_buffercache_pages
@@ -1317,10 +1373,11 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'dblink') == -1
syn keyword sqlFunction contained dblink_open dblink_send_query
syn keyword sqlType contained dblink_pkey_results
endif " dblink
-" Extension: pg_stat_statements (v1.8)
+" Extension: pg_stat_statements (v1.9)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pg_stat_statements') == -1
- syn keyword sqlFunction contained pg_stat_statements pg_stat_statements_reset
- syn keyword sqlView contained pg_stat_statements
+ syn keyword sqlFunction contained pg_stat_statements pg_stat_statements_info
+ syn keyword sqlFunction contained pg_stat_statements_reset
+ syn keyword sqlView contained pg_stat_statements pg_stat_statements_info
endif " pg_stat_statements
" Extension: insert_username (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'insert_username') == -1
@@ -1331,6 +1388,10 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pg_prewarm') == -1
syn keyword sqlFunction contained autoprewarm_dump_now autoprewarm_start_worker
syn keyword sqlFunction contained pg_prewarm
endif " pg_prewarm
+" Extension: old_snapshot (v1.0)
+if index(get(g:, 'pgsql_disabled_extensions', []), 'old_snapshot') == -1
+ syn keyword sqlFunction contained pg_old_snapshot_time_mapping
+endif " old_snapshot
" Extension: pgtap (v1.1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pgtap') == -1
syn keyword sqlFunction contained is add_result alike
@@ -1423,7 +1484,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'plperlu') == -1
syn keyword sqlFunction contained plperlu_call_handler plperlu_inline_handler
syn keyword sqlFunction contained plperlu_validator
endif " plperlu
-" Extension: intarray (v1.3)
+" Extension: intarray (v1.5)
if index(get(g:, 'pgsql_disabled_extensions', []), 'intarray') == -1
syn keyword sqlFunction contained boolop bqarr_in bqarr_out
syn keyword sqlFunction contained g_int_compress g_int_consistent g_int_decompress
@@ -1439,7 +1500,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'intarray') == -1
syn keyword sqlFunction contained sort_asc sort_desc subarray uniq
syn keyword sqlType contained intbig_gkey query_int
endif " intarray
-" Extension: pg_trgm (v1.5)
+" Extension: pg_trgm (v1.6)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pg_trgm') == -1
syn keyword sqlFunction contained gin_extract_query_trgm gin_extract_value_trgm
syn keyword sqlFunction contained gin_trgm_consistent gin_trgm_triconsistent
@@ -1461,11 +1522,12 @@ endif " pg_trgm
if index(get(g:, 'pgsql_disabled_extensions', []), 'dict_int') == -1
syn keyword sqlFunction contained dintdict_init dintdict_lexize
endif " dict_int
-" Extension: amcheck (v1.2)
+" Extension: amcheck (v1.3)
if index(get(g:, 'pgsql_disabled_extensions', []), 'amcheck') == -1
syn keyword sqlFunction contained bt_index_check bt_index_parent_check
+ syn keyword sqlFunction contained verify_heapam
endif " amcheck
-" Extension: btree_gist (v1.5)
+" Extension: btree_gist (v1.6)
if index(get(g:, 'pgsql_disabled_extensions', []), 'btree_gist') == -1
syn keyword sqlFunction contained cash_dist date_dist float4_dist
syn keyword sqlFunction contained float8_dist gbt_bit_compress gbt_bit_consistent
@@ -1540,17 +1602,19 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'btree_gist') == -1
syn keyword sqlType contained gbtreekey16 gbtreekey32 gbtreekey4
syn keyword sqlType contained gbtreekey8 gbtreekey_var
endif " btree_gist
-" Extension: pageinspect (v1.8)
+" Extension: pageinspect (v1.9)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pageinspect') == -1
syn keyword sqlFunction contained brin_metapage_info brin_page_items
syn keyword sqlFunction contained brin_page_type brin_revmap_data bt_metap
syn keyword sqlFunction contained bt_page_items bt_page_stats fsm_page_contents
syn keyword sqlFunction contained get_raw_page gin_leafpage_items
- syn keyword sqlFunction contained gin_metapage_info gin_page_opaque_info hash_bitmap_info
- syn keyword sqlFunction contained hash_metapage_info hash_page_items
- syn keyword sqlFunction contained hash_page_stats hash_page_type heap_page_item_attrs
- syn keyword sqlFunction contained heap_page_items heap_tuple_infomask_flags
- syn keyword sqlFunction contained page_checksum page_header tuple_data_split
+ syn keyword sqlFunction contained gin_metapage_info gin_page_opaque_info gist_page_items
+ syn keyword sqlFunction contained gist_page_items_bytea gist_page_opaque_info
+ syn keyword sqlFunction contained hash_bitmap_info hash_metapage_info
+ syn keyword sqlFunction contained hash_page_items hash_page_stats hash_page_type
+ syn keyword sqlFunction contained heap_page_item_attrs heap_page_items
+ syn keyword sqlFunction contained heap_tuple_infomask_flags page_checksum page_header
+ syn keyword sqlFunction contained tuple_data_split
endif " pageinspect
" Extension: pltclu (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pltclu') == -1
@@ -1570,7 +1634,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'fuzzystrmatch') == -1
syn keyword sqlFunction contained levenshtein levenshtein_less_equal
syn keyword sqlFunction contained metaphone soundex text_soundex
endif " fuzzystrmatch
-" Extension: pgrouting (v3.1.3)
+" Extension: pgrouting (v3.3.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pgrouting') == -1
syn keyword sqlFunction contained pgr_alphashape pgr_analyzegraph
syn keyword sqlFunction contained pgr_analyzeoneway pgr_articulationpoints pgr_astar
@@ -1579,22 +1643,26 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pgrouting') == -1
syn keyword sqlFunction contained pgr_bddijkstra pgr_bddijkstracost
syn keyword sqlFunction contained pgr_bddijkstracostmatrix pgr_bellmanford
syn keyword sqlFunction contained pgr_biconnectedcomponents pgr_binarybreadthfirstsearch
- syn keyword sqlFunction contained pgr_boykovkolmogorov pgr_breadthfirstsearch pgr_bridges
- syn keyword sqlFunction contained pgr_chinesepostman pgr_chinesepostmancost
- syn keyword sqlFunction contained pgr_connectedcomponents pgr_contraction
- syn keyword sqlFunction contained pgr_createtopology pgr_createverticestable
- syn keyword sqlFunction contained pgr_dagshortestpath pgr_dijkstra pgr_dijkstracost
- syn keyword sqlFunction contained pgr_dijkstracostmatrix pgr_dijkstravia
- syn keyword sqlFunction contained pgr_drivingdistance pgr_edgedisjointpaths pgr_edmondskarp
+ syn keyword sqlFunction contained pgr_bipartite pgr_boykovkolmogorov pgr_breadthfirstsearch
+ syn keyword sqlFunction contained pgr_bridges pgr_chinesepostman
+ syn keyword sqlFunction contained pgr_chinesepostmancost pgr_connectedcomponents
+ syn keyword sqlFunction contained pgr_contraction pgr_createtopology pgr_createverticestable
+ syn keyword sqlFunction contained pgr_dagshortestpath pgr_depthfirstsearch
+ syn keyword sqlFunction contained pgr_dijkstra pgr_dijkstracost
+ syn keyword sqlFunction contained pgr_dijkstracostmatrix pgr_dijkstranear pgr_dijkstranearcost
+ syn keyword sqlFunction contained pgr_dijkstravia pgr_drivingdistance
+ syn keyword sqlFunction contained pgr_edgecoloring pgr_edgedisjointpaths pgr_edmondskarp
syn keyword sqlFunction contained pgr_edwardmoore pgr_extractvertices
- syn keyword sqlFunction contained pgr_floydwarshall pgr_full_version pgr_johnson
- syn keyword sqlFunction contained pgr_kruskal pgr_kruskalbfs pgr_kruskaldd
- syn keyword sqlFunction contained pgr_kruskaldfs pgr_ksp pgr_linegraph
- syn keyword sqlFunction contained pgr_linegraphfull pgr_maxcardinalitymatch
- syn keyword sqlFunction contained pgr_maxflow pgr_maxflowmincost pgr_maxflowmincost_cost
- syn keyword sqlFunction contained pgr_nodenetwork pgr_pickdeliver
- syn keyword sqlFunction contained pgr_pickdelivereuclidean pgr_prim pgr_primbfs
- syn keyword sqlFunction contained pgr_primdd pgr_primdfs pgr_pushrelabel
+ syn keyword sqlFunction contained pgr_floydwarshall pgr_full_version pgr_isplanar
+ syn keyword sqlFunction contained pgr_johnson pgr_kruskal pgr_kruskalbfs
+ syn keyword sqlFunction contained pgr_kruskaldd pgr_kruskaldfs pgr_ksp
+ syn keyword sqlFunction contained pgr_lengauertarjandominatortree pgr_linegraph
+ syn keyword sqlFunction contained pgr_linegraphfull pgr_makeconnected
+ syn keyword sqlFunction contained pgr_maxcardinalitymatch pgr_maxflow pgr_maxflowmincost
+ syn keyword sqlFunction contained pgr_maxflowmincost_cost pgr_nodenetwork
+ syn keyword sqlFunction contained pgr_pickdeliver pgr_pickdelivereuclidean pgr_prim
+ syn keyword sqlFunction contained pgr_primbfs pgr_primdd pgr_primdfs
+ syn keyword sqlFunction contained pgr_pushrelabel pgr_sequentialvertexcoloring
syn keyword sqlFunction contained pgr_stoerwagner pgr_strongcomponents
syn keyword sqlFunction contained pgr_topologicalsort pgr_transitiveclosure pgr_trsp
syn keyword sqlFunction contained pgr_trspviaedges pgr_trspviavertices pgr_tsp
@@ -1614,7 +1682,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pgcrypto') == -1
syn keyword sqlFunction contained pgp_sym_decrypt_bytea pgp_sym_encrypt
syn keyword sqlFunction contained pgp_sym_encrypt_bytea
endif " pgcrypto
-" Extension: postgis_sfcgal (v3.1.1)
+" Extension: postgis_sfcgal (v3.1.4)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_sfcgal') == -1
syn keyword sqlFunction contained postgis_sfcgal_noop
syn keyword sqlFunction contained postgis_sfcgal_scripts_installed postgis_sfcgal_version st_3darea
@@ -1640,8 +1708,10 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'tablefunc') == -1
syn keyword sqlType contained tablefunc_crosstab_2 tablefunc_crosstab_3
syn keyword sqlType contained tablefunc_crosstab_4
endif " tablefunc
-" Extension: postgres_fdw (v1.0)
+" Extension: postgres_fdw (v1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgres_fdw') == -1
+ syn keyword sqlFunction contained postgres_fdw_disconnect
+ syn keyword sqlFunction contained postgres_fdw_disconnect_all postgres_fdw_get_connections
syn keyword sqlFunction contained postgres_fdw_handler postgres_fdw_validator
endif " postgres_fdw
" Extension: bloom (v1.0)
@@ -1748,44 +1818,47 @@ syn keyword sqlCatalog contained foreign_servers foreign_table_options foreign_t
syn keyword sqlCatalog contained information_schema_catalog_name key_column_usage parameters pg_aggregate pg_am
syn keyword sqlCatalog contained pg_amop pg_amproc pg_attrdef pg_attribute pg_auth_members pg_authid
syn keyword sqlCatalog contained pg_available_extension_versions pg_available_extensions
-syn keyword sqlCatalog contained pg_cast pg_class pg_collation pg_config pg_constraint pg_conversion
-syn keyword sqlCatalog contained pg_cursors pg_database pg_db_role_setting pg_default_acl
-syn keyword sqlCatalog contained pg_depend pg_description pg_enum pg_event_trigger pg_extension
-syn keyword sqlCatalog contained pg_file_settings pg_foreign_data_wrapper pg_foreign_server
-syn keyword sqlCatalog contained pg_foreign_table pg_group pg_hba_file_rules pg_index pg_indexes pg_inherits
-syn keyword sqlCatalog contained pg_init_privs pg_language pg_largeobject
-syn keyword sqlCatalog contained pg_largeobject_metadata pg_locks pg_matviews pg_namespace pg_opclass pg_operator
-syn keyword sqlCatalog contained pg_opfamily pg_partitioned_table pg_policies pg_policy
-syn keyword sqlCatalog contained pg_prepared_statements pg_prepared_xacts pg_proc pg_publication
-syn keyword sqlCatalog contained pg_publication_rel pg_publication_tables pg_range pg_replication_origin
-syn keyword sqlCatalog contained pg_replication_origin_status pg_replication_slots pg_rewrite
-syn keyword sqlCatalog contained pg_roles pg_rules pg_seclabel pg_seclabels pg_sequence pg_sequences
-syn keyword sqlCatalog contained pg_settings pg_shadow pg_shdepend pg_shdescription
-syn keyword sqlCatalog contained pg_shmem_allocations pg_shseclabel pg_stat_activity pg_stat_all_indexes
-syn keyword sqlCatalog contained pg_stat_all_tables pg_stat_archiver pg_stat_bgwriter
-syn keyword sqlCatalog contained pg_stat_database pg_stat_database_conflicts pg_stat_gssapi
-syn keyword sqlCatalog contained pg_stat_progress_analyze pg_stat_progress_basebackup pg_stat_progress_cluster
-syn keyword sqlCatalog contained pg_stat_progress_create_index pg_stat_progress_vacuum
-syn keyword sqlCatalog contained pg_stat_replication pg_stat_slru pg_stat_ssl pg_stat_subscription
-syn keyword sqlCatalog contained pg_stat_sys_indexes pg_stat_sys_tables pg_stat_user_functions
-syn keyword sqlCatalog contained pg_stat_user_indexes pg_stat_user_tables pg_stat_wal_receiver
-syn keyword sqlCatalog contained pg_stat_xact_all_tables pg_stat_xact_sys_tables
-syn keyword sqlCatalog contained pg_stat_xact_user_functions pg_stat_xact_user_tables pg_statio_all_indexes
-syn keyword sqlCatalog contained pg_statio_all_sequences pg_statio_all_tables pg_statio_sys_indexes
-syn keyword sqlCatalog contained pg_statio_sys_sequences pg_statio_sys_tables
-syn keyword sqlCatalog contained pg_statio_user_indexes pg_statio_user_sequences pg_statio_user_tables
-syn keyword sqlCatalog contained pg_statistic pg_statistic_ext pg_statistic_ext_data pg_stats
-syn keyword sqlCatalog contained pg_stats_ext pg_subscription pg_subscription_rel pg_tables pg_tablespace
-syn keyword sqlCatalog contained pg_timezone_abbrevs pg_timezone_names pg_transform pg_trigger
-syn keyword sqlCatalog contained pg_ts_config pg_ts_config_map pg_ts_dict pg_ts_parser
-syn keyword sqlCatalog contained pg_ts_template pg_type pg_user pg_user_mapping pg_user_mappings pg_views
-syn keyword sqlCatalog contained referential_constraints role_column_grants role_routine_grants
-syn keyword sqlCatalog contained role_table_grants role_udt_grants role_usage_grants
-syn keyword sqlCatalog contained routine_privileges routines schemata sequences sql_features
-syn keyword sqlCatalog contained sql_implementation_info sql_parts sql_sizing table_constraints table_privileges
-syn keyword sqlCatalog contained tables transforms triggered_update_columns triggers
-syn keyword sqlCatalog contained udt_privileges usage_privileges user_defined_types user_mapping_options
-syn keyword sqlCatalog contained user_mappings view_column_usage view_routine_usage
+syn keyword sqlCatalog contained pg_backend_memory_contexts pg_cast pg_class pg_collation pg_config
+syn keyword sqlCatalog contained pg_constraint pg_conversion pg_cursors pg_database
+syn keyword sqlCatalog contained pg_db_role_setting pg_default_acl pg_depend pg_description pg_enum
+syn keyword sqlCatalog contained pg_event_trigger pg_extension pg_file_settings pg_foreign_data_wrapper
+syn keyword sqlCatalog contained pg_foreign_server pg_foreign_table pg_group pg_hba_file_rules
+syn keyword sqlCatalog contained pg_index pg_indexes pg_inherits pg_init_privs pg_language
+syn keyword sqlCatalog contained pg_largeobject pg_largeobject_metadata pg_locks pg_matviews pg_namespace
+syn keyword sqlCatalog contained pg_opclass pg_operator pg_opfamily pg_partitioned_table
+syn keyword sqlCatalog contained pg_policies pg_policy pg_prepared_statements pg_prepared_xacts pg_proc
+syn keyword sqlCatalog contained pg_publication pg_publication_rel pg_publication_tables
+syn keyword sqlCatalog contained pg_range pg_replication_origin pg_replication_origin_status
+syn keyword sqlCatalog contained pg_replication_slots pg_rewrite pg_roles pg_rules pg_seclabel
+syn keyword sqlCatalog contained pg_seclabels pg_sequence pg_sequences pg_settings pg_shadow pg_shdepend
+syn keyword sqlCatalog contained pg_shdescription pg_shmem_allocations pg_shseclabel
+syn keyword sqlCatalog contained pg_stat_activity pg_stat_all_indexes pg_stat_all_tables pg_stat_archiver
+syn keyword sqlCatalog contained pg_stat_bgwriter pg_stat_database pg_stat_database_conflicts
+syn keyword sqlCatalog contained pg_stat_gssapi pg_stat_progress_analyze
+syn keyword sqlCatalog contained pg_stat_progress_basebackup pg_stat_progress_cluster pg_stat_progress_copy
+syn keyword sqlCatalog contained pg_stat_progress_create_index pg_stat_progress_vacuum pg_stat_replication
+syn keyword sqlCatalog contained pg_stat_replication_slots pg_stat_slru pg_stat_ssl
+syn keyword sqlCatalog contained pg_stat_subscription pg_stat_sys_indexes pg_stat_sys_tables
+syn keyword sqlCatalog contained pg_stat_user_functions pg_stat_user_indexes pg_stat_user_tables pg_stat_wal
+syn keyword sqlCatalog contained pg_stat_wal_receiver pg_stat_xact_all_tables
+syn keyword sqlCatalog contained pg_stat_xact_sys_tables pg_stat_xact_user_functions pg_stat_xact_user_tables
+syn keyword sqlCatalog contained pg_statio_all_indexes pg_statio_all_sequences
+syn keyword sqlCatalog contained pg_statio_all_tables pg_statio_sys_indexes pg_statio_sys_sequences
+syn keyword sqlCatalog contained pg_statio_sys_tables pg_statio_user_indexes pg_statio_user_sequences
+syn keyword sqlCatalog contained pg_statio_user_tables pg_statistic pg_statistic_ext
+syn keyword sqlCatalog contained pg_statistic_ext_data pg_stats pg_stats_ext pg_stats_ext_exprs pg_subscription
+syn keyword sqlCatalog contained pg_subscription_rel pg_tables pg_tablespace
+syn keyword sqlCatalog contained pg_timezone_abbrevs pg_timezone_names pg_transform pg_trigger pg_ts_config
+syn keyword sqlCatalog contained pg_ts_config_map pg_ts_dict pg_ts_parser pg_ts_template pg_type pg_user
+syn keyword sqlCatalog contained pg_user_mapping pg_user_mappings pg_views
+syn keyword sqlCatalog contained referential_constraints role_column_grants role_routine_grants role_table_grants
+syn keyword sqlCatalog contained role_udt_grants role_usage_grants routine_column_usage
+syn keyword sqlCatalog contained routine_privileges routine_routine_usage routine_sequence_usage
+syn keyword sqlCatalog contained routine_table_usage routines schemata sequences sql_features
+syn keyword sqlCatalog contained sql_implementation_info sql_parts sql_sizing table_constraints
+syn keyword sqlCatalog contained table_privileges tables transforms triggered_update_columns triggers
+syn keyword sqlCatalog contained udt_privileges usage_privileges user_defined_types
+syn keyword sqlCatalog contained user_mapping_options user_mappings view_column_usage view_routine_usage
syn keyword sqlCatalog contained view_table_usage views
" Error codes (Appendix A, Table A-1)
syn keyword sqlErrorCode contained active_sql_transaction admin_shutdown ambiguous_alias
@@ -1822,75 +1895,75 @@ syn keyword sqlErrorCode contained fdw_unable_to_create_reply fdw_unable_to_esta
syn keyword sqlErrorCode contained floating_point_exception foreign_key_violation
syn keyword sqlErrorCode contained function_executed_no_return_statement generated_always grouping_error
syn keyword sqlErrorCode contained held_cursor_requires_same_isolation_level
-syn keyword sqlErrorCode contained idle_in_transaction_session_timeout implicit_zero_bit_padding in_failed_sql_transaction
+syn keyword sqlErrorCode contained idle_in_transaction_session_timeout idle_session_timeout implicit_zero_bit_padding
+syn keyword sqlErrorCode contained in_failed_sql_transaction
syn keyword sqlErrorCode contained inappropriate_access_mode_for_branch_transaction
-syn keyword sqlErrorCode contained inappropriate_isolation_level_for_branch_transaction
-syn keyword sqlErrorCode contained indeterminate_collation indeterminate_datatype index_corrupted indicator_overflow
-syn keyword sqlErrorCode contained insufficient_privilege insufficient_resources
-syn keyword sqlErrorCode contained integrity_constraint_violation internal_error interval_field_overflow
-syn keyword sqlErrorCode contained invalid_argument_for_logarithm
+syn keyword sqlErrorCode contained inappropriate_isolation_level_for_branch_transaction indeterminate_collation indeterminate_datatype
+syn keyword sqlErrorCode contained index_corrupted indicator_overflow insufficient_privilege
+syn keyword sqlErrorCode contained insufficient_resources integrity_constraint_violation internal_error
+syn keyword sqlErrorCode contained interval_field_overflow invalid_argument_for_logarithm
syn keyword sqlErrorCode contained invalid_argument_for_nth_value_function invalid_argument_for_ntile_function
syn keyword sqlErrorCode contained invalid_argument_for_power_function
-syn keyword sqlErrorCode contained invalid_argument_for_sql_json_datetime_function invalid_argument_for_width_bucket_function
-syn keyword sqlErrorCode contained invalid_authorization_specification invalid_binary_representation
-syn keyword sqlErrorCode contained invalid_catalog_name invalid_character_value_for_cast
-syn keyword sqlErrorCode contained invalid_column_definition invalid_column_reference invalid_cursor_definition
-syn keyword sqlErrorCode contained invalid_cursor_name invalid_cursor_state
-syn keyword sqlErrorCode contained invalid_database_definition invalid_datetime_format invalid_escape_character
-syn keyword sqlErrorCode contained invalid_escape_octet invalid_escape_sequence invalid_foreign_key
-syn keyword sqlErrorCode contained invalid_function_definition invalid_grant_operation
-syn keyword sqlErrorCode contained invalid_grantor invalid_indicator_parameter_value invalid_json_text
-syn keyword sqlErrorCode contained invalid_locator_specification invalid_name invalid_object_definition
-syn keyword sqlErrorCode contained invalid_parameter_value invalid_password
-syn keyword sqlErrorCode contained invalid_preceding_or_following_size invalid_prepared_statement_definition
-syn keyword sqlErrorCode contained invalid_recursion invalid_regular_expression
+syn keyword sqlErrorCode contained invalid_argument_for_sql_json_datetime_function
+syn keyword sqlErrorCode contained invalid_argument_for_width_bucket_function invalid_authorization_specification
+syn keyword sqlErrorCode contained invalid_binary_representation invalid_catalog_name
+syn keyword sqlErrorCode contained invalid_character_value_for_cast invalid_column_definition invalid_column_reference
+syn keyword sqlErrorCode contained invalid_cursor_definition invalid_cursor_name invalid_cursor_state
+syn keyword sqlErrorCode contained invalid_database_definition invalid_datetime_format
+syn keyword sqlErrorCode contained invalid_escape_character invalid_escape_octet invalid_escape_sequence
+syn keyword sqlErrorCode contained invalid_foreign_key invalid_function_definition
+syn keyword sqlErrorCode contained invalid_grant_operation invalid_grantor invalid_indicator_parameter_value
+syn keyword sqlErrorCode contained invalid_json_text invalid_locator_specification invalid_name
+syn keyword sqlErrorCode contained invalid_object_definition invalid_parameter_value invalid_password
+syn keyword sqlErrorCode contained invalid_preceding_or_following_size
+syn keyword sqlErrorCode contained invalid_prepared_statement_definition invalid_recursion invalid_regular_expression
syn keyword sqlErrorCode contained invalid_role_specification invalid_row_count_in_limit_clause
-syn keyword sqlErrorCode contained invalid_row_count_in_result_offset_clause invalid_savepoint_specification
-syn keyword sqlErrorCode contained invalid_schema_definition invalid_schema_name
-syn keyword sqlErrorCode contained invalid_sql_json_subscript invalid_sql_statement_name invalid_sqlstate_returned
-syn keyword sqlErrorCode contained invalid_table_definition invalid_tablesample_argument
-syn keyword sqlErrorCode contained invalid_tablesample_repeat invalid_text_representation
-syn keyword sqlErrorCode contained invalid_time_zone_displacement_value invalid_transaction_initiation
-syn keyword sqlErrorCode contained invalid_transaction_state invalid_transaction_termination
-syn keyword sqlErrorCode contained invalid_use_of_escape_character invalid_xml_comment invalid_xml_content
-syn keyword sqlErrorCode contained invalid_xml_document invalid_xml_processing_instruction io_error
-syn keyword sqlErrorCode contained locator_exception lock_file_exists lock_not_available
-syn keyword sqlErrorCode contained modifying_sql_data_not_permitted more_than_one_sql_json_item
-syn keyword sqlErrorCode contained most_specific_type_mismatch name_too_long no_active_sql_transaction
-syn keyword sqlErrorCode contained no_active_sql_transaction_for_branch_transaction
-syn keyword sqlErrorCode contained no_additional_dynamic_result_sets_returned no_data no_data_found
-syn keyword sqlErrorCode contained no_sql_json_item non_numeric_sql_json_item
-syn keyword sqlErrorCode contained non_unique_keys_in_a_json_object nonstandard_use_of_escape_character not_an_xml_document
-syn keyword sqlErrorCode contained not_null_violation null_value_eliminated_in_set_function
-syn keyword sqlErrorCode contained null_value_no_indicator_parameter null_value_not_allowed
-syn keyword sqlErrorCode contained numeric_value_out_of_range object_in_use object_not_in_prerequisite_state
-syn keyword sqlErrorCode contained operator_intervention out_of_memory plpgsql_error
-syn keyword sqlErrorCode contained privilege_not_granted privilege_not_revoked program_limit_exceeded
-syn keyword sqlErrorCode contained prohibited_sql_statement_attempted protocol_violation query_canceled
-syn keyword sqlErrorCode contained raise_exception read_only_sql_transaction
-syn keyword sqlErrorCode contained reading_sql_data_not_permitted reserved_name restrict_violation
-syn keyword sqlErrorCode contained savepoint_exception schema_and_data_statement_mixing_not_supported
-syn keyword sqlErrorCode contained sequence_generator_limit_exceeded serialization_failure
-syn keyword sqlErrorCode contained singleton_sql_json_item_required snapshot_too_old sql_json_array_not_found
-syn keyword sqlErrorCode contained sql_json_member_not_found sql_json_number_not_found
-syn keyword sqlErrorCode contained sql_json_object_not_found sql_json_scalar_required sql_routine_exception
-syn keyword sqlErrorCode contained sql_statement_not_yet_complete
+syn keyword sqlErrorCode contained invalid_row_count_in_result_offset_clause
+syn keyword sqlErrorCode contained invalid_savepoint_specification invalid_schema_definition invalid_schema_name
+syn keyword sqlErrorCode contained invalid_sql_json_subscript invalid_sql_statement_name
+syn keyword sqlErrorCode contained invalid_sqlstate_returned invalid_table_definition
+syn keyword sqlErrorCode contained invalid_tablesample_argument invalid_tablesample_repeat invalid_text_representation
+syn keyword sqlErrorCode contained invalid_time_zone_displacement_value
+syn keyword sqlErrorCode contained invalid_transaction_initiation invalid_transaction_state
+syn keyword sqlErrorCode contained invalid_transaction_termination invalid_use_of_escape_character invalid_xml_comment
+syn keyword sqlErrorCode contained invalid_xml_content invalid_xml_document
+syn keyword sqlErrorCode contained invalid_xml_processing_instruction io_error locator_exception lock_file_exists
+syn keyword sqlErrorCode contained lock_not_available modifying_sql_data_not_permitted
+syn keyword sqlErrorCode contained more_than_one_sql_json_item most_specific_type_mismatch name_too_long
+syn keyword sqlErrorCode contained no_active_sql_transaction
+syn keyword sqlErrorCode contained no_active_sql_transaction_for_branch_transaction no_additional_dynamic_result_sets_returned no_data
+syn keyword sqlErrorCode contained no_data_found no_sql_json_item non_numeric_sql_json_item
+syn keyword sqlErrorCode contained non_unique_keys_in_a_json_object nonstandard_use_of_escape_character
+syn keyword sqlErrorCode contained not_an_xml_document not_null_violation
+syn keyword sqlErrorCode contained null_value_eliminated_in_set_function null_value_no_indicator_parameter
+syn keyword sqlErrorCode contained null_value_not_allowed numeric_value_out_of_range object_in_use
+syn keyword sqlErrorCode contained object_not_in_prerequisite_state operator_intervention out_of_memory
+syn keyword sqlErrorCode contained plpgsql_error privilege_not_granted privilege_not_revoked
+syn keyword sqlErrorCode contained program_limit_exceeded prohibited_sql_statement_attempted
+syn keyword sqlErrorCode contained protocol_violation query_canceled raise_exception
+syn keyword sqlErrorCode contained read_only_sql_transaction reading_sql_data_not_permitted reserved_name
+syn keyword sqlErrorCode contained restrict_violation savepoint_exception
+syn keyword sqlErrorCode contained schema_and_data_statement_mixing_not_supported sequence_generator_limit_exceeded
+syn keyword sqlErrorCode contained serialization_failure singleton_sql_json_item_required snapshot_too_old
+syn keyword sqlErrorCode contained sql_json_array_not_found sql_json_member_not_found
+syn keyword sqlErrorCode contained sql_json_number_not_found sql_json_object_not_found sql_json_scalar_required
+syn keyword sqlErrorCode contained sql_routine_exception sql_statement_not_yet_complete
syn keyword sqlErrorCode contained sqlclient_unable_to_establish_sqlconnection
syn keyword sqlErrorCode contained sqlserver_rejected_establishment_of_sqlconnection srf_protocol_violated
-syn keyword sqlErrorCode contained stacked_diagnostics_accessed_without_active_handler statement_completion_unknown
-syn keyword sqlErrorCode contained statement_too_complex string_data_length_mismatch
-syn keyword sqlErrorCode contained string_data_right_truncation substring_error successful_completion syntax_error
-syn keyword sqlErrorCode contained syntax_error_or_access_rule_violation system_error too_many_arguments
-syn keyword sqlErrorCode contained too_many_columns too_many_connections
-syn keyword sqlErrorCode contained too_many_json_array_elements too_many_json_object_members too_many_rows
-syn keyword sqlErrorCode contained transaction_integrity_constraint_violation transaction_resolution_unknown
-syn keyword sqlErrorCode contained transaction_rollback trigger_protocol_violated
-syn keyword sqlErrorCode contained triggered_action_exception triggered_data_change_violation trim_error
-syn keyword sqlErrorCode contained undefined_column undefined_file undefined_function undefined_object
-syn keyword sqlErrorCode contained undefined_parameter undefined_table unique_violation
-syn keyword sqlErrorCode contained unsafe_new_enum_value_usage unterminated_c_string
-syn keyword sqlErrorCode contained untranslatable_character warning windowing_error with_check_option_violation
-syn keyword sqlErrorCode contained wrong_object_type zero_length_character_string
+syn keyword sqlErrorCode contained stacked_diagnostics_accessed_without_active_handler
+syn keyword sqlErrorCode contained statement_completion_unknown statement_too_complex string_data_length_mismatch
+syn keyword sqlErrorCode contained string_data_right_truncation substring_error successful_completion
+syn keyword sqlErrorCode contained syntax_error syntax_error_or_access_rule_violation
+syn keyword sqlErrorCode contained system_error too_many_arguments too_many_columns too_many_connections
+syn keyword sqlErrorCode contained too_many_json_array_elements too_many_json_object_members
+syn keyword sqlErrorCode contained too_many_rows transaction_integrity_constraint_violation
+syn keyword sqlErrorCode contained transaction_resolution_unknown transaction_rollback
+syn keyword sqlErrorCode contained trigger_protocol_violated triggered_action_exception
+syn keyword sqlErrorCode contained triggered_data_change_violation trim_error undefined_column undefined_file
+syn keyword sqlErrorCode contained undefined_function undefined_object undefined_parameter undefined_table
+syn keyword sqlErrorCode contained unique_violation unsafe_new_enum_value_usage unterminated_c_string
+syn keyword sqlErrorCode contained untranslatable_character warning windowing_error
+syn keyword sqlErrorCode contained with_check_option_violation wrong_object_type zero_length_character_string
" Legacy keywords
syn keyword sqlFunction contained gist_box_compress gist_box_decompress gist_box_fetch
@@ -1927,10 +2000,10 @@ syn match sqlOperator contained "\%(!\~\~\|\#<\#\|\#>\#\|\#>>\|%>>\|&&&\|&/&\|&<
syn match sqlOperator contained "\%(<<@\|<<|\|<=>\|<@>\|>>=\|?-|\|?<@\|?@>\|?||\|@-@\|@>>\|@@@\|\^<@\|\^@>\||&>\||=|\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(|>>\|||/\|\~<\~\|\~==\|\~>\~\|\~\~\*\|\~\~=\|!!\|!\~\|\#\#\|\#-\|\#=\|\#>\|%\#\|%%\|%>\|&&\|&<\|&>\|\*<\|\*=\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(\*>\|->\|<%\|<<\|<=\|<>\|<@\|<\^\|=>\|>=\|>>\|>\^\|?\#\|?&\|?-\|?@\|?|\|?\~\|@>\|@?\|@@\|\^?\|\^@\|\^\~\||/\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
-syn match sqlOperator contained "\%(||\|\~\*\|\~=\|\~>\|\~\~\|!\|\#\|%\|&\|\*\|+\|-\|/\|<\|=\|>\|?\|@\|\^\||\|\~\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
+syn match sqlOperator contained "\%(||\|\~\*\|\~=\|\~>\|\~\~\|\#\|%\|&\|\*\|+\|-\|/\|<\|=\|>\|?\|@\|\^\||\|\~\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
" Comments
-syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell
+syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell,sqlComment
syn match sqlComment "#\s.*$" contains=sqlTodo,@Spell
syn match sqlComment "--.*$" contains=sqlTodo,@Spell
@@ -2006,12 +2079,12 @@ syn match sqlPlpgsqlVariable ".\zs@[A-z0-9_]\+" contained
syn match sqlPlpgsqlOperator ":=" contained
syn region plpgsql matchgroup=sqlString start=+\$\z(pgsql\|body\|function\)\$+ end=+\$\z1\$+ keepend
- \ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
+ \ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlIdentifier,sqlString,sqlTodo
if get(g:, 'pgsql_dollar_strings', 0)
syn region sqlString start=+\$\$+ end=+\$\$+ contains=@Spell
else
syn region plpgsql matchgroup=sqlString start=+\$\$+ end=+\$\$+ keepend
- \ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
+ \ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlIdentifier,sqlString,sqlTodo
endif
let s:plgroups = 'plpgsql'
diff --git a/syntax/postscr.vim b/syntax/postscr.vim
index 2a2b5a8f..1466fdb4 100644
--- a/syntax/postscr.vim
+++ b/syntax/postscr.vim
@@ -10,7 +10,7 @@ endif
" URL: http://www.eandem.co.uk/mrw/vim
"
" Options Flags:
-" postscr_level - language level to use for highligting (1, 2, or 3)
+" postscr_level - language level to use for highlighting (1, 2, or 3)
" postscr_display - include display PS operators
" postscr_ghostscript - include GS extensions
" postscr_fonts - highlight standard font names (a lot for PS 3)
@@ -473,12 +473,12 @@ if postscr_level == 2 || postscr_level == 3
syn keyword postscrConstant contained SubsVector UnderlineThickness FamilyName FontBBox CurMID
syn keyword postscrConstant contained Weight
-" PS2 User paramters
+" PS2 User parameters
syn keyword postscrConstant contained MaxFontItem MinFontCompress MaxUPathItem MaxFormItem MaxPatternItem
syn keyword postscrConstant contained MaxScreenItem MaxOpStack MaxDictStack MaxExecStack MaxLocalVM
syn keyword postscrConstant contained VMReclaim VMThreshold
-" PS2 System paramters
+" PS2 System parameters
syn keyword postscrConstant contained SystemParamsPassword StartJobPassword BuildTime ByteOrder RealFormat
syn keyword postscrConstant contained MaxFontCache CurFontCache MaxOutlineCache CurOutlineCache
syn keyword postscrConstant contained MaxUPathCache CurUPathCache MaxFormCache CurFormCache
@@ -500,15 +500,15 @@ if postscr_level == 2 || postscr_level == 3
" Page duplexing operators
syn keyword postscrL2Operator duplexmode firstside newsheet setduplexmode settumble tumble
-" Device compatability operators
+" Device compatibility operators
syn keyword postscrL2Operator devdismount devformat devmount devstatus
syn keyword postscrL2Repeat devforall
-" Imagesetter compatability operators
+" Imagesetter compatibility operators
syn keyword postscrL2Operator accuratescreens checkscreen pagemargin pageparams setaccuratescreens setpage
syn keyword postscrL2Operator setpagemargin setpageparams
-" Misc compatability operators
+" Misc compatibility operators
syn keyword postscrL2Operator appletalktype buildtime byteorder checkpassword defaulttimeouts diskonline
syn keyword postscrL2Operator diskstatus manualfeed manualfeedtimeout margins mirrorprint pagecount
syn keyword postscrL2Operator pagestackorder printername processcolors sethardwareiomode setjobtimeout
diff --git a/syntax/rst.vim b/syntax/rst.vim
index f20eafeb..81035220 100644
--- a/syntax/rst.vim
+++ b/syntax/rst.vim
@@ -33,8 +33,11 @@ syn region rstQuotedLiteralBlock matchgroup=rstDelimiter
\ start="::\_s*\n\ze\z([!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]\)"
\ end='^\z1\@!' contains=@NoSpell
-syn region rstDoctestBlock oneline display matchgroup=rstDelimiter
+syn region rstDoctestBlock matchgroup=rstDoctestBlockPrompt
\ start='^>>>\s' end='^$'
+ \ contains=rstDoctestBlockPrompt
+
+syn match rstDoctestBlockPrompt contained '^>>>\s'
syn region rstTable transparent start='^\n\s*+[-=+]\+' end='^$'
\ contains=rstTableLines,@rstCruft
@@ -53,7 +56,8 @@ syn cluster rstDirectives contains=rstFootnote,rstCitation,
\ rstHyperlinkTarget,rstExDirective
syn match rstExplicitMarkup '^\s*\.\.\_s'
- \ nextgroup=@rstDirectives,rstComment,rstSubstitutionDefinition
+ \ nextgroup=@rstDirectives,rstSubstitutionDefinition
+ \ contains=rstComment
" "Simple reference names are single words consisting of alphanumerics plus
" isolated (no two adjacent) internal hyphens, underscores, periods, colons
@@ -62,20 +66,23 @@ let s:ReferenceName = '[[:alnum:]]\%([-_.:+]\?[[:alnum:]]\+\)*'
syn keyword rstTodo contained FIXME TODO XXX NOTE
-execute 'syn region rstComment contained' .
- \ ' start=/.*/'
+syn region rstComment
+ \ start='\v^\z(\s*)\.\.(\_s+[\[|_]|\_s+.*::)@!' skip=+^$+ end=/^\(\z1 \)\@!/
+ \ contains=@Spell,rstTodo
+
+" Note: Order matters for rstCitation and rstFootnote as the regex for
+" citations also matches numeric only patterns, e.g. [1], which are footnotes.
+" Since we define rstFootnote after rstCitation, it takes precedence, see
+" |:syn-define|.
+execute 'syn region rstCitation contained matchgroup=rstDirective' .
+ \ ' start=+\[' . s:ReferenceName . '\]\_s+' .
\ ' skip=+^$+' .
- \ ' end=/^\s\@!/ contains=rstTodo'
+ \ ' end=+^\s\@!+ contains=@Spell,@rstCruft'
execute 'syn region rstFootnote contained matchgroup=rstDirective' .
\ ' start=+\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]\_s+' .
\ ' skip=+^$+' .
- \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell'
-
-execute 'syn region rstCitation contained matchgroup=rstDirective' .
- \ ' start=+\[' . s:ReferenceName . '\]\_s+' .
- \ ' skip=+^$+' .
- \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell'
+ \ ' end=+^\s\@!+ contains=@Spell,@rstCruft'
syn region rstHyperlinkTarget contained matchgroup=rstDirective
\ start='_\%(_\|[^:\\]*\%(\\.[^:\\]*\)*\):\_s' skip=+^$+ end=+^\s\@!+
@@ -89,7 +96,7 @@ syn region rstHyperlinkTarget matchgroup=rstDirective
execute 'syn region rstExDirective contained matchgroup=rstDirective' .
\ ' start=+' . s:ReferenceName . '::\_s+' .
\ ' skip=+^$+' .
- \ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock,rstExplicitMarkup'
+ \ ' end=+^\s\@!+ contains=@Spell,@rstCruft,rstLiteralBlock,rstExplicitMarkup'
execute 'syn match rstSubstitutionDefinition contained' .
\ ' /|.*|\_s\+/ nextgroup=@rstDirectives'
@@ -103,10 +110,10 @@ function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_righ
endif
if a:start != '``'
- let rst_contains=' contains=rstEscape' . a:name
+ let rst_contains=' contains=@Spell,rstEscape' . a:name
execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.first.'+'.' contained'
else
- let rst_contains=''
+ let rst_contains=' contains=@Spell'
endif
execute 'syn region rst' . a:name .
@@ -271,6 +278,7 @@ hi def link rstTransition rstSections
hi def link rstLiteralBlock String
hi def link rstQuotedLiteralBlock String
hi def link rstDoctestBlock PreProc
+hi def link rstDoctestBlockPrompt rstDelimiter
hi def link rstTableLines rstDelimiter
hi def link rstSimpleTableLines rstTableLines
hi def link rstExplicitMarkup rstDirective
diff --git a/syntax/ruby.vim b/syntax/ruby.vim
index bbf86e8a..d5c9e728 100644
--- a/syntax/ruby.vim
+++ b/syntax/ruby.vim
@@ -367,6 +367,9 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
SynFold 'class' syn region rubyClassBlock start="\<class\>" matchgroup=rubyClass skip="\<end:" end="\<end\>" contains=ALLBUT,@rubyNotTop
SynFold 'module' syn region rubyModuleBlock start="\<module\>" matchgroup=rubyModule skip="\<end:" end="\<end\>" contains=ALLBUT,@rubyNotTop
+ " endless def
+ syn match rubyDefine "\<def\s\+\ze[^[:space:];#(]\+\%(\s\+\|\s*(.*)\s*\)=" nextgroup=rubyMethodDeclaration skipwhite
+
" modifiers
syn match rubyLineContinuation "\\$" nextgroup=@rubyModifier skipwhite skipnl
syn match rubyConditionalModifier "\<\%(if\|unless\)\>"
@@ -433,9 +436,10 @@ endif
" Comments and Documentation {{{1
syn match rubySharpBang "\%^#!.*" display
syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained
-syn match rubyEncoding "[[:alnum:]-]\+" contained display
+syn match rubyEncoding "[[:alnum:]-_]\+" contained display
syn match rubyMagicComment "\c\%<3l#\s*\zs\%(coding\|encoding\):" contained nextgroup=rubyEncoding skipwhite
syn match rubyMagicComment "\c\%<10l#\s*\zs\%(frozen_string_literal\|warn_indent\|warn_past_scope\):" contained nextgroup=rubyBoolean skipwhite
+syn match rubyMagicComment "\c\%<10l#\s*\zs\%(shareable_constant_value\):" contained nextgroup=rubyEncoding skipwhite
syn match rubyComment "#.*" contains=@rubyCommentSpecial,rubySpaceError,@Spell
syn cluster rubyCommentSpecial contains=rubySharpBang,rubyTodo,rubyMagicComment
diff --git a/syntax/sml.vim b/syntax/sml.vim
index 26347128..098d023a 100644
--- a/syntax/sml.vim
+++ b/syntax/sml.vim
@@ -7,19 +7,18 @@ endif
" Filenames: *.sml *.sig
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
-" Last Change: 2019 Oct 01 - Only spell check strings & comments (Chuan Wei Foo)
+" Last Change: 2021 Oct 04
" 2015 Aug 31 - Fixed opening of modules (Ramana Kumar)
" 2006 Oct 23 - Fixed character highlighting bug (MM)
" quit when a syntax file was already loaded
if exists("b:current_syntax")
+ finish
+endif
" Disable spell checking of syntax.
syn spell notoplevel
- finish
-endif
-
" SML is case sensitive.
syn case match
diff --git a/syntax/spup.vim b/syntax/spup.vim
index 943e0e55..82231863 100644
--- a/syntax/spup.vim
+++ b/syntax/spup.vim
@@ -29,7 +29,7 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" don't hightlight several keywords like subsections
+" don't highlight several keywords like subsections
"let strict_subsections = 1
" highlight types usually found in DECLARE section
@@ -39,7 +39,7 @@ endif
" one line comment syntax (# comments)
" 1. allow appended code after comment, do not complain
-" 2. show code beginnig with the second # as an error
+" 2. show code beginning with the second # as an error
" 3. show whole lines with more than one # as an error
if !exists("oneline_comments")
let oneline_comments = 2
@@ -181,7 +181,7 @@ syn cluster spupOrdinary contains=spupNumber,spupIdentifier,spupSymbol
syn cluster spupOrdinary add=spupError,spupString,spupComment
syn cluster spupTextproc contains=spupTextprocGeneric,spupTextprocError
-" define syncronizing; especially OPERATION sections can become very large
+" define synchronizing; especially OPERATION sections can become very large
syn sync clear
syn sync minlines=100
syn sync maxlines=500
diff --git a/syntax/st.vim b/syntax/st.vim
index 5ad026bf..7f214c88 100644
--- a/syntax/st.vim
+++ b/syntax/st.vim
@@ -48,7 +48,7 @@ syn match stCharacter "$."
syn case ignore
-" the symols prefixed by a '#'
+" the symbols prefixed by a '#'
syn match stSymbol "\(#\<[a-z_][a-z0-9_]*\>\)"
syn match stSymbol "\(#'[^']*'\)"
@@ -62,7 +62,7 @@ syn match stFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
syn case match
-" a try to higlight paren mismatches
+" a try to highlight paren mismatches
syn region stParen transparent start='(' end=')' contains=ALLBUT,stParenError
syn match stParenError ")"
syn region stBlock transparent start='\[' end='\]' contains=ALLBUT,stBlockError
diff --git a/syntax/swift.vim b/syntax/swift.vim
index 25c62942..8b41f560 100644
--- a/syntax/swift.vim
+++ b/syntax/swift.vim
@@ -232,6 +232,8 @@ syntax keyword swiftStructure
syntax keyword swiftDebugIdentifier
\ #column
\ #file
+ \ #fileID
+ \ #filePath
\ #function
\ #line
\ __COLUMN__
diff --git a/syntax/tcl.vim b/syntax/tcl.vim
index 73d1e607..54ec20a7 100644
--- a/syntax/tcl.vim
+++ b/syntax/tcl.vim
@@ -10,9 +10,9 @@ endif
" (previously Matt Neumann <mattneu@purpleturtle.com>)
" (previously Allan Kelly <allan@fruitloaf.co.uk>)
" Original: Robin Becker <robin@jessikat.demon.co.uk>
-" Last Change: 2014-02-12
-" Version: 1.14
-" URL: http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim
+" Last Change: 2021 Nov 16
+" Version: 1.14 plus improvements from PR #8948
+" URL: (removed, no longer worked)
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -172,7 +172,7 @@ syn region tcltkCommand matchgroup=tcltkCommandColor start="\<format\>" matchgro
" PACK
" commands associated with pack
-syn keyword tcltkPackSwitch contained forget info propogate slaves
+syn keyword tcltkPackSwitch contained forget info propagate slaves
syn keyword tcltkPackConfSwitch contained after anchor before expand fill in ipadx ipady padx pady side
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<pack\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkPackSwitch,tcltkPackConf,tcltkPackConfSwitch,tclNumber,tclVarRef,tclString,tcltkCommand keepend
@@ -196,18 +196,18 @@ syn region tcltkCommand matchgroup=tcltkCommandColor start="\<lsort\>" matchgrou
syn keyword tclTodo contained TODO
" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16
-" Octal, hexadecimal, unicode codepoints, and the classics.
+" Octal, hexadecimal, Unicode codepoints, and the classics.
" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'.
-syn match tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
+syn match tclSpecial contained '\\\(\o\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
syn match tclSpecial contained '\\[\[\]\{\}\"\$]'
" Command appearing inside another command or inside a string.
syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
" A string needs the skip argument as it may legitimately contain \".
" Match at start of line
-syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+
+syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC,@Spell skip=+\\\\\|\\"+
"Match all other legal strings.
-syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+
+syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement,@Spell skip=+\\\\\|\\"+
" Line continuation is backslash immediately followed by newline.
syn match tclLineContinue '\\$'
@@ -226,12 +226,12 @@ syn match tclNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match tclNumber "\<\d\+e[-+]\=\d\+[fl]\=\>"
"hex number
-syn match tclNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
-"syn match tclIdentifier "\<[a-z_][a-z0-9_]*\>"
+syn match tclNumber "0x\x\+\(u\=l\=\|lu\)\>"
+"syn match tclIdentifier "\<\h\w*\>"
syn case match
-syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo
-syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo
+syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo,@Spell
+syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo,@Spell
"syn match tclComment /^\s*\#.*$/
"syn match tclComment /;\s*\#.*$/hs=s+1
diff --git a/syntax/texinfo.vim b/syntax/texinfo.vim
index fa5659ad..deb81c4c 100644
--- a/syntax/texinfo.vim
+++ b/syntax/texinfo.vim
@@ -3,398 +3,48 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'texinfo', 'syntax/texinfo.vim
endif
" Vim syntax file
-" Language: Texinfo (macro package for TeX)
-" Maintainer: Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
-" URL: <->
-" Last Change: 2004 Jun 23
-"
-" the file follows the Texinfo manual structure; this file is based
-" on manual for Texinfo version 4.0, 28 September 1999
-" since @ can have special meanings, everything is 'match'-ed and 'region'-ed
-" (including @ in 'iskeyword' option has unexpected effects)
+" Language: Texinfo (documentation format)
+" Maintainer: Robert Dodier <robert.dodier@gmail.com>
+" Latest Revision: 2021-12-15
-" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
-if !exists("main_syntax")
- let main_syntax = 'texinfo'
-endif
-
-"in Texinfo can be real big things, like tables; sync for that
-syn sync lines=200
-
-"some general stuff
-"syn match texinfoError "\S" contained TODO
-syn match texinfoIdent "\k\+" contained "IDENTifier
-syn match texinfoAssignment "\k\+\s*=\s*\k\+\s*$" contained "assigment statement ( var = val )
-syn match texinfoSinglePar "\k\+\s*$" contained "single parameter (used for several @-commands)
-syn match texinfoIndexPar "\k\k\s*$" contained "param. used for different *index commands (+ @documentlanguage command)
-
-
-"marking words and phrases (chap. 9 in Texinfo manual)
-"(almost) everything appears as 'contained' too; is for tables (@table)
-
-"this chapter is at the beginning of this file to avoid overwritings
-
-syn match texinfoSpecialChar "@acronym" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@acronym{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@b" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@b{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@cite" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@cite{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@code" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@code{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@command" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@command{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@dfn" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dfn{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@email" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@email{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@emph" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@emph{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@env" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@env{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@file" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@file{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@i" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@i{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@kbd" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@kbd{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@key" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@key{" end="}" contains=texinfoSpecialChar
-syn match texinfoSpecialChar "@option" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@option{" end="}" contains=texinfoSpecialChar
-syn match texinfoSpecialChar "@r" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@r{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@samp" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@samp{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@sc" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@sc{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@strong" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@strong{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@t" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@t{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@url" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@url{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoSpecialChar "@var" contained
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@var{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn match texinfoAtCmd "^@kbdinputstyle" nextgroup=texinfoSinglePar skipwhite
-
-
-"overview of Texinfo (chap. 1 in Texinfo manual)
-syn match texinfoComment "@c .*"
-syn match texinfoComment "@c$"
-syn match texinfoComment "@comment .*"
-syn region texinfoMltlnAtCmd matchgroup=texinfoComment start="^@ignore\s*$" end="^@end ignore\s*$" contains=ALL
-
-
-"beginning a Texinfo file (chap. 3 in Texinfo manual)
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@center " skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
-syn region texinfoMltlnDMAtCmd matchgroup=texinfoAtCmd start="^@detailmenu\s*$" end="^@end detailmenu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@setfilename " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@settitle " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@shorttitlepage " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@title " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@titlefont{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@titlepage\s*$" end="^@end titlepage\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd,texinfoAtCmd,texinfoPrmAtCmd,texinfoMltlnAtCmd
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@vskip " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn match texinfoAtCmd "^@exampleindent" nextgroup=texinfoSinglePar skipwhite
-syn match texinfoAtCmd "^@headings" nextgroup=texinfoSinglePar skipwhite
-syn match texinfoAtCmd "^\\input" nextgroup=texinfoSinglePar skipwhite
-syn match texinfoAtCmd "^@paragraphindent" nextgroup=texinfoSinglePar skipwhite
-syn match texinfoAtCmd "^@setchapternewpage" nextgroup=texinfoSinglePar skipwhite
-
-
-"ending a Texinfo file (chap. 4 in Texinfo manual)
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@author " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-"all below @bye should be comment TODO
-syn match texinfoAtCmd "^@bye\s*$"
-syn match texinfoAtCmd "^@contents\s*$"
-syn match texinfoAtCmd "^@printindex" nextgroup=texinfoIndexPar skipwhite
-syn match texinfoAtCmd "^@setcontentsaftertitlepage\s*$"
-syn match texinfoAtCmd "^@setshortcontentsaftertitlepage\s*$"
-syn match texinfoAtCmd "^@shortcontents\s*$"
-syn match texinfoAtCmd "^@summarycontents\s*$"
-
-
-"chapter structuring (chap. 5 in Texinfo manual)
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendix" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@centerchap" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapter" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@heading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@majorheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@section" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subheading " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subtitle" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumbered" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn match texinfoAtCmd "^@lowersections\s*$"
-syn match texinfoAtCmd "^@raisesections\s*$"
-
-
-"nodes (chap. 6 in Texinfo manual)
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@anchor{" end="}"
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@top" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@node" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-
-
-"menus (chap. 7 in Texinfo manual)
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@menu\s*$" end="^@end menu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd
-
-
-"cross references (chap. 8 in Texinfo manual)
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@inforef{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@pxref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@ref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@uref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@xref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-
-
-"marking words and phrases (chap. 9 in Texinfo manual)
-"(almost) everything appears as 'contained' too; is for tables (@table)
-
-"this chapter is at the beginning of this file to avoid overwritings
-
-
-"quotations and examples (chap. 10 in Texinfo manual)
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@cartouche\s*$" end="^@end cartouche\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@display\s*$" end="^@end display\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@example\s*$" end="^@end example\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushleft\s*$" end="^@end flushleft\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushright\s*$" end="^@end flushright\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@format\s*$" end="^@end format\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@lisp\s*$" end="^@end lisp\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@quotation\s*$" end="^@end quotation\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalldisplay\s*$" end="^@end smalldisplay\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallexample\s*$" end="^@end smallexample\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallformat\s*$" end="^@end smallformat\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalllisp\s*$" end="^@end smalllisp\s*$" contains=ALL
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@exdent" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn match texinfoAtCmd "^@noindent\s*$"
-syn match texinfoAtCmd "^@smallbook\s*$"
-
-
-"lists and tables (chap. 11 in Texinfo manual)
-syn match texinfoAtCmd "@asis" contained
-syn match texinfoAtCmd "@columnfractions" contained
-syn match texinfoAtCmd "@item" contained
-syn match texinfoAtCmd "@itemx" contained
-syn match texinfoAtCmd "@tab" contained
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@enumerate" end="^@end enumerate\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ftable" end="^@end ftable\s*$" contains=ALL
-syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@itemize" end="^@end itemize\s*$" contains=ALL
-syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@multitable" end="^@end multitable\s*$" contains=ALL
-syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@table" end="^@end table\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@vtable" end="^@end vtable\s*$" contains=ALL
+let s:cpo_save = &cpo
+set cpo&vim
+syn match texinfoControlSequence display '\(@end [a-zA-Z@]\+\|@[a-zA-Z@]\+\)'
-"indices (chap. 12 in Texinfo manual)
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@\(c\|f\|k\|p\|t\|v\)index" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@..index" skip="\\$" end="$" contains=texinfoSpecialChar oneline
-"@defcodeindex and @defindex is defined after chap. 15's @def* commands (otherwise those ones will overwrite these ones)
-syn match texinfoSIPar "\k\k\s*\k\k\s*$" contained
-syn match texinfoAtCmd "^@syncodeindex" nextgroup=texinfoSIPar skipwhite
-syn match texinfoAtCmd "^@synindex" nextgroup=texinfoSIPar skipwhite
+syn match texinfoComment display '^\s*\(@comment\|@c\)\>.*$'
-"special insertions (chap. 13 in Texinfo manual)
-syn match texinfoSpecialChar "@\(!\|?\|@\|\s\)"
-syn match texinfoSpecialChar "@{"
-syn match texinfoSpecialChar "@}"
-"accents
-syn match texinfoSpecialChar "@=."
-syn match texinfoSpecialChar "@\('\|\"\|\^\|`\)[aeiouyAEIOUY]"
-syn match texinfoSpecialChar "@\~[aeinouyAEINOUY]"
-syn match texinfoSpecialChar "@dotaccent{.}"
-syn match texinfoSpecialChar "@H{.}"
-syn match texinfoSpecialChar "@,{[cC]}"
-syn match texinfoSpecialChar "@AA{}"
-syn match texinfoSpecialChar "@aa{}"
-syn match texinfoSpecialChar "@L{}"
-syn match texinfoSpecialChar "@l{}"
-syn match texinfoSpecialChar "@O{}"
-syn match texinfoSpecialChar "@o{}"
-syn match texinfoSpecialChar "@ringaccent{.}"
-syn match texinfoSpecialChar "@tieaccent{..}"
-syn match texinfoSpecialChar "@u{.}"
-syn match texinfoSpecialChar "@ubaraccent{.}"
-syn match texinfoSpecialChar "@udotaccent{.}"
-syn match texinfoSpecialChar "@v{.}"
-"ligatures
-syn match texinfoSpecialChar "@AE{}"
-syn match texinfoSpecialChar "@ae{}"
-syn match texinfoSpecialChar "@copyright{}"
-syn match texinfoSpecialChar "@bullet" contained "for tables and lists
-syn match texinfoSpecialChar "@bullet{}"
-syn match texinfoSpecialChar "@dotless{i}"
-syn match texinfoSpecialChar "@dotless{j}"
-syn match texinfoSpecialChar "@dots{}"
-syn match texinfoSpecialChar "@enddots{}"
-syn match texinfoSpecialChar "@equiv" contained "for tables and lists
-syn match texinfoSpecialChar "@equiv{}"
-syn match texinfoSpecialChar "@error{}"
-syn match texinfoSpecialChar "@exclamdown{}"
-syn match texinfoSpecialChar "@expansion{}"
-syn match texinfoSpecialChar "@minus" contained "for tables and lists
-syn match texinfoSpecialChar "@minus{}"
-syn match texinfoSpecialChar "@OE{}"
-syn match texinfoSpecialChar "@oe{}"
-syn match texinfoSpecialChar "@point" contained "for tables and lists
-syn match texinfoSpecialChar "@point{}"
-syn match texinfoSpecialChar "@pounds{}"
-syn match texinfoSpecialChar "@print{}"
-syn match texinfoSpecialChar "@questiondown{}"
-syn match texinfoSpecialChar "@result" contained "for tables and lists
-syn match texinfoSpecialChar "@result{}"
-syn match texinfoSpecialChar "@ss{}"
-syn match texinfoSpecialChar "@TeX{}"
-"other
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dmn{" end="}"
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@footnote{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@image{" end="}"
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@math{" end="}"
-syn match texinfoAtCmd "@footnotestyle" nextgroup=texinfoSinglePar skipwhite
+syn region texinfoCode matchgroup=texinfoControlSequence start="@code{" end="}" contains=ALL
+syn region texinfoVerb matchgroup=texinfoControlSequence start="@verb{" end="}" contains=ALL
+syn region texinfoArgument matchgroup=texinfoBrace start="{" end="}" contains=ALLBUT
-"making and preventing breaks (chap. 14 in Texinfo manual)
-syn match texinfoSpecialChar "@\(\*\|-\|\.\)"
-syn match texinfoAtCmd "^@need" nextgroup=texinfoSinglePar skipwhite
-syn match texinfoAtCmd "^@page\s*$"
-syn match texinfoAtCmd "^@sp" nextgroup=texinfoSinglePar skipwhite
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@group\s*$" end="^@end group\s*$" contains=ALL
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@hyphenation{" end="}"
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@w{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
+syn region texinfoExample matchgroup=texinfoControlSequence start="^@example\s*$" end="^@end example\s*$" contains=ALL
+syn region texinfoVerbatim matchgroup=texinfoControlSequence start="^@verbatim\s*$" end="^@end verbatim\s*$"
-"definition commands (chap. 15 in Texinfo manual)
-syn match texinfoMltlnAtCmdFLine "^@def\k\+" contained
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@def\k\+" end="^@end def\k\+$" contains=ALL
-
-"next 2 commands are from chap. 12; must be defined after @def* commands above to overwrite them
-syn match texinfoAtCmd "@defcodeindex" nextgroup=texinfoIndexPar skipwhite
-syn match texinfoAtCmd "@defindex" nextgroup=texinfoIndexPar skipwhite
-
-
-"conditionally visible text (chap. 16 in Texinfo manual)
-syn match texinfoAtCmd "^@clear" nextgroup=texinfoSinglePar skipwhite
-syn region texinfoMltln2AtCmd matchgroup=texinfoAtCmd start="^@html\s*$" end="^@end html\s*$"
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifclear" end="^@end ifclear\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifhtml" end="^@end ifhtml\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifinfo" end="^@end ifinfo\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnothtml" end="^@end ifnothtml\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnotinfo" end="^@end ifnotinfo\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnottex" end="^@end ifnottex\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifset" end="^@end ifset\s*$" contains=ALL
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@iftex" end="^@end iftex\s*$" contains=ALL
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@set " skip="\\$" end="$" contains=texinfoSpecialChar oneline
-syn region texinfoTexCmd start="\$\$" end="\$\$" contained
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@tex" end="^@end tex\s*$" contains=texinfoTexCmd
-syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@value{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-
-
-"internationalization (chap. 17 in Texinfo manual)
-syn match texinfoAtCmd "@documentencoding" nextgroup=texinfoSinglePar skipwhite
-syn match texinfoAtCmd "@documentlanguage" nextgroup=texinfoIndexPar skipwhite
-
-
-"defining new texinfo commands (chap. 18 in Texinfo manual)
-syn match texinfoAtCmd "@alias" nextgroup=texinfoAssignment skipwhite
-syn match texinfoDIEPar "\S*\s*,\s*\S*\s*,\s*\S*\s*$" contained
-syn match texinfoAtCmd "@definfoenclose" nextgroup=texinfoDIEPar skipwhite
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@macro" end="^@end macro\s*$" contains=ALL
-
-
-"formatting hardcopy (chap. 19 in Texinfo manual)
-syn match texinfoAtCmd "^@afourlatex\s*$"
-syn match texinfoAtCmd "^@afourpaper\s*$"
-syn match texinfoAtCmd "^@afourwide\s*$"
-syn match texinfoAtCmd "^@finalout\s*$"
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@pagesizes" end="$" oneline
-
-
-"creating and installing Info Files (chap. 20 in Texinfo manual)
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@dircategory" skip="\\$" end="$" oneline
-syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@direntry\s*$" end="^@end direntry\s*$" contains=texinfoSpecialChar
-syn match texinfoAtCmd "^@novalidate\s*$"
-
-
-"include files (appendix E in Texinfo manual)
-syn match texinfoAtCmd "^@include" nextgroup=texinfoSinglePar skipwhite
-
-
-"page headings (appendix F in Texinfo manual)
-syn match texinfoHFSpecialChar "@|" contained
-syn match texinfoThisAtCmd "@thischapter" contained
-syn match texinfoThisAtCmd "@thischaptername" contained
-syn match texinfoThisAtCmd "@thisfile" contained
-syn match texinfoThisAtCmd "@thispage" contained
-syn match texinfoThisAtCmd "@thistitle" contained
-syn match texinfoThisAtCmd "@today{}" contained
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
-syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
-
-
-"refilling paragraphs (appendix H in Texinfo manual)
-syn match texinfoAtCmd "@refill"
-
-
-syn cluster texinfoAll contains=ALLBUT,texinfoThisAtCmd,texinfoHFSpecialChar
-syn cluster texinfoReducedAll contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
-"==============================================================================
-" highlighting
-
-" Only when an item doesn't have highlighting yet
-
-hi def link texinfoSpecialChar Special
-hi def link texinfoHFSpecialChar Special
-
-hi def link texinfoError Error
-hi def link texinfoIdent Identifier
-hi def link texinfoAssignment Identifier
-hi def link texinfoSinglePar Identifier
-hi def link texinfoIndexPar Identifier
-hi def link texinfoSIPar Identifier
-hi def link texinfoDIEPar Identifier
-hi def link texinfoTexCmd PreProc
-
-
-hi def link texinfoAtCmd Statement "@-command
-hi def link texinfoPrmAtCmd String "@-command in one line with unknown nr. of parameters
- "is String because is found as a region and is 'matchgroup'-ed
- "to texinfoAtCmd
-hi def link texinfoBrcPrmAtCmd String "@-command with parameter(s) in braces ({})
- "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
-hi def link texinfoMltlnAtCmdFLine texinfoAtCmd "repeated embedded First lines in @-commands
-hi def link texinfoMltlnAtCmd String "@-command in multiple lines
- "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
-hi def link texinfoMltln2AtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
-hi def link texinfoMltlnDMAtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
-hi def link texinfoMltlnNAtCmd Normal "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
-hi def link texinfoThisAtCmd Statement "@-command used in headers and footers (@this... series)
-
-hi def link texinfoComment Comment
+syn region texinfoMenu matchgroup=texinfoControlSequence start="^@menu\s*$" end="^@end menu\s*$"
+if exists("g:texinfo_delimiters")
+ syn match texinfoDelimiter display '[][{}]'
+endif
+hi def link texinfoDelimiter Delimiter
+hi def link texinfoComment Comment
+hi def link texinfoControlSequence Identifier
+hi def link texinfoBrace Operator
+hi def link texinfoArgument Special
+hi def link texinfoExample String
+hi def link texinfoVerbatim String
+hi def link texinfoVerb String
+hi def link texinfoCode String
+hi def link texinfoMenu String
let b:current_syntax = "texinfo"
-if main_syntax == 'texinfo'
- unlet main_syntax
-endif
-
-" vim: ts=8
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/syntax/tmux.vim b/syntax/tmux.vim
index 340b00fd..4505f10e 100644
--- a/syntax/tmux.vim
+++ b/syntax/tmux.vim
@@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'tmux', 'syntax/tmux.vim')
endif
" Language: tmux(1) configuration file
-" Version: 3.2a (git-44ada9cd)
+" Version: 3.3-rc (git-77fc7ac3)
" URL: https://github.com/ericpruitt/tmux.vim/
" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
@@ -12,7 +12,7 @@ if exists("b:current_syntax")
finish
endif
-" Explicitly change compatiblity options to Vim's defaults because this file
+" Explicitly change compatibility options to Vim's defaults because this file
" uses line continuations.
let s:original_cpo = &cpo
set cpo&vim
@@ -71,21 +71,23 @@ if get(g:, "tmux_syntax_colors", 1)
endif
syn keyword tmuxOptions
-\ backspace buffer-limit command-alias copy-command default-terminal editor
-\ escape-time exit-empty activity-action assume-paste-time base-index
-\ bell-action default-command default-shell default-size destroy-unattached
-\ detach-on-destroy display-panes-active-colour display-panes-colour
-\ display-panes-time display-time exit-unattached extended-keys focus-events
+\ backspace buffer-limit command-alias copy-command cursor-colour
+\ cursor-style default-terminal editor escape-time activity-action
+\ assume-paste-time base-index bell-action default-command default-shell
+\ default-size destroy-unattached detach-on-destroy
+\ display-panes-active-colour display-panes-colour display-panes-time
+\ display-time exit-empty exit-unattached extended-keys focus-events
\ history-file history-limit key-table lock-after-time lock-command
-\ message-command-style message-limit message-style aggressive-resize
-\ allow-rename alternate-screen automatic-rename automatic-rename-format
+\ message-command-style message-limit aggressive-resize allow-rename
+\ alternate-screen automatic-rename automatic-rename-format
\ clock-mode-colour clock-mode-style copy-mode-current-match-style
\ copy-mode-mark-style copy-mode-match-style main-pane-height
-\ main-pane-width mode-keys mode-style monitor-activity monitor-bell
-\ monitor-silence mouse other-pane-height other-pane-width
+\ main-pane-width message-style mode-keys mode-style monitor-activity
+\ monitor-bell monitor-silence mouse other-pane-height other-pane-width
\ pane-active-border-style pane-base-index pane-border-format
-\ pane-border-lines pane-border-status pane-border-style pane-colours prefix
-\ prefix2 prompt-history-limit remain-on-exit renumber-windows repeat-time
+\ pane-border-lines pane-border-status pane-border-style pane-colours
+\ popup-border-lines popup-border-style popup-style prefix prefix2
+\ prompt-history-limit remain-on-exit renumber-windows repeat-time
\ set-clipboard set-titles set-titles-string silence-action status status-bg
\ status-fg status-format status-interval status-justify status-keys
\ status-left status-left-length status-left-style status-position
diff --git a/syntax/toml.vim b/syntax/toml.vim
index 9540d2c5..98ac4698 100644
--- a/syntax/toml.vim
+++ b/syntax/toml.vim
@@ -2,10 +2,12 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'toml', 'syntax/toml.vim')
finish
endif
-" Language: TOML
-" Maintainer: Caleb Spare <cespare@gmail.com>
-" URL: https://github.com/cespare/vim-toml
-" LICENSE: MIT
+" Vim syntax file
+" Language: TOML
+" Homepage: https://github.com/cespare/vim-toml
+" Maintainer: Aman Verma
+" Previous Maintainer: Caleb Spare <cespare@gmail.com>
+" Last Change: Oct 8, 2021
if exists('b:current_syntax')
finish
@@ -14,10 +16,7 @@ endif
syn match tomlEscape /\\[btnfr"/\\]/ display contained
syn match tomlEscape /\\u\x\{4}/ contained
syn match tomlEscape /\\U\x\{8}/ contained
-hi def link tomlEscape SpecialChar
-
syn match tomlLineEscape /\\$/ contained
-hi def link tomlLineEscape SpecialChar
" Basic strings
syn region tomlString oneline start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=tomlEscape
@@ -27,7 +26,6 @@ syn region tomlString start=/"""/ end=/"""/ contains=tomlEscape,tomlLineEscape
syn region tomlString oneline start=/'/ end=/'/
" Multi-line literal strings
syn region tomlString start=/'''/ end=/'''/
-hi def link tomlString String
syn match tomlInteger /[+-]\=\<[1-9]\(_\=\d\)*\>/ display
syn match tomlInteger /[+-]\=\<0\>/ display
@@ -35,46 +33,53 @@ syn match tomlInteger /[+-]\=\<0x[[:xdigit:]]\(_\=[[:xdigit:]]\)*\>/ display
syn match tomlInteger /[+-]\=\<0o[0-7]\(_\=[0-7]\)*\>/ display
syn match tomlInteger /[+-]\=\<0b[01]\(_\=[01]\)*\>/ display
syn match tomlInteger /[+-]\=\<\(inf\|nan\)\>/ display
-hi def link tomlInteger Number
syn match tomlFloat /[+-]\=\<\d\(_\=\d\)*\.\d\+\>/ display
syn match tomlFloat /[+-]\=\<\d\(_\=\d\)*\(\.\d\(_\=\d\)*\)\=[eE][+-]\=\d\(_\=\d\)*\>/ display
-hi def link tomlFloat Float
syn match tomlBoolean /\<\%(true\|false\)\>/ display
-hi def link tomlBoolean Boolean
" https://tools.ietf.org/html/rfc3339
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}/ display
syn match tomlDate /\d\{2\}:\d\{2\}:\d\{2\}\%(\.\d\+\)\?/ display
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}[T ]\d\{2\}:\d\{2\}:\d\{2\}\%(\.\d\+\)\?\%(Z\|[+-]\d\{2\}:\d\{2\}\)\?/ display
-hi def link tomlDate Constant
-
-syn match tomlKey /\v(^|[{,])\s*\zs[[:alnum:]._-]+\ze\s*\=/ display
-hi def link tomlKey Identifier
+syn match tomlDotInKey /\v[^.]+\zs\./ contained display
+syn match tomlKey /\v(^|[{,])\s*\zs[[:alnum:]._-]+\ze\s*\=/ contains=tomlDotInKey display
syn region tomlKeyDq oneline start=/\v(^|[{,])\s*\zs"/ end=/"\ze\s*=/ contains=tomlEscape
-hi def link tomlKeyDq Identifier
-
syn region tomlKeySq oneline start=/\v(^|[{,])\s*\zs'/ end=/'\ze\s*=/
-hi def link tomlKeySq Identifier
-syn region tomlTable oneline start=/^\s*\[[^\[]/ end=/\]/ contains=tomlKey,tomlKeyDq,tomlKeySq
-hi def link tomlTable Title
+syn region tomlTable oneline start=/^\s*\[[^\[]/ end=/\]/ contains=tomlKey,tomlKeyDq,tomlKeySq,tomlDotInKey
-syn region tomlTableArray oneline start=/^\s*\[\[/ end=/\]\]/ contains=tomlKey,tomlKeyDq,tomlKeySq
-hi def link tomlTableArray Title
+syn region tomlTableArray oneline start=/^\s*\[\[/ end=/\]\]/ contains=tomlKey,tomlKeyDq,tomlKeySq,tomlDotInKey
-syn cluster tomlValue contains=tomlArray,tomlString,tomlInteger,tomlFloat,tomlBoolean,tomlDate,tomlComment
syn region tomlKeyValueArray start=/=\s*\[\zs/ end=/\]/ contains=@tomlValue
+
syn region tomlArray start=/\[/ end=/\]/ contains=@tomlValue contained
+syn cluster tomlValue contains=tomlArray,tomlString,tomlInteger,tomlFloat,tomlBoolean,tomlDate,tomlComment
+
syn keyword tomlTodo TODO FIXME XXX BUG contained
-hi def link tomlTodo Todo
syn match tomlComment /#.*/ contains=@Spell,tomlTodo
+
hi def link tomlComment Comment
+hi def link tomlTodo Todo
+hi def link tomlTableArray Title
+hi def link tomlTable Title
+hi def link tomlDotInKey Normal
+hi def link tomlKeySq Identifier
+hi def link tomlKeyDq Identifier
+hi def link tomlKey Identifier
+hi def link tomlDate Constant
+hi def link tomlBoolean Boolean
+hi def link tomlFloat Float
+hi def link tomlInteger Number
+hi def link tomlString String
+hi def link tomlLineEscape SpecialChar
+hi def link tomlEscape SpecialChar
syn sync minlines=500
-
let b:current_syntax = 'toml'
+
+" vim: et sw=2 sts=2
diff --git a/syntax/vb.vim b/syntax/vb.vim
index 0641dc1e..5f4006ca 100644
--- a/syntax/vb.vim
+++ b/syntax/vb.vim
@@ -3,11 +3,13 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'visual-basic', 'syntax/vb.vim
endif
" Vim syntax file
-" Language: Visual Basic
-" Maintainer: Tim Chase <vb.vim@tim.thechases.com>
-" Former Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
-" (tried multiple times to contact, but email bounced)
+" Language: Visual Basic
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Former Maintainer: Tim Chase <vb.vim@tim.thechases.com>
+" Former Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
+" (tried multiple times to contact, but email bounced)
" Last Change:
+" 2021 Nov 26 Incorporated additions from Doug Kearns
" 2005 May 25 Synched with work by Thomas Barthel
" 2004 May 30 Added a few keywords
@@ -17,7 +19,7 @@ endif
" quit when a syntax file was already loaded
if exists("b:current_syntax")
- finish
+ finish
endif
" VB is case insensitive
@@ -237,7 +239,7 @@ syn keyword vbKeyword Public PublicNotCreateable OnNewProcessSingleUse
syn keyword vbKeyword InSameProcessMultiUse GlobalMultiUse Resume Seek
syn keyword vbKeyword Set Static Step String Time WithEvents
-syn keyword vbTodo contained TODO
+syn keyword vbTodo contained TODO
"Datatypes
syn keyword vbTypes Boolean Byte Currency Date Decimal Double Empty
@@ -323,46 +325,54 @@ syn match vbNumber "\<\d\+\>"
syn match vbNumber "\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match vbNumber "\.\d\+\>"
-"syn match vbNumber "{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
-"syn match vbNumber ":[[:xdigit:]]\+"
-"syn match vbNumber "[-+]\=\<\d\+\>"
-syn match vbFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
-syn match vbFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
-syn match vbFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
+"syn match vbNumber "{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
+"syn match vbNumber ":[[:xdigit:]]\+"
+"syn match vbNumber "[-+]\=\<\d\+\>"
+syn match vbFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
+syn match vbFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
+syn match vbFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
-" String and Character contstants
+" String and Character constants
syn region vbString start=+"+ end=+"\|$+
syn region vbComment start="\(^\|\s\)REM\s" end="$" contains=vbTodo
syn region vbComment start="\(^\|\s\)\'" end="$" contains=vbTodo
-syn match vbLineNumber "^\d\+\(\s\|$\)"
-syn match vbTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
+syn match vbLineLabel "^\h\w\+:"
+syn match vbLineNumber "^\d\+\(:\|\s\|$\)"
+syn match vbTypeSpecifier "\<\a\w*[@\$%&!#]"ms=s+1
syn match vbTypeSpecifier "#[a-zA-Z0-9]"me=e-1
+" Conditional Compilation
+syn match vbPreProc "^#const\>"
+syn region vbPreProc matchgroup=PreProc start="^#if\>" end="\<then\>" transparent contains=TOP
+syn region vbPreProc matchgroup=PreProc start="^#elseif\>" end="\<then\>" transparent contains=TOP
+syn match vbPreProc "^#else\>"
+syn match vbPreProc "^#end\s*if\>"
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
-hi def link vbBoolean Boolean
-hi def link vbLineNumber Comment
-hi def link vbComment Comment
-hi def link vbConditional Conditional
-hi def link vbConst Constant
-hi def link vbDefine Constant
-hi def link vbError Error
-hi def link vbFunction Identifier
-hi def link vbIdentifier Identifier
-hi def link vbNumber Number
-hi def link vbFloat Float
-hi def link vbMethods PreProc
-hi def link vbOperator Operator
-hi def link vbRepeat Repeat
-hi def link vbString String
-hi def link vbStatement Statement
-hi def link vbKeyword Statement
-hi def link vbEvents Special
-hi def link vbTodo Todo
-hi def link vbTypes Type
-hi def link vbTypeSpecifier Type
-
+hi def link vbBoolean Boolean
+hi def link vbLineNumber Comment
+hi def link vbLineLabel Comment
+hi def link vbComment Comment
+hi def link vbConditional Conditional
+hi def link vbConst Constant
+hi def link vbDefine Constant
+hi def link vbError Error
+hi def link vbFunction Identifier
+hi def link vbIdentifier Identifier
+hi def link vbNumber Number
+hi def link vbFloat Float
+hi def link vbMethods PreProc
+hi def link vbOperator Operator
+hi def link vbRepeat Repeat
+hi def link vbString String
+hi def link vbStatement Statement
+hi def link vbKeyword Statement
+hi def link vbEvents Special
+hi def link vbTodo Todo
+hi def link vbTypes Type
+hi def link vbTypeSpecifier Type
+hi def link vbPreProc PreProc
let b:current_syntax = "vb"
diff --git a/syntax/vlang.vim b/syntax/vlang.vim
index 4584ebdf..aae1bd9b 100644
--- a/syntax/vlang.vim
+++ b/syntax/vlang.vim
@@ -91,10 +91,10 @@ syn match vCodeGen /$if\>/
hi def link vCodeGen Identifier
" Predefined types
-syn keyword vType chan map bool string error voidptr
+syn keyword vType any chan char map bool string error voidptr
syn match vOptionalType "\%(\<?\)\@<=\(chan\|map\|bool\|string\|error\|voidptr\)"
-syn keyword vSignedInts int i8 i16 i64 rune intptr
-syn keyword vUnsignedInts byte u16 u32 u64 byteptr
+syn keyword vSignedInts int i8 i16 i64 isize rune intptr
+syn keyword vUnsignedInts byte u16 u32 u64 usize byteptr
syn keyword vFloats f32 f64 floatptr
" XXX Enable when complex numbers are implemented in V
" syn keyword vComplexes complex64 complex128
@@ -160,8 +160,8 @@ syn cluster vStringGroup contains=@vCharacterGroup,vStringError
syn region vString start=+"+ skip=+\\\\\|\\'+ end=+"+ contains=@vStringGroup
syn region vString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@vStringGroup
-syn region vRawString start=+r"+ skip=+\\\\\|\\'+ end=+"+
-syn region vRawString start=+r'+ skip=+\\\\\|\\'+ end=+'+
+syn region vRawString start=+r"+ end=+"+
+syn region vRawString start=+r'+ end=+'+
hi def link vString String
hi def link vRawString String
@@ -173,9 +173,15 @@ syn region vParen start='(' end=')' transparent
" Integers
syn match vDecimalInt "\<\d\+\([Ee]\d\+\)\?\>"
syn match vOctalInt "\<0o\o\+\>"
+syn match vHexInt "\<0x\x\+\>"
+syn match vBinaryInt "\<0b[01]\+\>"
+syn match vSnakeInt "\<[0-9_]\+\>"
hi def link vDecimalInt Integer
hi def link vOctalInt Integer
+hi def link vHexInt Integer
+hi def link vBinaryInt Integer
+hi def link vSnakeInt Integer
hi def link Integer Number
" Floating point
diff --git a/syntax/xpm.vim b/syntax/xpm.vim
index dfc326b0..9b5563fc 100644
--- a/syntax/xpm.vim
+++ b/syntax/xpm.vim
@@ -5,19 +5,22 @@ endif
" Vim syntax file
" Language: X Pixmap
" Maintainer: Ronald Schild <rs@scutum.de>
-" Last Change: 2017 Feb 01
+" Last Change: 2021 Oct 04
" Version: 5.4n.1
" Jemma Nelson added termguicolors support
+" Dominique Pellé fixed spelling support
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
+syn spell notoplevel
+
syn keyword xpmType char
syn keyword xpmStorageClass static
syn keyword xpmTodo TODO FIXME XXX contained
-syn region xpmComment start="/\*" end="\*/" contains=xpmTodo
+syn region xpmComment start="/\*" end="\*/" contains=xpmTodo,@Spell
syn region xpmPixelString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@xpmColors
if has("gui_running") || has("termguicolors") && &termguicolors
diff --git a/syntax/yats/es6-array.vim b/syntax/yats/es6-array.vim
index 23009b43..26db1c7a 100644
--- a/syntax/yats/es6-array.vim
+++ b/syntax/yats/es6-array.vim
@@ -8,11 +8,11 @@ syntax keyword typescriptArrayStaticMethod contained from isArray of nextgroup=t
if exists("did_typescript_hilink") | HiLink typescriptArrayStaticMethod Keyword
endif
syntax keyword typescriptArrayMethod contained concat copyWithin entries every fill nextgroup=typescriptFuncCallArg
-syntax keyword typescriptArrayMethod contained filter find findIndex forEach indexOf nextgroup=typescriptFuncCallArg
-syntax keyword typescriptArrayMethod contained includes join keys lastIndexOf map nextgroup=typescriptFuncCallArg
+syntax keyword typescriptArrayMethod contained filter find findIndex flat flatMap forEach nextgroup=typescriptFuncCallArg
+syntax keyword typescriptArrayMethod contained includes indexOf join keys lastIndexOf map nextgroup=typescriptFuncCallArg
syntax keyword typescriptArrayMethod contained pop push reduce reduceRight reverse nextgroup=typescriptFuncCallArg
syntax keyword typescriptArrayMethod contained shift slice some sort splice toLocaleString nextgroup=typescriptFuncCallArg
-syntax keyword typescriptArrayMethod contained toSource toString unshift nextgroup=typescriptFuncCallArg
+syntax keyword typescriptArrayMethod contained toSource toString unshift values nextgroup=typescriptFuncCallArg
syntax cluster props add=typescriptArrayMethod
if exists("did_typescript_hilink") | HiLink typescriptArrayMethod Keyword
endif
diff --git a/syntax/yats/es6-object.vim b/syntax/yats/es6-object.vim
index 40dc5806..cd94fc98 100644
--- a/syntax/yats/es6-object.vim
+++ b/syntax/yats/es6-object.vim
@@ -5,7 +5,7 @@ endif
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Object nextgroup=typescriptGlobalObjectDot,typescriptFuncCallArg
syntax match typescriptGlobalObjectDot /\./ contained nextgroup=typescriptObjectStaticMethod,typescriptProp
syntax keyword typescriptObjectStaticMethod contained create defineProperties defineProperty nextgroup=typescriptFuncCallArg
-syntax keyword typescriptObjectStaticMethod contained entries freeze getOwnPropertyDescriptors nextgroup=typescriptFuncCallArg
+syntax keyword typescriptObjectStaticMethod contained entries freeze fromEntries getOwnPropertyDescriptors nextgroup=typescriptFuncCallArg
syntax keyword typescriptObjectStaticMethod contained getOwnPropertyDescriptor getOwnPropertyNames nextgroup=typescriptFuncCallArg
syntax keyword typescriptObjectStaticMethod contained getOwnPropertySymbols getPrototypeOf nextgroup=typescriptFuncCallArg
syntax keyword typescriptObjectStaticMethod contained is isExtensible isFrozen isSealed nextgroup=typescriptFuncCallArg
diff --git a/syntax/yats/es6-promise.vim b/syntax/yats/es6-promise.vim
index 3c9d0ffc..8c52ec66 100644
--- a/syntax/yats/es6-promise.vim
+++ b/syntax/yats/es6-promise.vim
@@ -4,7 +4,7 @@ endif
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Promise nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg
syntax match typescriptGlobalPromiseDot /\./ contained nextgroup=typescriptPromiseStaticMethod,typescriptProp
-syntax keyword typescriptPromiseStaticMethod contained resolve reject all race nextgroup=typescriptFuncCallArg
+syntax keyword typescriptPromiseStaticMethod contained all allSettled any race reject resolve nextgroup=typescriptFuncCallArg
if exists("did_typescript_hilink") | HiLink typescriptPromiseStaticMethod Keyword
endif
syntax keyword typescriptPromiseMethod contained then catch finally nextgroup=typescriptFuncCallArg
diff --git a/syntax/yats/es6-regexp.vim b/syntax/yats/es6-regexp.vim
index 34e0a207..0875aa6e 100644
--- a/syntax/yats/es6-regexp.vim
+++ b/syntax/yats/es6-regexp.vim
@@ -7,7 +7,7 @@ syntax match typescriptGlobalRegExpDot /\./ contained nextgroup=typescriptRegE
syntax keyword typescriptRegExpStaticProp contained lastIndex
if exists("did_typescript_hilink") | HiLink typescriptRegExpStaticProp Keyword
endif
-syntax keyword typescriptRegExpProp contained global ignoreCase multiline source sticky
+syntax keyword typescriptRegExpProp contained dotAll global ignoreCase multiline source sticky
syntax cluster props add=typescriptRegExpProp
if exists("did_typescript_hilink") | HiLink typescriptRegExpProp Keyword
endif
diff --git a/syntax/yats/es6-string.vim b/syntax/yats/es6-string.vim
index c9954121..a1da20ce 100644
--- a/syntax/yats/es6-string.vim
+++ b/syntax/yats/es6-string.vim
@@ -9,12 +9,12 @@ if exists("did_typescript_hilink") | HiLink typescriptStringStaticMethod Keyword
endif
syntax keyword typescriptStringMethod contained anchor charAt charCodeAt codePointAt nextgroup=typescriptFuncCallArg
syntax keyword typescriptStringMethod contained concat endsWith includes indexOf lastIndexOf nextgroup=typescriptFuncCallArg
-syntax keyword typescriptStringMethod contained link localeCompare match normalize nextgroup=typescriptFuncCallArg
-syntax keyword typescriptStringMethod contained padStart padEnd repeat replace search nextgroup=typescriptFuncCallArg
+syntax keyword typescriptStringMethod contained link localeCompare match matchAll normalize nextgroup=typescriptFuncCallArg
+syntax keyword typescriptStringMethod contained padStart padEnd repeat replace replaceAll search nextgroup=typescriptFuncCallArg
syntax keyword typescriptStringMethod contained slice split startsWith substr substring nextgroup=typescriptFuncCallArg
syntax keyword typescriptStringMethod contained toLocaleLowerCase toLocaleUpperCase nextgroup=typescriptFuncCallArg
syntax keyword typescriptStringMethod contained toLowerCase toString toUpperCase trim nextgroup=typescriptFuncCallArg
-syntax keyword typescriptStringMethod contained valueOf nextgroup=typescriptFuncCallArg
+syntax keyword typescriptStringMethod contained trimEnd trimStart valueOf nextgroup=typescriptFuncCallArg
syntax cluster props add=typescriptStringMethod
if exists("did_typescript_hilink") | HiLink typescriptStringMethod Keyword
endif
diff --git a/syntax/yats/es6-symbol.vim b/syntax/yats/es6-symbol.vim
index f90fd7b2..10bc5c76 100644
--- a/syntax/yats/es6-symbol.vim
+++ b/syntax/yats/es6-symbol.vim
@@ -4,7 +4,7 @@ endif
syntax keyword typescriptGlobal containedin=typescriptIdentifierName Symbol nextgroup=typescriptGlobalSymbolDot,typescriptFuncCallArg
syntax match typescriptGlobalSymbolDot /\./ contained nextgroup=typescriptSymbolStaticProp,typescriptSymbolStaticMethod,typescriptProp
-syntax keyword typescriptSymbolStaticProp contained length iterator match replace
+syntax keyword typescriptSymbolStaticProp contained description length iterator match matchAll replace
syntax keyword typescriptSymbolStaticProp contained search split hasInstance isConcatSpreadable
syntax keyword typescriptSymbolStaticProp contained unscopables species toPrimitive
syntax keyword typescriptSymbolStaticProp contained toStringTag
diff --git a/syntax/zig.vim b/syntax/zig.vim
index 67dad597..a8d2ddd7 100644
--- a/syntax/zig.vim
+++ b/syntax/zig.vim
@@ -132,9 +132,12 @@ let s:zig_syntax_keywords = {
\ , "@newStackCall"
\ , "@asyncCall"
\ , "@intToPtr"
+ \ , "@maximum"
+ \ , "@minimum"
\ , "@memcpy"
\ , "@memset"
\ , "@mod"
+ \ , "@mulAdd"
\ , "@mulWithOverflow"
\ , "@splat"
\ , "@src"
@@ -251,11 +254,11 @@ highlight default link zigCommentLineDoc Comment
highlight default link zigDummyVariable Comment
highlight default link zigTodo Todo
highlight default link zigString String
-highlight default link zigStringDelimiter Delimiter
+highlight default link zigStringDelimiter String
highlight default link zigMultilineString String
highlight default link zigMultilineStringContent String
highlight default link zigMultilineStringPrefix String
-highlight default link zigMultilineStringDelimiter Ignore
+highlight default link zigMultilineStringDelimiter Delimiter
highlight default link zigCharacterInvalid Error
highlight default link zigCharacterInvalidUnicode zigCharacterInvalid
highlight default link zigCharacter Character
diff --git a/tests/filetypes.vim b/tests/filetypes.vim
index 0d72c727..6f7c5f05 100644
--- a/tests/filetypes.vim
+++ b/tests/filetypes.vim
@@ -131,6 +131,15 @@ call TestFiletype('jq')
call TestFiletype('json5')
call TestFiletype('json')
call TestFiletype('jsonnet')
+call TestFiletype('rc')
+call TestFiletype('perl')
+call TestFiletype('pod')
+call TestFiletype('mason')
+call TestFiletype('tt2')
+call TestFiletype('tt2html')
+call TestFiletype('xs')
+call TestFiletype('raku')
+call TestFiletype('tads')
call TestFiletype('jst')
call TestFiletype('julia')
call TestFiletype('kotlin')
@@ -165,13 +174,6 @@ call TestFiletype('ocpbuildroot')
call TestFiletype('sexplib')
call TestFiletype('octave')
call TestFiletype('opencl')
-call TestFiletype('rc')
-call TestFiletype('perl')
-call TestFiletype('pod')
-call TestFiletype('mason')
-call TestFiletype('tt2')
-call TestFiletype('tt2html')
-call TestFiletype('xs')
call TestFiletype('sql')
call TestFiletype('cql')
call TestFiletype('php')
@@ -194,7 +196,6 @@ call TestFiletype('r')
call TestFiletype('rhelp')
call TestFiletype('racket')
call TestFiletype('ragel')
-call TestFiletype('raku')
call TestFiletype('raml')
call TestFiletype('razor')
call TestFiletype('reason')
@@ -256,7 +257,6 @@ call TestFiletype('dosini')
call TestFiletype('odin')
call TestFiletype('bzl')
call TestFiletype('prolog')
-call TestFiletype('tads')
call TestFiletype('gitignore')
call TestFiletype('sql')
call TestFiletype('b')