Compare commits

...

43 Commits

Author SHA1 Message Date
Adam Stankiewicz
4f3df59be7 Improve guard so it works for no eof new line 2019-09-12 15:08:44 +02:00
Adam Stankiewicz
26790941f6 Update 2019-09-12 14:32:53 +02:00
Adam Stankiewicz
fbc2af9e82 Remove styled components, fixes #432 2019-09-06 16:47:37 +02:00
Adam Stankiewicz
d4f252565a Remove unnecessary tsx fix 2019-09-06 16:26:33 +02:00
Adam Stankiewicz
48e07bc501 Improve guard to support concatenated files 2019-09-06 15:54:31 +02:00
Adam Stankiewicz
c8897c9c18 Remove unnecessary graphql fix 2019-09-06 15:50:47 +02:00
Adam Stankiewicz
34eb36e6d1 Fix tmux plugin 2019-09-06 14:49:10 +02:00
Adam Stankiewicz
84ec4eedcd Switch typescript provider, closes #428 2019-09-06 14:32:07 +02:00
Adam Stankiewicz
66b769328c Update 2019-09-06 14:25:42 +02:00
Adam Stankiewicz
ae18284e5a Disable jsx when ts or js is disabled, closes #414 2019-09-04 17:39:23 +02:00
Adam Stankiewicz
e3024f21fc Fix build script 2019-09-04 17:01:29 +02:00
Adam Stankiewicz
31d757fc7b Update 2019-09-04 16:50:13 +02:00
Adam Stankiewicz
556c56d185 Add graphql support, closes #298 2019-09-04 16:29:56 +02:00
Adam Stankiewicz
fe84062992 Include missing file from styledcomponents, fixes #418 2019-09-04 16:25:08 +02:00
Adam Stankiewicz
8742443e69 Remove advanced stuff from r plugin, fixes #420 2019-09-04 16:08:22 +02:00
Adam Stankiewicz
832dfece76 Add dhall, closes #426 2019-09-04 16:06:18 +02:00
Adam Stankiewicz
933e42ea1f Change provider for puppet, closes #424 2019-09-04 16:04:21 +02:00
Adam Stankiewicz
cdd6d73e39 Switch fish provider, fixes #408 2019-09-04 15:55:58 +02:00
Adam Stankiewicz
a48874df4c Update elixir filedetect, closes #421 2019-09-04 15:53:42 +02:00
Adam Stankiewicz
21849c2e18 Add helm syntax, closes #422 2019-09-04 15:45:55 +02:00
Adam Stankiewicz
664aa988f6 Update 2019-09-04 15:44:43 +02:00
Adam Stankiewicz
3ddca5da46 Remove rego, fixes #415 2019-07-01 16:26:25 +02:00
Adam Stankiewicz
140430ffb7 Update 2019-07-01 16:25:37 +02:00
Adam Stankiewicz
d527002849 Update 2019-06-16 18:36:23 +02:00
Adam Stankiewicz
15727e7eb0 Add zephir support 2019-06-14 16:11:54 +02:00
Adam Stankiewicz
6b169212f8 Add svelte support, closes #410 2019-06-14 16:07:20 +02:00
Adam Stankiewicz
2edc785a5e Make typescript.tsx default filetype for tsx, fixes #409 2019-06-09 00:08:31 +02:00
Adam Stankiewicz
445e026010 Add styled-components, closes #407 2019-06-08 14:12:14 +02:00
Adam Stankiewicz
fca45b2c2b Add rego support, closes #406 2019-06-08 13:36:13 +02:00
Adam Stankiewicz
ebf9ec9d62 Add zig support, closes #405 2019-06-08 13:34:40 +02:00
Adam Stankiewicz
9caa678708 Add ion shell support, closes #404 2019-06-08 13:33:25 +02:00
Adam Stankiewicz
8f2a71643a Add hcl support, closes #403 2019-06-08 13:32:04 +02:00
Adam Stankiewicz
af763ef221 Change tmux provider, closes #402 2019-06-08 13:29:23 +02:00
Adam Stankiewicz
5ded0682bd Add dlang support, closes #401 2019-06-08 13:28:47 +02:00
Adam Stankiewicz
26c678b08d Change jsx/tsx provider, closes #400 2019-06-08 13:25:41 +02:00
Adam Stankiewicz
17ecfbdabc Add s:setf helper, fixes #399 2019-06-08 13:14:56 +02:00
Adam Stankiewicz
0217fb50fe Add tsx provider, closes #330 2019-06-08 13:03:32 +02:00
Adam Stankiewicz
5023da62ec Add hive syntax, closes #396 2019-06-08 12:50:29 +02:00
Adam Stankiewicz
957228cc25 Add log syntax, closes #394 2019-06-08 12:48:22 +02:00
Adam Stankiewicz
7aae831309 Add tptp syntax 2019-06-08 12:46:43 +02:00
Adam Stankiewicz
671078ef6c Update 2019-06-08 12:44:15 +02:00
Adam Stankiewicz
aebef2c2e7 Update 2019-05-07 16:17:56 +02:00
German Lashevich
e8245dbf17 FIx CI build freezing (#398)
* Kill vim server

* Fix incorrect usage of rspec

* Add build stage to CI

* Try using new server for each run

* Sort and uniq test files
2019-05-01 23:52:54 +02:00
579 changed files with 11636 additions and 11706 deletions

View File

@@ -7,6 +7,5 @@ addons:
packages: packages:
- vim-gtk - vim-gtk
before_script: before_script:
- "export DISPLAY=:99.0" - "./build"
- "sh -e /etc/init.d/xvfb start" script: xvfb-run bundle exec rspec --format=documentation
script: bundle exec rspec --format=documentation

View File

@@ -10,7 +10,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 and updates 120+ times faster** than the <!--Package Count-->134<!--/Package Count--> packages it consists of. - It **installs and updates 120+ times faster** than the <!--Package Count-->146<!--/Package Count--> packages it consists of.
- Solid syntax and indentation support (other features skipped). Only the best language packs. - Solid syntax and indentation support (other features skipped). 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`).
@@ -68,6 +68,8 @@ If you need full functionality of any plugin, please use it directly with your p
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin) - [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin)
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (syntax) - [cue](https://github.com/mgrabovsky/vim-cuesheet) (syntax)
- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin) - [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin)
- [dhall](https://github.com/vmchale/dhall-vim) (syntax, ftplugin)
- [dlang](https://github.com/JesseKPhillips/d.vim) (syntax, indent)
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (syntax, indent, ftplugin) - [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (syntax, indent, ftplugin)
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, autoload, ftplugin) - [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, autoload, ftplugin)
- [elm](https://github.com/ElmCast/elm-vim) (syntax, indent, autoload, ftplugin) - [elm](https://github.com/ElmCast/elm-vim) (syntax, indent, autoload, ftplugin)
@@ -75,7 +77,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [emblem](https://github.com/yalesov/vim-emblem) (syntax, indent, ftplugin) - [emblem](https://github.com/yalesov/vim-emblem) (syntax, indent, ftplugin)
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (syntax, indent) - [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (syntax, indent)
- [ferm](https://github.com/vim-scripts/ferm.vim) (syntax) - [ferm](https://github.com/vim-scripts/ferm.vim) (syntax)
- [fish](https://github.com/dag/vim-fish) (syntax, indent, compiler, autoload, ftplugin) - [fish](https://github.com/georgewitteman/vim-fish) (syntax, indent, compiler, autoload, ftplugin)
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (syntax) - [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (syntax)
- [fsharp](https://github.com/fsharp/vim-fsharp) (syntax, indent) - [fsharp](https://github.com/fsharp/vim-fsharp) (syntax, indent)
- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin) - [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin)
@@ -84,6 +86,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (syntax) - [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (syntax)
- [go](https://github.com/fatih/vim-go) (syntax, compiler, indent) - [go](https://github.com/fatih/vim-go) (syntax, compiler, indent)
- [gradle](https://github.com/tfnico/vim-gradle) (compiler) - [gradle](https://github.com/tfnico/vim-gradle) (compiler)
- [graphql](https://github.com/jparise/vim-graphql) (syntax, indent, autoload, ftplugin, after)
- [groovy-indent](https://github.com/vim-scripts/groovyindent-unix) (indent) - [groovy-indent](https://github.com/vim-scripts/groovyindent-unix) (indent)
- [groovy](https://github.com/vim-scripts/groovy.vim) (syntax) - [groovy](https://github.com/vim-scripts/groovy.vim) (syntax)
- [haml](https://github.com/sheerun/vim-haml) (syntax, indent, compiler, ftplugin) - [haml](https://github.com/sheerun/vim-haml) (syntax, indent, compiler, ftplugin)
@@ -91,9 +94,13 @@ If you need full functionality of any plugin, please use it directly with your p
- [haproxy](https://github.com/CH-DanReif/haproxy.vim) (syntax) - [haproxy](https://github.com/CH-DanReif/haproxy.vim) (syntax)
- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin) - [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin)
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax) - [haxe](https://github.com/yaymukund/vim-haxe) (syntax)
- [hcl](https://github.com/b4b4r07/vim-hcl) (syntax, indent, ftplugin)
- [helm](https://github.com/towolf/vim-helm) (syntax)
- [hive](https://github.com/zebradil/hive.vim) (syntax, ftplugin)
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin) - [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
- [i3](https://github.com/mboughaba/i3config.vim) (syntax, ftplugin) - [i3](https://github.com/mboughaba/i3config.vim) (syntax, ftplugin)
- [idris](https://github.com/idris-hackers/idris-vim) (syntax, indent, ftplugin) - [idris](https://github.com/idris-hackers/idris-vim) (syntax, indent, ftplugin)
- [ion](https://github.com/vmchale/ion-vim) (syntax, ftplugin)
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax) - [jasmine](https://github.com/glanotte/vim-jasmine) (syntax)
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, compiler, ftplugin, extras) - [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, compiler, ftplugin, extras)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (syntax, indent) - [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (syntax, indent)
@@ -101,7 +108,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [json5](https://github.com/GutenYe/json5.vim) (syntax) - [json5](https://github.com/GutenYe/json5.vim) (syntax)
- [json](https://github.com/elzr/vim-json) (syntax, indent, ftplugin) - [json](https://github.com/elzr/vim-json) (syntax, indent, ftplugin)
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent) - [jst](https://github.com/briancollins/vim-jst) (syntax, indent)
- [jsx](https://github.com/amadeus/vim-jsx) (syntax, indent, ftplugin) - [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (autoload, after)
- [julia](https://github.com/JuliaEditorSupport/julia-vim) (syntax, indent, autoload, ftplugin) - [julia](https://github.com/JuliaEditorSupport/julia-vim) (syntax, indent, autoload, ftplugin)
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftplugin) - [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftplugin)
- [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin) - [latex](https://github.com/LaTeX-Box-Team/LaTeX-Box) (syntax, indent, ftplugin)
@@ -109,10 +116,11 @@ If you need full functionality of any plugin, please use it directly with your p
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (syntax, indent, compiler, ftplugin) - [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (syntax, indent, compiler, ftplugin)
- [livescript](https://github.com/gkz/vim-ls) (syntax, indent, compiler, ftplugin) - [livescript](https://github.com/gkz/vim-ls) (syntax, indent, compiler, ftplugin)
- [llvm](https://github.com/rhysd/vim-llvm) (syntax, indent, ftplugin) - [llvm](https://github.com/rhysd/vim-llvm) (syntax, indent, ftplugin)
- [log](https://github.com/MTDL9/vim-log-highlighting) (syntax)
- [lua](https://github.com/tbastos/vim-lua) (syntax, indent) - [lua](https://github.com/tbastos/vim-lua) (syntax, indent)
- [mako](https://github.com/sophacles/vim-bundle-mako) (syntax, indent, ftplugin) - [mako](https://github.com/sophacles/vim-bundle-mako) (syntax, indent, ftplugin)
- [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent) - [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent)
- [mathematica](https://github.com/voldikss/vim-mma) (syntax, autoload, ftplugin) - [mathematica](https://github.com/voldikss/vim-mma) (syntax, ftplugin)
- [mdx](https://github.com/jxnblk/vim-mdx-js) (syntax) - [mdx](https://github.com/jxnblk/vim-mdx-js) (syntax)
- [meson](https://github.com/mesonbuild/meson) (syntax, indent, ftplugin) - [meson](https://github.com/mesonbuild/meson) (syntax, indent, ftplugin)
- [moonscript](https://github.com/leafo/moonscript-vim) (syntax, indent, ftplugin) - [moonscript](https://github.com/leafo/moonscript-vim) (syntax, indent, ftplugin)
@@ -131,14 +139,14 @@ If you need full functionality of any plugin, please use it directly with your p
- [powershell](https://github.com/PProvost/vim-ps1) (syntax, indent, ftplugin) - [powershell](https://github.com/PProvost/vim-ps1) (syntax, indent, ftplugin)
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, indent) - [protobuf](https://github.com/uarun/vim-protobuf) (syntax, indent)
- [pug](https://github.com/digitaltoad/vim-pug) (syntax, indent, ftplugin) - [pug](https://github.com/digitaltoad/vim-pug) (syntax, indent, ftplugin)
- [puppet](https://github.com/voxpupuli/vim-puppet) (syntax, indent, ftplugin) - [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, autoload, ftplugin)
- [purescript](https://github.com/purescript-contrib/purescript-vim) (syntax, indent, ftplugin) - [purescript](https://github.com/purescript-contrib/purescript-vim) (syntax, indent, ftplugin)
- [python-compiler](https://github.com/aliev/vim-compiler-python) (compiler, autoload) - [python-compiler](https://github.com/aliev/vim-compiler-python) (compiler, autoload)
- [python-indent](https://github.com/Vimjas/vim-python-pep8-indent) (indent) - [python-indent](https://github.com/Vimjas/vim-python-pep8-indent) (indent)
- [python](https://github.com/vim-python/python-syntax) (syntax) - [python](https://github.com/vim-python/python-syntax) (syntax)
- [qmake](https://github.com/artoj/qmake-syntax-vim) (syntax) - [qmake](https://github.com/artoj/qmake-syntax-vim) (syntax)
- [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin) - [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin)
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin) - [r-lang](https://github.com/vim-scripts/R.vim) (syntax)
- [racket](https://github.com/wlangstroth/vim-racket) (syntax, indent, ftplugin) - [racket](https://github.com/wlangstroth/vim-racket) (syntax, indent, ftplugin)
- [ragel](https://github.com/jneen/ragel.vim) (syntax) - [ragel](https://github.com/jneen/ragel.vim) (syntax)
- [raml](https://github.com/IN3D/vim-raml) (syntax, ftplugin) - [raml](https://github.com/IN3D/vim-raml) (syntax, ftplugin)
@@ -155,19 +163,21 @@ If you need full functionality of any plugin, please use it directly with your p
- [smt2](https://github.com/bohlender/vim-smt2) (syntax, autoload, ftplugin) - [smt2](https://github.com/bohlender/vim-smt2) (syntax, autoload, ftplugin)
- [solidity](https://github.com/tomlion/vim-solidity) (syntax, indent, ftplugin) - [solidity](https://github.com/tomlion/vim-solidity) (syntax, indent, ftplugin)
- [stylus](https://github.com/wavded/vim-stylus) (syntax, indent, ftplugin) - [stylus](https://github.com/wavded/vim-stylus) (syntax, indent, ftplugin)
- [svelte](https://github.com/evanleck/vim-svelte) (syntax, indent)
- [svg-indent](https://github.com/jasonshell/vim-svg-indent) (indent) - [svg-indent](https://github.com/jasonshell/vim-svg-indent) (indent)
- [svg](https://github.com/vim-scripts/svg.vim) (syntax) - [svg](https://github.com/vim-scripts/svg.vim) (syntax)
- [swift](https://github.com/keith/swift.vim) (syntax, indent, ftplugin) - [swift](https://github.com/keith/swift.vim) (syntax, indent, ftplugin)
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (syntax) - [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (syntax)
- [systemd](https://github.com/wgwoods/vim-systemd-syntax) (syntax) - [systemd](https://github.com/wgwoods/vim-systemd-syntax) (syntax)
- [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, ftplugin) - [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, autoload, ftplugin)
- [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin) - [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin)
- [thrift](https://github.com/solarnz/thrift.vim) (syntax) - [thrift](https://github.com/solarnz/thrift.vim) (syntax)
- [tmux](https://github.com/keith/tmux.vim) (syntax, ftplugin) - [tmux](https://github.com/ericpruitt/tmux.vim) (syntax, ftplugin)
- [tomdoc](https://github.com/wellbredgrapefruit/tomdoc.vim) (syntax) - [tomdoc](https://github.com/wellbredgrapefruit/tomdoc.vim) (syntax)
- [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin) - [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin)
- [tptp](https://github.com/c-cube/vim-tptp) (syntax)
- [twig](https://github.com/lumiliet/vim-twig) (syntax, indent, ftplugin) - [twig](https://github.com/lumiliet/vim-twig) (syntax, indent, ftplugin)
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, indent, compiler, ftplugin) - [typescript](https://github.com/HerringtonDarkholme/yats.vim) (syntax, indent, compiler, ftplugin)
- [vala](https://github.com/arrufat/vala.vim) (syntax, indent) - [vala](https://github.com/arrufat/vala.vim) (syntax, indent)
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax) - [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax) - [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax)
@@ -179,6 +189,8 @@ If you need full functionality of any plugin, please use it directly with your p
- [xml](https://github.com/amadeus/vim-xml) (syntax) - [xml](https://github.com/amadeus/vim-xml) (syntax)
- [yaml](https://github.com/stephpy/vim-yaml) (syntax, ftplugin) - [yaml](https://github.com/stephpy/vim-yaml) (syntax, ftplugin)
- [yard](https://github.com/sheerun/vim-yardoc) (syntax) - [yard](https://github.com/sheerun/vim-yardoc) (syntax)
- [zephir](https://github.com/xwsoul/vim-zephir) (syntax)
- [zig](https://github.com/ziglang/zig.vim) (syntax, autoload, ftplugin)
<!--/Language Packs--> <!--/Language Packs-->
## Updating ## Updating

View File

@@ -1,6 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rspec') == -1
autocmd BufReadPost,BufNewFile *_spec.rb set syntax=rspec
autocmd BufReadPost,BufNewFile *_spec.rb setlocal commentstring=#\ %s
endif

View File

@@ -1,7 +1,7 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'haskell') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
finish
endif
setlocal comments=s1fl:{-,mb:-,ex:-},:-- setlocal comments=s1fl:{-,mb:-,ex:-},:--
setlocal iskeyword+=-,.,* setlocal iskeyword+=-,.,*
setlocal commentstring=--\ %s setlocal commentstring=--\ %s
endif

View File

@@ -1,9 +1,9 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'cjsx') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cjsx') == -1
finish
endif
if exists("loaded_matchit") if exists("loaded_matchit")
let b:match_ignorecase = 0 let b:match_ignorecase = 0
let b:match_words = '(:),\[:\],{:},<:>,' . let b:match_words = '(:),\[:\],{:},<:>,' .
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
endif endif
endif

View File

@@ -1,6 +1,6 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'haskell') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
finish
endif
setlocal comments=s1fl:{-,mb:\ \ ,ex:-},:-- setlocal comments=s1fl:{-,mb:\ \ ,ex:-},:--
setlocal iskeyword+=' setlocal iskeyword+='
endif

View File

@@ -1,5 +1,5 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'idris') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris') == -1
finish
endif
setlocal iskeyword+=' setlocal iskeyword+='
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'javascript') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
finish
endif
" Vim filetype plugin file " Vim filetype plugin file
" Language: JavaScript " Language: JavaScript
@@ -14,3 +12,40 @@ if exists('b:undo_ftplugin')
else else
let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<' let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<'
endif endif
endif
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim ftplugin file
"
" Language: javascript.jsx
" Maintainer: MaxMEllon <maxmellon1994@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" modified from html.vim
" For matchit plugin
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words = '(:),\[:\],{:},<:>,' .
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
endif
" For andymass/vim-matchup plugin
if exists("loaded_matchup")
setlocal matchpairs=(:),{:},[:],<:>
let b:match_words = '<\@<=\([^/][^ \t>]*\)\g{hlend}[^>]*\%(/\@<!>\|$\):<\@<=/\1>'
let b:match_skip = 's:comment\|string'
endif
let b:original_commentstring = &l:commentstring
augroup jsx_comment
autocmd! CursorMoved <buffer>
autocmd CursorMoved <buffer> call jsx_pretty#comment#update_commentstring(b:original_commentstring)
augroup end
setlocal suffixesadd+=.jsx
endif

View File

@@ -1,31 +0,0 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim ftplugin file
"
" Language: JSX (JavaScript)
" Maintainer: Max Wang <mxawng@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" modified from html.vim
if exists("loaded_matchit")
let b:match_ignorecase = 0
let s:jsx_match_words = '<\([a-zA-Z0-9.]\+\)\(>\|$\|\s\):<\/\1>'
if !exists('b:loaded_jsx_match_words')
let b:loaded_jsx_match_words = 0
endif
if b:loaded_jsx_match_words == 0
let b:match_words = exists('b:match_words')
\ ? b:match_words . ',' . s:jsx_match_words
\ : s:jsx_match_words
endif
let b:loaded_jsx_match_words = 1
endif
setlocal suffixesadd+=.jsx

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'llvm') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'llvm') == -1
finish
endif
" Copyright (c) 2018 rhysd " Copyright (c) 2018 rhysd
" "
@@ -475,3 +473,5 @@ endfunction
if !exists(':LLI') if !exists(':LLI')
command! -buffer -nargs=? -bar -complete=file LLI call <SID>run_lli(<f-args>) command! -buffer -nargs=? -bar -complete=file LLI call <SID>run_lli(<f-args>)
endif endif
endif

View File

@@ -1,20 +1,11 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'puppet') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
finish
endif
if !exists('g:puppet_align_hashes') if !exists('g:puppet_align_hashes')
let g:puppet_align_hashes = 1 let g:puppet_align_hashes = 1
endif endif
if g:puppet_align_hashes && exists(':Tabularize') if g:puppet_align_hashes
inoremap <buffer> <silent> > ><Esc>:call <SID>puppetalign()<CR>a inoremap <buffer> <silent> => =><Esc>:call puppet#align#AlignHashrockets()<CR>$a
function! s:puppetalign() endif
let p = '^\s*\w+\s*[=+]>.*$'
let column = strlen(substitute(getline('.')[0:col('.')],'\([^=]\|=[^>]\)','','g'))
let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*'))
Tabularize /=>/l1
normal! 0
echo repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position)
call search(repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
endfunction
endif endif

View File

@@ -1,85 +0,0 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'terraform') != -1
finish
endif
if !exists('g:terraform_align')
let g:terraform_align = 0
endif
if !exists('g:terraform_remap_spacebar')
let g:terraform_remap_spacebar = 0
endif
if !exists('g:terraform_fold_sections')
let g:terraform_fold_sections = 0
endif
if g:terraform_align && exists(':Tabularize')
inoremap <buffer> <silent> = =<Esc>:call <SID>terraformalign()<CR>a
function! s:terraformalign()
let p = '^.*=[^>]*$'
if exists(':Tabularize') && getline('.') =~# '^.*=' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
let column = strlen(substitute(getline('.')[0:col('.')],'[^=]','','g'))
let position = strlen(matchstr(getline('.')[0:col('.')],'.*=\s*\zs.*'))
Tabularize/=/l1
normal! 0
call search(repeat('[^=]*=',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
endif
endfunction
endif
if g:terraform_fold_sections
function! TerraformFolds()
let thisline = getline(v:lnum)
if match(thisline, '^resource') >= 0
return ">1"
elseif match(thisline, '^provider') >= 0
return ">1"
elseif match(thisline, '^module') >= 0
return ">1"
elseif match(thisline, '^variable') >= 0
return ">1"
elseif match(thisline, '^output') >= 0
return ">1"
elseif match(thisline, '^data') >= 0
return ">1"
elseif match(thisline, '^terraform') >= 0
return ">1"
elseif match(thisline, '^locals') >= 0
return ">1"
else
return "="
endif
endfunction
setlocal foldmethod=expr
setlocal foldexpr=TerraformFolds()
setlocal foldlevel=1
function! TerraformFoldText()
let foldsize = (v:foldend-v:foldstart)
return getline(v:foldstart).' ('.foldsize.' lines)'
endfunction
setlocal foldtext=TerraformFoldText()
endif
" Re-map the space bar to fold and unfold
if get(g:, "terraform_remap_spacebar", 1)
"inoremap <space> <C-O>za
nnoremap <space> za
onoremap <space> <C-C>za
vnoremap <space> zf
endif
" Match the identation put in place by Hashicorp and :TerraformFmt, https://github.com/hashivim/vim-terraform/issues/21
if get(g:, "terraform_align", 1)
setlocal tabstop=2
setlocal softtabstop=2
setlocal shiftwidth=2
endif
" Set the commentstring
if exists('g:terraform_commentstring')
let &l:commentstring=g:terraform_commentstring
else
setlocal commentstring=#%s
endif

View File

@@ -0,0 +1,27 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
" modified from html.vim
" For matchit plugin
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words = '(:),\[:\],{:},<:>,' .
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
endif
" For andymass/vim-matchup plugin
if exists("loaded_matchup")
setlocal matchpairs=(:),{:},[:],<:>
let b:match_words = '<\@<=\([^/][^ \t>]*\)\g{hlend}[^>]*\%(/\@<!>\|$\):<\@<=/\1>'
let b:match_skip = 's:comment\|string'
endif
let b:original_commentstring = &l:commentstring
augroup jsx_comment
autocmd! CursorMoved <buffer>
autocmd CursorMoved <buffer> call jsx_pretty#comment#update_commentstring(b:original_commentstring)
augroup end
setlocal suffixesadd+=.tsx
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'yaml') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
finish
endif
" Vim indent file " Vim indent file
" Language: Yaml " Language: Yaml
@@ -9,3 +7,5 @@ endif
" URL: https://github.com/hjpbarcelos " URL: https://github.com/hjpbarcelos
setlocal autoindent sw=2 ts=2 expandtab setlocal autoindent sw=2 ts=2 expandtab
" vim:set sw=2: " vim:set sw=2:
endif

View File

@@ -0,0 +1,33 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim indent file
"
" Language: javascript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if exists('b:did_indent')
let s:did_indent = b:did_indent
unlet b:did_indent
endif
let s:keepcpo = &cpo
set cpo&vim
if exists('s:did_indent')
let b:did_indent = s:did_indent
endif
setlocal indentexpr=GetJsxIndent()
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e,*<Return>,<>>,<<>,/
function! GetJsxIndent()
return jsx_pretty#indent#get(function('GetJavascriptIndent'))
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
endif

View File

@@ -1,118 +0,0 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim indent file
"
" Language: JSX (JavaScript)
" Maintainer: Max Wang <mxawng@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Save the current JavaScript indentexpr.
let b:jsx_js_indentexpr = &indentexpr
" Prologue; load in XML indentation.
if exists('b:did_indent')
let s:did_indent=b:did_indent
unlet b:did_indent
endif
exe 'runtime! indent/xml.vim'
if exists('s:did_indent')
let b:did_indent=s:did_indent
endif
setlocal indentexpr=GetJsxIndent()
" JS indentkeys
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
" XML indentkeys
setlocal indentkeys+=*<Return>,<>>,<<>,/
" Multiline end tag regex (line beginning with '>' or '/>')
let s:endtag = '^\s*\/\?>\s*;\='
" Get all syntax types at the beginning of a given line.
fu! SynSOL(lnum)
return map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
endfu
" Get all syntax types at the end of a given line.
fu! SynEOL(lnum)
let lnum = prevnonblank(a:lnum)
let col = strlen(getline(lnum))
return map(synstack(lnum, col), 'synIDattr(v:val, "name")')
endfu
" Check if a syntax attribute is XMLish.
fu! SynAttrXMLish(synattr)
return a:synattr =~ "^xml" || a:synattr =~ "^jsx"
endfu
" Check if a synstack is XMLish (i.e., has an XMLish last attribute).
fu! SynXMLish(syns)
return SynAttrXMLish(get(a:syns, -1))
endfu
" Check if a synstack denotes the end of a JSX block.
fu! SynJSXBlockEnd(syns)
return get(a:syns, -1) =~ '\%(js\|javascript\)Braces' &&
\ SynAttrXMLish(get(a:syns, -2))
endfu
" Determine how many jsxRegions deep a synstack is.
fu! SynJSXDepth(syns)
return len(filter(copy(a:syns), 'v:val ==# "jsxRegion"'))
endfu
" Check whether `cursyn' continues the same jsxRegion as `prevsyn'.
fu! SynJSXContinues(cursyn, prevsyn)
let curdepth = SynJSXDepth(a:cursyn)
let prevdepth = SynJSXDepth(a:prevsyn)
" In most places, we expect the nesting depths to be the same between any
" two consecutive positions within a jsxRegion (e.g., between a parent and
" child node, between two JSX attributes, etc.). The exception is between
" sibling nodes, where after a completed element (with depth N), we return
" to the parent's nesting (depth N - 1). This case is easily detected,
" since it is the only time when the top syntax element in the synstack is
" jsxRegion---specifically, the jsxRegion corresponding to the parent.
return prevdepth == curdepth ||
\ (prevdepth == curdepth + 1 && get(a:cursyn, -1) ==# 'jsxRegion')
endfu
" Cleverly mix JS and XML indentation.
fu! GetJsxIndent()
let cursyn = SynSOL(v:lnum)
let prevsyn = SynEOL(v:lnum - 1)
" Use XML indenting iff:
" - the syntax at the end of the previous line was either JSX or was the
" closing brace of a jsBlock whose parent syntax was JSX; and
" - the current line continues the same jsxRegion as the previous line.
if (SynXMLish(prevsyn) || SynJSXBlockEnd(prevsyn)) &&
\ SynJSXContinues(cursyn, prevsyn)
let ind = XmlIndentGet(v:lnum, 0)
" Align '/>' and '>' with '<' for multiline tags.
if getline(v:lnum) =~? s:endtag
let ind = ind - &sw
endif
" Then correct the indentation of any JSX following '/>' or '>'.
if getline(v:lnum - 1) =~? s:endtag
let ind = ind + &sw
endif
else
if len(b:jsx_js_indentexpr)
" Invoke the base JS package's custom indenter. (For vim-javascript,
" e.g., this will be GetJavascriptIndent().)
let ind = eval(b:jsx_js_indentexpr)
else
let ind = cindent(v:lnum)
endif
endif
return ind
endfu

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'objc') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'objc') == -1
finish
endif
" Vim indent file " Vim indent file
" Language: Objective-C " Language: Objective-C
@@ -95,3 +93,5 @@ endfunction
" Restore 'cpo' options " Restore 'cpo' options
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
endif

