mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f483aee0f | ||
|
|
b36260d015 | ||
|
|
6c198a3ca9 | ||
|
|
a4c9223257 | ||
|
|
d681cb59d3 | ||
|
|
0b50acdddf | ||
|
|
daa6fc6958 | ||
|
|
610f4c5701 | ||
|
|
f3833f5a39 | ||
|
|
fe26a3a7e6 | ||
|
|
548f7d672a | ||
|
|
10b28c4175 | ||
|
|
95bc6710a4 | ||
|
|
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
|
||||||
|
|||||||
29
README.md
29
README.md
@@ -8,11 +8,11 @@ A collection of language packs for Vim.
|
|||||||
One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
||||||
|
|
||||||
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
||||||
- It **installs 40x faster** (unparallelized), as language packs are not submoduled, but merged.
|
- It **installs 50+ times faster** than 50+ packages it consist of.
|
||||||
- It clones even faster as all unnecessary files are ignored (like enormous documentation from php support).
|
- Solid syntax and indentation support. Only the best language packs.
|
||||||
- Best syntax and indentation support. If someone releases better language pack, it will be replaced here.
|
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||||
- No support for esoteric languages (vim-polyglot supports modern ones like `slim` though).
|
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||||
- Each build is tested by automated Travis CI setup using vimrunner gem. Spee `spec` directory.
|
- Each build is tested by automated vimrunner script on CI. Spee `spec` directory.
|
||||||
|
|
||||||
\*To be completely honest, concatenated `ftdetect` script takes around `3ms` to load.
|
\*To be completely honest, concatenated `ftdetect` script takes around `3ms` to load.
|
||||||
|
|
||||||
@@ -25,24 +25,25 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
|||||||
|
|
||||||
## Language packs
|
## Language packs
|
||||||
|
|
||||||
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, ftdetect)
|
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent, ftdetect)
|
||||||
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
|
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
|
||||||
- [c/c++](https://github.com/vim-jp/cpp-vim) (syntax)
|
- [c/c++](https://github.com/vim-jp/cpp-vim) (syntax)
|
||||||
- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, autoload, ftplugin, ftdetect)
|
- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
- [css-color](https://github.com/gorodinskiy/vim-coloresque) (syntax)
|
|
||||||
- [csv](https://github.com/chrisbra/csv.vim) (syntax, ftplugin, ftdetect)
|
- [csv](https://github.com/chrisbra/csv.vim) (syntax, ftplugin, ftdetect)
|
||||||
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [dockerfile](https://github.com/honza/dockerfile.vim) (syntax, ftdetect)
|
- [dockerfile](https://github.com/honza/dockerfile.vim) (syntax, ftdetect)
|
||||||
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
|
- [emberscript](https://github.com/heartsentwined/vim-ember-script) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [erlang](https://github.com/oscarh/vimerl) (syntax, indent, compiler, autoload, ftplugin)
|
- [erlang](https://github.com/oscarh/vimerl) (syntax, indent, compiler, autoload, ftplugin)
|
||||||
- [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, compiler, 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)
|
||||||
|
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
|
||||||
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftdetect)
|
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftdetect)
|
||||||
- [json](https://github.com/leshill/vim-json) (syntax, ftdetect)
|
- [json](https://github.com/leshill/vim-json) (syntax, ftdetect)
|
||||||
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
||||||
@@ -52,11 +53,12 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
|||||||
- [nginx](https://github.com/mutewinter/nginx.vim) (syntax, ftdetect)
|
- [nginx](https://github.com/mutewinter/nginx.vim) (syntax, ftdetect)
|
||||||
- [ocaml](https://github.com/jrk/vim-ocaml) (syntax, indent, ftplugin)
|
- [ocaml](https://github.com/jrk/vim-ocaml) (syntax, indent, ftplugin)
|
||||||
- [octave](https://github.com/vim-scripts/octave.vim--) (syntax)
|
- [octave](https://github.com/vim-scripts/octave.vim--) (syntax)
|
||||||
- [perl](https://github.com/vim-perl/vim-perl) (syntax, indent, ftplugin)
|
- [opencl](https://github.com/petRUShka/vim-opencl) (syntax, indent, ftplugin, ftdetect)
|
||||||
|
- [perl](https://github.com/vim-perl/vim-perl) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [php](https://github.com/StanAngeloff/php.vim) (syntax)
|
- [php](https://github.com/StanAngeloff/php.vim) (syntax)
|
||||||
- [puppet](https://github.com/ajf/puppet-vim) (syntax, indent, ftplugin, ftdetect)
|
- [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, ftdetect)
|
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, ftdetect)
|
||||||
- [python](https://github.com/vim-scripts/python.vim--Vasiliev) (syntax)
|
- [python](https://github.com/mitsuhiko/vim-python-combined) (syntax, indent)
|
||||||
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin)
|
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin)
|
||||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
||||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
@@ -70,8 +72,11 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
|||||||
- [tomdoc](https://github.com/duwanis/tomdoc.vim) (syntax)
|
- [tomdoc](https://github.com/duwanis/tomdoc.vim) (syntax)
|
||||||
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, compiler, ftplugin, ftdetect)
|
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, compiler, ftplugin, ftdetect)
|
||||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
||||||
|
- [toml](https://github.com/cespare/vim-toml) (syntax, ftdetect)
|
||||||
- [twig](https://github.com/beyondwords/vim-twig) (syntax, ftplugin, ftdetect)
|
- [twig](https://github.com/beyondwords/vim-twig) (syntax, ftplugin, ftdetect)
|
||||||
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
||||||
|
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
||||||
|
- [css-color](https://github.com/ap/vim-css-color) (autoload, syntax)
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
11
after/ftplugin/puppet.vim
Normal file
11
after/ftplugin/puppet.vim
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
inoremap <buffer> <silent> > ><Esc>:call <SID>puppetalign()<CR>A
|
||||||
|
function! s:puppetalign()
|
||||||
|
let p = '^\s*\w+\s*[=+]>.*$'
|
||||||
|
let lineContainsHashrocket = getline('.') =~# '^\s*\w+\s*[=+]>'
|
||||||
|
let hashrocketOnPrevLine = getline(line('.') - 1) =~# p
|
||||||
|
let hashrocketOnNextLine = getline(line('.') + 1) =~# p
|
||||||
|
if exists(':Tabularize') " && lineContainsHashrocket && (hashrocketOnPrevLine || hashrocketOnNextLine)
|
||||||
|
Tabularize /=>/l1
|
||||||
|
normal! 0
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
@@ -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")
|
||||||
|
|||||||
6
after/syntax/css.vim
Normal file
6
after/syntax/css.vim
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
call css_color#init('css', 'cssMediaBlock,cssFunction,cssDefinition,cssAttrRegion,cssComment')
|
||||||
@@ -1,632 +0,0 @@
|
|||||||
" Name: Coloresque
|
|
||||||
" Language: color preview in vim
|
|
||||||
" Author: Gorodinskii Konstantin <gor.konstantin@gmail.com>
|
|
||||||
" Licence: Vim license
|
|
||||||
" Version: 0.9.5
|
|
||||||
" based on
|
|
||||||
" https://github.com/ap/vim-css-color
|
|
||||||
" https://github.com/lilydjwg/colorizer
|
|
||||||
" vim:et:ts=2 sw=2 sts=2
|
|
||||||
|
|
||||||
let s:hex={}
|
|
||||||
let b:matchescache = {}
|
|
||||||
let b:color_pattern = {}
|
|
||||||
|
|
||||||
let w:colorDictRegExp=''
|
|
||||||
for i in range(0, 255)
|
|
||||||
let s:hex[ printf( '%02x', i ) ] = i
|
|
||||||
endfor
|
|
||||||
|
|
||||||
let s:black = '#000000'
|
|
||||||
let s:white = '#ffffff'
|
|
||||||
|
|
||||||
function! s:FGForBG(color)
|
|
||||||
" pick suitable text color given a background color
|
|
||||||
let color = tolower(a:color)
|
|
||||||
let r = s:hex[color[0:1]]
|
|
||||||
let g = s:hex[color[2:3]]
|
|
||||||
let b = s:hex[color[4:5]]
|
|
||||||
return r*30 + g*59 + b*11 > 12000 ? s:black : s:white
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let s:color_prefix = 'gui'
|
|
||||||
let s:fg_color_calc = 'let color = "#" . toupper(a:color)'
|
|
||||||
|
|
||||||
function! s:RestoreColors()
|
|
||||||
for part in keys(b:color_pattern)
|
|
||||||
|
|
||||||
"if b:color_pattern[part]=="ffffff"
|
|
||||||
"echoe part
|
|
||||||
"endif
|
|
||||||
|
|
||||||
call s:MatchColorValue(b:color_pattern[part], part)
|
|
||||||
"echoe color
|
|
||||||
"echoe b:color_pattern[color]
|
|
||||||
"let group = 'cssColor' . tolower(strpart(b:color_pattern[part]["color"], 1))
|
|
||||||
""exe 'syn match' group '/'.escape(pattern, '/').'/ contained'
|
|
||||||
"exe 'syn cluster cssColors add='.group
|
|
||||||
"exe 'hi' group s:color_prefix.'bg='.b:color_pattern[part]["bg"] s:color_prefix.'fg='.b:color_pattern[part]["fg"]
|
|
||||||
|
|
||||||
"if !exists('b:matchescache')
|
|
||||||
"let b:matchescache={}
|
|
||||||
"endif
|
|
||||||
|
|
||||||
"let b:matchescache[part] = matchadd(group, part, -1)
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:MatchColorValue(color, part)
|
|
||||||
if ! len(a:color) | return | endif
|
|
||||||
|
|
||||||
let group = 'cssColor' . tolower(a:color)
|
|
||||||
|
|
||||||
if !exists('b:color_pattern[a:part]')
|
|
||||||
exe s:fg_color_calc
|
|
||||||
exe 'syn cluster cssColors add='.group
|
|
||||||
exe 'hi' group s:color_prefix.'bg='.color s:color_prefix.'fg='.s:FGForBG(a:color)
|
|
||||||
let b:color_pattern[a:part] = a:color
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !exists('b:matchescache')
|
|
||||||
let b:matchescache = {}
|
|
||||||
elseif !exists('b:matchescache[a:part]')
|
|
||||||
let b:matchescache[a:part] = matchadd(group, a:part, -1)
|
|
||||||
endif
|
|
||||||
|
|
||||||
"call add(w:matchescache, matchadd(group, a:part, -1))
|
|
||||||
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:HexForRGBValue(r,g,b)
|
|
||||||
" Convert 80% -> 204, 100% -> 255, etc.
|
|
||||||
let rgb = map( [a:r,a:g,a:b], 'v:val =~ "%$" ? ( 255 * v:val ) / 100 : v:val' )
|
|
||||||
return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:HexForHSLValue(h,s,l)
|
|
||||||
" Convert 80% -> 0.8, 100% -> 1.0, etc.
|
|
||||||
let [s,l] = map( [a:s, a:l], 'v:val =~ "%$" ? v:val / 100.0 : str2float(v:val)' )
|
|
||||||
" algorithm transcoded to vim from http://www.w3.org/TR/css3-color/#hsl-color
|
|
||||||
let hh = ( a:h % 360 ) / 360.0
|
|
||||||
let m2 = l <= 0.5 ? l * ( s + 1 ) : l + s - l * s
|
|
||||||
let m1 = l * 2 - m2
|
|
||||||
let rgb = []
|
|
||||||
for h in [ hh + (1/3.0), hh, hh - (1/3.0) ]
|
|
||||||
let h = h < 0 ? h + 1 : h > 1 ? h - 1 : h
|
|
||||||
let v =
|
|
||||||
\ h * 6 < 1 ? m1 + ( m2 - m1 ) * h * 6 :
|
|
||||||
\ h * 2 < 1 ? m2 :
|
|
||||||
\ h * 3 < 2 ? m1 + ( m2 - m1 ) * ( 2/3.0 - h ) * 6 :
|
|
||||||
\ m1
|
|
||||||
if v > 1.0 | return '' | endif
|
|
||||||
let rgb += [ float2nr( 255 * v ) ]
|
|
||||||
endfor
|
|
||||||
return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:ClearMatches()
|
|
||||||
call clearmatches()
|
|
||||||
|
|
||||||
if !exists('b:matchescache')
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
"for i in values(b:matchescache)
|
|
||||||
"call matchdelete(i)
|
|
||||||
"endfor
|
|
||||||
unlet b:matchescache
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:VimCssInit(update)
|
|
||||||
|
|
||||||
if a:update==1
|
|
||||||
call s:ClearMatches()
|
|
||||||
endif
|
|
||||||
:set isk+=-
|
|
||||||
:set isk+=#
|
|
||||||
:set isk+=.
|
|
||||||
|
|
||||||
if len(keys(b:color_pattern))>0
|
|
||||||
call s:RestoreColors()
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
"let b:matchescache = {}
|
|
||||||
|
|
||||||
call s:AdditionalColors()
|
|
||||||
|
|
||||||
"for i in range(1, line("$"))
|
|
||||||
call s:PreviewCSSColor(join(getline(1,'$'), "\n"))
|
|
||||||
"endfor
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:AdditionalColors()
|
|
||||||
"if exists('&b:colorDictRegExp')&&b:colorDictRegExp!=''
|
|
||||||
"return
|
|
||||||
"endif
|
|
||||||
|
|
||||||
" w3c Colors
|
|
||||||
" plus extra colors
|
|
||||||
let w:colorDict = {
|
|
||||||
\'black': '#000000',
|
|
||||||
\'red': '#ff0000',
|
|
||||||
\'silver': '#c0c0c0',
|
|
||||||
\'gray': '#808080',
|
|
||||||
\'white': '#ffffff',
|
|
||||||
\'maroon': '#800000',
|
|
||||||
\'purple': '#800080',
|
|
||||||
\'fuchsia': '#ff00ff',
|
|
||||||
\'green': '#008000',
|
|
||||||
\'lime': '#00ff00',
|
|
||||||
\'olive': '#808000',
|
|
||||||
\'yellow': '#ffff00',
|
|
||||||
\'navy': '#000080',
|
|
||||||
\'blue': '#0000ff',
|
|
||||||
\'teal': '#008080',
|
|
||||||
\'aqua': '#00ffff',
|
|
||||||
\'aliceblue': '#f0f8ff',
|
|
||||||
\'antiquewhite': '#faebd7',
|
|
||||||
\'aquamarine': '#7fffd4',
|
|
||||||
\'azure': '#f0ffff',
|
|
||||||
\'beige': '#f5f5dc',
|
|
||||||
\'bisque': '#ffe4c4',
|
|
||||||
\'blanchedalmond': '#ffebcd',
|
|
||||||
\'blueviolet': '#8a2be2',
|
|
||||||
\'brown': '#a52a2a',
|
|
||||||
\'burlywood': '#deb887',
|
|
||||||
\'cadetblue': '#5f9ea0',
|
|
||||||
\'chartreuse': '#7fff00',
|
|
||||||
\'chocolate': '#d2691e',
|
|
||||||
\'coral': '#ff7f50',
|
|
||||||
\'cornflowerblue': '#6495ed',
|
|
||||||
\'cornsilk': '#fff8dc',
|
|
||||||
\'crimson': '#dc143c',
|
|
||||||
\'cyan': '#00ffff',
|
|
||||||
\'darkblue': '#00008b',
|
|
||||||
\'darkcyan': '#008b8b',
|
|
||||||
\'darkgoldenrod': '#b8860b',
|
|
||||||
\'darkgray': '#a9a9a9',
|
|
||||||
\'darkgreen': '#006400',
|
|
||||||
\'darkgrey': '#a9a9a9',
|
|
||||||
\'darkkhaki': '#bdb76b',
|
|
||||||
\'darkmagenta': '#8b008b',
|
|
||||||
\'darkolivegreen': '#556b2f',
|
|
||||||
\'darkorchid': '#9932cc',
|
|
||||||
\'darkred': '#8b0000',
|
|
||||||
\'darksalmon': '#e9967a',
|
|
||||||
\'darkseagreen': '#8fbc8f',
|
|
||||||
\'darkslateblue': '#483d8b',
|
|
||||||
\'darkslategray': '#2f4f4f',
|
|
||||||
\'darkslategrey': '#2f4f4f',
|
|
||||||
\'darkturquoise': '#00ced1',
|
|
||||||
\'darkviolet': '#9400d3',
|
|
||||||
\'darkorange': '#ff8c00',
|
|
||||||
\'deeppink': '#ff1493',
|
|
||||||
\'deepskyblue': '#00bfff',
|
|
||||||
\'dimgray': '#696969',
|
|
||||||
\'dimgrey': '#696969',
|
|
||||||
\'dodgerblue': '#1e90ff',
|
|
||||||
\'firebrick': '#b22222',
|
|
||||||
\'floralwhite': '#fffaf0',
|
|
||||||
\'forestgreen': '#228b22',
|
|
||||||
\'gainsboro': '#dcdcdc',
|
|
||||||
\'ghostwhite': '#f8f8ff',
|
|
||||||
\'gold': '#ffd700',
|
|
||||||
\'goldenrod': '#daa520',
|
|
||||||
\'greenyellow': '#adff2f',
|
|
||||||
\'grey': '#808080',
|
|
||||||
\'honeydew': '#f0fff0',
|
|
||||||
\'hotpink': '#ff69b4',
|
|
||||||
\'indianred': '#cd5c5c',
|
|
||||||
\'indigo': '#4b0082',
|
|
||||||
\'ivory': '#fffff0',
|
|
||||||
\'khaki': '#f0e68c',
|
|
||||||
\'lavender': '#e6e6fa',
|
|
||||||
\'lavenderblush': '#fff0f5',
|
|
||||||
\'lawngreen': '#7cfc00',
|
|
||||||
\'lemonchiffon': '#fffacd',
|
|
||||||
\'lightblue': '#add8e6',
|
|
||||||
\'lightcoral': '#f08080',
|
|
||||||
\'lightcyan': '#e0ffff',
|
|
||||||
\'lightgoldenrodyellow': '#fafad2',
|
|
||||||
\'lightgray': '#d3d3d3',
|
|
||||||
\'lightgreen': '#90ee90',
|
|
||||||
\'lightgrey': '#d3d3d3',
|
|
||||||
\'lightpink': '#ffb6c1',
|
|
||||||
\'lightsalmon': '#ffa07a',
|
|
||||||
\'lightseagreen': '#20b2aa',
|
|
||||||
\'lightskyblue': '#87cefa',
|
|
||||||
\'lightslategray': '#778899',
|
|
||||||
\'lightslategrey': '#778899',
|
|
||||||
\'lightsteelblue': '#b0c4de',
|
|
||||||
\'lightyellow': '#ffffe0',
|
|
||||||
\'limegreen': '#32cd32',
|
|
||||||
\'linen': '#faf0e6',
|
|
||||||
\'magenta': '#ff00ff',
|
|
||||||
\'mediumaquamarine': '#66cdaa',
|
|
||||||
\'mediumblue': '#0000cd',
|
|
||||||
\'mediumorchid': '#ba55d3',
|
|
||||||
\'mediumpurple': '#9370d8',
|
|
||||||
\'mediumseagreen': '#3cb371',
|
|
||||||
\'mediumslateblue': '#7b68ee',
|
|
||||||
\'mediumspringgreen': '#00fa9a',
|
|
||||||
\'mediumturquoise': '#48d1cc',
|
|
||||||
\'mediumvioletred': '#c71585',
|
|
||||||
\'midnightblue': '#191970',
|
|
||||||
\'mintcream': '#f5fffa',
|
|
||||||
\'mistyrose': '#ffe4e1',
|
|
||||||
\'moccasin': '#ffe4b5',
|
|
||||||
\'navajowhite': '#ffdead',
|
|
||||||
\'oldlace': '#fdf5e6',
|
|
||||||
\'olivedrab': '#6b8e23',
|
|
||||||
\'orange': '#ffa500',
|
|
||||||
\'orangered': '#ff4500',
|
|
||||||
\'orchid': '#da70d6',
|
|
||||||
\'palegoldenrod': '#eee8aa',
|
|
||||||
\'palegreen': '#98fb98',
|
|
||||||
\'paleturquoise': '#afeeee',
|
|
||||||
\'palevioletred': '#d87093',
|
|
||||||
\'papayawhip': '#ffefd5',
|
|
||||||
\'peachpuff': '#ffdab9',
|
|
||||||
\'peru': '#cd853f',
|
|
||||||
\'pink': '#ffc0cb',
|
|
||||||
\'plum': '#dda0dd',
|
|
||||||
\'powderblue': '#b0e0e6',
|
|
||||||
\'rosybrown': '#bc8f8f',
|
|
||||||
\'royalblue': '#4169e1',
|
|
||||||
\'saddlebrown': '#8b4513',
|
|
||||||
\'salmon': '#fa8072',
|
|
||||||
\'sandybrown': '#f4a460',
|
|
||||||
\'seagreen': '#2e8b57',
|
|
||||||
\'seashell': '#fff5ee',
|
|
||||||
\'sienna': '#a0522d',
|
|
||||||
\'skyblue': '#87ceeb',
|
|
||||||
\'slateblue': '#6a5acd',
|
|
||||||
\'slategray': '#708090',
|
|
||||||
\'slategrey': '#708090',
|
|
||||||
\'snow': '#fffafa',
|
|
||||||
\'springgreen': '#00ff7f',
|
|
||||||
\'steelblue': '#4682b4',
|
|
||||||
\'tan': '#d2b48c',
|
|
||||||
\'thistle': '#d8bfd8',
|
|
||||||
\'tomato': '#ff6347',
|
|
||||||
\'turquoise': '#40e0d0',
|
|
||||||
\'violet': '#ee82ee',
|
|
||||||
\'wheat': '#f5deb3',
|
|
||||||
\'whitesmoke': '#f5f5f5',
|
|
||||||
\'yellowgreen': '#9acd32'
|
|
||||||
\}
|
|
||||||
|
|
||||||
"let w:colorDictRegExp = '\('
|
|
||||||
for _color in keys(w:colorDict)
|
|
||||||
"let w:colorDictRegExp.='\<'._color.'\>\|'
|
|
||||||
call s:MatchColorValue(strpart(w:colorDict[tolower(_color)], 1), '\<\c'._color.'\>')
|
|
||||||
endfor
|
|
||||||
"let w:colorDictRegExp=strpart(w:colorDictRegExp, 0, len(w:colorDictRegExp)-2).'\)\c'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:ProcessByLine(w)
|
|
||||||
call s:PreviewCSSColor(getline(a:w))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:PreviewCSSColor(str)
|
|
||||||
"if !exists('&w:colorDictRegExp')
|
|
||||||
"endif
|
|
||||||
|
|
||||||
let line=a:str "getline(a:w)
|
|
||||||
let colorexps = {
|
|
||||||
\ 'hex' : '#[0-9A-Fa-f]\{3\}\>\|#[0-9A-Fa-f]\{6\}\>',
|
|
||||||
\ 'rgba' : 'rgba\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)',
|
|
||||||
\ 'hsla' : 'hsla\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)'
|
|
||||||
\ }
|
|
||||||
"\ 'color': w:colorDictRegExp
|
|
||||||
|
|
||||||
"let foundcolor=''
|
|
||||||
|
|
||||||
for exp in keys(colorexps)
|
|
||||||
let place=0
|
|
||||||
|
|
||||||
if exists("foundcolor")
|
|
||||||
unlet foundcolor
|
|
||||||
endif
|
|
||||||
|
|
||||||
while 1
|
|
||||||
if exp=='rgba'||exp=='hsla'
|
|
||||||
let foundcolor = matchlist(a:str, colorexps[exp], place)
|
|
||||||
else
|
|
||||||
let foundcolor = matchstr(a:str, colorexps[exp], place)
|
|
||||||
endif
|
|
||||||
|
|
||||||
let place = matchend(a:str, colorexps[exp], place)
|
|
||||||
|
|
||||||
if empty(foundcolor)
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exp=='hex'
|
|
||||||
let part = foundcolor.'\>'
|
|
||||||
else
|
|
||||||
let part = foundcolor[0]
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exp=='hex'
|
|
||||||
if len(foundcolor) == 4
|
|
||||||
let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
|
|
||||||
endif
|
|
||||||
call s:MatchColorValue(strpart(foundcolor, 1), part)
|
|
||||||
elseif exp=='rgba'
|
|
||||||
"TODO get rid of duplicated variables
|
|
||||||
call s:MatchColorValue(s:HexForRGBValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
|
|
||||||
elseif exp=='hsla'
|
|
||||||
call s:MatchColorValue(s:HexForHSLValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
endfor
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if has("gui_running") || &t_Co==256
|
|
||||||
" HACK modify cssDefinition to add @cssColors to its contains
|
|
||||||
redir => cssdef
|
|
||||||
silent! syn list cssDefinition
|
|
||||||
redir END
|
|
||||||
if len( cssdef )
|
|
||||||
for out in split( cssdef, "\n" )
|
|
||||||
if out !~ '^cssDefinition ' | continue | endif
|
|
||||||
let out = substitute( out, ' \+xxx \+', ' ', '' )
|
|
||||||
let out = substitute( out, ' contains=\zs', '@cssColors,', '' )
|
|
||||||
exe 'syn region' out
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ! has('gui_running')
|
|
||||||
|
|
||||||
let s:black = 0
|
|
||||||
let s:white = 15
|
|
||||||
|
|
||||||
let s:color_prefix = 'cterm'
|
|
||||||
let s:fg_color_calc = 'let color = s:XTermColorForRGB(a:color)'
|
|
||||||
|
|
||||||
" preset 16 vt100 colors
|
|
||||||
let s:xtermcolor = [
|
|
||||||
\ [ 0x00, 0x00, 0x00, 0 ],
|
|
||||||
\ [ 0xCD, 0x00, 0x00, 1 ],
|
|
||||||
\ [ 0x00, 0xCD, 0x00, 2 ],
|
|
||||||
\ [ 0xCD, 0xCD, 0x00, 3 ],
|
|
||||||
\ [ 0x00, 0x00, 0xEE, 4 ],
|
|
||||||
\ [ 0xCD, 0x00, 0xCD, 5 ],
|
|
||||||
\ [ 0x00, 0xCD, 0xCD, 6 ],
|
|
||||||
\ [ 0xE5, 0xE5, 0xE5, 7 ],
|
|
||||||
\ [ 0x7F, 0x7F, 0x7F, 8 ],
|
|
||||||
\ [ 0xFF, 0x00, 0x00, 9 ],
|
|
||||||
\ [ 0x00, 0xFF, 0x00, 10 ],
|
|
||||||
\ [ 0xFF, 0xFF, 0x00, 11 ],
|
|
||||||
\ [ 0x5C, 0x5C, 0xFF, 12 ],
|
|
||||||
\ [ 0xFF, 0x00, 0xFF, 13 ],
|
|
||||||
\ [ 0x00, 0xFF, 0xFF, 14 ],
|
|
||||||
\ [ 0xFF, 0xFF, 0xFF, 15 ]]
|
|
||||||
" grayscale ramp
|
|
||||||
" (value is 8+10*lum for lum in 0..23)
|
|
||||||
let s:xtermcolor += [
|
|
||||||
\ [ 0x08, 0x08, 0x08, 232 ],
|
|
||||||
\ [ 0x12, 0x12, 0x12, 233 ],
|
|
||||||
\ [ 0x1C, 0x1C, 0x1C, 234 ],
|
|
||||||
\ [ 0x26, 0x26, 0x26, 235 ],
|
|
||||||
\ [ 0x30, 0x30, 0x30, 236 ],
|
|
||||||
\ [ 0x3A, 0x3A, 0x3A, 237 ],
|
|
||||||
\ [ 0x44, 0x44, 0x44, 238 ],
|
|
||||||
\ [ 0x4E, 0x4E, 0x4E, 239 ],
|
|
||||||
\ [ 0x58, 0x58, 0x58, 240 ],
|
|
||||||
\ [ 0x62, 0x62, 0x62, 241 ],
|
|
||||||
\ [ 0x6C, 0x6C, 0x6C, 242 ],
|
|
||||||
\ [ 0x76, 0x76, 0x76, 243 ],
|
|
||||||
\ [ 0x80, 0x80, 0x80, 244 ],
|
|
||||||
\ [ 0x8A, 0x8A, 0x8A, 245 ],
|
|
||||||
\ [ 0x94, 0x94, 0x94, 246 ],
|
|
||||||
\ [ 0x9E, 0x9E, 0x9E, 247 ],
|
|
||||||
\ [ 0xA8, 0xA8, 0xA8, 248 ],
|
|
||||||
\ [ 0xB2, 0xB2, 0xB2, 249 ],
|
|
||||||
\ [ 0xBC, 0xBC, 0xBC, 250 ],
|
|
||||||
\ [ 0xC6, 0xC6, 0xC6, 251 ],
|
|
||||||
\ [ 0xD0, 0xD0, 0xD0, 252 ],
|
|
||||||
\ [ 0xDA, 0xDA, 0xDA, 253 ],
|
|
||||||
\ [ 0xE4, 0xE4, 0xE4, 254 ],
|
|
||||||
\ [ 0xEE, 0xEE, 0xEE, 255 ]]
|
|
||||||
|
|
||||||
" the 6 values used in the xterm color cube
|
|
||||||
" 0 95 135 175 215 255
|
|
||||||
let s:cubergb = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ]
|
|
||||||
|
|
||||||
" 0..255 mapped to 0..5 based on the color cube values
|
|
||||||
let s:xvquant = repeat([0],48)
|
|
||||||
\ + repeat([1],68)
|
|
||||||
\ + repeat([2],40)
|
|
||||||
\ + repeat([3],40)
|
|
||||||
\ + repeat([4],40)
|
|
||||||
\ + repeat([5],20)
|
|
||||||
" tweak the mapping for the exact matches (0 and 1 already correct)
|
|
||||||
let s:xvquant[s:cubergb[2]] = 2
|
|
||||||
let s:xvquant[s:cubergb[3]] = 3
|
|
||||||
let s:xvquant[s:cubergb[4]] = 4
|
|
||||||
let s:xvquant[s:cubergb[5]] = 5
|
|
||||||
|
|
||||||
" selects the nearest xterm color for a rgb value like #FF0000
|
|
||||||
function! s:XTermColorForRGB(color)
|
|
||||||
let best_match=0
|
|
||||||
let smallest_distance = 10000000000
|
|
||||||
let color = tolower(a:color)
|
|
||||||
let r = s:hex[color[0:1]]
|
|
||||||
let g = s:hex[color[2:3]]
|
|
||||||
let b = s:hex[color[4:5]]
|
|
||||||
|
|
||||||
let vr = s:xvquant[r]
|
|
||||||
let vg = s:xvquant[g]
|
|
||||||
let vb = s:xvquant[b]
|
|
||||||
let cidx = vr * 36 + vg * 6 + vb + 16
|
|
||||||
let ccol = [ s:cubergb[vr], s:cubergb[vg], s:cubergb[vb], cidx ]
|
|
||||||
|
|
||||||
for [tr,tg,tb,idx] in [ ccol ] + s:xtermcolor
|
|
||||||
let dr = tr - r
|
|
||||||
let dg = tg - g
|
|
||||||
let db = tb - b
|
|
||||||
let distance = dr*dr + dg*dg + db*db
|
|
||||||
if distance == 0 | return idx | endif
|
|
||||||
if distance > smallest_distance | continue | endif
|
|
||||||
let smallest_distance = distance
|
|
||||||
let best_match = idx
|
|
||||||
endfor
|
|
||||||
return best_match
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
hi cssColor000000 guibg=#000000 guifg=#FFFFFF ctermbg=16 ctermfg=231 | syn cluster cssColors add=cssColor000000
|
|
||||||
hi cssColor000080 guibg=#000080 guifg=#FFFFFF ctermbg=235 ctermfg=231 | syn cluster cssColors add=cssColor000080
|
|
||||||
hi cssColor00008b guibg=#00008B guifg=#FFFFFF ctermbg=4 ctermfg=231 | syn cluster cssColors add=cssColor00008b
|
|
||||||
hi cssColor0000cd guibg=#0000CD guifg=#FFFFFF ctermbg=4 ctermfg=231 | syn cluster cssColors add=cssColor0000cd
|
|
||||||
hi cssColor0000ff guibg=#0000FF guifg=#FFFFFF ctermbg=4 ctermfg=231 | syn cluster cssColors add=cssColor0000ff
|
|
||||||
hi cssColor006400 guibg=#006400 guifg=#FFFFFF ctermbg=235 ctermfg=231 | syn cluster cssColors add=cssColor006400
|
|
||||||
hi cssColor008000 guibg=#008000 guifg=#FFFFFF ctermbg=2 ctermfg=231 | syn cluster cssColors add=cssColor008000
|
|
||||||
hi cssColor008080 guibg=#008080 guifg=#FFFFFF ctermbg=30 ctermfg=231 | syn cluster cssColors add=cssColor008080
|
|
||||||
hi cssColor008b8b guibg=#008B8B guifg=#FFFFFF ctermbg=30 ctermfg=231 | syn cluster cssColors add=cssColor008b8b
|
|
||||||
hi cssColor00bfff guibg=#00BFFF guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00bfff
|
|
||||||
hi cssColor00ced1 guibg=#00CED1 guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00ced1
|
|
||||||
hi cssColor00fa9a guibg=#00FA9A guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00fa9a
|
|
||||||
hi cssColor00ff00 guibg=#00FF00 guifg=#000000 ctermbg=10 ctermfg=16 | syn cluster cssColors add=cssColor00ff00
|
|
||||||
hi cssColor00ff7f guibg=#00FF7F guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00ff7f
|
|
||||||
hi cssColor00ffff guibg=#00FFFF guifg=#000000 ctermbg=51 ctermfg=16 | syn cluster cssColors add=cssColor00ffff
|
|
||||||
hi cssColor191970 guibg=#191970 guifg=#FFFFFF ctermbg=237 ctermfg=231 | syn cluster cssColors add=cssColor191970
|
|
||||||
hi cssColor1e90ff guibg=#1E90FF guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor1e90ff
|
|
||||||
hi cssColor20b2aa guibg=#20B2AA guifg=#000000 ctermbg=37 ctermfg=16 | syn cluster cssColors add=cssColor20b2aa
|
|
||||||
hi cssColor228b22 guibg=#228B22 guifg=#FFFFFF ctermbg=2 ctermfg=231 | syn cluster cssColors add=cssColor228b22
|
|
||||||
hi cssColor2e8b57 guibg=#2E8B57 guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor2e8b57
|
|
||||||
hi cssColor2f4f4f guibg=#2F4F4F guifg=#FFFFFF ctermbg=238 ctermfg=231 | syn cluster cssColors add=cssColor2f4f4f
|
|
||||||
hi cssColor32cd32 guibg=#32CD32 guifg=#000000 ctermbg=2 ctermfg=16 | syn cluster cssColors add=cssColor32cd32
|
|
||||||
hi cssColor3cb371 guibg=#3CB371 guifg=#000000 ctermbg=71 ctermfg=16 | syn cluster cssColors add=cssColor3cb371
|
|
||||||
hi cssColor40e0d0 guibg=#40E0D0 guifg=#000000 ctermbg=80 ctermfg=16 | syn cluster cssColors add=cssColor40e0d0
|
|
||||||
hi cssColor4169e1 guibg=#4169E1 guifg=#FFFFFF ctermbg=12 ctermfg=231 | syn cluster cssColors add=cssColor4169e1
|
|
||||||
hi cssColor4682b4 guibg=#4682B4 guifg=#FFFFFF ctermbg=67 ctermfg=231 | syn cluster cssColors add=cssColor4682b4
|
|
||||||
hi cssColor483d8b guibg=#483D8B guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor483d8b
|
|
||||||
hi cssColor48d1cc guibg=#48D1CC guifg=#000000 ctermbg=80 ctermfg=16 | syn cluster cssColors add=cssColor48d1cc
|
|
||||||
hi cssColor4b0082 guibg=#4B0082 guifg=#FFFFFF ctermbg=238 ctermfg=231 | syn cluster cssColors add=cssColor4b0082
|
|
||||||
hi cssColor556b2f guibg=#556B2F guifg=#FFFFFF ctermbg=239 ctermfg=231 | syn cluster cssColors add=cssColor556b2f
|
|
||||||
hi cssColor5f9ea0 guibg=#5F9EA0 guifg=#000000 ctermbg=73 ctermfg=16 | syn cluster cssColors add=cssColor5f9ea0
|
|
||||||
hi cssColor6495ed guibg=#6495ED guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor6495ed
|
|
||||||
hi cssColor66cdaa guibg=#66CDAA guifg=#000000 ctermbg=79 ctermfg=16 | syn cluster cssColors add=cssColor66cdaa
|
|
||||||
hi cssColor696969 guibg=#696969 guifg=#FFFFFF ctermbg=242 ctermfg=231 | syn cluster cssColors add=cssColor696969
|
|
||||||
hi cssColor6a5acd guibg=#6A5ACD guifg=#FFFFFF ctermbg=12 ctermfg=231 | syn cluster cssColors add=cssColor6a5acd
|
|
||||||
hi cssColor6b8e23 guibg=#6B8E23 guifg=#FFFFFF ctermbg=241 ctermfg=231 | syn cluster cssColors add=cssColor6b8e23
|
|
||||||
hi cssColor708090 guibg=#708090 guifg=#000000 ctermbg=66 ctermfg=16 | syn cluster cssColors add=cssColor708090
|
|
||||||
hi cssColor778899 guibg=#778899 guifg=#000000 ctermbg=102 ctermfg=16 | syn cluster cssColors add=cssColor778899
|
|
||||||
hi cssColor7b68ee guibg=#7B68EE guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor7b68ee
|
|
||||||
hi cssColor7cfc00 guibg=#7CFC00 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColor7cfc00
|
|
||||||
hi cssColor7fff00 guibg=#7FFF00 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColor7fff00
|
|
||||||
hi cssColor7fffd4 guibg=#7FFFD4 guifg=#000000 ctermbg=122 ctermfg=16 | syn cluster cssColors add=cssColor7fffd4
|
|
||||||
hi cssColor800000 guibg=#800000 guifg=#FFFFFF ctermbg=88 ctermfg=231 | syn cluster cssColors add=cssColor800000
|
|
||||||
hi cssColor800080 guibg=#800080 guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor800080
|
|
||||||
hi cssColor808000 guibg=#808000 guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor808000
|
|
||||||
hi cssColor808080 guibg=#808080 guifg=#000000 ctermbg=244 ctermfg=16 | syn cluster cssColors add=cssColor808080
|
|
||||||
hi cssColor87ceeb guibg=#87CEEB guifg=#000000 ctermbg=117 ctermfg=16 | syn cluster cssColors add=cssColor87ceeb
|
|
||||||
hi cssColor87cefa guibg=#87CEFA guifg=#000000 ctermbg=117 ctermfg=16 | syn cluster cssColors add=cssColor87cefa
|
|
||||||
hi cssColor8a2be2 guibg=#8A2BE2 guifg=#FFFFFF ctermbg=12 ctermfg=231 | syn cluster cssColors add=cssColor8a2be2
|
|
||||||
hi cssColor8b0000 guibg=#8B0000 guifg=#FFFFFF ctermbg=88 ctermfg=231 | syn cluster cssColors add=cssColor8b0000
|
|
||||||
hi cssColor8b008b guibg=#8B008B guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColor8b008b
|
|
||||||
hi cssColor8b4513 guibg=#8B4513 guifg=#FFFFFF ctermbg=94 ctermfg=231 | syn cluster cssColors add=cssColor8b4513
|
|
||||||
hi cssColor8fbc8f guibg=#8FBC8F guifg=#000000 ctermbg=108 ctermfg=16 | syn cluster cssColors add=cssColor8fbc8f
|
|
||||||
hi cssColor90ee90 guibg=#90EE90 guifg=#000000 ctermbg=249 ctermfg=16 | syn cluster cssColors add=cssColor90ee90
|
|
||||||
hi cssColor9370d8 guibg=#9370D8 guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor9370d8
|
|
||||||
hi cssColor9400d3 guibg=#9400D3 guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColor9400d3
|
|
||||||
hi cssColor98fb98 guibg=#98FB98 guifg=#000000 ctermbg=250 ctermfg=16 | syn cluster cssColors add=cssColor98fb98
|
|
||||||
hi cssColor9932cc guibg=#9932CC guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColor9932cc
|
|
||||||
hi cssColor9acd32 guibg=#9ACD32 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColor9acd32
|
|
||||||
hi cssColora0522d guibg=#A0522D guifg=#FFFFFF ctermbg=130 ctermfg=231 | syn cluster cssColors add=cssColora0522d
|
|
||||||
hi cssColora52a2a guibg=#A52A2A guifg=#FFFFFF ctermbg=124 ctermfg=231 | syn cluster cssColors add=cssColora52a2a
|
|
||||||
hi cssColora9a9a9 guibg=#A9A9A9 guifg=#000000 ctermbg=248 ctermfg=16 | syn cluster cssColors add=cssColora9a9a9
|
|
||||||
hi cssColoradd8e6 guibg=#ADD8E6 guifg=#000000 ctermbg=152 ctermfg=16 | syn cluster cssColors add=cssColoradd8e6
|
|
||||||
hi cssColoradff2f guibg=#ADFF2F guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColoradff2f
|
|
||||||
hi cssColorafeeee guibg=#AFEEEE guifg=#000000 ctermbg=159 ctermfg=16 | syn cluster cssColors add=cssColorafeeee
|
|
||||||
hi cssColorb0c4de guibg=#B0C4DE guifg=#000000 ctermbg=152 ctermfg=16 | syn cluster cssColors add=cssColorb0c4de
|
|
||||||
hi cssColorb0e0e6 guibg=#B0E0E6 guifg=#000000 ctermbg=152 ctermfg=16 | syn cluster cssColors add=cssColorb0e0e6
|
|
||||||
hi cssColorb22222 guibg=#B22222 guifg=#FFFFFF ctermbg=124 ctermfg=231 | syn cluster cssColors add=cssColorb22222
|
|
||||||
hi cssColorb8860b guibg=#B8860B guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColorb8860b
|
|
||||||
hi cssColorba55d3 guibg=#BA55D3 guifg=#000000 ctermbg=5 ctermfg=16 | syn cluster cssColors add=cssColorba55d3
|
|
||||||
hi cssColorbc8f8f guibg=#BC8F8F guifg=#000000 ctermbg=138 ctermfg=16 | syn cluster cssColors add=cssColorbc8f8f
|
|
||||||
hi cssColorbdb76b guibg=#BDB76B guifg=#000000 ctermbg=247 ctermfg=16 | syn cluster cssColors add=cssColorbdb76b
|
|
||||||
hi cssColorc0c0c0 guibg=#C0C0C0 guifg=#000000 ctermbg=250 ctermfg=16 | syn cluster cssColors add=cssColorc0c0c0
|
|
||||||
hi cssColorc71585 guibg=#C71585 guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColorc71585
|
|
||||||
hi cssColorcd5c5c guibg=#CD5C5C guifg=#000000 ctermbg=167 ctermfg=16 | syn cluster cssColors add=cssColorcd5c5c
|
|
||||||
hi cssColorcd853f guibg=#CD853F guifg=#000000 ctermbg=173 ctermfg=16 | syn cluster cssColors add=cssColorcd853f
|
|
||||||
hi cssColord2691e guibg=#D2691E guifg=#000000 ctermbg=166 ctermfg=16 | syn cluster cssColors add=cssColord2691e
|
|
||||||
hi cssColord2b48c guibg=#D2B48C guifg=#000000 ctermbg=180 ctermfg=16 | syn cluster cssColors add=cssColord2b48c
|
|
||||||
hi cssColord3d3d3 guibg=#D3D3D3 guifg=#000000 ctermbg=252 ctermfg=16 | syn cluster cssColors add=cssColord3d3d3
|
|
||||||
hi cssColord87093 guibg=#D87093 guifg=#000000 ctermbg=168 ctermfg=16 | syn cluster cssColors add=cssColord87093
|
|
||||||
hi cssColord8bfd8 guibg=#D8BFD8 guifg=#000000 ctermbg=252 ctermfg=16 | syn cluster cssColors add=cssColord8bfd8
|
|
||||||
hi cssColorda70d6 guibg=#DA70D6 guifg=#000000 ctermbg=249 ctermfg=16 | syn cluster cssColors add=cssColorda70d6
|
|
||||||
hi cssColordaa520 guibg=#DAA520 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColordaa520
|
|
||||||
hi cssColordc143c guibg=#DC143C guifg=#FFFFFF ctermbg=161 ctermfg=231 | syn cluster cssColors add=cssColordc143c
|
|
||||||
hi cssColordcdcdc guibg=#DCDCDC guifg=#000000 ctermbg=253 ctermfg=16 | syn cluster cssColors add=cssColordcdcdc
|
|
||||||
hi cssColordda0dd guibg=#DDA0DD guifg=#000000 ctermbg=182 ctermfg=16 | syn cluster cssColors add=cssColordda0dd
|
|
||||||
hi cssColordeb887 guibg=#DEB887 guifg=#000000 ctermbg=180 ctermfg=16 | syn cluster cssColors add=cssColordeb887
|
|
||||||
hi cssColore0ffff guibg=#E0FFFF guifg=#000000 ctermbg=195 ctermfg=16 | syn cluster cssColors add=cssColore0ffff
|
|
||||||
hi cssColore6e6fa guibg=#E6E6FA guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColore6e6fa
|
|
||||||
hi cssColore9967a guibg=#E9967A guifg=#000000 ctermbg=174 ctermfg=16 | syn cluster cssColors add=cssColore9967a
|
|
||||||
hi cssColoree82ee guibg=#EE82EE guifg=#000000 ctermbg=251 ctermfg=16 | syn cluster cssColors add=cssColoree82ee
|
|
||||||
hi cssColoreee8aa guibg=#EEE8AA guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColoreee8aa
|
|
||||||
hi cssColorf08080 guibg=#F08080 guifg=#000000 ctermbg=210 ctermfg=16 | syn cluster cssColors add=cssColorf08080
|
|
||||||
hi cssColorf0e68c guibg=#F0E68C guifg=#000000 ctermbg=222 ctermfg=16 | syn cluster cssColors add=cssColorf0e68c
|
|
||||||
hi cssColorf0f8ff guibg=#F0F8FF guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf0f8ff
|
|
||||||
hi cssColorf0fff0 guibg=#F0FFF0 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorf0fff0
|
|
||||||
hi cssColorf0ffff guibg=#F0FFFF guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf0ffff
|
|
||||||
hi cssColorf4a460 guibg=#F4A460 guifg=#000000 ctermbg=215 ctermfg=16 | syn cluster cssColors add=cssColorf4a460
|
|
||||||
hi cssColorf5deb3 guibg=#F5DEB3 guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorf5deb3
|
|
||||||
hi cssColorf5f5dc guibg=#F5F5DC guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorf5f5dc
|
|
||||||
hi cssColorf5f5f5 guibg=#F5F5F5 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorf5f5f5
|
|
||||||
hi cssColorf5fffa guibg=#F5FFFA guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf5fffa
|
|
||||||
hi cssColorf8f8ff guibg=#F8F8FF guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf8f8ff
|
|
||||||
hi cssColorfa8072 guibg=#FA8072 guifg=#000000 ctermbg=209 ctermfg=16 | syn cluster cssColors add=cssColorfa8072
|
|
||||||
hi cssColorfaebd7 guibg=#FAEBD7 guifg=#000000 ctermbg=7 ctermfg=16 | syn cluster cssColors add=cssColorfaebd7
|
|
||||||
hi cssColorfaf0e6 guibg=#FAF0E6 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfaf0e6
|
|
||||||
hi cssColorfafad2 guibg=#FAFAD2 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfafad2
|
|
||||||
hi cssColorfdf5e6 guibg=#FDF5E6 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfdf5e6
|
|
||||||
hi cssColorff0000 guibg=#FF0000 guifg=#FFFFFF ctermbg=196 ctermfg=231 | syn cluster cssColors add=cssColorff0000
|
|
||||||
hi cssColorff00ff guibg=#FF00FF guifg=#FFFFFF ctermbg=13 ctermfg=231 | syn cluster cssColors add=cssColorff00ff
|
|
||||||
hi cssColorff1493 guibg=#FF1493 guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColorff1493
|
|
||||||
hi cssColorff4500 guibg=#FF4500 guifg=#FFFFFF ctermbg=9 ctermfg=231 | syn cluster cssColors add=cssColorff4500
|
|
||||||
hi cssColorff6347 guibg=#FF6347 guifg=#000000 ctermbg=203 ctermfg=16 | syn cluster cssColors add=cssColorff6347
|
|
||||||
hi cssColorff69b4 guibg=#FF69B4 guifg=#000000 ctermbg=205 ctermfg=16 | syn cluster cssColors add=cssColorff69b4
|
|
||||||
hi cssColorff7f50 guibg=#FF7F50 guifg=#000000 ctermbg=209 ctermfg=16 | syn cluster cssColors add=cssColorff7f50
|
|
||||||
hi cssColorff8c00 guibg=#FF8C00 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColorff8c00
|
|
||||||
hi cssColorffa07a guibg=#FFA07A guifg=#000000 ctermbg=216 ctermfg=16 | syn cluster cssColors add=cssColorffa07a
|
|
||||||
hi cssColorffa500 guibg=#FFA500 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColorffa500
|
|
||||||
hi cssColorffb6c1 guibg=#FFB6C1 guifg=#000000 ctermbg=217 ctermfg=16 | syn cluster cssColors add=cssColorffb6c1
|
|
||||||
hi cssColorffc0cb guibg=#FFC0CB guifg=#000000 ctermbg=218 ctermfg=16 | syn cluster cssColors add=cssColorffc0cb
|
|
||||||
hi cssColorffd700 guibg=#FFD700 guifg=#000000 ctermbg=11 ctermfg=16 | syn cluster cssColors add=cssColorffd700
|
|
||||||
hi cssColorffdab9 guibg=#FFDAB9 guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorffdab9
|
|
||||||
hi cssColorffdead guibg=#FFDEAD guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorffdead
|
|
||||||
hi cssColorffe4b5 guibg=#FFE4B5 guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorffe4b5
|
|
||||||
hi cssColorffe4c4 guibg=#FFE4C4 guifg=#000000 ctermbg=224 ctermfg=16 | syn cluster cssColors add=cssColorffe4c4
|
|
||||||
hi cssColorffe4e1 guibg=#FFE4E1 guifg=#000000 ctermbg=224 ctermfg=16 | syn cluster cssColors add=cssColorffe4e1
|
|
||||||
hi cssColorffebcd guibg=#FFEBCD guifg=#000000 ctermbg=7 ctermfg=16 | syn cluster cssColors add=cssColorffebcd
|
|
||||||
hi cssColorffefd5 guibg=#FFEFD5 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorffefd5
|
|
||||||
hi cssColorfff0f5 guibg=#FFF0F5 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfff0f5
|
|
||||||
hi cssColorfff5ee guibg=#FFF5EE guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfff5ee
|
|
||||||
hi cssColorfff8dc guibg=#FFF8DC guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfff8dc
|
|
||||||
hi cssColorfffacd guibg=#FFFACD guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfffacd
|
|
||||||
hi cssColorfffaf0 guibg=#FFFAF0 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffaf0
|
|
||||||
hi cssColorfffafa guibg=#FFFAFA guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffafa
|
|
||||||
hi cssColorffff00 guibg=#FFFF00 guifg=#000000 ctermbg=11 ctermfg=16 | syn cluster cssColors add=cssColorffff00
|
|
||||||
hi cssColorffffe0 guibg=#FFFFE0 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorffffe0
|
|
||||||
hi cssColorfffff0 guibg=#FFFFF0 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffff0
|
|
||||||
hi cssColorffffff guibg=#FFFFFF guifg=#000000 ctermbg=231 ctermfg=16 | syn cluster cssColors add=cssColorffffff
|
|
||||||
|
|
||||||
"call s:VimCssInit(1)
|
|
||||||
|
|
||||||
":augroup css
|
|
||||||
"au!
|
|
||||||
autocmd CursorMovedI <buffer> silent call s:ProcessByLine('.')
|
|
||||||
autocmd ColorScheme <buffer> silent call s:VimCssInit(1)
|
|
||||||
autocmd BufEnter <buffer> silent call s:VimCssInit(1)
|
|
||||||
":augroup END
|
|
||||||
|
|
||||||
"autocmd CursorMoved <buffer> silent call s:ProcessByLine('.')
|
|
||||||
endif
|
|
||||||
@@ -9,4 +9,10 @@ syn region coffeeScript start=#<script [^>]*type="text/coffeescript"[^>]*>#
|
|||||||
\ end=#</script>#me=s-1 keepend
|
\ end=#</script>#me=s-1 keepend
|
||||||
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
|
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
|
||||||
\ containedin=htmlHead
|
\ containedin=htmlHead
|
||||||
syn include syntax/css/vim-coloresque.vim
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
" default html syntax should already be including the css syntax
|
||||||
|
syn cluster colorableGroup add=htmlString,htmlCommentPart
|
||||||
|
|||||||
@@ -1 +1,6 @@
|
|||||||
syn include syntax/css/vim-coloresque.vim
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
call css_color#init('css', 'lessVariableValue')
|
||||||
|
|||||||
@@ -18,3 +18,129 @@ syn match tomdocDescriptions +\s*Deprecated:+he=e-1 containedin=rubyComment cont
|
|||||||
hi default link tomdocDescriptions String
|
hi default link tomdocDescriptions String
|
||||||
hi default link tomdocKeywords String
|
hi default link tomdocKeywords String
|
||||||
hi default link tomdocArguments HELP
|
hi default link tomdocArguments HELP
|
||||||
|
" Ruby syntax extensions for highlighting YARD documentation.
|
||||||
|
"
|
||||||
|
" Author: Joel Holdbrooks <https://github.com/noprompt>
|
||||||
|
" URI: https://github.com/noprompt/vim-yardoc
|
||||||
|
" Version: 0.0.1
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Tags
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
syn match yardGenericTag "@\h\+" contained
|
||||||
|
syn match yardAbstract "@abstract" contained
|
||||||
|
syn match yardApi "@api" contained
|
||||||
|
syn match yardAttr "@attr" contained
|
||||||
|
syn match yardAttrReader "@attr_reader" contained
|
||||||
|
syn match yardAttrWriter "@attr_writer" contained
|
||||||
|
syn match yardAuthor "@author" contained
|
||||||
|
syn match yardDeprecated "@deprecated" contained
|
||||||
|
syn match yardExample "@example" contained
|
||||||
|
syn match yardNote "@note" contained
|
||||||
|
syn match yardOption "@option" contained
|
||||||
|
syn match yardOverload "@overload" contained
|
||||||
|
syn match yardParam "@param" contained
|
||||||
|
syn match yardPrivate "@private" contained
|
||||||
|
syn match yardRaise "@raise" contained
|
||||||
|
syn match yardReturn "@return" contained
|
||||||
|
syn match yardSee "@see" contained
|
||||||
|
syn match yardSince "@since" contained
|
||||||
|
syn match yardTodo "@todo" contained
|
||||||
|
syn match yardVersion "@version" contained
|
||||||
|
syn match yardYield "@yield" contained
|
||||||
|
syn match yardYieldParam "@yieldparam" contained
|
||||||
|
syn match yardYieldReturn "@yieldreturn" contained
|
||||||
|
syn cluster yardTags contains=yardGenericTag,yardAbstract,yardApi,yardAttr,yardAttrReader,yardAttrWriter,yardAuthor,yardDeprecated,yardExample,yardNote,yardOption,yardOverload,yardParam,yardPrivate,yardRaise,yardReturn,yardSee,yardSince,yardTodo,yardVersion,yardYield,yardYieldParam,yardYieldReturn
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Directives
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
syn match yardGenericDirective "@!\h\+" contained
|
||||||
|
syn match yardAttribute "@!attribute" contained
|
||||||
|
syn match yardEndGroup "@!endgroup" contained
|
||||||
|
syn match yardGroup "@!group" contained
|
||||||
|
syn match yardMacro "@!macro" contained
|
||||||
|
syn match yardMethod "@!method" contained
|
||||||
|
syn match yardParse "@!parse" contained
|
||||||
|
syn match yardScope "@!scope" contained
|
||||||
|
syn match yardVisibility "@!visibility" contained
|
||||||
|
|
||||||
|
syn cluster yardDirectives contains=yardGenericDirective,yardAttribute,yardEndGroup,yardGroup,yardMacro,yardMethod,yardParse,yardScope,yardVisibility
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Types, Lists, and Hashes
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
syn match yardDuckType "#\h\+" contained
|
||||||
|
syn match yardType "[A-Z]\h\+" contained
|
||||||
|
syn match yardLiteral "\(true\|false\|nil\|self\|void\)" contained
|
||||||
|
syn match yardComma "," nextgroup=@yardTypes contained
|
||||||
|
syn match yardArrow "=>" nextgroup=@yardTypes contained
|
||||||
|
|
||||||
|
syn region yardParametricType start="[A-Z]\+\h\+<" end=">" contains=yardType,yardOrderDependentList,yardComma skipwhite contained
|
||||||
|
syn region yardOrderDependentList start="(" end=")" contains=@yardTypes,yardComma skipwhite contained
|
||||||
|
syn region yardTypeList start="\[" end="]" contains=@yardTypes,yardOrderDependentList,@yardHashes skipwhite contained
|
||||||
|
syn region yardHashAngle start="Hash<" end=">" contains=yardDuckType,yardType,yardLiteral,yardArrow,yardComma skipwhite contained
|
||||||
|
syn region yardHashCurly start="Hash{" end="}" contains=@yardTypes,yardArrow,yardComma skipwhite contained
|
||||||
|
|
||||||
|
syn cluster yardTypes contains=yardDuckType,yardType,yardLiteral,yardParametricType
|
||||||
|
syn cluster yardHashes contains=yardArrow,yardHashAngle,yardHashCurly
|
||||||
|
syn cluster yardLists contains=yardComma,yardTypeList,yardOrderDependentList
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Yard
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
syn match yardComment "#\s*@!\{,1}\h\+.*" contains=@yardTags,@yardDirectives,yardTypeList
|
||||||
|
syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell,yardComment
|
||||||
|
syn region rubyMultilineComment start="\%(\%(^\s*#.*\n\)\@<!\%(^\s*#.*\n\)\)\%(\(^\s*#.*\n\)\{1,}\)\@=" end="\%(^\s*#.*\n\)\@<=\%(^\s*#.*\n\)\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
|
||||||
|
syn cluster rubyNotTop add=@yardTags,@yardDirectives,@yardTypes,@yardLists,@yardHashes
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Links
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
hi def link yardComment rubyComment
|
||||||
|
" Tags
|
||||||
|
hi def link yardGenericTag rubyKeyword
|
||||||
|
hi def link yardAbstract yardGenericTag
|
||||||
|
hi def link yardApi yardGenericTag
|
||||||
|
hi def link yardAttr yardGenericTag
|
||||||
|
hi def link yardAttrReader yardGenericTag
|
||||||
|
hi def link yardAttrWriter yardGenericTag
|
||||||
|
hi def link yardAuthor yardGenericTag
|
||||||
|
hi def link yardDeprecated yardGenericTag
|
||||||
|
hi def link yardExample yardGenericTag
|
||||||
|
hi def link yardNote yardGenericTag
|
||||||
|
hi def link yardOption yardGenericTag
|
||||||
|
hi def link yardOverload yardGenericTag
|
||||||
|
hi def link yardParam yardGenericTag
|
||||||
|
hi def link yardPrivate yardGenericTag
|
||||||
|
hi def link yardRaise yardGenericTag
|
||||||
|
hi def link yardReturn yardGenericTag
|
||||||
|
hi def link yardSee yardGenericTag
|
||||||
|
hi def link yardSince yardGenericTag
|
||||||
|
hi def link yardTodo yardGenericTag
|
||||||
|
hi def link yardVersion yardGenericTag
|
||||||
|
hi def link yield yardGenericTag
|
||||||
|
hi def link yieldparam yardGenericTag
|
||||||
|
hi def link yieldreturn yardGenericTag
|
||||||
|
" Directives
|
||||||
|
hi def link yardGenericDirective rubyKeyword
|
||||||
|
hi def link yardAttribute yardGenericDirective
|
||||||
|
hi def link yardEndGroup yardGenericDirective
|
||||||
|
hi def link yardGroup yardGenericDirective
|
||||||
|
hi def link yardMacro yardGenericDirective
|
||||||
|
hi def link yardMethod yardGenericDirective
|
||||||
|
hi def link yardParse yardGenericDirective
|
||||||
|
hi def link yardScope yardGenericDirective
|
||||||
|
hi def link yardVisibility yardGenericDirective
|
||||||
|
" Types
|
||||||
|
hi def link yardComma yardComment
|
||||||
|
hi def link yardType yardComment
|
||||||
|
hi def link yardDuckType yardComment
|
||||||
|
hi def link yardLiteral yardComment
|
||||||
|
" Lists
|
||||||
|
hi def link yardTypeList yardComment
|
||||||
|
hi def link yardParametricType yardComment
|
||||||
|
" Hashes
|
||||||
|
hi def link yardArrow yardComment
|
||||||
|
hi def link yardHashAngle yardComment
|
||||||
|
hi def link yardHashCurly yardComment
|
||||||
|
|||||||
@@ -1 +1,6 @@
|
|||||||
syn include syntax/css/vim-coloresque.vim
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
call css_color#init('css', 'sassCssAttribute,sassComment,sassCssComment')
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
syn include syntax/css/vim-coloresque.vim
|
|
||||||
@@ -1 +1,6 @@
|
|||||||
syn include syntax/css/vim-coloresque.vim
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
call css_color#init('css', 'stylusCssAttribute,stylusComment,cssComment')
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1 +1,6 @@
|
|||||||
syn include syntax/css/vim-coloresque.vim
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
call css_color#init('any', 'vimHiGuiRgb,vimComment,vimLineComment')
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
559
autoload/css_color.vim
Normal file
559
autoload/css_color.vim
Normal file
@@ -0,0 +1,559 @@
|
|||||||
|
" Language: Colorful CSS Color Preview
|
||||||
|
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||||
|
" Last Change: 2014-01-14
|
||||||
|
" Licence: No Warranties. WTFPL. But please tell me!
|
||||||
|
" Version: 1.0
|
||||||
|
|
||||||
|
if v:version < 700
|
||||||
|
echoerr printf('Vim 7 is required for css-color (this is only %d.%d)',v:version/100,v:version%100)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !( has('gui_running') || &t_Co==256 ) | finish | endif
|
||||||
|
|
||||||
|
function! s:rgb2color(r,g,b)
|
||||||
|
" Convert 80% -> 204, 100% -> 255, etc.
|
||||||
|
let rgb = map( [a:r,a:g,a:b], 'v:val =~ "%$" ? ( 255 * v:val ) / 100 : v:val' )
|
||||||
|
return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:hsl2color(h,s,l)
|
||||||
|
" Convert 80% -> 0.8, 100% -> 1.0, etc.
|
||||||
|
let [s,l] = map( [a:s, a:l], 'v:val =~ "%$" ? v:val / 100.0 : v:val + 0.0' )
|
||||||
|
" algorithm transcoded to vim from http://www.w3.org/TR/css3-color/#hsl-color
|
||||||
|
let hh = ( a:h % 360 ) / 360.0
|
||||||
|
let m2 = l <= 0.5 ? l * ( s + 1 ) : l + s - l * s
|
||||||
|
let m1 = l * 2 - m2
|
||||||
|
let rgb = []
|
||||||
|
for h in [ hh + (1/3.0), hh, hh - (1/3.0) ]
|
||||||
|
let h = h < 0 ? h + 1 : h > 1 ? h - 1 : h
|
||||||
|
let v =
|
||||||
|
\ h * 6 < 1 ? m1 + ( m2 - m1 ) * h * 6 :
|
||||||
|
\ h * 2 < 1 ? m2 :
|
||||||
|
\ h * 3 < 2 ? m1 + ( m2 - m1 ) * ( 2/3.0 - h ) * 6 :
|
||||||
|
\ m1
|
||||||
|
if v > 1.0 | return '' | endif
|
||||||
|
let rgb += [ float2nr( 255 * v ) ]
|
||||||
|
endfor
|
||||||
|
return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:hex={}
|
||||||
|
for i in range(0, 255)
|
||||||
|
let s:hex[ printf( '%02x', i ) ] = i
|
||||||
|
endfor
|
||||||
|
|
||||||
|
if has('gui_running')
|
||||||
|
let s:is_gui = 1
|
||||||
|
else
|
||||||
|
let s:is_gui = 0
|
||||||
|
|
||||||
|
" preset 16 vt100 colors
|
||||||
|
let s:xtermcolor = [
|
||||||
|
\ [ 0x00, 0x00, 0x00, 0 ],
|
||||||
|
\ [ 0xCD, 0x00, 0x00, 1 ],
|
||||||
|
\ [ 0x00, 0xCD, 0x00, 2 ],
|
||||||
|
\ [ 0xCD, 0xCD, 0x00, 3 ],
|
||||||
|
\ [ 0x00, 0x00, 0xEE, 4 ],
|
||||||
|
\ [ 0xCD, 0x00, 0xCD, 5 ],
|
||||||
|
\ [ 0x00, 0xCD, 0xCD, 6 ],
|
||||||
|
\ [ 0xE5, 0xE5, 0xE5, 7 ],
|
||||||
|
\ [ 0x7F, 0x7F, 0x7F, 8 ],
|
||||||
|
\ [ 0xFF, 0x00, 0x00, 9 ],
|
||||||
|
\ [ 0x00, 0xFF, 0x00, 10 ],
|
||||||
|
\ [ 0xFF, 0xFF, 0x00, 11 ],
|
||||||
|
\ [ 0x5C, 0x5C, 0xFF, 12 ],
|
||||||
|
\ [ 0xFF, 0x00, 0xFF, 13 ],
|
||||||
|
\ [ 0x00, 0xFF, 0xFF, 14 ],
|
||||||
|
\ [ 0xFF, 0xFF, 0xFF, 15 ]]
|
||||||
|
" grayscale ramp
|
||||||
|
" (value is 8+10*lum for lum in 0..23)
|
||||||
|
let s:xtermcolor += [
|
||||||
|
\ [ 0x08, 0x08, 0x08, 232 ],
|
||||||
|
\ [ 0x12, 0x12, 0x12, 233 ],
|
||||||
|
\ [ 0x1C, 0x1C, 0x1C, 234 ],
|
||||||
|
\ [ 0x26, 0x26, 0x26, 235 ],
|
||||||
|
\ [ 0x30, 0x30, 0x30, 236 ],
|
||||||
|
\ [ 0x3A, 0x3A, 0x3A, 237 ],
|
||||||
|
\ [ 0x44, 0x44, 0x44, 238 ],
|
||||||
|
\ [ 0x4E, 0x4E, 0x4E, 239 ],
|
||||||
|
\ [ 0x58, 0x58, 0x58, 240 ],
|
||||||
|
\ [ 0x62, 0x62, 0x62, 241 ],
|
||||||
|
\ [ 0x6C, 0x6C, 0x6C, 242 ],
|
||||||
|
\ [ 0x76, 0x76, 0x76, 243 ],
|
||||||
|
\ [ 0x80, 0x80, 0x80, 244 ],
|
||||||
|
\ [ 0x8A, 0x8A, 0x8A, 245 ],
|
||||||
|
\ [ 0x94, 0x94, 0x94, 246 ],
|
||||||
|
\ [ 0x9E, 0x9E, 0x9E, 247 ],
|
||||||
|
\ [ 0xA8, 0xA8, 0xA8, 248 ],
|
||||||
|
\ [ 0xB2, 0xB2, 0xB2, 249 ],
|
||||||
|
\ [ 0xBC, 0xBC, 0xBC, 250 ],
|
||||||
|
\ [ 0xC6, 0xC6, 0xC6, 251 ],
|
||||||
|
\ [ 0xD0, 0xD0, 0xD0, 252 ],
|
||||||
|
\ [ 0xDA, 0xDA, 0xDA, 253 ],
|
||||||
|
\ [ 0xE4, 0xE4, 0xE4, 254 ],
|
||||||
|
\ [ 0xEE, 0xEE, 0xEE, 255 ]]
|
||||||
|
|
||||||
|
" the 6 values used in the xterm color cube
|
||||||
|
" 0 95 135 175 215 255
|
||||||
|
let s:cubergb = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ]
|
||||||
|
|
||||||
|
" 0..255 mapped to 0..5 based on the color cube values
|
||||||
|
let s:xvquant = repeat([0],48)
|
||||||
|
\ + repeat([1],68)
|
||||||
|
\ + repeat([2],40)
|
||||||
|
\ + repeat([3],40)
|
||||||
|
\ + repeat([4],40)
|
||||||
|
\ + repeat([5],20)
|
||||||
|
" tweak the mapping for the exact matches (0 and 1 already correct)
|
||||||
|
let s:xvquant[s:cubergb[2]] = 2
|
||||||
|
let s:xvquant[s:cubergb[3]] = 3
|
||||||
|
let s:xvquant[s:cubergb[4]] = 4
|
||||||
|
let s:xvquant[s:cubergb[5]] = 5
|
||||||
|
|
||||||
|
" selects the nearest xterm color for a rgb value like #FF0000
|
||||||
|
function! s:rgb2xterm(color)
|
||||||
|
let best_match=0
|
||||||
|
let smallest_distance = 10000000000
|
||||||
|
let color = tolower(a:color)
|
||||||
|
let r = s:hex[color[0:1]]
|
||||||
|
let g = s:hex[color[2:3]]
|
||||||
|
let b = s:hex[color[4:5]]
|
||||||
|
|
||||||
|
let vr = s:xvquant[r]
|
||||||
|
let vg = s:xvquant[g]
|
||||||
|
let vb = s:xvquant[b]
|
||||||
|
let cidx = vr * 36 + vg * 6 + vb + 16
|
||||||
|
let ccol = [ s:cubergb[vr], s:cubergb[vg], s:cubergb[vb], cidx ]
|
||||||
|
|
||||||
|
for [tr,tg,tb,idx] in [ ccol ] + s:xtermcolor
|
||||||
|
let dr = tr - r
|
||||||
|
let dg = tg - g
|
||||||
|
let db = tb - b
|
||||||
|
let distance = dr*dr + dg*dg + db*db
|
||||||
|
if distance == 0 | return idx | endif
|
||||||
|
if distance > smallest_distance | continue | endif
|
||||||
|
let smallest_distance = distance
|
||||||
|
let best_match = idx
|
||||||
|
endfor
|
||||||
|
return best_match
|
||||||
|
endfunction
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:pattern_color = {}
|
||||||
|
let s:color_fg = {}
|
||||||
|
let s:color_bg = {}
|
||||||
|
let [s:hi_cmd, s:black, s:white] = s:is_gui
|
||||||
|
\ ? ['hi %s guibg=#%s guifg=%s', '#000000', '#ffffff']
|
||||||
|
\ : ['hi %s ctermbg=%s ctermfg=%s', 0, 15]
|
||||||
|
function! s:create_syn_match()
|
||||||
|
|
||||||
|
let pattern = submatch(0)
|
||||||
|
|
||||||
|
if has_key( b:has_pattern_syn, pattern ) | return | endif
|
||||||
|
let b:has_pattern_syn[pattern] = 1
|
||||||
|
|
||||||
|
let rgb_color = get( s:pattern_color, pattern, '' )
|
||||||
|
|
||||||
|
if ! strlen( rgb_color )
|
||||||
|
let hexcolor = submatch(1)
|
||||||
|
let funcname = submatch(2)
|
||||||
|
|
||||||
|
if funcname == 'rgb'
|
||||||
|
let rgb_color = s:rgb2color(submatch(3),submatch(4),submatch(5))
|
||||||
|
elseif funcname == 'hsl'
|
||||||
|
let rgb_color = s:hsl2color(submatch(3),submatch(4),submatch(5))
|
||||||
|
elseif strlen(hexcolor) == 6
|
||||||
|
let rgb_color = tolower(hexcolor)
|
||||||
|
elseif strlen(hexcolor) == 3
|
||||||
|
let rgb_color = substitute(tolower(hexcolor), '\(.\)', '\1\1', 'g')
|
||||||
|
else
|
||||||
|
throw 'css_color: create_syn_match invoked on bad match data'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:pattern_color[pattern] = rgb_color
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! has_key( b:has_color_hi, rgb_color )
|
||||||
|
" check GUI flag early here to avoid pure-overhead caching
|
||||||
|
let syn_bg = s:is_gui ? rgb_color : get( s:color_bg, rgb_color, '' )
|
||||||
|
if ! strlen(syn_bg)
|
||||||
|
let syn_bg = s:rgb2xterm(rgb_color)
|
||||||
|
let s:color_bg[rgb_color] = syn_bg
|
||||||
|
endif
|
||||||
|
|
||||||
|
let syn_fg = get( s:color_fg, rgb_color, '' )
|
||||||
|
if ! strlen(syn_fg)
|
||||||
|
let r = s:hex[rgb_color[0:1]]
|
||||||
|
let g = s:hex[rgb_color[2:3]]
|
||||||
|
let b = s:hex[rgb_color[4:5]]
|
||||||
|
let syn_fg = r*30 + g*59 + b*11 > 12000 ? s:black : s:white
|
||||||
|
let s:color_fg[rgb_color] = syn_fg
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let group = 'BG' . rgb_color
|
||||||
|
|
||||||
|
if ! has_key( b:has_color_hi, rgb_color )
|
||||||
|
exe printf( s:hi_cmd, group, syn_bg, syn_fg )
|
||||||
|
let b:has_color_hi[rgb_color] = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" iff pattern ends on word character, require word break to match
|
||||||
|
if pattern =~ '\>$' | let pattern .= '\>' | endif
|
||||||
|
exe 'syn match' group '/'.escape(pattern, '/').'/ contained containedin=@colorableGroup'
|
||||||
|
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:update_matches()
|
||||||
|
call filter(b:color_match_id, 'matchdelete(v:val)')
|
||||||
|
if &l:cursorline
|
||||||
|
" adds matches based that duplicate the highlighted colors on the current line
|
||||||
|
let lnr = line('.')
|
||||||
|
let group = ''
|
||||||
|
let groupstart = 0
|
||||||
|
let endcol = col('$')
|
||||||
|
for col in range( 1, endcol )
|
||||||
|
let nextgroup = col < endcol ? synIDattr( synID( lnr, col, 1 ), 'name' ) : ''
|
||||||
|
if group == nextgroup | continue | endif
|
||||||
|
if group =~ '^BG\x\{6}$'
|
||||||
|
let regex = '\%'.lnr.'l\%'.groupstart.'c'.repeat( '.', col - groupstart )
|
||||||
|
let match = matchadd( group, regex, -1 )
|
||||||
|
let b:color_match_id += [ match ]
|
||||||
|
endif
|
||||||
|
let group = nextgroup
|
||||||
|
let groupstart = col
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:_hexcolor = '#\(\x\{3}\|\x\{6}\)\>' " submatch 1
|
||||||
|
let s:_funcname = '\(rgb\|hsl\)a\?' " submatch 2
|
||||||
|
let s:_numval = '\(\d\{1,3}%\?\)' " submatch 3,4,5
|
||||||
|
let s:_ws_ = '\s*'
|
||||||
|
let s:_listsep = s:_ws_ . ',' . s:_ws_
|
||||||
|
let s:_otherargs_ = '\%(,[^)]*\)\?'
|
||||||
|
let s:_funcexpr = s:_funcname . '[(]' . s:_numval . s:_listsep . s:_numval . s:_listsep . s:_numval . s:_ws_ . s:_otherargs_ . '[)]'
|
||||||
|
let s:_csscolor = s:_hexcolor . '\|' . s:_funcexpr
|
||||||
|
" N.B. these substitute() calls are here just for the side effect
|
||||||
|
" of invoking s:create_syn_match during substitution -- because
|
||||||
|
" match() and friends do not allow finding all matches in a single
|
||||||
|
" scan without examining the start of the string over and over
|
||||||
|
function! s:parse_css_screen()
|
||||||
|
call substitute( join( getline('w0','w$'), "\n" ), s:_csscolor, '\=s:create_syn_match()', 'g' )
|
||||||
|
call s:update_matches()
|
||||||
|
endfunction
|
||||||
|
function! s:parse_any_screen()
|
||||||
|
call substitute( join( getline('w0','w$'), "\n" ), s:_hexcolor, '\=s:create_syn_match()', 'g' )
|
||||||
|
call s:update_matches()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
function! css_color#init(type, groups)
|
||||||
|
exe 'syn cluster colorableGroup contains=' . a:groups
|
||||||
|
|
||||||
|
let b:has_color_hi = {}
|
||||||
|
let b:has_pattern_syn = {}
|
||||||
|
let b:color_match_id = []
|
||||||
|
|
||||||
|
augroup CSSColor
|
||||||
|
autocmd! * <buffer>
|
||||||
|
exe 'autocmd CursorMoved,CursorMovedI <buffer> call s:parse_'.a:type.'_screen()'
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
do CSSColor CursorMoved <buffer>
|
||||||
|
|
||||||
|
if a:type != 'css' | return | endif
|
||||||
|
|
||||||
|
hi BG000000 guibg=#000000 guifg=#FFFFFF ctermbg=16 ctermfg=231
|
||||||
|
hi BG000080 guibg=#000080 guifg=#FFFFFF ctermbg=235 ctermfg=231
|
||||||
|
hi BG00008b guibg=#00008B guifg=#FFFFFF ctermbg=4 ctermfg=231
|
||||||
|
hi BG0000cd guibg=#0000CD guifg=#FFFFFF ctermbg=4 ctermfg=231
|
||||||
|
hi BG0000ff guibg=#0000FF guifg=#FFFFFF ctermbg=4 ctermfg=231
|
||||||
|
hi BG006400 guibg=#006400 guifg=#FFFFFF ctermbg=235 ctermfg=231
|
||||||
|
hi BG008000 guibg=#008000 guifg=#FFFFFF ctermbg=2 ctermfg=231
|
||||||
|
hi BG008080 guibg=#008080 guifg=#FFFFFF ctermbg=30 ctermfg=231
|
||||||
|
hi BG008b8b guibg=#008B8B guifg=#FFFFFF ctermbg=30 ctermfg=231
|
||||||
|
hi BG00bfff guibg=#00BFFF guifg=#000000 ctermbg=6 ctermfg=16
|
||||||
|
hi BG00ced1 guibg=#00CED1 guifg=#000000 ctermbg=6 ctermfg=16
|
||||||
|
hi BG00fa9a guibg=#00FA9A guifg=#000000 ctermbg=6 ctermfg=16
|
||||||
|
hi BG00ff00 guibg=#00FF00 guifg=#000000 ctermbg=10 ctermfg=16
|
||||||
|
hi BG00ff7f guibg=#00FF7F guifg=#000000 ctermbg=6 ctermfg=16
|
||||||
|
hi BG00ffff guibg=#00FFFF guifg=#000000 ctermbg=51 ctermfg=16
|
||||||
|
hi BG191970 guibg=#191970 guifg=#FFFFFF ctermbg=237 ctermfg=231
|
||||||
|
hi BG1e90ff guibg=#1E90FF guifg=#000000 ctermbg=12 ctermfg=16
|
||||||
|
hi BG20b2aa guibg=#20B2AA guifg=#000000 ctermbg=37 ctermfg=16
|
||||||
|
hi BG228b22 guibg=#228B22 guifg=#FFFFFF ctermbg=2 ctermfg=231
|
||||||
|
hi BG2e8b57 guibg=#2E8B57 guifg=#FFFFFF ctermbg=240 ctermfg=231
|
||||||
|
hi BG2f4f4f guibg=#2F4F4F guifg=#FFFFFF ctermbg=238 ctermfg=231
|
||||||
|
hi BG32cd32 guibg=#32CD32 guifg=#000000 ctermbg=2 ctermfg=16
|
||||||
|
hi BG3cb371 guibg=#3CB371 guifg=#000000 ctermbg=71 ctermfg=16
|
||||||
|
hi BG40e0d0 guibg=#40E0D0 guifg=#000000 ctermbg=80 ctermfg=16
|
||||||
|
hi BG4169e1 guibg=#4169E1 guifg=#FFFFFF ctermbg=12 ctermfg=231
|
||||||
|
hi BG4682b4 guibg=#4682B4 guifg=#FFFFFF ctermbg=67 ctermfg=231
|
||||||
|
hi BG483d8b guibg=#483D8B guifg=#FFFFFF ctermbg=240 ctermfg=231
|
||||||
|
hi BG48d1cc guibg=#48D1CC guifg=#000000 ctermbg=80 ctermfg=16
|
||||||
|
hi BG4b0082 guibg=#4B0082 guifg=#FFFFFF ctermbg=238 ctermfg=231
|
||||||
|
hi BG556b2f guibg=#556B2F guifg=#FFFFFF ctermbg=239 ctermfg=231
|
||||||
|
hi BG5f9ea0 guibg=#5F9EA0 guifg=#000000 ctermbg=73 ctermfg=16
|
||||||
|
hi BG6495ed guibg=#6495ED guifg=#000000 ctermbg=12 ctermfg=16
|
||||||
|
hi BG66cdaa guibg=#66CDAA guifg=#000000 ctermbg=79 ctermfg=16
|
||||||
|
hi BG696969 guibg=#696969 guifg=#FFFFFF ctermbg=242 ctermfg=231
|
||||||
|
hi BG6a5acd guibg=#6A5ACD guifg=#FFFFFF ctermbg=12 ctermfg=231
|
||||||
|
hi BG6b8e23 guibg=#6B8E23 guifg=#FFFFFF ctermbg=241 ctermfg=231
|
||||||
|
hi BG708090 guibg=#708090 guifg=#000000 ctermbg=66 ctermfg=16
|
||||||
|
hi BG778899 guibg=#778899 guifg=#000000 ctermbg=102 ctermfg=16
|
||||||
|
hi BG7b68ee guibg=#7B68EE guifg=#000000 ctermbg=12 ctermfg=16
|
||||||
|
hi BG7cfc00 guibg=#7CFC00 guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BG7fff00 guibg=#7FFF00 guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BG7fffd4 guibg=#7FFFD4 guifg=#000000 ctermbg=122 ctermfg=16
|
||||||
|
hi BG800000 guibg=#800000 guifg=#FFFFFF ctermbg=88 ctermfg=231
|
||||||
|
hi BG800080 guibg=#800080 guifg=#FFFFFF ctermbg=240 ctermfg=231
|
||||||
|
hi BG808000 guibg=#808000 guifg=#FFFFFF ctermbg=240 ctermfg=231
|
||||||
|
hi BG808080 guibg=#808080 guifg=#000000 ctermbg=244 ctermfg=16
|
||||||
|
hi BG87ceeb guibg=#87CEEB guifg=#000000 ctermbg=117 ctermfg=16
|
||||||
|
hi BG87cefa guibg=#87CEFA guifg=#000000 ctermbg=117 ctermfg=16
|
||||||
|
hi BG8a2be2 guibg=#8A2BE2 guifg=#FFFFFF ctermbg=12 ctermfg=231
|
||||||
|
hi BG8b0000 guibg=#8B0000 guifg=#FFFFFF ctermbg=88 ctermfg=231
|
||||||
|
hi BG8b008b guibg=#8B008B guifg=#FFFFFF ctermbg=5 ctermfg=231
|
||||||
|
hi BG8b4513 guibg=#8B4513 guifg=#FFFFFF ctermbg=94 ctermfg=231
|
||||||
|
hi BG8fbc8f guibg=#8FBC8F guifg=#000000 ctermbg=108 ctermfg=16
|
||||||
|
hi BG90ee90 guibg=#90EE90 guifg=#000000 ctermbg=249 ctermfg=16
|
||||||
|
hi BG9370d8 guibg=#9370D8 guifg=#000000 ctermbg=12 ctermfg=16
|
||||||
|
hi BG9400d3 guibg=#9400D3 guifg=#FFFFFF ctermbg=5 ctermfg=231
|
||||||
|
hi BG98fb98 guibg=#98FB98 guifg=#000000 ctermbg=250 ctermfg=16
|
||||||
|
hi BG9932cc guibg=#9932CC guifg=#FFFFFF ctermbg=5 ctermfg=231
|
||||||
|
hi BG9acd32 guibg=#9ACD32 guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BGa0522d guibg=#A0522D guifg=#FFFFFF ctermbg=130 ctermfg=231
|
||||||
|
hi BGa52a2a guibg=#A52A2A guifg=#FFFFFF ctermbg=124 ctermfg=231
|
||||||
|
hi BGa9a9a9 guibg=#A9A9A9 guifg=#000000 ctermbg=248 ctermfg=16
|
||||||
|
hi BGadd8e6 guibg=#ADD8E6 guifg=#000000 ctermbg=152 ctermfg=16
|
||||||
|
hi BGadff2f guibg=#ADFF2F guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BGafeeee guibg=#AFEEEE guifg=#000000 ctermbg=159 ctermfg=16
|
||||||
|
hi BGb0c4de guibg=#B0C4DE guifg=#000000 ctermbg=152 ctermfg=16
|
||||||
|
hi BGb0e0e6 guibg=#B0E0E6 guifg=#000000 ctermbg=152 ctermfg=16
|
||||||
|
hi BGb22222 guibg=#B22222 guifg=#FFFFFF ctermbg=124 ctermfg=231
|
||||||
|
hi BGb8860b guibg=#B8860B guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BGba55d3 guibg=#BA55D3 guifg=#000000 ctermbg=5 ctermfg=16
|
||||||
|
hi BGbc8f8f guibg=#BC8F8F guifg=#000000 ctermbg=138 ctermfg=16
|
||||||
|
hi BGbdb76b guibg=#BDB76B guifg=#000000 ctermbg=247 ctermfg=16
|
||||||
|
hi BGc0c0c0 guibg=#C0C0C0 guifg=#000000 ctermbg=250 ctermfg=16
|
||||||
|
hi BGc71585 guibg=#C71585 guifg=#FFFFFF ctermbg=5 ctermfg=231
|
||||||
|
hi BGcd5c5c guibg=#CD5C5C guifg=#000000 ctermbg=167 ctermfg=16
|
||||||
|
hi BGcd853f guibg=#CD853F guifg=#000000 ctermbg=173 ctermfg=16
|
||||||
|
hi BGd2691e guibg=#D2691E guifg=#000000 ctermbg=166 ctermfg=16
|
||||||
|
hi BGd2b48c guibg=#D2B48C guifg=#000000 ctermbg=180 ctermfg=16
|
||||||
|
hi BGd3d3d3 guibg=#D3D3D3 guifg=#000000 ctermbg=252 ctermfg=16
|
||||||
|
hi BGd87093 guibg=#D87093 guifg=#000000 ctermbg=168 ctermfg=16
|
||||||
|
hi BGd8bfd8 guibg=#D8BFD8 guifg=#000000 ctermbg=252 ctermfg=16
|
||||||
|
hi BGda70d6 guibg=#DA70D6 guifg=#000000 ctermbg=249 ctermfg=16
|
||||||
|
hi BGdaa520 guibg=#DAA520 guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BGdc143c guibg=#DC143C guifg=#FFFFFF ctermbg=161 ctermfg=231
|
||||||
|
hi BGdcdcdc guibg=#DCDCDC guifg=#000000 ctermbg=253 ctermfg=16
|
||||||
|
hi BGdda0dd guibg=#DDA0DD guifg=#000000 ctermbg=182 ctermfg=16
|
||||||
|
hi BGdeb887 guibg=#DEB887 guifg=#000000 ctermbg=180 ctermfg=16
|
||||||
|
hi BGe0ffff guibg=#E0FFFF guifg=#000000 ctermbg=195 ctermfg=16
|
||||||
|
hi BGe6e6fa guibg=#E6E6FA guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGe9967a guibg=#E9967A guifg=#000000 ctermbg=174 ctermfg=16
|
||||||
|
hi BGee82ee guibg=#EE82EE guifg=#000000 ctermbg=251 ctermfg=16
|
||||||
|
hi BGeee8aa guibg=#EEE8AA guifg=#000000 ctermbg=223 ctermfg=16
|
||||||
|
hi BGf08080 guibg=#F08080 guifg=#000000 ctermbg=210 ctermfg=16
|
||||||
|
hi BGf0e68c guibg=#F0E68C guifg=#000000 ctermbg=222 ctermfg=16
|
||||||
|
hi BGf0f8ff guibg=#F0F8FF guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGf0fff0 guibg=#F0FFF0 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGf0ffff guibg=#F0FFFF guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGf4a460 guibg=#F4A460 guifg=#000000 ctermbg=215 ctermfg=16
|
||||||
|
hi BGf5deb3 guibg=#F5DEB3 guifg=#000000 ctermbg=223 ctermfg=16
|
||||||
|
hi BGf5f5dc guibg=#F5F5DC guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGf5f5f5 guibg=#F5F5F5 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGf5fffa guibg=#F5FFFA guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGf8f8ff guibg=#F8F8FF guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGfa8072 guibg=#FA8072 guifg=#000000 ctermbg=209 ctermfg=16
|
||||||
|
hi BGfaebd7 guibg=#FAEBD7 guifg=#000000 ctermbg=7 ctermfg=16
|
||||||
|
hi BGfaf0e6 guibg=#FAF0E6 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfafad2 guibg=#FAFAD2 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfdf5e6 guibg=#FDF5E6 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGff0000 guibg=#FF0000 guifg=#FFFFFF ctermbg=196 ctermfg=231
|
||||||
|
hi BGff00ff guibg=#FF00FF guifg=#FFFFFF ctermbg=13 ctermfg=231
|
||||||
|
hi BGff1493 guibg=#FF1493 guifg=#FFFFFF ctermbg=5 ctermfg=231
|
||||||
|
hi BGff4500 guibg=#FF4500 guifg=#FFFFFF ctermbg=9 ctermfg=231
|
||||||
|
hi BGff6347 guibg=#FF6347 guifg=#000000 ctermbg=203 ctermfg=16
|
||||||
|
hi BGff69b4 guibg=#FF69B4 guifg=#000000 ctermbg=205 ctermfg=16
|
||||||
|
hi BGff7f50 guibg=#FF7F50 guifg=#000000 ctermbg=209 ctermfg=16
|
||||||
|
hi BGff8c00 guibg=#FF8C00 guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BGffa07a guibg=#FFA07A guifg=#000000 ctermbg=216 ctermfg=16
|
||||||
|
hi BGffa500 guibg=#FFA500 guifg=#000000 ctermbg=3 ctermfg=16
|
||||||
|
hi BGffb6c1 guibg=#FFB6C1 guifg=#000000 ctermbg=217 ctermfg=16
|
||||||
|
hi BGffc0cb guibg=#FFC0CB guifg=#000000 ctermbg=218 ctermfg=16
|
||||||
|
hi BGffd700 guibg=#FFD700 guifg=#000000 ctermbg=11 ctermfg=16
|
||||||
|
hi BGffdab9 guibg=#FFDAB9 guifg=#000000 ctermbg=223 ctermfg=16
|
||||||
|
hi BGffdead guibg=#FFDEAD guifg=#000000 ctermbg=223 ctermfg=16
|
||||||
|
hi BGffe4b5 guibg=#FFE4B5 guifg=#000000 ctermbg=223 ctermfg=16
|
||||||
|
hi BGffe4c4 guibg=#FFE4C4 guifg=#000000 ctermbg=224 ctermfg=16
|
||||||
|
hi BGffe4e1 guibg=#FFE4E1 guifg=#000000 ctermbg=224 ctermfg=16
|
||||||
|
hi BGffebcd guibg=#FFEBCD guifg=#000000 ctermbg=7 ctermfg=16
|
||||||
|
hi BGffefd5 guibg=#FFEFD5 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfff0f5 guibg=#FFF0F5 guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGfff5ee guibg=#FFF5EE guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfff8dc guibg=#FFF8DC guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfffacd guibg=#FFFACD guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfffaf0 guibg=#FFFAF0 guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGfffafa guibg=#FFFAFA guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGffff00 guibg=#FFFF00 guifg=#000000 ctermbg=11 ctermfg=16
|
||||||
|
hi BGffffe0 guibg=#FFFFE0 guifg=#000000 ctermbg=255 ctermfg=16
|
||||||
|
hi BGfffff0 guibg=#FFFFF0 guifg=#000000 ctermbg=15 ctermfg=16
|
||||||
|
hi BGffffff guibg=#FFFFFF guifg=#000000 ctermbg=231 ctermfg=16
|
||||||
|
|
||||||
|
" W3C Colors
|
||||||
|
syn keyword BG000000 black contained containedin=@colorableGroup
|
||||||
|
syn keyword BGc0c0c0 silver contained containedin=@colorableGroup
|
||||||
|
syn keyword BG808080 gray contained containedin=@colorableGroup
|
||||||
|
syn match BGffffff "\<white\(-\)\@!\>" contained containedin=@colorableGroup
|
||||||
|
syn keyword BG800000 maroon contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff0000 red contained containedin=@colorableGroup
|
||||||
|
syn keyword BG800080 purple contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff00ff fuchsia contained containedin=@colorableGroup
|
||||||
|
syn keyword BG008000 green contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00ff00 lime contained containedin=@colorableGroup
|
||||||
|
syn keyword BG808000 olive contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffff00 yellow contained containedin=@colorableGroup
|
||||||
|
syn keyword BG000080 navy contained containedin=@colorableGroup
|
||||||
|
syn keyword BG0000ff blue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG008080 teal contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00ffff aqua contained containedin=@colorableGroup
|
||||||
|
|
||||||
|
" extra colors
|
||||||
|
syn keyword BGf0f8ff AliceBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfaebd7 AntiqueWhite contained containedin=@colorableGroup
|
||||||
|
syn keyword BG7fffd4 Aquamarine contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf0ffff Azure contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf5f5dc Beige contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffe4c4 Bisque contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffebcd BlanchedAlmond contained containedin=@colorableGroup
|
||||||
|
syn keyword BG8a2be2 BlueViolet contained containedin=@colorableGroup
|
||||||
|
syn keyword BGa52a2a Brown contained containedin=@colorableGroup
|
||||||
|
syn keyword BGdeb887 BurlyWood contained containedin=@colorableGroup
|
||||||
|
syn keyword BG5f9ea0 CadetBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG7fff00 Chartreuse contained containedin=@colorableGroup
|
||||||
|
syn keyword BGd2691e Chocolate contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff7f50 Coral contained containedin=@colorableGroup
|
||||||
|
syn keyword BG6495ed CornflowerBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfff8dc Cornsilk contained containedin=@colorableGroup
|
||||||
|
syn keyword BGdc143c Crimson contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00ffff Cyan contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00008b DarkBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG008b8b DarkCyan contained containedin=@colorableGroup
|
||||||
|
syn keyword BGb8860b DarkGoldenRod contained containedin=@colorableGroup
|
||||||
|
syn keyword BGa9a9a9 DarkGray contained containedin=@colorableGroup
|
||||||
|
syn keyword BG006400 DarkGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGa9a9a9 DarkGrey contained containedin=@colorableGroup
|
||||||
|
syn keyword BGbdb76b DarkKhaki contained containedin=@colorableGroup
|
||||||
|
syn keyword BG8b008b DarkMagenta contained containedin=@colorableGroup
|
||||||
|
syn keyword BG556b2f DarkOliveGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BG9932cc DarkOrchid contained containedin=@colorableGroup
|
||||||
|
syn keyword BG8b0000 DarkRed contained containedin=@colorableGroup
|
||||||
|
syn keyword BGe9967a DarkSalmon contained containedin=@colorableGroup
|
||||||
|
syn keyword BG8fbc8f DarkSeaGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BG483d8b DarkSlateBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG2f4f4f DarkSlateGray contained containedin=@colorableGroup
|
||||||
|
syn keyword BG2f4f4f DarkSlateGrey contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00ced1 DarkTurquoise contained containedin=@colorableGroup
|
||||||
|
syn keyword BG9400d3 DarkViolet contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff8c00 Darkorange contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff1493 DeepPink contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00bfff DeepSkyBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG696969 DimGray contained containedin=@colorableGroup
|
||||||
|
syn keyword BG696969 DimGrey contained containedin=@colorableGroup
|
||||||
|
syn keyword BG1e90ff DodgerBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGb22222 FireBrick contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfffaf0 FloralWhite contained containedin=@colorableGroup
|
||||||
|
syn keyword BG228b22 ForestGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGdcdcdc Gainsboro contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf8f8ff GhostWhite contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffd700 Gold contained containedin=@colorableGroup
|
||||||
|
syn keyword BGdaa520 GoldenRod contained containedin=@colorableGroup
|
||||||
|
syn keyword BGadff2f GreenYellow contained containedin=@colorableGroup
|
||||||
|
syn keyword BG808080 Grey contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf0fff0 HoneyDew contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff69b4 HotPink contained containedin=@colorableGroup
|
||||||
|
syn keyword BGcd5c5c IndianRed contained containedin=@colorableGroup
|
||||||
|
syn keyword BG4b0082 Indigo contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfffff0 Ivory contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf0e68c Khaki contained containedin=@colorableGroup
|
||||||
|
syn keyword BGe6e6fa Lavender contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfff0f5 LavenderBlush contained containedin=@colorableGroup
|
||||||
|
syn keyword BG7cfc00 LawnGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfffacd LemonChiffon contained containedin=@colorableGroup
|
||||||
|
syn keyword BGadd8e6 LightBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf08080 LightCoral contained containedin=@colorableGroup
|
||||||
|
syn keyword BGe0ffff LightCyan contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfafad2 LightGoldenRodYellow contained containedin=@colorableGroup
|
||||||
|
syn keyword BGd3d3d3 LightGray contained containedin=@colorableGroup
|
||||||
|
syn keyword BG90ee90 LightGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGd3d3d3 LightGrey contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffb6c1 LightPink contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffa07a LightSalmon contained containedin=@colorableGroup
|
||||||
|
syn keyword BG20b2aa LightSeaGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BG87cefa LightSkyBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG778899 LightSlateGray contained containedin=@colorableGroup
|
||||||
|
syn keyword BG778899 LightSlateGrey contained containedin=@colorableGroup
|
||||||
|
syn keyword BGb0c4de LightSteelBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffffe0 LightYellow contained containedin=@colorableGroup
|
||||||
|
syn keyword BG32cd32 LimeGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfaf0e6 Linen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff00ff Magenta contained containedin=@colorableGroup
|
||||||
|
syn keyword BG66cdaa MediumAquaMarine contained containedin=@colorableGroup
|
||||||
|
syn keyword BG0000cd MediumBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGba55d3 MediumOrchid contained containedin=@colorableGroup
|
||||||
|
syn keyword BG9370d8 MediumPurple contained containedin=@colorableGroup
|
||||||
|
syn keyword BG3cb371 MediumSeaGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BG7b68ee MediumSlateBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00fa9a MediumSpringGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BG48d1cc MediumTurquoise contained containedin=@colorableGroup
|
||||||
|
syn keyword BGc71585 MediumVioletRed contained containedin=@colorableGroup
|
||||||
|
syn keyword BG191970 MidnightBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf5fffa MintCream contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffe4e1 MistyRose contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffe4b5 Moccasin contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffdead NavajoWhite contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfdf5e6 OldLace contained containedin=@colorableGroup
|
||||||
|
syn keyword BG6b8e23 OliveDrab contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffa500 Orange contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff4500 OrangeRed contained containedin=@colorableGroup
|
||||||
|
syn keyword BGda70d6 Orchid contained containedin=@colorableGroup
|
||||||
|
syn keyword BGeee8aa PaleGoldenRod contained containedin=@colorableGroup
|
||||||
|
syn keyword BG98fb98 PaleGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGafeeee PaleTurquoise contained containedin=@colorableGroup
|
||||||
|
syn keyword BGd87093 PaleVioletRed contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffefd5 PapayaWhip contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffdab9 PeachPuff contained containedin=@colorableGroup
|
||||||
|
syn keyword BGcd853f Peru contained containedin=@colorableGroup
|
||||||
|
syn keyword BGffc0cb Pink contained containedin=@colorableGroup
|
||||||
|
syn keyword BGdda0dd Plum contained containedin=@colorableGroup
|
||||||
|
syn keyword BGb0e0e6 PowderBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGbc8f8f RosyBrown contained containedin=@colorableGroup
|
||||||
|
syn keyword BG4169e1 RoyalBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG8b4513 SaddleBrown contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfa8072 Salmon contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf4a460 SandyBrown contained containedin=@colorableGroup
|
||||||
|
syn keyword BG2e8b57 SeaGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfff5ee SeaShell contained containedin=@colorableGroup
|
||||||
|
syn keyword BGa0522d Sienna contained containedin=@colorableGroup
|
||||||
|
syn keyword BG87ceeb SkyBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG6a5acd SlateBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BG708090 SlateGray contained containedin=@colorableGroup
|
||||||
|
syn keyword BG708090 SlateGrey contained containedin=@colorableGroup
|
||||||
|
syn keyword BGfffafa Snow contained containedin=@colorableGroup
|
||||||
|
syn keyword BG00ff7f SpringGreen contained containedin=@colorableGroup
|
||||||
|
syn keyword BG4682b4 SteelBlue contained containedin=@colorableGroup
|
||||||
|
syn keyword BGd2b48c Tan contained containedin=@colorableGroup
|
||||||
|
syn keyword BGd8bfd8 Thistle contained containedin=@colorableGroup
|
||||||
|
syn keyword BGff6347 Tomato contained containedin=@colorableGroup
|
||||||
|
syn keyword BG40e0d0 Turquoise contained containedin=@colorableGroup
|
||||||
|
syn keyword BGee82ee Violet contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf5deb3 Wheat contained containedin=@colorableGroup
|
||||||
|
syn keyword BGf5f5f5 WhiteSmoke contained containedin=@colorableGroup
|
||||||
|
syn keyword BG9acd32 YellowGreen contained containedin=@colorableGroup
|
||||||
|
endfunction
|
||||||
13
build
13
build
@@ -75,14 +75,16 @@ PACKS="
|
|||||||
cucumber:tpope/vim-cucumber
|
cucumber:tpope/vim-cucumber
|
||||||
dockerfile:honza/dockerfile.vim
|
dockerfile:honza/dockerfile.vim
|
||||||
elixir:elixir-lang/vim-elixir
|
elixir:elixir-lang/vim-elixir
|
||||||
|
emberscript:heartsentwined/vim-ember-script
|
||||||
erlang:oscarh/vimerl
|
erlang:oscarh/vimerl
|
||||||
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
|
||||||
|
jasmine:glanotte/vim-jasmine
|
||||||
javascript:pangloss/vim-javascript
|
javascript:pangloss/vim-javascript
|
||||||
json:leshill/vim-json
|
json:leshill/vim-json
|
||||||
jst:briancollins/vim-jst
|
jst:briancollins/vim-jst
|
||||||
@@ -92,11 +94,12 @@ PACKS="
|
|||||||
nginx:mutewinter/nginx.vim
|
nginx:mutewinter/nginx.vim
|
||||||
ocaml:jrk/vim-ocaml
|
ocaml:jrk/vim-ocaml
|
||||||
octave:vim-scripts/octave.vim--
|
octave:vim-scripts/octave.vim--
|
||||||
|
opencl:petRUShka/vim-opencl
|
||||||
perl:vim-perl/vim-perl
|
perl:vim-perl/vim-perl
|
||||||
php:StanAngeloff/php.vim
|
php:StanAngeloff/php.vim
|
||||||
puppet:ajf/puppet-vim
|
puppet:rodjek/vim-puppet
|
||||||
protobuf:uarun/vim-protobuf
|
protobuf:uarun/vim-protobuf
|
||||||
python:vim-scripts/python.vim--Vasiliev
|
python:mitsuhiko/vim-python-combined
|
||||||
r-lang:vim-scripts/R.vim
|
r-lang:vim-scripts/R.vim
|
||||||
rspec:sheerun/rspec.vim
|
rspec:sheerun/rspec.vim
|
||||||
ruby:vim-ruby/vim-ruby
|
ruby:vim-ruby/vim-ruby
|
||||||
@@ -110,9 +113,11 @@ PACKS="
|
|||||||
tomdoc:duwanis/tomdoc.vim
|
tomdoc:duwanis/tomdoc.vim
|
||||||
typescript:leafgarland/typescript-vim
|
typescript:leafgarland/typescript-vim
|
||||||
vbnet:vim-scripts/vbnet.vim
|
vbnet:vim-scripts/vbnet.vim
|
||||||
|
toml:cespare/vim-toml
|
||||||
twig:beyondwords/vim-twig
|
twig:beyondwords/vim-twig
|
||||||
xls:vim-scripts/XSLT-syntax
|
xls:vim-scripts/XSLT-syntax
|
||||||
css-color:gorodinskiy/vim-coloresque
|
yard:sheerun/vim-yardoc
|
||||||
|
css-color:ap/vim-css-color
|
||||||
"
|
"
|
||||||
|
|
||||||
rm -rf tmp
|
rm -rf tmp
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ endif
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=haml\ -c
|
CompilerSet makeprg=haml
|
||||||
|
|
||||||
CompilerSet errorformat=
|
CompilerSet errorformat=
|
||||||
\Haml\ %trror\ on\ line\ %l:\ %m,
|
\Haml\ %trror\ on\ line\ %l:\ %m,
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ let s:cpo_save = &cpo
|
|||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=testrb
|
CompilerSet makeprg=testrb
|
||||||
|
" CompilerSet makeprg=ruby\ -Itest
|
||||||
|
" CompilerSet makeprg=m
|
||||||
|
|
||||||
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
||||||
\%C%m\ [%f:%l]:,
|
\%C%m\ [%f:%l]:,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ endif
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=sass\ -c
|
CompilerSet makeprg=sass
|
||||||
|
|
||||||
CompilerSet errorformat=
|
CompilerSet errorformat=
|
||||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -15,15 +15,14 @@ autocmd BufNewFile,BufReadPost *.feature,*.story set filetype=cucumber
|
|||||||
au BufNewFile,BufRead Dockerfile set filetype=dockerfile
|
au BufNewFile,BufRead Dockerfile set filetype=dockerfile
|
||||||
au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
||||||
au FileType elixir setl sw=2 sts=2 et iskeyword+=!,?
|
au FileType elixir setl sw=2 sts=2 et iskeyword+=!,?
|
||||||
autocmd BufNewFile,BufRead *.git/{,modules/**/}{COMMIT_EDIT,MERGE_}MSG set ft=gitcommit
|
autocmd BufNewFile,BufRead *.em set filetype=ember-script
|
||||||
|
autocmd FileType ember-script set tabstop=2|set shiftwidth=2|set expandtab
|
||||||
|
autocmd BufNewFile,BufRead *.git/{,modules/**/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG set ft=gitcommit
|
||||||
autocmd BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules set ft=gitconfig
|
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 |
|
||||||
@@ -47,13 +46,11 @@ endfunction
|
|||||||
au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix
|
au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix
|
||||||
au BufRead *.go call s:gofiletype_pre()
|
au BufRead *.go call s:gofiletype_pre()
|
||||||
au BufReadPost *.go call s:gofiletype_post()
|
au BufReadPost *.go call s:gofiletype_post()
|
||||||
autocmd BufNewFile,BufRead *.haml,*.hamlbars setf haml
|
autocmd BufNewFile,BufRead *.haml,*.hamlbars,*.hamlc 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
|
||||||
|
autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript syntax=jasmine
|
||||||
au BufNewFile,BufRead *.js setf javascript
|
au BufNewFile,BufRead *.js setf javascript
|
||||||
au BufNewFile,BufRead *.jsm setf javascript
|
au BufNewFile,BufRead *.jsm setf javascript
|
||||||
au BufNewFile,BufRead Jakefile setf javascript
|
au BufNewFile,BufRead Jakefile setf javascript
|
||||||
@@ -84,31 +81,41 @@ 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
|
||||||
|
au BufRead,BufNewFile *.cl set filetype=opencl
|
||||||
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
||||||
au BufRead,BufNewFile *.pp set filetype=puppet
|
au! BufRead,BufNewFile *.pp setfiletype puppet
|
||||||
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec set filetype=ruby
|
function! s:setf(filetype) abort
|
||||||
au BufNewFile,BufRead *.builder,*.rxml,*.rjs set filetype=ruby
|
if &filetype !=# a:filetype
|
||||||
au BufNewFile,BufRead [rR]akefile,*.rake set filetype=ruby
|
let &filetype = a:filetype
|
||||||
au BufNewFile,BufRead [rR]antfile,*.rant set filetype=ruby
|
endif
|
||||||
au BufNewFile,BufRead .irbrc,irbrc set filetype=ruby
|
endfunction
|
||||||
au BufNewFile,BufRead .pryrc set filetype=ruby
|
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec call s:setf('ruby')
|
||||||
au BufNewFile,BufRead *.ru set filetype=ruby
|
au BufNewFile,BufRead *.builder,*.rxml,*.rjs,*.ruby call s:setf('ruby')
|
||||||
au BufNewFile,BufRead Capfile set filetype=ruby
|
au BufNewFile,BufRead [rR]akefile,*.rake call s:setf('ruby')
|
||||||
au BufNewFile,BufRead Gemfile set filetype=ruby
|
au BufNewFile,BufRead [rR]antfile,*.rant call s:setf('ruby')
|
||||||
au BufNewFile,BufRead Guardfile,.Guardfile set filetype=ruby
|
au BufNewFile,BufRead .irbrc,irbrc call s:setf('ruby')
|
||||||
au BufNewFile,BufRead Cheffile set filetype=ruby
|
au BufNewFile,BufRead .pryrc call s:setf('ruby')
|
||||||
au BufNewFile,BufRead Berksfile set filetype=ruby
|
au BufNewFile,BufRead *.ru call s:setf('ruby')
|
||||||
au BufNewFile,BufRead [vV]agrantfile set filetype=ruby
|
au BufNewFile,BufRead Capfile call s:setf('ruby')
|
||||||
au BufNewFile,BufRead .autotest set filetype=ruby
|
au BufNewFile,BufRead Gemfile call s:setf('ruby')
|
||||||
au BufNewFile,BufRead *.erb,*.rhtml set filetype=eruby
|
au BufNewFile,BufRead Guardfile,.Guardfile call s:setf('ruby')
|
||||||
au BufNewFile,BufRead [tT]horfile,*.thor set filetype=ruby
|
au BufNewFile,BufRead Cheffile call s:setf('ruby')
|
||||||
au BufNewFile,BufRead *.rabl set filetype=ruby
|
au BufNewFile,BufRead Berksfile call s:setf('ruby')
|
||||||
au BufNewFile,BufRead *.jbuilder set filetype=ruby
|
au BufNewFile,BufRead [vV]agrantfile call s:setf('ruby')
|
||||||
au BufNewFile,BufRead Puppetfile set filetype=ruby
|
au BufNewFile,BufRead .autotest call s:setf('ruby')
|
||||||
au BufNewFile,BufRead [Bb]uildfile set filetype=ruby
|
au BufNewFile,BufRead *.erb,*.rhtml call s:setf('eruby')
|
||||||
au BufNewFile,BufRead Appraisals set filetype=ruby
|
au BufNewFile,BufRead [tT]horfile,*.thor call s:setf('ruby')
|
||||||
au BufRead,BufNewFile *.rs,*.rc set filetype=rust
|
au BufNewFile,BufRead *.rabl call s:setf('ruby')
|
||||||
|
au BufNewFile,BufRead *.jbuilder call s:setf('ruby')
|
||||||
|
au BufNewFile,BufRead Puppetfile call s:setf('ruby')
|
||||||
|
au BufNewFile,BufRead [Bb]uildfile call s:setf('ruby')
|
||||||
|
au BufNewFile,BufRead Appraisals call s:setf('ruby')
|
||||||
|
au BufNewFile,BufRead Podfile,*.podspec call s:setf('ruby')
|
||||||
|
au 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,11 +124,12 @@ 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
|
||||||
autocmd BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
autocmd BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
||||||
|
autocmd BufNewFile,BufRead *.toml set filetype=toml
|
||||||
autocmd BufNewFile,BufRead *.twig set filetype=twig
|
autocmd BufNewFile,BufRead *.twig set filetype=twig
|
||||||
autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
|
autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
|
||||||
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|
||||||
|
|||||||
@@ -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,22 @@ 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.
|
||||||
|
"
|
||||||
|
" -*- LISPWORDS -*-
|
||||||
|
" 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,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,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
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
" Filetype plugin for editing CSV files. "{{{1
|
" Filetype plugin for editing CSV files. "{{{1
|
||||||
" Author: Christian Brabandt <cb@256bit.org>
|
" Author: Christian Brabandt <cb@256bit.org>
|
||||||
" Version: 0.29
|
" Version: 0.30
|
||||||
" Script: http://www.vim.org/scripts/script.php?script_id=2830
|
" Script: http://www.vim.org/scripts/script.php?script_id=2830
|
||||||
" License: VIM License
|
" License: VIM License
|
||||||
" Last Change: Wed, 14 Aug 2013 22:05:39 +0200
|
" Last Change: Thu, 27 Mar 2014 23:28:40 +0100
|
||||||
" Documentation: see :help ft-csv.txt
|
" Documentation: see :help ft-csv.txt
|
||||||
" GetLatestVimScripts: 2830 28 :AutoInstall: csv.vim
|
" GetLatestVimScripts: 2830 29 :AutoInstall: csv.vim
|
||||||
"
|
"
|
||||||
" Some ideas are taken from the wiki http://vim.wikia.com/wiki/VimTip667
|
" Some ideas are taken from the wiki http://vim.wikia.com/wiki/VimTip667
|
||||||
" 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,7 +1,7 @@
|
|||||||
" Vim filetype plugin
|
" Vim filetype plugin
|
||||||
" Language: Cucumber
|
" Language: Cucumber
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2010 Aug 09
|
" Last Change: 2013 Jun 01
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if (exists("b:did_ftplugin"))
|
if (exists("b:did_ftplugin"))
|
||||||
@@ -9,6 +9,9 @@ if (exists("b:did_ftplugin"))
|
|||||||
endif
|
endif
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
let s:keepcpo= &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
setlocal formatoptions-=t formatoptions+=croql
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
setlocal comments=:# commentstring=#\ %s
|
setlocal comments=:# commentstring=#\ %s
|
||||||
setlocal omnifunc=CucumberComplete
|
setlocal omnifunc=CucumberComplete
|
||||||
@@ -18,25 +21,17 @@ let b:undo_ftplugin = "setl fo< com< cms< ofu<"
|
|||||||
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
|
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
|
||||||
|
|
||||||
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
|
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
|
||||||
nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
|
||||||
nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
||||||
nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
||||||
nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
|
|
||||||
nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
|
|
||||||
nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
|
nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
|
||||||
nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
|
nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
|
||||||
nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
|
||||||
nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||||
nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||||
let b:undo_ftplugin .=
|
let b:undo_ftplugin .=
|
||||||
\ "|sil! nunmap <buffer> <C-]>" .
|
|
||||||
\ "|sil! nunmap <buffer> [<C-D>" .
|
\ "|sil! nunmap <buffer> [<C-D>" .
|
||||||
\ "|sil! nunmap <buffer> ]<C-D>" .
|
\ "|sil! nunmap <buffer> ]<C-D>" .
|
||||||
\ "|sil! nunmap <buffer> <C-W>]" .
|
|
||||||
\ "|sil! nunmap <buffer> <C-W><C-]>" .
|
|
||||||
\ "|sil! nunmap <buffer> <C-W>d" .
|
\ "|sil! nunmap <buffer> <C-W>d" .
|
||||||
\ "|sil! nunmap <buffer> <C-W><C-D>" .
|
\ "|sil! nunmap <buffer> <C-W><C-D>" .
|
||||||
\ "|sil! nunmap <buffer> <C-W>}" .
|
|
||||||
\ "|sil! nunmap <buffer> [d" .
|
\ "|sil! nunmap <buffer> [d" .
|
||||||
\ "|sil! nunmap <buffer> ]d"
|
\ "|sil! nunmap <buffer> ]d"
|
||||||
endif
|
endif
|
||||||
@@ -145,4 +140,7 @@ function! CucumberComplete(findstart,base) abort
|
|||||||
return sort(steps)
|
return sort(steps)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:keepcpo
|
||||||
|
unlet s:keepcpo
|
||||||
|
|
||||||
" vim:set sts=2 sw=2:
|
" vim:set sts=2 sw=2:
|
||||||
|
|||||||
17
ftplugin/ember-script.vim
Normal file
17
ftplugin/ember-script.vim
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
" Language: ember-script
|
||||||
|
" Maintainer: heartsentwined <heartsentwined@cogito-lab.com>
|
||||||
|
" URL: http://github.com/heartsentwined/vim-ember-script
|
||||||
|
" Version: 1.0.1
|
||||||
|
" Last Change: 2013 Apr 17
|
||||||
|
" License: GPL-3.0
|
||||||
|
|
||||||
|
setlocal tabstop=2
|
||||||
|
setlocal softtabstop=2
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal smarttab
|
||||||
|
setlocal expandtab
|
||||||
|
setlocal smartindent
|
||||||
|
|
||||||
|
setlocal formatoptions-=t formatoptions+=croqlj
|
||||||
|
setlocal comments=:#
|
||||||
|
setlocal commentstring=#\ %s
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -40,13 +40,9 @@ endfunction
|
|||||||
|
|
||||||
" {{{2 EscapeTitle
|
" {{{2 EscapeTitle
|
||||||
function! s:EscapeTitle(titlestr)
|
function! s:EscapeTitle(titlestr)
|
||||||
" Credit goes to Marcin Szamotulski for the following fix. It allows to
|
let titlestr = substitute(a:titlestr, '\\[a-zA-Z@]*\>\s*{\?', '.*', 'g')
|
||||||
" match through commands added by TeX.
|
let titlestr = substitute(titlestr, '}', '', 'g')
|
||||||
let titlestr = substitute(a:titlestr, '\\\w*\>\s*\%({[^}]*}\)\?', '.*', 'g')
|
let titlestr = substitute(titlestr, '\%(\.\*\s*\)\{2,}', '.*', 'g')
|
||||||
|
|
||||||
let titlestr = escape(titlestr, '\')
|
|
||||||
let titlestr = substitute(titlestr, ' ', '\\_\\s\\+', 'g')
|
|
||||||
|
|
||||||
return titlestr
|
return titlestr
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -170,6 +166,7 @@ function! s:TOCOpenBuf(file)
|
|||||||
let bnr = bufnr(a:file)
|
let bnr = bufnr(a:file)
|
||||||
endif
|
endif
|
||||||
execute 'buffer! ' . bnr
|
execute 'buffer! ' . bnr
|
||||||
|
normal! gg
|
||||||
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -19,4 +19,32 @@ else
|
|||||||
let b:undo_ftplugin = "setl cms< com< fo< flp<"
|
let b:undo_ftplugin = "setl cms< com< fo< flp<"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
function! MarkdownFold()
|
||||||
|
let line = getline(v:lnum)
|
||||||
|
|
||||||
|
" Regular headers
|
||||||
|
let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
|
||||||
|
if depth > 0
|
||||||
|
return ">" . depth
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Setext style headings
|
||||||
|
let nextline = getline(v:lnum + 1)
|
||||||
|
if (line =~ '^.\+$') && (nextline =~ '^=\+$')
|
||||||
|
return ">1"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (line =~ '^.\+$') && (nextline =~ '^-\+$')
|
||||||
|
return ">2"
|
||||||
|
endif
|
||||||
|
|
||||||
|
return "="
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
if has("folding") && exists("g:markdown_folding")
|
||||||
|
setlocal foldexpr=MarkdownFold()
|
||||||
|
setlocal foldmethod=expr
|
||||||
|
let b:undo_ftplugin .= " foldexpr< foldmethod<"
|
||||||
|
endif
|
||||||
|
|
||||||
" vim:set sw=2:
|
" vim:set sw=2:
|
||||||
|
|||||||
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
|
||||||
15
ftplugin/opencl.vim
Normal file
15
ftplugin/opencl.vim
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
if exists("b:did_ftplugin") | finish | endif
|
||||||
|
|
||||||
|
if version > 600
|
||||||
|
runtime! ftplugin/c.vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Smaller tab stops.
|
||||||
|
setlocal tabstop=4
|
||||||
|
setlocal shiftwidth=4
|
||||||
|
|
||||||
|
" Smart tabbing/indenting
|
||||||
|
setlocal smarttab
|
||||||
|
setlocal smartindent
|
||||||
|
|
||||||
|
let b:did_ftplugin = 1
|
||||||
@@ -1,137 +1,6 @@
|
|||||||
" Vim filetype plugin
|
setl ts=2
|
||||||
" Language: Puppet
|
setl sts=2
|
||||||
" Maintainer: Todd Zullinger <tmz@pobox.com>
|
setl sw=2
|
||||||
" Last Change: 2009 Aug 19
|
setl et
|
||||||
" vim: set sw=4 sts=4:
|
setl keywordprg=puppet\ describe\ --providers
|
||||||
|
setl iskeyword=-,:,@,48-57,_,192-255
|
||||||
if exists("b:did_ftplugin")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let b:did_ftplugin = 1
|
|
||||||
|
|
||||||
if !exists("no_plugin_maps") && !exists("no_puppet_maps")
|
|
||||||
if !hasmapto("<Plug>AlignRange")
|
|
||||||
map <buffer> <LocalLeader>= <Plug>AlignRange
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
noremap <buffer> <unique> <script> <Plug>AlignArrows :call <SID>AlignArrows()<CR>
|
|
||||||
noremap <buffer> <unique> <script> <Plug>AlignRange :call <SID>AlignRange()<CR>
|
|
||||||
|
|
||||||
iabbrev => =><C-R>=<SID>AlignArrows('=>')<CR>
|
|
||||||
iabbrev +> +><C-R>=<SID>AlignArrows('+>')<CR>
|
|
||||||
|
|
||||||
if exists('*s:AlignArrows')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:arrow_re = '[=+]>'
|
|
||||||
let s:selector_re = '[=+]>\s*\$.*\s*?\s*{\s*$'
|
|
||||||
|
|
||||||
" set keywordprg to 'pi' (alias for puppet describe)
|
|
||||||
" this lets K invoke pi for word under cursor
|
|
||||||
setlocal keywordprg=puppet\ describe
|
|
||||||
|
|
||||||
function! s:AlignArrows(op)
|
|
||||||
let cursor_pos = getpos('.')
|
|
||||||
let lnum = line('.')
|
|
||||||
let line = getline(lnum)
|
|
||||||
if line !~ s:arrow_re
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
let pos = stridx(line, a:op)
|
|
||||||
let start = lnum
|
|
||||||
let end = lnum
|
|
||||||
let pnum = lnum - 1
|
|
||||||
while 1
|
|
||||||
let pline = getline(pnum)
|
|
||||||
if pline !~ s:arrow_re || pline =~ s:selector_re
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let start = pnum
|
|
||||||
let pnum -= 1
|
|
||||||
endwhile
|
|
||||||
let cnum = end
|
|
||||||
while 1
|
|
||||||
let cline = getline(cnum)
|
|
||||||
if cline !~ s:arrow_re ||
|
|
||||||
\ (indent(cnum) != indent(cnum+1) && getline(cnum+1) !~ '\s*}')
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let end = cnum
|
|
||||||
let cnum += 1
|
|
||||||
endwhile
|
|
||||||
call s:AlignSection(start, end)
|
|
||||||
let cursor_pos[2] = stridx(getline('.'), a:op) + strlen(a:op) + 1
|
|
||||||
call setpos('.', cursor_pos)
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:AlignRange() range
|
|
||||||
call s:AlignSection(a:firstline, a:lastline)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" AlignSection and AlignLine are from the vim wiki:
|
|
||||||
" http://vim.wikia.com/wiki/Regex-based_text_alignment
|
|
||||||
function! s:AlignSection(start, end)
|
|
||||||
let extra = 1
|
|
||||||
let sep = s:arrow_re
|
|
||||||
let maxpos = 0
|
|
||||||
let section = getline(a:start, a:end)
|
|
||||||
for line in section
|
|
||||||
let pos = match(line, ' *'.sep)
|
|
||||||
if maxpos < pos
|
|
||||||
let maxpos = pos
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
call map(section, 's:AlignLine(v:val, sep, maxpos, extra)')
|
|
||||||
call setline(a:start, section)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:AlignLine(line, sep, maxpos, extra)
|
|
||||||
let m = matchlist(a:line, '\(.\{-}\) \{-}\('.a:sep.'.*\)')
|
|
||||||
if empty(m)
|
|
||||||
return a:line
|
|
||||||
endif
|
|
||||||
let spaces = repeat(' ', a:maxpos - strlen(m[1]) + a:extra)
|
|
||||||
return m[1] . spaces . m[2]
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" detect if we are in a module and set variables for classpath (autoloader),
|
|
||||||
" modulename, modulepath, and classname
|
|
||||||
" useful to use in templates
|
|
||||||
function! s:SetModuleVars()
|
|
||||||
|
|
||||||
" set these to any dirs you want to stop searching on
|
|
||||||
" useful to stop vim from spinning disk looking all over for init.pp
|
|
||||||
" probably only a macosx problem with /tmp since it's really /private/tmp
|
|
||||||
" but it's here if you find vim spinning on new files in certain places
|
|
||||||
if !exists("g:puppet_stop_dirs")
|
|
||||||
let g:puppet_stop_dirs = '/tmp;/private/tmp'
|
|
||||||
endif
|
|
||||||
|
|
||||||
" search path for init.pp
|
|
||||||
let b:search_path = './**'
|
|
||||||
let b:search_path = b:search_path . ';' . getcwd() . ';' . g:puppet_stop_dirs
|
|
||||||
|
|
||||||
" find what we assume to be our module dir
|
|
||||||
let b:initpp = findfile("init.pp", b:search_path) " find an init.pp up or down
|
|
||||||
let b:module_path = fnamemodify(b:initpp, ":p:h:h") " full path to module name
|
|
||||||
let b:module_name = fnamemodify(b:module_path, ":t") " just the module name
|
|
||||||
|
|
||||||
" sub out the full path to the module with the name and replace slashes with ::
|
|
||||||
let b:classpath = fnamemodify(expand("%:p:r"), ':s#' . b:module_path . '/manifests#' . b:module_name . '#'. ":gs?/?::?")
|
|
||||||
let b:classname = expand("%:t:r")
|
|
||||||
|
|
||||||
" if we don't start with a word we didn't replace the module_path
|
|
||||||
" probably b/c we couldn't find an init.pp / not a module
|
|
||||||
" so we assume that root of the filename is the class (sane for throwaway
|
|
||||||
" manifests
|
|
||||||
if b:classpath =~ '^::'
|
|
||||||
let b:classpath = b:classname
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if exists("g:puppet_module_detect")
|
|
||||||
call s:SetModuleVars()
|
|
||||||
endif
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -57,36 +57,39 @@ if exists("*searchpairpos")
|
|||||||
let g:clojure_align_subforms = 0
|
let g:clojure_align_subforms = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
function! s:SynIdName()
|
function! s:syn_id_name()
|
||||||
return synIDattr(synID(line("."), col("."), 0), "name")
|
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:CurrentChar()
|
function! s:ignored_region()
|
||||||
|
return s:syn_id_name() =~? '\vstring|regex|comment|character'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:current_char()
|
||||||
return getline('.')[col('.')-1]
|
return getline('.')[col('.')-1]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:CurrentWord()
|
function! s:current_word()
|
||||||
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
|
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:IsParen()
|
function! s:is_paren()
|
||||||
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
|
return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()
|
||||||
\ s:SynIdName() !~? '\vstring|regex|comment|character'
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
||||||
" list of patterns, or a comma-delimited string of implicitly anchored
|
" list of patterns, or a comma-delimited string of implicitly anchored
|
||||||
" patterns.
|
" patterns.
|
||||||
function! s:MatchesOne(patterns, string)
|
function! s:match_one(patterns, string)
|
||||||
let list = type(a:patterns) == type([])
|
let list = type(a:patterns) == type([])
|
||||||
\ ? 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
|
||||||
|
|
||||||
function! s:MatchPairs(open, close, stopat)
|
function! s:match_pairs(open, close, stopat)
|
||||||
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
||||||
" comments.
|
" comments.
|
||||||
if a:stopat == 0
|
if a:stopat == 0
|
||||||
@@ -95,11 +98,11 @@ if exists("*searchpairpos")
|
|||||||
let stopat = a:stopat
|
let stopat = a:stopat
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
|
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat)
|
||||||
return [pos[0], virtcol(pos)]
|
return [pos[0], virtcol(pos)]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:ClojureCheckForStringWorker()
|
function! s:clojure_check_for_string_worker()
|
||||||
" Check whether there is the last character of the previous line is
|
" Check whether there is the last character of the previous line is
|
||||||
" highlighted as a string. If so, we check whether it's a ". In this
|
" highlighted as a string. If so, we check whether it's a ". In this
|
||||||
" case we have to check also the previous character. The " might be the
|
" case we have to check also the previous character. The " might be the
|
||||||
@@ -113,17 +116,17 @@ if exists("*searchpairpos")
|
|||||||
|
|
||||||
call cursor(nb, 0)
|
call cursor(nb, 0)
|
||||||
call cursor(0, col("$") - 1)
|
call cursor(0, col("$") - 1)
|
||||||
if s:SynIdName() !~? "string"
|
if s:syn_id_name() !~? "string"
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" This will not work for a " in the first column...
|
" This will not work for a " in the first column...
|
||||||
if s:CurrentChar() == '"'
|
if s:current_char() == '"'
|
||||||
call cursor(0, col("$") - 2)
|
call cursor(0, col("$") - 2)
|
||||||
if s:SynIdName() !~? "string"
|
if s:syn_id_name() !~? "string"
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
if s:CurrentChar() != '\\'
|
if s:current_char() != '\\'
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
call cursor(0, col("$") - 1)
|
call cursor(0, col("$") - 1)
|
||||||
@@ -138,63 +141,74 @@ if exists("*searchpairpos")
|
|||||||
return indent(".")
|
return indent(".")
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:CheckForString()
|
function! s:check_for_string()
|
||||||
let pos = getpos('.')
|
let pos = getpos('.')
|
||||||
try
|
try
|
||||||
let val = s:ClojureCheckForStringWorker()
|
let val = s:clojure_check_for_string_worker()
|
||||||
finally
|
finally
|
||||||
call setpos('.', pos)
|
call setpos('.', pos)
|
||||||
endtry
|
endtry
|
||||||
return val
|
return val
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
function! s:strip_namespace_and_macro_chars(word)
|
||||||
|
return substitute(a:word, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:clojure_is_method_special_case_worker(position)
|
||||||
" Find the next enclosing form.
|
" Find the next enclosing form.
|
||||||
call search('\S', 'Wb')
|
call search('\S', 'Wb')
|
||||||
|
|
||||||
" Special case: we are at a '(('.
|
" Special case: we are at a '(('.
|
||||||
if s:CurrentChar() == '('
|
if s:current_char() == '('
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
call cursor(a:position)
|
call cursor(a:position)
|
||||||
|
|
||||||
let nextParen = s:MatchPairs('(', ')', 0)
|
let next_paren = s:match_pairs('(', ')', 0)
|
||||||
|
|
||||||
" Special case: we are now at toplevel.
|
" Special case: we are now at toplevel.
|
||||||
if nextParen == [0, 0]
|
if next_paren == [0, 0]
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
call cursor(nextParen)
|
call cursor(next_paren)
|
||||||
|
|
||||||
call search('\S', 'W')
|
call search('\S', 'W')
|
||||||
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
|
let w = s:strip_namespace_and_macro_chars(s:current_word())
|
||||||
|
if g:clojure_special_indent_words =~# '\V\<' . w . '\>'
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:IsMethodSpecialCase(position)
|
function! s:is_method_special_case(position)
|
||||||
let pos = getpos('.')
|
let pos = getpos('.')
|
||||||
try
|
try
|
||||||
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
|
let val = s:clojure_is_method_special_case_worker(a:position)
|
||||||
finally
|
finally
|
||||||
call setpos('.', pos)
|
call setpos('.', pos)
|
||||||
endtry
|
endtry
|
||||||
return val
|
return val
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! GetClojureIndent()
|
" Returns 1 for opening brackets, -1 for _anything else_.
|
||||||
|
function! s:bracket_type(char)
|
||||||
|
return stridx('([{', a:char) > -1 ? 1 : -1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Returns: [opening-bracket-lnum, indent]
|
||||||
|
function! s:clojure_indent_pos()
|
||||||
" Get rid of special case.
|
" Get rid of special case.
|
||||||
if line(".") == 1
|
if line(".") == 1
|
||||||
return 0
|
return [0, 0]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" We have to apply some heuristics here to figure out, whether to use
|
" We have to apply some heuristics here to figure out, whether to use
|
||||||
" normal lisp indenting or not.
|
" normal lisp indenting or not.
|
||||||
let i = s:CheckForString()
|
let i = s:check_for_string()
|
||||||
if i > -1
|
if i > -1
|
||||||
return i + !!g:clojure_align_multiline_strings
|
return [0, i + !!g:clojure_align_multiline_strings]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call cursor(0, 1)
|
call cursor(0, 1)
|
||||||
@@ -202,28 +216,28 @@ if exists("*searchpairpos")
|
|||||||
" Find the next enclosing [ or {. We can limit the second search
|
" Find the next enclosing [ or {. We can limit the second search
|
||||||
" to the line, where the [ was found. If no [ was there this is
|
" to the line, where the [ was found. If no [ was there this is
|
||||||
" zero and we search for an enclosing {.
|
" zero and we search for an enclosing {.
|
||||||
let paren = s:MatchPairs('(', ')', 0)
|
let paren = s:match_pairs('(', ')', 0)
|
||||||
let bracket = s:MatchPairs('\[', '\]', paren[0])
|
let bracket = s:match_pairs('\[', '\]', paren[0])
|
||||||
let curly = s:MatchPairs('{', '}', bracket[0])
|
let curly = s:match_pairs('{', '}', bracket[0])
|
||||||
|
|
||||||
" In case the curly brace is on a line later then the [ or - in
|
" In case the curly brace is on a line later then the [ or - in
|
||||||
" case they are on the same line - in a higher column, we take the
|
" case they are on the same line - in a higher column, we take the
|
||||||
" curly indent.
|
" curly indent.
|
||||||
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
||||||
if curly[0] > paren[0] || curly[1] > paren[1]
|
if curly[0] > paren[0] || curly[1] > paren[1]
|
||||||
return curly[1]
|
return curly
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If the curly was not chosen, we take the bracket indent - if
|
" If the curly was not chosen, we take the bracket indent - if
|
||||||
" there was one.
|
" there was one.
|
||||||
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
||||||
return bracket[1]
|
return bracket
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
||||||
if paren == [0, 0]
|
if paren == [0, 0]
|
||||||
return 0
|
return paren
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
||||||
@@ -241,58 +255,106 @@ if exists("*searchpairpos")
|
|||||||
" - In any other case we use the column of the end of the word + 2.
|
" - In any other case we use the column of the end of the word + 2.
|
||||||
call cursor(paren)
|
call cursor(paren)
|
||||||
|
|
||||||
if s:IsMethodSpecialCase(paren)
|
if s:is_method_special_case(paren)
|
||||||
return paren[1] + &shiftwidth - 1
|
return [paren[0], paren[1] + &shiftwidth - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" In case we are at the last character, we use the paren position.
|
" In case we are at the last character, we use the paren position.
|
||||||
if col("$") - 1 == paren[1]
|
if col("$") - 1 == paren[1]
|
||||||
return paren[1]
|
return paren
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" In case after the paren is a whitespace, we search for the next word.
|
" In case after the paren is a whitespace, we search for the next word.
|
||||||
call cursor(0, col('.') + 1)
|
call cursor(0, col('.') + 1)
|
||||||
if s:CurrentChar() == ' '
|
if s:current_char() == ' '
|
||||||
call search('\v\S', 'W')
|
call search('\v\S', 'W')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If we moved to another line, there is no word after the (. We
|
" If we moved to another line, there is no word after the (. We
|
||||||
" use the ( position for indent.
|
" use the ( position for indent.
|
||||||
if line(".") > paren[0]
|
if line(".") > paren[0]
|
||||||
return paren[1]
|
return paren
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" We still have to check, whether the keyword starts with a (, [ or {.
|
" We still have to check, whether the keyword starts with a (, [ or {.
|
||||||
" In that case we use the ( position for indent.
|
" In that case we use the ( position for indent.
|
||||||
let w = s:CurrentWord()
|
let w = s:current_word()
|
||||||
if stridx('([{', w[0]) > -1
|
if s:bracket_type(w[0]) == 1
|
||||||
return paren[1]
|
return paren
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Test words without namespace qualifiers and leading reader macro
|
" Test words without namespace qualifiers and leading reader macro
|
||||||
" 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:strip_namespace_and_macro_chars(w)
|
||||||
|
|
||||||
if &lispwords =~ '\V\<' . ww . '\>'
|
if &lispwords =~# '\V\<' . ww . '\>'
|
||||||
return paren[1] + &shiftwidth - 1
|
return [paren[0], paren[1] + &shiftwidth - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:clojure_fuzzy_indent
|
if g:clojure_fuzzy_indent
|
||||||
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
|
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
|
||||||
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
|
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
|
||||||
return paren[1] + &shiftwidth - 1
|
return [paren[0], paren[1] + &shiftwidth - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call search('\v\_s', 'cW')
|
call search('\v\_s', 'cW')
|
||||||
call search('\v\S', 'W')
|
call search('\v\S', 'W')
|
||||||
if paren[0] < line(".")
|
if paren[0] < line(".")
|
||||||
return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
|
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call search('\v\S', 'bW')
|
call search('\v\S', 'bW')
|
||||||
return virtcol(".") + 1
|
return [line('.'), virtcol('.') + 1]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! GetClojureIndent()
|
||||||
|
let lnum = line('.')
|
||||||
|
let [opening_lnum, indent] = s:clojure_indent_pos()
|
||||||
|
|
||||||
|
" Return if there are no previous lines to inherit from
|
||||||
|
if opening_lnum < 1 || opening_lnum >= lnum - 1
|
||||||
|
return indent
|
||||||
|
endif
|
||||||
|
|
||||||
|
let bracket_count = 0
|
||||||
|
|
||||||
|
" Take the indent of the first previous non-white line that is
|
||||||
|
" at the same sexp level. cf. src/misc1.c:get_lisp_indent()
|
||||||
|
while 1
|
||||||
|
let lnum = prevnonblank(lnum - 1)
|
||||||
|
let col = 1
|
||||||
|
|
||||||
|
if lnum <= opening_lnum
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
|
||||||
|
call cursor(lnum, col)
|
||||||
|
|
||||||
|
" Handle bracket counting edge case
|
||||||
|
if s:is_paren()
|
||||||
|
let bracket_count += s:bracket_type(s:current_char())
|
||||||
|
endif
|
||||||
|
|
||||||
|
while 1
|
||||||
|
if search('\v[(\[{}\])]', '', lnum) < 1
|
||||||
|
break
|
||||||
|
elseif !s:ignored_region()
|
||||||
|
let bracket_count += s:bracket_type(s:current_char())
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if bracket_count == 0
|
||||||
|
" Check if this is part of a multiline string
|
||||||
|
call cursor(lnum, 1)
|
||||||
|
if s:syn_id_name() !~? '\vstring|regex'
|
||||||
|
return indent(lnum)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return indent
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
setlocal indentexpr=GetClojureIndent()
|
setlocal indentexpr=GetClojureIndent()
|
||||||
@@ -307,85 +369,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
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Cucumber
|
" Language: Cucumber
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2010 May 21
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
|
|||||||
@@ -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,64 @@ 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 current_line =~ '^\s*\(\]\|}\)'
|
||||||
\ '\|^\s*\%(.*->\)$'
|
let ind -= &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
if last_line =~ s:indent_keywords
|
||||||
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
|
||||||
|
|||||||
14
indent/ember-script.vim
Normal file
14
indent/ember-script.vim
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
" Language: ember-script
|
||||||
|
" Maintainer: heartsentwined <heartsentwined@cogito-lab.com>
|
||||||
|
" URL: http://github.com/heartsentwined/vim-ember-script
|
||||||
|
" Version: 1.0.1
|
||||||
|
" Last Change: 2013 Apr 17
|
||||||
|
" License: GPL-3.0
|
||||||
|
|
||||||
|
if exists('b:did_indent')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime! indent/coffee.vim
|
||||||
|
unlet! b:did_indent
|
||||||
|
let b:did_indent = 1
|
||||||
@@ -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({})
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ let b:did_indent = 1
|
|||||||
|
|
||||||
" [-- local settings (must come before aborting the script) --]
|
" [-- local settings (must come before aborting the script) --]
|
||||||
setlocal indentexpr=HtmlIndentGet(v:lnum)
|
setlocal indentexpr=HtmlIndentGet(v:lnum)
|
||||||
setlocal indentkeys=o,O,*<Return>,<>>,{,}
|
setlocal indentkeys=o,O,*<Return>,<>>,{,},!^F
|
||||||
|
|
||||||
|
|
||||||
let s:tags = []
|
let s:tags = []
|
||||||
|
|||||||
10
indent/opencl.vim
Normal file
10
indent/opencl.vim
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if version > 600
|
||||||
|
runtime! indent/c.vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:did_indent = 1
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Puppet
|
" Language: Puppet
|
||||||
" Maintainer: Todd Zullinger <tmz@pobox.com>
|
" Maintainer: Todd Zullinger <tmz@pobox.com>
|
||||||
" Last Change: 2009 Aug 19
|
" Last Change: 2009 Aug 19
|
||||||
" vim: set sw=4 sts=4:
|
" vim: set sw=4 sts=4:
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
@@ -67,10 +67,15 @@ function! GetPuppetIndent()
|
|||||||
let ind -= &sw
|
let ind -= &sw
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Match } }, }; ] ]: )
|
" Match } }, }; ] ]: ], ]; )
|
||||||
if line =~ '^\s*\(}\(,\|;\)\?$\|]:\?$\|)\)'
|
if line =~ '^\s*\(}\(,\|;\)\?$\|]:\|],\|}]\|];\?$\|)\)'
|
||||||
let ind = indent(s:OpenBrace(v:lnum))
|
let ind = indent(s:OpenBrace(v:lnum))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Don't actually shift over for } else {
|
||||||
|
if line =~ '^\s*}\s*els\(e\|if\).*{\s*$'
|
||||||
|
let ind -= &sw
|
||||||
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
213
indent/python.vim
Normal file
213
indent/python.vim
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
" PEP8 compatible Python indent file
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal expandtab
|
||||||
|
setlocal nolisp
|
||||||
|
setlocal autoindent
|
||||||
|
setlocal indentexpr=GetPythonPEPIndent(v:lnum)
|
||||||
|
setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except
|
||||||
|
|
||||||
|
let s:maxoff = 50
|
||||||
|
|
||||||
|
" Find backwards the closest open parenthesis/bracket/brace.
|
||||||
|
function! s:SearchParensPair()
|
||||||
|
let line = line('.')
|
||||||
|
let col = col('.')
|
||||||
|
|
||||||
|
" Skip strings and comments and don't look too far
|
||||||
|
let skip = "line('.') < " . (line - s:maxoff) . " ? dummy :" .
|
||||||
|
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? ' .
|
||||||
|
\ '"string\\|comment"'
|
||||||
|
|
||||||
|
" Search for parentheses
|
||||||
|
call cursor(line, col)
|
||||||
|
let parlnum = searchpair('(', '', ')', 'bW', skip)
|
||||||
|
let parcol = col('.')
|
||||||
|
|
||||||
|
" Search for brackets
|
||||||
|
call cursor(line, col)
|
||||||
|
let par2lnum = searchpair('\[', '', '\]', 'bW', skip)
|
||||||
|
let par2col = col('.')
|
||||||
|
|
||||||
|
" Search for braces
|
||||||
|
call cursor(line, col)
|
||||||
|
let par3lnum = searchpair('{', '', '}', 'bW', skip)
|
||||||
|
let par3col = col('.')
|
||||||
|
|
||||||
|
" Get the closest match
|
||||||
|
if par2lnum > parlnum || (par2lnum == parlnum && par2col > parcol)
|
||||||
|
let parlnum = par2lnum
|
||||||
|
let parcol = par2col
|
||||||
|
endif
|
||||||
|
if par3lnum > parlnum || (par3lnum == parlnum && par3col > parcol)
|
||||||
|
let parlnum = par3lnum
|
||||||
|
let parcol = par3col
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Put the cursor on the match
|
||||||
|
if parlnum > 0
|
||||||
|
call cursor(parlnum, parcol)
|
||||||
|
endif
|
||||||
|
return parlnum
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Find the start of a multi-line statement
|
||||||
|
function! s:StatementStart(lnum)
|
||||||
|
let lnum = a:lnum
|
||||||
|
while 1
|
||||||
|
if getline(lnum - 1) =~ '\\$'
|
||||||
|
let lnum = lnum - 1
|
||||||
|
else
|
||||||
|
call cursor(lnum, 1)
|
||||||
|
let maybe_lnum = s:SearchParensPair()
|
||||||
|
if maybe_lnum < 1
|
||||||
|
return lnum
|
||||||
|
else
|
||||||
|
let lnum = maybe_lnum
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Find the block starter that matches the current line
|
||||||
|
function! s:BlockStarter(lnum, block_start_re)
|
||||||
|
let lnum = a:lnum
|
||||||
|
let maxindent = 10000 " whatever
|
||||||
|
while lnum > 1
|
||||||
|
let lnum = prevnonblank(lnum - 1)
|
||||||
|
if indent(lnum) < maxindent
|
||||||
|
if getline(lnum) =~ a:block_start_re
|
||||||
|
return lnum
|
||||||
|
else
|
||||||
|
let maxindent = indent(lnum)
|
||||||
|
" It's not worth going further if we reached the top level
|
||||||
|
if maxindent == 0
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return -1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! GetPythonPEPIndent(lnum)
|
||||||
|
let scol = col('.')
|
||||||
|
|
||||||
|
" First line has indent 0
|
||||||
|
if a:lnum == 1
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If we can find an open parenthesis/bracket/brace, line up with it.
|
||||||
|
call cursor(a:lnum, 1)
|
||||||
|
let parlnum = s:SearchParensPair()
|
||||||
|
if parlnum > 0
|
||||||
|
let parcol = col('.')
|
||||||
|
let matches = matchlist(getline(a:lnum), '^\(\s*\)[])}]')
|
||||||
|
if len(matches) == 0
|
||||||
|
let closing_paren = 0
|
||||||
|
let closing_paren_pos = 0
|
||||||
|
else
|
||||||
|
let closing_paren = 1
|
||||||
|
let closing_paren_pos = len(matches[1])
|
||||||
|
endif
|
||||||
|
if match(getline(parlnum), '[([{]\s*$', parcol - 1) != -1
|
||||||
|
if closing_paren
|
||||||
|
return indent(parlnum)
|
||||||
|
else
|
||||||
|
return indent(parlnum) + &shiftwidth
|
||||||
|
endif
|
||||||
|
elseif a:lnum - 1 != parlnum
|
||||||
|
if closing_paren && closing_paren_pos > scol
|
||||||
|
return indent(parlnum)
|
||||||
|
else
|
||||||
|
let lastindent = match(getline(a:lnum - 1), '\S')
|
||||||
|
if lastindent != -1 && lastindent < parcol
|
||||||
|
return lastindent
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If we line up with an opening column there is a special case
|
||||||
|
" we want to handle: a docstring as argument. In that case we
|
||||||
|
" don't want to line up with the paren but with the statement
|
||||||
|
" imagine foo(doc=""" as example
|
||||||
|
echo getline(parlnum)
|
||||||
|
if match(getline(parlnum), '\("""\|' . "'''" . '\)\s*$') != -1
|
||||||
|
return indent(parlnum)
|
||||||
|
endif
|
||||||
|
|
||||||
|
return parcol
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Examine this line
|
||||||
|
let thisline = getline(a:lnum)
|
||||||
|
let thisindent = indent(a:lnum)
|
||||||
|
|
||||||
|
" If the line starts with 'elif' or 'else', line up with 'if' or 'elif'
|
||||||
|
if thisline =~ '^\s*\(elif\|else\)\>'
|
||||||
|
let bslnum = s:BlockStarter(a:lnum, '^\s*\(if\|elif\)\>')
|
||||||
|
if bslnum > 0
|
||||||
|
return indent(bslnum)
|
||||||
|
else
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If the line starts with 'except' or 'finally', line up with 'try'
|
||||||
|
" or 'except'
|
||||||
|
if thisline =~ '^\s*\(except\|finally\)\>'
|
||||||
|
let bslnum = s:BlockStarter(a:lnum, '^\s*\(try\|except\)\>')
|
||||||
|
if bslnum > 0
|
||||||
|
return indent(bslnum)
|
||||||
|
else
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Examine previous line
|
||||||
|
let plnum = a:lnum - 1
|
||||||
|
let pline = getline(plnum)
|
||||||
|
let sslnum = s:StatementStart(plnum)
|
||||||
|
|
||||||
|
" If the previous line is blank, keep the same indentation
|
||||||
|
if pline =~ '^\s*$'
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If this line is explicitly joined, try to find an indentation that looks
|
||||||
|
" good.
|
||||||
|
if pline =~ '\\$'
|
||||||
|
let compound_statement = '^\s*\(if\|while\|from\|import\|for\s.*\sin\|except\)\s*'
|
||||||
|
let maybe_indent = matchend(getline(sslnum), compound_statement)
|
||||||
|
if maybe_indent != -1
|
||||||
|
return maybe_indent
|
||||||
|
else
|
||||||
|
return indent(sslnum) + &sw * 2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If the previous line ended with a colon and is not a comment, indent
|
||||||
|
" relative to statement start.
|
||||||
|
if pline =~ '^[^#]*:\s*\(#.*\)\?$'
|
||||||
|
return indent(sslnum) + &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If the previous line was a stop-execution statement or a pass
|
||||||
|
if getline(sslnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>'
|
||||||
|
" See if the user has already dedented
|
||||||
|
if indent(a:lnum) > indent(sslnum) - &sw
|
||||||
|
" If not, recommend one dedent
|
||||||
|
return indent(sslnum) - &sw
|
||||||
|
endif
|
||||||
|
" Otherwise, trust the user
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" In all other cases, line up with the start of the previous statement.
|
||||||
|
return indent(sslnum)
|
||||||
|
endfunction
|
||||||
@@ -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
@@ -2,11 +2,14 @@
|
|||||||
" Language: Cucumber
|
" Language: Cucumber
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Filenames: *.feature
|
" Filenames: *.feature
|
||||||
" Last Change: 2010 May 21
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
let s:keepcpo= &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
syn case match
|
syn case match
|
||||||
syn sync minlines=20
|
syn sync minlines=20
|
||||||
|
|
||||||
@@ -133,4 +136,7 @@ hi def link cucumberThen Type
|
|||||||
|
|
||||||
let b:current_syntax = "cucumber"
|
let b:current_syntax = "cucumber"
|
||||||
|
|
||||||
|
let &cpo = s:keepcpo
|
||||||
|
unlet s:keepcpo
|
||||||
|
|
||||||
" vim:set sts=2 sw=2:
|
" vim:set sts=2 sw=2:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
31
syntax/ember-script.vim
Normal file
31
syntax/ember-script.vim
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
" Language: ember-script
|
||||||
|
" Maintainer: heartsentwined <heartsentwined@cogito-lab.com>
|
||||||
|
" URL: http://github.com/heartsentwined/vim-ember-script
|
||||||
|
" Version: 1.0.1
|
||||||
|
" Last Change: 2013 Apr 17
|
||||||
|
" License: GPL-3.0
|
||||||
|
|
||||||
|
if exists('b:current_syntax') && b:current_syntax == 'ember-script'
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime! syntax/coffee.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
" mixin and with
|
||||||
|
syn match emKeyword /\vmixin|with/ display
|
||||||
|
hi def link emKeyword Keyword
|
||||||
|
|
||||||
|
" annotations
|
||||||
|
syn match emAnnotation /\v\+(computed|observer|volatile)/ display
|
||||||
|
hi def link emAnnotation Define
|
||||||
|
|
||||||
|
" ~> and *. operators
|
||||||
|
syn match emOperator /\v\~\>|\*\./ display
|
||||||
|
hi def link emOperator Operator
|
||||||
|
|
||||||
|
" @each is special
|
||||||
|
syn match emEach /\v\@each/ display
|
||||||
|
hi def link emEach Special
|
||||||
|
|
||||||
|
let b:current_syntax = 'ember-script'
|
||||||
@@ -67,7 +67,7 @@ syn region hamlJavascriptFilter matchgroup=hamlFilter start="^\z(\s*\):javascri
|
|||||||
syn region hamlCSSFilter matchgroup=hamlFilter start="^\z(\s*\):css\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlCss,hamlInterpolation keepend
|
syn region hamlCSSFilter matchgroup=hamlFilter start="^\z(\s*\):css\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlCss,hamlInterpolation keepend
|
||||||
syn region hamlSassFilter matchgroup=hamlFilter start="^\z(\s*\):sass\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlSassTop
|
syn region hamlSassFilter matchgroup=hamlFilter start="^\z(\s*\):sass\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlSassTop
|
||||||
|
|
||||||
syn region hamlJavascriptBlock start="^\z(\s*\)%script" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlJavaScript keepend
|
syn region hamlJavascriptBlock start="^\z(\s*\)%script\%((type=[\"']text/javascript[\"'])\)\=\s*$" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlJavaScript keepend
|
||||||
syn region hamlCssBlock start="^\z(\s*\)%style" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlCss keepend
|
syn region hamlCssBlock start="^\z(\s*\)%style" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlCss keepend
|
||||||
syn match hamlError "\$" contained
|
syn match hamlError "\$" contained
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
34
syntax/jasmine.vim
Normal file
34
syntax/jasmine.vim
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
" Syntax highlighting for jasmine specs (used by http://github.com/thomd/vim-jasmine).
|
||||||
|
|
||||||
|
" if b:current_syntax is defined, some other syntax files, earlier in 'runtimepath' was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" match the case of syntax elements
|
||||||
|
syntax case match
|
||||||
|
|
||||||
|
" keywords
|
||||||
|
syntax keyword jasmineSuite describe it beforeEach afterEach
|
||||||
|
syntax keyword jasmineDisabled xdescribe xit
|
||||||
|
syntax keyword jasmineExpectation expect
|
||||||
|
syntax region jasmineNot start=/not/ end=/\.to/me=s-1
|
||||||
|
syntax match jasmineMatcher /\.to\h\+/
|
||||||
|
syntax keyword jasmineSpy spyOn
|
||||||
|
syntax match jasmineSpyMatcher /and\h\+/
|
||||||
|
|
||||||
|
" jasmine is a subset of the javascript language, thus we need to activate
|
||||||
|
" javascript syntax highlighting and add new jasmin group names to the
|
||||||
|
" JavaScriptAll cluster which is defined there
|
||||||
|
runtime! syntax/javascript.vim
|
||||||
|
syntax cluster JavaScriptAll add=jasmineSuite,jasmineDisabled,jasmineExpectation,jasmineNot,jasmineMatcher,jasmineSpy,jasmineSpyMatcher
|
||||||
|
|
||||||
|
let b:current_syntax = "jasmine"
|
||||||
|
|
||||||
|
hi def link jasmineSuite Statement
|
||||||
|
hi def link jasmineDisabled Error
|
||||||
|
hi def link jasmineExpectation Statement
|
||||||
|
hi def link jasmineNot Special
|
||||||
|
hi def link jasmineMatcher Statement
|
||||||
|
hi def link jasmineSpy Special
|
||||||
|
hi def link jasmineSpyMatcher Statement
|
||||||
@@ -55,15 +55,15 @@ if !exists("javascript_ignore_javaScriptdoc")
|
|||||||
syntax region jsDocComment matchgroup=jsComment start="/\*\*\s*" end="\*/" contains=jsDocTags,jsCommentTodo,jsCvsTag,@jsHtml,@Spell fold
|
syntax region jsDocComment matchgroup=jsComment start="/\*\*\s*" end="\*/" contains=jsDocTags,jsCommentTodo,jsCvsTag,@jsHtml,@Spell fold
|
||||||
|
|
||||||
" tags containing a param
|
" tags containing a param
|
||||||
syntax match jsDocTags contained "@\(alias\|augments\|borrows\|class\|constructs\|default\|defaultvalue\|emits\|exception\|exports\|extends\|file\|fires\|kind\|listens\|member\|memberOf\|mixes\|module\|name\|namespace\|requires\|throws\|var\|variation\|version\)\>" nextgroup=jsDocParam skipwhite
|
syntax match jsDocTags contained "@\(alias\|augments\|borrows\|class\|constructs\|default\|defaultvalue\|emits\|exception\|exports\|extends\|file\|fires\|kind\|listens\|member\|member[oO]f\|mixes\|module\|name\|namespace\|requires\|throws\|var\|variation\|version\)\>" nextgroup=jsDocParam skipwhite
|
||||||
" tags containing type and param
|
" tags containing type and param
|
||||||
syntax match jsDocTags contained "@\(arg\|argument\|param\|property\)\>" nextgroup=jsDocType skipwhite
|
syntax match jsDocTags contained "@\(arg\|argument\|param\|property\)\>" nextgroup=jsDocType skipwhite
|
||||||
" tags containing type but no param
|
" tags containing type but no param
|
||||||
syntax match jsDocTags contained "@\(callback\|enum\|external\|this\|type\|typedef\|return\|returns\)\>" nextgroup=jsDocTypeNoParam skipwhite
|
syntax match jsDocTags contained "@\(callback\|enum\|external\|this\|type\|typedef\|return\|returns\)\>" nextgroup=jsDocTypeNoParam skipwhite
|
||||||
" tags containing references
|
" tags containing references
|
||||||
syntax match jsDocTags contained "@\(lends\|see\)\>" nextgroup=jsDocSeeTag skipwhite
|
syntax match jsDocTags contained "@\(lends\|see\|tutorial\)\>" nextgroup=jsDocSeeTag skipwhite
|
||||||
" other tags (no extra syntax)
|
" other tags (no extra syntax)
|
||||||
syntax match jsDocTags contained "@\(abstract\|access\|author\|classdesc\|constant\|const\|constructor\|copyright\|deprecated\|desc\|description\|event\|example\|fileOverview\|function\|global\|ignore\|inner\|instance\|license\|method\|mixin\|overview\|private\|protected\|public\|readonly\|since\|static\|todo\|summary\|undocumented\|virtual\)\>"
|
syntax match jsDocTags contained "@\(abstract\|access\|author\|classdesc\|constant\|const\|constructor\|copyright\|deprecated\|desc\|description\|event\|example\|file[oO]verview\|function\|global\|ignore\|inner\|instance\|license\|method\|mixin\|overview\|private\|protected\|public\|readonly\|since\|static\|todo\|summary\|undocumented\|virtual\)\>"
|
||||||
|
|
||||||
syntax region jsDocType start="{" end="}" oneline contained nextgroup=jsDocParam skipwhite
|
syntax region jsDocType start="{" end="}" oneline contained nextgroup=jsDocParam skipwhite
|
||||||
syntax match jsDocType contained "\%(#\|\"\|\w\|\.\|:\|\/\)\+" nextgroup=jsDocParam skipwhite
|
syntax match jsDocType contained "\%(#\|\"\|\w\|\.\|:\|\/\)\+" nextgroup=jsDocParam skipwhite
|
||||||
@@ -79,39 +79,40 @@ syntax case match
|
|||||||
|
|
||||||
"" Syntax in the JavaScript code
|
"" Syntax in the JavaScript code
|
||||||
syntax match jsFuncCall /\k\+\%(\s*(\)\@=/
|
syntax match jsFuncCall /\k\+\%(\s*(\)\@=/
|
||||||
syntax match jsSpecial "\v\\%(0|\\x\x\{2\}\|\\u\x\{4\}\|\c[A-Z]|.)"
|
syntax match jsSpecial "\v\\%(0|\\x\x\{2\}\|\\u\x\{4\}\|\c[A-Z]|.)" contained
|
||||||
syntax region jsStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=jsSpecial,@htmlPreproc
|
syntax match jsTemplateVar "\${.\{-}}" contained
|
||||||
syntax region jsStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=jsSpecial,@htmlPreproc
|
syntax region jsStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=jsSpecial,@htmlPreproc,@Spell
|
||||||
syntax region jsRegexpCharClass start=+\[+ end=+\]+ contained
|
syntax region jsStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=jsSpecial,@htmlPreproc,@Spell
|
||||||
|
syntax region jsTemplateString start=+`+ skip=+\\\\\|\\$`+ end=+`+ contains=jsTemplateVar,jsSpecial,@htmlPreproc
|
||||||
|
syntax region jsRegexpCharClass start=+\[+ skip=+\\.+ end=+\]+ contained
|
||||||
syntax match jsRegexpBoundary "\v%(\<@![\^$]|\\[bB])" contained
|
syntax match jsRegexpBoundary "\v%(\<@![\^$]|\\[bB])" contained
|
||||||
syntax match jsRegexpBackRef "\v\\[1-9][0-9]*" contained
|
syntax match jsRegexpBackRef "\v\\[1-9][0-9]*" contained
|
||||||
syntax match jsRegexpQuantifier "\v\\@<!%([?*+]|\{\d+%(,|,\d+)?})\??" contained
|
syntax match jsRegexpQuantifier "\v\\@<!%([?*+]|\{\d+%(,|,\d+)?})\??" contained
|
||||||
syntax match jsRegexpOr "\v\<@!\|" contained
|
syntax match jsRegexpOr "\v\<@!\|" contained
|
||||||
syntax match jsRegexpMod "\v\(@<=\?[:=!>]" contained
|
syntax match jsRegexpMod "\v\(@<=\?[:=!>]" contained
|
||||||
syntax cluster jsRegexpSpecial contains=jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
|
syntax cluster jsRegexpSpecial contains=jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
|
||||||
syntax region jsRegexpGroup start="\\\@<!(" end="\\\@<!)" contained contains=jsRegexpCharClass,@jsRegexpSpecial keepend
|
syntax region jsRegexpGroup start="\\\@<!(" end="\\\@<!)" contained contains=jsRegexpCharClass,@jsRegexpSpecial keepend
|
||||||
syntax region jsRegexpString start=+\(\(\(return\|case\)\s\+\)\@<=\|\(\([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gimy]\{,4}+ contains=jsSpecial,jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial,@htmlPreproc oneline keepend
|
syntax region jsRegexpString start=+\(\(\(return\|case\)\s\+\)\@<=\|\(\([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\.\|\[\(\\.\|[^]]\)*\]+ end=+/[gimy]\{,4}+ contains=jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial,@htmlPreproc oneline keepend
|
||||||
syntax match jsNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/
|
syntax match jsNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/
|
||||||
syntax keyword jsNumber Infinity
|
syntax keyword jsNumber Infinity
|
||||||
syntax match jsFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
|
syntax match jsFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
|
||||||
syntax match jsObjectKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\(\s*:\)\@=/ contains=jsFunctionKey
|
syntax match jsObjectKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\(\s*:\)\@=/ contains=jsFunctionKey contained
|
||||||
syntax match jsFunctionKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\(\s*:\s*function\s*\)\@=/ contained
|
syntax match jsFunctionKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\(\s*:\s*function\s*\)\@=/ contained
|
||||||
|
|
||||||
"" JavaScript Prototype
|
|
||||||
syntax keyword jsPrototype prototype
|
|
||||||
|
|
||||||
if g:javascript_conceal == 1
|
if g:javascript_conceal == 1
|
||||||
syntax keyword jsNull null conceal cchar=ø
|
syntax keyword jsNull null conceal cchar=ø
|
||||||
syntax keyword jsThis this conceal cchar=@
|
syntax keyword jsThis this conceal cchar=@
|
||||||
syntax keyword jsReturn return conceal cchar=⇚
|
syntax keyword jsReturn return conceal cchar=⇚
|
||||||
syntax keyword jsUndefined undefined conceal cchar=¿
|
syntax keyword jsUndefined undefined conceal cchar=¿
|
||||||
syntax keyword jsNan NaN conceal cchar=ℕ
|
syntax keyword jsNan NaN conceal cchar=ℕ
|
||||||
|
syntax keyword jsPrototype prototype conceal cchar=¶
|
||||||
else
|
else
|
||||||
syntax keyword jsNull null
|
syntax keyword jsNull null
|
||||||
syntax keyword jsThis this
|
syntax keyword jsThis this
|
||||||
syntax keyword jsReturn return
|
syntax keyword jsReturn return
|
||||||
syntax keyword jsUndefined undefined
|
syntax keyword jsUndefined undefined
|
||||||
syntax keyword jsNan NaN
|
syntax keyword jsNan NaN
|
||||||
|
syntax keyword jsPrototype prototype
|
||||||
endif
|
endif
|
||||||
|
|
||||||
"" Statement Keywords
|
"" Statement Keywords
|
||||||
@@ -133,18 +134,18 @@ syntax keyword jsFutureKeys abstract enum int short boolean export interface
|
|||||||
|
|
||||||
"" DOM/HTML/CSS specified things
|
"" DOM/HTML/CSS specified things
|
||||||
|
|
||||||
" DOM2 Objects
|
" DOM2 Objects
|
||||||
syntax keyword jsGlobalObjects DOMImplementation DocumentFragment Document Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction
|
syntax keyword jsGlobalObjects DOMImplementation DocumentFragment Document Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction
|
||||||
syntax keyword jsExceptions DOMException
|
syntax keyword jsExceptions DOMException
|
||||||
|
|
||||||
" DOM2 CONSTANT
|
" DOM2 CONSTANT
|
||||||
syntax keyword jsDomErrNo INDEX_SIZE_ERR DOMSTRING_SIZE_ERR HIERARCHY_REQUEST_ERR WRONG_DOCUMENT_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR INUSE_ATTRIBUTE_ERR INVALID_STATE_ERR SYNTAX_ERR INVALID_MODIFICATION_ERR NAMESPACE_ERR INVALID_ACCESS_ERR
|
syntax keyword jsDomErrNo INDEX_SIZE_ERR DOMSTRING_SIZE_ERR HIERARCHY_REQUEST_ERR WRONG_DOCUMENT_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR INUSE_ATTRIBUTE_ERR INVALID_STATE_ERR SYNTAX_ERR INVALID_MODIFICATION_ERR NAMESPACE_ERR INVALID_ACCESS_ERR
|
||||||
syntax keyword jsDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECTION_NODE ENTITY_REFERENCE_NODE ENTITY_NODE PROCESSING_INSTRUCTION_NODE COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOCUMENT_FRAGMENT_NODE NOTATION_NODE
|
syntax keyword jsDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECTION_NODE ENTITY_REFERENCE_NODE ENTITY_NODE PROCESSING_INSTRUCTION_NODE COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOCUMENT_FRAGMENT_NODE NOTATION_NODE
|
||||||
|
|
||||||
" HTML events and internal variables
|
" HTML events and internal variables
|
||||||
syntax case ignore
|
syntax case ignore
|
||||||
syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
|
syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
|
||||||
syntax case match
|
syntax case match
|
||||||
|
|
||||||
" Follow stuff should be highligh within a special context
|
" Follow stuff should be highligh within a special context
|
||||||
" While it can't be handled with context depended with Regex based highlight
|
" While it can't be handled with context depended with Regex based highlight
|
||||||
@@ -181,7 +182,7 @@ endif "DOM/HTML/CSS
|
|||||||
|
|
||||||
|
|
||||||
"" Code blocks
|
"" Code blocks
|
||||||
syntax cluster jsExpression contains=jsComment,jsLineComment,jsDocComment,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise
|
syntax cluster jsExpression contains=jsComment,jsLineComment,jsDocComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise
|
||||||
syntax cluster jsAll contains=@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
|
syntax cluster jsAll contains=@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
|
||||||
syntax region jsBracket matchgroup=jsBrackets start="\[" end="\]" contains=@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
|
syntax region jsBracket matchgroup=jsBrackets start="\[" end="\]" contains=@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
|
||||||
syntax region jsParen matchgroup=jsParens start="(" end=")" contains=@jsAll,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
|
syntax region jsParen matchgroup=jsParens start="(" end=")" contains=@jsAll,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
|
||||||
@@ -208,10 +209,13 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
syntax match jsFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=jsFuncArgs skipwhite
|
syntax match jsFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=jsFuncArgs skipwhite
|
||||||
syntax region jsFuncArgs contained matchgroup=jsFuncParens start='(' end=')' contains=jsFuncArgCommas nextgroup=jsFuncBlock keepend skipwhite skipempty
|
syntax region jsFuncArgs contained matchgroup=jsFuncParens start='(' end=')' contains=jsFuncArgCommas,jsFuncArgRest nextgroup=jsFuncBlock keepend skipwhite skipempty
|
||||||
syntax match jsFuncArgCommas contained ','
|
syntax match jsFuncArgCommas contained ','
|
||||||
|
syntax match jsFuncArgRest contained /\%(\.\.\.[a-zA-Z_$][0-9a-zA-Z_$]*\))/
|
||||||
syntax keyword jsArgsObj arguments contained containedin=jsFuncBlock
|
syntax keyword jsArgsObj arguments contained containedin=jsFuncBlock
|
||||||
|
|
||||||
|
syntax match jsArrowFunction /=>/
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" For version 5.7 and earlier: only when not done already
|
" 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
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||||
@@ -222,6 +226,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
|
|||||||
else
|
else
|
||||||
command -nargs=+ HiLink hi def link <args>
|
command -nargs=+ HiLink hi def link <args>
|
||||||
endif
|
endif
|
||||||
|
HiLink jsFuncArgRest Special
|
||||||
HiLink jsComment Comment
|
HiLink jsComment Comment
|
||||||
HiLink jsLineComment Comment
|
HiLink jsLineComment Comment
|
||||||
HiLink jsEnvComment PreProc
|
HiLink jsEnvComment PreProc
|
||||||
@@ -235,6 +240,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
|
|||||||
HiLink jsDocParam Label
|
HiLink jsDocParam Label
|
||||||
HiLink jsStringS String
|
HiLink jsStringS String
|
||||||
HiLink jsStringD String
|
HiLink jsStringD String
|
||||||
|
HiLink jsTemplateString String
|
||||||
HiLink jsTernaryIfOperator Conditional
|
HiLink jsTernaryIfOperator Conditional
|
||||||
HiLink jsRegexpString String
|
HiLink jsRegexpString String
|
||||||
HiLink jsRegexpBoundary SpecialChar
|
HiLink jsRegexpBoundary SpecialChar
|
||||||
@@ -254,6 +260,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
|
|||||||
HiLink jsStatement Statement
|
HiLink jsStatement Statement
|
||||||
HiLink jsException Exception
|
HiLink jsException Exception
|
||||||
HiLink jsKeyword Keyword
|
HiLink jsKeyword Keyword
|
||||||
|
HiLink jsArrowFunction Type
|
||||||
HiLink jsFunction Type
|
HiLink jsFunction Type
|
||||||
HiLink jsFuncName Function
|
HiLink jsFuncName Function
|
||||||
HiLink jsArgsObj Special
|
HiLink jsArgsObj Special
|
||||||
@@ -279,6 +286,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
|
|||||||
HiLink jsFuncBraces Noise
|
HiLink jsFuncBraces Noise
|
||||||
HiLink jsFuncParens Noise
|
HiLink jsFuncParens Noise
|
||||||
HiLink jsSpecial Special
|
HiLink jsSpecial Special
|
||||||
|
HiLink jsTemplateVar Special
|
||||||
HiLink jsGlobalObjects Special
|
HiLink jsGlobalObjects Special
|
||||||
HiLink jsExceptions Special
|
HiLink jsExceptions Special
|
||||||
HiLink jsFutureKeys Special
|
HiLink jsFutureKeys Special
|
||||||
|
|||||||
@@ -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
|
||||||
157
syntax/opencl.vim
Normal file
157
syntax/opencl.vim
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: OpenCL (Open Computing Language)
|
||||||
|
" Maintainer: Terence Ou (rivan_@msn.com)
|
||||||
|
" Last Change: 19-July-2010
|
||||||
|
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Read the C syntax to start with
|
||||||
|
if version < 600
|
||||||
|
source <sfile>:p:h/c.vim
|
||||||
|
else
|
||||||
|
runtime! syntax/c.vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
" address space qualifiers
|
||||||
|
syn keyword clStorageClass global __global local __local constant __constant private __private
|
||||||
|
" function qualifiers
|
||||||
|
syn keyword clStorageClass kernel __kernel __attribute__
|
||||||
|
syn keyword clStorageClass read_only __read_only write_only __write_only
|
||||||
|
syn keyword clStorageClass complex imaginary
|
||||||
|
|
||||||
|
" scalar types
|
||||||
|
syn keyword clType bool uchar ushort uint ulong half quad
|
||||||
|
|
||||||
|
" vector types
|
||||||
|
syn keyword clType char2 char3 char4 char8 char16
|
||||||
|
syn keyword clType uchar2 uchar3 uchar4 uchar8 uchar16
|
||||||
|
syn keyword clType short2 short3 short4 short8 short16
|
||||||
|
syn keyword clType ushort2 ushort3 ushort4 ushort8 ushort16
|
||||||
|
syn keyword clType int2 int3 int4 int8 int16
|
||||||
|
syn keyword clType uint2 uint3 uint4 uint8 uint16
|
||||||
|
syn keyword clType long2 long3 long4 long8 long16
|
||||||
|
syn keyword clType ulong2 ulong3 ulong4 ulong8 ulong16
|
||||||
|
syn keyword clType float2 float3 float4 float8 float16
|
||||||
|
syn keyword clType double2 double3 double4 double8 double16
|
||||||
|
syn keyword clType half2 half3 half4 half8 half16
|
||||||
|
|
||||||
|
" other types
|
||||||
|
syn keyword clType ptrdiff_t intptr_t uintptr_t
|
||||||
|
syn keyword clType image2d_t image3d_t sampler_t event_t
|
||||||
|
|
||||||
|
" reserved types
|
||||||
|
syn keyword clType bool2 bool3 bool4 bool8 bool16
|
||||||
|
syn keyword clType quad2 quad3 quad4 quad8 quad16
|
||||||
|
syn match clType "\(float\|double\)\(2\|3\|4\|8\|16\)x\(2\|3\|4\|8\|16\)"
|
||||||
|
|
||||||
|
" abstract data types
|
||||||
|
syn keyword clType _cl_platform_id _cl_device_id _cl_context _cl_command_queue _cl_mem _cl_program _cl_kernel _cl_event _cl_sampler
|
||||||
|
|
||||||
|
" image format descriptor structure
|
||||||
|
syn keyword clType cl_image_format
|
||||||
|
|
||||||
|
syn keyword clCast vec_type_hint work_group_size_hint aligned packed endian
|
||||||
|
|
||||||
|
syn match clCast "as_\(uchar\|char\|ushort\|short\|uint\|int\|ulong\|long\|float\|double\)("
|
||||||
|
|
||||||
|
syn match clCast "as_\(uchar\|char\|ushort\|short\|uint\|int\|ulong\|long\|float\|double\)\(2\|3\|4\|8\|16\)("
|
||||||
|
|
||||||
|
syn match clCast "convert_\(uchar\|char\|ushort\|short\|uint\|int\|ulong\|long\|float\|double\))\(2\|3\|4\|8\|16\)("
|
||||||
|
|
||||||
|
syn match clCast "convert_\(uchar\|char\|ushort\|short\|uint\|int\|ulong\|long\|float\|double\))\(2\|3\|4\|8\|16\)_sat("
|
||||||
|
|
||||||
|
syn match clCast "convert_\(uchar\|char\|ushort\|short\|uint\|int\|ulong\|long\|float\|double\))\(2\|3\|4\|8\|16\)_sat_\(rte\|rtz\|rtp\|rtn\)("
|
||||||
|
|
||||||
|
" work item functions
|
||||||
|
syn keyword clFunction get_work_dim get_global_size get_global_id get_local_size get_local_id get_num_groups get_group_id get_global_offset
|
||||||
|
|
||||||
|
" math functions
|
||||||
|
syn keyword clFunction cos cosh cospi acos acosh acospi
|
||||||
|
syn keyword clFunction sin sincos sinh sinpi asin asinh asinpi
|
||||||
|
syn keyword clFunction tan tanh tanpi atan atan2 atanh atanpi atan2pi
|
||||||
|
syn keyword clFunction cbrt ceil copysign
|
||||||
|
syn keyword clFunction erfc erf
|
||||||
|
syn keyword clFunction exp exp2 exp10 expm1
|
||||||
|
syn keyword clFunction fabs fdim floor fma fmax fmin
|
||||||
|
syn keyword clFunction fract frexp hypot ilogb
|
||||||
|
syn keyword clFunction ldexp ldexp lgamma lgamma_r
|
||||||
|
syn keyword clFunction log log2 log10 log1p logb
|
||||||
|
syn keyword clFunction mad modf
|
||||||
|
syn keyword clFunction nan nextafter
|
||||||
|
syn keyword clFunction pow pown powr
|
||||||
|
syn keyword clFunction remainder remquo rint rootn round rsqrt sqrt
|
||||||
|
syn keyword clFunction tgamma trunc
|
||||||
|
syn keyword clFunction half_cos half_divide half_exp half_exp2 half_exp10 half_log half_log2 half_log10 half_powr half_recip half_rsqrt half_sin half_sqrt half_tan
|
||||||
|
syn keyword clFunction native_cos native_divide native_exp native_exp2 native_exp10 native_log native_log2 native_log10 native_powr native_recip native_rsqrt native_sin native_sqrt native_tan
|
||||||
|
|
||||||
|
" integer functions
|
||||||
|
syn keyword clFunction abs abs_diff add_sat hadd rhadd clz mad_hi mad_sat max min mul_hi rotate sub_sat upsample mad24 mul24
|
||||||
|
|
||||||
|
" common functions
|
||||||
|
syn keyword clFunction clamp degrees max min mix radians step smoothstep sign
|
||||||
|
|
||||||
|
" geometric functions
|
||||||
|
syn keyword clFunction cross dot distance length normalize fast_distance fast_length fast_normalize
|
||||||
|
|
||||||
|
" miscellaneous vector functions
|
||||||
|
syn keyword clFunction vec_step shuffle shuffle2
|
||||||
|
|
||||||
|
" relational functions
|
||||||
|
syn keyword clFunction isequal isnotequal isgreater isgreaterequal isless islessequal islessgreater isfinite isinf isnan isnormal isordered isunordered signbit any all bitselect select
|
||||||
|
|
||||||
|
" vector data load and store functions
|
||||||
|
syn keyword clFunction vload_half vstore_half
|
||||||
|
syn match clFunction "vload\(2\|3\|4\|8\|16\)("
|
||||||
|
syn match clFunction "vload_half\(2\|3\|4\|8\|16\)("
|
||||||
|
syn match clFunction "vloada_half\(2\|3\|4\|8\|16\)("
|
||||||
|
syn match clFunction "vloada_half\(2\|3\|4\|8\|16\)_\(rte\|rtz\|rtp\)("
|
||||||
|
syn match clFunction "vstore\(2\|3\|4\|8\|16\)("
|
||||||
|
syn match clFunction "vstore\(rte\|rtz\|rtp\|rtn\)("
|
||||||
|
syn match clFunction "vstore_half\(2\|3\|4\|8\|16\)("
|
||||||
|
syn match clFunction "vstore_half_\(rte\|rtz\|rtp\|rtn\)("
|
||||||
|
syn match clFunction "vstore_half\(2\|3\|4\|8\|16\)_\(rte\|rtz\|rtp\|rtn\)("
|
||||||
|
syn match clFunction "vstorea_half\(2\|3\|4\|8\|16\)("
|
||||||
|
syn match clFunction "vstorea_half\(2\|3\|4\|8\|16\)_\(rte\|rtz\|rtp\|rtn\)("
|
||||||
|
|
||||||
|
" image read and write functions
|
||||||
|
syn match clFunction "read_image\(f\|i\|ui\|h\)("
|
||||||
|
syn match clFunction "write_image\(f\|i\|ui\|h\)("
|
||||||
|
syn keyword clFunction get_image_width get_image_height get_image_depth get_image_channel_data_type get_image_channel_order get_image_dim
|
||||||
|
|
||||||
|
" explicit memory fence functions
|
||||||
|
syn keyword clFunction barrier mem_fence read_mem_fence write_mem_fence
|
||||||
|
|
||||||
|
" async copies from global to local mem to and fro and prefetch
|
||||||
|
syn keyword clFunction async_work_group_copy async_work_group__strided_copy wait_group_events prefetch
|
||||||
|
|
||||||
|
" atomic functions
|
||||||
|
syn match clFunction "atom_\(add\|sub\|xchg\|inc\|dec\|cmpxchg\|min\|max\|and\|or\|xor\)("
|
||||||
|
|
||||||
|
syn keyword clConstant MAXFLOAT HUGE_VALF INFINITY NAN
|
||||||
|
syn keyword clConstant FLT_DIG FLT_MANT_DIG FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_MAX FLT_MIN FLT_EPSILON
|
||||||
|
syn keyword clConstant CHAR_BIT CHAR_MAX CHAR_MIN INT_MIN INT_MAX LONG_MAX LONG_MIN SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN UCHAR_MAX UCHAR_MIN UINT_MAX ULONG_MAX
|
||||||
|
syn keyword clConstant DBL_DIG DBL_MANT_DIG DBL_MAX_10_EXP DBL_MIN_10_EXP DBL_MIN_EXP DBL_MAX DBL_MIN DBL_EPSILON
|
||||||
|
syn keyword clConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI2 M_PI4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
|
||||||
|
syn keyword clConstant CLK_NORMALIZED_COORDS_TRUE CLK_NORMALIZED_COORDS_FALSE
|
||||||
|
syn keyword clConstant CLK_ADDRESS_REPEAT CLK_ADDRESS_CLAMP_TO_EDGE CLK_ADDRESS_CLAMP
|
||||||
|
syn keyword clConstant CL_INTENSITY CL_RA CL_ARGB CL_BGRA CL_RGBA CL_R CL_RG CL_RGB CL_RGx CL_RGBx CL_Rx CL_A CL_LUMINANCE
|
||||||
|
syn keyword clConstant CL_SNORM_INT8 CL_SNORM_INT16 CL_UNORM_INT8 CL_UNORM_INT16 CL_UNORM_SHORT_565 CL_UNORM_SHORT_555 CL_UNORM_INT_101010 CL_SIGNED_INT8 CL_SIGNED_INT16 CL_SIGNED_INT32 CL_UNSIGNED_INT8 CL_UNSIGNED_INT16 CL_UNSIGNED_INT32 CL_HALF_FLOAT CL_FLOAT
|
||||||
|
syn keyword clConstant CLK_ADDRESS_NONE CLK_FILTER_NEAREST CLK_FILTER_LINEAR
|
||||||
|
syn keyword clConstant CLK_GLOBAL_MEM_FENCE CLK_LOCAL_MEM_FENCE
|
||||||
|
|
||||||
|
hi def link clStorageClass StorageClass
|
||||||
|
hi def link clStructure Structure
|
||||||
|
hi def link clType Type
|
||||||
|
hi def link clVariable Identifier
|
||||||
|
hi def link clConstant Constant
|
||||||
|
hi def link clCast Operator
|
||||||
|
hi def link clFunction Function
|
||||||
|
hi def link clStatement Statement
|
||||||
|
|
||||||
|
let b:current_syntax = "opencl"
|
||||||
|
|
||||||
|
" vim: ts=8
|
||||||
@@ -95,8 +95,8 @@ 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\|autodie\|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\|overloading\|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\)\=\)\>"
|
||||||
syn match perlStatementIPC "\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
|
syn match perlStatementIPC "\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
|
||||||
@@ -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
|
||||||
@@ -408,7 +410,7 @@ if exists("perl_fold")
|
|||||||
endif
|
endif
|
||||||
if !exists("perl_nofold_subs")
|
if !exists("perl_nofold_subs")
|
||||||
if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
|
if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
|
||||||
syn region perlSubFold start="\<sub\>[^\n;]*{" end="}" transparent fold keepend extend
|
syn region perlSubFold start="\<sub\>[^;]*{" end="}" transparent fold keepend extend
|
||||||
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
|
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
|
||||||
else
|
else
|
||||||
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
|
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
|
||||||
@@ -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
@@ -17,9 +17,9 @@ elseif exists("b:current_syntax")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" match class/definition/node declarations
|
" match class/definition/node declarations
|
||||||
syn region puppetDefine start="^\s*\(class\|define\|node\)\s" end="{" contains=puppetDefType,puppetDefName,puppetDefArguments,puppetNodeRe
|
syn region puppetDefine start="^\s*\(class\|define\|node\)\s" end="{" contains=puppetDefType,puppetDefName,puppetDefArguments,puppetNodeRe,@NoSpell
|
||||||
syn keyword puppetDefType class define node inherits contained
|
syn keyword puppetDefType class define node inherits contained
|
||||||
syn region puppetDefArguments start="(" end=")" contained contains=puppetArgument,puppetString
|
syn region puppetDefArguments start="(" end=")" contained contains=puppetArgument,puppetString,puppetComment,puppetMultilineComment
|
||||||
syn match puppetArgument "\w\+" contained
|
syn match puppetArgument "\w\+" contained
|
||||||
syn match puppetArgument "\$\w\+" contained
|
syn match puppetArgument "\$\w\+" contained
|
||||||
syn match puppetArgument "'[^']+'" contained
|
syn match puppetArgument "'[^']+'" contained
|
||||||
@@ -31,15 +31,24 @@ syn match puppetNodeRe "/.*/" contained
|
|||||||
" match 'foo::bar' in 'class foo::bar { ...'
|
" match 'foo::bar' in 'class foo::bar { ...'
|
||||||
" match 'Foo::Bar' in 'Foo::Bar["..."]
|
" match 'Foo::Bar' in 'Foo::Bar["..."]
|
||||||
"FIXME: "Foo-bar" doesn't get highlighted as expected, although "foo-bar" does.
|
"FIXME: "Foo-bar" doesn't get highlighted as expected, although "foo-bar" does.
|
||||||
syn match puppetInstance "[A-Za-z0-9_-]\+\(::[A-Za-z0-9_-]\+\)*\s*{" contains=puppetTypeName,puppetTypeDefault
|
syn match puppetInstance "[A-Za-z0-9_-]\+\(::[A-Za-z0-9_-]\+\)*\s*{" contains=puppetTypeName,puppetTypeDefault,@NoSpell
|
||||||
syn match puppetInstance "[A-Z][a-z_-]\+\(::[A-Z][a-z_-]\+\)*\s*[[{]" contains=puppetTypeName,puppetTypeDefault
|
syn match puppetInstance "[A-Z][a-z_-]\+\(::[A-Z][a-z_-]\+\)*\s*[[{]" contains=puppetTypeName,puppetTypeDefault,@NoSpell
|
||||||
syn match puppetInstance "[A-Z][a-z_-]\+\(::[A-Z][a-z_-]\+\)*\s*<\?<|" contains=puppetTypeName,puppetTypeDefault
|
syn match puppetInstance "[A-Z][a-z_-]\+\(::[A-Z][a-z_-]\+\)*\s*<\?<|" contains=puppetTypeName,puppetTypeDefault,@NoSpell
|
||||||
syn match puppetTypeName "[a-z]\w*" contained
|
syn match puppetTypeName "[a-z]\w*" contained
|
||||||
syn match puppetTypeDefault "[A-Z]\w*" contained
|
syn match puppetTypeDefault "[A-Z]\w*" contained
|
||||||
|
|
||||||
" match 'foo' in 'foo => "bar"'
|
syn match puppetParam "\w\+\s*\(=\|+\)>" contains=puppetTypeRArrow,puppetParamName
|
||||||
syn match puppetParam "\w\+\s*[=+]>" contains=puppetParamName
|
syn match puppetParamRArrow "\(=\|+\)>" contained
|
||||||
syn match puppetParamName "\w\+" contained
|
syn match puppetParamName "\w\+" contained contains=@NoSpell
|
||||||
|
syn match puppetVariable "$\(\(\(::\)\?\w\+\)\+\|{\(\(::\)\?\w\+\)\+}\)"
|
||||||
|
syn match puppetParen "("
|
||||||
|
syn match puppetParen ")"
|
||||||
|
syn match puppetBrace "{"
|
||||||
|
syn match puppetBrace "}"
|
||||||
|
syn match puppetBrack "\["
|
||||||
|
syn match puppetBrack "\]"
|
||||||
|
syn match puppetBrack "<|"
|
||||||
|
syn match puppetBrack "|>"
|
||||||
|
|
||||||
" match 'present' in 'ensure => present'
|
" match 'present' in 'ensure => present'
|
||||||
" match '2755' in 'mode => 2755'
|
" match '2755' in 'mode => 2755'
|
||||||
@@ -57,25 +66,49 @@ syn region puppetFunction start="^\s*\(alert\|crit\|debug\|emerg\|err\|fai
|
|||||||
" rvalues
|
" rvalues
|
||||||
syn region puppetFunction start="^\s*\(defined\|file\|fqdn_rand\|generate\|inline_template\|regsubst\|sha1\|shellquote\|split\|sprintf\|tagged\|template\|versioncmp\)\s*(" end=")" contained contains=puppetString
|
syn region puppetFunction start="^\s*\(defined\|file\|fqdn_rand\|generate\|inline_template\|regsubst\|sha1\|shellquote\|split\|sprintf\|tagged\|template\|versioncmp\)\s*(" end=")" contained contains=puppetString
|
||||||
|
|
||||||
syn match puppetVariable "$[a-zA-Z0-9_:]\+"
|
syn match puppetVariable "$[a-zA-Z0-9_:]\+" contains=@NoSpell
|
||||||
syn match puppetVariable "${[a-zA-Z0-9_:]\+}"
|
syn match puppetVariable "${[a-zA-Z0-9_:]\+}" contains=@NoSpell
|
||||||
|
|
||||||
" match anything between simple/double quotes.
|
" match anything between simple/double quotes.
|
||||||
" don't match variables if preceded by a backslash.
|
" don't match variables if preceded by a backslash.
|
||||||
syn region puppetString start=+'+ skip=+\\\\\|\\'+ end=+'+
|
syn region puppetString start=+'+ skip=+\\\\\|\\'+ end=+'+
|
||||||
syn region puppetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=puppetVariable,puppetNotVariable
|
syn region puppetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=puppetVariable,puppetNotVariable
|
||||||
syn match puppetString "/[^/]*/"
|
|
||||||
syn match puppetNotVariable "\\$\w\+" contained
|
syn match puppetNotVariable "\\$\w\+" contained
|
||||||
syn match puppetNotVariable "\\${\w\+}" contained
|
syn match puppetNotVariable "\\${\w\+}" contained
|
||||||
|
|
||||||
syn keyword puppetKeyword import inherits include
|
syn keyword puppetKeyword import inherits include require
|
||||||
syn keyword puppetControl case default if else elsif
|
syn keyword puppetControl case default if else elsif
|
||||||
syn keyword puppetSpecial true false undef
|
syn keyword puppetSpecial true false undef
|
||||||
|
|
||||||
|
syn match puppetClass "[A-Za-z0-9_-]\+\(::[A-Za-z0-9_-]\+\)\+" contains=@NoSpell
|
||||||
|
|
||||||
|
" Match the Regular Expression type
|
||||||
|
" XXX: Puppet does not currently support a few features available in the
|
||||||
|
" full Ruby Regexp class, namely, interpolation, lookbehind and named
|
||||||
|
" sub-expressions. Matches for these features are included in the
|
||||||
|
" commented-out versions of puppetRegexParen and puppetRegexSubName,
|
||||||
|
" plus the supporting groups puppetRegexAngBrack and puppetRegexTick.
|
||||||
|
syn region puppetRegex start="/" skip="\\/" end="/" contains=puppetRegexParen,puppetRegexBrace,puppetRegexOrpuppetRegexBrack,puppetRegexComment
|
||||||
|
syn match puppetRegexParen "(\(?\([imx]\{0,4}:\|[=!]\)\)\?" contains=puppetRegexSpecChar,puppetRegexSubName contained
|
||||||
|
"syn match puppetRegexParen "(\(?\([imxo]\{0,4}:\|['<][[:alnum:]]\+[>']\|<?[=!]\)\)\?" contains=puppetRegexSpecChar,puppetRegexSubName contained
|
||||||
|
syn match puppetRegexParen ")" contained
|
||||||
|
syn match puppetRegexBrace "{" contained
|
||||||
|
syn match puppetRegexBrace "}" contained
|
||||||
|
syn match puppetRegexBrack "\[" contained
|
||||||
|
syn match puppetRegexBrack "\]" contained
|
||||||
|
"syn match puppetRegexAngBrack "<" contained
|
||||||
|
"syn match puppetRegexAngBrack ">" contained
|
||||||
|
"syn match puppetRegexTick +'+ contained
|
||||||
|
syn match puppetRegexOr "|" contained
|
||||||
|
"syn match puppetRegexSubName "['<][[:alnum:]]\+[>']" contains=puppetRegexAngBrack,puppetRegexTick contained
|
||||||
|
syn match puppetRegexSpecialChar "[?:imx]\|\(<?[=!]\)" contained
|
||||||
|
syn region puppetRegexComment start="(?#" skip="\\)" end=")" contained
|
||||||
|
|
||||||
" comments last overriding everything else
|
" comments last overriding everything else
|
||||||
syn match puppetComment "\s*#.*$" contains=puppetTodo
|
syn match puppetComment "\s*#.*$" contains=puppetTodo,@Spell
|
||||||
syn region puppetComment start="/\*" end="\*/" contains=puppetTodo extend
|
syn region puppetMultilineComment start="/\*" end="\*/" contains=puppetTodo,@Spell
|
||||||
syn keyword puppetTodo TODO NOTE FIXME XXX BUG HACK contained
|
syn keyword puppetTodo TODO NOTE FIXME XXX BUG HACK contained
|
||||||
|
syn keyword puppetTodo TODO: NOTE: FIXME: XXX: BUG: HACK: contained
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" For version 5.7 and earlier: only when not done already
|
" For version 5.7 and earlier: only when not done already
|
||||||
@@ -90,15 +123,32 @@ if version >= 508 || !exists("did_puppet_syn_inits")
|
|||||||
|
|
||||||
HiLink puppetVariable Identifier
|
HiLink puppetVariable Identifier
|
||||||
HiLink puppetType Identifier
|
HiLink puppetType Identifier
|
||||||
HiLink puppetKeyword Define
|
HiLink puppetKeyword Keyword
|
||||||
HiLink puppetComment Comment
|
HiLink puppetComment Comment
|
||||||
|
HiLink puppetMultilineComment Comment
|
||||||
HiLink puppetString String
|
HiLink puppetString String
|
||||||
HiLink puppetParamKeyword String
|
HiLink puppetRegex Constant
|
||||||
|
HiLink puppetRegexParen Delimiter
|
||||||
|
HiLink puppetRegexBrace Delimiter
|
||||||
|
HiLink puppetRegexBrack Delimiter
|
||||||
|
HiLink puppetRegexAngBrack Delimiter
|
||||||
|
HiLink puppetRegexTick Delimiter
|
||||||
|
HiLink puppetRegexOr Delimiter
|
||||||
|
HiLink puppetRegexSubName Identifier
|
||||||
|
HiLink puppetRegexSpecChar SpecialChar
|
||||||
|
HiLink puppetRegexComment Comment
|
||||||
|
HiLink puppetParamKeyword Keyword
|
||||||
HiLink puppetParamDigits String
|
HiLink puppetParamDigits String
|
||||||
HiLink puppetNotVariable String
|
HiLink puppetNotVariable String
|
||||||
HiLink puppetParamSpecial Special
|
HiLink puppetParamSpecial Boolean
|
||||||
HiLink puppetSpecial Special
|
HiLink puppetSpecial Special
|
||||||
HiLink puppetTodo Todo
|
HiLink puppetTodo Todo
|
||||||
|
HiLink puppetBrack Delimiter
|
||||||
|
HiLink puppetTypeBrack Delimiter
|
||||||
|
HiLink puppetBrace Delimiter
|
||||||
|
HiLink puppetTypeBrace Delimiter
|
||||||
|
HiLink puppetParen Delimiter
|
||||||
|
HiLink puppetDelimiter Delimiter
|
||||||
HiLink puppetControl Statement
|
HiLink puppetControl Statement
|
||||||
HiLink puppetDefType Define
|
HiLink puppetDefType Define
|
||||||
HiLink puppetDefName Type
|
HiLink puppetDefName Type
|
||||||
@@ -108,10 +158,9 @@ if version >= 508 || !exists("did_puppet_syn_inits")
|
|||||||
HiLink puppetParamName Identifier
|
HiLink puppetParamName Identifier
|
||||||
HiLink puppetArgument Identifier
|
HiLink puppetArgument Identifier
|
||||||
HiLink puppetFunction Function
|
HiLink puppetFunction Function
|
||||||
|
HiLink puppetClass Include
|
||||||
|
|
||||||
delcommand HiLink
|
delcommand HiLink
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:current_syntax = "puppet"
|
let b:current_syntax = "puppet"
|
||||||
set iskeyword=-,:,@,48-57,_,192-255
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,20 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Python
|
|
||||||
" Maintainer: Dmitry Vasiliev <dima@hlabs.spb.ru>
|
|
||||||
" URL: http://www.hlabs.spb.ru/vim/python.vim
|
|
||||||
" Last Change: 2010-04-09
|
|
||||||
" Filenames: *.py
|
|
||||||
" Version: 2.6.6
|
|
||||||
"
|
"
|
||||||
" Based on python.vim (from Vim 6.1 distribution)
|
" Based on python.vim (from Vim 6.1 distribution)
|
||||||
" by Neil Schemenauer <nas@python.ca>
|
" by Neil Schemenauer <nas@python.ca>
|
||||||
"
|
"
|
||||||
|
" Notes Armin:
|
||||||
|
"
|
||||||
|
" This version of the syntax file works better for 2.x and 3.x without
|
||||||
|
" having to switch modes.
|
||||||
|
"
|
||||||
" Thanks:
|
" Thanks:
|
||||||
"
|
"
|
||||||
" Jeroen Ruigrok van der Werven
|
" Jeroen Ruigrok van der Werven
|
||||||
" for the idea to highlight erroneous operators
|
" for the idea of highlighting for erroneous operators
|
||||||
" Pedro Algarvio
|
" Pedro Algarvio
|
||||||
" for the patch to enable spell checking only for the right spots
|
" for the patch to enable spell checking only for the right spots
|
||||||
" (strings and comments)
|
" (strings and comments)
|
||||||
" John Eikenberry
|
|
||||||
" for the patch fixing small typo
|
|
||||||
" Caleb Adamantine
|
|
||||||
" for the patch fixing highlighting for decorators
|
|
||||||
" Andrea Riciputi
|
|
||||||
" for the patch with new configuration options
|
|
||||||
|
|
||||||
"
|
"
|
||||||
" Options:
|
" Options:
|
||||||
@@ -31,27 +24,15 @@
|
|||||||
"
|
"
|
||||||
" Option names:
|
" Option names:
|
||||||
"
|
"
|
||||||
" For highlight builtin functions and objects:
|
" For highlight builtin functions:
|
||||||
" python_highlight_builtins
|
" python_highlight_builtins
|
||||||
"
|
"
|
||||||
" For highlight builtin objects:
|
|
||||||
" python_highlight_builtin_objs
|
|
||||||
"
|
|
||||||
" For highlight builtin funtions:
|
|
||||||
" python_highlight_builtin_funcs
|
|
||||||
"
|
|
||||||
" For highlight standard exceptions:
|
" For highlight standard exceptions:
|
||||||
" python_highlight_exceptions
|
" python_highlight_exceptions
|
||||||
"
|
"
|
||||||
" For highlight string formatting:
|
" For highlight string formatting:
|
||||||
" python_highlight_string_formatting
|
" python_highlight_string_formatting
|
||||||
"
|
"
|
||||||
" For highlight str.format syntax:
|
|
||||||
" python_highlight_string_format
|
|
||||||
"
|
|
||||||
" For highlight string.Template syntax:
|
|
||||||
" python_highlight_string_templates
|
|
||||||
"
|
|
||||||
" For highlight indentation errors:
|
" For highlight indentation errors:
|
||||||
" python_highlight_indent_errors
|
" python_highlight_indent_errors
|
||||||
"
|
"
|
||||||
@@ -61,15 +42,13 @@
|
|||||||
" For highlight doc-tests:
|
" For highlight doc-tests:
|
||||||
" python_highlight_doctests
|
" python_highlight_doctests
|
||||||
"
|
"
|
||||||
" If you want all Python highlightings above:
|
" If you want all possible Python highlighting:
|
||||||
" python_highlight_all
|
|
||||||
" (This option not override previously set options)
|
" (This option not override previously set options)
|
||||||
|
" python_highlight_all
|
||||||
"
|
"
|
||||||
" For fast machines:
|
" For fast machines:
|
||||||
" python_slow_sync
|
" python_slow_sync
|
||||||
"
|
"
|
||||||
" For "print" builtin as function:
|
|
||||||
" python_print_as_function
|
|
||||||
|
|
||||||
" For version 5.x: Clear all syntax items
|
" For version 5.x: Clear all syntax items
|
||||||
" For version 6.x: Quit when a syntax file was already loaded
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
@@ -82,12 +61,7 @@ endif
|
|||||||
if exists("python_highlight_all") && python_highlight_all != 0
|
if exists("python_highlight_all") && python_highlight_all != 0
|
||||||
" Not override previously set options
|
" Not override previously set options
|
||||||
if !exists("python_highlight_builtins")
|
if !exists("python_highlight_builtins")
|
||||||
if !exists("python_highlight_builtin_objs")
|
let python_highlight_builtins = 1
|
||||||
let python_highlight_builtin_objs = 1
|
|
||||||
endif
|
|
||||||
if !exists("python_highlight_builtin_funcs")
|
|
||||||
let python_highlight_builtin_funcs = 1
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
if !exists("python_highlight_exceptions")
|
if !exists("python_highlight_exceptions")
|
||||||
let python_highlight_exceptions = 1
|
let python_highlight_exceptions = 1
|
||||||
@@ -95,12 +69,6 @@ if exists("python_highlight_all") && python_highlight_all != 0
|
|||||||
if !exists("python_highlight_string_formatting")
|
if !exists("python_highlight_string_formatting")
|
||||||
let python_highlight_string_formatting = 1
|
let python_highlight_string_formatting = 1
|
||||||
endif
|
endif
|
||||||
if !exists("python_highlight_string_format")
|
|
||||||
let python_highlight_string_format = 1
|
|
||||||
endif
|
|
||||||
if !exists("python_highlight_string_templates")
|
|
||||||
let python_highlight_string_templates = 1
|
|
||||||
endif
|
|
||||||
if !exists("python_highlight_indent_errors")
|
if !exists("python_highlight_indent_errors")
|
||||||
let python_highlight_indent_errors = 1
|
let python_highlight_indent_errors = 1
|
||||||
endif
|
endif
|
||||||
@@ -118,23 +86,20 @@ syn keyword pythonStatement exec return
|
|||||||
syn keyword pythonStatement pass raise
|
syn keyword pythonStatement pass raise
|
||||||
syn keyword pythonStatement global assert
|
syn keyword pythonStatement global assert
|
||||||
syn keyword pythonStatement lambda yield
|
syn keyword pythonStatement lambda yield
|
||||||
syn keyword pythonStatement with
|
syn keyword pythonStatement with nonlocal True False None
|
||||||
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
|
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
|
||||||
syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
|
syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
|
||||||
syn keyword pythonRepeat for while
|
syn keyword pythonRepeat for while
|
||||||
syn keyword pythonConditional if elif else
|
syn keyword pythonConditional if elif else
|
||||||
syn keyword pythonPreCondit import from as
|
syn keyword pythonImport import from as
|
||||||
syn keyword pythonException try except finally
|
syn keyword pythonException try except finally
|
||||||
syn keyword pythonOperator and in is not or
|
syn keyword pythonOperator and in is not or
|
||||||
|
|
||||||
if !exists("python_print_as_function") || python_print_as_function == 0
|
" Print keyword but only if not used as function
|
||||||
syn keyword pythonStatement print
|
syn match pythonStatement "\<print\>\((\)\@!" display
|
||||||
endif
|
|
||||||
|
|
||||||
" Decorators (new in Python 2.4)
|
" Decorators (new in Python 2.4)
|
||||||
syn match pythonDecorator "@" display nextgroup=pythonDottedName skipwhite
|
syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite
|
||||||
syn match pythonDottedName "[a-zA-Z_][a-zA-Z0-9_]*\(\.[a-zA-Z_][a-zA-Z0-9_]*\)*" display contained
|
|
||||||
syn match pythonDot "\." display containedin=pythonDottedName
|
|
||||||
|
|
||||||
" Comments
|
" Comments
|
||||||
syn match pythonComment "#.*$" display contains=pythonTodo,@Spell
|
syn match pythonComment "#.*$" display contains=pythonTodo,@Spell
|
||||||
@@ -145,7 +110,7 @@ syn keyword pythonTodo TODO FIXME XXX contained
|
|||||||
" Errors
|
" Errors
|
||||||
syn match pythonError "\<\d\+\D\+\>" display
|
syn match pythonError "\<\d\+\D\+\>" display
|
||||||
syn match pythonError "[$?]" display
|
syn match pythonError "[$?]" display
|
||||||
syn match pythonError "[&|]\{2,}" display
|
syn match pythonError "[-+&|]\{2,}" display
|
||||||
syn match pythonError "[=]\{3,}" display
|
syn match pythonError "[=]\{3,}" display
|
||||||
|
|
||||||
" TODO: Mixing spaces and tabs also may be used for pretty formatting multiline
|
" TODO: Mixing spaces and tabs also may be used for pretty formatting multiline
|
||||||
@@ -160,10 +125,10 @@ if exists("python_highlight_space_errors") && python_highlight_space_errors != 0
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" Strings
|
" Strings
|
||||||
syn region pythonString start=+[bB]\='+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
|
syn region pythonString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
|
||||||
syn region pythonString start=+[bB]\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
|
syn region pythonString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
|
||||||
syn region pythonString start=+[bB]\="""+ end=+"""+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
syn region pythonString start=+"""+ end=+"""+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||||
syn region pythonString start=+[bB]\='''+ end=+'''+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
syn region pythonString start=+'''+ end=+'''+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||||
|
|
||||||
syn match pythonEscape +\\[abfnrtv'"\\]+ display contained
|
syn match pythonEscape +\\[abfnrtv'"\\]+ display contained
|
||||||
syn match pythonEscape "\\\o\o\=\o\=" display contained
|
syn match pythonEscape "\\\o\o\=\o\=" display contained
|
||||||
@@ -172,6 +137,19 @@ syn match pythonEscape "\\x\x\{2}" display contained
|
|||||||
syn match pythonEscapeError "\\x\x\=\X" display contained
|
syn match pythonEscapeError "\\x\x\=\X" display contained
|
||||||
syn match pythonEscape "\\$"
|
syn match pythonEscape "\\$"
|
||||||
|
|
||||||
|
" Byte-Strings
|
||||||
|
syn region pythonBString start=+[bB]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBEscape,pythonBEscapeError,@Spell
|
||||||
|
syn region pythonBString start=+[bB]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBEscape,pythonBEscapeError,@Spell
|
||||||
|
syn region pythonBString start=+[bB]"""+ end=+"""+ keepend contains=pythonBEscape,pythonBEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||||
|
syn region pythonBString start=+[bB]'''+ end=+'''+ keepend contains=pythonBEscape,pythonBEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||||
|
|
||||||
|
syn match pythonBEscape +\\[abfnrtv'"\\]+ display contained
|
||||||
|
syn match pythonBEscape "\\\o\o\=\o\=" display contained
|
||||||
|
syn match pythonBEscapeError "\\\o\{,2}[89]" display contained
|
||||||
|
syn match pythonBEscape "\\x\x\{2}" display contained
|
||||||
|
syn match pythonBEscapeError "\\x\x\=\X" display contained
|
||||||
|
syn match pythonBEscape "\\$"
|
||||||
|
|
||||||
" Unicode strings
|
" Unicode strings
|
||||||
syn region pythonUniString start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
|
syn region pythonUniString start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
|
||||||
syn region pythonUniString start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
|
syn region pythonUniString start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
|
||||||
@@ -204,21 +182,8 @@ syn match pythonUniRawEscapeError "\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display
|
|||||||
|
|
||||||
if exists("python_highlight_string_formatting") && python_highlight_string_formatting != 0
|
if exists("python_highlight_string_formatting") && python_highlight_string_formatting != 0
|
||||||
" String formatting
|
" String formatting
|
||||||
syn match pythonStrFormatting "%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
syn match pythonStrFormat "%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonBString,pythonUniString,pythonRawString,pythonUniRawString
|
||||||
syn match pythonStrFormatting "%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
syn match pythonStrFormat "%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonBString,pythonUniString,pythonRawString,pythonUniRawString
|
||||||
endif
|
|
||||||
|
|
||||||
if exists("python_highlight_string_format") && python_highlight_string_format != 0
|
|
||||||
" str.format syntax
|
|
||||||
syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
|
||||||
syn match pythonStrFormat "{\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)\(\.[a-zA-Z_][a-zA-Z0-9_]*\|\[\(\d\+\|[^!:\}]\+\)\]\)*\(![rs]\)\=\(:\({\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)}\|\([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*\(\.\d\+\)\=[bcdeEfFgGnoxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists("python_highlight_string_templates") && python_highlight_string_templates != 0
|
|
||||||
" String templates
|
|
||||||
syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
|
||||||
syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
|
||||||
syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("python_highlight_doctests") && python_highlight_doctests != 0
|
if exists("python_highlight_doctests") && python_highlight_doctests != 0
|
||||||
@@ -228,47 +193,33 @@ if exists("python_highlight_doctests") && python_highlight_doctests != 0
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" Numbers (ints, longs, floats, complex)
|
" Numbers (ints, longs, floats, complex)
|
||||||
syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\x*[lL]\=\>" display
|
|
||||||
|
|
||||||
syn match pythonHexNumber "\<0[xX]\x\+[lL]\=\>" display
|
syn match pythonHexNumber "\<0[xX]\x\+[lL]\=\>" display
|
||||||
syn match pythonOctNumber "\<0[oO]\o\+[lL]\=\>" display
|
syn match pythonHexNumber "\<0[xX]\>" display
|
||||||
syn match pythonBinNumber "\<0[bB][01]\+[lL]\=\>" display
|
|
||||||
|
|
||||||
syn match pythonNumber "\<\d\+[lLjJ]\=\>" display
|
syn match pythonNumber "\<\d\+[lLjJ]\=\>" display
|
||||||
|
|
||||||
syn match pythonFloat "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" display
|
syn match pythonFloat "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" display
|
||||||
syn match pythonFloat "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display
|
syn match pythonFloat "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display
|
||||||
syn match pythonFloat "\<\d\+\.\d*\([eE][+-]\=\d\+\)\=[jJ]\=" display
|
syn match pythonFloat "\<\d\+\.\d*\([eE][+-]\=\d\+\)\=[jJ]\=" display
|
||||||
|
|
||||||
syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*[lL]\=\>" display
|
syn match pythonOctalError "\<0\o*[89]\d*[lL]\=\>" display
|
||||||
syn match pythonBinError "\<0[bB][01]*[2-9]\d*[lL]\=\>" display
|
syn match pythonHexError "\<0[xX]\X\+[lL]\=\>" display
|
||||||
|
|
||||||
if exists("python_highlight_builtin_objs") && python_highlight_builtin_objs != 0
|
if exists("python_highlight_builtins") && python_highlight_builtins != 0
|
||||||
" Builtin objects and types
|
" Builtin functions, types and objects
|
||||||
syn keyword pythonBuiltinObj True False Ellipsis None NotImplemented
|
syn keyword pythonBuiltinObj Ellipsis NotImplemented
|
||||||
syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists("python_highlight_builtin_funcs") && python_highlight_builtin_funcs != 0
|
|
||||||
" Builtin functions
|
|
||||||
syn keyword pythonBuiltinFunc __import__ abs all any apply
|
syn keyword pythonBuiltinFunc __import__ abs all any apply
|
||||||
syn keyword pythonBuiltinFunc basestring bin bool buffer bytearray bytes callable
|
syn keyword pythonBuiltinFunc basestring bool buffer callable
|
||||||
syn keyword pythonBuiltinFunc chr classmethod cmp coerce compile complex
|
syn keyword pythonBuiltinFunc chr classmethod cmp coerce compile complex
|
||||||
syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
|
syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
|
||||||
syn keyword pythonBuiltinFunc execfile file filter float format frozenset getattr
|
syn keyword pythonBuiltinFunc execfile file filter float frozenset getattr
|
||||||
syn keyword pythonBuiltinFunc globals hasattr hash help hex id
|
syn keyword pythonBuiltinfunc globals hasattr hash help hex id
|
||||||
syn keyword pythonBuiltinFunc input int intern isinstance
|
syn keyword pythonBuiltinFunc input int intern isinstance
|
||||||
syn keyword pythonBuiltinFunc issubclass iter len list locals long map max
|
syn keyword pythonBuiltinFunc issubclass iter len list locals long map max
|
||||||
syn keyword pythonBuiltinFunc min next object oct open ord
|
syn keyword pythonBuiltinFunc min object oct open ord pow property range
|
||||||
syn keyword pythonBuiltinFunc pow property range
|
|
||||||
syn keyword pythonBuiltinFunc raw_input reduce reload repr
|
syn keyword pythonBuiltinFunc raw_input reduce reload repr
|
||||||
syn keyword pythonBuiltinFunc reversed round set setattr
|
syn keyword pythonBuiltinFunc reversed round set setattr
|
||||||
syn keyword pythonBuiltinFunc slice sorted staticmethod str sum super tuple
|
syn keyword pythonBuiltinFunc slice sorted staticmethod str sum super tuple
|
||||||
syn keyword pythonBuiltinFunc type unichr unicode vars xrange zip
|
syn keyword pythonBuiltinFunc type unichr unicode vars xrange zip
|
||||||
|
|
||||||
if exists("python_print_as_function") && python_print_as_function != 0
|
|
||||||
syn keyword pythonBuiltinFunc print
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("python_highlight_exceptions") && python_highlight_exceptions != 0
|
if exists("python_highlight_exceptions") && python_highlight_exceptions != 0
|
||||||
@@ -277,7 +228,7 @@ if exists("python_highlight_exceptions") && python_highlight_exceptions != 0
|
|||||||
syn keyword pythonExClass Exception StandardError ArithmeticError
|
syn keyword pythonExClass Exception StandardError ArithmeticError
|
||||||
syn keyword pythonExClass LookupError EnvironmentError
|
syn keyword pythonExClass LookupError EnvironmentError
|
||||||
|
|
||||||
syn keyword pythonExClass AssertionError AttributeError BufferError EOFError
|
syn keyword pythonExClass AssertionError AttributeError EOFError
|
||||||
syn keyword pythonExClass FloatingPointError GeneratorExit IOError
|
syn keyword pythonExClass FloatingPointError GeneratorExit IOError
|
||||||
syn keyword pythonExClass ImportError IndexError KeyError
|
syn keyword pythonExClass ImportError IndexError KeyError
|
||||||
syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
|
syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
|
||||||
@@ -287,12 +238,12 @@ if exists("python_highlight_exceptions") && python_highlight_exceptions != 0
|
|||||||
syn keyword pythonExClass SystemError SystemExit TypeError
|
syn keyword pythonExClass SystemError SystemExit TypeError
|
||||||
syn keyword pythonExClass UnboundLocalError UnicodeError
|
syn keyword pythonExClass UnboundLocalError UnicodeError
|
||||||
syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
|
syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
|
||||||
syn keyword pythonExClass UnicodeTranslateError ValueError VMSError
|
syn keyword pythonExClass UnicodeTranslateError ValueError
|
||||||
syn keyword pythonExClass WindowsError ZeroDivisionError
|
syn keyword pythonExClass WindowsError ZeroDivisionError
|
||||||
|
|
||||||
syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning
|
syn keyword pythonExClass Warning UserWarning DeprecationWarning
|
||||||
syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
|
syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
|
||||||
syn keyword pythonExClass RuntimeWarning FutureWarning
|
syn keyword pythonExClass RuntimeWarning FutureWarning OverflowWarning
|
||||||
syn keyword pythonExClass ImportWarning UnicodeWarning
|
syn keyword pythonExClass ImportWarning UnicodeWarning
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -315,7 +266,7 @@ if version >= 508 || !exists("did_python_syn_inits")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
HiLink pythonStatement Statement
|
HiLink pythonStatement Statement
|
||||||
HiLink pythonPreCondit Statement
|
HiLink pythonImport Statement
|
||||||
HiLink pythonFunction Function
|
HiLink pythonFunction Function
|
||||||
HiLink pythonConditional Conditional
|
HiLink pythonConditional Conditional
|
||||||
HiLink pythonRepeat Repeat
|
HiLink pythonRepeat Repeat
|
||||||
@@ -323,8 +274,6 @@ if version >= 508 || !exists("did_python_syn_inits")
|
|||||||
HiLink pythonOperator Operator
|
HiLink pythonOperator Operator
|
||||||
|
|
||||||
HiLink pythonDecorator Define
|
HiLink pythonDecorator Define
|
||||||
HiLink pythonDottedName Function
|
|
||||||
HiLink pythonDot Normal
|
|
||||||
|
|
||||||
HiLink pythonComment Comment
|
HiLink pythonComment Comment
|
||||||
HiLink pythonCoding Special
|
HiLink pythonCoding Special
|
||||||
@@ -336,32 +285,30 @@ if version >= 508 || !exists("did_python_syn_inits")
|
|||||||
HiLink pythonSpaceError Error
|
HiLink pythonSpaceError Error
|
||||||
|
|
||||||
HiLink pythonString String
|
HiLink pythonString String
|
||||||
|
HiLink pythonBString String
|
||||||
HiLink pythonUniString String
|
HiLink pythonUniString String
|
||||||
HiLink pythonRawString String
|
HiLink pythonRawString String
|
||||||
HiLink pythonUniRawString String
|
HiLink pythonUniRawString String
|
||||||
|
|
||||||
HiLink pythonEscape Special
|
HiLink pythonEscape Special
|
||||||
|
HiLink pythonBEscape Special
|
||||||
HiLink pythonEscapeError Error
|
HiLink pythonEscapeError Error
|
||||||
|
HiLink pythonBEscapeError Error
|
||||||
HiLink pythonUniEscape Special
|
HiLink pythonUniEscape Special
|
||||||
HiLink pythonUniEscapeError Error
|
HiLink pythonUniEscapeError Error
|
||||||
HiLink pythonUniRawEscape Special
|
HiLink pythonUniRawEscape Special
|
||||||
HiLink pythonUniRawEscapeError Error
|
HiLink pythonUniRawEscapeError Error
|
||||||
|
|
||||||
HiLink pythonStrFormatting Special
|
HiLink pythonStrFormat Special
|
||||||
HiLink pythonStrFormat Special
|
|
||||||
HiLink pythonStrTemplate Special
|
|
||||||
|
|
||||||
HiLink pythonDocTest Special
|
HiLink pythonDocTest Special
|
||||||
HiLink pythonDocTest2 Special
|
HiLink pythonDocTest2 Special
|
||||||
|
|
||||||
HiLink pythonNumber Number
|
HiLink pythonNumber Number
|
||||||
HiLink pythonHexNumber Number
|
HiLink pythonHexNumber Number
|
||||||
HiLink pythonOctNumber Number
|
|
||||||
HiLink pythonBinNumber Number
|
|
||||||
HiLink pythonFloat Float
|
HiLink pythonFloat Float
|
||||||
HiLink pythonOctError Error
|
HiLink pythonOctalError Error
|
||||||
HiLink pythonHexError Error
|
HiLink pythonHexError Error
|
||||||
HiLink pythonBinError Error
|
|
||||||
|
|
||||||
HiLink pythonBuiltinObj Structure
|
HiLink pythonBuiltinObj Structure
|
||||||
HiLink pythonBuiltinFunc Function
|
HiLink pythonBuiltinFunc Function
|
||||||
|
|||||||
@@ -100,10 +100,6 @@ syn match rubySymbol "[]})\"':]\@<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!
|
|||||||
syn match rubySymbol "[]})\"':]\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
|
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 "[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="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 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 +117,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 +139,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 +194,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 +258,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 +276,23 @@ 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
|
||||||
|
|
||||||
|
syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"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 "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1
|
||||||
|
|
||||||
" __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 Share Copy 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
|
||||||
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 Sender Receiver
|
||||||
"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,10 +132,10 @@ 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
|
||||||
|
|
||||||
" Number literals
|
" Number literals
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ syn match sassAmpersand "&"
|
|||||||
" TODO: Attribute namespaces
|
" TODO: Attribute namespaces
|
||||||
" TODO: Arithmetic (including strings and concatenation)
|
" TODO: Arithmetic (including strings and concatenation)
|
||||||
|
|
||||||
|
syn region sassCharset start="@charset" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
|
||||||
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
|
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
|
||||||
syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction
|
syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction
|
||||||
syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction
|
syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction
|
||||||
@@ -82,6 +83,7 @@ hi def link sassExtend PreProc
|
|||||||
hi def link sassFunctionDecl PreProc
|
hi def link sassFunctionDecl PreProc
|
||||||
hi def link sassReturn PreProc
|
hi def link sassReturn PreProc
|
||||||
hi def link sassTodo Todo
|
hi def link sassTodo Todo
|
||||||
|
hi def link sassCharset PreProc
|
||||||
hi def link sassInclude Include
|
hi def link sassInclude Include
|
||||||
hi def link sassDebug sassControl
|
hi def link sassDebug sassControl
|
||||||
hi def link sassWarn sassControl
|
hi def link sassWarn sassControl
|
||||||
|
|||||||
127
syntax/scala.vim
127
syntax/scala.vim
@@ -10,14 +10,18 @@ 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 region scalaBlock start=/{/ end=/}/ contains=TOP fold
|
||||||
|
|
||||||
|
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 +32,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
|
||||||
@@ -67,44 +97,39 @@ syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scala
|
|||||||
hi link scalaString String
|
hi link scalaString String
|
||||||
hi link scalaStringEmbeddedQuote String
|
hi link scalaStringEmbeddedQuote String
|
||||||
|
|
||||||
syn region scalaSString matchgroup=Special start=/s"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaEscapedChar,scalaUnicodeChar
|
syn region scalaIString matchgroup=Special start=/\<[a-zA-Z][a-zA-Z0-9_]*"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||||
syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
|
syn region scalaTripleIString matchgroup=Special start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||||
syn match scalaInterpolation /\${[^}]\+}/ contained
|
hi link scalaIString String
|
||||||
hi link scalaSString String
|
hi link scalaTripleIString String
|
||||||
hi link scalaInterpolation Function
|
|
||||||
|
|
||||||
syn region scalaFString matchgroup=Special start=/f"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaFInterpolation,scalaEscapedChar,scalaUnicodeChar
|
syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
|
||||||
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+%[-A-Za-z0-9\.]\+/ contained
|
syn region scalaInterpolationB matchgroup=scalaInterpolation start=/\${/ end=/}/ contained contains=TOP
|
||||||
syn match scalaFInterpolation /\${[^}]\+}%[-A-Za-z0-9\.]\+/ contained
|
hi link scalaInterpolation Function
|
||||||
|
hi link scalaInterpolationB Normal
|
||||||
|
|
||||||
|
syn region scalaFString matchgroup=Special start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||||
|
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained
|
||||||
|
syn region scalaFInterpolationB matchgroup=scalaFInterpolation start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=TOP
|
||||||
hi link scalaFString String
|
hi link scalaFString String
|
||||||
hi link scalaFInterpolation Function
|
hi link scalaFInterpolation Function
|
||||||
|
hi link scalaFInterpolationB Normal
|
||||||
|
|
||||||
syn region scalaQuasiQuotes matchgroup=Type start=/\<q"/ skip=/\\"/ end=/"/ contains=scalaInterpolation
|
syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
|
||||||
syn region scalaQuasiQuotes matchgroup=Type start=/\<[tcp]q"/ skip=/\\"/ end=/"/ contains=scalaInterpolation
|
syn region scalaTripleFString matchgroup=Special start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||||
hi link scalaQuasiQuotes String
|
|
||||||
|
|
||||||
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<q"""/ end=/"""/ contains=scalaInterpolation
|
|
||||||
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<[tcp]q"""/ end=/"""/ contains=scalaInterpolation
|
|
||||||
hi link scalaTripleQuasiQuotes String
|
|
||||||
|
|
||||||
syn region scalaTripleString start=/"""/ end=/"""/ contains=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
|
|
||||||
hi link scalaTripleString String
|
hi link scalaTripleString 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 +153,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
|
||||||
|
|||||||
37
syntax/toml.vim
Normal file
37
syntax/toml.vim
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
" Language: TOML
|
||||||
|
" Maintainer: Caleb Spare <cespare@gmail.com>
|
||||||
|
" URL: http://github.com/cespare/vim-toml
|
||||||
|
" LICENSE: MIT
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match tomlEscape /\\[0tnr"\\]/ display
|
||||||
|
hi def link tomlEscape SpecialChar
|
||||||
|
|
||||||
|
syn region tomlString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=tomlEscape
|
||||||
|
hi def link tomlString String
|
||||||
|
|
||||||
|
syn match tomlInteger /\<-\?\d\+\>/ display
|
||||||
|
hi def link tomlInteger Number
|
||||||
|
|
||||||
|
syn match tomlFloat /\<-\?\d\+\.\d\+\>/ display
|
||||||
|
hi def link tomlFloat Float
|
||||||
|
|
||||||
|
syn match tomlBoolean /\<\%(true\|false\)\>/ display
|
||||||
|
hi def link tomlBoolean Boolean
|
||||||
|
|
||||||
|
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}T\d\{2\}:\d\{2\}:\d\{2\}Z/ display
|
||||||
|
hi def link tomlDate Constant
|
||||||
|
|
||||||
|
syn match tomlKeyGroup /^\s*\[.\+\]\s*\(#.*\)\?$/ contains=tomlComment
|
||||||
|
hi def link tomlKeyGroup Identifier
|
||||||
|
|
||||||
|
syn keyword tomlTodo TODO FIXME XXX BUG contained
|
||||||
|
hi def link tomlTodo Todo
|
||||||
|
|
||||||
|
syn match tomlComment /#.*/ contains=@Spell,tomlTodo
|
||||||
|
hi def link tomlComment Comment
|
||||||
|
|
||||||
|
let b:current_syntax = "toml"
|
||||||
Reference in New Issue
Block a user