mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-09 03:53:52 -05:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94f72a68c3 | ||
|
|
9b3b092d15 | ||
|
|
959a2ffa3d | ||
|
|
d51b8fd17e | ||
|
|
fa57320919 | ||
|
|
9a2b4f5cd8 | ||
|
|
f211f02d1e | ||
|
|
e45b23b6ee | ||
|
|
a0c5f3ee55 | ||
|
|
6b8c72637f | ||
|
|
d330fdc01b | ||
|
|
c225bf8826 | ||
|
|
20125ac3ac | ||
|
|
9f19823a30 | ||
|
|
56d5fc498b |
@@ -5,4 +5,4 @@ before_install: sudo apt-get install vim-gtk
|
|||||||
before_script:
|
before_script:
|
||||||
- "export DISPLAY=:99.0"
|
- "export DISPLAY=:99.0"
|
||||||
- "sh -e /etc/init.d/xvfb start"
|
- "sh -e /etc/init.d/xvfb start"
|
||||||
script: bundle exec rspec
|
script: bundle exec rspec --format=documentation
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
|||||||
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [go](https://github.com/jnwhiteh/vim-golang) (syntax, indent, autoload, ftplugin, ftdetect)
|
- [go](https://github.com/jnwhiteh/vim-golang) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [handlebars](https://github.com/nono/vim-handlebars) (syntax, ftplugin, ftdetect)
|
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (syntax, ftplugin, ftdetect)
|
||||||
- [haskell](https://github.com/travitch/hasksyn) (syntax, indent, ftplugin)
|
- [haskell](https://github.com/travitch/hasksyn) (syntax, indent, ftplugin)
|
||||||
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload)
|
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload)
|
||||||
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
" Language: C++ Additions
|
" Language: C++ Additions
|
||||||
" Maintainer: Jon Haggblad <jon@haeggblad.com>
|
" Maintainer: Jon Haggblad <jon@haeggblad.com>
|
||||||
" URL: http://www.haeggblad.com
|
" URL: http://www.haeggblad.com
|
||||||
" Last Change: 17 May 2013
|
" Last Change: 26 Jan 2014
|
||||||
" Version: 0.1
|
" Version: 0.2
|
||||||
" Changelog:
|
" Changelog:
|
||||||
" 0.1 - initial version.
|
" 0.1 - initial version.
|
||||||
|
" 0.2 - C++14
|
||||||
"
|
"
|
||||||
" Additional Vim syntax highlighting for C++ (including C++11)
|
" Additional Vim syntax highlighting for C++ (including C++11)
|
||||||
"
|
"
|
||||||
@@ -139,6 +140,7 @@ syntax keyword cppSTLfunction atexit
|
|||||||
syntax keyword cppSTLfunction atof
|
syntax keyword cppSTLfunction atof
|
||||||
syntax keyword cppSTLfunction atoi
|
syntax keyword cppSTLfunction atoi
|
||||||
syntax keyword cppSTLfunction atol
|
syntax keyword cppSTLfunction atol
|
||||||
|
syntax keyword cppSTLfunction atoll
|
||||||
syntax keyword cppSTLfunction back
|
syntax keyword cppSTLfunction back
|
||||||
syntax keyword cppSTLfunction back_inserter
|
syntax keyword cppSTLfunction back_inserter
|
||||||
syntax keyword cppSTLfunction bad
|
syntax keyword cppSTLfunction bad
|
||||||
@@ -423,8 +425,11 @@ syntax keyword cppSTLfunction strrchr
|
|||||||
syntax keyword cppSTLfunction strspn
|
syntax keyword cppSTLfunction strspn
|
||||||
syntax keyword cppSTLfunction strstr
|
syntax keyword cppSTLfunction strstr
|
||||||
syntax keyword cppSTLfunction strtod
|
syntax keyword cppSTLfunction strtod
|
||||||
|
syntax keyword cppSTLfunction strtof
|
||||||
|
syntax keyword cppSTLfunction strtold
|
||||||
syntax keyword cppSTLfunction strtok
|
syntax keyword cppSTLfunction strtok
|
||||||
syntax keyword cppSTLfunction strtol
|
syntax keyword cppSTLfunction strtol
|
||||||
|
syntax keyword cppSTLfunction strtoll
|
||||||
syntax keyword cppSTLfunction strtoul
|
syntax keyword cppSTLfunction strtoul
|
||||||
syntax keyword cppSTLfunction strxfrm
|
syntax keyword cppSTLfunction strxfrm
|
||||||
syntax keyword cppSTLfunction substr
|
syntax keyword cppSTLfunction substr
|
||||||
@@ -440,7 +445,6 @@ syntax keyword cppSTLfunction tellg
|
|||||||
syntax keyword cppSTLfunction tellp
|
syntax keyword cppSTLfunction tellp
|
||||||
syntax keyword cppSTLfunction test
|
syntax keyword cppSTLfunction test
|
||||||
syntax keyword cppSTLfunction time
|
syntax keyword cppSTLfunction time
|
||||||
syntax keyword cppSTLfunction time_t
|
|
||||||
syntax keyword cppSTLfunction tmpfile
|
syntax keyword cppSTLfunction tmpfile
|
||||||
syntax keyword cppSTLfunction tmpnam
|
syntax keyword cppSTLfunction tmpnam
|
||||||
syntax keyword cppSTLfunction tolower
|
syntax keyword cppSTLfunction tolower
|
||||||
@@ -615,6 +619,7 @@ syntax keyword cppSTLtype stringbuf
|
|||||||
syntax keyword cppSTLtype stringstream
|
syntax keyword cppSTLtype stringstream
|
||||||
syntax keyword cppSTLtype temporary_buffer
|
syntax keyword cppSTLtype temporary_buffer
|
||||||
syntax keyword cppSTLtype test_type
|
syntax keyword cppSTLtype test_type
|
||||||
|
syntax keyword cppSTLtype time_t
|
||||||
syntax keyword cppSTLtype tm
|
syntax keyword cppSTLtype tm
|
||||||
syntax keyword cppSTLtype traits_type
|
syntax keyword cppSTLtype traits_type
|
||||||
syntax keyword cppSTLtype type_info
|
syntax keyword cppSTLtype type_info
|
||||||
@@ -635,6 +640,84 @@ syntax keyword cppSTLtype wstring
|
|||||||
syntax keyword cppSTLtype wstringbuf
|
syntax keyword cppSTLtype wstringbuf
|
||||||
syntax keyword cppSTLtype wstringstream
|
syntax keyword cppSTLtype wstringstream
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction mblen
|
||||||
|
syntax keyword cppSTLfunction mbtowc
|
||||||
|
syntax keyword cppSTLfunction wctomb
|
||||||
|
syntax keyword cppSTLfunction mbstowcs
|
||||||
|
syntax keyword cppSTLfunction wcstombs
|
||||||
|
syntax keyword cppSTLfunction mbsinit
|
||||||
|
syntax keyword cppSTLfunction btowc
|
||||||
|
syntax keyword cppSTLfunction wctob
|
||||||
|
syntax keyword cppSTLfunction mbrlen
|
||||||
|
syntax keyword cppSTLfunction mbrtowc
|
||||||
|
syntax keyword cppSTLfunction wcrtomb
|
||||||
|
syntax keyword cppSTLfunction mbsrtowcs
|
||||||
|
syntax keyword cppSTLfunction wcsrtombs
|
||||||
|
|
||||||
|
syntax keyword cppSTLtype mbstate_t
|
||||||
|
|
||||||
|
syntax keyword cppSTLconstant MB_LEN_MAX
|
||||||
|
syntax keyword cppSTLconstant MB_CUR_MAX
|
||||||
|
syntax keyword cppSTLconstant __STDC_UTF_16__
|
||||||
|
syntax keyword cppSTLconstant __STDC_UTF_32__
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction iswalnum
|
||||||
|
syntax keyword cppSTLfunction iswalpha
|
||||||
|
syntax keyword cppSTLfunction iswlower
|
||||||
|
syntax keyword cppSTLfunction iswupper
|
||||||
|
syntax keyword cppSTLfunction iswdigit
|
||||||
|
syntax keyword cppSTLfunction iswxdigit
|
||||||
|
syntax keyword cppSTLfunction iswcntrl
|
||||||
|
syntax keyword cppSTLfunction iswgraph
|
||||||
|
syntax keyword cppSTLfunction iswspace
|
||||||
|
syntax keyword cppSTLfunction iswprint
|
||||||
|
syntax keyword cppSTLfunction iswpunct
|
||||||
|
syntax keyword cppSTLfunction iswctype
|
||||||
|
syntax keyword cppSTLfunction wctype
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction towlower
|
||||||
|
syntax keyword cppSTLfunction towupper
|
||||||
|
syntax keyword cppSTLfunction towctrans
|
||||||
|
syntax keyword cppSTLfunction wctrans
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction wcstol
|
||||||
|
syntax keyword cppSTLfunction wcstoll
|
||||||
|
syntax keyword cppSTLfunction wcstoul
|
||||||
|
syntax keyword cppSTLfunction wcstoull
|
||||||
|
syntax keyword cppSTLfunction wcstof
|
||||||
|
syntax keyword cppSTLfunction wcstod
|
||||||
|
syntax keyword cppSTLfunction wcstold
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction wcscpy
|
||||||
|
syntax keyword cppSTLfunction wcsncpy
|
||||||
|
syntax keyword cppSTLfunction wcscat
|
||||||
|
syntax keyword cppSTLfunction wcsncat
|
||||||
|
syntax keyword cppSTLfunction wcsxfrm
|
||||||
|
syntax keyword cppSTLfunction wcslen
|
||||||
|
syntax keyword cppSTLfunction wcscmp
|
||||||
|
syntax keyword cppSTLfunction wcsncmp
|
||||||
|
syntax keyword cppSTLfunction wcscoll
|
||||||
|
syntax keyword cppSTLfunction wcschr
|
||||||
|
syntax keyword cppSTLfunction wcsrchr
|
||||||
|
syntax keyword cppSTLfunction wcsspn
|
||||||
|
syntax keyword cppSTLfunction wcscspn
|
||||||
|
syntax keyword cppSTLfunction wcspbrk
|
||||||
|
syntax keyword cppSTLfunction wcsstr
|
||||||
|
syntax keyword cppSTLfunction wcstok
|
||||||
|
syntax keyword cppSTLfunction wmemcpy
|
||||||
|
syntax keyword cppSTLfunction wmemmove
|
||||||
|
syntax keyword cppSTLfunction wmemcmp
|
||||||
|
syntax keyword cppSTLfunction wmemchr
|
||||||
|
syntax keyword cppSTLfunction wmemset
|
||||||
|
|
||||||
|
syntax keyword cppSTLtype wctrans_t
|
||||||
|
syntax keyword cppSTLtype wctype_t
|
||||||
|
syntax keyword cppSTLtype wint_t
|
||||||
|
|
||||||
|
syntax keyword cppSTLconstant WEOF
|
||||||
|
syntax keyword cppSTLconstant WCHAR_MIN
|
||||||
|
syntax keyword cppSTLconstant WCHAR_MAX
|
||||||
|
|
||||||
if !exists("cpp_no_cpp11")
|
if !exists("cpp_no_cpp11")
|
||||||
syntax keyword cppSTLtype nullptr_t max_align_t
|
syntax keyword cppSTLtype nullptr_t max_align_t
|
||||||
syntax keyword cppSTLtype type_index
|
syntax keyword cppSTLtype type_index
|
||||||
@@ -968,6 +1051,7 @@ if !exists("cpp_no_cpp11")
|
|||||||
|
|
||||||
" locale
|
" locale
|
||||||
syntax keyword cppSTLfunction isblank
|
syntax keyword cppSTLfunction isblank
|
||||||
|
syntax keyword cppSTLfunction iswblank
|
||||||
syntax keyword cppSTLtype wstring_convert
|
syntax keyword cppSTLtype wstring_convert
|
||||||
syntax keyword cppSTLtype wbuffer_convert
|
syntax keyword cppSTLtype wbuffer_convert
|
||||||
syntax keyword cppSTLtype codecvt_utf8
|
syntax keyword cppSTLtype codecvt_utf8
|
||||||
@@ -1016,13 +1100,51 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLfunction atomic_flag_clear
|
syntax keyword cppSTLfunction atomic_flag_clear
|
||||||
syntax keyword cppSTLfunction atomic_flag_clear_explicit
|
syntax keyword cppSTLfunction atomic_flag_clear_explicit
|
||||||
|
|
||||||
|
syntax keyword cppSTLtype atomic_bool
|
||||||
|
syntax keyword cppSTLtype atomic_char
|
||||||
|
syntax keyword cppSTLtype atomic_schar
|
||||||
|
syntax keyword cppSTLtype atomic_uchar
|
||||||
|
syntax keyword cppSTLtype atomic_short
|
||||||
|
syntax keyword cppSTLtype atomic_ushort
|
||||||
|
syntax keyword cppSTLtype atomic_int
|
||||||
|
syntax keyword cppSTLtype atomic_uint
|
||||||
|
syntax keyword cppSTLtype atomic_long
|
||||||
|
syntax keyword cppSTLtype atomic_ulong
|
||||||
|
syntax keyword cppSTLtype atomic_llong
|
||||||
|
syntax keyword cppSTLtype atomic_ullong
|
||||||
|
syntax keyword cppSTLtype atomic_char16_t
|
||||||
|
syntax keyword cppSTLtype atomic_char32_t
|
||||||
|
syntax keyword cppSTLtype atomic_wchar_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least8_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least8_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least16_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least16_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least32_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least32_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least64_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least64_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast8_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast8_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast16_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast16_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast32_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast32_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast64_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast64_t
|
||||||
|
syntax keyword cppSTLtype atomic_intptr_t
|
||||||
|
syntax keyword cppSTLtype atomic_uintptr_t
|
||||||
|
syntax keyword cppSTLtype atomic_size_t
|
||||||
|
syntax keyword cppSTLtype atomic_ptrdiff_t
|
||||||
|
syntax keyword cppSTLtype atomic_intmax_t
|
||||||
|
syntax keyword cppSTLtype atomic_uintmax_t
|
||||||
|
|
||||||
syntax keyword cppSTLtype memory_order
|
syntax keyword cppSTLtype memory_order
|
||||||
syntax keyword cppSTLfunction atomic_init
|
syntax keyword cppSTLfunction atomic_init
|
||||||
syntax keyword cppSTLfunction ATOMIC_VAR_INIT
|
syntax keyword cppSTLfunction ATOMIC_VAR_INIT
|
||||||
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
|
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
|
||||||
syntax keyword cppSTLconstant kill_dependency
|
syntax keyword cppSTLfunction kill_dependency
|
||||||
syntax keyword cppSTLconstant atomic_thread_fence
|
syntax keyword cppSTLfunction atomic_thread_fence
|
||||||
syntax keyword cppSTLconstant atomic_signal_fence
|
syntax keyword cppSTLfunction atomic_signal_fence
|
||||||
|
|
||||||
" thread
|
" thread
|
||||||
syntax keyword cppSTLtype thread
|
syntax keyword cppSTLtype thread
|
||||||
@@ -1061,8 +1183,8 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLtype future
|
syntax keyword cppSTLtype future
|
||||||
syntax keyword cppSTLtype shared_future
|
syntax keyword cppSTLtype shared_future
|
||||||
|
|
||||||
"syntax keyword cppSTLfunction async
|
syntax keyword cppSTLfunction async
|
||||||
"syntax keyword cppSTLenum launch
|
syntax keyword cppSTLenum launch
|
||||||
|
|
||||||
syntax keyword cppSTLenum future_status
|
syntax keyword cppSTLenum future_status
|
||||||
syntax keyword cppSTLenum future_errc
|
syntax keyword cppSTLenum future_errc
|
||||||
@@ -1114,7 +1236,36 @@ if !exists("cpp_no_cpp11")
|
|||||||
|
|
||||||
"limits
|
"limits
|
||||||
syntax keyword cppSTLfunction lowest
|
syntax keyword cppSTLfunction lowest
|
||||||
endif
|
|
||||||
|
"cuchar
|
||||||
|
syntax keyword cppSTLfunction mbrtoc16
|
||||||
|
syntax keyword cppSTLfunction c16rtomb
|
||||||
|
syntax keyword cppSTLfunction mbrtoc32
|
||||||
|
syntax keyword cppSTLfunction c32rtomb
|
||||||
|
|
||||||
|
"cinttypes
|
||||||
|
syntax keyword cppSTLfunction strtoimax
|
||||||
|
syntax keyword cppSTLfunction strtoumax
|
||||||
|
syntax keyword cppSTLfunction wcstoimax
|
||||||
|
syntax keyword cppSTLfunction wcstoumax
|
||||||
|
|
||||||
|
endif " C++11
|
||||||
|
|
||||||
|
if !exists("cpp_no_cpp14")
|
||||||
|
|
||||||
|
"optional
|
||||||
|
syntax keyword cppSTLtype optional
|
||||||
|
"syntax keyword cppSTLfunction value
|
||||||
|
syntax keyword cppSTLfunction value_or
|
||||||
|
syntax keyword cppSTLfunction make_optional
|
||||||
|
|
||||||
|
"dynarray
|
||||||
|
syntax keyword cppSTLtype dynarray
|
||||||
|
|
||||||
|
"thread
|
||||||
|
syntax keyword cppSTLtype shared_mutex
|
||||||
|
syntax keyword cppSTLtype shared_lock
|
||||||
|
endif " C++14
|
||||||
|
|
||||||
" Default highlighting
|
" Default highlighting
|
||||||
if version >= 508 || !exists("did_cpp_syntax_inits")
|
if version >= 508 || !exists("did_cpp_syntax_inits")
|
||||||
|
|||||||
@@ -2,3 +2,8 @@
|
|||||||
" \Cref, \cref, \cpageref, \labelcref, \labelcpageref
|
" \Cref, \cref, \cpageref, \labelcref, \labelcpageref
|
||||||
syn region texRefZone matchgroup=texStatement start="\\Cref{" end="}\|%stopzone\>" contains=@texRefGroup
|
syn region texRefZone matchgroup=texStatement start="\\Cref{" end="}\|%stopzone\>" contains=@texRefGroup
|
||||||
syn region texRefZone matchgroup=texStatement start="\\\(label\|\)c\(page\|\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
|
syn region texRefZone matchgroup=texStatement start="\\\(label\|\)c\(page\|\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
|
||||||
|
|
||||||
|
" adds support for listings package
|
||||||
|
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>"
|
||||||
|
syn region texZone start="\\lstinputlisting" end="{\s*[a-zA-Z/.0-9_^]\+\s*}"
|
||||||
|
syn match texInputFile "\\lstinline\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ function! clojurecomplete#Complete(findstart, base)
|
|||||||
if a:findstart
|
if a:findstart
|
||||||
return searchpos('\<', 'bnW', line('.'))[1] - 1
|
return searchpos('\<', 'bnW', line('.'))[1] - 1
|
||||||
else
|
else
|
||||||
return { 'words': filter(copy(s:words), 'v:val =~ "\\V\\^' . a:base . '"') }
|
return { 'words': filter(copy(s:words), 'v:val =~# "\\V\\^' . a:base . '"') }
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
2
build
2
build
@@ -79,7 +79,7 @@ PACKS="
|
|||||||
git:tpope/vim-git
|
git:tpope/vim-git
|
||||||
go:jnwhiteh/vim-golang
|
go:jnwhiteh/vim-golang
|
||||||
haml:tpope/vim-haml
|
haml:tpope/vim-haml
|
||||||
handlebars:nono/vim-handlebars
|
handlebars:mustache/vim-mustache-handlebars
|
||||||
haskell:travitch/hasksyn
|
haskell:travitch/hasksyn
|
||||||
html5:othree/html5.vim
|
html5:othree/html5.vim
|
||||||
jade:digitaltoad/vim-jade
|
jade:digitaltoad/vim-jade
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
||||||
au BufNewFile,BufRead *.clj,*.cljs,*.edn setf clojure
|
autocmd BufNewFile,BufRead *.clj,*.cljs,*.edn setlocal filetype=clojure
|
||||||
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
|
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
|
||||||
autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
|
autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
|
||||||
autocmd BufNewFile,BufRead *.coffeekup,*.ck set filetype=coffee
|
autocmd BufNewFile,BufRead *.coffeekup,*.ck set filetype=coffee
|
||||||
@@ -20,10 +20,7 @@ autocmd BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules set ft=gitconfig
|
|||||||
autocmd BufNewFile,BufRead */.config/git/config set ft=gitconfig
|
autocmd BufNewFile,BufRead */.config/git/config set ft=gitconfig
|
||||||
autocmd BufNewFile,BufRead *.git/modules/**/config set ft=gitconfig
|
autocmd BufNewFile,BufRead *.git/modules/**/config set ft=gitconfig
|
||||||
autocmd BufNewFile,BufRead git-rebase-todo set ft=gitrebase
|
autocmd BufNewFile,BufRead git-rebase-todo set ft=gitrebase
|
||||||
autocmd BufNewFile,BufRead .msg.[0-9]*
|
autocmd BufNewFile,BufRead .gitsendemail.* set ft=gitsendemail
|
||||||
\ if getline(1) =~ '^From.*# This line is ignored.$' |
|
|
||||||
\ set ft=gitsendemail |
|
|
||||||
\ endif
|
|
||||||
autocmd BufNewFile,BufRead *.git/**
|
autocmd BufNewFile,BufRead *.git/**
|
||||||
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
||||||
\ set ft=git |
|
\ set ft=git |
|
||||||
@@ -50,9 +47,6 @@ au BufReadPost *.go call s:gofiletype_post()
|
|||||||
autocmd BufNewFile,BufRead *.haml,*.hamlbars setf haml
|
autocmd BufNewFile,BufRead *.haml,*.hamlbars setf haml
|
||||||
autocmd BufNewFile,BufRead *.sass setf sass
|
autocmd BufNewFile,BufRead *.sass setf sass
|
||||||
autocmd BufNewFile,BufRead *.scss setf scss
|
autocmd BufNewFile,BufRead *.scss setf scss
|
||||||
if has("autocmd")
|
|
||||||
au BufNewFile,BufRead *.{handlebars,hb,hbs,hbt}{,.erb} set ft=handlebars.html syntax=handlebars | runtime! ftplugin/handlebars.vim ftplugin/handlebars*.vim ftplugin/handlebars/*.vim
|
|
||||||
endif
|
|
||||||
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
||||||
au BufNewFile,BufRead *.js setf javascript
|
au BufNewFile,BufRead *.js setf javascript
|
||||||
au BufNewFile,BufRead *.jsm setf javascript
|
au BufNewFile,BufRead *.jsm setf javascript
|
||||||
@@ -84,11 +78,14 @@ autocmd BufRead *.html
|
|||||||
\ if getline(1) =~ '^\(%\|<[%&].*>\)' |
|
\ if getline(1) =~ '^\(%\|<[%&].*>\)' |
|
||||||
\ set filetype=mason |
|
\ set filetype=mason |
|
||||||
\ endif
|
\ endif
|
||||||
|
if has("autocmd")
|
||||||
|
au BufNewFile,BufRead *.mustache,*.handlebars,*.hbs,*.hogan,*.hulk,*.hjs set filetype=html syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
|
||||||
|
endif
|
||||||
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
||||||
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
||||||
au BufRead,BufNewFile *.pp set filetype=puppet
|
au BufRead,BufNewFile *.pp set filetype=puppet
|
||||||
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec set filetype=ruby
|
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec set filetype=ruby
|
||||||
au BufNewFile,BufRead *.builder,*.rxml,*.rjs set filetype=ruby
|
au BufNewFile,BufRead *.builder,*.rxml,*.rjs,*.ruby set filetype=ruby
|
||||||
au BufNewFile,BufRead [rR]akefile,*.rake set filetype=ruby
|
au BufNewFile,BufRead [rR]akefile,*.rake set filetype=ruby
|
||||||
au BufNewFile,BufRead [rR]antfile,*.rant set filetype=ruby
|
au BufNewFile,BufRead [rR]antfile,*.rant set filetype=ruby
|
||||||
au BufNewFile,BufRead .irbrc,irbrc set filetype=ruby
|
au BufNewFile,BufRead .irbrc,irbrc set filetype=ruby
|
||||||
@@ -108,7 +105,8 @@ au BufNewFile,BufRead *.jbuilder set filetype=ruby
|
|||||||
au BufNewFile,BufRead Puppetfile set filetype=ruby
|
au BufNewFile,BufRead Puppetfile set filetype=ruby
|
||||||
au BufNewFile,BufRead [Bb]uildfile set filetype=ruby
|
au BufNewFile,BufRead [Bb]uildfile set filetype=ruby
|
||||||
au BufNewFile,BufRead Appraisals set filetype=ruby
|
au BufNewFile,BufRead Appraisals set filetype=ruby
|
||||||
au BufRead,BufNewFile *.rs,*.rc set filetype=rust
|
au BufNewFile,BufRead Podfile,*.podspec set filetype=ruby
|
||||||
|
au BufRead,BufNewFile *.rs set filetype=rust
|
||||||
au BufRead,BufNewFile *.sbt set filetype=sbt
|
au BufRead,BufNewFile *.sbt set filetype=sbt
|
||||||
fun! s:DetectScala()
|
fun! s:DetectScala()
|
||||||
if getline(1) == '#!/usr/bin/env scala'
|
if getline(1) == '#!/usr/bin/env scala'
|
||||||
@@ -117,7 +115,7 @@ fun! s:DetectScala()
|
|||||||
endfun
|
endfun
|
||||||
au BufRead,BufNewFile *.scala,*.sbt set filetype=scala
|
au BufRead,BufNewFile *.scala,*.sbt set filetype=scala
|
||||||
au BufRead,BufNewFile * call s:DetectScala()
|
au BufRead,BufNewFile * call s:DetectScala()
|
||||||
autocmd BufNewFile,BufRead *.slim setf slim
|
autocmd BufNewFile,BufRead *.slim set filetype=slim
|
||||||
autocmd BufNewFile,BufReadPost *.styl set filetype=stylus
|
autocmd BufNewFile,BufReadPost *.styl set filetype=stylus
|
||||||
autocmd BufNewFile,BufReadPost *.stylus set filetype=stylus
|
autocmd BufNewFile,BufReadPost *.stylus set filetype=stylus
|
||||||
au BufRead,BufNewFile *.textile set filetype=textile
|
au BufRead,BufNewFile *.textile set filetype=textile
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ let b:did_ftplugin = 1
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring<'
|
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring< lispwords<'
|
||||||
|
|
||||||
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
||||||
|
|
||||||
@@ -30,6 +30,21 @@ setlocal formatoptions-=t
|
|||||||
setlocal comments=n:;
|
setlocal comments=n:;
|
||||||
setlocal commentstring=;\ %s
|
setlocal commentstring=;\ %s
|
||||||
|
|
||||||
|
" Specially indented symbols from clojure.core and clojure.test.
|
||||||
|
"
|
||||||
|
" Clojure symbols are indented in the defn style when they:
|
||||||
|
"
|
||||||
|
" * Define vars and anonymous functions
|
||||||
|
" * Create new lexical scopes or scopes with altered environments
|
||||||
|
" * Create conditional branches from a predicate function or value
|
||||||
|
"
|
||||||
|
" The arglists for these functions are generally in the form of [x & body];
|
||||||
|
" Functions that accept a flat list of forms do not treat the first argument
|
||||||
|
" specially and hence are not indented specially.
|
||||||
|
"
|
||||||
|
" Generated from https://github.com/guns/vim-clojure-static/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
|
||||||
|
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doall,dorun,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
|
||||||
|
|
||||||
" Provide insert mode completions for special forms and clojure.core. As
|
" Provide insert mode completions for special forms and clojure.core. As
|
||||||
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
|
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
|
||||||
" 'completefunc' so that the user has some form of completion available when
|
" 'completefunc' so that the user has some form of completion available when
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
" though, implementation differs.
|
" though, implementation differs.
|
||||||
|
|
||||||
" Plugin folklore "{{{2
|
" Plugin folklore "{{{2
|
||||||
if v:version < 700 || exists('b:did_csv_ftplugin')
|
if v:version < 700 || exists('b:did_ftplugin')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let b:did_csv_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
@@ -137,6 +137,7 @@ fu! <sid>Init(startline, endline) "{{{3
|
|||||||
\ . "| unlet! b:csv_SplitWindow b:csv_headerline"
|
\ . "| unlet! b:csv_SplitWindow b:csv_headerline"
|
||||||
\ . "| unlet! b:csv_thousands_sep b:csv_decimal_sep"
|
\ . "| unlet! b:csv_thousands_sep b:csv_decimal_sep"
|
||||||
\. " | unlet! b:browsefilter b:csv_cmt"
|
\. " | unlet! b:browsefilter b:csv_cmt"
|
||||||
|
\. " | unlet! b:csv_arrange_leftalign"
|
||||||
|
|
||||||
" Delete all functions
|
" Delete all functions
|
||||||
" disabled currently, because otherwise when switching ft
|
" disabled currently, because otherwise when switching ft
|
||||||
@@ -696,7 +697,11 @@ endfu
|
|||||||
|
|
||||||
fu! <sid>UnArrangeCol(match) "{{{3
|
fu! <sid>UnArrangeCol(match) "{{{3
|
||||||
" Strip leading white space, also trims empty records:
|
" Strip leading white space, also trims empty records:
|
||||||
return substitute(a:match, '^\s\+', '', '')
|
if get(b:, 'csv_arrange_leftalign',0)
|
||||||
|
return substitute(a:match, '\s\+\ze'. b:delimiter. '\?$', '', '')
|
||||||
|
else
|
||||||
|
return substitute(a:match, '^\s\+', '', '')
|
||||||
|
endif
|
||||||
" only strip leading white space, if a non-white space follows:
|
" only strip leading white space, if a non-white space follows:
|
||||||
"return substitute(a:match, '^\s\+\ze\S', '', '')
|
"return substitute(a:match, '^\s\+\ze\S', '', '')
|
||||||
endfu
|
endfu
|
||||||
@@ -744,9 +749,18 @@ fu! <sid>Columnize(field) "{{{3
|
|||||||
let width=get(b:col_width, (s:columnize_count % s:max_cols), 20)
|
let width=get(b:col_width, (s:columnize_count % s:max_cols), 20)
|
||||||
|
|
||||||
let s:columnize_count += 1
|
let s:columnize_count += 1
|
||||||
|
let has_delimiter = (a:field =~# b:delimiter.'$')
|
||||||
if v:version > 703 || v:version == 703 && has("patch713")
|
if v:version > 703 || v:version == 703 && has("patch713")
|
||||||
" printf knows about %S (e.g. can handle char length
|
" printf knows about %S (e.g. can handle char length
|
||||||
return printf("%*S", width+1 , a:field)
|
if get(b:, 'csv_arrange_leftalign',0)
|
||||||
|
" left-align content
|
||||||
|
return printf("%-*S%s", width+1 ,
|
||||||
|
\ (has_delimiter ?
|
||||||
|
\ matchstr(a:field, '.*\%('.b:delimiter.'\)\@=') : a:field),
|
||||||
|
\ (has_delimiter ? b:delimiter : ''))
|
||||||
|
else
|
||||||
|
return printf("%*S", width+1 , a:field)
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
" printf only handles bytes
|
" printf only handles bytes
|
||||||
if !exists("g:csv_no_multibyte") &&
|
if !exists("g:csv_no_multibyte") &&
|
||||||
@@ -768,7 +782,14 @@ fu! <sid>Columnize(field) "{{{3
|
|||||||
" Column has correct length, don't use printf()
|
" Column has correct length, don't use printf()
|
||||||
return a:field
|
return a:field
|
||||||
else
|
else
|
||||||
return printf("%*s", width , a:field)
|
if get(b:, 'csv_arrange_leftalign',0)
|
||||||
|
" left-align content
|
||||||
|
return printf("%-*s%s", width,
|
||||||
|
\ (has_delimiter ? matchstr(a:field, '.*\%('.b:delimiter.'\)\@=') : a:field),
|
||||||
|
\ (has_delimiter ? b:delimiter : ''))
|
||||||
|
else
|
||||||
|
return printf("%*s", width , a:field)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endfun
|
endfun
|
||||||
@@ -1250,8 +1271,8 @@ fu! <sid>SumColumn(list) "{{{3
|
|||||||
if empty(item)
|
if empty(item)
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
let nr = matchstr(item, '\d\(.*\d\)\?$')
|
let nr = matchstr(item, '-\?\d\(.*\d\)\?$')
|
||||||
let format1 = '^\d\+\zs\V' . s:nr_format[0] . '\m\ze\d'
|
let format1 = '^-\?\d\+\zs\V' . s:nr_format[0] . '\m\ze\d'
|
||||||
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
|
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
|
||||||
try
|
try
|
||||||
let nr = substitute(nr, format1, '', '')
|
let nr = substitute(nr, format1, '', '')
|
||||||
@@ -2360,11 +2381,12 @@ fu! <sid>SubstituteInColumn(command, line1, line2) range "{{{3
|
|||||||
endfu
|
endfu
|
||||||
|
|
||||||
fu! <sid>ColumnMode() "{{{3
|
fu! <sid>ColumnMode() "{{{3
|
||||||
if mode() =~# 'R'
|
let mode = mode()
|
||||||
|
if mode =~# 'R'
|
||||||
" (virtual) Replace mode
|
" (virtual) Replace mode
|
||||||
let new_line = (line('.') == line('$') ||
|
let new_line = (line('.') == line('$') ||
|
||||||
\ (synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") !~# "comment"))
|
\ (synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") =~? "comment"))
|
||||||
return "\<ESC>". (new_line ? "o" : "JE".mode())
|
return "\<ESC>g`[". (new_line ? "o" : "J".mode)
|
||||||
else
|
else
|
||||||
return "\<CR>"
|
return "\<CR>"
|
||||||
endif
|
endif
|
||||||
@@ -2379,7 +2401,7 @@ fu! csv#EvalColumn(nr, func, first, last) range "{{{3
|
|||||||
endif
|
endif
|
||||||
let save = winsaveview()
|
let save = winsaveview()
|
||||||
call <sid>CheckHeaderLine()
|
call <sid>CheckHeaderLine()
|
||||||
let nr = matchstr(a:nr, '^\d\+')
|
let nr = matchstr(a:nr, '^\-\?\d\+')
|
||||||
let col = (empty(nr) ? <sid>WColumn() : nr)
|
let col = (empty(nr) ? <sid>WColumn() : nr)
|
||||||
" don't take the header line into consideration
|
" don't take the header line into consideration
|
||||||
let start = a:first - 1 + s:csv_fold_headerline
|
let start = a:first - 1 + s:csv_fold_headerline
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
" Taken from https://github.com/juvenn/mustache.vim/blob/master/ftplugin/mustache.vim
|
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
" Matchit support for Handlebars
|
|
||||||
" extending HTML matchit groups
|
|
||||||
if exists("loaded_matchit") && exists("b:match_words")
|
|
||||||
let b:match_words = b:match_words
|
|
||||||
\ . ',{:},[:],(:),'
|
|
||||||
\ . '\%({{\)\@<=#\s*\%(if\|unless\)\s*.\{-}}}'
|
|
||||||
\ . ':'
|
|
||||||
\ . '\%({{\)\@<=\s*else\s*}}'
|
|
||||||
\ . ':'
|
|
||||||
\ . '\%({{\)\@<=/\s*\%(if\|unless\)\s*}},'
|
|
||||||
\ . '\%({{\)\@<=[#^]\s*\([-0-9a-zA-Z_?!/.]\+\).\{-}}}'
|
|
||||||
\ . ':'
|
|
||||||
\ . '\%({{\)\@<=/\s*\1\s*}}'
|
|
||||||
endif
|
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
|
||||||
unlet s:cpo_save
|
|
||||||
@@ -102,17 +102,24 @@ function! LatexBox_GetMainTexFile()
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
" 3. scan current file for "\begin{document}"
|
" 3. scan current file for "\begin{document}"
|
||||||
if &filetype == 'tex' && search('\C\\begin\_\s*{document}', 'nw') != 0
|
if &filetype == 'tex' && search('\m\C\\begin\_\s*{document}', 'nw') != 0
|
||||||
return expand('%:p')
|
return expand('%:p')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" 4 borrow the Vim-Latex-Suite method of finding it
|
" 4. use 'main.tex' if it exists in the same directory (and is readable)
|
||||||
|
let s:main_dot_tex_file=expand('%:p:h') . '/main.tex'
|
||||||
|
if filereadable(s:main_dot_tex_file)
|
||||||
|
let b:main_tex_file=s:main_dot_tex_file
|
||||||
|
return b:main_tex_file
|
||||||
|
endif
|
||||||
|
|
||||||
|
" 5. borrow the Vim-Latex-Suite method of finding it
|
||||||
if Tex_GetMainFileName() != expand('%:p')
|
if Tex_GetMainFileName() != expand('%:p')
|
||||||
let b:main_tex_file = Tex_GetMainFileName()
|
let b:main_tex_file = Tex_GetMainFileName()
|
||||||
return b:main_tex_file
|
return b:main_tex_file
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" 5. prompt for file with completion
|
" 6. prompt for file with completion
|
||||||
let b:main_tex_file = s:PromptForMainFile()
|
let b:main_tex_file = s:PromptForMainFile()
|
||||||
return b:main_tex_file
|
return b:main_tex_file
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -106,13 +106,13 @@ function! LatexBox_Complete(findstart, base)
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
let line_start = line[:pos-1]
|
let line_start = line[:pos-1]
|
||||||
if line_start =~ '\C\\begin\_\s*{$'
|
if line_start =~ '\m\C\\begin\_\s*{$'
|
||||||
let s:completion_type = 'begin'
|
let s:completion_type = 'begin'
|
||||||
elseif line_start =~ '\C\\end\_\s*{$'
|
elseif line_start =~ '\m\C\\end\_\s*{$'
|
||||||
let s:completion_type = 'end'
|
let s:completion_type = 'end'
|
||||||
elseif line_start =~ g:LatexBox_ref_pattern . '$'
|
elseif line_start =~ '\m' . g:LatexBox_ref_pattern . '$'
|
||||||
let s:completion_type = 'ref'
|
let s:completion_type = 'ref'
|
||||||
elseif line_start =~ g:LatexBox_cite_pattern . '$'
|
elseif line_start =~ '\m' . g:LatexBox_cite_pattern . '$'
|
||||||
let s:completion_type = 'bib'
|
let s:completion_type = 'bib'
|
||||||
" check for multiple citations
|
" check for multiple citations
|
||||||
let pos = col('.') - 1
|
let pos = col('.') - 1
|
||||||
@@ -365,11 +365,11 @@ function! s:ExtractLabels()
|
|||||||
let curname = strpart( getline( lblline ), lblbegin, nameend - lblbegin - 1 )
|
let curname = strpart( getline( lblline ), lblbegin, nameend - lblbegin - 1 )
|
||||||
|
|
||||||
" Ignore cref entries (because they are duplicates)
|
" Ignore cref entries (because they are duplicates)
|
||||||
if curname =~ "\@cref"
|
if curname =~ "\@cref\|cref\@"
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if 0 == search( '{\w*{', 'ce', lblline )
|
if 0 == search( '\m{\w*{', 'ce', lblline )
|
||||||
let [lblline, lblbegin] = searchpos( '\\newlabel{', 'ecW' )
|
let [lblline, lblbegin] = searchpos( '\\newlabel{', 'ecW' )
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
@@ -382,7 +382,7 @@ function! s:ExtractLabels()
|
|||||||
endif
|
endif
|
||||||
let curnumber = strpart( getline( lblline ), numberbegin, numberend - numberbegin - 1 )
|
let curnumber = strpart( getline( lblline ), numberbegin, numberend - numberbegin - 1 )
|
||||||
|
|
||||||
if 0 == search( '\w*{', 'ce', lblline )
|
if 0 == search( '\m\w*{', 'ce', lblline )
|
||||||
let [lblline, lblbegin] = searchpos( '\\newlabel{', 'ecW' )
|
let [lblline, lblbegin] = searchpos( '\\newlabel{', 'ecW' )
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
@@ -755,6 +755,70 @@ function! s:PromptEnvWrapSelection(...)
|
|||||||
endfunction
|
endfunction
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
|
" List Labels with Prompt {{{
|
||||||
|
function! s:PromptLabelList(...)
|
||||||
|
" Check if window already exists
|
||||||
|
let winnr = bufwinnr(bufnr('LaTeX Labels'))
|
||||||
|
if winnr >= 0
|
||||||
|
if a:0 == 0
|
||||||
|
silent execute winnr . 'wincmd w'
|
||||||
|
else
|
||||||
|
" Supplying an argument to this function causes toggling instead
|
||||||
|
" of jumping to the labels window
|
||||||
|
if g:LatexBox_split_resize
|
||||||
|
silent exe "set columns-=" . g:LatexBox_split_width
|
||||||
|
endif
|
||||||
|
silent execute 'bwipeout' . bufnr('LaTeX Labels')
|
||||||
|
endif
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Get label suggestions
|
||||||
|
let regexp = input('filter labels with regexp: ', '')
|
||||||
|
let labels = s:CompleteLabels(regexp)
|
||||||
|
|
||||||
|
let calling_buf = bufnr('%')
|
||||||
|
|
||||||
|
" Create labels window and set local settings
|
||||||
|
if g:LatexBox_split_resize
|
||||||
|
silent exe "set columns+=" . g:LatexBox_split_width
|
||||||
|
endif
|
||||||
|
silent exe g:LatexBox_split_side g:LatexBox_split_width . 'vnew LaTeX\ Labels'
|
||||||
|
let b:toc = []
|
||||||
|
let b:toc_numbers = 1
|
||||||
|
let b:calling_win = bufwinnr(calling_buf)
|
||||||
|
setlocal filetype=latextoc
|
||||||
|
|
||||||
|
" Add label entries and jump to the closest section
|
||||||
|
for entry in labels
|
||||||
|
let number = matchstr(entry['menu'], '^\s*(\zs[^)]\+\ze)')
|
||||||
|
let page = matchstr(entry['menu'], '^[^)]*)\s*\[\zs[^]]\+\ze\]')
|
||||||
|
let e = {'file': bufname(calling_buf),
|
||||||
|
\ 'level': 'label',
|
||||||
|
\ 'number': number,
|
||||||
|
\ 'text': entry['abbr'],
|
||||||
|
\ 'page': page}
|
||||||
|
call add(b:toc, e)
|
||||||
|
if b:toc_numbers
|
||||||
|
call append('$', e['number'] . "\t" . e['text'])
|
||||||
|
else
|
||||||
|
call append('$', e['text'])
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
if !g:LatexBox_toc_hidehelp
|
||||||
|
call append('$', "")
|
||||||
|
call append('$', "<Esc>/q: close")
|
||||||
|
call append('$', "<Space>: jump")
|
||||||
|
call append('$', "<Enter>: jump and close")
|
||||||
|
call append('$', "s: hide numbering")
|
||||||
|
endif
|
||||||
|
0delete _
|
||||||
|
|
||||||
|
" Lock buffer
|
||||||
|
setlocal nomodifiable
|
||||||
|
endfunction
|
||||||
|
" }}}
|
||||||
|
|
||||||
" Change Environment {{{
|
" Change Environment {{{
|
||||||
function! s:ChangeEnvPrompt()
|
function! s:ChangeEnvPrompt()
|
||||||
|
|
||||||
@@ -858,4 +922,8 @@ nnoremap <silent> <Plug>LatexChangeEnv :call <SID>ChangeEnvPrompt()<CR>
|
|||||||
nnoremap <silent> <Plug>LatexToggleStarEnv :call <SID>LatexToggleStarEnv()<CR>
|
nnoremap <silent> <Plug>LatexToggleStarEnv :call <SID>LatexToggleStarEnv()<CR>
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
|
" Commands {{{
|
||||||
|
command! LatexLabels call <SID>PromptLabelList()
|
||||||
|
" }}}
|
||||||
|
|
||||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ endif
|
|||||||
if !exists('g:LatexBox_fold_envs')
|
if !exists('g:LatexBox_fold_envs')
|
||||||
let g:LatexBox_fold_envs=1
|
let g:LatexBox_fold_envs=1
|
||||||
endif
|
endif
|
||||||
|
if !exists('g:LatexBox_fold_envs_force')
|
||||||
|
let g:LatexBox_fold_envs_force = []
|
||||||
|
endif
|
||||||
if !exists('g:LatexBox_fold_parts')
|
if !exists('g:LatexBox_fold_parts')
|
||||||
let g:LatexBox_fold_parts=[
|
let g:LatexBox_fold_parts=[
|
||||||
\ "appendix",
|
\ "appendix",
|
||||||
@@ -159,11 +162,27 @@ function! LatexBox_FoldLevel(lnum)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" Fold environments
|
" Fold environments
|
||||||
if g:LatexBox_fold_envs == 1
|
if line =~# s:envbeginpattern
|
||||||
if line =~# s:envbeginpattern
|
if g:LatexBox_fold_envs == 1
|
||||||
return "a1"
|
return "a1"
|
||||||
elseif line =~# s:envendpattern
|
else
|
||||||
|
let env = matchstr(line,'\\begin\*\?{\zs\w*\*\?\ze}')
|
||||||
|
if index(g:LatexBox_fold_envs_force, env) >= 0
|
||||||
|
return "a1"
|
||||||
|
else
|
||||||
|
return "="
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
elseif line =~# s:envendpattern
|
||||||
|
if g:LatexBox_fold_envs == 1
|
||||||
return "s1"
|
return "s1"
|
||||||
|
else
|
||||||
|
let env = matchstr(line,'\\end\*\?{\zs\w*\*\?\ze}')
|
||||||
|
if index(g:LatexBox_fold_envs_force, env) >= 0
|
||||||
|
return "s1"
|
||||||
|
else
|
||||||
|
return "="
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ function! LatexBox_Latexmk(force)
|
|||||||
let g:latexmk_running_pids[basepath] = pid
|
let g:latexmk_running_pids[basepath] = pid
|
||||||
else
|
else
|
||||||
let pid = substitute(system('pgrep -f "perl.*'
|
let pid = substitute(system('pgrep -f "perl.*'
|
||||||
\ . mainfile . '"'),'\D','','')
|
\ . mainfile . '" | head -n 1'),'\D','','')
|
||||||
let g:latexmk_running_pids[basepath] = pid
|
let g:latexmk_running_pids[basepath] = pid
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ map <buffer> <LocalLeader>lv :LatexView<CR>
|
|||||||
map <silent> <buffer> <LocalLeader>lt :LatexTOC<CR>
|
map <silent> <buffer> <LocalLeader>lt :LatexTOC<CR>
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
|
" List of labels {{{
|
||||||
|
map <silent> <buffer> <LocalLeader>lj :LatexLabels<CR>
|
||||||
|
" }}}
|
||||||
|
|
||||||
" Jump to match {{{
|
" Jump to match {{{
|
||||||
if !exists('g:LatexBox_loaded_matchparen')
|
if !exists('g:LatexBox_loaded_matchparen')
|
||||||
nmap <buffer> % <Plug>LatexBox_JumpToMatch
|
nmap <buffer> % <Plug>LatexBox_JumpToMatch
|
||||||
|
|||||||
107
ftplugin/mustache.vim
Normal file
107
ftplugin/mustache.vim
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Matchit support for Mustache & Handlebars
|
||||||
|
" extending HTML matchit groups
|
||||||
|
if exists("loaded_matchit") && exists("b:match_words")
|
||||||
|
let b:match_words = b:match_words
|
||||||
|
\ . ',{:},[:],(:),'
|
||||||
|
\ . '\%({{\)\@<=#\s*\%(if\|unless\)\s*.\{-}}}'
|
||||||
|
\ . ':'
|
||||||
|
\ . '\%({{\)\@<=\s*else\s*}}'
|
||||||
|
\ . ':'
|
||||||
|
\ . '\%({{\)\@<=/\s*\%(if\|unless\)\s*}},'
|
||||||
|
\ . '\%({{\)\@<=[#^]\s*\([-0-9a-zA-Z_?!/.]\+\).\{-}}}'
|
||||||
|
\ . ':'
|
||||||
|
\ . '\%({{\)\@<=/\s*\1\s*}}'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("g:mustache_abbreviations")
|
||||||
|
inoremap <buffer> {{{ {{{}}}<left><left><left>
|
||||||
|
inoremap <buffer> {{ {{}}<left><left>
|
||||||
|
inoremap <buffer> {{! {{!}}<left><left>
|
||||||
|
inoremap <buffer> {{< {{<}}<left><left>
|
||||||
|
inoremap <buffer> {{> {{>}}<left><left>
|
||||||
|
inoremap <buffer> {{# {{#}}<cr>{{/}}<up><left><left>
|
||||||
|
inoremap <buffer> {{if {{#if }}<cr>{{/if}}<up><left>
|
||||||
|
inoremap <buffer> {{ife {{#if }}<cr>{{else}}<cr>{{/if}}<up><up><left>
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" Section movement
|
||||||
|
" Adapted from vim-ruby - many thanks to the maintainers of that plugin
|
||||||
|
|
||||||
|
function! s:sectionmovement(pattern,flags,mode,count)
|
||||||
|
norm! m'
|
||||||
|
if a:mode ==# 'v'
|
||||||
|
norm! gv
|
||||||
|
endif
|
||||||
|
let i = 0
|
||||||
|
while i < a:count
|
||||||
|
let i = i + 1
|
||||||
|
" saving current position
|
||||||
|
let line = line('.')
|
||||||
|
let col = col('.')
|
||||||
|
let pos = search(a:pattern,'W'.a:flags)
|
||||||
|
" if there's no more matches, return to last position
|
||||||
|
if pos == 0
|
||||||
|
call cursor(line,col)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
nnoremap <silent> <buffer> [[ :<C-U>call <SID>sectionmovement('{{','b','n',v:count1)<CR>
|
||||||
|
nnoremap <silent> <buffer> ]] :<C-U>call <SID>sectionmovement('{{','' ,'n',v:count1)<CR>
|
||||||
|
xnoremap <silent> <buffer> [[ :<C-U>call <SID>sectionmovement('{{','b','v',v:count1)<CR>
|
||||||
|
xnoremap <silent> <buffer> ]] :<C-U>call <SID>sectionmovement('{{','' ,'v',v:count1)<CR>
|
||||||
|
|
||||||
|
|
||||||
|
" Operator pending mappings
|
||||||
|
|
||||||
|
onoremap <silent> <buffer> ie :<C-U>call <SID>wrap_inside()<CR>
|
||||||
|
onoremap <silent> <buffer> ae :<C-U>call <SID>wrap_around()<CR>
|
||||||
|
xnoremap <silent> <buffer> ie :<C-U>call <SID>wrap_inside()<CR>
|
||||||
|
xnoremap <silent> <buffer> ae :<C-U>call <SID>wrap_around()<CR>
|
||||||
|
|
||||||
|
function! s:wrap_around()
|
||||||
|
" If the cursor is at the end of the tag element, move back
|
||||||
|
" so that the end tag can be detected.
|
||||||
|
while getline('.')[col('.')-1] ==# '}'
|
||||||
|
execute 'norm h'
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
" Moves to the end of the closing tag
|
||||||
|
let pos = search('}}','We')
|
||||||
|
if pos != 0
|
||||||
|
if getline('.')[col('.')] ==# '}'
|
||||||
|
" Ending tag contains 3 closing brackets '}}}',
|
||||||
|
" move to the last bracket.
|
||||||
|
execute 'norm l'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" select the whole tag
|
||||||
|
execute 'norm v%'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:wrap_inside()
|
||||||
|
" If the cursor is at the end of the tag element, move back
|
||||||
|
" so that the end tag can be detected.
|
||||||
|
while getline('.')[col('.')-1] ==# '}'
|
||||||
|
execute 'norm h'
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
" Moves to the end of the closing tag
|
||||||
|
let pos = search('}}','W')
|
||||||
|
if pos != 0
|
||||||
|
" select only inside the tag
|
||||||
|
execute 'norm v%loho'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim: nofoldenable
|
||||||
@@ -34,6 +34,7 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
|||||||
let b:match_skip =
|
let b:match_skip =
|
||||||
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
|
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
|
||||||
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
|
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
|
||||||
|
\ "Regexp\\|RegexpDelimiter\\|" .
|
||||||
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
|
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
|
||||||
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
|
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
|
||||||
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
|
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Rust
|
" Language: Rust
|
||||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||||
" Last Change: 2013 Jul 10
|
" Last Change: 2014 Feb 27
|
||||||
|
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
finish
|
finish
|
||||||
@@ -42,4 +42,55 @@ if exists("g:loaded_delimitMate")
|
|||||||
let b:delimitMate_excluded_regions = delimitMate#Get("excluded_regions") . ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
|
let b:delimitMate_excluded_regions = delimitMate#Get("excluded_regions") . ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:undo_ftplugin = "setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< | if exists('b:rust_original_delimitMate_excluded_regions') | let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions | unlet b:rust_original_delimitMate_excluded_regions | elseif exists('b:delimitMate_excluded_regions') | unlet b:delimitMate_excluded_regions | endif"
|
" Bind motion commands to support hanging indents
|
||||||
|
nnoremap <silent> <buffer> [[ :call <SID>Rust_Jump('n', 'Back')<CR>
|
||||||
|
nnoremap <silent> <buffer> ]] :call <SID>Rust_Jump('n', 'Forward')<CR>
|
||||||
|
xnoremap <silent> <buffer> [[ :call <SID>Rust_Jump('v', 'Back')<CR>
|
||||||
|
xnoremap <silent> <buffer> ]] :call <SID>Rust_Jump('v', 'Forward')<CR>
|
||||||
|
onoremap <silent> <buffer> [[ :call <SID>Rust_Jump('o', 'Back')<CR>
|
||||||
|
onoremap <silent> <buffer> ]] :call <SID>Rust_Jump('o', 'Forward')<CR>
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "
|
||||||
|
\setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd<
|
||||||
|
\|if exists('b:rust_original_delimitMate_excluded_regions')
|
||||||
|
\|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions
|
||||||
|
\|unlet b:rust_original_delimitMate_excluded_regions
|
||||||
|
\|elseif exists('b:delimitMate_excluded_regions')
|
||||||
|
\|unlet b:delimitMate_excluded_regions
|
||||||
|
\|endif
|
||||||
|
\|nunmap <buffer> [[
|
||||||
|
\|nunmap <buffer> ]]
|
||||||
|
\|xunmap <buffer> [[
|
||||||
|
\|xunmap <buffer> ]]
|
||||||
|
\|ounmap <buffer> [[
|
||||||
|
\|ounmap <buffer> ]]
|
||||||
|
\"
|
||||||
|
|
||||||
|
if exists('*<SID>Rust_Jump') | finish | endif
|
||||||
|
|
||||||
|
function! <SID>Rust_Jump(mode, function) range
|
||||||
|
let cnt = v:count1
|
||||||
|
normal! m'
|
||||||
|
if a:mode ==# 'v'
|
||||||
|
norm! gv
|
||||||
|
endif
|
||||||
|
let foldenable = &foldenable
|
||||||
|
set nofoldenable
|
||||||
|
while cnt > 0
|
||||||
|
execute "call <SID>Rust_Jump_" . a:function . "()"
|
||||||
|
let cnt = cnt - 1
|
||||||
|
endwhile
|
||||||
|
let &foldenable = foldenable
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! <SID>Rust_Jump_Back()
|
||||||
|
call search('{', 'b')
|
||||||
|
keepjumps normal! w99[{
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! <SID>Rust_Jump_Forward()
|
||||||
|
normal! j0
|
||||||
|
call search('{', 'b')
|
||||||
|
keepjumps normal! w99[{%
|
||||||
|
call search('{')
|
||||||
|
endfunction
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
setlocal textwidth=140
|
|
||||||
setlocal shiftwidth=2
|
|
||||||
setlocal softtabstop=2
|
|
||||||
setlocal expandtab
|
|
||||||
setlocal formatoptions=tcqr
|
|
||||||
setlocal commentstring=//%s
|
setlocal commentstring=//%s
|
||||||
let &l:include = '^\s*import'
|
let &l:include = '^\s*import'
|
||||||
let &l:includeexpr = 'substitute(v:fname,"\\.","/","g")'
|
let &l:includeexpr = 'substitute(v:fname,"\\.","/","g")'
|
||||||
@@ -173,3 +168,27 @@ let g:tagbar_type_scala = {
|
|||||||
\ 'case class' : 'r'
|
\ 'case class' : 'r'
|
||||||
\ }
|
\ }
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
function! s:CreateOrExpression(keywords)
|
||||||
|
return '('.join(a:keywords, '|').')'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:NextSection(backwards)
|
||||||
|
if a:backwards
|
||||||
|
let dir = '?'
|
||||||
|
else
|
||||||
|
let dir = '/'
|
||||||
|
endif
|
||||||
|
let keywords = [ 'def', 'class', 'trait', 'object' ]
|
||||||
|
let keywordsOrExpression = s:CreateOrExpression(keywords)
|
||||||
|
|
||||||
|
let modifiers = [ 'public', 'private', 'private\[\w*\]', 'protected', 'abstract', 'case', 'override', 'implicit', 'final', 'sealed']
|
||||||
|
let modifierOrExpression = s:CreateOrExpression(modifiers)
|
||||||
|
|
||||||
|
let regex = '^ *('.modifierOrExpression.' )* *'.keywordsOrExpression."\r"
|
||||||
|
execute 'silent normal! ' . dir . '\v'.regex
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
noremap <script> <buffer> <silent> ]] :call <SID>NextSection(0)<cr>
|
||||||
|
|
||||||
|
noremap <script> <buffer> <silent> [[ :call <SID>NextSection(1)<cr>
|
||||||
|
|||||||
15
indent/arduino.vim
Normal file
15
indent/arduino.vim
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
" Vim indent file
|
||||||
|
" Language: Arduino
|
||||||
|
" Maintainer: Kevin Sjöberg <kev.sjoberg@gmail.com>
|
||||||
|
" Last Change: 2014 Feb 28
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
" C++ indenting is built-in, thus this is very simple
|
||||||
|
setlocal cindent
|
||||||
|
|
||||||
|
let b:undo_indent = "setl cin<"
|
||||||
@@ -21,7 +21,7 @@ let b:did_indent = 1
|
|||||||
let s:save_cpo = &cpo
|
let s:save_cpo = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
let b:undo_indent = 'setlocal autoindent< smartindent< lispwords< expandtab< softtabstop< shiftwidth< indentexpr< indentkeys<'
|
let b:undo_indent = 'setlocal autoindent< smartindent< expandtab< softtabstop< shiftwidth< indentexpr< indentkeys<'
|
||||||
|
|
||||||
setlocal noautoindent nosmartindent
|
setlocal noautoindent nosmartindent
|
||||||
setlocal softtabstop=2 shiftwidth=2 expandtab
|
setlocal softtabstop=2 shiftwidth=2 expandtab
|
||||||
@@ -70,7 +70,7 @@ if exists("*searchpairpos")
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:IsParen()
|
function! s:IsParen()
|
||||||
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
|
return s:CurrentChar() =~# '\v[\(\)\[\]\{\}]' &&
|
||||||
\ s:SynIdName() !~? '\vstring|regex|comment|character'
|
\ s:SynIdName() !~? '\vstring|regex|comment|character'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ if exists("*searchpairpos")
|
|||||||
\ ? a:patterns
|
\ ? a:patterns
|
||||||
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||||
for pat in list
|
for pat in list
|
||||||
if a:string =~ pat | return 1 | endif
|
if a:string =~# pat | return 1 | endif
|
||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -148,6 +148,10 @@ if exists("*searchpairpos")
|
|||||||
return val
|
return val
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:StripNamespaceAndMacroChars(word)
|
||||||
|
return substitute(a:word, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
||||||
" Find the next enclosing form.
|
" Find the next enclosing form.
|
||||||
call search('\S', 'Wb')
|
call search('\S', 'Wb')
|
||||||
@@ -167,7 +171,8 @@ if exists("*searchpairpos")
|
|||||||
call cursor(nextParen)
|
call cursor(nextParen)
|
||||||
|
|
||||||
call search('\S', 'W')
|
call search('\S', 'W')
|
||||||
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
|
let w = s:StripNamespaceAndMacroChars(s:CurrentWord())
|
||||||
|
if g:clojure_special_indent_words =~# '\V\<' . w . '\>'
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -273,9 +278,9 @@ if exists("*searchpairpos")
|
|||||||
" metacharacters.
|
" metacharacters.
|
||||||
"
|
"
|
||||||
" e.g. clojure.core/defn and #'defn should both indent like defn.
|
" e.g. clojure.core/defn and #'defn should both indent like defn.
|
||||||
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
let ww = s:StripNamespaceAndMacroChars(w)
|
||||||
|
|
||||||
if &lispwords =~ '\V\<' . ww . '\>'
|
if &lispwords =~# '\V\<' . ww . '\>'
|
||||||
return paren[1] + &shiftwidth - 1
|
return paren[1] + &shiftwidth - 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -307,85 +312,6 @@ else
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Specially indented symbols from clojure.core and clojure.test.
|
|
||||||
"
|
|
||||||
" Clojure symbols are indented in the defn style when they:
|
|
||||||
"
|
|
||||||
" * Define vars and anonymous functions
|
|
||||||
" * Create new lexical scopes or scopes with altered environments
|
|
||||||
" * Create conditional branches from a predicate function or value
|
|
||||||
"
|
|
||||||
" The arglists for these functions are generally in the form of [x & body];
|
|
||||||
" Functions that accept a flat list of forms do not treat the first argument
|
|
||||||
" specially and hence are not indented specially.
|
|
||||||
|
|
||||||
" Definitions
|
|
||||||
setlocal lispwords=
|
|
||||||
setlocal lispwords+=bound-fn
|
|
||||||
setlocal lispwords+=def
|
|
||||||
setlocal lispwords+=definline
|
|
||||||
setlocal lispwords+=definterface
|
|
||||||
setlocal lispwords+=defmacro
|
|
||||||
setlocal lispwords+=defmethod
|
|
||||||
setlocal lispwords+=defmulti
|
|
||||||
setlocal lispwords+=defn
|
|
||||||
setlocal lispwords+=defn-
|
|
||||||
setlocal lispwords+=defonce
|
|
||||||
setlocal lispwords+=defprotocol
|
|
||||||
setlocal lispwords+=defrecord
|
|
||||||
setlocal lispwords+=defstruct
|
|
||||||
setlocal lispwords+=deftest " clojure.test
|
|
||||||
setlocal lispwords+=deftest- " clojure.test
|
|
||||||
setlocal lispwords+=deftype
|
|
||||||
setlocal lispwords+=extend
|
|
||||||
setlocal lispwords+=extend-protocol
|
|
||||||
setlocal lispwords+=extend-type
|
|
||||||
setlocal lispwords+=fn
|
|
||||||
setlocal lispwords+=ns
|
|
||||||
setlocal lispwords+=proxy
|
|
||||||
setlocal lispwords+=reify
|
|
||||||
setlocal lispwords+=set-test " clojure.test
|
|
||||||
|
|
||||||
" Binding forms
|
|
||||||
setlocal lispwords+=as->
|
|
||||||
setlocal lispwords+=binding
|
|
||||||
setlocal lispwords+=doall
|
|
||||||
setlocal lispwords+=dorun
|
|
||||||
setlocal lispwords+=doseq
|
|
||||||
setlocal lispwords+=dotimes
|
|
||||||
setlocal lispwords+=doto
|
|
||||||
setlocal lispwords+=for
|
|
||||||
setlocal lispwords+=if-let
|
|
||||||
setlocal lispwords+=let
|
|
||||||
setlocal lispwords+=letfn
|
|
||||||
setlocal lispwords+=locking
|
|
||||||
setlocal lispwords+=loop
|
|
||||||
setlocal lispwords+=testing " clojure.test
|
|
||||||
setlocal lispwords+=when-first
|
|
||||||
setlocal lispwords+=when-let
|
|
||||||
setlocal lispwords+=with-bindings
|
|
||||||
setlocal lispwords+=with-in-str
|
|
||||||
setlocal lispwords+=with-local-vars
|
|
||||||
setlocal lispwords+=with-open
|
|
||||||
setlocal lispwords+=with-precision
|
|
||||||
setlocal lispwords+=with-redefs
|
|
||||||
setlocal lispwords+=with-redefs-fn
|
|
||||||
setlocal lispwords+=with-test " clojure.test
|
|
||||||
|
|
||||||
" Conditional branching
|
|
||||||
setlocal lispwords+=case
|
|
||||||
setlocal lispwords+=cond->
|
|
||||||
setlocal lispwords+=cond->>
|
|
||||||
setlocal lispwords+=condp
|
|
||||||
setlocal lispwords+=if
|
|
||||||
setlocal lispwords+=if-not
|
|
||||||
setlocal lispwords+=when
|
|
||||||
setlocal lispwords+=when-not
|
|
||||||
setlocal lispwords+=while
|
|
||||||
|
|
||||||
" Exception handling
|
|
||||||
setlocal lispwords+=catch
|
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
unlet! s:save_cpo
|
unlet! s:save_cpo
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ let b:did_indent = 1
|
|||||||
|
|
||||||
setlocal nosmartindent
|
setlocal nosmartindent
|
||||||
|
|
||||||
setlocal indentexpr=GetElixirIndent(v:lnum)
|
setlocal indentexpr=GetElixirIndent()
|
||||||
setlocal indentkeys+==end,=else:,=match:,=elsif:,=catch:,=after:,=rescue:
|
setlocal indentkeys+==end,=else:,=match:,=elsif:,=catch:,=after:,=rescue:
|
||||||
|
|
||||||
if exists("*GetElixirIndent")
|
if exists("*GetElixirIndent")
|
||||||
@@ -25,12 +25,13 @@ let s:block_skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" . s:s
|
|||||||
let s:block_start = 'do\|fn'
|
let s:block_start = 'do\|fn'
|
||||||
let s:block_middle = 'else\|match\|elsif\|catch\|after\|rescue'
|
let s:block_middle = 'else\|match\|elsif\|catch\|after\|rescue'
|
||||||
let s:block_end = 'end'
|
let s:block_end = 'end'
|
||||||
|
let s:arrow = '^.*->$'
|
||||||
let s:pipeline = '^\s*|>.*$'
|
let s:pipeline = '^\s*|>.*$'
|
||||||
|
|
||||||
let s:indent_keywords = '\<\%(' . s:block_start . '\|' . s:block_middle . '\)$'
|
let s:indent_keywords = '\<\%(' . s:block_start . '\|' . s:block_middle . '\)$' . '\|' . s:arrow
|
||||||
let s:deindent_keywords = '^\s*\<\%(' . s:block_end . '\|' . s:block_middle . '\)\>'
|
let s:deindent_keywords = '^\s*\<\%(' . s:block_end . '\|' . s:block_middle . '\)\>' . '\|' . s:arrow
|
||||||
|
|
||||||
function! GetElixirIndent(...)
|
function! GetElixirIndent()
|
||||||
let lnum = prevnonblank(v:lnum - 1)
|
let lnum = prevnonblank(v:lnum - 1)
|
||||||
let ind = indent(lnum)
|
let ind = indent(lnum)
|
||||||
|
|
||||||
@@ -39,50 +40,60 @@ function! GetElixirIndent(...)
|
|||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" TODO: Remove these 2 lines
|
||||||
|
" I don't know why, but for the test on spec/indent/lists_spec.rb:24.
|
||||||
|
" Vim is making some mess on parsing the syntax of 'end', it is being
|
||||||
|
" recognized as 'elixirString' when should be recognized as 'elixirBlock'.
|
||||||
|
" This forces vim to sync the syntax.
|
||||||
|
call synID(v:lnum, 1, 1)
|
||||||
|
syntax sync fromstart
|
||||||
|
|
||||||
if synIDattr(synID(v:lnum, 1, 1), "name") !~ s:skip_syntax
|
if synIDattr(synID(v:lnum, 1, 1), "name") !~ s:skip_syntax
|
||||||
let splited_line = split(getline(lnum), '\zs')
|
let current_line = getline(v:lnum)
|
||||||
let opened_symbol = 0
|
let last_line = getline(lnum)
|
||||||
|
|
||||||
|
let splited_line = split(last_line, '\zs')
|
||||||
|
let opened_symbol = 0
|
||||||
let opened_symbol += count(splited_line, '[') - count(splited_line, ']')
|
let opened_symbol += count(splited_line, '[') - count(splited_line, ']')
|
||||||
let opened_symbol += count(splited_line, '{') - count(splited_line, '}')
|
let opened_symbol += count(splited_line, '{') - count(splited_line, '}')
|
||||||
|
|
||||||
let ind += opened_symbol * &sw
|
let ind += opened_symbol * &sw
|
||||||
|
|
||||||
if getline(lnum) =~ s:indent_keywords .
|
if last_line =~ s:indent_keywords
|
||||||
\ '\|^\s*\%(.*->\)$'
|
|
||||||
let ind += &sw
|
let ind += &sw
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" if line starts with pipeline
|
" if line starts with pipeline
|
||||||
" and last line doesn't start with pipeline
|
" and last line is an attribution
|
||||||
if getline(v:lnum) =~ s:pipeline &&
|
" indents pipeline in same level as attribution
|
||||||
\ getline(lnum) !~ s:pipeline
|
if current_line =~ s:pipeline &&
|
||||||
let ind += &sw
|
\ last_line =~ '^[^=]\+=.\+$'
|
||||||
endif
|
let b:old_ind = ind
|
||||||
|
let ind = float2nr(matchend(last_line, '=\s*[^ ]') / &sw) * &sw
|
||||||
" if last line starts with pipeline
|
|
||||||
" and currentline doesn't start with pipeline
|
|
||||||
if getline(lnum) =~ s:pipeline &&
|
|
||||||
\ getline(v:lnum) !~ s:pipeline
|
|
||||||
let ind -= &sw
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" if last line starts with pipeline
|
" if last line starts with pipeline
|
||||||
" and current line doesn't start with pipeline
|
" and current line doesn't start with pipeline
|
||||||
" but last line started a block
|
" returns the indentation before the pipeline
|
||||||
if getline(lnum) =~ s:pipeline &&
|
if last_line =~ s:pipeline &&
|
||||||
\ getline(v:lnum) !~ s:pipeline &&
|
\ current_line !~ s:pipeline
|
||||||
\ getline(lnum) =~ s:block_start
|
let ind = b:old_ind
|
||||||
let ind += &sw
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if getline(v:lnum) =~ s:deindent_keywords
|
if current_line =~ s:deindent_keywords
|
||||||
let bslnum = searchpair( '\<\%(' . s:block_start . '\):\@!\>',
|
let bslnum = searchpair( '\<\%(' . s:block_start . '\):\@!\>',
|
||||||
\ '\<\%(' . s:block_middle . '\):\@!\>\zs',
|
\ '\<\%(' . s:block_middle . '\):\@!\>\zs',
|
||||||
\ '\<:\@<!' . s:block_end . '\>\zs',
|
\ '\<:\@<!' . s:block_end . '\>\zs',
|
||||||
\ 'nbW',
|
\ 'nbW',
|
||||||
\ s:block_skip )
|
\ s:block_skip )
|
||||||
|
|
||||||
let ind = indent(bslnum)
|
let ind = indent(bslnum)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" indent case statements '->'
|
||||||
|
if current_line =~ s:arrow
|
||||||
|
let ind += &sw
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ else
|
|||||||
endif
|
endif
|
||||||
unlet! b:did_indent
|
unlet! b:did_indent
|
||||||
|
|
||||||
|
" Force HTML indent to not keep state.
|
||||||
|
let b:html_indent_usestate = 0
|
||||||
|
|
||||||
if &l:indentexpr == ''
|
if &l:indentexpr == ''
|
||||||
if &l:cindent
|
if &l:cindent
|
||||||
let &l:indentexpr = 'cindent(v:lnum)'
|
let &l:indentexpr = 'cindent(v:lnum)'
|
||||||
@@ -53,7 +56,8 @@ function! GetErubyIndent(...)
|
|||||||
else
|
else
|
||||||
exe "let ind = ".b:eruby_subtype_indentexpr
|
exe "let ind = ".b:eruby_subtype_indentexpr
|
||||||
|
|
||||||
" Workaround for Andy Wokula's HTML indent
|
" Workaround for Andy Wokula's HTML indent. This should be removed after
|
||||||
|
" some time, since the newest version is fixed in a different way.
|
||||||
if b:eruby_subtype_indentexpr =~# '^HtmlIndent('
|
if b:eruby_subtype_indentexpr =~# '^HtmlIndent('
|
||||||
\ && exists('b:indent')
|
\ && exists('b:indent')
|
||||||
\ && type(b:indent) == type({})
|
\ && type(b:indent) == type({})
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ setlocal nosmartindent
|
|||||||
|
|
||||||
" Now, set up our indentation expression and keys that trigger it.
|
" Now, set up our indentation expression and keys that trigger it.
|
||||||
setlocal indentexpr=GetRubyIndent(v:lnum)
|
setlocal indentexpr=GetRubyIndent(v:lnum)
|
||||||
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:
|
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:,.
|
||||||
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
|
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
|
||||||
setlocal indentkeys+==private,=protected,=public
|
setlocal indentkeys+==private,=protected,=public
|
||||||
|
|
||||||
@@ -55,9 +55,10 @@ let s:skip_expr =
|
|||||||
\ "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
|
\ "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
|
||||||
|
|
||||||
" Regex used for words that, at the start of a line, add a level of indent.
|
" Regex used for words that, at the start of a line, add a level of indent.
|
||||||
let s:ruby_indent_keywords = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
|
let s:ruby_indent_keywords =
|
||||||
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure' .
|
\ '^\s*\zs\<\%(module\|class\|if\|for' .
|
||||||
\ '\|rescue\):\@!\>' .
|
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue' .
|
||||||
|
\ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
|
||||||
\ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
|
\ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
|
||||||
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'
|
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'
|
||||||
|
|
||||||
@@ -70,7 +71,8 @@ let s:ruby_deindent_keywords =
|
|||||||
" TODO: the do here should be restricted somewhat (only at end of line)?
|
" TODO: the do here should be restricted somewhat (only at end of line)?
|
||||||
let s:end_start_regex =
|
let s:end_start_regex =
|
||||||
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
|
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
|
||||||
\ '\<\%(module\|class\|def\|if\|for\|while\|until\|case\|unless\|begin\):\@!\>' .
|
\ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
|
||||||
|
\ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
|
||||||
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
|
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
|
||||||
|
|
||||||
" Regex that defines the middle-match for the 'end' keyword.
|
" Regex that defines the middle-match for the 'end' keyword.
|
||||||
@@ -99,10 +101,10 @@ let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'
|
|||||||
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
|
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
" Regex that describes all indent access modifiers
|
" Regex that describes all indent access modifiers
|
||||||
let s:access_modifier_regex = '\C^\s*\%(private\|public\|protected\)\s*\%(#.*\)\=$'
|
let s:access_modifier_regex = '\C^\s*\%(public\|protected\|private\)\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
" Regex that describes the indent access modifiers (excludes public)
|
" Regex that describes the indent access modifiers (excludes public)
|
||||||
let s:indent_access_modifier_regex = '\C^\s*\%(private\|protected\)\s*\%(#.*\)\=$'
|
let s:indent_access_modifier_regex = '\C^\s*\%(protected\|private\)\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
" Regex that defines blocks.
|
" Regex that defines blocks.
|
||||||
"
|
"
|
||||||
@@ -118,6 +120,9 @@ let s:block_regex =
|
|||||||
|
|
||||||
let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex
|
let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex
|
||||||
|
|
||||||
|
" Regex that describes a leading operator (only a method call's dot for now)
|
||||||
|
let s:leading_operator_regex = '^\s*[.]'
|
||||||
|
|
||||||
" 2. Auxiliary Functions {{{1
|
" 2. Auxiliary Functions {{{1
|
||||||
" ======================
|
" ======================
|
||||||
|
|
||||||
@@ -177,7 +182,11 @@ function s:GetMSL(lnum)
|
|||||||
" Otherwise, terminate search as we have found our MSL already.
|
" Otherwise, terminate search as we have found our MSL already.
|
||||||
let line = getline(lnum)
|
let line = getline(lnum)
|
||||||
|
|
||||||
if s:Match(lnum, s:splat_regex)
|
if s:Match(msl, s:leading_operator_regex)
|
||||||
|
" If the current line starts with a leading operator, keep its indent
|
||||||
|
" and keep looking for an MSL.
|
||||||
|
let msl = lnum
|
||||||
|
elseif s:Match(lnum, s:splat_regex)
|
||||||
" If the above line looks like the "*" of a splat, use the current one's
|
" If the above line looks like the "*" of a splat, use the current one's
|
||||||
" indentation.
|
" indentation.
|
||||||
"
|
"
|
||||||
@@ -440,6 +449,11 @@ function GetRubyIndent(...)
|
|||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" If the current line starts with a leading operator, add a level of indent.
|
||||||
|
if s:Match(clnum, s:leading_operator_regex)
|
||||||
|
return indent(s:GetMSL(clnum)) + &sw
|
||||||
|
endif
|
||||||
|
|
||||||
" 3.3. Work on the previous line. {{{2
|
" 3.3. Work on the previous line. {{{2
|
||||||
" -------------------------------
|
" -------------------------------
|
||||||
|
|
||||||
@@ -479,6 +493,12 @@ function GetRubyIndent(...)
|
|||||||
return indent(s:GetMSL(lnum)) + &sw
|
return indent(s:GetMSL(lnum)) + &sw
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" If the previous line started with a leading operator, use its MSL's level
|
||||||
|
" of indent
|
||||||
|
if s:Match(lnum, s:leading_operator_regex)
|
||||||
|
return indent(s:GetMSL(lnum))
|
||||||
|
endif
|
||||||
|
|
||||||
" If the previous line ended with the "*" of a splat, add a level of indent
|
" If the previous line ended with the "*" of a splat, add a level of indent
|
||||||
if line =~ s:splat_regex
|
if line =~ s:splat_regex
|
||||||
return indent(lnum) + &sw
|
return indent(lnum) + &sw
|
||||||
|
|||||||
@@ -515,7 +515,7 @@ function! GetScalaIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let prevCurlyCount = scala#CountCurlies(prevline)
|
let prevCurlyCount = scala#CountCurlies(prevline)
|
||||||
if prevCurlyCount == 0 && prevline =~ '^.*=>\s*$' && prevline !~ '^\s*this\s*:.*=>\s*$' && curline !~ '^\s*\<case\>'
|
if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>'
|
||||||
call scala#ConditionalConfirm("16")
|
call scala#ConditionalConfirm("16")
|
||||||
let ind = ind + &shiftwidth
|
let ind = ind + &shiftwidth
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,14 +1,22 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
require 'timeout'
|
||||||
|
|
||||||
describe "My Vim plugin" do
|
describe "My Vim plugin" do
|
||||||
languages = Dir["#{$plugin_path}/syntax/*.vim"].map { |f| f.split('/').last.gsub('.vim', '') }
|
|
||||||
|
|
||||||
languages.each do |lang|
|
extensions = `cat ftdetect/polyglot.vim | grep '^au' | tr "\t" ' ' | cut -d ' ' -f 3 | grep -v / | grep -v '^\*$' | grep -v '^$'`.strip
|
||||||
it "should parse .#{lang} file" do
|
|
||||||
write_file "test.#{lang}", ""
|
extensions.gsub!(/\[(.).+\]/) { $1 }.gsub!('*', 'test')
|
||||||
vim.edit "test.#{lang}"
|
|
||||||
vim.insert "sample"
|
extensions = extensions.split(/[\n,]/)
|
||||||
vim.write
|
|
||||||
|
extensions.each do |ext|
|
||||||
|
it "should parse #{ext} file" do
|
||||||
|
Timeout::timeout(5) do
|
||||||
|
write_file "#{ext}", ""
|
||||||
|
vim.edit "#{ext}"
|
||||||
|
vim.insert "sample"
|
||||||
|
vim.write
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ $plugin_path = File.expand_path('../..', __FILE__)
|
|||||||
Vimrunner::RSpec.configure do |config|
|
Vimrunner::RSpec.configure do |config|
|
||||||
# Use a single Vim instance for the test suite. Set to false to use an
|
# Use a single Vim instance for the test suite. Set to false to use an
|
||||||
# instance per test (slower, but can be easier to manage).
|
# instance per test (slower, but can be easier to manage).
|
||||||
config.reuse_server = true
|
config.reuse_server = !ENV['REUSE_SERVER'].nil?
|
||||||
|
|
||||||
# Decide how to start a Vim instance. In this block, an instance should be
|
# Decide how to start a Vim instance. In this block, an instance should be
|
||||||
# spawned and set up with anything project-specific.
|
# spawned and set up with anything project-specific.
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -16,8 +16,8 @@ syn match elixirComment '#.*' contains=elixirTodo
|
|||||||
syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
|
syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
|
||||||
|
|
||||||
syn keyword elixirKeyword is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_record is_reference is_tuple is_exception
|
syn keyword elixirKeyword is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_record is_reference is_tuple is_exception
|
||||||
syn keyword elixirKeyword case cond bc lc inlist inbits if unless try receive function
|
syn keyword elixirKeyword case cond bc lc inlist inbits if unless try receive
|
||||||
syn keyword elixirKeyword exit raise throw after rescue catch else
|
syn keyword elixirKeyword exit raise throw after rescue catch else do end
|
||||||
syn keyword elixirKeyword quote unquote super
|
syn keyword elixirKeyword quote unquote super
|
||||||
syn match elixirKeyword '\<\%(->\)\>\s*'
|
syn match elixirKeyword '\<\%(->\)\>\s*'
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ syn keyword elixirOperator and not or when xor in
|
|||||||
syn match elixirOperator '%=\|\*=\|\*\*=\|+=\|-=\|\^=\|||='
|
syn match elixirOperator '%=\|\*=\|\*\*=\|+=\|-=\|\^=\|||='
|
||||||
syn match elixirOperator "\%(<=>\|<\%(<\|=\)\@!\|>\%(<\|=\|>\)\@!\|<=\|>=\|===\|==\|=\~\|!=\|!\~\|\s?[ \t]\@=\)"
|
syn match elixirOperator "\%(<=>\|<\%(<\|=\)\@!\|>\%(<\|=\|>\)\@!\|<=\|>=\|===\|==\|=\~\|!=\|!\~\|\s?[ \t]\@=\)"
|
||||||
syn match elixirOperator "!+[ \t]\@=\|&&\|||\|\^\|\*\|+\|-\|/"
|
syn match elixirOperator "!+[ \t]\@=\|&&\|||\|\^\|\*\|+\|-\|/"
|
||||||
syn match elixirOperator "|\|++\|--\|\*\*\|\/\/\|<-\|<>\|<<\|>>\|=\|\.\|::"
|
syn match elixirOperator "|\|++\|--\|\*\*\|\/\/\|\\\\\|<-\|<>\|<<\|>>\|=\|\.\|::"
|
||||||
|
|
||||||
syn match elixirSymbol '\(:\)\@<!:\%([a-zA-Z_]\w*\%([?!]\|=[>=]\@!\)\?\|<>\|===\?\|>=\?\|<=\?\)'
|
syn match elixirSymbol '\(:\)\@<!:\%([a-zA-Z_]\w*\%([?!]\|=[>=]\@!\)\?\|<>\|===\?\|>=\?\|<=\?\)'
|
||||||
syn match elixirSymbol '\(:\)\@<!:\%(<=>\|&&\?\|%\(()\|\[\]\|{}\)\|++\?\|--\?\|||\?\|!\|//\|[%&`/|]\)'
|
syn match elixirSymbol '\(:\)\@<!:\%(<=>\|&&\?\|%\(()\|\[\]\|{}\)\|++\?\|--\?\|||\?\|!\|//\|[%&`/|]\)'
|
||||||
@@ -65,8 +65,8 @@ syn region elixirInterpolation matchgroup=elixirDelimiter start="#{" end="}" con
|
|||||||
|
|
||||||
syn region elixirDocStringStart matchgroup=elixirDocString start=+"""+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
syn region elixirDocStringStart matchgroup=elixirDocString start=+"""+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
||||||
syn region elixirDocStringStart matchgroup=elixirDocString start=+'''+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
syn region elixirDocStringStart matchgroup=elixirDocString start=+'''+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
||||||
syn region elixirDocString start=+\z("""\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo fold keepend
|
syn region elixirDocString start=+\z("""\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend
|
||||||
syn region elixirDocString start=+\z('''\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo fold keepend
|
syn region elixirDocString start=+\z('''\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend
|
||||||
|
|
||||||
syn match elixirSymbolInterpolated ':\("\)\@=' contains=elixirString
|
syn match elixirSymbolInterpolated ':\("\)\@=' contains=elixirString
|
||||||
syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)"
|
syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)"
|
||||||
@@ -74,22 +74,26 @@ syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|
|
|||||||
syn region elixirBlock matchgroup=elixirKeyword start="\<do\>\(:\)\@!" end="\<end\>" contains=ALLBUT,@elixirNotTop fold
|
syn region elixirBlock matchgroup=elixirKeyword start="\<do\>\(:\)\@!" end="\<end\>" contains=ALLBUT,@elixirNotTop fold
|
||||||
syn region elixirAnonymousFunction matchgroup=elixirKeyword start="\<fn\>" end="\<end\>" contains=ALLBUT,@elixirNotTop fold
|
syn region elixirAnonymousFunction matchgroup=elixirKeyword start="\<fn\>" end="\<end\>" contains=ALLBUT,@elixirNotTop fold
|
||||||
|
|
||||||
syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirSymbol,elixirPseudoVariable,elixirName,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirSymbolInterpolated,elixirRegex,elixirRegexEscape,elixirRegexEscapePunctuation,elixirRegexCharClass,elixirRegexQuantifier,elixirSpecial,elixirString,elixirDelimiter
|
syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirSymbol,elixirPseudoVariable,elixirName,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirSymbolInterpolated,elixirRegex,elixirString,elixirDelimiter
|
||||||
|
|
||||||
syn match elixirDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE
|
syn match elixirDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE
|
||||||
|
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~]\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[BCRW]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[BCRW]\={" end="}" skip="\\\\\|\\}" contains=elixirDelimEscape fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\={" end="}" skip="\\\\\|\\}" contains=elixirDelimEscape fold
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[BCRW]\=<" end=">" skip="\\\\\|\\>" contains=elixirDelimEscape fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\=<" end=">" skip="\\\\\|\\>" contains=elixirDelimEscape fold
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[BCRW]\=\[" end="\]" skip="\\\\\|\\\]" contains=elixirDelimEscape fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\=\[" end="\]" skip="\\\\\|\\\]" contains=elixirDelimEscape fold
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[BCRW]\=(" end=")" skip="\\\\\|\\)" contains=elixirDelimEscape fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][SCRW]\=(" end=")" skip="\\\\\|\\)" contains=elixirDelimEscape fold
|
||||||
|
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[bcrw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[bcrw]{" end="}" skip="\\\\\|\\}" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]{" end="}" skip="\\\\\|\\}" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[bcrw]<" end=">" skip="\\\\\|\\>" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]<" end=">" skip="\\\\\|\\>" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[bcrw]\[" end="\]" skip="\\\\\|\\\]" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw]\[" end="\]" skip="\\\\\|\\\]" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
||||||
syn region elixirSigil matchgroup=elixirDelimiter start="%[bcrw](" end=")" skip="\\\\\|\\)" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
syn region elixirSigil matchgroup=elixirDelimiter start="[%~][scrw](" end=")" skip="\\\\\|\\)" fold contains=@elixirStringContained,elixirRegexEscapePunctuation
|
||||||
|
|
||||||
|
" Sigils surrounded with docString
|
||||||
|
syn region elixirSigil matchgroup=elixirDelimiter start=+[%~][SCRWscrw]\z("""\)+ end=+^\s*\zs\z1+ skip=+\\"+ fold
|
||||||
|
syn region elixirSigil matchgroup=elixirDelimiter start=+[%~][SCRWscrw]\z('''\)+ end=+^\s*\zs\z1+ skip=+\\'+ fold
|
||||||
|
|
||||||
" Defines
|
" Defines
|
||||||
syn keyword elixirDefine def nextgroup=elixirFunctionDeclaration skipwhite skipnl
|
syn keyword elixirDefine def nextgroup=elixirFunctionDeclaration skipwhite skipnl
|
||||||
@@ -149,7 +153,7 @@ hi def link elixirBoolean Boolean
|
|||||||
hi def link elixirVariable Identifier
|
hi def link elixirVariable Identifier
|
||||||
hi def link elixirUnusedVariable Comment
|
hi def link elixirUnusedVariable Comment
|
||||||
hi def link elixirNumber Number
|
hi def link elixirNumber Number
|
||||||
hi def link elixirDocString Comment
|
hi def link elixirDocString String
|
||||||
hi def link elixirSymbolInterpolated elixirSymbol
|
hi def link elixirSymbolInterpolated elixirSymbol
|
||||||
hi def link elixirRegex elixirString
|
hi def link elixirRegex elixirString
|
||||||
hi def link elixirRegexEscape elixirSpecial
|
hi def link elixirRegexEscape elixirSpecial
|
||||||
|
|||||||
@@ -1,93 +0,0 @@
|
|||||||
" Handlebars syntax
|
|
||||||
" Language: Handlebars
|
|
||||||
" Maintainer: Bruno Michel <brmichel@free.fr>
|
|
||||||
" Last Change: Mar 8th, 2013
|
|
||||||
" Version: 0.3
|
|
||||||
" URL: https://github.com/nono/vim-handlebars
|
|
||||||
|
|
||||||
if version < 600
|
|
||||||
syntax clear
|
|
||||||
elseif exists("b:current_syntax")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !exists("main_syntax")
|
|
||||||
let main_syntax = 'html'
|
|
||||||
endif
|
|
||||||
|
|
||||||
ru! syntax/html.vim
|
|
||||||
unlet b:current_syntax
|
|
||||||
|
|
||||||
|
|
||||||
syn region hbsInside start=/{{/ end=/}}/ keepend
|
|
||||||
|
|
||||||
syn keyword hbsTodo TODO FIXME XXX contained
|
|
||||||
|
|
||||||
syn match hbsError /}}}\?/
|
|
||||||
syn match hbsInsideError /{{[{#<>=!\/]\?/ contained containedin=@hbsInside
|
|
||||||
|
|
||||||
syn match hbsHandlebars "{{\|}}" contained containedin=hbsInside
|
|
||||||
syn match hbsUnescape "{{{\|}}}" contained containedin=hbsInside extend
|
|
||||||
syn match hbsOperators "=\|\.\|/" contained containedin=hbsInside
|
|
||||||
|
|
||||||
syn region hbsSection start="{{[#/]"lc=2 end=/}}/me=e-2 contained containedin=hbsInside
|
|
||||||
syn region hbsPartial start=/{{[<>]/lc=2 end=/}}/me=e-2 contained containedin=hbsInside
|
|
||||||
syn region hbsMarkerSet start=/{{=/lc=2 end=/=}}/me=e-2 contained containedin=hbsInside
|
|
||||||
|
|
||||||
syn region hbsComment start=/{{!/rs=s+2 end=/}}/re=e-2 contained containedin=hbsInside contains=hbsTodo,Todo
|
|
||||||
syn region hbsBlockComment start=/{{!--/rs=s+2 end=/--}}/re=e-2 contained containedin=hbsInside contains=hbsTodo,Todo extend
|
|
||||||
syn region hbsQString start=/'/ skip=/\\'/ end=/'/ contained containedin=hbsInside
|
|
||||||
syn region hbsDQString start=/"/ skip=/\\"/ end=/"/ contained containedin=hbsInside
|
|
||||||
|
|
||||||
syn match hbsConditionals "\([/#]\(if\|unless\)\|else\)" contained containedin=hbsInside
|
|
||||||
syn match hbsHelpers "[/#]\(with\|each\)" contained containedin=hbsInside
|
|
||||||
|
|
||||||
syn cluster allHbsItems add=hbsTodo,hbsError,hbsInsideError,hbsInside,hbsHandlebars,
|
|
||||||
\ hbsUnescape,hbsOperators,hbsSection,hbsPartial,hbsMarkerSet,
|
|
||||||
\ hbsComment,hbsBlockComment,hbsQString,hbsDQString,hbsConditionals,
|
|
||||||
\ hbsHelpers,hbsPartial,hbsMarkerSet,hbsComment,hbsBlockComment,
|
|
||||||
\ hbsQString,hbsDQString,hbsConditionals,hbsHelpers
|
|
||||||
|
|
||||||
syn cluster htmlAdditional add=htmlTag,htmlEndTag,htmlTagName,htmlSpecialChar
|
|
||||||
|
|
||||||
syn region hbsScriptTemplate start=+<script [^>]*type *=[^>]*text/x-handlebars-template[^>]*>+
|
|
||||||
\ end=+</script>+me=s-1 keepend contains=@htmlHbsContainer,@allHbsItems,@htmlAdditional
|
|
||||||
|
|
||||||
|
|
||||||
" 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_lisp_syntax_inits")
|
|
||||||
if version < 508
|
|
||||||
let did_lisp_syntax_inits = 1
|
|
||||||
command -nargs=+ HiLink hi link <args>
|
|
||||||
else
|
|
||||||
command -nargs=+ HiLink hi def link <args>
|
|
||||||
endif
|
|
||||||
|
|
||||||
HiLink hbsTodo Todo
|
|
||||||
|
|
||||||
HiLink hbsError Error
|
|
||||||
HiLink hbsInsideError Error
|
|
||||||
|
|
||||||
HiLink hbsHandlebars Identifier
|
|
||||||
HiLink hbsUnescape Special
|
|
||||||
HiLink hbsOperators Operator
|
|
||||||
|
|
||||||
HiLink hbsConditionals Conditional
|
|
||||||
HiLink hbsHelpers Repeat
|
|
||||||
|
|
||||||
HiLink hbsSection Number
|
|
||||||
HiLink hbsPartial Include
|
|
||||||
HiLink hbsMarkerSet Number
|
|
||||||
|
|
||||||
HiLink hbsBlockComment Comment
|
|
||||||
HiLink hbsComment Comment
|
|
||||||
HiLink hbsQString String
|
|
||||||
HiLink hbsDQString String
|
|
||||||
|
|
||||||
delcommand HiLink
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
let b:current_syntax = 'handlebars'
|
|
||||||
@@ -41,6 +41,7 @@ syn keyword htmlTagName contained linearGradient marker mask pattern radialGradi
|
|||||||
syn keyword htmlTagName contained missing-glyph mpath
|
syn keyword htmlTagName contained missing-glyph mpath
|
||||||
syn keyword htmlTagName contained text textPath tref tspan vkern
|
syn keyword htmlTagName contained text textPath tref tspan vkern
|
||||||
|
|
||||||
|
" Custom Element
|
||||||
syn match htmlTagName contained "\<[a-z_]\+\(\-[a-z_]\+\)\+\>"
|
syn match htmlTagName contained "\<[a-z_]\+\(\-[a-z_]\+\)\+\>"
|
||||||
|
|
||||||
" HTML 5 arguments
|
" HTML 5 arguments
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+
|
|||||||
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained
|
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained
|
||||||
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained
|
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained
|
||||||
|
|
||||||
syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^]]*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" keepend nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
|
syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^]]*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
|
||||||
syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained
|
syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained
|
||||||
syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained
|
syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained
|
||||||
syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline
|
syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline
|
||||||
@@ -85,6 +85,9 @@ syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepe
|
|||||||
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*```.*$" end="^\s*```\ze\s*$" keepend
|
||||||
|
|
||||||
|
syn match markdownFootnote "\[^[^\]]\]\s*$"
|
||||||
|
syn match markdownFootnoteDefinition "^\[^[^\]]\]:"
|
||||||
|
|
||||||
if main_syntax ==# 'markdown'
|
if main_syntax ==# 'markdown'
|
||||||
for s:type in g:markdown_fenced_languages
|
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*```\s*'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
|
||||||
@@ -108,6 +111,9 @@ hi def link markdownListMarker htmlTagName
|
|||||||
hi def link markdownBlockquote Comment
|
hi def link markdownBlockquote Comment
|
||||||
hi def link markdownRule PreProc
|
hi def link markdownRule PreProc
|
||||||
|
|
||||||
|
hi def link markdownFootnote Typedef
|
||||||
|
hi def link markdownFootnoteDefinition Typedef
|
||||||
|
|
||||||
hi def link markdownLinkText htmlLink
|
hi def link markdownLinkText htmlLink
|
||||||
hi def link markdownIdDeclaration Typedef
|
hi def link markdownIdDeclaration Typedef
|
||||||
hi def link markdownId Type
|
hi def link markdownId Type
|
||||||
|
|||||||
89
syntax/mustache.vim
Normal file
89
syntax/mustache.vim
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
" Mustache & Handlebars syntax
|
||||||
|
" Language: Mustache, Handlebars
|
||||||
|
" Maintainer: Juvenn Woo <machese@gmail.com>
|
||||||
|
" Screenshot: http://imgur.com/6F408
|
||||||
|
" Version: 2
|
||||||
|
" Last Change: Oct 26th 2013
|
||||||
|
" Remark:
|
||||||
|
" It lexically hilights embedded mustaches (exclusively) in html file.
|
||||||
|
" While it was written for Ruby-based Mustache template system, it should
|
||||||
|
" work for Google's C-based *ctemplate* as well as Erlang-based *et*. All
|
||||||
|
" of them are, AFAIK, based on the idea of ctemplate.
|
||||||
|
" References:
|
||||||
|
" [Mustache](http://github.com/defunkt/mustache)
|
||||||
|
" [Handlebars](https://github.com/wycats/handlebars.js)
|
||||||
|
" [ctemplate](http://code.google.com/p/google-ctemplate/)
|
||||||
|
" [ctemplate doc](http://google-ctemplate.googlecode.com/svn/trunk/doc/howto.html)
|
||||||
|
" [et](http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html)
|
||||||
|
" TODO: Feedback is welcomed.
|
||||||
|
|
||||||
|
|
||||||
|
" Read the HTML syntax to start with
|
||||||
|
if version < 600
|
||||||
|
so <sfile>:p:h/html.vim
|
||||||
|
else
|
||||||
|
runtime! syntax/html.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Standard HiLink will not work with included syntax files
|
||||||
|
if version < 508
|
||||||
|
command! -nargs=+ HtmlHiLink hi link <args>
|
||||||
|
else
|
||||||
|
command! -nargs=+ HtmlHiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax match mustacheError '}}}\?'
|
||||||
|
syntax match mustacheInsideError '{{[{#<>=!\/]\?'
|
||||||
|
syntax region mustacheInside start=/{{/ end=/}}}\?/ keepend containedin=TOP,@htmlMustacheContainer
|
||||||
|
syntax match mustacheOperators '=\|\.\|/' contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax region mustacheSection start='{{[#^/]'lc=2 end=/}}/me=e-2 contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax region mustachePartial start=/{{[<>]/lc=2 end=/}}/me=e-2 contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax region mustacheMarkerSet start=/{{=/lc=2 end=/=}}/me=e-2 contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax match mustacheHandlebars '{{\|}}' contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax match mustacheUnescape '{{{\|}}}' contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax match mustacheConditionals '\([/#]\(if\|unless\)\|else\)' contained containedin=mustacheInside
|
||||||
|
syntax match mustacheHelpers '[/#]\(with\|each\)' contained containedin=mustacheSection
|
||||||
|
syntax region mustacheComment start=/{{!/rs=s+2 end=/}}/re=e-2 contains=Todo contained containedin=mustacheInside,@htmlMustacheContainer
|
||||||
|
syntax region mustacheBlockComment start=/{{!--/rs=s+2 end=/--}}/re=e-2 contains=Todo
|
||||||
|
syntax region mustacheQString start=/'/ skip=/\\'/ end=/'/ contained containedin=mustacheInside
|
||||||
|
syntax region mustacheDQString start=/"/ skip=/\\"/ end=/"/ contained containedin=mustacheInside
|
||||||
|
|
||||||
|
" Clustering
|
||||||
|
syntax cluster htmlMustacheContainer add=htmlHead,htmlTitle,htmlString,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,htmlLink,htmlBold,htmlUnderline,htmlItalic,htmlValue
|
||||||
|
|
||||||
|
|
||||||
|
" Hilighting
|
||||||
|
" mustacheInside hilighted as Number, which is rarely used in html
|
||||||
|
" you might like change it to Function or Identifier
|
||||||
|
HtmlHiLink mustacheVariable Number
|
||||||
|
HtmlHiLink mustacheVariableUnescape Number
|
||||||
|
HtmlHiLink mustachePartial Number
|
||||||
|
HtmlHiLink mustacheSection Number
|
||||||
|
HtmlHiLink mustacheMarkerSet Number
|
||||||
|
|
||||||
|
HtmlHiLink mustacheComment Comment
|
||||||
|
HtmlHiLink mustacheBlockComment Comment
|
||||||
|
HtmlHiLink mustacheError Error
|
||||||
|
HtmlHiLink mustacheInsideError Error
|
||||||
|
|
||||||
|
HtmlHiLink mustacheHandlebars Special
|
||||||
|
HtmlHiLink mustacheUnescape Identifier
|
||||||
|
HtmlHiLink mustacheOperators Operator
|
||||||
|
HtmlHiLink mustacheConditionals Conditional
|
||||||
|
HtmlHiLink mustacheHelpers Repeat
|
||||||
|
HtmlHiLink mustacheQString String
|
||||||
|
HtmlHiLink mustacheDQString String
|
||||||
|
|
||||||
|
syn region mustacheScriptTemplate start=+<script [^>]*type *=[^>]*text/\(mustache\|x-handlebars-template\)[^>]*>+
|
||||||
|
\ end=+</script>+me=s-1 keepend
|
||||||
|
\ contains=mustacheInside,@htmlMustacheContainer,htmlTag,htmlEndTag,htmlTagName,htmlSpecialChar
|
||||||
|
|
||||||
|
let b:current_syntax = "mustache"
|
||||||
|
delcommand HtmlHiLink
|
||||||
@@ -95,7 +95,7 @@ syn match perlStatementVector "\<vec\>"
|
|||||||
syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
|
syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
|
||||||
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
|
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
|
||||||
syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
|
syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
|
||||||
syn match perlStatementInclude "\<\%(require\|import\)\>"
|
syn match perlStatementInclude "\<\%(require\|import\|unimport\)\>"
|
||||||
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
|
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
|
||||||
syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
|
syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
|
||||||
syn match perlStatementSocket "\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
|
syn match perlStatementSocket "\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
|
||||||
@@ -176,10 +176,10 @@ endif
|
|||||||
" File Descriptors
|
" File Descriptors
|
||||||
syn match perlFiledescRead "<\h\w*>"
|
syn match perlFiledescRead "<\h\w*>"
|
||||||
|
|
||||||
syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement
|
syn match perlFiledescStatementComma "(\=\s*\<\u\w*\>\s*,"me=e-1 transparent contained contains=perlFiledescStatement
|
||||||
syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
|
syn match perlFiledescStatementNocomma "(\=\s*\<\u\w*\>\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
|
||||||
|
|
||||||
syn match perlFiledescStatement "\u\w*" contained
|
syn match perlFiledescStatement "\<\u\w*\>" contained
|
||||||
|
|
||||||
" Special characters in strings and matches
|
" Special characters in strings and matches
|
||||||
syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
|
syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
|
||||||
@@ -365,8 +365,10 @@ else
|
|||||||
syn match perlSubAttributes "" contained nextgroup=perlSubError
|
syn match perlSubAttributes "" contained nextgroup=perlSubError
|
||||||
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
|
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
|
||||||
endif
|
endif
|
||||||
syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
|
if !exists("perl_no_subprototype_error") " Set 1 if using signatures feature in perl5.19.9
|
||||||
syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
|
syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
|
||||||
|
syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
|
||||||
|
endif
|
||||||
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
|
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
|
||||||
|
|
||||||
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
|
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
|
||||||
@@ -511,7 +513,9 @@ HiLink perlStatementIndirObj perlStatement
|
|||||||
HiLink perlFunctionName perlIdentifier
|
HiLink perlFunctionName perlIdentifier
|
||||||
HiLink perlMethod perlIdentifier
|
HiLink perlMethod perlIdentifier
|
||||||
HiLink perlFunctionPRef perlType
|
HiLink perlFunctionPRef perlType
|
||||||
HiLink perlPOD perlComment
|
if !get(g:, 'perl_include_pod', 1)
|
||||||
|
HiLink perlPOD perlComment
|
||||||
|
endif
|
||||||
HiLink perlShellCommand perlString
|
HiLink perlShellCommand perlString
|
||||||
HiLink perlSpecialAscii perlSpecial
|
HiLink perlSpecialAscii perlSpecial
|
||||||
HiLink perlSpecialDollar perlSpecial
|
HiLink perlSpecialDollar perlSpecial
|
||||||
|
|||||||
151
syntax/php.vim
151
syntax/php.vim
File diff suppressed because one or more lines are too long
@@ -101,9 +101,9 @@ syn match rubySymbol "[]})\"':]\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
|
|||||||
syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
|
syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
|
||||||
syn match rubySymbol "[]})\"':]\@<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="
|
syn match rubySymbol "[]})\"':]\@<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="
|
||||||
syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"he=e-1
|
syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"he=e-1
|
||||||
syn match rubySymbol "[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="he=e-1
|
syn match rubySymbol "[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="he=e-1
|
||||||
syn match rubySymbol "\%([{(,]\_s*\)\@<=[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1
|
syn match rubySymbol "\%([{(,]\_s*\)\@<=[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1
|
||||||
syn match rubySymbol "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="hs=s+1,he=e-1
|
syn match rubySymbol "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1
|
||||||
syn region rubySymbol start="[]})\"':]\@<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold
|
syn region rubySymbol start="[]})\"':]\@<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold
|
||||||
syn region rubySymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold
|
syn region rubySymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(ARGF\|ARGV\|ENV
|
|||||||
syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!"
|
syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!"
|
||||||
|
|
||||||
" Normal Regular Expression
|
" Normal Regular Expression
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
|
||||||
|
|
||||||
" Generalized Regular Expression
|
" Generalized Regular Expression
|
||||||
@@ -143,6 +143,7 @@ syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]<" end="
|
|||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%q " end=" " skip="\\\\\|\\)" fold
|
syn region rubyString matchgroup=rubyStringDelimiter start="%q " end=" " skip="\\\\\|\\)" fold
|
||||||
|
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
|
||||||
@@ -197,7 +198,7 @@ syn match rubyControl "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue
|
|||||||
syn match rubyOperator "\<defined?" display
|
syn match rubyOperator "\<defined?" display
|
||||||
syn match rubyKeyword "\<\%(super\|yield\)\>[?!]\@!"
|
syn match rubyKeyword "\<\%(super\|yield\)\>[?!]\@!"
|
||||||
syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!"
|
syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!"
|
||||||
syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise
|
syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__dir__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise
|
||||||
syn match rubyBeginEnd "\<\%(BEGIN\|END\)\>[?!]\@!"
|
syn match rubyBeginEnd "\<\%(BEGIN\|END\)\>[?!]\@!"
|
||||||
|
|
||||||
" Expensive Mode - match 'end' with the appropriate opening keyword for syntax
|
" Expensive Mode - match 'end' with the appropriate opening keyword for syntax
|
||||||
@@ -261,7 +262,7 @@ if !exists("ruby_no_special_methods")
|
|||||||
syn keyword rubyException raise fail catch throw
|
syn keyword rubyException raise fail catch throw
|
||||||
" false positive with 'include?'
|
" false positive with 'include?'
|
||||||
syn match rubyInclude "\<include\>[?!]\@!"
|
syn match rubyInclude "\<include\>[?!]\@!"
|
||||||
syn keyword rubyInclude autoload extend load prepend require require_relative
|
syn keyword rubyInclude autoload extend load prepend refine require require_relative using
|
||||||
syn keyword rubyKeyword callcc caller lambda proc
|
syn keyword rubyKeyword callcc caller lambda proc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -279,18 +280,18 @@ endif
|
|||||||
" Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver
|
" Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(alias\|and\|begin\|break\|case\|class\|def\|defined\|do\|else\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(alias\|and\|begin\|break\|case\|class\|def\|defined\|do\|else\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(elsif\|end\|ensure\|false\|for\|if\|in\|module\|next\|nil\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(elsif\|end\|ensure\|false\|for\|if\|in\|module\|next\|nil\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(not\|or\|redo\|rescue\|retry\|return\|self\|super\|then\|true\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(not\|or\|redo\|refine\|rescue\|retry\|return\|self\|super\|then\|true\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(undef\|unless\|until\|when\|while\|yield\|BEGIN\|END\|__FILE__\|__LINE__\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(undef\|unless\|until\|when\|while\|yield\|BEGIN\|END\|__FILE__\|__LINE__\)\>" transparent contains=NONE
|
||||||
|
|
||||||
syn match rubyKeywordAsMethod "\<\%(alias\|begin\|case\|class\|def\|do\|end\)[?!]" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\<\%(alias\|begin\|case\|class\|def\|do\|end\)[?!]" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\<\%(if\|module\|undef\|unless\|until\|while\)[?!]" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\<\%(if\|module\|refine\|undef\|unless\|until\|while\)[?!]" transparent contains=NONE
|
||||||
|
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(abort\|at_exit\|attr\|attr_accessor\|attr_reader\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(abort\|at_exit\|attr\|attr_accessor\|attr_reader\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(attr_writer\|autoload\|callcc\|catch\|caller\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(attr_writer\|autoload\|callcc\|catch\|caller\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(eval\|class_eval\|instance_eval\|module_eval\|exit\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(eval\|class_eval\|instance_eval\|module_eval\|exit\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(extend\|fail\|fork\|include\|lambda\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(extend\|fail\|fork\|include\|lambda\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(load\|loop\|prepend\|private\|proc\|protected\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(load\|loop\|prepend\|private\|proc\|protected\)\>" transparent contains=NONE
|
||||||
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(public\|require\|require_relative\|raise\|throw\|trap\)\>" transparent contains=NONE
|
syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(public\|require\|require_relative\|raise\|throw\|trap\|using\)\>" transparent contains=NONE
|
||||||
|
|
||||||
" __END__ Directive
|
" __END__ Directive
|
||||||
syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold
|
syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
||||||
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
||||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||||
" Last Change: 2013 Dec 10
|
" Last Change: 2014 Feb 27
|
||||||
|
|
||||||
if version < 600
|
if version < 600
|
||||||
syntax clear
|
syntax clear
|
||||||
@@ -18,7 +18,8 @@ syn keyword rustOperator as
|
|||||||
|
|
||||||
syn match rustAssert "\<assert\(\w\)*!" contained
|
syn match rustAssert "\<assert\(\w\)*!" contained
|
||||||
syn match rustFail "\<fail\(\w\)*!" contained
|
syn match rustFail "\<fail\(\w\)*!" contained
|
||||||
syn keyword rustKeyword break continue do extern
|
syn keyword rustKeyword break continue
|
||||||
|
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite
|
||||||
syn keyword rustKeyword for in if impl let
|
syn keyword rustKeyword for in if impl let
|
||||||
syn keyword rustKeyword loop once priv pub
|
syn keyword rustKeyword loop once priv pub
|
||||||
syn keyword rustKeyword return
|
syn keyword rustKeyword return
|
||||||
@@ -31,11 +32,16 @@ syn keyword rustKeyword proc
|
|||||||
syn keyword rustStorage mut ref static
|
syn keyword rustStorage mut ref static
|
||||||
syn keyword rustObsoleteStorage const
|
syn keyword rustObsoleteStorage const
|
||||||
|
|
||||||
|
syn keyword rustInvalidBareKeyword crate
|
||||||
|
|
||||||
|
syn keyword rustExternCrate crate contained nextgroup=rustIdentifier skipwhite
|
||||||
|
syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite
|
||||||
|
|
||||||
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||||
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||||
|
|
||||||
" Reserved (but not yet used) keywords {{{2
|
" Reserved (but not yet used) keywords {{{2
|
||||||
syn keyword rustReservedKeyword alignof be offsetof pure sizeof typeof yield
|
syn keyword rustReservedKeyword alignof be do offsetof pure sizeof typeof yield
|
||||||
|
|
||||||
" Built-in types {{{2
|
" Built-in types {{{2
|
||||||
syn keyword rustType int uint float char bool u8 u16 u32 u64 f32
|
syn keyword rustType int uint float char bool u8 u16 u32 u64 f32
|
||||||
@@ -46,10 +52,7 @@ syn keyword rustType f64 i8 i16 i32 i64 str Self
|
|||||||
" to make it easy to update.
|
" to make it easy to update.
|
||||||
|
|
||||||
" Core operators {{{3
|
" Core operators {{{3
|
||||||
syn keyword rustEnum Either
|
syn keyword rustTrait Freeze Pod Send Sized
|
||||||
syn keyword rustEnumVariant Left Right
|
|
||||||
syn keyword rustTrait Sized
|
|
||||||
syn keyword rustTrait Freeze Send
|
|
||||||
syn keyword rustTrait Add Sub Mul Div Rem Neg Not
|
syn keyword rustTrait Add Sub Mul Div Rem Neg Not
|
||||||
syn keyword rustTrait BitAnd BitOr BitXor
|
syn keyword rustTrait BitAnd BitOr BitXor
|
||||||
syn keyword rustTrait Drop
|
syn keyword rustTrait Drop
|
||||||
@@ -60,64 +63,45 @@ syn keyword rustEnum Result
|
|||||||
syn keyword rustEnumVariant Ok Err
|
syn keyword rustEnumVariant Ok Err
|
||||||
|
|
||||||
" Functions {{{3
|
" Functions {{{3
|
||||||
"syn keyword rustFunction print println
|
|
||||||
"syn keyword rustFunction range
|
|
||||||
"syn keyword rustFunction from_str
|
"syn keyword rustFunction from_str
|
||||||
|
"syn keyword rustFunction range
|
||||||
|
"syn keyword rustFunction drop
|
||||||
|
|
||||||
" Types and traits {{{3
|
" Types and traits {{{3
|
||||||
syn keyword rustTrait Any AnyOwnExt AnyRefExt AnyMutRefExt
|
syn keyword rustTrait Any AnyOwnExt AnyRefExt AnyMutRefExt
|
||||||
syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr IntoBytes
|
syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr IntoBytes
|
||||||
syn keyword rustTrait Bool
|
|
||||||
syn keyword rustTrait ToCStr
|
syn keyword rustTrait ToCStr
|
||||||
syn keyword rustTrait Char
|
syn keyword rustTrait Char
|
||||||
syn keyword rustTrait Clone DeepClone
|
syn keyword rustTrait Clone DeepClone
|
||||||
syn keyword rustTrait Eq ApproxEq Ord TotalEq TotalOrd Ordering Equiv
|
syn keyword rustTrait Eq Ord TotalEq TotalOrd Ordering Equiv
|
||||||
syn keyword rustEnumVariant Less Equal Greater
|
syn keyword rustEnumVariant Less Equal Greater
|
||||||
syn keyword rustTrait Container Mutable Map MutableMap Set MutableSet
|
syn keyword rustTrait Container Mutable Map MutableMap Set MutableSet
|
||||||
syn keyword rustTrait Default
|
|
||||||
syn keyword rustTrait Hash
|
|
||||||
syn keyword rustTrait FromStr
|
|
||||||
syn keyword rustTrait FromIterator Extendable
|
syn keyword rustTrait FromIterator Extendable
|
||||||
syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator ClonableIterator
|
syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator CloneableIterator
|
||||||
syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize
|
syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize
|
||||||
syn keyword rustTrait Times
|
|
||||||
|
|
||||||
syn keyword rustTrait Algebraic Trigonometric Exponential Hyperbolic
|
|
||||||
syn keyword rustTrait Bitwise BitCount Bounded
|
|
||||||
syn keyword rustTrait Integer Fractional Real RealExt
|
|
||||||
syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul
|
syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul
|
||||||
syn keyword rustTrait Orderable Signed Unsigned Round
|
syn keyword rustTrait Signed Unsigned Round
|
||||||
syn keyword rustTrait Primitive Int Float ToStrRadix ToPrimitive FromPrimitive
|
syn keyword rustTrait Primitive Int Float ToPrimitive FromPrimitive
|
||||||
syn keyword rustTrait GenericPath Path PosixPath WindowsPath
|
syn keyword rustTrait GenericPath Path PosixPath WindowsPath
|
||||||
syn keyword rustTrait RawPtr
|
syn keyword rustTrait RawPtr
|
||||||
syn keyword rustTrait Buffer Writer Reader Seek
|
syn keyword rustTrait Buffer Writer Reader Seek
|
||||||
syn keyword rustTrait SendStr SendStrOwned SendStrStatic IntoSendStr
|
syn keyword rustTrait Str StrVector StrSlice OwnedStr IntoMaybeOwned
|
||||||
syn keyword rustTrait Str StrVector StrSlice OwnedStr
|
|
||||||
syn keyword rustTrait IterBytes
|
|
||||||
syn keyword rustTrait ToStr IntoStr
|
syn keyword rustTrait ToStr IntoStr
|
||||||
syn keyword rustTrait CopyableTuple ImmutableTuple
|
|
||||||
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
|
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
|
||||||
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
|
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
|
||||||
syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12
|
syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12
|
||||||
syn keyword rustTrait ImmutableTuple1 ImmutableTuple2 ImmutableTuple3 ImmutableTuple4
|
syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector ImmutableCloneableVector
|
||||||
syn keyword rustTrait ImmutableTuple5 ImmutableTuple6 ImmutableTuple7 ImmutableTuple8
|
syn keyword rustTrait OwnedVector OwnedCloneableVector OwnedEqVector
|
||||||
syn keyword rustTrait ImmutableTuple9 ImmutableTuple10 ImmutableTuple11 ImmutableTuple12
|
syn keyword rustTrait MutableVector MutableTotalOrdVector
|
||||||
syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector ImmutableCopyableVector
|
syn keyword rustTrait Vector VectorVector CloneableVector ImmutableVector
|
||||||
syn keyword rustTrait OwnedVector OwnedCopyableVector OwnedEqVector MutableVector
|
|
||||||
syn keyword rustTrait Vector VectorVector CopyableVector ImmutableVector
|
|
||||||
|
|
||||||
"syn keyword rustFunction stream
|
"syn keyword rustFunction stream
|
||||||
syn keyword rustTrait Port Chan GenericChan GenericSmartChan GenericPort Peekable
|
syn keyword rustTrait Port Chan
|
||||||
"syn keyword rustFunction spawn
|
"syn keyword rustFunction spawn
|
||||||
|
|
||||||
syn keyword rustSelf self
|
syn keyword rustSelf self
|
||||||
syn keyword rustBoolean true false
|
syn keyword rustBoolean true false
|
||||||
|
|
||||||
syn keyword rustConstant Some None " option
|
|
||||||
syn keyword rustConstant Left Right " either
|
|
||||||
syn keyword rustConstant Ok Err " result
|
|
||||||
syn keyword rustConstant Less Equal Greater " Ordering
|
|
||||||
|
|
||||||
" Other syntax {{{2
|
" Other syntax {{{2
|
||||||
|
|
||||||
" If foo::bar changes to foo.bar, change this ("::" to "\.").
|
" If foo::bar changes to foo.bar, change this ("::" to "\.").
|
||||||
@@ -148,8 +132,8 @@ syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustFail
|
|||||||
syn match rustSpecialError display contained /\\./
|
syn match rustSpecialError display contained /\\./
|
||||||
syn match rustSpecial display contained /\\\([nrt0\\'"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)/
|
syn match rustSpecial display contained /\\\([nrt0\\'"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)/
|
||||||
syn match rustStringContinuation display contained /\\\n\s*/
|
syn match rustStringContinuation display contained /\\\n\s*/
|
||||||
syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustSpecial,rustSpecialError,rustStringContinuation
|
syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustSpecial,rustSpecialError,rustStringContinuation,@Spell
|
||||||
syn region rustString start='r\z(#*\)"' end='"\z1'
|
syn region rustString start='r\z(#*\)"' end='"\z1' contains=@Spell
|
||||||
|
|
||||||
syn region rustAttribute start="#\[" end="\]" contains=rustString,rustDeriving
|
syn region rustAttribute start="#\[" end="\]" contains=rustString,rustDeriving
|
||||||
syn region rustDeriving start="deriving(" end=")" contained contains=rustTrait
|
syn region rustDeriving start="deriving(" end=")" contained contains=rustTrait
|
||||||
@@ -179,11 +163,12 @@ syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[
|
|||||||
syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
|
syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
|
||||||
syn match rustCharacter /'\([^'\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'/ contains=rustSpecial,rustSpecialError
|
syn match rustCharacter /'\([^'\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'/ contains=rustSpecial,rustSpecialError
|
||||||
|
|
||||||
syn cluster rustComment contains=rustCommentLine,rustCommentLineDoc,rustCommentBlock,rustCommentBlockDoc
|
syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell
|
||||||
syn region rustCommentLine start="//" end="$" contains=rustTodo
|
syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell
|
||||||
syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo
|
syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell
|
||||||
syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,@rustComment keepend extend
|
syn region rustCommentBlockDoc matchgroup=rustCommentBlockDoc start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell
|
||||||
syn region rustCommentBlockDoc matchgroup=rustCommentBlockDoc start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,@rustComment keepend extend
|
syn region rustCommentBlockNest matchgroup=rustCommentBlock start="/\*" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell contained transparent
|
||||||
|
syn region rustCommentBlockDocNest matchgroup=rustCommentBlockDoc start="/\*" end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell contained transparent
|
||||||
" FIXME: this is a really ugly and not fully correct implementation. Most
|
" FIXME: this is a really ugly and not fully correct implementation. Most
|
||||||
" importantly, a case like ``/* */*`` should have the final ``*`` not being in
|
" importantly, a case like ``/* */*`` should have the final ``*`` not being in
|
||||||
" a comment, but in practice at present it leaves comments open two levels
|
" a comment, but in practice at present it leaves comments open two levels
|
||||||
@@ -251,6 +236,9 @@ hi def link rustDeriving PreProc
|
|||||||
hi def link rustStorage StorageClass
|
hi def link rustStorage StorageClass
|
||||||
hi def link rustObsoleteStorage Error
|
hi def link rustObsoleteStorage Error
|
||||||
hi def link rustLifetime Special
|
hi def link rustLifetime Special
|
||||||
|
hi def link rustInvalidBareKeyword Error
|
||||||
|
hi def link rustExternCrate rustKeyword
|
||||||
|
hi def link rustObsoleteExternMod Error
|
||||||
|
|
||||||
" Other Suggestions:
|
" Other Suggestions:
|
||||||
" hi rustAttribute ctermfg=cyan
|
" hi rustAttribute ctermfg=cyan
|
||||||
|
|||||||
100
syntax/scala.vim
100
syntax/scala.vim
@@ -10,14 +10,16 @@ syn case match
|
|||||||
syn sync minlines=200 maxlines=1000
|
syn sync minlines=200 maxlines=1000
|
||||||
|
|
||||||
syn keyword scalaKeyword catch do else final finally for forSome if
|
syn keyword scalaKeyword catch do else final finally for forSome if
|
||||||
syn keyword scalaKeyword match return throw try while yield
|
syn keyword scalaKeyword match return throw try while yield macro
|
||||||
syn keyword scalaKeyword class trait object extends with nextgroup=scalaInstanceDeclaration skipwhite
|
syn keyword scalaKeyword class trait object extends with nextgroup=scalaInstanceDeclaration skipwhite
|
||||||
syn keyword scalaKeyword type nextgroup=scalaTypeDeclaration skipwhite
|
|
||||||
syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite
|
syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite
|
||||||
syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite
|
syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite
|
||||||
syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite
|
syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite
|
||||||
hi link scalaKeyword Keyword
|
hi link scalaKeyword Keyword
|
||||||
|
|
||||||
|
syn keyword scalaAkkaSpecialWord when goto using startWith initialize onTransition stay become unbecome
|
||||||
|
hi link scalaAkkaSpecialWord PreProc
|
||||||
|
|
||||||
syn match scalaSymbol /'[_A-Za-z0-9$]\+/
|
syn match scalaSymbol /'[_A-Za-z0-9$]\+/
|
||||||
hi link scalaSymbol Number
|
hi link scalaSymbol Number
|
||||||
|
|
||||||
@@ -28,35 +30,61 @@ hi link scalaChar Character
|
|||||||
hi link scalaEscapedChar Function
|
hi link scalaEscapedChar Function
|
||||||
hi link scalaUnicodeChar Special
|
hi link scalaUnicodeChar Special
|
||||||
|
|
||||||
syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained
|
syn match scalaOperator "||"
|
||||||
syn match scalaNameDefinition /`[^`]\+`/ contained
|
syn match scalaOperator "&&"
|
||||||
|
hi link scalaOperator Special
|
||||||
|
|
||||||
|
syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaPostNameDefinition
|
||||||
|
syn match scalaNameDefinition /`[^`]\+`/ contained nextgroup=scalaPostNameDefinition
|
||||||
|
syn match scalaPostNameDefinition /\_s*:\_s*/ contained nextgroup=scalaTypeDeclaration
|
||||||
hi link scalaNameDefinition Function
|
hi link scalaNameDefinition Function
|
||||||
|
|
||||||
syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained
|
syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaInstanceHash
|
||||||
syn match scalaInstanceDeclaration /`[^`]\+`/ contained
|
syn match scalaInstanceDeclaration /`[^`]\+`/ contained
|
||||||
|
syn match scalaInstanceHash /#/ contained nextgroup=scalaInstanceDeclaration
|
||||||
hi link scalaInstanceDeclaration Special
|
hi link scalaInstanceDeclaration Special
|
||||||
|
hi link scalaInstanceHash Type
|
||||||
|
|
||||||
syn match scalaTypeDeclaration /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension,scalaTypeEquals skipwhite
|
syn match scalaCapitalWord /\<[A-Z][A-Za-z0-9$]*\>/
|
||||||
syn match scalaTypeEquals /=\ze[^>]/ contained nextgroup=scalaTypePostDeclaration skipwhite
|
hi link scalaCapitalWord Special
|
||||||
syn match scalaTypeExtension /\%(=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypeDeclaration skipwhite
|
|
||||||
syn match scalaTypePostDeclaration /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypePostExtension skipwhite
|
" Handle type declarations specially
|
||||||
syn match scalaTypePostExtension /\%(=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypePostDeclaration skipwhite
|
syn region scalaTypeStatement matchgroup=Keyword start=/\<type\_s\+\ze/ end=/$/ contains=scalaTypeTypeDeclaration,scalaSquareBrackets,scalaTypeTypeEquals,scalaTypeStatement
|
||||||
|
|
||||||
|
" Ugh... duplication of all the scalaType* stuff to handle special highlighting
|
||||||
|
" of `type X =` declarations
|
||||||
|
syn match scalaTypeTypeDeclaration /(/ contained nextgroup=scalaTypeTypeExtension,scalaTypeTypeEquals contains=scalaRoundBrackets skipwhite
|
||||||
|
syn match scalaTypeTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeTypeDeclaration contains=scalaTypeTypeExtension skipwhite
|
||||||
|
syn match scalaTypeTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypeExtension,scalaTypeTypeEquals skipwhite
|
||||||
|
syn match scalaTypeTypeEquals /=\ze[^>]/ contained nextgroup=scalaTypeTypePostDeclaration skipwhite
|
||||||
|
syn match scalaTypeTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained nextgroup=scalaTypeTypeDeclaration skipwhite
|
||||||
|
syn match scalaTypeTypePostDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypePostExtension skipwhite
|
||||||
|
syn match scalaTypeTypePostExtension /\%(⇒\|=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypeTypePostDeclaration skipwhite
|
||||||
|
hi link scalaTypeTypeDeclaration Type
|
||||||
|
hi link scalaTypeTypeExtension Keyword
|
||||||
|
hi link scalaTypeTypePostDeclaration Special
|
||||||
|
hi link scalaTypeTypePostExtension Keyword
|
||||||
|
|
||||||
|
syn match scalaTypeDeclaration /(/ contained nextgroup=scalaTypeExtension contains=scalaRoundBrackets skipwhite
|
||||||
|
syn match scalaTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeDeclaration contains=scalaTypeExtension skipwhite
|
||||||
|
syn match scalaTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension skipwhite
|
||||||
|
syn match scalaTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained nextgroup=scalaTypeDeclaration skipwhite
|
||||||
hi link scalaTypeDeclaration Type
|
hi link scalaTypeDeclaration Type
|
||||||
hi link scalaTypeExtension Keyword
|
hi link scalaTypeExtension Keyword
|
||||||
hi link scalaTypePostDeclaration Special
|
|
||||||
hi link scalaTypePostExtension Keyword
|
hi link scalaTypePostExtension Keyword
|
||||||
|
|
||||||
syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$)\s]:\_s*\)\@<=[_(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeExtension contains=scalaRoundBrackets
|
syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$\s]:\_s*\)\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration contains=scalaRoundBrackets
|
||||||
hi link scalaTypeAnnotation Type
|
syn match scalaTypeAnnotation /)\_s*:\_s*\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration
|
||||||
|
hi link scalaTypeAnnotation Normal
|
||||||
|
|
||||||
syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]*\>/ contained
|
syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained
|
||||||
syn match scalaCaseFollowing /`[^`]\+`/ contained
|
syn match scalaCaseFollowing /`[^`]\+`/ contained
|
||||||
hi link scalaCaseFollowing Special
|
hi link scalaCaseFollowing Special
|
||||||
|
|
||||||
syn keyword scalaKeywordModifier abstract override final implicit lazy private protected sealed null require super
|
syn keyword scalaKeywordModifier abstract override final lazy implicit implicitly private protected sealed null require super
|
||||||
hi link scalaKeywordModifier Function
|
hi link scalaKeywordModifier Function
|
||||||
|
|
||||||
syn keyword scalaSpecial this true false package import
|
syn keyword scalaSpecial this true false package import ne eq
|
||||||
syn keyword scalaSpecial new nextgroup=scalaInstanceDeclaration skipwhite
|
syn keyword scalaSpecial new nextgroup=scalaInstanceDeclaration skipwhite
|
||||||
syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)"
|
syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)"
|
||||||
syn match scalaSpecial /`[^`]*`/ " Backtick literals
|
syn match scalaSpecial /`[^`]*`/ " Backtick literals
|
||||||
@@ -83,28 +111,28 @@ syn region scalaQuasiQuotes matchgroup=Type start=/\<q"/ skip=/\\"/ end=/"/ cont
|
|||||||
syn region scalaQuasiQuotes matchgroup=Type start=/\<[tcp]q"/ skip=/\\"/ end=/"/ contains=scalaInterpolation
|
syn region scalaQuasiQuotes matchgroup=Type start=/\<[tcp]q"/ skip=/\\"/ end=/"/ contains=scalaInterpolation
|
||||||
hi link scalaQuasiQuotes String
|
hi link scalaQuasiQuotes String
|
||||||
|
|
||||||
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<q"""/ end=/"""/ contains=scalaInterpolation
|
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<q"""/ end=/"""\%([^"]\|$\)/ contains=scalaInterpolation
|
||||||
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<[tcp]q"""/ end=/"""/ contains=scalaInterpolation
|
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<[tcp]q"""/ end=/"""\%([^"]\|$\)/ contains=scalaInterpolation
|
||||||
hi link scalaTripleQuasiQuotes String
|
hi link scalaTripleQuasiQuotes String
|
||||||
|
|
||||||
syn region scalaTripleString start=/"""/ end=/"""/ contains=scalaEscapedChar,scalaUnicodeChar
|
syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
|
||||||
syn region scalaTripleSString matchgroup=Special start=/s"""/ end=/"""/ contains=scalaInterpolation,scalaEscapedChar,scalaUnicodeChar
|
syn region scalaTripleSString matchgroup=Special start=/s"""/ end=/"""\%([^"]\|$\)/ contains=scalaInterpolation,scalaEscapedChar,scalaUnicodeChar
|
||||||
syn region scalaTripleFString matchgroup=Special start=/f"""/ end=/"""/ contains=scalaInterpolation,scalaFInterpolation,scalaEscapedChar,scalaUnicodeChar
|
syn region scalaTripleFString matchgroup=Special start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaInterpolation,scalaFInterpolation,scalaEscapedChar,scalaUnicodeChar
|
||||||
hi link scalaTripleString String
|
hi link scalaTripleString String
|
||||||
hi link scalaTripleSString String
|
hi link scalaTripleSString String
|
||||||
hi link scalaTripleFString String
|
hi link scalaTripleFString String
|
||||||
|
|
||||||
syn match scalaNumber /\<0[dDfFlL]\?\>/
|
syn match scalaNumber /\<0[dDfFlL]\?\>/ " Just a bare 0
|
||||||
syn match scalaNumber /\<[1-9]\d*[dDfFlL]\?\>/
|
syn match scalaNumber /\<[1-9]\d*[dDfFlL]\?\>/ " A multi-digit number - octal numbers with leading 0's are deprecated in Scala
|
||||||
syn match scalaNumber /\<0[xX][0-9a-fA-F]\+[dDfFlL]\?\>/
|
syn match scalaNumber /\<0[xX][0-9a-fA-F]\+[dDfFlL]\?\>/ " Hex number
|
||||||
syn match scalaNumber "\%(\<\d\+\.\d*\|\.\d\+\)\%([eE][-+]\=\d\+\)\=[fFdD]\="
|
syn match scalaNumber /\%(\<\d\+\.\d*\|\.\d\+\)\%([eE][-+]\=\d\+\)\=[fFdD]\=/ " exponential notation 1
|
||||||
syn match scalaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
|
syn match scalaNumber /\<\d\+[eE][-+]\=\d\+[fFdD]\=\>/ " exponential notation 2
|
||||||
syn match scalaNumber "\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>"
|
syn match scalaNumber /\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>/ " exponential notation 3
|
||||||
hi link scalaNumber Number
|
hi link scalaNumber Number
|
||||||
|
|
||||||
syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets
|
syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets,scalaRoundBrackets
|
||||||
|
|
||||||
syn region scalaSquareBrackets matchgroup=Type start="\[" end="\]" skipwhite nextgroup=scalaTypeEquals,scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter
|
syn region scalaSquareBrackets matchgroup=Type start="\[" end="\]" skipwhite nextgroup=scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter
|
||||||
syn match scalaTypeOperator /[-+=:<>]\+/ contained
|
syn match scalaTypeOperator /[-+=:<>]\+/ contained
|
||||||
syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
|
syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
|
||||||
hi link scalaTypeOperator Keyword
|
hi link scalaTypeOperator Keyword
|
||||||
@@ -128,3 +156,17 @@ hi link scalaAnnotation PreProc
|
|||||||
|
|
||||||
syn match scalaTrailingComment "//.*$"
|
syn match scalaTrailingComment "//.*$"
|
||||||
hi link scalaTrailingComment Comment
|
hi link scalaTrailingComment Comment
|
||||||
|
|
||||||
|
syn match scalaAkkaFSM /goto([^)]*)\_s\+\<using\>/ contains=scalaAkkaFSMGotoUsing
|
||||||
|
syn match scalaAkkaFSM /stay\_s\+using/
|
||||||
|
syn match scalaAkkaFSM /^\s*stay\s*$/
|
||||||
|
syn match scalaAkkaFSM /when\ze([^)]*)/
|
||||||
|
syn match scalaAkkaFSM /startWith\ze([^)]*)/
|
||||||
|
syn match scalaAkkaFSM /initialize\ze()/
|
||||||
|
syn match scalaAkkaFSM /onTransition/
|
||||||
|
syn match scalaAkkaFSM /onTermination/
|
||||||
|
syn match scalaAkkaFSM /whenUnhandled/
|
||||||
|
syn match scalaAkkaFSMGotoUsing /\<using\>/
|
||||||
|
syn match scalaAkkaFSMGotoUsing /\<goto\>/
|
||||||
|
hi link scalaAkkaFSM PreProc
|
||||||
|
hi link scalaAkkaFSMGotoUsing PreProc
|
||||||
|
|||||||
@@ -35,8 +35,9 @@ syn keyword slimDocType contained html 5 1.1 strict frameset mobile basic
|
|||||||
syn match slimDocTypeKeyword "^\s*\(doctype\)\s\+" nextgroup=slimDocType
|
syn match slimDocTypeKeyword "^\s*\(doctype\)\s\+" nextgroup=slimDocType
|
||||||
|
|
||||||
syn keyword slimTodo FIXME TODO NOTE OPTIMIZE XXX contained
|
syn keyword slimTodo FIXME TODO NOTE OPTIMIZE XXX contained
|
||||||
|
syn keyword htmlTagName contained script
|
||||||
|
|
||||||
syn match slimTag "\w\+" contained contains=htmlTagName nextgroup=@slimComponent
|
syn match slimTag "\w\+[><]*" contained contains=htmlTagName nextgroup=@slimComponent
|
||||||
syn match slimIdChar "#{\@!" contained nextgroup=slimId
|
syn match slimIdChar "#{\@!" contained nextgroup=slimId
|
||||||
syn match slimId "\%(\w\|-\)\+" contained nextgroup=@slimComponent
|
syn match slimId "\%(\w\|-\)\+" contained nextgroup=@slimComponent
|
||||||
syn match slimClassChar "\." contained nextgroup=slimClass
|
syn match slimClassChar "\." contained nextgroup=slimClass
|
||||||
@@ -61,6 +62,7 @@ syn region slimInnerAttrString start=+\s*"+ skip=+\%(\\\\\)*\\"+ end=+"\s*+ cont
|
|||||||
syn region slimInnerAttrString start=+\s*'+ skip=+\%(\\\\\)*\\"+ end=+'\s*+ contained contains=slimInterpolation,slimInterpolationEscape nextgroup=slimAttr
|
syn region slimInnerAttrString start=+\s*'+ skip=+\%(\\\\\)*\\"+ end=+'\s*+ contained contains=slimInterpolation,slimInterpolationEscape nextgroup=slimAttr
|
||||||
|
|
||||||
syn region slimInterpolation matchgroup=slimInterpolationDelimiter start="#{" end="}" contains=@hamlRubyTop containedin=javascriptStringS,javascriptStringD,slimWrappedAttrs
|
syn region slimInterpolation matchgroup=slimInterpolationDelimiter start="#{" end="}" contains=@hamlRubyTop containedin=javascriptStringS,javascriptStringD,slimWrappedAttrs
|
||||||
|
syn region slimInterpolation matchgroup=slimInterpolationDelimiter start="#{{" end="}}" contains=@hamlRubyTop containedin=javascriptStringS,javascriptStringD,slimWrappedAttrs
|
||||||
syn match slimInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)"
|
syn match slimInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)"
|
||||||
|
|
||||||
syn region slimRuby matchgroup=slimRubyOutputChar start="\s*[=]\==[']\=" skip=",\s*$" end="$" contained contains=@slimRubyTop keepend
|
syn region slimRuby matchgroup=slimRubyOutputChar start="\s*[=]\==[']\=" skip=",\s*$" end="$" contained contains=@slimRubyTop keepend
|
||||||
@@ -77,6 +79,7 @@ syn match slimIEConditional "\%(^\s*/\)\@<=\[\s*if\>[^]]*]" contained containedi
|
|||||||
hi def link slimAttrString String
|
hi def link slimAttrString String
|
||||||
hi def link slimBegin String
|
hi def link slimBegin String
|
||||||
hi def link slimClass Type
|
hi def link slimClass Type
|
||||||
|
hi def link slimAttr Type
|
||||||
hi def link slimClassChar Type
|
hi def link slimClassChar Type
|
||||||
hi def link slimComment Comment
|
hi def link slimComment Comment
|
||||||
hi def link slimDocType Identifier
|
hi def link slimDocType Identifier
|
||||||
|
|||||||
@@ -317,7 +317,6 @@ endif
|
|||||||
" Based On: Tim Pope (sass.vim)
|
" Based On: Tim Pope (sass.vim)
|
||||||
|
|
||||||
syn case ignore
|
syn case ignore
|
||||||
syn region cssInclude start="@import" end="\n" contains=cssComment,cssFuncVal,cssRuleProp
|
|
||||||
|
|
||||||
syn cluster stylusCssSelectors contains=cssTagName,cssSelector,cssPseudo
|
syn cluster stylusCssSelectors contains=cssTagName,cssSelector,cssPseudo
|
||||||
syn cluster stylusCssValues contains=cssValueLength,cssValueInteger,cssValueNumber,cssValueAngle,cssValueTime,cssValueFrequency,cssColorVal,cssCommonVal,cssFontVal,cssListVal,cssTextVal,cssVisualVal,cssBorderVal,cssBackgroundVal,cssFuncVal,cssAdvancedVal
|
syn cluster stylusCssValues contains=cssValueLength,cssValueInteger,cssValueNumber,cssValueAngle,cssValueTime,cssValueFrequency,cssColorVal,cssCommonVal,cssFontVal,cssListVal,cssTextVal,cssVisualVal,cssBorderVal,cssBackgroundVal,cssFuncVal,cssAdvancedVal
|
||||||
@@ -345,6 +344,9 @@ syn match stylusFunction "\<\%(opposite-position\|image-size\|add-property\)\>(\
|
|||||||
syn keyword stylusVariable null true false arguments
|
syn keyword stylusVariable null true false arguments
|
||||||
syn keyword stylusControl if else unless for in return
|
syn keyword stylusControl if else unless for in return
|
||||||
|
|
||||||
|
syn match stylusImport "@\%(import\|require\)" nextgroup=stylusImportList
|
||||||
|
syn match stylusImportList "[^;]\+" contained contains=cssString.*,cssMediaType,cssURL
|
||||||
|
|
||||||
syn match stylusAmpersand "&"
|
syn match stylusAmpersand "&"
|
||||||
syn match stylusClass "[[:alnum:]_-]\+" contained
|
syn match stylusClass "[[:alnum:]_-]\+" contained
|
||||||
syn match stylusClassChar "\.[[:alnum:]_-]\@=" nextgroup=stylusClass
|
syn match stylusClassChar "\.[[:alnum:]_-]\@=" nextgroup=stylusClass
|
||||||
|
|||||||
Reference in New Issue
Block a user