View File

@@ -0,0 +1,34 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim indent file
"
" Language: typescript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
" Depends: leafgarland/typescript-vim
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if exists('b:did_indent')
let s:did_indent = b:did_indent
unlet b:did_indent
endif
let s:keepcpo = &cpo
set cpo&vim
if exists('s:did_indent')
let b:did_indent = s:did_indent
endif
setlocal indentexpr=GetJsxIndent()
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e,*<Return>,<>>,<<>,/
function! GetJsxIndent()
return jsx_pretty#indent#get(function('GetTypescriptIndent'))
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'c++11') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1
finish
endif
" Vim syntax file " Vim syntax file
" Language: C Additions " Language: C Additions
@@ -306,3 +304,5 @@ hi def link cBoolean Boolean
"hi def link cDelimiter Delimiter "hi def link cDelimiter Delimiter
" foldmethod=syntax fix, courtesy of Ivan Freitas " foldmethod=syntax fix, courtesy of Ivan Freitas
"hi def link cBraces Delimiter "hi def link cBraces Delimiter
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'cjsx') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cjsx') == -1
finish
endif
if exists('b:current_syntax') if exists('b:current_syntax')
let s:current_syntax=b:current_syntax let s:current_syntax=b:current_syntax
@@ -29,3 +27,5 @@ hi def link cjsxTagName Function
hi def link cjsxEntity Statement hi def link cjsxEntity Statement
hi def link cjsxEntityPunct Type hi def link cjsxEntityPunct Type
hi def link cjsxAttribProperty Type hi def link cjsxAttribProperty Type
endif

View File

