mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aec5e42bdb | ||
|
|
a0c79360ed | ||
|
|
2d3b20bc68 | ||
|
|
a6b0efd530 | ||
|
|
0de043adbc | ||
|
|
67fcbd2a86 | ||
|
|
c925c92217 | ||
|
|
852d25b307 | ||
|
|
4d8ff4eabc |
16
README.md
16
README.md
@@ -40,19 +40,22 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
||||
- [emblem](https://github.com/heartsentwined/vim-emblem) (syntax, indent, ftplugin, ftdetect)
|
||||
- [erlang](https://github.com/hcs42/vim-erlang-runtime) (syntax, indent)
|
||||
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
||||
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent, ftdetect)
|
||||
- [go](https://github.com/fatih/vim-go) (syntax, indent, ftdetect)
|
||||
- [groovy](https://github.com/vim-scripts/groovy.vim) (syntax)
|
||||
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (syntax, ftplugin, ftdetect)
|
||||
- [haskell](https://github.com/raichoo/haskell-vim) (syntax, indent, ftplugin, ftdetect)
|
||||
- [haskell](https://github.com/raichoo/haskell-vim) ()
|
||||
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)
|
||||
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
|
||||
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
||||
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
|
||||
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftdetect)
|
||||
- [javascript](https://github.com/sheerun/yajs.vim) (syntax, indent)
|
||||
- [julia](https://github.com/dcjones/julia-minimalist-vim) (syntax, indent, ftdetect)
|
||||
- [json](https://github.com/sheerun/vim-json) (syntax, indent, ftdetect)
|
||||
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
||||
- [jsx](https://github.com/mxw/vim-jsx) (after)
|
||||
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftdetect)
|
||||
- [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin)
|
||||
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin, ftdetect)
|
||||
- [liquid](https://github.com/tpope/vim-liquid) (syntax, indent, ftplugin, ftdetect)
|
||||
@@ -67,6 +70,7 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
||||
- [powershell](https://github.com/Persistent13/vim-ps1) (syntax, indent, ftplugin, ftdetect)
|
||||
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, ftdetect)
|
||||
- [python](https://github.com/mitsuhiko/vim-python-combined) (syntax, indent)
|
||||
- [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin, ftdetect)
|
||||
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin)
|
||||
- [ragel](https://github.com/jneen/ragel.vim) (syntax)
|
||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
||||
@@ -103,6 +107,10 @@ let g:polyglot_disabled = ['css']
|
||||
|
||||
Note that disabiling languages won't make in general your vim startup any faster / slower (only for specific file type). Vim-polyglot is selection of language plugins that are loaded only on demand.
|
||||
|
||||
## Updating
|
||||
|
||||
You can either wait for new patch release with updates or run the `./build` script by yourself.
|
||||
|
||||
## Contributing
|
||||
|
||||
Language packs are periodically updated using automated `build` script.
|
||||
@@ -112,7 +120,3 @@ Feel free to add your language, and send pull-request.
|
||||
## License
|
||||
|
||||
See linked repositories for detailed license information.
|
||||
|
||||
|
||||
[](https://bitdeli.com/free "Bitdeli Badge")
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
setlocal comments=s1fl:{-,mb:-,ex:-},:--
|
||||
setlocal formatoptions-=cro formatoptions+=j
|
||||
setlocal iskeyword+=-,.,*
|
||||
setlocal commentstring=--\ %s
|
||||
|
||||
endif
|
||||
@@ -1,7 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
setlocal comments=s1fl:{-,mb:-,ex:-},:--
|
||||
setlocal formatoptions-=cro formatoptions+=j
|
||||
setlocal iskeyword+='
|
||||
|
||||
endif
|
||||
@@ -12,6 +12,19 @@ syn region coffeeScript start=#<script [^>]*type="text/coffeescript"[^>]*>#
|
||||
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
|
||||
\ containedin=htmlHead
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1
|
||||
|
||||
" Language: OpenGL Shading Language
|
||||
" Maintainer: Sergey Tikhomirov <sergey@tikhomirov.io>
|
||||
|
||||
syn include @GLSL syntax/glsl.vim
|
||||
syn region ShaderScript
|
||||
\ start="<script [^>]*type=\('\|\"\)x-shader/x-\(vertex\|fragment\)\('\|\"\)[^>]*>"
|
||||
\ keepend
|
||||
\ end="</script>"me=s-1
|
||||
\ contains=@GLSL,htmlScriptTag,@htmlPreproc
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
|
||||
|
||||
|
||||
6
build
6
build
@@ -111,7 +111,9 @@ PACKS="
|
||||
emblem:heartsentwined/vim-emblem
|
||||
erlang:hcs42/vim-erlang-runtime
|
||||
git:tpope/vim-git
|
||||
glsl:tikhomirov/vim-glsl
|
||||
go:fatih/vim-go:_BASIC
|
||||
groovy:vim-scripts/groovy.vim
|
||||
haml:tpope/vim-haml
|
||||
handlebars:mustache/vim-mustache-handlebars
|
||||
haskell:raichoo/haskell-vim
|
||||
@@ -119,11 +121,12 @@ PACKS="
|
||||
html5:othree/html5.vim
|
||||
jade:digitaltoad/vim-jade
|
||||
jasmine:glanotte/vim-jasmine
|
||||
javascript:pangloss/vim-javascript
|
||||
javascript:sheerun/yajs.vim
|
||||
julia:dcjones/julia-minimalist-vim
|
||||
json:sheerun/vim-json
|
||||
jst:briancollins/vim-jst
|
||||
jsx:mxw/vim-jsx:_ALL
|
||||
kotlin:udalov/kotlin-vim
|
||||
latex:LaTeX-Box-Team/LaTeX-Box
|
||||
less:groenewege/vim-less
|
||||
liquid:tpope/vim-liquid
|
||||
@@ -138,6 +141,7 @@ PACKS="
|
||||
powershell:Persistent13/vim-ps1
|
||||
protobuf:uarun/vim-protobuf
|
||||
python:mitsuhiko/vim-python-combined
|
||||
qml:peterhoeg/vim-qml
|
||||
r-lang:vim-scripts/R.vim
|
||||
ragel:jneen/ragel.vim
|
||||
rspec:sheerun/rspec.vim
|
||||
|
||||
@@ -66,7 +66,7 @@ autocmd FileType emblem set tabstop=2|set shiftwidth=2|set expandtab
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.git/{,modules/**/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG set ft=gitcommit
|
||||
autocmd BufNewFile,BufRead *.git/{,modules/**/,worktrees/*/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG set ft=gitcommit
|
||||
autocmd BufNewFile,BufRead *.git/config,.gitconfig,gitconfig,.gitmodules set ft=gitconfig
|
||||
autocmd BufNewFile,BufRead */.config/git/config set ft=gitconfig
|
||||
autocmd BufNewFile,BufRead *.git/modules/**/config set ft=gitconfig
|
||||
@@ -85,6 +85,10 @@ autocmd BufNewFile,BufRead *
|
||||
\ set filetype=gitsendemail |
|
||||
\ endif
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1
|
||||
|
||||
autocmd! BufNewFile,BufRead *.glsl,*.geom,*.vert,*.frag,*.gsh,*.vsh,*.fsh,*.vs,*.fs,*.gs,*.tcs,*.tes set filetype=glsl
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
|
||||
|
||||
let s:current_fileformats = ''
|
||||
@@ -99,7 +103,7 @@ function! s:gofiletype_post()
|
||||
let &g:fileformats = s:current_fileformats
|
||||
let &g:fileencodings = s:current_fileencodings
|
||||
endfunction
|
||||
au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix
|
||||
au BufNewFile *.go setfiletype go | setlocal fileencoding=utf-8 fileformat=unix
|
||||
au BufRead *.go call s:gofiletype_pre()
|
||||
au BufReadPost *.go call s:gofiletype_post()
|
||||
au BufRead,BufNewFile *.tmpl set filetype=gohtmltmpl
|
||||
@@ -110,10 +114,6 @@ autocmd BufNewFile,BufRead *.haml,*.hamlbars,*.hamlc setf haml
|
||||
autocmd BufNewFile,BufRead *.sass setf sass
|
||||
autocmd BufNewFile,BufRead *.scss setf scss
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
au BufRead,BufNewFile *.hsc set filetype=haskell
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haxe') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.hx setf haxe
|
||||
@@ -126,18 +126,6 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jasmine') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript syntax=jasmine
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
au BufNewFile,BufRead *.js setf javascript
|
||||
au BufNewFile,BufRead *.jsm setf javascript
|
||||
au BufNewFile,BufRead Jakefile setf javascript
|
||||
fun! s:SelectJavascript()
|
||||
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
|
||||
set ft=javascript
|
||||
endif
|
||||
endfun
|
||||
au BufNewFile,BufRead * call s:SelectJavascript()
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'json') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.json set filetype=json
|
||||
@@ -156,6 +144,11 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
|
||||
au BufRead,BufNewFile *.jl let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp<"
|
||||
au BufRead,BufNewFile *.jl set filetype=julia
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.kt setfiletype kotlin
|
||||
autocmd BufNewFile,BufRead *.kts setfiletype kotlin
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.less setf less
|
||||
@@ -256,6 +249,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
|
||||
au! BufRead,BufNewFile *.pp setfiletype puppet
|
||||
au! BufRead,BufNewFile Puppetfile setfiletype ruby
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
||||
|
||||
autocmd BufRead,BufNewFile *.qml setfiletype qml
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
function! s:setf(filetype) abort
|
||||
@@ -285,6 +282,8 @@ au BufNewFile,BufRead Puppetfile call s:setf('ruby')
|
||||
au BufNewFile,BufRead [Bb]uildfile call s:setf('ruby')
|
||||
au BufNewFile,BufRead Appraisals call s:setf('ruby')
|
||||
au BufNewFile,BufRead Podfile,*.podspec call s:setf('ruby')
|
||||
au BufNewFile,BufRead [rR]outefile call s:setf('ruby')
|
||||
au BufNewFile,BufRead .simplecov set filetype=ruby
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
@@ -358,7 +357,7 @@ autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|
||||
autocmd BufNewFile,BufRead *.ts,*.tsx setlocal filetype=typescript
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
|
||||
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
if exists("g:loaded_haskellvim_cabal")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_haskellvim_cabal = 1
|
||||
|
||||
function! s:makeSection(content)
|
||||
return "\n" . join(a:content, "\n")
|
||||
endfunction
|
||||
|
||||
function! s:exeTmpl(name, src)
|
||||
let l:exetmpl = [ 'executable ' . a:name,
|
||||
\ '-- ghc-options:',
|
||||
\ 'main-is: ' . a:src,
|
||||
\ '-- other-modules:',
|
||||
\ '-- other-extensions:',
|
||||
\ 'build-depends: base',
|
||||
\ '-- hs-source-dirs:',
|
||||
\ 'default-language: Haskell2010'
|
||||
\ ]
|
||||
|
||||
return s:makeSection(l:exetmpl)
|
||||
endfunction
|
||||
|
||||
function! s:libTmpl()
|
||||
let l:libtmpl = [ 'library',
|
||||
\ '-- ghc-options:',
|
||||
\ '-- other-modules:',
|
||||
\ '-- other-extensions:',
|
||||
\ 'build-depends: base',
|
||||
\ '-- hs-source-dirs:',
|
||||
\ 'default-language: Haskell2010'
|
||||
\ ]
|
||||
|
||||
return s:makeSection(l:libtmpl)
|
||||
endfunction
|
||||
|
||||
function! s:flagTmpl(name)
|
||||
let l:flagtmpl = [ 'flag ' . a:name,
|
||||
\ 'description:',
|
||||
\ 'default: False',
|
||||
\ 'manual: True',
|
||||
\ ]
|
||||
|
||||
return s:makeSection(l:flagtmpl)
|
||||
endfunction
|
||||
|
||||
function! cabal#addExecutable()
|
||||
let l:name = input("Enter executable name: ")
|
||||
let l:src = input("Enter source file: ")
|
||||
exe "normal Go" . s:exeTmpl(l:name, l:src)
|
||||
endfunction
|
||||
|
||||
function! cabal#addLibrary()
|
||||
exe "normal Go" . s:libTmpl()
|
||||
endfunction
|
||||
|
||||
function! cabal#addFlag()
|
||||
let l:name = input("Enter flag name: ")
|
||||
exe "normal Go" . s:flagTmpl(l:name)
|
||||
endfunction
|
||||
|
||||
command! -buffer CabalAddExecutable call cabal#addExecutable()
|
||||
command! -buffer CabalAddLibrary call cabal#addLibrary()
|
||||
command! -buffer CabalAddFlag call cabal#addFlag()
|
||||
|
||||
endif
|
||||
@@ -1,25 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
if exists("g:loaded_haskellvim_haskell")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_haskellvim_haskell = 1
|
||||
|
||||
function! haskell#makeModuleCommentBlock()
|
||||
let l:commenttmpl = [ '{-|',
|
||||
\ 'Module : ',
|
||||
\ 'Description : ',
|
||||
\ 'Copyright : ',
|
||||
\ 'License : ',
|
||||
\ 'Maintainer : ',
|
||||
\ 'Stability : ',
|
||||
\ 'Portability : ',
|
||||
\ '-}']
|
||||
|
||||
exe "normal ggO" . join(l:commenttmpl, "\n")
|
||||
endfunction
|
||||
|
||||
command! -buffer -nargs=0 HaskellAddModuleComment call haskell#makeModuleCommentBlock()
|
||||
|
||||
endif
|
||||
@@ -21,7 +21,7 @@ setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
|
||||
setlocal omnifunc=csscomplete#CompleteCSS
|
||||
setlocal suffixesadd=.less
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,://
|
||||
setlocal fo=jcroql
|
||||
setlocal fo=croql
|
||||
|
||||
let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ setlocal define=[^A-Za-z_]
|
||||
" after/ftplugin/perl6.vim file that contains
|
||||
" set isfname-=:
|
||||
set isfname+=:
|
||||
setlocal iskeyword=@,48-57,_,192-255,:,-,'
|
||||
setlocal iskeyword=@,48-57,_,192-255,-
|
||||
|
||||
" Set this once, globally.
|
||||
if !exists("perlpath")
|
||||
|
||||
41
ftplugin/qml.vim
Normal file
41
ftplugin/qml.vim
Normal file
@@ -0,0 +1,41 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: qml
|
||||
" Last change: 2014 Feb 8
|
||||
|
||||
if exists( 'b:did_ftplugin' )
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpoptions_save = &cpoptions
|
||||
set cpoptions&vim
|
||||
|
||||
" command for undo
|
||||
let b:undo_ftplugin =
|
||||
\ 'let b:browsefilter = "" | ' .
|
||||
\ 'setlocal ' .
|
||||
\ 'comments< '.
|
||||
\ 'commentstring< ' .
|
||||
\ 'formatoptions< ' .
|
||||
\ 'indentexpr<'
|
||||
|
||||
if has( 'gui_win32' )
|
||||
\ && !exists( 'b:browsefilter' )
|
||||
let b:browsefilter =
|
||||
\ 'qml files (*.qml)\t*.qml\n' .
|
||||
\ 'All files (*.*)\t*.*\n'
|
||||
endif
|
||||
|
||||
" Set 'comments' to format dashed lists in comments.
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
setlocal commentstring=//%s
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal formatoptions+=croql
|
||||
|
||||
let &cpoptions = s:cpoptions_save
|
||||
unlet s:cpoptions_save
|
||||
|
||||
endif
|
||||
@@ -104,7 +104,7 @@ endfunction
|
||||
|
||||
if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
|
||||
let s:version_file = findfile('.ruby-version', '.;')
|
||||
if !empty(s:version_file)
|
||||
if !empty(s:version_file) && filereadable(s:version_file)
|
||||
let b:ruby_version = get(readfile(s:version_file, '', 1), '')
|
||||
if !has_key(g:ruby_version_paths, b:ruby_version)
|
||||
let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
|
||||
@@ -209,16 +209,16 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
call s:map('c', '', '<C-R><C-W> <Plug><cword>')
|
||||
call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
|
||||
|
||||
nmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? 'zv' : ''
|
||||
call s:map('n', '<silent>', '<C-]> <SID>c:tag <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', 'g<C-]> <SID>:tjump <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', 'g] <SID>:tselect <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', '<C-W>] <SID>c:stag <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', '<C-W><C-]> <SID>c:stag <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:stjump <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', '<C-W>g] <SID>:stselect <Plug><cword><CR><SID>tagzv')
|
||||
call s:map('n', '<silent>', '<C-W>} <SID>c:ptag <Plug><cword><CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g} <SID>:ptjump <Plug><cword><CR>')
|
||||
cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
|
||||
call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><cword>"<CR>')
|
||||
|
||||
call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
" indentation for cabal
|
||||
"
|
||||
" author: raichoo (raichoo@googlemail.com)
|
||||
"
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
if !exists('g:cabal_indent_section')
|
||||
"executable name
|
||||
">>main-is: Main.hs
|
||||
">>hs-source-dirs: src
|
||||
let g:cabal_indent_section = 2
|
||||
elseif exists('g:cabal_indent_section') && g:cabal_indent_section > 4
|
||||
let g:cabal_indent_section = 4
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetCabalIndent()
|
||||
setlocal indentkeys=!^F,o,O,<CR>
|
||||
|
||||
function! GetCabalIndent()
|
||||
let l:prevline = getline(v:lnum - 1)
|
||||
|
||||
if l:prevline =~ '\C^\(executable\|library\|flag\|source-repository\|test-suite\|benchmark\)'
|
||||
return g:cabal_indent_section
|
||||
else
|
||||
return match(l:prevline, '\S')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
endif
|
||||
14
indent/glsl.vim
Normal file
14
indent/glsl.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1
|
||||
|
||||
" Language: OpenGL Shading Language
|
||||
" Maintainer: Sergey Tikhomirov <sergey@tikhomirov.io>
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
setlocal autoindent cindent
|
||||
|
||||
" vim:set sts=2 sw=2 :
|
||||
|
||||
endif
|
||||
@@ -1,180 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
" indentation for haskell
|
||||
"
|
||||
" Based on idris indentation
|
||||
"
|
||||
" author: raichoo (raichoo@googlemail.com)
|
||||
"
|
||||
" Modify g:haskell_indent_if and g:haskell_indent_case to
|
||||
" change indentation for `if'(default 3) and `case'(default 5).
|
||||
" Example (in .vimrc):
|
||||
" > let g:haskell_indent_if = 2
|
||||
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
if !exists('g:haskell_indent_if')
|
||||
" if bool
|
||||
" >>>then ...
|
||||
" >>>else ...
|
||||
let g:haskell_indent_if = 3
|
||||
endif
|
||||
|
||||
if !exists('g:haskell_indent_case')
|
||||
" case xs of
|
||||
" >>[] -> ...
|
||||
" >>(y:ys) -> ...
|
||||
let g:haskell_indent_case = 2
|
||||
endif
|
||||
|
||||
if !exists('g:haskell_indent_let')
|
||||
" let x = 0 in
|
||||
" >>>>x
|
||||
let g:haskell_indent_let = 4
|
||||
endif
|
||||
|
||||
if !exists('g:haskell_indent_where')
|
||||
" where f :: Int -> Int
|
||||
" >>>>>>f x = x
|
||||
let g:haskell_indent_where = 6
|
||||
endif
|
||||
|
||||
if !exists('g:haskell_indent_do')
|
||||
" do x <- a
|
||||
" >>>y <- b
|
||||
let g:haskell_indent_do = 3
|
||||
endif
|
||||
|
||||
if !exists('g:haskell_indent_in')
|
||||
" let x = 1
|
||||
" >in x
|
||||
let g:haskell_indent_in = 1
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetHaskellIndent()
|
||||
setlocal indentkeys=!^F,o,O,0\|,0=where,0=in,0=let,0=deriving,0=->,0=\=>,<CR>,0}
|
||||
|
||||
function! GetHaskellIndent()
|
||||
let l:prevline = getline(v:lnum - 1)
|
||||
|
||||
if l:prevline =~ '^\s*--'
|
||||
return match(l:prevline, '\S')
|
||||
endif
|
||||
|
||||
if l:prevline =~ '^\s*$'
|
||||
return 0
|
||||
endif
|
||||
|
||||
let l:line = getline(v:lnum)
|
||||
|
||||
if l:line =~ '\C^\s*\<where\>'
|
||||
let l:s = match(l:prevline, '\S')
|
||||
return l:s + &shiftwidth
|
||||
endif
|
||||
|
||||
if l:line =~ '\C^\s*\<deriving\>'
|
||||
let l:s = match(l:prevline, '\C\<\(newtype\|data\)\>')
|
||||
if l:s >= 0
|
||||
return l:s + &shiftwidth
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:line =~ '\C^\s*\<let\>'
|
||||
let l:s = match(l:prevline, '\C\<let\>')
|
||||
if l:s != 0
|
||||
return l:s
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:line =~ '\C^\s*\<in\>'
|
||||
let l:s = match(l:prevline, '\C\<let\>')
|
||||
if l:s >= 0
|
||||
return l:s + g:haskell_indent_in
|
||||
elseif match(l:prevline, '=') > 0
|
||||
let l:s = match(l:prevline, '\S')
|
||||
return l:s - (4 - g:haskell_indent_in)
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:line =~ '^\s*|'
|
||||
if match(l:prevline, '^\s*data') < 0
|
||||
if match(l:prevline, '^\s*|\s') >= 0
|
||||
return match(l:prevline, '|')
|
||||
else
|
||||
return &shiftwidth
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:line =~ '^\s*[=-]>'
|
||||
let l:s = match(l:prevline, ' :: ')
|
||||
if l:s >= 0
|
||||
return l:s + 1
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\s\+[!#$%&*+./<>?@\\^|~-]\+\s*$'
|
||||
let l:s = match(l:prevline, '\S')
|
||||
if l:s > 0
|
||||
return l:s + &shiftwidth
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:prevline =~ '[{([][^})\]]\+$'
|
||||
return match(l:prevline, '[{([]')
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C\<let\>\s\+[^=]\+=\s*$'
|
||||
return match(l:prevline, '\C\<let\>') + g:haskell_indent_let + &shiftwidth
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C\<let\>\s\+.\+\(\<in\>\)\?\s*$'
|
||||
return match(l:prevline, '\C\<let\>') + g:haskell_indent_let
|
||||
endif
|
||||
|
||||
if l:prevline !~ '\C\<else\>'
|
||||
let l:s = match(l:prevline, '\C\<if\>.*\&.*\zs\<then\>')
|
||||
if l:s > 0
|
||||
return l:s
|
||||
endif
|
||||
|
||||
let l:s = match(l:prevline, '\C\<if\>')
|
||||
if l:s > 0
|
||||
return l:s + g:haskell_indent_if
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C\(\<where\>\|\<do\>\|=\|[{([]\)\s*$'
|
||||
return match(l:prevline, '\S') + &shiftwidth
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C\<where\>\s\+\S\+.*$'
|
||||
return match(l:prevline, '\C\<where\>') + g:haskell_indent_where
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C\<do\>\s\+\S\+.*$'
|
||||
return match(l:prevline, '\C\<do\>') + g:haskell_indent_do
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C^\s*\<data\>\s\+[^=]\+\s\+=\s\+\S\+.*$'
|
||||
if l:line =~ '^\s*|'
|
||||
return match(l:prevline, '=')
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C\<case\>\s\+.\+\<of\>\s*$'
|
||||
return match(l:prevline, '\C\<case\>') + g:haskell_indent_case
|
||||
endif
|
||||
|
||||
if l:prevline =~ '\C^\s*\<\data\>\s\+\S\+\s*$'
|
||||
return match(l:prevline, '\C\<data\>') + &shiftwidth
|
||||
endif
|
||||
|
||||
return match(l:prevline, '\S')
|
||||
endfunction
|
||||
|
||||
endif
|
||||
54
indent/kotlin.vim
Normal file
54
indent/kotlin.vim
Normal file
@@ -0,0 +1,54 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: Kotlin
|
||||
" Maintainer: Alexander Udalov
|
||||
" Latest Revision: 27 June 2015
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetKotlinIndent()
|
||||
setlocal indentkeys=0},0),!^F,o,O,e,<CR>
|
||||
setlocal autoindent " TODO ?
|
||||
|
||||
" TODO teach it to count bracket balance, etc.
|
||||
function! GetKotlinIndent()
|
||||
if v:lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let prev_num = prevnonblank(v:lnum - 1)
|
||||
let prev = getline(prev_num)
|
||||
let prev_indent = indent(prev_num)
|
||||
let cur = getline(v:lnum)
|
||||
|
||||
let prev_open_paren = prev =~ '^.*(\s*$'
|
||||
let cur_close_paren = cur =~ '^\s*).*$'
|
||||
|
||||
if prev_open_paren && !cur_close_paren
|
||||
return prev_indent + 2 * &shiftwidth
|
||||
endif
|
||||
|
||||
if cur_close_paren && !prev_open_paren
|
||||
return prev_indent - 2 * &shiftwidth
|
||||
endif
|
||||
|
||||
|
||||
let prev_open_brace = prev =~ '^.*\({\|->\)\s*$'
|
||||
let cur_close_brace = cur =~ '^\s*}.*$'
|
||||
|
||||
if prev_open_brace && !cur_close_brace
|
||||
return prev_indent + &shiftwidth
|
||||
endif
|
||||
|
||||
if cur_close_brace && !prev_open_brace
|
||||
return prev_indent - &shiftwidth
|
||||
endif
|
||||
|
||||
return prev_indent
|
||||
endfunction
|
||||
|
||||
endif
|
||||
63
indent/qml.vim
Normal file
63
indent/qml.vim
Normal file
@@ -0,0 +1,63 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: QML
|
||||
" Author: Robert Kieffer
|
||||
" URL:
|
||||
" Last Change: 2010-03-27 (Happy Birthday, Dash!)
|
||||
"
|
||||
" Improved JavaScript indent script.
|
||||
|
||||
" Indent script in place for this already?
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetJsIndent()
|
||||
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,*<Return>,=*/
|
||||
|
||||
" Only define functions once per session
|
||||
if exists("*GetJsIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Clean up a line of code by removing trailing '//' comments, and trimming
|
||||
" whitespace
|
||||
function! Trim(line)
|
||||
return substitute(substitute(a:line, '// .*', '', ''), '^\s*\|\s*$', '', 'g')
|
||||
endfunction
|
||||
|
||||
function! GetJsIndent()
|
||||
let num = v:lnum
|
||||
let line = Trim(getline(num))
|
||||
|
||||
let pnum = prevnonblank(num - 1)
|
||||
if pnum == 0
|
||||
return 0
|
||||
endif
|
||||
let pline = Trim(getline(pnum))
|
||||
|
||||
let ind = indent(pnum)
|
||||
|
||||
" bracket/brace/paren blocks
|
||||
if pline =~ '[{[(]$'
|
||||
let ind += &sw
|
||||
endif
|
||||
if line =~ '^[}\])]'
|
||||
let ind -= &sw
|
||||
endif
|
||||
|
||||
" '/*' comments
|
||||
if pline =~ '^/\*.*\*/'
|
||||
" no indent for single-line form
|
||||
elseif pline =~ '^/\*'
|
||||
let ind += 1
|
||||
elseif pline =~ '^\*/'
|
||||
let ind -= 1
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
endif
|
||||
@@ -60,9 +60,21 @@ function GetTypescriptIndent()
|
||||
return indent(prev)
|
||||
endif
|
||||
|
||||
" If a variable was declared and the semicolon omitted, do not indent
|
||||
" the next line
|
||||
if getline(prev) =~ '^\s*var\s\+\w\+'
|
||||
" If the previous line starts with '@', we should have the same indent as
|
||||
" the previous one
|
||||
if getline(prev) =~ '^\s*@\S\+\s*$'
|
||||
return indent(prev)
|
||||
endif
|
||||
|
||||
" If a var, let, or const was declared and the semicolon omitted, do not
|
||||
" indent the next line
|
||||
if getline(prev) =~ '^\s*\(var\|let\|const\)\s\+\w\+'
|
||||
return indent(prev)
|
||||
endif
|
||||
|
||||
" If the line ended with a ',', we should have the same indent as
|
||||
" the previous one
|
||||
if getline(prev) =~ ',\s*$'
|
||||
return indent(prev)
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
" syntax highlighting for cabal
|
||||
"
|
||||
" author: raichoo (raichoo@googlemail.com)
|
||||
|
||||
if version < 600
|
||||
syn clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match cabalLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=@Spell
|
||||
syn match cabalIdentifier "[A-Za-z\-]*" contained
|
||||
syn match cabalOperator "[<=>&|!]"
|
||||
syn match cabalColon ":" contained
|
||||
syn match cabalNumber "\<[0-9][0-9\.*]*\>"
|
||||
syn match cabalDelimiter "[,()]"
|
||||
syn keyword cabalBool True False
|
||||
syn keyword cabalConditional if else
|
||||
syn match cabalCompilerFlag "\s\+-[^ -][^ ]*"
|
||||
syn match cabalDocBulletPoint "^\s\+\*"
|
||||
syn match cabalDocHeadline "^\s\+=.*$"
|
||||
syn match cabalDocCode "^\s\+>.*$"
|
||||
syn match cabalDocNewline "^\s\+\.\s*$"
|
||||
syn match cabalSection "^\c\(executable\|library\|flag\|source-repository\|test-suite\|benchmark\)"
|
||||
syn match cabalEntry "^\s*[A-Za-z][a-zA-Z\-]*:" contains=cabalIdentifier,cabalColon
|
||||
|
||||
syn region cabalDescription start="^\s*[dD]escription:" end="^\<" keepend
|
||||
\ contains=
|
||||
\ cabalEntry,
|
||||
\ cabalLineComment,
|
||||
\ cabalDocBulletPoint,
|
||||
\ cabalDocHeadline,
|
||||
\ cabalDocNewline,
|
||||
\ cabalDocCode
|
||||
|
||||
highlight def link cabalIdentifier Identifier
|
||||
highlight def link cabalLineComment Comment
|
||||
highlight def link cabalOperator Operator
|
||||
highlight def link cabalColon Operator
|
||||
highlight def link cabalNumber Number
|
||||
highlight def link cabalSection Structure
|
||||
highlight def link cabalDelimiter Delimiter
|
||||
highlight def link cabalBool Boolean
|
||||
highlight def link cabalCompilerFlag Macro
|
||||
highlight def link cabalConditional Conditional
|
||||
highlight def link cabalDocBulletPoint Structure
|
||||
highlight def link cabalDocHeadline Include
|
||||
highlight def link cabalDocNewline Operator
|
||||
highlight def link cabalDocCode Macro
|
||||
|
||||
let b:current_syntax = "cabal"
|
||||
|
||||
endif
|
||||
@@ -73,7 +73,7 @@ syntax match clojureKeyword "\v<:{1,2}%([^ \n\r\t()\[\]{}";@^`~\\%/]+/)*[^ \n\r\
|
||||
|
||||
syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained
|
||||
|
||||
syntax region clojureString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell
|
||||
syntax region clojureString matchgroup=clojureStringDelimiter start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell
|
||||
|
||||
syntax match clojureCharacter "\\."
|
||||
syntax match clojureCharacter "\\o\%([0-3]\o\{2\}\|\o\{1,2\}\)"
|
||||
@@ -156,9 +156,9 @@ syntax match clojureComment "#!.*$"
|
||||
" Generated from https://github.com/guns/vim-clojure-static/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
|
||||
syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector
|
||||
|
||||
syntax region clojureSexp matchgroup=clojureParen start="(" matchgroup=clojureParen end=")" contains=@clojureTop fold
|
||||
syntax region clojureVector matchgroup=clojureParen start="\[" matchgroup=clojureParen end="]" contains=@clojureTop fold
|
||||
syntax region clojureMap matchgroup=clojureParen start="{" matchgroup=clojureParen end="}" contains=@clojureTop fold
|
||||
syntax region clojureSexp matchgroup=clojureParen start="(" end=")" contains=@clojureTop fold
|
||||
syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold
|
||||
syntax region clojureMap matchgroup=clojureParen start="{" end="}" contains=@clojureTop fold
|
||||
|
||||
" Highlight superfluous closing parens, brackets and braces.
|
||||
syntax match clojureError "]\|}\|)"
|
||||
@@ -171,6 +171,7 @@ highlight default link clojureCharacter Character
|
||||
highlight default link clojureKeyword Keyword
|
||||
highlight default link clojureNumber Number
|
||||
highlight default link clojureString String
|
||||
highlight default link clojureStringDelimiter String
|
||||
highlight default link clojureStringEscape Character
|
||||
|
||||
highlight default link clojureRegexp Constant
|
||||
|
||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c/c++') == -1
|
||||
" Language: C++
|
||||
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
|
||||
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
|
||||
" Last Change: 2015 Mar 1
|
||||
" Last Change: 2015 Sep 23
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -51,6 +51,11 @@ if !exists("cpp_no_cpp11")
|
||||
syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
|
||||
endif
|
||||
|
||||
" C++ 14 extensions
|
||||
if !exists("cpp_no_cpp14")
|
||||
syn match cppNumber display "\<0b[01]\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
endif
|
||||
|
||||
" The minimum and maximum operators in GNU C++
|
||||
syn match cppMinMax "[<>]?"
|
||||
|
||||
@@ -74,6 +79,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
||||
HiLink cppConstant Constant
|
||||
HiLink cppRawStringDelimiter Delimiter
|
||||
HiLink cppRawString String
|
||||
HiLink cppNumber Number
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'css') == -1
|
||||
" Nikolai Weibull (Add CSS2 support)
|
||||
" Maintainer: Jules Wang <w.jq0722@gmail.com>
|
||||
" URL: https://github.com/JulesWang/css.vim
|
||||
" Last Change: 2015 Apr.17
|
||||
" Last Change: 2015 Aug.25
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -166,8 +166,8 @@ syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajow
|
||||
syn keyword cssColor contained oldlace olivedrab orange orangered orchid
|
||||
syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
|
||||
syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
|
||||
syn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown
|
||||
syn keyword cssColor contained seagreen seashell sienna skyblue slateblue
|
||||
syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
|
||||
syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
|
||||
syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
|
||||
syn keyword cssColor contained thistle tomato turquoise violet wheat
|
||||
syn keyword cssColor contained whitesmoke yellowgreen
|
||||
|
||||
660
syntax/glsl.vim
Normal file
660
syntax/glsl.vim
Normal file
@@ -0,0 +1,660 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1
|
||||
|
||||
" Language: OpenGL Shading Language
|
||||
" Maintainer: Sergey Tikhomirov <sergey@tikhomirov.io>
|
||||
|
||||
if exists("b:current_syntax") && b:current_syntax == "glsl"
|
||||
finish
|
||||
endif
|
||||
|
||||
" Statements
|
||||
syn keyword glslConditional if else
|
||||
syn keyword glslRepeat for while do
|
||||
syn keyword glslStatement discard return break continue
|
||||
|
||||
" Comments
|
||||
syn keyword glslTodo contained TODO FIXME XXX
|
||||
syn region glslCommentL start="//" skip="\\$" end="$" keepend contains=glslTodo,@Spell
|
||||
syn region glslComment matchgroup=glslCommentStart start="/\*" end="\*/" extend contains=glslTodo,@Spell
|
||||
|
||||
" Preprocessor
|
||||
syn region glslPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|else\|elif\|endif\)" skip="\\$" end="$" keepend
|
||||
syn region glslDefine start="^\s*#\s*\(define\|undef\)" skip="\\$" end="$" keepend
|
||||
syn keyword glslTokenConcat ##
|
||||
syn keyword glslPredefinedMacro __LINE__ __FILE__ __VERSION__ GL_ES
|
||||
syn region glslPreProc start="^\s*#\s*\(error\|pragma\|extension\|version\|line\)" skip="\\$" end="$" keepend
|
||||
|
||||
" Boolean Constants
|
||||
syn keyword glslBoolean true false
|
||||
|
||||
" Integer Numbers
|
||||
syn match glslDecimalInt display "\(0\|[1-9]\d*\)"
|
||||
syn match glslOctalInt display "0\o\+"
|
||||
syn match glslHexInt display "0[xX]\x\+"
|
||||
|
||||
" Float Numbers
|
||||
syn match glslFloat display "\d\+\.\([eE][+-]\=\d\+\)\="
|
||||
syn match glslFloat display "\.\d\+\([eE][+-]\=\d\+\)\="
|
||||
syn match glslFloat display "\d\+[eE][+-]\=\d\+"
|
||||
syn match glslFloat display "\d\+\.\d\+\([eE][+-]\=\d\+\)\="
|
||||
|
||||
" Swizzles
|
||||
syn match glslSwizzle display /\.[xyzw]\{1,4\}\>/
|
||||
syn match glslSwizzle display /\.[rgba]\{1,4\}\>/
|
||||
syn match glslSwizzle display /\.[stpq]\{1,4\}\>/
|
||||
|
||||
" Structure
|
||||
syn keyword glslStructure struct
|
||||
|
||||
" This prevents numbers at ends of identifies from being highlighted as numbers
|
||||
syn match glslIdentifier display "\I\i*"
|
||||
|
||||
" Types
|
||||
syn keyword glslType atomic_uint
|
||||
syn keyword glslType bool
|
||||
syn keyword glslType bvec2
|
||||
syn keyword glslType bvec3
|
||||
syn keyword glslType bvec4
|
||||
syn keyword glslType dmat2
|
||||
syn keyword glslType dmat2x2
|
||||
syn keyword glslType dmat2x3
|
||||
syn keyword glslType dmat2x4
|
||||
syn keyword glslType dmat3
|
||||
syn keyword glslType dmat3x2
|
||||
syn keyword glslType dmat3x3
|
||||
syn keyword glslType dmat3x4
|
||||
syn keyword glslType dmat4
|
||||
syn keyword glslType dmat4x2
|
||||
syn keyword glslType dmat4x3
|
||||
syn keyword glslType dmat4x4
|
||||
syn keyword glslType double
|
||||
syn keyword glslType dvec2
|
||||
syn keyword glslType dvec3
|
||||
syn keyword glslType dvec4
|
||||
syn keyword glslType float
|
||||
syn keyword glslType iimage1D
|
||||
syn keyword glslType iimage1DArray
|
||||
syn keyword glslType iimage2D
|
||||
syn keyword glslType iimage2DArray
|
||||
syn keyword glslType iimage2DMS
|
||||
syn keyword glslType iimage2DMSArray
|
||||
syn keyword glslType iimage2DRect
|
||||
syn keyword glslType iimage3D
|
||||
syn keyword glslType iimageBuffer
|
||||
syn keyword glslType iimageCube
|
||||
syn keyword glslType iimageCubeArray
|
||||
syn keyword glslType image1D
|
||||
syn keyword glslType image1DArray
|
||||
syn keyword glslType image2D
|
||||
syn keyword glslType image2DArray
|
||||
syn keyword glslType image2DMS
|
||||
syn keyword glslType image2DMSArray
|
||||
syn keyword glslType image2DRect
|
||||
syn keyword glslType image3D
|
||||
syn keyword glslType imageBuffer
|
||||
syn keyword glslType imageCube
|
||||
syn keyword glslType imageCubeArray
|
||||
syn keyword glslType int
|
||||
syn keyword glslType isampler1D
|
||||
syn keyword glslType isampler1DArray
|
||||
syn keyword glslType isampler2D
|
||||
syn keyword glslType isampler2DArray
|
||||
syn keyword glslType isampler2DMS
|
||||
syn keyword glslType isampler2DMSArray
|
||||
syn keyword glslType isampler2DRect
|
||||
syn keyword glslType isampler3D
|
||||
syn keyword glslType isamplerBuffer
|
||||
syn keyword glslType isamplerCube
|
||||
syn keyword glslType isamplerCubeArray
|
||||
syn keyword glslType ivec2
|
||||
syn keyword glslType ivec3
|
||||
syn keyword glslType ivec4
|
||||
syn keyword glslType mat2
|
||||
syn keyword glslType mat2x2
|
||||
syn keyword glslType mat2x3
|
||||
syn keyword glslType mat2x4
|
||||
syn keyword glslType mat3
|
||||
syn keyword glslType mat3x2
|
||||
syn keyword glslType mat3x3
|
||||
syn keyword glslType mat3x4
|
||||
syn keyword glslType mat4
|
||||
syn keyword glslType mat4x2
|
||||
syn keyword glslType mat4x3
|
||||
syn keyword glslType mat4x4
|
||||
syn keyword glslType sampler1D
|
||||
syn keyword glslType sampler1DArray
|
||||
syn keyword glslType sampler1DArrayShadow
|
||||
syn keyword glslType sampler1DShadow
|
||||
syn keyword glslType sampler2D
|
||||
syn keyword glslType sampler2DArray
|
||||
syn keyword glslType sampler2DArrayShadow
|
||||
syn keyword glslType sampler2DMS
|
||||
syn keyword glslType sampler2DMSArray
|
||||
syn keyword glslType sampler2DRect
|
||||
syn keyword glslType sampler2DRectShadow
|
||||
syn keyword glslType sampler2DShadow
|
||||
syn keyword glslType sampler3D
|
||||
syn keyword glslType samplerBuffer
|
||||
syn keyword glslType samplerCube
|
||||
syn keyword glslType samplerCubeArray
|
||||
syn keyword glslType samplerCubeArrayShadow
|
||||
syn keyword glslType samplerCubeShadow
|
||||
syn keyword glslType uimage1D
|
||||
syn keyword glslType uimage1DArray
|
||||
syn keyword glslType uimage2D
|
||||
syn keyword glslType uimage2DArray
|
||||
syn keyword glslType uimage2DMS
|
||||
syn keyword glslType uimage2DMSArray
|
||||
syn keyword glslType uimage2DRect
|
||||
syn keyword glslType uimage3D
|
||||
syn keyword glslType uimageBuffer
|
||||
syn keyword glslType uimageCube
|
||||
syn keyword glslType uimageCubeArray
|
||||
syn keyword glslType uint
|
||||
syn keyword glslType usampler1D
|
||||
syn keyword glslType usampler1DArray
|
||||
syn keyword glslType usampler2D
|
||||
syn keyword glslType usampler2DArray
|
||||
syn keyword glslType usampler2DMS
|
||||
syn keyword glslType usampler2DMSArray
|
||||
syn keyword glslType usampler2DRect
|
||||
syn keyword glslType usampler3D
|
||||
syn keyword glslType usamplerBuffer
|
||||
syn keyword glslType usamplerCube
|
||||
syn keyword glslType usamplerCubeArray
|
||||
syn keyword glslType uvec2
|
||||
syn keyword glslType uvec3
|
||||
syn keyword glslType uvec4
|
||||
syn keyword glslType vec2
|
||||
syn keyword glslType vec3
|
||||
syn keyword glslType vec4
|
||||
syn keyword glslType void
|
||||
|
||||
" Qualifiers
|
||||
syn keyword glslQualifier attribute
|
||||
syn keyword glslQualifier binding
|
||||
syn keyword glslQualifier buffer
|
||||
syn keyword glslQualifier ccw
|
||||
syn keyword glslQualifier centroid
|
||||
syn keyword glslQualifier centroid varying
|
||||
syn keyword glslQualifier coherent
|
||||
syn keyword glslQualifier column_major
|
||||
syn keyword glslQualifier const
|
||||
syn keyword glslQualifier cw
|
||||
syn keyword glslQualifier depth_any
|
||||
syn keyword glslQualifier depth_greater
|
||||
syn keyword glslQualifier depth_less
|
||||
syn keyword glslQualifier depth_unchanged
|
||||
syn keyword glslQualifier early_fragment_tests
|
||||
syn keyword glslQualifier equal_spacing
|
||||
syn keyword glslQualifier flat
|
||||
syn keyword glslQualifier fractional_even_spacing
|
||||
syn keyword glslQualifier fractional_odd_spacing
|
||||
syn keyword glslQualifier highp
|
||||
syn keyword glslQualifier in
|
||||
syn keyword glslQualifier index
|
||||
syn keyword glslQualifier inout
|
||||
syn keyword glslQualifier invariant
|
||||
syn keyword glslQualifier invocations
|
||||
syn keyword glslQualifier isolines
|
||||
syn keyword glslQualifier layout
|
||||
syn keyword glslQualifier line_strip
|
||||
syn keyword glslQualifier lines
|
||||
syn keyword glslQualifier lines_adjacency
|
||||
syn keyword glslQualifier local_size_x
|
||||
syn keyword glslQualifier local_size_y
|
||||
syn keyword glslQualifier local_size_z
|
||||
syn keyword glslQualifier location
|
||||
syn keyword glslQualifier lowp
|
||||
syn keyword glslQualifier max_vertices
|
||||
syn keyword glslQualifier mediump
|
||||
syn keyword glslQualifier noperspective
|
||||
syn keyword glslQualifier offset
|
||||
syn keyword glslQualifier origin_upper_left
|
||||
syn keyword glslQualifier out
|
||||
syn keyword glslQualifier packed
|
||||
syn keyword glslQualifier patch
|
||||
syn keyword glslQualifier pixel_center_integer
|
||||
syn keyword glslQualifier point_mode
|
||||
syn keyword glslQualifier points
|
||||
syn keyword glslQualifier precise
|
||||
syn keyword glslQualifier precision
|
||||
syn keyword glslQualifier quads
|
||||
syn keyword glslQualifier r11f_g11f_b10f
|
||||
syn keyword glslQualifier r16
|
||||
syn keyword glslQualifier r16_snorm
|
||||
syn keyword glslQualifier r16f
|
||||
syn keyword glslQualifier r16i
|
||||
syn keyword glslQualifier r16ui
|
||||
syn keyword glslQualifier r32f
|
||||
syn keyword glslQualifier r32i
|
||||
syn keyword glslQualifier r32ui
|
||||
syn keyword glslQualifier r8
|
||||
syn keyword glslQualifier r8_snorm
|
||||
syn keyword glslQualifier r8i
|
||||
syn keyword glslQualifier r8ui
|
||||
syn keyword glslQualifier readonly
|
||||
syn keyword glslQualifier restrict
|
||||
syn keyword glslQualifier rg16
|
||||
syn keyword glslQualifier rg16_snorm
|
||||
syn keyword glslQualifier rg16f
|
||||
syn keyword glslQualifier rg16i
|
||||
syn keyword glslQualifier rg16ui
|
||||
syn keyword glslQualifier rg32f
|
||||
syn keyword glslQualifier rg32i
|
||||
syn keyword glslQualifier rg32ui
|
||||
syn keyword glslQualifier rg8
|
||||
syn keyword glslQualifier rg8_snorm
|
||||
syn keyword glslQualifier rg8i
|
||||
syn keyword glslQualifier rg8ui
|
||||
syn keyword glslQualifier rgb10_a2
|
||||
syn keyword glslQualifier rgb10_a2ui
|
||||
syn keyword glslQualifier rgba16
|
||||
syn keyword glslQualifier rgba16_snorm
|
||||
syn keyword glslQualifier rgba16f
|
||||
syn keyword glslQualifier rgba16i
|
||||
syn keyword glslQualifier rgba16ui
|
||||
syn keyword glslQualifier rgba32f
|
||||
syn keyword glslQualifier rgba32i
|
||||
syn keyword glslQualifier rgba32ui
|
||||
syn keyword glslQualifier rgba8
|
||||
syn keyword glslQualifier rgba8_snorm
|
||||
syn keyword glslQualifier rgba8i
|
||||
syn keyword glslQualifier rgba8ui
|
||||
syn keyword glslQualifier row_major
|
||||
syn keyword glslQualifier sample
|
||||
syn keyword glslQualifier shared
|
||||
syn keyword glslQualifier smooth
|
||||
syn keyword glslQualifier std140
|
||||
syn keyword glslQualifier std430
|
||||
syn keyword glslQualifier stream
|
||||
syn keyword glslQualifier triangle_strip
|
||||
syn keyword glslQualifier triangles
|
||||
syn keyword glslQualifier triangles_adjacency
|
||||
syn keyword glslQualifier uniform
|
||||
syn keyword glslQualifier varying
|
||||
syn keyword glslQualifier vertices
|
||||
syn keyword glslQualifier volatile
|
||||
syn keyword glslQualifier writeonly
|
||||
|
||||
" Built-in Constants
|
||||
syn keyword glslBuiltinConstant gl_MaxAtomicCounterBindings
|
||||
syn keyword glslBuiltinConstant gl_MaxAtomicCounterBufferSize
|
||||
syn keyword glslBuiltinConstant gl_MaxClipDistances
|
||||
syn keyword glslBuiltinConstant gl_MaxClipPlanes
|
||||
syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxCombinedImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxCombinedImageUnitsAndFragmentOutputs
|
||||
syn keyword glslBuiltinConstant gl_MaxCombinedTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeUniformComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeWorkGroupCount
|
||||
syn keyword glslBuiltinConstant gl_MaxComputeWorkGroupSize
|
||||
syn keyword glslBuiltinConstant gl_MaxDrawBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentInputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentInputVectors
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentUniformComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxFragmentUniformVectors
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryInputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryOutputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryOutputVertices
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryTotalOutputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryUniformComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxGeometryVaryingComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxImageSamples
|
||||
syn keyword glslBuiltinConstant gl_MaxImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxLights
|
||||
syn keyword glslBuiltinConstant gl_MaxPatchVertices
|
||||
syn keyword glslBuiltinConstant gl_MaxProgramTexelOffset
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlInputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlOutputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlTotalOutputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessControlUniformComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationInputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationOutputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxTessEvaluationUniformComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTessGenLevel
|
||||
syn keyword glslBuiltinConstant gl_MaxTessPatchComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxTextureCoords
|
||||
syn keyword glslBuiltinConstant gl_MaxTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxTextureUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxVaryingComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxVaryingFloats
|
||||
syn keyword glslBuiltinConstant gl_MaxVaryingVectors
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounterBuffers
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounters
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexAttribs
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexImageUniforms
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexOutputComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexOutputVectors
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexTextureImageUnits
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexUniformComponents
|
||||
syn keyword glslBuiltinConstant gl_MaxVertexUniformVectors
|
||||
syn keyword glslBuiltinConstant gl_MaxViewports
|
||||
syn keyword glslBuiltinConstant gl_MinProgramTexelOffset
|
||||
|
||||
" Built-in Variables
|
||||
syn keyword glslBuiltinVariable gl_BackColor
|
||||
syn keyword glslBuiltinVariable gl_BackLightModelProduct
|
||||
syn keyword glslBuiltinVariable gl_BackLightProduct
|
||||
syn keyword glslBuiltinVariable gl_BackLightProduct
|
||||
syn keyword glslBuiltinVariable gl_BackMaterial
|
||||
syn keyword glslBuiltinVariable gl_BackSecondaryColor
|
||||
syn keyword glslBuiltinVariable gl_ClipDistance
|
||||
syn keyword glslBuiltinVariable gl_ClipPlane
|
||||
syn keyword glslBuiltinVariable gl_ClipVertex
|
||||
syn keyword glslBuiltinVariable gl_Color
|
||||
syn keyword glslBuiltinVariable gl_DepthRange
|
||||
syn keyword glslBuiltinVariable gl_EyePlaneQ
|
||||
syn keyword glslBuiltinVariable gl_EyePlaneR
|
||||
syn keyword glslBuiltinVariable gl_EyePlaneS
|
||||
syn keyword glslBuiltinVariable gl_EyePlaneT
|
||||
syn keyword glslBuiltinVariable gl_Fog
|
||||
syn keyword glslBuiltinVariable gl_FogCoord
|
||||
syn keyword glslBuiltinVariable gl_FogFragCoord
|
||||
syn keyword glslBuiltinVariable gl_FragColor
|
||||
syn keyword glslBuiltinVariable gl_FragCoord
|
||||
syn keyword glslBuiltinVariable gl_FragData
|
||||
syn keyword glslBuiltinVariable gl_FragDepth
|
||||
syn keyword glslBuiltinVariable gl_FrontColor
|
||||
syn keyword glslBuiltinVariable gl_FrontFacing
|
||||
syn keyword glslBuiltinVariable gl_FrontLightModelProduct
|
||||
syn keyword glslBuiltinVariable gl_FrontLightProduct
|
||||
syn keyword glslBuiltinVariable gl_FrontMaterial
|
||||
syn keyword glslBuiltinVariable gl_FrontSecondaryColor
|
||||
syn keyword glslBuiltinVariable gl_GlobalInvocationID
|
||||
syn keyword glslBuiltinVariable gl_InstanceID
|
||||
syn keyword glslBuiltinVariable gl_InvocationID
|
||||
syn keyword glslBuiltinVariable gl_Layer
|
||||
syn keyword glslBuiltinVariable gl_LightModel
|
||||
syn keyword glslBuiltinVariable gl_LightSource
|
||||
syn keyword glslBuiltinVariable gl_LocalInvocationID
|
||||
syn keyword glslBuiltinVariable gl_LocalInvocationIndex
|
||||
syn keyword glslBuiltinVariable gl_ModelViewMatrix
|
||||
syn keyword glslBuiltinVariable gl_ModelViewMatrixInverse
|
||||
syn keyword glslBuiltinVariable gl_ModelViewMatrixInverseTranspose
|
||||
syn keyword glslBuiltinVariable gl_ModelViewMatrixTranspose
|
||||
syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrix
|
||||
syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixInverse
|
||||
syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixInverseTranspose
|
||||
syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixTranspose
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord0
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord1
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord2
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord3
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord4
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord5
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord6
|
||||
syn keyword glslBuiltinVariable gl_MultiTexCoord7
|
||||
syn keyword glslBuiltinVariable gl_Normal
|
||||
syn keyword glslBuiltinVariable gl_NormalMatrix
|
||||
syn keyword glslBuiltinVariable gl_NormalScale
|
||||
syn keyword glslBuiltinVariable gl_NumSamples
|
||||
syn keyword glslBuiltinVariable gl_NumWorkGroups
|
||||
syn keyword glslBuiltinVariable gl_ObjectPlaneQ
|
||||
syn keyword glslBuiltinVariable gl_ObjectPlaneR
|
||||
syn keyword glslBuiltinVariable gl_ObjectPlaneS
|
||||
syn keyword glslBuiltinVariable gl_ObjectPlaneT
|
||||
syn keyword glslBuiltinVariable gl_PatchVerticesIn
|
||||
syn keyword glslBuiltinVariable gl_Point
|
||||
syn keyword glslBuiltinVariable gl_PointCoord
|
||||
syn keyword glslBuiltinVariable gl_PointSize
|
||||
syn keyword glslBuiltinVariable gl_Position
|
||||
syn keyword glslBuiltinVariable gl_PrimitiveID
|
||||
syn keyword glslBuiltinVariable gl_PrimitiveIDIn
|
||||
syn keyword glslBuiltinVariable gl_ProjectionMatrix
|
||||
syn keyword glslBuiltinVariable gl_ProjectionMatrixInverse
|
||||
syn keyword glslBuiltinVariable gl_ProjectionMatrixInverseTranspose
|
||||
syn keyword glslBuiltinVariable gl_ProjectionMatrixTranspose
|
||||
syn keyword glslBuiltinVariable gl_SampleID
|
||||
syn keyword glslBuiltinVariable gl_SampleMask
|
||||
syn keyword glslBuiltinVariable gl_SampleMaskIn
|
||||
syn keyword glslBuiltinVariable gl_SamplePosition
|
||||
syn keyword glslBuiltinVariable gl_SecondaryColor
|
||||
syn keyword glslBuiltinVariable gl_TessCoord
|
||||
syn keyword glslBuiltinVariable gl_TessLevelInner
|
||||
syn keyword glslBuiltinVariable gl_TessLevelOuter
|
||||
syn keyword glslBuiltinVariable gl_TexCoord
|
||||
syn keyword glslBuiltinVariable gl_TextureEnvColor
|
||||
syn keyword glslBuiltinVariable gl_TextureMatrix
|
||||
syn keyword glslBuiltinVariable gl_TextureMatrixInverse
|
||||
syn keyword glslBuiltinVariable gl_TextureMatrixInverseTranspose
|
||||
syn keyword glslBuiltinVariable gl_TextureMatrixTranspose
|
||||
syn keyword glslBuiltinVariable gl_Vertex
|
||||
syn keyword glslBuiltinVariable gl_VertexID
|
||||
syn keyword glslBuiltinVariable gl_ViewportIndex
|
||||
syn keyword glslBuiltinVariable gl_WorkGroupID
|
||||
syn keyword glslBuiltinVariable gl_WorkGroupSize
|
||||
syn keyword glslBuiltinVariable gl_in
|
||||
syn keyword glslBuiltinVariable gl_out
|
||||
|
||||
" Built-in Functions
|
||||
syn keyword glslBuiltinFunction EmitStreamVertex
|
||||
syn keyword glslBuiltinFunction EmitVertex
|
||||
syn keyword glslBuiltinFunction EndPrimitive
|
||||
syn keyword glslBuiltinFunction EndStreamPrimitive
|
||||
syn keyword glslBuiltinFunction abs
|
||||
syn keyword glslBuiltinFunction acos
|
||||
syn keyword glslBuiltinFunction acosh
|
||||
syn keyword glslBuiltinFunction all
|
||||
syn keyword glslBuiltinFunction any
|
||||
syn keyword glslBuiltinFunction asin
|
||||
syn keyword glslBuiltinFunction asinh
|
||||
syn keyword glslBuiltinFunction atan
|
||||
syn keyword glslBuiltinFunction atanh
|
||||
syn keyword glslBuiltinFunction atomicAdd
|
||||
syn keyword glslBuiltinFunction atomicAnd
|
||||
syn keyword glslBuiltinFunction atomicCompSwap
|
||||
syn keyword glslBuiltinFunction atomicCounter
|
||||
syn keyword glslBuiltinFunction atomicCounterDecrement
|
||||
syn keyword glslBuiltinFunction atomicCounterIncrement
|
||||
syn keyword glslBuiltinFunction atomicExchange
|
||||
syn keyword glslBuiltinFunction atomicMax
|
||||
syn keyword glslBuiltinFunction atomicMin
|
||||
syn keyword glslBuiltinFunction atomicOr
|
||||
syn keyword glslBuiltinFunction atomicXor
|
||||
syn keyword glslBuiltinFunction barrier
|
||||
syn keyword glslBuiltinFunction bitCount
|
||||
syn keyword glslBuiltinFunction bitfieldExtract
|
||||
syn keyword glslBuiltinFunction bitfieldInsert
|
||||
syn keyword glslBuiltinFunction bitfieldReverse
|
||||
syn keyword glslBuiltinFunction ceil
|
||||
syn keyword glslBuiltinFunction clamp
|
||||
syn keyword glslBuiltinFunction cos
|
||||
syn keyword glslBuiltinFunction cosh
|
||||
syn keyword glslBuiltinFunction cross
|
||||
syn keyword glslBuiltinFunction dFdx
|
||||
syn keyword glslBuiltinFunction dFdy
|
||||
syn keyword glslBuiltinFunction degrees
|
||||
syn keyword glslBuiltinFunction determinant
|
||||
syn keyword glslBuiltinFunction distance
|
||||
syn keyword glslBuiltinFunction dot
|
||||
syn keyword glslBuiltinFunction equal
|
||||
syn keyword glslBuiltinFunction exp
|
||||
syn keyword glslBuiltinFunction exp2
|
||||
syn keyword glslBuiltinFunction faceforward
|
||||
syn keyword glslBuiltinFunction findLSB
|
||||
syn keyword glslBuiltinFunction findMSB
|
||||
syn keyword glslBuiltinFunction floatBitsToInt
|
||||
syn keyword glslBuiltinFunction floatBitsToUint
|
||||
syn keyword glslBuiltinFunction floor
|
||||
syn keyword glslBuiltinFunction fma
|
||||
syn keyword glslBuiltinFunction fract
|
||||
syn keyword glslBuiltinFunction frexp
|
||||
syn keyword glslBuiltinFunction ftransform
|
||||
syn keyword glslBuiltinFunction fwidth
|
||||
syn keyword glslBuiltinFunction greaterThan
|
||||
syn keyword glslBuiltinFunction greaterThanEqual
|
||||
syn keyword glslBuiltinFunction groupMemoryBarrier
|
||||
syn keyword glslBuiltinFunction imageAtomicAdd
|
||||
syn keyword glslBuiltinFunction imageAtomicAnd
|
||||
syn keyword glslBuiltinFunction imageAtomicCompSwap
|
||||
syn keyword glslBuiltinFunction imageAtomicExchange
|
||||
syn keyword glslBuiltinFunction imageAtomicMax
|
||||
syn keyword glslBuiltinFunction imageAtomicMin
|
||||
syn keyword glslBuiltinFunction imageAtomicOr
|
||||
syn keyword glslBuiltinFunction imageAtomicXor
|
||||
syn keyword glslBuiltinFunction imageLoad
|
||||
syn keyword glslBuiltinFunction imageSize
|
||||
syn keyword glslBuiltinFunction imageStore
|
||||
syn keyword glslBuiltinFunction imulExtended
|
||||
syn keyword glslBuiltinFunction intBitsToFloat
|
||||
syn keyword glslBuiltinFunction interpolateAtCentroid
|
||||
syn keyword glslBuiltinFunction interpolateAtOffset
|
||||
syn keyword glslBuiltinFunction interpolateAtSample
|
||||
syn keyword glslBuiltinFunction inverse
|
||||
syn keyword glslBuiltinFunction inversesqrt
|
||||
syn keyword glslBuiltinFunction isinf
|
||||
syn keyword glslBuiltinFunction isnan
|
||||
syn keyword glslBuiltinFunction ldexp
|
||||
syn keyword glslBuiltinFunction length
|
||||
syn keyword glslBuiltinFunction lessThan
|
||||
syn keyword glslBuiltinFunction lessThanEqual
|
||||
syn keyword glslBuiltinFunction log
|
||||
syn keyword glslBuiltinFunction log2
|
||||
syn keyword glslBuiltinFunction matrixCompMult
|
||||
syn keyword glslBuiltinFunction max
|
||||
syn keyword glslBuiltinFunction memoryBarrier
|
||||
syn keyword glslBuiltinFunction memoryBarrierAtomicCounter
|
||||
syn keyword glslBuiltinFunction memoryBarrierBuffer
|
||||
syn keyword glslBuiltinFunction memoryBarrierImage
|
||||
syn keyword glslBuiltinFunction memoryBarrierShared
|
||||
syn keyword glslBuiltinFunction min
|
||||
syn keyword glslBuiltinFunction mix
|
||||
syn keyword glslBuiltinFunction mod
|
||||
syn keyword glslBuiltinFunction modf
|
||||
syn keyword glslBuiltinFunction noise1
|
||||
syn keyword glslBuiltinFunction noise2
|
||||
syn keyword glslBuiltinFunction noise3
|
||||
syn keyword glslBuiltinFunction noise4
|
||||
syn keyword glslBuiltinFunction normalize
|
||||
syn keyword glslBuiltinFunction not
|
||||
syn keyword glslBuiltinFunction notEqual
|
||||
syn keyword glslBuiltinFunction outerProduct
|
||||
syn keyword glslBuiltinFunction packDouble2x32
|
||||
syn keyword glslBuiltinFunction packHalf2x16
|
||||
syn keyword glslBuiltinFunction packSnorm2x16
|
||||
syn keyword glslBuiltinFunction packSnorm4x8
|
||||
syn keyword glslBuiltinFunction packUnorm2x16
|
||||
syn keyword glslBuiltinFunction packUnorm4x8
|
||||
syn keyword glslBuiltinFunction pow
|
||||
syn keyword glslBuiltinFunction radians
|
||||
syn keyword glslBuiltinFunction reflect
|
||||
syn keyword glslBuiltinFunction refract
|
||||
syn keyword glslBuiltinFunction round
|
||||
syn keyword glslBuiltinFunction roundEven
|
||||
syn keyword glslBuiltinFunction shadow1D
|
||||
syn keyword glslBuiltinFunction shadow1DLod
|
||||
syn keyword glslBuiltinFunction shadow1DProj
|
||||
syn keyword glslBuiltinFunction shadow1DProjLod
|
||||
syn keyword glslBuiltinFunction shadow2D
|
||||
syn keyword glslBuiltinFunction shadow2DLod
|
||||
syn keyword glslBuiltinFunction shadow2DProj
|
||||
syn keyword glslBuiltinFunction shadow2DProjLod
|
||||
syn keyword glslBuiltinFunction sign
|
||||
syn keyword glslBuiltinFunction sin
|
||||
syn keyword glslBuiltinFunction sinh
|
||||
syn keyword glslBuiltinFunction smoothstep
|
||||
syn keyword glslBuiltinFunction sqrt
|
||||
syn keyword glslBuiltinFunction step
|
||||
syn keyword glslBuiltinFunction tan
|
||||
syn keyword glslBuiltinFunction tanh
|
||||
syn keyword glslBuiltinFunction texelFetch
|
||||
syn keyword glslBuiltinFunction texelFetchOffset
|
||||
syn keyword glslBuiltinFunction texture
|
||||
syn keyword glslBuiltinFunction texture1D
|
||||
syn keyword glslBuiltinFunction texture1DLod
|
||||
syn keyword glslBuiltinFunction texture1DProj
|
||||
syn keyword glslBuiltinFunction texture1DProjLod
|
||||
syn keyword glslBuiltinFunction texture2D
|
||||
syn keyword glslBuiltinFunction texture2DLod
|
||||
syn keyword glslBuiltinFunction texture2DProj
|
||||
syn keyword glslBuiltinFunction texture2DProjLod
|
||||
syn keyword glslBuiltinFunction texture3D
|
||||
syn keyword glslBuiltinFunction texture3DLod
|
||||
syn keyword glslBuiltinFunction texture3DProj
|
||||
syn keyword glslBuiltinFunction texture3DProjLod
|
||||
syn keyword glslBuiltinFunction textureCube
|
||||
syn keyword glslBuiltinFunction textureCubeLod
|
||||
syn keyword glslBuiltinFunction textureGather
|
||||
syn keyword glslBuiltinFunction textureGatherOffset
|
||||
syn keyword glslBuiltinFunction textureGatherOffsets
|
||||
syn keyword glslBuiltinFunction textureGrad
|
||||
syn keyword glslBuiltinFunction textureGradOffset
|
||||
syn keyword glslBuiltinFunction textureLod
|
||||
syn keyword glslBuiltinFunction textureLodOffset
|
||||
syn keyword glslBuiltinFunction textureOffset
|
||||
syn keyword glslBuiltinFunction textureProj
|
||||
syn keyword glslBuiltinFunction textureProjGrad
|
||||
syn keyword glslBuiltinFunction textureProjGradOffset
|
||||
syn keyword glslBuiltinFunction textureProjLod
|
||||
syn keyword glslBuiltinFunction textureProjLodOffset
|
||||
syn keyword glslBuiltinFunction textureProjOffset
|
||||
syn keyword glslBuiltinFunction textureQueryLevels
|
||||
syn keyword glslBuiltinFunction textureQueryLod
|
||||
syn keyword glslBuiltinFunction textureSize
|
||||
syn keyword glslBuiltinFunction transpose
|
||||
syn keyword glslBuiltinFunction trunc
|
||||
syn keyword glslBuiltinFunction uaddCarry
|
||||
syn keyword glslBuiltinFunction uintBitsToFloat
|
||||
syn keyword glslBuiltinFunction umulExtended
|
||||
syn keyword glslBuiltinFunction unpackDouble2x32
|
||||
syn keyword glslBuiltinFunction unpackHalf2x16
|
||||
syn keyword glslBuiltinFunction unpackSnorm2x16
|
||||
syn keyword glslBuiltinFunction unpackSnorm4x8
|
||||
syn keyword glslBuiltinFunction unpackUnorm2x16
|
||||
syn keyword glslBuiltinFunction unpackUnorm4x8
|
||||
syn keyword glslBuiltinFunction usubBorrow
|
||||
|
||||
hi def link glslConditional Conditional
|
||||
hi def link glslRepeat Repeat
|
||||
hi def link glslStatement Statement
|
||||
hi def link glslTodo Todo
|
||||
hi def link glslCommentL glslComment
|
||||
hi def link glslCommentStart glslComment
|
||||
hi def link glslComment Comment
|
||||
hi def link glslPreCondit PreCondit
|
||||
hi def link glslDefine Define
|
||||
hi def link glslTokenConcat glslPreProc
|
||||
hi def link glslPredefinedMacro Macro
|
||||
hi def link glslPreProc PreProc
|
||||
hi def link glslBoolean Boolean
|
||||
hi def link glslDecimalInt glslInteger
|
||||
hi def link glslOctalInt glslInteger
|
||||
hi def link glslHexInt glslInteger
|
||||
hi def link glslInteger Number
|
||||
hi def link glslFloat Float
|
||||
hi def link glslStructure Structure
|
||||
hi def link glslType Type
|
||||
hi def link glslQualifier StorageClass
|
||||
hi def link glslBuiltinConstant Constant
|
||||
hi def link glslBuiltinFunction Function
|
||||
hi def link glslBuiltinVariable Identifier
|
||||
hi def link glslSwizzle SpecialChar
|
||||
|
||||
if !exists("b:current_syntax")
|
||||
let b:current_syntax = "glsl"
|
||||
endif
|
||||
|
||||
" vim:set sts=2 sw=2 :
|
||||
|
||||
endif
|
||||
@@ -12,7 +12,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
|
||||
" let OPTION_NAME = 0
|
||||
" in your ~/.vimrc file to disable particular options. You can also write:
|
||||
" let OPTION_NAME = 1
|
||||
" to enable particular options.
|
||||
" to enable particular options.
|
||||
" At present, all options default to on, except highlight of:
|
||||
" functions, methods and structs.
|
||||
"
|
||||
@@ -27,6 +27,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
|
||||
" Highlights instances of tabs following spaces.
|
||||
" - go_highlight_trailing_whitespace_error
|
||||
" Highlights trailing white space.
|
||||
" - go_highlight_string_spellcheck
|
||||
" Specifies that strings should be spell checked
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -73,6 +75,10 @@ if !exists("g:go_highlight_build_constraints")
|
||||
let g:go_highlight_build_constraints = 0
|
||||
endif
|
||||
|
||||
if !exists("g:go_highlight_string_spellcheck")
|
||||
let g:go_highlight_string_spellcheck = 1
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn keyword goDirective package import
|
||||
@@ -147,8 +153,13 @@ hi def link goEscapeError Error
|
||||
|
||||
" Strings and their contents
|
||||
syn cluster goStringGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError
|
||||
syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup
|
||||
syn region goRawString start=+`+ end=+`+
|
||||
if g:go_highlight_string_spellcheck != 0
|
||||
syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup,@Spell
|
||||
syn region goRawString start=+`+ end=+`+ contains=@Spell
|
||||
else
|
||||
syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup
|
||||
syn region goRawString start=+`+ end=+`+
|
||||
endif
|
||||
syn match goFormatSpecifier /%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)*[vTtbcdoqxXUeEfgGsp]/ contained containedin=goString
|
||||
|
||||
hi def link goString String
|
||||
@@ -236,7 +247,7 @@ syn keyword goTodo contained NOTE
|
||||
hi def link goTodo Todo
|
||||
|
||||
|
||||
" Operators;
|
||||
" Operators;
|
||||
if g:go_highlight_operators != 0
|
||||
" match single-char operators: - + % < > ! & | ^ * =
|
||||
" and corresponding two-char operators: -= += %= <= >= != &= |= ^= *= ==
|
||||
@@ -253,20 +264,20 @@ if g:go_highlight_operators != 0
|
||||
endif
|
||||
hi def link goOperator Operator
|
||||
|
||||
" Functions;
|
||||
" Functions;
|
||||
if g:go_highlight_functions != 0
|
||||
syn match goFunction /\(func\s\+\)\@<=\w\+\((\)\@=/
|
||||
syn match goFunction /\()\s\+\)\@<=\w\+\((\)\@=/
|
||||
endif
|
||||
hi def link goFunction Function
|
||||
|
||||
" Methods;
|
||||
" Methods;
|
||||
if g:go_highlight_methods != 0
|
||||
syn match goMethod /\(\.\)\@<=\w\+\((\)\@=/
|
||||
endif
|
||||
hi def link goMethod Type
|
||||
|
||||
" Structs;
|
||||
" Structs;
|
||||
if g:go_highlight_structs != 0
|
||||
syn match goStruct /\(.\)\@<=\w\+\({\)\@=/
|
||||
syn match goStructDef /\(type\s\+\)\@<=\w\+\(\s\+struct\s\+{\)\@=/
|
||||
@@ -276,7 +287,7 @@ hi def link goStructDef Function
|
||||
|
||||
" Build Constraints
|
||||
if g:go_highlight_build_constraints != 0
|
||||
syn keyword goBuildOs contained ignore cgo android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows
|
||||
syn keyword goBuildOs contained ignore cgo android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows
|
||||
syn keyword goBuildArch contained 386 amd64 amd64p32 arm
|
||||
syn match goBuildDirective display contained "+build"
|
||||
syn region goBuildComment start="//\s*+build" end="$" contains=goBuildDirective,goBuildOs,goBuildArch
|
||||
|
||||
@@ -68,7 +68,7 @@ syn cluster gotplLiteral contains=goString,goRawString,goCharacter,@goIn
|
||||
syn keyword gotplControl contained if else end range with template
|
||||
syn keyword gotplFunctions contained and html index js len not or print printf println urlquery eq ne lt le gt ge
|
||||
syn match gotplVariable contained /\$[^ ]*\>/
|
||||
syn match goTplIdentifier contained /\.[^ ]*\>/
|
||||
syn match goTplIdentifier contained /\.[^\s}]*\>/
|
||||
|
||||
hi def link gotplControl Keyword
|
||||
hi def link gotplFunctions Function
|
||||
|
||||
454
syntax/groovy.vim
Normal file
454
syntax/groovy.vim
Normal file
@@ -0,0 +1,454 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'groovy') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Groovy
|
||||
" Maintainer: Alessio Pace <billy.corgan@tiscali.it>
|
||||
" Version: 0.1.9b
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=945
|
||||
" Last Change: 6/4/2004
|
||||
|
||||
" This is my very first vim script, I hope to have
|
||||
" done it the right way.
|
||||
"
|
||||
" I must directly or indirectly thank the author of java.vim and ruby.vim:
|
||||
" I copied from them most of the stuff :-)
|
||||
"
|
||||
" Relies on html.vim
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
"
|
||||
" HOWTO USE IT (INSTALL):
|
||||
" [groovy is still not recognized by vim! :-( ]
|
||||
"
|
||||
" 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder
|
||||
"
|
||||
" 2) add this line to recognize groovy files by filename extension:
|
||||
"
|
||||
" au BufNewFile,BufRead *.groovy setf groovy
|
||||
" in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim
|
||||
"
|
||||
" 3) add this part to recognize by content groovy script (no extension needed :-)
|
||||
"
|
||||
" if did_filetype()
|
||||
" finish
|
||||
" endif
|
||||
" if getline(1) =~ '^#!.*[/\\]groovy\>'
|
||||
" setf groovy
|
||||
" endif
|
||||
"
|
||||
" in the global scripts.vim file or in $HOME/.vim/scripts.vim
|
||||
"
|
||||
" 4) open/write a .groovy file or a groovy script :-)
|
||||
"
|
||||
" Let me know if you like it or send me patches, so that I can improve it
|
||||
" when I have time
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
" we define it here so that included files can test for it
|
||||
let main_syntax='groovy'
|
||||
endif
|
||||
|
||||
" don't use standard HiLink, it will not work with included syntax files
|
||||
if version < 508
|
||||
command! -nargs=+ GroovyHiLink hi link <args>
|
||||
else
|
||||
command! -nargs=+ GroovyHiLink hi def link <args>
|
||||
endif
|
||||
|
||||
" ##########################
|
||||
" Java stuff taken from java.vim
|
||||
" some characters that cannot be in a groovy program (outside a string)
|
||||
" syn match groovyError "[\\@`]"
|
||||
"syn match groovyError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
|
||||
"syn match groovyOK "\.\.\."
|
||||
|
||||
" keyword definitions
|
||||
syn keyword groovyExternal native package
|
||||
syn match groovyExternal "\<import\(\s\+static\>\)\?"
|
||||
syn keyword groovyError goto const
|
||||
syn keyword groovyConditional if else switch
|
||||
syn keyword groovyRepeat while for do
|
||||
syn keyword groovyBoolean true false
|
||||
syn keyword groovyConstant null
|
||||
syn keyword groovyTypedef this super
|
||||
syn keyword groovyOperator new instanceof
|
||||
syn keyword groovyType boolean char byte short int long float double
|
||||
syn keyword groovyType void
|
||||
syn keyword groovyType Integer Double Date Boolean Float String Array Vector List
|
||||
syn keyword groovyStatement return
|
||||
syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable
|
||||
syn keyword groovyExceptions throw try catch finally
|
||||
syn keyword groovyAssert assert
|
||||
syn keyword groovyMethodDecl synchronized throws
|
||||
syn keyword groovyClassDecl extends implements interface
|
||||
" to differentiate the keyword class from MyClass.class we use a match here
|
||||
syn match groovyTypedef "\.\s*\<class\>"ms=s+1
|
||||
syn keyword groovyClassDecl enum
|
||||
syn match groovyClassDecl "^class\>"
|
||||
syn match groovyClassDecl "[^.]\s*\<class\>"ms=s+1
|
||||
syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite
|
||||
syn match groovyUserLabelRef "\k\+" contained
|
||||
syn keyword groovyScopeDecl public protected private abstract
|
||||
|
||||
|
||||
if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy_lang") || exists("groovy_highlight_all")
|
||||
" groovy.lang.*
|
||||
syn keyword groovyLangClass Closure MetaMethod GroovyObject
|
||||
|
||||
syn match groovyJavaLangClass "\<System\>"
|
||||
syn keyword groovyJavaLangClass Cloneable Comparable Runnable Serializable Boolean Byte Class Object
|
||||
syn keyword groovyJavaLangClass Character CharSequence ClassLoader Compiler
|
||||
" syn keyword groovyJavaLangClass Integer Double Float Long
|
||||
syn keyword groovyJavaLangClass InheritableThreadLocal Math Number Object Package Process
|
||||
syn keyword groovyJavaLangClass Runtime RuntimePermission InheritableThreadLocal
|
||||
syn keyword groovyJavaLangClass SecurityManager Short StrictMath StackTraceElement
|
||||
syn keyword groovyJavaLangClass StringBuffer Thread ThreadGroup
|
||||
syn keyword groovyJavaLangClass ThreadLocal Throwable Void ArithmeticException
|
||||
syn keyword groovyJavaLangClass ArrayIndexOutOfBoundsException AssertionError
|
||||
syn keyword groovyJavaLangClass ArrayStoreException ClassCastException
|
||||
syn keyword groovyJavaLangClass ClassNotFoundException
|
||||
syn keyword groovyJavaLangClass CloneNotSupportedException Exception
|
||||
syn keyword groovyJavaLangClass IllegalAccessException
|
||||
syn keyword groovyJavaLangClass IllegalArgumentException
|
||||
syn keyword groovyJavaLangClass IllegalMonitorStateException
|
||||
syn keyword groovyJavaLangClass IllegalStateException
|
||||
syn keyword groovyJavaLangClass IllegalThreadStateException
|
||||
syn keyword groovyJavaLangClass IndexOutOfBoundsException
|
||||
syn keyword groovyJavaLangClass InstantiationException InterruptedException
|
||||
syn keyword groovyJavaLangClass NegativeArraySizeException NoSuchFieldException
|
||||
syn keyword groovyJavaLangClass NoSuchMethodException NullPointerException
|
||||
syn keyword groovyJavaLangClass NumberFormatException RuntimeException
|
||||
syn keyword groovyJavaLangClass SecurityException StringIndexOutOfBoundsException
|
||||
syn keyword groovyJavaLangClass UnsupportedOperationException
|
||||
syn keyword groovyJavaLangClass AbstractMethodError ClassCircularityError
|
||||
syn keyword groovyJavaLangClass ClassFormatError Error ExceptionInInitializerError
|
||||
syn keyword groovyJavaLangClass IllegalAccessError InstantiationError
|
||||
syn keyword groovyJavaLangClass IncompatibleClassChangeError InternalError
|
||||
syn keyword groovyJavaLangClass LinkageError NoClassDefFoundError
|
||||
syn keyword groovyJavaLangClass NoSuchFieldError NoSuchMethodError
|
||||
syn keyword groovyJavaLangClass OutOfMemoryError StackOverflowError
|
||||
syn keyword groovyJavaLangClass ThreadDeath UnknownError UnsatisfiedLinkError
|
||||
syn keyword groovyJavaLangClass UnsupportedClassVersionError VerifyError
|
||||
syn keyword groovyJavaLangClass VirtualMachineError
|
||||
|
||||
syn keyword groovyJavaLangObject clone equals finalize getClass hashCode
|
||||
syn keyword groovyJavaLangObject notify notifyAll toString wait
|
||||
|
||||
GroovyHiLink groovyLangClass groovyConstant
|
||||
GroovyHiLink groovyJavaLangClass groovyExternal
|
||||
GroovyHiLink groovyJavaLangObject groovyConstant
|
||||
syn cluster groovyTop add=groovyJavaLangObject,groovyJavaLangClass,groovyLangClass
|
||||
syn cluster groovyClasses add=groovyJavaLangClass,groovyLangClass
|
||||
endif
|
||||
|
||||
|
||||
" Groovy stuff
|
||||
syn match groovyOperator "\.\."
|
||||
syn match groovyOperator "<\{2,3}"
|
||||
syn match groovyOperator ">\{2,3}"
|
||||
syn match groovyOperator "->"
|
||||
syn match groovyExternal '^#!.*[/\\]groovy\>'
|
||||
syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
|
||||
|
||||
" Groovy JDK stuff
|
||||
syn keyword groovyJDKBuiltin as def in
|
||||
syn keyword groovyJDKOperOverl div minus plus abs round power multiply
|
||||
syn keyword groovyJDKMethods each call inject sort print println
|
||||
syn keyword groovyJDKMethods getAt putAt size push pop toList getText writeLine eachLine readLines
|
||||
syn keyword groovyJDKMethods withReader withStream withWriter withPrintWriter write read leftShift
|
||||
syn keyword groovyJDKMethods withWriterAppend readBytes splitEachLine
|
||||
syn keyword groovyJDKMethods newInputStream newOutputStream newPrintWriter newReader newWriter
|
||||
syn keyword groovyJDKMethods compareTo next previous isCase
|
||||
syn keyword groovyJDKMethods times step toInteger upto any collect dump every find findAll grep
|
||||
syn keyword groovyJDKMethods inspect invokeMethods join
|
||||
syn keyword groovyJDKMethods getErr getIn getOut waitForOrKill
|
||||
syn keyword groovyJDKMethods count tokenize asList flatten immutable intersect reverse reverseEach
|
||||
syn keyword groovyJDKMethods subMap append asWritable eachByte eachLine eachFile
|
||||
syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods
|
||||
|
||||
" no useful I think, so I comment it..
|
||||
"if filereadable(expand("<sfile>:p:h")."/groovyid.vim")
|
||||
" source <sfile>:p:h/groovyid.vim
|
||||
"endif
|
||||
|
||||
if exists("groovy_space_errors")
|
||||
if !exists("groovy_no_trail_space_error")
|
||||
syn match groovySpaceError "\s\+$"
|
||||
endif
|
||||
if !exists("groovy_no_tab_space_error")
|
||||
syn match groovySpaceError " \+\t"me=e-1
|
||||
endif
|
||||
endif
|
||||
|
||||
" it is a better case construct than java.vim to match groovy syntax
|
||||
syn region groovyLabelRegion transparent matchgroup=groovyLabel start="\<case\>" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass
|
||||
syn match groovyUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel
|
||||
syn keyword groovyLabel default
|
||||
|
||||
if !exists("groovy_allow_cpp_keywords")
|
||||
syn keyword groovyError auto delete extern friend inline redeclared
|
||||
syn keyword groovyError register signed sizeof struct template typedef union
|
||||
syn keyword groovyError unsigned operator
|
||||
endif
|
||||
|
||||
" The following cluster contains all groovy groups except the contained ones
|
||||
syn cluster groovyTop add=groovyExternal,groovyError,groovyError,groovyBranch,groovyLabelRegion,groovyLabel,groovyConditional,groovyRepeat,groovyBoolean,groovyConstant,groovyTypedef,groovyOperator,groovyType,groovyType,groovyStatement,groovyStorageClass,groovyAssert,groovyExceptions,groovyMethodDecl,groovyClassDecl,groovyClassDecl,groovyClassDecl,groovyScopeDecl,groovyError,groovyError2,groovyUserLabel,groovyLangObject
|
||||
|
||||
|
||||
" Comments
|
||||
syn keyword groovyTodo contained TODO FIXME XXX
|
||||
if exists("groovy_comment_strings")
|
||||
syn region groovyCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=groovySpecial,groovyCommentStar,groovySpecialChar,@Spell
|
||||
syn region groovyComment2String contained start=+"+ end=+$\|"+ contains=groovySpecial,groovySpecialChar,@Spell
|
||||
syn match groovyCommentCharacter contained "'\\[^']\{1,6\}'" contains=groovySpecialChar
|
||||
syn match groovyCommentCharacter contained "'\\''" contains=groovySpecialChar
|
||||
syn match groovyCommentCharacter contained "'[^\\]'"
|
||||
syn cluster groovyCommentSpecial add=groovyCommentString,groovyCommentCharacter,groovyNumber
|
||||
syn cluster groovyCommentSpecial2 add=groovyComment2String,groovyCommentCharacter,groovyNumber
|
||||
endif
|
||||
syn region groovyComment start="/\*" end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell
|
||||
syn match groovyCommentStar contained "^\s*\*[^/]"me=e-1
|
||||
syn match groovyCommentStar contained "^\s*\*$"
|
||||
syn match groovyLineComment "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
|
||||
syn match groovyLineComment "#.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
|
||||
GroovyHiLink groovyCommentString groovyString
|
||||
GroovyHiLink groovyComment2String groovyString
|
||||
GroovyHiLink groovyCommentCharacter groovyCharacter
|
||||
|
||||
syn cluster groovyTop add=groovyComment,groovyLineComment
|
||||
|
||||
if !exists("groovy_ignore_groovydoc") && main_syntax != 'jsp'
|
||||
syntax case ignore
|
||||
" syntax coloring for groovydoc comments (HTML)
|
||||
" syntax include @groovyHtml <sfile>:p:h/html.vim
|
||||
syntax include @groovyHtml runtime! syntax/html.vim
|
||||
unlet b:current_syntax
|
||||
syn region groovyDocComment start="/\*\*" end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
|
||||
syn region groovyCommentTitle contained matchgroup=groovyDocComment start="/\*\*" matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags
|
||||
|
||||
syn region groovyDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
|
||||
syn match groovyDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam
|
||||
syn match groovyDocParam contained "\s\S\+"
|
||||
syn match groovyDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
|
||||
syntax case match
|
||||
endif
|
||||
|
||||
" match the special comment /**/
|
||||
syn match groovyComment "/\*\*/"
|
||||
|
||||
" Strings and constants
|
||||
syn match groovySpecialError contained "\\."
|
||||
syn match groovySpecialCharError contained "[^']"
|
||||
syn match groovySpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
|
||||
syn region groovyString start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
|
||||
syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
|
||||
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
|
||||
syn match groovyELExpr /\${.\{-}}/ contained
|
||||
GroovyHiLink groovyELExpr Identifier
|
||||
|
||||
" TODO: better matching. I am waiting to understand how it really works in groovy
|
||||
" syn region groovyClosureParamsBraces start=+|+ end=+|+ contains=groovyClosureParams
|
||||
" syn match groovyClosureParams "[ a-zA-Z0-9_*]\+" contained
|
||||
" GroovyHiLink groovyClosureParams Identifier
|
||||
|
||||
" next line disabled, it can cause a crash for a long line
|
||||
"syn match groovyStringError +"\([^"\\]\|\\.\)*$+
|
||||
|
||||
" disabled: in groovy strings or characters are written the same
|
||||
" syn match groovyCharacter "'[^']*'" contains=groovySpecialChar,groovySpecialCharError
|
||||
" syn match groovyCharacter "'\\''" contains=groovySpecialChar
|
||||
" syn match groovyCharacter "'[^\\]'"
|
||||
syn match groovyNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
|
||||
syn match groovyNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
|
||||
syn match groovyNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
|
||||
syn match groovyNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
|
||||
|
||||
" unicode characters
|
||||
syn match groovySpecial "\\u\d\{4\}"
|
||||
|
||||
syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError
|
||||
|
||||
if exists("groovy_highlight_functions")
|
||||
if groovy_highlight_functions == "indent"
|
||||
syn match groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
syn match groovyFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
syn region groovyFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
else
|
||||
" This line catches method declarations at any indentation>0, but it assumes
|
||||
" two things:
|
||||
" 1. class names are always capitalized (ie: Button)
|
||||
" 2. method names are never capitalized (except constructors, of course)
|
||||
syn region groovyFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,groovyComment,groovyLineComment,@groovyClasses
|
||||
endif
|
||||
syn match groovyBraces "[{}]"
|
||||
syn cluster groovyTop add=groovyFuncDef,groovyBraces
|
||||
endif
|
||||
|
||||
if exists("groovy_highlight_debug")
|
||||
|
||||
" Strings and constants
|
||||
syn match groovyDebugSpecial contained "\\\d\d\d\|\\."
|
||||
syn region groovyDebugString contained start=+"+ end=+"+ contains=groovyDebugSpecial
|
||||
syn match groovyDebugStringError +"\([^"\\]\|\\.\)*$+
|
||||
syn match groovyDebugCharacter contained "'[^\\]'"
|
||||
syn match groovyDebugSpecialCharacter contained "'\\.'"
|
||||
syn match groovyDebugSpecialCharacter contained "'\\''"
|
||||
syn match groovyDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
|
||||
syn match groovyDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
|
||||
syn match groovyDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
|
||||
syn match groovyDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
|
||||
syn keyword groovyDebugBoolean contained true false
|
||||
syn keyword groovyDebugType contained null this super
|
||||
syn region groovyDebugParen start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen
|
||||
|
||||
" to make this work you must define the highlighting for these groups
|
||||
syn match groovyDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
syn match groovyDebug "\<p\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
syn match groovyDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
syn match groovyDebug "\<trace[SL]\=\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
|
||||
syn cluster groovyTop add=groovyDebug
|
||||
|
||||
if version >= 508 || !exists("did_c_syn_inits")
|
||||
GroovyHiLink groovyDebug Debug
|
||||
GroovyHiLink groovyDebugString DebugString
|
||||
GroovyHiLink groovyDebugStringError groovyError
|
||||
GroovyHiLink groovyDebugType DebugType
|
||||
GroovyHiLink groovyDebugBoolean DebugBoolean
|
||||
GroovyHiLink groovyDebugNumber Debug
|
||||
GroovyHiLink groovyDebugSpecial DebugSpecial
|
||||
GroovyHiLink groovyDebugSpecialCharacter DebugSpecial
|
||||
GroovyHiLink groovyDebugCharacter DebugString
|
||||
GroovyHiLink groovyDebugParen Debug
|
||||
|
||||
GroovyHiLink DebugString String
|
||||
GroovyHiLink DebugSpecial Special
|
||||
GroovyHiLink DebugBoolean Boolean
|
||||
GroovyHiLink DebugType Type
|
||||
endif
|
||||
endif
|
||||
|
||||
" Match all Exception classes
|
||||
syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
|
||||
|
||||
|
||||
if !exists("groovy_minlines")
|
||||
let groovy_minlines = 10
|
||||
endif
|
||||
exec "syn sync ccomment groovyComment minlines=" . groovy_minlines
|
||||
|
||||
|
||||
" ###################
|
||||
" Groovy stuff
|
||||
" syn match groovyOperator "|[ ,a-zA-Z0-9_*]\+|"
|
||||
|
||||
" All groovy valid tokens
|
||||
" syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~=="
|
||||
" syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>"
|
||||
|
||||
" Must put explicit these ones because groovy.vim mark them as errors otherwise
|
||||
" syn match groovyTokens "<=>\|<>\|==\~"
|
||||
"syn cluster groovyTop add=groovyTokens
|
||||
|
||||
" Mark these as operators
|
||||
|
||||
" Hightlight brackets
|
||||
" syn match groovyBraces "[{}]"
|
||||
" syn match groovyBraces "[\[\]]"
|
||||
" syn match groovyBraces "[\|]"
|
||||
|
||||
if exists("groovy_mark_braces_in_parens_as_errors")
|
||||
syn match groovyInParen contained "[{}]"
|
||||
GroovyHiLink groovyInParen groovyError
|
||||
syn cluster groovyTop add=groovyInParen
|
||||
endif
|
||||
|
||||
" catch errors caused by wrong parenthesis
|
||||
syn region groovyParenT transparent matchgroup=groovyParen start="(" end=")" contains=@groovyTop,groovyParenT1
|
||||
syn region groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained
|
||||
syn region groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT contained
|
||||
syn match groovyParenError ")"
|
||||
GroovyHiLink groovyParenError groovyError
|
||||
|
||||
" catch errors caused by wrong square parenthesis
|
||||
syn region groovyParenT transparent matchgroup=groovyParen start="\[" end="\]" contains=@groovyTop,groovyParenT1
|
||||
syn region groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained
|
||||
syn region groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT contained
|
||||
syn match groovyParenError "\]"
|
||||
|
||||
" ###############################
|
||||
" java.vim default highlighting
|
||||
if version >= 508 || !exists("did_groovy_syn_inits")
|
||||
if version < 508
|
||||
let did_groovy_syn_inits = 1
|
||||
endif
|
||||
GroovyHiLink groovyFuncDef Function
|
||||
GroovyHiLink groovyBraces Function
|
||||
GroovyHiLink groovyBranch Conditional
|
||||
GroovyHiLink groovyUserLabelRef groovyUserLabel
|
||||
GroovyHiLink groovyLabel Label
|
||||
GroovyHiLink groovyUserLabel Label
|
||||
GroovyHiLink groovyConditional Conditional
|
||||
GroovyHiLink groovyRepeat Repeat
|
||||
GroovyHiLink groovyExceptions Exception
|
||||
GroovyHiLink groovyAssert Statement
|
||||
GroovyHiLink groovyStorageClass StorageClass
|
||||
GroovyHiLink groovyMethodDecl groovyStorageClass
|
||||
GroovyHiLink groovyClassDecl groovyStorageClass
|
||||
GroovyHiLink groovyScopeDecl groovyStorageClass
|
||||
GroovyHiLink groovyBoolean Boolean
|
||||
GroovyHiLink groovySpecial Special
|
||||
GroovyHiLink groovySpecialError Error
|
||||
GroovyHiLink groovySpecialCharError Error
|
||||
GroovyHiLink groovyString String
|
||||
GroovyHiLink groovyCharacter Character
|
||||
GroovyHiLink groovySpecialChar SpecialChar
|
||||
GroovyHiLink groovyNumber Number
|
||||
GroovyHiLink groovyError Error
|
||||
GroovyHiLink groovyStringError Error
|
||||
GroovyHiLink groovyStatement Statement
|
||||
GroovyHiLink groovyOperator Operator
|
||||
GroovyHiLink groovyComment Comment
|
||||
GroovyHiLink groovyDocComment Comment
|
||||
GroovyHiLink groovyLineComment Comment
|
||||
GroovyHiLink groovyConstant Constant
|
||||
GroovyHiLink groovyTypedef Typedef
|
||||
GroovyHiLink groovyTodo Todo
|
||||
|
||||
GroovyHiLink groovyCommentTitle SpecialComment
|
||||
GroovyHiLink groovyDocTags Special
|
||||
GroovyHiLink groovyDocParam Function
|
||||
GroovyHiLink groovyCommentStar groovyComment
|
||||
|
||||
GroovyHiLink groovyType Type
|
||||
GroovyHiLink groovyExternal Include
|
||||
|
||||
GroovyHiLink htmlComment Special
|
||||
GroovyHiLink htmlCommentPart Special
|
||||
GroovyHiLink groovySpaceError Error
|
||||
GroovyHiLink groovyJDKBuiltin Special
|
||||
GroovyHiLink groovyJDKOperOverl Operator
|
||||
GroovyHiLink groovyJDKMethods Function
|
||||
endif
|
||||
|
||||
delcommand GroovyHiLink
|
||||
|
||||
|
||||
let b:current_syntax = "groovy"
|
||||
if main_syntax == 'groovy'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
let b:spell_options="contained"
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
@@ -1,260 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
" syntax highlighting for haskell
|
||||
"
|
||||
" Heavily modified version of the haskell syntax
|
||||
" highlighter to support haskell.
|
||||
"
|
||||
" author: raichoo (raichoo@googlemail.com)
|
||||
|
||||
if version < 600
|
||||
syn clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists('g:haskell_enable_quantification') && g:haskell_enable_quantification == 1
|
||||
syn region haskellRecordBlock matchgroup=haskellDelimiter start="{" end="}"
|
||||
\ contains=
|
||||
\ haskellType,
|
||||
\ haskellSeparator,
|
||||
\ haskellParens,
|
||||
\ haskellBrackets,
|
||||
\ haskellRecordField,
|
||||
\ haskellOperators,
|
||||
\ haskellDot,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellPragma,
|
||||
\ haskellForall
|
||||
else
|
||||
syn region haskellRecordBlock matchgroup=haskellDelimiter start="{" end="}"
|
||||
\ contains=
|
||||
\ haskellType,
|
||||
\ haskellSeparator,
|
||||
\ haskellParens,
|
||||
\ haskellBrackets,
|
||||
\ haskellRecordField,
|
||||
\ haskellOperators,
|
||||
\ haskellDot,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellPragma
|
||||
endif
|
||||
if exists('g:haskell_enable_pattern_synonyms') && g:haskell_enable_pattern_synonyms == 1
|
||||
syn region haskellImportList matchgroup=haskellDelimiter start="(" end=")"
|
||||
\ contains=
|
||||
\ haskellSeparator,
|
||||
\ haskellType,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellDot,
|
||||
\ haskellParens,
|
||||
\ haskellPatternKeyword
|
||||
else
|
||||
syn region haskellImportList matchgroup=haskellDelimiter start="(" end=")"
|
||||
\ contains=
|
||||
\ haskellSeparator,
|
||||
\ haskellType,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellDot,
|
||||
\ haskellParens
|
||||
end
|
||||
syn match haskellRecordField "[_a-z][a-zA-Z0-9_']*\s*::" contained
|
||||
\ contains=
|
||||
\ haskellIdentifier,
|
||||
\ haskellOperators
|
||||
syn match haskellTopLevelDecl
|
||||
\ "^\s*\(where\s\+\|let\s\+\|default\s\+\)\?[_a-z][a-zA-Z0-9_']*\(,\s*[_a-z][a-zA-Z0-9_']*\)*\(\s*::\|\n\s\+::\)"
|
||||
\ contains=
|
||||
\ haskellIdentifier,
|
||||
\ haskellOperators,
|
||||
\ haskellSeparator,
|
||||
\ haskellParens,
|
||||
\ haskellBrackets,
|
||||
\ haskellWhere,
|
||||
\ haskellLet,
|
||||
\ haskellDefault
|
||||
syn region haskellModuleBlock matchgroup=haskellBlockKeywords start="\<module\>" end="\<where\>"
|
||||
\ contains=haskellType,haskellDot,haskellImportList
|
||||
syn region haskellClassBlock
|
||||
\ matchgroup=haskellBlockKeywords
|
||||
\ start="^\<\(class\|instance\)\>"
|
||||
\ end="\<where\>\|^\<"
|
||||
\ contains=
|
||||
\ haskellType,
|
||||
\ haskellSeparator,
|
||||
\ haskellParens,
|
||||
\ haskellDot,
|
||||
\ haskellOperators,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellPragma
|
||||
syn keyword haskellDeclKeyword newtype data type family instance where contained
|
||||
syn region haskellDeclBlock keepend
|
||||
\ start="^\<\(newtype\|data\|type\)\>\s\+\(\<\(family\|instance\)\>\)\?"
|
||||
\ end="\<where\>\|=\|^\<"
|
||||
\ contains=
|
||||
\ haskellDeclKeyword,
|
||||
\ haskellType,
|
||||
\ haskellQuoted,
|
||||
\ haskellParens,
|
||||
\ haskellBrackets,
|
||||
\ haskellDot,
|
||||
\ haskellOperators,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellPragma
|
||||
syn match haskellAssocType "\s\+\<\(data\|type\|newtype\)\>"
|
||||
syn match haskellDeriving "\(deriving\s\+instance\|deriving\)"
|
||||
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
|
||||
\ contains=
|
||||
\ haskellString,
|
||||
\ haskellOperators,
|
||||
\ haskellForeignKeywords,
|
||||
\ haskellIdentifier
|
||||
syn region haskellImport
|
||||
\ start="^import"
|
||||
\ end="^\<"
|
||||
\ contains=
|
||||
\ haskellImportKeywords,
|
||||
\ haskellImportList,
|
||||
\ haskellType,
|
||||
\ haskellLineComment,
|
||||
\ haskellBlockComment,
|
||||
\ haskellDot
|
||||
syn keyword haskellStatement do case of in
|
||||
syn keyword haskellWhere where
|
||||
syn keyword haskellLet let
|
||||
if exists('g:haskell_enable_static_pointers') && g:haskell_enable_static_pointers == 1
|
||||
syn keyword haskellStatic static
|
||||
endif
|
||||
syn keyword haskellConditional if then else
|
||||
syn match haskellNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>\|\<0[bB][10]\+\>"
|
||||
syn match haskellFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
|
||||
syn match haskellSeparator "[,;]"
|
||||
syn region haskellParens matchgroup=haskellDelimiter start="(" end=")" contains=TOP
|
||||
syn region haskellBrackets matchgroup=haskellDelimiter start="\[" end="]" contains=TOP
|
||||
syn region haskellBlock matchgroup=haskellDelimiter start="{" end="}" contains=TOP
|
||||
syn keyword haskellInfix infix infixl infixr
|
||||
syn keyword haskellBottom undefined error
|
||||
syn match haskellOperators "[-!#$%&\*\+/<=>\?@\\^|~:]\+\|\<_\>"
|
||||
syn match haskellQuote "\<'\+" contained
|
||||
syn match haskellQuotedType "[A-Z][a-zA-Z0-9_']*\>" contained
|
||||
syn region haskellQuoted start="\<'\+" end="\>"
|
||||
\ contains=
|
||||
\ haskellType,
|
||||
\ haskellQuote,
|
||||
\ haskellQuotedType,
|
||||
\ haskellSeparator,
|
||||
\ haskellParens,
|
||||
\ haskellOperators,
|
||||
\ haskellIdentifier
|
||||
syn match haskellDot "\."
|
||||
syn match haskellLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$"
|
||||
\ contains=
|
||||
\ haskellTodo,
|
||||
\ @Spell
|
||||
syn match haskellBacktick "`[A-Za-z_][A-Za-z0-9_\.']*`"
|
||||
syn region haskellString start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
\ contains=@Spell
|
||||
syn match haskellIdentifier "[_a-z][a-zA-z0-9_']*" contained
|
||||
syn match haskellChar "\<'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'\>"
|
||||
syn match haskellType "\<[A-Z][a-zA-Z0-9_']*\>\n\?\s*"
|
||||
\ nextgroup=haskellBlockComment,haskellRecordBlock
|
||||
syn region haskellBlockComment start="{-" end="-}"
|
||||
\ contains=
|
||||
\ haskellBlockComment,
|
||||
\ haskellTodo,
|
||||
\ @Spell
|
||||
syn region haskellPragma start="{-#" end="#-}"
|
||||
syn region haskellQuasiQuote matchgroup=haskellTH start="\[[_a-z][a-zA-z0-9_']*|" end="|\]"
|
||||
syn region haskellTHBlock matchgroup=haskellTH start="\[\(d\|t\|p\)\?|" end="|]" contains=TOP
|
||||
syn region haskellTHDoubleBlock matchgroup=haskellTH start="\[||" end="||]" contains=TOP
|
||||
syn match haskellPreProc "^#.*$"
|
||||
syn keyword haskellTodo TODO FIXME contained
|
||||
if exists('g:haskell_enable_typeroles') && g:haskell_enable_typeroles == 1
|
||||
syn keyword haskellTypeRoles phantom representational nominal contained
|
||||
syn region haskellTypeRoleBlock matchgroup=haskellTypeRoles start="type\s\+role" end="^\<" keepend
|
||||
\ contains=
|
||||
\ haskellType,
|
||||
\ haskellTypeRoles
|
||||
endif
|
||||
if exists('g:haskell_enable_quantification') && g:haskell_enable_quantification == 1
|
||||
syn keyword haskellForall forall
|
||||
endif
|
||||
if exists('g:haskell_enable_recursivedo') && g:haskell_enable_recursivedo == 1
|
||||
syn keyword haskellRecursiveDo mdo rec
|
||||
endif
|
||||
if exists('g:haskell_enable_arrowsyntax') && g:haskell_enable_arrowsyntax == 1
|
||||
syn keyword haskellArrowSyntax proc
|
||||
endif
|
||||
if exists('g:haskell_enable_pattern_synonyms') && g:haskell_enable_pattern_synonyms == 1
|
||||
syn region haskellPatternSynonym start="^\<pattern\>" end="=\|<-" keepend
|
||||
\ contains=
|
||||
\ haskellPatternKeyword,
|
||||
\ haskellType,
|
||||
\ haskellOperators
|
||||
syn keyword haskellPatternKeyword pattern contained
|
||||
endif
|
||||
|
||||
highlight def link haskellBottom Macro
|
||||
highlight def link haskellTH Boolean
|
||||
highlight def link haskellBlockKeywords Structure
|
||||
highlight def link haskellIdentifier Identifier
|
||||
highlight def link haskellForeignKeywords Structure
|
||||
highlight def link haskellDeriving Structure
|
||||
highlight def link haskellStatement Statement
|
||||
highlight def link haskellWhere Statement
|
||||
highlight def link haskellLet Statement
|
||||
highlight def link haskellDefault Statement
|
||||
highlight def link haskellConditional Conditional
|
||||
highlight def link haskellNumber Number
|
||||
highlight def link haskellFloat Float
|
||||
highlight def link haskellSeparator Delimiter
|
||||
highlight def link haskellDelimiter Delimiter
|
||||
highlight def link haskellInfix PreProc
|
||||
highlight def link haskellOperators Operator
|
||||
highlight def link haskellQuote Operator
|
||||
highlight def link haskellQuotedType Include
|
||||
highlight def link haskellDot Operator
|
||||
highlight def link haskellType Include
|
||||
highlight def link haskellLineComment Comment
|
||||
highlight def link haskellBlockComment Comment
|
||||
highlight def link haskellPragma SpecialComment
|
||||
highlight def link haskellString String
|
||||
highlight def link haskellChar String
|
||||
highlight def link haskellBacktick Operator
|
||||
highlight def link haskellPreProc Macro
|
||||
highlight def link haskellTodo Todo
|
||||
highlight def link haskellAssocType Structure
|
||||
highlight def link haskellImportBlock Delimiter
|
||||
highlight def link haskellImportKeywords Structure
|
||||
highlight def link haskellDeclKeyword Structure
|
||||
|
||||
if exists('g:haskell_enable_quantification') && g:haskell_enable_quantification == 1
|
||||
highlight def link haskellForall Operator
|
||||
endif
|
||||
if exists('g:haskell_enable_recursivedo') && g:haskell_enable_recursivedo == 1
|
||||
highlight def link haskellRecursiveDo Operator
|
||||
endif
|
||||
if exists('g:haskell_enable_arrowsyntax') && g:haskell_enable_arrowsyntax == 1
|
||||
highlight def link haskellArrowSyntax Operator
|
||||
endif
|
||||
if exists('g:haskell_enable_pattern_synonyms') && g:haskell_enable_pattern_synonyms == 1
|
||||
highlight def link haskellPatternKeyword Structure
|
||||
endif
|
||||
if exists('g:haskell_enable_typeroles') && g:haskell_enable_typeroles == 1
|
||||
highlight def link haskellTypeRoles Structure
|
||||
endif
|
||||
if exists('g:haskell_enable_static_pointers') && g:haskell_enable_static_pointers == 1
|
||||
highlight def link haskellStatic Statement
|
||||
endif
|
||||
|
||||
let b:current_syntax = "haskell"
|
||||
|
||||
endif
|
||||
@@ -2,9 +2,21 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') ==
|
||||
|
||||
" Vim syntax file
|
||||
" Language: JavaScript
|
||||
" Maintainer: vim-javascript community
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Maintainer: Kao Wei-Ko(othree) <othree@gmail.com>
|
||||
" Last Change: 2015-05-11
|
||||
" Version: 1.5
|
||||
" Changes: Go to https://github.com/othree/yajs.vim for recent changes.
|
||||
" Origin: https://github.com/jelera/vim-javascript-syntax
|
||||
" Credits: Jose Elera Campana, Zhao Yi, Claudio Fleiner, Scott Shattuck
|
||||
" (This file is based on their hard work), gumnos (From the #vim
|
||||
" IRC Channel in Freenode)
|
||||
|
||||
|
||||
" if exists("b:yajs_loaded")
|
||||
" finish
|
||||
" else
|
||||
" let b:yajs_loaded = 1
|
||||
" endif
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
@@ -14,322 +26,371 @@ if !exists("main_syntax")
|
||||
let main_syntax = 'javascript'
|
||||
endif
|
||||
|
||||
if !exists('g:javascript_conceal')
|
||||
let g:javascript_conceal = 0
|
||||
endif
|
||||
|
||||
"" Drop fold if it is set but VIM doesn't support it.
|
||||
let b:javascript_fold='true'
|
||||
if version < 600 " Don't support the old version
|
||||
unlet! b:javascript_fold
|
||||
endif
|
||||
|
||||
"" dollar sign is permittd anywhere in an identifier
|
||||
setlocal iskeyword+=$
|
||||
|
||||
syntax sync fromstart
|
||||
|
||||
syntax match jsNoise /\%(:\|,\|\;\|\.\)/
|
||||
|
||||
"" Program Keywords
|
||||
syntax keyword jsStorageClass const var let
|
||||
syntax keyword jsOperator delete instanceof typeof void new in
|
||||
syntax match jsOperator /\(!\||\|&\|+\|-\|<\|>\|=\|%\|\/\|*\|\~\|\^\)/
|
||||
syntax keyword jsBooleanTrue true
|
||||
syntax keyword jsBooleanFalse false
|
||||
syntax keyword jsModules import export contained
|
||||
syntax keyword jsModuleWords default from as contained
|
||||
syntax keyword jsOf of contained
|
||||
|
||||
syntax region jsImportContainer start="^\s\?import \?" end="$" contains=jsModules,jsModuleWords,jsComment,jsStringS,jsStringD,jsTemplateString
|
||||
|
||||
syntax region jsExportContainer start="^\s\?export \?" end="$" contains=jsModules,jsModuleWords,jsComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsClass,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsAssignmentExpr
|
||||
|
||||
"" JavaScript comments
|
||||
syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
|
||||
syntax region jsLineComment start=+\/\/+ end=+$+ keepend contains=jsCommentTodo,@Spell
|
||||
syntax region jsEnvComment start="\%^#!" end="$" display
|
||||
syntax region jsLineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend contains=jsCommentTodo,@Spell fold
|
||||
syntax region jsCvsTag start="\$\cid:" end="\$" oneline contained
|
||||
syntax region jsComment start="/\*" end="\*/" contains=jsCommentTodo,jsCvsTag,@Spell fold
|
||||
|
||||
"" JSDoc / JSDoc Toolkit
|
||||
if !exists("javascript_ignore_javaScriptdoc")
|
||||
syntax case ignore
|
||||
|
||||
"" syntax coloring for javadoc comments (HTML)
|
||||
"syntax include @javaHtml <sfile>:p:h/html.vim
|
||||
"unlet b:current_syntax
|
||||
|
||||
syntax region jsBlockComment matchgroup=jsComment start="/\*\s*" end="\*/" contains=jsDocTags,jsCommentTodo,jsCvsTag,@jsHtml,@Spell fold
|
||||
|
||||
" tags containing a param
|
||||
syntax match jsDocTags contained "@\(alias\|api\|augments\|borrows\|class\|constructs\|default\|defaultvalue\|emits\|exception\|exports\|extends\|file\|fires\|kind\|listens\|member\|member[oO]f\|mixes\|module\|name\|namespace\|requires\|template\|throws\|var\|variation\|version\)\>" nextgroup=jsDocParam skipwhite
|
||||
" tags containing type and param
|
||||
syntax match jsDocTags contained "@\(arg\|argument\|param\|property\)\>" nextgroup=jsDocType skipwhite
|
||||
" tags containing type but no param
|
||||
syntax match jsDocTags contained "@\(callback\|define\|enum\|external\|implements\|this\|type\|typedef\|return\|returns\)\>" nextgroup=jsDocTypeNoParam skipwhite
|
||||
" tags containing references
|
||||
syntax match jsDocTags contained "@\(lends\|see\|tutorial\)\>" nextgroup=jsDocSeeTag skipwhite
|
||||
" other tags (no extra syntax)
|
||||
syntax match jsDocTags contained "@\(abstract\|access\|author\|classdesc\|constant\|const\|constructor\|copyright\|deprecated\|desc\|description\|dict\|event\|example\|file[oO]verview\|final\|function\|global\|ignore\|inheritDoc\|inner\|instance\|interface\|license\|method\|mixin\|nosideeffects\|override\|overview\|preserve\|private\|protected\|public\|readonly\|since\|static\|struct\|todo\|summary\|undocumented\|virtual\)\>"
|
||||
|
||||
syntax region jsDocType start="{" end="}" oneline contained nextgroup=jsDocParam skipwhite
|
||||
syntax match jsDocType contained "\%(#\|\"\|\w\|\.\|:\|\/\)\+" nextgroup=jsDocParam skipwhite
|
||||
syntax region jsDocTypeNoParam start="{" end="}" oneline contained
|
||||
syntax match jsDocTypeNoParam contained "\%(#\|\"\|\w\|\.\|:\|\/\)\+"
|
||||
syntax match jsDocParam contained "\%(#\|\"\|{\|}\|\w\|\.\|:\|\/\|\[\|]\|=\)\+"
|
||||
syntax region jsDocSeeTag contained matchgroup=jsDocSeeTag start="{" end="}" contains=jsDocTags
|
||||
|
||||
syntax case match
|
||||
endif "" JSDoc end
|
||||
|
||||
syntax case match
|
||||
|
||||
"" Syntax in the JavaScript code
|
||||
syntax match jsFuncCall /\k\+\%(\s*(\)\@=/
|
||||
syntax match jsSpecial "\v\\%(0|\\x\x\{2\}\|\\u\x\{4\}\|\c[A-Z]|.)" contained
|
||||
syntax match jsTemplateVar "\${.\{-}}" contained
|
||||
syntax region jsStringD start=+"+ skip=+\\\("\|$\)+ end=+"\|$+ contains=jsSpecial,@htmlPreproc,@Spell
|
||||
syntax region jsStringS start=+'+ skip=+\\\('\|$\)+ end=+'\|$+ contains=jsSpecial,@htmlPreproc,@Spell
|
||||
syntax region jsTemplateString start=+`+ skip=+\\\(`\|$\)+ end=+`+ contains=jsTemplateVar,jsSpecial,@htmlPreproc
|
||||
syntax region jsTaggedTemplate start=/\k\+\(\(\n\|\s\)\+\)\?`/ end=+`\|$+ contains=jsTemplateString
|
||||
syntax region jsRegexpCharClass start=+\[+ skip=+\\.+ end=+\]+ contained
|
||||
syntax match jsRegexpBoundary "\v%(\<@![\^$]|\\[bB])" contained
|
||||
syntax match jsRegexpBackRef "\v\\[1-9][0-9]*" contained
|
||||
syntax match jsRegexpQuantifier "\v\\@<!%([?*+]|\{\d+%(,|,\d+)?})\??" contained
|
||||
syntax match jsRegexpOr "\v\<@!\|" contained
|
||||
syntax match jsRegexpMod "\v\(@<=\?[:=!>]" contained
|
||||
syntax cluster jsRegexpSpecial contains=jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
|
||||
syntax region jsRegexpGroup start="\\\@<!(" skip="\\.\|\[\(\\.\|[^]]\)*\]" end="\\\@<!)" contained contains=jsRegexpCharClass,@jsRegexpSpecial keepend
|
||||
syntax region jsRegexpString start=+\(\(\(return\|case\)\s\+\)\@<=\|\(\([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\.\|\[\(\\.\|[^]]\)*\]+ end=+/[gimy]\{,4}+ contains=jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial,@htmlPreproc oneline keepend
|
||||
syntax match jsNumber /\<-\=\d\+\(L\|[eE][+-]\=\d\+\)\=\>\|\<0[xX]\x\+\>/
|
||||
syntax keyword jsNumber Infinity
|
||||
syntax match jsFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
|
||||
syntax match jsObjectKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s*:\)\@=/ contains=jsFunctionKey contained
|
||||
syntax match jsFunctionKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s*:\s*function\s*\)\@=/ contained
|
||||
|
||||
syntax match jsAssignmentExpr /\v%([a-zA-Z_$]\k*\.)*[a-zA-Z_$]\k*\s*\=/ contains=jsFuncAssignExpr,jsAssignExpIdent,jsPrototype,jsOperator,jsThis,jsNoise
|
||||
syntax match jsAssignExpIdent /\v[a-zA-Z_$]\k*\ze%(\s*\=)/ contained
|
||||
syntax match jsFuncAssignExpr /\v%(%([a-zA-Z_$]\k*\.)*[a-zA-Z_$]\k*\s*\=\s*){-1,}\ze%(function\s*\*?\s*\()/ contains=jsFuncAssignObjChain,jsFuncAssignIdent,jsFunction,jsPrototype,jsOperator,jsThis contained
|
||||
syntax match jsFuncAssignObjChain /\v%([a-zA-Z_$]\k*\.)+/ contains=jsPrototype,jsNoise contained
|
||||
syntax match jsFuncAssignIdent /\v[a-zA-Z_$]\k*\ze%(\s*\=)/ contained
|
||||
|
||||
exe 'syntax keyword jsNull null '.(exists('g:javascript_conceal_null') ? 'conceal cchar='.g:javascript_conceal_null : '')
|
||||
exe 'syntax keyword jsReturn return '.(exists('g:javascript_conceal_return') ? 'conceal cchar='.g:javascript_conceal_return : '')
|
||||
exe 'syntax keyword jsUndefined undefined '.(exists('g:javascript_conceal_undefined') ? 'conceal cchar='.g:javascript_conceal_undefined : '')
|
||||
exe 'syntax keyword jsNan NaN '.(exists('g:javascript_conceal_NaN') ? 'conceal cchar='.g:javascript_conceal_NaN : '')
|
||||
exe 'syntax keyword jsPrototype prototype '.(exists('g:javascript_conceal_prototype') ? 'conceal cchar='.g:javascript_conceal_prototype : '')
|
||||
exe 'syntax keyword jsThis this '.(exists('g:javascript_conceal_this') ? 'conceal cchar='.g:javascript_conceal_this : '')
|
||||
exe 'syntax keyword jsStatic static '.(exists('g:javascript_conceal_static') ? 'conceal cchar='.g:javascript_conceal_static : '')
|
||||
exe 'syntax keyword jsSuper super '.(exists('g:javascript_conceal_super') ? 'conceal cchar='.g:javascript_conceal_super : '')
|
||||
|
||||
"" Statement Keywords
|
||||
syntax keyword jsStatement break continue with
|
||||
syntax keyword jsConditional if else switch
|
||||
syntax keyword jsRepeat do while for
|
||||
syntax keyword jsLabel case default
|
||||
syntax keyword jsKeyword yield
|
||||
syntax keyword jsClass extends class
|
||||
syntax keyword jsException try catch throw finally
|
||||
|
||||
syntax keyword jsGlobalObjects Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set RegExp String Proxy Promise ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray Intl JSON Math console document window
|
||||
syntax match jsGlobalObjects /\%(Intl\.\)\@<=\(Collator\|DateTimeFormat\|NumberFormat\)/
|
||||
|
||||
syntax keyword jsExceptions Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError
|
||||
|
||||
syntax keyword jsBuiltins decodeURI decodeURIComponent encodeURI encodeURIComponent eval isFinite isNaN parseFloat parseInt uneval
|
||||
|
||||
syntax keyword jsFutureKeys abstract enum int short boolean interface byte long char final native synchronized float package throws goto private transient debugger implements protected volatile double public
|
||||
|
||||
"" DOM/HTML/CSS specified things
|
||||
|
||||
" DOM2 Objects
|
||||
syntax keyword jsGlobalObjects DOMImplementation DocumentFragment Document Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction
|
||||
syntax keyword jsExceptions DOMException
|
||||
|
||||
" DOM2 CONSTANT
|
||||
syntax keyword jsDomErrNo INDEX_SIZE_ERR DOMSTRING_SIZE_ERR HIERARCHY_REQUEST_ERR WRONG_DOCUMENT_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR INUSE_ATTRIBUTE_ERR INVALID_STATE_ERR SYNTAX_ERR INVALID_MODIFICATION_ERR NAMESPACE_ERR INVALID_ACCESS_ERR
|
||||
syntax keyword jsDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECTION_NODE ENTITY_REFERENCE_NODE ENTITY_NODE PROCESSING_INSTRUCTION_NODE COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOCUMENT_FRAGMENT_NODE NOTATION_NODE
|
||||
|
||||
" HTML events and internal variables
|
||||
syntax case ignore
|
||||
syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
|
||||
syntax case match
|
||||
|
||||
" Follow stuff should be highligh within a special context
|
||||
" While it can't be handled with context depended with Regex based highlight
|
||||
" So, turn it off by default
|
||||
if exists("javascript_enable_domhtmlcss")
|
||||
|
||||
" DOM2 things
|
||||
syntax match jsDomElemAttrs contained /\%(nodeName\|nodeValue\|nodeType\|parentNode\|childNodes\|firstChild\|lastChild\|previousSibling\|nextSibling\|attributes\|ownerDocument\|namespaceURI\|prefix\|localName\|tagName\)\>/
|
||||
syntax match jsDomElemFuncs contained /\%(insertBefore\|replaceChild\|removeChild\|appendChild\|hasChildNodes\|cloneNode\|normalize\|isSupported\|hasAttributes\|getAttribute\|setAttribute\|removeAttribute\|getAttributeNode\|setAttributeNode\|removeAttributeNode\|getElementsByTagName\|getAttributeNS\|setAttributeNS\|removeAttributeNS\|getAttributeNodeNS\|setAttributeNodeNS\|getElementsByTagNameNS\|hasAttribute\|hasAttributeNS\)\>/ nextgroup=jsParen skipwhite
|
||||
" HTML things
|
||||
syntax match jsHtmlElemAttrs contained /\%(className\|clientHeight\|clientLeft\|clientTop\|clientWidth\|dir\|id\|innerHTML\|lang\|length\|offsetHeight\|offsetLeft\|offsetParent\|offsetTop\|offsetWidth\|scrollHeight\|scrollLeft\|scrollTop\|scrollWidth\|style\|tabIndex\|title\)\>/
|
||||
syntax match jsHtmlElemFuncs contained /\%(blur\|click\|focus\|scrollIntoView\|addEventListener\|dispatchEvent\|removeEventListener\|item\)\>/ nextgroup=jsParen skipwhite
|
||||
|
||||
" CSS Styles in JavaScript
|
||||
syntax keyword jsCssStyles contained color font fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight letterSpacing lineBreak lineHeight quotes rubyAlign rubyOverhang rubyPosition
|
||||
syntax keyword jsCssStyles contained textAlign textAlignLast textAutospace textDecoration textIndent textJustify textJustifyTrim textKashidaSpace textOverflowW6 textShadow textTransform textUnderlinePosition
|
||||
syntax keyword jsCssStyles contained unicodeBidi whiteSpace wordBreak wordSpacing wordWrap writingMode
|
||||
syntax keyword jsCssStyles contained bottom height left position right top width zIndex
|
||||
syntax keyword jsCssStyles contained border borderBottom borderLeft borderRight borderTop borderBottomColor borderLeftColor borderTopColor borderBottomStyle borderLeftStyle borderRightStyle borderTopStyle borderBottomWidth borderLeftWidth borderRightWidth borderTopWidth borderColor borderStyle borderWidth borderCollapse borderSpacing captionSide emptyCells tableLayout
|
||||
syntax keyword jsCssStyles contained margin marginBottom marginLeft marginRight marginTop outline outlineColor outlineStyle outlineWidth padding paddingBottom paddingLeft paddingRight paddingTop
|
||||
syntax keyword jsCssStyles contained listStyle listStyleImage listStylePosition listStyleType
|
||||
syntax keyword jsCssStyles contained background backgroundAttachment backgroundColor backgroundImage backgroundPosition backgroundPositionX backgroundPositionY backgroundRepeat
|
||||
syntax keyword jsCssStyles contained clear clip clipBottom clipLeft clipRight clipTop content counterIncrement counterReset cssFloat cursor direction display filter layoutGrid layoutGridChar layoutGridLine layoutGridMode layoutGridType
|
||||
syntax keyword jsCssStyles contained marks maxHeight maxWidth minHeight minWidth opacity MozOpacity overflow overflowX overflowY verticalAlign visibility zoom cssText
|
||||
syntax keyword jsCssStyles contained scrollbar3dLightColor scrollbarArrowColor scrollbarBaseColor scrollbarDarkShadowColor scrollbarFaceColor scrollbarHighlightColor scrollbarShadowColor scrollbarTrackColor
|
||||
|
||||
" Highlight ways
|
||||
syntax match jsDotNotation "\." nextgroup=jsPrototype,jsDomElemAttrs,jsDomElemFuncs,jsHtmlElemAttrs,jsHtmlElemFuncs
|
||||
syntax match jsDotNotation "\.style\." nextgroup=jsCssStyles
|
||||
|
||||
endif "DOM/HTML/CSS
|
||||
|
||||
"" end DOM/HTML/CSS specified things
|
||||
|
||||
"" Code blocks
|
||||
syntax cluster jsExpression contains=jsComment,jsLineComment,jsBlockComment,jsTaggedTemplate,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsStatic,jsSuper,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsCommonJS,jsAssignmentExpr,jsImportContainer,jsExportContainer,jsClass
|
||||
syntax cluster jsAll contains=@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
|
||||
syntax region jsBracket matchgroup=jsBrackets start="\[" end="\]" contains=@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
|
||||
syntax region jsParen matchgroup=jsParens start="(" end=")" contains=@jsAll,jsOf,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
|
||||
syntax region jsBlock matchgroup=jsBraces start="{" end="}" contains=@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,jsObjectKey,@htmlPreproc fold
|
||||
syntax region jsFuncBlock matchgroup=jsFuncBraces start="{" end="}" contains=@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,@htmlPreproc contained fold
|
||||
syntax region jsTernaryIf matchgroup=jsTernaryIfOperator start=+?+ end=+:+ contains=@jsExpression,jsTernaryIf
|
||||
|
||||
"" catch errors caused by wrong parenthesis
|
||||
syntax match jsParensError ")\|}\|\]"
|
||||
syntax match jsParensErrA contained "\]"
|
||||
syntax match jsParensErrB contained ")"
|
||||
syntax match jsParensErrC contained "}"
|
||||
|
||||
if main_syntax == "javascript"
|
||||
syntax sync clear
|
||||
syntax sync ccomment jsComment minlines=200
|
||||
syntax sync match jsHighlight grouphere jsBlock /{/
|
||||
endif
|
||||
|
||||
exe 'syntax match jsFunction /\<function\>/ nextgroup=jsGenerator,jsFuncName,jsFuncArgs skipwhite '.(exists('g:javascript_conceal_function') ? 'conceal cchar='.g:javascript_conceal_function : '')
|
||||
|
||||
syntax match jsGenerator contained '\*' nextgroup=jsFuncName skipwhite
|
||||
syntax match jsFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=jsFuncArgs skipwhite
|
||||
syntax region jsFuncArgs contained matchgroup=jsFuncParens start='(' end=')' contains=jsFuncArgCommas,jsFuncArgRest,jsAssignmentExpr nextgroup=jsFuncBlock keepend skipwhite skipempty
|
||||
syntax match jsFuncArgCommas contained ','
|
||||
syntax match jsFuncArgRest contained /\%(\.\.\.[a-zA-Z_$][0-9a-zA-Z_$]*\))/
|
||||
syntax keyword jsArgsObj arguments contained containedin=jsFuncBlock
|
||||
|
||||
syntax match jsArrowFunction /=>/
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_javascript_syn_inits")
|
||||
let did_javascript_hilink = 1
|
||||
if version < 508
|
||||
let did_javascript_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
HiLink jsFuncArgRest Special
|
||||
HiLink jsComment Comment
|
||||
HiLink jsLineComment Comment
|
||||
HiLink jsEnvComment PreProc
|
||||
HiLink jsBlockComment Comment
|
||||
HiLink jsCommentTodo Todo
|
||||
HiLink jsCvsTag Function
|
||||
HiLink jsDocTags Special
|
||||
HiLink jsDocSeeTag Function
|
||||
HiLink jsDocType Type
|
||||
HiLink jsDocTypeNoParam Type
|
||||
HiLink jsDocParam Label
|
||||
HiLink jsStringS String
|
||||
HiLink jsStringD String
|
||||
HiLink jsTemplateString String
|
||||
HiLink jsTaggedTemplate StorageClass
|
||||
HiLink jsTernaryIfOperator Conditional
|
||||
HiLink jsRegexpString String
|
||||
HiLink jsRegexpBoundary SpecialChar
|
||||
HiLink jsRegexpQuantifier SpecialChar
|
||||
HiLink jsRegexpOr Conditional
|
||||
HiLink jsRegexpMod SpecialChar
|
||||
HiLink jsRegexpBackRef SpecialChar
|
||||
HiLink jsRegexpGroup jsRegexpString
|
||||
HiLink jsRegexpCharClass Character
|
||||
HiLink jsCharacter Character
|
||||
HiLink jsPrototype Special
|
||||
HiLink jsConditional Conditional
|
||||
HiLink jsBranch Conditional
|
||||
HiLink jsLabel Label
|
||||
HiLink jsReturn Statement
|
||||
HiLink jsRepeat Repeat
|
||||
HiLink jsStatement Statement
|
||||
HiLink jsException Exception
|
||||
HiLink jsKeyword Keyword
|
||||
HiLink jsArrowFunction Type
|
||||
HiLink jsFunction Type
|
||||
HiLink jsGenerator jsFunction
|
||||
HiLink jsFuncName Function
|
||||
HiLink jsArgsObj Special
|
||||
HiLink jsError Error
|
||||
HiLink jsParensError Error
|
||||
HiLink jsParensErrA Error
|
||||
HiLink jsParensErrB Error
|
||||
HiLink jsParensErrC Error
|
||||
HiLink jsOperator Operator
|
||||
HiLink jsOf Operator
|
||||
HiLink jsStorageClass StorageClass
|
||||
HiLink jsClass Structure
|
||||
HiLink jsThis Special
|
||||
HiLink jsStatic Special
|
||||
HiLink jsSuper Special
|
||||
HiLink jsNan Number
|
||||
HiLink jsNull Type
|
||||
HiLink jsUndefined Type
|
||||
HiLink jsNumber Number
|
||||
HiLink jsFloat Float
|
||||
HiLink jsBooleanTrue Boolean
|
||||
HiLink jsBooleanFalse Boolean
|
||||
HiLink jsNoise Noise
|
||||
HiLink jsBrackets Noise
|
||||
HiLink jsParens Noise
|
||||
HiLink jsBraces Noise
|
||||
HiLink jsFuncBraces Noise
|
||||
HiLink jsFuncParens Noise
|
||||
HiLink jsSpecial Special
|
||||
HiLink jsTemplateVar Special
|
||||
HiLink jsGlobalObjects Special
|
||||
HiLink jsExceptions Special
|
||||
HiLink jsFutureKeys Special
|
||||
HiLink jsBuiltins Special
|
||||
HiLink jsModules Include
|
||||
HiLink jsModuleWords Include
|
||||
|
||||
HiLink jsDomErrNo Constant
|
||||
HiLink jsDomNodeConsts Constant
|
||||
HiLink jsDomElemAttrs Label
|
||||
HiLink jsDomElemFuncs PreProc
|
||||
|
||||
HiLink jsHtmlEvents Special
|
||||
HiLink jsHtmlElemAttrs Label
|
||||
HiLink jsHtmlElemFuncs PreProc
|
||||
|
||||
HiLink jsCssStyles Label
|
||||
|
||||
delcommand HiLink
|
||||
else
|
||||
finish
|
||||
endif
|
||||
|
||||
" Define the htmlJavaScript for HTML syntax html.vim
|
||||
syntax cluster htmlJavaScript contains=@jsAll,jsBracket,jsParen,jsBlock
|
||||
syntax cluster javaScriptExpression contains=@jsAll,jsBracket,jsParen,jsBlock,@htmlPreproc
|
||||
"Dollar sign is permitted anywhere in an identifier
|
||||
setlocal iskeyword-=$
|
||||
if &filetype =~ 'javascript'
|
||||
setlocal iskeyword+=$
|
||||
syntax cluster htmlJavaScript contains=TOP
|
||||
endif
|
||||
|
||||
" Vim's default html.vim highlights all javascript as 'Special'
|
||||
hi! def link javaScript NONE
|
||||
syntax sync fromstart
|
||||
|
||||
"Syntax coloring for Node.js shebang line
|
||||
syntax match shellbang "^#!.*node\>"
|
||||
syntax match shellbang "^#!.*iojs\>"
|
||||
|
||||
syntax match javascriptOpSymbols /:\ze\_[^+\-*/%\^=!<>&|?:]/ nextgroup=@javascriptStatement,javascriptCase skipwhite skipempty
|
||||
syntax match javascriptOpSymbols /[+\-*/%\^=!<>&|?:]\+/ contains=javascriptOpSymbol nextgroup=@javascriptExpression skipwhite skipempty
|
||||
|
||||
"JavaScript comments
|
||||
syntax keyword javascriptCommentTodo contained TODO FIXME XXX TBD
|
||||
syntax match javascriptLineComment "//.*" contains=@Spell,javascriptCommentTodo
|
||||
syntax region javascriptComment start="/\*" end="\*/" contains=@Spell,javascriptCommentTodo extend
|
||||
syntax cluster javascriptComments contains=javascriptDocComment,javascriptComment,javascriptLineComment
|
||||
|
||||
"JSDoc
|
||||
syntax case ignore
|
||||
|
||||
syntax region javascriptDocComment start="/\*\*" end="\*/" contains=javascriptDocNotation,javascriptCommentTodo,@Spell fold keepend
|
||||
syntax match javascriptDocNotation contained / @/ nextgroup=javascriptDocTags
|
||||
|
||||
syntax keyword javascriptDocTags contained constant constructor constructs function ignore inner private public readonly static
|
||||
syntax keyword javascriptDocTags contained const dict expose inheritDoc interface nosideeffects override protected struct
|
||||
syntax keyword javascriptDocTags contained example global
|
||||
|
||||
" syntax keyword javascriptDocTags contained ngdoc nextgroup=javascriptDocNGDirective
|
||||
syntax keyword javascriptDocTags contained ngdoc scope priority animations
|
||||
syntax keyword javascriptDocTags contained ngdoc restrict methodOf propertyOf eventOf eventType nextgroup=javascriptDocParam skipwhite
|
||||
syntax keyword javascriptDocNGDirective contained overview service object function method property event directive filter inputType error
|
||||
|
||||
syntax keyword javascriptDocTags contained abstract virtual access augments
|
||||
|
||||
syntax keyword javascriptDocTags contained arguments callback lends memberOf name type kind link mixes mixin tutorial nextgroup=javascriptDocParam skipwhite
|
||||
syntax keyword javascriptDocTags contained variation nextgroup=javascriptDocNumParam skipwhite
|
||||
|
||||
syntax keyword javascriptDocTags contained author class classdesc copyright default defaultvalue nextgroup=javascriptDocDesc skipwhite
|
||||
syntax keyword javascriptDocTags contained deprecated description external host nextgroup=javascriptDocDesc skipwhite
|
||||
syntax keyword javascriptDocTags contained file fileOverview overview namespace requires since version nextgroup=javascriptDocDesc skipwhite
|
||||
syntax keyword javascriptDocTags contained summary todo license preserve nextgroup=javascriptDocDesc skipwhite
|
||||
|
||||
syntax keyword javascriptDocTags contained borrows exports nextgroup=javascriptDocA skipwhite
|
||||
syntax keyword javascriptDocTags contained param arg argument property prop module nextgroup=javascriptDocNamedParamType,javascriptDocParamName skipwhite
|
||||
syntax keyword javascriptDocTags contained type nextgroup=javascriptDocParamType skipwhite
|
||||
syntax keyword javascriptDocTags contained define enum extends implements this typedef nextgroup=javascriptDocParamType skipwhite
|
||||
syntax keyword javascriptDocTags contained return returns throws exception nextgroup=javascriptDocParamType,javascriptDocParamName skipwhite
|
||||
syntax keyword javascriptDocTags contained see nextgroup=javascriptDocRef skipwhite
|
||||
|
||||
"syntax for event firing
|
||||
syntax keyword javascriptDocTags contained emits fires nextgroup=javascriptDocEventRef skipwhite
|
||||
|
||||
syntax keyword javascriptDocTags contained function func method nextgroup=javascriptDocName skipwhite
|
||||
syntax match javascriptDocName contained /\h\w*/
|
||||
|
||||
syntax keyword javascriptDocTags contained fires event nextgroup=javascriptDocEventRef skipwhite
|
||||
syntax match javascriptDocEventRef contained /\h\w*#\(\h\w*\:\)\?\h\w*/
|
||||
|
||||
syntax match javascriptDocNamedParamType contained /{.\+}/ nextgroup=javascriptDocParamName skipwhite
|
||||
syntax match javascriptDocParamName contained /\[\?[0-9a-zA-Z_\.]\+=\?[0-9a-zA-Z_\.]*\]\?/ nextgroup=javascriptDocDesc skipwhite
|
||||
syntax match javascriptDocParamType contained /{.\+}/ nextgroup=javascriptDocDesc skipwhite
|
||||
syntax match javascriptDocA contained /\%(#\|\w\|\.\|:\|\/\)\+/ nextgroup=javascriptDocAs skipwhite
|
||||
syntax match javascriptDocAs contained /\s*as\s*/ nextgroup=javascriptDocB skipwhite
|
||||
syntax match javascriptDocB contained /\%(#\|\w\|\.\|:\|\/\)\+/
|
||||
syntax match javascriptDocParam contained /\%(#\|\w\|\.\|:\|\/\|-\)\+/
|
||||
syntax match javascriptDocNumParam contained /\d\+/
|
||||
syntax match javascriptDocRef contained /\%(#\|\w\|\.\|:\|\/\)\+/
|
||||
syntax region javascriptDocLinkTag contained matchgroup=javascriptDocLinkTag start=/{/ end=/}/ contains=javascriptDocTags
|
||||
|
||||
syntax cluster javascriptDocs contains=javascriptDocParamType,javascriptDocNamedParamType,javascriptDocParam
|
||||
|
||||
if main_syntax == "javascript"
|
||||
syntax sync clear
|
||||
syntax sync ccomment javascriptComment minlines=200
|
||||
endif
|
||||
|
||||
syntax case match
|
||||
|
||||
syntax cluster javascriptAfterIdentifier contains=javascriptDotNotation,javascriptFuncCallArg,javascriptComputedProperty,javascriptWSymbols,@javascriptSymbols
|
||||
|
||||
syntax match javascriptIdentifierName /\<[^=<>!?+\-*\/%|&,;:. ~@#`"'\[\]\(\)\{\}\^0-9][^=<>!?+\-*\/%|&,;:. ~@#`"'\[\]\(\)\{\}\^]*/ nextgroup=@javascriptAfterIdentifier contains=@_semantic
|
||||
|
||||
"Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatement DebuggerStatement
|
||||
|
||||
syntax cluster javascriptStatement contains=javascriptBlock,javascriptVariable,@javascriptExpression,javascriptConditional,javascriptRepeat,javascriptBranch,javascriptLabel,javascriptStatementKeyword,javascriptTry,javascriptDebugger
|
||||
|
||||
"Syntax in the JavaScript code
|
||||
" syntax match javascriptASCII contained /\\\d\d\d/
|
||||
syntax region javascriptTemplateSubstitution contained matchgroup=javascriptTemplateSB start=/\${/ end=/}/ contains=javascriptTemplateSBlock,javascriptTemplateSString
|
||||
syntax region javascriptTemplateSBlock contained start=/{/ end=/}/ contains=javascriptTemplateSBlock,javascriptTemplateSString transparent
|
||||
syntax region javascriptTemplateSString contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ extend contains=javascriptTemplateSStringRB transparent
|
||||
syntax match javascriptTemplateSStringRB /}/ contained
|
||||
syntax region javascriptString start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax region javascriptTemplate start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/ contains=javascriptTemplateSubstitution nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
" syntax match javascriptTemplateTag /\k\+/ nextgroup=javascriptTemplate
|
||||
syntax region javascriptArray matchgroup=javascriptBraces start=/\[/ end=/]/ contains=@javascriptValue,javascriptForComprehension,@javascriptComments nextgroup=@javascriptSymbols,@javascriptComments skipwhite skipempty
|
||||
|
||||
syntax match javascriptNumber /\<0[bB][01]\+\>/ nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax match javascriptNumber /\<0[oO][0-7]\+\>/ nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax match javascriptNumber /\<0[xX][0-9a-fA-F]\+\>/ nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax match javascriptNumber /[+-]\=\%(\d\+\.\d\+\|\d\+\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
|
||||
syntax cluster javascriptTypes contains=javascriptString,javascriptTemplate,javascriptRegexpString,javascriptNumber,javascriptBoolean,javascriptNull,javascriptArray
|
||||
syntax cluster javascriptValue contains=@javascriptTypes,@javascriptExpression,javascriptFuncKeyword,javascriptClassKeyword,javascriptObjectLiteral,javascriptIdentifier,javascriptIdentifierName,javascriptOperator,@javascriptSymbols
|
||||
|
||||
syntax match javascriptLabel /[a-zA-Z_$]\k*\_s*:/he=e-1 nextgroup=@javascriptValue,@javascriptStatement skipwhite skipempty
|
||||
syntax match javascriptObjectLabel contained /\k\+\_s*:/he=e-1 contains=javascriptObjectLabelColon nextgroup=@javascriptValue,@javascriptStatement skipwhite skipempty
|
||||
syntax match javascriptObjectLabelColon contained /:/ nextgroup=@javascriptValue,@javascriptStatement skipwhite skipempty
|
||||
" syntax match javascriptPropertyName contained /"[^"]\+"\s*:/he=e-1 nextgroup=@javascriptValue skipwhite skipempty
|
||||
" syntax match javascriptPropertyName contained /'[^']\+'\s*:/he=e-1 nextgroup=@javascriptValue skipwhite skipempty
|
||||
syntax region javascriptPropertyName contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ nextgroup=javascriptObjectLabelColon skipwhite skipempty
|
||||
syntax region javascriptComputedPropertyName contained matchgroup=javascriptPropertyName start=/\[/rs=s+1 end=/]/ contains=@javascriptValue nextgroup=javascriptObjectLabelColon skipwhite skipempty
|
||||
syntax region javascriptComputedProperty contained matchgroup=javascriptProperty start=/\[/rs=s+1 end=/]/ contains=@javascriptValue,@javascriptSymbols nextgroup=@javascriptAfterIdentifier skipwhite skipempty
|
||||
" Value for object, statement for label statement
|
||||
|
||||
syntax cluster javascriptTemplates contains=javascriptTemplate,javascriptTemplateSubstitution,javascriptTemplateSBlock,javascriptTemplateSString,javascriptTemplateSStringRB,javascriptTemplateSB
|
||||
syntax cluster javascriptStrings contains=javascriptProp,javascriptString,@javascriptTemplates,@javascriptComments,javascriptDocComment,javascriptRegexpString,javascriptPropertyName
|
||||
|
||||
"this
|
||||
|
||||
"JavaScript Prototype
|
||||
syntax keyword javascriptPrototype prototype
|
||||
|
||||
"Program Keywords
|
||||
syntax keyword javascriptIdentifier arguments this nextgroup=@javascriptAfterIdentifier
|
||||
syntax keyword javascriptVariable let var const
|
||||
syntax keyword javascriptOperator delete new instanceof typeof void in nextgroup=@javascriptValue,@javascriptTypes skipwhite skipempty
|
||||
syntax keyword javascriptForOperator contained in of
|
||||
syntax keyword javascriptBoolean true false nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax keyword javascriptNull null undefined nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax keyword javascriptMessage alert confirm prompt status
|
||||
syntax keyword javascriptGlobal self top parent
|
||||
|
||||
"Statement Keywords
|
||||
syntax keyword javascriptConditional if else switch
|
||||
syntax keyword javascriptConditionalElse else
|
||||
syntax keyword javascriptRepeat do while for nextgroup=javascriptLoopParen skipwhite skipempty
|
||||
syntax keyword javascriptBranch break continue
|
||||
syntax keyword javascriptCase case nextgroup=@javascriptTypes skipwhite
|
||||
syntax keyword javascriptDefault default
|
||||
syntax keyword javascriptStatementKeyword return with yield
|
||||
syntax keyword javascriptReturn return nextgroup=@javascriptValue skipwhite
|
||||
syntax keyword javascriptYield yield
|
||||
|
||||
syntax keyword javascriptTry try
|
||||
syntax keyword javascriptExceptions catch throw finally
|
||||
syntax keyword javascriptDebugger debugger
|
||||
|
||||
syntax match javascriptProp contained /[a-zA-Z_$][a-zA-Z0-9_$]*/ contains=@props,@_semantic transparent nextgroup=@javascriptAfterIdentifier
|
||||
syntax match javascriptMethod contained /[a-zA-Z_$][a-zA-Z0-9_$]*\ze(/ contains=@props transparent nextgroup=javascriptFuncCallArg
|
||||
syntax match javascriptDotNotation /\./ nextgroup=javascriptProp,javascriptMethod
|
||||
syntax match javascriptDotStyleNotation /\.style\./ nextgroup=javascriptDOMStyle transparent
|
||||
|
||||
runtime syntax/yajs/javascript.vim
|
||||
runtime syntax/yajs/es6-number.vim
|
||||
runtime syntax/yajs/es6-string.vim
|
||||
runtime syntax/yajs/es6-array.vim
|
||||
runtime syntax/yajs/es6-object.vim
|
||||
runtime syntax/yajs/es6-symbol.vim
|
||||
runtime syntax/yajs/es6-function.vim
|
||||
runtime syntax/yajs/es6-math.vim
|
||||
runtime syntax/yajs/es6-date.vim
|
||||
runtime syntax/yajs/es6-json.vim
|
||||
runtime syntax/yajs/es6-regexp.vim
|
||||
runtime syntax/yajs/es6-map.vim
|
||||
runtime syntax/yajs/es6-set.vim
|
||||
runtime syntax/yajs/es6-proxy.vim
|
||||
runtime syntax/yajs/es6-promise.vim
|
||||
runtime syntax/yajs/node.vim
|
||||
runtime syntax/yajs/web.vim
|
||||
|
||||
let javascript_props = 1
|
||||
|
||||
runtime syntax/yajs/event.vim
|
||||
syntax region javascriptEventString contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ contains=javascriptASCII,@events
|
||||
|
||||
"Import
|
||||
syntax region javascriptImportDef start=/import/ end=/;\|\n/ contains=javascriptImport,javascriptString,javascriptEndColons
|
||||
syntax keyword javascriptImport contained from as import
|
||||
syntax keyword javascriptExport export module
|
||||
|
||||
syntax region javascriptBlock matchgroup=javascriptBraces start=/\([\^:]\s\*\)\=\zs{/ end=/}/ contains=@htmlJavaScript
|
||||
|
||||
syntax region javascriptMethodDef contained start=/\(\(\(set\|get\)\_s\+\)\?\)[a-zA-Z_$]\k*\_s*(/ end=/)/ contains=javascriptMethodAccessor,javascriptMethodName,javascriptFuncArg nextgroup=javascriptBlock skipwhite keepend
|
||||
syntax region javascriptMethodArgs contained start=/(/ end=/)/ contains=javascriptFuncArg,@javascriptComments nextgroup=javascriptBlock skipwhite keepend
|
||||
syntax match javascriptMethodName contained /[a-zA-Z_$]\k*/ nextgroup=javascriptMethodArgs skipwhite skipempty
|
||||
syntax match javascriptMethodAccessor contained /\(set\|get\)\s\+\ze\k/ contains=javascriptMethodAccessorWords
|
||||
syntax keyword javascriptMethodAccessorWords contained get set
|
||||
syntax region javascriptMethodName contained matchgroup=javascriptPropertyName start=/\[/ end=/]/ contains=@javascriptValue nextgroup=javascriptMethodArgs skipwhite skipempty
|
||||
|
||||
syntax keyword javascriptAsyncFuncKeyword async await
|
||||
" syntax keyword javascriptFuncKeyword function nextgroup=javascriptFuncName,javascriptFuncArg skipwhite
|
||||
syntax keyword javascriptFuncKeyword function nextgroup=javascriptAsyncFunc,javascriptSyncFunc
|
||||
syntax match javascriptSyncFunc contained // nextgroup=javascriptFuncName,javascriptFuncArg skipwhite skipempty
|
||||
syntax match javascriptAsyncFunc contained /\s*\*\s*/ nextgroup=javascriptFuncName,javascriptFuncArg skipwhite skipempty
|
||||
syntax match javascriptFuncName contained /[a-zA-Z_$]\k*/ nextgroup=javascriptFuncArg skipwhite
|
||||
syntax match javascriptFuncArg contained /(\_[^()]*)/ contains=javascriptParens,javascriptFuncKeyword,javascriptFuncComma nextgroup=javascriptBlock skipwhite skipwhite skipempty
|
||||
syntax match javascriptFuncComma contained /,/
|
||||
|
||||
|
||||
"Class
|
||||
syntax keyword javascriptClassKeyword class nextgroup=javascriptClassName skipwhite
|
||||
syntax keyword javascriptClassSuper super
|
||||
syntax match javascriptClassName contained /\k\+/ nextgroup=javascriptClassBlock,javascriptClassExtends skipwhite
|
||||
syntax match javascriptClassSuperName contained /[a-zA-Z_$][a-zA-Z_$\[\]\.]*/ nextgroup=javascriptClassBlock skipwhite
|
||||
syntax keyword javascriptClassExtends contained extends nextgroup=javascriptClassSuperName skipwhite
|
||||
syntax region javascriptClassBlock contained matchgroup=javascriptBraces start=/{/ end=/}/ contains=javascriptMethodName,javascriptMethodAccessor,javascriptClassStatic,@javascriptComments
|
||||
syntax keyword javascriptClassStatic contained static nextgroup=javascriptMethodName,javascriptMethodAccessor skipwhite
|
||||
|
||||
|
||||
syntax keyword javascriptForComprehension contained for nextgroup=javascriptForComprehensionTail skipwhite skipempty
|
||||
syntax region javascriptForComprehensionTail contained matchgroup=javascriptParens start=/(/ end=/)/ contains=javascriptOfComprehension,@javascriptExpression nextgroup=javascriptForComprehension,javascriptIfComprehension,@javascriptExpression skipwhite skipempty
|
||||
syntax keyword javascriptOfComprehension contained of
|
||||
syntax keyword javascriptIfComprehension contained if nextgroup=javascriptIfComprehensionTail
|
||||
syntax region javascriptIfComprehensionTail contained matchgroup=javascriptParens start=/(/ end=/)/ contains=javascriptExpression nextgroup=javascriptForComprehension,javascriptIfComprehension skipwhite skipempty
|
||||
|
||||
syntax region javascriptObjectLiteral contained matchgroup=javascriptBraces start=/{/ end=/}/ contains=@javascriptComments,javascriptObjectLabel,javascriptPropertyName,javascriptMethodDef,javascriptComputedPropertyName,@javascriptValue
|
||||
|
||||
" syntax match javascriptBraces /[\[\]]/
|
||||
syntax match javascriptParens /[()]/
|
||||
" syntax match javascriptOpSymbols /[^+\-*/%\^=!<>&|?]\@<=\(<\|>\|<=\|>=\|==\|!=\|===\|!==\|+\|-\|*\|%\|++\|--\|<<\|>>\|>>>\|&\||\|^\|!\|\~\|&&\|||\|?\|=\|+=\|-=\|*=\|%=\|<<=\|>>=\|>>>=\|&=\||=\|^=\|\/\|\/=\)\ze\_[^+\-*/%\^=!<>&|?]/ nextgroup=@javascriptExpression skipwhite
|
||||
" syntax match javascriptInvalidOp contained /[+\-*/%\^=!<>&|?:]\+/
|
||||
syntax match javascriptOpSymbol contained /\(<\|>\|<=\|>=\|==\|!=\|===\|!==\|+\|*\|%\|++\|--\|<<\|>>\|>>>\|&\||\|^\|!\|\~\|&&\|||\|?\|=\|+=\|-=\|*=\|%=\|<<=\|>>=\|>>>=\|&=\||=\|^=\|\/\|\/=\)\ze\_[^+\-*/%\^=!<>&|?:]/ nextgroup=javascriptInvalidOp skipwhite skipempty
|
||||
syn region htmlScriptTag contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
|
||||
syntax match javascriptWOpSymbols contained /\_s\+/ nextgroup=javascriptOpSymbols
|
||||
syntax match javascriptEndColons /[;,]/
|
||||
syntax match javascriptLogicSymbols /[^&|]\@<=\(&&\|||\)\ze\_[^&|]/ nextgroup=@javascriptExpression skipwhite skipempty
|
||||
syntax cluster javascriptSymbols contains=javascriptOpSymbols,javascriptLogicSymbols
|
||||
syntax match javascriptWSymbols contained /\_s\+/ nextgroup=@javascriptSymbols
|
||||
|
||||
syntax region javascriptRegexpString start="\(^\|&\||\|=\|(\|{\|;\|:\|\[\|!\)\@<=\_s*/[^/*]"me=e-1 skip="\\\\\|[^\\]\@<=\\/" end="/[gimy]\{0,2\}" oneline
|
||||
|
||||
syntax cluster javascriptEventTypes contains=javascriptEventString,javascriptTemplate,javascriptNumber,javascriptBoolean,javascriptNull
|
||||
syntax cluster javascriptOps contains=javascriptOpSymbols,javascriptLogicSymbols,javascriptOperator
|
||||
syntax region javascriptParenExp matchgroup=javascriptParens start=/(/ end=/)/ contains=@javascriptExpression nextgroup=@javascriptSymbols skipwhite skipempty
|
||||
syntax cluster javascriptExpression contains=javascriptArrowFuncDef,javascriptParenExp,@javascriptValue,javascriptObjectLiteral,javascriptFuncKeyword,javascriptYield,javascriptIdentifierName,javascriptRegexpString,@javascriptTypes,@javascriptOps,javascriptGlobal,jsxRegion
|
||||
syntax cluster javascriptEventExpression contains=javascriptArrowFuncDef,javascriptParenExp,@javascriptValue,javascriptObjectLiteral,javascriptFuncKeyword,javascriptIdentifierName,javascriptRegexpString,@javascriptEventTypes,@javascriptOps,javascriptGlobal,jsxRegion
|
||||
|
||||
syntax region javascriptLoopParen contained matchgroup=javascriptParens start=/(/ end=/)/ contains=javascriptVariable,javascriptForOperator,javascriptEndColons,@javascriptExpression nextgroup=javascriptBlock skipwhite skipempty
|
||||
|
||||
" syntax match javascriptFuncCall contained /[a-zA-Z]\k*\ze(/ nextgroup=javascriptFuncCallArg
|
||||
syntax region javascriptFuncCallArg contained matchgroup=javascriptParens start=/(/ end=/)/ contains=@javascriptExpression,@javascriptComments nextgroup=@javascriptAfterIdentifier
|
||||
syntax cluster javascriptSymbols contains=javascriptOpSymbols,javascriptLogicSymbols
|
||||
syntax match javascriptWSymbols contained /\_s\+/ nextgroup=@javascriptSymbols
|
||||
syntax region javascriptEventFuncCallArg contained matchgroup=javascriptParens start=/(/ end=/)/ contains=@javascriptEventExpression,@javascriptComments
|
||||
|
||||
syntax match javascriptArrowFuncDef contained /([^)]*)\_s*=>/ contains=javascriptFuncArg,javascriptArrowFunc nextgroup=javascriptBlock skipwhite skipempty
|
||||
syntax match javascriptArrowFuncDef contained /[a-zA-Z_$][a-zA-Z0-9_$]*\_s*=>/ contains=javascriptArrowFuncArg,javascriptArrowFunc nextgroup=javascriptBlock skipwhite skipempty
|
||||
syntax match javascriptArrowFunc /=>/
|
||||
syntax match javascriptArrowFuncArg contained /[a-zA-Z_$]\k*/
|
||||
|
||||
runtime syntax/semhl.vim
|
||||
|
||||
if exists("did_javascript_hilink")
|
||||
HiLink javascriptEndColons Exception
|
||||
HiLink javascriptOpSymbols Normal
|
||||
HiLink javascriptLogicSymbols Boolean
|
||||
HiLink javascriptBraces Function
|
||||
HiLink javascriptParens Normal
|
||||
HiLink javascriptComment Comment
|
||||
HiLink javascriptLineComment Comment
|
||||
HiLink javascriptDocComment Comment
|
||||
HiLink javascriptCommentTodo Todo
|
||||
HiLink javascriptDocNotation SpecialComment
|
||||
HiLink javascriptDocTags SpecialComment
|
||||
HiLink javascriptDocNGParam javascriptDocParam
|
||||
HiLink javascriptDocParam Function
|
||||
HiLink javascriptDocNumParam Function
|
||||
HiLink javascriptDocEventRef Function
|
||||
HiLink javascriptDocNamedParamType Type
|
||||
HiLink javascriptDocParamName Type
|
||||
HiLink javascriptDocParamType Type
|
||||
HiLink javascriptString String
|
||||
HiLink javascriptTemplate String
|
||||
HiLink javascriptEventString String
|
||||
HiLink javascriptASCII Label
|
||||
HiLink javascriptTemplateSubstitution Label
|
||||
" HiLink javascriptTemplateSBlock Label
|
||||
" HiLink javascriptTemplateSString Label
|
||||
HiLink javascriptTemplateSStringRB javascriptTemplateSubstitution
|
||||
HiLink javascriptTemplateSB javascriptTemplateSubstitution
|
||||
HiLink javascriptRegexpString String
|
||||
HiLink javascriptGlobal Constant
|
||||
HiLink javascriptCharacter Character
|
||||
HiLink javascriptPrototype Type
|
||||
HiLink javascriptConditional Conditional
|
||||
HiLink javascriptConditionalElse Conditional
|
||||
HiLink javascriptCase Conditional
|
||||
HiLink javascriptDefault javascriptCase
|
||||
HiLink javascriptBranch Conditional
|
||||
HiLink javascriptIdentifier Structure
|
||||
HiLink javascriptVariable Identifier
|
||||
HiLink javascriptRepeat Repeat
|
||||
HiLink javascriptForComprehension Repeat
|
||||
HiLink javascriptIfComprehension Repeat
|
||||
HiLink javascriptOfComprehension Repeat
|
||||
HiLink javascriptForOperator Repeat
|
||||
HiLink javascriptStatementKeyword Statement
|
||||
HiLink javascriptReturn Statement
|
||||
HiLink javascriptYield Statement
|
||||
HiLink javascriptMessage Keyword
|
||||
HiLink javascriptOperator Identifier
|
||||
" HiLink javascriptType Type
|
||||
HiLink javascriptNull Boolean
|
||||
HiLink javascriptNumber Number
|
||||
HiLink javascriptBoolean Boolean
|
||||
HiLink javascriptObjectLabel javascriptLabel
|
||||
HiLink javascriptLabel Label
|
||||
HiLink javascriptPropertyName Label
|
||||
HiLink javascriptImport Special
|
||||
HiLink javascriptExport Special
|
||||
HiLink javascriptTry Special
|
||||
HiLink javascriptExceptions Special
|
||||
|
||||
HiLink javascriptMethodName Function
|
||||
HiLink javascriptMethodAccessor Operator
|
||||
|
||||
HiLink javascriptAsyncFuncKeyword Keyword
|
||||
HiLink javascriptFuncKeyword Keyword
|
||||
HiLink javascriptAsyncFunc Keyword
|
||||
HiLink javascriptArrowFunc Type
|
||||
HiLink javascriptFuncName Function
|
||||
HiLink javascriptFuncArg Special
|
||||
HiLink javascriptArrowFuncArg javascriptFuncArg
|
||||
HiLink javascriptFuncComma Operator
|
||||
|
||||
HiLink javascriptClassKeyword Keyword
|
||||
HiLink javascriptClassExtends Keyword
|
||||
HiLink javascriptClassName Function
|
||||
HiLink javascriptClassSuperName Function
|
||||
HiLink javascriptClassStatic StorageClass
|
||||
HiLink javascriptClassSuper keyword
|
||||
|
||||
HiLink shellbang Comment
|
||||
|
||||
highlight link javaScript NONE
|
||||
|
||||
delcommand HiLink
|
||||
unlet did_javascript_hilink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "javascript"
|
||||
if main_syntax == 'javascript'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
|
||||
endif
|
||||
|
||||
103
syntax/kotlin.vim
Normal file
103
syntax/kotlin.vim
Normal file
@@ -0,0 +1,103 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Kotlin
|
||||
" Maintainer: Alexander Udalov
|
||||
" Latest Revision: 1 October 2015
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:current_syntax = "kotlin"
|
||||
|
||||
syn keyword ktStatement break continue return
|
||||
syn keyword ktConditional if else when
|
||||
syn keyword ktRepeat do for while
|
||||
syn keyword ktOperator as in is by
|
||||
syn keyword ktKeyword get set out super this This where
|
||||
syn keyword ktException try catch finally throw
|
||||
|
||||
syn keyword ktInclude import package
|
||||
|
||||
syn keyword ktType Any Boolean Byte Char Double Float Int Long Nothing Short Unit
|
||||
syn keyword ktModifier annotation companion enum inner internal private protected public abstract final open override sealed vararg dynamic
|
||||
syn keyword ktStructure class object interface fun val var constructor init
|
||||
syn keyword ktTypedef typealias
|
||||
|
||||
syn keyword ktBoolean true false
|
||||
syn keyword ktConstant null
|
||||
|
||||
syn keyword ktModifier data tailrec lateinit reified external inline noinline crossinline const operator infix
|
||||
|
||||
syn keyword ktTodo TODO FIXME XXX contained
|
||||
syn match ktLineComment "//.*$" contains=ktTodo,@Spell
|
||||
syn region ktComment matchgroup=ktCommentMatchGroup start="/\*" end="\*/" contains=ktComment,ktTodo,@Spell
|
||||
|
||||
syn match ktSpecialCharError "\v\\." contained
|
||||
syn match ktSpecialChar "\v\\([tbnr'"$\\]|u\x{4})" contained
|
||||
syn region ktString start='"' skip='\\"' end='"' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
|
||||
syn region ktString start='"""' end='"""' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
|
||||
syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
|
||||
syn match ktCharacter "\v'\\''" contains=ktSpecialChar
|
||||
syn match ktCharacter "\v'[^\\]'"
|
||||
|
||||
" TODO: highlight label in 'this@Foo'
|
||||
syn match ktAnnotation "\v(\w)@<!\@[[:alnum:]_.]*(:[[:alnum:]_.]*)?"
|
||||
syn match ktLabel "\v\w+\@"
|
||||
|
||||
syn match ktSimpleInterpolation "\v\$\h\w*" contained
|
||||
syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation
|
||||
|
||||
syn match ktNumber "\v<\d+[LFf]?"
|
||||
syn match ktNumber "\v<0[Xx]\x+L?"
|
||||
syn match ktNumber "\v<0[Bb]\d+L?"
|
||||
syn match ktFloat "\v<\d*(\d[eE][-+]?\d+|\.\d+([eE][-+]?\d+)?)[Ff]?"
|
||||
|
||||
syn match ktEscapedName "\v`.*`"
|
||||
|
||||
syn match ktExclExcl "!!"
|
||||
syn match ktArrow "->"
|
||||
|
||||
|
||||
|
||||
hi link ktStatement Statement
|
||||
hi link ktConditional Conditional
|
||||
hi link ktRepeat Repeat
|
||||
hi link ktOperator Operator
|
||||
hi link ktKeyword Keyword
|
||||
hi link ktException Exception
|
||||
|
||||
hi link ktInclude Include
|
||||
|
||||
hi link ktType Type
|
||||
hi link ktModifier StorageClass
|
||||
hi link ktStructure Structure
|
||||
hi link ktTypedef Typedef
|
||||
|
||||
hi link ktBoolean Boolean
|
||||
hi link ktConstant Constant
|
||||
|
||||
hi link ktTodo Todo
|
||||
hi link ktLineComment Comment
|
||||
hi link ktComment Comment
|
||||
hi link ktCommentMatchGroup Comment
|
||||
|
||||
hi link ktSpecialChar SpecialChar
|
||||
hi link ktSpecialCharError Error
|
||||
hi link ktString String
|
||||
hi link ktCharacter Character
|
||||
|
||||
hi link ktAnnotation Identifier
|
||||
hi link ktLabel Identifier
|
||||
|
||||
hi link ktSimpleInterpolation Identifier
|
||||
hi link ktComplexInterpolationBrace Identifier
|
||||
|
||||
hi link ktNumber Number
|
||||
hi link ktFloat Float
|
||||
|
||||
hi link ktExclExcl Special
|
||||
hi link ktArrow Structure
|
||||
|
||||
endif
|
||||
@@ -87,14 +87,14 @@ exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start=
|
||||
|
||||
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
|
||||
syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
|
||||
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*```.*$" end="^\s*```\ze\s*$" keepend
|
||||
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*\z(\z(`\)\{3,}\|\z(\~\)\{3,}\)[^`]*$" end="^\s*\z1\%(\z2\z3\)*\ze\s*$" keepend
|
||||
|
||||
syn match markdownFootnote "\[^[^\]]\+\]"
|
||||
syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:"
|
||||
|
||||
if main_syntax ==# 'markdown'
|
||||
for s:type in g:markdown_fenced_languages
|
||||
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```\s*'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
|
||||
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*\z(\z(`\)\{3,}\|\z(\~\)\{3,}\)\s*'.matchstr(s:type,'[^=]*').'\>[^`]*$" end="^\s*\z1\%(\z2\z3\)*\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
|
||||
endfor
|
||||
unlet! s:type
|
||||
endif
|
||||
|
||||
@@ -102,7 +102,7 @@ let s:keywords = {
|
||||
\ ],
|
||||
\ "p6Operator": [
|
||||
\ "div xx x mod also leg cmp before after eq ne le lt not",
|
||||
\ "gt ge eqv ff fff and andthen or xor orelse extra lcm gcd",
|
||||
\ "gt ge eqv ff fff and andthen or xor orelse extra lcm gcd o",
|
||||
\ ],
|
||||
\ "p6Type": [
|
||||
\ "int int1 int2 int4 int8 int16 int32 int64",
|
||||
@@ -176,7 +176,7 @@ syn match p6Type display "\%(::\)\@2<!\%(Order\%(::Same\|::More\|::Less\)\?\|Boo
|
||||
" Don't put a "\+" at the end of the character class. That makes it so
|
||||
" greedy that the "%" " in "+%foo" won't be allowed to match as a sigil,
|
||||
" among other things
|
||||
syn match p6Operator display "[-+/*~?|=^!%&,<>».;\\∈∉∋∌∩∪≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖∅]"
|
||||
syn match p6Operator display "[-+/*~?|=^!%&,<>».;\\∈∉∋∌∩∪≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖∅∘]"
|
||||
syn match p6Operator display "\%(:\@1<!::\@2!\|::=\|\.::\)"
|
||||
" these require whitespace on the left side
|
||||
syn match p6Operator display "\%(\s\|^\)\@1<=\%(xx=\|p5=>\)"
|
||||
@@ -249,9 +249,10 @@ syn cluster p6Interp_qq
|
||||
\ add=@p6Interp_function
|
||||
\ add=@p6Interp_closure
|
||||
\ add=@p6Interp_backslash
|
||||
\ add=p6MatchVarSigil
|
||||
|
||||
syn region p6InterpScalar
|
||||
\ start="\ze\z(\$\%(\%(\%(\d\+\|!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\%(\.\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ start="\ze\z(\$\%(\%(\%(\d\+\|!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\%(\.\^\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ start="\ze\z(\$\%(\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\|\%(\d\+\|!\|/\|¢\)\)\)"
|
||||
\ end="\z1\zs"
|
||||
\ contained keepend
|
||||
@@ -266,7 +267,7 @@ syn region p6InterpScalar
|
||||
\ contains=TOP
|
||||
|
||||
syn region p6InterpArray
|
||||
\ start="\ze\z(@\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\%(\.\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ start="\ze\z(@\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\%(\.\^\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ end="\z1\zs"
|
||||
\ contained keepend
|
||||
\ contains=TOP
|
||||
@@ -280,7 +281,7 @@ syn region p6InterpArray
|
||||
\ contains=TOP
|
||||
|
||||
syn region p6InterpHash
|
||||
\ start="\ze\z(%\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\%(\.\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ start="\ze\z(%\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\%(\.\^\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ end="\z1\zs"
|
||||
\ contained keepend
|
||||
\ contains=TOP
|
||||
@@ -294,7 +295,7 @@ syn region p6InterpHash
|
||||
\ contains=TOP
|
||||
|
||||
syn region p6InterpFunction
|
||||
\ start="\ze\z(&\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(\.\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ start="\ze\z(&\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1<!::\@!\)[A-Za-z_\xC0-\xFF]\@=\)\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(\.\^\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
|
||||
\ end="\z1\zs"
|
||||
\ contained keepend
|
||||
\ contains=TOP
|
||||
|
||||
File diff suppressed because one or more lines are too long
137
syntax/qml.vim
Normal file
137
syntax/qml.vim
Normal file
@@ -0,0 +1,137 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: QML
|
||||
" Maintainer: Warwick Allison <warwick.allison@nokia.com>
|
||||
" Updaters:
|
||||
" URL:
|
||||
" Changes:
|
||||
" Last Change: 2009 Apr 30
|
||||
|
||||
" Based on javascript syntax (as is QML)
|
||||
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'qml'
|
||||
endif
|
||||
|
||||
" Drop fold if it set but vim doesn't support it.
|
||||
if version < 600 && exists("qml_fold")
|
||||
unlet qml_fold
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
|
||||
syn keyword qmlCommentTodo TODO FIXME XXX TBD contained
|
||||
syn match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo
|
||||
syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
|
||||
syn region qmlComment start="/\*" end="\*/" contains=@Spell,qmlCommentTodo fold
|
||||
syn match qmlSpecial "\\\d\d\d\|\\."
|
||||
syn region qmlStringD start=+"+ skip=+\\\\\|\\"\|\\$+ end=+"\|$+ contains=qmlSpecial,@htmlPreproc
|
||||
syn region qmlStringS start=+'+ skip=+\\\\\|\\'\|\\$+ end=+'\|$+ contains=qmlSpecial,@htmlPreproc
|
||||
|
||||
syn match qmlCharacter "'\\.'"
|
||||
syn match qmlNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
|
||||
syn region qmlRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline
|
||||
syn match qmlObjectLiteralType "[A-Za-z][_A-Za-z0-9]*\s*\({\)\@="
|
||||
syn match qmlNonBindingColon "?[^;]*:"
|
||||
syn match qmlBindingProperty "\<[A-Za-z][_A-Za-z.0-9]*\s*:"
|
||||
|
||||
syn keyword qmlConditional if else switch
|
||||
syn keyword qmlRepeat while for do in
|
||||
syn keyword qmlBranch break continue
|
||||
syn keyword qmlOperator new delete instanceof typeof
|
||||
syn keyword qmlJsType Array Boolean Date Function Number Object String RegExp
|
||||
syn keyword qmlType action alias bool color date double enumeration font int list point real rect size string time url variant vector3d
|
||||
syn keyword qmlStatement return with
|
||||
syn keyword qmlBoolean true false
|
||||
syn keyword qmlNull null undefined
|
||||
syn keyword qmlIdentifier arguments this var
|
||||
syn keyword qmlLabel case default
|
||||
syn keyword qmlException try catch finally throw
|
||||
syn keyword qmlMessage alert confirm prompt status
|
||||
syn keyword qmlGlobal self
|
||||
syn keyword qmlDeclaration property signal
|
||||
syn keyword qmlReserved abstract boolean byte char class const debugger enum export extends final float goto implements import interface long native package pragma private protected public short static super synchronized throws transient volatile
|
||||
|
||||
if get(g:, 'qml_fold', 0)
|
||||
syn match qmlFunction "\<function\>"
|
||||
syn region qmlFunctionFold start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend
|
||||
|
||||
syn sync match qmlSync grouphere qmlFunctionFold "\<function\>"
|
||||
syn sync match qmlSync grouphere NONE "^}"
|
||||
|
||||
setlocal foldmethod=syntax
|
||||
setlocal foldtext=getline(v:foldstart)
|
||||
else
|
||||
syn keyword qmlFunction function
|
||||
syn match qmlBraces "[{}\[\]]"
|
||||
syn match qmlParens "[()]"
|
||||
endif
|
||||
|
||||
syn sync fromstart
|
||||
syn sync maxlines=100
|
||||
|
||||
if main_syntax == "qml"
|
||||
syn sync ccomment qmlComment
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_qml_syn_inits")
|
||||
if version < 508
|
||||
let did_qml_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
HiLink qmlComment Comment
|
||||
HiLink qmlLineComment Comment
|
||||
HiLink qmlCommentTodo Todo
|
||||
HiLink qmlSpecial Special
|
||||
HiLink qmlStringS String
|
||||
HiLink qmlStringD String
|
||||
HiLink qmlCharacter Character
|
||||
HiLink qmlNumber Number
|
||||
HiLink qmlConditional Conditional
|
||||
HiLink qmlRepeat Repeat
|
||||
HiLink qmlBranch Conditional
|
||||
HiLink qmlOperator Operator
|
||||
HiLink qmlJsType Type
|
||||
HiLink qmlType Type
|
||||
HiLink qmlObjectLiteralType Type
|
||||
HiLink qmlStatement Statement
|
||||
HiLink qmlFunction Function
|
||||
HiLink qmlBraces Function
|
||||
HiLink qmlError Error
|
||||
HiLink qmlNull Keyword
|
||||
HiLink qmlBoolean Boolean
|
||||
HiLink qmlRegexpString String
|
||||
|
||||
HiLink qmlIdentifier Identifier
|
||||
HiLink qmlLabel Label
|
||||
HiLink qmlException Exception
|
||||
HiLink qmlMessage Keyword
|
||||
HiLink qmlGlobal Keyword
|
||||
HiLink qmlReserved Keyword
|
||||
HiLink qmlDebug Debug
|
||||
HiLink qmlConstant Label
|
||||
HiLink qmlNonBindingColon NONE
|
||||
HiLink qmlBindingProperty Label
|
||||
HiLink qmlDeclaration Function
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "qml"
|
||||
if main_syntax == 'qml'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
endif
|
||||
@@ -173,10 +173,10 @@ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i(" end=")" sk
|
||||
|
||||
" Array of interpolated Symbols
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold
|
||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold
|
||||
|
||||
" Here Document
|
||||
syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
|
||||
@@ -244,7 +244,7 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
|
||||
" statements without 'do'
|
||||
syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
|
||||
syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
|
||||
syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
|
||||
syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(\\\n\s*\)\@<!\%(if\|unless\)\>" end="\%(\%(\%(\.\@<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
|
||||
|
||||
syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!" contained containedin=rubyCaseExpression
|
||||
syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression
|
||||
|
||||
8
syntax/semhl.vim
Normal file
8
syntax/semhl.vim
Normal file
@@ -0,0 +1,8 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
|
||||
" syntax match javascriptIdentifierName /\<[^=<>!?+\-*\/%|&,;:. ~@#`"'\[\]\(\)\{\}\^0-9][^=<>!?+\-*\/%|&,;:. ~@#`"'\[\]\(\)\{\}\^]*/ nextgroup=javascriptDotNotation,javascriptFuncCallArg,javascriptComputedProperty,javascriptWSymbols contains=@_smantic
|
||||
|
||||
syntax cluster _semantic contains=_semantic0,_semantic1,_semantic2,_semantic3,_semantic4,_semantic5,_semantic6,_semantic7,_semantic8,_semantic9,_semantic10,_semantic11,_semantic12,_semantic13,_semantic14,_semantic15,_semantic16,_semantic17,_semantic18,_semantic19,_semantic20,_semantic21,_semantic22,_semantic23,_semantic24,_semantic25
|
||||
|
||||
endif
|
||||
@@ -27,10 +27,11 @@ syn region tomlString oneline start=/'/ end=/'/
|
||||
syn region tomlString start=/'''/ end=/'''/
|
||||
hi def link tomlString String
|
||||
|
||||
syn match tomlInteger /\<-\?\d\+\>/ display
|
||||
syn match tomlInteger /\<[+-]\=[0-9]\(_\=\d\)*\>/ display
|
||||
hi def link tomlInteger Number
|
||||
|
||||
syn match tomlFloat /\<-\?\d\+\.\d\+\>/ display
|
||||
syn match tomlFloat /\<[+-]\=[0-9]\(_\=\d\)*\.\d\+\>/ display
|
||||
syn match tomlFloat /\<[+-]\=[0-9]\(_\=\d\)*\(\.[0-9]\(_\=\d\)*\)\=[eE][+-]\=[0-9]\(_\=\d\)*\>/ display
|
||||
hi def link tomlFloat Float
|
||||
|
||||
syn match tomlBoolean /\<\%(true\|false\)\>/ display
|
||||
|
||||
5
syntax/yajs/ecma-402.vim
Normal file
5
syntax/yajs/ecma-402.vim
Normal file
@@ -0,0 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Intl
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-array.vim
Normal file
6
syntax/yajs/es6-array.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Array nextgroup=javascriptGlobalArrayDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalArrayDot /\./ contained nextgroup=javascriptArrayStaticMethod
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-date.vim
Normal file
6
syntax/yajs/es6-date.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Date nextgroup=javascriptGlobalDateDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalDateDot /\./ contained nextgroup=javascriptDateStaticMethod
|
||||
|
||||
endif
|
||||
5
syntax/yajs/es6-function.vim
Normal file
5
syntax/yajs/es6-function.vim
Normal file
@@ -0,0 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Function
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-json.vim
Normal file
6
syntax/yajs/es6-json.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal JSON nextgroup=javascriptGlobalJSONDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalJSONDot /\./ contained nextgroup=javascriptJSONStaticMethod
|
||||
|
||||
endif
|
||||
5
syntax/yajs/es6-map.vim
Normal file
5
syntax/yajs/es6-map.vim
Normal file
@@ -0,0 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Map WeakMap
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-math.vim
Normal file
6
syntax/yajs/es6-math.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Math nextgroup=javascriptGlobalMathDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalMathDot /\./ contained nextgroup=javascriptMathStaticProp,javascriptMathStaticMethod
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-number.vim
Normal file
6
syntax/yajs/es6-number.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Number nextgroup=javascriptGlobalNumberDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalNumberDot /\./ contained nextgroup=javascriptNumberStaticProp,javascriptNumberStaticMethod
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-object.vim
Normal file
6
syntax/yajs/es6-object.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Object nextgroup=javascriptGlobalObjectDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalObjectDot /\./ contained nextgroup=javascriptObjectStaticMethod
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-promise.vim
Normal file
6
syntax/yajs/es6-promise.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Promise nextgroup=javascriptGlobalPromiseDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalPromiseDot /\./ contained nextgroup=javascriptPromiseStaticMethod
|
||||
|
||||
endif
|
||||
5
syntax/yajs/es6-proxy.vim
Normal file
5
syntax/yajs/es6-proxy.vim
Normal file
@@ -0,0 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Proxy
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-regexp.vim
Normal file
6
syntax/yajs/es6-regexp.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal RegExp nextgroup=javascriptGlobalRegExpDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalRegExpDot /\./ contained nextgroup=javascriptRegExpStaticProp
|
||||
|
||||
endif
|
||||
5
syntax/yajs/es6-set.vim
Normal file
5
syntax/yajs/es6-set.vim
Normal file
@@ -0,0 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Set WeakSet
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-string.vim
Normal file
6
syntax/yajs/es6-string.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal String nextgroup=javascriptGlobalStringDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalStringDot /\./ contained nextgroup=javascriptStringStaticMethod
|
||||
|
||||
endif
|
||||
6
syntax/yajs/es6-symbol.vim
Normal file
6
syntax/yajs/es6-symbol.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Symbol nextgroup=javascriptGlobalSymbolDot,javascriptFuncCallArg
|
||||
syntax match javascriptGlobalSymbolDot /\./ contained nextgroup=javascriptSymbolStaticProp,javascriptSymbolStaticMethod
|
||||
|
||||
endif
|
||||
4
syntax/yajs/event.vim
Normal file
4
syntax/yajs/event.vim
Normal file
@@ -0,0 +1,4 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
|
||||
endif
|
||||
17
syntax/yajs/javascript.vim
Normal file
17
syntax/yajs/javascript.vim
Normal file
@@ -0,0 +1,17 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptGlobal Function Boolean Error EvalError InternalError RangeError
|
||||
syntax keyword javascriptGlobal ReferenceError StopIteration SyntaxError TypeError
|
||||
syntax keyword javascriptGlobal URIError Date Float32Array Float64Array Int16Array
|
||||
syntax keyword javascriptGlobal Int32Array Int8Array Uint16Array Uint32Array Uint8Array
|
||||
syntax keyword javascriptGlobal Uint8ClampedArray ParallelArray ArrayBuffer DataView
|
||||
syntax keyword javascriptGlobal Iterator Generator Reflect Proxy arguments
|
||||
if exists("did_javascript_hilink") | HiLink javascriptGlobal Structure
|
||||
endif
|
||||
syntax keyword javascriptGlobalMethod eval uneval isFinite isNaN parseFloat parseInt nextgroup=javascriptFuncCallArg
|
||||
syntax keyword javascriptGlobalMethod decodeURI decodeURIComponent encodeURI encodeURIComponent nextgroup=javascriptFuncCallArg
|
||||
syntax cluster props add=javascriptGlobalMethod
|
||||
if exists("did_javascript_hilink") | HiLink javascriptGlobalMethod Structure
|
||||
endif
|
||||
|
||||
endif
|
||||
8
syntax/yajs/node.vim
Normal file
8
syntax/yajs/node.vim
Normal file
@@ -0,0 +1,8 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
syntax keyword javascriptNodeGlobal global process console Buffer module exports setTimeout
|
||||
syntax keyword javascriptNodeGlobal clearTimeout setInterval clearInterval
|
||||
if exists("did_javascript_hilink") | HiLink javascriptNodeGlobal Structure
|
||||
endif
|
||||
|
||||
endif
|
||||
4
syntax/yajs/web.vim
Normal file
4
syntax/yajs/web.vim
Normal file
@@ -0,0 +1,4 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
|
||||
endif
|
||||
Reference in New Issue
Block a user