mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de3110b733 | ||
|
|
7cbd509b6c | ||
|
|
f025e2778a | ||
|
|
c47dc02849 | ||
|
|
841cb535df | ||
|
|
e5b26a7308 | ||
|
|
b4b054ebf5 | ||
|
|
08ea94e011 | ||
|
|
ba7a783c7f | ||
|
|
f58692a641 | ||
|
|
0dc7696c89 | ||
|
|
5658b62b7a | ||
|
|
938a2f1667 | ||
|
|
303b3f1b43 | ||
|
|
bf84973173 | ||
|
|
89728a486d | ||
|
|
ae3a0d72cc | ||
|
|
3475a2df67 | ||
|
|
ac42e00864 | ||
|
|
0293cf8346 | ||
|
|
8c139a4546 | ||
|
|
47a036761a | ||
|
|
d2c90dad0a | ||
|
|
7ac92eac0f | ||
|
|
7800dae776 |
@@ -1,7 +1,11 @@
|
|||||||
language: ruby
|
language: ruby
|
||||||
rvm:
|
rvm:
|
||||||
- 1.9.3
|
- 1.9.3
|
||||||
before_install: sudo apt-get install vim-gtk
|
sudo: false
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- vim-gtk
|
||||||
before_script:
|
before_script:
|
||||||
- "export DISPLAY=:99.0"
|
- "export DISPLAY=:99.0"
|
||||||
- "sh -e /etc/init.d/xvfb start"
|
- "sh -e /etc/init.d/xvfb start"
|
||||||
|
|||||||
47
README.md
47
README.md
@@ -8,7 +8,7 @@ A collection of language packs for Vim.
|
|||||||
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
||||||
|
|
||||||
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
||||||
- It **installs 50+ times faster** than 50+ packages it consist of.
|
- It **installs 70+ times faster** than 70+ packages it consist of.
|
||||||
- Solid syntax and indentation support. Only the best language packs.
|
- Solid syntax and indentation support. Only the best language packs.
|
||||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||||
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||||
@@ -18,83 +18,90 @@ A collection of language packs for Vim.
|
|||||||
|
|
||||||
## 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
|
||||||
|
|
||||||
|
- [ansible](https://github.com/pearofducks/ansible-vim) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent, ftdetect)
|
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent, ftdetect)
|
||||||
- [blade](https://github.com/xsbeats/vim-blade) (syntax, indent, ftdetect)
|
- [blade](https://github.com/jwalton512/vim-blade) (syntax, indent, ftdetect)
|
||||||
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
|
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
|
||||||
- [c/c++](https://github.com/vim-jp/cpp-vim) (syntax)
|
- [c/c++](https://github.com/vim-jp/vim-cpp) (syntax)
|
||||||
|
- [cjsx](https://github.com/mtscout6/vim-cjsx) (ftdetect, syntax, ftplugin)
|
||||||
- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, autoload, ftplugin, ftdetect)
|
- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
- [cjsx](https://github.com/mtscout6/vim-cjsx) (ftdetect, syntax, ftplugin)
|
|
||||||
- [css](https://github.com/JulesWang/css.vim) (syntax)
|
- [css](https://github.com/JulesWang/css.vim) (syntax)
|
||||||
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
|
- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [dockerfile](https://github.com/honza/dockerfile.vim) (syntax, ftdetect)
|
- [dockerfile](https://github.com/honza/dockerfile.vim) (syntax, ftdetect)
|
||||||
|
- [elm](https://github.com/lambdatoast/elm.vim) (syntax, indent, autoload, ftplugin, ftdetect)
|
||||||
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [emberscript](https://github.com/heartsentwined/vim-ember-script) (syntax, indent, ftplugin, ftdetect)
|
- [emberscript](https://github.com/heartsentwined/vim-ember-script) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [emblem](https://github.com/heartsentwined/vim-emblem) (syntax, indent, ftplugin, ftdetect)
|
- [emblem](https://github.com/heartsentwined/vim-emblem) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (syntax, indent, ftdetect)
|
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (syntax, indent, ftdetect)
|
||||||
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent, ftdetect)
|
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent, ftdetect)
|
||||||
- [go](https://github.com/fatih/vim-go) (syntax, indent, ftdetect)
|
- [go](https://github.com/fatih/vim-go) (syntax, compiler, indent, ftdetect)
|
||||||
- [groovy](https://github.com/vim-scripts/groovy.vim) (syntax)
|
- [groovy](https://github.com/vim-scripts/groovy.vim) (syntax)
|
||||||
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [haml](https://github.com/tpope/vim-haml) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (syntax, ftplugin, ftdetect)
|
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin, ftdetect)
|
- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)
|
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)
|
||||||
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
|
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
|
||||||
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
- [jade](https://github.com/digitaltoad/vim-jade) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
|
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
|
||||||
- [javascript](https://github.com/sheerun/yajs.vim) (syntax, indent)
|
- [javascript](https://github.com/sheerun/yajs.vim) (syntax, indent)
|
||||||
- [julia](https://github.com/dcjones/julia-minimalist-vim) (syntax, indent, ftdetect)
|
- [jinja](https://github.com/Glench/Vim-Jinja2-Syntax) (syntax, indent, ftdetect)
|
||||||
- [json](https://github.com/sheerun/vim-json) (syntax, indent, ftdetect)
|
- [json](https://github.com/sheerun/vim-json) (syntax, indent, ftdetect)
|
||||||
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)
|
||||||
- [jsx](https://github.com/mxw/vim-jsx) (after)
|
- [jsx](https://github.com/mxw/vim-jsx) (ftdetect, after)
|
||||||
|
- [julia](https://github.com/dcjones/julia-minimalist-vim) (syntax, indent, ftdetect)
|
||||||
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftdetect)
|
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftdetect)
|
||||||
- [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin)
|
- [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin)
|
||||||
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin, ftdetect)
|
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [liquid](https://github.com/tpope/vim-liquid) (syntax, indent, ftplugin, ftdetect)
|
- [liquid](https://github.com/tpope/vim-liquid) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [markdown](https://github.com/tpope/vim-markdown) (syntax, ftplugin, ftdetect)
|
- [markdown](https://github.com/tpope/vim-markdown) (syntax, ftplugin, ftdetect)
|
||||||
- [nginx](https://github.com/mutewinter/nginx.vim) (syntax, ftdetect)
|
- [nginx](https://github.com/nginx/nginx) (syntax, indent, 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)
|
- [ocaml](https://github.com/jrk/vim-ocaml) (syntax, indent, ftplugin)
|
||||||
- [octave](https://github.com/vim-scripts/octave.vim--) (syntax)
|
- [octave](https://github.com/vim-scripts/octave.vim--) (syntax)
|
||||||
- [opencl](https://github.com/petRUShka/vim-opencl) (syntax, indent, ftplugin, ftdetect)
|
- [opencl](https://github.com/petRUShka/vim-opencl) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [perl](https://github.com/vim-perl/vim-perl) (syntax, indent, ftplugin, ftdetect)
|
- [perl](https://github.com/vim-perl/vim-perl) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [php](https://github.com/StanAngeloff/php.vim) (syntax)
|
- [php](https://github.com/StanAngeloff/php.vim) (syntax)
|
||||||
- [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, ftplugin, ftdetect)
|
|
||||||
- [powershell](https://github.com/Persistent13/vim-ps1) (syntax, indent, ftplugin, ftdetect)
|
- [powershell](https://github.com/Persistent13/vim-ps1) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, 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)
|
- [python](https://github.com/mitsuhiko/vim-python-combined) (syntax, indent)
|
||||||
- [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin, ftdetect)
|
- [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)
|
- [ragel](https://github.com/jneen/ragel.vim) (syntax)
|
||||||
|
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin)
|
||||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
||||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
- [rust](https://github.com/wting/rust.vim) (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)
|
- [sbt](https://github.com/derekwyatt/vim-sbt) (syntax, ftdetect)
|
||||||
- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [slim](https://github.com/slim-template/vim-slim) (syntax, indent, ftdetect)
|
- [slim](https://github.com/slim-template/vim-slim) (syntax, indent, ftdetect)
|
||||||
- [solidity](https://github.com/ethereum/vim-solidity) (syntax, indent, ftdetect)
|
- [solidity](https://github.com/ethereum/vim-solidity) (syntax, indent, ftdetect)
|
||||||
- [stylus](https://github.com/wavded/vim-stylus) (syntax, indent, ftplugin, 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)
|
- [systemd](https://github.com/kurayama/systemd-vim-syntax) (syntax, ftdetect)
|
||||||
- [swift](https://github.com/toyamarinyon/vim-swift) (syntax, indent, ftdetect)
|
|
||||||
- [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin, ftdetect)
|
- [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin, ftdetect)
|
||||||
- [tmux](https://github.com/tejr/vim-tmux) (syntax, ftdetect)
|
|
||||||
- [tomdoc](https://github.com/duwanis/tomdoc.vim) (syntax)
|
|
||||||
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
|
||||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
|
||||||
- [thrift](https://github.com/solarnz/thrift.vim) (syntax, 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)
|
- [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin, ftdetect)
|
||||||
- [twig](https://github.com/beyondwords/vim-twig) (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)
|
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
||||||
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
||||||
- [vala](https://github.com/tkztmk/vim-vala) (syntax, indent, ftdetect)
|
|
||||||
- [vm](https://github.com/lepture/vim-velocity) (syntax, indent, ftdetect)
|
|
||||||
|
|
||||||
## Disabling a language pack
|
## Disabling a language pack
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Vim ftdetect file
|
|
||||||
"
|
|
||||||
" Language: JSX (JavaScript)
|
|
||||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
|
||||||
"
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
exec 'source '.fnameescape(expand('<sfile>:p:h:h').'/jsx-config.vim')
|
|
||||||
|
|
||||||
fu! <SID>EnableJSX()
|
|
||||||
if g:jsx_pragma_required && !b:jsx_pragma_found | return 0 | endif
|
|
||||||
if g:jsx_ext_required && !exists('b:jsx_ext_found') | return 0 | endif
|
|
||||||
return 1
|
|
||||||
endfu
|
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead *.jsx let b:jsx_ext_found = 1
|
|
||||||
autocmd BufNewFile,BufRead *.jsx set filetype=javascript.jsx
|
|
||||||
autocmd BufNewFile,BufRead *.js
|
|
||||||
\ if <SID>EnableJSX() | set filetype=javascript.jsx | endif
|
|
||||||
|
|
||||||
endif
|
|
||||||
@@ -9,13 +9,6 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
|||||||
"
|
"
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
" Do nothing if we don't find the @jsx pragma (and we care).
|
|
||||||
exec 'source '.fnameescape(expand('<sfile>:p:h:h').'/jsx-config.vim')
|
|
||||||
if g:jsx_pragma_required && !b:jsx_pragma_found | finish | endif
|
|
||||||
|
|
||||||
" Do nothing if we don't have the .jsx extension (and we care).
|
|
||||||
if g:jsx_ext_required && !exists('b:jsx_ext_found') | finish | endif
|
|
||||||
|
|
||||||
" Prologue; load in XML indentation.
|
" Prologue; load in XML indentation.
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
let s:did_indent=b:did_indent
|
let s:did_indent=b:did_indent
|
||||||
|
|||||||
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
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Vimscript file
|
|
||||||
"
|
|
||||||
" Set up a bunch of configuration variables.
|
|
||||||
"
|
|
||||||
" Also check (if desired) whether or not the @jsx pragma is correctly included
|
|
||||||
" in '%'. Set the result in b:jsx_pragma_found.
|
|
||||||
"
|
|
||||||
" Language: JSX (JavaScript)
|
|
||||||
" Maintainer: Max Wang <mxawng@gmail.com>
|
|
||||||
"
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
" Only check once.
|
|
||||||
if exists('b:jsx_pragma_found')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Whether the .jsx extension is required to enable JSX syntax/indent.
|
|
||||||
if !exists('g:jsx_ext_required')
|
|
||||||
let g:jsx_ext_required = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Whether the @jsx pragma is required to enable JSX syntax/indent.
|
|
||||||
if !exists('g:jsx_pragma_required')
|
|
||||||
let g:jsx_pragma_required = 0
|
|
||||||
endif
|
|
||||||
if !g:jsx_pragma_required | finish | endif
|
|
||||||
|
|
||||||
" Look for the @jsx pragma. It must be included in a docblock comment before
|
|
||||||
" anything else in the file (except whitespace).
|
|
||||||
let s:jsx_pragma_pattern = '\%^\_s*\/\*\*\%(\_.\%(\*\/\)\@!\)*@jsx\_.\{-}\*\/'
|
|
||||||
let b:jsx_pragma_found = search(s:jsx_pragma_pattern, 'npw')
|
|
||||||
|
|
||||||
endif
|
|
||||||
@@ -65,7 +65,7 @@ syn cluster cppSTLgroup contains=cppSTLfunction,cppSTLfunctional,cppSTLconst
|
|||||||
" -----------------------------------------------------------------------------
|
" -----------------------------------------------------------------------------
|
||||||
" 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
|
||||||
@@ -1324,6 +1324,31 @@ if !exists("cpp_no_cpp14")
|
|||||||
"dynarray
|
"dynarray
|
||||||
syntax keyword cppSTLtype 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
|
"thread
|
||||||
syntax keyword cppSTLtype shared_mutex
|
syntax keyword cppSTLtype shared_mutex
|
||||||
syntax keyword cppSTLtype shared_lock
|
syntax keyword cppSTLtype shared_lock
|
||||||
@@ -1362,7 +1387,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
|||||||
HiLink cppSTLenum Typedef
|
HiLink cppSTLenum Typedef
|
||||||
HiLink cppSTLios Function
|
HiLink cppSTLios Function
|
||||||
HiLink cppSTLcast Statement " be consistent with official syntax
|
HiLink cppSTLcast Statement " be consistent with official syntax
|
||||||
HiLink cppRawString String
|
HiLink cppRawString String
|
||||||
HiLink cppRawDelimiter Delimiter
|
HiLink cppRawDelimiter Delimiter
|
||||||
delcommand HiLink
|
delcommand HiLink
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -11,13 +11,6 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsx') == -1
|
|||||||
"
|
"
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
" Do nothing if we don't find the @jsx pragma (and we care).
|
|
||||||
exec 'source '.fnameescape(expand('<sfile>:p:h:h').'/jsx-config.vim')
|
|
||||||
if g:jsx_pragma_required && !b:jsx_pragma_found | finish | endif
|
|
||||||
|
|
||||||
" Do nothing if we don't have the .jsx extension (and we care).
|
|
||||||
if g:jsx_ext_required && !exists('b:jsx_ext_found') | finish | endif
|
|
||||||
|
|
||||||
" Prologue; load in XML syntax.
|
" Prologue; load in XML syntax.
|
||||||
if exists('b:current_syntax')
|
if exists('b:current_syntax')
|
||||||
let s:current_syntax=b:current_syntax
|
let s:current_syntax=b:current_syntax
|
||||||
@@ -28,9 +21,24 @@ if exists('s:current_syntax')
|
|||||||
let b:current_syntax=s:current_syntax
|
let b:current_syntax=s:current_syntax
|
||||||
endif
|
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.
|
" 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
|
syn region jsxRegion contains=@XMLSyntax,jsxRegion,jsBlock,javascriptBlock
|
||||||
\ start=+<\@<!<\z([a-zA-Z][a-zA-Z0-9:\-.]*\)+
|
\ start=+\%(<\|\w\)\@<!<\z([a-zA-Z][a-zA-Z0-9:\-.]*\)+
|
||||||
\ skip=+<!--\_.\{-}-->+
|
\ skip=+<!--\_.\{-}-->+
|
||||||
\ end=+</\z1\_\s\{-}>+
|
\ end=+</\z1\_\s\{-}>+
|
||||||
\ end=+/>+
|
\ end=+/>+
|
||||||
@@ -45,7 +53,6 @@ syn region xmlString contained start=+{+ end=++ contains=jsBlock,javascriptBlock
|
|||||||
syn cluster jsExpression add=jsxRegion
|
syn cluster jsExpression add=jsxRegion
|
||||||
|
|
||||||
" Allow jsxRegion to contain reserved words.
|
" Allow jsxRegion to contain reserved words.
|
||||||
" See: https://github.com/othree/yajs.vim
|
|
||||||
syn cluster javascriptNoReserved add=jsxRegion
|
syn cluster javascriptNoReserved add=jsxRegion
|
||||||
|
|
||||||
endif
|
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
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||||
|
|
||||||
if !exists('g:rust_conceal') || !has('conceal') || &enc != 'utf-8'
|
if !exists('g:rust_conceal') || g:rust_conceal == 0 || !has('conceal') || &enc != 'utf-8'
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" For those who don't want to see `::`...
|
" For those who don't want to see `::`...
|
||||||
if exists('g:rust_conceal_mod_path')
|
if exists('g:rust_conceal_mod_path') && g:rust_conceal_mod_path != 0
|
||||||
syn match rustNiceOperator "::" conceal cchar=ㆍ
|
syn match rustNiceOperator "::" conceal cchar=ㆍ
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ syn match rustNiceOperator "=>" contains=rustFatRightArrowHead,rustFatRightArrow
|
|||||||
syn match rustNiceOperator /\<\@!_\(_*\>\)\@=/ conceal cchar=′
|
syn match rustNiceOperator /\<\@!_\(_*\>\)\@=/ conceal cchar=′
|
||||||
|
|
||||||
" For those who don't want to see `pub`...
|
" For those who don't want to see `pub`...
|
||||||
if exists('g:rust_conceal_pub')
|
if exists('g:rust_conceal_pub') && g:rust_conceal_pub != 0
|
||||||
syn match rustPublicSigil contained "pu" conceal cchar=*
|
syn match rustPublicSigil contained "pu" conceal cchar=*
|
||||||
syn match rustPublicRest contained "b" conceal cchar=
|
syn match rustPublicRest contained "b" conceal cchar=
|
||||||
syn match rustNiceOperator "pub " contains=rustPublicSigil,rustPublicRest
|
syn match rustNiceOperator "pub " contains=rustPublicSigil,rustPublicRest
|
||||||
@@ -28,7 +28,7 @@ endif
|
|||||||
|
|
||||||
hi link rustNiceOperator Operator
|
hi link rustNiceOperator Operator
|
||||||
|
|
||||||
if !exists('g:rust_conceal_mod_path')
|
if !exists('g:rust_conceal_mod_path') && g:rust_conceal_mod_path != 0
|
||||||
hi! link Conceal Operator
|
hi! link Conceal Operator
|
||||||
endif
|
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
|
||||||
@@ -36,72 +36,74 @@ endfunction
|
|||||||
" Run {{{1
|
" Run {{{1
|
||||||
|
|
||||||
function! rust#Run(bang, args)
|
function! rust#Run(bang, args)
|
||||||
|
let args = s:ShellTokenize(a:args)
|
||||||
if a:bang
|
if a:bang
|
||||||
let idx = index(a:args, '--')
|
let idx = index(l:args, '--')
|
||||||
if idx != -1
|
if idx != -1
|
||||||
let rustc_args = idx == 0 ? [] : a:args[:idx-1]
|
let rustc_args = idx == 0 ? [] : l:args[:idx-1]
|
||||||
let args = a:args[idx+1:]
|
let args = l:args[idx+1:]
|
||||||
else
|
else
|
||||||
let rustc_args = a:args
|
let rustc_args = l:args
|
||||||
let args = []
|
let args = []
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let rustc_args = []
|
let rustc_args = []
|
||||||
let args = a:args
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:rust_last_rustc_args = rustc_args
|
let b:rust_last_rustc_args = l:rustc_args
|
||||||
let b:rust_last_args = args
|
let b:rust_last_args = l:args
|
||||||
|
|
||||||
call s:WithPath(function("s:Run"), rustc_args, args)
|
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:Run(path, rustc_args, args)
|
function! s:Run(dict, rustc_args, args)
|
||||||
try
|
let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
|
||||||
let exepath = tempname()
|
if has('win32')
|
||||||
if has('win32')
|
let exepath .= '.exe'
|
||||||
let exepath .= '.exe'
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
let rustc_args = [a:path, '-o', exepath] + a:rustc_args
|
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 rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||||
|
|
||||||
let output = system(shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||||
if output != ''
|
let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
||||||
echohl WarningMsg
|
if output != ''
|
||||||
echo output
|
echohl WarningMsg
|
||||||
echohl None
|
echo output
|
||||||
endif
|
echohl None
|
||||||
if !v:shell_error
|
endif
|
||||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
if !v:shell_error
|
||||||
endif
|
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||||
finally
|
endif
|
||||||
if exists("exepath")
|
|
||||||
silent! call delete(exepath)
|
|
||||||
endif
|
|
||||||
endtry
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Expand {{{1
|
" Expand {{{1
|
||||||
|
|
||||||
function! rust#Expand(bang, args)
|
function! rust#Expand(bang, args)
|
||||||
if a:bang && !empty(a:args)
|
let args = s:ShellTokenize(a:args)
|
||||||
let pretty = a:args[0]
|
if a:bang && !empty(l:args)
|
||||||
let args = a:args[1:]
|
let pretty = remove(l:args, 0)
|
||||||
else
|
else
|
||||||
let pretty = "expanded"
|
let pretty = "expanded"
|
||||||
let args = a:args
|
|
||||||
endif
|
endif
|
||||||
call s:WithPath(function("s:Expand"), pretty, args)
|
call s:WithPath(function("s:Expand"), pretty, args)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:Expand(path, pretty, args)
|
function! s:Expand(dict, pretty, args)
|
||||||
try
|
try
|
||||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||||
|
|
||||||
let args = [a:path, '--pretty', a:pretty] + a:args
|
if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
|
||||||
let output = system(shellescape(rustc) . " " . join(map(args, "shellescape(v:val)")))
|
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
|
if v:shell_error
|
||||||
echohl WarningMsg
|
echohl WarningMsg
|
||||||
echo output
|
echo output
|
||||||
@@ -115,6 +117,20 @@ function! s:Expand(path, pretty, args)
|
|||||||
setl buftype=nofile
|
setl buftype=nofile
|
||||||
setl bufhidden=hide
|
setl bufhidden=hide
|
||||||
setl noswapfile
|
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
|
endif
|
||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
@@ -122,7 +138,7 @@ endfunction
|
|||||||
function! rust#CompleteExpand(lead, line, pos)
|
function! rust#CompleteExpand(lead, line, pos)
|
||||||
if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
|
if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
|
||||||
" first argument and it has a !
|
" first argument and it has a !
|
||||||
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph="]
|
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
|
||||||
if !empty(a:lead)
|
if !empty(a:lead)
|
||||||
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
||||||
endif
|
endif
|
||||||
@@ -135,72 +151,120 @@ endfunction
|
|||||||
" Emit {{{1
|
" Emit {{{1
|
||||||
|
|
||||||
function! rust#Emit(type, args)
|
function! rust#Emit(type, args)
|
||||||
call s:WithPath(function("s:Emit"), a:type, a:args)
|
let args = s:ShellTokenize(a:args)
|
||||||
|
call s:WithPath(function("s:Emit"), a:type, args)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:Emit(path, type, args)
|
function! s:Emit(dict, type, args)
|
||||||
try
|
try
|
||||||
|
let output_path = a:dict.tmpdir.'/output'
|
||||||
|
|
||||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||||
|
|
||||||
let args = [a:path, '--emit', a:type, '-o', '-'] + a:args
|
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||||
let output = system(shellescape(rustc) . " " . join(map(args, "shellescape(v:val)")))
|
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
|
||||||
if v:shell_error
|
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
|
echohl WarningMsg
|
||||||
echo output
|
echo output
|
||||||
echohl None
|
echohl None
|
||||||
else
|
endif
|
||||||
|
if !v:shell_error
|
||||||
new
|
new
|
||||||
silent put =output
|
exe 'silent keepalt read' fnameescape(output_path)
|
||||||
1
|
1
|
||||||
d
|
d
|
||||||
if a:type == "ir"
|
if a:type == "llvm-ir"
|
||||||
setl filetype=llvm
|
setl filetype=llvm
|
||||||
|
let extension = 'll'
|
||||||
elseif a:type == "asm"
|
elseif a:type == "asm"
|
||||||
setl filetype=asm
|
setl filetype=asm
|
||||||
|
let extension = 's'
|
||||||
endif
|
endif
|
||||||
setl buftype=nofile
|
setl buftype=nofile
|
||||||
setl bufhidden=hide
|
setl bufhidden=hide
|
||||||
setl noswapfile
|
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
|
endif
|
||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Utility functions {{{1
|
" 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, ...)
|
function! s:WithPath(func, ...)
|
||||||
|
let buf = bufnr('')
|
||||||
|
let saved = {}
|
||||||
|
let dict = {}
|
||||||
try
|
try
|
||||||
let save_write = &write
|
let saved.write = &write
|
||||||
set write
|
set write
|
||||||
let path = expand('%')
|
let dict.path = expand('%')
|
||||||
let pathisempty = empty(path)
|
let pathisempty = empty(dict.path)
|
||||||
if pathisempty || !save_write
|
|
||||||
" use a temporary file named 'unnamed.rs' inside a temporary
|
|
||||||
" directory. This produces better error messages
|
|
||||||
let tmpdir = tempname()
|
|
||||||
call mkdir(tmpdir)
|
|
||||||
|
|
||||||
let save_cwd = getcwd()
|
" Always create a tmpdir in case the wrapped command wants it
|
||||||
silent exe 'lcd' fnameescape(tmpdir)
|
let dict.tmpdir = tempname()
|
||||||
|
call mkdir(dict.tmpdir)
|
||||||
|
|
||||||
let path = 'unnamed.rs'
|
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 save_mod = &mod
|
let saved.mod = &mod
|
||||||
set nomod
|
set nomod
|
||||||
|
|
||||||
silent exe 'keepalt write! ' . fnameescape(path)
|
silent exe 'keepalt write! ' . fnameescape(dict.path)
|
||||||
if pathisempty
|
if pathisempty
|
||||||
silent keepalt 0file
|
silent keepalt 0file
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
let dict.istemp = 0
|
||||||
update
|
update
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call call(a:func, [path] + a:000)
|
call call(a:func, [dict] + a:000)
|
||||||
finally
|
finally
|
||||||
if exists("save_mod") | let &mod = save_mod | endif
|
if bufexists(buf)
|
||||||
if exists("save_write") | let &write = save_write | endif
|
for [opt, value] in items(saved)
|
||||||
if exists("save_cwd") | silent exe 'lcd' fnameescape(save_cwd) | endif
|
silent call setbufvar(buf, '&'.opt, value)
|
||||||
if exists("tmpdir") | silent call s:RmDir(tmpdir) | endif
|
unlet value " avoid variable type mismatches
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
|
||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -210,6 +274,71 @@ function! rust#AppendCmdLine(text)
|
|||||||
return cmd
|
return cmd
|
||||||
endfunction
|
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)
|
function! s:RmDir(path)
|
||||||
" sanity check; make sure it's not empty, /, or $HOME
|
" sanity check; make sure it's not empty, /, or $HOME
|
||||||
if empty(a:path)
|
if empty(a:path)
|
||||||
@@ -222,6 +351,66 @@ function! s:RmDir(path)
|
|||||||
silent exe "!rm -rf " . shellescape(a:path)
|
silent exe "!rm -rf " . shellescape(a:path)
|
||||||
endfunction
|
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
|
" }}}1
|
||||||
|
|
||||||
" vim: set noet sw=4 ts=4:
|
" vim: set noet sw=4 ts=4:
|
||||||
|
|||||||
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
|
||||||
39
build
39
build
@@ -3,7 +3,7 @@
|
|||||||
set -E
|
set -E
|
||||||
|
|
||||||
DIRS="syntax indent compiler autoload ftplugin ftdetect after/syntax after/indent after/ftplugin after/ftdetect"
|
DIRS="syntax indent compiler autoload ftplugin ftdetect after/syntax after/indent after/ftplugin after/ftdetect"
|
||||||
DIRS_BASIC="syntax indent ftdetect after/syntax after/indent after/ftdetect"
|
DIRS_BASIC="syntax compiler indent ftdetect after/syntax after/indent after/ftdetect"
|
||||||
DIRS_ALL="syntax indent compiler autoload ftplugin ftdetect after"
|
DIRS_ALL="syntax indent compiler autoload ftplugin ftdetect after"
|
||||||
|
|
||||||
OUTPUT=""
|
OUTPUT=""
|
||||||
@@ -96,16 +96,19 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
PACKS="
|
PACKS="
|
||||||
|
ansible:pearofducks/ansible-vim
|
||||||
arduino:sudar/vim-arduino-syntax
|
arduino:sudar/vim-arduino-syntax
|
||||||
blade:xsbeats/vim-blade
|
blade:jwalton512/vim-blade
|
||||||
c++11:octol/vim-cpp-enhanced-highlight
|
c++11:octol/vim-cpp-enhanced-highlight
|
||||||
c/c++:vim-jp/cpp-vim
|
c/c++:vim-jp/vim-cpp
|
||||||
|
cjsx:mtscout6/vim-cjsx
|
||||||
clojure:guns/vim-clojure-static
|
clojure:guns/vim-clojure-static
|
||||||
coffee-script:kchmck/vim-coffee-script
|
coffee-script:kchmck/vim-coffee-script
|
||||||
cjsx:mtscout6/vim-cjsx
|
|
||||||
css:JulesWang/css.vim
|
css:JulesWang/css.vim
|
||||||
cucumber:tpope/vim-cucumber
|
cucumber:tpope/vim-cucumber
|
||||||
|
dart:dart-lang/dart-vim-plugin
|
||||||
dockerfile:honza/dockerfile.vim
|
dockerfile:honza/dockerfile.vim
|
||||||
|
elm:lambdatoast/elm.vim
|
||||||
elixir:elixir-lang/vim-elixir
|
elixir:elixir-lang/vim-elixir
|
||||||
emberscript:heartsentwined/vim-ember-script
|
emberscript:heartsentwined/vim-ember-script
|
||||||
emblem:heartsentwined/vim-emblem
|
emblem:heartsentwined/vim-emblem
|
||||||
@@ -122,50 +125,54 @@ PACKS="
|
|||||||
jade:digitaltoad/vim-jade
|
jade:digitaltoad/vim-jade
|
||||||
jasmine:glanotte/vim-jasmine
|
jasmine:glanotte/vim-jasmine
|
||||||
javascript:sheerun/yajs.vim
|
javascript:sheerun/yajs.vim
|
||||||
julia:dcjones/julia-minimalist-vim
|
jinja:Glench/Vim-Jinja2-Syntax
|
||||||
json:sheerun/vim-json
|
json:sheerun/vim-json
|
||||||
jst:briancollins/vim-jst
|
jst:briancollins/vim-jst
|
||||||
jsx:mxw/vim-jsx:_ALL
|
jsx:mxw/vim-jsx:_ALL
|
||||||
|
julia:dcjones/julia-minimalist-vim
|
||||||
kotlin:udalov/kotlin-vim
|
kotlin:udalov/kotlin-vim
|
||||||
latex:LaTeX-Box-Team/LaTeX-Box
|
latex:LaTeX-Box-Team/LaTeX-Box
|
||||||
less:groenewege/vim-less
|
less:groenewege/vim-less
|
||||||
liquid:tpope/vim-liquid
|
liquid:tpope/vim-liquid
|
||||||
markdown:tpope/vim-markdown
|
markdown:tpope/vim-markdown
|
||||||
nginx:mutewinter/nginx.vim
|
nginx:nginx/nginx::/contrib/vim/
|
||||||
|
nix:spwhitt/vim-nix
|
||||||
|
objc:b4winckler/vim-objc
|
||||||
ocaml:jrk/vim-ocaml
|
ocaml:jrk/vim-ocaml
|
||||||
octave:vim-scripts/octave.vim--
|
octave:vim-scripts/octave.vim--
|
||||||
opencl:petRUShka/vim-opencl
|
opencl:petRUShka/vim-opencl
|
||||||
perl:vim-perl/vim-perl
|
perl:vim-perl/vim-perl
|
||||||
php:StanAngeloff/php.vim
|
php:StanAngeloff/php.vim
|
||||||
puppet:rodjek/vim-puppet
|
|
||||||
powershell:Persistent13/vim-ps1
|
powershell:Persistent13/vim-ps1
|
||||||
protobuf:uarun/vim-protobuf
|
protobuf:uarun/vim-protobuf
|
||||||
|
puppet:rodjek/vim-puppet
|
||||||
python:mitsuhiko/vim-python-combined
|
python:mitsuhiko/vim-python-combined
|
||||||
qml:peterhoeg/vim-qml
|
qml:peterhoeg/vim-qml
|
||||||
r-lang:vim-scripts/R.vim
|
|
||||||
ragel:jneen/ragel.vim
|
ragel:jneen/ragel.vim
|
||||||
|
r-lang:vim-scripts/R.vim
|
||||||
rspec:sheerun/rspec.vim
|
rspec:sheerun/rspec.vim
|
||||||
ruby:vim-ruby/vim-ruby
|
ruby:vim-ruby/vim-ruby
|
||||||
rust:wting/rust.vim
|
rust:rust-lang/rust.vim
|
||||||
sbt:derekwyatt/vim-sbt
|
sbt:derekwyatt/vim-sbt
|
||||||
scala:derekwyatt/vim-scala
|
scala:derekwyatt/vim-scala
|
||||||
slim:slim-template/vim-slim
|
slim:slim-template/vim-slim
|
||||||
solidity:ethereum/vim-solidity
|
solidity:ethereum/vim-solidity
|
||||||
stylus:wavded/vim-stylus
|
stylus:wavded/vim-stylus
|
||||||
|
swift:keith/swift.vim
|
||||||
systemd:kurayama/systemd-vim-syntax
|
systemd:kurayama/systemd-vim-syntax
|
||||||
swift:toyamarinyon/vim-swift
|
|
||||||
textile:timcharper/textile.vim
|
textile:timcharper/textile.vim
|
||||||
tmux:tejr/vim-tmux
|
|
||||||
tomdoc:duwanis/tomdoc.vim
|
|
||||||
typescript:leafgarland/typescript-vim
|
|
||||||
vbnet:vim-scripts/vbnet.vim
|
|
||||||
thrift:solarnz/thrift.vim
|
thrift:solarnz/thrift.vim
|
||||||
|
tmux:tejr/vim-tmux
|
||||||
|
tomdoc:wellbredgrapefruit/tomdoc.vim
|
||||||
toml:cespare/vim-toml
|
toml:cespare/vim-toml
|
||||||
twig:beyondwords/vim-twig
|
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
|
xls:vim-scripts/XSLT-syntax
|
||||||
yard:sheerun/vim-yardoc
|
yard:sheerun/vim-yardoc
|
||||||
vala:tkztmk/vim-vala
|
|
||||||
vm:lepture/vim-velocity
|
|
||||||
"
|
"
|
||||||
|
|
||||||
rm -rf tmp
|
rm -rf tmp
|
||||||
|
|||||||
@@ -16,9 +16,15 @@ 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
|
||||||
|
|||||||
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
|
||||||
@@ -24,9 +24,10 @@ 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
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ if exists(":CompilerSet") != 2
|
|||||||
command -nargs=* CompilerSet setlocal <args>
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent == 1
|
if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0
|
||||||
CompilerSet makeprg=rustc
|
CompilerSet makeprg=rustc
|
||||||
else
|
else
|
||||||
CompilerSet makeprg=rustc\ \%
|
CompilerSet makeprg=rustc\ \%
|
||||||
|
|||||||
@@ -1,3 +1,18 @@
|
|||||||
|
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
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'arduino') == -1
|
||||||
|
|
||||||
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
|
||||||
@@ -34,6 +49,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -
|
|||||||
|
|
||||||
autocmd BufNewFile,BufReadPost *.feature,*.story set filetype=cucumber
|
autocmd BufNewFile,BufReadPost *.feature,*.story set filetype=cucumber
|
||||||
endif
|
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
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dockerfile') == -1
|
||||||
|
|
||||||
au BufNewFile,BufRead Dockerfile set filetype=dockerfile
|
au BufNewFile,BufRead Dockerfile set filetype=dockerfile
|
||||||
@@ -54,6 +73,10 @@ function! s:DetectElixir()
|
|||||||
endfunction
|
endfunction
|
||||||
autocmd BufNewFile,BufRead * call s:DetectElixir()
|
autocmd BufNewFile,BufRead * call s:DetectElixir()
|
||||||
endif
|
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
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'emberscript') == -1
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead *.em set filetype=ember-script
|
autocmd BufNewFile,BufRead *.em set filetype=ember-script
|
||||||
@@ -134,6 +157,46 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jasmine') == -1
|
|||||||
|
|
||||||
autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript syntax=jasmine
|
autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript syntax=jasmine
|
||||||
endif
|
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
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'json') == -1
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead *.json set filetype=json
|
autocmd BufNewFile,BufRead *.json set filetype=json
|
||||||
@@ -201,11 +264,18 @@ endif
|
|||||||
endif
|
endif
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nginx') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nginx') == -1
|
||||||
|
|
||||||
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
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, 'nix') == -1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.nix setfiletype nix
|
||||||
endif
|
endif
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'opencl') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'opencl') == -1
|
||||||
|
|
||||||
au BufRead,BufNewFile *.cl set filetype=opencl
|
au! BufRead,BufNewFile *.cl set filetype=opencl
|
||||||
endif
|
endif
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1
|
||||||
|
|
||||||
@@ -327,7 +397,17 @@ autocmd BufNewFile,BufReadPost *.stylus set filetype=stylus
|
|||||||
endif
|
endif
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead *.swift set filetype=swift
|
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
|
endif
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'systemd') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'systemd') == -1
|
||||||
|
|
||||||
@@ -372,6 +452,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
|
|||||||
autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
||||||
au BufRead,BufNewFile *.vala,*.vapi setfiletype vala
|
au BufRead,BufNewFile *.vala,*.vapi setfiletype vala
|
||||||
endif
|
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
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vm') == -1
|
||||||
|
|
||||||
au BufRead,BufNewFile *.vm set ft=velocity syntax=velocity
|
au BufRead,BufNewFile *.vm set ft=velocity syntax=velocity
|
||||||
|
|||||||
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
|
||||||
31
ftplugin/dart.vim
Normal file
31
ftplugin/dart.vim
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
|
||||||
|
|
||||||
|
if exists('b:did_ftplugin')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
" Enable automatic indentation (2 spaces) if variable g:dart_style_guide is set
|
||||||
|
if exists('g:dart_style_guide')
|
||||||
|
setlocal expandtab
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal softtabstop=2
|
||||||
|
|
||||||
|
setlocal formatoptions-=t
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Set 'comments' to format dashed lists in comments.
|
||||||
|
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||||
|
|
||||||
|
setlocal commentstring=//%s
|
||||||
|
let s:win_sep = (has('win32') || has('win64')) ? '/' : ''
|
||||||
|
let &l:errorformat =
|
||||||
|
\ join([
|
||||||
|
\ ' %#''file://' . s:win_sep . '%f'': %s: line %l pos %c:%m',
|
||||||
|
\ '%m'
|
||||||
|
\ ], ',')
|
||||||
|
|
||||||
|
|
||||||
|
let b:undo_ftplugin = 'setl et< fo< sw< sts< com< cms<'
|
||||||
|
|
||||||
|
endif
|
||||||
86
ftplugin/elm.vim
Normal file
86
ftplugin/elm.vim
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
|
||||||
|
|
||||||
|
" elm.vim - Plugin for the Elm programming language
|
||||||
|
" Maintainer: Alexander Noriega <http://lambdatoast.com/>
|
||||||
|
" Version: 0.4.3
|
||||||
|
|
||||||
|
" Plugin setup stuff
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
" Compilation
|
||||||
|
|
||||||
|
function! ElmMake(file)
|
||||||
|
let args = a:file
|
||||||
|
return elm#io#system("elm-make", args)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ElmMakeCurrentFile()
|
||||||
|
echo ElmMake(expand("%"))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ElmMakeMain()
|
||||||
|
echo ElmMake("Main.elm")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ElmMakeFile(file)
|
||||||
|
echo ElmMake(a:file)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" REPL
|
||||||
|
|
||||||
|
function! ElmRepl()
|
||||||
|
!elm-repl
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Evaluation
|
||||||
|
|
||||||
|
function! ElmEvalLine()
|
||||||
|
return ElmEval(getline("."))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ElmEvalSelection()
|
||||||
|
let savedReg = @z
|
||||||
|
normal! `<v`>"zy
|
||||||
|
let res = ElmEval(substitute(getreg("z"), "\n", "\\\n", "g"))
|
||||||
|
let @z = savedReg
|
||||||
|
normal! gv
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ElmEval(sourceCode)
|
||||||
|
let currentLine = a:sourceCode
|
||||||
|
let args = "echo '" . currentLine . "' | elm-repl"
|
||||||
|
let result = elm#io#system("echo", args)
|
||||||
|
let cleanResult = "-- " . join(s:Filtered(function("s:IsUsefulReplOutput"), split(result, "\n")), "")
|
||||||
|
put =cleanResult
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsUsefulReplOutput(str)
|
||||||
|
return a:str !~ "^Elm REPL" && a:str !~ "Type :help" && a:str !~ ">\\s*$"
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" List processing
|
||||||
|
|
||||||
|
function! s:Filtered(fn, l)
|
||||||
|
let new_list = deepcopy(a:l)
|
||||||
|
call filter(new_list, string(a:fn) . '(v:val)')
|
||||||
|
return new_list
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command -buffer ElmEvalLine call ElmEvalLine()
|
||||||
|
command -buffer ElmEvalSelection call ElmEvalSelection()
|
||||||
|
command -buffer ElmMakeMain call ElmMakeMain()
|
||||||
|
command -buffer -nargs=1 ElmMakeFile call ElmMakeFile <args>
|
||||||
|
command -buffer ElmMakeCurrentFile call ElmMakeCurrentFile()
|
||||||
|
command -buffer ElmRepl call ElmRepl()
|
||||||
|
|
||||||
|
" Define comment convention
|
||||||
|
|
||||||
|
setlocal comments=:--
|
||||||
|
setlocal commentstring=--%s
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -3,6 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
|||||||
" Vim filetype plugin
|
" Vim filetype plugin
|
||||||
" Language: generic git output
|
" Language: generic git output
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if (exists("b:did_ftplugin"))
|
if (exists("b:did_ftplugin"))
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
|||||||
" Vim filetype plugin
|
" Vim filetype plugin
|
||||||
" Language: git commit file
|
" Language: git commit file
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2012 April 7
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if (exists("b:did_ftplugin"))
|
if (exists("b:did_ftplugin"))
|
||||||
|
|||||||
17
ftplugin/nix.vim
Normal file
17
ftplugin/nix.vim
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nix') == -1
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_ftplugin=1
|
||||||
|
|
||||||
|
setlocal comments=
|
||||||
|
setlocal commentstring=#\ %s
|
||||||
|
|
||||||
|
" Nixpkgs indent settings
|
||||||
|
setlocal tabstop=2
|
||||||
|
setlocal softtabstop=2
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal expandtab
|
||||||
|
|
||||||
|
endif
|
||||||
10
ftplugin/objc.vim
Normal file
10
ftplugin/objc.vim
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'objc') == -1
|
||||||
|
|
||||||
|
" Use C++ style comment strings with commentary.vim
|
||||||
|
setl commentstring=//%s
|
||||||
|
|
||||||
|
" Search for include files inside frameworks (used for gf etc.)
|
||||||
|
setl includeexpr=substitute(v:fname,'\\([^/]\\+\\)/\\(.\\+\\)','/System/Library/Frameworks/\\1.framework/Headers/\\2','')
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -46,7 +46,7 @@ endif
|
|||||||
setlocal formatoptions-=t formatoptions+=croql
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
|
setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
|
||||||
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
|
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'\%(\.rb\)\=$','.rb','')
|
||||||
setlocal suffixesadd=.rb
|
setlocal suffixesadd=.rb
|
||||||
|
|
||||||
if exists("&ofu") && has("ruby")
|
if exists("&ofu") && has("ruby")
|
||||||
@@ -361,7 +361,7 @@ function! RubyCursorFile() abort
|
|||||||
endtry
|
endtry
|
||||||
let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
|
let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
|
||||||
let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
|
let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
|
||||||
let ext = getline('.') =~# '^\s*\%(require\|autoload\)\>' ? '.rb' : ''
|
let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
|
||||||
if s:synname() ==# 'rubyConstant'
|
if s:synname() ==# 'rubyConstant'
|
||||||
let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
|
let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
|
||||||
let cfile = substitute(cfile,'::','/','g')
|
let cfile = substitute(cfile,'::','/','g')
|
||||||
@@ -369,7 +369,7 @@ function! RubyCursorFile() abort
|
|||||||
let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
|
let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
|
||||||
return tolower(cfile) . '.rb'
|
return tolower(cfile) . '.rb'
|
||||||
elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
||||||
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . '.rb'
|
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
|
||||||
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
||||||
let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
|
let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
|
||||||
let cfile = expand('%:p:h') . target . ext
|
let cfile = expand('%:p:h') . target . ext
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
|||||||
" Description: Vim syntax file for Rust
|
" Description: Vim syntax file for Rust
|
||||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||||
" Maintainer: Kevin Ballard <kevin@sb.org>
|
" Maintainer: Kevin Ballard <kevin@sb.org>
|
||||||
" Last Change: Jul 07, 2014
|
" Last Change: January 29, 2015
|
||||||
|
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
finish
|
finish
|
||||||
@@ -20,7 +20,7 @@ set cpo&vim
|
|||||||
" comments, so we'll use that as our default, but make it easy to switch.
|
" comments, so we'll use that as our default, but make it easy to switch.
|
||||||
" This does not affect indentation at all (I tested it with and without
|
" This does not affect indentation at all (I tested it with and without
|
||||||
" leader), merely whether a leader is inserted by default or not.
|
" leader), merely whether a leader is inserted by default or not.
|
||||||
if exists("g:rust_bang_comment_leader") && g:rust_bang_comment_leader == 1
|
if exists("g:rust_bang_comment_leader") && g:rust_bang_comment_leader != 0
|
||||||
" Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why,
|
" Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why,
|
||||||
" but without it, */ gets indented one space even if there were no
|
" but without it, */ gets indented one space even if there were no
|
||||||
" leaders. I'm fairly sure that's a Vim bug.
|
" leaders. I'm fairly sure that's a Vim bug.
|
||||||
@@ -37,7 +37,7 @@ silent! setlocal formatoptions+=j
|
|||||||
" otherwise it's better than nothing.
|
" otherwise it's better than nothing.
|
||||||
setlocal smartindent nocindent
|
setlocal smartindent nocindent
|
||||||
|
|
||||||
if !exists("g:rust_recommended_style") || g:rust_recommended_style == 1
|
if !exists("g:rust_recommended_style") || g:rust_recommended_style != 0
|
||||||
setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
|
setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
|
||||||
setlocal textwidth=99
|
setlocal textwidth=99
|
||||||
endif
|
endif
|
||||||
@@ -69,7 +69,7 @@ if has("folding") && exists('g:rust_fold') && g:rust_fold != 0
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if has('conceal') && exists('g:rust_conceal')
|
if has('conceal') && exists('g:rust_conceal') && g:rust_conceal != 0
|
||||||
let b:rust_set_conceallevel=1
|
let b:rust_set_conceallevel=1
|
||||||
setlocal conceallevel=2
|
setlocal conceallevel=2
|
||||||
endif
|
endif
|
||||||
@@ -84,19 +84,35 @@ xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR>
|
|||||||
onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR>
|
onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR>
|
||||||
onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR>
|
onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR>
|
||||||
|
|
||||||
|
" %-matching. <:> is handy for generics.
|
||||||
|
set matchpairs+=<:>
|
||||||
|
" There are two minor issues with it; (a) comparison operators in expressions,
|
||||||
|
" where a less-than may match a greater-than later on—this is deemed a trivial
|
||||||
|
" issue—and (b) `Fn() -> X` syntax. This latter issue is irremediable from the
|
||||||
|
" highlighting perspective (built into Vim), but the actual % functionality
|
||||||
|
" can be fixed by this use of matchit.vim.
|
||||||
|
let b:match_skip = 's:comment\|string\|rustArrow'
|
||||||
|
source $VIMRUNTIME/macros/matchit.vim
|
||||||
|
|
||||||
" Commands {{{1
|
" Commands {{{1
|
||||||
|
|
||||||
" See |:RustRun| for docs
|
" See |:RustRun| for docs
|
||||||
command! -nargs=* -complete=file -bang -bar -buffer RustRun call rust#Run(<bang>0, [<f-args>])
|
command! -nargs=* -complete=file -bang -buffer RustRun call rust#Run(<bang>0, <q-args>)
|
||||||
|
|
||||||
" See |:RustExpand| for docs
|
" See |:RustExpand| for docs
|
||||||
command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -bar -buffer RustExpand call rust#Expand(<bang>0, [<f-args>])
|
command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -buffer RustExpand call rust#Expand(<bang>0, <q-args>)
|
||||||
|
|
||||||
" See |:RustEmitIr| for docs
|
" See |:RustEmitIr| for docs
|
||||||
command! -nargs=* -bar -buffer RustEmitIr call rust#Emit("ir", [<f-args>])
|
command! -nargs=* -buffer RustEmitIr call rust#Emit("llvm-ir", <q-args>)
|
||||||
|
|
||||||
" See |:RustEmitAsm| for docs
|
" See |:RustEmitAsm| for docs
|
||||||
command! -nargs=* -bar -buffer RustEmitAsm call rust#Emit("asm", [<f-args>])
|
command! -nargs=* -buffer RustEmitAsm call rust#Emit("asm", <q-args>)
|
||||||
|
|
||||||
|
" See |:RustPlay| for docs
|
||||||
|
command! -range=% RustPlay :call rust#Play(<count>, <line1>, <line2>, <f-args>)
|
||||||
|
|
||||||
|
" See |:RustFmt| for docs
|
||||||
|
command! -buffer RustFmt call rustfmt#Format()
|
||||||
|
|
||||||
" Mappings {{{1
|
" Mappings {{{1
|
||||||
|
|
||||||
@@ -134,6 +150,7 @@ let b:undo_ftplugin = "
|
|||||||
\|delcommand RustExpand
|
\|delcommand RustExpand
|
||||||
\|delcommand RustEmitIr
|
\|delcommand RustEmitIr
|
||||||
\|delcommand RustEmitAsm
|
\|delcommand RustEmitAsm
|
||||||
|
\|delcommand RustPlay
|
||||||
\|nunmap <buffer> <D-r>
|
\|nunmap <buffer> <D-r>
|
||||||
\|nunmap <buffer> <D-R>
|
\|nunmap <buffer> <D-R>
|
||||||
\|nunmap <buffer> [[
|
\|nunmap <buffer> [[
|
||||||
@@ -142,6 +159,8 @@ let b:undo_ftplugin = "
|
|||||||
\|xunmap <buffer> ]]
|
\|xunmap <buffer> ]]
|
||||||
\|ounmap <buffer> [[
|
\|ounmap <buffer> [[
|
||||||
\|ounmap <buffer> ]]
|
\|ounmap <buffer> ]]
|
||||||
|
\|set matchpairs-=<:>
|
||||||
|
\|unlet b:match_skip
|
||||||
\"
|
\"
|
||||||
|
|
||||||
" }}}1
|
" }}}1
|
||||||
|
|||||||
8
ftplugin/swift.vim
Normal file
8
ftplugin/swift.vim
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
||||||
|
|
||||||
|
setlocal commentstring=//\ %s
|
||||||
|
" @-@ adds the literal @ to iskeyword for @IBAction and similar
|
||||||
|
setlocal iskeyword+=@-@,#
|
||||||
|
setlocal completefunc=syntaxcomplete#Complete
|
||||||
|
|
||||||
|
endif
|
||||||
58
indent/ansible.vim
Normal file
58
indent/ansible.vim
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
setlocal indentexpr=GetAnsibleIndent(v:lnum)
|
||||||
|
setlocal indentkeys=!^F,o,O,0#,0},0],<:>,-,*<Return>
|
||||||
|
setlocal nosmartindent
|
||||||
|
setlocal expandtab
|
||||||
|
setlocal softtabstop=2
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal commentstring=#%s
|
||||||
|
setlocal formatoptions=cl
|
||||||
|
" c -> wrap long comments, including #
|
||||||
|
" l -> do not wrap long lines
|
||||||
|
|
||||||
|
let s:comment = '\v^\s*#' " # comment
|
||||||
|
let s:array_entry = '\v^\s*-\s' " - foo
|
||||||
|
let s:named_module_entry = '\v^\s*-\s*(name|hosts):\s*\S' " - name: 'do stuff'
|
||||||
|
let s:dictionary_entry = '\v^\s*[^:-]+:\s*$' " with_items:
|
||||||
|
let s:key_value = '\v^\s*[^:-]+:\s*\S' " apt: name=package
|
||||||
|
let s:scalar_value = '\v:\s*[>|\|]\s*$' " shell: >
|
||||||
|
|
||||||
|
if exists('*GetAnsibleIndent')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function GetAnsibleIndent(lnum)
|
||||||
|
if a:lnum == 1 || !prevnonblank(a:lnum-1)
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
let prevlnum = prevnonblank(a:lnum - 1)
|
||||||
|
let maintain = indent(prevlnum)
|
||||||
|
let increase = maintain + &sw
|
||||||
|
|
||||||
|
let line = getline(prevlnum)
|
||||||
|
if line =~ s:array_entry
|
||||||
|
if line =~ s:named_module_entry
|
||||||
|
return increase
|
||||||
|
else
|
||||||
|
return maintain
|
||||||
|
endif
|
||||||
|
elseif line =~ s:dictionary_entry
|
||||||
|
return increase
|
||||||
|
elseif line =~ s:key_value
|
||||||
|
if line =~ s:scalar_value
|
||||||
|
return increase
|
||||||
|
else
|
||||||
|
return maintain
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
return maintain
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
|
||||||
|
endif
|
||||||
13
indent/dart.vim
Normal file
13
indent/dart.vim
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
|
||||||
|
|
||||||
|
if exists('b:did_indent')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal cindent
|
||||||
|
setlocal cinoptions+=j1,J1
|
||||||
|
|
||||||
|
let b:undo_indent = 'setl cin< cino<'
|
||||||
|
|
||||||
|
endif
|
||||||
129
indent/elm.vim
Normal file
129
indent/elm.vim
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
|
||||||
|
|
||||||
|
" Vim indent file
|
||||||
|
" Language: Haskell
|
||||||
|
" Maintainer: lilydjwg <lilydjwg@gmail.com>
|
||||||
|
" Version: 1.0
|
||||||
|
" References: http://en.wikibooks.org/wiki/Haskell/Indentation
|
||||||
|
" http://book.realworldhaskell.org/read/
|
||||||
|
" See Also: The Align plugin http://www.vim.org/scripts/script.php?script_id=294
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=HaskellIndent()
|
||||||
|
for i in split('0{,:,0#,e', ',')
|
||||||
|
exec "setlocal indentkeys-=" . i
|
||||||
|
endfor
|
||||||
|
setlocal indentkeys+=0=else,0=in,0=where,0),0<bar>
|
||||||
|
setlocal tabstop=8
|
||||||
|
setlocal expandtab
|
||||||
|
|
||||||
|
if !exists('g:Haskell_no_mapping')
|
||||||
|
inoremap <silent> <BS> <C-R>=<SID>HaskellDedent(1)<CR>
|
||||||
|
inoremap <silent> <C-D> <C-R>=<SID>HaskellDedent(0)<CR>
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Only define the functions once.
|
||||||
|
if exists("*HaskellIndent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:align_map = {
|
||||||
|
\ 'in': '\<let\>',
|
||||||
|
\ '\<else\>': '\<then\>',
|
||||||
|
\ ',': '\v%(\s|\w|^)@<=[[{]%(\s|\w|"|$)@='
|
||||||
|
\ }
|
||||||
|
let s:indent_self = ['=']
|
||||||
|
let s:indent_next = ['let', 'in', 'where', 'do', 'if']
|
||||||
|
let s:indent_if_final = ['=', 'do', '->', 'of', 'where']
|
||||||
|
|
||||||
|
function HaskellIndent()
|
||||||
|
let lnum = v:lnum - 1
|
||||||
|
|
||||||
|
" Hit the start of the file, use zero indent.
|
||||||
|
if lnum == 0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let ind = indent(lnum)
|
||||||
|
let prevline = getline(lnum)
|
||||||
|
let curline = getline(v:lnum)
|
||||||
|
let curwords = split(curline)
|
||||||
|
if len(curwords) > 0
|
||||||
|
if has_key(s:align_map, curwords[0])
|
||||||
|
let word = s:align_map[curwords[0]]
|
||||||
|
let m = -1
|
||||||
|
let line = v:lnum
|
||||||
|
while m == -1
|
||||||
|
let line -= 1
|
||||||
|
if line <= 0
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
let m = match(getline(line), word)
|
||||||
|
endwhile
|
||||||
|
return m
|
||||||
|
elseif index(s:indent_self, curwords[0]) != -1
|
||||||
|
return ind + &sw
|
||||||
|
elseif curwords[0] == '|'
|
||||||
|
return match(prevline, '\v%(\s|\w|^)@<=[|=]%(\s|\w)@=')
|
||||||
|
elseif index([')', '}'], curwords[0]) != -1
|
||||||
|
return ind - &sw
|
||||||
|
elseif curwords[0] == 'where'
|
||||||
|
if prevline =~ '\v^\s+\|%(\s|\w)@='
|
||||||
|
return ind - 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let prevwords = split(prevline)
|
||||||
|
if len(prevwords) == 0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if prevwords[-1] == 'where' && prevwords[0] == 'module'
|
||||||
|
return 0
|
||||||
|
elseif index(s:indent_if_final, prevwords[-1]) != -1
|
||||||
|
return ind + &sw
|
||||||
|
elseif prevwords[-1] =~ '\v%(\s|\w|^)@<=[[{(]$'
|
||||||
|
return ind + &sw
|
||||||
|
else
|
||||||
|
for word in reverse(prevwords)
|
||||||
|
if index(s:indent_next, word) != -1
|
||||||
|
return match(prevline, '\<'.word.'\>') + len(word) + 1
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
|
||||||
|
if len(curwords) > 0 && curwords[0] == 'where'
|
||||||
|
return ind + &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ind
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:HaskellDedent(isbs)
|
||||||
|
if a:isbs && strpart(getline('.'), 0, col('.')-1) !~ '^\s\+$'
|
||||||
|
return "\<BS>"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let curind = indent('.')
|
||||||
|
let line = line('.') - 1
|
||||||
|
while curind > 0 && line > 0
|
||||||
|
let ind = indent(line)
|
||||||
|
if ind >= curind
|
||||||
|
let line -= 1
|
||||||
|
else
|
||||||
|
echomsg curind ind
|
||||||
|
call setline('.', repeat(' ', ind) .
|
||||||
|
\ substitute(getline('.'), '^\s\+', '', ''))
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return a:isbs ? "\<BS>" : ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: git config file
|
" Language: git config file
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2012 April 7
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
|
|||||||
104
indent/handlebars.vim
Normal file
104
indent/handlebars.vim
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'handlebars') == -1
|
||||||
|
|
||||||
|
" Mustache & Handlebars syntax
|
||||||
|
" Language: Mustache, Handlebars
|
||||||
|
" Maintainer: Juvenn Woo <machese@gmail.com>
|
||||||
|
" Screenshot: http://imgur.com/6F408
|
||||||
|
" Version: 2
|
||||||
|
" Last Change: Oct 10th 2015
|
||||||
|
" Remarks: based on eruby indent plugin by tpope
|
||||||
|
" References:
|
||||||
|
" [Mustache](http://github.com/defunkt/mustache)
|
||||||
|
" [Handlebars](https://github.com/wycats/handlebars.js)
|
||||||
|
" [ctemplate](http://code.google.com/p/google-ctemplate/)
|
||||||
|
" [ctemplate doc](http://google-ctemplate.googlecode.com/svn/trunk/doc/howto.html)
|
||||||
|
" [et](http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html)
|
||||||
|
|
||||||
|
if exists("b:did_indent_hbs")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
unlet! b:did_indent
|
||||||
|
setlocal indentexpr=
|
||||||
|
|
||||||
|
runtime! indent/html.vim
|
||||||
|
unlet! b:did_indent
|
||||||
|
|
||||||
|
" Force HTML indent to not keep state.
|
||||||
|
let b:html_indent_usestate = 0
|
||||||
|
|
||||||
|
if &l:indentexpr == ''
|
||||||
|
if &l:cindent
|
||||||
|
let &l:indentexpr = 'cindent(v:lnum)'
|
||||||
|
else
|
||||||
|
let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let b:handlebars_subtype_indentexpr = &l:indentexpr
|
||||||
|
|
||||||
|
let b:did_indent = 1
|
||||||
|
let b:did_indent_hbs = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=GetHandlebarsIndent()
|
||||||
|
setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when
|
||||||
|
|
||||||
|
" Only define the function once.
|
||||||
|
if exists("*GetHandlebarsIndent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! GetHandlebarsIndent(...)
|
||||||
|
" The value of a single shift-width
|
||||||
|
if exists('*shiftwidth')
|
||||||
|
let sw = shiftwidth()
|
||||||
|
else
|
||||||
|
let sw = &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
if a:0 && a:1 == '.'
|
||||||
|
let v:lnum = line('.')
|
||||||
|
elseif a:0 && a:1 =~ '^\d'
|
||||||
|
let v:lnum = a:1
|
||||||
|
endif
|
||||||
|
let vcol = col('.')
|
||||||
|
call cursor(v:lnum,1)
|
||||||
|
call cursor(v:lnum,vcol)
|
||||||
|
exe "let ind = ".b:handlebars_subtype_indentexpr
|
||||||
|
|
||||||
|
" Workaround for Andy Wokula's HTML indent. This should be removed after
|
||||||
|
" some time, since the newest version is fixed in a different way.
|
||||||
|
if b:handlebars_subtype_indentexpr =~# '^HtmlIndent('
|
||||||
|
\ && exists('b:indent')
|
||||||
|
\ && type(b:indent) == type({})
|
||||||
|
\ && has_key(b:indent, 'lnum')
|
||||||
|
" Force HTML indent to not keep state
|
||||||
|
let b:indent.lnum = -1
|
||||||
|
endif
|
||||||
|
let lnum = prevnonblank(v:lnum-1)
|
||||||
|
let line = getline(lnum)
|
||||||
|
let cline = getline(v:lnum)
|
||||||
|
|
||||||
|
" all indent rules only apply if the block opening/closing
|
||||||
|
" tag is on a separate line
|
||||||
|
|
||||||
|
" indent after block {{#block
|
||||||
|
if line =~# '\v\s*\{\{\#.*\s*'
|
||||||
|
let ind = ind + sw
|
||||||
|
endif
|
||||||
|
" unindent after block close {{/block}}
|
||||||
|
if cline =~# '\v^\s*\{\{\/\S*\}\}\s*'
|
||||||
|
let ind = ind - sw
|
||||||
|
endif
|
||||||
|
" unindent {{else}}
|
||||||
|
if cline =~# '\v^\s*\{\{else.*\}\}\s*$'
|
||||||
|
let ind = ind - sw
|
||||||
|
endif
|
||||||
|
" indent again after {{else}}
|
||||||
|
if line =~# '\v^\s*\{\{else.*\}\}\s*$'
|
||||||
|
let ind = ind + sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ind
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
16
indent/jinja.vim
Normal file
16
indent/jinja.vim
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jinja') == -1
|
||||||
|
|
||||||
|
" Vim indent file
|
||||||
|
" Language: Jinja HTML template
|
||||||
|
" Maintainer: Evan Hammer <evan@evanhammer.com>
|
||||||
|
" Last Change: 2013 Jan 26
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Use HTML formatting rules.
|
||||||
|
runtime! indent/html.vim
|
||||||
|
|
||||||
|
endif
|
||||||
15
indent/nginx.vim
Normal file
15
indent/nginx.vim
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nginx') == -1
|
||||||
|
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=
|
||||||
|
|
||||||
|
" cindent actually works for nginx' simple file structure
|
||||||
|
setlocal cindent
|
||||||
|
" Just make sure that the comments are not reset as defs would be.
|
||||||
|
setlocal cinkeys-=0#
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -123,6 +123,13 @@ function GetRustIndent(lnum)
|
|||||||
let prevlinenum = prevnonblank(prevlinenum - 1)
|
let prevlinenum = prevnonblank(prevlinenum - 1)
|
||||||
let prevline = s:get_line_trimmed(prevlinenum)
|
let prevline = s:get_line_trimmed(prevlinenum)
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
|
" Handle where clauses nicely: subsequent values should line up nicely.
|
||||||
|
if prevline[len(prevline) - 1] == ","
|
||||||
|
\ && prevline =~# '^\s*where\s'
|
||||||
|
return indent(prevlinenum) + 6
|
||||||
|
endif
|
||||||
|
|
||||||
if prevline[len(prevline) - 1] == ","
|
if prevline[len(prevline) - 1] == ","
|
||||||
\ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]'
|
\ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]'
|
||||||
\ && prevline !~ '^\s*fn\s'
|
\ && prevline !~ '^\s*fn\s'
|
||||||
|
|||||||
229
indent/swift.vim
229
indent/swift.vim
@@ -1,19 +1,230 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
||||||
|
|
||||||
" Language: Swift<https://developer.apple.com/swift/>
|
" File: swift.vim
|
||||||
" Maintainer: toyama satoshi <toyamarinyon@gmail.com>
|
" Author: Keith Smiley
|
||||||
" URL: http://github.com/toyamarinyon/vim-swift
|
" Description: The indent file for Swift
|
||||||
" License: GPL
|
" Last Modified: December 05, 2014
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let b:did_indent = 1
|
let b:did_indent = 1
|
||||||
|
|
||||||
" C indenting is built-in, thus this is very simple
|
let s:cpo_save = &cpo
|
||||||
setlocal cindent
|
set cpo&vim
|
||||||
|
|
||||||
let b:undo_indent = "setl cin<"
|
setlocal nosmartindent
|
||||||
|
setlocal indentkeys-=:
|
||||||
|
setlocal indentkeys-=e
|
||||||
|
setlocal indentkeys+=0]
|
||||||
|
setlocal indentexpr=SwiftIndent()
|
||||||
|
|
||||||
|
function! s:NumberOfMatches(char, string, index)
|
||||||
|
let instances = 0
|
||||||
|
let i = 0
|
||||||
|
while i < strlen(a:string)
|
||||||
|
if a:string[i] == a:char && !s:IsExcludedFromIndentAtPosition(a:index, i + 1)
|
||||||
|
let instances += 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return instances
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:SyntaxNameAtPosition(line, column)
|
||||||
|
return synIDattr(synID(a:line, a:column, 0), "name")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:SyntaxName()
|
||||||
|
return s:SyntaxNameAtPosition(line("."), col("."))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsExcludedFromIndentAtPosition(line, column)
|
||||||
|
let name = s:SyntaxNameAtPosition(a:line, a:column)
|
||||||
|
return name ==# "swiftComment" || name ==# "swiftString"
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsExcludedFromIndent()
|
||||||
|
return s:SyntaxName() ==# "swiftComment" || s:SyntaxName() ==# "swiftString"
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsCommentLine(lnum)
|
||||||
|
return synIDattr(synID(a:lnum,
|
||||||
|
\ match(getline(a:lnum), "\S") + 1, 0), "name")
|
||||||
|
\ ==# "swiftComment"
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! SwiftIndent(...)
|
||||||
|
let clnum = a:0 ? a:1 : v:lnum
|
||||||
|
|
||||||
|
let line = getline(clnum)
|
||||||
|
let previousNum = prevnonblank(clnum - 1)
|
||||||
|
while s:IsCommentLine(previousNum) != 0
|
||||||
|
let previousNum = prevnonblank(previousNum - 1)
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
let previous = getline(previousNum)
|
||||||
|
let cindent = cindent(clnum)
|
||||||
|
let previousIndent = indent(previousNum)
|
||||||
|
|
||||||
|
let numOpenParens = s:NumberOfMatches("(", previous, previousNum)
|
||||||
|
let numCloseParens = s:NumberOfMatches(")", previous, previousNum)
|
||||||
|
let numOpenBrackets = s:NumberOfMatches("{", previous, previousNum)
|
||||||
|
let numCloseBrackets = s:NumberOfMatches("}", previous, previousNum)
|
||||||
|
|
||||||
|
let currentOpenBrackets = s:NumberOfMatches("{", line, clnum)
|
||||||
|
let currentCloseBrackets = s:NumberOfMatches("}", line, clnum)
|
||||||
|
|
||||||
|
let numOpenSquare = s:NumberOfMatches("[", previous, previousNum)
|
||||||
|
let numCloseSquare = s:NumberOfMatches("]", previous, previousNum)
|
||||||
|
|
||||||
|
let currentCloseSquare = s:NumberOfMatches("]", line, clnum)
|
||||||
|
if numOpenSquare > numCloseSquare && currentCloseSquare < 1
|
||||||
|
return previousIndent + shiftwidth()
|
||||||
|
endif
|
||||||
|
|
||||||
|
if currentCloseSquare > 0 && line !~ '\v\[.*\]'
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(line("."), 1)
|
||||||
|
let openingSquare = searchpair("\\[", "", "\\]", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line("."), column)
|
||||||
|
|
||||||
|
if openingSquare == 0
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
return indent(openingSquare)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if s:IsExcludedFromIndent()
|
||||||
|
return previousIndent
|
||||||
|
endif
|
||||||
|
|
||||||
|
if line =~ ":$"
|
||||||
|
let switch = search("switch", "bWn")
|
||||||
|
return indent(switch)
|
||||||
|
elseif previous =~ ":$"
|
||||||
|
return previousIndent + shiftwidth()
|
||||||
|
endif
|
||||||
|
|
||||||
|
if numOpenParens == numCloseParens
|
||||||
|
if numOpenBrackets > numCloseBrackets
|
||||||
|
if currentCloseBrackets > currentOpenBrackets || line =~ "\\v^\\s*}"
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(line("."), 1)
|
||||||
|
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line("."), column)
|
||||||
|
if openingBracket == 0
|
||||||
|
return -1
|
||||||
|
else
|
||||||
|
return indent(openingBracket)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return previousIndent + shiftwidth()
|
||||||
|
elseif previous =~ "}.*{"
|
||||||
|
if line =~ "\\v^\\s*}"
|
||||||
|
return previousIndent
|
||||||
|
endif
|
||||||
|
|
||||||
|
return previousIndent + shiftwidth()
|
||||||
|
elseif line =~ "}.*{"
|
||||||
|
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
return indent(openingBracket)
|
||||||
|
elseif currentCloseBrackets > currentOpenBrackets
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(line("."), 1)
|
||||||
|
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line("."), column)
|
||||||
|
|
||||||
|
let bracketLine = getline(openingBracket)
|
||||||
|
|
||||||
|
let numOpenParensBracketLine = s:NumberOfMatches("(", bracketLine, openingBracket)
|
||||||
|
let numCloseParensBracketLine = s:NumberOfMatches(")", bracketLine, openingBracket)
|
||||||
|
if numCloseParensBracketLine > numOpenParensBracketLine
|
||||||
|
let line = line(".")
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(openingParen, column)
|
||||||
|
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line, column)
|
||||||
|
return indent(openingParen)
|
||||||
|
endif
|
||||||
|
return indent(openingBracket)
|
||||||
|
else
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if numCloseParens > 0
|
||||||
|
if currentOpenBrackets > 0 || currentCloseBrackets > 0
|
||||||
|
if currentOpenBrackets > 0
|
||||||
|
if numOpenBrackets > numCloseBrackets
|
||||||
|
return previousIndent + shiftwidth()
|
||||||
|
endif
|
||||||
|
|
||||||
|
if line =~ "}.*{"
|
||||||
|
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
return indent(openingBracket)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if numCloseParens > numOpenParens
|
||||||
|
let line = line(".")
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(line - 1, column)
|
||||||
|
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line, column)
|
||||||
|
return indent(openingParen)
|
||||||
|
endif
|
||||||
|
|
||||||
|
return previousIndent
|
||||||
|
endif
|
||||||
|
|
||||||
|
if currentCloseBrackets > 0
|
||||||
|
let openingBracket = searchpair("{", "", "}", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
return indent(openingBracket)
|
||||||
|
endif
|
||||||
|
|
||||||
|
return cindent
|
||||||
|
endif
|
||||||
|
|
||||||
|
if numCloseParens < numOpenParens
|
||||||
|
if numOpenBrackets > numCloseBrackets
|
||||||
|
return previousIndent + shiftwidth()
|
||||||
|
endif
|
||||||
|
|
||||||
|
let previousParen = match(previous, "(")
|
||||||
|
return previousParen + 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if numOpenBrackets > numCloseBrackets
|
||||||
|
let line = line(".")
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(previousNum, column)
|
||||||
|
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line, column)
|
||||||
|
return indent(openingParen) + shiftwidth()
|
||||||
|
endif
|
||||||
|
|
||||||
|
let line = line(".")
|
||||||
|
let column = col(".")
|
||||||
|
call cursor(previousNum, column)
|
||||||
|
let openingParen = searchpair("(", "", ")", "bWn", "s:IsExcludedFromIndent()")
|
||||||
|
call cursor(line, column)
|
||||||
|
|
||||||
|
return indent(openingParen)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if numOpenParens > 0
|
||||||
|
let previousParen = match(previous, "(")
|
||||||
|
return previousParen + 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
return cindent
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
90
syntax/ansible.vim
Normal file
90
syntax/ansible.vim
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Ansible YAML/Jinja templates
|
||||||
|
" Maintainer: Dave Honneffer <pearofducks@gmail.com>
|
||||||
|
" Last Change: 2015.09.06
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("main_syntax")
|
||||||
|
let main_syntax = 'yaml'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = ''
|
||||||
|
unlet b:current_syntax
|
||||||
|
runtime! syntax/yaml.vim
|
||||||
|
|
||||||
|
let b:current_syntax = ''
|
||||||
|
unlet b:current_syntax
|
||||||
|
syntax include @Yaml syntax/yaml.vim
|
||||||
|
|
||||||
|
let b:current_syntax = ''
|
||||||
|
unlet b:current_syntax
|
||||||
|
syntax include @Jinja syntax/jinja2.vim
|
||||||
|
|
||||||
|
" Jinja
|
||||||
|
" ================================
|
||||||
|
|
||||||
|
syn cluster jinjaSLSBlocks add=jinjaTagBlock,jinjaVarBlock,jinjaComment
|
||||||
|
" https://github.com/mitsuhiko/jinja2/blob/6b7c0c23/ext/Vim/jinja.vim
|
||||||
|
syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks
|
||||||
|
syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks
|
||||||
|
syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,@jinjaSLSBlocks
|
||||||
|
highlight link jinjaVariable Constant
|
||||||
|
highlight link jinjaVarDelim Delimiter
|
||||||
|
|
||||||
|
" YAML
|
||||||
|
" ================================
|
||||||
|
|
||||||
|
" Reset some YAML to plain styling
|
||||||
|
" the number 80 in Ansible isn't any more important than the word root
|
||||||
|
highlight link yamlInteger NONE
|
||||||
|
highlight link yamlBool NONE
|
||||||
|
highlight link yamlFlowString NONE
|
||||||
|
" but it does make sense we visualize quotes easily
|
||||||
|
highlight link yamlFlowStringDelimiter Delimiter
|
||||||
|
|
||||||
|
fun! s:attribute_highlight(attributes)
|
||||||
|
if a:attributes =~ 'a'
|
||||||
|
syn match ansible_attributes "\v\w+\=" containedin=yamlPlainScalar
|
||||||
|
else
|
||||||
|
syn match ansible_attributes "\v^\s*\w+\=" containedin=yamlPlainScalar
|
||||||
|
endif
|
||||||
|
if a:attributes =~ 'n'
|
||||||
|
highlight link ansible_attributes NONE
|
||||||
|
elseif a:attributes =~ 'd'
|
||||||
|
highlight link ansible_attributes Comment
|
||||||
|
else
|
||||||
|
highlight link ansible_attributes Structure
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
if exists("g:ansible_attribute_highlight")
|
||||||
|
call s:attribute_highlight(g:ansible_attribute_highlight)
|
||||||
|
else
|
||||||
|
call s:attribute_highlight('ad')
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("g:ansible_name_highlight")
|
||||||
|
syn keyword ansible_name name containedin=yamlBlockMappingKey contained
|
||||||
|
if g:ansible_name_highlight =~ 'd'
|
||||||
|
highlight link ansible_name Comment
|
||||||
|
else
|
||||||
|
highlight link ansible_name Underlined
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn keyword ansible_debug_keywords debug containedin=yamlBlockMappingKey contained
|
||||||
|
highlight link ansible_debug_keywords Debug
|
||||||
|
|
||||||
|
syn match ansible_with_keywords "\vwith_.+" containedin=yamlBlockMappingKey contained
|
||||||
|
syn keyword ansible_special_keywords include until retries delay when only_if become become_user block rescue always notify containedin=yamlBlockMappingKey contained
|
||||||
|
highlight link ansible_with_keywords Statement
|
||||||
|
highlight link ansible_special_keywords Statement
|
||||||
|
|
||||||
|
let b:current_syntax = "ansible"
|
||||||
|
|
||||||
|
endif
|
||||||
35
syntax/ansible_hosts.vim
Normal file
35
syntax/ansible_hosts.vim
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Ansible hosts files
|
||||||
|
" Maintainer: Dave Honneffer <pearofducks@gmail.com>
|
||||||
|
" Last Change: 2015.09.23
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn case ignore
|
||||||
|
syn match hostsFirstWord "\v^\S+"
|
||||||
|
syn match hostsAttributes "\v\S*\="
|
||||||
|
syn region hostsHeader start="\v^\s*\[" end="\v\]"
|
||||||
|
syn keyword hostsHeaderSpecials children vars containedin=hostsHeader contained
|
||||||
|
syn match hostsComment "\v^[#;].*$"
|
||||||
|
|
||||||
|
highlight link hostsFirstWord Label
|
||||||
|
highlight link hostsHeader Define
|
||||||
|
highlight link hostsComment Comment
|
||||||
|
highlight link hostsHeaderSpecials Identifier
|
||||||
|
highlight link hostsAttributes Structure
|
||||||
|
|
||||||
|
if exists("g:ansible_attribute_highlight")
|
||||||
|
if g:ansible_attribute_highlight =~ 'n'
|
||||||
|
highlight link hostsAttributes NONE
|
||||||
|
elseif g:ansible_attribute_highlight =~ 'd'
|
||||||
|
highlight link hostsAttributes Comment
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "ansible_hosts"
|
||||||
|
|
||||||
|
endif
|
||||||
31
syntax/ansible_template.vim
Normal file
31
syntax/ansible_template.vim
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Ansible YAML/Jinja templates
|
||||||
|
" Maintainer: Dave Honneffer <pearofducks@gmail.com>
|
||||||
|
" Last Change: 2015.09.06
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists("main_syntax")
|
||||||
|
let main_syntax = 'jinja2'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = ''
|
||||||
|
unlet b:current_syntax
|
||||||
|
runtime! syntax/jinja2.vim
|
||||||
|
|
||||||
|
if exists("g:ansible_extra_syntaxes")
|
||||||
|
let s:extra_syntax = split(g:ansible_extra_syntaxes)
|
||||||
|
for syntax_name in s:extra_syntax
|
||||||
|
let b:current_syntax = ''
|
||||||
|
unlet b:current_syntax
|
||||||
|
execute 'runtime!' "syntax/" . syntax_name
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "ansible_template"
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -25,7 +25,8 @@ endif
|
|||||||
" C++ extensions
|
" C++ extensions
|
||||||
syn keyword cppStatement new delete this friend using
|
syn keyword cppStatement new delete this friend using
|
||||||
syn keyword cppAccess public protected private
|
syn keyword cppAccess public protected private
|
||||||
syn keyword cppType inline virtual explicit export bool wchar_t
|
syn keyword cppModifier inline virtual explicit export
|
||||||
|
syn keyword cppType bool wchar_t
|
||||||
syn keyword cppExceptions throw try catch
|
syn keyword cppExceptions throw try catch
|
||||||
syn keyword cppOperator operator typeid
|
syn keyword cppOperator operator typeid
|
||||||
syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq
|
syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq
|
||||||
@@ -38,7 +39,8 @@ syn keyword cppConstant __cplusplus
|
|||||||
|
|
||||||
" C++ 11 extensions
|
" C++ 11 extensions
|
||||||
if !exists("cpp_no_cpp11")
|
if !exists("cpp_no_cpp11")
|
||||||
syn keyword cppType override final
|
syn keyword cppModifier override final
|
||||||
|
syn keyword cppType nullptr_t
|
||||||
syn keyword cppExceptions noexcept
|
syn keyword cppExceptions noexcept
|
||||||
syn keyword cppStorageClass constexpr decltype thread_local
|
syn keyword cppStorageClass constexpr decltype thread_local
|
||||||
syn keyword cppConstant nullptr
|
syn keyword cppConstant nullptr
|
||||||
@@ -72,6 +74,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
|||||||
HiLink cppExceptions Exception
|
HiLink cppExceptions Exception
|
||||||
HiLink cppOperator Operator
|
HiLink cppOperator Operator
|
||||||
HiLink cppStatement Statement
|
HiLink cppStatement Statement
|
||||||
|
HiLink cppModifier Type
|
||||||
HiLink cppType Type
|
HiLink cppType Type
|
||||||
HiLink cppStorageClass StorageClass
|
HiLink cppStorageClass StorageClass
|
||||||
HiLink cppStructure Structure
|
HiLink cppStructure Structure
|
||||||
|
|||||||
110
syntax/dart.vim
Normal file
110
syntax/dart.vim
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
|
||||||
|
|
||||||
|
" Vim syntax file " Language: Dart
|
||||||
|
" Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
||||||
|
" for details. All rights reserved. Use of this source code is governed by a
|
||||||
|
" BSD-style license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
if !exists("g:main_syntax")
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:main_syntax = 'dart'
|
||||||
|
syntax region dartFold start="{" end="}" transparent fold
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Ensure long multiline strings are highlighted.
|
||||||
|
syntax sync fromstart
|
||||||
|
|
||||||
|
" keyword definitions
|
||||||
|
syntax keyword dartConditional if else switch
|
||||||
|
syntax keyword dartRepeat do while for
|
||||||
|
syntax keyword dartBoolean true false
|
||||||
|
syntax keyword dartConstant null
|
||||||
|
syntax keyword dartTypedef this super class typedef
|
||||||
|
syntax keyword dartOperator new is as in factory
|
||||||
|
syntax match dartOperator "+=\=\|-=\=\|*=\=\|/=\=\|%=\=\|\~/=\=\|<<=\=\|>>=\=\|[<>]=\=\|===\=\|\!==\=\|&=\=\|\^=\=\||=\=\|||\|&&\|\[\]=\=\|=>\|!\|\~\|?\|:"
|
||||||
|
syntax keyword dartType void var bool int double num dynamic
|
||||||
|
syntax keyword dartStatement return
|
||||||
|
syntax keyword dartStorageClass static abstract final const
|
||||||
|
syntax keyword dartExceptions throw rethrow try on catch finally
|
||||||
|
syntax keyword dartAssert assert
|
||||||
|
syntax keyword dartClassDecl extends with implements
|
||||||
|
syntax keyword dartBranch break continue nextgroup=dartUserLabelRef skipwhite
|
||||||
|
syntax keyword dartKeyword get set operator call external async await yield sync
|
||||||
|
syntax match dartUserLabelRef "\k\+" contained
|
||||||
|
|
||||||
|
syntax region dartLabelRegion transparent matchgroup=dartLabel start="\<case\>" matchgroup=NONE end=":"
|
||||||
|
syntax keyword dartLabel default
|
||||||
|
|
||||||
|
syntax match dartLibrary "^\(import\|part of\|part\|export\|library\|show\|hide\)\s"
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
syntax keyword dartTodo contained TODO FIXME XXX
|
||||||
|
syntax region dartComment start="/\*" end="\*/" contains=dartTodo,dartDocLink,@Spell
|
||||||
|
syntax match dartLineComment "//.*" contains=dartTodo,@Spell
|
||||||
|
syntax match dartLineDocComment "///.*" contains=dartTodo,dartDocLink,@Spell
|
||||||
|
syntax region dartDocLink oneline contained start=+\[+ end=+\]+
|
||||||
|
|
||||||
|
" Strings
|
||||||
|
syntax region dartString start=+\z(["']\)+ end=+\z1+ contains=@Spell,dartInterpolation,dartSpecialChar
|
||||||
|
syntax region dartRawString start=+r\z(["']\)+ end=+\z1+ contains=@Spell
|
||||||
|
syntax region dartMultilineString start=+\z("\{3\}\|'\{3\}\)+ end=+\z1+ contains=@Spell,dartInterpolation,dartSpecialChar
|
||||||
|
syntax region dartRawMultilineString start=+r\z("\{3\}\|'\{3\}\)+ end=+\z1+ contains=@Spell
|
||||||
|
syntax match dartInterpolation contained "\$\(\w\+\|{[^}]\+}\)"
|
||||||
|
syntax match dartSpecialChar contained "\\\(u\x\{4\}\|u{\x\+}\|x\x\x\|x{\x\+}\|.\)"
|
||||||
|
|
||||||
|
" Numbers
|
||||||
|
syntax match dartNumber "\<\d\+\(\.\d\+\)\=\>"
|
||||||
|
|
||||||
|
" TODO(antonm): consider conditional highlighting of corelib classes.
|
||||||
|
syntax keyword dartCoreClasses BidirectionalIterator Comparable DateTime Duration Expando Function Invocation Iterable Iterator List Map Match Object Pattern RegExp RuneIterator Runes Set StackTrace Stopwatch String StringBuffer StringSink Symbol Type
|
||||||
|
syntax keyword dartCoreTypedefs Comparator
|
||||||
|
syntax keyword dartCoreExceptions AbstractClassInstantiationError ArgumentError AssertionError CastError ConcurrentModificationError Error Exception FallThroughError FormatException IntegerDivisionByZeroException NoSuchMethodError NullThrownError OutOfMemoryError RangeError RuntimeError StackOverflowError StateError TypeError UnimplementedError UnsupportedError
|
||||||
|
|
||||||
|
|
||||||
|
" The default highlighting.
|
||||||
|
highlight default link dartBranch Conditional
|
||||||
|
highlight default link dartUserLabelRef dartUserLabel
|
||||||
|
highlight default link dartLabel Label
|
||||||
|
highlight default link dartUserLabel Label
|
||||||
|
highlight default link dartConditional Conditional
|
||||||
|
highlight default link dartRepeat Repeat
|
||||||
|
highlight default link dartExceptions Exception
|
||||||
|
highlight default link dartAssert Statement
|
||||||
|
highlight default link dartStorageClass StorageClass
|
||||||
|
highlight default link dartClassDecl dartStorageClass
|
||||||
|
highlight default link dartBoolean Boolean
|
||||||
|
highlight default link dartString String
|
||||||
|
highlight default link dartRawString String
|
||||||
|
highlight default link dartMultilineString String
|
||||||
|
highlight default link dartRawMultilineString String
|
||||||
|
highlight default link dartNumber Number
|
||||||
|
highlight default link dartStatement Statement
|
||||||
|
highlight default link dartOperator Operator
|
||||||
|
highlight default link dartComment Comment
|
||||||
|
highlight default link dartLineComment Comment
|
||||||
|
highlight default link dartLineDocComment Comment
|
||||||
|
highlight default link dartConstant Constant
|
||||||
|
highlight default link dartTypedef Typedef
|
||||||
|
highlight default link dartTodo Todo
|
||||||
|
highlight default link dartKeyword Keyword
|
||||||
|
highlight default link dartType Type
|
||||||
|
highlight default link dartInterpolation PreProc
|
||||||
|
highlight default link dartDocLink SpecialComment
|
||||||
|
highlight default link dartSpecialChar SpecialChar
|
||||||
|
highlight default link dartLibrary Include
|
||||||
|
highlight default link dartCoreClasses Type
|
||||||
|
highlight default link dartCoreTypedefs Typedef
|
||||||
|
highlight default link dartCoreExceptions Exception
|
||||||
|
|
||||||
|
let b:current_syntax = "dart"
|
||||||
|
let b:spell_options = "contained"
|
||||||
|
|
||||||
|
if g:main_syntax is# 'dart'
|
||||||
|
unlet g:main_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -14,12 +14,12 @@ syn sync minlines=2000
|
|||||||
|
|
||||||
syn cluster elixirNotTop contains=@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments
|
syn cluster elixirNotTop contains=@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments
|
||||||
|
|
||||||
syn match elixirComment '#.*' contains=elixirTodo
|
syn match elixirComment '#.*' contains=elixirTodo,@Spell
|
||||||
syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
|
syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
|
||||||
|
|
||||||
syn keyword elixirKeyword case when cond for if unless try receive send
|
syn keyword elixirKeyword case when cond for if unless try receive send
|
||||||
syn keyword elixirKeyword exit raise throw after rescue catch else do end
|
syn keyword elixirKeyword exit raise throw after rescue catch else do end
|
||||||
syn keyword elixirKeyword quote unquote super
|
syn keyword elixirKeyword quote unquote super spawn spawn_link spawn_monitor
|
||||||
|
|
||||||
" Functions used on guards
|
" Functions used on guards
|
||||||
syn keyword elixirKeyword contained is_atom is_binary is_bitstring is_boolean
|
syn keyword elixirKeyword contained is_atom is_binary is_bitstring is_boolean
|
||||||
@@ -87,8 +87,8 @@ syn region elixirInterpolation matchgroup=elixirInterpolationDelimiter start="#{
|
|||||||
|
|
||||||
syn region elixirDocStringStart matchgroup=elixirDocString start=+"""+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
syn region elixirDocStringStart matchgroup=elixirDocString start=+"""+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
||||||
syn region elixirDocStringStart matchgroup=elixirDocString start=+'''+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
syn region elixirDocStringStart matchgroup=elixirDocString start=+'''+ end=+$+ oneline contains=ALLBUT,@elixirNotTop
|
||||||
syn region elixirDocString start=+\z("""\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend
|
syn region elixirDocString start=+\z("""\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation,@Spell fold keepend
|
||||||
syn region elixirDocString start=+\z('''\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation fold keepend
|
syn region elixirDocString start=+\z('''\)+ end=+^\s*\zs\z1+ contains=elixirDocStringStart,elixirTodo,elixirInterpolation,@Spell fold keepend
|
||||||
|
|
||||||
syn match elixirAtomInterpolated ':\("\)\@=' contains=elixirString
|
syn match elixirAtomInterpolated ':\("\)\@=' contains=elixirString
|
||||||
syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)"
|
syn match elixirString "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)"
|
||||||
|
|||||||
81
syntax/elm.vim
Normal file
81
syntax/elm.vim
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Elm (http://elm-lang.org/)
|
||||||
|
" Maintainer: Alexander Noriega
|
||||||
|
" Latest Revision: 19 April 2015
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Keywords
|
||||||
|
syn keyword elmKeyword alias as case else exposing if import in let module of port then type where
|
||||||
|
|
||||||
|
" Builtin operators
|
||||||
|
syn match elmBuiltinOp "\~"
|
||||||
|
syn match elmBuiltinOp "||"
|
||||||
|
syn match elmBuiltinOp "|>"
|
||||||
|
syn match elmBuiltinOp "|"
|
||||||
|
syn match elmBuiltinOp "`"
|
||||||
|
syn match elmBuiltinOp "\^"
|
||||||
|
syn match elmBuiltinOp "\\"
|
||||||
|
syn match elmBuiltinOp ">>"
|
||||||
|
syn match elmBuiltinOp ">="
|
||||||
|
syn match elmBuiltinOp ">"
|
||||||
|
syn match elmBuiltinOp "=="
|
||||||
|
syn match elmBuiltinOp "="
|
||||||
|
syn match elmBuiltinOp "<\~"
|
||||||
|
syn match elmBuiltinOp "<|"
|
||||||
|
syn match elmBuiltinOp "<="
|
||||||
|
syn match elmBuiltinOp "<<"
|
||||||
|
syn match elmBuiltinOp "<-"
|
||||||
|
syn match elmBuiltinOp "<"
|
||||||
|
syn match elmBuiltinOp "::"
|
||||||
|
syn match elmBuiltinOp ":"
|
||||||
|
syn match elmBuiltinOp "/="
|
||||||
|
syn match elmBuiltinOp "//"
|
||||||
|
syn match elmBuiltinOp "/"
|
||||||
|
syn match elmBuiltinOp "\.\."
|
||||||
|
syn match elmBuiltinOp "\."
|
||||||
|
syn match elmBuiltinOp "->"
|
||||||
|
syn match elmBuiltinOp "-"
|
||||||
|
syn match elmBuiltinOp "++"
|
||||||
|
syn match elmBuiltinOp "+"
|
||||||
|
syn match elmBuiltinOp "*"
|
||||||
|
syn match elmBuiltinOp "&&"
|
||||||
|
syn match elmBuiltinOp "%"
|
||||||
|
|
||||||
|
" Special names
|
||||||
|
syntax match specialName "^main "
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
syn match elmTodo "[tT][oO][dD][oO]\|FIXME\|XXX" contained
|
||||||
|
syn match elmLineComment "--.*" contains=elmTodo,@spell
|
||||||
|
syn region elmComment matchgroup=elmComment start="{-|\=" end="-}" contains=elmTodo,elmComment,@spell
|
||||||
|
|
||||||
|
" String literals
|
||||||
|
syn region elmString start="\"" skip="\\\"" end="\"" contains=elmStringEscape
|
||||||
|
syn match elmStringEscape "\\u[0-9a-fA-F]\{4}" contained
|
||||||
|
syn match elmStringEscape "\\[nrfvbt\\\"]" contained
|
||||||
|
|
||||||
|
" Number literals
|
||||||
|
syn match elmNumber "\(\<\d\+\>\)"
|
||||||
|
syn match elmNumber "\(\<\d\+\.\d\+\>\)"
|
||||||
|
|
||||||
|
" Types
|
||||||
|
syn match elmType "\<[A-Z][0-9A-Za-z_'-]*"
|
||||||
|
|
||||||
|
let b:current_syntax = "elm"
|
||||||
|
|
||||||
|
hi def link elmKeyword Keyword
|
||||||
|
hi def link elmBuiltinOp Special
|
||||||
|
hi def link elmType Type
|
||||||
|
hi def link elmTodo Todo
|
||||||
|
hi def link elmLineComment Comment
|
||||||
|
hi def link elmComment Comment
|
||||||
|
hi def link elmString String
|
||||||
|
hi def link elmNumber Number
|
||||||
|
hi def link specialName Special
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
|||||||
" Language: git commit file
|
" Language: git commit file
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Filenames: *.git/COMMIT_EDITMSG
|
" Filenames: *.git/COMMIT_EDITMSG
|
||||||
" Last Change: 2012 April 7
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
|||||||
" Language: git rebase --interactive
|
" Language: git rebase --interactive
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Filenames: git-rebase-todo
|
" Filenames: git-rebase-todo
|
||||||
" Last Change: 2012 April 7
|
" Last Change: 2013 May 30
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
@@ -20,6 +20,7 @@ syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite
|
|||||||
syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
|
syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
|
||||||
syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite
|
syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite
|
||||||
syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
|
syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
|
||||||
|
syn match gitrebaseDrop "\v^d%(rop)=>" nextgroup=gitrebaseCommit skipwhite
|
||||||
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
|
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
|
||||||
syn match gitrebaseCommand ".*" contained
|
syn match gitrebaseCommand ".*" contained
|
||||||
syn match gitrebaseComment "^#.*" contains=gitrebaseHash
|
syn match gitrebaseComment "^#.*" contains=gitrebaseHash
|
||||||
@@ -33,6 +34,7 @@ hi def link gitrebaseEdit PreProc
|
|||||||
hi def link gitrebaseSquash Type
|
hi def link gitrebaseSquash Type
|
||||||
hi def link gitrebaseFixup Special
|
hi def link gitrebaseFixup Special
|
||||||
hi def link gitrebaseExec Function
|
hi def link gitrebaseExec Function
|
||||||
|
hi def link gitrebaseDrop Comment
|
||||||
hi def link gitrebaseSummary String
|
hi def link gitrebaseSummary String
|
||||||
hi def link gitrebaseComment Comment
|
hi def link gitrebaseComment Comment
|
||||||
hi def link gitrebaseSquashError Error
|
hi def link gitrebaseSquashError Error
|
||||||
|
|||||||
@@ -56,23 +56,23 @@ if !exists("g:go_highlight_trailing_whitespace_error")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:go_highlight_operators")
|
if !exists("g:go_highlight_operators")
|
||||||
let g:go_highlight_operators = 0
|
let g:go_highlight_operators = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:go_highlight_functions")
|
if !exists("g:go_highlight_functions")
|
||||||
let g:go_highlight_functions = 0
|
let g:go_highlight_functions = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:go_highlight_methods")
|
if !exists("g:go_highlight_methods")
|
||||||
let g:go_highlight_methods = 0
|
let g:go_highlight_methods = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:go_highlight_structs")
|
if !exists("g:go_highlight_structs")
|
||||||
let g:go_highlight_structs = 0
|
let g:go_highlight_structs = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:go_highlight_build_constraints")
|
if !exists("g:go_highlight_build_constraints")
|
||||||
let g:go_highlight_build_constraints = 0
|
let g:go_highlight_build_constraints = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("g:go_highlight_string_spellcheck")
|
if !exists("g:go_highlight_string_spellcheck")
|
||||||
@@ -119,8 +119,8 @@ syn match goDeclaration /\<func\>/
|
|||||||
|
|
||||||
|
|
||||||
" Predefined functions and values
|
" Predefined functions and values
|
||||||
syn keyword goBuiltins append cap close complex copy delete imag len
|
syn match goBuiltins /\<\v(append|cap|close|complex|copy|delete|imag|len)\ze\(/
|
||||||
syn keyword goBuiltins make new panic print println real recover
|
syn match goBuiltins /\<\v(make|new|panic|print|println|real|recover)\ze\(/
|
||||||
syn keyword goBoolean iota true false nil
|
syn keyword goBoolean iota true false nil
|
||||||
|
|
||||||
hi def link goBuiltins Keyword
|
hi def link goBuiltins Keyword
|
||||||
@@ -164,7 +164,7 @@ syn match goFormatSpecifier /%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\
|
|||||||
|
|
||||||
hi def link goString String
|
hi def link goString String
|
||||||
hi def link goRawString String
|
hi def link goRawString String
|
||||||
hi def link goFormatSpecifier goSpecialString
|
hi def link goFormatSpecifier goSpecialString
|
||||||
|
|
||||||
" Characters; their contents
|
" Characters; their contents
|
||||||
syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
|
syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
|
||||||
@@ -249,55 +249,74 @@ hi def link goTodo Todo
|
|||||||
|
|
||||||
" Operators;
|
" Operators;
|
||||||
if g:go_highlight_operators != 0
|
if g:go_highlight_operators != 0
|
||||||
" match single-char operators: - + % < > ! & | ^ * =
|
" match single-char operators: - + % < > ! & | ^ * =
|
||||||
" and corresponding two-char operators: -= += %= <= >= != &= |= ^= *= ==
|
" and corresponding two-char operators: -= += %= <= >= != &= |= ^= *= ==
|
||||||
syn match goOperator /[-+%<>!&|^*=]=\?/
|
syn match goOperator /[-+%<>!&|^*=]=\?/
|
||||||
" match / and /=
|
" match / and /=
|
||||||
syn match goOperator /\/\%(=\|\ze[^/*]\)/
|
syn match goOperator /\/\%(=\|\ze[^/*]\)/
|
||||||
" match two-char operators: << >> &^
|
" match two-char operators: << >> &^
|
||||||
" and corresponding three-char operators: <<= >>= &^=
|
" and corresponding three-char operators: <<= >>= &^=
|
||||||
syn match goOperator /\%(<<\|>>\|&^\)=\?/
|
syn match goOperator /\%(<<\|>>\|&^\)=\?/
|
||||||
" match remaining two-char operators: := && || <- ++ --
|
" match remaining two-char operators: := && || <- ++ --
|
||||||
syn match goOperator /:=\|||\|<-\|++\|--/
|
syn match goOperator /:=\|||\|<-\|++\|--/
|
||||||
" match ...
|
" match ...
|
||||||
syn match goOperator /\.\.\./
|
syn match goOperator /\.\.\./
|
||||||
endif
|
endif
|
||||||
hi def link goOperator Operator
|
hi def link goOperator Operator
|
||||||
|
|
||||||
" Functions;
|
" Functions;
|
||||||
if g:go_highlight_functions != 0
|
if g:go_highlight_functions != 0
|
||||||
syn match goFunction /\(func\s\+\)\@<=\w\+\((\)\@=/
|
syn match goFunction /\(func\s\+\)\@<=\w\+\((\)\@=/
|
||||||
syn match goFunction /\()\s\+\)\@<=\w\+\((\)\@=/
|
syn match goFunction /\()\s\+\)\@<=\w\+\((\)\@=/
|
||||||
endif
|
endif
|
||||||
hi def link goFunction Function
|
hi def link goFunction Function
|
||||||
|
|
||||||
" Methods;
|
" Methods;
|
||||||
if g:go_highlight_methods != 0
|
if g:go_highlight_methods != 0
|
||||||
syn match goMethod /\(\.\)\@<=\w\+\((\)\@=/
|
syn match goMethod /\(\.\)\@<=\w\+\((\)\@=/
|
||||||
endif
|
endif
|
||||||
hi def link goMethod Type
|
hi def link goMethod Type
|
||||||
|
|
||||||
" Structs;
|
" Structs;
|
||||||
if g:go_highlight_structs != 0
|
if g:go_highlight_structs != 0
|
||||||
syn match goStruct /\(.\)\@<=\w\+\({\)\@=/
|
syn match goStruct /\(.\)\@<=\w\+\({\)\@=/
|
||||||
syn match goStructDef /\(type\s\+\)\@<=\w\+\(\s\+struct\s\+{\)\@=/
|
syn match goStructDef /\(type\s\+\)\@<=\w\+\(\s\+struct\s\+{\)\@=/
|
||||||
endif
|
endif
|
||||||
hi def link goStruct Function
|
hi def link goStruct Function
|
||||||
hi def link goStructDef Function
|
hi def link goStructDef Function
|
||||||
|
|
||||||
" Build Constraints
|
" Build Constraints
|
||||||
if g:go_highlight_build_constraints != 0
|
if g:go_highlight_build_constraints != 0
|
||||||
syn keyword goBuildOs contained ignore cgo android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows
|
syn match goBuildKeyword display contained "+build"
|
||||||
syn keyword goBuildArch contained 386 amd64 amd64p32 arm
|
" Highlight the known values of GOOS, GOARCH, and other +build options.
|
||||||
syn match goBuildDirective display contained "+build"
|
syn keyword goBuildDirectives contained
|
||||||
syn region goBuildComment start="//\s*+build" end="$" contains=goBuildDirective,goBuildOs,goBuildArch
|
\ android darwin dragonfly freebsd linux nacl netbsd openbsd plan9
|
||||||
syn region goBuildComment start="/\*\s*+build" end="\*/" contains=goBuildDirective,goBuildOs,goBuildArch
|
\ solaris windows 386 amd64 amd64p32 arm armbe arm64 arm64be ppc64
|
||||||
endif
|
\ ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc
|
||||||
|
\ s390 s390x sparc sparc64 cgo ignore race
|
||||||
|
|
||||||
hi def link goBuildComment Comment
|
" Other words in the build directive are build tags not listed above, so
|
||||||
hi def link goBuildOs Type
|
" avoid highlighting them as comments by using a matchgroup just for the
|
||||||
hi def link goBuildArch Type
|
" start of the comment.
|
||||||
hi def link goBuildDirective PreProc
|
" The rs=s+2 option lets the \s*+build portion be part of the inner region
|
||||||
|
" instead of the matchgroup so it will be highlighted as a goBuildKeyword.
|
||||||
|
syn region goBuildComment matchgroup=goBuildCommentStart
|
||||||
|
\ start="//\s*+build\s"rs=s+2 end="$"
|
||||||
|
\ contains=goBuildKeyword,goBuildDirectives
|
||||||
|
hi def link goBuildCommentStart Comment
|
||||||
|
hi def link goBuildDirectives Type
|
||||||
|
hi def link goBuildKeyword PreProc
|
||||||
|
|
||||||
|
" One or more line comments that are followed immediately by a "package"
|
||||||
|
" declaration are treated like package documentation, so these must be
|
||||||
|
" matched as comments to avoid looking like working build constraints.
|
||||||
|
" The he, me, and re options let the "package" itself be highlighted by
|
||||||
|
" the usual rules.
|
||||||
|
syn region goPackageComment start=/\v(\/\/.*\n)+\s*package/
|
||||||
|
\ end=/\v\n\s*package/he=e-7,me=e-7,re=e-7
|
||||||
|
\ contains=@goCommentGroup,@Spell
|
||||||
|
hi def link goPackageComment Comment
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
" Search backwards for a global declaration to start processing the syntax.
|
" Search backwards for a global declaration to start processing the syntax.
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ hi def link goRawString String
|
|||||||
|
|
||||||
" Characters; their contents
|
" Characters; their contents
|
||||||
syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
|
syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
|
||||||
syn region goCharacter start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup
|
syn region goCharacter contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup
|
||||||
|
|
||||||
hi def link goCharacter Character
|
hi def link goCharacter Character
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ hi def link goImaginary Number
|
|||||||
syn cluster gotplLiteral contains=goString,goRawString,goCharacter,@goInt,goFloat,goImaginary
|
syn cluster gotplLiteral contains=goString,goRawString,goCharacter,@goInt,goFloat,goImaginary
|
||||||
syn keyword gotplControl contained if else end range with template
|
syn keyword gotplControl contained if else end range with template
|
||||||
syn keyword gotplFunctions contained and html index js len not or print printf println urlquery eq ne lt le gt ge
|
syn keyword gotplFunctions contained and html index js len not or print printf println urlquery eq ne lt le gt ge
|
||||||
syn match gotplVariable contained /\$[^ ]*\>/
|
syn match gotplVariable contained /\$[a-zA-Z0-9_]*\>/
|
||||||
syn match goTplIdentifier contained /\.[^\s}]*\>/
|
syn match goTplIdentifier contained /\.[^\s}]*\>/
|
||||||
|
|
||||||
hi def link gotplControl Keyword
|
hi def link gotplControl Keyword
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ silent! syntax include @htmlCoffeescript syntax/coffee.vim
|
|||||||
unlet! b:current_syntax
|
unlet! b:current_syntax
|
||||||
silent! syntax include @htmlStylus syntax/stylus.vim
|
silent! syntax include @htmlStylus syntax/stylus.vim
|
||||||
unlet! b:current_syntax
|
unlet! b:current_syntax
|
||||||
|
silent! syntax include @htmlCss syntax/css.vim
|
||||||
|
unlet! b:current_syntax
|
||||||
silent! syntax include @htmlMarkdown syntax/markdown.vim
|
silent! syntax include @htmlMarkdown syntax/markdown.vim
|
||||||
unlet! b:current_syntax
|
unlet! b:current_syntax
|
||||||
|
|
||||||
@@ -37,7 +39,7 @@ syn region jadeCommentBlock start="\z(\s*\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!"
|
|||||||
syn region jadeHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->"
|
syn region jadeHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->"
|
||||||
syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,jadeHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent
|
syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,jadeHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent
|
||||||
syn match jadeClassChar "\." contained nextgroup=jadeClass
|
syn match jadeClassChar "\." contained nextgroup=jadeClass
|
||||||
syn match jadeBlockExpansionChar ":\s\+" contained nextgroup=jadeTag
|
syn match jadeBlockExpansionChar ":\s\+" contained nextgroup=jadeTag,jadeClassChar,jadeIdChar
|
||||||
syn match jadeIdChar "#[[{]\@!" contained nextgroup=jadeId
|
syn match jadeIdChar "#[[{]\@!" contained nextgroup=jadeId
|
||||||
syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent
|
syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent
|
||||||
syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent
|
syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent
|
||||||
@@ -69,7 +71,7 @@ syn keyword jadeScriptLoopKeywords for in contained
|
|||||||
|
|
||||||
syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag,jadeCoffeescriptFilter keepend
|
syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag,jadeCoffeescriptFilter keepend
|
||||||
|
|
||||||
syn region jadeCoffeescriptFilter matchgroup=jadeFilter start="^\z(\s*\):coffeescript\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCoffeescript contained
|
syn region jadeCoffeescriptFilter matchgroup=jadeFilter start="^\z(\s*\):coffee-\?script\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCoffeescript contained
|
||||||
syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag
|
syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag
|
||||||
syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCss keepend
|
syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCss keepend
|
||||||
|
|
||||||
|
|||||||
139
syntax/jinja.vim
Normal file
139
syntax/jinja.vim
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jinja') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Jinja template
|
||||||
|
" Maintainer: Armin Ronacher <armin.ronacher@active-4.com>
|
||||||
|
" Last Change: 2008 May 9
|
||||||
|
" Version: 1.1
|
||||||
|
"
|
||||||
|
" Known Bugs:
|
||||||
|
" because of odd limitations dicts and the modulo operator
|
||||||
|
" appear wrong in the template.
|
||||||
|
"
|
||||||
|
" Changes:
|
||||||
|
"
|
||||||
|
" 2008 May 9: Added support for Jinja2 changes (new keyword rules)
|
||||||
|
|
||||||
|
" .vimrc variable to disable html highlighting
|
||||||
|
if !exists('g:jinja_syntax_html')
|
||||||
|
let g:jinja_syntax_html=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" For version 5.x: Clear all syntax items
|
||||||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
|
if !exists("main_syntax")
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let main_syntax = 'jinja'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Pull in the HTML syntax.
|
||||||
|
if g:jinja_syntax_html
|
||||||
|
if version < 600
|
||||||
|
so <sfile>:p:h/html.vim
|
||||||
|
else
|
||||||
|
runtime! syntax/html.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax case match
|
||||||
|
|
||||||
|
" Jinja template built-in tags and parameters (without filter, macro, is and raw, they
|
||||||
|
" have special threatment)
|
||||||
|
syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained and if else in not or recursive as import
|
||||||
|
|
||||||
|
syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained is filter skipwhite nextgroup=jinjaFilter
|
||||||
|
syn keyword jinjaStatement containedin=jinjaTagBlock contained macro skipwhite nextgroup=jinjaFunction
|
||||||
|
syn keyword jinjaStatement containedin=jinjaTagBlock contained block skipwhite nextgroup=jinjaBlockName
|
||||||
|
|
||||||
|
" Variable Names
|
||||||
|
syn match jinjaVariable containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
syn keyword jinjaSpecial containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained false true none False True None loop super caller varargs kwargs
|
||||||
|
|
||||||
|
" Filters
|
||||||
|
syn match jinjaOperator "|" containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained skipwhite nextgroup=jinjaFilter
|
||||||
|
syn match jinjaFilter contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
syn match jinjaFunction contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
syn match jinjaBlockName contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
|
||||||
|
" Jinja template constants
|
||||||
|
syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@<!\(\(\\\\\)\@>\)*\\"/ end=/"/
|
||||||
|
syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@<!\(\(\\\\\)\@>\)*\\'/ end=/'/
|
||||||
|
syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/
|
||||||
|
|
||||||
|
" Operators
|
||||||
|
syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[+\-*\/<>=!,:]/
|
||||||
|
syn match jinjaPunctuation containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[()\[\]]/
|
||||||
|
syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /\./ nextgroup=jinjaAttribute
|
||||||
|
syn match jinjaAttribute contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
|
||||||
|
" Jinja template tag and variable blocks
|
||||||
|
syn region jinjaNested matchgroup=jinjaOperator start="(" end=")" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
|
||||||
|
syn region jinjaNested matchgroup=jinjaOperator start="\[" end="\]" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
|
||||||
|
syn region jinjaNested matchgroup=jinjaOperator start="{" end="}" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
|
||||||
|
syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
|
||||||
|
|
||||||
|
syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
|
||||||
|
|
||||||
|
" Jinja template 'raw' tag
|
||||||
|
syn region jinjaRaw matchgroup=jinjaRawDelim start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,jinjaComment
|
||||||
|
|
||||||
|
" Jinja comments
|
||||||
|
syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString
|
||||||
|
|
||||||
|
" Block start keywords. A bit tricker. We only highlight at the start of a
|
||||||
|
" tag block and only if the name is not followed by a comma or equals sign
|
||||||
|
" which usually means that we have to deal with an assignment.
|
||||||
|
syn match jinjaStatement containedin=jinjaTagBlock contained /\({%-\?\s*\)\@<=\<[a-zA-Z_][a-zA-Z0-9_]*\>\(\s*[,=]\)\@!/
|
||||||
|
|
||||||
|
" and context modifiers
|
||||||
|
syn match jinjaStatement containedin=jinjaTagBlock contained /\<with\(out\)\?\s\+context\>/
|
||||||
|
|
||||||
|
|
||||||
|
" Define the default highlighting.
|
||||||
|
" For version 5.7 and earlier: only when not done already
|
||||||
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||||
|
if version >= 508 || !exists("did_jinja_syn_inits")
|
||||||
|
if version < 508
|
||||||
|
let did_jinja_syn_inits = 1
|
||||||
|
command -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
HiLink jinjaPunctuation jinjaOperator
|
||||||
|
HiLink jinjaAttribute jinjaVariable
|
||||||
|
HiLink jinjaFunction jinjaFilter
|
||||||
|
|
||||||
|
HiLink jinjaTagDelim jinjaTagBlock
|
||||||
|
HiLink jinjaVarDelim jinjaVarBlock
|
||||||
|
HiLink jinjaCommentDelim jinjaComment
|
||||||
|
HiLink jinjaRawDelim jinja
|
||||||
|
|
||||||
|
HiLink jinjaSpecial Special
|
||||||
|
HiLink jinjaOperator Normal
|
||||||
|
HiLink jinjaRaw Normal
|
||||||
|
HiLink jinjaTagBlock PreProc
|
||||||
|
HiLink jinjaVarBlock PreProc
|
||||||
|
HiLink jinjaStatement Statement
|
||||||
|
HiLink jinjaFilter Function
|
||||||
|
HiLink jinjaBlockName Function
|
||||||
|
HiLink jinjaVariable Identifier
|
||||||
|
HiLink jinjaString Constant
|
||||||
|
HiLink jinjaNumber Constant
|
||||||
|
HiLink jinjaComment Comment
|
||||||
|
|
||||||
|
delcommand HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "jinja"
|
||||||
|
|
||||||
|
if main_syntax == 'jinja'
|
||||||
|
unlet main_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
139
syntax/jinja2.vim
Normal file
139
syntax/jinja2.vim
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Jinja template
|
||||||
|
" Maintainer: Armin Ronacher <armin.ronacher@active-4.com>
|
||||||
|
" Last Change: 2008 May 9
|
||||||
|
" Version: 1.1
|
||||||
|
"
|
||||||
|
" Known Bugs:
|
||||||
|
" because of odd limitations dicts and the modulo operator
|
||||||
|
" appear wrong in the template.
|
||||||
|
"
|
||||||
|
" Changes:
|
||||||
|
"
|
||||||
|
" 2008 May 9: Added support for Jinja2 changes (new keyword rules)
|
||||||
|
|
||||||
|
" .vimrc variable to disable html highlighting
|
||||||
|
if !exists('g:jinja_syntax_html')
|
||||||
|
let g:jinja_syntax_html=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" For version 5.x: Clear all syntax items
|
||||||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
|
if !exists("main_syntax")
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let main_syntax = 'jinja'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Pull in the HTML syntax.
|
||||||
|
if g:jinja_syntax_html
|
||||||
|
if version < 600
|
||||||
|
so <sfile>:p:h/html.vim
|
||||||
|
else
|
||||||
|
runtime! syntax/html.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax case match
|
||||||
|
|
||||||
|
" Jinja template built-in tags and parameters (without filter, macro, is and raw, they
|
||||||
|
" have special threatment)
|
||||||
|
syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained and if else in not or recursive as import
|
||||||
|
|
||||||
|
syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained is filter skipwhite nextgroup=jinjaFilter
|
||||||
|
syn keyword jinjaStatement containedin=jinjaTagBlock contained macro skipwhite nextgroup=jinjaFunction
|
||||||
|
syn keyword jinjaStatement containedin=jinjaTagBlock contained block skipwhite nextgroup=jinjaBlockName
|
||||||
|
|
||||||
|
" Variable Names
|
||||||
|
syn match jinjaVariable containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
syn keyword jinjaSpecial containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained false true none False True None loop super caller varargs kwargs
|
||||||
|
|
||||||
|
" Filters
|
||||||
|
syn match jinjaOperator "|" containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained skipwhite nextgroup=jinjaFilter
|
||||||
|
syn match jinjaFilter contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
syn match jinjaFunction contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
syn match jinjaBlockName contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
|
||||||
|
" Jinja template constants
|
||||||
|
syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@<!\(\(\\\\\)\@>\)*\\"/ end=/"/
|
||||||
|
syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@<!\(\(\\\\\)\@>\)*\\'/ end=/'/
|
||||||
|
syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/
|
||||||
|
|
||||||
|
" Operators
|
||||||
|
syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[+\-*\/<>=!,:]/
|
||||||
|
syn match jinjaPunctuation containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[()\[\]]/
|
||||||
|
syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /\./ nextgroup=jinjaAttribute
|
||||||
|
syn match jinjaAttribute contained /[a-zA-Z_][a-zA-Z0-9_]*/
|
||||||
|
|
||||||
|
" Jinja template tag and variable blocks
|
||||||
|
syn region jinjaNested matchgroup=jinjaOperator start="(" end=")" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
|
||||||
|
syn region jinjaNested matchgroup=jinjaOperator start="\[" end="\]" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
|
||||||
|
syn region jinjaNested matchgroup=jinjaOperator start="{" end="}" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
|
||||||
|
syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
|
||||||
|
|
||||||
|
syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
|
||||||
|
|
||||||
|
" Jinja template 'raw' tag
|
||||||
|
syn region jinjaRaw matchgroup=jinjaRawDelim start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,jinjaComment
|
||||||
|
|
||||||
|
" Jinja comments
|
||||||
|
syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString
|
||||||
|
|
||||||
|
" Block start keywords. A bit tricker. We only highlight at the start of a
|
||||||
|
" tag block and only if the name is not followed by a comma or equals sign
|
||||||
|
" which usually means that we have to deal with an assignment.
|
||||||
|
syn match jinjaStatement containedin=jinjaTagBlock contained /\({%-\?\s*\)\@<=\<[a-zA-Z_][a-zA-Z0-9_]*\>\(\s*[,=]\)\@!/
|
||||||
|
|
||||||
|
" and context modifiers
|
||||||
|
syn match jinjaStatement containedin=jinjaTagBlock contained /\<with\(out\)\?\s\+context\>/
|
||||||
|
|
||||||
|
|
||||||
|
" Define the default highlighting.
|
||||||
|
" For version 5.7 and earlier: only when not done already
|
||||||
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||||
|
if version >= 508 || !exists("did_jinja_syn_inits")
|
||||||
|
if version < 508
|
||||||
|
let did_jinja_syn_inits = 1
|
||||||
|
command -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
HiLink jinjaPunctuation jinjaOperator
|
||||||
|
HiLink jinjaAttribute jinjaVariable
|
||||||
|
HiLink jinjaFunction jinjaFilter
|
||||||
|
|
||||||
|
HiLink jinjaTagDelim jinjaTagBlock
|
||||||
|
HiLink jinjaVarDelim jinjaVarBlock
|
||||||
|
HiLink jinjaCommentDelim jinjaComment
|
||||||
|
HiLink jinjaRawDelim jinja
|
||||||
|
|
||||||
|
HiLink jinjaSpecial Special
|
||||||
|
HiLink jinjaOperator Normal
|
||||||
|
HiLink jinjaRaw Normal
|
||||||
|
HiLink jinjaTagBlock PreProc
|
||||||
|
HiLink jinjaVarBlock PreProc
|
||||||
|
HiLink jinjaStatement Statement
|
||||||
|
HiLink jinjaFilter Function
|
||||||
|
HiLink jinjaBlockName Function
|
||||||
|
HiLink jinjaVariable Identifier
|
||||||
|
HiLink jinjaString Constant
|
||||||
|
HiLink jinjaNumber Constant
|
||||||
|
HiLink jinjaComment Comment
|
||||||
|
|
||||||
|
delcommand HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "jinja"
|
||||||
|
|
||||||
|
if main_syntax == 'jinja'
|
||||||
|
unlet main_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Kotlin
|
" Language: Kotlin
|
||||||
" Maintainer: Alexander Udalov
|
" Maintainer: Alexander Udalov
|
||||||
" Latest Revision: 1 October 2015
|
" Latest Revision: 7 December 2015
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
@@ -15,7 +15,7 @@ syn keyword ktStatement break continue return
|
|||||||
syn keyword ktConditional if else when
|
syn keyword ktConditional if else when
|
||||||
syn keyword ktRepeat do for while
|
syn keyword ktRepeat do for while
|
||||||
syn keyword ktOperator as in is by
|
syn keyword ktOperator as in is by
|
||||||
syn keyword ktKeyword get set out super this This where
|
syn keyword ktKeyword get set out super this where
|
||||||
syn keyword ktException try catch finally throw
|
syn keyword ktException try catch finally throw
|
||||||
|
|
||||||
syn keyword ktInclude import package
|
syn keyword ktInclude import package
|
||||||
|
|||||||
204
syntax/nginx.vim
204
syntax/nginx.vim
@@ -11,12 +11,11 @@ setlocal iskeyword+=.
|
|||||||
setlocal iskeyword+=/
|
setlocal iskeyword+=/
|
||||||
setlocal iskeyword+=:
|
setlocal iskeyword+=:
|
||||||
|
|
||||||
syn match ngxVariable '\$\w\w*'
|
syn match ngxVariable '\$\(\w\+\|{\w\+}\)'
|
||||||
syn match ngxVariableBlock '\$\w\w*' contained
|
syn match ngxVariableBlock '\$\(\w\+\|{\w\+}\)' contained
|
||||||
syn match ngxVariableString '\$\w\w*' contained
|
syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained
|
||||||
syn region ngxBlock start=+^+ end=+{+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline
|
syn region ngxBlock start=+^+ end=+{+ skip=+\${+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline
|
||||||
syn region ngxString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=ngxVariableString oneline
|
syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString
|
||||||
syn region ngxString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=ngxVariableString oneline
|
|
||||||
syn match ngxComment ' *#.*$'
|
syn match ngxComment ' *#.*$'
|
||||||
|
|
||||||
syn keyword ngxBoolean on
|
syn keyword ngxBoolean on
|
||||||
@@ -34,6 +33,7 @@ syn keyword ngxDirectiveBlock limit_except contained
|
|||||||
syn keyword ngxDirectiveBlock if contained
|
syn keyword ngxDirectiveBlock if contained
|
||||||
syn keyword ngxDirectiveBlock geo contained
|
syn keyword ngxDirectiveBlock geo contained
|
||||||
syn keyword ngxDirectiveBlock map contained
|
syn keyword ngxDirectiveBlock map contained
|
||||||
|
syn keyword ngxDirectiveBlock split_clients contained
|
||||||
|
|
||||||
syn keyword ngxDirectiveImportant include
|
syn keyword ngxDirectiveImportant include
|
||||||
syn keyword ngxDirectiveImportant root
|
syn keyword ngxDirectiveImportant root
|
||||||
@@ -44,6 +44,8 @@ syn keyword ngxDirectiveImportant internal
|
|||||||
syn keyword ngxDirectiveImportant proxy_pass
|
syn keyword ngxDirectiveImportant proxy_pass
|
||||||
syn keyword ngxDirectiveImportant memcached_pass
|
syn keyword ngxDirectiveImportant memcached_pass
|
||||||
syn keyword ngxDirectiveImportant fastcgi_pass
|
syn keyword ngxDirectiveImportant fastcgi_pass
|
||||||
|
syn keyword ngxDirectiveImportant scgi_pass
|
||||||
|
syn keyword ngxDirectiveImportant uwsgi_pass
|
||||||
syn keyword ngxDirectiveImportant try_files
|
syn keyword ngxDirectiveImportant try_files
|
||||||
|
|
||||||
syn keyword ngxDirectiveControl break
|
syn keyword ngxDirectiveControl break
|
||||||
@@ -56,12 +58,15 @@ syn keyword ngxDirectiveError post_action
|
|||||||
|
|
||||||
syn keyword ngxDirectiveDeprecated connections
|
syn keyword ngxDirectiveDeprecated connections
|
||||||
syn keyword ngxDirectiveDeprecated imap
|
syn keyword ngxDirectiveDeprecated imap
|
||||||
|
syn keyword ngxDirectiveDeprecated limit_zone
|
||||||
syn keyword ngxDirectiveDeprecated open_file_cache_retest
|
syn keyword ngxDirectiveDeprecated open_file_cache_retest
|
||||||
syn keyword ngxDirectiveDeprecated optimize_server_names
|
syn keyword ngxDirectiveDeprecated optimize_server_names
|
||||||
syn keyword ngxDirectiveDeprecated satisfy_any
|
syn keyword ngxDirectiveDeprecated satisfy_any
|
||||||
|
syn keyword ngxDirectiveDeprecated so_keepalive
|
||||||
|
|
||||||
syn keyword ngxDirective accept_mutex
|
syn keyword ngxDirective accept_mutex
|
||||||
syn keyword ngxDirective accept_mutex_delay
|
syn keyword ngxDirective accept_mutex_delay
|
||||||
|
syn keyword ngxDirective acceptex_read
|
||||||
syn keyword ngxDirective access_log
|
syn keyword ngxDirective access_log
|
||||||
syn keyword ngxDirective add_after_body
|
syn keyword ngxDirective add_after_body
|
||||||
syn keyword ngxDirective add_before_body
|
syn keyword ngxDirective add_before_body
|
||||||
@@ -77,11 +82,14 @@ syn keyword ngxDirective auth_basic_user_file
|
|||||||
syn keyword ngxDirective auth_http
|
syn keyword ngxDirective auth_http
|
||||||
syn keyword ngxDirective auth_http_header
|
syn keyword ngxDirective auth_http_header
|
||||||
syn keyword ngxDirective auth_http_timeout
|
syn keyword ngxDirective auth_http_timeout
|
||||||
|
syn keyword ngxDirective auth_request
|
||||||
|
syn keyword ngxDirective auth_request_set
|
||||||
syn keyword ngxDirective autoindex
|
syn keyword ngxDirective autoindex
|
||||||
syn keyword ngxDirective autoindex_exact_size
|
syn keyword ngxDirective autoindex_exact_size
|
||||||
syn keyword ngxDirective autoindex_localtime
|
syn keyword ngxDirective autoindex_localtime
|
||||||
syn keyword ngxDirective charset
|
syn keyword ngxDirective charset
|
||||||
syn keyword ngxDirective charset_types
|
syn keyword ngxDirective charset_types
|
||||||
|
syn keyword ngxDirective chunked_transfer_encoding
|
||||||
syn keyword ngxDirective client_body_buffer_size
|
syn keyword ngxDirective client_body_buffer_size
|
||||||
syn keyword ngxDirective client_body_in_file_only
|
syn keyword ngxDirective client_body_in_file_only
|
||||||
syn keyword ngxDirective client_body_in_single_buffer
|
syn keyword ngxDirective client_body_in_single_buffer
|
||||||
@@ -105,32 +113,44 @@ syn keyword ngxDirective devpoll_changes
|
|||||||
syn keyword ngxDirective devpoll_events
|
syn keyword ngxDirective devpoll_events
|
||||||
syn keyword ngxDirective directio
|
syn keyword ngxDirective directio
|
||||||
syn keyword ngxDirective directio_alignment
|
syn keyword ngxDirective directio_alignment
|
||||||
|
syn keyword ngxDirective disable_symlinks
|
||||||
syn keyword ngxDirective empty_gif
|
syn keyword ngxDirective empty_gif
|
||||||
syn keyword ngxDirective env
|
syn keyword ngxDirective env
|
||||||
syn keyword ngxDirective epoll_events
|
syn keyword ngxDirective epoll_events
|
||||||
syn keyword ngxDirective error_log
|
syn keyword ngxDirective error_log
|
||||||
|
syn keyword ngxDirective etag
|
||||||
syn keyword ngxDirective eventport_events
|
syn keyword ngxDirective eventport_events
|
||||||
syn keyword ngxDirective expires
|
syn keyword ngxDirective expires
|
||||||
syn keyword ngxDirective fastcgi_bind
|
syn keyword ngxDirective fastcgi_bind
|
||||||
syn keyword ngxDirective fastcgi_buffer_size
|
syn keyword ngxDirective fastcgi_buffer_size
|
||||||
|
syn keyword ngxDirective fastcgi_buffering
|
||||||
syn keyword ngxDirective fastcgi_buffers
|
syn keyword ngxDirective fastcgi_buffers
|
||||||
syn keyword ngxDirective fastcgi_busy_buffers_size
|
syn keyword ngxDirective fastcgi_busy_buffers_size
|
||||||
syn keyword ngxDirective fastcgi_cache
|
syn keyword ngxDirective fastcgi_cache
|
||||||
|
syn keyword ngxDirective fastcgi_cache_bypass
|
||||||
syn keyword ngxDirective fastcgi_cache_key
|
syn keyword ngxDirective fastcgi_cache_key
|
||||||
|
syn keyword ngxDirective fastcgi_cache_lock
|
||||||
|
syn keyword ngxDirective fastcgi_cache_lock_timeout
|
||||||
syn keyword ngxDirective fastcgi_cache_methods
|
syn keyword ngxDirective fastcgi_cache_methods
|
||||||
syn keyword ngxDirective fastcgi_cache_min_uses
|
syn keyword ngxDirective fastcgi_cache_min_uses
|
||||||
syn keyword ngxDirective fastcgi_cache_path
|
syn keyword ngxDirective fastcgi_cache_path
|
||||||
|
syn keyword ngxDirective fastcgi_cache_revalidate
|
||||||
syn keyword ngxDirective fastcgi_cache_use_stale
|
syn keyword ngxDirective fastcgi_cache_use_stale
|
||||||
syn keyword ngxDirective fastcgi_cache_valid
|
syn keyword ngxDirective fastcgi_cache_valid
|
||||||
syn keyword ngxDirective fastcgi_catch_stderr
|
syn keyword ngxDirective fastcgi_catch_stderr
|
||||||
syn keyword ngxDirective fastcgi_connect_timeout
|
syn keyword ngxDirective fastcgi_connect_timeout
|
||||||
|
syn keyword ngxDirective fastcgi_force_ranges
|
||||||
syn keyword ngxDirective fastcgi_hide_header
|
syn keyword ngxDirective fastcgi_hide_header
|
||||||
syn keyword ngxDirective fastcgi_ignore_client_abort
|
syn keyword ngxDirective fastcgi_ignore_client_abort
|
||||||
syn keyword ngxDirective fastcgi_ignore_headers
|
syn keyword ngxDirective fastcgi_ignore_headers
|
||||||
syn keyword ngxDirective fastcgi_index
|
syn keyword ngxDirective fastcgi_index
|
||||||
syn keyword ngxDirective fastcgi_intercept_errors
|
syn keyword ngxDirective fastcgi_intercept_errors
|
||||||
|
syn keyword ngxDirective fastcgi_keep_conn
|
||||||
syn keyword ngxDirective fastcgi_max_temp_file_size
|
syn keyword ngxDirective fastcgi_max_temp_file_size
|
||||||
syn keyword ngxDirective fastcgi_next_upstream
|
syn keyword ngxDirective fastcgi_next_upstream
|
||||||
|
syn keyword ngxDirective fastcgi_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective fastcgi_next_upstream_tries
|
||||||
|
syn keyword ngxDirective fastcgi_no_cache
|
||||||
syn keyword ngxDirective fastcgi_param
|
syn keyword ngxDirective fastcgi_param
|
||||||
syn keyword ngxDirective fastcgi_pass_header
|
syn keyword ngxDirective fastcgi_pass_header
|
||||||
syn keyword ngxDirective fastcgi_pass_request_body
|
syn keyword ngxDirective fastcgi_pass_request_body
|
||||||
@@ -143,12 +163,15 @@ syn keyword ngxDirective fastcgi_store
|
|||||||
syn keyword ngxDirective fastcgi_store_access
|
syn keyword ngxDirective fastcgi_store_access
|
||||||
syn keyword ngxDirective fastcgi_temp_file_write_size
|
syn keyword ngxDirective fastcgi_temp_file_write_size
|
||||||
syn keyword ngxDirective fastcgi_temp_path
|
syn keyword ngxDirective fastcgi_temp_path
|
||||||
syn keyword ngxDirective fastcgi_upstream_fail_timeout
|
|
||||||
syn keyword ngxDirective fastcgi_upstream_max_fails
|
|
||||||
syn keyword ngxDirective flv
|
syn keyword ngxDirective flv
|
||||||
syn keyword ngxDirective geoip_city
|
syn keyword ngxDirective geoip_city
|
||||||
syn keyword ngxDirective geoip_country
|
syn keyword ngxDirective geoip_country
|
||||||
|
syn keyword ngxDirective geoip_org
|
||||||
|
syn keyword ngxDirective geoip_proxy
|
||||||
|
syn keyword ngxDirective geoip_proxy_recursive
|
||||||
syn keyword ngxDirective google_perftools_profiles
|
syn keyword ngxDirective google_perftools_profiles
|
||||||
|
syn keyword ngxDirective gunzip
|
||||||
|
syn keyword ngxDirective gunzip_buffers
|
||||||
syn keyword ngxDirective gzip
|
syn keyword ngxDirective gzip
|
||||||
syn keyword ngxDirective gzip_buffers
|
syn keyword ngxDirective gzip_buffers
|
||||||
syn keyword ngxDirective gzip_comp_level
|
syn keyword ngxDirective gzip_comp_level
|
||||||
@@ -162,30 +185,40 @@ syn keyword ngxDirective gzip_static
|
|||||||
syn keyword ngxDirective gzip_types
|
syn keyword ngxDirective gzip_types
|
||||||
syn keyword ngxDirective gzip_vary
|
syn keyword ngxDirective gzip_vary
|
||||||
syn keyword ngxDirective gzip_window
|
syn keyword ngxDirective gzip_window
|
||||||
|
syn keyword ngxDirective hash
|
||||||
syn keyword ngxDirective if_modified_since
|
syn keyword ngxDirective if_modified_since
|
||||||
syn keyword ngxDirective ignore_invalid_headers
|
syn keyword ngxDirective ignore_invalid_headers
|
||||||
syn keyword ngxDirective image_filter
|
syn keyword ngxDirective image_filter
|
||||||
syn keyword ngxDirective image_filter_buffer
|
syn keyword ngxDirective image_filter_buffer
|
||||||
|
syn keyword ngxDirective image_filter_interlace
|
||||||
syn keyword ngxDirective image_filter_jpeg_quality
|
syn keyword ngxDirective image_filter_jpeg_quality
|
||||||
|
syn keyword ngxDirective image_filter_sharpen
|
||||||
syn keyword ngxDirective image_filter_transparency
|
syn keyword ngxDirective image_filter_transparency
|
||||||
syn keyword ngxDirective imap_auth
|
syn keyword ngxDirective imap_auth
|
||||||
syn keyword ngxDirective imap_capabilities
|
syn keyword ngxDirective imap_capabilities
|
||||||
syn keyword ngxDirective imap_client_buffer
|
syn keyword ngxDirective imap_client_buffer
|
||||||
syn keyword ngxDirective index
|
syn keyword ngxDirective index
|
||||||
|
syn keyword ngxDirective iocp_threads
|
||||||
syn keyword ngxDirective ip_hash
|
syn keyword ngxDirective ip_hash
|
||||||
|
syn keyword ngxDirective keepalive
|
||||||
|
syn keyword ngxDirective keepalive_disable
|
||||||
syn keyword ngxDirective keepalive_requests
|
syn keyword ngxDirective keepalive_requests
|
||||||
syn keyword ngxDirective keepalive_timeout
|
syn keyword ngxDirective keepalive_timeout
|
||||||
syn keyword ngxDirective kqueue_changes
|
syn keyword ngxDirective kqueue_changes
|
||||||
syn keyword ngxDirective kqueue_events
|
syn keyword ngxDirective kqueue_events
|
||||||
syn keyword ngxDirective large_client_header_buffers
|
syn keyword ngxDirective large_client_header_buffers
|
||||||
|
syn keyword ngxDirective least_conn
|
||||||
syn keyword ngxDirective limit_conn
|
syn keyword ngxDirective limit_conn
|
||||||
syn keyword ngxDirective limit_conn_log_level
|
syn keyword ngxDirective limit_conn_log_level
|
||||||
|
syn keyword ngxDirective limit_conn_status
|
||||||
|
syn keyword ngxDirective limit_conn_zone
|
||||||
syn keyword ngxDirective limit_rate
|
syn keyword ngxDirective limit_rate
|
||||||
syn keyword ngxDirective limit_rate_after
|
syn keyword ngxDirective limit_rate_after
|
||||||
syn keyword ngxDirective limit_req
|
syn keyword ngxDirective limit_req
|
||||||
syn keyword ngxDirective limit_req_log_level
|
syn keyword ngxDirective limit_req_log_level
|
||||||
|
syn keyword ngxDirective limit_req_status
|
||||||
syn keyword ngxDirective limit_req_zone
|
syn keyword ngxDirective limit_req_zone
|
||||||
syn keyword ngxDirective limit_zone
|
syn keyword ngxDirective lingering_close
|
||||||
syn keyword ngxDirective lingering_time
|
syn keyword ngxDirective lingering_time
|
||||||
syn keyword ngxDirective lingering_timeout
|
syn keyword ngxDirective lingering_timeout
|
||||||
syn keyword ngxDirective lock_file
|
syn keyword ngxDirective lock_file
|
||||||
@@ -195,21 +228,27 @@ syn keyword ngxDirective log_subrequest
|
|||||||
syn keyword ngxDirective map_hash_bucket_size
|
syn keyword ngxDirective map_hash_bucket_size
|
||||||
syn keyword ngxDirective map_hash_max_size
|
syn keyword ngxDirective map_hash_max_size
|
||||||
syn keyword ngxDirective master_process
|
syn keyword ngxDirective master_process
|
||||||
|
syn keyword ngxDirective max_ranges
|
||||||
syn keyword ngxDirective memcached_bind
|
syn keyword ngxDirective memcached_bind
|
||||||
syn keyword ngxDirective memcached_buffer_size
|
syn keyword ngxDirective memcached_buffer_size
|
||||||
syn keyword ngxDirective memcached_connect_timeout
|
syn keyword ngxDirective memcached_connect_timeout
|
||||||
|
syn keyword ngxDirective memcached_gzip_flag
|
||||||
syn keyword ngxDirective memcached_next_upstream
|
syn keyword ngxDirective memcached_next_upstream
|
||||||
|
syn keyword ngxDirective memcached_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective memcached_next_upstream_tries
|
||||||
syn keyword ngxDirective memcached_read_timeout
|
syn keyword ngxDirective memcached_read_timeout
|
||||||
syn keyword ngxDirective memcached_send_timeout
|
syn keyword ngxDirective memcached_send_timeout
|
||||||
syn keyword ngxDirective memcached_upstream_fail_timeout
|
|
||||||
syn keyword ngxDirective memcached_upstream_max_fails
|
|
||||||
syn keyword ngxDirective merge_slashes
|
syn keyword ngxDirective merge_slashes
|
||||||
syn keyword ngxDirective min_delete_depth
|
syn keyword ngxDirective min_delete_depth
|
||||||
syn keyword ngxDirective modern_browser
|
syn keyword ngxDirective modern_browser
|
||||||
syn keyword ngxDirective modern_browser_value
|
syn keyword ngxDirective modern_browser_value
|
||||||
|
syn keyword ngxDirective mp4
|
||||||
|
syn keyword ngxDirective mp4_buffer_size
|
||||||
|
syn keyword ngxDirective mp4_max_buffer_size
|
||||||
syn keyword ngxDirective msie_padding
|
syn keyword ngxDirective msie_padding
|
||||||
syn keyword ngxDirective msie_refresh
|
syn keyword ngxDirective msie_refresh
|
||||||
syn keyword ngxDirective multi_accept
|
syn keyword ngxDirective multi_accept
|
||||||
|
syn keyword ngxDirective mysql_test
|
||||||
syn keyword ngxDirective open_file_cache
|
syn keyword ngxDirective open_file_cache
|
||||||
syn keyword ngxDirective open_file_cache_errors
|
syn keyword ngxDirective open_file_cache_errors
|
||||||
syn keyword ngxDirective open_file_cache_events
|
syn keyword ngxDirective open_file_cache_events
|
||||||
@@ -218,6 +257,7 @@ syn keyword ngxDirective open_file_cache_valid
|
|||||||
syn keyword ngxDirective open_log_file_cache
|
syn keyword ngxDirective open_log_file_cache
|
||||||
syn keyword ngxDirective output_buffers
|
syn keyword ngxDirective output_buffers
|
||||||
syn keyword ngxDirective override_charset
|
syn keyword ngxDirective override_charset
|
||||||
|
syn keyword ngxDirective pcre_jit
|
||||||
syn keyword ngxDirective perl
|
syn keyword ngxDirective perl
|
||||||
syn keyword ngxDirective perl_modules
|
syn keyword ngxDirective perl_modules
|
||||||
syn keyword ngxDirective perl_require
|
syn keyword ngxDirective perl_require
|
||||||
@@ -226,6 +266,7 @@ syn keyword ngxDirective pid
|
|||||||
syn keyword ngxDirective pop3_auth
|
syn keyword ngxDirective pop3_auth
|
||||||
syn keyword ngxDirective pop3_capabilities
|
syn keyword ngxDirective pop3_capabilities
|
||||||
syn keyword ngxDirective port_in_redirect
|
syn keyword ngxDirective port_in_redirect
|
||||||
|
syn keyword ngxDirective post_acceptex
|
||||||
syn keyword ngxDirective postpone_gzipping
|
syn keyword ngxDirective postpone_gzipping
|
||||||
syn keyword ngxDirective postpone_output
|
syn keyword ngxDirective postpone_output
|
||||||
syn keyword ngxDirective protocol
|
syn keyword ngxDirective protocol
|
||||||
@@ -237,22 +278,33 @@ syn keyword ngxDirective proxy_buffering
|
|||||||
syn keyword ngxDirective proxy_buffers
|
syn keyword ngxDirective proxy_buffers
|
||||||
syn keyword ngxDirective proxy_busy_buffers_size
|
syn keyword ngxDirective proxy_busy_buffers_size
|
||||||
syn keyword ngxDirective proxy_cache
|
syn keyword ngxDirective proxy_cache
|
||||||
|
syn keyword ngxDirective proxy_cache_bypass
|
||||||
syn keyword ngxDirective proxy_cache_key
|
syn keyword ngxDirective proxy_cache_key
|
||||||
|
syn keyword ngxDirective proxy_cache_lock
|
||||||
|
syn keyword ngxDirective proxy_cache_lock_timeout
|
||||||
syn keyword ngxDirective proxy_cache_methods
|
syn keyword ngxDirective proxy_cache_methods
|
||||||
syn keyword ngxDirective proxy_cache_min_uses
|
syn keyword ngxDirective proxy_cache_min_uses
|
||||||
syn keyword ngxDirective proxy_cache_path
|
syn keyword ngxDirective proxy_cache_path
|
||||||
|
syn keyword ngxDirective proxy_cache_revalidate
|
||||||
syn keyword ngxDirective proxy_cache_use_stale
|
syn keyword ngxDirective proxy_cache_use_stale
|
||||||
syn keyword ngxDirective proxy_cache_valid
|
syn keyword ngxDirective proxy_cache_valid
|
||||||
syn keyword ngxDirective proxy_connect_timeout
|
syn keyword ngxDirective proxy_connect_timeout
|
||||||
|
syn keyword ngxDirective proxy_cookie_domain
|
||||||
|
syn keyword ngxDirective proxy_cookie_path
|
||||||
|
syn keyword ngxDirective proxy_force_ranges
|
||||||
syn keyword ngxDirective proxy_headers_hash_bucket_size
|
syn keyword ngxDirective proxy_headers_hash_bucket_size
|
||||||
syn keyword ngxDirective proxy_headers_hash_max_size
|
syn keyword ngxDirective proxy_headers_hash_max_size
|
||||||
syn keyword ngxDirective proxy_hide_header
|
syn keyword ngxDirective proxy_hide_header
|
||||||
|
syn keyword ngxDirective proxy_http_version
|
||||||
syn keyword ngxDirective proxy_ignore_client_abort
|
syn keyword ngxDirective proxy_ignore_client_abort
|
||||||
syn keyword ngxDirective proxy_ignore_headers
|
syn keyword ngxDirective proxy_ignore_headers
|
||||||
syn keyword ngxDirective proxy_intercept_errors
|
syn keyword ngxDirective proxy_intercept_errors
|
||||||
syn keyword ngxDirective proxy_max_temp_file_size
|
syn keyword ngxDirective proxy_max_temp_file_size
|
||||||
syn keyword ngxDirective proxy_method
|
syn keyword ngxDirective proxy_method
|
||||||
syn keyword ngxDirective proxy_next_upstream
|
syn keyword ngxDirective proxy_next_upstream
|
||||||
|
syn keyword ngxDirective proxy_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective proxy_next_upstream_tries
|
||||||
|
syn keyword ngxDirective proxy_no_cache
|
||||||
syn keyword ngxDirective proxy_pass_error_message
|
syn keyword ngxDirective proxy_pass_error_message
|
||||||
syn keyword ngxDirective proxy_pass_header
|
syn keyword ngxDirective proxy_pass_header
|
||||||
syn keyword ngxDirective proxy_pass_request_body
|
syn keyword ngxDirective proxy_pass_request_body
|
||||||
@@ -263,18 +315,27 @@ syn keyword ngxDirective proxy_send_lowat
|
|||||||
syn keyword ngxDirective proxy_send_timeout
|
syn keyword ngxDirective proxy_send_timeout
|
||||||
syn keyword ngxDirective proxy_set_body
|
syn keyword ngxDirective proxy_set_body
|
||||||
syn keyword ngxDirective proxy_set_header
|
syn keyword ngxDirective proxy_set_header
|
||||||
|
syn keyword ngxDirective proxy_ssl_ciphers
|
||||||
|
syn keyword ngxDirective proxy_ssl_crl
|
||||||
|
syn keyword ngxDirective proxy_ssl_name
|
||||||
|
syn keyword ngxDirective proxy_ssl_protocols
|
||||||
|
syn keyword ngxDirective proxy_ssl_server_name
|
||||||
syn keyword ngxDirective proxy_ssl_session_reuse
|
syn keyword ngxDirective proxy_ssl_session_reuse
|
||||||
|
syn keyword ngxDirective proxy_ssl_trusted_certificate
|
||||||
|
syn keyword ngxDirective proxy_ssl_verify
|
||||||
|
syn keyword ngxDirective proxy_ssl_verify_depth
|
||||||
syn keyword ngxDirective proxy_store
|
syn keyword ngxDirective proxy_store
|
||||||
syn keyword ngxDirective proxy_store_access
|
syn keyword ngxDirective proxy_store_access
|
||||||
syn keyword ngxDirective proxy_temp_file_write_size
|
syn keyword ngxDirective proxy_temp_file_write_size
|
||||||
syn keyword ngxDirective proxy_temp_path
|
syn keyword ngxDirective proxy_temp_path
|
||||||
syn keyword ngxDirective proxy_timeout
|
syn keyword ngxDirective proxy_timeout
|
||||||
syn keyword ngxDirective proxy_upstream_fail_timeout
|
|
||||||
syn keyword ngxDirective proxy_upstream_max_fails
|
|
||||||
syn keyword ngxDirective random_index
|
syn keyword ngxDirective random_index
|
||||||
syn keyword ngxDirective read_ahead
|
syn keyword ngxDirective read_ahead
|
||||||
syn keyword ngxDirective real_ip_header
|
syn keyword ngxDirective real_ip_header
|
||||||
|
syn keyword ngxDirective real_ip_recursive
|
||||||
syn keyword ngxDirective recursive_error_pages
|
syn keyword ngxDirective recursive_error_pages
|
||||||
|
syn keyword ngxDirective referer_hash_bucket_size
|
||||||
|
syn keyword ngxDirective referer_hash_max_size
|
||||||
syn keyword ngxDirective request_pool_size
|
syn keyword ngxDirective request_pool_size
|
||||||
syn keyword ngxDirective reset_timedout_connection
|
syn keyword ngxDirective reset_timedout_connection
|
||||||
syn keyword ngxDirective resolver
|
syn keyword ngxDirective resolver
|
||||||
@@ -285,6 +346,45 @@ syn keyword ngxDirective rtsig_overflow_test
|
|||||||
syn keyword ngxDirective rtsig_overflow_threshold
|
syn keyword ngxDirective rtsig_overflow_threshold
|
||||||
syn keyword ngxDirective rtsig_signo
|
syn keyword ngxDirective rtsig_signo
|
||||||
syn keyword ngxDirective satisfy
|
syn keyword ngxDirective satisfy
|
||||||
|
syn keyword ngxDirective scgi_bind
|
||||||
|
syn keyword ngxDirective scgi_buffer_size
|
||||||
|
syn keyword ngxDirective scgi_buffering
|
||||||
|
syn keyword ngxDirective scgi_buffers
|
||||||
|
syn keyword ngxDirective scgi_busy_buffers_size
|
||||||
|
syn keyword ngxDirective scgi_cache
|
||||||
|
syn keyword ngxDirective scgi_cache_bypass
|
||||||
|
syn keyword ngxDirective scgi_cache_key
|
||||||
|
syn keyword ngxDirective scgi_cache_lock
|
||||||
|
syn keyword ngxDirective scgi_cache_lock_timeout
|
||||||
|
syn keyword ngxDirective scgi_cache_methods
|
||||||
|
syn keyword ngxDirective scgi_cache_min_uses
|
||||||
|
syn keyword ngxDirective scgi_cache_path
|
||||||
|
syn keyword ngxDirective scgi_cache_revalidate
|
||||||
|
syn keyword ngxDirective scgi_cache_use_stale
|
||||||
|
syn keyword ngxDirective scgi_cache_valid
|
||||||
|
syn keyword ngxDirective scgi_connect_timeout
|
||||||
|
syn keyword ngxDirective scgi_force_ranges
|
||||||
|
syn keyword ngxDirective scgi_hide_header
|
||||||
|
syn keyword ngxDirective scgi_ignore_client_abort
|
||||||
|
syn keyword ngxDirective scgi_ignore_headers
|
||||||
|
syn keyword ngxDirective scgi_intercept_errors
|
||||||
|
syn keyword ngxDirective scgi_max_temp_file_size
|
||||||
|
syn keyword ngxDirective scgi_next_upstream
|
||||||
|
syn keyword ngxDirective scgi_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective scgi_next_upstream_tries
|
||||||
|
syn keyword ngxDirective scgi_no_cache
|
||||||
|
syn keyword ngxDirective scgi_param
|
||||||
|
syn keyword ngxDirective scgi_pass_header
|
||||||
|
syn keyword ngxDirective scgi_pass_request_body
|
||||||
|
syn keyword ngxDirective scgi_pass_request_headers
|
||||||
|
syn keyword ngxDirective scgi_read_timeout
|
||||||
|
syn keyword ngxDirective scgi_send_timeout
|
||||||
|
syn keyword ngxDirective scgi_store
|
||||||
|
syn keyword ngxDirective scgi_store_access
|
||||||
|
syn keyword ngxDirective scgi_temp_file_write_size
|
||||||
|
syn keyword ngxDirective scgi_temp_path
|
||||||
|
syn keyword ngxDirective secure_link
|
||||||
|
syn keyword ngxDirective secure_link_md5
|
||||||
syn keyword ngxDirective secure_link_secret
|
syn keyword ngxDirective secure_link_secret
|
||||||
syn keyword ngxDirective send_lowat
|
syn keyword ngxDirective send_lowat
|
||||||
syn keyword ngxDirective send_timeout
|
syn keyword ngxDirective send_timeout
|
||||||
@@ -299,31 +399,50 @@ syn keyword ngxDirective smtp_auth
|
|||||||
syn keyword ngxDirective smtp_capabilities
|
syn keyword ngxDirective smtp_capabilities
|
||||||
syn keyword ngxDirective smtp_client_buffer
|
syn keyword ngxDirective smtp_client_buffer
|
||||||
syn keyword ngxDirective smtp_greeting_delay
|
syn keyword ngxDirective smtp_greeting_delay
|
||||||
syn keyword ngxDirective so_keepalive
|
|
||||||
syn keyword ngxDirective source_charset
|
syn keyword ngxDirective source_charset
|
||||||
|
syn keyword ngxDirective spdy_chunk_size
|
||||||
|
syn keyword ngxDirective spdy_headers_comp
|
||||||
|
syn keyword ngxDirective spdy_keepalive_timeout
|
||||||
|
syn keyword ngxDirective spdy_max_concurrent_streams
|
||||||
|
syn keyword ngxDirective spdy_pool_size
|
||||||
|
syn keyword ngxDirective spdy_recv_buffer_size
|
||||||
|
syn keyword ngxDirective spdy_recv_timeout
|
||||||
|
syn keyword ngxDirective spdy_streams_index_size
|
||||||
syn keyword ngxDirective ssi
|
syn keyword ngxDirective ssi
|
||||||
syn keyword ngxDirective ssi_ignore_recycled_buffers
|
syn keyword ngxDirective ssi_ignore_recycled_buffers
|
||||||
|
syn keyword ngxDirective ssi_last_modified
|
||||||
syn keyword ngxDirective ssi_min_file_chunk
|
syn keyword ngxDirective ssi_min_file_chunk
|
||||||
syn keyword ngxDirective ssi_silent_errors
|
syn keyword ngxDirective ssi_silent_errors
|
||||||
syn keyword ngxDirective ssi_types
|
syn keyword ngxDirective ssi_types
|
||||||
syn keyword ngxDirective ssi_value_length
|
syn keyword ngxDirective ssi_value_length
|
||||||
syn keyword ngxDirective ssl
|
syn keyword ngxDirective ssl
|
||||||
|
syn keyword ngxDirective ssl_buffer_size
|
||||||
syn keyword ngxDirective ssl_certificate
|
syn keyword ngxDirective ssl_certificate
|
||||||
syn keyword ngxDirective ssl_certificate_key
|
syn keyword ngxDirective ssl_certificate_key
|
||||||
syn keyword ngxDirective ssl_ciphers
|
syn keyword ngxDirective ssl_ciphers
|
||||||
syn keyword ngxDirective ssl_client_certificate
|
syn keyword ngxDirective ssl_client_certificate
|
||||||
syn keyword ngxDirective ssl_crl
|
syn keyword ngxDirective ssl_crl
|
||||||
syn keyword ngxDirective ssl_dhparam
|
syn keyword ngxDirective ssl_dhparam
|
||||||
|
syn keyword ngxDirective ssl_ecdh_curve
|
||||||
syn keyword ngxDirective ssl_engine
|
syn keyword ngxDirective ssl_engine
|
||||||
|
syn keyword ngxDirective ssl_password_file
|
||||||
syn keyword ngxDirective ssl_prefer_server_ciphers
|
syn keyword ngxDirective ssl_prefer_server_ciphers
|
||||||
syn keyword ngxDirective ssl_protocols
|
syn keyword ngxDirective ssl_protocols
|
||||||
syn keyword ngxDirective ssl_session_cache
|
syn keyword ngxDirective ssl_session_cache
|
||||||
|
syn keyword ngxDirective ssl_session_ticket_key
|
||||||
|
syn keyword ngxDirective ssl_session_tickets
|
||||||
syn keyword ngxDirective ssl_session_timeout
|
syn keyword ngxDirective ssl_session_timeout
|
||||||
|
syn keyword ngxDirective ssl_stapling
|
||||||
|
syn keyword ngxDirective ssl_stapling_file
|
||||||
|
syn keyword ngxDirective ssl_stapling_responder
|
||||||
|
syn keyword ngxDirective ssl_stapling_verify
|
||||||
|
syn keyword ngxDirective ssl_trusted_certificate
|
||||||
syn keyword ngxDirective ssl_verify_client
|
syn keyword ngxDirective ssl_verify_client
|
||||||
syn keyword ngxDirective ssl_verify_depth
|
syn keyword ngxDirective ssl_verify_depth
|
||||||
syn keyword ngxDirective starttls
|
syn keyword ngxDirective starttls
|
||||||
syn keyword ngxDirective stub_status
|
syn keyword ngxDirective stub_status
|
||||||
syn keyword ngxDirective sub_filter
|
syn keyword ngxDirective sub_filter
|
||||||
|
syn keyword ngxDirective sub_filter_last_modified
|
||||||
syn keyword ngxDirective sub_filter_once
|
syn keyword ngxDirective sub_filter_once
|
||||||
syn keyword ngxDirective sub_filter_types
|
syn keyword ngxDirective sub_filter_types
|
||||||
syn keyword ngxDirective tcp_nodelay
|
syn keyword ngxDirective tcp_nodelay
|
||||||
@@ -345,9 +464,59 @@ syn keyword ngxDirective userid_name
|
|||||||
syn keyword ngxDirective userid_p3p
|
syn keyword ngxDirective userid_p3p
|
||||||
syn keyword ngxDirective userid_path
|
syn keyword ngxDirective userid_path
|
||||||
syn keyword ngxDirective userid_service
|
syn keyword ngxDirective userid_service
|
||||||
|
syn keyword ngxDirective uwsgi_bind
|
||||||
|
syn keyword ngxDirective uwsgi_buffer_size
|
||||||
|
syn keyword ngxDirective uwsgi_buffering
|
||||||
|
syn keyword ngxDirective uwsgi_buffers
|
||||||
|
syn keyword ngxDirective uwsgi_busy_buffers_size
|
||||||
|
syn keyword ngxDirective uwsgi_cache
|
||||||
|
syn keyword ngxDirective uwsgi_cache_bypass
|
||||||
|
syn keyword ngxDirective uwsgi_cache_key
|
||||||
|
syn keyword ngxDirective uwsgi_cache_lock
|
||||||
|
syn keyword ngxDirective uwsgi_cache_lock_timeout
|
||||||
|
syn keyword ngxDirective uwsgi_cache_methods
|
||||||
|
syn keyword ngxDirective uwsgi_cache_min_uses
|
||||||
|
syn keyword ngxDirective uwsgi_cache_path
|
||||||
|
syn keyword ngxDirective uwsgi_cache_revalidate
|
||||||
|
syn keyword ngxDirective uwsgi_cache_use_stale
|
||||||
|
syn keyword ngxDirective uwsgi_cache_valid
|
||||||
|
syn keyword ngxDirective uwsgi_connect_timeout
|
||||||
|
syn keyword ngxDirective uwsgi_force_ranges
|
||||||
|
syn keyword ngxDirective uwsgi_hide_header
|
||||||
|
syn keyword ngxDirective uwsgi_ignore_client_abort
|
||||||
|
syn keyword ngxDirective uwsgi_ignore_headers
|
||||||
|
syn keyword ngxDirective uwsgi_intercept_errors
|
||||||
|
syn keyword ngxDirective uwsgi_max_temp_file_size
|
||||||
|
syn keyword ngxDirective uwsgi_modifier1
|
||||||
|
syn keyword ngxDirective uwsgi_modifier2
|
||||||
|
syn keyword ngxDirective uwsgi_next_upstream
|
||||||
|
syn keyword ngxDirective uwsgi_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective uwsgi_next_upstream_tries
|
||||||
|
syn keyword ngxDirective uwsgi_no_cache
|
||||||
|
syn keyword ngxDirective uwsgi_param
|
||||||
|
syn keyword ngxDirective uwsgi_pass_header
|
||||||
|
syn keyword ngxDirective uwsgi_pass_request_body
|
||||||
|
syn keyword ngxDirective uwsgi_pass_request_headers
|
||||||
|
syn keyword ngxDirective uwsgi_read_timeout
|
||||||
|
syn keyword ngxDirective uwsgi_send_timeout
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_ciphers
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_crl
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_name
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_protocols
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_server_name
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_session_reuse
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_trusted_certificate
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_verify
|
||||||
|
syn keyword ngxDirective uwsgi_ssl_verify_depth
|
||||||
|
syn keyword ngxDirective uwsgi_store
|
||||||
|
syn keyword ngxDirective uwsgi_store_access
|
||||||
|
syn keyword ngxDirective uwsgi_string
|
||||||
|
syn keyword ngxDirective uwsgi_temp_file_write_size
|
||||||
|
syn keyword ngxDirective uwsgi_temp_path
|
||||||
syn keyword ngxDirective valid_referers
|
syn keyword ngxDirective valid_referers
|
||||||
syn keyword ngxDirective variables_hash_bucket_size
|
syn keyword ngxDirective variables_hash_bucket_size
|
||||||
syn keyword ngxDirective variables_hash_max_size
|
syn keyword ngxDirective variables_hash_max_size
|
||||||
|
syn keyword ngxDirective worker_aio_requests
|
||||||
syn keyword ngxDirective worker_connections
|
syn keyword ngxDirective worker_connections
|
||||||
syn keyword ngxDirective worker_cpu_affinity
|
syn keyword ngxDirective worker_cpu_affinity
|
||||||
syn keyword ngxDirective worker_priority
|
syn keyword ngxDirective worker_priority
|
||||||
@@ -359,6 +528,9 @@ syn keyword ngxDirective worker_threads
|
|||||||
syn keyword ngxDirective working_directory
|
syn keyword ngxDirective working_directory
|
||||||
syn keyword ngxDirective xclient
|
syn keyword ngxDirective xclient
|
||||||
syn keyword ngxDirective xml_entities
|
syn keyword ngxDirective xml_entities
|
||||||
|
syn keyword ngxDirective xslt_last_modified
|
||||||
|
syn keyword ngxDirective xslt_param
|
||||||
|
syn keyword ngxDirective xslt_string_param
|
||||||
syn keyword ngxDirective xslt_stylesheet
|
syn keyword ngxDirective xslt_stylesheet
|
||||||
syn keyword ngxDirective xslt_types
|
syn keyword ngxDirective xslt_types
|
||||||
|
|
||||||
@@ -370,7 +542,7 @@ syn keyword ngxDirective xslt_types
|
|||||||
syn keyword ngxDirectiveThirdParty set_from_accept_language
|
syn keyword ngxDirectiveThirdParty set_from_accept_language
|
||||||
|
|
||||||
" Access Key Module <http://wiki.nginx.org/NginxHttpAccessKeyModule>
|
" Access Key Module <http://wiki.nginx.org/NginxHttpAccessKeyModule>
|
||||||
" Denies access unless the request URL contains an access key.
|
" Denies access unless the request URL contains an access key.
|
||||||
syn keyword ngxDirectiveThirdParty accesskey
|
syn keyword ngxDirectiveThirdParty accesskey
|
||||||
syn keyword ngxDirectiveThirdParty accesskey_arg
|
syn keyword ngxDirectiveThirdParty accesskey_arg
|
||||||
syn keyword ngxDirectiveThirdParty accesskey_hashmethod
|
syn keyword ngxDirectiveThirdParty accesskey_hashmethod
|
||||||
@@ -524,7 +696,7 @@ syn keyword ngxDirectiveThirdParty mogilefs_send_timeout
|
|||||||
syn keyword ngxDirectiveThirdParty mogilefs_tracker
|
syn keyword ngxDirectiveThirdParty mogilefs_tracker
|
||||||
|
|
||||||
" MP4 Streaming Lite Module <http://wiki.nginx.org/NginxMP4StreamingLite>
|
" MP4 Streaming Lite Module <http://wiki.nginx.org/NginxMP4StreamingLite>
|
||||||
" Will seek to a certain time within H.264/MP4 files when provided with a 'start' parameter in the URL.
|
" Will seek to a certain time within H.264/MP4 files when provided with a 'start' parameter in the URL.
|
||||||
syn keyword ngxDirectiveThirdParty mp4
|
syn keyword ngxDirectiveThirdParty mp4
|
||||||
|
|
||||||
" Nginx Notice Module <http://xph.us/software/nginx-notice/>
|
" Nginx Notice Module <http://xph.us/software/nginx-notice/>
|
||||||
|
|||||||
131
syntax/nix.vim
Normal file
131
syntax/nix.vim
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nix') == -1
|
||||||
|
|
||||||
|
"
|
||||||
|
" Syntax file for Nix
|
||||||
|
"
|
||||||
|
" TODO:
|
||||||
|
" Emphasize :
|
||||||
|
" Deemphasize ;
|
||||||
|
" Consistent ()
|
||||||
|
" rec (red?)
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Operators
|
||||||
|
syn match nixOperator "\V++"
|
||||||
|
syn match nixOperator "\V+"
|
||||||
|
syn match nixOperator "\V!"
|
||||||
|
syn match nixOperator "\V=="
|
||||||
|
syn match nixOperator "\V!="
|
||||||
|
syn match nixOperator "\V&&"
|
||||||
|
syn match nixOperator "\V||"
|
||||||
|
syn match nixOperator "\V->"
|
||||||
|
|
||||||
|
syn match nixOperator "\V-"
|
||||||
|
syn match nixOperator "\V*"
|
||||||
|
syn match nixOperator "\V/"
|
||||||
|
syn match nixOperator "\V>"
|
||||||
|
syn match nixOperator "\V<"
|
||||||
|
|
||||||
|
" Keywords
|
||||||
|
syn keyword nixKeyword let in or assert inherit null with rec
|
||||||
|
syn keyword nixConditional if else then
|
||||||
|
syn keyword nixBoolean true false
|
||||||
|
|
||||||
|
" Builtins
|
||||||
|
syn keyword nixBuiltin builtins abort add attrNames attrValues
|
||||||
|
\ baseNameOf compareVersions concatLists currentSystem deepSeq
|
||||||
|
\ derivation dirOf div elem elemAt filter filterSource fromJSON
|
||||||
|
\ getAttr getEnv hasAttr hashString head import intersectAttrs
|
||||||
|
\ isAttrs isList isFunction isString isInt isBool isNull length
|
||||||
|
\ lessThan listToAttrs map mul parseDrvNames pathExists readDir
|
||||||
|
\ readFile removeAttrs seq stringLength sub substring tail throw
|
||||||
|
\ toFile toJSON toPath toString toXML trace typeOf tryEval
|
||||||
|
|
||||||
|
syn match nixpkgs "<nixpkgs>"
|
||||||
|
syn match nixSpecialOper "\V@\|;\|,\|?\|..."
|
||||||
|
|
||||||
|
" Attribute Lists
|
||||||
|
"syn match nixBrace "\v[(){}\[\]]|rec\s*\{"
|
||||||
|
syn region nixSet matchgroup=nixBraces start="{" end="}" contains=ALL
|
||||||
|
syn region nixRecSet matchgroup=nixBraces start="rec\s*{" end="}" contains=ALL
|
||||||
|
syn region nixList matchgroup=nixBraces start="\[" end="\]" contains=ALLBUT,nixAttr
|
||||||
|
syn match nixAttr "\v[0-9A-Za-z\-\_]+\ze\s*\=" contained
|
||||||
|
|
||||||
|
syn match nixInteger "\v<\d+>"
|
||||||
|
|
||||||
|
" Functions
|
||||||
|
syn match nixFuncArg "\v\zs\w+\ze\s*:"
|
||||||
|
|
||||||
|
" TODO: Exclude ; and other illegal characters
|
||||||
|
syn match nixPath "\v\S*/\S+|\S+/\S*"
|
||||||
|
|
||||||
|
" This operator is placed after nixPath to override nixPath's highlighting
|
||||||
|
syn match nixOperator "\V//"
|
||||||
|
|
||||||
|
" Strings
|
||||||
|
syn match nixStringIndentedEscapes +'''\|''\${\|''\\n\|''\\r\|''\\t+
|
||||||
|
syn match nixStringEscapes +\\"\|\\\${\|\\n\|\\r\|\\t\|\\\\+
|
||||||
|
syn region nixStringIndented
|
||||||
|
\ start=+''+
|
||||||
|
\ skip=+'''+
|
||||||
|
\ end=+''+
|
||||||
|
\ contains=nixAntiquotation,nixStringIndentedEscapes
|
||||||
|
syn region nixString
|
||||||
|
\ start=+"+
|
||||||
|
\ skip=+\\"+
|
||||||
|
\ end=+"+
|
||||||
|
\ contains=nixAntiquotation,nixStringEscapes
|
||||||
|
|
||||||
|
" If this contains nixBrace, it ignores its own closing brace and syntax gets
|
||||||
|
" thrown way off contains=ALLBUT,nixBrace
|
||||||
|
syn region nixAntiquotation start=+\${+ end=+}+ contains=nixAntiQuotation
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+ contains=nixTodos
|
||||||
|
syn match nixEndOfLineComment "#.*$" contains=nixTodos
|
||||||
|
syntax keyword nixTodos TODO XXX FIXME NOTE TODOS contained
|
||||||
|
|
||||||
|
" Special (Delimiter
|
||||||
|
hi def link nixBraces Delimiter
|
||||||
|
hi def link nixpkgs Special
|
||||||
|
hi def link nixSpecialOper Special
|
||||||
|
hi def link nixStringIndentedEscapes SpecialChar
|
||||||
|
hi def link nixStringEscapes SpecialChar
|
||||||
|
hi def link nixBuiltin Special
|
||||||
|
hi def link nixOperator Operator
|
||||||
|
|
||||||
|
" Constants
|
||||||
|
hi def link nixBoolean Boolean
|
||||||
|
hi def link nixInteger Number
|
||||||
|
hi def link nixString String
|
||||||
|
hi def link nixStringIndented String
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
hi def link nixMultiLineComment Comment
|
||||||
|
hi def link nixEndOfLineComment Comment
|
||||||
|
|
||||||
|
" Identifiers
|
||||||
|
hi def link nixConditional Conditional
|
||||||
|
hi def link nixKeyword Keyword
|
||||||
|
hi def link nixOperator Operator
|
||||||
|
hi def link nixException Exception
|
||||||
|
hi def link nixAttr Identifier
|
||||||
|
hi def link nixFuncArg Identifier
|
||||||
|
|
||||||
|
" PreProc
|
||||||
|
hi def link nixAntiquotation Macro
|
||||||
|
|
||||||
|
" Underlined (html links)
|
||||||
|
hi def link nixPath Underlined
|
||||||
|
|
||||||
|
" Error
|
||||||
|
|
||||||
|
syn sync maxlines=20000
|
||||||
|
syn sync minlines=50000
|
||||||
|
|
||||||
|
let b:current_syntax = 'nix'
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -244,18 +244,18 @@ syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesD
|
|||||||
|
|
||||||
|
|
||||||
" Simple version of searches and matches
|
" Simple version of searches and matches
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgcn]*+ contains=@perlInterpSQ keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgcn]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlBracesDQ extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgcn]*+ contains=@perlInterpMatch,perlBracesDQ extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgcn]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgcn]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend
|
||||||
|
|
||||||
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
|
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
|
||||||
" cases as the / is used in so many other ways, but these should be the most obvious ones.
|
" cases as the / is used in so many other ways, but these should be the most obvious ones.
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash extend
|
||||||
|
|
||||||
|
|
||||||
" Substitutions
|
" Substitutions
|
||||||
@@ -268,12 +268,12 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s
|
|||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
||||||
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
|
||||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ extend
|
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcern]*+ keepend contained contains=@perlInterpDQ extend
|
||||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
|
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
|
||||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
|
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
|
||||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
|
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
|
||||||
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
|
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
|
||||||
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend extend
|
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcern]*+ contained contains=@perlInterpSQ keepend extend
|
||||||
|
|
||||||
" Translations
|
" Translations
|
||||||
" perlMatch is the first part, perlTranslation* is the second, translator part.
|
" perlMatch is the first part, perlTranslation* is the second, translator part.
|
||||||
@@ -424,7 +424,7 @@ if exists("perl_fold")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("perl_fold_blocks")
|
if exists("perl_fold_blocks")
|
||||||
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)foreach\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
||||||
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ syn keyword phpStatement __construct __destruct __call __callStatic __get __set
|
|||||||
syn keyword phpKeyword die exit eval empty isset unset list instanceof insteadof contained
|
syn keyword phpKeyword die exit eval empty isset unset list instanceof insteadof contained
|
||||||
|
|
||||||
" Include & friends
|
" Include & friends
|
||||||
syn keyword phpInclude include include_once require require_once namespace use contained
|
syn keyword phpInclude include include_once require require_once namespace contained
|
||||||
|
|
||||||
" Types
|
" Types
|
||||||
syn keyword phpType bool[ean] int[eger] real double float string array object null self parent global this stdClass callable contained
|
syn keyword phpType bool[ean] int[eger] real double float string array object null self parent global this stdClass callable contained
|
||||||
@@ -681,6 +681,16 @@ syntax match phpClassImplements contained
|
|||||||
syntax match phpClassDelimiter contained
|
syntax match phpClassDelimiter contained
|
||||||
\ nextgroup=phpClassImplements skipwhite skipempty /,/
|
\ nextgroup=phpClassImplements skipwhite skipempty /,/
|
||||||
|
|
||||||
|
" use statement
|
||||||
|
syn keyword phpInclude use contained
|
||||||
|
\ nextgroup=phpUseFunction,phpUseClass skipwhite skipempty
|
||||||
|
syn match phpUseFunction /function\_s\+\(\\\|\h\w*\)*\h\w*/ contained contains=phpUseKeyword
|
||||||
|
\ nextgroup=phpUseAlias skipwhite skipempty
|
||||||
|
syn match phpUseClass /\(function\_s\+\)\@!\(\\\|\h\w*\)*\h\w*/ contained
|
||||||
|
\ nextgroup=phpUseAlias skipwhite skipempty
|
||||||
|
syn match phpUseAlias /as\_s\+\h\w*/ contained contains=phpUseKeyword
|
||||||
|
syn match phpUseKeyword /\(function\|as\)\_s\+/ contained contains=phpKeyword
|
||||||
|
|
||||||
" Function name
|
" Function name
|
||||||
syn keyword phpKeyword function contained
|
syn keyword phpKeyword function contained
|
||||||
\ nextgroup=phpFunction skipwhite skipempty
|
\ nextgroup=phpFunction skipwhite skipempty
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ syn keyword pythonStatement exec return
|
|||||||
syn keyword pythonStatement pass raise
|
syn keyword pythonStatement pass raise
|
||||||
syn keyword pythonStatement global assert
|
syn keyword pythonStatement global assert
|
||||||
syn keyword pythonStatement lambda yield
|
syn keyword pythonStatement lambda yield
|
||||||
|
syn keyword pythonStatement async await
|
||||||
syn keyword pythonStatement with nonlocal True False None
|
syn keyword pythonStatement with nonlocal True False None
|
||||||
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
|
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
|
||||||
syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
|
syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
|
||||||
@@ -210,7 +211,7 @@ if exists("python_highlight_builtins") && python_highlight_builtins != 0
|
|||||||
syn keyword pythonBuiltinObj Ellipsis NotImplemented
|
syn keyword pythonBuiltinObj Ellipsis NotImplemented
|
||||||
|
|
||||||
syn keyword pythonBuiltinFunc __import__ abs all any apply
|
syn keyword pythonBuiltinFunc __import__ abs all any apply
|
||||||
syn keyword pythonBuiltinFunc basestring bool buffer callable
|
syn keyword pythonBuiltinFunc basestring bool buffer bytearray bytes callable
|
||||||
syn keyword pythonBuiltinFunc chr classmethod cmp coerce compile complex
|
syn keyword pythonBuiltinFunc chr classmethod cmp coerce compile complex
|
||||||
syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
|
syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
|
||||||
syn keyword pythonBuiltinFunc execfile file filter float frozenset getattr
|
syn keyword pythonBuiltinFunc execfile file filter float frozenset getattr
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ endif
|
|||||||
|
|
||||||
" Operators
|
" Operators
|
||||||
if exists("ruby_operators")
|
if exists("ruby_operators")
|
||||||
syn match rubyOperator "[~!^&|*/%+-]\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@<!>\|\*\*\|\.\.\.\|\.\.\|::"
|
syn match rubyOperator "[~!^|*/%+-]\|&\.\@!\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@<!>\|\*\*\|\.\.\.\|\.\.\|::"
|
||||||
syn match rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!="
|
syn match rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!="
|
||||||
syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop
|
syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop
|
||||||
endif
|
endif
|
||||||
@@ -82,13 +82,13 @@ syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedPare
|
|||||||
syn cluster rubyRegexpSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment
|
syn cluster rubyRegexpSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment
|
||||||
|
|
||||||
" Numbers and ASCII Codes
|
" Numbers and ASCII Codes
|
||||||
syn match rubyASCIICode "\%(\w\|[]})\"'/\.]\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)"
|
syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)"
|
||||||
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*\>" display
|
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*r\=i\=\>" display
|
||||||
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)\>" display
|
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)r\=i\=\>" display
|
||||||
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*\>" display
|
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*r\=i\=\>" display
|
||||||
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*\>" display
|
syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*r\=i\=\>" display
|
||||||
syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*\>" display
|
syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*r\=i\=\>" display
|
||||||
syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)\>" display
|
syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)r\=i\=\>" display
|
||||||
|
|
||||||
" Identifiers
|
" Identifiers
|
||||||
syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent
|
syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent
|
||||||
@@ -98,7 +98,7 @@ syn match rubyConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>
|
|||||||
syn match rubyClassVariable "@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
|
syn match rubyClassVariable "@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
|
||||||
syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
|
syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
|
||||||
syn match rubyGlobalVariable "$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)"
|
syn match rubyGlobalVariable "$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)"
|
||||||
syn match rubySymbol "[]})\"':]\@<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)"
|
syn match rubySymbol "[]})\"':]\@<!:\%(\^\|\~@\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!@\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)"
|
||||||
syn match rubySymbol "[]})\"':]\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
|
syn match rubySymbol "[]})\"':]\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
|
||||||
syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
|
syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
|
||||||
syn match rubySymbol "[]})\"':]\@<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="
|
syn match rubySymbol "[]})\"':]\@<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="
|
||||||
@@ -125,11 +125,12 @@ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|o
|
|||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
|
||||||
|
|
||||||
" Generalized Regular Expression
|
" Generalized Regular Expression
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold
|
||||||
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold
|
||||||
|
syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
|
||||||
|
|
||||||
" Normal String
|
" Normal String
|
||||||
let s:spell_cluster = exists('ruby_spellcheck_strings') ? ',@Spell' : ''
|
let s:spell_cluster = exists('ruby_spellcheck_strings') ? ',@Spell' : ''
|
||||||
@@ -145,12 +146,13 @@ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}
|
|||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%q " end=" " skip="\\\\\|\\)" fold
|
syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
|
||||||
|
syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
|
|
||||||
" Generalized Double Quoted String and Array of Strings and Shell Command Output
|
" Generalized Double Quoted String and Array of Strings and Shell Command Output
|
||||||
" Note: %= is not matched here as the beginning of a double quoted string
|
" Note: %= is not matched here as the beginning of a double quoted string
|
||||||
@@ -160,7 +162,7 @@ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" en
|
|||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold
|
||||||
syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx] " end=" " skip="\\\\\|\\)" contains=@rubyStringSpecial fold
|
syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
|
||||||
|
|
||||||
" Array of Symbols
|
" Array of Symbols
|
||||||
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
|
||||||
@@ -203,7 +205,7 @@ syn match rubyClassDeclaration "[^[:space:];#<]\+" contained contains=rubyC
|
|||||||
syn match rubyModuleDeclaration "[^[:space:];#<]\+" contained contains=rubyConstant,rubyOperator
|
syn match rubyModuleDeclaration "[^[:space:];#<]\+" contained contains=rubyConstant,rubyOperator
|
||||||
syn match rubyFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration
|
syn match rubyFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration
|
||||||
syn match rubyFunction "\%(\s\|^\)\@<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2
|
syn match rubyFunction "\%(\s\|^\)\@<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2
|
||||||
syn match rubyFunction "\%([[:space:].]\|^\)\@<=\%(\[\]=\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration
|
syn match rubyFunction "\%([[:space:].]\|^\)\@<=\%(\[\]=\=\|\*\*\|[-+!~]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration
|
||||||
|
|
||||||
syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter
|
syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter
|
||||||
|
|
||||||
@@ -287,7 +289,7 @@ syn match rubySharpBang "\%^#!.*" display
|
|||||||
syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained
|
syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained
|
||||||
syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell
|
syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell
|
||||||
if !exists("ruby_no_comment_fold")
|
if !exists("ruby_no_comment_fold")
|
||||||
syn region rubyMultilineComment start="\%(\%(^\s*#.*\n\)\@<!\%(^\s*#.*\n\)\)\%(\(^\s*#.*\n\)\{1,}\)\@=" end="\%(^\s*#.*\n\)\@<=\%(^\s*#.*\n\)\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
|
syn region rubyMultilineComment start="^\s*#.*\n\%(^\s*#\)\@=" end="^\s*#.*\n\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
|
||||||
syn region rubyDocumentation start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold
|
syn region rubyDocumentation start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold
|
||||||
else
|
else
|
||||||
syn region rubyDocumentation start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell
|
syn region rubyDocumentation start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
|||||||
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
||||||
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
||||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||||
" Last Change: January 5, 2015
|
" Last Change: January 29, 2015
|
||||||
|
|
||||||
if version < 600
|
if version < 600
|
||||||
syntax clear
|
syntax clear
|
||||||
@@ -26,9 +26,9 @@ syn keyword rustKeyword continue
|
|||||||
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
|
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
|
||||||
syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite skipempty
|
syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite skipempty
|
||||||
syn keyword rustKeyword for in if impl let
|
syn keyword rustKeyword for in if impl let
|
||||||
syn keyword rustKeyword loop once pub
|
syn keyword rustKeyword loop pub
|
||||||
syn keyword rustKeyword return super
|
syn keyword rustKeyword return super
|
||||||
syn keyword rustKeyword unsafe virtual where while
|
syn keyword rustKeyword unsafe where while
|
||||||
syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
|
syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
|
||||||
" FIXME: Scoped impl's name is also fallen in this category
|
" FIXME: Scoped impl's name is also fallen in this category
|
||||||
syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite skipempty
|
syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite skipempty
|
||||||
@@ -45,7 +45,6 @@ syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:spac
|
|||||||
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||||
|
|
||||||
syn region rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
|
syn region rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
|
||||||
syn keyword rustBoxPlacementExpr GC containedin=rustBoxPlacement
|
|
||||||
" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
|
" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
|
||||||
" we don't, we'll just define temporary contained rules to handle balancing
|
" we don't, we'll just define temporary contained rules to handle balancing
|
||||||
" delimiters.
|
" delimiters.
|
||||||
@@ -58,13 +57,13 @@ syn match rustMacroRepeatCount ".\?[*+]" contained
|
|||||||
syn match rustMacroVariable "$\w\+"
|
syn match rustMacroVariable "$\w\+"
|
||||||
|
|
||||||
" Reserved (but not yet used) keywords {{{2
|
" Reserved (but not yet used) keywords {{{2
|
||||||
syn keyword rustReservedKeyword alignof be do offsetof priv pure sizeof typeof unsized yield abstract final override macro
|
syn keyword rustReservedKeyword alignof become do offsetof priv pure sizeof typeof unsized yield abstract virtual final override macro
|
||||||
|
|
||||||
" Built-in types {{{2
|
" Built-in types {{{2
|
||||||
syn keyword rustType isize usize float char bool u8 u16 u32 u64 f32
|
syn keyword rustType isize usize char bool u8 u16 u32 u64 f32
|
||||||
syn keyword rustType f64 i8 i16 i32 i64 str Self
|
syn keyword rustType f64 i8 i16 i32 i64 str Self
|
||||||
|
|
||||||
" Things from the prelude (src/libstd/prelude.rs) {{{2
|
" Things from the libstd v1 prelude (src/libstd/prelude/v1.rs) {{{2
|
||||||
" This section is just straight transformation of the contents of the prelude,
|
" This section is just straight transformation of the contents of the prelude,
|
||||||
" to make it easy to update.
|
" to make it easy to update.
|
||||||
|
|
||||||
@@ -73,30 +72,27 @@ syn keyword rustTrait Copy Send Sized Sync
|
|||||||
syn keyword rustTrait Drop Fn FnMut FnOnce
|
syn keyword rustTrait Drop Fn FnMut FnOnce
|
||||||
|
|
||||||
" Reexported functions {{{3
|
" Reexported functions {{{3
|
||||||
syn keyword rustFunction drop
|
" There’s no point in highlighting these; when one writes drop( or drop::< it
|
||||||
|
" gets the same highlighting anyway, and if someone writes `let drop = …;` we
|
||||||
|
" don’t really want *that* drop to be highlighted.
|
||||||
|
"syn keyword rustFunction drop
|
||||||
|
|
||||||
" Reexported types and traits {{{3
|
" Reexported types and traits {{{3
|
||||||
syn keyword rustTrait Box
|
syn keyword rustTrait Box
|
||||||
syn keyword rustTrait CharExt
|
syn keyword rustTrait ToOwned
|
||||||
syn keyword rustTrait Clone
|
syn keyword rustTrait Clone
|
||||||
syn keyword rustTrait PartialEq PartialOrd Eq Ord
|
syn keyword rustTrait PartialEq PartialOrd Eq Ord
|
||||||
syn keyword rustTrait DoubleEndedIterator
|
syn keyword rustTrait AsRef AsMut Into From
|
||||||
syn keyword rustTrait ExactSizeIterator
|
syn keyword rustTrait Default
|
||||||
syn keyword rustTrait Iterator IteratorExt Extend
|
syn keyword rustTrait Iterator Extend IntoIterator
|
||||||
|
syn keyword rustTrait DoubleEndedIterator ExactSizeIterator
|
||||||
syn keyword rustEnum Option
|
syn keyword rustEnum Option
|
||||||
syn keyword rustEnumVariant Some None
|
syn keyword rustEnumVariant Some None
|
||||||
syn keyword rustTrait PtrExt MutPtrExt
|
|
||||||
syn keyword rustEnum Result
|
syn keyword rustEnum Result
|
||||||
syn keyword rustEnumVariant Ok Err
|
syn keyword rustEnumVariant Ok Err
|
||||||
syn keyword rustTrait AsSlice
|
syn keyword rustTrait SliceConcatExt
|
||||||
syn keyword rustTrait SliceExt SliceConcatExt
|
|
||||||
syn keyword rustTrait Str StrExt
|
|
||||||
syn keyword rustTrait String ToString
|
syn keyword rustTrait String ToString
|
||||||
syn keyword rustTrait Vec
|
syn keyword rustTrait Vec
|
||||||
" FIXME: remove when path reform lands
|
|
||||||
syn keyword rustTrait Path GenericPath
|
|
||||||
" FIXME: remove when I/O reform lands
|
|
||||||
syn keyword rustTrait Buffer Writer Reader Seek BufferPrelude
|
|
||||||
|
|
||||||
" Other syntax {{{2
|
" Other syntax {{{2
|
||||||
syn keyword rustSelf self
|
syn keyword rustSelf self
|
||||||
@@ -122,6 +118,9 @@ syn match rustSigil display /[&~@*][^)= \t\r\n]/he=e-1,me=e-1
|
|||||||
" This isn't actually correct; a closure with no arguments can be `|| { }`.
|
" This isn't actually correct; a closure with no arguments can be `|| { }`.
|
||||||
" Last, because the & in && isn't a sigil
|
" Last, because the & in && isn't a sigil
|
||||||
syn match rustOperator display "&&\|||"
|
syn match rustOperator display "&&\|||"
|
||||||
|
" This is rustArrowCharacter rather than rustArrow for the sake of matchparen,
|
||||||
|
" so it skips the ->; see http://stackoverflow.com/a/30309949 for details.
|
||||||
|
syn match rustArrowCharacter display "->"
|
||||||
|
|
||||||
syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustPanic
|
syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustPanic
|
||||||
syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic
|
syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic
|
||||||
@@ -136,13 +135,16 @@ syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEs
|
|||||||
syn region rustString start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
|
syn region rustString start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
|
||||||
|
|
||||||
syn region rustAttribute start="#!\?\[" end="\]" contains=rustString,rustDerive
|
syn region rustAttribute start="#!\?\[" end="\]" contains=rustString,rustDerive
|
||||||
syn region rustDerive start="derive(" end=")" contained contains=rustTrait
|
syn region rustDerive start="derive(" end=")" contained contains=rustDeriveTrait
|
||||||
|
" This list comes from src/libsyntax/ext/deriving/mod.rs
|
||||||
|
" Some are deprecated (Encodable, Decodable) or to be removed after a new snapshot (Show).
|
||||||
|
syn keyword rustDeriveTrait contained Clone Hash RustcEncodable RustcDecodable Encodable Decodable PartialEq Eq PartialOrd Ord Rand Show Debug Default FromPrimitive Send Sync Copy
|
||||||
|
|
||||||
" Number literals
|
" Number literals
|
||||||
syn match rustDecNumber display "\<[0-9][0-9_]*\%([iu]\%(s\|8\|16\|32\|64\)\)\="
|
syn match rustDecNumber display "\<[0-9][0-9_]*\%([iu]\%(size\|8\|16\|32\|64\)\)\="
|
||||||
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\%([iu]\%(s\|8\|16\|32\|64\)\)\="
|
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\%([iu]\%(size\|8\|16\|32\|64\)\)\="
|
||||||
syn match rustOctNumber display "\<0o[0-7_]\+\%([iu]\%(s\|8\|16\|32\|64\)\)\="
|
syn match rustOctNumber display "\<0o[0-7_]\+\%([iu]\%(size\|8\|16\|32\|64\)\)\="
|
||||||
syn match rustBinNumber display "\<0b[01_]\+\%([iu]\%(s\|8\|16\|32\|64\)\)\="
|
syn match rustBinNumber display "\<0b[01_]\+\%([iu]\%(size\|8\|16\|32\|64\)\)\="
|
||||||
|
|
||||||
" Special case for numbers of the form "1." which are float literals, unless followed by
|
" Special case for numbers of the form "1." which are float literals, unless followed by
|
||||||
" an identifier, which makes them integer literals with a method call or field access,
|
" an identifier, which makes them integer literals with a method call or field access,
|
||||||
@@ -168,6 +170,7 @@ syn match rustCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:g
|
|||||||
syn match rustCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode
|
syn match rustCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode
|
||||||
syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{8}\|u{\x\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid
|
syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{8}\|u{\x\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid
|
||||||
|
|
||||||
|
syn match rustShebang /\%^#![^[].*/
|
||||||
syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell
|
syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell
|
||||||
syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell
|
syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell
|
||||||
syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell
|
syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell
|
||||||
@@ -200,6 +203,7 @@ hi def link rustOctNumber rustNumber
|
|||||||
hi def link rustBinNumber rustNumber
|
hi def link rustBinNumber rustNumber
|
||||||
hi def link rustIdentifierPrime rustIdentifier
|
hi def link rustIdentifierPrime rustIdentifier
|
||||||
hi def link rustTrait rustType
|
hi def link rustTrait rustType
|
||||||
|
hi def link rustDeriveTrait rustTrait
|
||||||
|
|
||||||
hi def link rustMacroRepeatCount rustMacroRepeatDelimiters
|
hi def link rustMacroRepeatCount rustMacroRepeatDelimiters
|
||||||
hi def link rustMacroRepeatDelimiters Macro
|
hi def link rustMacroRepeatDelimiters Macro
|
||||||
@@ -220,6 +224,7 @@ hi def link rustEnumVariant rustConstant
|
|||||||
hi def link rustConstant Constant
|
hi def link rustConstant Constant
|
||||||
hi def link rustSelf Constant
|
hi def link rustSelf Constant
|
||||||
hi def link rustFloat Float
|
hi def link rustFloat Float
|
||||||
|
hi def link rustArrowCharacter rustOperator
|
||||||
hi def link rustOperator Operator
|
hi def link rustOperator Operator
|
||||||
hi def link rustKeyword Keyword
|
hi def link rustKeyword Keyword
|
||||||
hi def link rustReservedKeyword Error
|
hi def link rustReservedKeyword Error
|
||||||
@@ -231,6 +236,7 @@ hi def link rustModPathSep Delimiter
|
|||||||
hi def link rustFunction Function
|
hi def link rustFunction Function
|
||||||
hi def link rustFuncName Function
|
hi def link rustFuncName Function
|
||||||
hi def link rustFuncCall Function
|
hi def link rustFuncCall Function
|
||||||
|
hi def link rustShebang Comment
|
||||||
hi def link rustCommentLine Comment
|
hi def link rustCommentLine Comment
|
||||||
hi def link rustCommentLineDoc SpecialComment
|
hi def link rustCommentLineDoc SpecialComment
|
||||||
hi def link rustCommentBlock rustCommentLine
|
hi def link rustCommentBlock rustCommentLine
|
||||||
@@ -249,7 +255,6 @@ hi def link rustInvalidBareKeyword Error
|
|||||||
hi def link rustExternCrate rustKeyword
|
hi def link rustExternCrate rustKeyword
|
||||||
hi def link rustObsoleteExternMod Error
|
hi def link rustObsoleteExternMod Error
|
||||||
hi def link rustBoxPlacementParens Delimiter
|
hi def link rustBoxPlacementParens Delimiter
|
||||||
hi def link rustBoxPlacementExpr rustKeyword
|
|
||||||
|
|
||||||
" Other Suggestions:
|
" Other Suggestions:
|
||||||
" hi rustAttribute ctermfg=cyan
|
" hi rustAttribute ctermfg=cyan
|
||||||
|
|||||||
269
syntax/swift.vim
269
syntax/swift.vim
@@ -1,68 +1,229 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swift') == -1
|
||||||
|
|
||||||
" Language: Swift<https://developer.apple.com/swift/>
|
" File: swift.vim
|
||||||
" Maintainer: toyama satoshi <toyamarinyon@gmail.com>
|
" Author: Keith Smiley
|
||||||
" URL: http://github.com/toyamarinyon/vim-swift
|
" Description: Runtime files for Swift
|
||||||
" License: GPL
|
" Last Modified: June 15, 2014
|
||||||
|
|
||||||
" Bail if our syntax is already loaded.
|
if exists("b:current_syntax")
|
||||||
if exists('b:current_syntax') && b:current_syntax == 'swift'
|
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" {{{ Whitespace and Comments
|
" Comments
|
||||||
syntax region swiftComment start=#\/\*# end=#\*\/#
|
" Shebang
|
||||||
syntax match swiftComment /\/\/.*/
|
syntax match swiftShebang "\v#!.*$"
|
||||||
|
|
||||||
|
" Comment contained keywords
|
||||||
|
syntax keyword swiftTodos contained TODO XXX FIXME NOTE
|
||||||
|
syntax keyword swiftMarker contained MARK
|
||||||
|
syntax match swiftDocString "\v^\s*-\s*parameter"hs=s+1 contained
|
||||||
|
syntax match swiftDocString "\v^\s*-\s*returns"hs=s+1 contained
|
||||||
|
|
||||||
|
" Literals
|
||||||
|
" Strings
|
||||||
|
syntax region swiftString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=swiftInterpolatedWrapper
|
||||||
|
syntax region swiftInterpolatedWrapper start="\v[^\\]\\\(\s*" end="\v\s*\)" contained containedin=swiftString contains=swiftInterpolatedString
|
||||||
|
syntax match swiftInterpolatedString "\v\w+(\(\))?" contained containedin=swiftInterpolatedWrapper
|
||||||
|
|
||||||
|
" Numbers
|
||||||
|
syntax match swiftNumber "\v<\d+>"
|
||||||
|
syntax match swiftNumber "\v<(\d+_+)+\d+(\.\d+(_+\d+)*)?>"
|
||||||
|
syntax match swiftNumber "\v<\d+\.\d+>"
|
||||||
|
syntax match swiftNumber "\v<\d*\.?\d+([Ee]-?)?\d+>"
|
||||||
|
syntax match swiftNumber "\v<0x\x+([Pp]-?)?\x+>"
|
||||||
|
syntax match swiftNumber "\v<0b[01]+>"
|
||||||
|
syntax match swiftNumber "\v<0o\o+>"
|
||||||
|
|
||||||
|
" BOOLs
|
||||||
|
syntax keyword swiftBoolean
|
||||||
|
\ true
|
||||||
|
\ false
|
||||||
|
|
||||||
|
|
||||||
|
" Operators
|
||||||
|
syntax match swiftOperator "\v\~"
|
||||||
|
syntax match swiftOperator "\v\s+!"
|
||||||
|
syntax match swiftOperator "\v\%"
|
||||||
|
syntax match swiftOperator "\v\^"
|
||||||
|
syntax match swiftOperator "\v\&"
|
||||||
|
syntax match swiftOperator "\v\*"
|
||||||
|
syntax match swiftOperator "\v-"
|
||||||
|
syntax match swiftOperator "\v\+"
|
||||||
|
syntax match swiftOperator "\v\="
|
||||||
|
syntax match swiftOperator "\v\|"
|
||||||
|
syntax match swiftOperator "\v\/"
|
||||||
|
syntax match swiftOperator "\v\."
|
||||||
|
syntax match swiftOperator "\v\<"
|
||||||
|
syntax match swiftOperator "\v\>"
|
||||||
|
syntax match swiftOperator "\v\?\?"
|
||||||
|
|
||||||
|
" Methods/Functions
|
||||||
|
syntax match swiftMethod "\(\.\)\@<=\w\+\((\)\@="
|
||||||
|
|
||||||
|
" Swift closure arguments
|
||||||
|
syntax match swiftClosureArgument "\$\d\+\(\.\d\+\)\?"
|
||||||
|
|
||||||
|
syntax match swiftAvailability "\v((\*(\s*,\s*[a-zA-Z="0-9.]+)*)|(\w+\s+\d+(\.\d+(.\d+)?)?\s*,\s*)+\*)" contains=swiftString
|
||||||
|
syntax keyword swiftPlatforms OSX iOS watchOS OSXApplicationExtension iOSApplicationExtension contained containedin=swiftAvailability
|
||||||
|
syntax keyword swiftAvailabilityArg renamed unavailable introduced deprecated obsoleted message contained containedin=swiftAvailability
|
||||||
|
|
||||||
|
" Keywords {{{
|
||||||
|
syntax keyword swiftKeywords
|
||||||
|
\ as
|
||||||
|
\ atexit
|
||||||
|
\ break
|
||||||
|
\ case
|
||||||
|
\ catch
|
||||||
|
\ class
|
||||||
|
\ continue
|
||||||
|
\ convenience
|
||||||
|
\ default
|
||||||
|
\ defer
|
||||||
|
\ deinit
|
||||||
|
\ didSet
|
||||||
|
\ do
|
||||||
|
\ dynamic
|
||||||
|
\ else
|
||||||
|
\ extension
|
||||||
|
\ fallthrough
|
||||||
|
\ final
|
||||||
|
\ for
|
||||||
|
\ func
|
||||||
|
\ get
|
||||||
|
\ guard
|
||||||
|
\ if
|
||||||
|
\ import
|
||||||
|
\ in
|
||||||
|
\ indirect
|
||||||
|
\ infix
|
||||||
|
\ init
|
||||||
|
\ inout
|
||||||
|
\ internal
|
||||||
|
\ is
|
||||||
|
\ lazy
|
||||||
|
\ let
|
||||||
|
\ mutating
|
||||||
|
\ nil
|
||||||
|
\ nonmutating
|
||||||
|
\ operator
|
||||||
|
\ optional
|
||||||
|
\ override
|
||||||
|
\ postfix
|
||||||
|
\ prefix
|
||||||
|
\ private
|
||||||
|
\ protocol
|
||||||
|
\ public
|
||||||
|
\ repeat
|
||||||
|
\ required
|
||||||
|
\ rethrows
|
||||||
|
\ return
|
||||||
|
\ self
|
||||||
|
\ set
|
||||||
|
\ static
|
||||||
|
\ subscript
|
||||||
|
\ super
|
||||||
|
\ switch
|
||||||
|
\ throw
|
||||||
|
\ throws
|
||||||
|
\ try
|
||||||
|
\ typealias
|
||||||
|
\ unowned
|
||||||
|
\ var
|
||||||
|
\ weak
|
||||||
|
\ where
|
||||||
|
\ while
|
||||||
|
\ willSet
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" Names surrounded by backticks. This aren't limited to keywords because 1)
|
||||||
|
" Swift doesn't limit them to keywords and 2) I couldn't make the keywords not
|
||||||
|
" highlight at the same time
|
||||||
|
syntax region swiftEscapedReservedWord start="`" end="`" oneline
|
||||||
|
|
||||||
|
syntax keyword swiftAttributes
|
||||||
|
\ @assignment
|
||||||
|
\ @autoclosure
|
||||||
|
\ @available
|
||||||
|
\ @convention
|
||||||
|
\ @exported
|
||||||
|
\ @IBAction
|
||||||
|
\ @IBDesignable
|
||||||
|
\ @IBInspectable
|
||||||
|
\ @IBOutlet
|
||||||
|
\ @noescape
|
||||||
|
\ @nonobjc
|
||||||
|
\ @noreturn
|
||||||
|
\ @NSApplicationMain
|
||||||
|
\ @NSCopying
|
||||||
|
\ @NSManaged
|
||||||
|
\ @objc
|
||||||
|
\ @testable
|
||||||
|
\ @UIApplicationMain
|
||||||
|
\ @warn_unused_result
|
||||||
|
|
||||||
|
syntax keyword swiftConditionStatement #available
|
||||||
|
|
||||||
|
syntax keyword swiftStructure
|
||||||
|
\ struct
|
||||||
|
\ enum
|
||||||
|
|
||||||
|
syntax region swiftTypeWrapper start="\v:\s*" skip="\s*,\s*$*\s*" end="$" contains=swiftString,swiftBoolean,swiftNumber,swiftType,swiftGenericsWrapper transparent
|
||||||
|
syntax region swiftGenericsWrapper start="\v\<" end="\v\>" contains=swiftType transparent oneline
|
||||||
|
syntax region swiftLiteralWrapper start="\v\=\s*" skip="\v[^\[\]]\(\)" end="\v(\[\]|\(\))" contains=swiftType,swiftString transparent oneline
|
||||||
|
syntax region swiftReturnWrapper start="\v-\>\s*" end="\v(\{|$)" contains=swiftType transparent oneline
|
||||||
|
syntax match swiftType "\v<\u\w*" contained containedin=swiftGenericsWrapper,swiftTypeWrapper,swiftLiteralWrapper,swiftGenericsWrapper
|
||||||
|
|
||||||
|
syntax keyword swiftImports import
|
||||||
|
|
||||||
|
|
||||||
|
" 'preprocesor' stuff
|
||||||
|
syntax keyword swiftPreprocessor
|
||||||
|
\ #if
|
||||||
|
\ #elseif
|
||||||
|
\ #else
|
||||||
|
\ #endif
|
||||||
|
|
||||||
|
|
||||||
|
" Comment patterns
|
||||||
|
syntax match swiftComment "\v\/\/.*$"
|
||||||
|
\ contains=swiftTodos,swiftDocString,swiftMarker,@Spell oneline
|
||||||
|
syntax region swiftComment start="/\*" end="\*/"
|
||||||
|
\ contains=swiftTodos,swiftDocString,swiftMarker,swiftComment,@Spell fold
|
||||||
|
|
||||||
|
|
||||||
|
" Set highlights
|
||||||
|
highlight default link swiftTodos Todo
|
||||||
|
highlight default link swiftDocString String
|
||||||
|
highlight default link swiftShebang Comment
|
||||||
highlight default link swiftComment Comment
|
highlight default link swiftComment Comment
|
||||||
" }}}
|
highlight default link swiftMarker Comment
|
||||||
|
|
||||||
" {{{ Identifiers
|
highlight default link swiftString String
|
||||||
syntax match swiftIdentifier /[[:alpha:]_][[:alnum:]_]*/
|
highlight default link swiftInterpolatedWrapper Delimiter
|
||||||
highlight default link swiftIdentifier Identifier
|
highlight default link swiftNumber Number
|
||||||
" }}}
|
highlight default link swiftBoolean Boolean
|
||||||
|
|
||||||
" {{{ Keywords
|
highlight default link swiftOperator Operator
|
||||||
" Keywords used in declarations:
|
highlight default link swiftKeywords Keyword
|
||||||
syntax keyword swiftDeclarationKeywords class deinit enum extension func import init let protocol static struct subscript typealias var
|
highlight default link swiftEscapedReservedWord Normal
|
||||||
highlight default link swiftDeclarationKeywords Keyword
|
highlight default link swiftClosureArgument Operator
|
||||||
" Keywords used in statements:
|
highlight default link swiftAttributes PreProc
|
||||||
syntax keyword swiftStatementKeywords break case continue default do else fallthrough if in for return switch where while
|
highlight default link swiftConditionStatement PreProc
|
||||||
highlight default link swiftStatementKeywords Keyword
|
highlight default link swiftStructure Structure
|
||||||
" Keywords used in expressions and types:
|
highlight default link swiftType Type
|
||||||
syntax keyword swiftExpressionTypeKeywords as dynamicType is new super self Self Type __COLUMN__ __FILE__ __FUNCTION__ __LINE__
|
highlight default link swiftImports Include
|
||||||
highlight default link swiftExpressionTypeKeywords Keyword
|
highlight default link swiftPreprocessor PreProc
|
||||||
" Keywords reserved in particular contexts:
|
highlight default link swiftMethod Function
|
||||||
syntax keyword swiftReserveKeywords associativity didSet get infix inout left mutating none nonmutating operator override postfix precedence prefix right set unowned unowned(safe) unowned(unsafe) weak willSet
|
|
||||||
highlight default link swiftReserveKeywords Keyword
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Literals
|
highlight default link swiftConditionStatement PreProc
|
||||||
" Integer literal
|
highlight default link swiftAvailability Normal
|
||||||
syntax match swiftIntegerLiteral /\<\d\+\%(_\d\+\)*\%(\.\d\+\%(_\d\+\)*\)\=\>/
|
highlight default link swiftAvailabilityArg Normal
|
||||||
syntax match swiftIntegerLiteral /\<\d\+\%(_\d\+\)*\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)\>/
|
highlight default link swiftPlatforms Keyword
|
||||||
syntax match swiftIntegerLiteral /\<0x\x\+\%(_\x\+\)*\>/
|
|
||||||
syntax match swiftIntegerLiteral /\<0o\o\+\%(_\o\+\)*\>/
|
|
||||||
syntax match swiftIntegerLiteral /\<0b[01]\+\%(_[01]\+\)*\>/
|
|
||||||
highlight default link swiftIntegerLiteral Number
|
|
||||||
" String literal
|
|
||||||
syntax region swiftStringLiteral start=/"/ skip=/\\"/ end=/"/
|
|
||||||
highlight default link swiftStringLiteral String
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Operators
|
" Force vim to sync at least x lines. This solves the multiline comment not
|
||||||
syntax keyword swiftOperatorKeywords / = - + ! * % < > & \| ^ ~ .
|
" being highlighted issue
|
||||||
highlight default link swiftOperatorKeywords Operator
|
syn sync minlines=100
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Type
|
let b:current_syntax = "swift"
|
||||||
syntax match swiftTypeIdentifier /\<[[:alpha:]_][[:alnum:]_.]*/ contained
|
|
||||||
syntax match swiftType /: .*/ contains=swiftTypeIdentifier
|
|
||||||
highlight default link swiftType Operator
|
|
||||||
highlight default link swiftTypeIdentifier Type
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
if !exists('b:current_syntax')
|
|
||||||
let b:current_syntax = 'swift'
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'toml') == -1
|
|||||||
|
|
||||||
" Language: TOML
|
" Language: TOML
|
||||||
" Maintainer: Caleb Spare <cespare@gmail.com>
|
" Maintainer: Caleb Spare <cespare@gmail.com>
|
||||||
" URL: http://github.com/cespare/vim-toml
|
" URL: https://github.com/cespare/vim-toml
|
||||||
" LICENSE: MIT
|
" LICENSE: MIT
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -37,7 +37,7 @@ hi def link tomlFloat Float
|
|||||||
syn match tomlBoolean /\<\%(true\|false\)\>/ display
|
syn match tomlBoolean /\<\%(true\|false\)\>/ display
|
||||||
hi def link tomlBoolean Boolean
|
hi def link tomlBoolean Boolean
|
||||||
|
|
||||||
" http://tools.ietf.org/html/rfc3339
|
" https://tools.ietf.org/html/rfc3339
|
||||||
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}T\d\{2\}:\d\{2\}:\d\{2\}\%(\.\d\+\)\?\%(Z\|[+-]\d\{2\}:\d\{2\}\)/ display
|
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}T\d\{2\}:\d\{2\}:\d\{2\}\%(\.\d\+\)\?\%(Z\|[+-]\d\{2\}:\d\{2\}\)/ display
|
||||||
hi def link tomlDate Constant
|
hi def link tomlDate Constant
|
||||||
|
|
||||||
|
|||||||
110
syntax/vcl.vim
Normal file
110
syntax/vcl.vim
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vcl') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Filename: vcl.vim
|
||||||
|
" Language: Varnish configuation Language, http://www.varnish-cache.org/wiki/VCL
|
||||||
|
" Maintainer: Elan Ruusamäe <glen@delfi.ee>
|
||||||
|
" Version Info: $Revision: 1.7 $
|
||||||
|
" Last Change: $Date: 2010/04/06 08:24:28 $ UTC
|
||||||
|
|
||||||
|
" For version 5.x: Clear all syntax items
|
||||||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" TODO
|
||||||
|
" - sub ...
|
||||||
|
" - backend/director/...
|
||||||
|
" - acl ...
|
||||||
|
" - error when invalid operator used in if (...)
|
||||||
|
" - +=, = operators
|
||||||
|
" - functions
|
||||||
|
|
||||||
|
" Code Blocks
|
||||||
|
" sub NAME {
|
||||||
|
" backend NAME {
|
||||||
|
" director NAME FLAGS {
|
||||||
|
" acl NAME {
|
||||||
|
"syn region vclCodeBlock start="\s*\<sub\|backend\|director\|acl\>" end="{"he=e-1 contains=vclCodeBlockName,vclFunctionName
|
||||||
|
"syn match vclCodeBlockName "\<sub\|backend\|director\|acl\>" contained
|
||||||
|
"syn match vclFunctionName "\h[[:alnum:]_:]*" contained
|
||||||
|
"syn match vclFunctionName "\h\w*[^:]" contained
|
||||||
|
"
|
||||||
|
syn keyword vclOperator set call return error esi synthetic include remove unset
|
||||||
|
" return modes
|
||||||
|
syn keyword vclModes deliver pipe pass hash lookup discard fetch restart
|
||||||
|
|
||||||
|
" C strings
|
||||||
|
syn region vclString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=vclSpecial
|
||||||
|
syn match vclSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||||
|
syn match vclSpecialError "L\='\\[^'\"?\\abfnrtv]'"
|
||||||
|
syn match vclSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
|
||||||
|
syn match vclSpecialCharacter display "L\='\\\o\{1,3}'"
|
||||||
|
syn match vclSpecialCharacter display "'\\x\x\{1,2}'"
|
||||||
|
syn match vclSpecialCharacter display "L'\\x\x\+'"
|
||||||
|
|
||||||
|
syn keyword vclConditional if else elsif elseif
|
||||||
|
|
||||||
|
" Numbers
|
||||||
|
syn match vclNumbers display transparent "\<\d\|\.\d" contains=vclNumber,vclNumberTime
|
||||||
|
syn match vclNumber display contained "\d\+"
|
||||||
|
" set obj.ttl = 0s, 0m;
|
||||||
|
syn match vclNumberTime display contained "\d\+[dhsm]"
|
||||||
|
|
||||||
|
" client
|
||||||
|
syn match vclOption /client\.\(ip\|identity\)/
|
||||||
|
" server
|
||||||
|
syn match vclOption /server\.\(ip\|port\)/
|
||||||
|
" req
|
||||||
|
syn match vclOption /req\.\(hash\|request\|method\|url\|proto\|backend\healthy\|backend\|grace\|xid\|restarts\)/
|
||||||
|
" bereq
|
||||||
|
syn match vclOption /bereq\.\(request\|method\|url\|proto\|connect_timeout\|first_byte_timeout\|between_bytes_timeout\)/
|
||||||
|
" beresp
|
||||||
|
syn match vclOption /beresp\.\(proto\|status\|response\|cacheable\|ttl\|lastuse\|hits\|hash\|grace\|prefetch\|saintmode\|keep\)/
|
||||||
|
" obj
|
||||||
|
syn match vclOption /obj\.\(proto\|status\|response\|cacheable\|ttl\|lastuse\|hits\|hash\|grace\|prefetch\)/
|
||||||
|
" resp
|
||||||
|
syn match vclOption /resp\.\(proto\|status\|response\)/
|
||||||
|
" common: http.HEADERNAME
|
||||||
|
syn match vclOption /\(req\|bereq\|resp\|beresp\|obj\)\.http\.[A-Za-z][-_A-Za-z0-9]*/
|
||||||
|
|
||||||
|
" Highlight the C block
|
||||||
|
syn include @vclC syntax/c.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
" Mark block tags itself as comment
|
||||||
|
syn region vclCBlock matchgroup=vclComment start=/C{/ end=/}C/ contains=@vclC keepend
|
||||||
|
|
||||||
|
" Synthetic
|
||||||
|
syn region vclSynthetic start=/{"/hs=s+2 end=/"}/he=e-2 contains=@vclHTML keepend
|
||||||
|
|
||||||
|
" Allow html in synthetic
|
||||||
|
syn include @vclHTML syntax/html.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn match vclComment '#.*'
|
||||||
|
syn match vclComment "//.*"
|
||||||
|
syn region vclComment start="/\*" end="\*/"
|
||||||
|
|
||||||
|
syn sync ccomment vclComment
|
||||||
|
|
||||||
|
hi link vclCodeBlock Function
|
||||||
|
hi link vclComment Comment
|
||||||
|
hi link vclStatement Statement
|
||||||
|
hi link vclFunctionName Identifier
|
||||||
|
hi link vclCodeBlockName Statement
|
||||||
|
hi link vclSpecial SpecialChar
|
||||||
|
hi link vclString String
|
||||||
|
hi link vclConditional Conditional
|
||||||
|
hi link vclSynthetic vclString
|
||||||
|
hi link vclSpecialCharacter vclSpecialSpecial
|
||||||
|
hi link vclOperator Operator
|
||||||
|
hi link vclModes Operator
|
||||||
|
hi link vclOption Identifier
|
||||||
|
hi link vclNumber Number
|
||||||
|
hi link vclNumberTime Number
|
||||||
|
|
||||||
|
endif
|
||||||
Reference in New Issue
Block a user