@@ -1,12 +1,10 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'c++11') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1
finish
endif
" Vim syntax file " Vim syntax file
" Language: C++ Additions " Language: C++ Additions
" Maintainer: Jon Haggblad <jon@haeggblad.com> " Maintainer: Jon Haggblad <jon@haeggblad.com>
" URL: http://www.haeggblad.com " URL: http://www.haeggblad.com
" Last Change: 1 Feb 2018 " Last Change: 29 Jun 2019
" Version: 0.6 " Version: 0.6
" Changelog: " Changelog:
" 0.1 - initial version. " 0.1 - initial version.
@@ -964,6 +962,12 @@ if !exists("cpp_no_cpp11")
syntax keyword cppSTLtype atomic_uintmax_t syntax keyword cppSTLtype atomic_uintmax_t
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
syntax keyword cppSTLenum memory_order syntax keyword cppSTLenum memory_order
syntax keyword cppSTLtype memory_order_relaxed
syntax keyword cppSTLtype memory_order_consume
syntax keyword cppSTLtype memory_order_acquire
syntax keyword cppSTLtype memory_order_release
syntax keyword cppSTLtype memory_order_acq_rel
syntax keyword cppSTLtype memory_order_seq_cst
syntax keyword cppSTLfunction is_lock_free syntax keyword cppSTLfunction is_lock_free
syntax keyword cppSTLfunction compare_exchange_weak syntax keyword cppSTLfunction compare_exchange_weak
syntax keyword cppSTLfunction compare_exchange_strong syntax keyword cppSTLfunction compare_exchange_strong
@@ -1983,6 +1987,9 @@ endif " C++17
if !exists("cpp_no_cpp20") if !exists("cpp_no_cpp20")
" type_traits " type_traits
syntax keyword cppSTLtype remove_cvref remove_cvref_t syntax keyword cppSTLtype remove_cvref remove_cvref_t
syntax keyword cppType char8_t
syntax keyword cppStatement co_yield co_return co_await
syntax keyword cppStorageClass consteval
endif endif
@@ -2094,3 +2101,5 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
HiLink cppRawDelimiter Delimiter HiLink cppRawDelimiter Delimiter
delcommand HiLink delcommand HiLink
endif endif
endif

17
after/syntax/haskell.vim Normal file
View File

@@ -0,0 +1,17 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dhall') == -1
" store and remove current syntax value
let old_syntax = b:current_syntax
unlet b:current_syntax
syn include @dhall syntax/dhall.vim
unlet b:current_syntax
syn region dhallBlock matchgroup=quasiQuote start=/\[\$\?staticDhallExpression|/ end=/|\]/ contains=@dhall
hi def link quasiQuote Underlined
" restore current syntax value
let b:current_syntax = old_syntax
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'scala') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
finish
endif
" Extends standard help syntax with highlighting of Scala code. " Extends standard help syntax with highlighting of Scala code.
" "
@@ -16,3 +14,5 @@ if has('conceal')
else else
syntax region rgnScala matchgroup=Ignore start='!sc!' end='!/sc!' contains=@ScalaCode syntax region rgnScala matchgroup=Ignore start='!sc!' end='!/sc!' contains=@ScalaCode
endif endif
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'html5') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
finish
endif
" Vim syntax file " Vim syntax file
" Language: HTML (version 5.1) " Language: HTML (version 5.1)
@@ -14,3 +12,5 @@ endif
" https://github.com/w3c/html/issues/694 " https://github.com/w3c/html/issues/694
syntax region htmlComment start=+<!--+ end=+-->+ contains=@Spell syntax region htmlComment start=+<!--+ end=+-->+ contains=@Spell
syntax region htmlComment start=+<!DOCTYPE+ keepend end=+>+ syntax region htmlComment start=+<!DOCTYPE+ keepend end=+>+
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'idris') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris') == -1
finish
endif
" This script allows for unicode concealing of certain characters " This script allows for unicode concealing of certain characters
" For instance -> goes to → " For instance -> goes to →
@@ -80,3 +78,5 @@ hi link idrNiceOperator Operator
hi! link Conceal Operator hi! link Conceal Operator
setlocal conceallevel=2 setlocal conceallevel=2
endif

View File

@@ -0,0 +1,62 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file
"
" Language: javascript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let s:jsx_cpo = &cpo
set cpo&vim
syntax case match
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
if hlexists("jsNoise") " pangloss/vim-javascript
syntax cluster jsExpression add=jsxRegion
elseif hlexists("javascriptOpSymbols") " othree/yajs.vim
" refine the javascript line comment
syntax region javascriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
syntax cluster javascriptValue add=jsxRegion
syntax cluster javascriptNoReserved add=jsxElement,jsxTag
" add support to arrow function which returns a tagged template string, e.g.
" () => html`<div></div>`
syntax cluster afterArrowFunc add=javascriptTagRef
else " build-in javascript syntax
" refine the javascript line comment
syntax region javaScriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
" add a javaScriptBlock group for build-in syntax
syntax region javaScriptBlockBuildIn
\ contained
\ matchgroup=javaScriptBraces
\ start="{"
\ end="}"
\ extend
\ contains=javaScriptBlockBuildIn,@javaScriptEmbededExpr,javaScript.*
\ fold
syntax cluster javaScriptEmbededExpr add=jsxRegion
" refine the template string syntax
syntax region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr,javaScript.*
endif
runtime syntax/jsx_pretty.vim
let b:current_syntax = 'javascript.jsx'
let &cpo = s:jsx_cpo
unlet s:jsx_cpo
endif

View File

@@ -0,0 +1,27 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
syn include @GraphQLSyntax syntax/graphql.vim
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
" Support expression interpolation ((${...})) inside template strings.
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
hi def link graphqlTemplateString jsTemplateString
hi def link graphqlTaggedTemplate jsTaggedTemplate
hi def link graphqlTemplateExpression jsTemplateExpression
syn cluster jsExpression add=graphqlTaggedTemplate
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
endif

View File

@@ -1,83 +0,0 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file
"
" Language: JSX (JavaScript)
" Maintainer: Max Wang <mxawng@gmail.com>
" Depends: pangloss/vim-javascript
"
" CREDITS: Inspired by Facebook.
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Prologue; load in XML syntax.
if exists('b:current_syntax')
let s:current_syntax=b:current_syntax
unlet b:current_syntax
endif
syn include @XMLSyntax syntax/xml.vim
if exists('s:current_syntax')
let b:current_syntax=s:current_syntax
endif
" Officially, vim-jsx depends on the pangloss/vim-javascript syntax package
" (and is tested against it exclusively). However, in practice, we make some
" effort towards compatibility with other packages.
"
" These are the plugin-to-syntax-element correspondences:
"
" - pangloss/vim-javascript: jsBlock, jsExpression
" - jelera/vim-javascript-syntax: javascriptBlock
" - othree/yajs.vim: javascriptNoReserved
" JSX attributes should color as JS. Note the trivial end pattern; we let
" jsBlock take care of ending the region.
syn region xmlString contained start=+{+ end=++ contains=jsBlock,javascriptBlock
" JSX comments inside XML tag should color as comment. Note the trivial end pattern; we let
" jsComment take care of ending the region.
syn region xmlString contained start=+//+ end=++ contains=jsComment
" JSX child blocks behave just like JSX attributes, except that (a) they are
" syntactically distinct, and (b) they need the syn-extend argument, or else
" nested XML end-tag patterns may end the outer jsxRegion.
syn region jsxChild contained start=+{+ end=++ contains=jsBlock,javascriptBlock
\ extend
" 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=@Spell,@XMLSyntax,jsxRegion,jsxChild,jsBlock,javascriptBlock
\ start=+\%(<\|\w\)\@<!<\z([a-zA-Z_][a-zA-Z0-9:\-.]*\>[:,]\@!\)\([^>]*>(\)\@!+
\ skip=+<!--\_.\{-}-->+
\ end=+</\z1\_\s\{-}>+
\ end=+/>+
\ keepend
\ extend
" Shorthand fragment support
"
" Note that since the main jsxRegion contains @XMLSyntax, we cannot simply
" adjust the regex above since @XMLSyntax will highlight the opening `<` as an
" XMLError. Instead we create a new group with the same name that does not
" include @XMLSyntax and instead uses matchgroup to get the same highlighting.
syn region jsxRegion
\ contains=@Spell,jsxRegion,jsxChild,jsBlock,javascriptBlock
\ matchgroup=xmlTag
\ start=/<>/
\ end=/<\/>/
\ keepend
\ extend
" Add jsxRegion to the lowest-level JS syntax cluster.
syn cluster jsExpression add=jsxRegion
" Allow jsxRegion to contain reserved words.
syn cluster javascriptNoReserved add=jsxRegion

216
after/syntax/jsx_pretty.vim Normal file
View File

@@ -0,0 +1,216 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)
" <tag id="sample">
" ~~~~~~~~~~~~~~~~~
" and self close tag
" <tag id="sample" />
" ~~~~~~~~~~~~~~~~~~~
syntax region jsxTag
\ start=+<+
\ matchgroup=jsxOpenPunct
\ end=+>+
\ matchgroup=NONE
\ end=+\(/\_s*>\)\@=+
\ contained
\ contains=jsxOpenTag,jsxEscapeJs,jsxAttrib,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment,jsxSpreadOperator
\ keepend
\ extend
" <tag></tag>
" ~~~~~~~~~~~
" and fragment
" <></>
" ~~~~~
" and self close tag
" <tag />
" ~~~~~~~
syntax region jsxElement
\ start=+<\_s*\(>\|\${\|\z(\<[-:_\.\$0-9A-Za-z]\+\>\)\)+
\ end=+/\_s*>+
\ end=+<\_s*/\_s*\z1\_s*>+
\ contains=jsxElement,jsxEscapeJs,jsxTag,jsxComment,jsxCloseString,jsxCloseTag,@Spell
\ keepend
\ extend
\ contained
\ fold
" detect jsx region
syntax region jsxRegion
\ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
\ end=++
\ contains=jsxElement
" <tag key={this.props.key}>
" ~~~~~~~~~~~~~~~~
syntax region jsxEscapeJs
\ start=+{+
\ end=++
\ extend
\ contained
\ contains=jsBlock,javascriptBlock,javaScriptBlockBuildIn,typescriptBlock
" <tag key={this.props.key}>
" ~~~~
" and fragment start tag
" <>
" ~~
exe 'syntax region jsxOpenTag
\ matchgroup=jsxOpenPunct
\ start=+<+
\ end=+>+
\ matchgroup=NONE
\ end=+\>+
\ contained
\ contains=jsxTagName
\ nextgroup=jsxAttrib
\ skipwhite
\ skipempty ' .(s:highlight_close_tag ? 'transparent' : '')
" <foo.bar>
" ~
syntax match jsxDot +\.+ contained display
" <foo:bar>
" ~
syntax match jsxNamespace +:+ contained display
" <tag id="sample">
" ~
syntax match jsxEqual +=+ contained display nextgroup=jsxString,jsxEscapeJs,jsxRegion skipwhite
" <tag />
" ~~
syntax match jsxCloseString +/\_s*>+ contained
" </tag>
" ~~~~~~
" and fragment close tag
" </>
" ~~~
syntax region jsxCloseTag
\ matchgroup=jsxClosePunct
\ start=+<\_s*/+
\ end=+>+
\ contained
\ contains=jsxTagName
" <tag key={this.props.key}>
" ~~~
syntax match jsxAttrib
\ +\<[-A-Za-z_][-:_\$0-9A-Za-z]*\>+
\ contained
\ nextgroup=jsxEqual
\ skipwhite
\ skipempty
\ contains=jsxAttribKeyword
\ display
" <MyComponent ...>
" ~~~~~~~~~~~
" NOT
" <someCamel ...>
" ~~~~~
exe 'syntax match jsxComponentName
\ +\<[A-Z][\$0-9A-Za-z]\+\>+
\ contained
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
" <tag key={this.props.key}>
" ~~~
exe 'syntax match jsxTagName
\ +\<[-:_\.\$0-9A-Za-z]\+\>+
\ contained
\ contains=jsxComponentName,jsxDot,jsxNamespace
\ nextgroup=jsxAttrib
\ skipempty
\ skipwhite
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
" <tag id="sample">
" ~~~~~~~~
" and
" <tag id='sample'>
" ~~~~~~~~
syntax region jsxString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ contained contains=@Spell display
let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'raw'])
let s:enable_tagged_jsx = !empty(s:tags)
" add support to JSX inside the tagged template string
" https://github.com/developit/htm
if s:enable_tagged_jsx
exe 'syntax region jsxTaggedRegion
\ start=+\%('. join(s:tags, '\|') .'\)\@<=`+ms=s+1
\ end=+`+me=e-1
\ extend
\ contained
\ containedin=jsTemplateString,javascriptTemplate,javaScriptStringT,typescriptStringB
\ contains=jsxElement'
syntax region jsxEscapeJs
\ start=+\${+
\ end=++
\ extend
\ contained
\ contains=jsTemplateExpression,javascriptTemplateSubstitution,javaScriptEmbed,typescriptInterpolation
syntax region jsxOpenTag
\ matchgroup=jsxOpenPunct
\ start=+<\%(\${\)\@=+
\ matchgroup=NONE
\ end=++
\ contained
\ contains=jsxEscapeJs
\ nextgroup=jsxAttrib,jsxSpreadOperator
\ skipwhite
\ skipempty
syntax keyword jsxAttribKeyword class contained display
syntax match jsxSpreadOperator +\.\.\.+ contained display nextgroup=jsxEscapeJs skipwhite
syntax match jsxCloseTag +<//>+ display
syntax match jsxComment +<!--\_.\{-}-->+ display
endif
" Highlight the tag name
highlight def link jsxTag Function
highlight def link jsxTagName Identifier
highlight def link jsxComponentName Function
highlight def link jsxAttrib Type
highlight def link jsxAttribKeyword jsxAttrib
highlight def link jsxEqual Operator
highlight def link jsxString String
highlight def link jsxDot Operator
highlight def link jsxNamespace Operator
if s:highlight_close_tag
highlight def link jsxCloseString Identifier
highlight def link jsxOpenPunct jsxTag
else
" Highlight the jsxCloseString (i.e. />), jsxPunct (i.e. <,>) and jsxCloseTag (i.e. <//>)
highlight def link jsxCloseString Comment
highlight def link jsxOpenPunct jsxPunct
endif
highlight def link jsxPunct jsxCloseString
highlight def link jsxClosePunct jsxPunct
highlight def link jsxCloseTag jsxCloseString
highlight def link jsxComment Comment
highlight def link jsxSpreadOperator Operator
let s:vim_jsx_pretty_colorful_config = get(g:, 'vim_jsx_pretty_colorful_config', 0)
if s:vim_jsx_pretty_colorful_config == 1
highlight def link jsObjectKey Label
highlight def link jsArrowFuncArgs Type
highlight def link jsFuncArgs Type
endif
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'llvm') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'llvm') == -1
finish
endif
" Copyright (c) 2018 rhysd " Copyright (c) 2018 rhysd
" "
@@ -24,3 +22,5 @@ endif
syn keyword llvmKeyword attributes syn keyword llvmKeyword attributes
syn match llvmNoName /#\d\+\>/ syn match llvmNoName /#\d\+\>/
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'mdx') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mdx') == -1
finish
endif
" based on mxw/vim-jsx " based on mxw/vim-jsx
@@ -43,3 +41,5 @@ syn cluster jsExpression add=jsxRegion
" Allow jsxRegion to contain reserved words. " Allow jsxRegion to contain reserved words.
syn cluster javascriptNoReserved add=jsxRegion syn cluster javascriptNoReserved add=jsxRegion
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'mathematica') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mathematica') == -1
finish
endif
"Vim conceal file "Vim conceal file
" Language: Mathematica " Language: Mathematica
@@ -1448,3 +1446,5 @@ endif
hi! link Conceal Normal hi! link Conceal Normal
setlocal conceallevel=2 setlocal conceallevel=2
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'objc') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'objc') == -1
finish
endif
" ARC type modifiers " ARC type modifiers
syn keyword objcTypeModifier __bridge __bridge_retained __bridge_transfer __autoreleasing __strong __weak __unsafe_unretained syn keyword objcTypeModifier __bridge __bridge_retained __bridge_transfer __autoreleasing __strong __weak __unsafe_unretained
@@ -21,3 +19,5 @@ syn match objcDirective "@property\|@synthesize\|@dynamic\|@package"
" Highlight property attributes as if they were type modifiers " Highlight property attributes as if they were type modifiers
hi def link objcPropertyAttribute objcTypeModifier hi def link objcPropertyAttribute objcTypeModifier
endif

View File

@@ -1,4 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'reason') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'reason') == -1
finish
endif
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rspec') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rspec') == -1
finish
endif
" "
" An rspec syntax file " An rspec syntax file
@@ -34,3 +32,5 @@ syntax keyword rspecMessageExpectation advise any_args any_number_of_times anyth
highlight link rspecMessageExpectation Function highlight link rspecMessageExpectation Function
let b:current_syntax = 'rspec' let b:current_syntax = 'rspec'
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'yard') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yard') == -1
finish
endif
" Ruby syntax extensions for highlighting YARD documentation. " Ruby syntax extensions for highlighting YARD documentation.
" "
@@ -128,3 +126,5 @@ hi def link yardParametricType yardComment
hi def link yardArrow yardComment hi def link yardArrow yardComment
hi def link yardHashAngle yardComment hi def link yardHashAngle yardComment
hi def link yardHashCurly yardComment hi def link yardHashCurly yardComment
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
scriptencoding utf-8 scriptencoding utf-8
@@ -43,3 +41,5 @@ if !get(g:, 'rust_conceal_mod_path', 0)
endif endif
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'latex') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
finish
endif
" adds support for cleverref package " adds support for cleverref package
" \Cref, \cref, \cpageref, \labelcref, \labelcpageref " \Cref, \cref, \cpageref, \labelcref, \labelcpageref
@@ -11,3 +9,5 @@ syn region texRefZone matchgroup=texStatement start="\\\(label\|\)c\(page\|\)re
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>" syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>"
syn match texInputFile "\\lstinputlisting\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt syn match texInputFile "\\lstinputlisting\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texZone "\\lstinline\s*\(\[.*\]\)\={.\{-}}" syn match texZone "\\lstinline\s*\(\[.*\]\)\={.\{-}}"
endif

