Mercurial > vim
changeset 12968:45987b1b77dc
Update runtime files
commit https://github.com/vim/vim/commit/2f0584910c0ea93966dfa7b3b0272dfb16ea6f91
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Nov 30 20:27:52 2017 +0100
Update runtime files
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 30 Nov 2017 20:30:08 +0100 |
parents | ec2cd6ab9411 |
children | a9f6a874b64f |
files | runtime/doc/Makefile runtime/doc/eval.txt runtime/doc/if_cscop.txt runtime/doc/if_perl.txt runtime/doc/insert.txt runtime/doc/mbyte.txt runtime/doc/options.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version8.txt runtime/filetype.vim runtime/ftplugin/zsh.vim runtime/syntax/cf.vim runtime/syntax/zsh.vim |
diffstat | 14 files changed, 1044 insertions(+), 463 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -375,6 +375,10 @@ tags.ref tags.html: tags perlhtml: tags $(DOCS) ./vim2html.pl tags $(DOCS) +# Check URLs in the help with "curl". +test_urls: + vim -S test_urls.vim + clean: -rm doctags *.html tags.ref
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 8.0. Last change: 2017 Nov 19 +*eval.txt* For Vim version 8.0. Last change: 2017 Nov 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4662,11 +4662,11 @@ getqflist([{what}]) *getqflist()* following string items are supported in {what}: context get the context stored with |setqflist()| efm errorformat to use when parsing "lines". If - not present, then the 'erroformat' option + not present, then the 'errorformat' option value is used. id get information for the quickfix list with |quickfix-ID|; zero means the id for the - current list or the list specifed by "nr" + current list or the list specified by "nr" idx index of the current entry in the list items quickfix list entries lines use 'errorformat' to extract items from a list @@ -7695,8 +7695,9 @@ submatch({nr} [, {list}]) *submatch()* When substitute() is used recursively only the submatches in the current (deepest) call can be obtained. - Example: > + Examples: > :s/\d\+/\=submatch(0) + 1/ + :echo substitute(text, '\d\+', '\=submatch(0) + 1', '') < This finds the first number in the line and adds one to it. A line break is included as a newline character.
--- a/runtime/doc/if_cscop.txt +++ b/runtime/doc/if_cscop.txt @@ -1,4 +1,4 @@ -*if_cscop.txt* For Vim version 8.0. Last change: 2017 Jun 14 +*if_cscop.txt* For Vim version 8.0. Last change: 2017 Nov 23 VIM REFERENCE MANUAL by Andy Kahn @@ -468,36 +468,18 @@ license or OS distribution), then you ca http://cscope.sourceforge.net/ This is released by SCO under the BSD license. -If you want a newer version of cscope, you will probably have to buy it. -According to the (old) nvi documentation: - - You can buy version 13.3 source with an unrestricted license - for $400 from AT&T Software Solutions by calling +1-800-462-8146. - -Also you can download cscope 13.x and mlcscope 14.x (multi-lingual cscope -which supports C, C++, Java, lex, yacc, breakpoint listing, Ingres, and SDL) -from World-Wide Exptools Open Source packages page: - http://www.bell-labs.com/project/wwexptools/packages.html - In Solaris 2.x, if you have the C compiler license, you will also have cscope. Both are usually located under /opt/SUNWspro/bin -SGI developers can also get it. Search for Cscope on this page: - http://freeware.sgi.com/index-by-alpha.html - https://toolbox.sgi.com/toolbox/utilities/cscope/ -The second one is for those who have a password for the SGI toolbox. - There is source to an older version of a cscope clone (called "cs") available on the net. Due to various reasons, this is not supported with Vim. The cscope interface/support for Vim was originally written by Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny -bit of code) was adapted from the cscope interface in nvi. Please report -any problems, suggestions, patches, et al., you have for the usage of -cscope within Vim to him. +bit of code) was adapted from the cscope interface in nvi. *cscope-win32* -For a cscope version for Win32 see: - http://code.google.com/p/cscope-win32/ +For a cscope version for Win32 see (seems abandonded): + https://code.google.com/archive/p/cscope-win32/ Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact him if you have Win32-specific issues.
--- a/runtime/doc/if_perl.txt +++ b/runtime/doc/if_perl.txt @@ -1,4 +1,4 @@ -*if_perl.txt* For Vim version 8.0. Last change: 2015 Oct 16 +*if_perl.txt* For Vim version 8.0. Last change: 2017 Nov 24 VIM REFERENCE MANUAL by Sven Verdoolaege @@ -112,7 +112,7 @@ possible. Here is an overview of the functions that are available to Perl: > :perl VIM::Msg("Text") # displays a message - :perl VIM::Msg("Error", "ErrorMsg") # displays an error message + :perl VIM::Msg("Wrong!", "ErrorMsg") # displays an error message :perl VIM::Msg("remark", "Comment") # displays a highlighted message :perl VIM::SetOption("ai") # sets a vim option :perl $nbuf = VIM::Buffers() # returns the number of buffers
--- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1,4 +1,4 @@ -*insert.txt* For Vim version 8.0. Last change: 2017 May 30 +*insert.txt* For Vim version 8.0. Last change: 2017 Nov 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1296,7 +1296,8 @@ it here: http://ctags.sourceforge.net/ For version 5.5.4 you should add a patch that adds the "typename:" field: ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch A compiled .exe for MS-Windows can be found at: - http://georgevreilly.com/vim/ctags.html + http://ctags.sourceforge.net/ + https://github.com/universal-ctags/ctags-win32 If you want to complete system functions you can do something like this. Use ctags to generate a tags file for all the system header files: >
--- a/runtime/doc/mbyte.txt +++ b/runtime/doc/mbyte.txt @@ -1,4 +1,4 @@ -*mbyte.txt* For Vim version 8.0. Last change: 2016 Jul 21 +*mbyte.txt* For Vim version 8.0. Last change: 2017 Nov 30 VIM REFERENCE MANUAL by Bram Moolenaar et al. @@ -1257,8 +1257,8 @@ Combining forms: ============================================================================== 10. Input with imactivatefunc() *mbyte-func* -Vim has |imactivatefunc()| and |imstatusfunc()|. This is useful to -activate/deativate input method from Vim in any way, also with an external +Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to +activate/deativate the input method from Vim in any way, also with an external command. For example, fcitx provide fcitx-remote command: > set iminsert=2
--- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 8.0. Last change: 2017 Nov 18 +*options.txt* For Vim version 8.0. Last change: 2017 Nov 26 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4464,8 +4464,8 @@ A jump table for the options with a shor match may not be found. This is to avoid that Vim hangs while you are typing the pattern. The highlighting can be set with the 'i' flag in 'highlight'. - When 'hlsearch' is on, all matched strings are highlighted too while typing - a search command. See also: 'hlsearch'. + When 'hlsearch' is on, all matched strings are highlighted too while + typing a search command. See also: 'hlsearch'. If you don't want turn 'hlsearch' on, but want to highlight all matches while searching, you can turn on and off 'hlsearch' with autocmd. Example: > @@ -8255,7 +8255,7 @@ A jump table for the options with a shor number, more intelligent detection process runs. The "xterm2" value will be set if the xterm version is reported to be from 95 to 276. The "sgr" value will be set if the xterm version is - 277 or highter and when Vim detects Mac Terminal.app or Iterm2. + 277 or higher and when Vim detects Mac Terminal.app or iTerm2. If you do not want 'ttymouse' to be set to "xterm2" or "sgr" automatically, set t_RV to an empty string: > :set t_RV=
--- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -7346,6 +7346,7 @@ mbyte-encoding mbyte.txt /*mbyte-encodin mbyte-first mbyte.txt /*mbyte-first* mbyte-fonts-MSwin mbyte.txt /*mbyte-fonts-MSwin* mbyte-fonts-X11 mbyte.txt /*mbyte-fonts-X11* +mbyte-func mbyte.txt /*mbyte-func* mbyte-keymap mbyte.txt /*mbyte-keymap* mbyte-locale mbyte.txt /*mbyte-locale* mbyte-options mbyte.txt /*mbyte-options*
--- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 8.0. Last change: 2017 Nov 21 +*todo.txt* For Vim version 8.0. Last change: 2017 Nov 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -35,6 +35,13 @@ entered there will not be repeated below *known-bugs* -------------------- Known bugs and current work ----------------------- +Motif testgui: +From test_options.vim: +Found errors in Test_set_values(): +Caught exception in Test_set_values(): Vim(set):E596: Invalid font(s): guifont=fixedsys @ /home/mool/vim/vim80/src/testdir/opt_test.vim, line 1153 + +WinBar: balloon shows up for next line + No maintainer for Vietnamese translations. No maintainer for Simplified Chinese translations. @@ -150,8 +157,17 @@ Compiler warnings (geeknik, 2017 Oct 26) - signed integer overflow in nfa_regatom() (#2251) - undefined left shift in get_string_tv() (#2250) -Patch to use imactivatefunc() also without +xim feature. (Yasuhiro Matsumoto, -2017 Nov 19, #2349) +patch for: fix SHIFT-Insert on Windows command prompt (Yasuhiro Matsumoto, +#2381) + +Patch for profile log truncating halfway a character. (ichizok, 2017 Nov 28, +#2385) + +WinBar: Maximizing window causes window size to be wrong. (Lifepillar, 2017 +Nov 29, #2356) + +CTRL-A does not work with empty line. (Alex, #2387) +Patch by Hirohito Higashi, 2017 Nov 29. 'hlsearch' shows empty matches, which means highlighting everything. Don't do that. For "foo\|" or "\v" @@ -171,12 +187,6 @@ With foldmethod=syntax and nofoldenable Using 'wildignore' also applies to literally entered file name. Also with :drop (remote commands). -Race condition between stat() and open() in write_viminfo(). Use open() in the -loop and try another name instead of using a temp file. (Simon Ruderich) -The first one, when viminfo is new, should just fail if it creating with -O_EXCL fails. -Also use umask instead of mch_fopen() after vim_tempname(). - "gvim --remote" from a directory with non-word characters changes the current directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266) Also see #1689. @@ -184,6 +194,9 @@ Also see #1689. ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737) Lemonboy can reproduce (2017 Jun 5) +Patch to fix E806. (Dominique, 2017 Nov 22, #2368) +Kazunobu Kuriyama: caused by XtSetLanguageProc(). + Invalid range error when using BufWinLeave for closing terminal. (Gabriel Barta, 2017 Nov 15, #2339) @@ -208,7 +221,7 @@ 13, on issue #2320) Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011 May 24) Update May 26. -Now in patch by Lemonboy, #2333 (who is Lemonboy?) +Now in patch by Lemonboy, #2333 Default install on MS-Windows should source defaults.vim. Ask whether to use Windows or Vim key behavior?
--- a/runtime/doc/version8.txt +++ b/runtime/doc/version8.txt @@ -1,4 +1,4 @@ -*version8.txt* For Vim version 8.0. Last change: 2017 Apr 23 +*version8.txt* For Vim version 8.0. Last change: 2017 Nov 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -15582,7 +15582,7 @@ Files: src/json.c, src/testdir/test Patch 8.0.0181 Problem: When 'cursorbind' and 'cursorcolumn' are both on, the column - highlignt in non-current windows is wrong. + highlight in non-current windows is wrong. Solution: Add validate_cursor(). (Masanori Misono, closes #1372) Files: src/move.c
--- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2017 Nov 21 +" Last Change: 2017 Nov 23 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -1878,8 +1878,8 @@ au BufNewFile,BufRead *.yy,*.yxx,*.y++ " Yacc or racc au BufNewFile,BufRead *.y call dist#ft#FTy() -" Yaml -au BufNewFile,BufRead *.yaml,*.yml setf yaml +" Yaml or Raml +au BufNewFile,BufRead *.yaml,*.yml,*.raml setf yaml " yum conf (close enough to dosini) au BufNewFile,BufRead */etc/yum.conf setf dosini
--- a/runtime/ftplugin/zsh.vim +++ b/runtime/ftplugin/zsh.vim @@ -2,7 +2,7 @@ " Language: Zsh shell script " Maintainer: Christian Brabandt <cb@256bit.org> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2015-05-29 +" Latest Revision: 2017-11-22 " License: Vim (see :h license) " Repository: https://github.com/chrisbra/vim-zsh @@ -18,9 +18,7 @@ let b:undo_ftplugin = "setl com< cms< fo setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql -let b:match_words = - \ &matchpairs - \ . ',\<if\>:\<elif\>:\<else\>:\<fi\>' +let b:match_words = ',\<if\>:\<elif\>:\<else\>:\<fi\>' \ . ',\<case\>:^\s*([^)]*):\<esac\>' \ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>' let b:match_skip = 's:comment\|string\|heredoc\|subst'
--- a/runtime/syntax/cf.vim +++ b/runtime/syntax/cf.vim @@ -1,437 +1,1018 @@ " Vim syntax file -" Language: CFML -" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com) -" Last Change: 2010-03-02 -" Filenames: *.cfc *.cfm -" Version: Adobe ColdFusion 9 -" Usage: This file contains both syntax definitions -" and a list of known builtin tags, functions and keywords. -" Refs - -" http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WS8f0cc78011fffa71866534d11cdad96e4e-8000.html -" http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17324-8000.html -" TODO: -" Support the limited array literal and struct literal syntax in CF8+. -" Highlight namespaced tags fom cfimport. -" Complete CF9+ cfscript support. -" Railo support. -" Options: -" d_noinclude_html - set to prevent HTML highlighting. Use this if you are not working on HTML. +" +" Language: CFML (ColdFusion) +" Author: Ernst M. van der Linden <ernst.vanderlinden@ernestoz.com> +" License: The MIT License (MIT) +" +" Maintainer: Ernst M. van der Linden <ernst.vanderlinden@ernestoz.com> +" URL: https://github.com/ernstvanderlinden/vim-coldfusion +" Last Change: 2017 Nov 28 +" +" Filenames: *.cfc *.cfm -" Quit if a syntax file is already loaded. +" Quit when a syntax file was already loaded. if exists("b:current_syntax") finish endif -if exists("d_noinclude_html") - " Define alternatives to the HTML syntax file. +" Using line continuation here. +let s:cpo_save=&cpo +set cpo-=C + +sy sync fromstart +" 20171126: disabled as we have fast computers now. +"sy sync maxlines=2000 +sy case ignore + +" INCLUDES {{{ +sy include @sqlSyntax $VIMRUNTIME/syntax/sql.vim +" 20161010: Disabled include html highlighting as it contains huge keywords +" regex, so it will have impact on performance. Use own simple SGML tag +" coloring instead. +"runtime! syntax/html.vim +" / INCLUDES }}} + +" NUMBER {{{ +sy match cfmlNumber + \ "\v<\d+>" +" / NUMBER }}} + +" EQUAL SIGN {{{ +sy match cfmlEqualSign + \ "\v\=" +" / EQUAL SIGN }}} + +" BOOLEAN {{{ +sy match cfmlBoolean + \ "\v<(true|false)>" +" / BOOLEAN }}} + +" HASH SURROUNDED {{{ +sy region cfmlHashSurround + \ keepend + \ oneline + \ start="#" + \ end="#" + \ skip="##" + \ contains= + \@cfmlOperator, + \@cfmlPunctuation, + \cfmlBoolean, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlNumber +" / HASH SURROUNDED }}} + +" OPERATOR {{{ - " Copied from html.vim - the rules for matching a CF tag match those for HTML/SGML. - " CFML syntax is more permissive when it comes to superfluous <> chars. - syn region htmlString contained start=+"+ end=+"+ contains=@htmlPreproc - syn region htmlString contained start=+'+ end=+'+ contains=@htmlPreproc - syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=@htmlPreproc - " Hacked htmlTag so that it only matches cf tags and not random <> chars. - syn region htmlEndTag start=+</cf+ end=+>+ contains=htmlTagN,htmlTagError - syn region htmlTag start=+<\s*cf[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,@htmlPreproc,@htmlArgCluster - syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,@htmlTagNameCluster - syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,@htmlTagNameCluster - syn match htmlTagError contained "[^>]<"ms=s+1 -else - " Use all the stuff from the HTML syntax file. - " This means eg HTML comments are highlighted as comments, even if they include cf tags. - runtime! syntax/html.vim -endif +" OPERATOR - ARITHMETIC {{{ +" +7 -7 +" ++i --i +" i++ i-- +" + - * / % +" += -= *= /= %= +" ^ mod +sy match cfmlArithmeticOperator + \ "\v + \(\+|-)\ze\d + \|(\+\+|--)\ze\w + \|\w\zs(\+\+|--) + \|(\s( + \(\+|-|\*|\/|\%){1}\={,1} + \|\^ + \|mod + \)\s) + \" +" / OPERATOR - ARITHMETIC }}} -syn sync fromstart -syn sync maxlines=200 -syn case ignore +" OPERATOR - BOOLEAN {{{ +" not and or xor eqv imp +" ! && || +sy match cfmlBooleanOperator + \ "\v\s + \(not|and|or|xor|eqv|imp + \|\!|\&\&|\|\| + \)(\s|\)) + \|\s\!\ze\w + \" +" / OPERATOR - BOOLEAN }}} + +" OPERATOR - DECISION {{{ +"is|equal|eq +"is not|not equal|neq +"contains|does not contain +"greater than|gt +"less than|lt +"greater than or equal to|gte|ge +"less than or equal to|lte|le +"==|!=|>|<|>=|<= +sy match cfmlDecisionOperator + \ "\v\s + \(is|equal|eq + \|is not|not equal|neq + \|contains|does not contain + \|greater than|gt + \|less than|lt + \|greater than or equal to|gte|ge + \|less than or equal to|lte|le + \|(!|\<|\>|\=){1}\= + \|\< + \|\> + \)\s" +" / OPERATOR - DECISION }}} + +" OPERATOR - STRING {{{ +" & +" &= +sy match cfmlStringOperator + \ "\v\s\&\={,1}\s" +" / OPERATOR - STRING }}} -" Scopes and keywords. -syn keyword cfScope contained cgi cffile cookie request caller this thistag -syn keyword cfScope contained cfcatch variables application server session client form url local -syn keyword cfScope contained arguments super cfhttp attributes error -syn keyword cfBool contained yes no true false +" OPERATOR - TERNARY {{{ +" ? : +sy match cfmlTernaryOperator + \ "\v\s + \\?|\: + \\s" +" / OPERATOR - TERNARY }}} + +sy cluster cfmlOperator + \ contains= + \cfmlArithmeticOperator, + \cfmlBooleanOperator, + \cfmlDecisionOperator, + \cfmlStringOperator, + \cfmlTernaryOperator +" / OPERATOR }}} + +" PARENTHESIS {{{ +sy cluster cfmlParenthesisRegionContains + \ contains= + \@cfmlAttribute, + \@cfmlComment, + \@cfmlFlowStatement, + \@cfmlOperator, + \@cfmlPunctuation, + \cfmlBoolean, + \cfmlBrace, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlNumber, + \cfmlStorageKeyword, + \cfmlStorageType -" Operator strings. -" ColdFusion <=7: -syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains -syn match cfOperatorMatch contained "+" -syn match cfOperatorMatch contained "\-" -syn match cfOperatorMatch contained "[\*\/\\\^\&][\+\-\*\/\\\^\&]\@!" -syn match cfOperatorMatch contained "\<\(not\_s\+\)\?equal\>" -syn match cfOperatorMatch contained "\<does\_s\+not\_s\+contain\>" -syn match cfOperatorMatch contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>" -" ColdFusion 8: -syn keyword cfOperator contained imp -syn match cfOperatorMatch contained "[?%:!]" -syn match cfOperatorMatch contained "[\+\-\*\/\&]=" -syn match cfOperatorMatch contained "++" -syn match cfOperatorMatch contained "--" -syn match cfOperatorMatch contained "&&" -syn match cfOperatorMatch contained "||" +sy region cfmlParenthesisRegion1 + \ extend + \ matchgroup=cfmlParenthesis1 + \ transparent + \ start=/(/ + \ end=/)/ + \ contains= + \cfmlParenthesisRegion2, + \@cfmlParenthesisRegionContains +sy region cfmlParenthesisRegion2 + \ matchgroup=cfmlParenthesis2 + \ transparent + \ start=/(/ + \ end=/)/ + \ contains= + \cfmlParenthesisRegion3, + \@cfmlParenthesisRegionContains +sy region cfmlParenthesisRegion3 + \ matchgroup=cfmlParenthesis3 + \ transparent + \ start=/(/ + \ end=/)/ + \ contains= + \cfmlParenthesisRegion1, + \@cfmlParenthesisRegionContains +sy cluster cfmlParenthesisRegion + \ contains= + \cfmlParenthesisRegion1, + \cfmlParenthesisRegion2, + \cfmlParenthesisRegion3 +" / PARENTHESIS }}} + +" BRACE {{{ +sy match cfmlBrace + \ "{\|}" -syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch +sy region cfmlBraceRegion + \ extend + \ fold + \ keepend + \ transparent + \ start="{" + \ end="}" +" / BRACE }}} + +" PUNCTUATION {{{ + +" PUNCTUATION - BRACKET {{{ +sy match cfmlBracket + \ "\(\[\|\]\)" + \ contained +" / PUNCTUATION - BRACKET }}} + +" PUNCTUATION - CHAR {{{ +sy match cfmlComma "," +sy match cfmlDot "\." +sy match cfmlSemiColon ";" + +" / PUNCTUATION - CHAR }}} -" Custom tags called with the <cf_xxx> syntax. -syn match cfCustomTagName contained "\<cf_[a-zA-Z0-9_]\+\>" -" (TODO match namespaced tags imported using cfimport, similarly.) +" PUNCTUATION - QUOTE {{{ +sy region cfmlSingleQuotedValue + \ matchgroup=cfmlSingleQuote + \ start=/'/ + \ skip=/''/ + \ end=/'/ + \ contains= + \cfmlHashSurround + +sy region cfmlDoubleQuotedValue + \ matchgroup=cfmlDoubleQuote + \ start=/"/ + \ skip=/""/ + \ end=/"/ + \ contains= + \cfmlHashSurround + +sy cluster cfmlQuotedValue + \ contains= + \cfmlDoubleQuotedValue, + \cfmlSingleQuotedValue + +sy cluster cfmlQuote + \ contains= + \cfmlDoubleQuote, + \cfmlSingleQuote +" / PUNCTUATION - QUOTE }}} -" Tag names. -" ColdFusion <=7: -syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate -syn keyword cfTagName contained cfbreak cfcache cfcalendar cfcase cfcatch -syn keyword cfTagName contained cfchart cfchartdata cfchartseries cfcol cfcollection -syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory -syn keyword cfTagName contained cfdocument cfdocumentitem cfdocumentsection cfdump cfelse -syn keyword cfTagName contained cfelseif cferror cfexecute cfexit cffile cfflush cfform -syn keyword cfTagName contained cfformgroup cfformitem cfftp cffunction -syn keyword cfTagName contained cfgrid cfgridcolumn cfgridrow cfgridupdate cfheader -syn keyword cfTagName contained cfhtmlhead cfhttp cfhttpparam cfif cfimport -syn keyword cfTagName contained cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument -syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout -syn keyword cfTagName contained cfloop cfmail cfmailparam cfmailpart cfmodule -syn keyword cfTagName contained cfNTauthenticate cfobject cfobjectcache cfoutput cfparam -syn keyword cfTagName contained cfpop cfprocessingdirective cfprocparam cfprocresult -syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport -syn keyword cfTagName contained cfreportparam cfrethrow cfreturn cfsavecontent cfschedule -syn keyword cfTagName contained cfscript cfsearch cfselect cfservletparam cfset -syn keyword cfTagName contained cfsetting cfsilent cfslider cfstoredproc cfswitch cftable -syn keyword cfTagName contained cftextarea cftextinput cfthrow cftimer cftrace cftransaction -syn keyword cfTagName contained cftree cftreeitem cftry cfupdate cfwddx cfxml -" ColdFusion 8: -syn keyword cfTagName contained cfajaximport cfajaxproxy cfdbinfo cfdiv cfexchangecalendar -syn keyword cfTagName contained cfexchangeconnection cfexchangecontact cfexchangefilter -syn keyword cfTagName contained cfexchangemail cfexchangetask cffeed -syn keyword cfTagName contained cfinterface cflayout cflayoutarea cfmenu cfmenuitem -syn keyword cfTagName contained cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod -syn keyword cfTagName contained cfpresentation cfpresentationslide cfpresenter cfprint -syn keyword cfTagName contained cfsprydataset cfthread cftooltip cfwindow cfzip cfzipparam -" ColdFusion 9: -syn keyword cfTagName contained cfcontinue cffileupload cffinally -syn keyword cfTagName contained cfimage cfimap -syn keyword cfTagName contained cfmap cfmapitem cfmediaplayer cfmessagebox -syn keyword cfTagName contained cfprocparam cfprogressbar -syn keyword cfTagName contained cfsharepoint cfspreadsheet +sy cluster cfmlPunctuation + \ contains= + \@cfmlQuote, + \@cfmlQuotedValue, + \cfmlBracket, + \cfmlComma, + \cfmlDot, + \cfmlSemiColon + +" / PUNCTUATION }}} + +" TAG START AND END {{{ +" tag start +" <cf...> +" s^^ e +sy region cfmlTagStart + \ keepend + \ transparent + \ start="\c<cf_*" + \ end=">" +\ contains= + \@cfmlAttribute, + \@cfmlComment, + \@cfmlOperator, + \@cfmlParenthesisRegion, + \@cfmlPunctuation, + \@cfmlQuote, + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlBoolean, + \cfmlBrace, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlNumber, + \cfmlStorageKeyword, + \cfmlStorageType, + \cfmlTagBracket, + \cfmlTagName + +" tag end +" </cf...> +" s^^^ e +sy match cfmlTagEnd + \ transparent + \ "\c</cf_*[^>]*>" + \ contains= + \cfmlTagBracket, + \cfmlTagName + +" tag bracket +" </...> +" ^^ ^ +sy match cfmlTagBracket + \ contained + \ "\(<\|>\|\/\)" + +" tag name +" <cf...> +" s^^^e +sy match cfmlTagName + \ contained + \ "\v<\/*\zs\ccf\w*" +" / TAG START AND END }}} + +" ATTRIBUTE NAME AND VALUE {{{ +sy match cfmlAttrName + \ contained + \ "\v(var\s)@<!\w+\ze\s*\=([^\=])+" + +sy match cfmlAttrValue + \ contained + \ "\v(\=\"*)\zs\s*\w*" + +sy match cfmlAttrEqualSign + \ contained + \ "\v\=" + +sy cluster cfmlAttribute +\ contains= + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlAttrName, + \cfmlAttrValue, + \cfmlCoreKeyword, + \cfmlCoreScope +" / ATTRIBUTE NAME AND VALUE }}} + +" TAG REGION AND FOLDING {{{ + +" CFCOMPONENT REGION AND FOLD {{{ +" <cfcomponent +" s^^^^^^^^^^^ +" </cfcomponent> +" ^^^^^^^^^^^^^e +sy region cfmlComponentTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfcomponent" + \ end="\c</cfcomponent>" + +" / CFCOMPONENT REGION AND FOLD }}} + +" CFFUNCTION REGION AND FOLD {{{ +" <cffunction +" s^^^^^^^^^^ +" </cffunction> +" ^^^^^^^^^^^^e +sy region cfmlFunctionTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cffunction" + \ end="\c</cffunction>" +" / CFFUNCTION REGION AND FOLD }}} -" Tag attributes. -" XXX Not updated for ColdFusion 8/9. -" These are becoming a headache to maintain, so might be removed. -syn keyword cfArg contained abort accept access accessible action addnewline addtoken -syn keyword cfArg contained agentname align appendkey appletsource application -syn keyword cfArg contained applicationtimeout applicationtoken archive -syn keyword cfArg contained argumentcollection arguments asciiextensionlist -syn keyword cfArg contained attachmentpath attributecollection attributes autowidth -syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname -syn keyword cfArg contained blockfactor body bold border branch cachedafter cachedwithin -syn keyword cfArg contained casesensitive category categorytree cc cfsqltype charset -syn keyword cfArg contained chartheight chartwidth checked class clientmanagement -syn keyword cfArg contained clientstorage codebase colheaderalign colheaderbold -syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders -syn keyword cfArg contained colheadertextcolor collection colorlist colspacing columns -syn keyword cfArg contained completepath component condition connection contentid -syn keyword cfArg contained context contextbytes contexthighlightbegin -syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria -syn keyword cfArg contained custom1 custom2 custom3 custom4 data dataalign -syn keyword cfArg contained databackgroundcolor datacollection datasource daynames -syn keyword cfArg contained dbname dbserver dbtype dbvarname debug default delete -syn keyword cfArg contained deletebutton deletefile delimiter delimiters description -syn keyword cfArg contained destination detail directory disabled display displayname -syn keyword cfArg contained disposition dn domain editable enablecab enablecfoutputonly -syn keyword cfArg contained enabled encoded encryption enctype enddate endrange endtime -syn keyword cfArg contained entry errorcode exception existing expand expires expireurl -syn keyword cfArg contained expression extendedinfo extends extensions external -syn keyword cfArg contained failifexists failto file filefield filename filter -syn keyword cfArg contained firstdayofweek firstrowasheaders fixnewline font fontbold -syn keyword cfArg contained fontembed fontitalic fontsize foregroundcolor format -syn keyword cfArg contained formfields formula from generateuniquefilenames getasbinary -syn keyword cfArg contained grid griddataalign gridlines groovecolor group -syn keyword cfArg contained groupcasesensitive header headeralign headerbold headerfont -syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor -syn keyword cfArg contained height highlighthref hint href hrefkey hscroll hspace html -syn keyword cfArg contained htmltable id idletimeout img imgopen imgstyle index inline -syn keyword cfArg contained input insert insertbutton interval isolation italic item -syn keyword cfArg contained itemcolumn key keyonly label labelformat language list -syn keyword cfArg contained listgroups locale localfile log loginstorage lookandfeel -syn keyword cfArg contained mailerid mailto marginbottom marginleft marginright -syn keyword cfArg contained margintop markersize markerstyle mask max maxlength maxrows -syn keyword cfArg contained message messagenumber method mimeattach mimetype min mode -syn keyword cfArg contained modifytype monthnames multipart multiple name nameconflict -syn keyword cfArg contained namespace new newdirectory notsupported null numberformat -syn keyword cfArg contained object omit onblur onchange onclick onerror onfocus -syn keyword cfArg contained onkeydown onkeyup onload onmousedown onmouseup onreset -syn keyword cfArg contained onsubmit onvalidate operation orderby orientation output -syn keyword cfArg contained outputfile overwrite ownerpassword pageencoding pageheight -syn keyword cfArg contained pagetype pagewidth paintstyle param_1 param_2 param_3 -syn keyword cfArg contained param_4 param_5 param_6 param_7 param_8 param_9 parent -syn keyword cfArg contained parrent passive passthrough password path pattern -syn keyword cfArg contained permissions picturebar pieslicestyle port porttypename -syn keyword cfArg contained prefix preloader preservedata previouscriteria procedure -syn keyword cfArg contained protocol provider providerdsn proxybypass proxypassword -syn keyword cfArg contained proxyport proxyserver proxyuser publish query queryasroot -syn keyword cfArg contained queryposition range rebind recurse redirect referral -syn keyword cfArg contained refreshlabel remotefile replyto report requesttimeout -syn keyword cfArg contained required reset resoleurl resolveurl result resultset -syn keyword cfArg contained retrycount returnasbinary returncode returntype -syn keyword cfArg contained returnvariable roles rotated rowheaderalign rowheaderbold -syn keyword cfArg contained rowheaderfont rowheaderfontsize rowheaderitalic rowheaders -syn keyword cfArg contained rowheadertextcolor rowheaderwidth rowheight scale scalefrom -syn keyword cfArg contained scaleto scope scriptprotect scriptsrc secure securitycontext -syn keyword cfArg contained select selectcolor selected selecteddate selectedindex -syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement -syn keyword cfArg contained server serviceport serviceportname sessionmanagement -syn keyword cfArg contained sessiontimeout setclientcookies setcookie setdomaincookies -syn keyword cfArg contained show3d showborder showdebugoutput showerror showlegend -syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort -syn keyword cfArg contained sortascendingbutton sortcontrol sortdescendingbutton -syn keyword cfArg contained sortxaxis source spoolenable sql src srcfile start startdate -syn keyword cfArg contained startrange startrow starttime status statuscode statustext -syn keyword cfArg contained step stoponerror style subject suggestions -syn keyword cfArg contained suppresswhitespace tablename tableowner tablequalifier -syn keyword cfArg contained taglib target task template text textcolor textqualifier -syn keyword cfArg contained throwonerror throwonerror throwonfailure throwontimeout -syn keyword cfArg contained timeout timespan tipbgcolor tipstyle title to tooltip -syn keyword cfArg contained toplevelvariable transfermode type uid unit url urlpath -syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate -syn keyword cfArg contained validateat value valuecolumn values valuesdelimiter -syn keyword cfArg contained valuesdisplay var variable vertical visible vscroll vspace -syn keyword cfArg contained webservice width wmode wraptext wsdlfile xaxistitle -syn keyword cfArg contained xaxistype xoffset yaxistitle yaxistype yoffset +" CFIF REGION AND FOLD {{{ +" <cfif +" s^^^^ +" </cfif> +" ^^^^^^e +sy region cfmlIfTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfif" + \ end="\c</cfif>" +" / CFIF REGION AND FOLD }}} + +" CFLOOP REGION AND FOLD {{{ +" <cfloop +" s^^^^^^ +" </cfloop> +" ^^^^^^^^e +sy region cfmlLoopTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfloop" + \ end="\c</cfloop>" +" / CFLOOP REGION AND FOLD }}} + +" CFOUTPUT REGION AND FOLD {{{ +" <cfoutput +" s^^^^^^^^ +" </cfoutput> +" ^^^^^^^^^^e +sy region cfmlOutputTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfoutput" + \ end="\c</cfoutput>" +" / CFOUTPUT REGION AND FOLD }}} + +" CFQUERY REGION AND FOLD {{{ +" <cfquery +" s^^^^^^^ +" </cfquery> +" ^^^^^^^^^e + "\@cfmlSqlStatement, +sy region cfmlQueryTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfquery" + \ end="\c</cfquery>" + \ contains= + \@cfmlSqlStatement, + \cfmlTagStart, + \cfmlTagEnd, + \cfmlTagComment +" / CFQUERY REGION AND FOLD }}} + +" SAVECONTENT REGION AND FOLD {{{ +" <savecontent +" s^^^^^^^^^^^ +" </savecontent> +" ^^^^^^^^^^^^^e +sy region cfmlSavecontentTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfsavecontent" + \ end="\c</cfsavecontent>" +" / SAVECONTENT REGION AND FOLD }}} + +" CFSCRIPT REGION AND FOLD {{{ +" <cfscript> +" s^^^^^^^^^ +" </cfscript> +" ^^^^^^^^^^e +"\cfmlCustomScope, +sy region cfmlScriptTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfscript>" + \ end="\c</cfscript>" + \ contains= + \@cfmlComment, + \@cfmlFlowStatement, + \cfmlHashSurround, + \@cfmlOperator, + \@cfmlParenthesisRegion, + \@cfmlPunctuation, + \cfmlBoolean, + \cfmlBrace, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionDefinition, + \cfmlFunctionName, + \cfmlNumber, + \cfmlOddFunction, + \cfmlStorageKeyword, + \cfmlTagEnd, + \cfmlTagStart +" / CFSCRIPT REGION AND FOLD }}} + +" CFSWITCH REGION AND FOLD {{{ +" <cfswitch +" s^^^^^^^^ +" </cfswitch> +" ^^^^^^^^^^e +sy region cfmlSwitchTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cfswitch" + \ end="\c</cfswitch>" +" / CFSWITCH REGION AND FOLD }}} + +" CFTRANSACTION REGION AND FOLD {{{ +" <cftransaction +" s^^^^^^^^^^^^^ +" </cftransaction> +" ^^^^^^^^^^^^^^^e +sy region cfmlTransactionTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cftransaction" + \ end="\c</cftransaction>" +" / CFTRANSACTION REGION AND FOLD }}} -" Functions. -" ColdFusion <=7: -syn keyword cfFunctionName contained ACos ASin Abs AddSOAPRequestHeader AddSOAPResponseHeader -syn keyword cfFunctionName contained ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ArrayInsertAt -syn keyword cfFunctionName contained ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArrayNew -syn keyword cfFunctionName contained ArrayPrepend ArrayResize ArraySet ArraySort ArraySum -syn keyword cfFunctionName contained ArraySwap ArrayToList Asc Atn AuthenticatedContext -syn keyword cfFunctionName contained AuthenticatedUser BinaryDecode BinaryEncode BitAnd -syn keyword cfFunctionName contained BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN -syn keyword cfFunctionName contained BitSHRN BitXor CJustify Ceiling CharsetDecode CharsetEncode -syn keyword cfFunctionName contained Chr Compare CompareNoCase Cos CreateDate CreateDateTime -syn keyword cfFunctionName contained CreateODBCDate CreateODBCDateTime CreateODBCTime -syn keyword cfFunctionName contained CreateObject CreateTime CreateTimeSpan CreateUUID DE DateAdd -syn keyword cfFunctionName contained DateCompare DateConvert DateDiff DateFormat DatePart Day -syn keyword cfFunctionName contained DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear -syn keyword cfFunctionName contained DecimalFormat DecrementValue Decrypt DecryptBinary -syn keyword cfFunctionName contained DeleteClientVariable DirectoryExists DollarFormat Duplicate -syn keyword cfFunctionName contained Encrypt EncryptBinary Evaluate Exp ExpandPath FileExists -syn keyword cfFunctionName contained Find FindNoCase FindOneOf FirstDayOfMonth Fix FormatBaseN -syn keyword cfFunctionName contained GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList -syn keyword cfFunctionName contained GetBaseTemplatePath GetClientVariablesList GetContextRoot -syn keyword cfFunctionName contained GetCurrentTemplatePath GetDirectoryFromPath GetEncoding -syn keyword cfFunctionName contained GetException GetFileFromPath GetFunctionList -syn keyword cfFunctionName contained GetGatewayHelper GetHttpRequestData GetHttpTimeString -syn keyword cfFunctionName contained GetLocalHostIP -syn keyword cfFunctionName contained GetLocale GetLocaleDisplayName GetMetaData GetMetricData -syn keyword cfFunctionName contained GetPageContext GetProfileSections GetProfileString -syn keyword cfFunctionName contained GetSOAPRequest GetSOAPRequestHeader GetSOAPResponse -syn keyword cfFunctionName contained GetSOAPResponseHeader GetTempDirectory GetTempFile -syn keyword cfFunctionName contained GetTickCount GetTimeZoneInfo GetToken -syn keyword cfFunctionName contained HTMLCodeFormat HTMLEditFormat Hash Hour IIf IncrementValue -syn keyword cfFunctionName contained InputBaseN Insert Int IsArray IsAuthenticated IsAuthorized -syn keyword cfFunctionName contained IsBinary IsBoolean IsCustomFunction IsDate IsDebugMode -syn keyword cfFunctionName contained IsDefined -syn keyword cfFunctionName contained IsLeapYear IsLocalHost IsNumeric -syn keyword cfFunctionName contained IsNumericDate IsObject IsProtected IsQuery IsSOAPRequest -syn keyword cfFunctionName contained IsSimpleValue IsStruct IsUserInRole IsValid IsWDDX IsXML -syn keyword cfFunctionName contained IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot -syn keyword cfFunctionName contained JSStringFormat JavaCast LCase LJustify LSCurrencyFormat -syn keyword cfFunctionName contained LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate -syn keyword cfFunctionName contained LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime -syn keyword cfFunctionName contained LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Left -syn keyword cfFunctionName contained Len ListAppend ListChangeDelims ListContains -syn keyword cfFunctionName contained ListContainsNoCase ListDeleteAt ListFind ListFindNoCase -syn keyword cfFunctionName contained ListFirst ListGetAt ListInsertAt ListLast ListLen -syn keyword cfFunctionName contained ListPrepend ListQualify ListRest ListSetAt ListSort -syn keyword cfFunctionName contained ListToArray ListValueCount ListValueCountNoCase Log Log10 -syn keyword cfFunctionName contained Max Mid Min Minute Month MonthAsString Now NumberFormat -syn keyword cfFunctionName contained ParagraphFormat ParseDateTime Pi -syn keyword cfFunctionName contained PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow -syn keyword cfFunctionName contained QueryNew QuerySetCell QuotedValueList REFind REFindNoCase -syn keyword cfFunctionName contained REReplace REReplaceNoCase RJustify RTrim Rand RandRange -syn keyword cfFunctionName contained Randomize ReleaseComObject RemoveChars RepeatString Replace -syn keyword cfFunctionName contained ReplaceList ReplaceNoCase Reverse Right Round Second -syn keyword cfFunctionName contained SendGatewayMessage SetEncoding SetLocale SetProfileString -syn keyword cfFunctionName contained SetVariable Sgn Sin SpanExcluding SpanIncluding Sqr StripCR -syn keyword cfFunctionName contained StructAppend StructClear StructCopy StructCount StructDelete -syn keyword cfFunctionName contained StructFind StructFindKey StructFindValue StructGet -syn keyword cfFunctionName contained StructInsert StructIsEmpty StructKeyArray StructKeyExists -syn keyword cfFunctionName contained StructKeyList StructNew StructSort StructUpdate Tan -syn keyword cfFunctionName contained TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase -syn keyword cfFunctionName contained URLDecode URLEncodedFormat URLSessionFormat Val ValueList -syn keyword cfFunctionName contained Week Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat -syn keyword cfFunctionName contained XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform -syn keyword cfFunctionName contained XmlValidate Year YesNoFormat -" ColdFusion 8: -syn keyword cfFunctionName contained AjaxLink AjaxOnLoad ArrayIsDefined BinaryDecode BinaryEncode CharsetDecode CharsetEncode -syn keyword cfFunctionName contained DecryptBinary DeserializeJSON DotNetToCFType EncryptBinary FileClose FileCopy FileDelete -syn keyword cfFunctionName contained FileIsEOF FileMove FileOpen FileRead FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute -syn keyword cfFunctionName contained FileSetLastModified FileWrite GenerateSecretKey GetGatewayHelper GetAuthUser GetComponentMetaData -syn keyword cfFunctionName contained GetContextRoot GetEncoding GetFileInfo GetLocaleDisplayName GetLocalHostIP GetMetaData -syn keyword cfFunctionName contained GetPageContext GetPrinterInfo GetProfileSections GetReadableImageFormats GetSOAPRequest -syn keyword cfFunctionName contained GetSOAPRequestHeader GetSOAPResponse GetSOAPResponseHeader GetUserRoles GetWriteableImageFormats -syn keyword cfFunctionName contained ImageAddBorder ImageBlur ImageClearRect ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect -syn keyword cfFunctionName contained ImageDrawCubicCurve ImageDrawPoint ImageDrawLine ImageDrawLines ImageDrawOval -syn keyword cfFunctionName contained ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob -syn keyword cfFunctionName contained ImageGetBufferedImage ImageGetEXIFMetadata ImageGetEXIFTag ImageGetHeight ImageGetIPTCMetadata -syn keyword cfFunctionName contained ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay -syn keyword cfFunctionName contained ImagePaste ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit -" ColdFusion 9: -syn keyword cfFunctionName contained ApplicationStop ArrayContains ArrayDelete ArrayFind ArrayFindNoCase IsSpreadsheetFile -syn keyword cfFunctionName contained IsSpreadsheetObject FileSkipBytes Location ObjectLoad SpreadsheetFormatColumn -syn keyword cfFunctionName contained SpreadsheetFormatColumns SpreadsheetFormatRow SpreadsheetFormatRows SpreadsheetGetCellComment -syn keyword cfFunctionName contained CacheGetAllIds CacheGetMetadata CacheGetProperties CacheGet CachePut ObjectSave ORMClearSession -syn keyword cfFunctionName contained ORMCloseSession ORMEvictQueries ORMEvictCollection SpreadsheetGetCellFormula SpreadsheetGetCellValue -syn keyword cfFunctionName contained SpreadsheetInfo SpreadsheetMergeCells SpreadsheetNew CacheRemove CacheSetProperties DirectoryCreate -syn keyword cfFunctionName contained DirectoryDelete DirectoryExists ORMEvictEntity ORMEvictQueries ORMExecuteQuery ORMFlush -syn keyword cfFunctionName contained ORMGetSession SpreadsheetRead SpreadsheetReadBinary SpreadsheetSetActiveSheetNumber -syn keyword cfFunctionName contained SpreadsheetSetCellComment SpreadsheetSetCellFormula DirectoryList DirectoryRename EntityDelete -syn keyword cfFunctionName contained EntityLoad EntityLoadByExample ORMGetSessionFactory ORMReload ObjectEquals SpreadsheetAddColumn -syn keyword cfFunctionName contained SpreadsheetAddFreezePane SpreadsheetSetCellValue SpreadsheetSetActiveSheet SpreadsheetSetFooter -syn keyword cfFunctionName contained SpreadsheetSetHeader SpreadsheetSetColumnWidth EntityLoadByPK EntityMerge EntityNew EntityReload -syn keyword cfFunctionName contained EntitySave SpreadsheetAddImage SpreadsheetAddInfo SpreadsheetAddRow SpreadsheetAddRows -syn keyword cfFunctionName contained SpreadsheetAddSplitPane SpreadsheetShiftColumns SpreadsheetShiftRows SpreadsheetSetRowHeight -syn keyword cfFunctionName contained SpreadsheetWrite Trace FileDelete FileSeek FileWriteLine GetFunctionCalledName GetVFSMetaData IsIPv6 -syn keyword cfFunctionName contained IsNull SpreadsheetCreateSheet SpreadsheetDeleteColumn SpreadsheetDeleteColumns SpreadsheetDeleteRow -syn keyword cfFunctionName contained SpreadsheetDeleteRows SpreadsheetFormatCell TransactionCommit TransactionRollback -syn keyword cfFunctionName contained TransactionSetSavePoint ThreadTerminate ThreadJoin Throw Writedump Writelog +" CUSTOM TAG REGION AND FOLD {{{ +" <cf_...> +" s^^^ ^ +" </cf_...> +" ^^^^^ e +sy region cfmlCustomTagRegion + \ fold + \ keepend + \ transparent + \ start="\c<cf_[^>]*>" + \ end="\c</cf_[^>]*>" +" / CUSTOM TAG REGION AND FOLD }}} + +" / TAG REGION AND FOLDING }}} + +" COMMENT {{{ + +" COMMENT BLOCK {{{ +" /*...*/ +" s^ ^e +sy region cfmlCommentBlock + \ keepend + \ start="/\*" + \ end="\*/" + \ contains= + \cfmlMetaData +" / COMMENT BLOCK }}} + +" COMMENT LINE {{{ +" //... +" s^ +sy match cfmlCommentLine + \ "\/\/.*" +" / COMMENT LINE }}} + +sy cluster cfmlComment + \ contains= + \cfmlCommentBlock, + \cfmlCommentLine +" / COMMENT }}} + +" TAG COMMENT {{{ +" <!---...---> +" s^^^^ ^^^e +sy region cfmlTagComment + \ keepend + \ start="<!---" + \ end="--->" + \ contains= + \cfmlTagComment +" / TAG COMMENT }}} + +" FLOW STATEMENT {{{ +" BRANCH FLOW KEYWORD {{{ +sy keyword cfmlBranchFlowKeyword + \ break + \ continue + \ return + +" / BRANCH KEYWORD }}} + +" DECISION FLOW KEYWORD {{{ +sy keyword cfmlDecisionFlowKeyword + \ case + \ defaultcase + \ else + \ if + \ switch + +" / DECISION FLOW KEYWORD }}} + +" LOOP FLOW KEYWORD {{{ +sy keyword cfmlLoopFlowKeyword + \ do + \ for + \ in + \ while + +" / LOOP FLOW KEYWORD }}} + +" TRY FLOW KEYWORD {{{ +sy keyword cfmlTryFlowKeyword + \ catch + \ finally + \ rethrow + \ throw + \ try + +" / TRY FLOW KEYWORD }}} + +sy cluster cfmlFlowStatement + \ contains= + \cfmlBranchFlowKeyword, + \cfmlDecisionFlowKeyword, + \cfmlLoopFlowKeyword, + \cfmlTryFlowKeyword + +" / FLOW STATEMENT }}} + +" STORAGE KEYWORD {{{ +sy keyword cfmlStorageKeyword + \ var +" / STORAGE KEYWORD }}} -" Deprecated or obsoleted tags and functions. -syn keyword cfDeprecatedTag contained cfauthenticate cfimpersonate cfgraph cfgraphdata -syn keyword cfDeprecatedTag contained cfservlet cfservletparam cftextinput -syn keyword cfDeprecatedTag contained cfinternaladminsecurity cfnewinternaladminsecurity -syn keyword cfDeprecatedFunction contained GetK2ServerDocCount GetK2ServerDocCountLimit GetTemplatePath -syn keyword cfDeprecatedFunction contained IsK2ServerABroker IsK2ServerDocCountExceeded IsK2ServerOnline -syn keyword cfDeprecatedFunction contained ParameterExists AuthenticatedContext AuthenticatedUser -syn keyword cfDeprecatedFunction contained isAuthenticated isAuthorized isProtected +" STORAGE TYPE {{{ +sy match cfmlStorageType + \ contained + \ "\v< + \(any + \|array + \|binary + \|boolean + \|date + \|numeric + \|query + \|string + \|struct + \|uuid + \|void + \|xml + \){1}\ze(\s*\=)@!" +" / STORAGE TYPE }}} + +" CORE KEYWORD {{{ +sy match cfmlCoreKeyword + \ "\v< + \(new + \|required + \)\ze\s" +" / CORE KEYWORD }}} + +" CORE SCOPE {{{ +sy match cfmlCoreScope + \ "\v< + \(application + \|arguments + \|attributes + \|caller + \|cfcatch + \|cffile + \|cfhttp + \|cgi + \|client + \|cookie + \|form + \|local + \|request + \|server + \|session + \|super + \|this + \|thisTag + \|thread + \|variables + \|url + \){1}\ze(,|\.|\[|\)|\s)" +" / CORE SCOPE }}} -" Add to the HTML clusters. -syn cluster htmlTagNameCluster add=cfTagName,cfCustomTagName,cfDeprecatedTag -syn cluster htmlArgCluster add=cfArg,cfHashRegion,cfScope -syn cluster htmlPreproc add=cfHashRegion +" SQL STATEMENT {{{ +sy cluster cfmlSqlStatement + \ contains= + \@cfmlParenthesisRegion, + \@cfmlQuote, + \@cfmlQuotedValue, + \@sqlSyntax, + \cfmlBoolean, + \cfmlDot, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlHashSurround, + \cfmlNumber +" / SQL STATEMENT }}} + +" TAG IN SCRIPT {{{ +sy match cfmlTagNameInScript + \ "\vcf_*\w+\s*\ze\(" +" / TAG IN SCRIPT }}} + +" METADATA {{{ +sy region cfmlMetaData + \ contained + \ keepend + \ start="@\w\+" + \ end="$" + \ contains= + \cfmlMetaDataName + +sy match cfmlMetaDataName + \ contained + \ "@\w\+" +" / METADATA }}} -syn cluster cfExpressionCluster contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool,cfComment +" COMPONENT DEFINITION {{{ +sy region cfmlComponentDefinition + \ start="component" + \ end="{"me=e-1 + \ contains= + \@cfmlAttribute, + \cfmlComponentKeyword + +sy match cfmlComponentKeyword + \ contained + \ "\v<component>" +" / COMPONENT DEFINITION }}} + +" INTERFACE DEFINITION {{{ +sy match cfmlInterfaceDefinition + \ "interface\s.*{"me=e-1 + \ contains= + \cfmlInterfaceKeyword -" Evaluation; skip strings ( this helps with cases like nested IIf() ) -" containedin to add to the TOP of cfOutputRegion. -syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contained containedin=cfOutputRegion contains=@cfExpressionCluster,cfScriptParenError +sy match cfmlInterfaceKeyword + \ contained + \ "\v<interface>" +" / INTERFACE DEFINITION }}} + +" PROPERTY {{{ +sy region cfmlProperty + \ transparent + \ start="\v<property>" + \ end=";"me=e-1 + \ contains= + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlAttrName, + \cfmlAttrValue, + \cfmlPropertyKeyword + +sy match cfmlPropertyKeyword + \ contained + \ "\v<property>" +" / PROPERTY }}} -" Hashmarks are significant inside cfoutput tags. -" cfoutput tags may be nested indefinitely. -syn region cfOutputRegion matchgroup=NONE transparent start=+<cfoutput>+ end=+</cfoutput>+ contains=TOP +" FUNCTION DEFINITION {{{ +sy match cfmlFunctionDefinition + \ "\v + \(<(public|private|package)\s){,1} + \(< + \(any + \|array + \|binary + \|boolean + \|date + \|numeric + \|query + \|string + \|struct + \|uuid + \|void + \|xml + \)\s){,1} + \<function\s\w+\s*\("me=e-1 + \ contains= + \cfmlFunctionKeyword, + \cfmlFunctionModifier, + \cfmlFunctionName, + \cfmlFunctionReturnType + +" FUNCTION KEYWORD {{{ +sy match cfmlFunctionKeyword + \ contained + \ "\v<function>" +" / FUNCTION KEYWORD }}} -" <cfset>, <cfif>, <cfelseif>, <cfreturn> are analogous to hashmarks (implicit -" evaluation) and have 'var' -syn region cfSetRegion start="<cfset\>" start="<cfreturn\>" start="<cfelseif\>" start="<cfif\>" end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptStatement -syn region cfSetLHSRegion contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end="." keepend contains=cfTagName,htmlTag -syn match cfSetTagEnd contained '>' +" FUNCTION MODIFIER {{{ +sy match cfmlFunctionModifier + \ contained + \ "\v< + \(public + \|private + \|package + \)>" +" / FUNCTION MODIFIER }}} -" CF comments: similar to SGML comments, but can be nested. -syn region cfComment start='<!---' end='--->' contains=cfCommentTodo,cfComment -syn keyword cfCommentTodo contained TODO FIXME XXX TBD WTF +" FUNCTION RETURN TYPE {{{ +sy match cfmlFunctionReturnType + \ contained + \ "\v + \(any + \|array + \|binary + \|boolean + \|date + \|numeric + \|query + \|string + \|struct + \|uuid + \|void + \|xml + \)" +" / FUNCTION RETURN TYPE }}} + +" FUNCTION NAME {{{ +" specific regex for core functions decreases performance +" so use the same highlighting for both function types +sy match cfmlFunctionName + \ "\v<(cf|if|elseif|throw)@!\w+\s*\ze\(" +" / FUNCTION NAME }}} -" CFscript -" TODO better support for new component/function def syntax -" TODO better support for 'new' -" TODO highlight metadata (@ ...) inside comments. -syn match cfScriptLineComment contained "\/\/.*$" contains=cfCommentTodo -syn region cfScriptComment contained start="/\*" end="\*/" contains=cfCommentTodo -syn match cfScriptBraces contained "[{}]" -syn keyword cfScriptStatement contained return var -" in CF, quotes are escaped by doubling -syn region cfScriptStringD contained start=+"+ skip=+\\\\\|""+ end=+"+ extend contains=@htmlPreproc,cfHashRegion -syn region cfScriptStringS contained start=+'+ skip=+\\\\\|''+ end=+'+ extend contains=@htmlPreproc,cfHashRegion -syn match cfScriptNumber contained "\<\d\+\>" -syn keyword cfScriptConditional contained if else -syn keyword cfScriptRepeat contained while for in -syn keyword cfScriptBranch contained break switch case default try catch continue finally -syn keyword cfScriptKeyword contained function -" argumentCollection is a special argument to function calls -syn keyword cfScriptSpecial contained argumentcollection -" ColdFusion 9: -syn keyword cfScriptStatement contained new import -" CFscript equivalents of some tags -syn keyword cfScriptKeyword contained abort component exit import include -syn keyword cfScriptKeyword contained interface param pageencoding property rethrow thread transaction -" function/component syntax -syn keyword cfScriptSpecial contained required extends +" / FUNCTION DEFINITION }}} + +" ODD FUNCTION {{{ +sy region cfmlOddFunction + \ transparent + \ start="\v< + \(abort + \|exit + \|import + \|include + \|lock + \|pageencoding + \|param + \|savecontent + \|thread + \|transaction + \){1}" + \ end="\v(\{|;)"me=e-1 + \ contains= + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlAttrName, + \cfmlAttrValue, + \cfmlCoreKeyword, + \cfmlOddFunctionKeyword, + \cfmlCoreScope +" ODD FUNCTION KEYWORD {{{ +sy match cfmlOddFunctionKeyword + \ contained + \ "\v< + \(abort + \|exit + \|import + \|include + \|lock + \|pageencoding + \|param + \|savecontent + \|thread + \|transaction + \)\ze(\s|$|;)" +" / ODD FUNCTION KEYWORD }}} -syn cluster cfScriptCluster contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfDeprecatedFunction,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,@cfExpressionCluster,cfScriptStatement,cfScriptSpecial,cfScriptKeyword +" / ODD FUNCTION }}} + +" CUSTOM {{{ -" Errors caused by wrong parenthesis; skip strings -syn region cfScriptParen contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster -syn match cfScrParenError contained +)+ +" CUSTOM KEYWORD {{{ +sy match cfmlCustomKeyword + \ contained + \ "\v< + \(customKeyword1 + \|customKeyword2 + \|customKeyword3 + \)>" +" / CUSTOM KEYWORD }}} -syn region cfscriptBlock matchgroup=NONE start="<cfscript>" end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError -syn region cfscriptTag contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag - -" CFML -syn cluster cfmlCluster contains=cfComment,@htmlTagNameCluster,@htmlPreproc,cfSetRegion,cfscriptBlock,cfOutputRegion +" CUSTOM SCOPE {{{ +sy match cfmlCustomScope + \ contained + \ "\v< + \(prc + \|rc + \|event + \|(\w+Service) + \){1}\ze(\.|\[)" +" / CUSTOM SCOPE }}} -" cfquery = sql syntax -if exists("b:current_syntax") - unlet b:current_syntax -endif -syn include @cfSql $VIMRUNTIME/syntax/sql.vim -unlet b:current_syntax -syn region cfqueryTag contained start=+<cfquery+ end=+>+ keepend contains=cfTagName,htmlTag -syn region cfSqlregion start=+<cfquery\_[^>]*>+ keepend end=+</cfquery>+me=s-1 matchgroup=NONE contains=@cfSql,cfComment,@htmlTagNameCluster,cfqueryTag,cfHashRegion - -" Define the highlighting. +" / CUSTOM }}} -if exists("d_noinclude_html") - " The default html-style highlighting copied from html.vim. - hi def link htmlTag Function - hi def link htmlEndTag Identifier - hi def link htmlArg Type - hi def link htmlTagName htmlStatement - hi def link htmlValue String - hi def link htmlPreProc PreProc - hi def link htmlString String - hi def link htmlStatement Statement - hi def link htmlValue String - hi def link htmlTagError htmlError - hi def link htmlError Error -endif +" SGML TAG START AND END {{{ +" SGML tag start +" <...> +" s^^^e +sy region cfmlSGMLTagStart + \ keepend + \ transparent + \ start="\v(\<cf)@!\zs\<\w+" + \ end=">" + \ contains= + \@cfmlAttribute, + \@cfmlComment, + \@cfmlOperator, + \@cfmlParenthesisRegion, + \@cfmlPunctuation, + \@cfmlQuote, + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlBoolean, + \cfmlBrace, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlNumber, + \cfmlStorageKeyword, + \cfmlStorageType, + \cfmlTagBracket, + \cfmlSGMLTagName + +" SGML tag end +" </...> +" s^^^^e +sy match cfmlSGMLTagEnd + \ transparent + \ "\v(\<\/cf)@!\zs\<\/\w+\>" + \ contains= + \cfmlTagBracket, + \cfmlSGMLTagName + +" SGML tag name +" <...> +" s^^^e +sy match cfmlSGMLTagName + \ contained + \ "\v(\<\/*)\zs\w+" + +" / SGML TAG START AND END }}} + +" HIGHLIGHTING {{{ -hi def link cfTagName Statement -hi def link cfCustomTagName Statement -hi def link cfArg Type -hi def link cfFunctionName Function -hi def link cfHashRegion PreProc -hi def link cfComment Comment -hi def link cfCommentTodo Todo -hi def link cfOperator Operator -hi def link cfOperatorMatch Operator -hi def link cfScope Title -hi def link cfBool Constant - -hi def link cfscriptBlock Special -hi def link cfscriptTag htmlTag -hi def link cfSetRegion PreProc -hi def link cfSetLHSRegion htmlTag -hi def link cfSetTagEnd htmlTag +hi link cfmlNumber Number +hi link cfmlBoolean Boolean +hi link cfmlEqualSign Keyword +" HASH SURROUND +hi link cfmlHash PreProc +hi link cfmlHashSurround PreProc +" OPERATOR +hi link cfmlArithmeticOperator Function +hi link cfmlBooleanOperator Function +hi link cfmlDecisionOperator Function +hi link cfmlStringOperator Function +hi link cfmlTernaryOperator Function +" PARENTHESIS +hi link cfmlParenthesis1 Statement +hi link cfmlParenthesis2 String +hi link cfmlParenthesis3 Delimiter +" BRACE +hi link cfmlBrace PreProc +" PUNCTUATION - BRACKET +hi link cfmlBracket Statement +" PUNCTUATION - CHAR +hi link cfmlComma Comment +hi link cfmlDot Comment +hi link cfmlSemiColon Comment +" PUNCTUATION - QUOTE +hi link cfmlDoubleQuote String +hi link cfmlDoubleQuotedValue String +hi link cfmlSingleQuote String +hi link cfmlSingleQuotedValue String +" TAG START AND END +hi link cfmlTagName Function +hi link cfmlTagBracket Comment +" ATTRIBUTE NAME AND VALUE +hi link cfmlAttrName Type +hi link cfmlAttrValue Special +" COMMENT +hi link cfmlCommentBlock Comment +hi link cfmlCommentLine Comment +hi link cfmlTagComment Comment +" FLOW STATEMENT +hi link cfmlDecisionFlowKeyword Conditional +hi link cfmlLoopFlowKeyword Repeat +hi link cfmlTryFlowKeyword Exception +hi link cfmlBranchFlowKeyword Keyword +" STORAGE KEYWORD +hi link cfmlStorageKeyword Keyword +" STORAGE TYPE +hi link cfmlStorageType Keyword +" CORE KEYWORD +hi link cfmlCoreKeyword PreProc +" CORE SCOPE +hi link cfmlCoreScope Keyword +" TAG IN SCRIPT +hi link cfmlTagNameInScript Function +" METADATA +" meta data value = cfmlMetaData +hi link cfmlMetaData String +hi link cfmlMetaDataName Type +" COMPONENT DEFINITION +hi link cfmlComponentKeyword Keyword +" INTERFACE DEFINITION +hi link cfmlInterfaceKeyword Keyword +" PROPERTY +hi link cfmlPropertyKeyword Keyword +" FUNCTION DEFINITION +hi link cfmlFunctionKeyword Keyword +hi link cfmlFunctionModifier Keyword +hi link cfmlFunctionReturnType Keyword +hi link cfmlFunctionName Function +" ODD FUNCTION +hi link cfmlOddFunctionKeyword Function +" CUSTOM +hi link cfmlCustomKeyword Keyword +hi link cfmlCustomScope Structure +" SGML TAG +hi link cfmlSGMLTagName Ignore -hi def link cfScriptLineComment Comment -hi def link cfScriptComment Comment -hi def link cfScriptStringS String -hi def link cfScriptStringD String -hi def link cfScriptNumber cfScriptValue -hi def link cfScriptConditional Conditional -hi def link cfScriptRepeat Repeat -hi def link cfScriptBranch Conditional -hi def link cfScriptSpecial Type -hi def link cfScriptStatement Statement -hi def link cfScriptBraces Function -hi def link cfScriptKeyword Function -hi def link cfScriptError Error -hi def link cfDeprecatedTag Error -hi def link cfDeprecatedFunction Error -hi def link cfScrParenError cfScriptError +" / HIGHLIGHTING }}} -hi def link cfqueryTag htmlTag +let b:current_syntax = "cfml" -let b:current_syntax = "cf" - -" vim: nowrap sw=2 ts=8 noet +let &cpo = s:cpo_save +unlet s:cpo_save
--- a/runtime/syntax/zsh.vim +++ b/runtime/syntax/zsh.vim @@ -2,7 +2,7 @@ " Language: Zsh shell script " Maintainer: Christian Brabandt <cb@256bit.org> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2017-07-11 +" Latest Revision: 2017-11-22 " License: Vim (see :h license) " Repository: https://github.com/chrisbra/vim-zsh @@ -324,9 +324,9 @@ syn match zshOption / \ \%(\%(\<no_\?\)\?vi\>\)\| \ \%(\%(\<no_\?\)\?warncreateglobal\>\)\|\%(\%(no_\?\)\?warn_create_global\>\)\| \ \%(\%(\<no_\?\)\?xtrace\>\)\| - \ \%(\%(\<no_\?\)\?zle\>\)/ nextgroup=zshOption skipwhite contained + \ \%(\%(\<no_\?\)\?zle\>\)/ nextgroup=zshOption,zshComment skipwhite contained -syn keyword zshTypes float integer local typeset declare private +syn keyword zshTypes float integer local typeset declare private readonly " XXX: this may be too much " syn match zshSwitches '\s\zs--\=[a-zA-Z0-9-]\+'