mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-09 12:03:53 -05:00
Compare commits
183 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2bde381723 | ||
|
|
61390f5885 | ||
|
|
f8a0fb37bf | ||
|
|
13fe6ad758 | ||
|
|
78427e4c22 | ||
|
|
829ab22723 | ||
|
|
a8d08c8a49 | ||
|
|
7679a92627 | ||
|
|
ad44c4f7a3 | ||
|
|
3c56c1c7cd | ||
|
|
d4e83d706f | ||
|
|
c47dc02849 | ||
|
|
841cb535df | ||
|
|
e5b26a7308 | ||
|
|
b4b054ebf5 | ||
|
|
08ea94e011 | ||
|
|
ba7a783c7f | ||
|
|
f58692a641 | ||
|
|
0dc7696c89 | ||
|
|
5658b62b7a | ||
|
|
938a2f1667 | ||
|
|
303b3f1b43 | ||
|
|
bf84973173 | ||
|
|
89728a486d | ||
|
|
ae3a0d72cc | ||
|
|
3475a2df67 | ||
|
|
ac42e00864 | ||
|
|
0293cf8346 | ||
|
|
8c139a4546 | ||
|
|
47a036761a | ||
|
|
d2c90dad0a | ||
|
|
7ac92eac0f | ||
|
|
7800dae776 | ||
|
|
a39c9013cc | ||
|
|
25d2786cae | ||
|
|
1f1e821192 | ||
|
|
ae882e85f8 | ||
|
|
aec5e42bdb | ||
|
|
a0c79360ed | ||
|
|
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 | ||
|
|
edd5ee63e6 | ||
|
|
8a255002df | ||
|
|
b2d556d384 | ||
|
|
30c1920e4f | ||
|
|
57cfac7ae3 | ||
|
|
085aad28a4 | ||
|
|
e108a087b4 | ||
|
|
b3257271db | ||
|
|
e9d8c39608 | ||
|
|
04e6a8a73c | ||
|
|
b6a2261cc2 | ||
|
|
811fe888a6 | ||
|
|
2b19388166 | ||
|
|
a531f6b104 | ||
|
|
90d87abd30 | ||
|
|
d6710f1b57 | ||
|
|
0db9bdbfd6 | ||
|
|
c069f0661a | ||
|
|
235a5631f9 | ||
|
|
edf1aa4a1c | ||
|
|
88bd82d6c9 | ||
|
|
2686fb60f4 | ||
|
|
9d92f10375 | ||
|
|
fc0b11afe1 | ||
|
|
0fcd056648 | ||
|
|
78cd7e48cb | ||
|
|
ba1305772d | ||
|
|
ff3cc42bf3 | ||
|
|
e69f9f91d9 | ||
|
|
c37e16fbbd | ||
|
|
d7873996b4 | ||
|
|
73cbf0269e | ||
|
|
0077bd5a31 | ||
|
|
e8c16931f9 | ||
|
|
752a647be1 | ||
|
|
97a0bdcef6 | ||
|
|
58f119c57f | ||
|
|
0ac0389039 | ||
|
|
4bf3f6c300 | ||
|
|
4a80e945ad | ||
|
|
27f22774b1 | ||
|
|
f6be1d3d13 | ||
|
|
77f091c8c7 | ||
|
|
17149b4657 | ||
|
|
271c88a356 | ||
|
|
b86a0cd422 | ||
|
|
06c80c676e | ||
|
|
b061a2d995 | ||
|
|
e59b949def | ||
|
|
f0d869aea7 | ||
|
|
96e9c416ae | ||
|
|
d888bc4422 | ||
|
|
b4425d2c39 | ||
|
|
1ef902d053 |
5
.gitattributes
vendored
5
.gitattributes
vendored
@@ -1,4 +1,7 @@
|
|||||||
.gitignore export-ignore
|
.gitignore export-ignore
|
||||||
.gitattributes export-ignore
|
.gitattributes export-ignore
|
||||||
build export-ignore
|
|
||||||
README.md export-ignore
|
README.md export-ignore
|
||||||
|
/spec export-ignore
|
||||||
|
Gemfile export-ignore
|
||||||
|
Gemfile.lock export-ignore
|
||||||
|
.travis.yml export-ignore
|
||||||
|
|||||||
12
.travis.yml
Normal file
12
.travis.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
language: ruby
|
||||||
|
rvm:
|
||||||
|
- 1.9.3
|
||||||
|
sudo: false
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- vim-gtk
|
||||||
|
before_script:
|
||||||
|
- "export DISPLAY=:99.0"
|
||||||
|
- "sh -e /etc/init.d/xvfb start"
|
||||||
|
script: bundle exec rspec --format=documentation
|
||||||
4
Gemfile
Normal file
4
Gemfile
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'vimrunner'
|
||||||
|
gem 'rspec'
|
||||||
20
Gemfile.lock
Normal file
20
Gemfile.lock
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
diff-lcs (1.1.3)
|
||||||
|
rspec (2.12.0)
|
||||||
|
rspec-core (~> 2.12.0)
|
||||||
|
rspec-expectations (~> 2.12.0)
|
||||||
|
rspec-mocks (~> 2.12.0)
|
||||||
|
rspec-core (2.12.2)
|
||||||
|
rspec-expectations (2.12.1)
|
||||||
|
diff-lcs (~> 1.1.3)
|
||||||
|
rspec-mocks (2.12.0)
|
||||||
|
vimrunner (0.3.0)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
rspec
|
||||||
|
vimrunner
|
||||||
159
README.md
159
README.md
@@ -1,66 +1,125 @@
|
|||||||
# vim-polyglot
|
# vim-polyglot [![Build Status][travis-img-url]][travis-url]
|
||||||
|
|
||||||
|
[travis-img-url]: https://travis-ci.org/sheerun/vim-polyglot.png
|
||||||
|
[travis-url]: https://travis-ci.org/sheerun/vim-polyglot
|
||||||
|
|
||||||
A collection of language packs for Vim.
|
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 all files are loaded only on demand.
|
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
||||||
- It **installs 40x faster** (unparallelized), as language packs are not submoduled, but merged.
|
- It **installs and updates 70+ times faster** than 70+ packages it consist of.
|
||||||
- It clones even faster as all unnecessary files are ignored (like enormous documentation from php support).
|
- Solid syntax and indentation support. Only the best language packs.
|
||||||
- Best syntax and indentation support. If someone releases better language pack, it will be replaced here.
|
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||||
- No support for esoteric languages (vim-polyglot supports modern ones like `slim` though).
|
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||||
|
- Each build is tested by automated vimrunner script on CI. See `spec` directory.
|
||||||
|
|
||||||
|
\*To be completely honest, concatenated `ftdetect` script takes around `3ms` to load.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Install pathogen, Vundle or NeoBundle package manager.
|
1. Install [Pathogen](https://github.com/tpope/vim-pathogen), [Vundle](https://github.com/VundleVim/Vundle.vim), [NeoBundle](https://github.com/Shougo/neobundle.vim), or [Plug](https://github.com/junegunn/vim-plug) package manager for Vim.
|
||||||
2. Use this repository as submodule or package.
|
2. Use this repository as submodule or package.
|
||||||
|
|
||||||
Optionally download one of the [releases](https://github.com/sheerun/vim-polyglot/releases) and unpack it directly under `~/.vim` directory.
|
Optionally download one of the [releases](https://github.com/sheerun/vim-polyglot/releases) and unpack it directly under `~/.vim` directory.
|
||||||
|
|
||||||
## Language packs
|
## Language packs
|
||||||
|
|
||||||
- [arduino](https://github.com/sudar/vim-arduino-syntax)
|
- [ansible](https://github.com/pearofducks/ansible-vim) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [bundler](https://github.com/tpope/vim-bundler)
|
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent, ftdetect)
|
||||||
- [c/c++](https://github.com/vim-jp/cpp-vim)
|
- [blade](https://github.com/jwalton512/vim-blade) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight)
|
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
|
||||||
- [clojure](https://github.com/guns/vim-clojure-static)
|
- [c/c++](https://github.com/vim-jp/vim-cpp) (syntax)
|
||||||
- [coffee-script](https://github.com/kchmck/vim-coffee-script)
|
- [cjsx](https://github.com/mtscout6/vim-cjsx) (ftdetect, syntax, ftplugin)
|
||||||
- [csv](https://github.com/chrisbra/csv.vim)
|
- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [css colors](https://github.com/ap/vim-css-color)
|
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
- [cucumber](https://github.com/tpope/vim-cucumber)
|
- [cql](https://github.com/elubow/cql-vim) (syntax, ftdetect)
|
||||||
- [elixir](https://github.com/elixir-lang/vim-elixir)
|
- [css](https://github.com/JulesWang/css.vim) (syntax)
|
||||||
- [erlang](https://github.com/jimenezrick/vimerl)
|
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [git](https://github.com/tpope/vim-git)
|
- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [haml](https://github.com/tpope/vim-haml)
|
- [dockerfile](https://github.com/honza/dockerfile.vim) (syntax, ftdetect)
|
||||||
- [handlebars](https://github.com/nono/vim-handlebars)
|
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [hasksyn](https://github.com/travitch/hasksyn)
|
- [elm](https://github.com/lambdatoast/elm.vim) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [html5](https://github.com/othree/html5.vim)
|
- [emberscript](https://github.com/heartsentwined/vim-ember-script) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [javascript](https://github.com/pangloss/vim-javascript)
|
- [emblem](https://github.com/heartsentwined/vim-emblem) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [json](https://github.com/leshill/vim-json)
|
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (syntax, indent, ftdetect)
|
||||||
- [jst](https://github.com/briancollins/vim-jst)
|
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [latex](https://github.com/jcf/vim-latex)
|
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent, ftdetect)
|
||||||
- [less](https://github.com/groenewege/vim-less)
|
- [go](https://github.com/fatih/vim-go) (syntax, compiler, indent, ftdetect)
|
||||||
- [markdown](https://github.com/tpope/vim-markdown)
|
- [groovy](https://github.com/vim-scripts/groovy.vim) (syntax)
|
||||||
- [nginx](https://github.com/mutewinter/nginx.vim)
|
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [ocaml](https://github.com/jrk/vim-ocaml)
|
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [octave](https://github.com/vim-scripts/octave.vim--)
|
- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [php](https://github.com/spf13/PIV)
|
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)
|
||||||
- [puppet](https://github.com/ajf/puppet-vim)
|
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
|
||||||
- [python](https://github.com/vim-scripts/python.vim--Vasiliev)
|
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [rspec](https://github.com/skwp/vim-rspec)
|
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
|
||||||
- [ruby](https://github.com/vim-ruby/vim-ruby)
|
- [javascript](https://github.com/sheerun/yajs.vim) (syntax, indent)
|
||||||
- [sbt](https://github.com/derekwyatt/vim-sbt)
|
- [jinja](https://github.com/Glench/Vim-Jinja2-Syntax) (syntax, indent, ftdetect)
|
||||||
- [scala](https://github.com/derekwyatt/vim-scala)
|
- [json](https://github.com/sheerun/vim-json) (syntax, indent, ftdetect)
|
||||||
- [scss-syntax](https://github.com/cakebaker/scss-syntax.vim)
|
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
||||||
- [slim](https://github.com/slim-template/vim-slim)
|
- [jsx](https://github.com/mxw/vim-jsx) (ftdetect, after)
|
||||||
- [stylus](https://github.com/wavded/vim-stylus)
|
- [julia](https://github.com/dcjones/julia-minimalist-vim) (syntax, indent, ftdetect)
|
||||||
- [textile](https://github.com/timcharper/textile.vim)
|
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftdetect)
|
||||||
- [tmux](https://github.com/acustodioo/vim-tmux)
|
- [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin)
|
||||||
- [tomdoc](https://github.com/mutewinter/tomdoc.vim)
|
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [twig](https://github.com/beyondwords/vim-twig)
|
- [liquid](https://github.com/tpope/vim-liquid) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim)
|
- [markdown](https://github.com/tpope/vim-markdown) (syntax, ftplugin, ftdetect)
|
||||||
- [vim-golang](https://github.com/jnwhiteh/vim-golang)
|
- [nginx](https://github.com/nginx/nginx) (syntax, indent, ftdetect)
|
||||||
- [xls](https://github.com/vim-scripts/XSLT-syntax)
|
- [nim](https://github.com/zah/nim.vim) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
|
- [nix](https://github.com/spwhitt/vim-nix) (syntax, ftplugin, ftdetect)
|
||||||
|
- [objc](https://github.com/b4winckler/vim-objc) (ftplugin, syntax, indent)
|
||||||
|
- [ocaml](https://github.com/jrk/vim-ocaml) (syntax, indent, ftplugin)
|
||||||
|
- [octave](https://github.com/vim-scripts/octave.vim--) (syntax)
|
||||||
|
- [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)
|
||||||
|
- [powershell](https://github.com/Persistent13/vim-ps1) (syntax, indent, ftplugin, ftdetect)
|
||||||
|
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, ftdetect)
|
||||||
|
- [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, ftplugin, ftdetect)
|
||||||
|
- [python](https://github.com/mitsuhiko/vim-python-combined) (syntax, indent)
|
||||||
|
- [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin, ftdetect)
|
||||||
|
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin)
|
||||||
|
- [ragel](https://github.com/jneen/ragel.vim) (syntax)
|
||||||
|
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
||||||
|
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
|
- [rust](https://github.com/rust-lang/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, 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)
|
||||||
|
- [swift](https://github.com/keith/swift.vim) (syntax, indent, ftplugin, ftdetect)
|
||||||
|
- [systemd](https://github.com/kurayama/systemd-vim-syntax) (syntax, ftdetect)
|
||||||
|
- [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin, ftdetect)
|
||||||
|
- [thrift](https://github.com/solarnz/thrift.vim) (syntax, ftdetect)
|
||||||
|
- [tmux](https://github.com/tejr/vim-tmux) (syntax, ftdetect)
|
||||||
|
- [tomdoc](https://github.com/wellbredgrapefruit/tomdoc.vim) (syntax)
|
||||||
|
- [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin, ftdetect)
|
||||||
|
- [twig](https://github.com/beyondwords/vim-twig) (syntax, ftplugin, ftdetect)
|
||||||
|
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
|
- [vala](https://github.com/tkztmk/vim-vala) (syntax, indent, ftdetect)
|
||||||
|
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
||||||
|
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax, ftdetect)
|
||||||
|
- [vm](https://github.com/lepture/vim-velocity) (syntax, indent, ftdetect)
|
||||||
|
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
||||||
|
- [yaml](https://github.com/stephpy/vim-yaml) (syntax, ftplugin)
|
||||||
|
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
||||||
|
|
||||||
|
## 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
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
6
after/ftdetect/rspec.vim
Normal file
6
after/ftdetect/rspec.vim
Normal file
@@ -0,0 +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
|
||||||
8
after/ftplugin/cabal.vim
Normal file
8
after/ftplugin/cabal.vim
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||||
|
|
||||||
|
setlocal comments=s1fl:{-,mb:-,ex:-},:--
|
||||||
|
setlocal formatoptions-=cro formatoptions+=j
|
||||||
|
setlocal iskeyword+=-,.,*
|
||||||
|
setlocal commentstring=--\ %s
|
||||||
|
|
||||||
|
endif
|
||||||
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 +1,7 @@
|
|||||||
" Vim ftplugin file
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||||
" Language: Haskell
|
|
||||||
" Maintainer: Tristan Ravitch
|
setlocal comments=s1fl:{-,mb:-,ex:-},:--
|
||||||
|
setlocal formatoptions-=cro formatoptions+=j
|
||||||
|
setlocal iskeyword+='
|
||||||
|
|
||||||
" I don't fully understand what the vim-default ftplugin does, but I do know
|
endif
|
||||||
" 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
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
|
|
||||||
if !exists("g:DisableAutoPHPFolding")
|
|
||||||
let g:DisableAutoPHPFolding = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !g:DisableAutoPHPFolding
|
|
||||||
" Don't use the PHP syntax folding
|
|
||||||
setlocal foldmethod=manual
|
|
||||||
" Turn on PHP fast folds
|
|
||||||
EnableFastPHPFolds
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Fix matchpairs for PHP (for matchit.vim plugin)
|
|
||||||
if exists("loaded_matchit")
|
|
||||||
let b:match_skip = 's:comment\|string'
|
|
||||||
let b:match_words = '<?\(php\)\?:?>,\<switch\>:\<endswitch\>,' .
|
|
||||||
\ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' .
|
|
||||||
\ '\<while\>:\<endwhile\>,\<do\>:\<while\>,' .
|
|
||||||
\ '\<for\>:\<endfor\>,\<foreach\>:\<endforeach\>' .
|
|
||||||
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
|
|
||||||
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
|
|
||||||
\ '<\@<=\([^/?][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>,' .
|
|
||||||
\ '<:>,(:),{:},[:]'
|
|
||||||
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
|
||||||
11
after/ftplugin/yaml.vim
Normal file
11
after/ftplugin/yaml.vim
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||||
|
|
||||||
|
" Vim indent file
|
||||||
|
" Language: Yaml
|
||||||
|
" Author: Henrique Barcelos
|
||||||
|
" Date: 2014-10-08
|
||||||
|
" URL: https://github.com/hjpbarcelos
|
||||||
|
setlocal autoindent sw=2 ts=2 expandtab
|
||||||
|
" vim:set sw=2:
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,15 +1,17 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||||
|
|
||||||
" Language: CoffeeScript
|
" Language: CoffeeScript
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
" Maintainer: Mick Koch <mick@kochm.co>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
" Load the coffee and html indent functions.
|
" Load the coffee and html indent functions.
|
||||||
unlet b:did_indent
|
silent! unlet b:did_indent
|
||||||
runtime indent/coffee.vim
|
runtime indent/coffee.vim
|
||||||
let s:coffeeIndentExpr = &l:indentexpr
|
let s:coffeeIndentExpr = &l:indentexpr
|
||||||
|
|
||||||
" Load html last so it can overwrite coffee settings.
|
" Load html last so it can overwrite coffee settings.
|
||||||
unlet b:did_indent
|
silent! unlet b:did_indent
|
||||||
runtime indent/html.vim
|
runtime indent/html.vim
|
||||||
let s:htmlIndentExpr = &l:indentexpr
|
let s:htmlIndentExpr = &l:indentexpr
|
||||||
|
|
||||||
@@ -31,3 +33,5 @@ function! GetCoffeeHtmlIndent(curlinenum)
|
|||||||
" Otherwise use html indenting.
|
" Otherwise use html indenting.
|
||||||
exec 'return ' s:htmlIndentExpr
|
exec 'return ' s:htmlIndentExpr
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
95
after/indent/jsx.vim
Normal file
95
after/indent/jsx.vim
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
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
|
||||||
|
"
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
" 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>,<>>,<<>,/
|
||||||
|
|
||||||
|
" Multiline end tag regex (line beginning with '>' or '/>')
|
||||||
|
let s:endtag = '^\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 '/>' and '>' with '<' for multiline tags.
|
||||||
|
if getline(v:lnum) =~? s:endtag
|
||||||
|
let ind = ind - &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Then correct the indentation of any JSX following '/>' or '>'.
|
||||||
|
if getline(v:lnum - 1) =~? s:endtag
|
||||||
|
let ind = ind + &sw
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let ind = GetJavascriptIndent()
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ind
|
||||||
|
endfu
|
||||||
|
|
||||||
|
endif
|
||||||
97
after/indent/objc.vim
Normal file
97
after/indent/objc.vim
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'objc') == -1
|
||||||
|
|
||||||
|
" Vim indent file
|
||||||
|
" Language: Objective-C
|
||||||
|
" Maintainer: Bjorn Winckler <bjorn.winckler@gmail.com>
|
||||||
|
" Last Change: 2012 Jan 01
|
||||||
|
|
||||||
|
" Ensure 'cpo' is set to Vim default values and restore later
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
"if exists("b:did_indent")
|
||||||
|
" finish
|
||||||
|
"endif
|
||||||
|
"let b:did_indent = 1
|
||||||
|
"setlocal cindent
|
||||||
|
|
||||||
|
setl indentkeys=0{,0},:,0#,!^F,o,O,e,<:>
|
||||||
|
|
||||||
|
setlocal indentexpr=GetObjCIndentImproved()
|
||||||
|
|
||||||
|
" Top level statements which should not be indented, and which should not
|
||||||
|
" cause next (non-blank) line to be indented either.
|
||||||
|
let s:topLev = '^\s*@\%(class\|end\|implementation\|interface\|protocol\|\)\>'
|
||||||
|
|
||||||
|
function! GetObjCIndentImproved()
|
||||||
|
" NOTE: Ignore leading white space to avoid having to deal with space vs.
|
||||||
|
" tab issues. Rely on the indent() function instead.
|
||||||
|
let thisLine = substitute(getline(v:lnum), '^\s*', '', '')
|
||||||
|
|
||||||
|
if thisLine =~# s:topLev || getline(prevnonblank(v:lnum - 1)) =~# s:topLev
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If current line looks like an argument to a message dispatch, then line
|
||||||
|
" up colon with previous line. This will indent the second line so that
|
||||||
|
" the colons line up in
|
||||||
|
"
|
||||||
|
" [obj firstParameter:value
|
||||||
|
" paramB:value2];
|
||||||
|
"
|
||||||
|
" but it will not line up colons in
|
||||||
|
"
|
||||||
|
" if ([obj something:here])
|
||||||
|
" [obj other:here];
|
||||||
|
"
|
||||||
|
let thisColon = match(thisLine, '^\s*\K\k*\zs:')
|
||||||
|
if thisColon > 0
|
||||||
|
let prevLine = substitute(getline(v:lnum - 1), '^\s*', '', '')
|
||||||
|
let prevColon = match(prevLine, ':')
|
||||||
|
if prevColon > 0
|
||||||
|
" Try to align colons, always making sure line is indented at least
|
||||||
|
" one shiftwidth more than the indentation at the beginning of the
|
||||||
|
" message. Avoids situations like this:
|
||||||
|
"
|
||||||
|
" if ([obj a:x
|
||||||
|
" aLongParameter:y])
|
||||||
|
"
|
||||||
|
let [lnum,lcol] = searchpairpos('\[', '', '\]', 'b', 0,
|
||||||
|
\ max([1, v:lnum - 10]))
|
||||||
|
let minInd = &sw + (lnum > 0 ? indent(lnum) : 0)
|
||||||
|
let alignedInd = indent(v:lnum - 1) + prevColon - thisColon
|
||||||
|
return alignedInd > minInd ? alignedInd : minInd
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let prevLnum = v:lnum - 1
|
||||||
|
let ind = indent(prevLnum)
|
||||||
|
|
||||||
|
" Indent one shiftwidth after opening block, e.g.:
|
||||||
|
"
|
||||||
|
" call_func_with_block(param, ^{
|
||||||
|
" do_stuff();
|
||||||
|
" });
|
||||||
|
"
|
||||||
|
let blockPat = '\^\s*\(([^)]*)\)\?\s*{$'
|
||||||
|
if thisLine =~ '^}'
|
||||||
|
norm '^%'
|
||||||
|
if getline(".") =~ blockPat
|
||||||
|
return indent(".")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if getline(prevLnum) =~ blockPat
|
||||||
|
return ind + &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
return cindent(v:lnum)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" Restore 'cpo' options
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
||||||
|
|
||||||
|
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,21 +1,31 @@
|
|||||||
" This file describes a very basic syntax for TomDoc comments in a
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cjsx') == -1
|
||||||
" CoffeeScript file.
|
|
||||||
"
|
if exists('b:current_syntax')
|
||||||
" For more information on TomDoc, check it out here: http://tomdoc.org/
|
let s:current_syntax=b:current_syntax
|
||||||
"
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
syn keyword tomdocKeywords Returns containedin=coffeeComment contained
|
if exists('s:current_syntax')
|
||||||
syn keyword tomdocKeywords Yields containedin=coffeeComment contained
|
let b:current_syntax=s:current_syntax
|
||||||
syn keyword tomdocKeywords Raises containedin=coffeeComment contained
|
endif
|
||||||
syn keyword tomdocKeywords Examples containedin=coffeeComment contained
|
|
||||||
syn keyword tomdocKeywords Signature containedin=coffeeComment contained
|
|
||||||
|
|
||||||
syn match tomdocArguments +\s*[A-Za-z0-9_\-&\*:]*\(\s*- \)+he=e-3 containedin=coffeeComment contained
|
syn match cjsxEntity contained "&[^; \t]*;" contains=cjsxEntityPunct
|
||||||
|
syn match cjsxEntityPunct contained "[&.;]"
|
||||||
|
|
||||||
syn match tomdocDescriptions +\s*Public:+he=e-1 containedin=coffeeComment contained
|
syn match cjsxAttribProperty /[A-Za-z_][A-Za-z0-9_-]*/ contained
|
||||||
syn match tomdocDescriptions +\s*Internal:+he=e-1 containedin=coffeeComment 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 match tomdocDescriptions +\s*Deprecated:+he=e-1 containedin=coffeeComment contained
|
|
||||||
|
|
||||||
hi default link tomdocDescriptions TODO
|
syn region cjsxBody start=+[^/]>+ms=s+2 start=/>/ms=s+1 end=+<\/+me=e-2 contained contains=cjsxElement,coffeeCurlies,cjsxEntity
|
||||||
hi default link tomdocKeywords TODO
|
|
||||||
hi default link tomdocArguments HELP
|
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
|
" Vim syntax file
|
||||||
" Language: C++ Additions
|
" Language: C++ Additions
|
||||||
" Maintainer: Jon Haggblad <jon@haeggblad.com>
|
" Maintainer: Jon Haggblad <jon@haeggblad.com>
|
||||||
" URL: http://www.haeggblad.com
|
" URL: http://www.haeggblad.com
|
||||||
" Last Change: 17 May 2013
|
" Last Change: 21 Sep 2014
|
||||||
" Version: 0.1
|
" Version: 0.5
|
||||||
" Changelog:
|
" Changelog:
|
||||||
" 0.1 - initial version.
|
" 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
|
" development in Vim. Compared to the standard syntax highlighting for C++ it
|
||||||
" adds highlighting of (user defined) functions and the containers and types
|
" adds highlighting of (user defined) functions and the containers and types
|
||||||
" in the standard library / boost.
|
" in the standard library / boost.
|
||||||
@@ -27,25 +33,39 @@
|
|||||||
" Based on the discussion in:
|
" Based on the discussion in:
|
||||||
" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim
|
" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim
|
||||||
" -----------------------------------------------------------------------------
|
" -----------------------------------------------------------------------------
|
||||||
syn match cCustomParen "(" contains=cParen contains=cCppParen
|
|
||||||
syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen
|
|
||||||
syn match cCustomScope "::"
|
|
||||||
syn match cCustomClass "\w\+\s*::" contains=cCustomScope
|
|
||||||
|
|
||||||
|
" Functions
|
||||||
|
syn match cCustomParen "(" contains=cParen contains=cCppParen
|
||||||
|
syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen
|
||||||
hi def link cCustomFunc Function
|
hi def link cCustomFunc Function
|
||||||
|
|
||||||
" Uncomment this to also highlight 'class::' and 'namespace::'
|
" Template functions
|
||||||
"hi def link cCustomClass Function
|
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:
|
" Alternative syntax that is used in:
|
||||||
" http://www.vim.org/scripts/script.php?script_id=3064
|
" http://www.vim.org/scripts/script.php?script_id=3064
|
||||||
"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
|
"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
|
||||||
"hi def link cCustomFunc Function
|
"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.
|
" Standard library types and functions.
|
||||||
"
|
"
|
||||||
" Mainly based on the excellent STL Syntax vim script by
|
" Mainly based on the excellent STL Syntax vim script by
|
||||||
" Mizuchi <ytj000@gmail.com>
|
" Mizuchi <ytj000@gmail.com>
|
||||||
" http://www.vim.org/scripts/script.php?script_id=4293
|
" http://www.vim.org/scripts/script.php?script_id=4293
|
||||||
" which in turn is based on the scripts
|
" which in turn is based on the scripts
|
||||||
@@ -53,6 +73,10 @@ hi def link cCustomFunc Function
|
|||||||
" http://www.vim.org/scripts/script.php?script_id=1640
|
" http://www.vim.org/scripts/script.php?script_id=1640
|
||||||
" -----------------------------------------------------------------------------
|
" -----------------------------------------------------------------------------
|
||||||
syntax keyword cppSTLconstant badbit
|
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 digits
|
||||||
syntax keyword cppSTLconstant digits10
|
syntax keyword cppSTLconstant digits10
|
||||||
syntax keyword cppSTLconstant eofbit
|
syntax keyword cppSTLconstant eofbit
|
||||||
@@ -81,6 +105,10 @@ syntax keyword cppSTLconstant radix
|
|||||||
syntax keyword cppSTLconstant round_style
|
syntax keyword cppSTLconstant round_style
|
||||||
syntax keyword cppSTLconstant tinyness_before
|
syntax keyword cppSTLconstant tinyness_before
|
||||||
syntax keyword cppSTLconstant traps
|
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_alloc
|
||||||
syntax keyword cppSTLexception bad_array_new_length
|
syntax keyword cppSTLexception bad_array_new_length
|
||||||
syntax keyword cppSTLexception bad_exception
|
syntax keyword cppSTLexception bad_exception
|
||||||
@@ -108,6 +136,7 @@ syntax keyword cppSTLfunctional binary_negate
|
|||||||
syntax keyword cppSTLfunctional bit_and
|
syntax keyword cppSTLfunctional bit_and
|
||||||
syntax keyword cppSTLfunctional bit_not
|
syntax keyword cppSTLfunctional bit_not
|
||||||
syntax keyword cppSTLfunctional bit_or
|
syntax keyword cppSTLfunctional bit_or
|
||||||
|
syntax keyword cppSTLfunctional bit_xor
|
||||||
syntax keyword cppSTLfunctional divides
|
syntax keyword cppSTLfunctional divides
|
||||||
syntax keyword cppSTLfunctional equal_to
|
syntax keyword cppSTLfunctional equal_to
|
||||||
syntax keyword cppSTLfunctional greater
|
syntax keyword cppSTLfunctional greater
|
||||||
@@ -139,11 +168,12 @@ syntax keyword cppSTLfunction atexit
|
|||||||
syntax keyword cppSTLfunction atof
|
syntax keyword cppSTLfunction atof
|
||||||
syntax keyword cppSTLfunction atoi
|
syntax keyword cppSTLfunction atoi
|
||||||
syntax keyword cppSTLfunction atol
|
syntax keyword cppSTLfunction atol
|
||||||
|
syntax keyword cppSTLfunction atoll
|
||||||
syntax keyword cppSTLfunction back
|
syntax keyword cppSTLfunction back
|
||||||
syntax keyword cppSTLfunction back_inserter
|
syntax keyword cppSTLfunction back_inserter
|
||||||
syntax keyword cppSTLfunction bad
|
syntax keyword cppSTLfunction bad
|
||||||
syntax keyword cppSTLfunction beg
|
syntax keyword cppSTLfunction beg
|
||||||
syntax keyword cppSTLfunction begin
|
"syntax keyword cppSTLfunction begin
|
||||||
syntax keyword cppSTLfunction binary_compose
|
syntax keyword cppSTLfunction binary_compose
|
||||||
syntax keyword cppSTLfunction binary_negate
|
syntax keyword cppSTLfunction binary_negate
|
||||||
syntax keyword cppSTLfunction binary_search
|
syntax keyword cppSTLfunction binary_search
|
||||||
@@ -155,12 +185,9 @@ syntax keyword cppSTLfunction bsearch
|
|||||||
syntax keyword cppSTLfunction calloc
|
syntax keyword cppSTLfunction calloc
|
||||||
syntax keyword cppSTLfunction capacity
|
syntax keyword cppSTLfunction capacity
|
||||||
syntax keyword cppSTLfunction ceil
|
syntax keyword cppSTLfunction ceil
|
||||||
syntax keyword cppSTLfunction cerr
|
|
||||||
syntax keyword cppSTLfunction cin
|
|
||||||
syntax keyword cppSTLfunction clear
|
syntax keyword cppSTLfunction clear
|
||||||
syntax keyword cppSTLfunction clearerr
|
syntax keyword cppSTLfunction clearerr
|
||||||
syntax keyword cppSTLfunction clock
|
syntax keyword cppSTLfunction clock
|
||||||
syntax keyword cppSTLfunction clog
|
|
||||||
syntax keyword cppSTLfunction close
|
syntax keyword cppSTLfunction close
|
||||||
syntax keyword cppSTLfunction compare
|
syntax keyword cppSTLfunction compare
|
||||||
syntax keyword cppSTLfunction conj
|
syntax keyword cppSTLfunction conj
|
||||||
@@ -171,17 +198,16 @@ syntax keyword cppSTLfunction cos
|
|||||||
syntax keyword cppSTLfunction cosh
|
syntax keyword cppSTLfunction cosh
|
||||||
syntax keyword cppSTLfunction count
|
syntax keyword cppSTLfunction count
|
||||||
syntax keyword cppSTLfunction count_if
|
syntax keyword cppSTLfunction count_if
|
||||||
syntax keyword cppSTLfunction cout
|
|
||||||
syntax keyword cppSTLfunction c_str
|
syntax keyword cppSTLfunction c_str
|
||||||
syntax keyword cppSTLfunction ctime
|
syntax keyword cppSTLfunction ctime
|
||||||
syntax keyword cppSTLfunction data
|
"syntax keyword cppSTLfunction data
|
||||||
syntax keyword cppSTLfunction denorm_min
|
syntax keyword cppSTLfunction denorm_min
|
||||||
syntax keyword cppSTLfunction destroy
|
syntax keyword cppSTLfunction destroy
|
||||||
syntax keyword cppSTLfunction difftime
|
syntax keyword cppSTLfunction difftime
|
||||||
syntax keyword cppSTLfunction distance
|
syntax keyword cppSTLfunction distance
|
||||||
syntax keyword cppSTLfunction div
|
syntax keyword cppSTLfunction div
|
||||||
syntax keyword cppSTLfunction empty
|
syntax keyword cppSTLfunction empty
|
||||||
syntax keyword cppSTLfunction end
|
"syntax keyword cppSTLfunction end
|
||||||
syntax keyword cppSTLfunction eof
|
syntax keyword cppSTLfunction eof
|
||||||
syntax keyword cppSTLfunction epsilon
|
syntax keyword cppSTLfunction epsilon
|
||||||
syntax keyword cppSTLfunction equal
|
syntax keyword cppSTLfunction equal
|
||||||
@@ -312,7 +338,7 @@ syntax keyword cppSTLfunction norm
|
|||||||
syntax keyword cppSTLfunction not1
|
syntax keyword cppSTLfunction not1
|
||||||
syntax keyword cppSTLfunction not2
|
syntax keyword cppSTLfunction not2
|
||||||
syntax keyword cppSTLfunction nth_element
|
syntax keyword cppSTLfunction nth_element
|
||||||
syntax keyword cppSTLfunction numeric_limits
|
syntax keyword cppSTLtype numeric_limits
|
||||||
syntax keyword cppSTLfunction open
|
syntax keyword cppSTLfunction open
|
||||||
syntax keyword cppSTLfunction partial_sort
|
syntax keyword cppSTLfunction partial_sort
|
||||||
syntax keyword cppSTLfunction partial_sort_copy
|
syntax keyword cppSTLfunction partial_sort_copy
|
||||||
@@ -394,7 +420,7 @@ syntax keyword cppSTLfunction signal
|
|||||||
syntax keyword cppSTLfunction signaling_NaN
|
syntax keyword cppSTLfunction signaling_NaN
|
||||||
syntax keyword cppSTLfunction sin
|
syntax keyword cppSTLfunction sin
|
||||||
syntax keyword cppSTLfunction sinh
|
syntax keyword cppSTLfunction sinh
|
||||||
syntax keyword cppSTLfunction size
|
"syntax keyword cppSTLfunction size
|
||||||
syntax keyword cppSTLfunction sort
|
syntax keyword cppSTLfunction sort
|
||||||
syntax keyword cppSTLfunction sort_heap
|
syntax keyword cppSTLfunction sort_heap
|
||||||
syntax keyword cppSTLfunction splice
|
syntax keyword cppSTLfunction splice
|
||||||
@@ -423,8 +449,11 @@ syntax keyword cppSTLfunction strrchr
|
|||||||
syntax keyword cppSTLfunction strspn
|
syntax keyword cppSTLfunction strspn
|
||||||
syntax keyword cppSTLfunction strstr
|
syntax keyword cppSTLfunction strstr
|
||||||
syntax keyword cppSTLfunction strtod
|
syntax keyword cppSTLfunction strtod
|
||||||
|
syntax keyword cppSTLfunction strtof
|
||||||
syntax keyword cppSTLfunction strtok
|
syntax keyword cppSTLfunction strtok
|
||||||
syntax keyword cppSTLfunction strtol
|
syntax keyword cppSTLfunction strtol
|
||||||
|
syntax keyword cppSTLfunction strtold
|
||||||
|
syntax keyword cppSTLfunction strtoll
|
||||||
syntax keyword cppSTLfunction strtoul
|
syntax keyword cppSTLfunction strtoul
|
||||||
syntax keyword cppSTLfunction strxfrm
|
syntax keyword cppSTLfunction strxfrm
|
||||||
syntax keyword cppSTLfunction substr
|
syntax keyword cppSTLfunction substr
|
||||||
@@ -433,14 +462,13 @@ syntax keyword cppSTLfunction swap_ranges
|
|||||||
syntax keyword cppSTLfunction swprintf
|
syntax keyword cppSTLfunction swprintf
|
||||||
syntax keyword cppSTLfunction swscanf
|
syntax keyword cppSTLfunction swscanf
|
||||||
syntax keyword cppSTLfunction sync_with_stdio
|
syntax keyword cppSTLfunction sync_with_stdio
|
||||||
syntax keyword cppSTLfunction system
|
"syntax keyword cppSTLfunction system
|
||||||
syntax keyword cppSTLfunction tan
|
syntax keyword cppSTLfunction tan
|
||||||
syntax keyword cppSTLfunction tanh
|
syntax keyword cppSTLfunction tanh
|
||||||
syntax keyword cppSTLfunction tellg
|
syntax keyword cppSTLfunction tellg
|
||||||
syntax keyword cppSTLfunction tellp
|
syntax keyword cppSTLfunction tellp
|
||||||
syntax keyword cppSTLfunction test
|
"syntax keyword cppSTLfunction test
|
||||||
syntax keyword cppSTLfunction time
|
"syntax keyword cppSTLfunction time
|
||||||
syntax keyword cppSTLfunction time_t
|
|
||||||
syntax keyword cppSTLfunction tmpfile
|
syntax keyword cppSTLfunction tmpfile
|
||||||
syntax keyword cppSTLfunction tmpnam
|
syntax keyword cppSTLfunction tmpnam
|
||||||
syntax keyword cppSTLfunction tolower
|
syntax keyword cppSTLfunction tolower
|
||||||
@@ -462,7 +490,6 @@ syntax keyword cppSTLfunction unique_copy
|
|||||||
syntax keyword cppSTLfunction unsetf
|
syntax keyword cppSTLfunction unsetf
|
||||||
syntax keyword cppSTLfunction upper_bound
|
syntax keyword cppSTLfunction upper_bound
|
||||||
syntax keyword cppSTLfunction va_arg
|
syntax keyword cppSTLfunction va_arg
|
||||||
syntax keyword cppSTLfunction va_arg
|
|
||||||
syntax keyword cppSTLfunction va_copy
|
syntax keyword cppSTLfunction va_copy
|
||||||
syntax keyword cppSTLfunction va_end
|
syntax keyword cppSTLfunction va_end
|
||||||
syntax keyword cppSTLfunction value_comp
|
syntax keyword cppSTLfunction value_comp
|
||||||
@@ -539,12 +566,18 @@ syntax keyword cppSTLnamespace rel_ops
|
|||||||
syntax keyword cppSTLnamespace std
|
syntax keyword cppSTLnamespace std
|
||||||
syntax keyword cppSTLtype allocator
|
syntax keyword cppSTLtype allocator
|
||||||
syntax keyword cppSTLtype auto_ptr
|
syntax keyword cppSTLtype auto_ptr
|
||||||
|
syntax keyword cppSTLtype basic_filebuf
|
||||||
syntax keyword cppSTLtype basic_fstream
|
syntax keyword cppSTLtype basic_fstream
|
||||||
syntax keyword cppSTLtype basic_ifstream
|
syntax keyword cppSTLtype basic_ifstream
|
||||||
|
syntax keyword cppSTLtype basic_iostream
|
||||||
|
syntax keyword cppSTLtype basic_istream
|
||||||
syntax keyword cppSTLtype basic_istringstream
|
syntax keyword cppSTLtype basic_istringstream
|
||||||
syntax keyword cppSTLtype basic_ofstream
|
syntax keyword cppSTLtype basic_ofstream
|
||||||
|
syntax keyword cppSTLtype basic_ostream
|
||||||
syntax keyword cppSTLtype basic_ostringstream
|
syntax keyword cppSTLtype basic_ostringstream
|
||||||
|
syntax keyword cppSTLtype basic_streambuf
|
||||||
syntax keyword cppSTLtype basic_string
|
syntax keyword cppSTLtype basic_string
|
||||||
|
syntax keyword cppSTLtype basic_stringbuf
|
||||||
syntax keyword cppSTLtype basic_stringstream
|
syntax keyword cppSTLtype basic_stringstream
|
||||||
syntax keyword cppSTLtype binary_compose
|
syntax keyword cppSTLtype binary_compose
|
||||||
syntax keyword cppSTLtype binder1st
|
syntax keyword cppSTLtype binder1st
|
||||||
@@ -573,7 +606,11 @@ syntax keyword cppSTLtype ifstream
|
|||||||
syntax keyword cppSTLtype imaxdiv_t
|
syntax keyword cppSTLtype imaxdiv_t
|
||||||
syntax keyword cppSTLtype indirect_array
|
syntax keyword cppSTLtype indirect_array
|
||||||
syntax keyword cppSTLtype int_type
|
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 istringstream
|
||||||
|
syntax keyword cppSTLtype istrstream
|
||||||
syntax keyword cppSTLtype iterator_traits
|
syntax keyword cppSTLtype iterator_traits
|
||||||
syntax keyword cppSTLtype key_compare
|
syntax keyword cppSTLtype key_compare
|
||||||
syntax keyword cppSTLtype key_type
|
syntax keyword cppSTLtype key_type
|
||||||
@@ -594,6 +631,7 @@ syntax keyword cppSTLtype off_type
|
|||||||
syntax keyword cppSTLtype ofstream
|
syntax keyword cppSTLtype ofstream
|
||||||
syntax keyword cppSTLtype ostream
|
syntax keyword cppSTLtype ostream
|
||||||
syntax keyword cppSTLtype ostringstream
|
syntax keyword cppSTLtype ostringstream
|
||||||
|
syntax keyword cppSTLtype ostrstream
|
||||||
syntax keyword cppSTLtype pair
|
syntax keyword cppSTLtype pair
|
||||||
syntax keyword cppSTLtype pointer
|
syntax keyword cppSTLtype pointer
|
||||||
syntax keyword cppSTLtype pointer_to_binary_function
|
syntax keyword cppSTLtype pointer_to_binary_function
|
||||||
@@ -610,11 +648,15 @@ syntax keyword cppSTLtype size_type
|
|||||||
syntax keyword cppSTLtype slice_array
|
syntax keyword cppSTLtype slice_array
|
||||||
syntax keyword cppSTLtype stack
|
syntax keyword cppSTLtype stack
|
||||||
syntax keyword cppSTLtype stream
|
syntax keyword cppSTLtype stream
|
||||||
|
syntax keyword cppSTLtype streambuf
|
||||||
syntax keyword cppSTLtype string
|
syntax keyword cppSTLtype string
|
||||||
syntax keyword cppSTLtype stringbuf
|
syntax keyword cppSTLtype stringbuf
|
||||||
syntax keyword cppSTLtype stringstream
|
syntax keyword cppSTLtype stringstream
|
||||||
|
syntax keyword cppSTLtype strstream
|
||||||
|
syntax keyword cppSTLtype strstreambuf
|
||||||
syntax keyword cppSTLtype temporary_buffer
|
syntax keyword cppSTLtype temporary_buffer
|
||||||
syntax keyword cppSTLtype test_type
|
syntax keyword cppSTLtype test_type
|
||||||
|
syntax keyword cppSTLtype time_t
|
||||||
syntax keyword cppSTLtype tm
|
syntax keyword cppSTLtype tm
|
||||||
syntax keyword cppSTLtype traits_type
|
syntax keyword cppSTLtype traits_type
|
||||||
syntax keyword cppSTLtype type_info
|
syntax keyword cppSTLtype type_info
|
||||||
@@ -626,18 +668,102 @@ syntax keyword cppSTLtype valarray
|
|||||||
syntax keyword cppSTLtype value_compare
|
syntax keyword cppSTLtype value_compare
|
||||||
syntax keyword cppSTLtype value_type
|
syntax keyword cppSTLtype value_type
|
||||||
syntax keyword cppSTLtype vector
|
syntax keyword cppSTLtype vector
|
||||||
|
syntax keyword cppSTLtype wfilebuf
|
||||||
syntax keyword cppSTLtype wfstream
|
syntax keyword cppSTLtype wfstream
|
||||||
syntax keyword cppSTLtype wifstream
|
syntax keyword cppSTLtype wifstream
|
||||||
|
syntax keyword cppSTLtype wiostream
|
||||||
|
syntax keyword cppSTLtype wistream
|
||||||
syntax keyword cppSTLtype wistringstream
|
syntax keyword cppSTLtype wistringstream
|
||||||
syntax keyword cppSTLtype wofstream
|
syntax keyword cppSTLtype wofstream
|
||||||
|
syntax keyword cppSTLtype wostream
|
||||||
syntax keyword cppSTLtype wostringstream
|
syntax keyword cppSTLtype wostringstream
|
||||||
|
syntax keyword cppSTLtype wstreambuf
|
||||||
syntax keyword cppSTLtype wstring
|
syntax keyword cppSTLtype wstring
|
||||||
syntax keyword cppSTLtype wstringbuf
|
syntax keyword cppSTLtype wstringbuf
|
||||||
syntax keyword cppSTLtype wstringstream
|
syntax keyword cppSTLtype wstringstream
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction mblen
|
||||||
|
syntax keyword cppSTLfunction mbtowc
|
||||||
|
syntax keyword cppSTLfunction wctomb
|
||||||
|
syntax keyword cppSTLfunction mbstowcs
|
||||||
|
syntax keyword cppSTLfunction wcstombs
|
||||||
|
syntax keyword cppSTLfunction mbsinit
|
||||||
|
syntax keyword cppSTLfunction btowc
|
||||||
|
syntax keyword cppSTLfunction wctob
|
||||||
|
syntax keyword cppSTLfunction mbrlen
|
||||||
|
syntax keyword cppSTLfunction mbrtowc
|
||||||
|
syntax keyword cppSTLfunction wcrtomb
|
||||||
|
syntax keyword cppSTLfunction mbsrtowcs
|
||||||
|
syntax keyword cppSTLfunction wcsrtombs
|
||||||
|
|
||||||
|
syntax keyword cppSTLtype mbstate_t
|
||||||
|
|
||||||
|
syntax keyword cppSTLconstant MB_LEN_MAX
|
||||||
|
syntax keyword cppSTLconstant MB_CUR_MAX
|
||||||
|
syntax keyword cppSTLconstant __STDC_UTF_16__
|
||||||
|
syntax keyword cppSTLconstant __STDC_UTF_32__
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction iswalnum
|
||||||
|
syntax keyword cppSTLfunction iswalpha
|
||||||
|
syntax keyword cppSTLfunction iswlower
|
||||||
|
syntax keyword cppSTLfunction iswupper
|
||||||
|
syntax keyword cppSTLfunction iswdigit
|
||||||
|
syntax keyword cppSTLfunction iswxdigit
|
||||||
|
syntax keyword cppSTLfunction iswcntrl
|
||||||
|
syntax keyword cppSTLfunction iswgraph
|
||||||
|
syntax keyword cppSTLfunction iswspace
|
||||||
|
syntax keyword cppSTLfunction iswprint
|
||||||
|
syntax keyword cppSTLfunction iswpunct
|
||||||
|
syntax keyword cppSTLfunction iswctype
|
||||||
|
syntax keyword cppSTLfunction wctype
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction towlower
|
||||||
|
syntax keyword cppSTLfunction towupper
|
||||||
|
syntax keyword cppSTLfunction towctrans
|
||||||
|
syntax keyword cppSTLfunction wctrans
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction wcstol
|
||||||
|
syntax keyword cppSTLfunction wcstoll
|
||||||
|
syntax keyword cppSTLfunction wcstoul
|
||||||
|
syntax keyword cppSTLfunction wcstoull
|
||||||
|
syntax keyword cppSTLfunction wcstof
|
||||||
|
syntax keyword cppSTLfunction wcstod
|
||||||
|
syntax keyword cppSTLfunction wcstold
|
||||||
|
|
||||||
|
syntax keyword cppSTLfunction wcscpy
|
||||||
|
syntax keyword cppSTLfunction wcsncpy
|
||||||
|
syntax keyword cppSTLfunction wcscat
|
||||||
|
syntax keyword cppSTLfunction wcsncat
|
||||||
|
syntax keyword cppSTLfunction wcsxfrm
|
||||||
|
syntax keyword cppSTLfunction wcslen
|
||||||
|
syntax keyword cppSTLfunction wcscmp
|
||||||
|
syntax keyword cppSTLfunction wcsncmp
|
||||||
|
syntax keyword cppSTLfunction wcscoll
|
||||||
|
syntax keyword cppSTLfunction wcschr
|
||||||
|
syntax keyword cppSTLfunction wcsrchr
|
||||||
|
syntax keyword cppSTLfunction wcsspn
|
||||||
|
syntax keyword cppSTLfunction wcscspn
|
||||||
|
syntax keyword cppSTLfunction wcspbrk
|
||||||
|
syntax keyword cppSTLfunction wcsstr
|
||||||
|
syntax keyword cppSTLfunction wcstok
|
||||||
|
syntax keyword cppSTLfunction wmemcpy
|
||||||
|
syntax keyword cppSTLfunction wmemmove
|
||||||
|
syntax keyword cppSTLfunction wmemcmp
|
||||||
|
syntax keyword cppSTLfunction wmemchr
|
||||||
|
syntax keyword cppSTLfunction wmemset
|
||||||
|
|
||||||
|
syntax keyword cppSTLtype wctrans_t
|
||||||
|
syntax keyword cppSTLtype wctype_t
|
||||||
|
syntax keyword cppSTLtype wint_t
|
||||||
|
|
||||||
|
syntax keyword cppSTLconstant WEOF
|
||||||
|
syntax keyword cppSTLconstant WCHAR_MIN
|
||||||
|
syntax keyword cppSTLconstant WCHAR_MAX
|
||||||
|
|
||||||
if !exists("cpp_no_cpp11")
|
if !exists("cpp_no_cpp11")
|
||||||
syntax keyword cppSTLtype nullptr_t max_align_t
|
syntax keyword cppSTLtype nullptr_t max_align_t
|
||||||
syntax keyword cppSTLtype type_index
|
syntax keyword cppSTLtype type_index
|
||||||
|
syntax keyword cppSTLconstant nullptr
|
||||||
|
|
||||||
" type_traits
|
" type_traits
|
||||||
syntax keyword cppSTLtype is_void
|
syntax keyword cppSTLtype is_void
|
||||||
@@ -727,6 +853,10 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLtype integral_constant
|
syntax keyword cppSTLtype integral_constant
|
||||||
syntax keyword cppSTLtype true_type
|
syntax keyword cppSTLtype true_type
|
||||||
syntax keyword cppSTLtype false_type
|
syntax keyword cppSTLtype false_type
|
||||||
|
syntax keyword cppSTLfunction declval
|
||||||
|
|
||||||
|
syntax keyword cppSTLconstant piecewise_construct
|
||||||
|
syntax keyword cppSTLtype piecewise_construct_t
|
||||||
|
|
||||||
" memory
|
" memory
|
||||||
syntax keyword cppSTLtype unique_ptr
|
syntax keyword cppSTLtype unique_ptr
|
||||||
@@ -751,6 +881,12 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLtype pointer_traits
|
syntax keyword cppSTLtype pointer_traits
|
||||||
syntax keyword cppSTLfunction addressof
|
syntax keyword cppSTLfunction addressof
|
||||||
syntax keyword cppSTLfunction align
|
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
|
" function object
|
||||||
syntax keyword cppSTLfunction bind
|
syntax keyword cppSTLfunction bind
|
||||||
@@ -776,6 +912,7 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLfunction quick_exit
|
syntax keyword cppSTLfunction quick_exit
|
||||||
syntax keyword cppSTLfunction _Exit
|
syntax keyword cppSTLfunction _Exit
|
||||||
syntax keyword cppSTLfunction at_quick_exit
|
syntax keyword cppSTLfunction at_quick_exit
|
||||||
|
syntax keyword cppSTLfunction forward
|
||||||
|
|
||||||
" date and time
|
" date and time
|
||||||
syntax keyword cppSTLnamespace chrono
|
syntax keyword cppSTLnamespace chrono
|
||||||
@@ -784,6 +921,8 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLtype steady_clock
|
syntax keyword cppSTLtype steady_clock
|
||||||
syntax keyword cppSTLtype high_resolution_clock
|
syntax keyword cppSTLtype high_resolution_clock
|
||||||
syntax keyword cppSTLtype time_point
|
syntax keyword cppSTLtype time_point
|
||||||
|
syntax keyword cppSTLcast duration_cast
|
||||||
|
syntax keyword cppSTLcast time_point_cast
|
||||||
|
|
||||||
" tuple
|
" tuple
|
||||||
syntax keyword cppSTLtype tuple
|
syntax keyword cppSTLtype tuple
|
||||||
@@ -842,6 +981,7 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLfunction copy_if
|
syntax keyword cppSTLfunction copy_if
|
||||||
syntax keyword cppSTLfunction copy_n
|
syntax keyword cppSTLfunction copy_n
|
||||||
syntax keyword cppSTLfunction move
|
syntax keyword cppSTLfunction move
|
||||||
|
syntax keyword cppSTLfunction move_if_noexcept
|
||||||
syntax keyword cppSTLfunction move_backward
|
syntax keyword cppSTLfunction move_backward
|
||||||
syntax keyword cppSTLfunction shuffle
|
syntax keyword cppSTLfunction shuffle
|
||||||
syntax keyword cppSTLfunction is_partitioned
|
syntax keyword cppSTLfunction is_partitioned
|
||||||
@@ -916,7 +1056,7 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLconstant FLT_EVAL_METHOD
|
syntax keyword cppSTLconstant FLT_EVAL_METHOD
|
||||||
|
|
||||||
" complex
|
" complex
|
||||||
syntax keyword cppSTLfunction proj
|
"syntax keyword cppSTLfunction proj
|
||||||
|
|
||||||
" random
|
" random
|
||||||
syntax keyword cppSTLtype linear_congruential_engine
|
syntax keyword cppSTLtype linear_congruential_engine
|
||||||
@@ -968,6 +1108,7 @@ if !exists("cpp_no_cpp11")
|
|||||||
|
|
||||||
" locale
|
" locale
|
||||||
syntax keyword cppSTLfunction isblank
|
syntax keyword cppSTLfunction isblank
|
||||||
|
syntax keyword cppSTLfunction iswblank
|
||||||
syntax keyword cppSTLtype wstring_convert
|
syntax keyword cppSTLtype wstring_convert
|
||||||
syntax keyword cppSTLtype wbuffer_convert
|
syntax keyword cppSTLtype wbuffer_convert
|
||||||
syntax keyword cppSTLtype codecvt_utf8
|
syntax keyword cppSTLtype codecvt_utf8
|
||||||
@@ -1016,16 +1157,55 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLfunction atomic_flag_clear
|
syntax keyword cppSTLfunction atomic_flag_clear
|
||||||
syntax keyword cppSTLfunction atomic_flag_clear_explicit
|
syntax keyword cppSTLfunction atomic_flag_clear_explicit
|
||||||
|
|
||||||
|
syntax keyword cppSTLtype atomic_bool
|
||||||
|
syntax keyword cppSTLtype atomic_char
|
||||||
|
syntax keyword cppSTLtype atomic_schar
|
||||||
|
syntax keyword cppSTLtype atomic_uchar
|
||||||
|
syntax keyword cppSTLtype atomic_short
|
||||||
|
syntax keyword cppSTLtype atomic_ushort
|
||||||
|
syntax keyword cppSTLtype atomic_int
|
||||||
|
syntax keyword cppSTLtype atomic_uint
|
||||||
|
syntax keyword cppSTLtype atomic_long
|
||||||
|
syntax keyword cppSTLtype atomic_ulong
|
||||||
|
syntax keyword cppSTLtype atomic_llong
|
||||||
|
syntax keyword cppSTLtype atomic_ullong
|
||||||
|
syntax keyword cppSTLtype atomic_char16_t
|
||||||
|
syntax keyword cppSTLtype atomic_char32_t
|
||||||
|
syntax keyword cppSTLtype atomic_wchar_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least8_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least8_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least16_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least16_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least32_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least32_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_least64_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_least64_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast8_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast8_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast16_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast16_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast32_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast32_t
|
||||||
|
syntax keyword cppSTLtype atomic_int_fast64_t
|
||||||
|
syntax keyword cppSTLtype atomic_uint_fast64_t
|
||||||
|
syntax keyword cppSTLtype atomic_intptr_t
|
||||||
|
syntax keyword cppSTLtype atomic_uintptr_t
|
||||||
|
syntax keyword cppSTLtype atomic_size_t
|
||||||
|
syntax keyword cppSTLtype atomic_ptrdiff_t
|
||||||
|
syntax keyword cppSTLtype atomic_intmax_t
|
||||||
|
syntax keyword cppSTLtype atomic_uintmax_t
|
||||||
|
|
||||||
syntax keyword cppSTLtype memory_order
|
syntax keyword cppSTLtype memory_order
|
||||||
syntax keyword cppSTLfunction atomic_init
|
syntax keyword cppSTLfunction atomic_init
|
||||||
syntax keyword cppSTLfunction ATOMIC_VAR_INIT
|
syntax keyword cppSTLfunction ATOMIC_VAR_INIT
|
||||||
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
|
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
|
||||||
syntax keyword cppSTLconstant kill_dependency
|
syntax keyword cppSTLfunction kill_dependency
|
||||||
syntax keyword cppSTLconstant atomic_thread_fence
|
syntax keyword cppSTLfunction atomic_thread_fence
|
||||||
syntax keyword cppSTLconstant atomic_signal_fence
|
syntax keyword cppSTLfunction atomic_signal_fence
|
||||||
|
|
||||||
" thread
|
" thread
|
||||||
syntax keyword cppSTLtype thread
|
syntax keyword cppSTLtype thread
|
||||||
|
syntax keyword cppSTLnamespace this_thread
|
||||||
syntax keyword cppSTLfunction yield
|
syntax keyword cppSTLfunction yield
|
||||||
syntax keyword cppSTLfunction get_id
|
syntax keyword cppSTLfunction get_id
|
||||||
syntax keyword cppSTLfunction sleep_for
|
syntax keyword cppSTLfunction sleep_for
|
||||||
@@ -1061,8 +1241,8 @@ if !exists("cpp_no_cpp11")
|
|||||||
syntax keyword cppSTLtype future
|
syntax keyword cppSTLtype future
|
||||||
syntax keyword cppSTLtype shared_future
|
syntax keyword cppSTLtype shared_future
|
||||||
|
|
||||||
"syntax keyword cppSTLfunction async
|
syntax keyword cppSTLfunction async
|
||||||
"syntax keyword cppSTLenum launch
|
syntax keyword cppSTLenum launch
|
||||||
|
|
||||||
syntax keyword cppSTLenum future_status
|
syntax keyword cppSTLenum future_status
|
||||||
syntax keyword cppSTLenum future_errc
|
syntax keyword cppSTLenum future_errc
|
||||||
@@ -1114,7 +1294,79 @@ if !exists("cpp_no_cpp11")
|
|||||||
|
|
||||||
"limits
|
"limits
|
||||||
syntax keyword cppSTLfunction lowest
|
syntax keyword cppSTLfunction lowest
|
||||||
endif
|
|
||||||
|
"cuchar
|
||||||
|
syntax keyword cppSTLfunction mbrtoc16
|
||||||
|
syntax keyword cppSTLfunction c16rtomb
|
||||||
|
syntax keyword cppSTLfunction mbrtoc32
|
||||||
|
syntax keyword cppSTLfunction c32rtomb
|
||||||
|
|
||||||
|
"cinttypes
|
||||||
|
syntax keyword cppSTLfunction strtoimax
|
||||||
|
syntax keyword cppSTLfunction strtoumax
|
||||||
|
syntax keyword cppSTLfunction wcstoimax
|
||||||
|
syntax keyword cppSTLfunction wcstoumax
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
"helper type traits types
|
||||||
|
syntax keyword cppSTLtype remove_cv_t
|
||||||
|
syntax keyword cppSTLtype remove_const_t
|
||||||
|
syntax keyword cppSTLtype remove_volatile_t
|
||||||
|
syntax keyword cppSTLtype add_cv_t
|
||||||
|
syntax keyword cppSTLtype add_const_t
|
||||||
|
syntax keyword cppSTLtype add_volatile_t
|
||||||
|
syntax keyword cppSTLtype remove_reference_t
|
||||||
|
syntax keyword cppSTLtype add_lvalue_reference_t
|
||||||
|
syntax keyword cppSTLtype add_rvalue_reference_t
|
||||||
|
syntax keyword cppSTLtype remove_pointer_t
|
||||||
|
syntax keyword cppSTLtype add_pointer_t
|
||||||
|
syntax keyword cppSTLtype remove_extent_t
|
||||||
|
syntax keyword cppSTLtype remove_all_extents_t
|
||||||
|
syntax keyword cppSTLtype make_signed_t
|
||||||
|
syntax keyword cppSTLtype make_unsigned_t
|
||||||
|
syntax keyword cppSTLtype aligned_storage_t
|
||||||
|
syntax keyword cppSTLtype aligned_union_t
|
||||||
|
syntax keyword cppSTLtype decay_t
|
||||||
|
syntax keyword cppSTLtype enable_if_t
|
||||||
|
syntax keyword cppSTLtype conditional_t
|
||||||
|
syntax keyword cppSTLtype common_type_t
|
||||||
|
syntax keyword cppSTLtype underlying_type_t
|
||||||
|
syntax keyword cppSTLtype result_of_t
|
||||||
|
|
||||||
|
"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
|
" Default highlighting
|
||||||
if version >= 508 || !exists("did_cpp_syntax_inits")
|
if version >= 508 || !exists("did_cpp_syntax_inits")
|
||||||
@@ -1125,15 +1377,19 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
|||||||
command -nargs=+ HiLink hi def link <args>
|
command -nargs=+ HiLink hi def link <args>
|
||||||
endif
|
endif
|
||||||
HiLink cppSTLfunction Function
|
HiLink cppSTLfunction Function
|
||||||
HiLink cppSTLfunctional Type
|
HiLink cppSTLfunctional Typedef
|
||||||
HiLink cppSTLconstant Constant
|
HiLink cppSTLconstant Constant
|
||||||
HiLink cppSTLnamespace Constant
|
HiLink cppSTLnamespace Constant
|
||||||
HiLink cppSTLtype Type
|
HiLink cppSTLtype Typedef
|
||||||
HiLink cppSTLexception Type
|
HiLink cppSTLexception Exception
|
||||||
HiLink cppSTLiterator Type
|
HiLink cppSTLiterator Typedef
|
||||||
HiLink cppSTLiterator_tag Type
|
HiLink cppSTLiterator_tag Typedef
|
||||||
HiLink cppSTLenum Type
|
HiLink cppSTLenum Typedef
|
||||||
HiLink cppSTLios Function
|
HiLink cppSTLios Function
|
||||||
|
HiLink cppSTLcast Statement " be consistent with official syntax
|
||||||
|
HiLink cppRawString String
|
||||||
|
HiLink cppRawDelimiter Delimiter
|
||||||
delcommand HiLink
|
delcommand HiLink
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,500 +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,', '' )
|
|
||||||
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
|
" Language: CoffeeScript
|
||||||
" Maintainer: Sven Felix Oberquelle <Svelix.Github@gmail.com>
|
" Maintainer: Sven Felix Oberquelle <Svelix.Github@gmail.com>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
@@ -11,3 +13,5 @@ syn region hamlCoffeescriptFilter matchgroup=hamlFilter
|
|||||||
\ end="^\%(\z1 \| *$\)\@!"
|
\ end="^\%(\z1 \| *$\)\@!"
|
||||||
\ contains=@hamlCoffeeScript,hamlInterpolation
|
\ contains=@hamlCoffeeScript,hamlInterpolation
|
||||||
\ keepend
|
\ keepend
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,8 +1,18 @@
|
|||||||
let b:current_syntax = ''
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
|
||||||
unlet b:current_syntax
|
|
||||||
|
" 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
|
syntax include @ScalaCode syntax/scala.vim
|
||||||
|
|
||||||
if has('conceal')
|
if has('conceal')
|
||||||
syntax region rgnScala matchgroup=Ignore concealends start='!sc!' end='!/sc!' contains=@ScalaCode
|
syntax region rgnScala matchgroup=Ignore concealends start='!sc!' end='!/sc!' contains=@ScalaCode
|
||||||
else
|
else
|
||||||
syntax region rgnScala matchgroup=Ignore start='!sc!' end='!/sc!' contains=@ScalaCode
|
syntax region rgnScala matchgroup=Ignore start='!sc!' end='!/sc!' contains=@ScalaCode
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||||
|
|
||||||
" Language: CoffeeScript
|
" Language: CoffeeScript
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
" Maintainer: Mick Koch <mick@kochm.co>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
@@ -9,3 +11,48 @@ syn region coffeeScript start=#<script [^>]*type="text/coffeescript"[^>]*>#
|
|||||||
\ end=#</script>#me=s-1 keepend
|
\ end=#</script>#me=s-1 keepend
|
||||||
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
|
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
|
||||||
\ containedin=htmlHead
|
\ containedin=htmlHead
|
||||||
|
|
||||||
|
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
|
||||||
|
|||||||
58
after/syntax/jsx.vim
Normal file
58
after/syntax/jsx.vim
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
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.
|
||||||
|
"
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
" 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
|
||||||
|
|
||||||
|
" Officially, vim-jsx depends on the pangloss/vim-javascript syntax package
|
||||||
|
" (and is tested against it exclusively). However, in practice, we make some
|
||||||
|
" effort towards compatibility with other packages.
|
||||||
|
"
|
||||||
|
" These are the plugin-to-syntax-element correspondences:
|
||||||
|
"
|
||||||
|
" - pangloss/vim-javascript: jsBlock, jsExpression
|
||||||
|
" - jelera/vim-javascript-syntax: javascriptBlock
|
||||||
|
" - othree/yajs.vim: javascriptNoReserved
|
||||||
|
|
||||||
|
|
||||||
|
" Highlight JSX regions as XML; recursively match.
|
||||||
|
"
|
||||||
|
" Note that we prohibit JSX tags from having a < or word character immediately
|
||||||
|
" preceding it, to avoid conflicts with, respectively, the left shift operator
|
||||||
|
" and generic Flow type annotations (http://flowtype.org/).
|
||||||
|
syn region jsxRegion contains=@XMLSyntax,jsxRegion,jsBlock,javascriptBlock
|
||||||
|
\ start=+\%(<\|\w\)\@<!<\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
|
||||||
|
|
||||||
|
" Allow jsxRegion to contain reserved words.
|
||||||
|
syn cluster javascriptNoReserved add=jsxRegion
|
||||||
|
|
||||||
|
endif
|
||||||
23
after/syntax/objc.vim
Normal file
23
after/syntax/objc.vim
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'objc') == -1
|
||||||
|
|
||||||
|
" ARC type modifiers
|
||||||
|
syn keyword objcTypeModifier __bridge __bridge_retained __bridge_transfer __autoreleasing __strong __weak __unsafe_unretained
|
||||||
|
|
||||||
|
" Block modifiers
|
||||||
|
syn keyword objcTypeModifier __block
|
||||||
|
|
||||||
|
" Remote messaging modifiers
|
||||||
|
syn keyword objcTypeModifier byref
|
||||||
|
|
||||||
|
" Property keywords - these are only highlighted inside '@property (...)'
|
||||||
|
syn keyword objcPropertyAttribute contained getter setter readwrite readonly strong weak copy assign retain nonatomic
|
||||||
|
syn match objcProperty display "^\s*@property\>\s*([^)]*)" contains=objcPropertyAttribute
|
||||||
|
|
||||||
|
" The @property directive must be defined after objcProperty or it won't be
|
||||||
|
" highlighted
|
||||||
|
syn match objcDirective "@property\|@synthesize\|@dynamic\|@package"
|
||||||
|
|
||||||
|
" Highlight property attributes as if they were type modifiers
|
||||||
|
hi def link objcPropertyAttribute objcTypeModifier
|
||||||
|
|
||||||
|
endif
|
||||||
36
after/syntax/rspec.vim
Normal file
36
after/syntax/rspec.vim
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
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
|
||||||
|
"
|
||||||
|
"
|
||||||
|
|
||||||
|
runtime! syntax/ruby.vim
|
||||||
|
unlet! b:current_syntax
|
||||||
|
|
||||||
|
syntax keyword rspecGroupMethods context describe example it its let it_should_behave_like shared_examples_for subject it_behaves_like pending specify When Then Given Invariant feature scenario given
|
||||||
|
highlight link rspecGroupMethods Type
|
||||||
|
|
||||||
|
syntax keyword rspecBeforeAndAfter after after_suite_parts append_after append_before before before_suite_parts prepend_after prepend_before around
|
||||||
|
highlight link rspecBeforeAndAfter Statement
|
||||||
|
|
||||||
|
syntax keyword rspecMocks double mock stub stub_chain
|
||||||
|
highlight link rspecMocks Constant
|
||||||
|
|
||||||
|
syntax keyword rspecMockMethods and_raise and_return and_throw and_yield build_child called_max_times expected_args invoke matches
|
||||||
|
highlight link rspecMockMethods Function
|
||||||
|
|
||||||
|
syntax keyword rspecKeywords should should_not should_not_receive should_receive
|
||||||
|
highlight link rspecKeywords Constant
|
||||||
|
|
||||||
|
syntax keyword rspecMatchers be change eql equal exist expect have have_at_least have_at_most have_exactly include match matcher raise_error raise_exception respond_to satisfy throw_symbol to to_not not_to when wrap_expectation
|
||||||
|
syntax match rspecMatchers /\<\(be\|have\)_\w\+\>/
|
||||||
|
highlight link rspecMatchers Function
|
||||||
|
|
||||||
|
syntax keyword rspecMessageExpectation advise any_args any_number_of_times anything at_least at_most exactly expected_messages_received generate_error hash_including hash_not_including ignoring_args instance_of matches_at_least_count matches_at_most_count matches_exact_count matches_name_but_not_args negative_expectation_for never no_args once ordered similar_messages times twice verify_messages_received with
|
||||||
|
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.
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yard') == -1
|
||||||
"
|
|
||||||
" For more information on TomDoc, check it out here: http://tomdoc.org/
|
" 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
|
" Tags
|
||||||
syn keyword tomdocKeywords Raises containedin=rubyComment contained
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
syn keyword tomdocKeywords Examples containedin=rubyComment contained
|
syn match yardGenericTag "@\h\+" contained
|
||||||
syn keyword tomdocKeywords Signature containedin=rubyComment 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 cluster yardDirectives contains=yardGenericDirective,yardAttribute,yardEndGroup,yardGroup,yardMacro,yardMethod,yardParse,yardScope,yardVisibility
|
||||||
syn match tomdocDescriptions +\s*Internal:+he=e-1 containedin=rubyComment contained
|
|
||||||
syn match tomdocDescriptions +\s*Deprecated:+he=e-1 containedin=rubyComment contained
|
|
||||||
|
|
||||||
hi default link tomdocDescriptions TODO
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
hi default link tomdocKeywords TODO
|
" Types, Lists, and Hashes
|
||||||
hi default link tomdocArguments HELP
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
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
|
||||||
|
|||||||
35
after/syntax/rust.vim
Normal file
35
after/syntax/rust.vim
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||||
|
|
||||||
|
if !exists('g:rust_conceal') || g:rust_conceal == 0 || !has('conceal') || &enc != 'utf-8'
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" For those who don't want to see `::`...
|
||||||
|
if exists('g:rust_conceal_mod_path') && g:rust_conceal_mod_path != 0
|
||||||
|
syn match rustNiceOperator "::" conceal cchar=ㆍ
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match rustRightArrowHead contained ">" conceal cchar=
|
||||||
|
syn match rustRightArrowTail contained "-" conceal cchar=⟶
|
||||||
|
syn match rustNiceOperator "->" contains=rustRightArrowHead,rustRightArrowTail
|
||||||
|
|
||||||
|
syn match rustFatRightArrowHead contained ">" conceal cchar=
|
||||||
|
syn match rustFatRightArrowTail contained "=" conceal cchar=⟹
|
||||||
|
syn match rustNiceOperator "=>" contains=rustFatRightArrowHead,rustFatRightArrowTail
|
||||||
|
|
||||||
|
syn match rustNiceOperator /\<\@!_\(_*\>\)\@=/ conceal cchar=′
|
||||||
|
|
||||||
|
" For those who don't want to see `pub`...
|
||||||
|
if exists('g:rust_conceal_pub') && g:rust_conceal_pub != 0
|
||||||
|
syn match rustPublicSigil contained "pu" conceal cchar=*
|
||||||
|
syn match rustPublicRest contained "b" conceal cchar=
|
||||||
|
syn match rustNiceOperator "pub " contains=rustPublicSigil,rustPublicRest
|
||||||
|
endif
|
||||||
|
|
||||||
|
hi link rustNiceOperator Operator
|
||||||
|
|
||||||
|
if !exists('g:rust_conceal_mod_path') && g:rust_conceal_mod_path != 0
|
||||||
|
hi! link Conceal Operator
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1 +0,0 @@
|
|||||||
syn cluster sassCssAttributes add=@cssColors
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
syn cluster stylusCssAttributes add=@cssColors
|
|
||||||
13
after/syntax/tex.vim
Normal file
13
after/syntax/tex.vim
Normal file
@@ -0,0 +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
|
||||||
64
after/syntax/yaml.vim
Normal file
64
after/syntax/yaml.vim
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||||
|
|
||||||
|
" To make this file do stuff, add something like the following (without the
|
||||||
|
" leading ") to your ~/.vimrc:
|
||||||
|
" au BufNewFile,BufRead *.yaml,*.yml so ~/src/PyYaml/YAML.vim
|
||||||
|
|
||||||
|
" Vim syntax/macro file
|
||||||
|
" Language: YAML
|
||||||
|
" Author: Igor Vergeichik <iverg@mail.ru>
|
||||||
|
" Sponsor: Tom Sawyer <transami@transami.net>
|
||||||
|
" Stayven: Ryan King <jking@panoptic.com>
|
||||||
|
" Copyright (c) 2002 Tom Saywer
|
||||||
|
|
||||||
|
" Add an item to a gangly list:
|
||||||
|
"map , o<bs><bs><bs><bs>-<esc>o
|
||||||
|
" Convert to Canonical form:
|
||||||
|
"map \c :%!python -c 'from yaml.redump import redump; import sys; print redump(sys.stdin.read()).rstrip()'
|
||||||
|
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
endif
|
||||||
|
syntax clear
|
||||||
|
|
||||||
|
syn match yamlDelimiter "[:,-]"
|
||||||
|
syn match yamlBlock "[\[\]\{\}\|\>]"
|
||||||
|
syn match yamlOperator "[?^+-]\|=>"
|
||||||
|
|
||||||
|
syn region yamlComment start="\#" end="$"
|
||||||
|
syn match yamlIndicator "#YAML:\S\+"
|
||||||
|
|
||||||
|
syn region yamlString start="'" end="'" skip="\\'"
|
||||||
|
syn region yamlString start='"' end='"' skip='\\"' contains=yamlEscape
|
||||||
|
syn match yamlEscape +\\[abfnrtv'"\\]+ contained
|
||||||
|
syn match yamlEscape "\\\o\o\=\o\=" contained
|
||||||
|
syn match yamlEscape "\\x\x\+" contained
|
||||||
|
|
||||||
|
syn match yamlType "!\S\+"
|
||||||
|
|
||||||
|
syn keyword yamlConstant NULL Null null NONE None none NIL Nil nil
|
||||||
|
syn keyword yamlConstant TRUE True true YES Yes yes ON On on
|
||||||
|
syn keyword yamlConstant FALSE False false NO No no OFF Off off
|
||||||
|
|
||||||
|
syn match yamlKey "\w\+\ze\s*:"
|
||||||
|
syn match yamlAnchor "&\S\+"
|
||||||
|
syn match yamlAlias "*\S\+"
|
||||||
|
|
||||||
|
" Setupt the hilighting links
|
||||||
|
|
||||||
|
hi link yamlConstant Keyword
|
||||||
|
hi link yamlIndicator PreCondit
|
||||||
|
hi link yamlAnchor Function
|
||||||
|
hi link yamlAlias Function
|
||||||
|
hi link yamlKey Identifier
|
||||||
|
hi link yamlType Type
|
||||||
|
|
||||||
|
hi link yamlComment Comment
|
||||||
|
hi link yamlBlock Operator
|
||||||
|
hi link yamlOperator Operator
|
||||||
|
hi link yamlDelimiter Delimiter
|
||||||
|
hi link yamlString String
|
||||||
|
hi link yamlEscape Special
|
||||||
|
|
||||||
|
|
||||||
|
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
|
" Language: CoffeeScript
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
" Maintainer: Mick Koch <mick@kochm.co>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
@@ -52,3 +54,5 @@ function! coffee#CoffeeSetUpErrorFormat()
|
|||||||
\%f:%l:%c:\ error:\ %m,
|
\%f:%l:%c:\ error:\ %m,
|
||||||
\%-G%.%#
|
\%-G%.%#
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
70
autoload/dart.vim
Normal file
70
autoload/dart.vim
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
|
||||||
|
|
||||||
|
|
||||||
|
function! s:error(text) abort
|
||||||
|
echohl Error
|
||||||
|
echomsg printf('[dart-vim-plugin] %s', a:text)
|
||||||
|
echohl None
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:cexpr(errorformat, joined_lines) abort
|
||||||
|
let temp_errorfomat = &errorformat
|
||||||
|
try
|
||||||
|
let &errorformat = a:errorformat
|
||||||
|
cexpr a:joined_lines
|
||||||
|
copen
|
||||||
|
finally
|
||||||
|
let &errorformat = temp_errorfomat
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! dart#fmt(q_args) abort
|
||||||
|
if executable('dartfmt')
|
||||||
|
let path = expand('%:p:gs:\:/:')
|
||||||
|
if filereadable(path)
|
||||||
|
let joined_lines = system(printf('dartfmt %s %s', a:q_args, shellescape(path)))
|
||||||
|
if 0 == v:shell_error
|
||||||
|
silent % delete _
|
||||||
|
silent put=joined_lines
|
||||||
|
silent 1 delete _
|
||||||
|
else
|
||||||
|
call s:cexpr('line %l\, column %c of %f: %m', joined_lines)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
call s:error(printf('cannot read a file: "%s"', path))
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
call s:error('cannot execute binary file: dartfmt')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! dart#analyzer(q_args) abort
|
||||||
|
if executable('dartanalyzer')
|
||||||
|
let path = expand('%:p:gs:\:/:')
|
||||||
|
if filereadable(path)
|
||||||
|
let joined_lines = system(printf('dartanalyzer %s %s', a:q_args, shellescape(path)))
|
||||||
|
call s:cexpr('%m (%f\, line %l\, col %c)', joined_lines)
|
||||||
|
else
|
||||||
|
call s:error(printf('cannot read a file: "%s"', path))
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
call s:error('cannot execute binary file: dartanalyzer')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! dart#tojs(q_args) abort
|
||||||
|
if executable('dart2js')
|
||||||
|
let path = expand('%:p:gs:\:/:')
|
||||||
|
if filereadable(path)
|
||||||
|
let joined_lines = system(printf('dart2js %s %s', a:q_args, shellescape(path)))
|
||||||
|
call s:cexpr('%m (%f\, line %l\, col %c)', joined_lines)
|
||||||
|
else
|
||||||
|
call s:error(printf('cannot read a file: "%s"', path))
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
call s:error('cannot execute binary file: dartanalyzer')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
12
autoload/elm/io.vim
Normal file
12
autoload/elm/io.vim
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
|
||||||
|
|
||||||
|
" System IO
|
||||||
|
|
||||||
|
" Craft a system command and run it, returning the output.
|
||||||
|
function! elm#io#system(program, args)
|
||||||
|
let cmd ="which " . a:program . " && " . a:program . " " . a:args
|
||||||
|
return system(cmd)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
" Vim omni completion file
|
|
||||||
" Language: Erlang
|
|
||||||
" Author: Oscar Hellström <oscar@oscarh.net>
|
|
||||||
" Contributors: kTT (http://github.com/kTT)
|
|
||||||
" Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
|
|
||||||
" Eduardo Lopez (http://github.com/tapichu)
|
|
||||||
" Zhihui Jiao (http://github.com/onlychoice)
|
|
||||||
" License: Vim license
|
|
||||||
" Version: 2012/11/26
|
|
||||||
|
|
||||||
if !exists('g:erlang_completion_cache')
|
|
||||||
let g:erlang_completion_cache = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Completion program path
|
|
||||||
let s:erlang_complete_file = expand('<sfile>:p:h') . '/erlang_complete.erl'
|
|
||||||
|
|
||||||
" Modules cache used to speed up the completion
|
|
||||||
let s:modules_cache = {}
|
|
||||||
|
|
||||||
" File cache for persistence between Vim sessions
|
|
||||||
if filewritable(expand('<sfile>:p:h')) == 2
|
|
||||||
let s:file_cache = expand('<sfile>:p:h') . '/vimerl_cache'
|
|
||||||
else
|
|
||||||
let s:file_cache = '/tmp/vimerl_cache'
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Patterns for completions
|
|
||||||
let s:erlang_local_func_beg = '\(\<[0-9A-Za-z_-]*\|\s*\)$'
|
|
||||||
let s:erlang_external_func_beg = '\<[0-9A-Za-z_-]\+:[0-9A-Za-z_-]*$'
|
|
||||||
let s:erlang_blank_line = '^\s*\(%.*\)\?$'
|
|
||||||
|
|
||||||
" Main function for completion
|
|
||||||
function erlang_complete#Complete(findstart, base)
|
|
||||||
let lnum = line('.')
|
|
||||||
let column = col('.')
|
|
||||||
let line = strpart(getline('.'), 0, column - 1)
|
|
||||||
|
|
||||||
" 1) Check if the char to the left of us are part of a function call
|
|
||||||
"
|
|
||||||
" 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
|
|
||||||
|
|
||||||
" 2) Function in external module
|
|
||||||
if line =~ s:erlang_external_func_beg
|
|
||||||
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
|
|
||||||
|
|
||||||
" 3) Local function
|
|
||||||
if line =~ s:erlang_local_func_beg
|
|
||||||
let funcstart = match(line, ':\@<![0-9A-Za-z_-]*$')
|
|
||||||
if a:findstart
|
|
||||||
return funcstart
|
|
||||||
else
|
|
||||||
return s:ErlangFindLocalFunc(a:base)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" 4) Unhandled situation
|
|
||||||
if a:findstart
|
|
||||||
return -1
|
|
||||||
else
|
|
||||||
return []
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Find the next non-blank line
|
|
||||||
function s:ErlangFindNextNonBlank(lnum)
|
|
||||||
let lnum = nextnonblank(a:lnum + 1)
|
|
||||||
let line = getline(lnum)
|
|
||||||
|
|
||||||
while line =~ s:erlang_blank_line && 0 != lnum
|
|
||||||
let lnum = nextnonblank(lnum + 1)
|
|
||||||
let line = getline(lnum)
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
return lnum
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Find external function names
|
|
||||||
function s:ErlangFindExternalFunc(module, base)
|
|
||||||
" If the module is cached, load its functions
|
|
||||||
if has_key(s:modules_cache, a:module)
|
|
||||||
for field_cache in get(s:modules_cache, a:module)
|
|
||||||
if match(field_cache.word, a:base) == 0
|
|
||||||
call complete_add(field_cache)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
return []
|
|
||||||
endif
|
|
||||||
|
|
||||||
let functions = system(s:erlang_complete_file . ' ' . a:module)
|
|
||||||
for function_spec in split(functions, '\n')
|
|
||||||
if match(function_spec, a:base) == 0
|
|
||||||
let function_name = matchstr(function_spec, a:base . '\w*')
|
|
||||||
let field = {'word': function_name . '(', 'abbr': function_spec,
|
|
||||||
\ 'kind': 'f', 'dup': 1}
|
|
||||||
call complete_add(field)
|
|
||||||
|
|
||||||
" Populate the cache only when iterating over all the
|
|
||||||
" module functions (i.e. no prefix for the completion)
|
|
||||||
if g:erlang_completion_cache && a:base == ''
|
|
||||||
if !has_key(s:modules_cache, a:module)
|
|
||||||
let s:modules_cache[a:module] = [field]
|
|
||||||
else
|
|
||||||
let fields_cache = get(s:modules_cache, a:module)
|
|
||||||
let s:modules_cache[a:module] = add(fields_cache, field)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" The user entered some text, so stop the completion
|
|
||||||
if complete_check()
|
|
||||||
" The module couldn't be entirely cached
|
|
||||||
if has_key(s:modules_cache, a:module)
|
|
||||||
call remove(s:modules_cache, a:module)
|
|
||||||
endif
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
call s:ErlangWriteCache(a:module)
|
|
||||||
|
|
||||||
return []
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Find local function names
|
|
||||||
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({'word': function_name, 'kind': 'f'})
|
|
||||||
endif
|
|
||||||
let lnum = s:ErlangFindNextNonBlank(lnum)
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
return []
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:ErlangLoadCache()
|
|
||||||
if filereadable(s:file_cache)
|
|
||||||
for line in readfile(s:file_cache)
|
|
||||||
let cache_entry = eval(line)
|
|
||||||
" cache_entry is a dict with just one key with the
|
|
||||||
" module name and the function list we are going to
|
|
||||||
" add to the memory cache as the value of this key
|
|
||||||
for mod_name in keys(cache_entry)
|
|
||||||
let func_list = get(cache_entry, mod_name)
|
|
||||||
let s:modules_cache[mod_name] = func_list
|
|
||||||
endfor
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:ErlangWriteCache(module)
|
|
||||||
" Write all the module functions to the cache file
|
|
||||||
if has_key(s:modules_cache, a:module)
|
|
||||||
let func_list = get(s:modules_cache, a:module)
|
|
||||||
if len(func_list) > 0
|
|
||||||
let cache_entry = {a:module : func_list}
|
|
||||||
execute 'redir >>' . s:file_cache
|
|
||||||
silent echon cache_entry
|
|
||||||
silent echon "\n"
|
|
||||||
redir END
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:ErlangPurgeCache(...)
|
|
||||||
for mod_name in a:000
|
|
||||||
if has_key(s:modules_cache, mod_name)
|
|
||||||
call remove(s:modules_cache, mod_name)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" Delete the old cache file
|
|
||||||
call delete(s:file_cache)
|
|
||||||
|
|
||||||
" Write a new one
|
|
||||||
for mod_name in keys(s:modules_cache)
|
|
||||||
call s:ErlangWriteCache(mod_name)
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Load the file cache when this script is autoloaded
|
|
||||||
call s:ErlangLoadCache()
|
|
||||||
|
|
||||||
" Command for removing modules from the cache
|
|
||||||
command -nargs=+ ErlangPurgeCache silent call s:ErlangPurgeCache(<f-args>)
|
|
||||||
@@ -1,71 +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#Package(ArgLead, CmdLine, CursorPos)
|
|
||||||
let dirs = []
|
|
||||||
|
|
||||||
if executable('go')
|
|
||||||
let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
|
|
||||||
if v:shell_error
|
|
||||||
echo '\'go env GOROOT\' failed'
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let goroot = $GOROOT
|
|
||||||
endif
|
|
||||||
|
|
||||||
if len(goroot) != 0 && isdirectory(goroot)
|
|
||||||
let dirs += [ goroot ]
|
|
||||||
endif
|
|
||||||
|
|
||||||
let workspaces = split($GOPATH, ':')
|
|
||||||
if workspaces != []
|
|
||||||
let dirs += workspaces
|
|
||||||
endif
|
|
||||||
|
|
||||||
if len(dirs) == 0
|
|
||||||
" should not happen
|
|
||||||
return []
|
|
||||||
endif
|
|
||||||
|
|
||||||
let ret = {}
|
|
||||||
for dir in dirs
|
|
||||||
let root = expand(dir . '/pkg/' . s:goos . '_' . s:goarch)
|
|
||||||
for i in split(globpath(root, a:ArgLead.'*'), "\n")
|
|
||||||
if isdirectory(i)
|
|
||||||
let i .= '/'
|
|
||||||
elseif i !~ '\.a$'
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
let i = substitute(substitute(i[len(root)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
|
||||||
let ret[i] = i
|
|
||||||
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
|
" Vim completion script
|
||||||
" Language: HTML and XHTML
|
" Language: HTML and XHTML
|
||||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||||
@@ -7,9 +9,51 @@
|
|||||||
" Last Change: 2010 Sep 25
|
" Last Change: 2010 Sep 25
|
||||||
|
|
||||||
if !exists('g:aria_attributes_complete')
|
if !exists('g:aria_attributes_complete')
|
||||||
let g:aria_attributes_complete = 1
|
let g:aria_attributes_complete = 1
|
||||||
endif
|
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)
|
function! htmlcomplete#CompleteTags(findstart, base)
|
||||||
if a:findstart
|
if a:findstart
|
||||||
" locate the start of the word
|
" locate the start of the word
|
||||||
@@ -160,18 +204,15 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
|||||||
if exists("b:entitiescompl")
|
if exists("b:entitiescompl")
|
||||||
unlet! b:entitiescompl
|
unlet! b:entitiescompl
|
||||||
|
|
||||||
if !exists("b:html_doctype")
|
|
||||||
call htmlcomplete#CheckDoctype()
|
|
||||||
endif
|
|
||||||
if !exists("b:html_omni")
|
if !exists("b:html_omni")
|
||||||
"runtime! autoload/xml/xhtml10s.vim
|
call htmlcomplete#CheckDoctype()
|
||||||
call htmlcomplete#LoadData()
|
call htmlcomplete#LoadData()
|
||||||
endif
|
endif
|
||||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||||
call htmlcomplete#LoadAria()
|
call htmlcomplete#LoadAria()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let entities = b:html_omni['vimxmlentities']
|
let entities = b:html_omni['vimxmlentities']
|
||||||
|
|
||||||
if len(a:base) == 1
|
if len(a:base) == 1
|
||||||
for m in entities
|
for m in entities
|
||||||
@@ -462,16 +503,13 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
|||||||
let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
|
let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
|
||||||
let values = []
|
let values = []
|
||||||
" Load data {{{
|
" Load data {{{
|
||||||
if !exists("b:html_doctype")
|
|
||||||
call htmlcomplete#CheckDoctype()
|
|
||||||
endif
|
|
||||||
if !exists("b:html_omni")
|
if !exists("b:html_omni")
|
||||||
"runtime! autoload/xml/xhtml10s.vim
|
call htmlcomplete#CheckDoctype()
|
||||||
call htmlcomplete#LoadData()
|
call htmlcomplete#LoadData()
|
||||||
endif
|
endif
|
||||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||||
call htmlcomplete#LoadAria()
|
call htmlcomplete#LoadAria()
|
||||||
endif
|
endif
|
||||||
" }}}
|
" }}}
|
||||||
if attrname == 'href'
|
if attrname == 'href'
|
||||||
" Now we are looking for local anchors defined by name or id
|
" Now we are looking for local anchors defined by name or id
|
||||||
@@ -545,15 +583,13 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
|||||||
let sbase = matchstr(context, '.*\ze\s.*')
|
let sbase = matchstr(context, '.*\ze\s.*')
|
||||||
|
|
||||||
" Load data {{{
|
" Load data {{{
|
||||||
if !exists("b:html_doctype")
|
|
||||||
call htmlcomplete#CheckDoctype()
|
|
||||||
endif
|
|
||||||
if !exists("b:html_omni")
|
if !exists("b:html_omni")
|
||||||
|
call htmlcomplete#CheckDoctype()
|
||||||
call htmlcomplete#LoadData()
|
call htmlcomplete#LoadData()
|
||||||
endif
|
endif
|
||||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||||
call htmlcomplete#LoadAria()
|
call htmlcomplete#LoadAria()
|
||||||
endif
|
endif
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
if has_key(b:html_omni, tag)
|
if has_key(b:html_omni, tag)
|
||||||
@@ -651,16 +687,13 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
|||||||
endif
|
endif
|
||||||
" }}}
|
" }}}
|
||||||
" Load data {{{
|
" Load data {{{
|
||||||
if !exists("b:html_doctype")
|
|
||||||
call htmlcomplete#CheckDoctype()
|
|
||||||
endif
|
|
||||||
if !exists("b:html_omni")
|
if !exists("b:html_omni")
|
||||||
"runtime! autoload/xml/xhtml10s.vim
|
call htmlcomplete#CheckDoctype()
|
||||||
call htmlcomplete#LoadData()
|
call htmlcomplete#LoadData()
|
||||||
endif
|
endif
|
||||||
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
if g:aria_attributes_complete == 1 && !exists("b:aria_omni")
|
||||||
call htmlcomplete#LoadAria()
|
call htmlcomplete#LoadAria()
|
||||||
endif
|
endif
|
||||||
" }}}
|
" }}}
|
||||||
" Tag completion {{{
|
" Tag completion {{{
|
||||||
" Deal with tag completion.
|
" Deal with tag completion.
|
||||||
@@ -763,9 +796,9 @@ endfunction
|
|||||||
function! htmlcomplete#LoadData() " {{{
|
function! htmlcomplete#LoadData() " {{{
|
||||||
if !exists("b:html_omni_flavor")
|
if !exists("b:html_omni_flavor")
|
||||||
if &filetype == 'html'
|
if &filetype == 'html'
|
||||||
let b:html_omni_flavor = 'html401t'
|
let b:html_omni_flavor = 'html5'
|
||||||
else
|
else
|
||||||
let b:html_omni_flavor = 'xhtml10s'
|
let b:html_omni_flavor = 'html5'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
" With that if we still have bloated memory but create new buffer
|
" With that if we still have bloated memory but create new buffer
|
||||||
@@ -785,61 +818,8 @@ function! htmlcomplete#CheckDoctype() " {{{
|
|||||||
else
|
else
|
||||||
let old_flavor = ''
|
let old_flavor = ''
|
||||||
endif
|
endif
|
||||||
let i = 1
|
call htmlcomplete#DetectOmniFlavor()
|
||||||
while i < 10 && i < line("$")
|
if !exists('b:html_omni_flavor')
|
||||||
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")
|
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
" Tie g:xmldata with b:html_omni this way we need to sourca data file only
|
" Tie g:xmldata with b:html_omni this way we need to sourca data file only
|
||||||
@@ -859,3 +839,5 @@ function! htmlcomplete#CheckDoctype() " {{{
|
|||||||
endfunction
|
endfunction
|
||||||
" }}}
|
" }}}
|
||||||
" vim:set foldmethod=marker:
|
" vim:set foldmethod=marker:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
232
autoload/nim.vim
Normal file
232
autoload/nim.vim
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
|
||||||
|
|
||||||
|
let g:nim_log = []
|
||||||
|
let s:plugin_path = escape(expand('<sfile>:p:h'), ' \')
|
||||||
|
|
||||||
|
if !exists("g:nim_caas_enabled")
|
||||||
|
let g:nim_caas_enabled = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !executable('nim')
|
||||||
|
echoerr "the Nim compiler must be in your system's PATH"
|
||||||
|
endif
|
||||||
|
|
||||||
|
exe 'pyfile ' . fnameescape(s:plugin_path) . '/nim_vim.py'
|
||||||
|
|
||||||
|
fun! nim#init()
|
||||||
|
let cmd = printf("nim --dump.format:json --verbosity:0 dump %s", s:CurrentNimFile())
|
||||||
|
let raw_dumpdata = system(cmd)
|
||||||
|
if !v:shell_error
|
||||||
|
let dumpdata = eval(substitute(raw_dumpdata, "\n", "", "g"))
|
||||||
|
|
||||||
|
let b:nim_project_root = dumpdata['project_path']
|
||||||
|
let b:nim_defined_symbols = dumpdata['defined_symbols']
|
||||||
|
let b:nim_caas_enabled = g:nim_caas_enabled || index(dumpdata['defined_symbols'], 'forcecaas') != -1
|
||||||
|
|
||||||
|
for path in dumpdata['lib_paths']
|
||||||
|
if finddir(path) == path
|
||||||
|
let &l:path = path . "," . &l:path
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
else
|
||||||
|
let b:nim_caas_enabled = 0
|
||||||
|
endif
|
||||||
|
endf
|
||||||
|
|
||||||
|
fun! s:UpdateNimLog()
|
||||||
|
setlocal buftype=nofile
|
||||||
|
setlocal bufhidden=hide
|
||||||
|
setlocal noswapfile
|
||||||
|
|
||||||
|
for entry in g:nim_log
|
||||||
|
call append(line('$'), split(entry, "\n"))
|
||||||
|
endfor
|
||||||
|
|
||||||
|
let g:nim_log = []
|
||||||
|
|
||||||
|
match Search /^nim\ .*/
|
||||||
|
endf
|
||||||
|
|
||||||
|
augroup NimVim
|
||||||
|
au!
|
||||||
|
au BufEnter log://nim call s:UpdateNimLog()
|
||||||
|
" au QuitPre * :py nimTerminateAll()
|
||||||
|
au VimLeavePre * :py nimTerminateAll()
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
command! NimLog :e log://nim
|
||||||
|
|
||||||
|
command! NimTerminateService
|
||||||
|
\ :exe printf("py nimTerminateService('%s')", b:nim_project_root)
|
||||||
|
|
||||||
|
command! NimRestartService
|
||||||
|
\ :exe printf("py nimRestartService('%s')", b:nim_project_root)
|
||||||
|
|
||||||
|
fun! s:CurrentNimFile()
|
||||||
|
let save_cur = getpos('.')
|
||||||
|
call cursor(0, 0, 0)
|
||||||
|
|
||||||
|
let PATTERN = "\\v^\\#\\s*included from \\zs.*\\ze"
|
||||||
|
let l = search(PATTERN, "n")
|
||||||
|
|
||||||
|
if l != 0
|
||||||
|
let f = matchstr(getline(l), PATTERN)
|
||||||
|
let l:to_check = expand('%:h') . "/" . f
|
||||||
|
else
|
||||||
|
let l:to_check = expand("%")
|
||||||
|
endif
|
||||||
|
|
||||||
|
call setpos('.', save_cur)
|
||||||
|
return l:to_check
|
||||||
|
endf
|
||||||
|
|
||||||
|
let g:nim_symbol_types = {
|
||||||
|
\ 'skParam': 'v',
|
||||||
|
\ 'skVar': 'v',
|
||||||
|
\ 'skLet': 'v',
|
||||||
|
\ 'skTemp': 'v',
|
||||||
|
\ 'skForVar': 'v',
|
||||||
|
\ 'skConst': 'v',
|
||||||
|
\ 'skResult': 'v',
|
||||||
|
\ 'skGenericParam': 't',
|
||||||
|
\ 'skType': 't',
|
||||||
|
\ 'skField': 'm',
|
||||||
|
\ 'skProc': 'f',
|
||||||
|
\ 'skMethod': 'f',
|
||||||
|
\ 'skIterator': 'f',
|
||||||
|
\ 'skConverter': 'f',
|
||||||
|
\ 'skMacro': 'f',
|
||||||
|
\ 'skTemplate': 'f',
|
||||||
|
\ 'skEnumField': 'v',
|
||||||
|
\ }
|
||||||
|
|
||||||
|
fun! NimExec(op)
|
||||||
|
let isDirty = getbufvar(bufnr('%'), "&modified")
|
||||||
|
if isDirty
|
||||||
|
let tmp = tempname() . bufname("%") . "_dirty.nim"
|
||||||
|
silent! exe ":w " . tmp
|
||||||
|
|
||||||
|
let cmd = printf("idetools %s --trackDirty:\"%s,%s,%d,%d\" \"%s\"",
|
||||||
|
\ a:op, tmp, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile())
|
||||||
|
else
|
||||||
|
let cmd = printf("idetools %s --track:\"%s,%d,%d\" \"%s\"",
|
||||||
|
\ a:op, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile())
|
||||||
|
endif
|
||||||
|
|
||||||
|
if b:nim_caas_enabled
|
||||||
|
exe printf("py nimExecCmd('%s', '%s', False)", b:nim_project_root, cmd)
|
||||||
|
let output = l:py_res
|
||||||
|
else
|
||||||
|
let output = system("nim " . cmd)
|
||||||
|
endif
|
||||||
|
|
||||||
|
call add(g:nim_log, "nim " . cmd . "\n" . output)
|
||||||
|
return output
|
||||||
|
endf
|
||||||
|
|
||||||
|
fun! NimExecAsync(op, Handler)
|
||||||
|
let result = NimExec(a:op)
|
||||||
|
call a:Handler(result)
|
||||||
|
endf
|
||||||
|
|
||||||
|
fun! NimComplete(findstart, base)
|
||||||
|
if b:nim_caas_enabled == 0
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if a:findstart
|
||||||
|
if synIDattr(synIDtrans(synID(line("."),col("."),1)), "name") == 'Comment'
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
return col('.')
|
||||||
|
else
|
||||||
|
let result = []
|
||||||
|
let sugOut = NimExec("--suggest")
|
||||||
|
for line in split(sugOut, '\n')
|
||||||
|
let lineData = split(line, '\t')
|
||||||
|
if len(lineData) > 0 && lineData[0] == "sug"
|
||||||
|
let kind = get(g:nim_symbol_types, lineData[1], '')
|
||||||
|
let c = { 'word': lineData[2], 'kind': kind, 'menu': lineData[3], 'dup': 1 }
|
||||||
|
call add(result, c)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return result
|
||||||
|
endif
|
||||||
|
endf
|
||||||
|
|
||||||
|
if !exists("g:neocomplcache_omni_patterns")
|
||||||
|
let g:neocomplcache_omni_patterns = {}
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:neocomplcache_omni_patterns['nim'] = '[^. *\t]\.\w*'
|
||||||
|
let g:nim_completion_callbacks = {}
|
||||||
|
|
||||||
|
fun! NimAsyncCmdComplete(cmd, output)
|
||||||
|
call add(g:nim_log, a:output)
|
||||||
|
echom g:nim_completion_callbacks
|
||||||
|
if has_key(g:nim_completion_callbacks, a:cmd)
|
||||||
|
let Callback = get(g:nim_completion_callbacks, a:cmd)
|
||||||
|
call Callback(a:output)
|
||||||
|
" remove(g:nim_completion_callbacks, a:cmd)
|
||||||
|
else
|
||||||
|
echom "ERROR, Unknown Command: " . a:cmd
|
||||||
|
endif
|
||||||
|
return 1
|
||||||
|
endf
|
||||||
|
|
||||||
|
fun! GotoDefinition_nim_ready(def_output)
|
||||||
|
if v:shell_error
|
||||||
|
echo "nim was unable to locate the definition. exit code: " . v:shell_error
|
||||||
|
" echoerr a:def_output
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let rawDef = matchstr(a:def_output, 'def\t\([^\n]*\)')
|
||||||
|
if rawDef == ""
|
||||||
|
echo "the current cursor position does not match any definitions"
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let defBits = split(rawDef, '\t')
|
||||||
|
let file = defBits[4]
|
||||||
|
let line = defBits[5]
|
||||||
|
exe printf("e +%d %s", line, file)
|
||||||
|
return 1
|
||||||
|
endf
|
||||||
|
|
||||||
|
fun! GotoDefinition_nim()
|
||||||
|
call NimExecAsync("--def", function("GotoDefinition_nim_ready"))
|
||||||
|
endf
|
||||||
|
|
||||||
|
fun! FindReferences_nim()
|
||||||
|
setloclist()
|
||||||
|
endf
|
||||||
|
|
||||||
|
" Syntastic syntax checking
|
||||||
|
fun! SyntaxCheckers_nim_nim_GetLocList()
|
||||||
|
let makeprg = 'nim check --hints:off --listfullpaths ' . s:CurrentNimFile()
|
||||||
|
let errorformat = &errorformat
|
||||||
|
|
||||||
|
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||||
|
endf
|
||||||
|
|
||||||
|
function! SyntaxCheckers_nim_nim_IsAvailable()
|
||||||
|
return executable("nim")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
if exists("g:SyntasticRegistry")
|
||||||
|
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||||
|
\ 'filetype': 'nim',
|
||||||
|
\ 'name': 'nim'})
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("g:quickrun_config")
|
||||||
|
let g:quickrun_config = {}
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("g:quickrun_config.nim")
|
||||||
|
let g:quickrun_config.nim = { "exec": "nim c --run --verbosity:0 %S" }
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||||
|
|
||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: Ruby
|
" Language: Ruby
|
||||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||||
@@ -704,7 +706,9 @@ class VimRubyCompletion
|
|||||||
cv = eval("self.class.constants")
|
cv = eval("self.class.constants")
|
||||||
vartype = get_var_type( receiver )
|
vartype = get_var_type( receiver )
|
||||||
dprint "vartype: %s" % vartype
|
dprint "vartype: %s" % vartype
|
||||||
if vartype != ''
|
|
||||||
|
invalid_vartype = ['', "gets"]
|
||||||
|
if !invalid_vartype.include?(vartype)
|
||||||
load_buffer_class( vartype )
|
load_buffer_class( vartype )
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@@ -732,7 +736,7 @@ class VimRubyCompletion
|
|||||||
methods.concat m.instance_methods(false)
|
methods.concat m.instance_methods(false)
|
||||||
}
|
}
|
||||||
end
|
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*\)?\.([^.]*)/
|
when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
|
||||||
message = $1
|
message = $1
|
||||||
@@ -829,3 +833,5 @@ call s:DefRuby()
|
|||||||
|
|
||||||
|
|
||||||
" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl:
|
" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
418
autoload/rust.vim
Normal file
418
autoload/rust.vim
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
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)
|
||||||
|
let args = s:ShellTokenize(a:args)
|
||||||
|
if a:bang
|
||||||
|
let idx = index(l:args, '--')
|
||||||
|
if idx != -1
|
||||||
|
let rustc_args = idx == 0 ? [] : l:args[:idx-1]
|
||||||
|
let args = l:args[idx+1:]
|
||||||
|
else
|
||||||
|
let rustc_args = l:args
|
||||||
|
let args = []
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let rustc_args = []
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:rust_last_rustc_args = l:rustc_args
|
||||||
|
let b:rust_last_args = l:args
|
||||||
|
|
||||||
|
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:Run(dict, rustc_args, args)
|
||||||
|
let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
|
||||||
|
if has('win32')
|
||||||
|
let exepath .= '.exe'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||||
|
let rustc_args = [relpath, '-o', exepath] + a:rustc_args
|
||||||
|
|
||||||
|
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||||
|
|
||||||
|
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||||
|
let output = s:system(pwd, 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
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Expand {{{1
|
||||||
|
|
||||||
|
function! rust#Expand(bang, args)
|
||||||
|
let args = s:ShellTokenize(a:args)
|
||||||
|
if a:bang && !empty(l:args)
|
||||||
|
let pretty = remove(l:args, 0)
|
||||||
|
else
|
||||||
|
let pretty = "expanded"
|
||||||
|
endif
|
||||||
|
call s:WithPath(function("s:Expand"), pretty, args)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:Expand(dict, pretty, args)
|
||||||
|
try
|
||||||
|
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||||
|
|
||||||
|
if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
|
||||||
|
let flag = '--xpretty'
|
||||||
|
else
|
||||||
|
let flag = '--pretty'
|
||||||
|
endif
|
||||||
|
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||||
|
let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
|
||||||
|
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||||
|
let output = s:system(pwd, 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
|
||||||
|
" give the buffer a nice name
|
||||||
|
let suffix = 1
|
||||||
|
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||||
|
while 1
|
||||||
|
let bufname = basename
|
||||||
|
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||||
|
let bufname .= '.pretty.rs'
|
||||||
|
if bufexists(bufname)
|
||||||
|
let suffix += 1
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||||
|
break
|
||||||
|
endwhile
|
||||||
|
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=", "everybody_loops"]
|
||||||
|
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)
|
||||||
|
let args = s:ShellTokenize(a:args)
|
||||||
|
call s:WithPath(function("s:Emit"), a:type, args)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:Emit(dict, type, args)
|
||||||
|
try
|
||||||
|
let output_path = a:dict.tmpdir.'/output'
|
||||||
|
|
||||||
|
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||||
|
|
||||||
|
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||||
|
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
|
||||||
|
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||||
|
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||||
|
if output != ''
|
||||||
|
echohl WarningMsg
|
||||||
|
echo output
|
||||||
|
echohl None
|
||||||
|
endif
|
||||||
|
if !v:shell_error
|
||||||
|
new
|
||||||
|
exe 'silent keepalt read' fnameescape(output_path)
|
||||||
|
1
|
||||||
|
d
|
||||||
|
if a:type == "llvm-ir"
|
||||||
|
setl filetype=llvm
|
||||||
|
let extension = 'll'
|
||||||
|
elseif a:type == "asm"
|
||||||
|
setl filetype=asm
|
||||||
|
let extension = 's'
|
||||||
|
endif
|
||||||
|
setl buftype=nofile
|
||||||
|
setl bufhidden=hide
|
||||||
|
setl noswapfile
|
||||||
|
if exists('l:extension')
|
||||||
|
" give the buffer a nice name
|
||||||
|
let suffix = 1
|
||||||
|
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||||
|
while 1
|
||||||
|
let bufname = basename
|
||||||
|
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||||
|
let bufname .= '.'.extension
|
||||||
|
if bufexists(bufname)
|
||||||
|
let suffix += 1
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||||
|
break
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Utility functions {{{1
|
||||||
|
|
||||||
|
" Invokes func(dict, ...)
|
||||||
|
" Where {dict} is a dictionary with the following keys:
|
||||||
|
" 'path' - The path to the file
|
||||||
|
" 'tmpdir' - The path to a temporary directory that will be deleted when the
|
||||||
|
" function returns.
|
||||||
|
" 'istemp' - 1 if the path is a file inside of {dict.tmpdir} or 0 otherwise.
|
||||||
|
" If {istemp} is 1 then an additional key is provided:
|
||||||
|
" 'tmpdir_relpath' - The {path} relative to the {tmpdir}.
|
||||||
|
"
|
||||||
|
" {dict.path} may be a path to a file inside of {dict.tmpdir} or it may be the
|
||||||
|
" existing path of the current buffer. If the path is inside of {dict.tmpdir}
|
||||||
|
" then it is guaranteed to have a '.rs' extension.
|
||||||
|
function! s:WithPath(func, ...)
|
||||||
|
let buf = bufnr('')
|
||||||
|
let saved = {}
|
||||||
|
let dict = {}
|
||||||
|
try
|
||||||
|
let saved.write = &write
|
||||||
|
set write
|
||||||
|
let dict.path = expand('%')
|
||||||
|
let pathisempty = empty(dict.path)
|
||||||
|
|
||||||
|
" Always create a tmpdir in case the wrapped command wants it
|
||||||
|
let dict.tmpdir = tempname()
|
||||||
|
call mkdir(dict.tmpdir)
|
||||||
|
|
||||||
|
if pathisempty || !saved.write
|
||||||
|
let dict.istemp = 1
|
||||||
|
" if we're doing this because of nowrite, preserve the filename
|
||||||
|
if !pathisempty
|
||||||
|
let filename = expand('%:t:r').".rs"
|
||||||
|
else
|
||||||
|
let filename = 'unnamed.rs'
|
||||||
|
endif
|
||||||
|
let dict.tmpdir_relpath = filename
|
||||||
|
let dict.path = dict.tmpdir.'/'.filename
|
||||||
|
|
||||||
|
let saved.mod = &mod
|
||||||
|
set nomod
|
||||||
|
|
||||||
|
silent exe 'keepalt write! ' . fnameescape(dict.path)
|
||||||
|
if pathisempty
|
||||||
|
silent keepalt 0file
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let dict.istemp = 0
|
||||||
|
update
|
||||||
|
endif
|
||||||
|
|
||||||
|
call call(a:func, [dict] + a:000)
|
||||||
|
finally
|
||||||
|
if bufexists(buf)
|
||||||
|
for [opt, value] in items(saved)
|
||||||
|
silent call setbufvar(buf, '&'.opt, value)
|
||||||
|
unlet value " avoid variable type mismatches
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! rust#AppendCmdLine(text)
|
||||||
|
call setcmdpos(getcmdpos())
|
||||||
|
let cmd = getcmdline() . a:text
|
||||||
|
return cmd
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Tokenize the string according to sh parsing rules
|
||||||
|
function! s:ShellTokenize(text)
|
||||||
|
" states:
|
||||||
|
" 0: start of word
|
||||||
|
" 1: unquoted
|
||||||
|
" 2: unquoted backslash
|
||||||
|
" 3: double-quote
|
||||||
|
" 4: double-quoted backslash
|
||||||
|
" 5: single-quote
|
||||||
|
let l:state = 0
|
||||||
|
let l:current = ''
|
||||||
|
let l:args = []
|
||||||
|
for c in split(a:text, '\zs')
|
||||||
|
if l:state == 0 || l:state == 1 " unquoted
|
||||||
|
if l:c ==# ' '
|
||||||
|
if l:state == 0 | continue | endif
|
||||||
|
call add(l:args, l:current)
|
||||||
|
let l:current = ''
|
||||||
|
let l:state = 0
|
||||||
|
elseif l:c ==# '\'
|
||||||
|
let l:state = 2
|
||||||
|
elseif l:c ==# '"'
|
||||||
|
let l:state = 3
|
||||||
|
elseif l:c ==# "'"
|
||||||
|
let l:state = 5
|
||||||
|
else
|
||||||
|
let l:current .= l:c
|
||||||
|
let l:state = 1
|
||||||
|
endif
|
||||||
|
elseif l:state == 2 " unquoted backslash
|
||||||
|
if l:c !=# "\n" " can it even be \n?
|
||||||
|
let l:current .= l:c
|
||||||
|
endif
|
||||||
|
let l:state = 1
|
||||||
|
elseif l:state == 3 " double-quote
|
||||||
|
if l:c ==# '\'
|
||||||
|
let l:state = 4
|
||||||
|
elseif l:c ==# '"'
|
||||||
|
let l:state = 1
|
||||||
|
else
|
||||||
|
let l:current .= l:c
|
||||||
|
endif
|
||||||
|
elseif l:state == 4 " double-quoted backslash
|
||||||
|
if stridx('$`"\', l:c) >= 0
|
||||||
|
let l:current .= l:c
|
||||||
|
elseif l:c ==# "\n" " is this even possible?
|
||||||
|
" skip it
|
||||||
|
else
|
||||||
|
let l:current .= '\'.l:c
|
||||||
|
endif
|
||||||
|
let l:state = 3
|
||||||
|
elseif l:state == 5 " single-quoted
|
||||||
|
if l:c == "'"
|
||||||
|
let l:state = 1
|
||||||
|
else
|
||||||
|
let l:current .= l:c
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
if l:state != 0
|
||||||
|
call add(l:args, l:current)
|
||||||
|
endif
|
||||||
|
return l:args
|
||||||
|
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
|
||||||
|
|
||||||
|
" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.
|
||||||
|
" If {pwd} is the empty string then it doesn't change the cwd.
|
||||||
|
function! s:system(pwd, cmd)
|
||||||
|
let cmd = a:cmd
|
||||||
|
if !empty(a:pwd)
|
||||||
|
let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
|
||||||
|
endif
|
||||||
|
return system(cmd)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Playpen Support {{{1
|
||||||
|
" Parts of gist.vim by Yasuhiro Matsumoto <mattn.jp@gmail.com> reused
|
||||||
|
" gist.vim available under the BSD license, available at
|
||||||
|
" http://github.com/mattn/gist-vim
|
||||||
|
function! s:has_webapi()
|
||||||
|
if !exists("*webapi#http#post")
|
||||||
|
try
|
||||||
|
call webapi#http#post()
|
||||||
|
catch
|
||||||
|
endtry
|
||||||
|
endif
|
||||||
|
return exists("*webapi#http#post")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! rust#Play(count, line1, line2, ...) abort
|
||||||
|
redraw
|
||||||
|
|
||||||
|
let l:rust_playpen_url = get(g:, 'rust_playpen_url', 'https://play.rust-lang.org/')
|
||||||
|
let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')
|
||||||
|
|
||||||
|
if !s:has_webapi()
|
||||||
|
echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let bufname = bufname('%')
|
||||||
|
if a:count < 1
|
||||||
|
let content = join(getline(a:line1, a:line2), "\n")
|
||||||
|
else
|
||||||
|
let save_regcont = @"
|
||||||
|
let save_regtype = getregtype('"')
|
||||||
|
silent! normal! gvy
|
||||||
|
let content = @"
|
||||||
|
call setreg('"', save_regcont, save_regtype)
|
||||||
|
endif
|
||||||
|
|
||||||
|
let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
|
||||||
|
|
||||||
|
if strlen(body) > 5000
|
||||||
|
echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let payload = "format=simple&url=".webapi#http#encodeURI(body)
|
||||||
|
let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
|
||||||
|
let url = res.content
|
||||||
|
|
||||||
|
redraw | echomsg 'Done: '.url
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" vim: set noet sw=4 ts=4:
|
||||||
|
|
||||||
|
endif
|
||||||
83
autoload/rustfmt.vim
Normal file
83
autoload/rustfmt.vim
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||||
|
|
||||||
|
" Author: Stephen Sugden <stephen@stephensugden.com>
|
||||||
|
"
|
||||||
|
" Adapted from https://github.com/fatih/vim-go
|
||||||
|
|
||||||
|
if !exists("g:rustfmt_autosave")
|
||||||
|
let g:rustfmt_autosave = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("g:rustfmt_command")
|
||||||
|
let g:rustfmt_command = "rustfmt"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("g:rustfmt_options")
|
||||||
|
let g:rustfmt_options = ""
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("g:rustfmt_fail_silently")
|
||||||
|
let g:rustfmt_fail_silently = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:got_fmt_error = 0
|
||||||
|
|
||||||
|
function! rustfmt#Format()
|
||||||
|
let l:curw = winsaveview()
|
||||||
|
let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
|
||||||
|
call writefile(getline(1, '$'), l:tmpname)
|
||||||
|
|
||||||
|
let command = g:rustfmt_command . " --write-mode=overwrite "
|
||||||
|
|
||||||
|
let out = systemlist(command . g:rustfmt_options . " " . shellescape(l:tmpname))
|
||||||
|
|
||||||
|
if v:shell_error == 0
|
||||||
|
" remove undo point caused via BufWritePre
|
||||||
|
try | silent undojoin | catch | endtry
|
||||||
|
|
||||||
|
" Replace current file with temp file, then reload buffer
|
||||||
|
call rename(l:tmpname, expand('%'))
|
||||||
|
silent edit!
|
||||||
|
let &syntax = &syntax
|
||||||
|
|
||||||
|
" only clear location list if it was previously filled to prevent
|
||||||
|
" clobbering other additions
|
||||||
|
if s:got_fmt_error
|
||||||
|
let s:got_fmt_error = 0
|
||||||
|
call setloclist(0, [])
|
||||||
|
lwindow
|
||||||
|
endif
|
||||||
|
elseif g:rustfmt_fail_silently == 0
|
||||||
|
" otherwise get the errors and put them in the location list
|
||||||
|
let errors = []
|
||||||
|
|
||||||
|
for line in out
|
||||||
|
" src/lib.rs:13:5: 13:10 error: expected `,`, or `}`, found `value`
|
||||||
|
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\):\s*\(\d\+:\d\+\s*\)\?\s*error: \(.*\)')
|
||||||
|
if !empty(tokens)
|
||||||
|
call add(errors, {"filename": @%,
|
||||||
|
\"lnum": tokens[2],
|
||||||
|
\"col": tokens[3],
|
||||||
|
\"text": tokens[5]})
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
|
if empty(errors)
|
||||||
|
% | " Couldn't detect rustfmt error format, output errors
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !empty(errors)
|
||||||
|
call setloclist(0, errors, 'r')
|
||||||
|
echohl Error | echomsg "rustfmt returned error" | echohl None
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:got_fmt_error = 1
|
||||||
|
lwindow
|
||||||
|
" We didn't use the temp file, so clean up
|
||||||
|
call delete(l:tmpname)
|
||||||
|
endif
|
||||||
|
|
||||||
|
call winrestview(l:curw)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||||
|
|
||||||
" Vim completion for WAI-ARIA data file
|
" Vim completion for WAI-ARIA data file
|
||||||
" Language: HTML + WAI-ARIA
|
" Language: HTML + WAI-ARIA
|
||||||
" Maintainer: othree <othree@gmail.com>
|
" Maintainer: othree <othree@gmail.com>
|
||||||
@@ -230,3 +232,5 @@ let g:xmldata_aria = {
|
|||||||
\ 'default_role': default_role,
|
\ 'default_role': default_role,
|
||||||
\ 'vimariaattrinfo': aria_attributes_value
|
\ 'vimariaattrinfo': aria_attributes_value
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||||
|
|
||||||
" Vim completion for HTML5 data file
|
" Vim completion for HTML5 data file
|
||||||
" Language: HTML5
|
" Language: HTML (version 5.1 Draft 2016 Jan 13)
|
||||||
" Maintainer: othree <othree@gmail.com>
|
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
|
||||||
" Last Change: 2011 Apr 9
|
" Last Change: 2016 Jan 20
|
||||||
|
|
||||||
|
|
||||||
" Lang Tag: {{{
|
" Lang Tag: {{{
|
||||||
@@ -61,7 +63,7 @@ let charset = [
|
|||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Attributes_and_Settings: {{{
|
" Attributes_and_Settings: {{{
|
||||||
let core_attributes = {'accesskey': [], 'class': [], 'contenteditable': ['true', 'false', ''], 'contextmenu': [], 'dir': ['ltr', 'rtl'], 'draggable': ['true', 'false'], 'hidden': ['hidden', ''], 'id': [], 'lang': lang_tag, 'spellcheck': ['true', 'false', ''], 'style': [], 'tabindex': [], 'title': []}
|
let core_attributes = {'accesskey': [], 'class': [], 'contenteditable': ['true', 'false', ''], 'contextmenu': [], 'dir': ['ltr', 'rtl'], 'draggable': ['true', 'false'], 'hidden': ['hidden', ''], 'id': [], 'is': [], 'lang': lang_tag, 'spellcheck': ['true', 'false', ''], 'style': [], 'tabindex': [], 'title': []}
|
||||||
let xml_attributes = {'xml:lang': lang_tag, 'xml:space': ['preserve'], 'xml:base': [], 'xmlns': ['http://www.w3.org/1999/xhtml', 'http://www.w3.org/1998/Math/MathML', 'http://www.w3.org/2000/svg', 'http://www.w3.org/1999/xlink']}
|
let xml_attributes = {'xml:lang': lang_tag, 'xml:space': ['preserve'], 'xml:base': [], 'xmlns': ['http://www.w3.org/1999/xhtml', 'http://www.w3.org/1998/Math/MathML', 'http://www.w3.org/2000/svg', 'http://www.w3.org/1999/xlink']}
|
||||||
|
|
||||||
let body_attributes = {}
|
let body_attributes = {}
|
||||||
@@ -101,6 +103,7 @@ let attributes_value = {
|
|||||||
\ 'disabled': ['Bool', ''],
|
\ 'disabled': ['Bool', ''],
|
||||||
\ 'draggable': ['true/false', ''],
|
\ 'draggable': ['true/false', ''],
|
||||||
\ 'enctype': ['Token', ''],
|
\ 'enctype': ['Token', ''],
|
||||||
|
\ 'extends': ['Text', ''],
|
||||||
\ 'for': ['ID', ''],
|
\ 'for': ['ID', ''],
|
||||||
\ 'form': ['ID', ''],
|
\ 'form': ['ID', ''],
|
||||||
\ 'formaction': ['URL', ''],
|
\ 'formaction': ['URL', ''],
|
||||||
@@ -152,6 +155,7 @@ let attributes_value = {
|
|||||||
\ 'scope': ['Token', ''],
|
\ 'scope': ['Token', ''],
|
||||||
\ 'scoped': ['Bool', ''],
|
\ 'scoped': ['Bool', ''],
|
||||||
\ 'seamless': ['Bool', ''],
|
\ 'seamless': ['Bool', ''],
|
||||||
|
\ 'select': ['Text', ''],
|
||||||
\ 'selected': ['Bool', ''],
|
\ 'selected': ['Bool', ''],
|
||||||
\ 'shape': ['Token', ''],
|
\ 'shape': ['Token', ''],
|
||||||
\ 'size': ['Int', ''],
|
\ 'size': ['Int', ''],
|
||||||
@@ -322,16 +326,16 @@ endif
|
|||||||
|
|
||||||
" Ref: http://dev.w3.org/html5/markup/
|
" Ref: http://dev.w3.org/html5/markup/
|
||||||
" Version: Draft 05 April 2011
|
" 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']
|
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']
|
let metadata_elements = ['link', 'style', 'meta', 'script', 'noscript', 'command']
|
||||||
|
|
||||||
let flow_elements = phrasing_elements + ['p', 'hr', 'pre', 'ul', 'ol', 'dl', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup', 'address', 'blockquote', 'ins', 'del', 'object', 'main', 'map', 'noscript', 'section', 'nav', 'article', 'aside', 'header', 'footer', 'video', 'audio', 'figure', 'table', 'template', 'form', 'fieldset', 'menu', 'canvas', 'details']
|
let flow_elements = phrasing_elements + ['p', 'hr', 'pre', 'ul', 'ol', 'dl', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup', 'address', 'blockquote', 'ins', 'del', 'element', 'object', 'main', 'map', 'noscript', 'section', 'nav', 'article', 'aside', 'header', 'footer', 'video', 'audio', 'figure', 'table', 'template', 'form', 'fieldset', 'menu', 'canvas', 'details']
|
||||||
|
|
||||||
" http://dev.w3.org/html5/spec/Overview.html#linkTypes
|
" http://dev.w3.org/html5/spec/Overview.html#linkTypes
|
||||||
let linktypes = ['alternate', 'author', 'bookmark', 'external', 'help', 'icon', 'license', 'next', 'nofollow', 'noreferrer', 'pingback', 'prefetch', 'prev', 'search', 'stylesheet', 'sidebar', 'tag']
|
let linktypes = ['alternate', 'author', 'bookmark', 'external', 'help', 'icon', 'license', 'next', 'nofollow', 'noreferrer', 'pingback', 'prefetch', 'prev', 'search', 'stylesheet', 'sidebar', 'tag']
|
||||||
" http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
|
" http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
|
||||||
let linkreltypes = linktypes + ['canonical']
|
let linkreltypes = linktypes + ['canonical', 'import']
|
||||||
|
|
||||||
" a and button are special elements for interactive, some element can't be its descendent
|
" a and button are special elements for interactive, some element can't be its descendent
|
||||||
let abutton_dec = 'details\\|embed\\|iframe\\|keygen\\|label\\|menu\\|select\\|textarea'
|
let abutton_dec = 'details\\|embed\\|iframe\\|keygen\\|label\\|menu\\|select\\|textarea'
|
||||||
@@ -340,7 +344,7 @@ let abutton_dec = 'details\\|embed\\|iframe\\|keygen\\|label\\|menu\\|select\\|t
|
|||||||
|
|
||||||
let g:xmldata_html5 = {
|
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'],
|
\ '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': [
|
\ 'a': [
|
||||||
\ filter(copy(flow_elements), "!(v:val =~ '". abutton_dec ."')"),
|
\ filter(copy(flow_elements), "!(v:val =~ '". abutton_dec ."')"),
|
||||||
\ extend(copy(global_attributes), {'name': [], 'href': [], 'target': [], 'rel': linktypes, 'hreflang': lang_tag, 'media': [], 'type': []})
|
\ extend(copy(global_attributes), {'name': [], 'href': [], 'target': [], 'rel': linktypes, 'hreflang': lang_tag, 'media': [], 'type': []})
|
||||||
@@ -425,6 +429,10 @@ let g:xmldata_html5 = {
|
|||||||
\ [],
|
\ [],
|
||||||
\ extend(copy(global_attributes), {'span': []})
|
\ extend(copy(global_attributes), {'span': []})
|
||||||
\ ],
|
\ ],
|
||||||
|
\ 'content': [
|
||||||
|
\ [],
|
||||||
|
\ extend(copy(global_attributes), {'select': []})
|
||||||
|
\ ],
|
||||||
\ 'command': [
|
\ 'command': [
|
||||||
\ ['col'],
|
\ ['col'],
|
||||||
\ extend(copy(global_attributes), {'type': ['command', 'radio', 'checkbox'], 'radiogroup': [], 'checked': ['checked', ''], 'label': [], 'icon': [], 'disabled': ['disabled', '']})
|
\ extend(copy(global_attributes), {'type': ['command', 'radio', 'checkbox'], 'radiogroup': [], 'checked': ['checked', ''], 'label': [], 'icon': [], 'disabled': ['disabled', '']})
|
||||||
@@ -539,7 +547,7 @@ let g:xmldata_html5 = {
|
|||||||
\ ],
|
\ ],
|
||||||
\ 'iframe': [
|
\ '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': [
|
\ 'img': [
|
||||||
\ [],
|
\ [],
|
||||||
@@ -547,7 +555,7 @@ let g:xmldata_html5 = {
|
|||||||
\ ],
|
\ ],
|
||||||
\ 'input': [
|
\ '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': [
|
\ 'ins': [
|
||||||
\ flow_elements,
|
\ flow_elements,
|
||||||
@@ -590,12 +598,16 @@ let g:xmldata_html5 = {
|
|||||||
\ global_attributes
|
\ global_attributes
|
||||||
\ ],
|
\ ],
|
||||||
\ 'menu': [
|
\ 'menu': [
|
||||||
\ flow_elements + ['li'],
|
\ flow_elements + ['menuitem'],
|
||||||
\ extend(copy(global_attributes), {'type': ['toolbar', 'context'], 'label': []})
|
\ extend(copy(global_attributes), {'type': ['toolbar', 'context'], 'label': []})
|
||||||
\ ],
|
\ ],
|
||||||
|
\ 'menuitem': [
|
||||||
|
\ flow_elements + ['li'],
|
||||||
|
\ extend(copy(global_attributes), {'type': ['toolbar', 'context'], 'label': [], 'icon': [], 'disabled': [], 'checked': [], 'radiogroup': [], 'default': [], 'command': []})
|
||||||
|
\ ],
|
||||||
\ 'meta': [
|
\ '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': [
|
\ 'meter': [
|
||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
@@ -637,6 +649,10 @@ let g:xmldata_html5 = {
|
|||||||
\ [],
|
\ [],
|
||||||
\ extend(copy(global_attributes), {'name': [], 'value': []})
|
\ extend(copy(global_attributes), {'name': [], 'value': []})
|
||||||
\ ],
|
\ ],
|
||||||
|
\ 'picture': [
|
||||||
|
\ flow_elements + ['source'],
|
||||||
|
\ global_attributes
|
||||||
|
\ ],
|
||||||
\ 'pre': [
|
\ 'pre': [
|
||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
\ global_attributes
|
\ global_attributes
|
||||||
@@ -649,6 +665,10 @@ let g:xmldata_html5 = {
|
|||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
\ extend(copy(global_attributes), {'cite': []})
|
\ extend(copy(global_attributes), {'cite': []})
|
||||||
\ ],
|
\ ],
|
||||||
|
\ 'rb': [
|
||||||
|
\ phrasing_elements,
|
||||||
|
\ global_attributes
|
||||||
|
\ ],
|
||||||
\ 'rp': [
|
\ 'rp': [
|
||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
\ global_attributes
|
\ global_attributes
|
||||||
@@ -657,10 +677,14 @@ let g:xmldata_html5 = {
|
|||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
\ global_attributes
|
\ global_attributes
|
||||||
\ ],
|
\ ],
|
||||||
\ 'ruby': [
|
\ 'rtc': [
|
||||||
\ phrasing_elements + ['rp', 'rt'],
|
\ phrasing_elements + ['rp', 'rt'],
|
||||||
\ global_attributes
|
\ global_attributes
|
||||||
\ ],
|
\ ],
|
||||||
|
\ 'ruby': [
|
||||||
|
\ phrasing_elements + ['rb', 'rp', 'rt', 'rtc'],
|
||||||
|
\ global_attributes
|
||||||
|
\ ],
|
||||||
\ 'samp': [
|
\ 'samp': [
|
||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
\ global_attributes
|
\ global_attributes
|
||||||
@@ -677,13 +701,17 @@ let g:xmldata_html5 = {
|
|||||||
\ ['optgroup', 'option'],
|
\ ['optgroup', 'option'],
|
||||||
\ extend(copy(global_attributes), {'name': [], 'disabled': ['disabled', ''], 'form': [], 'size': [], 'multiple': ['multiple', '']})
|
\ extend(copy(global_attributes), {'name': [], 'disabled': ['disabled', ''], 'form': [], 'size': [], 'multiple': ['multiple', '']})
|
||||||
\ ],
|
\ ],
|
||||||
|
\ 'shadow': [
|
||||||
|
\ [],
|
||||||
|
\ global_attributes
|
||||||
|
\ ],
|
||||||
\ 'small': [
|
\ 'small': [
|
||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
\ global_attributes
|
\ global_attributes
|
||||||
\ ],
|
\ ],
|
||||||
\ 'source': [
|
\ 'source': [
|
||||||
\ [],
|
\ [],
|
||||||
\ extend(copy(global_attributes), {'src': [], 'type': [], 'media': []})
|
\ extend(copy(global_attributes), {'src': [], 'type': [], 'media': [], 'srcset': [], 'sizes': []})
|
||||||
\ ],
|
\ ],
|
||||||
\ 'span': [
|
\ 'span': [
|
||||||
\ phrasing_elements,
|
\ phrasing_elements,
|
||||||
@@ -801,3 +829,5 @@ let g:xmldata_html5 = {
|
|||||||
\ 'wbr': ['/>', ''],
|
\ 'wbr': ['/>', ''],
|
||||||
\ },
|
\ },
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
229
build
229
build
@@ -1,94 +1,191 @@
|
|||||||
#!/bin/sh
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -E
|
set -E
|
||||||
|
|
||||||
DIRS="
|
DIRS="syntax indent compiler autoload ftplugin ftdetect after/syntax after/indent after/ftplugin after/ftdetect"
|
||||||
syntax indent ftplugin ftdetect autoload compiler
|
DIRS_BASIC="syntax compiler indent ftdetect after/syntax after/indent after/ftdetect"
|
||||||
after/syntax after/indent after/ftplugin after/ftdetect
|
DIRS_ALL="syntax indent compiler autoload ftplugin ftdetect after"
|
||||||
"
|
|
||||||
|
|
||||||
copy_dir() {
|
OUTPUT=""
|
||||||
if [ -d "$1/$2" ]; then
|
|
||||||
for file in $(find "$1/$2" -name '*.vim'); do
|
output() {
|
||||||
file_path="$(dirname "${file##$1/}")"
|
OUTPUT="$OUTPUT$1"
|
||||||
mkdir -p "$file_path"
|
printf -- "$1"
|
||||||
cp $file $file_path/
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Fetches syntax files from given Github repo
|
|
||||||
|
|
||||||
download() {
|
download() {
|
||||||
for pack in $1; do
|
for pack in $1; do
|
||||||
dir="tmp/$(echo "$pack" | cut -d '/' -f 2)"
|
path="$(printf "$pack" | cut -d ':' -f 2)"
|
||||||
echo "- [$pack](https://github.com/$pack)"
|
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
|
||||||
rm -rf "$dir"
|
rm -rf "$dir"
|
||||||
git clone -q --recursive "https://github.com/$pack.git" "$dir" &
|
(mkdir -p "$dir" && curl --silent -L https://codeload.github.com/$path/tar.gz/master | tar -zx -C "$dir" --strip 1 && printf '.') &
|
||||||
done
|
done
|
||||||
|
|
||||||
wait
|
wait
|
||||||
}
|
}
|
||||||
|
|
||||||
extract() {
|
extract() {
|
||||||
|
printf "\n"
|
||||||
for pack in $1; do
|
for pack in $1; do
|
||||||
dir="tmp/$(echo "$pack" | cut -d '/' -f 2)"
|
name="$(printf "$pack" | cut -d ':' -f 1)"
|
||||||
# which tree > /dev/null && tree tmp
|
path="$(printf "$pack" | cut -d ':' -f 2)"
|
||||||
for subdir in $DIRS; do
|
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
|
||||||
copy_dir "$dir" "$subdir"
|
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 ${!directories}; do
|
||||||
|
if [ -d "${dir}${subtree:-/}${subdir}" ]; then
|
||||||
|
base="$(basename "$subdir")"
|
||||||
|
if [[ "$subdirs" != *"$base"* ]]; then
|
||||||
|
subdirs="$subdirs, $base"
|
||||||
|
fi
|
||||||
|
|
||||||
|
copy_dir "${dir}${subtree}" "$subdir" "$name"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
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${subtree:-/}plugin" ]; then
|
||||||
|
printf "Possible error (plugin directory exists): $path\n"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
rm -rf tmp
|
copy_dir() {
|
||||||
rm -rf $DIRS
|
for file in $(find "$1/$2" -name '*.vim'); do
|
||||||
mkdir -p tmp
|
file_path="$(dirname "${file##$1/}")"
|
||||||
|
mkdir -p "$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
|
||||||
|
}
|
||||||
|
|
||||||
|
concat_ftdetect() {
|
||||||
|
cat ftdetect/* | grep -E '^[^"]' > tmp/polyglot.vim
|
||||||
|
rm -f 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="
|
PACKS="
|
||||||
vim-ruby/vim-ruby
|
ansible:pearofducks/ansible-vim
|
||||||
kchmck/vim-coffee-script
|
arduino:sudar/vim-arduino-syntax
|
||||||
tpope/vim-haml
|
blade:jwalton512/vim-blade
|
||||||
tpope/vim-bundler
|
c++11:octol/vim-cpp-enhanced-highlight
|
||||||
pangloss/vim-javascript
|
c/c++:vim-jp/vim-cpp
|
||||||
leshill/vim-json
|
cjsx:mtscout6/vim-cjsx
|
||||||
mutewinter/tomdoc.vim
|
clojure:guns/vim-clojure-static
|
||||||
mutewinter/nginx.vim
|
coffee-script:kchmck/vim-coffee-script
|
||||||
timcharper/textile.vim
|
cql:elubow/cql-vim
|
||||||
tpope/vim-markdown
|
css:JulesWang/css.vim
|
||||||
nono/vim-handlebars
|
cucumber:tpope/vim-cucumber
|
||||||
acustodioo/vim-tmux
|
dart:dart-lang/dart-vim-plugin
|
||||||
groenewege/vim-less
|
dockerfile:honza/dockerfile.vim
|
||||||
wavded/vim-stylus
|
elixir:elixir-lang/vim-elixir
|
||||||
tpope/vim-cucumber
|
elm:lambdatoast/elm.vim
|
||||||
jrk/vim-ocaml
|
emberscript:heartsentwined/vim-ember-script
|
||||||
slim-template/vim-slim
|
emblem:heartsentwined/vim-emblem
|
||||||
vim-scripts/XSLT-syntax
|
erlang:vim-erlang/vim-erlang-runtime
|
||||||
vim-scripts/python.vim--Vasiliev
|
git:tpope/vim-git
|
||||||
vim-scripts/octave.vim--
|
glsl:tikhomirov/vim-glsl
|
||||||
jnwhiteh/vim-golang
|
go:fatih/vim-go:_BASIC
|
||||||
spf13/PIV
|
groovy:vim-scripts/groovy.vim
|
||||||
briancollins/vim-jst
|
haml:tpope/vim-haml
|
||||||
derekwyatt/vim-scala
|
handlebars:mustache/vim-mustache-handlebars
|
||||||
derekwyatt/vim-sbt
|
haskell:neovimhaskell/haskell-vim
|
||||||
travitch/hasksyn
|
haxe:yaymukund/vim-haxe
|
||||||
ajf/puppet-vim
|
html5:othree/html5.vim
|
||||||
beyondwords/vim-twig
|
jade:digitaltoad/vim-jade
|
||||||
sudar/vim-arduino-syntax
|
jasmine:glanotte/vim-jasmine
|
||||||
guns/vim-clojure-static
|
javascript:sheerun/yajs.vim
|
||||||
chrisbra/csv.vim
|
jinja:Glench/Vim-Jinja2-Syntax
|
||||||
elixir-lang/vim-elixir
|
json:sheerun/vim-json
|
||||||
jimenezrick/vimerl
|
jst:briancollins/vim-jst
|
||||||
tpope/vim-git
|
jsx:mxw/vim-jsx:_ALL
|
||||||
skwp/vim-rspec
|
julia:dcjones/julia-minimalist-vim
|
||||||
vim-scripts/vbnet.vim
|
kotlin:udalov/kotlin-vim
|
||||||
jcf/vim-latex
|
latex:LaTeX-Box-Team/LaTeX-Box
|
||||||
othree/html5.vim
|
less:groenewege/vim-less
|
||||||
ap/vim-css-color
|
liquid:tpope/vim-liquid
|
||||||
vim-jp/cpp-vim
|
markdown:tpope/vim-markdown
|
||||||
octol/vim-cpp-enhanced-highlight
|
nginx:nginx/nginx::/contrib/vim/
|
||||||
|
nim:zah/nim.vim
|
||||||
|
nix:spwhitt/vim-nix
|
||||||
|
objc:b4winckler/vim-objc
|
||||||
|
ocaml:jrk/vim-ocaml
|
||||||
|
octave:vim-scripts/octave.vim--
|
||||||
|
opencl:petRUShka/vim-opencl
|
||||||
|
perl:vim-perl/vim-perl
|
||||||
|
php:StanAngeloff/php.vim
|
||||||
|
powershell:Persistent13/vim-ps1
|
||||||
|
protobuf:uarun/vim-protobuf
|
||||||
|
puppet:rodjek/vim-puppet
|
||||||
|
python:mitsuhiko/vim-python-combined
|
||||||
|
qml:peterhoeg/vim-qml
|
||||||
|
r-lang:vim-scripts/R.vim
|
||||||
|
ragel:jneen/ragel.vim
|
||||||
|
rspec:sheerun/rspec.vim
|
||||||
|
ruby:vim-ruby/vim-ruby
|
||||||
|
rust:rust-lang/rust.vim
|
||||||
|
sbt:derekwyatt/vim-sbt
|
||||||
|
scala:derekwyatt/vim-scala
|
||||||
|
slim:slim-template/vim-slim
|
||||||
|
solidity:ethereum/vim-solidity
|
||||||
|
stylus:wavded/vim-stylus
|
||||||
|
swift:keith/swift.vim
|
||||||
|
systemd:kurayama/systemd-vim-syntax
|
||||||
|
textile:timcharper/textile.vim
|
||||||
|
thrift:solarnz/thrift.vim
|
||||||
|
tmux:tejr/vim-tmux
|
||||||
|
tomdoc:wellbredgrapefruit/tomdoc.vim
|
||||||
|
toml:cespare/vim-toml
|
||||||
|
twig:beyondwords/vim-twig
|
||||||
|
typescript:leafgarland/typescript-vim
|
||||||
|
vala:tkztmk/vim-vala
|
||||||
|
vbnet:vim-scripts/vbnet.vim
|
||||||
|
vcl:smerrill/vcl-vim-plugin
|
||||||
|
vm:lepture/vim-velocity
|
||||||
|
xls:vim-scripts/XSLT-syntax
|
||||||
|
yaml:stephpy/vim-yaml
|
||||||
|
yard:sheerun/vim-yardoc
|
||||||
"
|
"
|
||||||
|
|
||||||
|
rm -rf tmp
|
||||||
|
rm -rf $DIRS_ALL
|
||||||
|
mkdir tmp
|
||||||
|
|
||||||
|
printf "Downloading packs..."
|
||||||
download "$PACKS"
|
download "$PACKS"
|
||||||
extract "$PACKS"
|
extract "$PACKS"
|
||||||
|
concat_ftdetect
|
||||||
|
update_readme
|
||||||
|
|
||||||
rm -rf tmp
|
rm -rf tmp
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
" Vim compiler file
|
|
||||||
|
|
||||||
if exists("current_compiler")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let current_compiler = "bundler"
|
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
|
||||||
set cpo-=C
|
|
||||||
|
|
||||||
CompilerSet makeprg=bundle
|
|
||||||
|
|
||||||
CompilerSet errorformat=
|
|
||||||
\%+E%f:%l:\ parse\ error,
|
|
||||||
\%W%f:%l:\ warning:\ %m,
|
|
||||||
\%E%f:%l:in\ %*[^:]:\ %m,
|
|
||||||
\%E%f:%l:\ %m,
|
|
||||||
\%-C%\tfrom\ %f:%l:in\ %.%#,
|
|
||||||
\%-Z%\tfrom\ %f:%l,
|
|
||||||
\%-Z%p^,
|
|
||||||
\%-G%.%#
|
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
|
||||||
unlet s:cpo_save
|
|
||||||
|
|
||||||
" vim: sw=2:
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||||
|
|
||||||
" Language: CoffeeScript
|
" Language: CoffeeScript
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
" Maintainer: Mick Koch <mick@kochm.co>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
@@ -13,3 +15,5 @@ call coffee#CoffeeSetUpVariables()
|
|||||||
exec 'CompilerSet makeprg=' . escape(g:coffee_cake . ' ' .
|
exec 'CompilerSet makeprg=' . escape(g:coffee_cake . ' ' .
|
||||||
\ g:coffee_cake_options . ' $*', ' ')
|
\ g:coffee_cake_options . ' $*', ' ')
|
||||||
call coffee#CoffeeSetUpErrorFormat()
|
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
|
" Language: CoffeeScript
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
" Maintainer: Mick Koch <mick@kochm.co>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
@@ -27,8 +29,8 @@ function! s:GetMakePrg()
|
|||||||
\ ' -c' .
|
\ ' -c' .
|
||||||
\ ' ' . b:coffee_litcoffee .
|
\ ' ' . b:coffee_litcoffee .
|
||||||
\ ' ' . g:coffee_make_options .
|
\ ' ' . g:coffee_make_options .
|
||||||
\ ' ' . fnameescape(expand('%')) .
|
\ ' $*' .
|
||||||
\ ' $*'
|
\ ' ' . fnameescape(expand('%'))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Set `makeprg` and return 1 if coffee is still the compiler, else return 0.
|
" Set `makeprg` and return 1 if coffee is still the compiler, else return 0.
|
||||||
@@ -75,8 +77,10 @@ augroup CoffeeUpdateMakePrg
|
|||||||
|
|
||||||
" Set autocmd locally if compiler was set locally.
|
" Set autocmd locally if compiler was set locally.
|
||||||
if &l:makeprg =~ s:pat
|
if &l:makeprg =~ s:pat
|
||||||
autocmd BufFilePost,BufWritePost <buffer> call s:UpdateMakePrg()
|
autocmd BufWritePre,BufFilePost <buffer> call s:UpdateMakePrg()
|
||||||
else
|
else
|
||||||
autocmd BufFilePost,BufWritePost call s:UpdateMakePrg()
|
autocmd BufWritePre,BufFilePost call s:UpdateMakePrg()
|
||||||
endif
|
endif
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -1
|
||||||
|
|
||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Compiler: Cucumber
|
" Compiler: Cucumber
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
@@ -19,7 +21,7 @@ CompilerSet makeprg=cucumber
|
|||||||
|
|
||||||
CompilerSet errorformat=
|
CompilerSet errorformat=
|
||||||
\%W%m\ (Cucumber::Undefined),
|
\%W%m\ (Cucumber::Undefined),
|
||||||
\%E%m\ (%.%#),
|
\%E%m\ (%\\S%#),
|
||||||
\%Z%f:%l,
|
\%Z%f:%l,
|
||||||
\%Z%f:%l:%.%#
|
\%Z%f:%l:%.%#
|
||||||
|
|
||||||
@@ -27,3 +29,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim:set sw=2 sts=2:
|
" vim:set sw=2 sts=2:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
" Vim compiler file
|
|
||||||
" Language: Erlang
|
|
||||||
" Author: Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
|
|
||||||
" Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
|
|
||||||
" License: Vim license
|
|
||||||
" Version: 2013/03/06
|
|
||||||
|
|
||||||
if exists("current_compiler") || v:version < 703
|
|
||||||
finish
|
|
||||||
else
|
|
||||||
let current_compiler = "erlang"
|
|
||||||
endif
|
|
||||||
|
|
||||||
let b:error_list = {}
|
|
||||||
let b:is_showing_msg = 0
|
|
||||||
let b:next_sign_id = 1
|
|
||||||
|
|
||||||
if exists(":CompilerSet") != 2
|
|
||||||
command -nargs=* CompilerSet setlocal <args>
|
|
||||||
endif
|
|
||||||
|
|
||||||
CompilerSet makeprg=make
|
|
||||||
CompilerSet errorformat=%f:%l:\ %tarning:\ %m,%f:%l:\ %m
|
|
||||||
|
|
||||||
" Only define functions and script scope variables once
|
|
||||||
if exists("*s:ShowErrors")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !exists("g:erlang_show_errors")
|
|
||||||
let g:erlang_show_errors = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:erlang_check_file = expand("<sfile>:p:h") . "/erlang_check.erl"
|
|
||||||
let s:autocmds_defined = 0
|
|
||||||
|
|
||||||
sign define ErlangError text=>> texthl=Error
|
|
||||||
sign define ErlangWarning text=>> texthl=Todo
|
|
||||||
|
|
||||||
command ErlangDisableShowErrors silent call s:DisableShowErrors()
|
|
||||||
command ErlangEnableShowErrors silent call s:EnableShowErrors()
|
|
||||||
|
|
||||||
function s:ShowErrors()
|
|
||||||
setlocal shellpipe=>
|
|
||||||
if match(getline(1), "#!.*escript") != -1
|
|
||||||
setlocal makeprg=escript\ -s\ %
|
|
||||||
else
|
|
||||||
execute "setlocal makeprg=" . s:erlang_check_file . "\\ \%"
|
|
||||||
endif
|
|
||||||
silent make!
|
|
||||||
for error in getqflist()
|
|
||||||
let item = {}
|
|
||||||
let item["lnum"] = error.lnum
|
|
||||||
let item["text"] = error.text
|
|
||||||
let b:error_list[error.lnum] = item
|
|
||||||
let type = error.type == "W" ? "ErlangWarning" : "ErlangError"
|
|
||||||
execute "sign place" b:next_sign_id "line=" . item.lnum "name=" . type "file=" . expand("%:p")
|
|
||||||
let b:next_sign_id += 1
|
|
||||||
endfor
|
|
||||||
setlocal shellpipe&
|
|
||||||
setlocal makeprg=make
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:ShowErrorMsg()
|
|
||||||
let pos = getpos(".")
|
|
||||||
if has_key(b:error_list, pos[1])
|
|
||||||
let item = get(b:error_list, pos[1])
|
|
||||||
echo item.text
|
|
||||||
let b:is_showing_msg = 1
|
|
||||||
else
|
|
||||||
if b:is_showing_msg
|
|
||||||
echo
|
|
||||||
let b:is_showing_msg = 0
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endf
|
|
||||||
|
|
||||||
function s:ClearErrors()
|
|
||||||
sign unplace *
|
|
||||||
let b:error_list = {}
|
|
||||||
let b:next_sign_id = 1
|
|
||||||
if b:is_showing_msg
|
|
||||||
echo
|
|
||||||
let b:is_showing_msg = 0
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:EnableShowErrors()
|
|
||||||
if !s:autocmds_defined
|
|
||||||
augroup vimerl
|
|
||||||
autocmd!
|
|
||||||
autocmd BufWritePre *.erl call s:ClearErrors()
|
|
||||||
autocmd BufWritePost *.erl call s:ShowErrors()
|
|
||||||
autocmd CursorHold *.erl call s:ShowErrorMsg()
|
|
||||||
autocmd CursorMoved *.erl call s:ShowErrorMsg()
|
|
||||||
augroup END
|
|
||||||
let s:autocmds_defined = 1
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:DisableShowErrors()
|
|
||||||
sign unplace *
|
|
||||||
augroup vimerl
|
|
||||||
autocmd!
|
|
||||||
augroup END
|
|
||||||
let s:autocmds_defined = 0
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if g:erlang_show_errors
|
|
||||||
call s:EnableShowErrors()
|
|
||||||
endif
|
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||||
|
|
||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Language: eRuby
|
" Language: eRuby
|
||||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||||
@@ -37,3 +39,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" vim: nowrap sw=2 sts=2 ts=8:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
" Vim compiler file
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||||
" Language: ExUnit
|
|
||||||
" Maintainer: Rein Henrichs <rein.henrichs@gmail.com>
|
|
||||||
" URL: https://github.com/elixir-lang/vim-elixir
|
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -14,11 +11,19 @@ endif
|
|||||||
|
|
||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=mix\ test
|
CompilerSet makeprg=mix\ test
|
||||||
CompilerSet errorformat=%A\ \ %.)\ %m(%.%#),%C\ \ \ \ \ **%m,%C\ \ \ \ \ \ \ %m,%Z\ \ \ \ \ at\ %f:%l,%-G%.%#
|
CompilerSet errorformat=
|
||||||
|
\%E\ \ %n)\ %m,
|
||||||
|
\%+G\ \ \ \ \ **\ %m,
|
||||||
|
\%+G\ \ \ \ \ stacktrace:,
|
||||||
|
\%C\ \ \ \ \ %f:%l,
|
||||||
|
\%+G\ \ \ \ \ \ \ (%\\w%\\+)\ %f:%l:\ %m,
|
||||||
|
\%+G\ \ \ \ \ \ \ %f:%l:\ %.%#,
|
||||||
|
\**\ (%\\w%\\+)\ %f:%l:\ %m
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" vim: nowrap sw=2 sts=2 ts=8:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
45
compiler/go.vim
Normal file
45
compiler/go.vim
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
|
||||||
|
|
||||||
|
" Copyright 2013 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.
|
||||||
|
"
|
||||||
|
" compiler/go.vim: Vim compiler file for Go.
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = "go"
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
if filereadable("makefile") || filereadable("Makefile")
|
||||||
|
CompilerSet makeprg=make
|
||||||
|
else
|
||||||
|
CompilerSet makeprg=go\ build
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Define the patterns that will be recognized by QuickFix when parsing the
|
||||||
|
" output of Go command that use this errorforamt (when called make, cexpr or
|
||||||
|
" lmake, lexpr). This is the global errorformat, however some command might
|
||||||
|
" use a different output, for those we define them directly and modify the
|
||||||
|
" errorformat ourselves. More information at:
|
||||||
|
" http://vimdoc.sourceforge.net/htmldoc/quickfix.html#errorformat
|
||||||
|
CompilerSet errorformat =%-G#\ %.%# " Ignore lines beginning with '#' ('# command-line-arguments' line sometimes appears?)
|
||||||
|
CompilerSet errorformat+=%-G%.%#panic:\ %m " Ignore lines containing 'panic: message'
|
||||||
|
CompilerSet errorformat+=%Ecan\'t\ load\ package:\ %m " Start of multiline error string is 'can\'t load package'
|
||||||
|
CompilerSet errorformat+=%A%f:%l:%c:\ %m " Start of multiline unspecified string is 'filename:linenumber:columnnumber:'
|
||||||
|
CompilerSet errorformat+=%A%f:%l:\ %m " Start of multiline unspecified string is 'filename:linenumber:'
|
||||||
|
CompilerSet errorformat+=%C%*\\s%m " Continuation of multiline error message is indented
|
||||||
|
CompilerSet errorformat+=%-G%.%# " All lines not matching any of the above patterns are ignored
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
||||||
|
|
||||||
|
" vim:ts=4:sw=4:et
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haml') == -1
|
||||||
|
|
||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Compiler: Haml
|
" Compiler: Haml
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
@@ -15,7 +17,7 @@ endif
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=haml\ -c
|
CompilerSet makeprg=haml
|
||||||
|
|
||||||
CompilerSet errorformat=
|
CompilerSet errorformat=
|
||||||
\Haml\ %trror\ on\ line\ %l:\ %m,
|
\Haml\ %trror\ on\ line\ %l:\ %m,
|
||||||
@@ -26,3 +28,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim:set sw=2 sts=2:
|
" vim:set sw=2 sts=2:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
27
compiler/nim.vim
Normal file
27
compiler/nim.vim
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let current_compiler = "nim"
|
||||||
|
|
||||||
|
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=nim\ c\ $*
|
||||||
|
|
||||||
|
CompilerSet errorformat=
|
||||||
|
\%-GHint:\ %m,
|
||||||
|
\%E%f(%l\\,\ %c)\ Error:\ %m,
|
||||||
|
\%W%f(%l\\,\ %c)\ Hint:\ %m
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||||
|
|
||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Language: Rake
|
" Language: Rake
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
@@ -27,9 +29,15 @@ CompilerSet errorformat=
|
|||||||
\%\\s%#[%f:%l:\ %#%m,
|
\%\\s%#[%f:%l:\ %#%m,
|
||||||
\%\\s%#%f:%l:\ %#%m,
|
\%\\s%#%f:%l:\ %#%m,
|
||||||
\%\\s%#%f:%l:,
|
\%\\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
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" 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
|
" Vim compiler file
|
||||||
" Language: RSpec
|
" Language: RSpec
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
@@ -22,12 +24,15 @@ CompilerSet errorformat=
|
|||||||
\%f:%l:\ %tarning:\ %m,
|
\%f:%l:\ %tarning:\ %m,
|
||||||
\%E%.%#:in\ `load':\ %f:%l:%m,
|
\%E%.%#:in\ `load':\ %f:%l:%m,
|
||||||
\%E%f:%l:in\ `%*[^']':\ %m,
|
\%E%f:%l:in\ `%*[^']':\ %m,
|
||||||
\%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
|
\%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#,
|
||||||
\%E\ \ %\\d%\\+)%.%#,
|
\%E\ \ %\\d%\\+)%.%#,
|
||||||
\%C\ \ \ \ \ %m,
|
\%C\ \ \ \ \ %m,
|
||||||
|
\%C%\\s%#,
|
||||||
\%-G%.%#
|
\%-G%.%#
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" 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
|
" Vim compiler file
|
||||||
" Language: Ruby
|
" Language: Ruby
|
||||||
" Function: Syntax check and/or error reporting
|
" Function: Syntax check and/or error reporting
|
||||||
@@ -43,3 +45,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" 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
|
" Vim compiler file
|
||||||
" Language: Test::Unit - Ruby Unit Testing Framework
|
" Language: Test::Unit - Ruby Unit Testing Framework
|
||||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||||
@@ -17,6 +19,8 @@ let s:cpo_save = &cpo
|
|||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=testrb
|
CompilerSet makeprg=testrb
|
||||||
|
" CompilerSet makeprg=ruby\ -Itest
|
||||||
|
" CompilerSet makeprg=m
|
||||||
|
|
||||||
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
||||||
\%C%m\ [%f:%l]:,
|
\%C%m\ [%f:%l]:,
|
||||||
@@ -31,3 +35,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" vim: nowrap sw=2 sts=2 ts=8:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
37
compiler/rustc.vim
Normal file
37
compiler/rustc.vim
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||||
|
|
||||||
|
" Vim compiler file
|
||||||
|
" Compiler: Rust Compiler
|
||||||
|
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||||
|
" Latest Revision: 2013 Jul 12
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = "rustc"
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0
|
||||||
|
CompilerSet makeprg=rustc
|
||||||
|
else
|
||||||
|
CompilerSet makeprg=rustc\ \%
|
||||||
|
endif
|
||||||
|
|
||||||
|
CompilerSet errorformat=
|
||||||
|
\%f:%l:%c:\ %t%*[^:]:\ %m,
|
||||||
|
\%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m,
|
||||||
|
\%-G%f:%l\ %s,
|
||||||
|
\%-G%*[\ ]^,
|
||||||
|
\%-G%*[\ ]^%*[~],
|
||||||
|
\%-G%*[\ ]...
|
||||||
|
|
||||||
|
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
|
" Vim compiler file
|
||||||
" Compiler: Sass
|
" Compiler: Sass
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
@@ -15,7 +17,7 @@ endif
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet makeprg=sass\ -c
|
CompilerSet makeprg=sass
|
||||||
|
|
||||||
CompilerSet errorformat=
|
CompilerSet errorformat=
|
||||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||||
@@ -28,3 +30,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim:set sw=2 sts=2:
|
" 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
|
||||||
298
compiler/tex.vim
298
compiler/tex.vim
@@ -1,298 +0,0 @@
|
|||||||
" File: tex.vim
|
|
||||||
" Type: compiler plugin for LaTeX
|
|
||||||
" Original Author: Artem Chuprina <ran@ran.pp.ru>
|
|
||||||
" Customization: Srinath Avadhanula <srinath@fastmail.fm>
|
|
||||||
" Description: {{{
|
|
||||||
" This file sets the 'makeprg' and 'errorformat' options for the LaTeX
|
|
||||||
" compiler. It is customizable to optionally ignore certain warnings and
|
|
||||||
" provides the ability to set a dynamic 'ignore-warning' level.
|
|
||||||
"
|
|
||||||
" By default it is set up in a 'non-verbose', 'ignore-common-warnings' mode,
|
|
||||||
" which means that irrelevant lines from the compilers output will be
|
|
||||||
" ignored and also some very common warnings are ignored.
|
|
||||||
"
|
|
||||||
" Depending on the 'ignore-level', the following kinds of messages are
|
|
||||||
" ignored. An ignore level of 3 for instance means that messages 1-3 will be
|
|
||||||
" ignored. By default, the ignore level is set to 4.
|
|
||||||
"
|
|
||||||
" 1. LaTeX Warning: Specifier 'h' changed to 't'.
|
|
||||||
" This errors occurs when TeX is not able to correctly place a floating
|
|
||||||
" object at a specified location, because of which it defaulted to the
|
|
||||||
" top of the page.
|
|
||||||
" 2. LaTeX Warning: Underfull box ...
|
|
||||||
" 3. LaTeX Warning: Overfull box ...
|
|
||||||
" both these warnings (very common) are due to \hbox settings not being
|
|
||||||
" satisfied nicely.
|
|
||||||
" 4. LaTeX Warning: You have requested ...,
|
|
||||||
" This warning occurs in slitex when using the xypic package.
|
|
||||||
" 5. Missing number error:
|
|
||||||
" Usually, when the name of an included eps file is spelled incorrectly,
|
|
||||||
" then the \bb-error message is accompanied by a bunch of "missing
|
|
||||||
" number, treated as zero" error messages. This level ignores these
|
|
||||||
" warnings.
|
|
||||||
" NOTE: number 5 is actually a latex error, not a warning!
|
|
||||||
"
|
|
||||||
" Use
|
|
||||||
" TCLevel <level>
|
|
||||||
" where level is a number to set the ignore level dynamically.
|
|
||||||
"
|
|
||||||
" When TCLevel is called with the unquoted string strict
|
|
||||||
" TClevel strict
|
|
||||||
" then the 'efm' switches to a 'verbose', 'no-lines-ignored' mode which is
|
|
||||||
" useful when you want to make final checks of your document and want to be
|
|
||||||
" careful not to let things slip by.
|
|
||||||
"
|
|
||||||
" TIP: MikTeX has a bug where it sometimes erroneously splits a line number
|
|
||||||
" into multiple lines. i.e, if the warning is on line 1234. the compiler
|
|
||||||
" output is:
|
|
||||||
" LaTeX Warning: ... on input line 123
|
|
||||||
" 4.
|
|
||||||
" In this case, vim will wrongly interpret the line-number as 123 instead
|
|
||||||
" of 1234. If you have cygwin, a simple remedy around this is to first
|
|
||||||
" copy the file vimlatex (provided) into your $PATH, make sure its
|
|
||||||
" executable and then set the variable g:tex_flavor to vimlatex in your
|
|
||||||
" ~/.vimrc (i.e putting let "g:tex_flavor = 'vimlatex'" in your .vimrc).
|
|
||||||
" This problem occurs rarely enough that its not a botheration for most
|
|
||||||
" people.
|
|
||||||
"
|
|
||||||
" TODO:
|
|
||||||
" 1. menu items for dynamically selecting a ignore warning level.
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" avoid reinclusion for the same buffer. keep it buffer local so it can be
|
|
||||||
" externally reset in case of emergency re-sourcing.
|
|
||||||
if exists('b:doneTexCompiler') && !exists('b:forceRedoTexCompiler')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let b:doneTexCompiler = 1
|
|
||||||
|
|
||||||
" ==============================================================================
|
|
||||||
" Customization of 'efm': {{{
|
|
||||||
" This section contains the customization variables which the user can set.
|
|
||||||
" g:Tex_IgnoredWarnings: This variable contains a ¡ seperated list of
|
|
||||||
" patterns which will be ignored in the TeX compiler's output. Use this
|
|
||||||
" carefully, otherwise you might end up losing valuable information.
|
|
||||||
if !exists('g:Tex_IgnoredWarnings')
|
|
||||||
let g:Tex_IgnoredWarnings =
|
|
||||||
\'Underfull'."\n".
|
|
||||||
\'Overfull'."\n".
|
|
||||||
\'specifier changed to'."\n".
|
|
||||||
\'You have requested'."\n".
|
|
||||||
\'Missing number, treated as zero.'."\n".
|
|
||||||
\'There were undefined references'."\n".
|
|
||||||
\'Citation %.%# undefined'
|
|
||||||
endif
|
|
||||||
" This is the number of warnings in the g:Tex_IgnoredWarnings string which
|
|
||||||
" will be ignored.
|
|
||||||
if !exists('g:Tex_IgnoreLevel')
|
|
||||||
let g:Tex_IgnoreLevel = 7
|
|
||||||
endif
|
|
||||||
" There will be lots of stuff in a typical compiler output which will
|
|
||||||
" completely fall through the 'efm' parsing. This options sets whether or not
|
|
||||||
" you will be shown those lines.
|
|
||||||
if !exists('g:Tex_IgnoreUnmatched')
|
|
||||||
let g:Tex_IgnoreUnmatched = 1
|
|
||||||
endif
|
|
||||||
" With all this customization, there is a slight risk that you might be
|
|
||||||
" ignoring valid warnings or errors. Therefore before getting the final copy
|
|
||||||
" of your work, you might want to reset the 'efm' with this variable set to 1.
|
|
||||||
" With that value, all the lines from the compiler are shown irrespective of
|
|
||||||
" whether they match the error or warning patterns.
|
|
||||||
" NOTE: An easier way of resetting the 'efm' to show everything is to do
|
|
||||||
" TCLevel strict
|
|
||||||
if !exists('g:Tex_ShowallLines')
|
|
||||||
let g:Tex_ShowallLines = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
" ==============================================================================
|
|
||||||
" Customization of 'makeprg': {{{
|
|
||||||
|
|
||||||
" There are several alternate ways in which 'makeprg' is set up.
|
|
||||||
"
|
|
||||||
" Case 1
|
|
||||||
" ------
|
|
||||||
" The first is when this file is a part of latex-suite. In this case, a
|
|
||||||
" variable called g:Tex_DefaultTargetFormat exists, which gives the default
|
|
||||||
" format .tex files should be compiled into. In this case, we use the TTarget
|
|
||||||
" command provided by latex-suite.
|
|
||||||
"
|
|
||||||
" Case 2
|
|
||||||
" ------
|
|
||||||
" The user is using this file without latex-suite AND he wants to directly
|
|
||||||
" specify the complete 'makeprg'. Then he should set the g:Tex_CompileRule_dvi
|
|
||||||
" variable. This is a string which should be directly be able to be cast into
|
|
||||||
" &makeprg. An example of one such string is:
|
|
||||||
"
|
|
||||||
" g:Tex_CompileRule_dvi = 'pdflatex \\nonstopmode \\input\{$*\}'
|
|
||||||
"
|
|
||||||
" NOTE: You will need to escape back-slashes, {'s etc yourself if you are
|
|
||||||
" using this file independently of latex-suite.
|
|
||||||
" TODO: Should we also have a check for backslash escaping here based on
|
|
||||||
" platform?
|
|
||||||
"
|
|
||||||
" Case 3
|
|
||||||
" ------
|
|
||||||
" The use is using this file without latex-suite and he doesnt want any
|
|
||||||
" customization. In this case, this file makes some intelligent guesses based
|
|
||||||
" on the platform. If he doesn't want to specify the complete 'makeprg' but
|
|
||||||
" only the name of the compiler program (for example 'pdflatex' or 'latex'),
|
|
||||||
" then he sets b:tex_flavor or g:tex_flavor.
|
|
||||||
|
|
||||||
if exists('g:Tex_DefaultTargetFormat')
|
|
||||||
exec 'TTarget '.g:Tex_DefaultTargetFormat
|
|
||||||
elseif exists('g:Tex_CompileRule_dvi')
|
|
||||||
let &l:makeprg = g:Tex_CompileRule_dvi
|
|
||||||
else
|
|
||||||
" If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
|
|
||||||
" otherwize the same for global variable with same name, else it will be LaTeX
|
|
||||||
if exists("b:tex_flavor")
|
|
||||||
let current_compiler = b:tex_flavor
|
|
||||||
elseif exists("g:tex_flavor")
|
|
||||||
let current_compiler = g:tex_flavor
|
|
||||||
else
|
|
||||||
let current_compiler = "latex"
|
|
||||||
end
|
|
||||||
if has('win32')
|
|
||||||
let escChars = ''
|
|
||||||
else
|
|
||||||
let escChars = '{}\'
|
|
||||||
endif
|
|
||||||
" Furthermore, if 'win32' is detected, then we want to set the arguments up so
|
|
||||||
" that miktex can handle it.
|
|
||||||
if has('win32')
|
|
||||||
let options = '--src-specials'
|
|
||||||
else
|
|
||||||
let options = ''
|
|
||||||
endif
|
|
||||||
let &l:makeprg = current_compiler . ' ' . options .
|
|
||||||
\ escape(' \nonstopmode \input{$*}', escChars)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
" ==============================================================================
|
|
||||||
" Functions for setting up a customized 'efm' {{{
|
|
||||||
|
|
||||||
" IgnoreWarnings: parses g:Tex_IgnoredWarnings for message customization {{{
|
|
||||||
" Description:
|
|
||||||
function! <SID>IgnoreWarnings()
|
|
||||||
let i = 1
|
|
||||||
while s:Strntok(g:Tex_IgnoredWarnings, "\n", i) != '' &&
|
|
||||||
\ i <= g:Tex_IgnoreLevel
|
|
||||||
let warningPat = s:Strntok(g:Tex_IgnoredWarnings, "\n", i)
|
|
||||||
let warningPat = escape(substitute(warningPat, '[\,]', '%\\\\&', 'g'), ' ')
|
|
||||||
exe 'setlocal efm+=%-G%.%#'.warningPat.'%.%#'
|
|
||||||
let i = i + 1
|
|
||||||
endwhile
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
" SetLatexEfm: sets the 'efm' for the latex compiler {{{
|
|
||||||
" Description:
|
|
||||||
function! <SID>SetLatexEfm()
|
|
||||||
|
|
||||||
let pm = ( g:Tex_ShowallLines == 1 ? '+' : '-' )
|
|
||||||
|
|
||||||
setlocal efm=
|
|
||||||
" remove default error formats that cause issues with revtex, where they
|
|
||||||
" match version messages
|
|
||||||
" Reference: http://bugs.debian.org/582100
|
|
||||||
setlocal efm-=%f:%l:%m
|
|
||||||
setlocal efm-=%f:%l:%c:%m
|
|
||||||
|
|
||||||
if !g:Tex_ShowallLines
|
|
||||||
call s:IgnoreWarnings()
|
|
||||||
endif
|
|
||||||
|
|
||||||
setlocal efm+=%E!\ LaTeX\ %trror:\ %m
|
|
||||||
setlocal efm+=%E!\ %m
|
|
||||||
setlocal efm+=%E%f:%l:\ %m
|
|
||||||
|
|
||||||
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
|
|
||||||
setlocal efm+=%+W%.%#\ at\ lines\ %l--%*\\d
|
|
||||||
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %m
|
|
||||||
|
|
||||||
exec 'setlocal efm+=%'.pm.'Cl.%l\ %m'
|
|
||||||
exec 'setlocal efm+=%'.pm.'Cl.%l\ '
|
|
||||||
exec 'setlocal efm+=%'.pm.'C\ \ %m'
|
|
||||||
exec 'setlocal efm+=%'.pm.'C%.%#-%.%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'C%.%#[]%.%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'C[]%.%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'C%.%#%[{}\\]%.%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'C<%.%#>%m'
|
|
||||||
exec 'setlocal efm+=%'.pm.'C\ \ %m'
|
|
||||||
exec 'setlocal efm+=%'.pm.'GSee\ the\ LaTeX%m'
|
|
||||||
exec 'setlocal efm+=%'.pm.'GType\ \ H\ <return>%m'
|
|
||||||
exec 'setlocal efm+=%'.pm.'G\ ...%.%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'G%.%#\ (C)\ %.%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'G(see\ the\ transcript%.%#)'
|
|
||||||
exec 'setlocal efm+=%'.pm.'G\\s%#'
|
|
||||||
exec 'setlocal efm+=%'.pm.'O(%*[^()])%r'
|
|
||||||
exec 'setlocal efm+=%'.pm.'P(%f%r'
|
|
||||||
exec 'setlocal efm+=%'.pm.'P\ %\\=(%f%r'
|
|
||||||
exec 'setlocal efm+=%'.pm.'P%*[^()](%f%r'
|
|
||||||
exec 'setlocal efm+=%'.pm.'P(%f%*[^()]'
|
|
||||||
exec 'setlocal efm+=%'.pm.'P[%\\d%[^()]%#(%f%r'
|
|
||||||
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
|
|
||||||
setlocal efm+=%-P%*[^()]
|
|
||||||
endif
|
|
||||||
exec 'setlocal efm+=%'.pm.'Q)%r'
|
|
||||||
exec 'setlocal efm+=%'.pm.'Q%*[^()])%r'
|
|
||||||
exec 'setlocal efm+=%'.pm.'Q[%\\d%*[^()])%r'
|
|
||||||
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
|
|
||||||
setlocal efm+=%-Q%*[^()]
|
|
||||||
endif
|
|
||||||
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
|
|
||||||
setlocal efm+=%-G%.%#
|
|
||||||
endif
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
" Strntok: extract the n^th token from a list {{{
|
|
||||||
" example: Strntok('1,23,3', ',', 2) = 23
|
|
||||||
fun! <SID>Strntok(s, tok, n)
|
|
||||||
return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}')
|
|
||||||
endfun
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
" SetTexCompilerLevel: sets the "level" for the latex compiler {{{
|
|
||||||
function! <SID>SetTexCompilerLevel(...)
|
|
||||||
if a:0 > 0
|
|
||||||
let level = a:1
|
|
||||||
else
|
|
||||||
call Tex_ResetIncrementNumber(0)
|
|
||||||
echo substitute(g:Tex_IgnoredWarnings,
|
|
||||||
\ '^\|\n\zs\S', '\=Tex_IncrementNumber(1)." ".submatch(0)', 'g')
|
|
||||||
let level = input("\nChoose an ignore level: ")
|
|
||||||
if level == ''
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if level == 'strict'
|
|
||||||
let g:Tex_ShowallLines = 1
|
|
||||||
elseif level =~ '^\d\+$'
|
|
||||||
let g:Tex_ShowallLines = 0
|
|
||||||
let g:Tex_IgnoreLevel = level
|
|
||||||
else
|
|
||||||
echoerr "SetTexCompilerLevel: Unkwown option [".level."]"
|
|
||||||
end
|
|
||||||
call s:SetLatexEfm()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
com! -nargs=? TCLevel :call <SID>SetTexCompilerLevel(<f-args>)
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
" ==============================================================================
|
|
||||||
|
|
||||||
call s:SetLatexEfm()
|
|
||||||
|
|
||||||
if !exists('*Tex_Debug')
|
|
||||||
function! Tex_Debug(...)
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
call Tex_Debug("compiler/tex.vim: sourcing this file", "comp")
|
|
||||||
|
|
||||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|
|
||||||
20
compiler/typescript.vim
Normal file
20
compiler/typescript.vim
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = "typescript"
|
||||||
|
|
||||||
|
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 +0,0 @@
|
|||||||
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
au BufNewFile,BufRead *.clj,*.cljs,*.edn setf clojure
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
" Language: CoffeeScript
|
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
|
||||||
" License: WTFPL
|
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
|
|
||||||
autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
|
|
||||||
autocmd BufNewFile,BufRead *.coffeekup,*.ck set filetype=coffee
|
|
||||||
autocmd BufNewFile,BufRead *._coffee set filetype=coffee
|
|
||||||
|
|
||||||
function! s:DetectCoffee()
|
|
||||||
if getline(1) =~ '^#!.*\<coffee\>'
|
|
||||||
set filetype=coffee
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead * call s:DetectCoffee()
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
" Install Filetype detection for CSV files
|
|
||||||
au BufRead,BufNewFile *.csv,*.dat,*.tsv,*.tab set filetype=csv
|
|
||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
" Cucumber
|
|
||||||
autocmd BufNewFile,BufReadPost *.feature,*.story set filetype=cucumber
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
|
|
||||||
au FileType elixir setl sw=2 sts=2 et iskeyword+=!,?
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
" Git
|
|
||||||
autocmd BufNewFile,BufRead *.git/{,modules/**/}{COMMIT_EDIT,MERGE_}MSG set ft=gitcommit
|
|
||||||
autocmd BufNewFile,BufRead *.git/config,.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 *.git/**
|
|
||||||
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
|
||||||
\ set ft=git |
|
|
||||||
\ endif
|
|
||||||
|
|
||||||
" This logic really belongs in scripts.vim
|
|
||||||
autocmd BufNewFile,BufRead,StdinReadPost *
|
|
||||||
\ if getline(1) =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$' |
|
|
||||||
\ set ft=git |
|
|
||||||
\ endif
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
" We take care to preserve the user's fileencodings and fileformats,
|
|
||||||
" because those settings are global (not buffer local), yet we want
|
|
||||||
" to override them for loading Go files, which are defined to be UTF-8.
|
|
||||||
let s:current_fileformats = ''
|
|
||||||
let s:current_fileencodings = ''
|
|
||||||
|
|
||||||
" define fileencodings to open as utf-8 encoding even if it's ascii.
|
|
||||||
function! s:gofiletype_pre()
|
|
||||||
let s:current_fileformats = &g:fileformats
|
|
||||||
let s:current_fileencodings = &g:fileencodings
|
|
||||||
set fileencodings=utf-8 fileformats=unix
|
|
||||||
setlocal filetype=go
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" restore fileencodings as others
|
|
||||||
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 BufRead *.go call s:gofiletype_pre()
|
|
||||||
au BufReadPost *.go call s:gofiletype_post()
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
autocmd BufNewFile,BufRead *.haml,*.hamlbars setf haml
|
|
||||||
autocmd BufNewFile,BufRead *.sass setf sass
|
|
||||||
autocmd BufNewFile,BufRead *.scss setf scss
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
if has("autocmd")
|
|
||||||
au BufNewFile,BufRead *.{handlebars,hb,hbs,hbt}{,.erb} set ft=html syntax=handlebars | runtime! ftplugin/handlebars.vim ftplugin/handlebars*.vim ftplugin/handlebars/*.vim
|
|
||||||
endif
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
au BufNewFile,BufRead *.js setf javascript
|
|
||||||
au BufNewFile,BufRead *.jsm setf javascript
|
|
||||||
au BufNewFile,BufRead *.json 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()
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
au BufNewFile,BufRead *.ejs set filetype=jst
|
|
||||||
au BufNewFile,BufRead *.jst set filetype=jst
|
|
||||||
au BufNewFile,BufRead *.hamljs set filetype=jst
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
autocmd BufNewFile,BufRead *.less setf less
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn
|
|
||||||
\ if &ft =~# '^\%(conf\|modula2\)$' |
|
|
||||||
\ set ft=markdown |
|
|
||||||
\ else |
|
|
||||||
\ setf markdown |
|
|
||||||
\ endif
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
|
||||||
474
ftdetect/polyglot.vim
Normal file
474
ftdetect/polyglot.vim
Normal file
@@ -0,0 +1,474 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
function! DetectAnsible()
|
||||||
|
let filepath = expand("%:p")
|
||||||
|
let filename = expand("%:t")
|
||||||
|
if filepath =~ '\v/(tasks|roles)/.*\.ya?ml$' || filepath =~ '\v/(group|host)_vars/' || filename =~ '\v(playbook|site)\.ya?ml$'
|
||||||
|
set ft=ansible
|
||||||
|
endif
|
||||||
|
unlet filepath
|
||||||
|
unlet filename
|
||||||
|
endfunction
|
||||||
|
:au BufNewFile,BufRead *.yml,*yaml,*/{group,host}_vars/* call DetectAnsible()
|
||||||
|
:au BufNewFile,BufRead *.j2 set ft=ansible_template
|
||||||
|
:au BufNewFile,BufRead hosts set ft=ansible_hosts
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'arduino') == -1
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'blade') == -1
|
||||||
|
|
||||||
|
autocmd 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
|
||||||
|
autocmd BufNewFile,BufRead *._coffee set filetype=coffee
|
||||||
|
function! s:DetectCoffee()
|
||||||
|
if getline(1) =~ '^#!.*\<coffee\>'
|
||||||
|
set filetype=coffee
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
autocmd BufNewFile,BufRead * call s:DetectCoffee()
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cql') == -1
|
||||||
|
|
||||||
|
if has("autocmd")
|
||||||
|
au BufNewFile,BufRead *.cql set filetype=cql
|
||||||
|
endif
|
||||||
|
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, 'dart') == -1
|
||||||
|
|
||||||
|
autocmd BufRead,BufNewFile *.dart set filetype=dart
|
||||||
|
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 *.ex,*.exs call s:setf('elixir')
|
||||||
|
au BufRead,BufNewFile *.eex call s:setf('eelixir')
|
||||||
|
au FileType elixir,eelixir setl sw=2 sts=2 et iskeyword+=!,?
|
||||||
|
au BufNewFile,BufRead * call s:DetectElixir()
|
||||||
|
function! s:setf(filetype) abort
|
||||||
|
let &filetype = a:filetype
|
||||||
|
endfunction
|
||||||
|
function! s:DetectElixir()
|
||||||
|
if getline(1) =~ '^#!.*\<elixir\>'
|
||||||
|
call s:setf('elixir')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
|
||||||
|
|
||||||
|
au BufNewFile,BufRead *.elm set filetype=elm
|
||||||
|
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, 'erlang') == -1
|
||||||
|
|
||||||
|
au BufNewFile,BufRead *.erl,*.hrl,rebar.config,*.app,*.app.src,*.yaws,*.xrl set ft=erlang
|
||||||
|
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 .gitsendemail.* set ft=gitsendemail
|
||||||
|
autocmd BufNewFile,BufRead *.git/**
|
||||||
|
\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
|
||||||
|
\ set ft=git |
|
||||||
|
\ endif
|
||||||
|
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(type)
|
||||||
|
let s:current_fileformats = &g:fileformats
|
||||||
|
let s:current_fileencodings = &g:fileencodings
|
||||||
|
set fileencodings=utf-8 fileformats=unix
|
||||||
|
let &l:filetype = a:type
|
||||||
|
endfunction
|
||||||
|
function! s:gofiletype_post()
|
||||||
|
let &g:fileformats = s:current_fileformats
|
||||||
|
let &g:fileencodings = s:current_fileencodings
|
||||||
|
endfunction
|
||||||
|
au BufNewFile *.go setfiletype go | setlocal fileencoding=utf-8 fileformat=unix
|
||||||
|
au BufRead *.go call s:gofiletype_pre("go")
|
||||||
|
au BufReadPost *.go call s:gofiletype_post()
|
||||||
|
au BufNewFile *.s setfiletype asm | setlocal fileencoding=utf-8 fileformat=unix
|
||||||
|
au BufRead *.s call s:gofiletype_pre("asm")
|
||||||
|
au BufReadPost *.s call s:gofiletype_post()
|
||||||
|
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
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.hsc set filetype=haskell
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haxe') == -1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.hx setf haxe
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jade') == -1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
||||||
|
endif
|
||||||
|
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, 'jsx') == -1
|
||||||
|
|
||||||
|
if !exists('g:jsx_ext_required')
|
||||||
|
let g:jsx_ext_required = 1
|
||||||
|
endif
|
||||||
|
if !exists('g:jsx_pragma_required')
|
||||||
|
let g:jsx_pragma_required = 0
|
||||||
|
endif
|
||||||
|
if g:jsx_pragma_required
|
||||||
|
" 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
|
||||||
|
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
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jinja') == -1
|
||||||
|
|
||||||
|
fun! s:SelectHTML()
|
||||||
|
let n = 1
|
||||||
|
while n < 50 && n <= line("$")
|
||||||
|
" check for jinja
|
||||||
|
if getline(n) =~ '{{.*}}\|{%-\?\s*\(end.*\|extends\|block\|macro\|set\|if\|for\|include\|trans\)\>'
|
||||||
|
set ft=jinja
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
let n = n + 1
|
||||||
|
endwhile
|
||||||
|
endfun
|
||||||
|
autocmd BufNewFile,BufRead *.html,*.htm,*.nunjucks,*.nunjs call s:SelectHTML()
|
||||||
|
autocmd BufNewFile,BufRead *.jinja2,*.j2,*.jinja set ft=jinja
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'json') == -1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.json set filetype=json
|
||||||
|
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 *.nginx set ft=nginx
|
||||||
|
au BufRead,BufNewFile */etc/nginx/* set ft=nginx
|
||||||
|
au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx
|
||||||
|
au BufRead,BufNewFile nginx.conf set ft=nginx
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
|
||||||
|
|
||||||
|
au BufNewFile,BufRead *.nim set filetype=nim
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nix') == -1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.nix setfiletype nix
|
||||||
|
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
|
||||||
|
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, 'qml') == -1
|
||||||
|
|
||||||
|
autocmd BufRead,BufNewFile *.qml setfiletype qml
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||||
|
|
||||||
|
function! s:setf(filetype) abort
|
||||||
|
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\s\+scalas\?'
|
||||||
|
set filetype=scala
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
au BufRead,BufNewFile *.scala set filetype=scala
|
||||||
|
au BufRead,BufNewFile * call s:DetectScala()
|
||||||
|
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 setfiletype swift
|
||||||
|
autocmd BufRead * call s:Swift()
|
||||||
|
function! s:Swift()
|
||||||
|
if !empty(&filetype)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
let line = getline(1)
|
||||||
|
if line =~ "^#!.*swift"
|
||||||
|
setfiletype swift
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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, 'vcl') == -1
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.vcl set filetype=vcl
|
||||||
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vm') == -1
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.vm set ft=velocity syntax=velocity
|
||||||
|
endif
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
" detect puppet filetype
|
|
||||||
au BufRead,BufNewFile *.pp set filetype=puppet
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
" Ruby
|
|
||||||
au BufNewFile,BufRead *.rb,*.rbw,*.gemspec set filetype=ruby
|
|
||||||
|
|
||||||
" Ruby on Rails
|
|
||||||
au BufNewFile,BufRead *.builder,*.rxml,*.rjs set filetype=ruby
|
|
||||||
|
|
||||||
" Rakefile
|
|
||||||
au BufNewFile,BufRead [rR]akefile,*.rake set filetype=ruby
|
|
||||||
|
|
||||||
" Rantfile
|
|
||||||
au BufNewFile,BufRead [rR]antfile,*.rant set filetype=ruby
|
|
||||||
|
|
||||||
" IRB config
|
|
||||||
au BufNewFile,BufRead .irbrc,irbrc set filetype=ruby
|
|
||||||
|
|
||||||
" Pry config
|
|
||||||
au BufNewFile,BufRead .pryrc set filetype=ruby
|
|
||||||
|
|
||||||
" Rackup
|
|
||||||
au BufNewFile,BufRead *.ru set filetype=ruby
|
|
||||||
|
|
||||||
" Capistrano
|
|
||||||
au BufNewFile,BufRead Capfile set filetype=ruby
|
|
||||||
|
|
||||||
" Bundler
|
|
||||||
au BufNewFile,BufRead Gemfile set filetype=ruby
|
|
||||||
|
|
||||||
" Guard
|
|
||||||
au BufNewFile,BufRead Guardfile,.Guardfile set filetype=ruby
|
|
||||||
|
|
||||||
" Chef
|
|
||||||
au BufNewFile,BufRead Cheffile set filetype=ruby
|
|
||||||
au BufNewFile,BufRead Berksfile set filetype=ruby
|
|
||||||
|
|
||||||
" Vagrant
|
|
||||||
au BufNewFile,BufRead [vV]agrantfile set filetype=ruby
|
|
||||||
|
|
||||||
" Autotest
|
|
||||||
au BufNewFile,BufRead .autotest set filetype=ruby
|
|
||||||
|
|
||||||
" eRuby
|
|
||||||
au BufNewFile,BufRead *.erb,*.rhtml set filetype=eruby
|
|
||||||
|
|
||||||
" Thor
|
|
||||||
au BufNewFile,BufRead [tT]horfile,*.thor set filetype=ruby
|
|
||||||
|
|
||||||
" Rabl
|
|
||||||
au BufNewFile,BufRead *.rabl set filetype=ruby
|
|
||||||
|
|
||||||
" Jbuilder
|
|
||||||
au BufNewFile,BufRead *.jbuilder set filetype=ruby
|
|
||||||
|
|
||||||
" Puppet librarian
|
|
||||||
au BufNewFile,BufRead Puppetfile set filetype=ruby
|
|
||||||
"
|
|
||||||
" Buildr Buildfile
|
|
||||||
au BufNewFile,BufRead [Bb]uildfile set filetype=ruby
|
|
||||||
|
|
||||||
" Appraisal
|
|
||||||
au BufNewFile,BufRead Appraisals set filetype=ruby
|
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
" Vim detect file
|
|
||||||
" Language: sbt
|
|
||||||
" Maintainer: Derek Wyatt <derek@{myfirstname}{mylastname}.org>
|
|
||||||
" Last Change: 2012 Jan 19
|
|
||||||
|
|
||||||
au BufRead,BufNewFile *.sbt set filetype=sbt
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fun! s:DetectScala()
|
|
||||||
if getline(1) == '#!/usr/bin/env scala'
|
|
||||||
set filetype=scala
|
|
||||||
endif
|
|
||||||
endfun
|
|
||||||
|
|
||||||
au BufRead,BufNewFile *.scala,*.sbt set filetype=scala
|
|
||||||
au BufRead,BufNewFile * call s:DetectScala()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
autocmd BufNewFile,BufRead *.slim setf slim
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
" Stylus
|
|
||||||
autocmd BufNewFile,BufReadPost *.styl set filetype=stylus
|
|
||||||
autocmd BufNewFile,BufReadPost *.stylus set filetype=stylus
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
" textile.vim
|
|
||||||
"
|
|
||||||
" Tim Harper (tim.theenchanter.com)
|
|
||||||
|
|
||||||
" Force filetype to be textile even if already set
|
|
||||||
" This will override the system ftplugin/changelog
|
|
||||||
" set on some distros
|
|
||||||
au BufRead,BufNewFile *.textile set filetype=textile
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
autocmd BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
" Twig
|
|
||||||
autocmd BufNewFile,BufRead *.twig set filetype=twig
|
|
||||||
|
|
||||||
" HTML Twig
|
|
||||||
autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
|
|
||||||
8
ftplugin/ansible.vim
Normal file
8
ftplugin/ansible.vim
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
" Slow yaml highlighting workaround
|
||||||
|
if exists('+regexpengine') && ('®expengine' == 0)
|
||||||
|
setlocal regexpengine=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
" File: bib_latexSuite.vim
|
|
||||||
" Author: Srinath Avadhanula
|
|
||||||
" License: Vim Charityware License
|
|
||||||
" Description:
|
|
||||||
" This file sources the bibtex.vim file distributed as part of latex-suite.
|
|
||||||
" That file sets up 3 maps BBB, BAS, and BBA which are easy wasy to type in
|
|
||||||
" bibliographic entries.
|
|
||||||
"
|
|
||||||
|
|
||||||
" source main.vim because we need a few functions from it.
|
|
||||||
runtime ftplugin/latex-suite/main.vim
|
|
||||||
" Disable smart-quotes because we need to enter real quotes in bib files.
|
|
||||||
runtime ftplugin/latex-suite/bibtex.vim
|
|
||||||
|
|
||||||
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap
|
|
||||||
16
ftplugin/blade.vim
Normal file
16
ftplugin/blade.vim
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'blade') == -1
|
||||||
|
|
||||||
|
" Vim filetype plugin
|
||||||
|
" Language: Blade (Laravel)
|
||||||
|
" Maintainer: Jason Walton <jwalton512@gmail.com>
|
||||||
|
|
||||||
|
if exists('b:did_ftplugin')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime! ftplugin/html.vim
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
setlocal iskeyword+=@-@
|
||||||
|
|
||||||
|
endif
|
||||||
69
ftplugin/cabal.vim
Normal file
69
ftplugin/cabal.vim
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||||
|
|
||||||
|
if exists("g:loaded_haskellvim_cabal")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:loaded_haskellvim_cabal = 1
|
||||||
|
|
||||||
|
function! s:makeSection(content)
|
||||||
|
return "\n" . join(a:content, "\n")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:exeTmpl(name, src)
|
||||||
|
let l:exetmpl = [ 'executable ' . a:name,
|
||||||
|
\ '-- ghc-options:',
|
||||||
|
\ 'main-is: ' . a:src,
|
||||||
|
\ '-- other-modules:',
|
||||||
|
\ '-- other-extensions:',
|
||||||
|
\ 'build-depends: base',
|
||||||
|
\ '-- hs-source-dirs:',
|
||||||
|
\ 'default-language: Haskell2010'
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
return s:makeSection(l:exetmpl)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:libTmpl()
|
||||||
|
let l:libtmpl = [ 'library',
|
||||||
|
\ '-- ghc-options:',
|
||||||
|
\ '-- other-modules:',
|
||||||
|
\ '-- other-extensions:',
|
||||||
|
\ 'build-depends: base',
|
||||||
|
\ '-- hs-source-dirs:',
|
||||||
|
\ 'default-language: Haskell2010'
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
return s:makeSection(l:libtmpl)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:flagTmpl(name)
|
||||||
|
let l:flagtmpl = [ 'flag ' . a:name,
|
||||||
|
\ 'description:',
|
||||||
|
\ 'default: False',
|
||||||
|
\ 'manual: True',
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
return s:makeSection(l:flagtmpl)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! cabal#addExecutable()
|
||||||
|
let l:name = input("Enter executable name: ")
|
||||||
|
let l:src = input("Enter source file: ")
|
||||||
|
exe "normal Go" . s:exeTmpl(l:name, l:src)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! cabal#addLibrary()
|
||||||
|
exe "normal Go" . s:libTmpl()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! cabal#addFlag()
|
||||||
|
let l:name = input("Enter flag name: ")
|
||||||
|
exe "normal Go" . s:flagTmpl(l:name)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! -buffer CabalAddExecutable call cabal#addExecutable()
|
||||||
|
command! -buffer CabalAddLibrary call cabal#addLibrary()
|
||||||
|
command! -buffer CabalAddFlag call cabal#addFlag()
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
|
||||||
|
|
||||||
" Vim filetype plugin file
|
" Vim filetype plugin file
|
||||||
" Language: Clojure
|
" Language: Clojure
|
||||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||||
@@ -15,7 +17,7 @@ let b:did_ftplugin = 1
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring<'
|
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring< lispwords<'
|
||||||
|
|
||||||
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
||||||
|
|
||||||
@@ -23,14 +25,29 @@ setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
|||||||
" of user-defined def* definitions.
|
" of user-defined def* definitions.
|
||||||
setlocal define=\\v[(/]def(ault)@!\\S*
|
setlocal define=\\v[(/]def(ault)@!\\S*
|
||||||
|
|
||||||
" Remove 't' from 'formatoptions' to avoid auto-wrapping code. The '+=croql'
|
" Remove 't' from 'formatoptions' to avoid auto-wrapping code.
|
||||||
" is standard ftplugin boilerplate, although it is arguably intrusive.
|
setlocal formatoptions-=t
|
||||||
setlocal formatoptions-=t formatoptions+=croql
|
|
||||||
|
|
||||||
" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
|
" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
|
||||||
setlocal comments=n:;
|
setlocal comments=n:;
|
||||||
setlocal commentstring=;\ %s
|
setlocal commentstring=;\ %s
|
||||||
|
|
||||||
|
" Specially indented symbols from clojure.core and clojure.test.
|
||||||
|
"
|
||||||
|
" Clojure symbols are indented in the defn style when they:
|
||||||
|
"
|
||||||
|
" * Define vars and anonymous functions
|
||||||
|
" * Create new lexical scopes or scopes with altered environments
|
||||||
|
" * Create conditional branches from a predicate function or value
|
||||||
|
"
|
||||||
|
" The arglists for these functions are generally in the form of [x & body];
|
||||||
|
" Functions that accept a flat list of forms do not treat the first argument
|
||||||
|
" specially and hence are not indented specially.
|
||||||
|
"
|
||||||
|
" -*- LISPWORDS -*-
|
||||||
|
" Generated from https://github.com/guns/vim-clojure-static/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
|
||||||
|
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
|
||||||
|
|
||||||
" Provide insert mode completions for special forms and clojure.core. As
|
" Provide insert mode completions for special forms and clojure.core. As
|
||||||
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
|
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
|
||||||
" 'completefunc' so that the user has some form of completion available when
|
" 'completefunc' so that the user has some form of completion available when
|
||||||
@@ -78,3 +95,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet! s:cpo_save s:setting s:dir
|
unlet! s:cpo_save s:setting s:dir
|
||||||
|
|
||||||
" vim:sts=8:sw=8:ts=8:noet
|
" 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
|
" Language: CoffeeScript
|
||||||
" Maintainer: Mick Koch <kchmck@gmail.com>
|
" Maintainer: Mick Koch <mick@kochm.co>
|
||||||
" URL: http://github.com/kchmck/vim-coffee-script
|
" URL: http://github.com/kchmck/vim-coffee-script
|
||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
@@ -13,6 +15,7 @@ call coffee#CoffeeSetUpVariables()
|
|||||||
setlocal formatoptions-=t formatoptions+=croql
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
setlocal comments=:# commentstring=#\ %s
|
setlocal comments=:# commentstring=#\ %s
|
||||||
setlocal omnifunc=javascriptcomplete#CompleteJS
|
setlocal omnifunc=javascriptcomplete#CompleteJS
|
||||||
|
setlocal suffixesadd+=coffee
|
||||||
|
|
||||||
" Create custom augroups.
|
" Create custom augroups.
|
||||||
augroup CoffeeBufUpdate | augroup END
|
augroup CoffeeBufUpdate | augroup END
|
||||||
@@ -330,7 +333,7 @@ function! s:CoffeeLint(startline, endline, bang, args)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let output = system(g:coffee_linter .
|
let output = system(g:coffee_linter .
|
||||||
\ ' -s --csv' .
|
\ ' -s --reporter csv' .
|
||||||
\ ' ' . b:coffee_litcoffee .
|
\ ' ' . b:coffee_litcoffee .
|
||||||
\ ' ' . g:coffee_lint_options .
|
\ ' ' . g:coffee_lint_options .
|
||||||
\ ' ' . a:args .
|
\ ' ' . a:args .
|
||||||
@@ -394,11 +397,13 @@ if !exists('b:coffee_run_buf')
|
|||||||
call s:CoffeeRunResetVars()
|
call s:CoffeeRunResetVars()
|
||||||
endif
|
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>)
|
\ 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>)
|
\ CoffeeWatch call s:CoffeeWatch(<q-args>)
|
||||||
command! -range=% -bar -nargs=* CoffeeRun
|
command! -buffer -range=% -bar -nargs=* CoffeeRun
|
||||||
\ call s:CoffeeRun(<line1>, <line2>, <q-args>)
|
\ 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>)
|
\ call s:CoffeeLint(<line1>, <line2>, <q-bang>, <q-args>)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
2446
ftplugin/csv.vim
2446
ftplugin/csv.vim
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user