View File

@@ -0,0 +1,50 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file
"
" Language: javascript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
" Depends: leafgarland/typescript-vim
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let s:jsx_cpo = &cpo
set cpo&vim
syntax case match
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
" refine the typescript line comment
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
if !hlexists('typescriptTypeCast')
" add a typescriptBlock group for typescript
syntax region typescriptBlock
\ matchgroup=typescriptBraces
\ start="{"
\ end="}"
\ contained
\ extend
\ contains=@typescriptExpression,typescriptBlock
\ fold
endif
syntax cluster typescriptExpression add=jsxRegion,typescriptParens
runtime syntax/jsx_pretty.vim
let b:current_syntax = 'typescript.tsx'
let &cpo = s:jsx_cpo
unlet s:jsx_cpo
endif

View File

@@ -0,0 +1,26 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
syn include @GraphQLSyntax syntax/graphql.vim
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
" Support expression interpolation ((${...})) inside template strings.
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=typescriptTemplateSubstitution containedin=graphqlFold keepend
hi def link graphqlTemplateString typescriptTemplate
hi def link graphqlTemplateExpression typescriptTemplateSubstitution
syn cluster typescriptExpression add=graphqlTaggedTemplate
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'yaml') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
finish
endif
" To make this file do stuff, add something like the following (without the " To make this file do stuff, add something like the following (without the
" leading ") to your ~/.vimrc: " leading ") to your ~/.vimrc:
@@ -63,3 +61,5 @@ hi link yamlInline Operator
hi link yamlBlock Operator hi link yamlBlock Operator
hi link yamlString String hi link yamlString String
hi link yamlEscape Special hi link yamlEscape Special
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'julia') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Support for LaTex-to-Unicode conversion as in the Julia REPL " " Support for LaTex-to-Unicode conversion as in the Julia REPL "
@@ -652,3 +650,5 @@ function! LaTeXtoUnicode#Toggle()
endif endif
return return
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rst') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1
finish
endif
" Author: Antony Lee <anntzer.lee@gmail.com> " Author: Antony Lee <anntzer.lee@gmail.com>
" Description: Helper functions for reStructuredText syntax folding " Description: Helper functions for reStructuredText syntax folding
@@ -64,3 +62,5 @@ function RstFold#GetRstFoldText()
let text = thisline =~ '^\([=`:.''"~^_*+#-]\)\1\+$' ? getline(v:foldstart + 1) : thisline let text = thisline =~ '^\([=`:.''"~^_*+#-]\)\1\+$' ? getline(v:foldstart + 1) : thisline
return indent . text return indent . text
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
function! cargo#Load() function! cargo#Load()
" Utility call to get this script loaded, for debugging " Utility call to get this script loaded, for debugging
@@ -117,3 +115,5 @@ function! cargo#runtarget(args)
endfunction endfunction
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
function! cargo#quickfix#CmdPre() abort function! cargo#quickfix#CmdPre() abort
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo'
@@ -28,3 +26,5 @@ function! cargo#quickfix#CmdPost() abort
endfunction endfunction
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'clojure') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
finish
endif
" Vim completion script " Vim completion script
" Language: Clojure " Language: Clojure
@@ -24,3 +22,5 @@ function! clojurecomplete#Complete(findstart, base)
endfunction endfunction
" vim:sts=8:sw=8:ts=8:noet " vim:sts=8:sw=8:ts=8:noet
endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'coffee-script') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
finish
endif
" Language: CoffeeScript " Language: CoffeeScript
" Maintainer: Mick Koch <mick@kochm.co> " Maintainer: Mick Koch <mick@kochm.co>
@@ -56,3 +54,5 @@ function! coffee#CoffeeSetUpErrorFormat()
\%f:%l:%c:\ error:\ %m, \%f:%l:%c:\ error:\ %m,
\%-G%.%# \%-G%.%#
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
let s:save_cpo = &cpo let s:save_cpo = &cpo
set cpo&vim set cpo&vim
@@ -342,3 +340,5 @@ endfunction
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'csv') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'csv') == -1
finish
endif
" Filetype plugin for editing CSV files. "{{{1 " Filetype plugin for editing CSV files. "{{{1
" Author: Christian Brabandt <cb@256bit.org> " Author: Christian Brabandt <cb@256bit.org>
@@ -3189,3 +3187,5 @@ endfun
" Vim Modeline " {{{2 " Vim Modeline " {{{2
" vim: set foldmethod=marker et sw=0 sts=-1 ts=4: " vim: set foldmethod=marker et sw=0 sts=-1 ts=4:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dart') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
finish
endif
function! s:error(text) abort function! s:error(text) abort
@@ -9,22 +7,35 @@ function! s:error(text) abort
echohl None echohl None
endfunction endfunction
function! s:cexpr(errorformat, joined_lines) abort function! s:cexpr(errorformat, lines, reason) abort
let temp_errorfomat = &errorformat call setqflist([], ' ', {
try \ 'lines': a:lines,
let &errorformat = a:errorformat \ 'efm': a:errorformat,
cexpr a:joined_lines \ 'context': {'reason': a:reason},
copen \})
finally copen
let &errorformat = temp_errorfomat endfunction
endtry
" If the quickfix list has a context matching [reason], clear and close it.
function! s:clearQfList(reason) abort
let context = get(getqflist({'context': 1}), 'context', {})
if type(context) == v:t_dict &&
\ has_key(context, 'reason') &&
\ context.reason == a:reason
call setqflist([], 'r')
cclose
endif
endfunction endfunction
function! dart#fmt(q_args) abort function! dart#fmt(q_args) abort
if executable('dartfmt') if executable('dartfmt')
let buffer_content = join(getline(1, '$'), "\n") let buffer_content = join(getline(1, '$'), "\n")
let joined_lines = system(printf('dartfmt %s', a:q_args), buffer_content) let args = '--stdin-name '.expand('%').' '.a:q_args
if buffer_content ==# joined_lines[:-2] | return | endif let joined_lines = system(printf('dartfmt %s', args), buffer_content)
if buffer_content ==# joined_lines[:-2]
call s:clearQfList('dartfmt')
return
endif
if 0 == v:shell_error if 0 == v:shell_error
let win_view = winsaveview() let win_view = winsaveview()
let lines = split(joined_lines, "\n") let lines = split(joined_lines, "\n")
@@ -33,12 +44,11 @@ function! dart#fmt(q_args) abort
silent keepjumps execute string(len(lines)+1).',$ delete' silent keepjumps execute string(len(lines)+1).',$ delete'
endif endif
call winrestview(win_view) call winrestview(win_view)
call s:clearQfList('dartfmt')
else else
let errors = split(joined_lines, "\n")[2:] let errors = split(joined_lines, "\n")[2:]
let file_path = expand('%') let error_format = '%Aline %l\, column %c of %f: %m,%C%.%#'
call map(errors, 'file_path.":".v:val') call s:cexpr(error_format, errors, 'dartfmt')
let error_format = '%A%f:line %l\, column %c of stdin: %m,%C%.%#'
call s:cexpr(error_format, join(errors, "\n"))
endif endif
else else
call s:error('cannot execute binary file: dartfmt') call s:error('cannot execute binary file: dartfmt')
@@ -49,8 +59,9 @@ function! dart#analyzer(q_args) abort
if executable('dartanalyzer') if executable('dartanalyzer')
let path = expand('%:p:gs:\:/:') let path = expand('%:p:gs:\:/:')
if filereadable(path) if filereadable(path)
let joined_lines = system(printf('dartanalyzer %s %s', a:q_args, shellescape(path))) let command = printf('dartanalyzer %s %s', a:q_args, shellescape(path))
call s:cexpr('%m (%f\, line %l\, col %c)', joined_lines) let lines = systemlist(command)
call s:cexpr('%m (%f\, line %l\, col %c)', lines, 'dartanalyzer')
else else
call s:error(printf('cannot read a file: "%s"', path)) call s:error(printf('cannot read a file: "%s"', path))
endif endif
@@ -63,8 +74,9 @@ function! dart#tojs(q_args) abort
if executable('dart2js') if executable('dart2js')
let path = expand('%:p:gs:\:/:') let path = expand('%:p:gs:\:/:')
if filereadable(path) if filereadable(path)
let joined_lines = system(printf('dart2js %s %s', a:q_args, shellescape(path))) let command = printf('dart2js %s %s', a:q_args, shellescape(path))
call s:cexpr('%m (%f\, line %l\, col %c)', joined_lines) let lines = systemlist(command)
call s:cexpr('%m (%f\, line %l\, col %c)', lines, 'dart2js')
else else
call s:error(printf('cannot read a file: "%s"', path)) call s:error(printf('cannot read a file: "%s"', path))
endif endif
@@ -172,3 +184,5 @@ function! dart#setModifiable() abort
setlocal nomodifiable setlocal nomodifiable
endif endif
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elixir') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
finish
endif
let s:path = expand('<sfile>:h') let s:path = expand('<sfile>:h')
let s:cmd = join(['mix', 'run', '--no-start', '--no-compile', shellescape(s:path.'/get_repos.exs')]) let s:cmd = join(['mix', 'run', '--no-start', '--no-compile', shellescape(s:path.'/get_repos.exs')])
@@ -22,3 +20,5 @@ endfunction
function! db#adapter#ecto#complete_opaque(url) abort function! db#adapter#ecto#complete_opaque(url) abort
return map(s:repo_list(), 'v:val[0]') return map(s:repo_list(), 'v:val[0]')
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elixir') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
finish
endif
if !exists("g:elixir_indent_max_lookbehind") if !exists("g:elixir_indent_max_lookbehind")
let g:elixir_indent_max_lookbehind = 30 let g:elixir_indent_max_lookbehind = 30
@@ -25,6 +23,7 @@ function! elixir#indent#indent(lnum)
let handlers = [ let handlers = [
\'top_of_file', \'top_of_file',
\'starts_with_string_continuation',
\'following_trailing_binary_operator', \'following_trailing_binary_operator',
\'starts_with_pipe', \'starts_with_pipe',
\'starts_with_binary_operator', \'starts_with_binary_operator',
@@ -35,9 +34,14 @@ function! elixir#indent#indent(lnum)
\] \]
for handler in handlers for handler in handlers
call s:debug('testing handler elixir#indent#handle_'.handler) call s:debug('testing handler elixir#indent#handle_'.handler)
let context = {'lnum': lnum, 'text': text, 'prev_nb_lnum': prev_nb_lnum, 'prev_nb_text': prev_nb_text} let context = {'lnum': lnum, 'text': text, 'first_nb_char_idx': match(text, '\w'), 'prev_nb_lnum': prev_nb_lnum, 'prev_nb_text': prev_nb_text}
let indent = function('elixir#indent#handle_'.handler)(context) let indent = function('elixir#indent#handle_'.handler)(context)
if indent != -1 if indent == -2
" Keep indent the same
call s:debug('line '.lnum.': elixir#indent#handle_'.handler.' returned -2; returning indent of -1')
call cursor(curs_lnum, curs_col)
return -1
elseif indent != -1
call s:debug('line '.lnum.': elixir#indent#handle_'.handler.' returned '.indent) call s:debug('line '.lnum.': elixir#indent#handle_'.handler.' returned '.indent)
call cursor(curs_lnum, curs_col) call cursor(curs_lnum, curs_col)
return indent return indent
@@ -102,7 +106,11 @@ endfunction
" Returns 0 or 1 based on whether or not the given line number and column " Returns 0 or 1 based on whether or not the given line number and column
" number pair is a string or comment " number pair is a string or comment
function! s:is_string_or_comment(line, col) function! s:is_string_or_comment(line, col)
return synIDattr(synID(a:line, a:col, 1), "name") =~ '\%(String\|Comment\)' return s:syntax_name(a:line, a:col) =~ '\%(String\|Comment\)'
endfunction
function! s:syntax_name(line, col)
return synIDattr(synID(a:line, a:col, 1), "name")
endfunction endfunction
" Skip expression for searchpair. Returns 0 or 1 based on whether the value " Skip expression for searchpair. Returns 0 or 1 based on whether the value
@@ -158,6 +166,14 @@ function! elixir#indent#handle_top_of_file(context)
end end
endfunction endfunction
function! elixir#indent#handle_starts_with_string_continuation(context)
if s:syntax_name(a:context.lnum, a:context.first_nb_char_idx) =~ '\(String\|Comment\)$'
return -2
else
return -1
end
endfunction
function! elixir#indent#handle_follow_prev_nb(context) function! elixir#indent#handle_follow_prev_nb(context)
return s:get_base_indent(a:context.prev_nb_lnum, a:context.prev_nb_text) return s:get_base_indent(a:context.prev_nb_lnum, a:context.prev_nb_text)
endfunction endfunction
@@ -345,3 +361,5 @@ function! elixir#indent#handle_inside_generic_block(context)
return -1 return -1
endif endif
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elixir') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
finish
endif
function! elixir#util#get_filename(word) abort function! elixir#util#get_filename(word) abort
let word = a:word let word = a:word
@@ -26,3 +24,5 @@ function! elixir#util#get_filename(word) abort
return word return word
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elm') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
finish
endif
let s:errors = [] let s:errors = []
@@ -383,3 +381,5 @@ function! s:ExecuteInRoot(cmd) abort
return l:out return l:out
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elm') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elm') == -1
finish
endif
" IsWin returns 1 if current OS is Windows or 0 otherwise " IsWin returns 1 if current OS is Windows or 0 otherwise
fun! elm#util#IsWin() abort fun! elm#util#IsWin() abort
@@ -182,3 +180,5 @@ function! s:error(msg)
echohl NONE echohl NONE
let v:errmsg = a:msg let v:errmsg = a:msg
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'fish') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fish') == -1
finish
endif
function! fish#Indent() function! fish#Indent()
let l:shiftwidth = shiftwidth() let l:shiftwidth = shiftwidth()
@@ -11,15 +9,15 @@ function! fish#Indent()
let l:indent = 0 let l:indent = 0
let l:prevline = getline(l:prevlnum) let l:prevline = getline(l:prevlnum)
if l:prevline =~# '\v^\s*switch>' if l:prevline =~# '\v^\s*switch>'
let l:indent = l:shiftwidth * 2 return indent(l:prevlnum) + l:shiftwidth
elseif l:prevline =~# '\v^\s*%(begin|if|else|while|for|function|case)>' elseif l:prevline =~# '\v^\s*%(begin|if|else|while|for|function|case)>'
let l:indent = l:shiftwidth let l:indent = l:shiftwidth
endif endif
let l:line = getline(v:lnum) let l:line = getline(v:lnum)
if l:line =~# '\v^\s*end>' if l:line =~# '\v^\s*end>'
return indent(v:lnum) - (l:indent ==# 0 ? l:shiftwidth : l:indent) return indent(l:prevlnum) - (l:indent ==# 0 ? l:shiftwidth : l:indent)
elseif l:line =~# '\v^\s*%(case|else)>' elseif l:line =~# '\v^\s*%(case|else)>'
return indent(v:lnum) - l:shiftwidth return indent(l:prevlnum) - l:shiftwidth
endif endif
return indent(l:prevlnum) + l:indent return indent(l:prevlnum) + l:indent
endfunction endfunction
@@ -69,3 +67,5 @@ endfunction
function! fish#errorformat() function! fish#errorformat()
return '%Afish: %m,%-G%*\\ ^,%-Z%f (line %l):%s' return '%Afish: %m,%-G%*\\ ^,%-Z%f (line %l):%s'
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'go') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
finish
endif
" don't spam the user when Vim is started in Vi compatibility mode " don't spam the user when Vim is started in Vi compatibility mode
let s:cpo_save = &cpo let s:cpo_save = &cpo
@@ -25,10 +23,12 @@ endfunction
function! go#config#SetBuildTags(value) abort function! go#config#SetBuildTags(value) abort
if a:value is '' if a:value is ''
silent! unlet g:go_build_tags silent! unlet g:go_build_tags
call go#lsp#ResetWorkspaceDirectories()
return return
endif endif
let g:go_build_tags = a:value let g:go_build_tags = a:value
call go#lsp#ResetWorkspaceDirectories()
endfunction endfunction
function! go#config#TestTimeout() abort function! go#config#TestTimeout() abort
@@ -51,6 +51,14 @@ function! go#config#TermMode() abort
return get(g:, 'go_term_mode', 'vsplit') return get(g:, 'go_term_mode', 'vsplit')
endfunction endfunction
function! go#config#TermCloseOnExit() abort
return get(g:, 'go_term_close_on_exit', 1)
endfunction
function! go#config#SetTermCloseOnExit(value) abort
let g:go_term_close_on_exit = a:value
endfunction
function! go#config#TermEnabled() abort function! go#config#TermEnabled() abort
return has('nvim') && get(g:, 'go_term_enabled', 0) return has('nvim') && get(g:, 'go_term_enabled', 0)
endfunction endfunction
@@ -118,7 +126,7 @@ function! go#config#ListAutoclose() abort
endfunction endfunction
function! go#config#InfoMode() abort function! go#config#InfoMode() abort
return get(g:, 'go_info_mode', 'gocode') return get(g:, 'go_info_mode', 'gopls')
endfunction endfunction
function! go#config#GuruScope() abort function! go#config#GuruScope() abort
@@ -178,12 +186,15 @@ function! go#config#DocUrl() abort
return godoc_url return godoc_url
endfunction endfunction
function! go#config#DocPopupWindow() abort
return get(g:, 'go_doc_popup_window', 0)
endfunction
function! go#config#DefReuseBuffer() abort function! go#config#DefReuseBuffer() abort
return get(g:, 'go_def_reuse_buffer', 0) return get(g:, 'go_def_reuse_buffer', 0)
endfunction endfunction
function! go#config#DefMode() abort function! go#config#DefMode() abort
return get(g:, 'go_def_mode', 'guru') return get(g:, 'go_def_mode', 'gopls')
endfunction endfunction
function! go#config#DeclsIncludes() abort function! go#config#DeclsIncludes() abort
@@ -215,7 +226,7 @@ function! go#config#DebugCommands() abort
endfunction endfunction
function! go#config#DebugLogOutput() abort function! go#config#DebugLogOutput() abort
return get(g:, 'go_debug_log_output', 'debugger, rpc') return get(g:, 'go_debug_log_output', 'debugger,rpc')
endfunction endfunction
function! go#config#LspLog() abort function! go#config#LspLog() abort
@@ -249,7 +260,7 @@ function! go#config#SetTemplateAutocreate(value) abort
endfunction endfunction
function! go#config#MetalinterCommand() abort function! go#config#MetalinterCommand() abort
return get(g:, "go_metalinter_command", "gometalinter") return get(g:, "go_metalinter_command", "golangci-lint")
endfunction endfunction
function! go#config#MetalinterAutosaveEnabled() abort function! go#config#MetalinterAutosaveEnabled() abort
@@ -272,10 +283,6 @@ function! go#config#MetalinterEnabled() abort
return get(g:, "go_metalinter_enabled", default_enabled) return get(g:, "go_metalinter_enabled", default_enabled)
endfunction endfunction
function! go#config#MetalinterDisabled() abort
return get(g:, "go_metalinter_disabled", [])
endfunction
function! go#config#GolintBin() abort function! go#config#GolintBin() abort
return get(g:, "go_golint_bin", "golint") return get(g:, "go_golint_bin", "golint")
endfunction endfunction
@@ -470,6 +477,10 @@ function! go#config#EchoGoInfo() abort
return get(g:, "go_echo_go_info", 1) return get(g:, "go_echo_go_info", 1)
endfunction endfunction
function! go#config#CodeCompletionEnabled() abort
return get(g:, "go_code_completion_enabled", 1)
endfunction
" Set the default value. A value of "1" is a shortcut for this, for " Set the default value. A value of "1" is a shortcut for this, for
" compatibility reasons. " compatibility reasons.
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1 if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1
@@ -481,3 +492,5 @@ let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save
" vim: sw=2 ts=2 et " vim: sw=2 ts=2 et
endif

16
autoload/graphql.vim Normal file
View File

@@ -0,0 +1,16 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
" Vim plugin
" Language: GraphQL
" Maintainer: Jon Parise <jon@indelible.org>
if exists('g:autoloaded_graphql')
finish
endif
let g:autoloaded_graphql = 1
function! graphql#javascript_tags() abort
return get(g:, 'graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL'])
endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'html5') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
finish
endif
" Vim completion script " Vim completion script
" Language: HTML and XHTML " Language: HTML and XHTML
@@ -843,3 +841,5 @@ function! htmlcomplete#CheckDoctype() " {{{
endfunction endfunction
" }}} " }}}
" vim:set foldmethod=marker: " vim:set foldmethod=marker:
endif

View File

@@ -0,0 +1,41 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
function! jsx_pretty#comment#update_commentstring(original)
let syn_current = s:syn_name(line('.'), col('.'))
let syn_start = s:syn_name(line('.'), 1)
let save_view = winsaveview()
if syn_start =~? '^jsx'
let line = getline(".")
let start = len(matchstr(line, '^\s*'))
let syn_name = s:syn_name(line('.'), start + 1)
if line =~ '^\s*//'
let &l:commentstring = '// %s'
elseif s:syn_contains(line('.'), col('.'), 'jsxTaggedRegion')
let &l:commentstring = '<!-- %s -->'
elseif syn_name =~? '^jsxAttrib'
let &l:commentstring = '// %s'
else
let &l:commentstring = '{/* %s */}'
endif
else
let &l:commentstring = a:original
endif
" Restore the cursor position
call winrestview(save_view)
endfunction
function! s:syn_name(lnum, cnum)
let syn_id = get(synstack(a:lnum, a:cnum), -1)
return synIDattr(syn_id, "name")
endfunction
function! s:syn_contains(lnum, cnum, syn_name)
let stack = synstack(a:lnum, a:cnum)
let syn_names = map(stack, 'synIDattr(v:val, "name")')
return index(syn_names, a:syn_name) >= 0
endfunction
endif

View File

@@ -0,0 +1,218 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if exists('*shiftwidth')
function! s:sw()
return shiftwidth()
endfunction
else
function! s:sw()
return &sw
endfunction
endif
" Get the syntax group of start of line
function! s:syn_sol(lnum)
let line = getline(a:lnum)
let sol = matchstr(line, '^\s*')
return map(synstack(a:lnum, len(sol) + 1), 'synIDattr(v:val, "name")')
endfunction
" Get the syntax group of end of line
function! s:syn_eol(lnum)
let lnum = prevnonblank(a:lnum)
let col = strlen(getline(lnum))
return map(synstack(lnum, col), 'synIDattr(v:val, "name")')
endfunction
function! s:prev_indent(lnum)
let lnum = prevnonblank(a:lnum - 1)
return indent(lnum)
endfunction
function! s:prev_line(lnum)
let lnum = prevnonblank(a:lnum - 1)
return substitute(getline(lnum), '^\s*\|\s*$', '', 'g')
endfunction
function! s:syn_attr_jsx(synattr)
return a:synattr =~? "^jsx"
endfunction
function! s:syn_xmlish(syns)
return s:syn_attr_jsx(get(a:syns, -1))
endfunction
function! s:syn_jsx_element(syns)
return get(a:syns, -1) =~? 'jsxElement'
endfunction
function! s:syn_js_comment(syns)
return get(a:syns, -1) =~? 'Comment$'
endfunction
function! s:syn_jsx_escapejs(syns)
return get(a:syns, -1) =~? '\(\(js\(Template\)\?\|javaScript\(Embed\)\?\|typescript\)Braces\|javascriptTemplateSB\|typescriptInterpolationDelimiter\)' &&
\ (get(a:syns, -2) =~? 'jsxEscapeJs' ||
\ get(a:syns, -3) =~? 'jsxEscapeJs')
endfunction
function! s:syn_jsx_attrib(syns)
return len(filter(copy(a:syns), 'v:val =~? "jsxAttrib"'))
endfunction
let s:start_tag = '<\s*\([-:_\.\$0-9A-Za-z]\+\|>\)'
" match `/end_tag>` and `//>`
let s:end_tag = '/\%(\s*[-:_\.\$0-9A-Za-z]*\s*\|/\)>'
let s:opfirst = '^' . get(g:,'javascript_opfirst',
\ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
function! jsx_pretty#indent#get(js_indent)
let lnum = v:lnum
let line = substitute(getline(lnum), '^\s*\|\s*$', '', 'g')
let current_syn = s:syn_sol(lnum)
let current_syn_eol = s:syn_eol(lnum)
let prev_line_num = prevnonblank(lnum - 1)
let prev_syn_sol = s:syn_sol(prev_line_num)
let prev_syn_eol = s:syn_eol(prev_line_num)
let prev_line = s:prev_line(lnum)
let prev_ind = s:prev_indent(lnum)
if s:syn_xmlish(current_syn)
if !s:syn_xmlish(prev_syn_sol)
\ && !s:syn_jsx_escapejs(prev_syn_sol)
\ && !s:syn_jsx_escapejs(prev_syn_eol)
\ && !s:syn_js_comment(prev_syn_sol)
if line =~ '^/\s*>' || line =~ '^<\s*' . s:end_tag
return prev_ind
else
return prev_ind + s:sw()
endif
elseif !s:syn_xmlish(prev_syn_sol) && !s:syn_js_comment(prev_syn_sol) && s:syn_jsx_attrib(current_syn)
" For #79
return prev_ind + s:sw()
" {
" <div></div>
" ##} <--
elseif s:syn_jsx_element(current_syn) && line =~ '}$'
let pair_line = searchpair('{', '', '}', 'b')
return indent(pair_line)
elseif line =~ '^-->$'
if prev_line =~ '^<!--'
return prev_ind
else
return prev_ind - s:sw()
endif
elseif prev_line =~ '-->$'
return prev_ind
" close tag </tag> or /> including </>
elseif prev_line =~ s:end_tag . '$'
if line =~ '^<\s*' . s:end_tag
return prev_ind - s:sw()
elseif s:syn_jsx_attrib(prev_syn_sol)
return prev_ind - s:sw()
else
return prev_ind
endif
elseif line =~ '^\(>\|/\s*>\)'
if prev_line =~ '^<'
return prev_ind
else
return prev_ind - s:sw()
endif
elseif prev_line =~ '^\(<\|>\)' &&
\ (s:syn_xmlish(prev_syn_eol) || s:syn_js_comment(prev_syn_eol))
if line =~ '^<\s*' . s:end_tag
return prev_ind
else
return prev_ind + s:sw()
endif
elseif line =~ '^<\s*' . s:end_tag
if !s:syn_xmlish(prev_syn_sol)
if s:syn_jsx_escapejs(prev_syn_eol)
\ || s:syn_jsx_escapejs(prev_syn_sol)
return prev_ind - s:sw()
else
return prev_ind
endif
elseif prev_line =~ '^\<return'
return prev_ind
else
return prev_ind - s:sw()
endif
elseif !s:syn_xmlish(prev_syn_eol)
if prev_line =~ '\(&&\|||\|=>\|[([{]\|`\)$'
" <div>
" {
" }
" </div>
if line =~ '^[)\]}]'
return prev_ind
else
return prev_ind + s:sw()
endif
else
return prev_ind
endif
else
return prev_ind
endif
elseif s:syn_jsx_escapejs(current_syn)
if line =~ '^}'
let char = getline('.')[col('.') - 1]
" When pressing enter after the }, keep the indent
if char != '}' && search('}', 'b', lnum)
return indent(lnum)
else
let pair_line = searchpair('{', '', '}', 'bW')
return indent(pair_line)
endif
elseif line =~ '^{' || line =~ '^\${'
if s:syn_jsx_escapejs(prev_syn_eol)
\ || s:syn_jsx_attrib(prev_syn_sol)
return prev_ind
elseif s:syn_xmlish(prev_syn_eol) && (prev_line =~ s:end_tag || prev_line =~ '-->$')
return prev_ind
else
return prev_ind + s:sw()
endif
endif
elseif line =~ '^`' && s:syn_jsx_escapejs(current_syn_eol)
" For `} of template syntax
let pair_line = searchpair('{', '', '}', 'bW')
return indent(pair_line)
elseif line =~ '^/[/*]' " js comment in jsx tag
if get(prev_syn_sol, -1) =~ 'Punct'
return prev_ind + s:sw()
elseif synIDattr(synID(lnum - 1, 1, 1), 'name') =~ 'jsxTag'
return prev_ind
else
return a:js_indent()
endif
else
let ind = a:js_indent()
" Issue #68
" return (<div>
" |<div>)
if (line =~ '^/\s*>' || line =~ '^<\s*' . s:end_tag)
\ && !s:syn_xmlish(prev_syn_sol)
return prev_ind
endif
" If current syntax is not a jsx syntax group
if s:syn_xmlish(prev_syn_eol) && line !~ '^[)\]}]'
let sol = matchstr(line, s:opfirst)
if sol is ''
" Fix javascript continue indent
return ind - s:sw()
else
return ind
endif
endif
return ind
endif
endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'julia') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
finish
endif
function! julia#set_syntax_version(jvers) function! julia#set_syntax_version(jvers)
if &filetype != "julia" if &filetype != "julia"
@@ -186,3 +184,5 @@ function! julia#gotodefinition()
return return
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'julia') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
finish
endif
" path to the julia binary to communicate with " path to the julia binary to communicate with
if has('win32') || has('win64') if has('win32') || has('win64')
@@ -244,3 +242,5 @@ function! s:likely(str) abort
let output = systemlist(cmd) let output = systemlist(cmd)
return split(matchstr(output[0], '\C^search: \zs.*')) return split(matchstr(output[0], '\C^search: \zs.*'))
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'julia') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
finish
endif
" Facilities for moving around Julia blocks (e.g. if/end, function/end etc.) " Facilities for moving around Julia blocks (e.g. if/end, function/end etc.)
" (AKA a collection of horrible hacks) " (AKA a collection of horrible hacks)
@@ -796,3 +794,5 @@ function! s:cursor_moved(...)
let b:jlblk_did_select = b:jlblk_doing_select let b:jlblk_did_select = b:jlblk_doing_select
let b:jlblk_doing_select = 0 let b:jlblk_doing_select = 0
endfunction endfunction
endif

View File

@@ -1,9 +1,7 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'julia') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
finish
endif
" This file is autogenerated from the script 'generate_latex_symbols_table.jl' " This file is autogenerated from the script 'generate_latex_symbols_table.jl'
" The symbols are based on Julia version 1.1.0-DEV.695 " The symbols are based on Julia version 1.3.0-DEV.263
scriptencoding utf-8 scriptencoding utf-8
@@ -392,6 +390,7 @@ function! julia_latex_symbols#get_dict()
\ '\trademark': '™', \ '\trademark': '™',
\ '\:tm:': '™', \ '\:tm:': '™',
\ '\bbZ': '', \ '\bbZ': '',
\ '\ohm': 'Ω',
\ '\mho': '℧', \ '\mho': '℧',
\ '\frakZ': '', \ '\frakZ': '',
\ '\turnediota': '℩', \ '\turnediota': '℩',
@@ -498,8 +497,8 @@ function! julia_latex_symbols#get_dict()
\ '\circlearrowright': '↻', \ '\circlearrowright': '↻',
\ '\leftharpoonup': '↼', \ '\leftharpoonup': '↼',
\ '\leftharpoondown': '↽', \ '\leftharpoondown': '↽',
\ '\upharpoonleft': '↾', \ '\upharpoonright': '↾',
\ '\upharpoonright': '↿', \ '\upharpoonleft': '↿',
\ '\rightharpoonup': '⇀', \ '\rightharpoonup': '⇀',
\ '\rightharpoondown': '⇁', \ '\rightharpoondown': '⇁',
\ '\downharpoonright': '⇂', \ '\downharpoonright': '⇂',
@@ -3331,3 +3330,5 @@ function! julia_latex_symbols#get_dict()
\ '\:baggage_claim:': '🛄', \ '\:baggage_claim:': '🛄',
\ '\:left_luggage:': '🛅'} \ '\:left_luggage:': '🛅'}
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'pony') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pony') == -1
finish
endif
" Vim plugin file " Vim plugin file
" Language: Pony " Language: Pony
@@ -534,3 +532,5 @@ endfunction
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save
endif

