diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2017-03-23 11:28:19 +0100 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-03-23 11:28:28 +0100 | 
| commit | 0801eac01aab5940fc1e4409ba749383cc353bc2 (patch) | |
| tree | 9034c9f6cd0c7592a09e6c65521c6948c3a983af /syntax | |
| parent | 9f735b1fe77072e001a593f7f6660703bf4a8c9c (diff) | |
| download | vim-polyglot-0801eac01aab5940fc1e4409ba749383cc353bc2.tar.gz vim-polyglot-0801eac01aab5940fc1e4409ba749383cc353bc2.zip | |
Update
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/blade.vim | 10 | ||||
| -rw-r--r-- | syntax/coffee.vim | 2 | ||||
| -rw-r--r-- | syntax/erlang.vim | 227 | ||||
| -rw-r--r-- | syntax/haskell.vim | 6 | ||||
| -rw-r--r-- | syntax/html.vim | 22 | ||||
| -rw-r--r-- | syntax/html/aria.vim | 25 | ||||
| -rw-r--r-- | syntax/html/electron.vim | 19 | ||||
| -rw-r--r-- | syntax/javascript.vim | 27 | ||||
| -rw-r--r-- | syntax/javascript/html5.vim | 3 | ||||
| -rw-r--r-- | syntax/layout/nginx.vim | 103 | ||||
| -rw-r--r-- | syntax/litcoffee.vim | 27 | ||||
| -rw-r--r-- | syntax/markdown.vim | 4 | ||||
| -rw-r--r-- | syntax/modules/afcgi.vim | 4 | ||||
| -rw-r--r-- | syntax/modules/geoip2.vim | 43 | ||||
| -rw-r--r-- | syntax/nginx.vim | 150 | ||||
| -rw-r--r-- | syntax/plantuml.vim | 4 | ||||
| -rw-r--r-- | syntax/pug.vim | 12 | ||||
| -rw-r--r-- | syntax/swift.vim | 2 | ||||
| -rw-r--r-- | syntax/terraform.vim | 64 | ||||
| -rw-r--r-- | syntax/typescript.vim | 4 | ||||
| -rw-r--r-- | syntax/vala.vim | 14 | ||||
| -rw-r--r-- | syntax/vue.vim | 60 | 
22 files changed, 546 insertions, 286 deletions
| diff --git a/syntax/blade.vim b/syntax/blade.vim index 4c04db75..7ae2786a 100644 --- a/syntax/blade.vim +++ b/syntax/blade.vim @@ -32,13 +32,13 @@ syn region  bladeEcho       matchgroup=bladeDelimiter start="{!!" end="!!}"  con  syn region  bladeComment    matchgroup=bladeDelimiter start="{{--" end="--}}"  contains=bladeTodo  containedin=ALLBUT,@bladeExempt keepend  syn keyword bladeKeyword @if @elseif @foreach @forelse @for @while @can @cannot @elsecan @elsecannot @include -    \ @includeIf @each @inject @extends @section @stack @push @unless @yield @parent @hasSection @break @continue  -    \ @unset @lang @choice @component @slot +    \ @includeIf @each @inject @extends @section @stack @push @unless @yield @parent @hasSection @break @continue +    \ @unset @lang @choice @component @slot @prepend      \ nextgroup=bladePhpParenBlock skipwhite containedin=ALLBUT,@bladeExempt -syn keyword bladeKeyword @else @endif @endunless @endfor @endforeach @empty @endforelse @endwhile @endcan  +syn keyword bladeKeyword @else @endif @endunless @endfor @endforeach @empty @endforelse @endwhile @endcan      \ @endcannot @stop @append @endsection @endpush @show @overwrite @verbatim @endverbatim @endcomponent -    \ @endslot +    \ @endslot @endprepend      \ containedin=ALLBUT,@bladeExempt  if exists('g:blade_custom_directives') @@ -49,7 +49,7 @@ if exists('g:blade_custom_directives_pairs')      exe "syn keyword bladeKeyword @" . join(values(g:blade_custom_directives_pairs), ' @') . " containedin=ALLBUT,@bladeExempt"  endif -syn region  bladePhpRegion  matchgroup=bladeKeyword start="\<@php\>\%(\s*(\)\@!" end="\<@endphp\>"  contains=@bladePhp  containedin=ALLBUT,@bladeExempt keepend +syn region  bladePhpRegion  matchgroup=bladeKeyword start="\<@php\>\s*(\@!" end="\<@endphp\>"  contains=@bladePhp  containedin=ALLBUT,@bladeExempt keepend  syn match   bladeKeyword "@php\ze\s*(" nextgroup=bladePhpParenBlock skipwhite containedin=ALLBUT,@bladeExempt  syn region  bladePhpParenBlock  matchgroup=bladeDelimiter start="\s*(" end=")" contains=@bladePhp,bladePhpParenBlock skipwhite contained diff --git a/syntax/coffee.vim b/syntax/coffee.vim index 589b8534..f11a7c50 100644 --- a/syntax/coffee.vim +++ b/syntax/coffee.vim @@ -34,7 +34,7 @@ hi def link coffeeConditional Conditional  syn match coffeeException /\<\%(try\|catch\|finally\)\>/ display  hi def link coffeeException Exception -syn match coffeeKeyword /\<\%(new\|in\|of\|by\|and\|or\|not\|is\|isnt\|class\|extends\|super\|do\|yield\|debugger\|import\|export\)\>/ +syn match coffeeKeyword /\<\%(new\|in\|of\|by\|and\|or\|not\|is\|isnt\|class\|extends\|super\|do\|yield\|debugger\|import\|export\|await\)\>/  \                       display  " The `own` keyword is only a keyword after `for`.  syn match coffeeKeyword /\<for\s\+own\>/ contained containedin=coffeeRepeat diff --git a/syntax/erlang.vim b/syntax/erlang.vim index 57b0a6a6..c01c0b2f 100644 --- a/syntax/erlang.vim +++ b/syntax/erlang.vim @@ -4,9 +4,9 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'erlang') == -1  " Language:     Erlang (http://www.erlang.org)  " Maintainer:   Csaba Hoch <csaba.hoch@gmail.com>  " Contributor:  Adam Rutkowski <hq@mtod.org> -" Last Update:  2013-Nov-23 +" Last Update:  2017-Mar-05  " License:      Vim license -" URL:          https://github.com/hcs42/vim-erlang +" URL:          https://github.com/vim-erlang/vim-erlang-runtime  " Acknowledgements: This script was originally created by Kresimir Marzic [1].  " The script was then revamped by Csaba Hoch [2]. During the revamp, the new @@ -31,11 +31,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'erlang') == -1  "  "     syn keyword erlangAttribute myattr1 myattr2 contained -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 -    syntax clear -elseif exists("b:current_syntax") +" quit when a syntax file was already loaded +if exists("b:current_syntax")      finish  endif @@ -45,9 +42,7 @@ set cpo&vim  " Case sensitive  syn case match -if version >= 600 -  setlocal iskeyword+=$,@-@ -endif +setlocal iskeyword+=$,@-@  " Comments  syn match erlangComment           '%.*$' contains=erlangCommentAnnotation,erlangTodo @@ -88,6 +83,7 @@ syn match erlangMacro    '??\=[[:alnum:]_@]\+'  syn match erlangMacro    '\%(-define(\)\@<=[[:alnum:]_@]\+'  syn match erlangMap      '#'  syn match erlangRecord   '#\s*\l[[:alnum:]_@]*' +syn region erlangQuotedRecord        start=/#\s*'/ end=/'/ contains=erlangQuotedAtomModifier  " Shebang (this line has to be after the ErlangMap)  syn match erlangShebang  '^#!.*' @@ -153,118 +149,109 @@ let b:erlang_syntax_synced = 1  let s:old_style = (exists("g:erlang_old_style_highlight") &&                    \g:erlang_old_style_highlight == 1) -" For version 5.7 and earlier: only when not done already -" For version 5.8 and later: only when an item doesn't have highlighting yet -if version >= 508 || !exists("did_erlang_inits") -  if version < 508 -    let did_erlang_inits = 1 -    command -nargs=+ HiLink hi link <args> -  else -    command -nargs=+ HiLink hi def link <args> -  endif - -  " Comments -  HiLink erlangComment Comment -  HiLink erlangCommentAnnotation Special -  HiLink erlangTodo Todo -  HiLink erlangShebang Comment - -  " Numbers -  HiLink erlangNumberInteger Number -  HiLink erlangNumberFloat Float - -  " Strings, atoms, characters -  HiLink erlangString String - -  if s:old_style -    HiLink erlangQuotedAtom Type -  else -    HiLink erlangQuotedAtom String -  endif - -  HiLink erlangStringModifier Special -  HiLink erlangQuotedAtomModifier Special -  HiLink erlangModifier Special - -  " Operators, separators -  HiLink erlangOperator Operator -  HiLink erlangRightArrow Operator -  if s:old_style -    HiLink erlangBracket Normal -    HiLink erlangPipe Normal -  else -    HiLink erlangBracket Delimiter -    HiLink erlangPipe Delimiter -  endif - -  " Atoms, functions, variables, macros -  if s:old_style -    HiLink erlangAtom Normal -    HiLink erlangLocalFuncCall Normal -    HiLink erlangLocalFuncRef Normal -    HiLink erlangGlobalFuncCall Function -    HiLink erlangGlobalFuncRef Function -    HiLink erlangVariable Normal -    HiLink erlangMacro Normal -    HiLink erlangRecord Normal -    HiLink erlangMap Normal -  else -    HiLink erlangAtom String -    HiLink erlangLocalFuncCall Normal -    HiLink erlangLocalFuncRef Normal -    HiLink erlangGlobalFuncCall Normal -    HiLink erlangGlobalFuncRef Normal -    HiLink erlangVariable Identifier -    HiLink erlangMacro Macro -    HiLink erlangRecord Structure -    HiLink erlangMap Structure -  endif - -  " Bitstrings -  if !s:old_style -    HiLink erlangBitType Type -  endif - -  " Constants and Directives -  if s:old_style -    HiLink erlangAttribute Type -    HiLink erlangMacroDef Type -    HiLink erlangUnknownAttribute Normal -    HiLink erlangInclude Type -    HiLink erlangRecordDef Type -    HiLink erlangDefine Type -    HiLink erlangPreCondit Type -    HiLink erlangType Type -  else -    HiLink erlangAttribute Keyword -    HiLink erlangMacroDef Macro -    HiLink erlangUnknownAttribute Normal -    HiLink erlangInclude Include -    HiLink erlangRecordDef Keyword -    HiLink erlangDefine Define -    HiLink erlangPreCondit PreCondit -    HiLink erlangType Type -  endif - -  " Keywords -  HiLink erlangKeyword Keyword - -  " Build-in-functions (BIFs) -  HiLink erlangBIF Function - -  if s:old_style -    HiLink erlangBoolean Statement -    HiLink erlangExtra Statement -    HiLink erlangSignal Statement -  else -    HiLink erlangBoolean Boolean -    HiLink erlangExtra Statement -    HiLink erlangSignal Statement -  endif - -  delcommand HiLink + +" Comments +hi def link erlangComment Comment +hi def link erlangCommentAnnotation Special +hi def link erlangTodo Todo +hi def link erlangShebang Comment + +" Numbers +hi def link erlangNumberInteger Number +hi def link erlangNumberFloat Float + +" Strings, atoms, characters +hi def link erlangString String + +if s:old_style +hi def link erlangQuotedAtom Type +else +hi def link erlangQuotedAtom String +endif + +hi def link erlangStringModifier Special +hi def link erlangQuotedAtomModifier Special +hi def link erlangModifier Special + +" Operators, separators +hi def link erlangOperator Operator +hi def link erlangRightArrow Operator +if s:old_style +hi def link erlangBracket Normal +hi def link erlangPipe Normal +else +hi def link erlangBracket Delimiter +hi def link erlangPipe Delimiter +endif + +" Atoms, functions, variables, macros +if s:old_style +hi def link erlangAtom Normal +hi def link erlangLocalFuncCall Normal +hi def link erlangLocalFuncRef Normal +hi def link erlangGlobalFuncCall Function +hi def link erlangGlobalFuncRef Function +hi def link erlangVariable Normal +hi def link erlangMacro Normal +hi def link erlangRecord Normal +hi def link erlangQuotedRecord Normal +hi def link erlangMap Normal +else +hi def link erlangAtom String +hi def link erlangLocalFuncCall Normal +hi def link erlangLocalFuncRef Normal +hi def link erlangGlobalFuncCall Normal +hi def link erlangGlobalFuncRef Normal +hi def link erlangVariable Identifier +hi def link erlangMacro Macro +hi def link erlangRecord Structure +hi def link erlangQuotedRecord Structure +hi def link erlangMap Structure  endif +" Bitstrings +if !s:old_style +hi def link erlangBitType Type +endif + +" Constants and Directives +if s:old_style +hi def link erlangAttribute Type +hi def link erlangMacroDef Type +hi def link erlangUnknownAttribute Normal +hi def link erlangInclude Type +hi def link erlangRecordDef Type +hi def link erlangDefine Type +hi def link erlangPreCondit Type +hi def link erlangType Type +else +hi def link erlangAttribute Keyword +hi def link erlangMacroDef Macro +hi def link erlangUnknownAttribute Normal +hi def link erlangInclude Include +hi def link erlangRecordDef Keyword +hi def link erlangDefine Define +hi def link erlangPreCondit PreCondit +hi def link erlangType Type +endif + +" Keywords +hi def link erlangKeyword Keyword + +" Build-in-functions (BIFs) +hi def link erlangBIF Function + +if s:old_style +hi def link erlangBoolean Statement +hi def link erlangExtra Statement +hi def link erlangSignal Statement +else +hi def link erlangBoolean Boolean +hi def link erlangExtra Statement +hi def link erlangSignal Statement +endif + +  let b:current_syntax = "erlang"  let &cpo = s:cpo_save diff --git a/syntax/haskell.vim b/syntax/haskell.vim index bc86fbe7..e301742b 100644 --- a/syntax/haskell.vim +++ b/syntax/haskell.vim @@ -24,14 +24,14 @@ endif  syn spell notoplevel  syn match haskellRecordField contained containedin=haskellBlock -  \ "[_a-z][a-zA-Z0-9_']*\(,\s*[_a-z][a-zA-Z0-9_']*\)*\(\s*::\|\n\s\+::\)" +  \ "[_a-z][a-zA-Z0-9_']*\(,\s*[_a-z][a-zA-Z0-9_']*\)*\_s\+::\s"    \ contains=    \ haskellIdentifier,    \ haskellOperators,    \ haskellSeparator,    \ haskellParens  syn match haskellTypeSig -  \ "^\s*\(where\s\+\|let\s\+\|default\s\+\)\?[_a-z][a-zA-Z0-9_']*\(,\s*[_a-z][a-zA-Z0-9_']*\)*\(\s*::\|\n\s\+::\)" +  \ "^\s*\(where\s\+\|let\s\+\|default\s\+\)\?[_a-z][a-zA-Z0-9_']*\(,\s*[_a-z][a-zA-Z0-9_']*\)*\_s\+::\s"    \ contains=    \ haskellWhere,    \ haskellLet, @@ -47,7 +47,7 @@ syn match haskellDecl "\<\(type\|data\)\>\s\+\(\<family\>\)\?"  syn keyword haskellDefault default  syn keyword haskellImportKeywords import qualified safe as hiding contained  syn keyword haskellForeignKeywords foreign export import ccall safe unsafe interruptible capi prim contained -syn region haskellForeignImport start="\<foreign\>" end="::" keepend +syn region haskellForeignImport start="\<foreign\>" end="\_s\+::\s" keepend    \ contains=    \ haskellString,    \ haskellOperators, diff --git a/syntax/html.vim b/syntax/html.vim index da9117dc..3f58cf02 100644 --- a/syntax/html.vim +++ b/syntax/html.vim @@ -2,8 +2,9 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1  " Vim syntax file  " Language:     HTML (version 5.1) -"               SVG (SVG 1.1 (Second Edition) ) -" Last Change:  2016 Jan 20 +"               SVG (SVG 1.1 Second Edition) +"               MathML (MathML 3.0 Second Edition) +" Last Change:  2017 Mar 07  " License:      Public domain  "               (but let me know if you like :) )  " @@ -18,6 +19,15 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1  " Modified:     htdebeer <H.T.de.Beer@gmail.com>  " Changes:      add common SVG elements and attributes for inline SVG +" Patch 7.4.1142 +if has("patch-7.4-1142") +  if has("win32") +    syn iskeyword @,48-57,_,128-167,224-235,- +  else +    syn iskeyword @,48-57,_,192-255,- +  endif +endif +  " HTML 5 tags  syn keyword htmlTagName contained article aside audio canvas command  syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer @@ -90,7 +100,7 @@ syn keyword htmlArg contained xml:lang xml:space xml:base xmlns  syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload   syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload  " <video>, <audio>, <source>, <track> -syn keyword htmlArg contained autoplay preload controls loop poster media kind charset srclang track +syn keyword htmlArg contained autoplay preload controls loop poster media kind charset srclang track playsinline  " <form>, <input>, <button>  syn keyword htmlArg contained form autocomplete autofocus list min max step  syn keyword htmlArg contained formaction autofocus formenctype formmethod formtarget formnovalidate @@ -102,7 +112,7 @@ syn keyword htmlArg contained async  " <content>  syn keyword htmlArg contained select  " <iframe> -syn keyword htmlArg contained seamless srcdoc sandbox allowfullscreen +syn keyword htmlArg contained seamless srcdoc sandbox allowfullscreen allowusermedia allowpaymentrequest   " <picture>  syn keyword htmlArg contained srcset sizes  " <a> @@ -117,11 +127,11 @@ syn keyword htmlArg contained integrity crossorigin  " Custom Data Attributes  " http://w3c.github.io/html/single-page.html#embedding-custom-non-visible-data-with-the-data-attributes -syn match   htmlArg "\<\(data\-\([a-z_][a-z0-9_.\-]*\)\+\)\{1,}\>" contained +syn match   htmlArg "\<data[-.0-9_a-z]*-[-.0-9_a-z]*\>" contained  " Vendor Extension Attributes  " http://w3c.github.io/html/single-page.html#conformance-requirements-extensibility -syn match   htmlArg "\<\(x\-\([a-z_][a-z0-9_.\-]*\)\+\)\{2,}\>" contained +syn match   htmlArg "\<x[-.0-9_a-z]*-[-.0-9_a-z]*\>" contained  " Microdata  " http://dev.w3.org/html5/md/ diff --git a/syntax/html/aria.vim b/syntax/html/aria.vim index 28cf34c0..3bb377ea 100644 --- a/syntax/html/aria.vim +++ b/syntax/html/aria.vim @@ -1,16 +1,15 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1  " Vim syntax file -" Language:	    WAI-ARIA +" Language:     WAI-ARIA  " Maintainer:  	othree <othree@gmail.com> -" URL:		      http://github.com/othree/html5-syntax.vim -" Last Change:  2014-05-02 +" URL:          https://github.com/othree/html5.vim +" Last Change:  2017-03-07  " License:      MIT -" Changes:      Add match rules  -"               update to Draft 16 September 2010 +" Changes:      update to Candidate Recommendation 27 October 2016  " WAI-ARIA States and Properties -" http://www.w3.org/TR/wai-aria/states_and_properties +" https://www.w3.org/TR/wai-aria-1.1/#states_and_properties  syn keyword  htmlArg contained role  " Global States and Properties @@ -18,6 +17,8 @@ syn keyword  htmlArg contained aria-atomic aria-busy aria-controls aria-describe  syn keyword  htmlArg contained aria-disabled aria-dropeffect aria-flowto aria-grabbed  syn keyword  htmlArg contained aria-haspopup aria-hidden aria-invalid aria-label  syn keyword  htmlArg contained aria-labelledby aria-live aria-owns aria-relevant +" 1.1 +syn keyword  htmlArg contained aria-current aria-details aria-keyshortcuts aria-roledescription  " Widget Attributes  syn keyword  htmlArg contained aria-autocomplete aria-checked aria-disabled aria-expanded @@ -25,6 +26,8 @@ syn keyword  htmlArg contained aria-haspopup aria-hidden aria-invalid aria-label  syn keyword  htmlArg contained aria-level aria-multiline aria-multiselectable aria-orientation  syn keyword  htmlArg contained aria-pressed aria-readonly aria-required aria-selected  syn keyword  htmlArg contained aria-sort aria-valuemax aria-valuemin aria-valuenow aria-valuetext +" 1.1 +syn keyword  htmlArg contained aria-errormessage aria-hasgroup aria-modal aria-placeholder  " Live Region Attributes  syn keyword  htmlArg contained aria-atomic aria-busy aria-live aria-relevant @@ -35,6 +38,9 @@ syn keyword  htmlArg contained aria-dropeffect aria-grabbed  " Relationship Attributes  syn keyword  htmlArg contained aria-activedescendant aria-controls aria-describedby aria-flowto  syn keyword  htmlArg contained aria-labelledby aria-owns aria-posinset aria-setsize +" 1.1 +syn keyword  htmlArg contained aria-colcount aria-colindex aria-colspan +syn keyword  htmlArg contained aria-rowcount aria-rowindex aria-rowspan  " Use match: https://github.com/othree/html5.vim/issues/39 @@ -44,6 +50,8 @@ syn match    htmlArg contained "\<aria-\%(\|atomic\|busy\|controls\|describedby\  syn match    htmlArg contained "\<aria-\%(\|disabled\|dropeffect\|flowto\|grabbed\)\>"  syn match    htmlArg contained "\<aria-\%(\|haspopup\|hidden\|invalid\|label\)\>"  syn match    htmlArg contained "\<aria-\%(\|labelledby\|live\|owns\|relevant\)\>" +" 1.1 +syn match    htmlArg contained "\<aria-\%(\|current\|details\|keyshortcuts\|roledescription\)\>"  " Widget Attributes  syn match    htmlArg contained "\<aria-\%(\|autocomplete\|checked\|disabled\|expanded\)\>" @@ -51,6 +59,8 @@ syn match    htmlArg contained "\<aria-\%(\|haspopup\|hidden\|invalid\|label\)\>  syn match    htmlArg contained "\<aria-\%(\|level\|multiline\|multiselectable\|orientation\)\>"  syn match    htmlArg contained "\<aria-\%(\|pressed\|readonly\|required\|selected\)\>"  syn match    htmlArg contained "\<aria-\%(\|sort\|valuemax\|valuemin\|valuenow\|valuetext\)\>" +" 1.1 +syn match    htmlArg contained "\<aria-\%(\|errormessage\|hasgroup\|modal\|placeholder\)\>"  " Live Region Attributes  syn match    htmlArg contained "\<aria-\%(\|atomic\|busy\|live\|relevant\)\>" @@ -61,6 +71,9 @@ syn match    htmlArg contained "\<aria-\%(\|dropeffect\|grabbed\)\>"  " Relationship Attributes  syn match    htmlArg contained "\<aria-\%(\|activedescendant\|controls\|describedby\|flowto\)\>"  syn match    htmlArg contained "\<aria-\%(\|labelledby\|owns\|posinset\|setsize\)\>" +" 1.1 +syn match    htmlArg contained "\<aria-\%(\|colcount\|colindex\|colspan\)\>" +syn match    htmlArg contained "\<aria-\%(\|rowcount\|rowindex\|rowspan\)\>"  endif diff --git a/syntax/html/electron.vim b/syntax/html/electron.vim new file mode 100644 index 00000000..35e60dd4 --- /dev/null +++ b/syntax/html/electron.vim @@ -0,0 +1,19 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1 +   +" Vim syntax file +" Language:     Electron +" Maintainer:   othree <othree@gmail.com> +" URL:          https://github.com/othree/html5.vim +" Last Change:  2017-03-15 +" License:      MIT + +" <webview> https://electron.atom.io/docs/api/webview-tag/ +syn keyword htmlTagName contained webview + +syn keyword htmlArg contained autosize nodeintegration plugins preload httpreferrer +syn keyword htmlArg contained useragent disablewebsecurity partition allowpopups  +syn keyword htmlArg contained webpreferences blinkfeatures disableblinkfeatures +syn keyword htmlArg contained guestinstance disableguestresize  + + +endif diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 5742bdc9..76d1267f 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -27,7 +27,8 @@ syntax sync fromstart  syntax case match  syntax match   jsNoise          /[:,\;]\{1}/ -syntax match   jsNoise          /[\.]\{1}/ skipwhite skipempty nextgroup=jsObjectProp +syntax match   jsNoise          /[\.]\{1}/ skipwhite skipempty nextgroup=jsObjectProp,jsFuncCall +syntax match   jsObjectProp     contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>/  syntax match   jsFuncCall       /\k\+\%(\s*(\)\@=/  syntax match   jsParensError    /[)}\]]/ @@ -54,7 +55,7 @@ syntax match   jsModuleComma        contained /,/ skipwhite skipempty nextgroup=  " Strings, Templates, Numbers  syntax region  jsString           start=+"+  skip=+\\\("\|$\)+  end=+"\|$+  contains=jsSpecial,@Spell extend  syntax region  jsString           start=+'+  skip=+\\\('\|$\)+  end=+'\|$+  contains=jsSpecial,@Spell extend -syntax region  jsTemplateString   start=+`+  skip=+\\\(`\|$\)+  end=+`+     contains=jsTemplateExpression,jsSpecial extend +syntax region  jsTemplateString   start=+`+  skip=+\\\(`\|$\)+  end=+`+     contains=jsTemplateExpression,jsSpecial,@Spell extend  syntax match   jsTaggedTemplate   /\k\+\%(`\)\@=/ nextgroup=jsTemplateString  syntax match   jsNumber           /\<\d\+\%([eE][+-]\=\d\+\)\=\>\|\<0[bB][01]\+\>\|\<0[oO]\o\+\>\|\<0[xX]\x\+\>/  syntax keyword jsNumber           Infinity @@ -71,9 +72,9 @@ syntax match   jsRegexpOr           contained "\v\<@!\|"  syntax match   jsRegexpMod          contained "\v\(@<=\?[:=!>]"  syntax region  jsRegexpGroup        contained start="\\\@<!(" skip="\\.\|\[\(\\.\|[^]]\)*\]" end="\\\@<!)" contains=jsRegexpCharClass,@jsRegexpSpecial keepend  if v:version > 703 || v:version == 603 && has("patch1088") -  syntax region  jsRegexpString   start=+\%(\%(\%(return\|case\)\s\+\)\@50<=\|\%(\%([)\]"']\|\d\|\w\)\s*\)\@50<!\)/\(\*\|/\)\@!+ skip=+\\.\|\[\%(\\.\|[^]]\)*\]+ end=+/[gimy]\{,4}+ contains=jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial oneline keepend extend +  syntax region  jsRegexpString   start=+\%(\%(\%(return\|case\)\s\+\)\@50<=\|\%(\%([)\]"']\|\d\|\w\)\s*\)\@50<!\)/\(\*\|/\)\@!+ skip=+\\.\|\[\%(\\.\|[^]]\)*\]+ end=+/[gimyu]\{,5}+ contains=jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial oneline keepend extend  else -  syntax region  jsRegexpString   start=+\%(\%(\%(return\|case\)\s\+\)\@<=\|\%(\%([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\.\|\[\%(\\.\|[^]]\)*\]+ end=+/[gimy]\{,4}+ contains=jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial oneline keepend extend +  syntax region  jsRegexpString   start=+\%(\%(\%(return\|case\)\s\+\)\@<=\|\%(\%([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\.\|\[\%(\\.\|[^]]\)*\]+ end=+/[gimyu]\{,5}+ contains=jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial oneline keepend extend  endif  syntax cluster jsRegexpSpecial    contains=jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod @@ -105,7 +106,7 @@ syntax match   jsBlockLabelKey contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\%(\s*\%(;  syntax keyword jsStatement    contained with yield debugger  syntax keyword jsStatement    contained break continue skipwhite skipempty nextgroup=jsBlockLabelKey  syntax keyword jsConditional            if             skipwhite skipempty nextgroup=jsParenIfElse -syntax keyword jsConditional            else           skipwhite skipempty nextgroup=jsCommentMisc,jsIfElseBlock +syntax keyword jsConditional            else           skipwhite skipempty nextgroup=jsCommentIfElse,jsIfElseBlock  syntax keyword jsConditional            switch         skipwhite skipempty nextgroup=jsParenSwitch  syntax keyword jsRepeat                 while for      skipwhite skipempty nextgroup=jsParenRepeat,jsForAwait  syntax keyword jsDo                     do             skipwhite skipempty nextgroup=jsRepeatBlock @@ -143,9 +144,9 @@ syntax keyword jsHtmlEvents     onblur onclick oncontextmenu ondblclick onfocus  " Code blocks  syntax region  jsBracket                      matchgroup=jsBrackets            start=/\[/ end=/\]/ contains=@jsExpression,jsSpreadExpression extend fold  syntax region  jsParen                        matchgroup=jsParens              start=/(/  end=/)/  contains=@jsAll extend fold -syntax region  jsParenDecorator     contained matchgroup=jsParensDecorator     start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc extend fold -syntax region  jsParenIfElse        contained matchgroup=jsParensIfElse        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsIfElseBlock extend fold -syntax region  jsParenRepeat        contained matchgroup=jsParensRepeat        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsRepeatBlock extend fold +syntax region  jsParenDecorator     contained matchgroup=jsParensDecorator     start=/(/  end=/)/  contains=@jsAll extend fold +syntax region  jsParenIfElse        contained matchgroup=jsParensIfElse        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentIfElse,jsIfElseBlock extend fold +syntax region  jsParenRepeat        contained matchgroup=jsParensRepeat        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentRepeat,jsRepeatBlock extend fold  syntax region  jsParenSwitch        contained matchgroup=jsParensSwitch        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsSwitchBlock extend fold  syntax region  jsParenCatch         contained matchgroup=jsParensCatch         start=/(/  end=/)/  skipwhite skipempty nextgroup=jsTryCatchBlock extend fold  syntax region  jsFuncArgs           contained matchgroup=jsFuncParens          start=/(/  end=/)/  contains=jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsDestructuringArray,jsRestExpression,jsFlowArgumentDef skipwhite skipempty nextgroup=jsCommentFunction,jsFuncBlock,jsFlowReturn extend fold @@ -217,13 +218,14 @@ syntax region  jsCommentFunction    contained start=/\/\// end=/$/    contains=j  syntax region  jsCommentFunction    contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturn fold extend keepend  syntax region  jsCommentClass       contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsClassBlock,jsFlowClassGroup extend keepend  syntax region  jsCommentClass       contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsClassBlock,jsFlowClassGroup fold extend keepend -syntax region  jsCommentMisc        contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsBlock extend keepend -syntax region  jsCommentMisc        contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsBlock fold extend keepend +syntax region  jsCommentIfElse      contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsIfElseBlock extend keepend +syntax region  jsCommentIfElse      contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsIfElseBlock fold extend keepend +syntax region  jsCommentRepeat      contained start=/\/\// end=/$/    contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsRepeatBlock extend keepend +syntax region  jsCommentRepeat      contained start=/\/\*/ end=/\*\// contains=jsCommentTodo,@Spell skipwhite skipempty nextgroup=jsRepeatBlock fold extend keepend  " Decorators  syntax match   jsDecorator                    /^\s*@/ nextgroup=jsDecoratorFunction  syntax match   jsDecoratorFunction  contained /[a-zA-Z_][a-zA-Z0-9_.]*/ nextgroup=jsParenDecorator -syntax match   jsObjectProp         contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>/  if exists("javascript_plugin_jsdoc")    runtime extras/jsdoc.vim @@ -364,7 +366,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")    HiLink jsCommentFunction      jsComment    HiLink jsCommentClass         jsComment -  HiLink jsCommentMisc          jsComment +  HiLink jsCommentIfElse        jsComment +  HiLink jsCommentRepeat        jsComment    HiLink jsDomErrNo             Constant    HiLink jsDomNodeConsts        Constant diff --git a/syntax/javascript/html5.vim b/syntax/javascript/html5.vim index f9462dee..f950d6c5 100644 --- a/syntax/javascript/html5.vim +++ b/syntax/javascript/html5.vim @@ -44,4 +44,7 @@ syn keyword javascriptDomElemAttrs videoWidth videoHeight poster  " drag and drop  syn keyword javascriptDomElemAttrs onDragStart onDragEnd onDragEnter onDragLeave onDragOver onDrag onDrop draggable dropzone +" <checkbox> +syn keyword javascriptDomElemAttrs indeterminate +  endif diff --git a/syntax/layout/nginx.vim b/syntax/layout/nginx.vim index daff064a..677ff8ca 100644 --- a/syntax/layout/nginx.vim +++ b/syntax/layout/nginx.vim @@ -7,25 +7,20 @@ if exists("b:current_syntax")    finish  end +" Patch 7.4.1142  if has("patch-7.4-1142")    if has("win32")      syn iskeyword @,48-57,_,128-167,224-235,.,/,:    else      syn iskeyword @,48-57,_,192-255,.,/,:    endif -else -  setlocal iskeyword+=. -  setlocal iskeyword+=/ -  setlocal iskeyword+=:  endif  syn match ngxVariable '\$\(\w\+\|{\w\+}\)'  syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained  syn match ngxComment ' *#.*$' -syn match ngxRewriteURI /\S\+/ contained contains=ngxVariableString nextgroup=ngxURI skipwhite -syn match ngxURI /\S\+/ contained contains=ngxVariableString skipwhite -syn match ngxLocationPath /[^ {]\+/ contained -syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString +syn match ngxLocationPath /\S\+/ contained +syn region ngxString start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString  syn keyword ngxBoolean on  syn keyword ngxBoolean off @@ -37,9 +32,9 @@ syn keyword ngxDirectiveBlock events  syn keyword ngxDirectiveBlock server  syn keyword ngxDirectiveBlock stream  syn keyword ngxDirectiveBlock types -syn match   ngxLocationOperator /\(=\|\~\*\|\^\~\|\~\)/ contained nextgroup=ngxLocationPath,ngxString skipwhite +syn match   ngxLocationOperator /\(=\|\~\*\|\^\~\|\~\)/ contained nextgroup=ngxLocationPath,ngxString skipwhite skipempty  syn match   ngxLocationNamedLoc /@\w\+/ -syn keyword ngxDirectiveBlock location nextgroup=ngxLocationNamedLoc,ngxLocationOperator,ngxLocationPath,ngxString skipwhite +syn keyword ngxDirectiveBlock location nextgroup=ngxLocationNamedLoc,ngxLocationOperator,ngxLocationPath,ngxString skipwhite skipempty  syn keyword ngxDirectiveBlock upstream  syn keyword ngxDirectiveBlock charset_map  syn keyword ngxDirectiveBlock limit_except @@ -52,7 +47,8 @@ syn keyword ngxDirectiveImportant include  syn keyword ngxDirectiveImportant root  syn keyword ngxDirectiveImportant server  syn keyword ngxDirectiveImportant server_name -syn keyword ngxDirectiveImportant listen +syn keyword ngxDirectiveImportant listen contained +syn region  ngxDirectiveImportantListen matchgroup=ngxDirectiveImportant start=+listen+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxListenOptions,ngxString  syn keyword ngxDirectiveImportant internal  syn keyword ngxDirectiveImportant proxy_pass  syn keyword ngxDirectiveImportant memcached_pass @@ -61,19 +57,48 @@ syn keyword ngxDirectiveImportant scgi_pass  syn keyword ngxDirectiveImportant uwsgi_pass  syn keyword ngxDirectiveImportant try_files +syn keyword ngxListenOptions default_server contained +syn keyword ngxListenOptions ssl            contained +syn keyword ngxListenOptions http2          contained +syn keyword ngxListenOptions spdy           contained +syn keyword ngxListenOptions proxy_protocol contained +syn keyword ngxListenOptions setfib         contained +syn keyword ngxListenOptions fastopen       contained +syn keyword ngxListenOptions backlog        contained +syn keyword ngxListenOptions rcvbuf         contained +syn keyword ngxListenOptions sndbuf         contained +syn keyword ngxListenOptions accept_filter  contained +syn keyword ngxListenOptions deferred       contained +syn keyword ngxListenOptions bind           contained +syn keyword ngxListenOptions ipv6only       contained +syn keyword ngxListenOptions reuseport      contained +syn keyword ngxListenOptions so_keepalive   contained +syn keyword ngxListenOptions keepidle       contained +  syn keyword ngxDirectiveControl break -syn keyword ngxDirectiveControl return -syn keyword ngxDirectiveControl rewrite nextgroup=ngxRewriteURI skipwhite +syn keyword ngxDirectiveControl return nextgroup=ngxStatusCode skipwhite skipempty +syn keyword ngxDirectiveControl rewrite nextgroup=ngxRewriteURI skipwhite skipempty  syn keyword ngxDirectiveControl set -syn keyword ngxRewriteFlag last -syn keyword ngxRewriteFlag break -syn keyword ngxRewriteFlag redirect -syn keyword ngxRewriteFlag permanent +syn match ngxStatusCode  /\d\d\d/ contained +syn match ngxStatusCodes /\d\d\d/ contained contains=ngxStatusCode nextgroup=ngxStatusCode skipwhite skipempty + +syn match  ngxRewriteURI  /\S\+/ contained contains=ngxVariableString nextgroup=ngxRewritedURI skipwhite skipempty +syn region ngxRewriteURI  start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString nextgroup=ngxRewritedURI skipwhite skipempty +syn match  ngxRewritedURI /\S\+/ contained contains=ngxVariableString nextgroup=ngxRewriteFlag skipwhite skipempty +syn region ngxRewritedURI start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString nextgroup=ngxRewriteFlag skipwhite skipempty + +syn keyword ngxRewriteFlag last      contained +syn keyword ngxRewriteFlag break     contained +syn keyword ngxRewriteFlag redirect  contained +syn keyword ngxRewriteFlag permanent contained -syn keyword ngxDirectiveError error_page +syn keyword ngxDirectiveError error_page nextgroup=ngxErrorStatusCode skipwhite skipempty  syn keyword ngxDirectiveError post_action +syn match ngxErrorStatusCode   /\d\d\d/ contained contains=ngxStatusCode nextgroup=ngxErrorResponseCode skipwhite skipempty +syn match ngxErrorResponseCode /=\d\d\d/ contained contains=ngxStatusCode +  syn keyword ngxDirectiveDeprecated connections  syn keyword ngxDirectiveDeprecated imap  syn keyword ngxDirectiveDeprecated limit_zone @@ -82,14 +107,6 @@ syn keyword ngxDirectiveDeprecated open_file_cache_retest  syn keyword ngxDirectiveDeprecated optimize_server_names  syn keyword ngxDirectiveDeprecated satisfy_any  syn keyword ngxDirectiveDeprecated so_keepalive -syn keyword ngxDirectiveDeprecated spdy_chunk_size -syn keyword ngxDirectiveDeprecated spdy_headers_comp -syn keyword ngxDirectiveDeprecated spdy_keepalive_timeout -syn keyword ngxDirectiveDeprecated spdy_max_concurrent_streams -syn keyword ngxDirectiveDeprecated spdy_pool_size -syn keyword ngxDirectiveDeprecated spdy_recv_buffer_size -syn keyword ngxDirectiveDeprecated spdy_recv_timeout -syn keyword ngxDirectiveDeprecated spdy_streams_index_size  syn keyword ngxDirective absolute_redirect  syn keyword ngxDirective accept_mutex @@ -235,7 +252,6 @@ syn keyword ngxDirective hls_forward_args  syn keyword ngxDirective hls_fragment  syn keyword ngxDirective hls_mp4_buffer_size  syn keyword ngxDirective hls_mp4_max_buffer_size -syn keyword ngxDirective http2 " Not a real directive  syn keyword ngxDirective http2_chunk_size  syn keyword ngxDirective http2_body_preread_size  syn keyword ngxDirective http2_idle_timeout @@ -277,13 +293,13 @@ syn keyword ngxDirective least_conn  syn keyword ngxDirective least_time  syn keyword ngxDirective limit_conn  syn keyword ngxDirective limit_conn_log_level -syn keyword ngxDirective limit_conn_status +syn keyword ngxDirective limit_conn_status nextgroup=ngxStatusCode skipwhite skipempty  syn keyword ngxDirective limit_conn_zone  syn keyword ngxDirective limit_rate  syn keyword ngxDirective limit_rate_after  syn keyword ngxDirective limit_req  syn keyword ngxDirective limit_req_log_level -syn keyword ngxDirective limit_req_status +syn keyword ngxDirective limit_req_status nextgroup=ngxStatusCode skipwhite skipempty  syn keyword ngxDirective limit_req_zone  syn keyword ngxDirective lingering_close  syn keyword ngxDirective lingering_time @@ -343,8 +359,8 @@ syn keyword ngxDirective postpone_gzipping  syn keyword ngxDirective postpone_output  syn keyword ngxDirective preread_buffer_size  syn keyword ngxDirective preread_timeout -syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite -syn keyword ngxMailProtocol imap pop3 smtp +syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite skipempty +syn keyword ngxMailProtocol imap pop3 smtp contained  syn keyword ngxDirective proxy  syn keyword ngxDirective proxy_bind  syn keyword ngxDirective proxy_buffer @@ -366,7 +382,7 @@ syn keyword ngxDirective proxy_cache_path  syn keyword ngxDirective proxy_cache_purge  syn keyword ngxDirective proxy_cache_revalidate  syn keyword ngxDirective proxy_cache_use_stale -syn keyword ngxDirective proxy_cache_valid +syn keyword ngxDirective proxy_cache_valid nextgroup=ngxStatusCodes skipwhite skipempty  syn keyword ngxDirective proxy_connect_timeout  syn keyword ngxDirective proxy_cookie_domain  syn keyword ngxDirective proxy_cookie_path @@ -406,7 +422,7 @@ syn keyword ngxDirective proxy_ssl_ciphers  syn keyword ngxDirective proxy_ssl_crl  syn keyword ngxDirective proxy_ssl_name  syn keyword ngxDirective proxy_ssl_password_file -syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite +syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite skipempty  syn keyword ngxDirective proxy_ssl_server_name  syn keyword ngxDirective proxy_ssl_session_reuse  syn keyword ngxDirective proxy_ssl_trusted_certificate @@ -499,6 +515,14 @@ syn keyword ngxDirective smtp_capabilities  syn keyword ngxDirective smtp_client_buffer  syn keyword ngxDirective smtp_greeting_delay  syn keyword ngxDirective source_charset +syn keyword ngxDirective spdy_chunk_size +syn keyword ngxDirective spdy_headers_comp +syn keyword ngxDirective spdy_keepalive_timeout +syn keyword ngxDirective spdy_max_concurrent_streams +syn keyword ngxDirective spdy_pool_size +syn keyword ngxDirective spdy_recv_buffer_size +syn keyword ngxDirective spdy_recv_timeout +syn keyword ngxDirective spdy_streams_index_size  syn keyword ngxDirective ssi  syn keyword ngxDirective ssi_ignore_recycled_buffers  syn keyword ngxDirective ssi_last_modified @@ -520,8 +544,8 @@ syn keyword ngxDirective ssl_handshake_timeout  syn keyword ngxDirective ssl_password_file  syn keyword ngxDirective ssl_prefer_server_ciphers  syn keyword ngxDirective ssl_preread -syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol skipwhite -syn keyword ngxSSLProtocol SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 +syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol skipwhite skipempty +syn keyword ngxSSLProtocol SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 contained nextgroup=ngxSSLProtocol skipwhite skipempty  syn keyword ngxDirective ssl_session_cache  syn keyword ngxDirective ssl_session_ticket_key  syn keyword ngxDirective ssl_session_tickets @@ -612,7 +636,7 @@ syn keyword ngxDirective uwsgi_ssl_ciphers  syn keyword ngxDirective uwsgi_ssl_crl  syn keyword ngxDirective uwsgi_ssl_name  syn keyword ngxDirective uwsgi_ssl_password_file -syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite +syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite skipempty  syn keyword ngxDirective uwsgi_ssl_server_name  syn keyword ngxDirective uwsgi_ssl_session_reuse  syn keyword ngxDirective uwsgi_ssl_trusted_certificate @@ -660,6 +684,7 @@ hi link ngxLocationPath String  hi link ngxLocationNamedLoc Identifier  hi link ngxBoolean Boolean +hi link ngxStatusCode Number  hi link ngxRewriteFlag Boolean  hi link ngxDirectiveBlock Statement  hi link ngxDirectiveImportant Type @@ -669,6 +694,12 @@ hi link ngxDirectiveDeprecated Error  hi link ngxDirective Identifier  hi link ngxDirectiveThirdParty Special +hi link ngxListenOptions Keyword +hi link ngxMailProtocol Keyword +hi link ngxSSLProtocol Keyword + +hi link ngxThirdPartyKeyword keyword +  let b:current_syntax = "nginx" diff --git a/syntax/litcoffee.vim b/syntax/litcoffee.vim new file mode 100644 index 00000000..555518fa --- /dev/null +++ b/syntax/litcoffee.vim @@ -0,0 +1,27 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1 +   +" Language:   Literate CoffeeScript +" Maintainer: Michael Smith <michael@diglumi.com> +" URL:        https://github.com/mintplant/vim-literate-coffeescript +" License:    MIT + +if exists('b:current_syntax') && b:current_syntax == 'litcoffee' +  finish +endif + +syn include @markdown syntax/markdown.vim +syn include @coffee syntax/coffee.vim + +" Partition the file into notCoffee and inlineCoffee. Each line will match +" exactly one of these regions. notCoffee matches with a zero-width +" look-behind. +syn region notCoffee start='^\%(    \|\t\)\@<!' end='$' contains=@markdown +syn region inlineCoffee start='^    \|\t' end='$' contains=@coffee + +" We defined notCoffee as a region so we can highlight every element in it +" that doesn't have it's own explicit rule. +highlight default link notCoffee Comment + +let b:current_syntax = "litcoffee" + +endif diff --git a/syntax/markdown.vim b/syntax/markdown.vim index 0545156d..71d2264e 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -63,7 +63,7 @@ execute 'syn region htmlBoldItalic matchgroup=mkdBoldItalic start="\%(^\|\s\)\zs  syn region mkdFootnotes matchgroup=mkdDelimiter start="\[^"    end="\]"  execute 'syn region mkdID matchgroup=mkdDelimiter    start="\["    end="\]" contained oneline' . s:conceal  execute 'syn region mkdURL matchgroup=mkdDelimiter   start="("     end=")"  contained oneline' . s:conceal -execute 'syn region mkdLink matchgroup=mkdDelimiter  start="\\\@<!!\?\[" end="\n\{-,1}[^]]\{-}\zs\]\ze[[(]" contains=@mkdNonListItem,@Spell nextgroup=mkdURL,mkdID skipwhite oneline' . s:concealends +execute 'syn region mkdLink matchgroup=mkdDelimiter  start="\\\@<!!\?\[\ze[^]\n]*\n\?[^]\n]*\][[(]" end="\]" contains=@mkdNonListItem,@Spell nextgroup=mkdURL,mkdID skipwhite' . s:concealends  " Autolink without angle brackets.  " mkd  inline links:      protocol     optional  user:pass@  sub/domain                    .com, .co.uk, etc         optional port   path/querystring/hash fragment @@ -77,7 +77,7 @@ syn region  mkdInlineURL matchgroup=mkdDelimiter start="(\(https\?:\/\/\(\w\+\(:  syn region mkdInlineURL matchgroup=mkdDelimiter start="\\\@<!<\ze[a-z][a-z0-9,.-]\{1,22}:\/\/[^> ]*>" end=">"  " Link definitions: [id]: URL (Optional Title) -syn region mkdLinkDef matchgroup=mkdDelimiter   start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite +syn region mkdLinkDef matchgroup=mkdDelimiter   start="^ \{,3}\zs\[\^\@!" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite  syn region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]"   contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline  syn region mkdLinkTitle matchgroup=mkdDelimiter start=+"+     end=+"+  contained  syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+     end=+'+  contained diff --git a/syntax/modules/afcgi.vim b/syntax/modules/afcgi.vim index 32d7fd25..fdf85725 100644 --- a/syntax/modules/afcgi.vim +++ b/syntax/modules/afcgi.vim @@ -35,8 +35,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nginx') == -1  " syn keyword ngxDirectiveThirdParty fastcgi_store_access  " syn keyword ngxDirectiveThirdParty fastcgi_temp_file_write_size  " syn keyword ngxDirectiveThirdParty fastcgi_temp_path -syn keyword ngxDirectiveThirdParty fastcgi_upstream_fail_timeout -syn keyword ngxDirectiveThirdParty fastcgi_upstream_max_fails +syn keyword ngxDirectiveDeprecated fastcgi_upstream_fail_timeout +syn keyword ngxDirectiveDeprecated fastcgi_upstream_max_fails  endif diff --git a/syntax/modules/geoip2.vim b/syntax/modules/geoip2.vim index c6d7822c..6a5189a8 100644 --- a/syntax/modules/geoip2.vim +++ b/syntax/modules/geoip2.vim @@ -2,7 +2,48 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nginx') == -1  " GeoIP 2 Module <https://github.com/leev/ngx_http_geoip2_module>  " Creates variables with values from the maxmind geoip2 databases based on the client IP -syn keyword ngxDirectiveThirdParty geoip2 +syn keyword ngxDirectiveThirdParty      geoip2 nextgroup=ngxThirdPartyGeoIP2Database skipwhite skipempty +syn match   ngxThirdPartyGeoIP2Database /\S\+/ contained nextgroup=ngxThirdPartyGeoIP2Block skipwhite skipempty +syn region  ngxThirdPartyGeoIP2Block    start=/{/ end=/}/ contained contains=ngxThirdPartyGeoIP2Keyword,ngxVariable +syn keyword ngxThirdPartyGeoIP2Keyword  de en es fr ja pt-BR ru zh-CN contained +syn match   ngxThirdPartyGeoIP2Keyword  /pt-BR|zh-CN/ contained +syn keyword ngxThirdPartyGeoIP2Keyword  default source contained +" Common Keys +syn keyword ngxThirdPartyGeoIP2Keyword  code confidence geoname_id names iso_code contained +" /Common Keys +syn keyword ngxThirdPartyGeoIP2Keyword  city contained +syn keyword ngxThirdPartyGeoIP2Keyword  continent contained +syn keyword ngxThirdPartyGeoIP2Keyword  country contained +syn keyword ngxThirdPartyGeoIP2Keyword  location contained +" Location Keys +syn keyword ngxThirdPartyGeoIP2Keyword  accuracy_radius contained +syn keyword ngxThirdPartyGeoIP2Keyword  average_income contained +syn keyword ngxThirdPartyGeoIP2Keyword  latitude contained +syn keyword ngxThirdPartyGeoIP2Keyword  longitude contained +syn keyword ngxThirdPartyGeoIP2Keyword  metro_code contained +syn keyword ngxThirdPartyGeoIP2Keyword  population_density contained +syn keyword ngxThirdPartyGeoIP2Keyword  time_zone contained +syn keyword ngxThirdPartyGeoIP2Keyword  postal  contained +" /Location Keys +syn keyword ngxThirdPartyGeoIP2Keyword  registered_country contained +syn keyword ngxThirdPartyGeoIP2Keyword  represented_country contained +" Represented Country Keys +syn keyword ngxThirdPartyGeoIP2Keyword  type contained +" /Represented Country Keys +syn keyword ngxThirdPartyGeoIP2Keyword  subdivisions contained +syn keyword ngxThirdPartyGeoIP2Keyword  traits contained +" Traits Keys +syn keyword ngxThirdPartyGeoIP2Keyword  autonomous_system_number contained +syn keyword ngxThirdPartyGeoIP2Keyword  autonomous_system_organization contained +syn keyword ngxThirdPartyGeoIP2Keyword  domain contained +syn keyword ngxThirdPartyGeoIP2Keyword  ip_address contained +syn keyword ngxThirdPartyGeoIP2Keyword  is_anonymous_proxy contained +syn keyword ngxThirdPartyGeoIP2Keyword  is_satellite_provider contained +syn keyword ngxThirdPartyGeoIP2Keyword  isp contained +syn keyword ngxThirdPartyGeoIP2Keyword  organization contained +syn keyword ngxThirdPartyGeoIP2Keyword  user_type contained +" /Traits Keys +hi link ngxThirdPartyGeoIP2Keyword ngxThirdPartyKeyword  endif diff --git a/syntax/nginx.vim b/syntax/nginx.vim index 5039a8c3..e20d49ef 100644 --- a/syntax/nginx.vim +++ b/syntax/nginx.vim @@ -7,25 +7,20 @@ if exists("b:current_syntax")    finish  end +" Patch 7.4.1142  if has("patch-7.4-1142")    if has("win32")      syn iskeyword @,48-57,_,128-167,224-235,.,/,:    else      syn iskeyword @,48-57,_,192-255,.,/,:    endif -else -  setlocal iskeyword+=. -  setlocal iskeyword+=/ -  setlocal iskeyword+=:  endif  syn match ngxVariable '\$\(\w\+\|{\w\+}\)'  syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained  syn match ngxComment ' *#.*$' -syn match ngxRewriteURI /\S\+/ contained contains=ngxVariableString nextgroup=ngxURI skipwhite -syn match ngxURI /\S\+/ contained contains=ngxVariableString skipwhite -syn match ngxLocationPath /[^ {]\+/ contained -syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString +syn match ngxLocationPath /\S\+/ contained +syn region ngxString start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString  syn keyword ngxBoolean on  syn keyword ngxBoolean off @@ -37,9 +32,9 @@ syn keyword ngxDirectiveBlock events  syn keyword ngxDirectiveBlock server  syn keyword ngxDirectiveBlock stream  syn keyword ngxDirectiveBlock types -syn match   ngxLocationOperator /\(=\|\~\*\|\^\~\|\~\)/ contained nextgroup=ngxLocationPath,ngxString skipwhite +syn match   ngxLocationOperator /\(=\|\~\*\|\^\~\|\~\)/ contained nextgroup=ngxLocationPath,ngxString skipwhite skipempty  syn match   ngxLocationNamedLoc /@\w\+/ -syn keyword ngxDirectiveBlock location nextgroup=ngxLocationNamedLoc,ngxLocationOperator,ngxLocationPath,ngxString skipwhite +syn keyword ngxDirectiveBlock location nextgroup=ngxLocationNamedLoc,ngxLocationOperator,ngxLocationPath,ngxString skipwhite skipempty  syn keyword ngxDirectiveBlock upstream  syn keyword ngxDirectiveBlock charset_map  syn keyword ngxDirectiveBlock limit_except @@ -52,7 +47,8 @@ syn keyword ngxDirectiveImportant include  syn keyword ngxDirectiveImportant root  syn keyword ngxDirectiveImportant server  syn keyword ngxDirectiveImportant server_name -syn keyword ngxDirectiveImportant listen +syn keyword ngxDirectiveImportant listen contained +syn region  ngxDirectiveImportantListen matchgroup=ngxDirectiveImportant start=+listen+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxListenOptions,ngxString  syn keyword ngxDirectiveImportant internal  syn keyword ngxDirectiveImportant proxy_pass  syn keyword ngxDirectiveImportant memcached_pass @@ -61,19 +57,48 @@ syn keyword ngxDirectiveImportant scgi_pass  syn keyword ngxDirectiveImportant uwsgi_pass  syn keyword ngxDirectiveImportant try_files +syn keyword ngxListenOptions default_server contained +syn keyword ngxListenOptions ssl            contained +syn keyword ngxListenOptions http2          contained +syn keyword ngxListenOptions spdy           contained +syn keyword ngxListenOptions proxy_protocol contained +syn keyword ngxListenOptions setfib         contained +syn keyword ngxListenOptions fastopen       contained +syn keyword ngxListenOptions backlog        contained +syn keyword ngxListenOptions rcvbuf         contained +syn keyword ngxListenOptions sndbuf         contained +syn keyword ngxListenOptions accept_filter  contained +syn keyword ngxListenOptions deferred       contained +syn keyword ngxListenOptions bind           contained +syn keyword ngxListenOptions ipv6only       contained +syn keyword ngxListenOptions reuseport      contained +syn keyword ngxListenOptions so_keepalive   contained +syn keyword ngxListenOptions keepidle       contained +  syn keyword ngxDirectiveControl break -syn keyword ngxDirectiveControl return -syn keyword ngxDirectiveControl rewrite nextgroup=ngxRewriteURI skipwhite +syn keyword ngxDirectiveControl return nextgroup=ngxStatusCode skipwhite skipempty +syn keyword ngxDirectiveControl rewrite nextgroup=ngxRewriteURI skipwhite skipempty  syn keyword ngxDirectiveControl set -syn keyword ngxRewriteFlag last -syn keyword ngxRewriteFlag break -syn keyword ngxRewriteFlag redirect -syn keyword ngxRewriteFlag permanent +syn match ngxStatusCode  /\d\d\d/ contained +syn match ngxStatusCodes /\d\d\d/ contained contains=ngxStatusCode nextgroup=ngxStatusCode skipwhite skipempty + +syn match  ngxRewriteURI  /\S\+/ contained contains=ngxVariableString nextgroup=ngxRewritedURI skipwhite skipempty +syn region ngxRewriteURI  start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString nextgroup=ngxRewritedURI skipwhite skipempty +syn match  ngxRewritedURI /\S\+/ contained contains=ngxVariableString nextgroup=ngxRewriteFlag skipwhite skipempty +syn region ngxRewritedURI start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString nextgroup=ngxRewriteFlag skipwhite skipempty + +syn keyword ngxRewriteFlag last      contained +syn keyword ngxRewriteFlag break     contained +syn keyword ngxRewriteFlag redirect  contained +syn keyword ngxRewriteFlag permanent contained -syn keyword ngxDirectiveError error_page +syn keyword ngxDirectiveError error_page nextgroup=ngxErrorStatusCode skipwhite skipempty  syn keyword ngxDirectiveError post_action +syn match ngxErrorStatusCode   /\d\d\d/ contained contains=ngxStatusCode nextgroup=ngxErrorResponseCode skipwhite skipempty +syn match ngxErrorResponseCode /=\d\d\d/ contained contains=ngxStatusCode +  syn keyword ngxDirectiveDeprecated connections  syn keyword ngxDirectiveDeprecated imap  syn keyword ngxDirectiveDeprecated limit_zone @@ -82,14 +107,6 @@ syn keyword ngxDirectiveDeprecated open_file_cache_retest  syn keyword ngxDirectiveDeprecated optimize_server_names  syn keyword ngxDirectiveDeprecated satisfy_any  syn keyword ngxDirectiveDeprecated so_keepalive -syn keyword ngxDirectiveDeprecated spdy_chunk_size -syn keyword ngxDirectiveDeprecated spdy_headers_comp -syn keyword ngxDirectiveDeprecated spdy_keepalive_timeout -syn keyword ngxDirectiveDeprecated spdy_max_concurrent_streams -syn keyword ngxDirectiveDeprecated spdy_pool_size -syn keyword ngxDirectiveDeprecated spdy_recv_buffer_size -syn keyword ngxDirectiveDeprecated spdy_recv_timeout -syn keyword ngxDirectiveDeprecated spdy_streams_index_size  syn keyword ngxDirective absolute_redirect  syn keyword ngxDirective accept_mutex @@ -235,7 +252,6 @@ syn keyword ngxDirective hls_forward_args  syn keyword ngxDirective hls_fragment  syn keyword ngxDirective hls_mp4_buffer_size  syn keyword ngxDirective hls_mp4_max_buffer_size -syn keyword ngxDirective http2 " Not a real directive  syn keyword ngxDirective http2_chunk_size  syn keyword ngxDirective http2_body_preread_size  syn keyword ngxDirective http2_idle_timeout @@ -277,13 +293,13 @@ syn keyword ngxDirective least_conn  syn keyword ngxDirective least_time  syn keyword ngxDirective limit_conn  syn keyword ngxDirective limit_conn_log_level -syn keyword ngxDirective limit_conn_status +syn keyword ngxDirective limit_conn_status nextgroup=ngxStatusCode skipwhite skipempty  syn keyword ngxDirective limit_conn_zone  syn keyword ngxDirective limit_rate  syn keyword ngxDirective limit_rate_after  syn keyword ngxDirective limit_req  syn keyword ngxDirective limit_req_log_level -syn keyword ngxDirective limit_req_status +syn keyword ngxDirective limit_req_status nextgroup=ngxStatusCode skipwhite skipempty  syn keyword ngxDirective limit_req_zone  syn keyword ngxDirective lingering_close  syn keyword ngxDirective lingering_time @@ -343,8 +359,8 @@ syn keyword ngxDirective postpone_gzipping  syn keyword ngxDirective postpone_output  syn keyword ngxDirective preread_buffer_size  syn keyword ngxDirective preread_timeout -syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite -syn keyword ngxMailProtocol imap pop3 smtp +syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite skipempty +syn keyword ngxMailProtocol imap pop3 smtp contained  syn keyword ngxDirective proxy  syn keyword ngxDirective proxy_bind  syn keyword ngxDirective proxy_buffer @@ -366,7 +382,7 @@ syn keyword ngxDirective proxy_cache_path  syn keyword ngxDirective proxy_cache_purge  syn keyword ngxDirective proxy_cache_revalidate  syn keyword ngxDirective proxy_cache_use_stale -syn keyword ngxDirective proxy_cache_valid +syn keyword ngxDirective proxy_cache_valid nextgroup=ngxStatusCodes skipwhite skipempty  syn keyword ngxDirective proxy_connect_timeout  syn keyword ngxDirective proxy_cookie_domain  syn keyword ngxDirective proxy_cookie_path @@ -406,7 +422,7 @@ syn keyword ngxDirective proxy_ssl_ciphers  syn keyword ngxDirective proxy_ssl_crl  syn keyword ngxDirective proxy_ssl_name  syn keyword ngxDirective proxy_ssl_password_file -syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite +syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite skipempty  syn keyword ngxDirective proxy_ssl_server_name  syn keyword ngxDirective proxy_ssl_session_reuse  syn keyword ngxDirective proxy_ssl_trusted_certificate @@ -499,6 +515,14 @@ syn keyword ngxDirective smtp_capabilities  syn keyword ngxDirective smtp_client_buffer  syn keyword ngxDirective smtp_greeting_delay  syn keyword ngxDirective source_charset +syn keyword ngxDirective spdy_chunk_size +syn keyword ngxDirective spdy_headers_comp +syn keyword ngxDirective spdy_keepalive_timeout +syn keyword ngxDirective spdy_max_concurrent_streams +syn keyword ngxDirective spdy_pool_size +syn keyword ngxDirective spdy_recv_buffer_size +syn keyword ngxDirective spdy_recv_timeout +syn keyword ngxDirective spdy_streams_index_size  syn keyword ngxDirective ssi  syn keyword ngxDirective ssi_ignore_recycled_buffers  syn keyword ngxDirective ssi_last_modified @@ -520,8 +544,8 @@ syn keyword ngxDirective ssl_handshake_timeout  syn keyword ngxDirective ssl_password_file  syn keyword ngxDirective ssl_prefer_server_ciphers  syn keyword ngxDirective ssl_preread -syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol skipwhite -syn keyword ngxSSLProtocol SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 +syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol skipwhite skipempty +syn keyword ngxSSLProtocol SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 contained nextgroup=ngxSSLProtocol skipwhite skipempty  syn keyword ngxDirective ssl_session_cache  syn keyword ngxDirective ssl_session_ticket_key  syn keyword ngxDirective ssl_session_tickets @@ -612,7 +636,7 @@ syn keyword ngxDirective uwsgi_ssl_ciphers  syn keyword ngxDirective uwsgi_ssl_crl  syn keyword ngxDirective uwsgi_ssl_name  syn keyword ngxDirective uwsgi_ssl_password_file -syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite +syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite skipempty  syn keyword ngxDirective uwsgi_ssl_server_name  syn keyword ngxDirective uwsgi_ssl_session_reuse  syn keyword ngxDirective uwsgi_ssl_trusted_certificate @@ -694,8 +718,8 @@ syn keyword ngxDirectiveDeprecated accesskey_signature  " syn keyword ngxDirectiveThirdParty fastcgi_store_access  " syn keyword ngxDirectiveThirdParty fastcgi_temp_file_write_size  " syn keyword ngxDirectiveThirdParty fastcgi_temp_path -syn keyword ngxDirectiveThirdParty fastcgi_upstream_fail_timeout -syn keyword ngxDirectiveThirdParty fastcgi_upstream_max_fails +syn keyword ngxDirectiveDeprecated fastcgi_upstream_fail_timeout +syn keyword ngxDirectiveDeprecated fastcgi_upstream_max_fails  " Akamai G2O Module <https://github.com/kaltura/nginx_mod_akamai_g2o>  " Nginx Module for Authenticating Akamai G2O requests @@ -924,7 +948,48 @@ syn keyword ngxDirectiveDeprecated geoip_country_file  " GeoIP 2 Module <https://github.com/leev/ngx_http_geoip2_module>  " Creates variables with values from the maxmind geoip2 databases based on the client IP -syn keyword ngxDirectiveThirdParty geoip2 +syn keyword ngxDirectiveThirdParty      geoip2 nextgroup=ngxThirdPartyGeoIP2Database skipwhite skipempty +syn match   ngxThirdPartyGeoIP2Database /\S\+/ contained nextgroup=ngxThirdPartyGeoIP2Block skipwhite skipempty +syn region  ngxThirdPartyGeoIP2Block    start=/{/ end=/}/ contained contains=ngxThirdPartyGeoIP2Keyword,ngxVariable +syn keyword ngxThirdPartyGeoIP2Keyword  de en es fr ja pt-BR ru zh-CN contained +syn match   ngxThirdPartyGeoIP2Keyword  /pt-BR|zh-CN/ contained +syn keyword ngxThirdPartyGeoIP2Keyword  default source contained +" Common Keys +syn keyword ngxThirdPartyGeoIP2Keyword  code confidence geoname_id names iso_code contained +" /Common Keys +syn keyword ngxThirdPartyGeoIP2Keyword  city contained +syn keyword ngxThirdPartyGeoIP2Keyword  continent contained +syn keyword ngxThirdPartyGeoIP2Keyword  country contained +syn keyword ngxThirdPartyGeoIP2Keyword  location contained +" Location Keys +syn keyword ngxThirdPartyGeoIP2Keyword  accuracy_radius contained +syn keyword ngxThirdPartyGeoIP2Keyword  average_income contained +syn keyword ngxThirdPartyGeoIP2Keyword  latitude contained +syn keyword ngxThirdPartyGeoIP2Keyword  longitude contained +syn keyword ngxThirdPartyGeoIP2Keyword  metro_code contained +syn keyword ngxThirdPartyGeoIP2Keyword  population_density contained +syn keyword ngxThirdPartyGeoIP2Keyword  time_zone contained +syn keyword ngxThirdPartyGeoIP2Keyword  postal  contained +" /Location Keys +syn keyword ngxThirdPartyGeoIP2Keyword  registered_country contained +syn keyword ngxThirdPartyGeoIP2Keyword  represented_country contained +" Represented Country Keys +syn keyword ngxThirdPartyGeoIP2Keyword  type contained +" /Represented Country Keys +syn keyword ngxThirdPartyGeoIP2Keyword  subdivisions contained +syn keyword ngxThirdPartyGeoIP2Keyword  traits contained +" Traits Keys +syn keyword ngxThirdPartyGeoIP2Keyword  autonomous_system_number contained +syn keyword ngxThirdPartyGeoIP2Keyword  autonomous_system_organization contained +syn keyword ngxThirdPartyGeoIP2Keyword  domain contained +syn keyword ngxThirdPartyGeoIP2Keyword  ip_address contained +syn keyword ngxThirdPartyGeoIP2Keyword  is_anonymous_proxy contained +syn keyword ngxThirdPartyGeoIP2Keyword  is_satellite_provider contained +syn keyword ngxThirdPartyGeoIP2Keyword  isp contained +syn keyword ngxThirdPartyGeoIP2Keyword  organization contained +syn keyword ngxThirdPartyGeoIP2Keyword  user_type contained +" /Traits Keys +hi link ngxThirdPartyGeoIP2Keyword ngxThirdPartyKeyword  " GridFS Module <https://github.com/mdirolf/nginx-gridfs>  " Nginx module for serving files from MongoDB's GridFS @@ -2131,6 +2196,7 @@ hi link ngxLocationPath String  hi link ngxLocationNamedLoc Identifier  hi link ngxBoolean Boolean +hi link ngxStatusCode Number  hi link ngxRewriteFlag Boolean  hi link ngxDirectiveBlock Statement  hi link ngxDirectiveImportant Type @@ -2140,6 +2206,12 @@ hi link ngxDirectiveDeprecated Error  hi link ngxDirective Identifier  hi link ngxDirectiveThirdParty Special +hi link ngxListenOptions Keyword +hi link ngxMailProtocol Keyword +hi link ngxSSLProtocol Keyword + +hi link ngxThirdPartyKeyword keyword +  let b:current_syntax = "nginx" diff --git a/syntax/plantuml.vim b/syntax/plantuml.vim index e3527dd2..45308ee8 100644 --- a/syntax/plantuml.vim +++ b/syntax/plantuml.vim @@ -130,7 +130,7 @@ syntax keyword plantumlSkinparamKeyword ActorFontSize ActorFontStyle ActorStereo  syntax keyword plantumlSkinparamKeyword ActorStereotypeFontSize ActorStereotypeFontStyle ArrowColor ArrowFontColor  syntax keyword plantumlSkinparamKeyword ArrowFontName ArrowFontSize ArrowFontStyle AttributeFontColor AttributeFontName  syntax keyword plantumlSkinparamKeyword AttributeFontSize AttributeFontStyle AttributeIconSize BarColor -syntax keyword plantumlSkinparamKeyword BorderColor CharacterFontColor CharacterFontName CharacterFontSize +syntax keyword plantumlSkinparamKeyword BorderColor BoxPadding CharacterFontColor CharacterFontName CharacterFontSize  syntax keyword plantumlSkinparamKeyword CharacterFontStyle CharacterRadius Color DividerBackgroundColor  syntax keyword plantumlSkinparamKeyword DividerFontColor DividerFontName DividerFontSize DividerFontStyle EndColor  syntax keyword plantumlSkinparamKeyword FontColor FontName FontSize FontStyle GroupBackgroundColor GroupingFontColor @@ -139,7 +139,7 @@ syntax keyword plantumlSkinparamKeyword GroupingHeaderFontName GroupingHeaderFon  syntax keyword plantumlSkinparamKeyword InterfaceBackgroundColor InterfaceBorderColor LifeLineBackgroundColor  syntax keyword plantumlSkinparamKeyword LifeLineBorderColor ParticipantBackgroundColor ParticipantBorderColor  syntax keyword plantumlSkinparamKeyword ParticipantFontColor ParticipantFontName ParticipantFontSize -syntax keyword plantumlSkinparamKeyword ParticipantFontStyle StartColor StereotypeFontColor +syntax keyword plantumlSkinparamKeyword ParticipantFontStyle ParticipantPadding StartColor StereotypeFontColor  syntax keyword plantumlSkinparamKeyword StereotypeFontName StereotypeFontSize StereotypeFontStyle  " Highlight diff --git a/syntax/pug.vim b/syntax/pug.vim index 85cfbcd8..03f62707 100644 --- a/syntax/pug.vim +++ b/syntax/pug.vim @@ -32,12 +32,12 @@ syn region  pugJavascript matchgroup=pugJavascriptOutputChar start="[!&]\==\|\~"  syn region  pugJavascript matchgroup=pugJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend  syn cluster pugTop contains=pugBegin,pugComment,pugHtmlComment,pugJavascript  syn match   pugBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=pugTag,pugClassChar,pugIdChar,pugPlainChar,pugJavascript,pugScriptConditional,pugScriptStatement,pugPipedText -syn match   pugTag "+\?\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@pugComponent +syn match   pugTag "+\?[[:alnum:]_-]\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@pugComponent  syn cluster pugComponent contains=pugAttributes,pugIdChar,pugBlockExpansionChar,pugClassChar,pugPlainChar,pugJavascript,pugTagBlockChar,pugTagInlineText  syntax keyword pugCommentTodo  contained TODO FIXME XXX TBD -syn match   pugComment '\(\s\+\|^\)\/\/.*$' contains=pugCommentTodo -syn region  pugCommentBlock start="\z(\s\+\|^\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" contains=pugCommentTodo keepend -syn region  pugHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->" contains=pugCommentTodo +syn match   pugComment '\(\s\+\|^\)\/\/.*$' contains=pugCommentTodo,@Spell +syn region  pugCommentBlock start="\z(\s\+\|^\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" contains=pugCommentTodo,@Spell keepend +syn region  pugHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->" contains=pugCommentTodo,@Spell  syn region  pugAngular2 start="(" end=")" contains=htmlEvent  syn region  pugAttributes matchgroup=pugAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,pugHtmlArg,pugAngular2,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent  syn match   pugClassChar "\." containedin=htmlTagName nextgroup=pugClass @@ -54,10 +54,10 @@ syn keyword pugHtmlArg contained href title  syn match   pugPlainChar "\\" contained  syn region  pugInterpolation matchgroup=pugInterpolationDelimiter start="[#!]{" end="}" contains=@htmlJavascript  syn match   pugInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)" -syn match   pugTagInlineText "\s.*$" contained contains=pugInterpolation,pugTextInlinePug +syn match   pugTagInlineText "\s.*$" contained contains=pugInterpolation,pugTextInlinePug,@Spell  syn region  pugPipedText matchgroup=pugPipeChar start="|" end="$" contained contains=pugInterpolation,pugTextInlinePug nextgroup=pugPipedText skipnl  syn match   pugTagBlockChar "\.$" contained nextgroup=pugTagBlockText,pugTagBlockEnd skipnl -syn region  pugTagBlockText start="\%(\s*\)\S" end="\ze\n" contained contains=pugInterpolation,pugTextInlinePug nextgroup=pugTagBlockText,pugTagBlockEnd skipnl +syn region  pugTagBlockText start="\%(\s*\)\S" end="\ze\n" contained contains=pugInterpolation,pugTextInlinePug,@Spell nextgroup=pugTagBlockText,pugTagBlockEnd skipnl  syn region  pugTagBlockEnd start="\s*\S" end="$" contained contains=pugInterpolation,pugTextInlinePug nextgroup=pugBegin skipnl  syn region  pugTextInlinePug matchgroup=pugInlineDelimiter start="#\[" end="]" contains=pugTag keepend diff --git a/syntax/swift.vim b/syntax/swift.vim index 009c5b45..cd5177b4 100644 --- a/syntax/swift.vim +++ b/syntax/swift.vim @@ -243,7 +243,7 @@ syntax keyword swiftPreprocessor  syntax match swiftComment "\v\/\/.*$"        \ contains=swiftTodos,swiftDocString,swiftMarker,@Spell oneline  syntax region swiftComment start="/\*" end="\*/" -      \ contains=swiftTodos,swiftDocString,swiftMarker,swiftComment,@Spell fold +      \ contains=swiftTodos,swiftDocString,swiftMarker,@Spell fold  " Set highlights diff --git a/syntax/terraform.vim b/syntax/terraform.vim index 0ae9e191..a06eeb9d 100644 --- a/syntax/terraform.vim +++ b/syntax/terraform.vim @@ -14,26 +14,39 @@ syn keyword terraValueBool true false on off yes no  """ data  syn keyword terraDataTypeBI +          \ alicloud_images +          \ alicloud_instance_types +          \ alicloud_regions +          \ alicloud_zones            \ archive_file            \ atlas_artifact            \ aws_acm_certificate            \ aws_alb            \ aws_alb_listener            \ aws_ami +          \ aws_autoscaling_groups            \ aws_availability_zone            \ aws_availability_zones            \ aws_billing_service_account            \ aws_caller_identity +          \ aws_canonical_user_id            \ aws_cloudformation_stack +          \ aws_db_instance            \ aws_ebs_snapshot            \ aws_ebs_volume +          \ aws_ecs_cluster            \ aws_ecs_container_definition +          \ aws_ecs_task_definition            \ aws_eip +          \ aws_elb_hosted_zone_id            \ aws_elb_service_account            \ aws_iam_account_alias            \ aws_iam_policy_document            \ aws_iam_server_certificate +          \ aws_instance            \ aws_ip_ranges +          \ aws_kms_secret +          \ aws_partition            \ aws_prefix_list            \ aws_redshift_service_account            \ aws_region @@ -43,17 +56,23 @@ syn keyword terraDataTypeBI            \ aws_security_group            \ aws_subnet            \ aws_vpc +          \ aws_vpc_endpoint            \ aws_vpc_endpoint_service            \ aws_vpc_peering_connection +          \ aws_vpn_gateway            \ azurerm_client_config            \ consul_keys            \ docker_registry_image            \ external            \ fastly_ip_ranges +          \ google_compute_zones            \ google_iam_policy            \ newrelic_application +          \ ns1_datasource            \ null_data_source            \ opsgenie_user +          \ pagerduty_escalation_policy +          \ pagerduty_schedule            \ pagerduty_user            \ pagerduty_vendor            \ scaleway_bootscript @@ -65,6 +84,20 @@ syn keyword terraDataTypeBI  """ resource  syn keyword terraResourceTypeBI +          \ alicloud_disk +          \ alicloud_disk_attachment +          \ alicloud_eip +          \ alicloud_eip_association +          \ alicloud_instance +          \ alicloud_nat_gateway +          \ alicloud_route_entry +          \ alicloud_security_group +          \ alicloud_security_group_rule +          \ alicloud_slb +          \ alicloud_slb_attachment +          \ alicloud_subnet +          \ alicloud_vpc +          \ alicloud_vswitch            \ arukas_container            \ atlas_artifact            \ aws_alb @@ -110,11 +143,16 @@ syn keyword terraResourceTypeBI            \ aws_cloudwatch_log_stream            \ aws_cloudwatch_log_subscription_filter            \ aws_cloudwatch_metric_alarm +          \ aws_codebuild_project            \ aws_codecommit_repository            \ aws_codecommit_trigger            \ aws_codedeploy_app            \ aws_codedeploy_deployment_config            \ aws_codedeploy_deployment_group +          \ aws_config_config_rule +          \ aws_config_configuration_recorder +          \ aws_config_configuration_recorder_status +          \ aws_config_delivery_channel            \ aws_customer_gateway            \ aws_db_event_subscription            \ aws_db_instance @@ -126,6 +164,11 @@ syn keyword terraResourceTypeBI            \ aws_default_route_table            \ aws_default_security_group            \ aws_directory_service_directory +          \ aws_dms_certificate +          \ aws_dms_endpoint +          \ aws_dms_replication_instance +          \ aws_dms_replication_subnet_group +          \ aws_dms_replication_task            \ aws_dynamodb_table            \ aws_ebs_snapshot            \ aws_ebs_volume @@ -147,6 +190,7 @@ syn keyword terraResourceTypeBI            \ aws_elasticache_security_group            \ aws_elasticache_subnet_group            \ aws_elasticsearch_domain +          \ aws_elasticsearch_domain_policy            \ aws_elastictranscoder_pipeline            \ aws_elastictranscoder_preset            \ aws_elb @@ -174,6 +218,9 @@ syn keyword terraResourceTypeBI            \ aws_iam_user_policy            \ aws_iam_user_policy_attachment            \ aws_iam_user_ssh_key +          \ aws_inspector_assessment_target +          \ aws_inspector_assessment_template +          \ aws_inspector_resource_group            \ aws_instance            \ aws_internet_gateway            \ aws_key_pair @@ -244,6 +291,8 @@ syn keyword terraResourceTypeBI            \ aws_ses_receipt_filter            \ aws_ses_receipt_rule            \ aws_ses_receipt_rule_set +          \ aws_sfn_activity +          \ aws_sfn_state_machine            \ aws_simpledb_domain            \ aws_snapshot_create_volume_permission            \ aws_sns_topic @@ -265,6 +314,7 @@ syn keyword terraResourceTypeBI            \ aws_vpc_endpoint            \ aws_vpc_endpoint_route_table_association            \ aws_vpc_peering_connection +          \ aws_vpc_peering_connection_accepter            \ aws_vpn_connection            \ aws_vpn_connection_route            \ aws_vpn_gateway @@ -296,6 +346,7 @@ syn keyword terraResourceTypeBI            \ azurerm_cdn_endpoint            \ azurerm_cdn_profile            \ azurerm_container_registry +          \ azurerm_container_service            \ azurerm_dns_a_record            \ azurerm_dns_aaaa_record            \ azurerm_dns_cname_record @@ -455,6 +506,8 @@ syn keyword terraResourceTypeBI            \ google_dns_managed_zone            \ google_dns_record_set            \ google_project +          \ google_project_iam_policy +          \ google_project_services            \ google_pubsub_subscription            \ google_pubsub_topic            \ google_service_account @@ -539,6 +592,7 @@ syn keyword terraResourceTypeBI            \ packet_project            \ packet_ssh_key            \ packet_volume +          \ pagerduty_addon            \ pagerduty_escalation_policy            \ pagerduty_schedule            \ pagerduty_service @@ -550,6 +604,14 @@ syn keyword terraResourceTypeBI            \ postgresql_role            \ postgresql_schema            \ powerdns_record +          \ profitbricks_datacenter +          \ profitbricks_firewall +          \ profitbricks_ipblock +          \ profitbricks_lan +          \ profitbricks_loadbalancer +          \ profitbricks_nic +          \ profitbricks_server +          \ profitbricks_volume            \ rabbitmq_binding            \ rabbitmq_exchange            \ rabbitmq_permissions @@ -642,7 +704,7 @@ syn match terraBraces        "[{}\[\]]"  syn region terraValueString   start=/"/ skip=/\\\+"/ end=/"/ contains=terraStringInterp  syn region terraStringInterp  matchgroup=terraBrackets start=/\${/ end=/}/ contains=terraValueFunction contained  "" TODO match keywords here, not a-z+ -syn region terraValueFunction matchgroup=terraBrackets start=/[a-z]\+(/ end=/)/ contains=terraValueString,terraValueFunction contained +syn region terraValueFunction matchgroup=terraBrackets start=/[0-9a-z]\+(/ end=/)/ contains=terraValueString,terraValueFunction contained  hi def link terraComment           Comment  hi def link terraTodo              Todo diff --git a/syntax/typescript.vim b/syntax/typescript.vim index f129731f..9e5d08be 100644 --- a/syntax/typescript.vim +++ b/syntax/typescript.vim @@ -124,7 +124,7 @@ syntax keyword typescriptGlobalObjects Array Boolean Date Function Infinity Math  syntax keyword typescriptExceptions try catch throw finally Error EvalError RangeError ReferenceError SyntaxError TypeError URIError -syntax keyword typescriptReserved constructor declare as interface module abstract enum int short export interface static byte extends long super char final native synchronized class float package throws goto private transient debugger implements protected volatile double import public type namespace from get set +syntax keyword typescriptReserved constructor declare as interface module abstract enum int short export interface static byte extends long super char final native synchronized class float package throws goto private transient debugger implements protected volatile double import public type namespace from get set keyof  "}}}  "" typescript/DOM/HTML/CSS specified things"{{{ @@ -134,7 +134,7 @@ syntax keyword typescriptReserved constructor declare as interface module abstra    syn match typescriptParameters "([a-zA-Z0-9_?.$][\w?.$]*)\s*:\s*([a-zA-Z0-9_?.$][\w?.$]*)" contained skipwhite  "}}}  " DOM2 Objects"{{{ -  syntax keyword typescriptType DOMImplementation DocumentFragment Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction void any string boolean number symbol never +  syntax keyword typescriptType DOMImplementation DocumentFragment Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction void any string boolean number symbol never object    syntax keyword typescriptExceptions DOMException  "}}}  " DOM2 CONSTANT"{{{ diff --git a/syntax/vala.vim b/syntax/vala.vim index 52359f87..5c43c73f 100644 --- a/syntax/vala.vim +++ b/syntax/vala.vim @@ -7,7 +7,6 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1  " 		pancake <pancake@nopcode.org>  " 		Sebastian Reichel <sre@ring0.de>  " 		AdriĆ  Arrufat <adria.arrufat@protonmail.ch> -" Last Change: 	2016-10-20  " Filenames: 	*.vala *.vapi *.valadoc  "  " REFERENCES: @@ -53,11 +52,13 @@ syn keyword valaUnspecifiedStatement	as base construct delete get in is lock new  " Arrays and Lists  syn match   valaArray			"\(\w\(\w\)*\(\s\+\)\?<\)\+\(\(\s\+\)\?\w\(\w\)*\(?\|\*\)\?\(\,\)\?\)\+>\+"  " Methods -syn match   valaMethod			"\w\(\w\)*\(\s\+\)\?("he=e-1,me=e-1 +syn match   valaMethod			"\(@\)\?\w\(\w\)*\(\s\+\)\?("he=e-1,me=e-1  " Operators  syn match   valaOperator		display "\%(+\|-\|/\|*\|=\|\^\|&\||\|!\|>\|<\|%\|?\)=\?"  " Delimiters  syn match   valaDelimiter		display "(\|)\|\[\|\]\|,\|;\|:\|{\|}\|\k\@<!_\k\@!\|[[:punct:]]\@<!@[[:punct:]]\@!" +" Enum Fields +syn match   valaEnumField		"\.\([A-Z_]\)\+\([A-Z_]\)\+"hs=s+1 " ensure there are at least 2 CAPS  " Comments  syn cluster valaCommentGroup 		contains=valaTodo @@ -67,9 +68,9 @@ syn keyword valaTodo 			contained TODO FIXME XXX NOTE  if !exists("vala_ignore_valadoc")    syn cluster valaDocCommentGroup	contains=valaDocTags,valaDocSeeTag    syn region  valaDocTags 		contained start="{@\(link\|inherit[Dd]oc\)" end="}" -  syn match   valaDocTags 		contained "@\(param\|exception\|throws\|since\)\s\+\S\+" contains=valaDocParam +  syn match   valaDocTags 		contained "@\(param\|exception\|throws\|since\|[Vv]ersion\)\s\+\S\+" contains=valaDocParam    syn match   valaDocParam 		contained "\s\S\+" -  syn match   valaDocTags 		contained "@\(return\|deprecated\)\>" +  syn match   valaDocTags 		contained "@\(return\)\>"    syn region  valaDocSeeTag		contained matchgroup=valaDocTags start="@see\s\+" matchgroup=NONE end="\_."re=e-1 contains=valaDocSeeTagParam    syn match   valaDocSeeTagParam	contained @"\_[^"]\+"\|<a\s\+\_.\{-}</a>\|\(\k\|\.\)*\(#\k\+\((\_[^)]\+)\)\=\)\=@ extend  endif @@ -110,6 +111,9 @@ syntax match valaCommentStartError 	display "/\*"me=e-1 contained  " match the special comment /**/  syn match   valaComment		 	"/\*\*/" +" comment script lines +syn region   valaScript			start="^#!" end="$" +  " Vala Code Attributes  syn region  valaAttribute 		start="^\s*\[" end="\]" contains=valaComment,valaString keepend  syn region  valaAttribute 		start="\[CCode" end="\]" contains=valaComment,valaString @@ -175,6 +179,7 @@ hi def link valaArray			StorageClass  hi def link valaMethod			Function  hi def link valaOperator		Operator  hi def link valaDelimiter		Delimiter +hi def link valaEnumField		Constant  hi def link valaCommentError		Error  hi def link valaCommentStartError	Error @@ -187,6 +192,7 @@ hi def link valaCommentL		valaComment  hi def link valaCommentStart		valaComment  hi def link valaCommentSkip		valaComment  hi def link valaComment			Comment +hi def link valaScript			Comment  hi def link valaDocComment		Comment  hi def link valaDocTags 		Special  hi def link valaDocParam 		Function diff --git a/syntax/vue.vim b/syntax/vue.vim index 89b5b794..a3ab794c 100644 --- a/syntax/vue.vim +++ b/syntax/vue.vim @@ -27,84 +27,70 @@ if !exists("s:syntaxes")      return syntaxes    endfunction -  let s:syntaxes = s:search_syntaxes('pug', 'slm', 'coffee', 'stylus', 'sass', 'scss', 'less') +  let s:syntaxes = s:search_syntaxes('pug', 'slm', 'coffee', 'stylus', 'sass', 'scss', 'less', 'typescript')  endif  syntax include @HTML syntax/html.vim -if exists("b:current_syntax") -  unlet b:current_syntax -endif -syntax region html keepend start=/^<template>/ end=/^<\/template>/ contains=@HTML fold +unlet! b:current_syntax +syntax region html keepend start=/^<template\_[^>]*>/ end=/^<\/template>/ contains=@HTML fold  if s:syntaxes.pug    syntax include @PUG syntax/pug.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif +  unlet! b:current_syntax    syntax region pug keepend start=/<template lang=\("\|'\)[^\1]*pug[^\1]*\1>/ end="</template>" contains=@PUG fold    syntax region pug keepend start=/<template lang=\("\|'\)[^\1]*jade[^\1]*\1>/ end="</template>" contains=@PUG fold  endif  if s:syntaxes.slm    syntax include @SLM syntax/slm.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif +  unlet! b:current_syntax    syntax region slm keepend start=/<template lang=\("\|'\)[^\1]*slm[^\1]*\1>/ end="</template>" contains=@SLM fold  endif  syntax include @JS syntax/javascript.vim -if exists("b:current_syntax") -  unlet b:current_syntax -endif +unlet! b:current_syntax  syntax region javascript keepend matchgroup=Delimiter start=/<script\( lang="babel"\)\?\( type="text\/babel"\)\?>/ end="</script>" contains=@JS fold +if s:syntaxes.typescript +  syntax include @TS syntax/typescript.vim +  unlet! b:current_syntax +  syntax region typescript keepend matchgroup=Delimiter start=/<script \_[^>]*\(lang=\("\|'\)[^\2]*\(ts\|typescript\)[^\2]*\2\|ts\)\_[^>]*>/ end="</script>" contains=@TS fold +endif +  if s:syntaxes.coffee    syntax include @COFFEE syntax/coffee.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif +  unlet! b:current_syntax    " Matchgroup seems to be necessary for coffee    syntax region coffee keepend matchgroup=Delimiter start="<script lang=\"coffee\">" end="</script>" contains=@COFFEE fold  endif  syntax include @CSS syntax/css.vim -if exists("b:current_syntax") -  unlet b:current_syntax -endif -syntax region css keepend start=/<style\( \+scoped\)\?>/ end="</style>" contains=@CSS fold +unlet! b:current_syntax +syntax region css keepend start=/<style\_[^>]*>/ end="</style>" contains=@CSS fold  if s:syntaxes.stylus    syntax include @stylus syntax/stylus.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif -  syntax region stylus keepend start=/<style lang=\("\|'\)[^\1]*stylus[^\1]*\1\( \+scoped\)\?>/ end="</style>" contains=@stylus fold +  unlet! b:current_syntax +  syntax region stylus keepend start=/<style \_[^>]*lang=\("\|'\)[^\1]*stylus[^\1]*\1\_[^>]*>/ end="</style>" contains=@stylus fold  endif  if s:syntaxes.sass    syntax include @sass syntax/sass.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif -  syntax region sass keepend start=/<style\( \+scoped\)\? lang=\("\|'\)[^\1]*sass[^\1]*\1\( \+scoped\)\?>/ end="</style>" contains=@sass fold +  unlet! b:current_syntax +  syntax region sass keepend start=/<style \_[^>]*lang=\("\|'\)[^\1]*sass[^\1]*\1\_[^>]*>/ end="</style>" contains=@sass fold  endif  if s:syntaxes.scss    syntax include @scss syntax/scss.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif -  syntax region scss keepend start=/<style\( \+scoped\)\? lang=\("\|'\)[^\1]*scss[^\1]*\1\( \+scoped\)\?>/ end="</style>" contains=@scss fold +  unlet! b:current_syntax +  syntax region scss keepend start=/<style \_[^>]*lang=\("\|'\)[^\1]*scss[^\1]*\1\_[^>]*>/ end="</style>" contains=@scss fold  endif  if s:syntaxes.less    syntax include @less syntax/less.vim -  if exists("b:current_syntax") -    unlet b:current_syntax -  endif -  syntax region less keepend matchgroup=PreProc start=/<style\%( \+scoped\)\? lang=\("\|'\)[^\1]*less[^\1]*\1\%( \+scoped\)\?>/ end="</style>" contains=@less fold +  unlet! b:current_syntax +  syntax region less keepend matchgroup=PreProc start=/<style \_[^>]*lang=\("\|'\)[^\1]*less[^\1]*\1\_[^>]*>/ end="</style>" contains=@less fold  endif  let b:current_syntax = "vue" | 
