mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
90 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d3b20bc68 | ||
|
|
a6b0efd530 | ||
|
|
0de043adbc | ||
|
|
67fcbd2a86 | ||
|
|
c925c92217 | ||
|
|
852d25b307 | ||
|
|
4d8ff4eabc | ||
|
|
d6bc08610b | ||
|
|
c154d82557 | ||
|
|
cf1e53bc39 | ||
|
|
92ab75408d | ||
|
|
f977779693 | ||
|
|
4033ac02d0 | ||
|
|
9ab9275f66 | ||
|
|
1c80c4bb08 | ||
|
|
548653cafe | ||
|
|
ee6b1ea157 | ||
|
|
12db3dafc5 | ||
|
|
d1e95cbc98 | ||
|
|
7ffa793f19 | ||
|
|
4203435c48 | ||
|
|
271b63d717 | ||
|
|
acd7ce5950 | ||
|
|
f24fecc338 | ||
|
|
23913e0598 | ||
|
|
1c21231175 | ||
|
|
4541e98466 | ||
|
|
6cd2d5417d | ||
|
|
b7a30b1f1a | ||
|
|
6745c49110 | ||
|
|
1a97304cf6 | ||
|
|
d8eaa50aed | ||
|
|
8e26e6e963 | ||
|
|
676e9dd82e | ||
|
|
23af3f70da | ||
|
|
b79385fecc | ||
|
|
03dd22587a | ||
|
|
bbc6be1099 | ||
|
|
7f2e366334 | ||
|
|
04f868b94a | ||
|
|
4071c094c6 | ||
|
|
617b01a5b6 | ||
|
|
bd35da8e9c | ||
|
|
91da1ec2a5 | ||
|
|
964107c604 | ||
|
|
c0560d6199 | ||
|
|
15db2d7120 | ||
|
|
4935f02217 | ||
|
|
438d222b95 | ||
|
|
90b24287de | ||
|
|
5f1223fbc5 | ||
|
|
a59f644d49 | ||
|
|
33dd4b2741 | ||
|
|
d6866fcced | ||
|
|
7208e89a13 | ||
|
|
56a815be94 | ||
|
|
45273d44d4 | ||
|
|
e961fa8037 | ||
|
|
1b61c48d46 | ||
|
|
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 | ||
|
|
ab679f37dd | ||
|
|
ca95a47a93 | ||
|
|
a26bebbeb9 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1,6 +1,5 @@
|
||||
.gitignore export-ignore
|
||||
.gitattributes export-ignore
|
||||
build export-ignore
|
||||
README.md export-ignore
|
||||
/spec export-ignore
|
||||
Gemfile export-ignore
|
||||
|
||||
@@ -5,4 +5,4 @@ before_install: sudo apt-get install vim-gtk
|
||||
before_script:
|
||||
- "export DISPLAY=:99.0"
|
||||
- "sh -e /etc/init.d/xvfb start"
|
||||
script: bundle exec rspec
|
||||
script: bundle exec rspec --format=documentation
|
||||
|
||||
87
README.md
87
README.md
@@ -5,14 +5,14 @@
|
||||
|
||||
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 **installs 40x faster** (unparallelized), as language packs are not submoduled, but merged.
|
||||
- It clones even faster as all unnecessary files are ignored (like enormous documentation from php support).
|
||||
- Best syntax and indentation support. If someone releases better language pack, it will be replaced here.
|
||||
- No support for esoteric languages (vim-polyglot supports modern ones like `slim` though).
|
||||
- Each build is tested by automated Travis CI setup using vimrunner gem. Spee `spec` directory.
|
||||
- It **installs 50+ times faster** than 50+ packages it consist of.
|
||||
- Solid syntax and indentation support. Only the best language packs.
|
||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||
- Each build is tested by automated vimrunner script on CI. See `spec` directory.
|
||||
|
||||
\*To be completely honest, concatenated `ftdetect` script takes around `3ms` to load.
|
||||
|
||||
@@ -25,53 +25,90 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
||||
|
||||
## Language packs
|
||||
|
||||
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, ftdetect)
|
||||
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent, ftdetect)
|
||||
- [blade](https://github.com/xsbeats/vim-blade) (syntax, indent, ftdetect)
|
||||
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
|
||||
- [c/c++](https://github.com/vim-jp/cpp-vim) (syntax)
|
||||
- [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)
|
||||
- [css-color](https://github.com/ap/vim-css-color) (syntax)
|
||||
- [csv](https://github.com/chrisbra/csv.vim) (syntax, ftplugin, ftdetect)
|
||||
- [cjsx](https://github.com/mtscout6/vim-cjsx) (ftdetect, syntax, ftplugin)
|
||||
- [css](https://github.com/JulesWang/css.vim) (syntax)
|
||||
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||
- [dockerfile](https://github.com/honza/dockerfile.vim) (syntax, ftdetect)
|
||||
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||
- [erlang](https://github.com/oscarh/vimerl) (syntax, indent, compiler, autoload, ftplugin)
|
||||
- [emberscript](https://github.com/heartsentwined/vim-ember-script) (syntax, indent, ftplugin, ftdetect)
|
||||
- [emblem](https://github.com/heartsentwined/vim-emblem) (syntax, indent, ftplugin, ftdetect)
|
||||
- [erlang](https://github.com/hcs42/vim-erlang-runtime) (syntax, indent)
|
||||
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
||||
- [go](https://github.com/jnwhiteh/vim-golang) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent, ftdetect)
|
||||
- [go](https://github.com/fatih/vim-go) (syntax, indent, ftdetect)
|
||||
- [groovy](https://github.com/vim-scripts/groovy.vim) (syntax)
|
||||
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||
- [handlebars](https://github.com/nono/vim-handlebars) (syntax, ftplugin, ftdetect)
|
||||
- [haskell](https://github.com/travitch/hasksyn) (syntax, indent, ftplugin)
|
||||
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload)
|
||||
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (syntax, ftplugin, ftdetect)
|
||||
- [haskell](https://github.com/raichoo/haskell-vim) ()
|
||||
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)
|
||||
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
|
||||
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
||||
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftdetect)
|
||||
- [json](https://github.com/leshill/vim-json) (syntax, ftdetect)
|
||||
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
|
||||
- [javascript](https://github.com/sheerun/yajs.vim) (syntax, indent)
|
||||
- [julia](https://github.com/dcjones/julia-minimalist-vim) (syntax, indent, ftdetect)
|
||||
- [json](https://github.com/sheerun/vim-json) (syntax, indent, ftdetect)
|
||||
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
||||
- [jsx](https://github.com/mxw/vim-jsx) (after)
|
||||
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftdetect)
|
||||
- [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin)
|
||||
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin, ftdetect)
|
||||
- [liquid](https://github.com/tpope/vim-liquid) (syntax, indent, ftplugin, ftdetect)
|
||||
- [markdown](https://github.com/tpope/vim-markdown) (syntax, ftplugin, ftdetect)
|
||||
- [nginx](https://github.com/mutewinter/nginx.vim) (syntax, ftdetect)
|
||||
- [ocaml](https://github.com/jrk/vim-ocaml) (syntax, indent, ftplugin)
|
||||
- [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)
|
||||
- [puppet](https://github.com/ajf/puppet-vim) (syntax, indent, ftplugin, ftdetect)
|
||||
- [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, ftplugin, ftdetect)
|
||||
- [powershell](https://github.com/Persistent13/vim-ps1) (syntax, indent, ftplugin, 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)
|
||||
- [ragel](https://github.com/jneen/ragel.vim) (syntax)
|
||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||
- [rust](https://github.com/wting/rust.vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||
- [rust](https://github.com/wting/rust.vim) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||
- [sbt](https://github.com/derekwyatt/vim-sbt) (syntax, ftdetect)
|
||||
- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, ftplugin, ftdetect)
|
||||
- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||
- [slim](https://github.com/slim-template/vim-slim) (syntax, indent, ftdetect)
|
||||
- [solidity](https://github.com/ethereum/vim-solidity) (syntax, indent, ftdetect)
|
||||
- [stylus](https://github.com/wavded/vim-stylus) (syntax, indent, ftplugin, ftdetect)
|
||||
- [systemd](https://github.com/kurayama/systemd-vim-syntax) (syntax, ftdetect)
|
||||
- [swift](https://github.com/toyamarinyon/vim-swift) (syntax, indent, ftdetect)
|
||||
- [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin, ftdetect)
|
||||
- [tmux](https://github.com/acustodioo/vim-tmux) (syntax, ftdetect)
|
||||
- [tmux](https://github.com/tejr/vim-tmux) (syntax, ftdetect)
|
||||
- [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, indent, compiler, ftplugin, ftdetect)
|
||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
||||
- [thrift](https://github.com/solarnz/thrift.vim) (syntax, ftdetect)
|
||||
- [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin, ftdetect)
|
||||
- [twig](https://github.com/beyondwords/vim-twig) (syntax, ftplugin, ftdetect)
|
||||
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
||||
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
||||
- [vala](https://github.com/tkztmk/vim-vala) (syntax, indent, ftdetect)
|
||||
- [vm](https://github.com/lepture/vim-velocity) (syntax, indent, ftdetect)
|
||||
|
||||
## Disabling a language pack
|
||||
|
||||
Individual language packs can be disabled by setting `g:polyglot_disabled`.
|
||||
|
||||
```viml
|
||||
" ~/.vimrc
|
||||
let g:polyglot_disabled = ['css']
|
||||
```
|
||||
|
||||
Note that disabiling languages won't make in general your vim startup any faster / slower (only for specific file type). Vim-polyglot is selection of language plugins that are loaded only on demand.
|
||||
|
||||
## Updating
|
||||
|
||||
You can either wait for new patch release with updates or run the `./build` script by yourself.
|
||||
|
||||
## Contributing
|
||||
|
||||
@@ -82,7 +119,3 @@ Feel free to add your language, and send pull-request.
|
||||
## License
|
||||
|
||||
See linked repositories for detailed license information.
|
||||
|
||||
|
||||
[](https://bitdeli.com/free "Bitdeli Badge")
|
||||
|
||||
|
||||
24
after/ftdetect/javascript.vim
Normal file
24
after/ftdetect/javascript.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim ftdetect file
|
||||
"
|
||||
" Language: JSX (JavaScript)
|
||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
exec 'source '.fnameescape(expand('<sfile>:p:h:h').'/jsx-config.vim')
|
||||
|
||||
fu! <SID>EnableJSX()
|
||||
if g:jsx_pragma_required && !b:jsx_pragma_found | return 0 | endif
|
||||
if g:jsx_ext_required && !exists('b:jsx_ext_found') | return 0 | endif
|
||||
return 1
|
||||
endfu
|
||||
|
||||
autocmd BufNewFile,BufRead *.jsx let b:jsx_ext_found = 1
|
||||
autocmd BufNewFile,BufRead *.jsx set filetype=javascript.jsx
|
||||
autocmd BufNewFile,BufRead *.js
|
||||
\ if <SID>EnableJSX() | set filetype=javascript.jsx | endif
|
||||
|
||||
endif
|
||||
@@ -1,2 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rspec') == -1
|
||||
|
||||
autocmd BufReadPost,BufNewFile *_spec.rb set syntax=rspec
|
||||
autocmd BufReadPost,BufNewFile *_spec.rb setlocal commentstring=#\ %s
|
||||
|
||||
endif
|
||||
|
||||
9
after/ftplugin/coffee.vim
Normal file
9
after/ftplugin/coffee.vim
Normal file
@@ -0,0 +1,9 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cjsx') == -1
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words = '(:),\[:\],{:},<:>,' .
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
|
||||
endif
|
||||
|
||||
endif
|
||||
@@ -1,9 +0,0 @@
|
||||
" Vim ftplugin file
|
||||
" Language: Haskell
|
||||
" Maintainer: Tristan Ravitch
|
||||
|
||||
" I don't fully understand what the vim-default ftplugin does, but I do know
|
||||
" that the three-part comment entry really messes up this indenter (I also
|
||||
" hate the leading '-'s it puts in on each line). Disable it here.
|
||||
setlocal comments&
|
||||
setlocal comments=:--
|
||||
21
after/ftplugin/jsx.vim
Normal file
21
after/ftplugin/jsx.vim
Normal file
@@ -0,0 +1,21 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim ftplugin file
|
||||
"
|
||||
" Language: JSX (JavaScript)
|
||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
||||
" Depends: pangloss/vim-javascript
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" modified from html.vim
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words = '(:),\[:\],{:},<:>,' .
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
|
||||
endif
|
||||
|
||||
setlocal suffixesadd+=.jsx
|
||||
|
||||
endif
|
||||
20
after/ftplugin/puppet.vim
Normal file
20
after/ftplugin/puppet.vim
Normal file
@@ -0,0 +1,20 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
|
||||
|
||||
if !exists('g:puppet_align_hashes')
|
||||
let g:puppet_align_hashes = 1
|
||||
endif
|
||||
|
||||
if g:puppet_align_hashes && exists(':Tabularize')
|
||||
inoremap <buffer> <silent> > ><Esc>:call <SID>puppetalign()<CR>a
|
||||
function! s:puppetalign()
|
||||
let p = '^\s*\w+\s*[=+]>.*$'
|
||||
let column = strlen(substitute(getline('.')[0:col('.')],'\([^=]\|=[^>]\)','','g'))
|
||||
let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*'))
|
||||
Tabularize /=>/l1
|
||||
normal! 0
|
||||
echo repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position)
|
||||
call search(repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
|
||||
endfunction
|
||||
endif
|
||||
|
||||
endif
|
||||
@@ -1,5 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
||||
" Maintainer: Mick Koch <mick@kochm.co>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
" License: WTFPL
|
||||
|
||||
@@ -31,3 +33,5 @@ function! GetCoffeeHtmlIndent(curlinenum)
|
||||
" Otherwise use html indenting.
|
||||
exec 'return ' s:htmlIndentExpr
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
102
after/indent/jsx.vim
Normal file
102
after/indent/jsx.vim
Normal file
@@ -0,0 +1,102 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim indent file
|
||||
"
|
||||
" Language: JSX (JavaScript)
|
||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
||||
" Depends: pangloss/vim-javascript
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" Do nothing if we don't find the @jsx pragma (and we care).
|
||||
exec 'source '.fnameescape(expand('<sfile>:p:h:h').'/jsx-config.vim')
|
||||
if g:jsx_pragma_required && !b:jsx_pragma_found | finish | endif
|
||||
|
||||
" Do nothing if we don't have the .jsx extension (and we care).
|
||||
if g:jsx_ext_required && !exists('b:jsx_ext_found') | finish | endif
|
||||
|
||||
" Prologue; load in XML indentation.
|
||||
if exists('b:did_indent')
|
||||
let s:did_indent=b:did_indent
|
||||
unlet b:did_indent
|
||||
endif
|
||||
exe 'runtime! indent/xml.vim'
|
||||
if exists('s:did_indent')
|
||||
let b:did_indent=s:did_indent
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetJsxIndent()
|
||||
|
||||
" JS indentkeys
|
||||
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
|
||||
" XML indentkeys
|
||||
setlocal indentkeys+=*<Return>,<>>,<<>,/
|
||||
|
||||
" Self-closing tag regex.
|
||||
let s:sctag = '^\s*\/>\s*;\='
|
||||
|
||||
" Get all syntax types at the beginning of a given line.
|
||||
fu! SynSOL(lnum)
|
||||
return map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
|
||||
endfu
|
||||
|
||||
" Get all syntax types at the end of a given line.
|
||||
fu! SynEOL(lnum)
|
||||
let lnum = prevnonblank(a:lnum)
|
||||
let col = strlen(getline(lnum))
|
||||
return map(synstack(lnum, col), 'synIDattr(v:val, "name")')
|
||||
endfu
|
||||
|
||||
" Check if a syntax attribute is XMLish.
|
||||
fu! SynAttrXMLish(synattr)
|
||||
return a:synattr =~ "^xml" || a:synattr =~ "^jsx"
|
||||
endfu
|
||||
|
||||
" Check if a synstack is XMLish (i.e., has an XMLish last attribute).
|
||||
fu! SynXMLish(syns)
|
||||
return SynAttrXMLish(get(a:syns, -1))
|
||||
endfu
|
||||
|
||||
" Check if a synstack has any XMLish attribute.
|
||||
fu! SynXMLishAny(syns)
|
||||
for synattr in a:syns
|
||||
if SynAttrXMLish(synattr)
|
||||
return 1
|
||||
endif
|
||||
endfor
|
||||
return 0
|
||||
endfu
|
||||
|
||||
" Check if a synstack denotes the end of a JSX block.
|
||||
fu! SynJSXBlockEnd(syns)
|
||||
return get(a:syns, -1) == 'jsBraces' && SynAttrXMLish(get(a:syns, -2))
|
||||
endfu
|
||||
|
||||
" Cleverly mix JS and XML indentation.
|
||||
fu! GetJsxIndent()
|
||||
let cursyn = SynSOL(v:lnum)
|
||||
let prevsyn = SynEOL(v:lnum - 1)
|
||||
|
||||
" Use XML indenting if the syntax at the end of the previous line was either
|
||||
" JSX or was the closing brace of a jsBlock whose parent syntax was JSX.
|
||||
if (SynXMLish(prevsyn) || SynJSXBlockEnd(prevsyn)) && SynXMLishAny(cursyn)
|
||||
let ind = XmlIndentGet(v:lnum, 0)
|
||||
|
||||
" Align '/>' with '<' for multiline self-closing tags.
|
||||
if getline(v:lnum) =~? s:sctag
|
||||
let ind = ind - &sw
|
||||
endif
|
||||
|
||||
" Then correct the indentation of any JSX following '/>'.
|
||||
if getline(v:lnum - 1) =~? s:sctag
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
else
|
||||
let ind = GetJavascriptIndent()
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfu
|
||||
|
||||
endif
|
||||
37
after/jsx-config.vim
Normal file
37
after/jsx-config.vim
Normal file
@@ -0,0 +1,37 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vimscript file
|
||||
"
|
||||
" Set up a bunch of configuration variables.
|
||||
"
|
||||
" Also check (if desired) whether or not the @jsx pragma is correctly included
|
||||
" in '%'. Set the result in b:jsx_pragma_found.
|
||||
"
|
||||
" Language: JSX (JavaScript)
|
||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" Only check once.
|
||||
if exists('b:jsx_pragma_found')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Whether the .jsx extension is required to enable JSX syntax/indent.
|
||||
if !exists('g:jsx_ext_required')
|
||||
let g:jsx_ext_required = 1
|
||||
endif
|
||||
|
||||
" Whether the @jsx pragma is required to enable JSX syntax/indent.
|
||||
if !exists('g:jsx_pragma_required')
|
||||
let g:jsx_pragma_required = 0
|
||||
endif
|
||||
if !g:jsx_pragma_required | finish | endif
|
||||
|
||||
" Look for the @jsx pragma. It must be included in a docblock comment before
|
||||
" anything else in the file (except whitespace).
|
||||
let s:jsx_pragma_pattern = '\%^\_s*\/\*\*\%(\_.\%(\*\/\)\@!\)*@jsx\_.\{-}\*\/'
|
||||
let b:jsx_pragma_found = search(s:jsx_pragma_pattern, 'npw')
|
||||
|
||||
endif
|
||||
296
after/syntax/c.vim
Normal file
296
after/syntax/c.vim
Normal file
@@ -0,0 +1,296 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: C Additions
|
||||
" Maintainer: Jon Haggblad <jon@haeggblad.com>
|
||||
" Contributor: Mikhail Wolfson <mywolfson@gmail.com>
|
||||
" URL: http://www.haeggblad.com
|
||||
" Last Change: 6 Sep 2014
|
||||
" Version: 0.3
|
||||
" Changelog:
|
||||
" 0.3 - integration of aftersyntaxc.vim
|
||||
" 0.2 - Cleanup
|
||||
" 0.1 - initial version.
|
||||
"
|
||||
" Syntax highlighting for functions in C.
|
||||
"
|
||||
" Based on:
|
||||
" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" Highlight function names.
|
||||
" -----------------------------------------------------------------------------
|
||||
syn match cCustomParen "(" contains=cParen contains=cCppParen
|
||||
syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen
|
||||
hi def link cCustomFunc Function
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" Source: aftersyntaxc.vim
|
||||
" -----------------------------------------------------------------------------
|
||||
|
||||
" Common ANSI-standard functions
|
||||
syn keyword cAnsiFunction MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_
|
||||
syn keyword cAnsiFunction main typeof
|
||||
syn keyword cAnsiFunction open close read write lseek dup dup2
|
||||
syn keyword cAnsiFunction fcntl ioctl
|
||||
syn keyword cAnsiFunction wctrans towctrans towupper
|
||||
syn keyword cAnsiFunction towlower wctype iswctype
|
||||
syn keyword cAnsiFunction iswxdigit iswupper iswspace
|
||||
syn keyword cAnsiFunction iswpunct iswprint iswlower
|
||||
syn keyword cAnsiFunction iswgraph iswdigit iswcntrl
|
||||
syn keyword cAnsiFunction iswalpha iswalnum wcsrtombs
|
||||
syn keyword cAnsiFunction mbsrtowcs wcrtomb mbrtowc
|
||||
syn keyword cAnsiFunction mbrlen mbsinit wctob
|
||||
syn keyword cAnsiFunction btowc wcsfxtime wcsftime
|
||||
syn keyword cAnsiFunction wmemset wmemmove wmemcpy
|
||||
syn keyword cAnsiFunction wmemcmp wmemchr wcstok
|
||||
syn keyword cAnsiFunction wcsstr wcsspn wcsrchr
|
||||
syn keyword cAnsiFunction wcspbrk wcslen wcscspn
|
||||
syn keyword cAnsiFunction wcschr wcsxfrm wcsncmp
|
||||
syn keyword cAnsiFunction wcscoll wcscmp wcsncat
|
||||
syn keyword cAnsiFunction wcscat wcsncpy wcscpy
|
||||
syn keyword cAnsiFunction wcstoull wcstoul wcstoll
|
||||
syn keyword cAnsiFunction wcstol wcstold wcstof
|
||||
syn keyword cAnsiFunction wcstod ungetwc putwchar
|
||||
syn keyword cAnsiFunction putwc getwchar getwc
|
||||
syn keyword cAnsiFunction fwide fputws fputwc
|
||||
syn keyword cAnsiFunction fgetws fgetwc wscanf
|
||||
syn keyword cAnsiFunction wprintf vwscanf vwprintf
|
||||
syn keyword cAnsiFunction vswscanf vswprintf vfwscanf
|
||||
syn keyword cAnsiFunction vfwprintf swscanf swprintf
|
||||
syn keyword cAnsiFunction fwscanf fwprintf zonetime
|
||||
syn keyword cAnsiFunction strfxtime strftime localtime
|
||||
syn keyword cAnsiFunction gmtime ctime asctime
|
||||
syn keyword cAnsiFunction time mkxtime mktime
|
||||
syn keyword cAnsiFunction difftime clock strlen
|
||||
syn keyword cAnsiFunction strerror memset strtok
|
||||
syn keyword cAnsiFunction strstr strspn strrchr
|
||||
syn keyword cAnsiFunction strpbrk strcspn strchr
|
||||
syn keyword cAnsiFunction memchr strxfrm strncmp
|
||||
syn keyword cAnsiFunction strcoll strcmp memcmp
|
||||
syn keyword cAnsiFunction strncat strcat strncpy
|
||||
syn keyword cAnsiFunction strcpy memmove memcpy
|
||||
syn keyword cAnsiFunction wcstombs mbstowcs wctomb
|
||||
syn keyword cAnsiFunction mbtowc mblen lldiv
|
||||
syn keyword cAnsiFunction ldiv div llabs
|
||||
syn keyword cAnsiFunction labs abs qsort
|
||||
"syn keyword cAnsiFunction bsearch system getenv
|
||||
syn keyword cAnsiFunction bsearch getenv
|
||||
syn keyword cAnsiFunction exit atexit abort
|
||||
syn keyword cAnsiFunction realloc malloc free
|
||||
syn keyword cAnsiFunction calloc srand rand
|
||||
syn keyword cAnsiFunction strtoull strtoul strtoll
|
||||
syn keyword cAnsiFunction strtol strtold strtof
|
||||
syn keyword cAnsiFunction strtod atoll atol
|
||||
syn keyword cAnsiFunction atoi atof perror
|
||||
syn keyword cAnsiFunction ferror feof clearerr
|
||||
syn keyword cAnsiFunction rewind ftell fsetpos
|
||||
syn keyword cAnsiFunction fseek fgetpos fwrite
|
||||
syn keyword cAnsiFunction fread ungetc puts
|
||||
syn keyword cAnsiFunction putchar putc gets
|
||||
syn keyword cAnsiFunction getchar getc fputs
|
||||
syn keyword cAnsiFunction fputc fgets fgetc
|
||||
syn keyword cAnsiFunction vsscanf vsprintf vsnprintf
|
||||
syn keyword cAnsiFunction vscanf vprintf vfscanf
|
||||
syn keyword cAnsiFunction vfprintf sscanf sprintf
|
||||
syn keyword cAnsiFunction snprintf scanf printf
|
||||
syn keyword cAnsiFunction fscanf fprintf setvbuf
|
||||
syn keyword cAnsiFunction setbuf freopen fopen
|
||||
syn keyword cAnsiFunction fflush fclose tmpnam
|
||||
syn keyword cAnsiFunction tmpfile rename remove
|
||||
syn keyword cAnsiFunction offsetof va_start va_end
|
||||
syn keyword cAnsiFunction va_copy va_arg raise signal
|
||||
syn keyword cAnsiFunction longjmp setjmp isunordered
|
||||
syn keyword cAnsiFunction islessgreater islessequal isless
|
||||
syn keyword cAnsiFunction isgreaterequal isgreater fmal
|
||||
syn keyword cAnsiFunction fmaf fma fminl
|
||||
syn keyword cAnsiFunction fminf fmin fmaxl
|
||||
syn keyword cAnsiFunction fmaxf fmax fdiml
|
||||
syn keyword cAnsiFunction fdimf fdim nextafterxl
|
||||
syn keyword cAnsiFunction nextafterxf nextafterx nextafterl
|
||||
syn keyword cAnsiFunction nextafterf nextafter nanl
|
||||
syn keyword cAnsiFunction nanf nan copysignl
|
||||
syn keyword cAnsiFunction copysignf copysign remquol
|
||||
syn keyword cAnsiFunction remquof remquo remainderl
|
||||
syn keyword cAnsiFunction remainderf remainder fmodl
|
||||
syn keyword cAnsiFunction fmodf fmod truncl
|
||||
syn keyword cAnsiFunction truncf trunc llroundl
|
||||
syn keyword cAnsiFunction llroundf llround lroundl
|
||||
syn keyword cAnsiFunction lroundf lround roundl
|
||||
syn keyword cAnsiFunction roundf round llrintl
|
||||
syn keyword cAnsiFunction llrintf llrint lrintl
|
||||
syn keyword cAnsiFunction lrintf lrint rintl
|
||||
syn keyword cAnsiFunction rintf rint nearbyintl
|
||||
syn keyword cAnsiFunction nearbyintf nearbyint floorl
|
||||
syn keyword cAnsiFunction floorf floor ceill
|
||||
syn keyword cAnsiFunction ceilf ceil tgammal
|
||||
syn keyword cAnsiFunction tgammaf tgamma lgammal
|
||||
syn keyword cAnsiFunction lgammaf lgamma erfcl
|
||||
syn keyword cAnsiFunction erfcf erfc erfl
|
||||
syn keyword cAnsiFunction erff erf sqrtl
|
||||
syn keyword cAnsiFunction sqrtf sqrt powl
|
||||
syn keyword cAnsiFunction powf pow hypotl
|
||||
syn keyword cAnsiFunction hypotf hypot fabsl
|
||||
syn keyword cAnsiFunction fabsf fabs cbrtl
|
||||
syn keyword cAnsiFunction cbrtf cbrt scalblnl
|
||||
syn keyword cAnsiFunction scalblnf scalbln scalbnl
|
||||
syn keyword cAnsiFunction scalbnf scalbn modfl
|
||||
syn keyword cAnsiFunction modff modf logbl
|
||||
syn keyword cAnsiFunction logbf logb log2l
|
||||
syn keyword cAnsiFunction log2f log2 log1pl
|
||||
syn keyword cAnsiFunction log1pf log1p log10l
|
||||
syn keyword cAnsiFunction log10f log10 logl
|
||||
syn keyword cAnsiFunction logf log ldexpl
|
||||
syn keyword cAnsiFunction ldexpf ldexp ilogbl
|
||||
syn keyword cAnsiFunction ilogbf ilogb frexpl
|
||||
syn keyword cAnsiFunction frexpf frexp expm1l
|
||||
syn keyword cAnsiFunction expm1f expm1 exp2l
|
||||
syn keyword cAnsiFunction exp2f exp2 expl
|
||||
syn keyword cAnsiFunction expf exp tanhl
|
||||
syn keyword cAnsiFunction tanhf tanh sinhl
|
||||
syn keyword cAnsiFunction sinhf sinh coshl
|
||||
syn keyword cAnsiFunction coshf cosh atanhl
|
||||
syn keyword cAnsiFunction atanhf atanh asinhl
|
||||
syn keyword cAnsiFunction asinhf asinh acoshl
|
||||
syn keyword cAnsiFunction acoshf acosh tanl
|
||||
syn keyword cAnsiFunction tanf tan sinl
|
||||
syn keyword cAnsiFunction sinf sin cosl
|
||||
syn keyword cAnsiFunction cosf cos atan2l
|
||||
syn keyword cAnsiFunction atan2f atan2 atanl
|
||||
syn keyword cAnsiFunction atanf atan asinl
|
||||
syn keyword cAnsiFunction asinf asin acosl
|
||||
syn keyword cAnsiFunction acosf acos signbit
|
||||
syn keyword cAnsiFunction isnormal isnan isinf
|
||||
syn keyword cAnsiFunction isfinite fpclassify localeconv
|
||||
syn keyword cAnsiFunction setlocale wcstoumax wcstoimax
|
||||
syn keyword cAnsiFunction strtoumax strtoimax feupdateenv
|
||||
syn keyword cAnsiFunction fesetenv feholdexcept fegetenv
|
||||
syn keyword cAnsiFunction fesetround fegetround fetestexcept
|
||||
syn keyword cAnsiFunction fesetexceptflag feraiseexcept fegetexceptflag
|
||||
syn keyword cAnsiFunction feclearexcept toupper tolower
|
||||
syn keyword cAnsiFunction isxdigit isupper isspace
|
||||
syn keyword cAnsiFunction ispunct isprint islower
|
||||
syn keyword cAnsiFunction isgraph isdigit iscntrl
|
||||
syn keyword cAnsiFunction isalpha isalnum creall
|
||||
syn keyword cAnsiFunction crealf creal cprojl
|
||||
syn keyword cAnsiFunction cprojf cproj conjl
|
||||
syn keyword cAnsiFunction conjf conj cimagl
|
||||
syn keyword cAnsiFunction cimagf cimag cargl
|
||||
syn keyword cAnsiFunction cargf carg csqrtl
|
||||
syn keyword cAnsiFunction csqrtf csqrt cpowl
|
||||
syn keyword cAnsiFunction cpowf cpow cabsl
|
||||
syn keyword cAnsiFunction cabsf cabs clogl
|
||||
syn keyword cAnsiFunction clogf clog cexpl
|
||||
syn keyword cAnsiFunction cexpf cexp ctanhl
|
||||
syn keyword cAnsiFunction ctanhf ctanh csinhl
|
||||
syn keyword cAnsiFunction csinhf csinh ccoshl
|
||||
syn keyword cAnsiFunction ccoshf ccosh catanhl
|
||||
syn keyword cAnsiFunction catanhf catanh casinhl
|
||||
syn keyword cAnsiFunction casinhf casinh cacoshl
|
||||
syn keyword cAnsiFunction cacoshf cacosh ctanl
|
||||
syn keyword cAnsiFunction ctanf ctan csinl
|
||||
syn keyword cAnsiFunction csinf csin ccosl
|
||||
syn keyword cAnsiFunction ccosf ccos catanl
|
||||
syn keyword cAnsiFunction catanf catan casinl
|
||||
syn keyword cAnsiFunction casinf casin cacosl
|
||||
syn keyword cAnsiFunction cacosf cacos assert
|
||||
syn keyword cAnsiFunction UINTMAX_C INTMAX_C UINT64_C
|
||||
syn keyword cAnsiFunction UINT32_C UINT16_C UINT8_C
|
||||
syn keyword cAnsiFunction INT64_C INT32_C INT16_C INT8_C
|
||||
|
||||
" Common ANSI-standard Names
|
||||
syn keyword cAnsiName PRId8 PRIi16 PRIo32 PRIu64
|
||||
syn keyword cAnsiName PRId16 PRIi32 PRIo64 PRIuLEAST8
|
||||
syn keyword cAnsiName PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16
|
||||
syn keyword cAnsiName PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32
|
||||
syn keyword cAnsiName PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64
|
||||
syn keyword cAnsiName PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8
|
||||
syn keyword cAnsiName PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16
|
||||
syn keyword cAnsiName PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32
|
||||
syn keyword cAnsiName PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64
|
||||
syn keyword cAnsiName PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX
|
||||
syn keyword cAnsiName PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR
|
||||
syn keyword cAnsiName PRIdFAST64 PRIiMAX PRIoPTR PRIx8
|
||||
syn keyword cAnsiName PRIdMAX PRIiPTR PRIu8 PRIx16
|
||||
syn keyword cAnsiName PRIdPTR PRIo8 PRIu16 PRIx32
|
||||
syn keyword cAnsiName PRIi8 PRIo16 PRIu32 PRIx64
|
||||
|
||||
syn keyword cAnsiName PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32
|
||||
syn keyword cAnsiName PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64
|
||||
syn keyword cAnsiName PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8
|
||||
syn keyword cAnsiName PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16
|
||||
syn keyword cAnsiName PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32
|
||||
syn keyword cAnsiName PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64
|
||||
syn keyword cAnsiName PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX
|
||||
syn keyword cAnsiName PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR
|
||||
syn keyword cAnsiName PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8
|
||||
syn keyword cAnsiName PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16
|
||||
syn keyword cAnsiName PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32
|
||||
syn keyword cAnsiName PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64
|
||||
syn keyword cAnsiName PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8
|
||||
syn keyword cAnsiName PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16
|
||||
syn keyword cAnsiName PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32
|
||||
syn keyword cAnsiName PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64
|
||||
syn keyword cAnsiName PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8
|
||||
syn keyword cAnsiName PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16
|
||||
syn keyword cAnsiName PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32
|
||||
syn keyword cAnsiName PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64
|
||||
syn keyword cAnsiName PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX
|
||||
syn keyword cAnsiName PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR
|
||||
syn keyword cAnsiName PRIXMAX SCNiFAST8 SCNuLEAST8
|
||||
syn keyword cAnsiName PRIXPTR SCNiFAST16 SCNuLEAST16
|
||||
|
||||
syn keyword cAnsiName errno environ
|
||||
|
||||
syn keyword cAnsiName STDC CX_LIMITED_RANGE
|
||||
syn keyword cAnsiName STDC FENV_ACCESS
|
||||
syn keyword cAnsiName STDC FP_CONTRACT
|
||||
|
||||
syn keyword cAnsiName and bitor not_eq xor
|
||||
syn keyword cAnsiName and_eq compl or xor_eq
|
||||
syn keyword cAnsiName bitand not or_eq
|
||||
|
||||
hi def link cAnsiFunction cFunction
|
||||
hi def link cAnsiName cIdentifier
|
||||
hi def link cFunction Function
|
||||
hi def link cIdentifier Identifier
|
||||
|
||||
" Booleans
|
||||
syn keyword cBoolean true false TRUE FALSE
|
||||
hi def link cBoolean Boolean
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" Additional optional highlighting
|
||||
" -----------------------------------------------------------------------------
|
||||
|
||||
" Operators
|
||||
"syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
|
||||
"syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
|
||||
"syn match cOperator "[.!~*&%<>^|=,+-]"
|
||||
"syn match cOperator "/[^/*=]"me=e-1
|
||||
"syn match cOperator "/$"
|
||||
"syn match cOperator "&&\|||"
|
||||
"syn match cOperator "[][]"
|
||||
"
|
||||
"" Preprocs
|
||||
"syn keyword cDefined defined contained containedin=cDefine
|
||||
"hi def link cDefined cDefine
|
||||
|
||||
"" Functions
|
||||
"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
|
||||
"syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator
|
||||
"
|
||||
"hi def link cUserFunction cFunction
|
||||
"hi def link cUserFunctionPointer cFunction
|
||||
"
|
||||
"" Delimiters
|
||||
"syn match cDelimiter "[();\\]"
|
||||
"" foldmethod=syntax fix, courtesy of Ivan Freitas
|
||||
"syn match cBraces display "[{}]"
|
||||
|
||||
" Links
|
||||
"hi def link cDelimiter Delimiter
|
||||
" foldmethod=syntax fix, courtesy of Ivan Freitas
|
||||
"hi def link cBraces Delimiter
|
||||
|
||||
endif
|
||||
@@ -1,20 +1,31 @@
|
||||
" This file describes a very basic syntax for TomDoc comments in a
|
||||
" CoffeeScript file.
|
||||
"
|
||||
" For more information on TomDoc, check it out here: http://tomdoc.org/
|
||||
"
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cjsx') == -1
|
||||
|
||||
syn keyword tomdocKeywords Returns containedin=coffeeComment contained
|
||||
syn keyword tomdocKeywords Throws containedin=coffeeComment contained
|
||||
syn keyword tomdocKeywords Examples containedin=coffeeComment contained
|
||||
syn keyword tomdocKeywords Signature containedin=coffeeComment contained
|
||||
if exists('b:current_syntax')
|
||||
let s:current_syntax=b:current_syntax
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
syn match tomdocArguments +\s*[A-Za-z0-9_\-&\*:]*\(\s*- \)+he=e-3 containedin=coffeeComment contained
|
||||
if exists('s:current_syntax')
|
||||
let b:current_syntax=s:current_syntax
|
||||
endif
|
||||
|
||||
syn match tomdocDescriptions +\s*Public:+he=e-1 containedin=coffeeComment contained
|
||||
syn match tomdocDescriptions +\s*Internal:+he=e-1 containedin=coffeeComment contained
|
||||
syn match tomdocDescriptions +\s*Deprecated:+he=e-1 containedin=coffeeComment contained
|
||||
syn match cjsxEntity contained "&[^; \t]*;" contains=cjsxEntityPunct
|
||||
syn match cjsxEntityPunct contained "[&.;]"
|
||||
|
||||
hi default link tomdocDescriptions String
|
||||
hi default link tomdocKeywords String
|
||||
hi default link tomdocArguments HELP
|
||||
syn match cjsxAttribProperty /[A-Za-z_][A-Za-z0-9_-]*/ contained
|
||||
syn region cjsxAttrib start=/\s[A-Za-z_][A-Za-z0-9_-]/hs=s+1 end=/=/ end=/\s[A-Za-z_]/me=e-2 end=+[/>]+me=e-1 contained contains=cjsxAttribProperty
|
||||
|
||||
syn region cjsxBody start=+[^/]>+ms=s+2 start=/>/ms=s+1 end=+<\/+me=e-2 contained contains=cjsxElement,coffeeCurlies,cjsxEntity
|
||||
|
||||
syn region cjsxElement start=/<@\=[A-Za-z_][A-Za-z0-9-_\.]*/ end=/\/>/ end=/<\/@\=[A-Za-z_][A-Za-z0-9-_\.]*>/ contains=cjsxOpenTag,cjsxBody,coffeeCurlies,coffeeString,cjsxAttrib,coffeeNumber,coffeeFloat
|
||||
|
||||
syn cluster coffeeAll add=cjsxElement
|
||||
|
||||
" The default highlighting.
|
||||
hi def link cjsxElement Function
|
||||
hi def link cjsxTagName Function
|
||||
hi def link cjsxEntity Statement
|
||||
hi def link cjsxEntityPunct Type
|
||||
hi def link cjsxAttribProperty Type
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: C++ Additions
|
||||
" Maintainer: Jon Haggblad <jon@haeggblad.com>
|
||||
" URL: http://www.haeggblad.com
|
||||
" Last Change: 17 May 2013
|
||||
" Version: 0.1
|
||||
" Last Change: 21 Sep 2014
|
||||
" Version: 0.5
|
||||
" Changelog:
|
||||
" 0.1 - initial version.
|
||||
" 0.2 - C++14
|
||||
" 0.3 - Incorporate lastest changes from Mizuchi/STL-Syntax
|
||||
" 0.4 - Add template function highlight
|
||||
" 0.5 - Redo template function highlight to be more robust. Add options.
|
||||
"
|
||||
" Additional Vim syntax highlighting for C++ (including C++11)
|
||||
" Additional Vim syntax highlighting for C++ (including C++11/14)
|
||||
"
|
||||
" This file contains additional syntax highlighting that I use for my C++11
|
||||
" This file contains additional syntax highlighting that I use for C++11/14
|
||||
" development in Vim. Compared to the standard syntax highlighting for C++ it
|
||||
" adds highlighting of (user defined) functions and the containers and types
|
||||
" in the standard library / boost.
|
||||
@@ -27,21 +33,35 @@
|
||||
" Based on the discussion in:
|
||||
" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim
|
||||
" -----------------------------------------------------------------------------
|
||||
|
||||
" Functions
|
||||
syn match cCustomParen "(" contains=cParen contains=cCppParen
|
||||
syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen
|
||||
syn match cCustomScope "::"
|
||||
syn match cCustomClass "\w\+\s*::" contains=cCustomScope
|
||||
|
||||
hi def link cCustomFunc Function
|
||||
|
||||
" Uncomment this to also highlight 'class::' and 'namespace::'
|
||||
"hi def link cCustomClass Function
|
||||
" Template functions
|
||||
if exists('g:cpp_experimental_template_highlight') && g:cpp_experimental_template_highlight
|
||||
syn region cCustomAngleBrackets matchgroup=AngleBracketContents start="\v%(<operator\_s*)@<!%(%(\_i|template\_s*)@<=\<[<=]@!|\<@<!\<[[:space:]<=]@!)" end='>' contains=@cppSTLgroup,cppStructure,cType,cCustomClass,cCustomAngleBrackets,cNumbers
|
||||
syn match cCustomBrack "<\|>" contains=cCustomAngleBrackets
|
||||
syn match cCustomTemplateFunc "\w\+\s*<.*>(\@=" contains=cCustomBrack,cCustomAngleBrackets
|
||||
hi def link cCustomTemplateFunc Function
|
||||
endif
|
||||
|
||||
" Class and namespace scope
|
||||
if exists('g:cpp_class_scope_highlight') && g:cpp_class_scope_highlight
|
||||
syn match cCustomScope "::"
|
||||
syn match cCustomClass "\w\+\s*::" contains=cCustomScope
|
||||
hi def link cCustomClass Function " disabled for now
|
||||
endif
|
||||
|
||||
" Alternative syntax that is used in:
|
||||
" http://www.vim.org/scripts/script.php?script_id=3064
|
||||
"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
|
||||
"hi def link cCustomFunc Function
|
||||
|
||||
" Cluster for all the stdlib functions defined below
|
||||
syn cluster cppSTLgroup contains=cppSTLfunction,cppSTLfunctional,cppSTLconstant,cppSTLnamespace,cppSTLtype,cppSTLexception,cppSTLiterator,cppSTLiterator_tagcppSTLenumcppSTLioscppSTLcast
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" Standard library types and functions.
|
||||
"
|
||||
@@ -53,6 +73,10 @@ hi def link cCustomFunc Function
|
||||
" http://www.vim.org/scripts/script.php?script_id=1640
|
||||
" -----------------------------------------------------------------------------
|
||||
syntax keyword cppSTLconstant badbit
|
||||
syntax keyword cppSTLconstant cerr
|
||||
syntax keyword cppSTLconstant cin
|
||||
syntax keyword cppSTLconstant clog
|
||||
syntax keyword cppSTLconstant cout
|
||||
syntax keyword cppSTLconstant digits
|
||||
syntax keyword cppSTLconstant digits10
|
||||
syntax keyword cppSTLconstant eofbit
|
||||
@@ -81,6 +105,10 @@ syntax keyword cppSTLconstant radix
|
||||
syntax keyword cppSTLconstant round_style
|
||||
syntax keyword cppSTLconstant tinyness_before
|
||||
syntax keyword cppSTLconstant traps
|
||||
syntax keyword cppSTLconstant wcerr
|
||||
syntax keyword cppSTLconstant wcin
|
||||
syntax keyword cppSTLconstant wclog
|
||||
syntax keyword cppSTLconstant wcout
|
||||
syntax keyword cppSTLexception bad_alloc
|
||||
syntax keyword cppSTLexception bad_array_new_length
|
||||
syntax keyword cppSTLexception bad_exception
|
||||
@@ -108,6 +136,7 @@ syntax keyword cppSTLfunctional binary_negate
|
||||
syntax keyword cppSTLfunctional bit_and
|
||||
syntax keyword cppSTLfunctional bit_not
|
||||
syntax keyword cppSTLfunctional bit_or
|
||||
syntax keyword cppSTLfunctional bit_xor
|
||||
syntax keyword cppSTLfunctional divides
|
||||
syntax keyword cppSTLfunctional equal_to
|
||||
syntax keyword cppSTLfunctional greater
|
||||
@@ -139,11 +168,12 @@ syntax keyword cppSTLfunction atexit
|
||||
syntax keyword cppSTLfunction atof
|
||||
syntax keyword cppSTLfunction atoi
|
||||
syntax keyword cppSTLfunction atol
|
||||
syntax keyword cppSTLfunction atoll
|
||||
syntax keyword cppSTLfunction back
|
||||
syntax keyword cppSTLfunction back_inserter
|
||||
syntax keyword cppSTLfunction bad
|
||||
syntax keyword cppSTLfunction beg
|
||||
syntax keyword cppSTLfunction begin
|
||||
"syntax keyword cppSTLfunction begin
|
||||
syntax keyword cppSTLfunction binary_compose
|
||||
syntax keyword cppSTLfunction binary_negate
|
||||
syntax keyword cppSTLfunction binary_search
|
||||
@@ -155,12 +185,9 @@ syntax keyword cppSTLfunction bsearch
|
||||
syntax keyword cppSTLfunction calloc
|
||||
syntax keyword cppSTLfunction capacity
|
||||
syntax keyword cppSTLfunction ceil
|
||||
syntax keyword cppSTLfunction cerr
|
||||
syntax keyword cppSTLfunction cin
|
||||
syntax keyword cppSTLfunction clear
|
||||
syntax keyword cppSTLfunction clearerr
|
||||
syntax keyword cppSTLfunction clock
|
||||
syntax keyword cppSTLfunction clog
|
||||
syntax keyword cppSTLfunction close
|
||||
syntax keyword cppSTLfunction compare
|
||||
syntax keyword cppSTLfunction conj
|
||||
@@ -171,17 +198,16 @@ syntax keyword cppSTLfunction cos
|
||||
syntax keyword cppSTLfunction cosh
|
||||
syntax keyword cppSTLfunction count
|
||||
syntax keyword cppSTLfunction count_if
|
||||
syntax keyword cppSTLfunction cout
|
||||
syntax keyword cppSTLfunction c_str
|
||||
syntax keyword cppSTLfunction ctime
|
||||
syntax keyword cppSTLfunction data
|
||||
"syntax keyword cppSTLfunction data
|
||||
syntax keyword cppSTLfunction denorm_min
|
||||
syntax keyword cppSTLfunction destroy
|
||||
syntax keyword cppSTLfunction difftime
|
||||
syntax keyword cppSTLfunction distance
|
||||
syntax keyword cppSTLfunction div
|
||||
syntax keyword cppSTLfunction empty
|
||||
syntax keyword cppSTLfunction end
|
||||
"syntax keyword cppSTLfunction end
|
||||
syntax keyword cppSTLfunction eof
|
||||
syntax keyword cppSTLfunction epsilon
|
||||
syntax keyword cppSTLfunction equal
|
||||
@@ -312,7 +338,7 @@ syntax keyword cppSTLfunction norm
|
||||
syntax keyword cppSTLfunction not1
|
||||
syntax keyword cppSTLfunction not2
|
||||
syntax keyword cppSTLfunction nth_element
|
||||
syntax keyword cppSTLfunction numeric_limits
|
||||
syntax keyword cppSTLtype numeric_limits
|
||||
syntax keyword cppSTLfunction open
|
||||
syntax keyword cppSTLfunction partial_sort
|
||||
syntax keyword cppSTLfunction partial_sort_copy
|
||||
@@ -394,7 +420,7 @@ syntax keyword cppSTLfunction signal
|
||||
syntax keyword cppSTLfunction signaling_NaN
|
||||
syntax keyword cppSTLfunction sin
|
||||
syntax keyword cppSTLfunction sinh
|
||||
syntax keyword cppSTLfunction size
|
||||
"syntax keyword cppSTLfunction size
|
||||
syntax keyword cppSTLfunction sort
|
||||
syntax keyword cppSTLfunction sort_heap
|
||||
syntax keyword cppSTLfunction splice
|
||||
@@ -423,8 +449,11 @@ syntax keyword cppSTLfunction strrchr
|
||||
syntax keyword cppSTLfunction strspn
|
||||
syntax keyword cppSTLfunction strstr
|
||||
syntax keyword cppSTLfunction strtod
|
||||
syntax keyword cppSTLfunction strtof
|
||||
syntax keyword cppSTLfunction strtok
|
||||
syntax keyword cppSTLfunction strtol
|
||||
syntax keyword cppSTLfunction strtold
|
||||
syntax keyword cppSTLfunction strtoll
|
||||
syntax keyword cppSTLfunction strtoul
|
||||
syntax keyword cppSTLfunction strxfrm
|
||||
syntax keyword cppSTLfunction substr
|
||||
@@ -433,14 +462,13 @@ syntax keyword cppSTLfunction swap_ranges
|
||||
syntax keyword cppSTLfunction swprintf
|
||||
syntax keyword cppSTLfunction swscanf
|
||||
syntax keyword cppSTLfunction sync_with_stdio
|
||||
syntax keyword cppSTLfunction system
|
||||
"syntax keyword cppSTLfunction system
|
||||
syntax keyword cppSTLfunction tan
|
||||
syntax keyword cppSTLfunction tanh
|
||||
syntax keyword cppSTLfunction tellg
|
||||
syntax keyword cppSTLfunction tellp
|
||||
syntax keyword cppSTLfunction test
|
||||
syntax keyword cppSTLfunction time
|
||||
syntax keyword cppSTLfunction time_t
|
||||
"syntax keyword cppSTLfunction test
|
||||
"syntax keyword cppSTLfunction time
|
||||
syntax keyword cppSTLfunction tmpfile
|
||||
syntax keyword cppSTLfunction tmpnam
|
||||
syntax keyword cppSTLfunction tolower
|
||||
@@ -462,7 +490,6 @@ syntax keyword cppSTLfunction unique_copy
|
||||
syntax keyword cppSTLfunction unsetf
|
||||
syntax keyword cppSTLfunction upper_bound
|
||||
syntax keyword cppSTLfunction va_arg
|
||||
syntax keyword cppSTLfunction va_arg
|
||||
syntax keyword cppSTLfunction va_copy
|
||||
syntax keyword cppSTLfunction va_end
|
||||
syntax keyword cppSTLfunction value_comp
|
||||
@@ -539,12 +566,18 @@ syntax keyword cppSTLnamespace rel_ops
|
||||
syntax keyword cppSTLnamespace std
|
||||
syntax keyword cppSTLtype allocator
|
||||
syntax keyword cppSTLtype auto_ptr
|
||||
syntax keyword cppSTLtype basic_filebuf
|
||||
syntax keyword cppSTLtype basic_fstream
|
||||
syntax keyword cppSTLtype basic_ifstream
|
||||
syntax keyword cppSTLtype basic_iostream
|
||||
syntax keyword cppSTLtype basic_istream
|
||||
syntax keyword cppSTLtype basic_istringstream
|
||||
syntax keyword cppSTLtype basic_ofstream
|
||||
syntax keyword cppSTLtype basic_ostream
|
||||
syntax keyword cppSTLtype basic_ostringstream
|
||||
syntax keyword cppSTLtype basic_streambuf
|
||||
syntax keyword cppSTLtype basic_string
|
||||
syntax keyword cppSTLtype basic_stringbuf
|
||||
syntax keyword cppSTLtype basic_stringstream
|
||||
syntax keyword cppSTLtype binary_compose
|
||||
syntax keyword cppSTLtype binder1st
|
||||
@@ -573,7 +606,11 @@ syntax keyword cppSTLtype ifstream
|
||||
syntax keyword cppSTLtype imaxdiv_t
|
||||
syntax keyword cppSTLtype indirect_array
|
||||
syntax keyword cppSTLtype int_type
|
||||
syntax keyword cppSTLtype ios_base
|
||||
syntax keyword cppSTLtype iostream
|
||||
syntax keyword cppSTLtype istream
|
||||
syntax keyword cppSTLtype istringstream
|
||||
syntax keyword cppSTLtype istrstream
|
||||
syntax keyword cppSTLtype iterator_traits
|
||||
syntax keyword cppSTLtype key_compare
|
||||
syntax keyword cppSTLtype key_type
|
||||
@@ -594,6 +631,7 @@ syntax keyword cppSTLtype off_type
|
||||
syntax keyword cppSTLtype ofstream
|
||||
syntax keyword cppSTLtype ostream
|
||||
syntax keyword cppSTLtype ostringstream
|
||||
syntax keyword cppSTLtype ostrstream
|
||||
syntax keyword cppSTLtype pair
|
||||
syntax keyword cppSTLtype pointer
|
||||
syntax keyword cppSTLtype pointer_to_binary_function
|
||||
@@ -610,11 +648,15 @@ syntax keyword cppSTLtype size_type
|
||||
syntax keyword cppSTLtype slice_array
|
||||
syntax keyword cppSTLtype stack
|
||||
syntax keyword cppSTLtype stream
|
||||
syntax keyword cppSTLtype streambuf
|
||||
syntax keyword cppSTLtype string
|
||||
syntax keyword cppSTLtype stringbuf
|
||||
syntax keyword cppSTLtype stringstream
|
||||
syntax keyword cppSTLtype strstream
|
||||
syntax keyword cppSTLtype strstreambuf
|
||||
syntax keyword cppSTLtype temporary_buffer
|
||||
syntax keyword cppSTLtype test_type
|
||||
syntax keyword cppSTLtype time_t
|
||||
syntax keyword cppSTLtype tm
|
||||
syntax keyword cppSTLtype traits_type
|
||||
syntax keyword cppSTLtype type_info
|
||||
@@ -626,18 +668,102 @@ syntax keyword cppSTLtype valarray
|
||||
syntax keyword cppSTLtype value_compare
|
||||
syntax keyword cppSTLtype value_type
|
||||
syntax keyword cppSTLtype vector
|
||||
syntax keyword cppSTLtype wfilebuf
|
||||
syntax keyword cppSTLtype wfstream
|
||||
syntax keyword cppSTLtype wifstream
|
||||
syntax keyword cppSTLtype wiostream
|
||||
syntax keyword cppSTLtype wistream
|
||||
syntax keyword cppSTLtype wistringstream
|
||||
syntax keyword cppSTLtype wofstream
|
||||
syntax keyword cppSTLtype wostream
|
||||
syntax keyword cppSTLtype wostringstream
|
||||
syntax keyword cppSTLtype wstreambuf
|
||||
syntax keyword cppSTLtype wstring
|
||||
syntax keyword cppSTLtype wstringbuf
|
||||
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")
|
||||
syntax keyword cppSTLtype nullptr_t max_align_t
|
||||
syntax keyword cppSTLtype type_index
|
||||
syntax keyword cppSTLconstant nullptr
|
||||
|
||||
" type_traits
|
||||
syntax keyword cppSTLtype is_void
|
||||
@@ -727,6 +853,10 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLtype integral_constant
|
||||
syntax keyword cppSTLtype true_type
|
||||
syntax keyword cppSTLtype false_type
|
||||
syntax keyword cppSTLfunction declval
|
||||
|
||||
syntax keyword cppSTLconstant piecewise_construct
|
||||
syntax keyword cppSTLtype piecewise_construct_t
|
||||
|
||||
" memory
|
||||
syntax keyword cppSTLtype unique_ptr
|
||||
@@ -751,6 +881,12 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLtype pointer_traits
|
||||
syntax keyword cppSTLfunction addressof
|
||||
syntax keyword cppSTLfunction align
|
||||
syntax keyword cppSTLfunction make_shared
|
||||
syntax keyword cppSTLfunction allocate_shared
|
||||
syntax keyword cppSTLcast static_pointer_cast
|
||||
syntax keyword cppSTLcast dynamic_pointer_cast
|
||||
syntax keyword cppSTLcast const_pointer_cast
|
||||
syntax keyword cppSTLfunction get_deleter
|
||||
|
||||
" function object
|
||||
syntax keyword cppSTLfunction bind
|
||||
@@ -776,6 +912,7 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLfunction quick_exit
|
||||
syntax keyword cppSTLfunction _Exit
|
||||
syntax keyword cppSTLfunction at_quick_exit
|
||||
syntax keyword cppSTLfunction forward
|
||||
|
||||
" date and time
|
||||
syntax keyword cppSTLnamespace chrono
|
||||
@@ -784,6 +921,8 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLtype steady_clock
|
||||
syntax keyword cppSTLtype high_resolution_clock
|
||||
syntax keyword cppSTLtype time_point
|
||||
syntax keyword cppSTLcast duration_cast
|
||||
syntax keyword cppSTLcast time_point_cast
|
||||
|
||||
" tuple
|
||||
syntax keyword cppSTLtype tuple
|
||||
@@ -842,6 +981,7 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLfunction copy_if
|
||||
syntax keyword cppSTLfunction copy_n
|
||||
syntax keyword cppSTLfunction move
|
||||
syntax keyword cppSTLfunction move_if_noexcept
|
||||
syntax keyword cppSTLfunction move_backward
|
||||
syntax keyword cppSTLfunction shuffle
|
||||
syntax keyword cppSTLfunction is_partitioned
|
||||
@@ -916,7 +1056,7 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLconstant FLT_EVAL_METHOD
|
||||
|
||||
" complex
|
||||
syntax keyword cppSTLfunction proj
|
||||
"syntax keyword cppSTLfunction proj
|
||||
|
||||
" random
|
||||
syntax keyword cppSTLtype linear_congruential_engine
|
||||
@@ -968,6 +1108,7 @@ if !exists("cpp_no_cpp11")
|
||||
|
||||
" locale
|
||||
syntax keyword cppSTLfunction isblank
|
||||
syntax keyword cppSTLfunction iswblank
|
||||
syntax keyword cppSTLtype wstring_convert
|
||||
syntax keyword cppSTLtype wbuffer_convert
|
||||
syntax keyword cppSTLtype codecvt_utf8
|
||||
@@ -1016,16 +1157,55 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLfunction atomic_flag_clear
|
||||
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 cppSTLfunction atomic_init
|
||||
syntax keyword cppSTLfunction ATOMIC_VAR_INIT
|
||||
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
|
||||
syntax keyword cppSTLconstant kill_dependency
|
||||
syntax keyword cppSTLconstant atomic_thread_fence
|
||||
syntax keyword cppSTLconstant atomic_signal_fence
|
||||
syntax keyword cppSTLfunction kill_dependency
|
||||
syntax keyword cppSTLfunction atomic_thread_fence
|
||||
syntax keyword cppSTLfunction atomic_signal_fence
|
||||
|
||||
" thread
|
||||
syntax keyword cppSTLtype thread
|
||||
syntax keyword cppSTLnamespace this_thread
|
||||
syntax keyword cppSTLfunction yield
|
||||
syntax keyword cppSTLfunction get_id
|
||||
syntax keyword cppSTLfunction sleep_for
|
||||
@@ -1061,8 +1241,8 @@ if !exists("cpp_no_cpp11")
|
||||
syntax keyword cppSTLtype future
|
||||
syntax keyword cppSTLtype shared_future
|
||||
|
||||
"syntax keyword cppSTLfunction async
|
||||
"syntax keyword cppSTLenum launch
|
||||
syntax keyword cppSTLfunction async
|
||||
syntax keyword cppSTLenum launch
|
||||
|
||||
syntax keyword cppSTLenum future_status
|
||||
syntax keyword cppSTLenum future_errc
|
||||
@@ -1114,7 +1294,54 @@ if !exists("cpp_no_cpp11")
|
||||
|
||||
"limits
|
||||
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
|
||||
|
||||
syntax keyword cppSTLtype nanoseconds
|
||||
syntax keyword cppSTLtype microseconds
|
||||
syntax keyword cppSTLtype milliseconds
|
||||
syntax keyword cppSTLtype seconds
|
||||
syntax keyword cppSTLtype minutes
|
||||
syntax keyword cppSTLtype hours
|
||||
|
||||
"raw string literals
|
||||
syntax region cppRawString matchgroup=cppRawDelimiter start=@\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(@ end=/)\z1"/ contains=@Spell
|
||||
|
||||
syn match cNumber "0b[01]\+"
|
||||
endif " C++11
|
||||
|
||||
if !exists("cpp_no_cpp14")
|
||||
"dynarray
|
||||
syntax keyword cppSTLtype dynarray
|
||||
|
||||
"thread
|
||||
syntax keyword cppSTLtype shared_mutex
|
||||
syntax keyword cppSTLtype shared_lock
|
||||
|
||||
"memory
|
||||
syntax keyword cppSTLfunction make_unique
|
||||
endif " C++14
|
||||
|
||||
if !exists("cpp_no_boost")
|
||||
"optional is not a part of C++14 anymore
|
||||
syntax keyword cppSTLtype optional
|
||||
"syntax keyword cppSTLfunction value
|
||||
syntax keyword cppSTLfunction value_or
|
||||
syntax keyword cppSTLfunction make_optional
|
||||
|
||||
syntax keyword cppSTLnamespace boost
|
||||
syntax keyword cppSTLcast lexical_cast
|
||||
endif " Boost
|
||||
|
||||
" Default highlighting
|
||||
if version >= 508 || !exists("did_cpp_syntax_inits")
|
||||
@@ -1125,15 +1352,19 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
HiLink cppSTLfunction Function
|
||||
HiLink cppSTLfunctional Type
|
||||
HiLink cppSTLfunctional Typedef
|
||||
HiLink cppSTLconstant Constant
|
||||
HiLink cppSTLnamespace Constant
|
||||
HiLink cppSTLtype Type
|
||||
HiLink cppSTLexception Type
|
||||
HiLink cppSTLiterator Type
|
||||
HiLink cppSTLiterator_tag Type
|
||||
HiLink cppSTLenum Type
|
||||
HiLink cppSTLtype Typedef
|
||||
HiLink cppSTLexception Exception
|
||||
HiLink cppSTLiterator Typedef
|
||||
HiLink cppSTLiterator_tag Typedef
|
||||
HiLink cppSTLenum Typedef
|
||||
HiLink cppSTLios Function
|
||||
HiLink cppSTLcast Statement " be consistent with official syntax
|
||||
HiLink cppRawString String
|
||||
HiLink cppRawDelimiter Delimiter
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,501 +0,0 @@
|
||||
" Language: Colorful CSS Color Preview
|
||||
" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
|
||||
" Last Change: 2013-03-09
|
||||
" Licence: No Warranties. WTFPL. But please tell me!
|
||||
" Version: 0.7.3
|
||||
" vim:et:ts=2 sw=2 sts=2
|
||||
"
|
||||
" KNOWN PROBLEMS: compatibility with `cursorline` -- https://github.com/ap/vim-css-color/issues/24
|
||||
|
||||
let s:hex={}
|
||||
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 b:color_pattern = {}
|
||||
let s:color_prefix = 'gui'
|
||||
let s:fg_color_calc = 'let color = "#" . toupper(a:color)'
|
||||
|
||||
function! s:MatchColorValue(color, pattern)
|
||||
if ! len(a:color) | return | endif
|
||||
|
||||
if has_key( b:color_pattern, a:pattern ) | return | endif
|
||||
let b:color_pattern[a:pattern] = 1
|
||||
|
||||
let pattern = a:pattern
|
||||
" iff pattern ends on word character, require word break to match
|
||||
if pattern =~ '\>$' | let pattern .= '\>' | endif
|
||||
|
||||
let group = 'cssColor' . tolower(a:color)
|
||||
exe 'syn match' group '/'.escape(pattern, '/').'/ contained'
|
||||
exe 'syn cluster cssColors add='.group
|
||||
exe s:fg_color_calc
|
||||
exe 'hi' group s:color_prefix.'bg='.color s:color_prefix.'fg='.s:FGForBG(a:color)
|
||||
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:PreviewCSSColorInLine()
|
||||
" TODO use cssColor matchdata
|
||||
"
|
||||
" N.B. these substitute() calls are here just for the side effect
|
||||
" of invoking s:MatchColorValue 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
|
||||
call substitute( substitute( substitute( substitute( getline('.'),
|
||||
\ '#\(\x\)\(\x\)\(\x\)\>', '\=s:MatchColorValue(submatch(1).submatch(1).submatch(2).submatch(2).submatch(3).submatch(3), submatch(0))', 'g' ),
|
||||
\ '#\(\x\{6}\)\>', '\=s:MatchColorValue(submatch(1), submatch(0))', 'g' ),
|
||||
\ 'rgba\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)', '\=s:MatchColorValue(s:HexForRGBValue(submatch(1),submatch(2),submatch(3)),submatch(0))', 'g' ),
|
||||
\ 'hsla\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)', '\=s:MatchColorValue(s:HexForHSLValue(submatch(1),submatch(2),submatch(3)),submatch(0))', 'g' )
|
||||
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,', '' )
|
||||
syn clear cssDefinition
|
||||
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
|
||||
|
||||
" w3c Colors
|
||||
syn keyword cssColor000000 black contained
|
||||
syn keyword cssColorc0c0c0 silver contained
|
||||
syn keyword cssColor808080 gray contained
|
||||
syn match cssColorffffff "\<white\(-\)\@!\>" contained
|
||||
syn keyword cssColor800000 maroon contained
|
||||
syn keyword cssColorff0000 red contained
|
||||
syn keyword cssColor800080 purple contained
|
||||
syn keyword cssColorff00ff fuchsia contained
|
||||
syn keyword cssColor008000 green contained
|
||||
syn keyword cssColor00ff00 lime contained
|
||||
syn keyword cssColor808000 olive contained
|
||||
syn keyword cssColorffff00 yellow contained
|
||||
syn keyword cssColor000080 navy contained
|
||||
syn keyword cssColor0000ff blue contained
|
||||
syn keyword cssColor008080 teal contained
|
||||
syn keyword cssColor00ffff aqua contained
|
||||
|
||||
" extra colors
|
||||
syn keyword cssColorf0f8ff AliceBlue contained
|
||||
syn keyword cssColorfaebd7 AntiqueWhite contained
|
||||
syn keyword cssColor7fffd4 Aquamarine contained
|
||||
syn keyword cssColorf0ffff Azure contained
|
||||
syn keyword cssColorf5f5dc Beige contained
|
||||
syn keyword cssColorffe4c4 Bisque contained
|
||||
syn keyword cssColorffebcd BlanchedAlmond contained
|
||||
syn keyword cssColor8a2be2 BlueViolet contained
|
||||
syn keyword cssColora52a2a Brown contained
|
||||
syn keyword cssColordeb887 BurlyWood contained
|
||||
syn keyword cssColor5f9ea0 CadetBlue contained
|
||||
syn keyword cssColor7fff00 Chartreuse contained
|
||||
syn keyword cssColord2691e Chocolate contained
|
||||
syn keyword cssColorff7f50 Coral contained
|
||||
syn keyword cssColor6495ed CornflowerBlue contained
|
||||
syn keyword cssColorfff8dc Cornsilk contained
|
||||
syn keyword cssColordc143c Crimson contained
|
||||
syn keyword cssColor00ffff Cyan contained
|
||||
syn keyword cssColor00008b DarkBlue contained
|
||||
syn keyword cssColor008b8b DarkCyan contained
|
||||
syn keyword cssColorb8860b DarkGoldenRod contained
|
||||
syn keyword cssColora9a9a9 DarkGray contained
|
||||
syn keyword cssColor006400 DarkGreen contained
|
||||
syn keyword cssColora9a9a9 DarkGrey contained
|
||||
syn keyword cssColorbdb76b DarkKhaki contained
|
||||
syn keyword cssColor8b008b DarkMagenta contained
|
||||
syn keyword cssColor556b2f DarkOliveGreen contained
|
||||
syn keyword cssColor9932cc DarkOrchid contained
|
||||
syn keyword cssColor8b0000 DarkRed contained
|
||||
syn keyword cssColore9967a DarkSalmon contained
|
||||
syn keyword cssColor8fbc8f DarkSeaGreen contained
|
||||
syn keyword cssColor483d8b DarkSlateBlue contained
|
||||
syn keyword cssColor2f4f4f DarkSlateGray contained
|
||||
syn keyword cssColor2f4f4f DarkSlateGrey contained
|
||||
syn keyword cssColor00ced1 DarkTurquoise contained
|
||||
syn keyword cssColor9400d3 DarkViolet contained
|
||||
syn keyword cssColorff8c00 Darkorange contained
|
||||
syn keyword cssColorff1493 DeepPink contained
|
||||
syn keyword cssColor00bfff DeepSkyBlue contained
|
||||
syn keyword cssColor696969 DimGray contained
|
||||
syn keyword cssColor696969 DimGrey contained
|
||||
syn keyword cssColor1e90ff DodgerBlue contained
|
||||
syn keyword cssColorb22222 FireBrick contained
|
||||
syn keyword cssColorfffaf0 FloralWhite contained
|
||||
syn keyword cssColor228b22 ForestGreen contained
|
||||
syn keyword cssColordcdcdc Gainsboro contained
|
||||
syn keyword cssColorf8f8ff GhostWhite contained
|
||||
syn keyword cssColorffd700 Gold contained
|
||||
syn keyword cssColordaa520 GoldenRod contained
|
||||
syn keyword cssColoradff2f GreenYellow contained
|
||||
syn keyword cssColor808080 Grey contained
|
||||
syn keyword cssColorf0fff0 HoneyDew contained
|
||||
syn keyword cssColorff69b4 HotPink contained
|
||||
syn keyword cssColorcd5c5c IndianRed contained
|
||||
syn keyword cssColor4b0082 Indigo contained
|
||||
syn keyword cssColorfffff0 Ivory contained
|
||||
syn keyword cssColorf0e68c Khaki contained
|
||||
syn keyword cssColore6e6fa Lavender contained
|
||||
syn keyword cssColorfff0f5 LavenderBlush contained
|
||||
syn keyword cssColor7cfc00 LawnGreen contained
|
||||
syn keyword cssColorfffacd LemonChiffon contained
|
||||
syn keyword cssColoradd8e6 LightBlue contained
|
||||
syn keyword cssColorf08080 LightCoral contained
|
||||
syn keyword cssColore0ffff LightCyan contained
|
||||
syn keyword cssColorfafad2 LightGoldenRodYellow contained
|
||||
syn keyword cssColord3d3d3 LightGray contained
|
||||
syn keyword cssColor90ee90 LightGreen contained
|
||||
syn keyword cssColord3d3d3 LightGrey contained
|
||||
syn keyword cssColorffb6c1 LightPink contained
|
||||
syn keyword cssColorffa07a LightSalmon contained
|
||||
syn keyword cssColor20b2aa LightSeaGreen contained
|
||||
syn keyword cssColor87cefa LightSkyBlue contained
|
||||
syn keyword cssColor778899 LightSlateGray contained
|
||||
syn keyword cssColor778899 LightSlateGrey contained
|
||||
syn keyword cssColorb0c4de LightSteelBlue contained
|
||||
syn keyword cssColorffffe0 LightYellow contained
|
||||
syn keyword cssColor32cd32 LimeGreen contained
|
||||
syn keyword cssColorfaf0e6 Linen contained
|
||||
syn keyword cssColorff00ff Magenta contained
|
||||
syn keyword cssColor66cdaa MediumAquaMarine contained
|
||||
syn keyword cssColor0000cd MediumBlue contained
|
||||
syn keyword cssColorba55d3 MediumOrchid contained
|
||||
syn keyword cssColor9370d8 MediumPurple contained
|
||||
syn keyword cssColor3cb371 MediumSeaGreen contained
|
||||
syn keyword cssColor7b68ee MediumSlateBlue contained
|
||||
syn keyword cssColor00fa9a MediumSpringGreen contained
|
||||
syn keyword cssColor48d1cc MediumTurquoise contained
|
||||
syn keyword cssColorc71585 MediumVioletRed contained
|
||||
syn keyword cssColor191970 MidnightBlue contained
|
||||
syn keyword cssColorf5fffa MintCream contained
|
||||
syn keyword cssColorffe4e1 MistyRose contained
|
||||
syn keyword cssColorffe4b5 Moccasin contained
|
||||
syn keyword cssColorffdead NavajoWhite contained
|
||||
syn keyword cssColorfdf5e6 OldLace contained
|
||||
syn keyword cssColor6b8e23 OliveDrab contained
|
||||
syn keyword cssColorffa500 Orange contained
|
||||
syn keyword cssColorff4500 OrangeRed contained
|
||||
syn keyword cssColorda70d6 Orchid contained
|
||||
syn keyword cssColoreee8aa PaleGoldenRod contained
|
||||
syn keyword cssColor98fb98 PaleGreen contained
|
||||
syn keyword cssColorafeeee PaleTurquoise contained
|
||||
syn keyword cssColord87093 PaleVioletRed contained
|
||||
syn keyword cssColorffefd5 PapayaWhip contained
|
||||
syn keyword cssColorffdab9 PeachPuff contained
|
||||
syn keyword cssColorcd853f Peru contained
|
||||
syn keyword cssColorffc0cb Pink contained
|
||||
syn keyword cssColordda0dd Plum contained
|
||||
syn keyword cssColorb0e0e6 PowderBlue contained
|
||||
syn keyword cssColorbc8f8f RosyBrown contained
|
||||
syn keyword cssColor4169e1 RoyalBlue contained
|
||||
syn keyword cssColor8b4513 SaddleBrown contained
|
||||
syn keyword cssColorfa8072 Salmon contained
|
||||
syn keyword cssColorf4a460 SandyBrown contained
|
||||
syn keyword cssColor2e8b57 SeaGreen contained
|
||||
syn keyword cssColorfff5ee SeaShell contained
|
||||
syn keyword cssColora0522d Sienna contained
|
||||
syn keyword cssColor87ceeb SkyBlue contained
|
||||
syn keyword cssColor6a5acd SlateBlue contained
|
||||
syn keyword cssColor708090 SlateGray contained
|
||||
syn keyword cssColor708090 SlateGrey contained
|
||||
syn keyword cssColorfffafa Snow contained
|
||||
syn keyword cssColor00ff7f SpringGreen contained
|
||||
syn keyword cssColor4682b4 SteelBlue contained
|
||||
syn keyword cssColord2b48c Tan contained
|
||||
syn keyword cssColord8bfd8 Thistle contained
|
||||
syn keyword cssColorff6347 Tomato contained
|
||||
syn keyword cssColor40e0d0 Turquoise contained
|
||||
syn keyword cssColoree82ee Violet contained
|
||||
syn keyword cssColorf5deb3 Wheat contained
|
||||
syn keyword cssColorf5f5f5 WhiteSmoke contained
|
||||
syn keyword cssColor9acd32 YellowGreen contained
|
||||
|
||||
let view = winsaveview()
|
||||
%call s:PreviewCSSColorInLine()
|
||||
call winrestview(view)
|
||||
|
||||
autocmd CursorMoved <buffer> silent call s:PreviewCSSColorInLine()
|
||||
autocmd CursorMovedI <buffer> silent call s:PreviewCSSColorInLine()
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Sven Felix Oberquelle <Svelix.Github@gmail.com>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
@@ -11,3 +13,5 @@ syn region hamlCoffeescriptFilter matchgroup=hamlFilter
|
||||
\ end="^\%(\z1 \| *$\)\@!"
|
||||
\ contains=@hamlCoffeeScript,hamlInterpolation
|
||||
\ keepend
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
let b:current_syntax = ''
|
||||
unlet b:current_syntax
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
|
||||
|
||||
" Extends standard help syntax with highlighting of Scala code.
|
||||
"
|
||||
" Place code between !sc! and !/sc! delimiters. These will be hidden if Vim is
|
||||
" built with conceal support.
|
||||
|
||||
unlet! b:current_syntax
|
||||
|
||||
syntax include @ScalaCode syntax/scala.vim
|
||||
|
||||
if has('conceal')
|
||||
syntax region rgnScala matchgroup=Ignore concealends start='!sc!' end='!/sc!' contains=@ScalaCode
|
||||
else
|
||||
syntax region rgnScala matchgroup=Ignore start='!sc!' end='!/sc!' contains=@ScalaCode
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
||||
" Maintainer: Mick Koch <mick@kochm.co>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
" License: WTFPL
|
||||
|
||||
@@ -9,3 +11,48 @@ syn region coffeeScript start=#<script [^>]*type="text/coffeescript"[^>]*>#
|
||||
\ end=#</script>#me=s-1 keepend
|
||||
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
|
||||
\ containedin=htmlHead
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1
|
||||
|
||||
" Language: OpenGL Shading Language
|
||||
" Maintainer: Sergey Tikhomirov <sergey@tikhomirov.io>
|
||||
|
||||
syn include @GLSL syntax/glsl.vim
|
||||
syn region ShaderScript
|
||||
\ start="<script [^>]*type=\('\|\"\)x-shader/x-\(vertex\|fragment\)\('\|\"\)[^>]*>"
|
||||
\ keepend
|
||||
\ end="</script>"me=s-1
|
||||
\ contains=@GLSL,htmlScriptTag,@htmlPreproc
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
|
||||
|
||||
if !exists("g:less_html_style_tags")
|
||||
let g:less_html_style_tags = 1
|
||||
endif
|
||||
|
||||
if !g:less_html_style_tags
|
||||
finish
|
||||
endif
|
||||
|
||||
" Unset (but preserve) so that less will run.
|
||||
if exists("b:current_syntax")
|
||||
let s:pre_less_cur_syn = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
" Inspired by code from github.com/kchmck/vim-coffee-script
|
||||
" and the html syntax file included with vim 7.4.
|
||||
|
||||
syn include @htmlLess syntax/less.vim
|
||||
|
||||
" We have to explicitly add to htmlHead (containedin) as that region specifies 'contains'.
|
||||
syn region lessStyle start=+<style [^>]*type *=[^>]*text/less[^>]*>+ keepend end=+</style>+ contains=@htmlLess,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc containedin=htmlHead
|
||||
|
||||
" Reset since 'less' isn't really the current_syntax.
|
||||
if exists("s:pre_less_cur_syn")
|
||||
let b:current_syntax = s:pre_less_cur_syn
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
47
after/syntax/jsx.vim
Normal file
47
after/syntax/jsx.vim
Normal file
@@ -0,0 +1,47 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim syntax file
|
||||
"
|
||||
" Language: JSX (JavaScript)
|
||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
||||
" Depends: pangloss/vim-javascript
|
||||
"
|
||||
" CREDITS: Inspired by Facebook.
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" Do nothing if we don't find the @jsx pragma (and we care).
|
||||
exec 'source '.fnameescape(expand('<sfile>:p:h:h').'/jsx-config.vim')
|
||||
if g:jsx_pragma_required && !b:jsx_pragma_found | finish | endif
|
||||
|
||||
" Do nothing if we don't have the .jsx extension (and we care).
|
||||
if g:jsx_ext_required && !exists('b:jsx_ext_found') | finish | endif
|
||||
|
||||
" Prologue; load in XML syntax.
|
||||
if exists('b:current_syntax')
|
||||
let s:current_syntax=b:current_syntax
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
syn include @XMLSyntax syntax/xml.vim
|
||||
if exists('s:current_syntax')
|
||||
let b:current_syntax=s:current_syntax
|
||||
endif
|
||||
|
||||
" Highlight JSX regions as XML; recursively match.
|
||||
syn region jsxRegion contains=@XMLSyntax,jsxRegion,jsBlock,javascriptBlock
|
||||
\ start=+<\@<!<\z([a-zA-Z][a-zA-Z0-9:\-.]*\)+
|
||||
\ skip=+<!--\_.\{-}-->+
|
||||
\ end=+</\z1\_\s\{-}>+
|
||||
\ end=+/>+
|
||||
\ keepend
|
||||
\ extend
|
||||
|
||||
" JSX attributes should color as JS. Note the trivial end pattern; we let
|
||||
" jsBlock take care of ending the region.
|
||||
syn region xmlString contained start=+{+ end=++ contains=jsBlock,javascriptBlock
|
||||
|
||||
" Add jsxRegion to the lowest-level JS syntax cluster.
|
||||
syn cluster jsExpression add=jsxRegion
|
||||
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rspec') == -1
|
||||
|
||||
"
|
||||
" An rspec syntax file
|
||||
" Originally from http://www.vim.org/scripts/script.php?script_id=2286
|
||||
@@ -30,3 +32,5 @@ syntax keyword rspecMessageExpectation advise any_args any_number_of_times anyth
|
||||
highlight link rspecMessageExpectation Function
|
||||
|
||||
let b:current_syntax = 'rspec'
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,20 +1,130 @@
|
||||
" This file describes a very basic syntax for TomDoc comments in a Ruby file.
|
||||
"
|
||||
" For more information on TomDoc, check it out here: http://tomdoc.org/
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yard') == -1
|
||||
|
||||
" 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
|
||||
|
||||
syn keyword tomdocKeywords Returns containedin=rubyComment contained
|
||||
syn keyword tomdocKeywords Yields containedin=rubyComment contained
|
||||
syn keyword tomdocKeywords Raises containedin=rubyComment contained
|
||||
syn keyword tomdocKeywords Examples containedin=rubyComment contained
|
||||
syn keyword tomdocKeywords Signature containedin=rubyComment contained
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" 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
|
||||
|
||||
syn match tomdocArguments +\s*[A-Za-z0-9_\-&\*:]*\(\s*- \)+he=e-3 containedin=rubyComment contained
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" 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 match tomdocDescriptions +\s*Public:+he=e-1 containedin=rubyComment contained
|
||||
syn match tomdocDescriptions +\s*Internal:+he=e-1 containedin=rubyComment contained
|
||||
syn match tomdocDescriptions +\s*Deprecated:+he=e-1 containedin=rubyComment contained
|
||||
syn cluster yardDirectives contains=yardGenericDirective,yardAttribute,yardEndGroup,yardGroup,yardMacro,yardMethod,yardParse,yardScope,yardVisibility
|
||||
|
||||
hi default link tomdocDescriptions String
|
||||
hi default link tomdocKeywords String
|
||||
hi default link tomdocArguments HELP
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" 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
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
if !exists('g:rust_conceal') || !has('conceal') || &enc != 'utf-8'
|
||||
finish
|
||||
endif
|
||||
@@ -30,4 +32,4 @@ if !exists('g:rust_conceal_mod_path')
|
||||
hi! link Conceal Operator
|
||||
endif
|
||||
|
||||
setlocal conceallevel=2
|
||||
endif
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
syn cluster sassCssAttributes add=@cssColors
|
||||
@@ -1 +0,0 @@
|
||||
syn cluster stylusCssAttributes add=@cssColors
|
||||
@@ -1,4 +1,13 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" adds support for cleverref package
|
||||
" \Cref, \cref, \cpageref, \labelcref, \labelcpageref
|
||||
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
|
||||
|
||||
" adds support for listings package
|
||||
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>"
|
||||
syn match texInputFile "\\lstinputlisting\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
|
||||
syn match texZone "\\lstinline\s*\(\[.*\]\)\={.\{-}}"
|
||||
|
||||
endif
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
||||
" Maintainer: Mick Koch <mick@kochm.co>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
" License: WTFPL
|
||||
|
||||
@@ -52,3 +54,5 @@ function! coffee#CoffeeSetUpErrorFormat()
|
||||
\%f:%l:%c:\ error:\ %m,
|
||||
\%-G%.%#
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,161 +0,0 @@
|
||||
" ------------------------------------------------------------------------------
|
||||
" Vim omni-completion script
|
||||
" Author: Oscar Hellström
|
||||
" Email: oscar@oscarh.net
|
||||
" Version: 2010-08-10
|
||||
" Contributors: kTT (http://github.com/kTT)
|
||||
" Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
|
||||
" ------------------------------------------------------------------------------
|
||||
|
||||
" Patterns for completions {{{1
|
||||
let s:erlangLocalFuncBeg = '\(\<[0-9A-Za-z_-]*\|\s*\)$'
|
||||
let s:erlangExternalFuncBeg = '\<[0-9A-Za-z_-]\+:[0-9A-Za-z_-]*$'
|
||||
let s:ErlangBlankLine = '^\s*\(%.*\)\?$'
|
||||
let s:erlangCompletionPath = expand('<sfile>:p:h') . '/erlang_completion.erl'
|
||||
|
||||
if !exists('g:erlangCompletionGrep')
|
||||
let g:erlangCompletionGrep = 'grep'
|
||||
endif
|
||||
|
||||
if !exists('g:erlangManSuffix')
|
||||
let g:erlangManSuffix = ''
|
||||
endif
|
||||
|
||||
if !exists('g:erlangManPath')
|
||||
let g:erlangManPath = '/usr/lib/erlang/man'
|
||||
endif
|
||||
|
||||
if !exists('g:erlangCompletionDisplayDoc')
|
||||
let g:erlangCompletionDisplayDoc = 1
|
||||
endif
|
||||
|
||||
" Main function for completion {{{1
|
||||
function! erlangcomplete#Complete(findstart, base)
|
||||
" 0) Init {{{2
|
||||
let lnum = line('.')
|
||||
let column = col('.')
|
||||
let line = strpart(getline('.'), 0, column - 1)
|
||||
|
||||
" 1) First, check if completion is impossible {{{2
|
||||
if line =~ '[^~\\]%'
|
||||
return -1
|
||||
endif
|
||||
|
||||
"echo "line[col - 1]:" . line[column - 1] . " line[col - 2]:" . line[column - 2] . "\n" . line . "\n"
|
||||
|
||||
" 2) Check if the char to the left of us are part of a function call {{{2
|
||||
"
|
||||
" Nothing interesting is written at the char just before the cursor
|
||||
" This means _anything_ could be started here
|
||||
" In this case, keyword completion should probably be used,
|
||||
" for now we'll only try and complete local functions.
|
||||
" TODO: Examine if we can stare Identifiers end complete on them
|
||||
" Is this worth it? Is /completion/ of a "blank" wanted? Can we consider (
|
||||
" interesting and check if we are in a function call etc.?
|
||||
if line[column - 2] !~ '[0-9A-Za-z:_-]'
|
||||
if a:findstart
|
||||
return column
|
||||
else
|
||||
return s:erlangFindLocalFunc(a:base)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
" 3) Function in external module {{{2
|
||||
if line =~ s:erlangExternalFuncBeg
|
||||
let delimiter = match(line, ':[0-9A-Za-z_-]*$') + 1
|
||||
if a:findstart
|
||||
return delimiter
|
||||
else
|
||||
let module = matchstr(line[:-2], '\<\k*\>$')
|
||||
return s:erlangFindExternalFunc(module, a:base)
|
||||
endif
|
||||
endif
|
||||
|
||||
" 4) Local function {{{2
|
||||
if line =~ s:erlangLocalFuncBeg
|
||||
let funcstart = match(line, ':\@<![0-9A-Za-z_-]*$')
|
||||
if a:findstart
|
||||
return funcstart
|
||||
else
|
||||
return s:erlangFindLocalFunc(a:base)
|
||||
endif
|
||||
endif
|
||||
|
||||
" 5) Unhandled situation {{{2
|
||||
if a:findstart
|
||||
return -1
|
||||
else
|
||||
return []
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Auxiliary functions for completion {{{1
|
||||
" Find the next non-blank line {{{2
|
||||
function s:erlangFindNextNonBlank(lnum)
|
||||
let lnum = nextnonblank(a:lnum + 1)
|
||||
let line = getline(lnum)
|
||||
while line =~ s:ErlangBlankLine && 0 != lnum
|
||||
let lnum = nextnonblank(lnum + 1)
|
||||
let line = getline(lnum)
|
||||
endwhile
|
||||
return lnum
|
||||
endfunction
|
||||
|
||||
" vim: foldmethod=marker:
|
||||
" Find external function names {{{2
|
||||
function s:erlangFindExternalFunc(module, base)
|
||||
" If it's a local module, try to compile it
|
||||
if filereadable(a:module . '.erl') && !filereadable(a:module . '.beam')
|
||||
silent execute '!erlc' a:module . '.erl' '>/dev/null' '2>/dev/null'
|
||||
redraw!
|
||||
endif
|
||||
let functions = system(s:erlangCompletionPath . ' ' . a:module)
|
||||
for element in sort(split(functions, '\n'))
|
||||
if match(element, a:base) == 0
|
||||
let function_name = matchstr(element, a:base . '\w\+')
|
||||
let number_of_args = matchstr(element, '\d\+', len(function_name))
|
||||
let number_of_comma = max([number_of_args - 1, 0])
|
||||
let file_path = g:erlangManPath . '/man?/' . a:module . '\.?' . g:erlangManSuffix
|
||||
" [:-2] cutting some weird characters at the end
|
||||
" becouse grep doesn't support multilines, we have to filter
|
||||
" first by .B and next by looking via function name
|
||||
" if someone have better idea, please change it
|
||||
let description = ''
|
||||
" Don't look man pages if the module is present in the current directory
|
||||
if g:erlangCompletionDisplayDoc != 0 && !filereadable(a:module . '.erl')
|
||||
let system_command = g:erlangCompletionGrep . ' -A 1 "\.B" ' . file_path . ' | grep -EZo "\<' .
|
||||
\ function_name . '\>\((\w+, ){' . number_of_comma . '}[^),]*\) -> .*"'
|
||||
let description = system(system_command)
|
||||
let description = description[:-2]
|
||||
endif
|
||||
if description == ''
|
||||
let description = element " if function doesn't have description e.g. lists:rmerge, put rmerge/2 instead
|
||||
endif
|
||||
let field = {'word': function_name . '(', 'abbr': description, 'kind': 'f', 'dup': 1} " always duplicate functions
|
||||
call complete_add(field)
|
||||
endif
|
||||
endfor
|
||||
return []
|
||||
endfunction
|
||||
|
||||
" Find local function names {{{2
|
||||
function s:erlangFindLocalFunc(base)
|
||||
" begin at line 1
|
||||
let lnum = s:erlangFindNextNonBlank(1)
|
||||
if "" == a:base
|
||||
let base = '\w' " used to match against word symbol
|
||||
else
|
||||
let base = a:base
|
||||
endif
|
||||
while 0 != lnum && !complete_check()
|
||||
let line = getline(lnum)
|
||||
let function_name = matchstr(line, '^' . base . '[0-9A-Za-z_-]\+(\@=')
|
||||
if function_name != ""
|
||||
call complete_add(function_name)
|
||||
endif
|
||||
let lnum = s:erlangFindNextNonBlank(lnum)
|
||||
endwhile
|
||||
return []
|
||||
endfunction
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
" Copyright 2011 The Go Authors. All rights reserved.
|
||||
" Use of this source code is governed by a BSD-style
|
||||
" license that can be found in the LICENSE file.
|
||||
"
|
||||
" This file provides a utility function that performs auto-completion of
|
||||
" package names, for use by other commands.
|
||||
|
||||
let s:goos = $GOOS
|
||||
let s:goarch = $GOARCH
|
||||
|
||||
if len(s:goos) == 0
|
||||
if exists('g:golang_goos')
|
||||
let s:goos = g:golang_goos
|
||||
elseif has('win32') || has('win64')
|
||||
let s:goos = 'windows'
|
||||
elseif has('macunix')
|
||||
let s:goos = 'darwin'
|
||||
else
|
||||
let s:goos = '*'
|
||||
endif
|
||||
endif
|
||||
|
||||
if len(s:goarch) == 0
|
||||
if exists('g:golang_goarch')
|
||||
let s:goarch = g:golang_goarch
|
||||
else
|
||||
let s:goarch = '*'
|
||||
endif
|
||||
endif
|
||||
|
||||
function! go#complete#PackageMembers(package, member)
|
||||
silent! let content = system('godoc ' . a:package)
|
||||
if v:shell_error || !len(content)
|
||||
return []
|
||||
endif
|
||||
let lines = filter(split(content, "\n"),"v:val !~ '^\\s\\+$'")
|
||||
try
|
||||
let mx1 = '^\s\+\(\S+\)\s\+=\s\+.*'
|
||||
let mx2 = '^\%(const\|var\|type\|func\) \([A-Z][^ (]\+\).*'
|
||||
let candidates =
|
||||
\ map(filter(copy(lines), 'v:val =~ mx1'), 'substitute(v:val, mx1, "\\1", "")')
|
||||
\ + map(filter(copy(lines), 'v:val =~ mx2'), 'substitute(v:val, mx2, "\\1", "")')
|
||||
return filter(candidates, '!stridx(v:val, a:member)')
|
||||
catch
|
||||
return []
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! go#complete#Package(ArgLead, CmdLine, CursorPos)
|
||||
let dirs = []
|
||||
|
||||
let words = split(a:CmdLine, '\s\+', 1)
|
||||
if len(words) > 2
|
||||
" Complete package members
|
||||
return go#complete#PackageMembers(words[1], words[2])
|
||||
endif
|
||||
|
||||
if executable('go')
|
||||
let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
|
||||
if v:shell_error
|
||||
echomsg '\'go env GOROOT\' failed'
|
||||
endif
|
||||
else
|
||||
let goroot = $GOROOT
|
||||
endif
|
||||
|
||||
if len(goroot) != 0 && isdirectory(goroot)
|
||||
let dirs += [goroot]
|
||||
endif
|
||||
|
||||
let pathsep = ':'
|
||||
if s:goos == 'windows'
|
||||
let pathsep = ';'
|
||||
endif
|
||||
let workspaces = split($GOPATH, pathsep)
|
||||
if workspaces != []
|
||||
let dirs += workspaces
|
||||
endif
|
||||
|
||||
if len(dirs) == 0
|
||||
" should not happen
|
||||
return []
|
||||
endif
|
||||
|
||||
let ret = {}
|
||||
for dir in dirs
|
||||
" this may expand to multiple lines
|
||||
let root = split(expand(dir . '/pkg/' . s:goos . '_' . s:goarch), "\n")
|
||||
call add(root, expand(dir . '/src'))
|
||||
for r in root
|
||||
for i in split(globpath(r, a:ArgLead.'*'), "\n")
|
||||
if isdirectory(i)
|
||||
let i .= '/'
|
||||
elseif i !~ '\.a$'
|
||||
continue
|
||||
endif
|
||||
let i = substitute(substitute(i[len(r)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
||||
let ret[i] = i
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
return sort(keys(ret))
|
||||
endfunction
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Vim completion script
|
||||
" Language: HTML and XHTML
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
@@ -10,6 +12,48 @@ if !exists('g:aria_attributes_complete')
|
||||
let g:aria_attributes_complete = 1
|
||||
endif
|
||||
|
||||
" Distinguish between HTML versions.
|
||||
" To use with other HTML versions add another "elseif" condition to match
|
||||
" proper DOCTYPE.
|
||||
function! htmlcomplete#DetectOmniFlavor()
|
||||
if &filetype == 'xhtml'
|
||||
let b:html_omni_flavor = 'xhtml10s'
|
||||
else
|
||||
let b:html_omni_flavor = 'html5'
|
||||
endif
|
||||
let i = 1
|
||||
let line = ""
|
||||
while i < 10 && i < line("$")
|
||||
let line = getline(i)
|
||||
if line =~ '<!DOCTYPE.*\<DTD '
|
||||
break
|
||||
endif
|
||||
let i += 1
|
||||
endwhile
|
||||
if line =~ '<!DOCTYPE.*\<DTD ' " doctype line found above
|
||||
if line =~ ' HTML 3\.2'
|
||||
let b:html_omni_flavor = 'html32'
|
||||
elseif line =~ ' XHTML 1\.1'
|
||||
let b:html_omni_flavor = 'xhtml11'
|
||||
else " two-step detection with strict/frameset/transitional
|
||||
if line =~ ' XHTML 1\.0'
|
||||
let b:html_omni_flavor = 'xhtml10'
|
||||
elseif line =~ ' HTML 4\.01'
|
||||
let b:html_omni_flavor = 'html401'
|
||||
elseif line =~ ' HTML 4.0\>'
|
||||
let b:html_omni_flavor = 'html40'
|
||||
endif
|
||||
if line =~ '\<Transitional\>'
|
||||
let b:html_omni_flavor .= 't'
|
||||
elseif line =~ '\<Frameset\>'
|
||||
let b:html_omni_flavor .= 'f'
|
||||
else
|
||||
let b:html_omni_flavor .= 's'
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! htmlcomplete#CompleteTags(findstart, base)
|
||||
if a:findstart
|
||||
" locate the start of the word
|
||||
@@ -160,11 +204,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
if exists("b:entitiescompl")
|
||||
unlet! b:entitiescompl
|
||||
|
||||
if !exists("b:html_doctype")
|
||||
call htmlcomplete#CheckDoctype()
|
||||
endif
|
||||
if !exists("b:html_omni")
|
||||
"runtime! autoload/xml/xhtml10s.vim
|
||||
call htmlcomplete#CheckDoctype()
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||
@@ -462,11 +503,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
|
||||
let values = []
|
||||
" Load data {{{
|
||||
if !exists("b:html_doctype")
|
||||
call htmlcomplete#CheckDoctype()
|
||||
endif
|
||||
if !exists("b:html_omni")
|
||||
"runtime! autoload/xml/xhtml10s.vim
|
||||
call htmlcomplete#CheckDoctype()
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||
@@ -545,10 +583,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
let sbase = matchstr(context, '.*\ze\s.*')
|
||||
|
||||
" Load data {{{
|
||||
if !exists("b:html_doctype")
|
||||
call htmlcomplete#CheckDoctype()
|
||||
endif
|
||||
if !exists("b:html_omni")
|
||||
call htmlcomplete#CheckDoctype()
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||
@@ -651,11 +687,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
endif
|
||||
" }}}
|
||||
" Load data {{{
|
||||
if !exists("b:html_doctype")
|
||||
call htmlcomplete#CheckDoctype()
|
||||
endif
|
||||
if !exists("b:html_omni")
|
||||
"runtime! autoload/xml/xhtml10s.vim
|
||||
call htmlcomplete#CheckDoctype()
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||
@@ -763,9 +796,9 @@ endfunction
|
||||
function! htmlcomplete#LoadData() " {{{
|
||||
if !exists("b:html_omni_flavor")
|
||||
if &filetype == 'html'
|
||||
let b:html_omni_flavor = 'html401t'
|
||||
let b:html_omni_flavor = 'html5'
|
||||
else
|
||||
let b:html_omni_flavor = 'xhtml10s'
|
||||
let b:html_omni_flavor = 'html5'
|
||||
endif
|
||||
endif
|
||||
" With that if we still have bloated memory but create new buffer
|
||||
@@ -785,61 +818,8 @@ function! htmlcomplete#CheckDoctype() " {{{
|
||||
else
|
||||
let old_flavor = ''
|
||||
endif
|
||||
let i = 1
|
||||
while i < 10 && i < line("$")
|
||||
let line = getline(i)
|
||||
if line =~ '<!DOCTYPE.*\<DTD HTML 3\.2'
|
||||
let b:html_omni_flavor = 'html32'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Transitional'
|
||||
let b:html_omni_flavor = 'html40t'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Frameset'
|
||||
let b:html_omni_flavor = 'html40f'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0'
|
||||
let b:html_omni_flavor = 'html40s'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Transitional'
|
||||
let b:html_omni_flavor = 'html401t'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Frameset'
|
||||
let b:html_omni_flavor = 'html401f'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01'
|
||||
let b:html_omni_flavor = 'html401s'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Transitional'
|
||||
let b:html_omni_flavor = 'xhtml10t'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Frameset'
|
||||
let b:html_omni_flavor = 'xhtml10f'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Strict'
|
||||
let b:html_omni_flavor = 'xhtml10s'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.1'
|
||||
let b:html_omni_flavor = 'xhtml11'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
elseif line =~ '<!DOCTYPE html'
|
||||
let b:html_omni_flavor = 'html5'
|
||||
let b:html_doctype = 1
|
||||
break
|
||||
endif
|
||||
let i += 1
|
||||
endwhile
|
||||
if !exists("b:html_doctype")
|
||||
call htmlcomplete#DetectOmniFlavor()
|
||||
if !exists('b:html_omni_flavor')
|
||||
return
|
||||
else
|
||||
" Tie g:xmldata with b:html_omni this way we need to sourca data file only
|
||||
@@ -859,3 +839,5 @@ function! htmlcomplete#CheckDoctype() " {{{
|
||||
endfunction
|
||||
" }}}
|
||||
" vim:set foldmethod=marker:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim completion script
|
||||
" Language: Ruby
|
||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||
@@ -704,7 +706,9 @@ class VimRubyCompletion
|
||||
cv = eval("self.class.constants")
|
||||
vartype = get_var_type( receiver )
|
||||
dprint "vartype: %s" % vartype
|
||||
if vartype != ''
|
||||
|
||||
invalid_vartype = ['', "gets"]
|
||||
if !invalid_vartype.include?(vartype)
|
||||
load_buffer_class( vartype )
|
||||
|
||||
begin
|
||||
@@ -732,7 +736,7 @@ class VimRubyCompletion
|
||||
methods.concat m.instance_methods(false)
|
||||
}
|
||||
end
|
||||
variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0
|
||||
variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype)
|
||||
|
||||
when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
|
||||
message = $1
|
||||
@@ -829,3 +833,5 @@ call s:DefRuby()
|
||||
|
||||
|
||||
" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl:
|
||||
|
||||
endif
|
||||
|
||||
229
autoload/rust.vim
Normal file
229
autoload/rust.vim
Normal file
@@ -0,0 +1,229 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
" Author: Kevin Ballard
|
||||
" Description: Helper functions for Rust commands/mappings
|
||||
" Last Modified: May 27, 2014
|
||||
|
||||
" Jump {{{1
|
||||
|
||||
function! 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>Jump_" . a:function . "()"
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
let &foldenable = foldenable
|
||||
endfunction
|
||||
|
||||
function! s:Jump_Back()
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{
|
||||
endfunction
|
||||
|
||||
function! s:Jump_Forward()
|
||||
normal! j0
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{%
|
||||
call search('{')
|
||||
endfunction
|
||||
|
||||
" Run {{{1
|
||||
|
||||
function! rust#Run(bang, args)
|
||||
if a:bang
|
||||
let idx = index(a:args, '--')
|
||||
if idx != -1
|
||||
let rustc_args = idx == 0 ? [] : a:args[:idx-1]
|
||||
let args = a:args[idx+1:]
|
||||
else
|
||||
let rustc_args = a:args
|
||||
let args = []
|
||||
endif
|
||||
else
|
||||
let rustc_args = []
|
||||
let args = a:args
|
||||
endif
|
||||
|
||||
let b:rust_last_rustc_args = rustc_args
|
||||
let b:rust_last_args = args
|
||||
|
||||
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||
endfunction
|
||||
|
||||
function! s:Run(path, rustc_args, args)
|
||||
try
|
||||
let exepath = tempname()
|
||||
if has('win32')
|
||||
let exepath .= '.exe'
|
||||
endif
|
||||
|
||||
let rustc_args = [a:path, '-o', exepath] + a:rustc_args
|
||||
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let output = system(shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
||||
if output != ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||
endif
|
||||
finally
|
||||
if exists("exepath")
|
||||
silent! call delete(exepath)
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" Expand {{{1
|
||||
|
||||
function! rust#Expand(bang, args)
|
||||
if a:bang && !empty(a:args)
|
||||
let pretty = a:args[0]
|
||||
let args = a:args[1:]
|
||||
else
|
||||
let pretty = "expanded"
|
||||
let args = a:args
|
||||
endif
|
||||
call s:WithPath(function("s:Expand"), pretty, args)
|
||||
endfunction
|
||||
|
||||
function! s:Expand(path, pretty, args)
|
||||
try
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let args = [a:path, '--pretty', a:pretty] + a:args
|
||||
let output = system(shellescape(rustc) . " " . join(map(args, "shellescape(v:val)")))
|
||||
if v:shell_error
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
new
|
||||
silent put =output
|
||||
1
|
||||
d
|
||||
setl filetype=rust
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! rust#CompleteExpand(lead, line, pos)
|
||||
if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
|
||||
" first argument and it has a !
|
||||
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph="]
|
||||
if !empty(a:lead)
|
||||
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
||||
endif
|
||||
return list
|
||||
endif
|
||||
|
||||
return glob(escape(a:lead, "*?[") . '*', 0, 1)
|
||||
endfunction
|
||||
|
||||
" Emit {{{1
|
||||
|
||||
function! rust#Emit(type, args)
|
||||
call s:WithPath(function("s:Emit"), a:type, a:args)
|
||||
endfunction
|
||||
|
||||
function! s:Emit(path, type, args)
|
||||
try
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let args = [a:path, '--emit', a:type, '-o', '-'] + a:args
|
||||
let output = system(shellescape(rustc) . " " . join(map(args, "shellescape(v:val)")))
|
||||
if v:shell_error
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
new
|
||||
silent put =output
|
||||
1
|
||||
d
|
||||
if a:type == "ir"
|
||||
setl filetype=llvm
|
||||
elseif a:type == "asm"
|
||||
setl filetype=asm
|
||||
endif
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" Utility functions {{{1
|
||||
|
||||
function! s:WithPath(func, ...)
|
||||
try
|
||||
let save_write = &write
|
||||
set write
|
||||
let path = expand('%')
|
||||
let pathisempty = empty(path)
|
||||
if pathisempty || !save_write
|
||||
" use a temporary file named 'unnamed.rs' inside a temporary
|
||||
" directory. This produces better error messages
|
||||
let tmpdir = tempname()
|
||||
call mkdir(tmpdir)
|
||||
|
||||
let save_cwd = getcwd()
|
||||
silent exe 'lcd' fnameescape(tmpdir)
|
||||
|
||||
let path = 'unnamed.rs'
|
||||
|
||||
let save_mod = &mod
|
||||
set nomod
|
||||
|
||||
silent exe 'keepalt write! ' . fnameescape(path)
|
||||
if pathisempty
|
||||
silent keepalt 0file
|
||||
endif
|
||||
else
|
||||
update
|
||||
endif
|
||||
|
||||
call call(a:func, [path] + a:000)
|
||||
finally
|
||||
if exists("save_mod") | let &mod = save_mod | endif
|
||||
if exists("save_write") | let &write = save_write | endif
|
||||
if exists("save_cwd") | silent exe 'lcd' fnameescape(save_cwd) | endif
|
||||
if exists("tmpdir") | silent call s:RmDir(tmpdir) | endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! rust#AppendCmdLine(text)
|
||||
call setcmdpos(getcmdpos())
|
||||
let cmd = getcmdline() . a:text
|
||||
return cmd
|
||||
endfunction
|
||||
|
||||
function! s:RmDir(path)
|
||||
" sanity check; make sure it's not empty, /, or $HOME
|
||||
if empty(a:path)
|
||||
echoerr 'Attempted to delete empty path'
|
||||
return 0
|
||||
elseif a:path == '/' || a:path == $HOME
|
||||
echoerr 'Attempted to delete protected path: ' . a:path
|
||||
return 0
|
||||
endif
|
||||
silent exe "!rm -rf " . shellescape(a:path)
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
" vim: set noet sw=4 ts=4:
|
||||
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Vim completion for WAI-ARIA data file
|
||||
" Language: HTML + WAI-ARIA
|
||||
" Maintainer: othree <othree@gmail.com>
|
||||
@@ -230,3 +232,5 @@ let g:xmldata_aria = {
|
||||
\ 'default_role': default_role,
|
||||
\ 'vimariaattrinfo': aria_attributes_value
|
||||
\ }
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Vim completion for HTML5 data file
|
||||
" Language: HTML5
|
||||
" Maintainer: othree <othree@gmail.com>
|
||||
@@ -324,7 +326,7 @@ endif
|
||||
|
||||
" Ref: http://dev.w3.org/html5/markup/
|
||||
" Version: Draft 05 April 2011
|
||||
let phrasing_elements = ['a', 'em', 'strong', 'small', 'mark', 'abbr', 'dfn', 'i', 'b', 'u', 'code', 'var', 'samp', 'kbd', 'sup', 'sub', 'q', 'cite', 'span', 'bdo', 'bdi', 'br', 'wbr', 'ins', 'del', 'img', 'embed', 'object', 'iframe', 'map', 'area', 'script', 'noscript', 'ruby', 'video', 'audio', 'input', 'textarea', 'select', 'button', 'label', 'output', 'datalist', 'keygen', 'progress', 'command', 'canvas', 'time', 'meter', 'data', 'content', 'shadow']
|
||||
let phrasing_elements = ['a', 'em', 'strong', 'small', 'mark', 'abbr', 'dfn', 'i', 'b', 'u', 'code', 'var', 'samp', 'kbd', 'sup', 'sub', 'q', 'cite', 'span', 'bdo', 'bdi', 'br', 'wbr', 'ins', 'del', 'img', 'picture', 'embed', 'object', 'iframe', 'map', 'area', 'script', 'noscript', 'ruby', 'video', 'audio', 'input', 'textarea', 'select', 'button', 'label', 'output', 'datalist', 'keygen', 'progress', 'command', 'canvas', 'time', 'meter', 'data', 'content', 'shadow']
|
||||
|
||||
let metadata_elements = ['link', 'style', 'meta', 'script', 'noscript', 'command']
|
||||
|
||||
@@ -342,7 +344,7 @@ let abutton_dec = 'details\\|embed\\|iframe\\|keygen\\|label\\|menu\\|select\\|t
|
||||
|
||||
let g:xmldata_html5 = {
|
||||
\ 'vimxmlentities': ['AElig', 'Aacute', 'Acirc', 'Agrave', 'Alpha', 'Aring', 'Atilde', 'Auml', 'Beta', 'Ccedil', 'Chi', 'Dagger', 'Delta', 'ETH', 'Eacute', 'Ecirc', 'Egrave', 'Epsilon', 'Eta', 'Euml', 'Gamma', 'Iacute', 'Icirc', 'Igrave', 'Iota', 'Iuml', 'Kappa', 'Lambda', 'Mu', 'Ntilde', 'Nu', 'OElig', 'Oacute', 'Ocirc', 'Ograve', 'Omega', 'Omicron', 'Oslash', 'Otilde', 'Ouml', 'Phi', 'Pi', 'Prime', 'Psi', 'Rho', 'Scaron', 'Sigma', 'THORN', 'Tau', 'Theta', 'Uacute', 'Ucirc', 'Ugrave', 'Upsilon', 'Uuml', 'Xi', 'Yacute', 'Yuml', 'Zeta', 'aacute', 'acirc', 'acute', 'aelig', 'agrave', 'alefsym', 'alpha', 'amp', 'and', 'ang', 'apos', 'aring', 'asymp', 'atilde', 'auml', 'bdquo', 'beta', 'brvbar', 'bull', 'cap', 'ccedil', 'cedil', 'cent', 'chi', 'circ', 'clubs', 'cong', 'copy', 'crarr', 'cup', 'curren', 'dArr', 'dagger', 'darr', 'deg', 'delta', 'diams', 'divide', 'eacute', 'ecirc', 'egrave', 'empty', 'emsp', 'ensp', 'epsilon', 'equiv', 'eta', 'eth', 'euml', 'euro', 'exist', 'fnof', 'forall', 'frac12', 'frac14', 'frac34', 'frasl', 'gamma', 'ge', 'gt', 'hArr', 'harr', 'hearts', 'hellip', 'iacute', 'icirc', 'iexcl', 'igrave', 'image', 'infin', 'int', 'iota', 'iquest', 'isin', 'iuml', 'kappa', 'lArr', 'lambda', 'lang', 'laquo', 'larr', 'lceil', 'ldquo', 'le', 'lfloor', 'lowast', 'loz', 'lrm', 'lsaquo', 'lsquo', 'lt', 'macr', 'mdash', 'micro', 'middot', 'minus', 'mu', 'nabla', 'nbsp', 'ndash', 'ne', 'ni', 'not', 'notin', 'nsub', 'ntilde', 'nu', 'oacute', 'ocirc', 'oelig', 'ograve', 'oline', 'omega', 'omicron', 'oplus', 'or', 'ordf', 'ordm', 'oslash', 'otilde', 'otimes', 'ouml', 'para', 'part', 'permil', 'perp', 'phi', 'pi', 'piv', 'plusmn', 'pound', 'prime', 'prod', 'prop', 'psi', 'quot', 'rArr', 'radic', 'rang', 'raquo', 'rarr', 'rceil', 'rdquo', 'real', 'reg', 'rfloor', 'rho', 'rlm', 'rsaquo', 'rsquo', 'sbquo', 'scaron', 'sdot', 'sect', 'shy', 'sigma', 'sigmaf', 'sim', 'spades', 'sub', 'sube', 'sum', 'sup', 'sup1', 'sup2', 'sup3', 'supe', 'szlig', 'tau', 'there4', 'theta', 'thetasym', 'thinsp', 'thorn', 'tilde', 'times', 'trade', 'uArr', 'uacute', 'uarr', 'ucirc', 'ugrave', 'uml', 'upsih', 'upsilon', 'uuml', 'weierp', 'xi', 'yacute', 'yen', 'yuml', 'zeta', 'zwj', 'zwnj'],
|
||||
\ 'vimxmlroot': ['html'],
|
||||
\ 'vimxmlroot': ['html', 'head', 'body'] + flow_elements,
|
||||
\ 'a': [
|
||||
\ filter(copy(flow_elements), "!(v:val =~ '". abutton_dec ."')"),
|
||||
\ extend(copy(global_attributes), {'name': [], 'href': [], 'target': [], 'rel': linktypes, 'hreflang': lang_tag, 'media': [], 'type': []})
|
||||
@@ -545,7 +547,7 @@ let g:xmldata_html5 = {
|
||||
\ ],
|
||||
\ 'iframe': [
|
||||
\ [],
|
||||
\ extend(copy(global_attributes), {'src': [], 'name': [], 'width': [], 'height': [], 'sandbox': ['allow-same-origin', 'allow-forms', 'allow-scripts'], 'seamless': ['seamless', '']})
|
||||
\ extend(copy(global_attributes), {'src': [], 'srcdoc': [], 'name': [], 'width': [], 'height': [], 'sandbox': ['allow-same-origin', 'allow-forms', 'allow-scripts'], 'seamless': ['seamless', '']})
|
||||
\ ],
|
||||
\ 'img': [
|
||||
\ [],
|
||||
@@ -553,7 +555,7 @@ let g:xmldata_html5 = {
|
||||
\ ],
|
||||
\ 'input': [
|
||||
\ [],
|
||||
\ extend(copy(global_attributes), {'type': ['text', 'password', 'checkbox', 'radio', 'button', 'submit', 'reset', 'file', 'hidden', 'image', 'datetime', 'datetime-local', 'date', 'month', 'time', 'week', 'number', 'range', 'email', 'url', 'search', 'tel', 'coloe'], 'name': [], 'disabled': ['disabled', ''], 'form': [], 'maxlength': [], 'readonly': ['readonly', ''], 'size': [], 'value': [], 'autocomplete': ['on', 'off'], 'autofocus': ['autofocus', ''], 'list': [], 'pattern': [], 'required': ['required', ''], 'placeholder': [], 'checked': ['checked'], 'accept': [], 'multiple': ['multiple', ''], 'alt': [], 'src': [], 'height': [], 'width': [], 'min': [], 'max': [], 'step': [], 'formenctype': ['application/x-www-form-urlencoded', 'multipart/form-data', 'text/plain'], 'formmethod': ['get', 'post', 'put', 'delete'], 'formtarget': [], 'formnovalidate': ['formnovalidate', '']})
|
||||
\ extend(copy(global_attributes), {'type': ['text', 'password', 'checkbox', 'radio', 'button', 'submit', 'reset', 'file', 'hidden', 'image', 'datetime', 'datetime-local', 'date', 'month', 'time', 'week', 'number', 'range', 'email', 'url', 'search', 'tel', 'color'], 'name': [], 'disabled': ['disabled', ''], 'form': [], 'maxlength': [], 'readonly': ['readonly', ''], 'size': [], 'value': [], 'autocomplete': ['on', 'off'], 'autofocus': ['autofocus', ''], 'list': [], 'pattern': [], 'required': ['required', ''], 'placeholder': [], 'checked': ['checked'], 'accept': [], 'multiple': ['multiple', ''], 'alt': [], 'src': [], 'height': [], 'width': [], 'min': [], 'max': [], 'step': [], 'formenctype': ['application/x-www-form-urlencoded', 'multipart/form-data', 'text/plain'], 'formmethod': ['get', 'post', 'put', 'delete'], 'formtarget': [], 'formnovalidate': ['formnovalidate', '']})
|
||||
\ ],
|
||||
\ 'ins': [
|
||||
\ flow_elements,
|
||||
@@ -601,7 +603,7 @@ let g:xmldata_html5 = {
|
||||
\ ],
|
||||
\ 'meta': [
|
||||
\ [],
|
||||
\ extend(copy(global_attributes), {'name': [], 'http-equiv': ['refresh', 'default-style', 'content-type'], 'content': [], 'charset': charset})
|
||||
\ extend(copy(global_attributes), {'name': ['application-name', 'author', 'description', 'generator', 'referrer', 'creator', 'googlebot', 'publisher', 'robots', 'slurp', 'viewport', 'theme-color'], 'http-equiv': ['refresh', 'default-style', 'content-type'], 'content': [], 'charset': charset})
|
||||
\ ],
|
||||
\ 'meter': [
|
||||
\ phrasing_elements,
|
||||
@@ -643,6 +645,10 @@ let g:xmldata_html5 = {
|
||||
\ [],
|
||||
\ extend(copy(global_attributes), {'name': [], 'value': []})
|
||||
\ ],
|
||||
\ 'picture': [
|
||||
\ flow_elements + ['source'],
|
||||
\ global_attributes
|
||||
\ ],
|
||||
\ 'pre': [
|
||||
\ phrasing_elements,
|
||||
\ global_attributes
|
||||
@@ -655,6 +661,10 @@ let g:xmldata_html5 = {
|
||||
\ phrasing_elements,
|
||||
\ extend(copy(global_attributes), {'cite': []})
|
||||
\ ],
|
||||
\ 'rb': [
|
||||
\ phrasing_elements,
|
||||
\ global_attributes
|
||||
\ ],
|
||||
\ 'rp': [
|
||||
\ phrasing_elements,
|
||||
\ global_attributes
|
||||
@@ -663,10 +673,14 @@ let g:xmldata_html5 = {
|
||||
\ phrasing_elements,
|
||||
\ global_attributes
|
||||
\ ],
|
||||
\ 'ruby': [
|
||||
\ 'rtc': [
|
||||
\ phrasing_elements + ['rp', 'rt'],
|
||||
\ global_attributes
|
||||
\ ],
|
||||
\ 'ruby': [
|
||||
\ phrasing_elements + ['rb', 'rp', 'rt', 'rtc'],
|
||||
\ global_attributes
|
||||
\ ],
|
||||
\ 'samp': [
|
||||
\ phrasing_elements,
|
||||
\ global_attributes
|
||||
@@ -693,7 +707,7 @@ let g:xmldata_html5 = {
|
||||
\ ],
|
||||
\ 'source': [
|
||||
\ [],
|
||||
\ extend(copy(global_attributes), {'src': [], 'type': [], 'media': []})
|
||||
\ extend(copy(global_attributes), {'src': [], 'type': [], 'media': [], 'srcset': [], 'sizes': []})
|
||||
\ ],
|
||||
\ 'span': [
|
||||
\ phrasing_elements,
|
||||
@@ -811,3 +825,5 @@ let g:xmldata_html5 = {
|
||||
\ 'wbr': ['/>', ''],
|
||||
\ },
|
||||
\ }
|
||||
|
||||
endif
|
||||
|
||||
94
build
94
build
@@ -3,13 +3,22 @@
|
||||
set -E
|
||||
|
||||
DIRS="syntax indent compiler autoload ftplugin ftdetect after/syntax after/indent after/ftplugin after/ftdetect"
|
||||
DIRS_BASIC="syntax indent ftdetect after/syntax after/indent after/ftdetect"
|
||||
DIRS_ALL="syntax indent compiler autoload ftplugin ftdetect after"
|
||||
|
||||
OUTPUT=""
|
||||
|
||||
output() {
|
||||
OUTPUT="$OUTPUT$1"
|
||||
printf -- "$1"
|
||||
}
|
||||
|
||||
download() {
|
||||
for pack in $1; do
|
||||
path="$(printf "$pack" | cut -d ':' -f 2)"
|
||||
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
|
||||
rm -rf "$dir"
|
||||
(git clone -q --recursive "https://github.com/$path.git" "$dir" && printf '.') &
|
||||
(mkdir -p "$dir" && curl --silent -L https://codeload.github.com/$path/tar.gz/master | tar -zx -C "$dir" --strip 1 && printf '.') &
|
||||
done
|
||||
|
||||
wait
|
||||
@@ -21,30 +30,33 @@ extract() {
|
||||
name="$(printf "$pack" | cut -d ':' -f 1)"
|
||||
path="$(printf "$pack" | cut -d ':' -f 2)"
|
||||
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
|
||||
printf -- "- [$name](https://github.com/$path) ("
|
||||
directories="DIRS$(printf "$pack" | cut -d ':' -f 3)"
|
||||
subtree="$(printf "$pack" | cut -d ':' -f 4)"
|
||||
output "- [$name](https://github.com/$path) ("
|
||||
|
||||
subdirs=""
|
||||
for subdir in $DIRS; do
|
||||
if [ -d "$dir/$subdir" ]; then
|
||||
for subdir in ${!directories}; do
|
||||
if [ -d "${dir}${subtree:-/}${subdir}" ]; then
|
||||
base="$(basename "$subdir")"
|
||||
if [[ "$subdirs" != *"$base"* ]]; then
|
||||
subdirs="$subdirs, $base"
|
||||
fi
|
||||
|
||||
copy_dir "$dir" "$subdir"
|
||||
copy_dir "${dir}${subtree}" "$subdir" "$name"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
printf "${subdirs##, })\n"
|
||||
output "${subdirs##, })\n"
|
||||
done
|
||||
|
||||
for pack in $1; do
|
||||
name="$(printf "$pack" | cut -d ':' -f 1)"
|
||||
path="$(printf "$pack" | cut -d ':' -f 2)"
|
||||
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
|
||||
subtree="$(printf "$pack" | cut -d ':' -f 4)"
|
||||
|
||||
if [ -d "$dir/plugin" ]; then
|
||||
if [ -d "$dir${subtree:-/}plugin" ]; then
|
||||
printf "Possible error (plugin directory exists): $path\n"
|
||||
fi
|
||||
done
|
||||
@@ -54,7 +66,10 @@ copy_dir() {
|
||||
for file in $(find "$1/$2" -name '*.vim'); do
|
||||
file_path="$(dirname "${file##$1/}")"
|
||||
mkdir -p "$file_path"
|
||||
cp $file $file_path/
|
||||
touch "$file_path/$(basename "$file")"
|
||||
|
||||
# Use comma instead of / to handle cases like c/c++
|
||||
sed -e "s,%%PACK%%,$3," -e "/%%CONTENT%%/{r $file" -e "d;}" plugin_guard.vim.template >> $file_path/$(basename "$file")
|
||||
done
|
||||
}
|
||||
|
||||
@@ -64,63 +79,102 @@ concat_ftdetect() {
|
||||
mv tmp/polyglot.vim ftdetect/
|
||||
}
|
||||
|
||||
update_readme() {
|
||||
OLD_README="$(cat README.md)"
|
||||
|
||||
ed README.md <<- EOF
|
||||
/Language packs
|
||||
+2kb
|
||||
/##
|
||||
'b,-2c
|
||||
$(printf -- "$OUTPUT")
|
||||
.
|
||||
w
|
||||
q
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
PACKS="
|
||||
arduino:sudar/vim-arduino-syntax
|
||||
blade:xsbeats/vim-blade
|
||||
c++11:octol/vim-cpp-enhanced-highlight
|
||||
c/c++:vim-jp/cpp-vim
|
||||
clojure:guns/vim-clojure-static
|
||||
coffee-script:kchmck/vim-coffee-script
|
||||
css-color:ap/vim-css-color
|
||||
csv:chrisbra/csv.vim
|
||||
cjsx:mtscout6/vim-cjsx
|
||||
css:JulesWang/css.vim
|
||||
cucumber:tpope/vim-cucumber
|
||||
dockerfile:honza/dockerfile.vim
|
||||
elixir:elixir-lang/vim-elixir
|
||||
erlang:oscarh/vimerl
|
||||
emberscript:heartsentwined/vim-ember-script
|
||||
emblem:heartsentwined/vim-emblem
|
||||
erlang:hcs42/vim-erlang-runtime
|
||||
git:tpope/vim-git
|
||||
go:jnwhiteh/vim-golang
|
||||
glsl:tikhomirov/vim-glsl
|
||||
go:fatih/vim-go:_BASIC
|
||||
groovy:vim-scripts/groovy.vim
|
||||
haml:tpope/vim-haml
|
||||
handlebars:nono/vim-handlebars
|
||||
haskell:travitch/hasksyn
|
||||
handlebars:mustache/vim-mustache-handlebars
|
||||
haskell:raichoo/haskell-vim
|
||||
haxe:yaymukund/vim-haxe
|
||||
html5:othree/html5.vim
|
||||
jade:digitaltoad/vim-jade
|
||||
javascript:pangloss/vim-javascript
|
||||
json:leshill/vim-json
|
||||
jasmine:glanotte/vim-jasmine
|
||||
javascript:sheerun/yajs.vim
|
||||
julia:dcjones/julia-minimalist-vim
|
||||
json:sheerun/vim-json
|
||||
jst:briancollins/vim-jst
|
||||
jsx:mxw/vim-jsx:_ALL
|
||||
kotlin:udalov/kotlin-vim
|
||||
latex:LaTeX-Box-Team/LaTeX-Box
|
||||
less:groenewege/vim-less
|
||||
liquid:tpope/vim-liquid
|
||||
markdown:tpope/vim-markdown
|
||||
nginx:mutewinter/nginx.vim
|
||||
ocaml:jrk/vim-ocaml
|
||||
octave:vim-scripts/octave.vim--
|
||||
opencl:petRUShka/vim-opencl
|
||||
perl:vim-perl/vim-perl
|
||||
php:StanAngeloff/php.vim
|
||||
puppet:ajf/puppet-vim
|
||||
puppet:rodjek/vim-puppet
|
||||
powershell:Persistent13/vim-ps1
|
||||
protobuf:uarun/vim-protobuf
|
||||
python:vim-scripts/python.vim--Vasiliev
|
||||
python:mitsuhiko/vim-python-combined
|
||||
r-lang:vim-scripts/R.vim
|
||||
ragel:jneen/ragel.vim
|
||||
rspec:sheerun/rspec.vim
|
||||
ruby:vim-ruby/vim-ruby
|
||||
rust:wting/rust.vim
|
||||
sbt:derekwyatt/vim-sbt
|
||||
scala:derekwyatt/vim-scala
|
||||
slim:slim-template/vim-slim
|
||||
solidity:ethereum/vim-solidity
|
||||
stylus:wavded/vim-stylus
|
||||
systemd:kurayama/systemd-vim-syntax
|
||||
swift:toyamarinyon/vim-swift
|
||||
textile:timcharper/textile.vim
|
||||
tmux:acustodioo/vim-tmux
|
||||
tmux:tejr/vim-tmux
|
||||
tomdoc:duwanis/tomdoc.vim
|
||||
typescript:leafgarland/typescript-vim
|
||||
vbnet:vim-scripts/vbnet.vim
|
||||
thrift:solarnz/thrift.vim
|
||||
toml:cespare/vim-toml
|
||||
twig:beyondwords/vim-twig
|
||||
xls:vim-scripts/XSLT-syntax
|
||||
yard:sheerun/vim-yardoc
|
||||
vala:tkztmk/vim-vala
|
||||
vm:lepture/vim-velocity
|
||||
"
|
||||
|
||||
rm -rf tmp
|
||||
rm -rf $DIRS
|
||||
rm -rf $DIRS_ALL
|
||||
mkdir tmp
|
||||
|
||||
printf "Downloading packs..."
|
||||
download "$PACKS"
|
||||
extract "$PACKS"
|
||||
concat_ftdetect
|
||||
update_readme
|
||||
|
||||
rm -rf tmp
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
||||
" Maintainer: Mick Koch <mick@kochm.co>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
" License: WTFPL
|
||||
|
||||
@@ -13,3 +15,5 @@ call coffee#CoffeeSetUpVariables()
|
||||
exec 'CompilerSet makeprg=' . escape(g:coffee_cake . ' ' .
|
||||
\ g:coffee_cake_options . ' $*', ' ')
|
||||
call coffee#CoffeeSetUpErrorFormat()
|
||||
|
||||
endif
|
||||
|
||||
69
compiler/cargo.vim
Normal file
69
compiler/cargo.vim
Normal file
@@ -0,0 +1,69 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Cargo Compiler
|
||||
" Maintainer: Damien Radtke <damienradtke@gmail.com>
|
||||
" Latest Revision: 2014 Sep 24
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
runtime compiler/rustc.vim
|
||||
let current_compiler = "cargo"
|
||||
|
||||
if exists(':CompilerSet') != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if exists('g:cargo_makeprg_params')
|
||||
execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*'
|
||||
else
|
||||
CompilerSet makeprg=cargo\ $*
|
||||
endif
|
||||
|
||||
" Allow a configurable global Cargo.toml name. This makes it easy to
|
||||
" support variations like 'cargo.toml'.
|
||||
let s:cargo_manifest_name = get(g:, 'cargo_manifest_name', 'Cargo.toml')
|
||||
|
||||
function! s:is_absolute(path)
|
||||
return a:path[0] == '/' || a:path =~ '[A-Z]\+:'
|
||||
endfunction
|
||||
|
||||
let s:local_manifest = findfile(s:cargo_manifest_name, '.;')
|
||||
if s:local_manifest != ''
|
||||
let s:local_manifest = fnamemodify(s:local_manifest, ':p:h').'/'
|
||||
augroup cargo
|
||||
au!
|
||||
au QuickfixCmdPost make call s:FixPaths()
|
||||
augroup END
|
||||
|
||||
" FixPaths() is run after Cargo, and is used to change the file paths
|
||||
" to be relative to the current directory instead of Cargo.toml.
|
||||
function! s:FixPaths()
|
||||
let qflist = getqflist()
|
||||
let manifest = s:local_manifest
|
||||
for qf in qflist
|
||||
if !qf.valid
|
||||
let m = matchlist(qf.text, '(file://\(.*\))$')
|
||||
if !empty(m)
|
||||
let manifest = m[1].'/'
|
||||
" Manually strip another slash if needed; usually just an
|
||||
" issue on Windows.
|
||||
if manifest =~ '^/[A-Z]\+:/'
|
||||
let manifest = manifest[1:]
|
||||
endif
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
let filename = bufname(qf.bufnr)
|
||||
if s:is_absolute(filename)
|
||||
continue
|
||||
endif
|
||||
let qf.filename = simplify(manifest.filename)
|
||||
call remove(qf, 'bufnr')
|
||||
endfor
|
||||
call setqflist(qflist, 'r')
|
||||
endfunction
|
||||
endif
|
||||
|
||||
endif
|
||||
@@ -1,5 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
||||
" Maintainer: Mick Koch <mick@kochm.co>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
" License: WTFPL
|
||||
|
||||
@@ -75,8 +77,10 @@ augroup CoffeeUpdateMakePrg
|
||||
|
||||
" Set autocmd locally if compiler was set locally.
|
||||
if &l:makeprg =~ s:pat
|
||||
autocmd BufFilePost,BufWritePost <buffer> call s:UpdateMakePrg()
|
||||
autocmd BufWritePre,BufFilePost <buffer> call s:UpdateMakePrg()
|
||||
else
|
||||
autocmd BufFilePost,BufWritePost call s:UpdateMakePrg()
|
||||
autocmd BufWritePre,BufFilePost call s:UpdateMakePrg()
|
||||
endif
|
||||
augroup END
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -19,7 +21,7 @@ CompilerSet makeprg=cucumber
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%W%m\ (Cucumber::Undefined),
|
||||
\%E%m\ (%.%#),
|
||||
\%E%m\ (%\\S%#),
|
||||
\%Z%f:%l,
|
||||
\%Z%f:%l:%.%#
|
||||
|
||||
@@ -27,3 +29,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
" Erlang compiler file
|
||||
" Language: Erlang
|
||||
" Maintainer: Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
|
||||
" URL: http://ktototaki.info
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "erlang"
|
||||
|
||||
if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
if !exists('g:erlangCheckFile')
|
||||
let g:erlangCheckFile = "~/.vim/compiler/erlang_check_file.erl"
|
||||
endif
|
||||
|
||||
if !exists('g:erlangHighlightErrors')
|
||||
let g:erlangHighlightErrors = 0
|
||||
endif
|
||||
|
||||
let b:error_list = {}
|
||||
let b:is_showing_msg = 0
|
||||
|
||||
function! HighlightErlangErrors()
|
||||
if match(getline(1), "#!.*escript") != -1
|
||||
setlocal makeprg=escript\ -s\ %
|
||||
else
|
||||
execute "setlocal makeprg=" . g:erlangCheckFile . "\\ \%"
|
||||
endif
|
||||
silent make!
|
||||
call s:clear_matches()
|
||||
for error in getqflist()
|
||||
let item = {}
|
||||
let item['lnum'] = error.lnum
|
||||
let item['msg'] = error.text
|
||||
let b:error_list[error.lnum] = item
|
||||
call matchadd('SpellBad', "\\%" . error.lnum . "l")
|
||||
endfor
|
||||
if len(getqflist())
|
||||
redraw!
|
||||
endif
|
||||
call s:show_msg()
|
||||
setlocal makeprg=erlc\ %
|
||||
endfunction
|
||||
|
||||
function! s:show_msg()
|
||||
let pos = getpos(".")
|
||||
if has_key(b:error_list, pos[1])
|
||||
let item = get(b:error_list, pos[1])
|
||||
echo item.msg
|
||||
let b:is_showing_msg = 1
|
||||
else
|
||||
if exists("b:is_showing_msg") && b:is_showing_msg == 1
|
||||
echo
|
||||
let b:is_showing_msg = 0
|
||||
endif
|
||||
endif
|
||||
endf
|
||||
|
||||
function! s:clear_matches()
|
||||
call clearmatches()
|
||||
let b:error_list = {}
|
||||
if exists("b:is_showing_msg") && b:is_showing_msg == 1
|
||||
echo
|
||||
let b:is_showing_msg = 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
CompilerSet makeprg=erlc\ %
|
||||
CompilerSet errorformat=%f:%l:\ %tarning:\ %m,%E%f:%l:\ %m
|
||||
|
||||
if g:erlangHighlightErrors
|
||||
autocmd BufLeave *.erl call s:clear_matches()
|
||||
autocmd BufEnter *.erl call s:clear_matches()
|
||||
autocmd BufWritePost *.erl call HighlightErlangErrors()
|
||||
autocmd CursorHold *.erl call s:show_msg()
|
||||
autocmd CursorMoved *.erl call s:show_msg()
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: eRuby
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
@@ -37,3 +39,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: ExUnit
|
||||
" Maintainer: Rein Henrichs <rein.henrichs@gmail.com>
|
||||
@@ -22,3 +24,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haml') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -15,7 +17,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=haml\ -c
|
||||
CompilerSet makeprg=haml
|
||||
|
||||
CompilerSet errorformat=
|
||||
\Haml\ %trror\ on\ line\ %l:\ %m,
|
||||
@@ -26,3 +28,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: Rake
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -27,9 +29,15 @@ CompilerSet errorformat=
|
||||
\%\\s%#[%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:,
|
||||
\%m\ [%f:%l]:
|
||||
\%m\ [%f:%l]:,
|
||||
\%+Erake\ aborted!,
|
||||
\%+EDon't\ know\ how\ to\ build\ task\ %.%#,
|
||||
\%+Einvalid\ option:%.%#,
|
||||
\%+Irake\ %\\S%\\+%\\s%\\+#\ %.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: RSpec
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -31,3 +33,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: Ruby
|
||||
" Function: Syntax check and/or error reporting
|
||||
@@ -43,3 +45,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: Test::Unit - Ruby Unit Testing Framework
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
@@ -17,6 +19,8 @@ let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=testrb
|
||||
" CompilerSet makeprg=ruby\ -Itest
|
||||
" CompilerSet makeprg=m
|
||||
|
||||
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
||||
\%C%m\ [%f:%l]:,
|
||||
@@ -31,3 +35,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Rust Compiler
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
@@ -31,3 +33,5 @@ CompilerSet errorformat=
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haml') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -15,7 +17,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=sass\ -c
|
||||
CompilerSet makeprg=sass
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||
@@ -28,3 +30,5 @@ let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
|
||||
endif
|
||||
|
||||
34
compiler/sbt.vim
Normal file
34
compiler/sbt.vim
Normal file
@@ -0,0 +1,34 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Language: Scala SBT (http://www.scala-sbt.org/)
|
||||
" Maintainer: Derek Wyatt
|
||||
" URL: https://github.com/derekwyatt/vim-scala
|
||||
" License: Apache 2
|
||||
" ----------------------------------------------------------------------------
|
||||
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
let current_compiler = 'sbt'
|
||||
|
||||
if exists(':CompilerSet') != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=sbt\ -Dsbt.log.noformat=true\ compile
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%E\ %#[error]\ %f:%l:\ %m,%C\ %#[error]\ %p^,%-C%.%#,%Z,
|
||||
\%W\ %#[warn]\ %f:%l:\ %m,%C\ %#[warn]\ %p^,%-C%.%#,%Z,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2 ts=8 et:
|
||||
|
||||
endif
|
||||
@@ -1,8 +1,20 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "typescript"
|
||||
|
||||
CompilerSet makeprg=tsc\ $*\ %
|
||||
if !exists("g:typescript_compiler_binary")
|
||||
let g:typescript_compiler_binary = "tsc"
|
||||
endif
|
||||
|
||||
if !exists("g:typescript_compiler_options")
|
||||
let g:typescript_compiler_options = ""
|
||||
endif
|
||||
|
||||
let &l:makeprg = g:typescript_compiler_binary . ' ' . g:typescript_compiler_options . ' $* %'
|
||||
|
||||
CompilerSet errorformat=%+A\ %#%f\ %#(%l\\\,%c):\ %m,%C%m
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'arduino') == -1
|
||||
|
||||
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
||||
au BufNewFile,BufRead *.clj,*.cljs,*.edn setf clojure
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'blade') == -1
|
||||
|
||||
au BufNewFile,BufRead *.blade.php set filetype=blade
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cjsx') == -1
|
||||
|
||||
augroup CJSX
|
||||
au!
|
||||
autocmd BufNewFile,BufRead *.csx,*.cjsx set filetype=coffee
|
||||
augroup END
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.clj,*.cljs,*.edn,*.cljx,*.cljc setlocal filetype=clojure
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
|
||||
autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
|
||||
autocmd BufNewFile,BufRead *.coffeekup,*.ck set filetype=coffee
|
||||
@@ -10,20 +29,49 @@ function! s:DetectCoffee()
|
||||
endif
|
||||
endfunction
|
||||
autocmd BufNewFile,BufRead * call s:DetectCoffee()
|
||||
au BufRead,BufNewFile *.csv,*.dat,*.tsv,*.tab set filetype=csv
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -1
|
||||
|
||||
autocmd BufNewFile,BufReadPost *.feature,*.story set filetype=cucumber
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dockerfile') == -1
|
||||
|
||||
au BufNewFile,BufRead Dockerfile set filetype=dockerfile
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||
|
||||
au BufRead,BufNewFile *.eex set filetype=eelixir
|
||||
au FileType eelixir setl sw=2 sts=2 et iskeyword+=!,?
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||
|
||||
au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
||||
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 *.git/config,.gitconfig,.gitmodules set ft=gitconfig
|
||||
function! s:DetectElixir()
|
||||
if getline(1) =~ '^#!.*\<elixir\>'
|
||||
set filetype=elixir
|
||||
endif
|
||||
endfunction
|
||||
autocmd BufNewFile,BufRead * call s:DetectElixir()
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'emberscript') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.em set filetype=ember-script
|
||||
autocmd FileType ember-script set tabstop=2|set shiftwidth=2|set expandtab
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'emblem') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.emblem set filetype=emblem
|
||||
autocmd FileType emblem set tabstop=2|set shiftwidth=2|set expandtab
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.git/{,modules/**/,worktrees/*/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG set ft=gitcommit
|
||||
autocmd BufNewFile,BufRead *.git/config,.gitconfig,gitconfig,.gitmodules set ft=gitconfig
|
||||
autocmd BufNewFile,BufRead */.config/git/config set ft=gitconfig
|
||||
autocmd BufNewFile,BufRead *.git/modules/**/config set ft=gitconfig
|
||||
autocmd BufNewFile,BufRead git-rebase-todo set ft=gitrebase
|
||||
autocmd BufNewFile,BufRead .msg.[0-9]*
|
||||
\ if getline(1) =~ '^From.*# This line is ignored.$' |
|
||||
\ set ft=gitsendemail |
|
||||
\ endif
|
||||
autocmd BufNewFile,BufRead .gitsendemail.* set ft=gitsendemail
|
||||
autocmd BufNewFile,BufRead *.git/**
|
||||
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
||||
\ set ft=git |
|
||||
@@ -32,6 +80,17 @@ autocmd BufNewFile,BufRead,StdinReadPost *
|
||||
\ if getline(1) =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$' |
|
||||
\ set ft=git |
|
||||
\ endif
|
||||
autocmd BufNewFile,BufRead *
|
||||
\ if getline(1) =~ '^From \x\{40\} Mon Sep 17 00:00:00 2001$' |
|
||||
\ set filetype=gitsendemail |
|
||||
\ endif
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1
|
||||
|
||||
autocmd! BufNewFile,BufRead *.glsl,*.geom,*.vert,*.frag,*.gsh,*.vsh,*.fsh,*.vs,*.fs,*.gs,*.tcs,*.tes set filetype=glsl
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
|
||||
|
||||
let s:current_fileformats = ''
|
||||
let s:current_fileencodings = ''
|
||||
function! s:gofiletype_pre()
|
||||
@@ -44,84 +103,264 @@ function! s:gofiletype_post()
|
||||
let &g:fileformats = s:current_fileformats
|
||||
let &g:fileencodings = s:current_fileencodings
|
||||
endfunction
|
||||
au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix
|
||||
au BufNewFile *.go setfiletype go | setlocal fileencoding=utf-8 fileformat=unix
|
||||
au BufRead *.go call s:gofiletype_pre()
|
||||
au BufReadPost *.go call s:gofiletype_post()
|
||||
autocmd BufNewFile,BufRead *.haml,*.hamlbars setf haml
|
||||
au BufRead,BufNewFile *.tmpl set filetype=gohtmltmpl
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haml') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.haml,*.hamlbars,*.hamlc setf haml
|
||||
autocmd BufNewFile,BufRead *.sass setf sass
|
||||
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
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haxe') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.hx setf haxe
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jade') == -1
|
||||
|
||||
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
||||
au BufNewFile,BufRead *.js setf javascript
|
||||
au BufNewFile,BufRead *.jsm setf javascript
|
||||
au BufNewFile,BufRead Jakefile setf javascript
|
||||
fun! s:SelectJavascript()
|
||||
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
|
||||
set ft=javascript
|
||||
endif
|
||||
endfun
|
||||
au BufNewFile,BufRead * call s:SelectJavascript()
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jasmine') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript syntax=jasmine
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'json') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.json set filetype=json
|
||||
augroup json_autocmd
|
||||
autocmd!
|
||||
autocmd FileType json setlocal autoindent
|
||||
autocmd FileType json setlocal formatoptions=tcq2l
|
||||
autocmd FileType json setlocal foldmethod=syntax
|
||||
augroup END
|
||||
autocmd BufNewFile,BufRead *.jsonp set filetype=json
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jst') == -1
|
||||
|
||||
au BufNewFile,BufRead *.ejs set filetype=jst
|
||||
au BufNewFile,BufRead *.jst set filetype=jst
|
||||
au BufNewFile,BufRead *.djs set filetype=jst
|
||||
au BufNewFile,BufRead *.hamljs set filetype=jst
|
||||
au BufNewFile,BufRead *.ect set filetype=jst
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
|
||||
|
||||
au BufRead,BufNewFile *.jl let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp<"
|
||||
au BufRead,BufNewFile *.jl set filetype=julia
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.kt setfiletype kotlin
|
||||
autocmd BufNewFile,BufRead *.kts setfiletype kotlin
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.less setf less
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'liquid') == -1
|
||||
|
||||
au BufNewFile,BufRead *.liquid set ft=liquid
|
||||
au BufNewFile,BufRead */_layouts/*.html,*/_includes/*.html set ft=liquid
|
||||
au BufNewFile,BufRead *.html,*.xml,*.textile
|
||||
\ if getline(1) == '---' | set ft=liquid | endif
|
||||
au BufNewFile,BufRead *.markdown,*.mkd,*.mkdn,*.md
|
||||
\ if getline(1) == '---' |
|
||||
\ let b:liquid_subtype = 'markdown' |
|
||||
\ set ft=liquid |
|
||||
\ endif
|
||||
au BufNewFile,BufRead */templates/**.liquid,*/layout/**.liquid,*/snippets/**.liquid
|
||||
\ let b:liquid_subtype = 'html' |
|
||||
\ set ft=liquid |
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn
|
||||
\ if &ft =~# '^\%(conf\|modula2\)$' |
|
||||
\ set ft=markdown |
|
||||
\ else |
|
||||
\ setf markdown |
|
||||
\ endif
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1
|
||||
|
||||
autocmd BufRead *.html
|
||||
\ if getline(1) =~ '^\(%\|<[%&].*>\)' |
|
||||
\ set filetype=mason |
|
||||
\ endif
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'handlebars') == -1
|
||||
|
||||
if has("autocmd")
|
||||
au BufNewFile,BufRead *.mustache,*.hogan,*.hulk,*.hjs set filetype=html.mustache syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
|
||||
au BufNewFile,BufRead *.handlebars,*.hbs set filetype=html.handlebars syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
|
||||
endif
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nginx') == -1
|
||||
|
||||
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'opencl') == -1
|
||||
|
||||
au BufRead,BufNewFile *.cl set filetype=opencl
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1
|
||||
|
||||
function! s:DetectPerl6()
|
||||
let line_no = 1
|
||||
let eof = line('$')
|
||||
let in_pod = 0
|
||||
while line_no <= eof
|
||||
let line = getline(line_no)
|
||||
let line_no = line_no + 1
|
||||
if line =~ '^=\w'
|
||||
let in_pod = 1
|
||||
elseif line =~ '^=\%(end\|cut\)'
|
||||
let in_pod = 0
|
||||
elseif !in_pod
|
||||
let line = substitute(line, '#.*', '', '')
|
||||
if line =~ '^\s*$'
|
||||
continue
|
||||
endif
|
||||
if line =~ '^\s*\%(use\s\+\)\=v6\%(\.\d\%(\.\d\)\=\)\=;'
|
||||
set filetype=perl6 " we matched a 'use v6' declaration
|
||||
elseif line =~ '^\s*\%(\%(my\|our\)\s\+\)\=\%(unit\s\+\)\=\(module\|class\|role\|enum\|grammar\)'
|
||||
set filetype=perl6 " we found a class, role, module, enum, or grammar declaration
|
||||
endif
|
||||
break " we either found what we needed, or we found a non-POD, non-comment,
|
||||
" non-Perl 6 indicating line, so bail out
|
||||
endif
|
||||
endwhile
|
||||
endfunction
|
||||
autocmd BufReadPost *.pl,*.pm,*.t call s:DetectPerl6()
|
||||
autocmd BufNew,BufNewFile,BufRead *.nqp setf perl6
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'protobuf') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
||||
au BufRead,BufNewFile *.pp set filetype=puppet
|
||||
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec set filetype=ruby
|
||||
au BufNewFile,BufRead *.builder,*.rxml,*.rjs set filetype=ruby
|
||||
au BufNewFile,BufRead [rR]akefile,*.rake set filetype=ruby
|
||||
au BufNewFile,BufRead [rR]antfile,*.rant set filetype=ruby
|
||||
au BufNewFile,BufRead .irbrc,irbrc set filetype=ruby
|
||||
au BufNewFile,BufRead .pryrc set filetype=ruby
|
||||
au BufNewFile,BufRead *.ru set filetype=ruby
|
||||
au BufNewFile,BufRead Capfile set filetype=ruby
|
||||
au BufNewFile,BufRead Gemfile set filetype=ruby
|
||||
au BufNewFile,BufRead Guardfile,.Guardfile set filetype=ruby
|
||||
au BufNewFile,BufRead Cheffile set filetype=ruby
|
||||
au BufNewFile,BufRead Berksfile set filetype=ruby
|
||||
au BufNewFile,BufRead [vV]agrantfile set filetype=ruby
|
||||
au BufNewFile,BufRead .autotest set filetype=ruby
|
||||
au BufNewFile,BufRead *.erb,*.rhtml set filetype=eruby
|
||||
au BufNewFile,BufRead [tT]horfile,*.thor set filetype=ruby
|
||||
au BufNewFile,BufRead *.rabl set filetype=ruby
|
||||
au BufNewFile,BufRead *.jbuilder set filetype=ruby
|
||||
au BufNewFile,BufRead Puppetfile set filetype=ruby
|
||||
au BufNewFile,BufRead [Bb]uildfile set filetype=ruby
|
||||
au BufNewFile,BufRead Appraisals set filetype=ruby
|
||||
au BufRead,BufNewFile *.rs,*.rc set filetype=rust
|
||||
au BufRead,BufNewFile *.sbt set filetype=sbt
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
|
||||
|
||||
au BufNewFile,BufRead *.ps1 set ft=ps1
|
||||
au BufNewFile,BufRead *.psd1 set ft=ps1
|
||||
au BufNewFile,BufRead *.psm1 set ft=ps1
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
|
||||
|
||||
au BufNewFile,BufRead *.ps1xml set ft=ps1xml
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
|
||||
|
||||
au! BufRead,BufNewFile *.pp setfiletype puppet
|
||||
au! BufRead,BufNewFile Puppetfile setfiletype ruby
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
function! s:setf(filetype) abort
|
||||
if &filetype !=# a:filetype
|
||||
let &filetype = a:filetype
|
||||
endif
|
||||
endfunction
|
||||
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec call s:setf('ruby')
|
||||
au BufNewFile,BufRead *.builder,*.rxml,*.rjs,*.ruby call s:setf('ruby')
|
||||
au BufNewFile,BufRead [rR]akefile,*.rake call s:setf('ruby')
|
||||
au BufNewFile,BufRead [rR]antfile,*.rant call s:setf('ruby')
|
||||
au BufNewFile,BufRead .irbrc,irbrc call s:setf('ruby')
|
||||
au BufNewFile,BufRead .pryrc call s:setf('ruby')
|
||||
au BufNewFile,BufRead *.ru call s:setf('ruby')
|
||||
au BufNewFile,BufRead Capfile,*.cap call s:setf('ruby')
|
||||
au BufNewFile,BufRead Gemfile call s:setf('ruby')
|
||||
au BufNewFile,BufRead Guardfile,.Guardfile call s:setf('ruby')
|
||||
au BufNewFile,BufRead Cheffile call s:setf('ruby')
|
||||
au BufNewFile,BufRead Berksfile call s:setf('ruby')
|
||||
au BufNewFile,BufRead [vV]agrantfile call s:setf('ruby')
|
||||
au BufNewFile,BufRead .autotest call s:setf('ruby')
|
||||
au BufNewFile,BufRead *.erb,*.rhtml call s:setf('eruby')
|
||||
au BufNewFile,BufRead [tT]horfile,*.thor call s:setf('ruby')
|
||||
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 BufNewFile,BufRead [rR]outefile call s:setf('ruby')
|
||||
au BufNewFile,BufRead .simplecov set filetype=ruby
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
au BufRead,BufNewFile *.rs set filetype=rust
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sbt') == -1
|
||||
|
||||
au BufRead,BufNewFile *.sbt set filetype=sbt.scala
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
|
||||
|
||||
fun! s:DetectScala()
|
||||
if getline(1) == '#!/usr/bin/env scala'
|
||||
if getline(1) =~# '^#!\(/usr\)\?/bin/env\s\+scalas\?'
|
||||
set filetype=scala
|
||||
endif
|
||||
endfun
|
||||
au BufRead,BufNewFile *.scala,*.sbt set filetype=scala
|
||||
au BufRead,BufNewFile *.scala set filetype=scala
|
||||
au BufRead,BufNewFile * call s:DetectScala()
|
||||
autocmd BufNewFile,BufRead *.slim setf slim
|
||||
au BufRead,BufNewFile *.sbt setfiletype sbt.scala
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'slim') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.slim set filetype=slim
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'solidity') == -1
|
||||
|
||||
au BufNewFile,BufRead *.sol setf solidity
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'stylus') == -1
|
||||
|
||||
autocmd BufNewFile,BufReadPost *.styl set filetype=stylus
|
||||
autocmd BufNewFile,BufReadPost *.stylus set filetype=stylus
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.swift set filetype=swift
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'systemd') == -1
|
||||
|
||||
au BufNewFile,BufRead *.automount set filetype=systemd
|
||||
au BufNewFile,BufRead *.mount set filetype=systemd
|
||||
au BufNewFile,BufRead *.path set filetype=systemd
|
||||
au BufNewFile,BufRead *.service set filetype=systemd
|
||||
au BufNewFile,BufRead *.socket set filetype=systemd
|
||||
au BufNewFile,BufRead *.swap set filetype=systemd
|
||||
au BufNewFile,BufRead *.target set filetype=systemd
|
||||
au BufNewFile,BufRead *.timer set filetype=systemd
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'textile') == -1
|
||||
|
||||
au BufRead,BufNewFile *.textile set filetype=textile
|
||||
autocmd BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'thrift') == -1
|
||||
|
||||
au BufNewFile,BufRead *.thrift setlocal filetype=thrift
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tmux') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead {.,}tmux.conf{.*,} setlocal filetype=tmux
|
||||
autocmd BufNewFile,BufRead {.,}tmux.conf{.*,} setlocal commentstring=#\ %s
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'toml') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.toml set filetype=toml
|
||||
autocmd BufNewFile,BufRead Cargo.lock set filetype=toml
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'twig') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.twig set filetype=twig
|
||||
autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
|
||||
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
|
||||
autocmd BufNewFile,BufRead *.ts,*.tsx setlocal filetype=typescript
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
|
||||
|
||||
autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
||||
au BufRead,BufNewFile *.vala,*.vapi setfiletype vala
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vm') == -1
|
||||
|
||||
au BufRead,BufNewFile *.vm set ft=velocity syntax=velocity
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
@@ -15,7 +17,7 @@ let b:did_ftplugin = 1
|
||||
let s:cpo_save = &cpo
|
||||
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+=?,-,*,!,+,/,=,<,>,.,:,$
|
||||
|
||||
@@ -23,14 +25,29 @@ setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
||||
" of user-defined def* definitions.
|
||||
setlocal define=\\v[(/]def(ault)@!\\S*
|
||||
|
||||
" Remove 't' from 'formatoptions' to avoid auto-wrapping code. The '+=croql'
|
||||
" is standard ftplugin boilerplate, although it is arguably intrusive.
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
" Remove 't' from 'formatoptions' to avoid auto-wrapping code.
|
||||
setlocal formatoptions-=t
|
||||
|
||||
" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
|
||||
setlocal comments=n:;
|
||||
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
|
||||
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
|
||||
" 'completefunc' so that the user has some form of completion available when
|
||||
@@ -78,3 +95,5 @@ let &cpo = s:cpo_save
|
||||
unlet! s:cpo_save s:setting s:dir
|
||||
|
||||
" vim:sts=8:sw=8:ts=8:noet
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
" Language: CoffeeScript
|
||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
||||
" Maintainer: Mick Koch <mick@kochm.co>
|
||||
" URL: http://github.com/kchmck/vim-coffee-script
|
||||
" License: WTFPL
|
||||
|
||||
@@ -13,6 +15,7 @@ call coffee#CoffeeSetUpVariables()
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal omnifunc=javascriptcomplete#CompleteJS
|
||||
setlocal suffixesadd+=coffee
|
||||
|
||||
" Create custom augroups.
|
||||
augroup CoffeeBufUpdate | augroup END
|
||||
@@ -330,7 +333,7 @@ function! s:CoffeeLint(startline, endline, bang, args)
|
||||
endif
|
||||
|
||||
let output = system(g:coffee_linter .
|
||||
\ ' -s --csv' .
|
||||
\ ' -s --reporter csv' .
|
||||
\ ' ' . b:coffee_litcoffee .
|
||||
\ ' ' . g:coffee_lint_options .
|
||||
\ ' ' . a:args .
|
||||
@@ -394,11 +397,13 @@ if !exists('b:coffee_run_buf')
|
||||
call s:CoffeeRunResetVars()
|
||||
endif
|
||||
|
||||
command! -range=% -bar -nargs=* -complete=customlist,s:CoffeeComplete
|
||||
command! -buffer -range=% -bar -nargs=* -complete=customlist,s:CoffeeComplete
|
||||
\ CoffeeCompile call s:CoffeeCompile(<line1>, <line2>, <q-args>)
|
||||
command! -bar -nargs=* -complete=customlist,s:CoffeeComplete
|
||||
command! -buffer -bar -nargs=* -complete=customlist,s:CoffeeComplete
|
||||
\ CoffeeWatch call s:CoffeeWatch(<q-args>)
|
||||
command! -range=% -bar -nargs=* CoffeeRun
|
||||
command! -buffer -range=% -bar -nargs=* CoffeeRun
|
||||
\ call s:CoffeeRun(<line1>, <line2>, <q-args>)
|
||||
command! -range=% -bang -bar -nargs=* CoffeeLint
|
||||
command! -buffer -range=% -bang -bar -nargs=* CoffeeLint
|
||||
\ call s:CoffeeLint(<line1>, <line2>, <q-bang>, <q-args>)
|
||||
|
||||
endif
|
||||
|
||||
2507
ftplugin/csv.vim
2507
ftplugin/csv.vim
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,9 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Cucumber
|
||||
" 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
|
||||
if (exists("b:did_ftplugin"))
|
||||
@@ -9,6 +11,9 @@ if (exists("b:did_ftplugin"))
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal omnifunc=CucumberComplete
|
||||
@@ -16,27 +21,23 @@ setlocal omnifunc=CucumberComplete
|
||||
let b:undo_ftplugin = "setl fo< com< cms< ofu<"
|
||||
|
||||
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
|
||||
if !exists("b:cucumber_steps_glob")
|
||||
let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb'
|
||||
endif
|
||||
|
||||
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-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><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>
|
||||
cnoremap <SID>foldopen <Bar>if &foldopen =~# 'tag'<Bar>exe 'norm! zv'<Bar>endif
|
||||
nnoremap <silent> <script> <buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
nnoremap <silent> <script> <buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
let b:undo_ftplugin .=
|
||||
\ "|sil! nunmap <buffer> <C-]>" .
|
||||
\ "|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><C-D>" .
|
||||
\ "|sil! nunmap <buffer> <C-W>}" .
|
||||
\ "|sil! nunmap <buffer> [d" .
|
||||
\ "|sil! nunmap <buffer> ]d"
|
||||
endif
|
||||
@@ -56,7 +57,7 @@ endfunction
|
||||
function! s:allsteps()
|
||||
let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
|
||||
let steps = []
|
||||
for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
|
||||
for file in split(glob(b:cucumber_steps_glob),"\n")
|
||||
let lines = readfile(file)
|
||||
let num = 0
|
||||
for line in lines
|
||||
@@ -145,4 +146,9 @@ function! CucumberComplete(findstart,base) abort
|
||||
return sort(steps)
|
||||
endfunction
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" vim:set sts=2 sw=2:
|
||||
|
||||
endif
|
||||
|
||||
95
ftplugin/eelixir.vim
Normal file
95
ftplugin/eelixir.vim
Normal file
@@ -0,0 +1,95 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Embedded Elixir
|
||||
" URL: https://github.com/elixir-lang/vim-elixir
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
let s:undo_ftplugin = ""
|
||||
let s:browsefilter = "All Files (*.*)\t*.*\n"
|
||||
let s:match_words = ""
|
||||
|
||||
if !exists("g:eelixir_default_subtype")
|
||||
let g:eelixir_default_subtype = "html"
|
||||
endif
|
||||
|
||||
if !exists("b:eelixir_subtype")
|
||||
let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
|
||||
let b:eelixir_subtype = matchstr(s:lines,'eelixir_subtype=\zs\w\+')
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^eex\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eex\|\.eelixir\)\+$','',''),'\.\zs\w\+$')
|
||||
endif
|
||||
if b:eelixir_subtype == 'ex'
|
||||
let b:eelixir_subtype = 'elixir'
|
||||
elseif b:eelixir_subtype == 'exs'
|
||||
let b:eelixir_subtype = 'elixir'
|
||||
elseif b:eelixir_subtype == 'yml'
|
||||
let b:eelixir_subtype = 'yaml'
|
||||
elseif b:eelixir_subtype == 'js'
|
||||
let b:eelixir_subtype = 'javascript'
|
||||
elseif b:eelixir_subtype == 'txt'
|
||||
" Conventional; not a real file type
|
||||
let b:eelixir_subtype = 'text'
|
||||
elseif b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = g:eelixir_default_subtype
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("b:eelixir_subtype") && b:eelixir_subtype != ''
|
||||
exe "runtime! ftplugin/".b:eelixir_subtype.".vim ftplugin/".b:eelixir_subtype."_*.vim ftplugin/".b:eelixir_subtype."/*.vim"
|
||||
else
|
||||
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
endif
|
||||
unlet! b:did_ftplugin
|
||||
|
||||
" Override our defaults if these were set by an included ftplugin.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin
|
||||
unlet b:undo_ftplugin
|
||||
endif
|
||||
if exists("b:browsefilter")
|
||||
let s:browsefilter = b:browsefilter
|
||||
unlet b:browsefilter
|
||||
endif
|
||||
if exists("b:match_words")
|
||||
let s:match_words = b:match_words
|
||||
unlet b:match_words
|
||||
endif
|
||||
|
||||
runtime! ftplugin/elixir.vim ftplugin/elixir_*.vim ftplugin/elixir/*.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Combine the new set of values with those previously included.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
|
||||
endif
|
||||
if exists ("b:browsefilter")
|
||||
let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
|
||||
endif
|
||||
if exists("b:match_words")
|
||||
let s:match_words = b:match_words . ',' . s:match_words
|
||||
endif
|
||||
|
||||
" Load the combined list of match_words for matchit.vim
|
||||
if exists("loaded_matchit")
|
||||
let b:match_words = s:match_words
|
||||
endif
|
||||
|
||||
setlocal comments=:<%#
|
||||
setlocal commentstring=<%#\ %s\ %>
|
||||
|
||||
let b:undo_ftplugin = "setl cms< "
|
||||
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Elixir
|
||||
" Maintainer: Carlos Galdino <carloshsgaldino@gmail.com>
|
||||
@@ -23,3 +25,5 @@ endif
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
endif
|
||||
|
||||
21
ftplugin/ember-script.vim
Normal file
21
ftplugin/ember-script.vim
Normal file
@@ -0,0 +1,21 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'emberscript') == -1
|
||||
|
||||
" 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
|
||||
|
||||
endif
|
||||
21
ftplugin/emblem.vim
Normal file
21
ftplugin/emblem.vim
Normal file
@@ -0,0 +1,21 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'emblem') == -1
|
||||
|
||||
" Language: emblem
|
||||
" Maintainer: heartsentwined <heartsentwined@cogito-lab.com>
|
||||
" URL: http://github.com/heartsentwined/vim-emblem
|
||||
" Version: 1.2.0
|
||||
" Last Change: 2013 Apr 22
|
||||
" License: GPL-3.0
|
||||
|
||||
setlocal tabstop=2
|
||||
setlocal softtabstop=2
|
||||
setlocal shiftwidth=2
|
||||
setlocal smarttab
|
||||
setlocal expandtab
|
||||
setlocal smartindent
|
||||
|
||||
setlocal formatoptions=q
|
||||
setlocal comments=:/
|
||||
setlocal commentstring=/\ %s
|
||||
|
||||
endif
|
||||
@@ -1,151 +0,0 @@
|
||||
" Vim ftplugin file
|
||||
" Language: Erlang
|
||||
" Maintainer: Oscar Hellström <oscar@oscarh.net>
|
||||
" URL: http://personal.oscarh.net
|
||||
" Contributor: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
|
||||
" Version: 2010-09-03
|
||||
" ------------------------------------------------------------------------------
|
||||
" Usage:
|
||||
"
|
||||
" To enable folding put in your vimrc:
|
||||
" set foldenable
|
||||
"
|
||||
" Folding will make only one fold for a complete function, even though it has
|
||||
" more than one function head and body.
|
||||
"
|
||||
" To change this behaviour put in your vimrc file:
|
||||
" let g:erlangFoldSplitFunction=1
|
||||
"
|
||||
" ------------------------------------------------------------------------------
|
||||
" Plugin init
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load any other
|
||||
let b:did_ftplugin=1
|
||||
|
||||
if exists('s:doneFunctionDefinitions')
|
||||
call s:SetErlangOptions()
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:doneFunctionDefinitions=1
|
||||
|
||||
" Local settings
|
||||
function s:SetErlangOptions()
|
||||
compiler erlang
|
||||
if version >= 700
|
||||
setlocal omnifunc=erlangcomplete#Complete
|
||||
endif
|
||||
|
||||
setlocal foldmethod=expr
|
||||
setlocal foldexpr=GetErlangFold(v:lnum)
|
||||
setlocal foldtext=ErlangFoldText()
|
||||
endfunction
|
||||
|
||||
" Define folding functions
|
||||
if !exists("*GetErlangFold")
|
||||
" Folding params
|
||||
let s:ErlangFunBegin = '^\a\w*(.*$'
|
||||
let s:ErlangFunEnd = '^[^%]*\.\s*\(%.*\)\?$'
|
||||
let s:ErlangBlankLine = '^\s*\(%.*\)\?$'
|
||||
|
||||
" Auxiliary fold functions
|
||||
function s:GetNextNonBlank(lnum)
|
||||
let lnum = nextnonblank(a:lnum + 1)
|
||||
let line = getline(lnum)
|
||||
while line =~ s:ErlangBlankLine && 0 != lnum
|
||||
let lnum = nextnonblank(lnum + 1)
|
||||
let line = getline(lnum)
|
||||
endwhile
|
||||
return lnum
|
||||
endfunction
|
||||
|
||||
function s:GetFunName(str)
|
||||
return matchstr(a:str, '^\a\w*(\@=')
|
||||
endfunction
|
||||
|
||||
function s:GetFunArgs(str, lnum)
|
||||
let str = a:str
|
||||
let lnum = a:lnum
|
||||
while str !~ '->\s*\(%.*\)\?$'
|
||||
let lnum = s:GetNextNonBlank(lnum)
|
||||
if 0 == lnum " EOF
|
||||
return ""
|
||||
endif
|
||||
let str .= getline(lnum)
|
||||
endwhile
|
||||
return matchstr(str,
|
||||
\ '\(^(\s*\)\@<=.*\(\s*)\(\s\+when\s\+.*\)\?\s\+->\s*\(%.*\)\?$\)\@=')
|
||||
endfunction
|
||||
|
||||
function s:CountFunArgs(arguments)
|
||||
let pos = 0
|
||||
let ac = 0 " arg count
|
||||
let arguments = a:arguments
|
||||
|
||||
" Change list / tuples into just one A(rgument)
|
||||
let erlangTuple = '{\([A-Za-z_,|=\-\[\]]\|\s\)*}'
|
||||
let erlangList = '\[\([A-Za-z_,|=\-{}]\|\s\)*\]'
|
||||
|
||||
" FIXME: Use searchpair?
|
||||
while arguments =~ erlangTuple
|
||||
let arguments = substitute(arguments, erlangTuple, "A", "g")
|
||||
endwhile
|
||||
" FIXME: Use searchpair?
|
||||
while arguments =~ erlangList
|
||||
let arguments = substitute(arguments, erlangList, "A", "g")
|
||||
endwhile
|
||||
|
||||
let len = strlen(arguments)
|
||||
while pos < len && pos > -1
|
||||
let ac += 1
|
||||
let pos = matchend(arguments, ',\s*', pos)
|
||||
endwhile
|
||||
return ac
|
||||
endfunction
|
||||
|
||||
" Main fold function
|
||||
function GetErlangFold(lnum)
|
||||
let lnum = a:lnum
|
||||
let line = getline(lnum)
|
||||
|
||||
if line =~ s:ErlangFunEnd
|
||||
return '<1'
|
||||
endif
|
||||
|
||||
if line =~ s:ErlangFunBegin && foldlevel(lnum - 1) == 1
|
||||
if exists("g:erlangFoldSplitFunction") && g:erlangFoldSplitFunction
|
||||
return '>1'
|
||||
else
|
||||
return '1'
|
||||
endif
|
||||
endif
|
||||
|
||||
if line =~ s:ErlangFunBegin
|
||||
return '>1'
|
||||
endif
|
||||
|
||||
return '='
|
||||
endfunction
|
||||
|
||||
" Erlang fold description (foldtext function)
|
||||
function ErlangFoldText()
|
||||
let foldlen = v:foldend - v:foldstart
|
||||
if 1 < foldlen
|
||||
let lines = "lines"
|
||||
else
|
||||
let lines = "line"
|
||||
endif
|
||||
let line = getline(v:foldstart)
|
||||
let name = s:GetFunName(line)
|
||||
let arguments = s:GetFunArgs(strpart(line, strlen(name)), v:foldstart)
|
||||
let argcount = s:CountFunArgs(arguments)
|
||||
let retval = "+" . v:folddashes . " " . name . "/" . argcount
|
||||
let retval .= " (" . foldlen . " " . lines . ")"
|
||||
return retval
|
||||
endfunction
|
||||
endif
|
||||
|
||||
call s:SetErlangOptions()
|
||||
@@ -1,295 +0,0 @@
|
||||
" Erlang refactor file
|
||||
" Language: Erlang
|
||||
" Maintainer: Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
|
||||
" URL: http://ktototaki.info
|
||||
|
||||
if exists("b:did_ftplugin_erlang")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load any other
|
||||
let b:did_ftplugin_erlang=1
|
||||
|
||||
if !exists('g:erlangRefactoring') || g:erlangRefactoring == 0
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists('g:erlangWranglerPath')
|
||||
let g:erlangWranglerPath = '/usr/share/wrangler/'
|
||||
endif
|
||||
|
||||
if glob(g:erlangWranglerPath) == ""
|
||||
call confirm("Wrong path to wrangler dir")
|
||||
finish
|
||||
endif
|
||||
|
||||
autocmd VimLeavePre * call StopWranglerServer()
|
||||
|
||||
let s:erlangServerName = "wrangler_vim"
|
||||
|
||||
" Starting background erlang session with wrangler on
|
||||
function! StartWranglerServer()
|
||||
let wranglerEbinDir = g:erlangWranglerPath . "/ebin"
|
||||
let command = "erl_call -s -sname " . s:erlangServerName . " -x 'erl -pa " . wranglerEbinDir . "'"
|
||||
call system(command)
|
||||
call s:send_rpc('application', 'start', '[wrangler_app]')
|
||||
endfunction
|
||||
|
||||
" Stopping erlang session
|
||||
function! StopWranglerServer()
|
||||
echo s:send_rpc('erlang', 'halt', '')
|
||||
endfunction
|
||||
|
||||
" Sending rpc call to erlang session
|
||||
function! s:send_rpc(module, fun, args)
|
||||
let command = "erl_call -sname " . s:erlangServerName . " -a '" . a:module . " " . a:fun . " " . a:args . "'"
|
||||
let result = system(command)
|
||||
if match(result, 'erl_call: failed to connect to node .*') != -1
|
||||
call StartWranglerServer()
|
||||
return system(command)
|
||||
endif
|
||||
return result
|
||||
endfunction
|
||||
|
||||
function! ErlangUndo()
|
||||
echo s:send_rpc("wrangler_undo_server", "undo", "[]")
|
||||
:e!
|
||||
endfunction
|
||||
|
||||
function! s:trim(text)
|
||||
return substitute(a:text, "^\\s\\+\\|\\s\\+$", "", "g")
|
||||
endfunction
|
||||
|
||||
function! s:get_msg(result, tuple_start)
|
||||
let msg_begin = '{' . a:tuple_start . ','
|
||||
let matching_start = match(a:result, msg_begin)
|
||||
if matching_start != -1
|
||||
return s:trim(matchstr(a:result, '[^}]*', matching_start + strlen(msg_begin)))
|
||||
endif
|
||||
return ""
|
||||
endfunction
|
||||
|
||||
" Check if there is an error in result
|
||||
function! s:check_for_error(result)
|
||||
let msg = s:get_msg(a:result, 'ok')
|
||||
if msg != ""
|
||||
return [0, msg]
|
||||
endif
|
||||
let msg = s:get_msg(a:result, 'warning')
|
||||
if msg != ""
|
||||
return [1, msg]
|
||||
endif
|
||||
let msg = s:get_msg(a:result, 'error')
|
||||
if msg != ""
|
||||
return [2, msg]
|
||||
endif
|
||||
return [-1, ""]
|
||||
endfunction
|
||||
|
||||
" Sending apply changes to file
|
||||
function! s:send_confirm()
|
||||
let choice = confirm("What do you want?", "&Preview\n&Confirm\nCa&ncel", 0)
|
||||
if choice == 1
|
||||
echo "TODO: Display preview :)"
|
||||
elseif choice == 2
|
||||
let module = 'wrangler_preview_server'
|
||||
let fun = 'commit'
|
||||
let args = '[]'
|
||||
return s:send_rpc(module, fun, args)
|
||||
else
|
||||
let module = 'wrangler_preview_server'
|
||||
let fun = 'abort'
|
||||
let args = '[]'
|
||||
return s:send_rpc(module, fun, args)
|
||||
echo "Canceled"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Manually send confirm, for testing purpose only
|
||||
function! SendConfirm()
|
||||
echo s:send_confirm()
|
||||
endfunction
|
||||
|
||||
" Format and send function extracton call
|
||||
function! s:call_extract(start_line, start_col, end_line, end_col, name)
|
||||
let file = expand("%:p")
|
||||
let module = 'wrangler'
|
||||
let fun = 'fun_extraction'
|
||||
let args = '["' . file . '", {' . a:start_line . ', ' . a:start_col . '}, {' . a:end_line . ', ' . a:end_col . '}, "' . a:name . '", ' . &sw . ']'
|
||||
let result = s:send_rpc(module, fun, args)
|
||||
let [error_code, msg] = s:check_for_error(result)
|
||||
if error_code != 0
|
||||
call confirm(msg)
|
||||
return 0
|
||||
endif
|
||||
echo "This files will be changed: " . matchstr(msg, "[^]]*", 1)
|
||||
echo s:send_confirm()
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! ErlangExtractFunction(mode) range
|
||||
silent w!
|
||||
let name = inputdialog("New function name: ")
|
||||
if name != ""
|
||||
if a:mode == "v"
|
||||
let start_pos = getpos("'<")
|
||||
let start_line = start_pos[1]
|
||||
let start_col = start_pos[2]
|
||||
|
||||
let end_pos = getpos("'>")
|
||||
let end_line = end_pos[1]
|
||||
let end_col = end_pos[2]
|
||||
elseif a:mode == "n"
|
||||
let pos = getpos(".")
|
||||
let start_line = pos[1]
|
||||
let start_col = pos[2]
|
||||
let end_line = pos[1]
|
||||
let end_col = pos[2]
|
||||
else
|
||||
echo "Mode not supported."
|
||||
return
|
||||
endif
|
||||
if s:call_extract(start_line, start_col, end_line, end_col, name)
|
||||
let temp = &autoread
|
||||
set autoread
|
||||
:e
|
||||
if temp == 0
|
||||
set noautoread
|
||||
endif
|
||||
endif
|
||||
else
|
||||
echo "Empty function name. Ignoring."
|
||||
endif
|
||||
endfunction
|
||||
nmap <A-r>e :call ErlangExtractFunction("n")<ENTER>
|
||||
vmap <A-r>e :call ErlangExtractFunction("v")<ENTER>
|
||||
|
||||
function! s:call_rename(mode, line, col, name, search_path)
|
||||
let file = expand("%:p")
|
||||
let module = 'wrangler'
|
||||
let fun = 'rename_' . a:mode
|
||||
let args = '["' . file .'", '
|
||||
if a:mode != "mod"
|
||||
let args = args . a:line . ', ' . a:col . ', '
|
||||
endif
|
||||
let args = args . '"' . a:name . '", ["' . a:search_path . '"], ' . &sw . ']'
|
||||
let result = s:send_rpc(module, fun, args)
|
||||
let [error_code, msg] = s:check_for_error(result)
|
||||
if error_code != 0
|
||||
call confirm(msg)
|
||||
return 0
|
||||
endif
|
||||
echo "This files will be changed: " . matchstr(msg, "[^]]*", 1)
|
||||
echo s:send_confirm()
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! ErlangRename(mode)
|
||||
silent w!
|
||||
if a:mode == "mod"
|
||||
let name = inputdialog('Rename module to: ')
|
||||
else
|
||||
let name = inputdialog('Rename "' . expand("<cword>") . '" to: ')
|
||||
endif
|
||||
if name != ""
|
||||
let search_path = expand("%:p:h")
|
||||
"let search_path = inputdialog('Search path: ', expand("%:p:h"))
|
||||
let pos = getpos(".")
|
||||
let line = pos[1]
|
||||
let col = pos[2]
|
||||
let current_filename = expand("%")
|
||||
let current_filepath = expand("%:p")
|
||||
let new_filename = name . '.erl'
|
||||
if s:call_rename(a:mode, line, col, name, search_path)
|
||||
if a:mode == "mod"
|
||||
execute ':bd ' . current_filename
|
||||
execute ':e ' . new_filename
|
||||
silent execute '!mv ' . current_filepath . ' ' . current_filepath . '.bak'
|
||||
redraw!
|
||||
else
|
||||
let temp = &autoread
|
||||
set autoread
|
||||
:e
|
||||
if temp == 0
|
||||
set noautoread
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
echo "Empty name. Ignoring."
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! ErlangRenameFunction()
|
||||
call ErlangRename("fun")
|
||||
endfunction
|
||||
map <A-r>f :call ErlangRenameFunction()<ENTER>
|
||||
|
||||
function! ErlangRenameVariable()
|
||||
call ErlangRename("var")
|
||||
endfunction
|
||||
map <A-r>v :call ErlangRenameVariable()<ENTER>
|
||||
|
||||
function! ErlangRenameModule()
|
||||
call ErlangRename("mod")
|
||||
endfunction
|
||||
map <A-r>m :call ErlangRenameModule()<ENTER>
|
||||
|
||||
function! ErlangRenameProcess()
|
||||
call ErlangRename("process")
|
||||
endfunction
|
||||
map <A-r>p :call ErlangRenameProcess()<ENTER>
|
||||
|
||||
function! s:call_tuple_fun_args(start_line, start_col, end_line, end_col, search_path)
|
||||
let file = expand("%:p")
|
||||
let module = 'wrangler'
|
||||
let fun = 'tuple_funpar'
|
||||
let args = '["' . file . '", {' . a:start_line . ', ' . a:start_col . '}, {' . a:end_line . ', ' . a:end_col . '}, ["' . a:search_path . '"], ' . &sw . ']'
|
||||
let result = s:send_rpc(module, fun, args)
|
||||
if s:check_for_error(result)
|
||||
return 0
|
||||
endif
|
||||
call s:send_confirm()
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! ErlangTupleFunArgs(mode)
|
||||
silent w!
|
||||
let search_path = expand("%:p:h")
|
||||
"let search_path = inputdialog('Search path: ', expand("%:p:h"))
|
||||
if a:mode == "v"
|
||||
let start_pos = getpos("'<")
|
||||
let start_line = start_pos[1]
|
||||
let start_col = start_pos[2]
|
||||
|
||||
let end_pos = getpos("'>")
|
||||
let end_line = end_pos[1]
|
||||
let end_col = end_pos[2]
|
||||
if s:call_tuple_fun_args(start_line, start_col, end_line, end_col, search_path)
|
||||
let temp = &autoread
|
||||
set autoread
|
||||
:e
|
||||
if temp == 0
|
||||
set noautoread
|
||||
endif
|
||||
endif
|
||||
elseif a:mode == "n"
|
||||
let pos = getpos(".")
|
||||
let line = pos[1]
|
||||
let col = pos[2]
|
||||
if s:call_tuple_fun_args(line, col, line, col, search_path)
|
||||
let temp = &autoread
|
||||
set autoread
|
||||
:e
|
||||
if temp == 0
|
||||
set noautoread
|
||||
endif
|
||||
endif
|
||||
else
|
||||
echo "Mode not supported."
|
||||
endif
|
||||
endfunction
|
||||
nmap <A-r>t :call ErlangTupleFunArgs("n")<ENTER>
|
||||
vmap <A-r>t :call ErlangTupleFunArgs("v")<ENTER>
|
||||
|
||||
" vim: set foldmethod=marker:
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: eRuby
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -27,7 +29,7 @@ elseif !exists("b:eruby_subtype")
|
||||
let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
|
||||
let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+')
|
||||
if b:eruby_subtype == ''
|
||||
let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+$')
|
||||
let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
|
||||
endif
|
||||
if b:eruby_subtype == 'rhtml'
|
||||
let b:eruby_subtype = 'html'
|
||||
@@ -100,3 +102,5 @@ let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -36,3 +38,5 @@ endif
|
||||
|
||||
setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
|
||||
let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -11,15 +13,8 @@ endif
|
||||
runtime! ftplugin/git.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl
|
||||
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<'
|
||||
|
||||
if &textwidth == 0
|
||||
" make sure that log messages play nice with git-log on standard terminals
|
||||
setlocal textwidth=72
|
||||
let b:undo_ftplugin .= "|setl tw<"
|
||||
endif
|
||||
setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl textwidth=72
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw<'
|
||||
|
||||
if exists("g:no_gitcommit_commands") || v:version < 700
|
||||
finish
|
||||
@@ -65,3 +60,5 @@ function! s:gitdiffcached(bang,gitdir,...)
|
||||
nnoremap <buffer> <silent> q :q<CR>
|
||||
setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: git config file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -13,3 +15,5 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal comments=:#,:; commentstring=;\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< cms<"
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: git rebase --interactive
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -41,3 +43,5 @@ endif
|
||||
nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K'
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|nunmap <buffer> K"
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: git send-email message
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2009 Dec 24
|
||||
|
||||
runtime! ftplugin/mail.vim
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
" Copyright 2011 The Go Authors. All rights reserved.
|
||||
" Use of this source code is governed by a BSD-style
|
||||
" license that can be found in the LICENSE file.
|
||||
"
|
||||
" fmt.vim: Vim command to format Go files with gofmt.
|
||||
"
|
||||
" This filetype plugin add a new commands for go buffers:
|
||||
"
|
||||
" :Fmt
|
||||
"
|
||||
" Filter the current Go buffer through gofmt.
|
||||
" It tries to preserve cursor position and avoids
|
||||
" replacing the buffer with stderr output.
|
||||
"
|
||||
" Options:
|
||||
"
|
||||
" g:go_fmt_commands [default=1]
|
||||
"
|
||||
" Flag to indicate whether to enable the commands listed above.
|
||||
"
|
||||
" g:gofmt_command [default="gofmt"]
|
||||
"
|
||||
" Flag naming the gofmt executable to use.
|
||||
"
|
||||
if exists("b:did_ftplugin_go_fmt")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("g:go_fmt_commands")
|
||||
let g:go_fmt_commands = 1
|
||||
endif
|
||||
|
||||
if !exists("g:gofmt_command")
|
||||
let g:gofmt_command = "gofmt"
|
||||
endif
|
||||
|
||||
if g:go_fmt_commands
|
||||
command! -buffer Fmt call s:GoFormat()
|
||||
endif
|
||||
|
||||
function! s:GoFormat()
|
||||
let view = winsaveview()
|
||||
silent execute "%!" . g:gofmt_command
|
||||
if v:shell_error
|
||||
let errors = []
|
||||
for line in getline(1, line('$'))
|
||||
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
|
||||
if !empty(tokens)
|
||||
call add(errors, {"filename": @%,
|
||||
\"lnum": tokens[2],
|
||||
\"col": tokens[3],
|
||||
\"text": tokens[4]})
|
||||
endif
|
||||
endfor
|
||||
if empty(errors)
|
||||
% | " Couldn't detect gofmt error format, output errors
|
||||
endif
|
||||
undo
|
||||
if !empty(errors)
|
||||
call setqflist(errors, 'r')
|
||||
endif
|
||||
echohl Error | echomsg "Gofmt returned error" | echohl None
|
||||
endif
|
||||
call winrestview(view)
|
||||
endfunction
|
||||
|
||||
let b:did_ftplugin_go_fmt = 1
|
||||
|
||||
" vim:ts=4:sw=4:et
|
||||
@@ -1,250 +0,0 @@
|
||||
" Copyright 2011 The Go Authors. All rights reserved.
|
||||
" Use of this source code is governed by a BSD-style
|
||||
" license that can be found in the LICENSE file.
|
||||
"
|
||||
" import.vim: Vim commands to import/drop Go packages.
|
||||
"
|
||||
" This filetype plugin adds three new commands for go buffers:
|
||||
"
|
||||
" :Import {path}
|
||||
"
|
||||
" Import ensures that the provided package {path} is imported
|
||||
" in the current Go buffer, using proper style and ordering.
|
||||
" If {path} is already being imported, an error will be
|
||||
" displayed and the buffer will be untouched.
|
||||
"
|
||||
" :ImportAs {localname} {path}
|
||||
"
|
||||
" Same as Import, but uses a custom local name for the package.
|
||||
"
|
||||
" :Drop {path}
|
||||
"
|
||||
" Remove the import line for the provided package {path}, if
|
||||
" present in the current Go buffer. If {path} is not being
|
||||
" imported, an error will be displayed and the buffer will be
|
||||
" untouched.
|
||||
"
|
||||
" If you would like to add shortcuts, you can do so by doing the following:
|
||||
"
|
||||
" Import fmt
|
||||
" au Filetype go nnoremap <buffer> <LocalLeader>f :Import fmt<CR>
|
||||
"
|
||||
" Drop fmt
|
||||
" au Filetype go nnoremap <buffer> <LocalLeader>F :Drop fmt<CR>
|
||||
"
|
||||
" Import the word under your cursor
|
||||
" au Filetype go nnoremap <buffer> <LocalLeader>k
|
||||
" \ :exe 'Import ' . expand('<cword>')<CR>
|
||||
"
|
||||
" The backslash '\' is the default maplocalleader, so it is possible that
|
||||
" your vim is set to use a different character (:help maplocalleader).
|
||||
"
|
||||
" Options:
|
||||
"
|
||||
" g:go_import_commands [default=1]
|
||||
"
|
||||
" Flag to indicate whether to enable the commands listed above.
|
||||
"
|
||||
if exists("b:did_ftplugin_go_import")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("g:go_import_commands")
|
||||
let g:go_import_commands = 1
|
||||
endif
|
||||
|
||||
if g:go_import_commands
|
||||
command! -buffer -nargs=? -complete=customlist,go#complete#Package Drop call s:SwitchImport(0, '', <f-args>)
|
||||
command! -buffer -nargs=1 -complete=customlist,go#complete#Package Import call s:SwitchImport(1, '', <f-args>)
|
||||
command! -buffer -nargs=* -complete=customlist,go#complete#Package ImportAs call s:SwitchImport(1, <f-args>)
|
||||
endif
|
||||
|
||||
function! s:SwitchImport(enabled, localname, path)
|
||||
let view = winsaveview()
|
||||
let path = a:path
|
||||
|
||||
" Quotes are not necessary, so remove them if provided.
|
||||
if path[0] == '"'
|
||||
let path = strpart(path, 1)
|
||||
endif
|
||||
if path[len(path)-1] == '"'
|
||||
let path = strpart(path, 0, len(path) - 1)
|
||||
endif
|
||||
if path == ''
|
||||
call s:Error('Import path not provided')
|
||||
return
|
||||
endif
|
||||
|
||||
" Extract any site prefix (e.g. github.com/).
|
||||
" If other imports with the same prefix are grouped separately,
|
||||
" we will add this new import with them.
|
||||
" Only up to and including the first slash is used.
|
||||
let siteprefix = matchstr(path, "^[^/]*/")
|
||||
|
||||
let qpath = '"' . path . '"'
|
||||
if a:localname != ''
|
||||
let qlocalpath = a:localname . ' ' . qpath
|
||||
else
|
||||
let qlocalpath = qpath
|
||||
endif
|
||||
let indentstr = 0
|
||||
let packageline = -1 " Position of package name statement
|
||||
let appendline = -1 " Position to introduce new import
|
||||
let deleteline = -1 " Position of line with existing import
|
||||
let linesdelta = 0 " Lines added/removed
|
||||
|
||||
" Find proper place to add/remove import.
|
||||
let line = 0
|
||||
while line <= line('$')
|
||||
let linestr = getline(line)
|
||||
|
||||
if linestr =~# '^package\s'
|
||||
let packageline = line
|
||||
let appendline = line
|
||||
|
||||
elseif linestr =~# '^import\s\+('
|
||||
let appendstr = qlocalpath
|
||||
let indentstr = 1
|
||||
let appendline = line
|
||||
let firstblank = -1
|
||||
let lastprefix = ""
|
||||
while line <= line("$")
|
||||
let line = line + 1
|
||||
let linestr = getline(line)
|
||||
let m = matchlist(getline(line), '^\()\|\(\s\+\)\(\S*\s*\)"\(.\+\)"\)')
|
||||
if empty(m)
|
||||
if siteprefix == "" && a:enabled
|
||||
" must be in the first group
|
||||
break
|
||||
endif
|
||||
" record this position, but keep looking
|
||||
if firstblank < 0
|
||||
let firstblank = line
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
if m[1] == ')'
|
||||
" if there's no match, add it to the first group
|
||||
if appendline < 0 && firstblank >= 0
|
||||
let appendline = firstblank
|
||||
endif
|
||||
break
|
||||
endif
|
||||
let lastprefix = matchstr(m[4], "^[^/]*/")
|
||||
if a:localname != '' && m[3] != ''
|
||||
let qlocalpath = printf('%-' . (len(m[3])-1) . 's %s', a:localname, qpath)
|
||||
endif
|
||||
let appendstr = m[2] . qlocalpath
|
||||
let indentstr = 0
|
||||
if m[4] == path
|
||||
let appendline = -1
|
||||
let deleteline = line
|
||||
break
|
||||
elseif m[4] < path
|
||||
" don't set candidate position if we have a site prefix,
|
||||
" we've passed a blank line, and this doesn't share the same
|
||||
" site prefix.
|
||||
if siteprefix == "" || firstblank < 0 || match(m[4], "^" . siteprefix) >= 0
|
||||
let appendline = line
|
||||
endif
|
||||
elseif siteprefix != "" && match(m[4], "^" . siteprefix) >= 0
|
||||
" first entry of site group
|
||||
let appendline = line - 1
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
break
|
||||
|
||||
elseif linestr =~# '^import '
|
||||
if appendline == packageline
|
||||
let appendstr = 'import ' . qlocalpath
|
||||
let appendline = line - 1
|
||||
endif
|
||||
let m = matchlist(linestr, '^import\(\s\+\)\(\S*\s*\)"\(.\+\)"')
|
||||
if !empty(m)
|
||||
if m[3] == path
|
||||
let appendline = -1
|
||||
let deleteline = line
|
||||
break
|
||||
endif
|
||||
if m[3] < path
|
||||
let appendline = line
|
||||
endif
|
||||
if a:localname != '' && m[2] != ''
|
||||
let qlocalpath = printf("%s %" . len(m[2])-1 . "s", a:localname, qpath)
|
||||
endif
|
||||
let appendstr = 'import' . m[1] . qlocalpath
|
||||
endif
|
||||
|
||||
elseif linestr =~# '^\(var\|const\|type\|func\)\>'
|
||||
break
|
||||
|
||||
endif
|
||||
let line = line + 1
|
||||
endwhile
|
||||
|
||||
" Append or remove the package import, as requested.
|
||||
if a:enabled
|
||||
if deleteline != -1
|
||||
call s:Error(qpath . ' already being imported')
|
||||
elseif appendline == -1
|
||||
call s:Error('No package line found')
|
||||
else
|
||||
if appendline == packageline
|
||||
call append(appendline + 0, '')
|
||||
call append(appendline + 1, 'import (')
|
||||
call append(appendline + 2, ')')
|
||||
let appendline += 2
|
||||
let linesdelta += 3
|
||||
let appendstr = qlocalpath
|
||||
let indentstr = 1
|
||||
endif
|
||||
call append(appendline, appendstr)
|
||||
execute appendline + 1
|
||||
if indentstr
|
||||
execute 'normal >>'
|
||||
endif
|
||||
let linesdelta += 1
|
||||
endif
|
||||
else
|
||||
if deleteline == -1
|
||||
call s:Error(qpath . ' not being imported')
|
||||
else
|
||||
execute deleteline . 'd'
|
||||
let linesdelta -= 1
|
||||
|
||||
if getline(deleteline-1) =~# '^import\s\+(' && getline(deleteline) =~# '^)'
|
||||
" Delete empty import block
|
||||
let deleteline -= 1
|
||||
execute deleteline . "d"
|
||||
execute deleteline . "d"
|
||||
let linesdelta -= 2
|
||||
endif
|
||||
|
||||
if getline(deleteline) == '' && getline(deleteline - 1) == ''
|
||||
" Delete spacing for removed line too.
|
||||
execute deleteline . "d"
|
||||
let linesdelta -= 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
" Adjust view for any changes.
|
||||
let view.lnum += linesdelta
|
||||
let view.topline += linesdelta
|
||||
if view.topline < 0
|
||||
let view.topline = 0
|
||||
endif
|
||||
|
||||
" Put buffer back where it was.
|
||||
call winrestview(view)
|
||||
|
||||
endfunction
|
||||
|
||||
function! s:Error(s)
|
||||
echohl Error | echo a:s | echohl None
|
||||
endfunction
|
||||
|
||||
let b:did_ftplugin_go_import = 1
|
||||
|
||||
" vim:ts=4:sw=4:et
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haml') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -66,3 +68,5 @@ let b:undo_ftplugin = "setl cms< com< "
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
" vim:set sw=2:
|
||||
|
||||
endif
|
||||
|
||||
@@ -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
|
||||
11
ftplugin/html.vim
Normal file
11
ftplugin/html.vim
Normal file
@@ -0,0 +1,11 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Maintainer: othree <othree@gmail.com>
|
||||
" URL: http://github.com/othree/html5.vim
|
||||
" Last Change: 2014-05-02
|
||||
" License: MIT
|
||||
" Changes: Add - to keyword
|
||||
|
||||
" setlocal iskeyword+=-
|
||||
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jade') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Jade
|
||||
" Maintainer: Joshua Borton
|
||||
@@ -11,6 +13,8 @@ endif
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
setlocal iskeyword+=-
|
||||
|
||||
" Define some defaults in case the included ftplugins don't set them.
|
||||
let s:undo_ftplugin = ""
|
||||
let s:browsefilter = "All Files (*.*)\t*.*\n"
|
||||
@@ -53,3 +57,5 @@ let b:undo_ftplugin = "setl cms< com< "
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
" vim:set sw=2:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" LaTeX Box common functions
|
||||
|
||||
" Error Format {{{
|
||||
@@ -25,8 +27,20 @@ setlocal efm+=%E!\ %m
|
||||
" More info for undefined control sequences
|
||||
setlocal efm+=%Z<argument>\ %m
|
||||
|
||||
" More info for some errors
|
||||
setlocal efm+=%Cl.%l\ %m
|
||||
|
||||
" Show or ignore warnings
|
||||
if g:LatexBox_show_warnings
|
||||
" Parse biblatex warnings
|
||||
setlocal efm+=%-C(biblatex)%.%#in\ t%.%#
|
||||
setlocal efm+=%-C(biblatex)%.%#Please\ v%.%#
|
||||
setlocal efm+=%-C(biblatex)%.%#LaTeX\ a%.%#
|
||||
setlocal efm+=%-Z(biblatex)%m
|
||||
|
||||
" Parse hyperref warnings
|
||||
setlocal efm+=%-C(hyperref)%.%#on\ input\ line\ %l.
|
||||
|
||||
for w in g:LatexBox_ignore_warnings
|
||||
let warning = escape(substitute(w, '[\,]', '%\\\\&', 'g'), ' ')
|
||||
exe 'setlocal efm+=%-G%.%#'. warning .'%.%#'
|
||||
@@ -44,6 +58,7 @@ endif
|
||||
|
||||
" Push file to file stack
|
||||
setlocal efm+=%+P**%f
|
||||
setlocal efm+=%+P**\"%f\"
|
||||
|
||||
" Ignore unmatched lines
|
||||
setlocal efm+=%-G%.%#
|
||||
@@ -51,14 +66,24 @@ setlocal efm+=%-G%.%#
|
||||
|
||||
" Vim Windows {{{
|
||||
|
||||
" Width of vertical splits
|
||||
" Type of split, "new" for horiz. "vnew" for vert.
|
||||
if !exists('g:LatexBox_split_type')
|
||||
let g:LatexBox_split_type = "vnew"
|
||||
endif
|
||||
|
||||
" Length of vertical splits
|
||||
if !exists('g:LatexBox_split_length')
|
||||
let g:LatexBox_split_length = 15
|
||||
endif
|
||||
|
||||
" Width of horizontal splits
|
||||
if !exists('g:LatexBox_split_width')
|
||||
let g:LatexBox_split_width = 30
|
||||
endif
|
||||
|
||||
" Where vertical splits appear
|
||||
" Where splits appear
|
||||
if !exists('g:LatexBox_split_side')
|
||||
let g:LatexBox_split_side = "leftabove"
|
||||
let g:LatexBox_split_side = "aboveleft"
|
||||
endif
|
||||
|
||||
" Resize when split?
|
||||
@@ -102,17 +127,24 @@ function! LatexBox_GetMainTexFile()
|
||||
endfor
|
||||
|
||||
" 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')
|
||||
endif
|
||||
|
||||
" 4 borrow the Vim-Latex-Suite method of finding it
|
||||
if Tex_GetMainFileName() != expand('%:p')
|
||||
let b:main_tex_file = Tex_GetMainFileName()
|
||||
" 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. prompt for file with completion
|
||||
" 5. borrow the Vim-Latex-Suite method of finding it
|
||||
if LatexBox_GetMainFileName() != expand('%:p')
|
||||
let b:main_tex_file = LatexBox_GetMainFileName()
|
||||
return b:main_tex_file
|
||||
endif
|
||||
|
||||
" 6. prompt for file with completion
|
||||
let b:main_tex_file = s:PromptForMainFile()
|
||||
return b:main_tex_file
|
||||
endfunction
|
||||
@@ -120,6 +152,8 @@ endfunction
|
||||
function! s:PromptForMainFile()
|
||||
let saved_dir = getcwd()
|
||||
execute 'cd ' . fnameescape(expand('%:p:h'))
|
||||
|
||||
" Prompt for file
|
||||
let l:file = ''
|
||||
while !filereadable(l:file)
|
||||
let l:file = input('main LaTeX file: ', '', 'file')
|
||||
@@ -128,6 +162,16 @@ function! s:PromptForMainFile()
|
||||
endif
|
||||
endwhile
|
||||
let l:file = fnamemodify(l:file, ':p')
|
||||
|
||||
" Make persistent
|
||||
let l:persistent = ''
|
||||
while l:persistent !~ '\v^(y|n)'
|
||||
let l:persistent = input('make choice persistent? (y, n) ')
|
||||
if l:persistent == 'y'
|
||||
call writefile([], l:file . '.latexmain')
|
||||
endif
|
||||
endwhile
|
||||
|
||||
execute 'cd ' . fnameescape(saved_dir)
|
||||
return l:file
|
||||
endfunction
|
||||
@@ -137,7 +181,13 @@ function! LatexBox_GetTexRoot()
|
||||
return fnamemodify(LatexBox_GetMainTexFile(), ':h')
|
||||
endfunction
|
||||
|
||||
function! LatexBox_GetTexBasename(with_dir)
|
||||
function! LatexBox_GetBuildBasename(with_dir)
|
||||
" 1. Check for g:LatexBox_jobname
|
||||
if exists('g:LatexBox_jobname')
|
||||
return g:LatexBox_jobname
|
||||
endif
|
||||
|
||||
" 2. Get the basename from the main tex file
|
||||
if a:with_dir
|
||||
return fnamemodify(LatexBox_GetMainTexFile(), ':r')
|
||||
else
|
||||
@@ -148,48 +198,48 @@ endfunction
|
||||
function! LatexBox_GetAuxFile()
|
||||
" 1. check for b:build_dir variable
|
||||
if exists('b:build_dir') && isdirectory(b:build_dir)
|
||||
return b:build_dir . '/' . LatexBox_GetTexBasename(0) . '.aux'
|
||||
return b:build_dir . '/' . LatexBox_GetBuildBasename(0) . '.aux'
|
||||
endif
|
||||
|
||||
" 2. check for g:LatexBox_build_dir variable
|
||||
if exists('g:LatexBox_build_dir') && isdirectory(g:LatexBox_build_dir)
|
||||
return g:LatexBox_build_dir . '/' . LatexBox_GetTexBasename(0) . '.aux'
|
||||
return g:LatexBox_build_dir . '/' . LatexBox_GetBuildBasename(0) . '.aux'
|
||||
endif
|
||||
|
||||
" 3. use the base name of main tex file
|
||||
return LatexBox_GetTexBasename(1) . '.aux'
|
||||
return LatexBox_GetBuildBasename(1) . '.aux'
|
||||
endfunction
|
||||
|
||||
function! LatexBox_GetLogFile()
|
||||
" 1. check for b:build_dir variable
|
||||
if exists('b:build_dir') && isdirectory(b:build_dir)
|
||||
return b:build_dir . '/' . LatexBox_GetTexBasename(0) . '.log'
|
||||
return b:build_dir . '/' . LatexBox_GetBuildBasename(0) . '.log'
|
||||
endif
|
||||
|
||||
" 2. check for g:LatexBox_build_dir variable
|
||||
if exists('g:LatexBox_build_dir') && isdirectory(g:LatexBox_build_dir)
|
||||
return g:LatexBox_build_dir . '/' . LatexBox_GetTexBasename(0) . '.log'
|
||||
return g:LatexBox_build_dir . '/' . LatexBox_GetBuildBasename(0) . '.log'
|
||||
endif
|
||||
|
||||
" 3. use the base name of main tex file
|
||||
return LatexBox_GetTexBasename(1) . '.log'
|
||||
return LatexBox_GetBuildBasename(1) . '.log'
|
||||
endfunction
|
||||
|
||||
function! LatexBox_GetOutputFile()
|
||||
" 1. check for b:build_dir variable
|
||||
if exists('b:build_dir') && isdirectory(b:build_dir)
|
||||
return b:build_dir . '/' . LatexBox_GetTexBasename(0)
|
||||
return b:build_dir . '/' . LatexBox_GetBuildBasename(0)
|
||||
\ . '.' . g:LatexBox_output_type
|
||||
endif
|
||||
|
||||
" 2. check for g:LatexBox_build_dir variable
|
||||
if exists('g:LatexBox_build_dir') && isdirectory(g:LatexBox_build_dir)
|
||||
return g:LatexBox_build_dir . '/' . LatexBox_GetTexBasename(0)
|
||||
return g:LatexBox_build_dir . '/' . LatexBox_GetBuildBasename(0)
|
||||
\ . '.' . g:LatexBox_output_type
|
||||
endif
|
||||
|
||||
" 3. use the base name of main tex file
|
||||
return LatexBox_GetTexBasename(1) . '.' . g:LatexBox_output_type
|
||||
return LatexBox_GetBuildBasename(1) . '.' . g:LatexBox_output_type
|
||||
endfunction
|
||||
" }}}
|
||||
|
||||
@@ -197,25 +247,37 @@ endfunction
|
||||
|
||||
" Default pdf viewer
|
||||
if !exists('g:LatexBox_viewer')
|
||||
if has('win32')
|
||||
" On windows, 'running' a file will open it with the default program
|
||||
let g:LatexBox_viewer = ''
|
||||
let s:viewer = ''
|
||||
if has('unix')
|
||||
" echo -n necessary as uname -s will append \n otherwise
|
||||
let s:uname = system('echo -n $(uname -s)')
|
||||
if s:uname == "Darwin"
|
||||
let s:viewer = 'open'
|
||||
else
|
||||
let g:LatexBox_viewer = 'xdg-open'
|
||||
let s:viewer = 'xdg-open'
|
||||
endif
|
||||
endif
|
||||
let g:LatexBox_viewer = s:viewer
|
||||
endif
|
||||
|
||||
function! LatexBox_View()
|
||||
function! LatexBox_View(...)
|
||||
let lvargs = join(a:000, ' ')
|
||||
let outfile = LatexBox_GetOutputFile()
|
||||
if !filereadable(outfile)
|
||||
echomsg fnamemodify(outfile, ':.') . ' is not readable'
|
||||
return
|
||||
endif
|
||||
let cmd = g:LatexBox_viewer . ' ' . shellescape(outfile)
|
||||
let cmd = g:LatexBox_viewer . ' ' . lvargs . ' ' . shellescape(outfile)
|
||||
if has('win32')
|
||||
let cmd = '!start /b ' . cmd . ' >nul'
|
||||
else
|
||||
let cmd = '!' . cmd . ' &>/dev/null &'
|
||||
let cmd = '!' . cmd . ' '
|
||||
if fnamemodify(&shell, ':t') ==# 'fish'
|
||||
let cmd .= ' >/dev/null ^/dev/null &'
|
||||
else
|
||||
let cmd .= ' &>/dev/null &'
|
||||
endif
|
||||
endif
|
||||
silent execute cmd
|
||||
if !has("gui_running")
|
||||
@@ -223,7 +285,7 @@ function! LatexBox_View()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
command! LatexView call LatexBox_View()
|
||||
command! -nargs=* LatexView call LatexBox_View('<args>')
|
||||
" }}}
|
||||
|
||||
" In Comment {{{
|
||||
@@ -351,3 +413,5 @@ endfunction
|
||||
" }}}
|
||||
|
||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" LaTeX Box completion
|
||||
|
||||
setlocal omnifunc=LatexBox_Complete
|
||||
@@ -24,7 +26,7 @@ if !exists('g:LatexBox_cite_pattern')
|
||||
let g:LatexBox_cite_pattern = '\C\\\a*cite\a*\*\?\(\[[^\]]*\]\)*\_\s*{'
|
||||
endif
|
||||
if !exists('g:LatexBox_ref_pattern')
|
||||
let g:LatexBox_ref_pattern = '\C\\v\?\(eq\|page\|[cC]\|labelc\)\?ref\*\?\_\s*{'
|
||||
let g:LatexBox_ref_pattern = '\C\\v\?\(eq\|page\|[cC]\|labelc\|name\|auto\)\?ref\*\?\_\s*{'
|
||||
endif
|
||||
|
||||
if !exists('g:LatexBox_completion_environments')
|
||||
@@ -106,13 +108,13 @@ function! LatexBox_Complete(findstart, base)
|
||||
endwhile
|
||||
|
||||
let line_start = line[:pos-1]
|
||||
if line_start =~ '\C\\begin\_\s*{$'
|
||||
if line_start =~ '\m\C\\begin\_\s*{$'
|
||||
let s:completion_type = 'begin'
|
||||
elseif line_start =~ '\C\\end\_\s*{$'
|
||||
elseif line_start =~ '\m\C\\end\_\s*{$'
|
||||
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'
|
||||
elseif line_start =~ g:LatexBox_cite_pattern . '$'
|
||||
elseif line_start =~ '\m' . g:LatexBox_cite_pattern . '$'
|
||||
let s:completion_type = 'bib'
|
||||
" check for multiple citations
|
||||
let pos = col('.') - 1
|
||||
@@ -255,14 +257,14 @@ function! LatexBox_BibSearch(regexp)
|
||||
if has('win32')
|
||||
let l:old_shellslash = &l:shellslash
|
||||
setlocal noshellslash
|
||||
silent execute '! cd ' shellescape(LatexBox_GetTexRoot()) .
|
||||
call system('cd ' . shellescape(LatexBox_GetTexRoot()) .
|
||||
\ ' & bibtex -terse '
|
||||
\ . fnamemodify(auxfile, ':t') . ' >nul'
|
||||
\ . fnamemodify(auxfile, ':t') . ' >nul')
|
||||
let &l:shellslash = l:old_shellslash
|
||||
else
|
||||
silent execute '! cd ' shellescape(LatexBox_GetTexRoot()) .
|
||||
call system('cd ' . shellescape(LatexBox_GetTexRoot()) .
|
||||
\ ' ; bibtex -terse '
|
||||
\ . fnamemodify(auxfile, ':t') . ' >/dev/null'
|
||||
\ . fnamemodify(auxfile, ':t') . ' >/dev/null')
|
||||
endif
|
||||
|
||||
let lines = split(substitute(join(readfile(bblfile), "\n"),
|
||||
@@ -328,6 +330,7 @@ function! LatexBox_BibComplete(regexp)
|
||||
let type = printf('%-' . s:type_length . 's', type)
|
||||
let auth = m['author'] == '' ? '' : m['author'][:20] . ' '
|
||||
let auth = substitute(auth, '\~', ' ', 'g')
|
||||
let auth = substitute(auth, ',.*\ze', ' et al. ', '')
|
||||
let year = m['year'] == '' ? '' : '(' . m['year'] . ')'
|
||||
let w = { 'word': m['key'],
|
||||
\ 'abbr': type . auth . year,
|
||||
@@ -365,11 +368,12 @@ function! s:ExtractLabels()
|
||||
let curname = strpart( getline( lblline ), lblbegin, nameend - lblbegin - 1 )
|
||||
|
||||
" Ignore cref entries (because they are duplicates)
|
||||
if curname =~ "\@cref"
|
||||
if curname =~# "@cref$"
|
||||
let [lblline, lblbegin] = searchpos( '\\newlabel{', 'ecW' )
|
||||
continue
|
||||
endif
|
||||
|
||||
if 0 == search( '{\w*{', 'ce', lblline )
|
||||
if 0 == search( '\m{\w*{', 'ce', lblline )
|
||||
let [lblline, lblbegin] = searchpos( '\\newlabel{', 'ecW' )
|
||||
continue
|
||||
endif
|
||||
@@ -382,7 +386,7 @@ function! s:ExtractLabels()
|
||||
endif
|
||||
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' )
|
||||
continue
|
||||
endif
|
||||
@@ -457,7 +461,8 @@ function! s:GetLabelCache(file)
|
||||
|
||||
if !has_key(s:LabelCache , a:file) || s:LabelCache[a:file][0] != getftime(a:file)
|
||||
" Open file in temporary split window for label extraction.
|
||||
silent execute '1sp +let\ labels=s:ExtractLabels()|let\ inputs=s:ExtractInputs()|quit! ' . fnameescape(a:file)
|
||||
let main_tex_file = LatexBox_GetMainTexFile()
|
||||
silent execute '1sp +let\ b:main_tex_file=main_tex_file|let\ labels=s:ExtractLabels()|let\ inputs=s:ExtractInputs()|quit! ' . fnameescape(a:file)
|
||||
let s:LabelCache[a:file] = [ getftime(a:file), labels, inputs ]
|
||||
endif
|
||||
|
||||
@@ -755,6 +760,70 @@ function! s:PromptEnvWrapSelection(...)
|
||||
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 {{{
|
||||
function! s:ChangeEnvPrompt()
|
||||
|
||||
@@ -858,4 +927,10 @@ nnoremap <silent> <Plug>LatexChangeEnv :call <SID>ChangeEnvPrompt()<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
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
" Tex_GetMainFileName: gets the name of the main file being compiled. {{{
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" LatexBox_GetMainFileName: gets the name of the main file being compiled. {{{
|
||||
" Description: returns the full path name of the main file.
|
||||
" This function checks for the existence of a .latexmain file
|
||||
" which might point to the location of a "main" latex file.
|
||||
@@ -13,7 +15,8 @@
|
||||
" NOTE: From version 1.6 onwards, this function always trims
|
||||
" away the .latexmain part of the file name before applying the
|
||||
" modifier argument.
|
||||
function! Tex_GetMainFileName(...)
|
||||
" NOTE: This function is copied from the Latex-Suite project!
|
||||
function! LatexBox_GetMainFileName(...)
|
||||
if a:0 > 0
|
||||
let modifier = a:1
|
||||
else
|
||||
@@ -29,7 +32,7 @@ function! Tex_GetMainFileName(...)
|
||||
" move up the directory tree until we find a .latexmain file.
|
||||
" TODO: Should we be doing this recursion by default, or should there be a
|
||||
" setting?
|
||||
while glob('*.latexmain') == ''
|
||||
while glob('*.latexmain',1) == ''
|
||||
let dirmodifier = dirmodifier.':h'
|
||||
let dirNew = fnameescape(expand(dirmodifier))
|
||||
" break from the loop if we cannot go up any further.
|
||||
@@ -40,7 +43,7 @@ function! Tex_GetMainFileName(...)
|
||||
exe 'cd '.dirLast
|
||||
endwhile
|
||||
|
||||
let lheadfile = glob('*.latexmain')
|
||||
let lheadfile = glob('*.latexmain',1)
|
||||
if lheadfile != ''
|
||||
" Remove the trailing .latexmain part of the filename... We never want
|
||||
" that.
|
||||
@@ -51,9 +54,6 @@ function! Tex_GetMainFileName(...)
|
||||
let lheadfile = expand('%'.modifier)
|
||||
endif
|
||||
|
||||
if lheadfile !~ '\.tex$'
|
||||
let lheadfile .= '.tex'
|
||||
endif
|
||||
exe 'cd '.s:origdir
|
||||
|
||||
" NOTE: The caller of this function needs to escape the file name with
|
||||
@@ -62,3 +62,5 @@ function! Tex_GetMainFileName(...)
|
||||
" certain platforms.
|
||||
return lheadfile
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,29 +1,24 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" Folding support for LaTeX
|
||||
|
||||
"
|
||||
" Options
|
||||
" g:LatexBox_Folding - Turn on/off folding
|
||||
" g:LatexBox_fold_text - Turn on/off LatexBox fold text function
|
||||
" g:LatexBox_fold_preamble - Turn on/off folding of preamble
|
||||
" g:LatexBox_fold_parts - Define parts (eq. appendix, frontmatter) to fold
|
||||
" g:LatexBox_fold_sections - Define section levels to fold
|
||||
" g:LatexBox_fold_envs - Turn on/off folding of environments
|
||||
" g:LatexBox_fold_toc - Turn on/off folding of TOC
|
||||
" g:LatexBox_fold_toc_levels - Set max TOC fold level
|
||||
"
|
||||
|
||||
" {{{1 Set options
|
||||
if exists('g:LatexBox_Folding') && g:LatexBox_Folding == 1
|
||||
setl foldmethod=expr
|
||||
setl foldexpr=LatexBox_FoldLevel(v:lnum)
|
||||
setl foldtext=LatexBox_FoldText()
|
||||
"
|
||||
" The foldexpr function returns "=" for most lines, which means it can become
|
||||
" slow for large files. The following is a hack that is based on this reply to
|
||||
" a discussion on the Vim Developer list:
|
||||
" http://permalink.gmane.org/gmane.editors.vim.devel/14100
|
||||
"
|
||||
augroup FastFold
|
||||
autocmd!
|
||||
autocmd InsertEnter *.tex setlocal foldmethod=manual
|
||||
autocmd InsertLeave *.tex setlocal foldmethod=expr
|
||||
augroup end
|
||||
" {{{1 Initialize options to default values.
|
||||
if !exists('g:LatexBox_Folding')
|
||||
let g:LatexBox_Folding=0
|
||||
endif
|
||||
if !exists('g:LatexBox_fold_text')
|
||||
let g:LatexBox_fold_text=1
|
||||
endif
|
||||
if !exists('g:LatexBox_fold_preamble')
|
||||
let g:LatexBox_fold_preamble=1
|
||||
@@ -31,6 +26,9 @@ endif
|
||||
if !exists('g:LatexBox_fold_envs')
|
||||
let g:LatexBox_fold_envs=1
|
||||
endif
|
||||
if !exists('g:LatexBox_fold_envs_force')
|
||||
let g:LatexBox_fold_envs_force = []
|
||||
endif
|
||||
if !exists('g:LatexBox_fold_parts')
|
||||
let g:LatexBox_fold_parts=[
|
||||
\ "appendix",
|
||||
@@ -54,7 +52,45 @@ endif
|
||||
if !exists('g:LatexBox_fold_toc_levels')
|
||||
let g:LatexBox_fold_toc_levels=1
|
||||
endif
|
||||
if !exists('g:LatexBox_fold_automatic')
|
||||
let g:LatexBox_fold_automatic=1
|
||||
endif
|
||||
" }}}1
|
||||
|
||||
if g:LatexBox_Folding == 0
|
||||
finish
|
||||
endif
|
||||
|
||||
" {{{1 Set folding options for vim
|
||||
setl foldexpr=LatexBox_FoldLevel(v:lnum)
|
||||
if g:LatexBox_fold_text == 1
|
||||
setl foldtext=LatexBox_FoldText()
|
||||
endif
|
||||
if g:LatexBox_fold_automatic == 1
|
||||
setl foldmethod=expr
|
||||
|
||||
"
|
||||
" The foldexpr function returns "=" for most lines, which means it can become
|
||||
" slow for large files. The following is a hack that is based on this reply to
|
||||
" a discussion on the Vim Developer list:
|
||||
" http://permalink.gmane.org/gmane.editors.vim.devel/14100
|
||||
"
|
||||
augroup FastFold
|
||||
autocmd!
|
||||
autocmd InsertEnter *.tex if !&diff | setlocal foldmethod=manual | endif
|
||||
autocmd InsertLeave *.tex if !&diff | setlocal foldmethod=expr | endif
|
||||
augroup end
|
||||
else
|
||||
setl foldmethod=manual
|
||||
endif
|
||||
|
||||
function! LatexBox_FoldOnDemand()
|
||||
setl foldmethod=expr
|
||||
normal! zx
|
||||
setl foldmethod=manual
|
||||
endfunction
|
||||
|
||||
command! LatexFold call LatexBox_FoldOnDemand()
|
||||
|
||||
" {{{1 LatexBox_FoldLevel help functions
|
||||
|
||||
@@ -122,7 +158,7 @@ let s:notcomment = '\%(\%(\\\@<!\%(\\\\\)*\)\@<=%.*\)\@<!'
|
||||
let s:envbeginpattern = s:notcomment . s:notbslash . '\\begin\s*{.\{-}}'
|
||||
let s:envendpattern = s:notcomment . s:notbslash . '\\end\s*{.\{-}}'
|
||||
let s:foldparts = '^\s*\\\%(' . join(g:LatexBox_fold_parts, '\|') . '\)'
|
||||
let s:folded = '\(% Fake\|\\\(document\|begin\|end\|'
|
||||
let s:folded = '\(% Fake\|\\\(document\|begin\|end\|paragraph\|'
|
||||
\ . 'front\|main\|back\|app\|sub\|section\|chapter\|part\)\)'
|
||||
|
||||
function! LatexBox_FoldLevel(lnum)
|
||||
@@ -134,9 +170,9 @@ function! LatexBox_FoldLevel(lnum)
|
||||
|
||||
" Fold preamble
|
||||
if g:LatexBox_fold_preamble == 1
|
||||
if line =~# '\s*\\documentclass'
|
||||
if line =~# s:notcomment . s:notbslash . '\s*\\documentclass'
|
||||
return ">1"
|
||||
elseif line =~# '^\s*\\begin\s*{\s*document\s*}'
|
||||
elseif line =~# s:notcomment . s:notbslash . '\s*\\begin\s*{\s*document\s*}'
|
||||
return "0"
|
||||
endif
|
||||
endif
|
||||
@@ -159,11 +195,32 @@ function! LatexBox_FoldLevel(lnum)
|
||||
endif
|
||||
|
||||
" Fold environments
|
||||
if g:LatexBox_fold_envs == 1
|
||||
if line =~# s:envbeginpattern && line =~# s:envendpattern
|
||||
" If the begin and end pattern are on the same line , do not fold
|
||||
return "="
|
||||
else
|
||||
if line =~# s:envbeginpattern
|
||||
if g:LatexBox_fold_envs == 1
|
||||
return "a1"
|
||||
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"
|
||||
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
|
||||
|
||||
@@ -228,28 +285,17 @@ function! s:CaptionFrame(line)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" {{{1 LatexBox_FoldText
|
||||
function! LatexBox_FoldText()
|
||||
" Initialize
|
||||
function! LatexBox_FoldText_title()
|
||||
let line = getline(v:foldstart)
|
||||
let nlines = v:foldend - v:foldstart + 1
|
||||
let level = ''
|
||||
let title = 'Not defined'
|
||||
|
||||
" Fold level
|
||||
let level = strpart(repeat('-', v:foldlevel-1) . '*',0,3)
|
||||
if v:foldlevel > 3
|
||||
let level = strpart(level, 1) . v:foldlevel
|
||||
endif
|
||||
let level = printf('%-3s', level)
|
||||
|
||||
" Preamble
|
||||
if line =~ '\s*\\documentclass'
|
||||
let title = "Preamble"
|
||||
return "Preamble"
|
||||
endif
|
||||
|
||||
" Parts, sections and fakesections
|
||||
let sections = '\(\(sub\)*section\|part\|chapter\)'
|
||||
let sections = '\(\(sub\)*\(section\|paragraph\)\|part\|chapter\)'
|
||||
let secpat1 = '^\s*\\' . sections . '\*\?\s*{'
|
||||
let secpat2 = '^\s*\\' . sections . '\*\?\s*\['
|
||||
if line =~ '\\frontmatter'
|
||||
@@ -261,11 +307,11 @@ function! LatexBox_FoldText()
|
||||
elseif line =~ '\\appendix'
|
||||
let title = "Appendix"
|
||||
elseif line =~ secpat1 . '.*}'
|
||||
let title = matchstr(line, secpat1 . '\zs.*\ze}')
|
||||
let title = matchstr(line, secpat1 . '\zs.\{-}\ze}')
|
||||
elseif line =~ secpat1
|
||||
let title = matchstr(line, secpat1 . '\zs.*')
|
||||
elseif line =~ secpat2 . '.*\]'
|
||||
let title = matchstr(line, secpat2 . '\zs.*\ze\]')
|
||||
let title = matchstr(line, secpat2 . '\zs.\{-}\ze\]')
|
||||
elseif line =~ secpat2
|
||||
let title = matchstr(line, secpat2 . '\zs.*')
|
||||
elseif line =~ 'Fake' . sections . ':'
|
||||
@@ -311,9 +357,26 @@ function! LatexBox_FoldText()
|
||||
endif
|
||||
endif
|
||||
|
||||
let title = strpart(title, 0, 68)
|
||||
return title
|
||||
endfunction
|
||||
|
||||
" {{{1 LatexBox_FoldText
|
||||
function! LatexBox_FoldText()
|
||||
let nlines = v:foldend - v:foldstart + 1
|
||||
let title = strpart(LatexBox_FoldText_title(), 0, 68)
|
||||
let level = ''
|
||||
|
||||
" Fold level
|
||||
let level = strpart(repeat('-', v:foldlevel-1) . '*',0,3)
|
||||
if v:foldlevel > 3
|
||||
let level = strpart(level, 1) . v:foldlevel
|
||||
endif
|
||||
let level = printf('%-3s', level)
|
||||
|
||||
return printf('%-3s %-68s #%5d', level, title, nlines)
|
||||
endfunction
|
||||
|
||||
" {{{1 Footer
|
||||
" vim:fdm=marker:ff=unix:ts=4:sw=4
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" LaTeX Box latexmk functions
|
||||
|
||||
" Options and variables {{{
|
||||
@@ -23,6 +25,9 @@ endif
|
||||
if ! exists('g:LatexBox_quickfix')
|
||||
let g:LatexBox_quickfix = 1
|
||||
endif
|
||||
if ! exists('g:LatexBox_personal_latexmkrc')
|
||||
let g:LatexBox_personal_latexmkrc = 0
|
||||
endif
|
||||
|
||||
" }}}
|
||||
|
||||
@@ -138,7 +143,7 @@ endfunction
|
||||
|
||||
function! LatexBox_Latexmk(force)
|
||||
" Define often used names
|
||||
let basepath = LatexBox_GetTexBasename(1)
|
||||
let basepath = LatexBox_GetBuildBasename(1)
|
||||
let basename = fnamemodify(basepath, ':t')
|
||||
let texroot = shellescape(LatexBox_GetTexRoot())
|
||||
let mainfile = fnameescape(fnamemodify(LatexBox_GetMainTexFile(), ':t'))
|
||||
@@ -162,9 +167,13 @@ function! LatexBox_Latexmk(force)
|
||||
let env = 'set max_print_line=' . max_print_line . ' & '
|
||||
elseif match(&shell, '/tcsh$') >= 0
|
||||
let env = 'setenv max_print_line ' . max_print_line . '; '
|
||||
else
|
||||
if fnamemodify(&shell, ':t') ==# 'fish'
|
||||
let env = 'set max_print_line ' . max_print_line . '; and '
|
||||
else
|
||||
let env = 'max_print_line=' . max_print_line
|
||||
endif
|
||||
endif
|
||||
|
||||
" Set environment options
|
||||
let env .= ' ' . g:LatexBox_latexmk_env . ' '
|
||||
@@ -173,11 +182,17 @@ function! LatexBox_Latexmk(force)
|
||||
if has('win32')
|
||||
" Make sure to switch drive as well as directory
|
||||
let cmd = 'cd /D ' . texroot . ' && '
|
||||
else
|
||||
if fnamemodify(&shell, ':t') ==# 'fish'
|
||||
let cmd = 'cd ' . texroot . '; and '
|
||||
else
|
||||
let cmd = 'cd ' . texroot . ' && '
|
||||
endif
|
||||
endif
|
||||
let cmd .= env . ' latexmk'
|
||||
if ! g:LatexBox_personal_latexmkrc
|
||||
let cmd .= ' -' . g:LatexBox_output_type
|
||||
endif
|
||||
let cmd .= ' -quiet '
|
||||
let cmd .= g:LatexBox_latexmk_options
|
||||
if a:force
|
||||
@@ -197,9 +212,13 @@ function! LatexBox_Latexmk(force)
|
||||
" Redirect output to null
|
||||
if has('win32')
|
||||
let cmd .= ' >nul'
|
||||
else
|
||||
if fnamemodify(&shell, ':t') ==# 'fish'
|
||||
let cmd .= ' >/dev/null ^/dev/null'
|
||||
else
|
||||
let cmd .= ' &>/dev/null'
|
||||
endif
|
||||
endif
|
||||
|
||||
if g:LatexBox_latexmk_async
|
||||
" Check if VIM server exists
|
||||
@@ -325,7 +344,7 @@ function! LatexBox_Latexmk(force)
|
||||
let g:latexmk_running_pids[basepath] = pid
|
||||
else
|
||||
let pid = substitute(system('pgrep -f "perl.*'
|
||||
\ . mainfile . '"'),'\D','','')
|
||||
\ . mainfile . '" | head -n 1'),'\D','','')
|
||||
let g:latexmk_running_pids[basepath] = pid
|
||||
endif
|
||||
else
|
||||
@@ -352,7 +371,7 @@ function! LatexBox_LatexmkClean(cleanall)
|
||||
return
|
||||
endif
|
||||
|
||||
let basename = LatexBox_GetTexBasename(1)
|
||||
let basename = LatexBox_GetBuildBasename(1)
|
||||
|
||||
if has_key(g:latexmk_running_pids, basename)
|
||||
echomsg "don't clean when latexmk is running"
|
||||
@@ -413,22 +432,59 @@ function! LatexBox_LatexErrors(status, ...)
|
||||
if a:status < 0
|
||||
botright copen
|
||||
else
|
||||
" Write status message to screen
|
||||
redraw
|
||||
if a:status > 0 || len(getqflist())>1
|
||||
echomsg 'Compiling to ' . g:LatexBox_output_type . ' ... failed!'
|
||||
else
|
||||
echomsg 'Compiling to ' . g:LatexBox_output_type . ' ... success!'
|
||||
endif
|
||||
|
||||
" Only open window when an error/warning is detected
|
||||
if g:LatexBox_quickfix
|
||||
if g:LatexBox_quickfix >= 3
|
||||
\ ? s:log_contains_error(log)
|
||||
\ : g:LatexBox_quickfix > 0
|
||||
belowright cw
|
||||
if g:LatexBox_quickfix==2
|
||||
if g:LatexBox_quickfix == 2 || g:LatexBox_quickfix == 4
|
||||
wincmd p
|
||||
endif
|
||||
endif
|
||||
redraw
|
||||
|
||||
" Write status message to screen
|
||||
if a:status > 0 || len(getqflist())>1
|
||||
if s:log_contains_error(log)
|
||||
let l:status_msg = ' ... failed!'
|
||||
else
|
||||
let l:status_msg = ' ... there were warnings!'
|
||||
endif
|
||||
else
|
||||
let l:status_msg = ' ... success!'
|
||||
endif
|
||||
echomsg 'Compiling to ' . g:LatexBox_output_type . l:status_msg
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Redefine uniq() for compatibility with older Vim versions (< 7.4.218)
|
||||
function! s:uniq(list)
|
||||
if exists('*uniq')
|
||||
return uniq(a:list)
|
||||
elseif len(a:list) <= 1
|
||||
return a:list
|
||||
endif
|
||||
|
||||
let last_element = get(a:list,0)
|
||||
let uniq_list = [last_element]
|
||||
|
||||
for i in range(1, len(a:list)-1)
|
||||
let next_element = get(a:list, i)
|
||||
if last_element == next_element
|
||||
continue
|
||||
endif
|
||||
let last_element = next_element
|
||||
call add(uniq_list, next_element)
|
||||
endfor
|
||||
return uniq_list
|
||||
endfunction
|
||||
|
||||
function! s:log_contains_error(file)
|
||||
let lines = readfile(a:file)
|
||||
let lines = filter(lines, 'v:val =~ ''^.*:\d\+: ''')
|
||||
let lines = s:uniq(map(lines, 'matchstr(v:val, ''^.*\ze:\d\+:'')'))
|
||||
let lines = filter(lines, 'filereadable(fnameescape(v:val))')
|
||||
return len(lines) > 0
|
||||
endfunction
|
||||
" }}}
|
||||
|
||||
@@ -448,7 +504,7 @@ function! LatexBox_LatexmkStatus(detailed)
|
||||
echo "latexmk is running (" . plist . ")"
|
||||
endif
|
||||
else
|
||||
let basename = LatexBox_GetTexBasename(1)
|
||||
let basename = LatexBox_GetBuildBasename(1)
|
||||
if has_key(g:latexmk_running_pids, basename)
|
||||
echo "latexmk is running"
|
||||
else
|
||||
@@ -462,12 +518,12 @@ endfunction
|
||||
function! LatexBox_LatexmkStop(silent)
|
||||
if empty(g:latexmk_running_pids)
|
||||
if !a:silent
|
||||
let basepath = LatexBox_GetTexBasename(1)
|
||||
let basepath = LatexBox_GetBuildBasename(1)
|
||||
let basename = fnamemodify(basepath, ':t')
|
||||
echoerr "latexmk is not running for `" . basename . "'"
|
||||
endif
|
||||
else
|
||||
let basepath = LatexBox_GetTexBasename(1)
|
||||
let basepath = LatexBox_GetBuildBasename(1)
|
||||
let basename = fnamemodify(basepath, ':t')
|
||||
if has_key(g:latexmk_running_pids, basepath)
|
||||
call s:kill_latexmk_process(g:latexmk_running_pids[basepath])
|
||||
@@ -498,3 +554,5 @@ endif
|
||||
" }}}
|
||||
|
||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" LaTeX Box mappings
|
||||
|
||||
if exists("g:LatexBox_no_mappings")
|
||||
@@ -5,22 +7,32 @@ if exists("g:LatexBox_no_mappings")
|
||||
endif
|
||||
|
||||
" latexmk {{{
|
||||
map <buffer> <LocalLeader>ll :Latexmk<CR>
|
||||
map <buffer> <LocalLeader>lL :Latexmk!<CR>
|
||||
map <buffer> <LocalLeader>lc :LatexmkClean<CR>
|
||||
map <buffer> <LocalLeader>lC :LatexmkClean!<CR>
|
||||
map <buffer> <LocalLeader>lg :LatexmkStatus<CR>
|
||||
map <buffer> <LocalLeader>lG :LatexmkStatus!<CR>
|
||||
map <buffer> <LocalLeader>lk :LatexmkStop<CR>
|
||||
map <buffer> <LocalLeader>le :LatexErrors<CR>
|
||||
noremap <buffer> <LocalLeader>ll :Latexmk<CR>
|
||||
noremap <buffer> <LocalLeader>lL :Latexmk!<CR>
|
||||
noremap <buffer> <LocalLeader>lc :LatexmkClean<CR>
|
||||
noremap <buffer> <LocalLeader>lC :LatexmkClean!<CR>
|
||||
noremap <buffer> <LocalLeader>lg :LatexmkStatus<CR>
|
||||
noremap <buffer> <LocalLeader>lG :LatexmkStatus!<CR>
|
||||
noremap <buffer> <LocalLeader>lk :LatexmkStop<CR>
|
||||
noremap <buffer> <LocalLeader>le :LatexErrors<CR>
|
||||
" }}}
|
||||
|
||||
" View {{{
|
||||
map <buffer> <LocalLeader>lv :LatexView<CR>
|
||||
noremap <buffer> <LocalLeader>lv :LatexView<CR>
|
||||
" }}}
|
||||
|
||||
" TOC {{{
|
||||
map <silent> <buffer> <LocalLeader>lt :LatexTOC<CR>
|
||||
noremap <silent> <buffer> <LocalLeader>lt :LatexTOC<CR>
|
||||
" }}}
|
||||
|
||||
" List of labels {{{
|
||||
noremap <silent> <buffer> <LocalLeader>lj :LatexLabels<CR>
|
||||
" }}}
|
||||
|
||||
" Folding {{{
|
||||
if g:LatexBox_Folding == 1
|
||||
noremap <buffer> <LocalLeader>lf :LatexFold<CR>
|
||||
endif
|
||||
" }}}
|
||||
|
||||
" Jump to match {{{
|
||||
@@ -34,12 +46,12 @@ endif
|
||||
" Define text objects {{{
|
||||
vmap <buffer> ie <Plug>LatexBox_SelectCurrentEnvInner
|
||||
vmap <buffer> ae <Plug>LatexBox_SelectCurrentEnvOuter
|
||||
omap <buffer> ie :normal vie<CR>
|
||||
omap <buffer> ae :normal vae<CR>
|
||||
onoremap <buffer> ie :normal vie<CR>
|
||||
onoremap <buffer> ae :normal vae<CR>
|
||||
vmap <buffer> i$ <Plug>LatexBox_SelectInlineMathInner
|
||||
vmap <buffer> a$ <Plug>LatexBox_SelectInlineMathOuter
|
||||
omap <buffer> i$ :normal vi$<CR>
|
||||
omap <buffer> a$ :normal va$<CR>
|
||||
onoremap <buffer> i$ :normal vi$<CR>
|
||||
onoremap <buffer> a$ :normal va$<CR>
|
||||
" }}}
|
||||
|
||||
" Jump between sections {{{
|
||||
@@ -94,3 +106,5 @@ vnoremap <buffer> <silent> [[ :<c-u>call <SID>LatexBoxNextSection(0,1,1)<CR>
|
||||
" }}}
|
||||
|
||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" LaTeX Box motion functions
|
||||
|
||||
" Motion options {{{
|
||||
@@ -345,23 +347,21 @@ function! s:ReadTOC(auxfile, texfile, ...)
|
||||
endif
|
||||
" parse section number
|
||||
let secnum = ''
|
||||
if len(tree[1]) > 3 && empty(tree[1][1])
|
||||
call remove(tree[1], 1)
|
||||
let tree = tree[1]
|
||||
if len(tree) > 3 && empty(tree[1])
|
||||
call remove(tree, 1)
|
||||
endif
|
||||
if len(tree[1]) > 1 && tree[1][0] =~ '\(numberline\|tocsection\)'
|
||||
if !empty(tree[1][1])
|
||||
let secnum = LatexBox_TreeToTex(tree[1][1])
|
||||
if len(tree) > 1 && type(tree[0]) == type("") && tree[0] =~ '^\\\(\(chapter\)\?numberline\|tocsection\)'
|
||||
let secnum = LatexBox_TreeToTex(tree[1])
|
||||
let secnum = substitute(secnum, '\\\S\+\s', '', 'g')
|
||||
let secnum = substitute(secnum, '\\\S\+{\(.\{-}\)}', '\1', 'g')
|
||||
let secnum = substitute(secnum, '^{\+\|}\+$', '', 'g')
|
||||
endif
|
||||
let tree = tree[1][2:]
|
||||
else
|
||||
let tree = tree[1]
|
||||
call remove(tree, 1)
|
||||
endif
|
||||
" parse section title
|
||||
let text = LatexBox_TreeToTex(tree)
|
||||
let text = substitute(text, '^{\+\|}\+$', '', 'g')
|
||||
let text = substitute(text, '\m^\\\(no\)\?\(chapter\)\?numberline\s*', '', '')
|
||||
let text = substitute(text, '\*', '', 'g')
|
||||
|
||||
" add TOC entry
|
||||
@@ -381,6 +381,21 @@ function! LatexBox_TOC(...)
|
||||
|
||||
" Check if window already exists
|
||||
let winnr = bufwinnr(bufnr('LaTeX TOC'))
|
||||
" Two types of splits, horizontal and vertical
|
||||
let l:hori = "new"
|
||||
let l:vert = "vnew"
|
||||
|
||||
" Set General Vars and initialize size
|
||||
let l:type = g:LatexBox_split_type
|
||||
let l:size = 10
|
||||
|
||||
" Size detection
|
||||
if l:type == l:hori
|
||||
let l:size = g:LatexBox_split_length
|
||||
elseif l:type == l:vert
|
||||
let l:size = g:LatexBox_split_width
|
||||
endif
|
||||
|
||||
if winnr >= 0
|
||||
if a:0 == 0
|
||||
silent execute winnr . 'wincmd w'
|
||||
@@ -388,13 +403,12 @@ function! LatexBox_TOC(...)
|
||||
" Supplying an argument to this function causes toggling instead
|
||||
" of jumping to the TOC window
|
||||
if g:LatexBox_split_resize
|
||||
silent exe "set columns-=" . g:LatexBox_split_width
|
||||
silent exe "set columns-=" . l:size
|
||||
endif
|
||||
silent execute 'bwipeout' . bufnr('LaTeX TOC')
|
||||
endif
|
||||
return
|
||||
endif
|
||||
|
||||
" Read TOC
|
||||
let [toc, fileindices] = s:ReadTOC(LatexBox_GetAuxFile(),
|
||||
\ LatexBox_GetMainTexFile())
|
||||
@@ -405,9 +419,10 @@ function! LatexBox_TOC(...)
|
||||
|
||||
" Create TOC window and set local settings
|
||||
if g:LatexBox_split_resize
|
||||
silent exe "set columns+=" . g:LatexBox_split_width
|
||||
silent exe "set columns+=" . l:size
|
||||
endif
|
||||
silent exe g:LatexBox_split_side g:LatexBox_split_width . 'vnew LaTeX\ TOC'
|
||||
silent exe g:LatexBox_split_side l:size . l:type . ' LaTeX\ TOC'
|
||||
|
||||
let b:toc = toc
|
||||
let b:toc_numbers = 1
|
||||
let b:calling_win = bufwinnr(calling_buf)
|
||||
@@ -529,3 +544,5 @@ command! LatexTOCToggle call LatexBox_TOC(1)
|
||||
" }}}
|
||||
|
||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
|
||||
|
||||
" {{{1 Settings
|
||||
setlocal buftype=nofile
|
||||
setlocal bufhidden=wipe
|
||||
@@ -40,13 +42,9 @@ endfunction
|
||||
|
||||
" {{{2 EscapeTitle
|
||||
function! s:EscapeTitle(titlestr)
|
||||
" Credit goes to Marcin Szamotulski for the following fix. It allows to
|
||||
" match through commands added by TeX.
|
||||
let titlestr = substitute(a:titlestr, '\\\w*\>\s*\%({[^}]*}\)\?', '.*', 'g')
|
||||
|
||||
let titlestr = escape(titlestr, '\')
|
||||
let titlestr = substitute(titlestr, ' ', '\\_\\s\\+', 'g')
|
||||
|
||||
let titlestr = substitute(a:titlestr, '\\[a-zA-Z@]*\>\s*{\?', '.*', 'g')
|
||||
let titlestr = substitute(titlestr, '}', '', 'g')
|
||||
let titlestr = substitute(titlestr, '\%(\.\*\s*\)\{2,}', '.*', 'g')
|
||||
return titlestr
|
||||
endfunction
|
||||
|
||||
@@ -80,14 +78,23 @@ function! s:TOCActivate(close)
|
||||
|
||||
execute b:calling_win . 'wincmd w'
|
||||
|
||||
let root = fnamemodify(entry['file'], ':h') . '/'
|
||||
let files = [entry['file']]
|
||||
for line in filter(readfile(entry['file']), 'v:val =~ ''\\input{''')
|
||||
call add(files, matchstr(line, '{\zs.*\ze\(\.tex\)\?}') . '.tex')
|
||||
let file = matchstr(line, '{\zs.\{-}\ze\(\.tex\)\?}') . '.tex'
|
||||
if file[0] != '/'
|
||||
let file = root . file
|
||||
endif
|
||||
call add(files, file)
|
||||
endfor
|
||||
|
||||
" Find section in buffer (or inputted files)
|
||||
call s:TOCFindMatch('\\' . entry['level'] . '\_\s*{' . titlestr . '}',
|
||||
\ duplicates, files)
|
||||
if entry['level'] == 'label'
|
||||
let re = '\(\\label\_\s*{\|label\s*=\s*\)' . titlestr . '\>'
|
||||
else
|
||||
let re = '\\' . entry['level'] . '\_\s*{' . titlestr . '}'
|
||||
endif
|
||||
call s:TOCFindMatch(re, duplicates, files)
|
||||
|
||||
if a:close
|
||||
if g:LatexBox_split_resize
|
||||
@@ -101,6 +108,10 @@ endfunction
|
||||
|
||||
" {{{2 TOCFindMatch
|
||||
function! s:TOCFindMatch(strsearch,duplicates,files)
|
||||
if len(a:files) == 0
|
||||
echoerr "Could not find: " . a:strsearch
|
||||
return
|
||||
endif
|
||||
|
||||
call s:TOCOpenBuf(a:files[0])
|
||||
let dups = a:duplicates
|
||||
@@ -120,7 +131,6 @@ function! s:TOCFindMatch(strsearch,duplicates,files)
|
||||
endif
|
||||
|
||||
call s:TOCFindMatch(a:strsearch,dups,a:files[1:])
|
||||
|
||||
endfunction
|
||||
|
||||
" {{{2 TOCFoldLevel
|
||||
@@ -170,6 +180,7 @@ function! s:TOCOpenBuf(file)
|
||||
let bnr = bufnr(a:file)
|
||||
endif
|
||||
execute 'buffer! ' . bnr
|
||||
normal! gg
|
||||
|
||||
endfunction
|
||||
|
||||
@@ -191,3 +202,5 @@ nnoremap <buffer> <silent> <Esc>OD h
|
||||
" }}}1
|
||||
|
||||
" vim:fdm=marker:ff=unix:et:ts=4:sw=4
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: LessCSS
|
||||
" Author: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -13,13 +15,16 @@ let b:did_ftplugin = 1
|
||||
let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
|
||||
|
||||
setlocal iskeyword+=-
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal commentstring=//%s
|
||||
setlocal define=^\\s*\\%(@mixin\\\|=\\)
|
||||
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
|
||||
setlocal omnifunc=csscomplete#CompleteCSS
|
||||
setlocal suffixesadd=.less
|
||||
setlocal comments=s1:/*,mb:*,ex:*/
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,://
|
||||
setlocal fo=croql
|
||||
|
||||
let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
|
||||
|
||||
" vim:set sw=2:
|
||||
|
||||
endif
|
||||
|
||||
65
ftplugin/liquid.vim
Normal file
65
ftplugin/liquid.vim
Normal file
@@ -0,0 +1,65 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'liquid') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Liquid
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 May 21
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists('g:liquid_default_subtype')
|
||||
let g:liquid_default_subtype = 'html'
|
||||
endif
|
||||
|
||||
if !exists('b:liquid_subtype')
|
||||
let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
|
||||
let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+')
|
||||
if b:liquid_subtype == ''
|
||||
let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+')
|
||||
endif
|
||||
if b:liquid_subtype == ''
|
||||
let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$')
|
||||
endif
|
||||
if b:liquid_subtype == ''
|
||||
let b:liquid_subtype = g:liquid_default_subtype
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists('b:liquid_subtype') && b:liquid_subtype != ''
|
||||
exe 'runtime! ftplugin/'.b:liquid_subtype.'.vim ftplugin/'.b:liquid_subtype.'_*.vim ftplugin/'.b:liquid_subtype.'/*.vim'
|
||||
else
|
||||
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
if exists('b:undo_ftplugin')
|
||||
let b:undo_ftplugin .= '|'
|
||||
else
|
||||
let b:undo_ftplugin = ''
|
||||
endif
|
||||
if exists('b:browsefilter')
|
||||
let b:browsefilter = "\n".b:browsefilter
|
||||
else
|
||||
let b:browsefilter = ''
|
||||
endif
|
||||
if exists('b:match_words')
|
||||
let b:match_words .= ','
|
||||
elseif exists('loaded_matchit')
|
||||
let b:match_words = ''
|
||||
endif
|
||||
|
||||
if has('gui_win32')
|
||||
let b:browsefilter="Liquid Files (*.liquid)\t*.liquid" . b:browsefilter
|
||||
endif
|
||||
|
||||
if exists('loaded_matchit')
|
||||
let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,<\(capture\|comment\|highlight\)\>:\<end\1\>'
|
||||
endif
|
||||
|
||||
setlocal commentstring={%\ comment\ %}%s{%\ endcomment\ %}
|
||||
|
||||
let b:undo_ftplugin .= 'setl cms< | unlet! b:browsefilter b:match_words'
|
||||
|
||||
endif
|
||||
@@ -1,6 +1,9 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Markdown
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -10,7 +13,7 @@ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
|
||||
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
|
||||
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
|
||||
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
|
||||
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
|
||||
|
||||
if exists('b:undo_ftplugin')
|
||||
let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
|
||||
@@ -18,4 +21,34 @@ else
|
||||
let b:undo_ftplugin = "setl cms< com< fo< flp<"
|
||||
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:
|
||||
|
||||
endif
|
||||
|
||||
124
ftplugin/mustache.vim
Normal file
124
ftplugin/mustache.vim
Normal file
@@ -0,0 +1,124 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'handlebars') == -1
|
||||
|
||||
if exists('g:loaded_mustache_handlebars') && g:loaded_mustache_handlebars
|
||||
finish
|
||||
endif
|
||||
let g:loaded_mustache_handlebars = 1
|
||||
|
||||
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
|
||||
|
||||
" Operators are available by default. Set `let g:mustache_operators = 0` in
|
||||
" your .vimrc to disable them.
|
||||
if ! exists("g:mustache_operators")
|
||||
let g:mustache_operators = 1
|
||||
endif
|
||||
|
||||
if exists("g:mustache_operators") && g:mustache_operators
|
||||
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>
|
||||
endif
|
||||
|
||||
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
|
||||
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||
|
||||
" Language: OCaml
|
||||
" Maintainer: David Baelde <firstname.name@ens-lyon.org>
|
||||
" Mike Leary <leary@nwlink.com>
|
||||
@@ -503,3 +505,5 @@ let &cpoptions=s:cposet
|
||||
unlet s:cposet
|
||||
|
||||
" vim:sw=2
|
||||
|
||||
endif
|
||||
|
||||
19
ftplugin/opencl.vim
Normal file
19
ftplugin/opencl.vim
Normal file
@@ -0,0 +1,19 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'opencl') == -1
|
||||
|
||||
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
|
||||
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Perl
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
@@ -77,12 +79,15 @@ endif
|
||||
"---------------------------------------------
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
" proper matching for matchit plugin
|
||||
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
|
||||
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Perl 6
|
||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||
@@ -20,7 +22,7 @@ setlocal formatoptions-=t
|
||||
setlocal formatoptions+=crqol
|
||||
setlocal keywordprg=p6doc
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal comments=:#\|,:#=,:#
|
||||
setlocal commentstring=#%s
|
||||
|
||||
" Change the browse dialog on Win32 to show mainly Perl-related files
|
||||
@@ -43,7 +45,7 @@ setlocal define=[^A-Za-z_]
|
||||
" after/ftplugin/perl6.vim file that contains
|
||||
" set isfname-=:
|
||||
set isfname+=:
|
||||
setlocal iskeyword=48-57,_,A-Z,a-z,:,-
|
||||
setlocal iskeyword=@,48-57,_,192-255,-
|
||||
|
||||
" Set this once, globally.
|
||||
if !exists("perlpath")
|
||||
@@ -65,13 +67,26 @@ if !exists("perlpath")
|
||||
endif
|
||||
endif
|
||||
|
||||
" Append perlpath to the existing path value, if it is set. Since we don't
|
||||
" use += to do it because of the commas in perlpath, we have to handle the
|
||||
" global / local settings, too.
|
||||
if &l:path == ""
|
||||
if &g:path == ""
|
||||
let &l:path=perlpath
|
||||
else
|
||||
let &l:path=&g:path.",".perlpath
|
||||
endif
|
||||
else
|
||||
let &l:path=&l:path.",".perlpath
|
||||
endif
|
||||
"---------------------------------------------
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk<" .
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< isk< kp< path<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
|
||||
38
ftplugin/ps1.vim
Normal file
38
ftplugin/ps1.vim
Normal file
@@ -0,0 +1,38 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Windows PowerShell
|
||||
" Maintainer: Peter Provost <peter@provost.org>
|
||||
" Version: 2.10
|
||||
" Project Repository: https://github.com/PProvost/vim-ps1
|
||||
" Vim Script Page: http://www.vim.org/scripts/script.php?script_id=1327
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
" Don't load another plug-in for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal tw=0
|
||||
setlocal commentstring=#%s
|
||||
setlocal formatoptions=tcqro
|
||||
" Enable autocompletion of hyphenated PowerShell commands,
|
||||
" e.g. Get-Content or Get-ADUser
|
||||
setlocal iskeyword+=-
|
||||
|
||||
" Change the browse dialog on Win32 to show mainly PowerShell-related files
|
||||
if has("gui_win32")
|
||||
let b:browsefilter =
|
||||
\ "All PowerShell Files (*.ps1, *.psd1, *.psm1, *.ps1xml)\t*.ps1;*.psd1;*.psm1;*.ps1xml\n" .
|
||||
\ "PowerShell Script Files (*.ps1)\t*.ps1\n" .
|
||||
\ "PowerShell Module Files (*.psd1, *.psm1)\t*.psd1;*.psm1\n" .
|
||||
\ "PowerShell XML Files (*.ps1xml)\t*.ps1xml\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
" Undo the stuff we changed
|
||||
let b:undo_ftplugin = "setlocal tw< cms< fo<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
|
||||
endif
|
||||
35
ftplugin/ps1xml.vim
Normal file
35
ftplugin/ps1xml.vim
Normal file
@@ -0,0 +1,35 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Windows PowerShell
|
||||
" Maintainer: Peter Provost <peter@provost.org>
|
||||
" Version: 2.10
|
||||
" Project Repository: https://github.com/PProvost/vim-ps1
|
||||
" Vim Script Page: http://www.vim.org/scripts/script.php?script_id=1327
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
" Don't load another plug-in for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal tw=0
|
||||
setlocal commentstring=#%s
|
||||
setlocal formatoptions=tcqro
|
||||
|
||||
" Change the browse dialog on Win32 to show mainly PowerShell-related files
|
||||
if has("gui_win32")
|
||||
let b:browsefilter =
|
||||
\ "All PowerShell Files (*.ps1, *.psd1, *.psm1, *.ps1xml)\t*.ps1;*.psd1;*.psm1;*.ps1xml\n" .
|
||||
\ "PowerShell Script Files (*.ps1)\t*.ps1\n" .
|
||||
\ "PowerShell Module Files (*.psd1, *.psm1)\t*.psd1;*.psm1\n" .
|
||||
\ "PowerShell XML Files (*.ps1xml)\t*.ps1xml\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
" Undo the stuff we changed
|
||||
let b:undo_ftplugin = "setlocal tw< cms< fo<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
|
||||
endif
|
||||
@@ -1,137 +1,10 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Puppet
|
||||
" Maintainer: Todd Zullinger <tmz@pobox.com>
|
||||
" Last Change: 2009 Aug 19
|
||||
" vim: set sw=4 sts=4:
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
|
||||
|
||||
setl ts=2
|
||||
setl sts=2
|
||||
setl sw=2
|
||||
setl et
|
||||
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
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'r-lang') == -1
|
||||
|
||||
" ftplugin for R files
|
||||
"
|
||||
" Author: Iago Mosqueira <i.mosqueira@ic.ac.uk>
|
||||
@@ -67,3 +69,5 @@ inoremap <M-Enter> <Esc>:execute line(".") 'w >> ~/.r-pipe'<CR>o
|
||||
|
||||
" Send current file to R
|
||||
noremap <buffer> <F5> :execute '1 ,' line("$") 'w >> ~/.r-pipe' <CR><CR>
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'r-lang') == -1
|
||||
|
||||
" ftplugin for R help files
|
||||
"
|
||||
" Author: Johannes Ranke <jranke@uni-bremen.de>
|
||||
@@ -46,3 +48,5 @@ vnoremap <buffer> r :w >> ~/.r-pipe<CR>
|
||||
|
||||
" Write and process mode (somehow mapping <C-Enter> does not work)
|
||||
inoremap <M-Enter> <Esc>:execute line(".") 'w >> ~/.r-pipe'<CR>o
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'r-lang') == -1
|
||||
|
||||
" ftplugin for Sweave files containing both LaTeX and R code
|
||||
"
|
||||
" Maintainer: Johannes Ranke <jranke@uni-bremen.de>
|
||||
@@ -57,3 +59,5 @@ vnoremap <buffer> r :w >> ~/.r-pipe<CR>
|
||||
|
||||
" Write and process mode (somehow mapping <C-Enter> does not work)
|
||||
inoremap <M-Enter> <Esc>:execute line(".") 'w >> ~/.r-pipe'<CR>o
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Ruby
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -28,12 +30,13 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ ':' .
|
||||
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
|
||||
\ ':' .
|
||||
\ '\<end\>' .
|
||||
\ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' .
|
||||
\ ',{:},\[:\],(:)'
|
||||
|
||||
let b:match_skip =
|
||||
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
|
||||
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
|
||||
\ "Regexp\\|RegexpDelimiter\\|" .
|
||||
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
|
||||
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
|
||||
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
|
||||
@@ -66,10 +69,10 @@ if !exists('g:ruby_version_paths')
|
||||
let g:ruby_version_paths = {}
|
||||
endif
|
||||
|
||||
function! s:query_path(root)
|
||||
function! s:query_path(root) abort
|
||||
let code = "print $:.join %q{,}"
|
||||
if &shell =~# 'sh' && $PATH !~# '\s'
|
||||
let prefix = 'env PATH='.$PATH.' '
|
||||
if &shell =~# 'sh'
|
||||
let prefix = 'env PATH='.shellescape($PATH).' '
|
||||
else
|
||||
let prefix = ''
|
||||
endif
|
||||
@@ -91,7 +94,7 @@ function! s:query_path(root)
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! s:build_path(path)
|
||||
function! s:build_path(path) abort
|
||||
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
|
||||
if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$'
|
||||
let path = substitute(&g:path,',,$',',','') . ',' . path
|
||||
@@ -101,7 +104,7 @@ endfunction
|
||||
|
||||
if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
|
||||
let s:version_file = findfile('.ruby-version', '.;')
|
||||
if !empty(s:version_file)
|
||||
if !empty(s:version_file) && filereadable(s:version_file)
|
||||
let b:ruby_version = get(readfile(s:version_file, '', 1), '')
|
||||
if !has_key(g:ruby_version_paths, b:ruby_version)
|
||||
let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
|
||||
@@ -145,7 +148,22 @@ let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< tags< kp<"
|
||||
\."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
|
||||
\."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
|
||||
|
||||
function! s:map(mode, flags, map) abort
|
||||
let from = matchstr(a:map, '\S\+')
|
||||
if empty(mapcheck(from, a:mode))
|
||||
exe a:mode.'map' '<buffer>'.(a:0 ? a:1 : '') a:map
|
||||
let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from
|
||||
endif
|
||||
endfunction
|
||||
|
||||
cmap <buffer><script><expr> <Plug><cword> substitute(RubyCursorIdentifier(),'^$',"\022\027",'')
|
||||
cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'')
|
||||
let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><cword>| sil! cunmap <buffer> <Plug><cfile>"
|
||||
|
||||
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
nmap <buffer><script> <SID>: :<C-U>
|
||||
nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
|
||||
|
||||
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
|
||||
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
|
||||
nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
|
||||
@@ -188,33 +206,24 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
\."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'"
|
||||
endif
|
||||
|
||||
if maparg("\<C-]>",'n') == ''
|
||||
nnoremap <silent> <buffer> <C-]> :<C-U>exe v:count1."tag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> g<C-]> :<C-U>exe "tjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> g] :<C-U>exe "tselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>] :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W><C-]> :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>g<C-]> :<C-U>exe "stjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>g] :<C-U>exe "stselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>} :<C-U>exe "ptag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>g} :<C-U>exe "ptjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
let b:undo_ftplugin = b:undo_ftplugin
|
||||
\."| sil! exe 'nunmap <buffer> <C-]>'| sil! exe 'nunmap <buffer> g<C-]>'| sil! exe 'nunmap <buffer> g]'"
|
||||
\."| sil! exe 'nunmap <buffer> <C-W>]'| sil! exe 'nunmap <buffer> <C-W><C-]>'"
|
||||
\."| sil! exe 'nunmap <buffer> <C-W>g<C-]>'| sil! exe 'nunmap <buffer> <C-W>g]'"
|
||||
\."| sil! exe 'nunmap <buffer> <C-W>}'| sil! exe 'nunmap <buffer> <C-W>g}'"
|
||||
endif
|
||||
call s:map('c', '', '<C-R><C-W> <Plug><cword>')
|
||||
call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
|
||||
|
||||
if maparg("gf",'n') == ''
|
||||
" By using findfile() rather than gf's normal behavior, we prevent
|
||||
" erroneously editing a directory.
|
||||
nnoremap <silent> <buffer> gf :<C-U>exe <SID>gf(v:count1,"gf",'edit')<CR>
|
||||
nnoremap <silent> <buffer> <C-W>f :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>f",'split')<CR>
|
||||
nnoremap <silent> <buffer> <C-W><C-F> :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>\<Lt>C-F>",'split')<CR>
|
||||
nnoremap <silent> <buffer> <C-W>gf :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>gf",'tabedit')<CR>
|
||||
let b:undo_ftplugin = b:undo_ftplugin
|
||||
\."| sil! exe 'nunmap <buffer> gf' | sil! exe 'nunmap <buffer> <C-W>f' | sil! exe 'nunmap <buffer> <C-W><C-F>' | sil! exe 'nunmap <buffer> <C-W>gf'"
|
||||
endif
|
||||
cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
|
||||
call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><cword>"<CR>')
|
||||
|
||||
call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
@@ -225,7 +234,7 @@ if exists("g:did_ruby_ftplugin_functions")
|
||||
endif
|
||||
let g:did_ruby_ftplugin_functions = 1
|
||||
|
||||
function! RubyBalloonexpr()
|
||||
function! RubyBalloonexpr() abort
|
||||
if !exists('s:ri_found')
|
||||
let s:ri_found = executable('ri')
|
||||
endif
|
||||
@@ -274,13 +283,13 @@ function! RubyBalloonexpr()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:searchsyn(pattern,syn,flags,mode)
|
||||
function! s:searchsyn(pattern, syn, flags, mode) abort
|
||||
let cnt = v:count1
|
||||
norm! m'
|
||||
if a:mode ==# 'v'
|
||||
norm! gv
|
||||
endif
|
||||
let i = 0
|
||||
let cnt = v:count ? v:count : 1
|
||||
while i < cnt
|
||||
let i = i + 1
|
||||
let line = line('.')
|
||||
@@ -296,11 +305,11 @@ function! s:searchsyn(pattern,syn,flags,mode)
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
function! s:synname()
|
||||
function! s:synname() abort
|
||||
return synIDattr(synID(line('.'),col('.'),0),'name')
|
||||
endfunction
|
||||
|
||||
function! s:wrap_i(back,forward)
|
||||
function! s:wrap_i(back,forward) abort
|
||||
execute 'norm k'.a:forward
|
||||
let line = line('.')
|
||||
execute 'norm '.a:back
|
||||
@@ -310,7 +319,7 @@ function! s:wrap_i(back,forward)
|
||||
execute 'norm jV'.a:forward.'k'
|
||||
endfunction
|
||||
|
||||
function! s:wrap_a(back,forward)
|
||||
function! s:wrap_a(back,forward) abort
|
||||
execute 'norm '.a:forward
|
||||
if line('.') < line('$') && getline(line('.')+1) ==# ''
|
||||
let after = 1
|
||||
@@ -328,37 +337,55 @@ function! s:wrap_a(back,forward)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! RubyCursorIdentifier()
|
||||
function! RubyCursorIdentifier() abort
|
||||
let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
|
||||
let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
|
||||
let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
|
||||
let method = '\%(\<[_a-zA-Z]\w*\>\%([?!]\|\s*=>\@!\)\=\)'
|
||||
let method = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)'
|
||||
let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
|
||||
let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
|
||||
let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
|
||||
let [lnum, col] = searchpos(pattern,'bcn',line('.'))
|
||||
let raw = matchstr(getline('.')[col-1 : ],pattern)
|
||||
let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*:\=','','')
|
||||
let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','')
|
||||
return stripped == '' ? expand("<cword>") : stripped
|
||||
endfunction
|
||||
|
||||
function! s:gf(count,map,edit) abort
|
||||
if getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
|
||||
return a:edit.' %:h/'.target.'.rb'
|
||||
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\.\./\zs.\{-\}\ze\1')
|
||||
return a:edit.' %:h/'.target.'.rb'
|
||||
function! RubyCursorFile() abort
|
||||
let isfname = &isfname
|
||||
try
|
||||
set isfname+=:
|
||||
let cfile = expand('<cfile>')
|
||||
finally
|
||||
let isfname = &isfname
|
||||
endtry
|
||||
let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
|
||||
let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
|
||||
let ext = getline('.') =~# '^\s*\%(require\|autoload\)\>' ? '.rb' : ''
|
||||
if s:synname() ==# 'rubyConstant'
|
||||
let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
|
||||
let cfile = substitute(cfile,'::','/','g')
|
||||
let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g')
|
||||
let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
|
||||
return tolower(cfile) . '.rb'
|
||||
elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
||||
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . '.rb'
|
||||
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
|
||||
let cfile = expand('%:p:h') . target . ext
|
||||
elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
|
||||
let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
|
||||
elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
|
||||
let cfile = expand('%:p:h') . strpart(cfile, 2)
|
||||
else
|
||||
let target = expand('<cfile>')
|
||||
return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '')
|
||||
endif
|
||||
let found = findfile(target, &path, a:count)
|
||||
if found ==# ''
|
||||
return 'norm! '.a:count.a:map
|
||||
let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]'
|
||||
let cfile = substitute(cfile, cwdpat, '.', '')
|
||||
if fnameescape(cfile) !=# cfile
|
||||
return '+ '.fnameescape(cfile)
|
||||
else
|
||||
return a:edit.' '.fnameescape(found)
|
||||
return cfile
|
||||
endif
|
||||
endfunction
|
||||
|
||||
@@ -393,3 +420,5 @@ endfunction
|
||||
"
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
" Vim syntax file
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
" Language: Rust
|
||||
" Description: Vim syntax file for Rust
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Last Change: 2013 Jul 10
|
||||
" Maintainer: Kevin Ballard <kevin@sb.org>
|
||||
" Last Change: Jul 07, 2014
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Variables {{{1
|
||||
|
||||
" The rust source code at present seems to typically omit a leader on /*!
|
||||
" comments, so we'll use that as our default, but make it easy to switch.
|
||||
" This does not affect indentation at all (I tested it with and without
|
||||
@@ -25,6 +33,15 @@ setlocal formatoptions-=t formatoptions+=croqnl
|
||||
" j was only added in 7.3.541, so stop complaints about its nonexistence
|
||||
silent! setlocal formatoptions+=j
|
||||
|
||||
" smartindent will be overridden by indentexpr if filetype indent is on, but
|
||||
" otherwise it's better than nothing.
|
||||
setlocal smartindent nocindent
|
||||
|
||||
if !exists("g:rust_recommended_style") || g:rust_recommended_style == 1
|
||||
setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
|
||||
setlocal textwidth=99
|
||||
endif
|
||||
|
||||
" This includeexpr isn't perfect, but it's a good start
|
||||
setlocal includeexpr=substitute(v:fname,'::','/','g')
|
||||
|
||||
@@ -42,4 +59,96 @@ if exists("g:loaded_delimitMate")
|
||||
let b:delimitMate_excluded_regions = delimitMate#Get("excluded_regions") . ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
|
||||
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"
|
||||
if has("folding") && exists('g:rust_fold') && g:rust_fold != 0
|
||||
let b:rust_set_foldmethod=1
|
||||
setlocal foldmethod=syntax
|
||||
if g:rust_fold == 2
|
||||
setlocal foldlevel<
|
||||
else
|
||||
setlocal foldlevel=99
|
||||
endif
|
||||
endif
|
||||
|
||||
if has('conceal') && exists('g:rust_conceal')
|
||||
let b:rust_set_conceallevel=1
|
||||
setlocal conceallevel=2
|
||||
endif
|
||||
|
||||
" Motion Commands {{{1
|
||||
|
||||
" Bind motion commands to support hanging indents
|
||||
nnoremap <silent> <buffer> [[ :call rust#Jump('n', 'Back')<CR>
|
||||
nnoremap <silent> <buffer> ]] :call rust#Jump('n', 'Forward')<CR>
|
||||
xnoremap <silent> <buffer> [[ :call rust#Jump('v', 'Back')<CR>
|
||||
xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR>
|
||||
onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR>
|
||||
onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR>
|
||||
|
||||
" Commands {{{1
|
||||
|
||||
" See |:RustRun| for docs
|
||||
command! -nargs=* -complete=file -bang -bar -buffer RustRun call rust#Run(<bang>0, [<f-args>])
|
||||
|
||||
" See |:RustExpand| for docs
|
||||
command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -bar -buffer RustExpand call rust#Expand(<bang>0, [<f-args>])
|
||||
|
||||
" See |:RustEmitIr| for docs
|
||||
command! -nargs=* -bar -buffer RustEmitIr call rust#Emit("ir", [<f-args>])
|
||||
|
||||
" See |:RustEmitAsm| for docs
|
||||
command! -nargs=* -bar -buffer RustEmitAsm call rust#Emit("asm", [<f-args>])
|
||||
|
||||
" Mappings {{{1
|
||||
|
||||
" Bind ⌘R in MacVim to :RustRun
|
||||
nnoremap <silent> <buffer> <D-r> :RustRun<CR>
|
||||
" Bind ⌘⇧R in MacVim to :RustRun! pre-filled with the last args
|
||||
nnoremap <buffer> <D-R> :RustRun! <C-r>=join(b:rust_last_rustc_args)<CR><C-\>erust#AppendCmdLine(' -- ' . join(b:rust_last_args))<CR>
|
||||
|
||||
if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args")
|
||||
let b:rust_last_rustc_args = []
|
||||
let b:rust_last_args = []
|
||||
endif
|
||||
|
||||
" Cleanup {{{1
|
||||
|
||||
let b:undo_ftplugin = "
|
||||
\ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd<
|
||||
\|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
|
||||
\|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
|
||||
\|else
|
||||
\|unlet! b:delimitMate_excluded_regions
|
||||
\|endif
|
||||
\|if exists('b:rust_set_foldmethod')
|
||||
\|setlocal foldmethod< foldlevel<
|
||||
\|unlet b:rust_set_foldmethod
|
||||
\|endif
|
||||
\|if exists('b:rust_set_conceallevel')
|
||||
\|setlocal conceallevel<
|
||||
\|unlet b:rust_set_conceallevel
|
||||
\|endif
|
||||
\|unlet! b:rust_last_rustc_args b:rust_last_args
|
||||
\|delcommand RustRun
|
||||
\|delcommand RustExpand
|
||||
\|delcommand RustEmitIr
|
||||
\|delcommand RustEmitAsm
|
||||
\|nunmap <buffer> <D-r>
|
||||
\|nunmap <buffer> <D-R>
|
||||
\|nunmap <buffer> [[
|
||||
\|nunmap <buffer> ]]
|
||||
\|xunmap <buffer> [[
|
||||
\|xunmap <buffer> ]]
|
||||
\|ounmap <buffer> [[
|
||||
\|ounmap <buffer> ]]
|
||||
\"
|
||||
|
||||
" }}}1
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: set noet sw=4 ts=4:
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haml') == -1
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
@@ -9,8 +11,9 @@ if exists("b:did_ftplugin")
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
|
||||
let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<"
|
||||
|
||||
setlocal comments=://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal define=^\\s*\\%(@mixin\\\|=\\)
|
||||
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
|
||||
@@ -20,3 +23,5 @@ setlocal suffixesadd=.sass,.scss,.css
|
||||
let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
|
||||
|
||||
" vim:set sw=2:
|
||||
|
||||
endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user