72
autoload/puppet/align.vim Normal file
View File

@@ -0,0 +1,72 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
function! puppet#align#IndentLevel(lnum)
return indent(a:lnum) / &shiftwidth
endfunction
function! puppet#align#LinesInBlock(lnum)
let lines = []
let indent_level = puppet#align#IndentLevel(a:lnum)
let marker = a:lnum - 1
while marker >= 1
let line_text = getline(marker)
let line_indent = puppet#align#IndentLevel(marker)
if line_text =~? '\v\S'
if line_indent < indent_level
break
elseif line_indent == indent_level
call add(lines, marker)
endif
endif
let marker -= 1
endwhile
let marker = a:lnum
while marker <= line('$')
let line_text = getline(marker)
let line_indent = puppet#align#IndentLevel(marker)
if line_text =~? '\v\S'
if line_indent < indent_level
break
elseif line_indent == indent_level
call add(lines, marker)
endif
endif
let marker += 1
endwhile
return lines
endfunction
""
" Format lines with hashrocket (=>)
" @param a:1 a line where function should search for first hashrocket
" expression, if param is not given, line with active cursor is used
function! puppet#align#AlignHashrockets(...) abort
let l:lnum = get(a:, 1, line('.'))
let lines_in_block = puppet#align#LinesInBlock(l:lnum)
let max_left_len = 0
let indent_str = printf('%' . indent(l:lnum) . 's', '')
for line_num in lines_in_block
let data = matchlist(getline(line_num), '^\s*\(.\{-}\S\)\s*=>\s*\(.*\)$')
if !empty(data)
let max_left_len = max([max_left_len, strlen(data[1])])
endif
endfor
for line_num in lines_in_block
let data = matchlist(getline(line_num), '^\s*\(.\{-}\S\)\s*=>\s*\(.*\)$')
if !empty(data)
let new_line = printf('%s%-' . max_left_len . 's => %s', indent_str, data[1], data[2])
call setline(line_num, new_line)
endif
endfor
endfunction
endif

