# HG changeset patch # User Christian Brabandt # Date 1512070208 -3600 # Node ID 45987b1b77dc34152e42ec0b7bb296e1a1b0fac9 # Parent ec2cd6ab9411a63c0e7fffa15b7cc1aa356a7566 Update runtime files commit https://github.com/vim/vim/commit/2f0584910c0ea93966dfa7b3b0272dfb16ea6f91 Author: Bram Moolenaar Date: Thu Nov 30 20:27:52 2017 +0100 Update runtime files diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile --- 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 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- 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. diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt --- 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 . 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 . Contact him if you have Win32-specific issues. diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt --- 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 diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt --- 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: > diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt --- 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 diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- 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= diff --git a/runtime/doc/tags b/runtime/doc/tags --- 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* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- 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? diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt --- 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 diff --git a/runtime/filetype.vim b/runtime/filetype.vim --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar -" 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 diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim --- a/runtime/ftplugin/zsh.vim +++ b/runtime/ftplugin/zsh.vim @@ -2,7 +2,7 @@ " Language: Zsh shell script " Maintainer: Christian Brabandt " Previous Maintainer: Nikolai Weibull -" 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 - \ . ',\:\:\:\' +let b:match_words = ',\:\:\:\' \ . ',\:^\s*([^)]*):\' \ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\' let b:match_skip = 's:comment\|string\|heredoc\|subst' diff --git a/runtime/syntax/cf.vim b/runtime/syntax/cf.vim --- 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 +" License: The MIT License (MIT) +" +" Maintainer: Ernst M. van der Linden +" 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=++ 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 +]<"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 "\" -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 syntax. -syn match cfCustomTagName contained "\" -" (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 +" +" s^^ e +sy region cfmlTagStart + \ keepend + \ transparent + \ start="\c +" s^^^ e +sy match cfmlTagEnd + \ transparent + \ "\c]*>" + \ contains= + \cfmlTagBracket, + \cfmlTagName + +" tag bracket +" +" ^^ ^ +sy match cfmlTagBracket + \ contained + \ "\(<\|>\|\/\)" + +" tag name +" +" 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)@ +" ^^^^^^^^^^^^^e +sy region cfmlComponentTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^^^e +sy region cfmlFunctionTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^e +sy region cfmlIfTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^e +sy region cfmlLoopTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^e +sy region cfmlOutputTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^e + "\@cfmlSqlStatement, +sy region cfmlQueryTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^^^^e +sy region cfmlSavecontentTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" s^^^^^^^^^ +" +" ^^^^^^^^^^e +"\cfmlCustomScope, +sy region cfmlScriptTagRegion + \ fold + \ keepend + \ transparent + \ start="\c" + \ end="\c" + \ 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 {{{ +" +" ^^^^^^^^^^e +sy region cfmlSwitchTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^^^^^^e +sy region cfmlTransactionTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" s^^^ ^ +" +" ^^^^^ e +sy region cfmlCustomTagRegion + \ fold + \ keepend + \ transparent + \ start="\c]*>" + \ end="\c]*>" +" / 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="" + \ 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 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 DEFINITION }}} + +" PROPERTY {{{ +sy region cfmlProperty + \ transparent + \ start="\v" + \ end=";"me=e-1 + \ contains= + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlAttrName, + \cfmlAttrValue, + \cfmlPropertyKeyword + +sy match cfmlPropertyKeyword + \ contained + \ "\v" +" / PROPERTY }}} -" Hashmarks are significant inside cfoutput tags. -" cfoutput tags may be nested indefinitely. -syn region cfOutputRegion matchgroup=NONE transparent start=++ end=++ 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 KEYWORD }}} -" , , , are analogous to hashmarks (implicit -" evaluation) and have 'var' -syn region cfSetRegion start="" start="" start="" start="" end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptStatement -syn region cfSetLHSRegion contained start="' +" 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='' 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="" end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError -syn region cfscriptTag contained start='+ keepend contains=cfTagName,htmlTag -syn region cfSqlregion start=+]*>+ keepend end=++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(\ +" 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 diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim --- a/runtime/syntax/zsh.vim +++ b/runtime/syntax/zsh.vim @@ -2,7 +2,7 @@ " Language: Zsh shell script " Maintainer: Christian Brabandt " Previous Maintainer: Nikolai Weibull -" 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_\?\)\?warn_create_global\>\)\| \ \%(\%(\\)\| - \ \%(\%(\\)/ nextgroup=zshOption skipwhite contained + \ \%(\%(\\)/ 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-]\+'