40
autoload/puppet/ctags.vim Normal file
View File

@@ -0,0 +1,40 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
if !exists('s:ctags_type')
let s:ctags_type = 0
endif
let s:ctags_options_dir = expand('<sfile>:p:h:h:h') . '/ctags/'
" Return full path to option file for ctags application
function! puppet#ctags#OptionFile()
if puppet#ctags#Type() == 'universal'
let l:ctags_options = 'puppet_u.ctags'
else
let l:ctags_options = 'puppet.ctags'
endif
return s:ctags_options_dir . l:ctags_options
endfunction
" Return type of installed ctags application,
" can be 'universal' or 'exuberant'
function! puppet#ctags#Type()
if !s:ctags_type
let l:version = system('ctags --version')
if l:version =~ 'Universal Ctags'
let s:ctags_type = 'universal'
elseif l:version =~ 'Exuberant Ctags'
let s:ctags_type = 'exuberant'
else
echoerr 'Unknown version of Ctags'
endif
endif
return s:ctags_type
endfunction
endif

View File

@@ -0,0 +1,61 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
"
" Simple format using puppet's l:indents and align hashrockets function
function! puppet#format#Format() abort
let l:start_lnum = v:lnum
let l:end_lnum = v:lnum + v:count - 1
call puppet#format#Indention(l:start_lnum, l:end_lnum)
call puppet#format#Hashrocket(l:start_lnum, l:end_lnum)
call puppet#format#Fallback(l:start_lnum, l:end_lnum)
endfunction
""
" Format hashrockets expressions in every line in range start_lnum and
" end_lnum, both ends included
"
" TODO way of using AlignHashrockets function is ineffective, because it
" formats same lines again and again, find better way to do it
function! puppet#format#Hashrocket(start_lnum, end_lnum) abort
let l:lnum = a:start_lnum
while l:lnum <= a:end_lnum
call puppet#align#AlignHashrockets(l:lnum)
let l:lnum += 1
endwhile
endfunction
""
" Format indention in every line in range start_lnum and end_lnum, both ends
" included
"
function! puppet#format#Indention(start_lnum, end_lnum) abort
execute 'normal! ' . a:start_lnum . 'gg=' . a:end_lnum . 'gg'
endfunction
""
" Use internal vim default autoformat method for every line in range, only
" lines which exeed &widthline are formated
"
function! puppet#format#Fallback(start_lnum, end_lnum) abort
" I'm using it to check if autoformat expand range
let l:eof_lnum = line('$')
let l:lnum = a:start_lnum
let l:end_lnum = a:end_lnum
while l:lnum <= l:end_lnum
if strlen(getline(l:lnum)) > &textwidth
call cursor(l:lnum)
execute 'normal! gww'
" Checking if autoformat expand number of lines if yes, I will extend
" range too
if l:eof_lnum < line('$')
let l:end_lnum += line('$') - l:eof_lnum
let l:eof_lnum = line('$')
endif
endif
let l:lnum += 1
endwhile
endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'python-compiler') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'python-compiler') == -1
finish
endif
" Sometimes Python issues debugging messages " Sometimes Python issues debugging messages
" which don't belong to a call stack context " which don't belong to a call stack context
@@ -19,3 +17,5 @@ function! python#utils#fix_qflist() " {{{
call setqflist(l:traceback) call setqflist(l:traceback)
endif endif
endfunction " }}} endfunction " }}}
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'ruby') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
finish
endif
" Vim completion script " Vim completion script
" Language: Ruby " Language: Ruby
@@ -878,3 +876,5 @@ call s:DefRuby()
"}}} ruby-side code "}}} ruby-side code
" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl: " vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
" Author: Kevin Ballard " Author: Kevin Ballard
" Description: Helper functions for Rust commands/mappings " Description: Helper functions for Rust commands/mappings
@@ -509,7 +507,7 @@ function! rust#Test(all, options) abort
return rust#Run(1, '--test ' . a:options) return rust#Run(1, '--test ' . a:options)
endif endif
if exists(':terminal') if has('terminal') || has('nvim')
let cmd = 'terminal ' let cmd = 'terminal '
else else
let cmd = '!' let cmd = '!'
@@ -530,7 +528,7 @@ function! rust#Test(all, options) abort
let func_name = s:SearchTestFunctionNameUnderCursor() let func_name = s:SearchTestFunctionNameUnderCursor()
if func_name ==# '' if func_name ==# ''
echohl ErrorMsg echohl ErrorMsg
echo 'No test function was found under the cursor. Please add ! to command if you want to run all tests' echomsg 'No test function was found under the cursor. Please add ! to command if you want to run all tests'
echohl None echohl None
return return
endif endif
@@ -548,3 +546,5 @@ endfunction
" }}}1 " }}}1
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,10 +1,9 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
" For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim " For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim
let s:global_variable_list = [ let s:global_variable_list = [
\ '_rustfmt_autosave_because_of_config',
\ 'ftplugin_rust_source_path', \ 'ftplugin_rust_source_path',
\ 'loaded_syntastic_rust_cargo_checker', \ 'loaded_syntastic_rust_cargo_checker',
\ 'loaded_syntastic_rust_filetype', \ 'loaded_syntastic_rust_filetype',
@@ -32,7 +31,6 @@ let s:global_variable_list = [
\ 'rustc_makeprg_no_percent', \ 'rustc_makeprg_no_percent',
\ 'rustc_path', \ 'rustc_path',
\ 'rustfmt_autosave', \ 'rustfmt_autosave',
\ 'rustfmt_autosave_because_of_config',
\ 'rustfmt_autosave_if_config_present', \ 'rustfmt_autosave_if_config_present',
\ 'rustfmt_command', \ 'rustfmt_command',
\ 'rustfmt_emit_files', \ 'rustfmt_emit_files',
@@ -48,7 +46,9 @@ endfunction
function! s:EchoGlobalVariables() abort function! s:EchoGlobalVariables() abort
for l:key in s:global_variable_list for l:key in s:global_variable_list
call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null))) if l:key !~# '^_'
call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null)))
endif
if has_key(b:, l:key) if has_key(b:, l:key)
call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key])) call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key]))
@@ -103,3 +103,5 @@ function! rust#debugging#InfoToFile(filename) abort
endfunction endfunction
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
let s:delimitMate_extra_excluded_regions = ',rustLifetimeCandidate,rustGenericLifetimeCandidate' let s:delimitMate_extra_excluded_regions = ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
@@ -46,3 +44,5 @@ endfunction
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

21
autoload/rust/tags.vim Normal file
View File

@@ -0,0 +1,21 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
" Tagbar support code, for the sake of not automatically overriding its
" configuration in case Universal Ctags is detected.
let s:ctags_is_uctags = 0
let s:checked_ctags = 0
function! rust#tags#IsUCtags() abort
if s:checked_ctags == 0
if system('ctags --version') =~? 'universal ctags'
let s:ctags_is_uctags = 1
endif
let s:checked_ctags = 1
endif
return s:ctags_is_uctags
endfunction
" vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
" Author: Stephen Sugden <stephen@stephensugden.com> " Author: Stephen Sugden <stephen@stephensugden.com>
" "
@@ -246,7 +244,12 @@ function! rustfmt#PreWrite()
if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0) if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0)
if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# '' if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# ''
let b:rustfmt_autosave = 1 let b:rustfmt_autosave = 1
let b:rustfmt_autosave_because_of_config = 1 let b:_rustfmt_autosave_because_of_config = 1
endif
else
if has_key(b:, '_rustfmt_autosave_because_of_config')
unlet b:_rustfmt_autosave_because_of_config
unlet b:rustfmt_autosave
endif endif
endif endif
@@ -259,3 +262,5 @@ endfunction
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'smt2') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'smt2') == -1
finish
endif
" Invokes the solver on current file " Invokes the solver on current file
function! smt2#RunSolver() function! smt2#RunSolver()
@@ -32,3 +30,5 @@ function! smt2#PrintSolverVersion()
silent !clear silent !clear
execute "!" . g:smt2_solver_command . " " . g:smt2_solver_version_switch execute "!" . g:smt2_solver_command . " " . g:smt2_solver_version_switch
endfunction endfunction
endif

60
autoload/terraform.vim Normal file
View File

@@ -0,0 +1,60 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terraform') == -1
function! terraform#fmt()
if !filereadable(expand('%:p'))
return
endif
let l:curw = winsaveview()
" Make a fake change so that the undo point is right.
normal! ix
normal! "_x
silent execute '%!terraform fmt -no-color -'
if v:shell_error != 0
let output = getline(1, '$')
silent undo
echo join(output, "\n")
endif
call winrestview(l:curw)
endfunction
function! terraform#align()
let p = '^.*=[^>]*$'
if exists(':Tabularize') && getline('.') =~# '^.*=' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
let column = strlen(substitute(getline('.')[0:col('.')],'[^=]','','g'))
let position = strlen(matchstr(getline('.')[0:col('.')],'.*=\s*\zs.*'))
Tabularize/=/l1
normal! 0
call search(repeat('[^=]*=',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
endif
endfunction
function! terraform#commands(A, L, P)
return [
\ 'apply',
\ 'console',
\ 'destroy',
\ 'env',
\ 'fmt',
\ 'get',
\ 'graph',
\ 'import',
\ 'init',
\ 'output',
\ 'plan',
\ 'providers',
\ 'refresh',
\ 'show',
\ 'taint',
\ 'untaint',
\ 'validate',
\ 'version',
\ 'workspace',
\ '0.12upgrade',
\ 'debug',
\ 'force-unlock',
\ 'push',
\ 'state'
\ ]
endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'vifm') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
finish
endif
" common functions for vifm command-line editing buffer filetype plugins " common functions for vifm command-line editing buffer filetype plugins
" Maintainer: xaizek <xaizek@posteo.net> " Maintainer: xaizek <xaizek@posteo.net>
@@ -16,3 +14,5 @@ function! vifm#edit#Init()
" Start buffer editing in insert mode " Start buffer editing in insert mode
startinsert startinsert
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'vifm') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
finish
endif
" common functions for vifm plugin related to globals " common functions for vifm plugin related to globals
" Maintainer: xaizek <xaizek@posteo.net> " Maintainer: xaizek <xaizek@posteo.net>
@@ -33,3 +31,5 @@ function! vifm#globals#Init()
let g:vifm_embed_term = has('gui_running') let g:vifm_embed_term = has('gui_running')
endif endif
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
let s:_plugin_name = expand('<sfile>:t:r') let s:_plugin_name = expand('<sfile>:t:r')
@@ -11,3 +9,5 @@ endfunction
function! vital#{s:_plugin_name}#function(funcname) abort function! vital#{s:_plugin_name}#function(funcname) abort
silent! return function(a:funcname) silent! return function(a:funcname)
endfunction endfunction
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
" ___vital___ " ___vital___
" NOTE: lines between '" ___vital___' is generated by :Vitalize. " NOTE: lines between '" ___vital___' is generated by :Vitalize.
@@ -189,3 +187,5 @@ endfunction
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
" ___vital___ " ___vital___
" NOTE: lines between '" ___vital___' is generated by :Vitalize. " NOTE: lines between '" ___vital___' is generated by :Vitalize.
@@ -466,3 +464,5 @@ let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
" vim:set et ts=2 sts=2 sw=2 tw=0: " vim:set et ts=2 sts=2 sw=2 tw=0:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
" ___vital___ " ___vital___
" NOTE: lines between '" ___vital___' is generated by :Vitalize. " NOTE: lines between '" ___vital___' is generated by :Vitalize.
@@ -629,3 +627,5 @@ endfunction
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
" vim:set et ts=2 sts=2 sw=2 tw=0: " vim:set et ts=2 sts=2 sw=2 tw=0:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
" ___vital___ " ___vital___
" NOTE: lines between '" ___vital___' is generated by :Vitalize. " NOTE: lines between '" ___vital___' is generated by :Vitalize.
@@ -175,3 +173,5 @@ let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
" vim:set et ts=2 sts=2 sw=2 tw=0: " vim:set et ts=2 sts=2 sw=2 tw=0:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
" ___vital___ " ___vital___
" NOTE: lines between '" ___vital___' is generated by :Vitalize. " NOTE: lines between '" ___vital___' is generated by :Vitalize.
@@ -180,3 +178,5 @@ let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo
" vim:set et ts=2 sts=2 sw=2 tw=0: " vim:set et ts=2 sts=2 sw=2 tw=0:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
let s:plugin_name = expand('<sfile>:t:r') let s:plugin_name = expand('<sfile>:t:r')
let s:vital_base_dir = expand('<sfile>:h') let s:vital_base_dir = expand('<sfile>:h')
@@ -330,3 +328,5 @@ else
return a:list return a:list
endfunction endfunction
endif endif
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'crystal') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
finish
endif
crystal crystal
bee84ae23effb0510137ad177e98c94d8b3657a6 bee84ae23effb0510137ad177e98c94d8b3657a6
@@ -8,3 +6,5 @@ bee84ae23effb0510137ad177e98c94d8b3657a6
Process Process
Web.JSON Web.JSON
ColorEcho ColorEcho
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'html5') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
finish
endif
" Vim completion for WAI-ARIA data file " Vim completion for WAI-ARIA data file
" Language: HTML + WAI-ARIA " Language: HTML + WAI-ARIA
@@ -459,3 +457,5 @@ let g:xmldata_aria = {
\ 'default_role': default_role, \ 'default_role': default_role,
\ 'vimariaattrinfo': aria_attributes_value \ 'vimariaattrinfo': aria_attributes_value
\ } \ }
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'html5') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
finish
endif
" Vim completion for HTML5 data file " Vim completion for HTML5 data file
" Language: HTML (version 5.1 Draft 2016 Jan 13) " Language: HTML (version 5.1 Draft 2016 Jan 13)
@@ -872,3 +870,5 @@ let g:xmldata_html5 = {
\ 'wbr': ['/>', ''], \ 'wbr': ['/>', ''],
\ }, \ },
\ } \ }
endif

43
autoload/zig/config.vim Normal file
View File

@@ -0,0 +1,43 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
function! zig#config#ListTypeCommands() abort
return get(g:, 'zig_list_type_commands', {})
endfunction
function! zig#config#ListType() abort
return get(g:, 'zig_list_type', '')
endfunction
function! zig#config#ListAutoclose() abort
return get(g:, 'zig_list_autoclose', 1)
endfunction
function! zig#config#ListHeight() abort
return get(g:, "zig_list_height", 0)
endfunction
function! zig#config#FmtAutosave() abort
return get(g:, "zig_fmt_autosave", 0)
endfunction
function! zig#config#SetFmtAutosave(value) abort
let g:zig_fmt_autosave = a:value
endfunction
function! zig#config#FmtCommand() abort
return get(g:, "zig_fmt_command", ['zig', 'fmt', '--color', 'off'])
endfunction
function! zig#config#FmtFailSilently() abort
return get(g:, "zig_fmt_fail_silently", 0)
endfunction
function! zig#config#FmtExperimental() abort
return get(g:, "zig_fmt_experimental", 0)
endfunction
function! zig#config#Debug() abort
return get(g:, 'zig_debug', [])
endfunction
endif

170
autoload/zig/fmt.vim Normal file
View File

@@ -0,0 +1,170 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
" Adapted from fatih/vim-go: autoload/go/fmt.vim
"
" Copyright 2011 The Go Authors. All rights reserved.
" Use of this source code is governed by a BSD-style
" license that can be found in the LICENSE file.
"
function! zig#fmt#Format() abort
if zig#config#FmtExperimental()
" Using winsaveview to save/restore cursor state has the problem of
" closing folds on save:
" https://github.com/fatih/vim-go/issues/502
" One fix is to use mkview instead. Unfortunately, this sometimes causes
" other bad side effects:
" https://github.com/fatih/vim-go/issues/728
" and still closes all folds if foldlevel>0:
" https://github.com/fatih/vim-go/issues/732
let l:curw = {}
try
mkview!
catch
let l:curw = winsaveview()
endtry
" save our undo file to be restored after we are done. This is needed to
" prevent an additional undo jump due to BufWritePre auto command and also
" restore 'redo' history because it's getting being destroyed every
" BufWritePre
let tmpundofile = tempname()
exe 'wundo! ' . tmpundofile
else
" Save cursor position and many other things.
let l:curw = winsaveview()
endif
" Save cursor position and many other things.
let l:curw = winsaveview()
let bin_name = zig#config#FmtCommand()
" Get current position in file
let current_col = col('.')
let orig_line_count = line('$')
" Save current buffer first, else fmt will run on the original file and we
" will lose our changes.
silent! execute 'write' expand('%')
let [l:out, l:err] = zig#fmt#run(bin_name, expand('%'))
if l:err == 0
call zig#fmt#update_file(expand('%'))
elseif !zig#config#FmtFailSilently()
let errors = s:parse_errors(expand('%'), out)
call s:show_errors(errors)
endif
let diff_offset = line('$') - orig_line_count
if zig#config#FmtExperimental()
" restore our undo history
silent! exe 'rundo ' . tmpundofile
call delete(tmpundofile)
" Restore our cursor/windows positions, folds, etc.
if empty(l:curw)
silent! loadview
else
call winrestview(l:curw)
endif
else
" Restore our cursor/windows positions.
call winrestview(l:curw)
endif
" be smart and jump to the line the new statement was added/removed
call cursor(line('.') + diff_offset, current_col)
" Syntax highlighting breaks less often.
syntax sync fromstart
endfunction
" update_file updates the target file with the given formatted source
function! zig#fmt#update_file(target)
" remove undo point caused via BufWritePre
try | silent undojoin | catch | endtry
" reload buffer to reflect latest changes
silent edit!
let l:listtype = zig#list#Type("ZigFmt")
" the title information was introduced with 7.4-2200
" https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
if has('patch-7.4.2200')
" clean up previous list
if l:listtype == "quickfix"
let l:list_title = getqflist({'title': 1})
else
let l:list_title = getloclist(0, {'title': 1})
endif
else
" can't check the title, so assume that the list was for go fmt.
let l:list_title = {'title': 'Format'}
endif
if has_key(l:list_title, "title") && l:list_title['title'] == "Format"
call zig#list#Clean(l:listtype)
endif
endfunction
" run runs the gofmt/goimport command for the given source file and returns
" the output of the executed command. Target is the real file to be formatted.
function! zig#fmt#run(bin_name, target)
let l:cmd = []
call extend(cmd, a:bin_name)
call extend(cmd, [a:target])
return zig#util#Exec(l:cmd)
endfunction
" parse_errors parses the given errors and returns a list of parsed errors
function! s:parse_errors(filename, content) abort
let splitted = split(a:content, '\n')
" list of errors to be put into location list
let errors = []
for line in splitted
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
if !empty(tokens)
call add(errors,{
\"filename": a:filename,
\"lnum": tokens[2],
\"col": tokens[3],
\"text": tokens[4],
\ })
endif
endfor
return errors
endfunction
" show_errors opens a location list and shows the given errors. If the given
" errors is empty, it closes the the location list
function! s:show_errors(errors) abort
let l:listtype = zig#list#Type("ZigFmt")
if !empty(a:errors)
call zig#list#Populate(l:listtype, a:errors, 'Format')
echohl Error | echomsg "zig fmt returned error" | echohl None
endif
" this closes the window if there are no errors or it opens
" it if there is any
call zig#list#Window(l:listtype, len(a:errors))
endfunction
function! zig#fmt#ToggleFmtAutoSave() abort
if zig#config#FmtAutosave()
call zig#config#SetFmtAutosave(0)
call zig#util#EchoProgress("auto fmt disabled")
return
end
call zig#config#SetFmtAutosave(1)
call zig#util#EchoProgress("auto fmt enabled")
endfunction
" vim: sw=2 ts=2 et
endif

162
autoload/zig/list.vim Normal file
View File

@@ -0,0 +1,162 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
" Adapted from fatih/vim-go: autoload/go/list.vim
"
" Copyright 2011 The Go Authors. All rights reserved.
" Use of this source code is governed by a BSD-style
" license that can be found in the LICENSE file.
"
" Window opens the list with the given height up to 10 lines maximum.
" Otherwise g:zig_loclist_height is used.
"
" If no or zero height is given it closes the window by default.
" To prevent this, set g:zig_list_autoclose = 0
function! zig#list#Window(listtype, ...) abort
" we don't use lwindow to close the location list as we need also the
" ability to resize the window. So, we are going to use lopen and lclose
" for a better user experience. If the number of errors in a current
" location list increases/decreases, cwindow will not resize when a new
" updated height is passed. lopen in the other hand resizes the screen.
if !a:0 || a:1 == 0
call zig#list#Close(a:listtype)
return
endif
let height = zig#config#ListHeight()
if height == 0
" prevent creating a large location height for a large set of numbers
if a:1 > 10
let height = 10
else
let height = a:1
endif
endif
if a:listtype == "locationlist"
exe 'lopen ' . height
else
exe 'copen ' . height
endif
endfunction
" Get returns the current items from the list
function! zig#list#Get(listtype) abort
if a:listtype == "locationlist"
return getloclist(0)
else
return getqflist()
endif
endfunction
" Populate populate the list with the given items
function! zig#list#Populate(listtype, items, title) abort
if a:listtype == "locationlist"
call setloclist(0, a:items, 'r')
" The last argument ({what}) is introduced with 7.4.2200:
" https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
if has("patch-7.4.2200") | call setloclist(0, [], 'a', {'title': a:title}) | endif
else
call setqflist(a:items, 'r')
if has("patch-7.4.2200") | call setqflist([], 'a', {'title': a:title}) | endif
endif
endfunction
" Parse parses the given items based on the specified errorformat and
" populates the list.
function! zig#list#ParseFormat(listtype, errformat, items, title) abort
" backup users errorformat, will be restored once we are finished
let old_errorformat = &errorformat
" parse and populate the location list
let &errorformat = a:errformat
try
call zig#list#Parse(a:listtype, a:items, a:title)
finally
"restore back
let &errorformat = old_errorformat
endtry
endfunction
" Parse parses the given items based on the global errorformat and
" populates the list.
function! zig#list#Parse(listtype, items, title) abort
if a:listtype == "locationlist"
lgetexpr a:items
if has("patch-7.4.2200") | call setloclist(0, [], 'a', {'title': a:title}) | endif
else
cgetexpr a:items
if has("patch-7.4.2200") | call setqflist([], 'a', {'title': a:title}) | endif
endif
endfunction
" JumpToFirst jumps to the first item in the location list
function! zig#list#JumpToFirst(listtype) abort
if a:listtype == "locationlist"
ll 1
else
cc 1
endif
endfunction
" Clean cleans and closes the location list
function! zig#list#Clean(listtype) abort
if a:listtype == "locationlist"
lex []
else
cex []
endif
call zig#list#Close(a:listtype)
endfunction
" Close closes the location list
function! zig#list#Close(listtype) abort
let autoclose_window = zig#config#ListAutoclose()
if !autoclose_window
return
endif
if a:listtype == "locationlist"
lclose
else
cclose
endif
endfunction
function! s:listtype(listtype) abort
let listtype = zig#config#ListType()
if empty(listtype)
return a:listtype
endif
return listtype
endfunction
" s:default_list_type_commands is the defaults that will be used for each of
" the supported commands (see documentation for g:zig_list_type_commands). When
" defining a default, quickfix should be used if the command operates on
" multiple files, while locationlist should be used if the command operates on a
" single file or buffer. Keys that begin with an underscore are not supported
" in g:zig_list_type_commands.
let s:default_list_type_commands = {
\ "ZigFmt": "locationlist",
\ }
function! zig#list#Type(for) abort
let l:listtype = s:listtype(get(s:default_list_type_commands, a:for))
if l:listtype == "0"
call zig#util#EchoError(printf(
\ "unknown list type command value found ('%s'). Please open a bug report in the zig.vim repo.",
\ a:for))
let l:listtype = "quickfix"
endif
return get(zig#config#ListTypeCommands(), a:for, l:listtype)
endfunction
" vim: sw=2 ts=2 et
endif

394
autoload/zig/util.vim Normal file
View File

@@ -0,0 +1,394 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
" Adapted from vim-go: autoload/go/util.vim
"
" Copyright 2011 The Go Authors. All rights reserved.
" Use of this source code is governed by a BSD-style
" license that can be found in the LICENSE file.
"
" PathSep returns the appropriate OS specific path separator.
function! zig#util#PathSep() abort
if zig#util#IsWin()
return '\'
endif
return '/'
endfunction
" PathListSep returns the appropriate OS specific path list separator.
function! zig#util#PathListSep() abort
if zig#util#IsWin()
return ";"
endif
return ":"
endfunction
" LineEnding returns the correct line ending, based on the current fileformat
function! zig#util#LineEnding() abort
if &fileformat == 'dos'
return "\r\n"
elseif &fileformat == 'mac'
return "\r"
endif
return "\n"
endfunction
" Join joins any number of path elements into a single path, adding a
" Separator if necessary and returns the result
function! zig#util#Join(...) abort
return join(a:000, zig#util#PathSep())
endfunction
" IsWin returns 1 if current OS is Windows or 0 otherwise
function! zig#util#IsWin() abort
let win = ['win16', 'win32', 'win64', 'win95']
for w in win
if (has(w))
return 1
endif
endfor
return 0
endfunction
" IsMac returns 1 if current OS is macOS or 0 otherwise.
function! zig#util#IsMac() abort
return has('mac') ||
\ has('macunix') ||
\ has('gui_macvim') ||
\ zig#util#Exec(['uname'])[0] =~? '^darwin'
endfunction
" Checks if using:
" 1) Windows system,
" 2) And has cygpath executable,
" 3) And uses *sh* as 'shell'
function! zig#util#IsUsingCygwinShell()
return zig#util#IsWin() && executable('cygpath') && &shell =~ '.*sh.*'
endfunction
" Check if Vim jobs API is supported.
"
" The (optional) first paramter can be added to indicate the 'cwd' or 'env'
" parameters will be used, which wasn't added until a later version.
function! zig#util#has_job(...) abort
" cwd and env parameters to job_start was added in this version.
if a:0 > 0 && a:1 is 1
return has('job') && has("patch-8.0.0902")
endif
" job was introduced in 7.4.xxx however there are multiple bug fixes and one
" of the latest is 8.0.0087 which is required for a stable async API.
return has('job') && has("patch-8.0.0087")
endfunction
let s:env_cache = {}
" env returns the go environment variable for the given key. Where key can be
" GOARCH, GOOS, GOROOT, etc... It caches the result and returns the cached
" version.
function! zig#util#env(key) abort
let l:key = tolower(a:key)
if has_key(s:env_cache, l:key)
return s:env_cache[l:key]
endif
if executable('go')
let l:var = call('zig#util#'.l:key, [])
if zig#util#ShellError() != 0
call zig#util#EchoError(printf("'go env %s' failed", toupper(l:key)))
return ''
endif
else
let l:var = eval("$".toupper(a:key))
endif
let s:env_cache[l:key] = l:var
return l:var
endfunction
" Run a shell command.
"
" It will temporary set the shell to /bin/sh for Unix-like systems if possible,
" so that we always use a standard POSIX-compatible Bourne shell (and not e.g.
" csh, fish, etc.) See #988 and #1276.
function! s:system(cmd, ...) abort
" Preserve original shell and shellredir values
let l:shell = &shell
let l:shellredir = &shellredir
if !zig#util#IsWin() && executable('/bin/sh')
set shell=/bin/sh shellredir=>%s\ 2>&1
endif
try
return call('system', [a:cmd] + a:000)
finally
" Restore original values
let &shell = l:shell
let &shellredir = l:shellredir
endtry
endfunction
" System runs a shell command "str". Every arguments after "str" is passed to
" stdin.
function! zig#util#System(str, ...) abort
return call('s:system', [a:str] + a:000)
endfunction
" Exec runs a shell command "cmd", which must be a list, one argument per item.
" Every list entry will be automatically shell-escaped
" Every other argument is passed to stdin.
function! zig#util#Exec(cmd, ...) abort
if len(a:cmd) == 0
call zig#util#EchoError("zig#util#Exec() called with empty a:cmd")
return ['', 1]
endif
let l:bin = a:cmd[0]
if !executable(l:bin)
call zig#util#EchoError(printf("could not find binary '%s'", a:cmd[0]))
return ['', 1]
endif
return call('s:exec', [a:cmd] + a:000)
endfunction
function! s:exec(cmd, ...) abort
let l:bin = a:cmd[0]
let l:cmd = zig#util#Shelljoin([l:bin] + a:cmd[1:])
if zig#util#HasDebug('shell-commands')
call zig#util#EchoInfo('shell command: ' . l:cmd)
endif
let l:out = call('s:system', [l:cmd] + a:000)
return [l:out, zig#util#ShellError()]
endfunction
function! zig#util#ShellError() abort
return v:shell_error
endfunction
" StripPath strips the path's last character if it's a path separator.
" example: '/foo/bar/' -> '/foo/bar'
function! zig#util#StripPathSep(path) abort
let last_char = strlen(a:path) - 1
if a:path[last_char] == zig#util#PathSep()
return strpart(a:path, 0, last_char)
endif
return a:path
endfunction
" StripTrailingSlash strips the trailing slash from the given path list.
" example: ['/foo/bar/'] -> ['/foo/bar']
function! zig#util#StripTrailingSlash(paths) abort
return map(copy(a:paths), 'zig#util#StripPathSep(v:val)')
endfunction
" Shelljoin returns a shell-safe string representation of arglist. The
" {special} argument of shellescape() may optionally be passed.
function! zig#util#Shelljoin(arglist, ...) abort
try
let ssl_save = &shellslash
set noshellslash
if a:0
return join(map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')'), ' ')
endif
return join(map(copy(a:arglist), 'shellescape(v:val)'), ' ')
finally
let &shellslash = ssl_save
endtry
endfunction
fu! zig#util#Shellescape(arg)
try
let ssl_save = &shellslash
set noshellslash
return shellescape(a:arg)
finally
let &shellslash = ssl_save
endtry
endf
" Shelllist returns a shell-safe representation of the items in the given
" arglist. The {special} argument of shellescape() may optionally be passed.
function! zig#util#Shelllist(arglist, ...) abort
try
let ssl_save = &shellslash
set noshellslash
if a:0
return map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')')
endif
return map(copy(a:arglist), 'shellescape(v:val)')
finally
let &shellslash = ssl_save
endtry
endfunction
" Returns the byte offset for line and column
function! zig#util#Offset(line, col) abort
if &encoding != 'utf-8'
let sep = zig#util#LineEnding()
let buf = a:line == 1 ? '' : (join(getline(1, a:line-1), sep) . sep)
let buf .= a:col == 1 ? '' : getline('.')[:a:col-2]
return len(iconv(buf, &encoding, 'utf-8'))
endif
return line2byte(a:line) + (a:col-2)
endfunction
"
" Returns the byte offset for the cursor
function! zig#util#OffsetCursor() abort
return zig#util#Offset(line('.'), col('.'))
endfunction
" Windo is like the built-in :windo, only it returns to the window the command
" was issued from
function! zig#util#Windo(command) abort
let s:currentWindow = winnr()
try
execute "windo " . a:command
finally
execute s:currentWindow. "wincmd w"
unlet s:currentWindow
endtry
endfunction
" snippetcase converts the given word to given preferred snippet setting type
" case.
function! zig#util#snippetcase(word) abort
let l:snippet_case = zig#config#AddtagsTransform()
if l:snippet_case == "snakecase"
return zig#util#snakecase(a:word)
elseif l:snippet_case == "camelcase"
return zig#util#camelcase(a:word)
else
return a:word " do nothing
endif
endfunction
" snakecase converts a string to snake case. i.e: FooBar -> foo_bar
" Copied from tpope/vim-abolish
function! zig#util#snakecase(word) abort
let word = substitute(a:word, '::', '/', 'g')
let word = substitute(word, '\(\u\+\)\(\u\l\)', '\1_\2', 'g')
let word = substitute(word, '\(\l\|\d\)\(\u\)', '\1_\2', 'g')
let word = substitute(word, '[.-]', '_', 'g')
let word = tolower(word)
return word
endfunction
" camelcase converts a string to camel case. e.g. FooBar or foo_bar will become
" fooBar.
" Copied from tpope/vim-abolish.
function! zig#util#camelcase(word) abort
let word = substitute(a:word, '-', '_', 'g')
if word !~# '_' && word =~# '\l'
return substitute(word, '^.', '\l&', '')
else
return substitute(word, '\C\(_\)\=\(.\)', '\=submatch(1)==""?tolower(submatch(2)) : toupper(submatch(2))','g')
endif
endfunction
" pascalcase converts a string to 'PascalCase'. e.g. fooBar or foo_bar will
" become FooBar.
function! zig#util#pascalcase(word) abort
let word = zig#util#camelcase(a:word)
return toupper(word[0]) . word[1:]
endfunction
" Echo a message to the screen and highlight it with the group in a:hi.
"
" The message can be a list or string; every line with be :echomsg'd separately.
function! s:echo(msg, hi)
let l:msg = []
if type(a:msg) != type([])
let l:msg = split(a:msg, "\n")
else
let l:msg = a:msg
endif
" Tabs display as ^I or <09>, so manually expand them.
let l:msg = map(l:msg, 'substitute(v:val, "\t", " ", "")')
exe 'echohl ' . a:hi
for line in l:msg
echom "zig.vim: " . line
endfor
echohl None
endfunction
function! zig#util#EchoSuccess(msg)
call s:echo(a:msg, 'Function')
endfunction
function! zig#util#EchoError(msg)
call s:echo(a:msg, 'ErrorMsg')
endfunction
function! zig#util#EchoWarning(msg)
call s:echo(a:msg, 'WarningMsg')
endfunction
function! zig#util#EchoProgress(msg)
redraw
call s:echo(a:msg, 'Identifier')
endfunction
function! zig#util#EchoInfo(msg)
call s:echo(a:msg, 'Debug')
endfunction
" Get all lines in the buffer as a a list.
function! zig#util#GetLines()
let buf = getline(1, '$')
if &encoding != 'utf-8'
let buf = map(buf, 'iconv(v:val, &encoding, "utf-8")')
endif
if &l:fileformat == 'dos'
" XXX: line2byte() depend on 'fileformat' option.
" so if fileformat is 'dos', 'buf' must include '\r'.
let buf = map(buf, 'v:val."\r"')
endif
return buf
endfunction
" Make a named temporary directory which starts with "prefix".
"
" Unfortunately Vim's tempname() is not portable enough across various systems;
" see: https://github.com/mattn/vim-go/pull/3#discussion_r138084911
function! zig#util#tempdir(prefix) abort
" See :help tempfile
if zig#util#IsWin()
let l:dirs = [$TMP, $TEMP, 'c:\tmp', 'c:\temp']
else
let l:dirs = [$TMPDIR, '/tmp', './', $HOME]
endif
let l:dir = ''
for l:d in dirs
if !empty(l:d) && filewritable(l:d) == 2
let l:dir = l:d
break
endif
endfor
if l:dir == ''
call zig#util#EchoError('Unable to find directory to store temporary directory in')
return
endif
" Not great randomness, but "good enough" for our purpose here.
let l:rnd = sha256(printf('%s%s', localtime(), fnamemodify(bufname(''), ":p")))
let l:tmp = printf("%s/%s%s", l:dir, a:prefix, l:rnd)
call mkdir(l:tmp, 'p', 0700)
return l:tmp
endfunction
" Report if the user enabled a debug flag in g:zig_debug.
function! zig#util#HasDebug(flag)
return index(zig#config#Debug(), a:flag) >= 0
endfunction
" vim: sw=2 ts=2 et
endif

38
build
View File

@@ -6,13 +6,13 @@ DIRS="syntax indent compiler autoload ftplugin after/syntax after/indent after/f
# shellcheck disable=SC2034 # shellcheck disable=SC2034
DIRS_BASIC="syntax compiler indent after/syntax after/indent" DIRS_BASIC="syntax compiler indent after/syntax after/indent"
# shellcheck disable=SC2034 # shellcheck disable=SC2034
DIRS_ALL="syntax indent compiler autoload ftplugin after" DIRS_ALL="syntax indent compiler autoload ftplugin after extras"
# shellcheck disable=SC2034 # shellcheck disable=SC2034
DIRS_SYNTAX="syntax indent after/syntax after/indent" DIRS_SYNTAX="syntax indent after/syntax after/indent"
# shellcheck disable=SC2034 # shellcheck disable=SC2034
DIRS_NOAFTER="syntax compiler indent autoload ftplugin" DIRS_NOAFTER="syntax compiler indent autoload ftplugin"
DIRS_JAVASCRIPT="${DIRS} extras" DIRS_JAVASCRIPT="${DIRS} extras"
read -r -a DIRS_RM <<<"$DIRS_JAVASCRIPT" read -r -a DIRS_RM <<<"$DIRS_ALL"
OUTPUT="" OUTPUT=""
@@ -25,8 +25,10 @@ download() {
for pack in $1; do for pack in $1; do
path="$(cut -d ':' -f 2 <<<"$pack")" path="$(cut -d ':' -f 2 <<<"$pack")"
dir="tmp/$(cut -d '/' -f 2 <<<"$path")" dir="tmp/$(cut -d '/' -f 2 <<<"$path")"
repo="$(awk -F\# '{print $1}' <<<"$path")"
branch="$(awk -F\# '{print $2}' <<<"$path")"
rm -rf "$dir" rm -rf "$dir"
(mkdir -p "$dir" && curl --silent -L "https://codeload.github.com/$path/tar.gz/master" | tar -zx -C "$dir" --strip 1 && printf '.') & (mkdir -p "$dir" && curl --silent -L "https://codeload.github.com/$repo/tar.gz/${branch:-master}" | tar -zx -C "$dir" --strip 1 && printf '.') &
done done
wait wait
@@ -125,7 +127,11 @@ copy_file() {
touch "$file_in_dst" touch "$file_in_dst"
# Use comma instead of / to handle cases like c/c++ # Use comma instead of / to handle cases like c/c++
sed -e "s,%%PACK%%,${package_name}," -e "/%%CONTENT%%/{r ${file_in_tmp}" -e "d;}" plugin_guard.vim.template >> "$file_in_dst" if [[ "${package_name}" == "jsx" ]]; then
sed -e "s,%%PACK%%,${package_name}," -e "/%%CONTENT%%/{r ${file_in_tmp}" -e "d;}" plugin_guard_jsx.vim.template >> "$file_in_dst"
else
sed -e "s,%%PACK%%,${package_name}," -e "/%%CONTENT%%/{r ${file_in_tmp}" -e "d;}" plugin_guard.vim.template >> "$file_in_dst"
fi
} }
update_readme() { update_readme() {
@@ -176,6 +182,8 @@ PACKS="
cucumber:tpope/vim-cucumber cucumber:tpope/vim-cucumber
cue:mgrabovsky/vim-cuesheet cue:mgrabovsky/vim-cuesheet
dart:dart-lang/dart-vim-plugin dart:dart-lang/dart-vim-plugin
dhall:vmchale/dhall-vim
dlang:JesseKPhillips/d.vim
dockerfile:ekalinin/Dockerfile.vim dockerfile:ekalinin/Dockerfile.vim
elixir:elixir-lang/vim-elixir elixir:elixir-lang/vim-elixir
elm:ElmCast/elm-vim elm:ElmCast/elm-vim
@@ -183,7 +191,7 @@ PACKS="
emblem:yalesov/vim-emblem emblem:yalesov/vim-emblem
erlang:vim-erlang/vim-erlang-runtime erlang:vim-erlang/vim-erlang-runtime
ferm:vim-scripts/ferm.vim ferm:vim-scripts/ferm.vim
fish:dag/vim-fish fish:georgewitteman/vim-fish
flatbuffers:dcharbon/vim-flatbuffers flatbuffers:dcharbon/vim-flatbuffers
fsharp:fsharp/vim-fsharp:_BASIC fsharp:fsharp/vim-fsharp:_BASIC
git:tpope/vim-git git:tpope/vim-git
@@ -191,6 +199,7 @@ PACKS="
gmpl:maelvalais/gmpl.vim gmpl:maelvalais/gmpl.vim
gnuplot:vim-scripts/gnuplot-syntax-highlighting gnuplot:vim-scripts/gnuplot-syntax-highlighting
go:fatih/vim-go:_BASIC go:fatih/vim-go:_BASIC
graphql:jparise/vim-graphql:_ALL
gradle:tfnico/vim-gradle gradle:tfnico/vim-gradle
groovy:vim-scripts/groovy.vim groovy:vim-scripts/groovy.vim
groovy-indent:vim-scripts/groovyindent-unix groovy-indent:vim-scripts/groovyindent-unix
@@ -199,9 +208,13 @@ PACKS="
haproxy:CH-DanReif/haproxy.vim haproxy:CH-DanReif/haproxy.vim
haskell:neovimhaskell/haskell-vim haskell:neovimhaskell/haskell-vim
haxe:yaymukund/vim-haxe haxe:yaymukund/vim-haxe
hcl:b4b4r07/vim-hcl
helm:towolf/vim-helm
hive:zebradil/hive.vim
html5:othree/html5.vim html5:othree/html5.vim
i3:mboughaba/i3config.vim i3:mboughaba/i3config.vim
idris:idris-hackers/idris-vim idris:idris-hackers/idris-vim
ion:vmchale/ion-vim
jasmine:glanotte/vim-jasmine jasmine:glanotte/vim-jasmine
javascript:pangloss/vim-javascript:_JAVASCRIPT javascript:pangloss/vim-javascript:_JAVASCRIPT
jenkins:martinda/Jenkinsfile-vim-syntax jenkins:martinda/Jenkinsfile-vim-syntax
@@ -209,7 +222,7 @@ PACKS="
json5:GutenYe/json5.vim json5:GutenYe/json5.vim
json:elzr/vim-json json:elzr/vim-json
jst:briancollins/vim-jst jst:briancollins/vim-jst
jsx:amadeus/vim-jsx jsx:MaxMEllon/vim-jsx-pretty:_ALL
julia:JuliaEditorSupport/julia-vim julia:JuliaEditorSupport/julia-vim
kotlin:udalov/kotlin-vim kotlin:udalov/kotlin-vim
latex:LaTeX-Box-Team/LaTeX-Box latex:LaTeX-Box-Team/LaTeX-Box
@@ -217,6 +230,7 @@ PACKS="
lilypond:anowlcalledjosh/vim-lilypond lilypond:anowlcalledjosh/vim-lilypond
livescript:gkz/vim-ls livescript:gkz/vim-ls
llvm:rhysd/vim-llvm llvm:rhysd/vim-llvm
log:MTDL9/vim-log-highlighting
lua:tbastos/vim-lua lua:tbastos/vim-lua
mako:sophacles/vim-bundle-mako mako:sophacles/vim-bundle-mako
markdown:plasticboy/vim-markdown:_SYNTAX markdown:plasticboy/vim-markdown:_SYNTAX
@@ -239,14 +253,14 @@ PACKS="
powershell:PProvost/vim-ps1 powershell:PProvost/vim-ps1
protobuf:uarun/vim-protobuf protobuf:uarun/vim-protobuf
pug:digitaltoad/vim-pug pug:digitaltoad/vim-pug
puppet:voxpupuli/vim-puppet puppet:rodjek/vim-puppet
purescript:purescript-contrib/purescript-vim purescript:purescript-contrib/purescript-vim
python-compiler:aliev/vim-compiler-python python-compiler:aliev/vim-compiler-python
python-indent:Vimjas/vim-python-pep8-indent python-indent:Vimjas/vim-python-pep8-indent
python:vim-python/python-syntax python:vim-python/python-syntax
qmake:artoj/qmake-syntax-vim qmake:artoj/qmake-syntax-vim
qml:peterhoeg/vim-qml qml:peterhoeg/vim-qml
r-lang:vim-scripts/R.vim r-lang:vim-scripts/R.vim:_BASIC
racket:wlangstroth/vim-racket racket:wlangstroth/vim-racket
ragel:jneen/ragel.vim ragel:jneen/ragel.vim
raml:IN3D/vim-raml raml:IN3D/vim-raml
@@ -263,6 +277,7 @@ PACKS="
smt2:bohlender/vim-smt2 smt2:bohlender/vim-smt2
solidity:tomlion/vim-solidity solidity:tomlion/vim-solidity
stylus:wavded/vim-stylus stylus:wavded/vim-stylus
svelte:evanleck/vim-svelte
svg-indent:jasonshell/vim-svg-indent svg-indent:jasonshell/vim-svg-indent
svg:vim-scripts/svg.vim svg:vim-scripts/svg.vim
swift:keith/swift.vim swift:keith/swift.vim
@@ -271,11 +286,12 @@ PACKS="
terraform:hashivim/vim-terraform terraform:hashivim/vim-terraform
textile:timcharper/textile.vim textile:timcharper/textile.vim
thrift:solarnz/thrift.vim thrift:solarnz/thrift.vim
tmux:keith/tmux.vim tmux:ericpruitt/tmux.vim:_ALL:/vim/
tomdoc:wellbredgrapefruit/tomdoc.vim tomdoc:wellbredgrapefruit/tomdoc.vim
toml:cespare/vim-toml toml:cespare/vim-toml
tptp:c-cube/vim-tptp
twig:lumiliet/vim-twig twig:lumiliet/vim-twig
typescript:leafgarland/typescript-vim typescript:HerringtonDarkholme/yats.vim
vala:arrufat/vala.vim vala:arrufat/vala.vim
vbnet:vim-scripts/vbnet.vim vbnet:vim-scripts/vbnet.vim
vcl:smerrill/vcl-vim-plugin vcl:smerrill/vcl-vim-plugin
@@ -287,6 +303,8 @@ PACKS="
xls:vim-scripts/XSLT-syntax xls:vim-scripts/XSLT-syntax
yaml:stephpy/vim-yaml yaml:stephpy/vim-yaml
yard:sheerun/vim-yardoc yard:sheerun/vim-yardoc
zephir:xwsoul/vim-zephir
zig:ziglang/zig.vim
" "
rm -rf tmp rm -rf tmp

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'coffee-script') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
finish
endif
" Language: CoffeeScript " Language: CoffeeScript
" Maintainer: Mick Koch <mick@kochm.co> " Maintainer: Mick Koch <mick@kochm.co>
@@ -17,3 +15,5 @@ call coffee#CoffeeSetUpVariables()
exec 'CompilerSet makeprg=' . escape(g:coffee_cake . ' ' . exec 'CompilerSet makeprg=' . escape(g:coffee_cake . ' ' .
\ g:coffee_cake_options . ' $*', ' ') \ g:coffee_cake_options . ' $*', ' ')
call coffee#CoffeeSetUpErrorFormat() call coffee#CoffeeSetUpErrorFormat()
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
finish
endif
" Vim compiler file " Vim compiler file
" Compiler: Cargo Compiler " Compiler: Cargo Compiler
@@ -51,3 +49,5 @@ unlet s:save_cpo
" vint: +ProhibitAbbreviationOption " vint: +ProhibitAbbreviationOption
" vim: set et sw=4 sts=4 ts=8: " vim: set et sw=4 sts=4 ts=8:
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'coffee-script') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
finish
endif
" Language: CoffeeScript " Language: CoffeeScript
" Maintainer: Mick Koch <mick@kochm.co> " Maintainer: Mick Koch <mick@kochm.co>
@@ -84,3 +82,5 @@ augroup CoffeeUpdateMakePrg
autocmd BufWritePre,BufFilePost call s:UpdateMakePrg() autocmd BufWritePre,BufFilePost call s:UpdateMakePrg()
endif endif
augroup END augroup END
endif

View File

@@ -1,6 +1,4 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elixir') != -1 if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
finish
endif
if exists('current_compiler') if exists('current_compiler')
finish finish
@@ -11,5 +9,7 @@ if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args> command -nargs=* CompilerSet setlocal <args>
endif endif
CompilerSet errorformat=%f:%l:\ %t:\ %m CompilerSet errorformat=%f:%l:%c:\ %t:\ %m,%f:%l:\ %t:\ %m
CompilerSet makeprg=mix\ credo\ suggest\ --format=flycheck CompilerSet makeprg=mix\ credo\ suggest\ --format=flycheck
endif

Some files were not shown because too many files have changed in this diff Show More