mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 19:43:52 -05:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f3df59be7 | ||
|
|
26790941f6 | ||
|
|
fbc2af9e82 | ||
|
|
d4f252565a | ||
|
|
48e07bc501 | ||
|
|
c8897c9c18 | ||
|
|
34eb36e6d1 | ||
|
|
84ec4eedcd | ||
|
|
66b769328c | ||
|
|
ae18284e5a | ||
|
|
e3024f21fc | ||
|
|
31d757fc7b | ||
|
|
556c56d185 | ||
|
|
fe84062992 | ||
|
|
8742443e69 | ||
|
|
832dfece76 | ||
|
|
933e42ea1f | ||
|
|
cdd6d73e39 | ||
|
|
a48874df4c | ||
|
|
21849c2e18 | ||
|
|
664aa988f6 | ||
|
|
3ddca5da46 | ||
|
|
140430ffb7 | ||
|
|
d527002849 | ||
|
|
15727e7eb0 | ||
|
|
6b169212f8 |
21
README.md
21
README.md
@@ -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-->143<!--/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,7 @@ 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)
|
- [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)
|
||||||
@@ -76,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)
|
||||||
@@ -85,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)
|
||||||
@@ -93,6 +95,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [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)
|
- [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)
|
- [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)
|
||||||
@@ -105,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/MaxMEllon/vim-jsx-pretty) (autoload, 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)
|
||||||
@@ -136,19 +139,18 @@ 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)
|
||||||
- [reason](https://github.com/reasonml-editor/vim-reason-plus) (syntax, indent)
|
- [reason](https://github.com/reasonml-editor/vim-reason-plus) (syntax, indent)
|
||||||
- [rego](https://github.com/tsandall/vim-rego) (syntax)
|
|
||||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax)
|
- [rspec](https://github.com/sheerun/rspec.vim) (syntax)
|
||||||
- [rst](https://github.com/marshallward/vim-restructuredtext) (syntax, autoload, ftplugin)
|
- [rst](https://github.com/marshallward/vim-restructuredtext) (syntax, autoload, ftplugin)
|
||||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin)
|
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin)
|
||||||
@@ -160,8 +162,8 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [slime](https://github.com/slime-lang/vim-slime-syntax) (syntax, indent)
|
- [slime](https://github.com/slime-lang/vim-slime-syntax) (syntax, indent)
|
||||||
- [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)
|
||||||
- [styled-components](https://github.com/styled-components/vim-styled-components#main) (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)
|
||||||
@@ -170,12 +172,12 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, autoload, 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/ericpruitt/tmux.vim) ()
|
- [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)
|
- [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)
|
||||||
@@ -187,6 +189,7 @@ 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)
|
- [zig](https://github.com/ziglang/zig.vim) (syntax, autoload, ftplugin)
|
||||||
<!--/Language Packs-->
|
<!--/Language Packs-->
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,9 +12,9 @@ if exists('b:undo_ftplugin')
|
|||||||
else
|
else
|
||||||
let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<'
|
let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<'
|
||||||
endif
|
endif
|
||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
|
||||||
finish
|
|
||||||
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
|
" Vim ftplugin file
|
||||||
@@ -49,40 +47,5 @@ augroup jsx_comment
|
|||||||
augroup end
|
augroup end
|
||||||
|
|
||||||
setlocal suffixesadd+=.jsx
|
setlocal suffixesadd+=.jsx
|
||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Vim filetype plugin file
|
|
||||||
" Language: styled-components (js/ts)
|
|
||||||
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
|
|
||||||
" URL: https://github.com/styled-components/vim-styled-components
|
|
||||||
|
|
||||||
fu! s:GetSyntaxNames(lnum, cnum)
|
|
||||||
return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")')
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynSOL of vim-jsx
|
|
||||||
fu! s:SynSOL(lnum)
|
|
||||||
return s:GetSyntaxNames(a:lnum, 1)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Return whether the current line is a jsTemplateString
|
|
||||||
fu! IsStyledDefinition(lnum)
|
|
||||||
" iterate through all syntax items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if syntax-item is a jsTemplateString return 1 - true
|
|
||||||
" `==#` is a match case comparison of the item
|
|
||||||
if item ==# 'styledDefinition'
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" fallback to 0 - false
|
|
||||||
return 0
|
|
||||||
endfu
|
|
||||||
|
|
||||||
if exists('&ofu')
|
|
||||||
let b:prevofu=&ofu
|
|
||||||
setl omnifunc=styledcomplete#CompleteSC
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" modified from html.vim
|
" modified from html.vim
|
||||||
" For matchit plugin
|
" For matchit plugin
|
||||||
@@ -25,3 +23,5 @@ augroup jsx_comment
|
|||||||
augroup end
|
augroup end
|
||||||
|
|
||||||
setlocal suffixesadd+=.tsx
|
setlocal suffixesadd+=.tsx
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" Vim indent file
|
" Vim indent file
|
||||||
@@ -31,176 +29,5 @@ endfunction
|
|||||||
|
|
||||||
let &cpo = s:keepcpo
|
let &cpo = s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
|
|
||||||
finish
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Vim syntax file
|
|
||||||
" Language: styled-components (js/ts)
|
|
||||||
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
|
|
||||||
" URL: https://github.com/styled-components/vim-styled-components
|
|
||||||
|
|
||||||
" initialize variable to check, if the indentation expression is run
|
|
||||||
" multiple times in a row, which indicates an infinite recursion
|
|
||||||
let s:is_recursion = 0
|
|
||||||
|
|
||||||
" store current indentexpr for later
|
|
||||||
let b:js_ts_indent=&indentexpr
|
|
||||||
|
|
||||||
" set indentexpr for this filetype (styled-components)
|
|
||||||
setlocal indentexpr=GetStyledIndent()
|
|
||||||
|
|
||||||
" add the following keys to trigger reindenting, when in insert mode
|
|
||||||
" - *; - Indent and insert on press of ';' key.
|
|
||||||
" - *<:> - Indent and insert on press of ':' key.
|
|
||||||
set indentkeys+=*;,*<:>,*<Return>
|
|
||||||
|
|
||||||
fu! s:GetSyntaxNames(lnum, cnum)
|
|
||||||
return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")')
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynSOL of vim-jsx
|
|
||||||
" TODO: add dependency to the readme and remove duplicate implementation
|
|
||||||
fu! s:SynSOL(lnum)
|
|
||||||
return s:GetSyntaxNames(a:lnum, 1)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynEOL of vim-jsx
|
|
||||||
" TODO: add dependency to the readme and remove duplicate implementation
|
|
||||||
fu! s:SynEOL(lnum, offset)
|
|
||||||
let l:lnum = prevnonblank(a:lnum)
|
|
||||||
let l:col = strlen(getline(l:lnum))
|
|
||||||
|
|
||||||
return s:GetSyntaxNames(l:lnum, l:col + a:offset)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
|
|
||||||
"" Return whether the current line is a jsTemplateString
|
|
||||||
fu! s:IsStyledDefinition(lnum)
|
|
||||||
" iterate through all syntax items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if syntax-item is a jsTemplateString return 1 - true
|
|
||||||
" `==#` is a match case comparison of the item
|
|
||||||
if item ==# 'styledDefinition'
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" fallback to 0 - false
|
|
||||||
return 0
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Count occurences of `str` at the beginning of the given `lnum` line
|
|
||||||
fu! s:CountOccurencesInSOL(lnum, str)
|
|
||||||
let l:occurence = 0
|
|
||||||
|
|
||||||
" iterate through all items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if the syntax-item equals the given str increment the counter
|
|
||||||
" `==?` is a case isensitive equal operation
|
|
||||||
if item ==? a:str
|
|
||||||
let l:occurence += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" return the accumulated count of occurences
|
|
||||||
return l:occurence
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Count occurences of `str` at the end of the given `lnum` line
|
|
||||||
fu! s:CountOccurencesInEOL(lnum, str, offset)
|
|
||||||
let l:occurence = 0
|
|
||||||
|
|
||||||
" iterate through all items in the given line
|
|
||||||
for item in s:SynEOL(a:lnum, a:offset)
|
|
||||||
" if the syntax-item equals the given str increment the counter
|
|
||||||
" `==?` is a case insensitive equal operation
|
|
||||||
if item == a:str
|
|
||||||
let l:occurence += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" return the accumulated count of occurences
|
|
||||||
return l:occurence
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Get the indentation of the current line
|
|
||||||
fu! GetStyledIndent()
|
|
||||||
if s:IsStyledDefinition(v:lnum)
|
|
||||||
let l:baseIndent = 0
|
|
||||||
|
|
||||||
" find last non-styled line
|
|
||||||
let l:cnum = v:lnum
|
|
||||||
while s:IsStyledDefinition(l:cnum)
|
|
||||||
let l:cnum -= 1
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
" get indentation of the last non-styled line as base indentation
|
|
||||||
let l:baseIndent = indent(l:cnum)
|
|
||||||
|
|
||||||
" incrementally build indentation based on current indentation
|
|
||||||
" - one shiftwidth for the styled definition region
|
|
||||||
" - one shiftwidth per open nested definition region
|
|
||||||
let l:styledIndent = &sw
|
|
||||||
let l:styledIndent += min([
|
|
||||||
\ s:CountOccurencesInSOL(v:lnum, 'styledNestedRegion'),
|
|
||||||
\ s:CountOccurencesInEOL(v:lnum, 'styledNestedRegion', 0)
|
|
||||||
\ ]) * &sw
|
|
||||||
|
|
||||||
" decrease indentation by one shiftwidth, if the styled definition
|
|
||||||
" region ends on the current line
|
|
||||||
" - either directly via styled definition region, or
|
|
||||||
" - if the very last
|
|
||||||
if s:CountOccurencesInEOL(v:lnum, 'styledDefinition', 1) == 0
|
|
||||||
let l:styledIndent -= &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" return the base indentation
|
|
||||||
" (for nested styles inside classes/objects/etc.) plus the actual
|
|
||||||
" indentation inside the styled definition region
|
|
||||||
return l:baseIndent + l:styledIndent
|
|
||||||
elseif len(b:js_ts_indent)
|
|
||||||
let l:result = 0
|
|
||||||
let l:offset = 0
|
|
||||||
|
|
||||||
" increase indentation by one shiftwidth, if the last line ended on a
|
|
||||||
" styledXmlRegion and this line does not continue with it
|
|
||||||
" this is a fix for an incorrectly indented xml prop after a
|
|
||||||
" glamor-styled styledXmlRegion
|
|
||||||
if s:CountOccurencesInEOL(v:lnum-1, 'styledXmlRegion', 0) == 1 &&
|
|
||||||
\ s:CountOccurencesInSOL(v:lnum, 'styledXmlRegion') == 0
|
|
||||||
let l:offset = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" make sure `GetStyledIndent` and `GetJsxIndent` don't infinitely
|
|
||||||
" recurse by incrementing a counter variable, before evaluating the
|
|
||||||
" stored indent expression
|
|
||||||
if s:is_recursion == 0
|
|
||||||
let s:is_recursion = 1
|
|
||||||
let l:result = eval(b:js_ts_indent)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" `is_recursion` being 0 at this point indicates, that
|
|
||||||
" `eval(b:js_ts_indent)` did itself evaluate it's stored indentexpr
|
|
||||||
" and thus it can be assumed, that the current line should be
|
|
||||||
" indented as JS
|
|
||||||
if s:is_recursion == 0
|
|
||||||
" use one of `GetJavascriptIndent` or `GetJsIndent` if existing
|
|
||||||
" fallback to cindent, if not
|
|
||||||
if exists('*GetJavascriptIndent')
|
|
||||||
let l:result = GetJavascriptIndent()
|
|
||||||
elseif exists('*GetJsIndent')
|
|
||||||
let l:result = GetJsIndent()
|
|
||||||
else
|
|
||||||
let l:result = cindent(v:lnum)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" reset `is_recursion` counter and return the indentation value
|
|
||||||
let s:is_recursion = 0
|
|
||||||
return l:result + l:offset
|
|
||||||
endif
|
|
||||||
|
|
||||||
" if all else fails indent according to C-syntax
|
|
||||||
return cindent(v:lnum)
|
|
||||||
endfu
|
|
||||||
|
|||||||
@@ -1,173 +0,0 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Vim syntax file
|
|
||||||
" Language: styled-components (js/ts)
|
|
||||||
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
|
|
||||||
" URL: https://github.com/styled-components/vim-styled-components
|
|
||||||
|
|
||||||
" initialize variable to check, if the indentation expression is run
|
|
||||||
" multiple times in a row, which indicates an infinite recursion
|
|
||||||
let s:is_recursion = 0
|
|
||||||
|
|
||||||
" store current indentexpr for later
|
|
||||||
let b:js_ts_indent=&indentexpr
|
|
||||||
|
|
||||||
" set indentexpr for this filetype (styled-components)
|
|
||||||
setlocal indentexpr=GetStyledIndent()
|
|
||||||
|
|
||||||
" add the following keys to trigger reindenting, when in insert mode
|
|
||||||
" - *; - Indent and insert on press of ';' key.
|
|
||||||
" - *<:> - Indent and insert on press of ':' key.
|
|
||||||
set indentkeys+=*;,*<:>,*<Return>
|
|
||||||
|
|
||||||
fu! s:GetSyntaxNames(lnum, cnum)
|
|
||||||
return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")')
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynSOL of vim-jsx
|
|
||||||
" TODO: add dependency to the readme and remove duplicate implementation
|
|
||||||
fu! s:SynSOL(lnum)
|
|
||||||
return s:GetSyntaxNames(a:lnum, 1)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynEOL of vim-jsx
|
|
||||||
" TODO: add dependency to the readme and remove duplicate implementation
|
|
||||||
fu! s:SynEOL(lnum, offset)
|
|
||||||
let l:lnum = prevnonblank(a:lnum)
|
|
||||||
let l:col = strlen(getline(l:lnum))
|
|
||||||
|
|
||||||
return s:GetSyntaxNames(l:lnum, l:col + a:offset)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
|
|
||||||
"" Return whether the current line is a jsTemplateString
|
|
||||||
fu! s:IsStyledDefinition(lnum)
|
|
||||||
" iterate through all syntax items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if syntax-item is a jsTemplateString return 1 - true
|
|
||||||
" `==#` is a match case comparison of the item
|
|
||||||
if item ==# 'styledDefinition'
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" fallback to 0 - false
|
|
||||||
return 0
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Count occurences of `str` at the beginning of the given `lnum` line
|
|
||||||
fu! s:CountOccurencesInSOL(lnum, str)
|
|
||||||
let l:occurence = 0
|
|
||||||
|
|
||||||
" iterate through all items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if the syntax-item equals the given str increment the counter
|
|
||||||
" `==?` is a case isensitive equal operation
|
|
||||||
if item ==? a:str
|
|
||||||
let l:occurence += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" return the accumulated count of occurences
|
|
||||||
return l:occurence
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Count occurences of `str` at the end of the given `lnum` line
|
|
||||||
fu! s:CountOccurencesInEOL(lnum, str, offset)
|
|
||||||
let l:occurence = 0
|
|
||||||
|
|
||||||
" iterate through all items in the given line
|
|
||||||
for item in s:SynEOL(a:lnum, a:offset)
|
|
||||||
" if the syntax-item equals the given str increment the counter
|
|
||||||
" `==?` is a case insensitive equal operation
|
|
||||||
if item == a:str
|
|
||||||
let l:occurence += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" return the accumulated count of occurences
|
|
||||||
return l:occurence
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Get the indentation of the current line
|
|
||||||
fu! GetStyledIndent()
|
|
||||||
if s:IsStyledDefinition(v:lnum)
|
|
||||||
let l:baseIndent = 0
|
|
||||||
|
|
||||||
" find last non-styled line
|
|
||||||
let l:cnum = v:lnum
|
|
||||||
while s:IsStyledDefinition(l:cnum)
|
|
||||||
let l:cnum -= 1
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
" get indentation of the last non-styled line as base indentation
|
|
||||||
let l:baseIndent = indent(l:cnum)
|
|
||||||
|
|
||||||
" incrementally build indentation based on current indentation
|
|
||||||
" - one shiftwidth for the styled definition region
|
|
||||||
" - one shiftwidth per open nested definition region
|
|
||||||
let l:styledIndent = &sw
|
|
||||||
let l:styledIndent += min([
|
|
||||||
\ s:CountOccurencesInSOL(v:lnum, 'styledNestedRegion'),
|
|
||||||
\ s:CountOccurencesInEOL(v:lnum, 'styledNestedRegion', 0)
|
|
||||||
\ ]) * &sw
|
|
||||||
|
|
||||||
" decrease indentation by one shiftwidth, if the styled definition
|
|
||||||
" region ends on the current line
|
|
||||||
" - either directly via styled definition region, or
|
|
||||||
" - if the very last
|
|
||||||
if s:CountOccurencesInEOL(v:lnum, 'styledDefinition', 1) == 0
|
|
||||||
let l:styledIndent -= &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" return the base indentation
|
|
||||||
" (for nested styles inside classes/objects/etc.) plus the actual
|
|
||||||
" indentation inside the styled definition region
|
|
||||||
return l:baseIndent + l:styledIndent
|
|
||||||
elseif len(b:js_ts_indent)
|
|
||||||
let l:result = 0
|
|
||||||
let l:offset = 0
|
|
||||||
|
|
||||||
" increase indentation by one shiftwidth, if the last line ended on a
|
|
||||||
" styledXmlRegion and this line does not continue with it
|
|
||||||
" this is a fix for an incorrectly indented xml prop after a
|
|
||||||
" glamor-styled styledXmlRegion
|
|
||||||
if s:CountOccurencesInEOL(v:lnum-1, 'styledXmlRegion', 0) == 1 &&
|
|
||||||
\ s:CountOccurencesInSOL(v:lnum, 'styledXmlRegion') == 0
|
|
||||||
let l:offset = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" make sure `GetStyledIndent` and `GetJsxIndent` don't infinitely
|
|
||||||
" recurse by incrementing a counter variable, before evaluating the
|
|
||||||
" stored indent expression
|
|
||||||
if s:is_recursion == 0
|
|
||||||
let s:is_recursion = 1
|
|
||||||
let l:result = eval(b:js_ts_indent)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" `is_recursion` being 0 at this point indicates, that
|
|
||||||
" `eval(b:js_ts_indent)` did itself evaluate it's stored indentexpr
|
|
||||||
" and thus it can be assumed, that the current line should be
|
|
||||||
" indented as JS
|
|
||||||
if s:is_recursion == 0
|
|
||||||
" use one of `GetJavascriptIndent` or `GetJsIndent` if existing
|
|
||||||
" fallback to cindent, if not
|
|
||||||
if exists('*GetJavascriptIndent')
|
|
||||||
let l:result = GetJavascriptIndent()
|
|
||||||
elseif exists('*GetJsIndent')
|
|
||||||
let l:result = GetJsIndent()
|
|
||||||
else
|
|
||||||
let l:result = cindent(v:lnum)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" reset `is_recursion` counter and return the indentation value
|
|
||||||
let s:is_recursion = 0
|
|
||||||
return l:result + l:offset
|
|
||||||
endif
|
|
||||||
|
|
||||||
" if all else fails indent according to C-syntax
|
|
||||||
return cindent(v:lnum)
|
|
||||||
endfu
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" Vim indent file
|
" Vim indent file
|
||||||
@@ -32,176 +30,5 @@ endfunction
|
|||||||
|
|
||||||
let &cpo = s:keepcpo
|
let &cpo = s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
|
|
||||||
finish
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Vim syntax file
|
|
||||||
" Language: styled-components (js/ts)
|
|
||||||
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
|
|
||||||
" URL: https://github.com/styled-components/vim-styled-components
|
|
||||||
|
|
||||||
" initialize variable to check, if the indentation expression is run
|
|
||||||
" multiple times in a row, which indicates an infinite recursion
|
|
||||||
let s:is_recursion = 0
|
|
||||||
|
|
||||||
" store current indentexpr for later
|
|
||||||
let b:js_ts_indent=&indentexpr
|
|
||||||
|
|
||||||
" set indentexpr for this filetype (styled-components)
|
|
||||||
setlocal indentexpr=GetStyledIndent()
|
|
||||||
|
|
||||||
" add the following keys to trigger reindenting, when in insert mode
|
|
||||||
" - *; - Indent and insert on press of ';' key.
|
|
||||||
" - *<:> - Indent and insert on press of ':' key.
|
|
||||||
set indentkeys+=*;,*<:>,*<Return>
|
|
||||||
|
|
||||||
fu! s:GetSyntaxNames(lnum, cnum)
|
|
||||||
return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")')
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynSOL of vim-jsx
|
|
||||||
" TODO: add dependency to the readme and remove duplicate implementation
|
|
||||||
fu! s:SynSOL(lnum)
|
|
||||||
return s:GetSyntaxNames(a:lnum, 1)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
" re-implement SynEOL of vim-jsx
|
|
||||||
" TODO: add dependency to the readme and remove duplicate implementation
|
|
||||||
fu! s:SynEOL(lnum, offset)
|
|
||||||
let l:lnum = prevnonblank(a:lnum)
|
|
||||||
let l:col = strlen(getline(l:lnum))
|
|
||||||
|
|
||||||
return s:GetSyntaxNames(l:lnum, l:col + a:offset)
|
|
||||||
endfu
|
|
||||||
|
|
||||||
|
|
||||||
"" Return whether the current line is a jsTemplateString
|
|
||||||
fu! s:IsStyledDefinition(lnum)
|
|
||||||
" iterate through all syntax items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if syntax-item is a jsTemplateString return 1 - true
|
|
||||||
" `==#` is a match case comparison of the item
|
|
||||||
if item ==# 'styledDefinition'
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" fallback to 0 - false
|
|
||||||
return 0
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Count occurences of `str` at the beginning of the given `lnum` line
|
|
||||||
fu! s:CountOccurencesInSOL(lnum, str)
|
|
||||||
let l:occurence = 0
|
|
||||||
|
|
||||||
" iterate through all items in the given line
|
|
||||||
for item in s:SynSOL(a:lnum)
|
|
||||||
" if the syntax-item equals the given str increment the counter
|
|
||||||
" `==?` is a case isensitive equal operation
|
|
||||||
if item ==? a:str
|
|
||||||
let l:occurence += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" return the accumulated count of occurences
|
|
||||||
return l:occurence
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Count occurences of `str` at the end of the given `lnum` line
|
|
||||||
fu! s:CountOccurencesInEOL(lnum, str, offset)
|
|
||||||
let l:occurence = 0
|
|
||||||
|
|
||||||
" iterate through all items in the given line
|
|
||||||
for item in s:SynEOL(a:lnum, a:offset)
|
|
||||||
" if the syntax-item equals the given str increment the counter
|
|
||||||
" `==?` is a case insensitive equal operation
|
|
||||||
if item == a:str
|
|
||||||
let l:occurence += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" return the accumulated count of occurences
|
|
||||||
return l:occurence
|
|
||||||
endfu
|
|
||||||
|
|
||||||
"" Get the indentation of the current line
|
|
||||||
fu! GetStyledIndent()
|
|
||||||
if s:IsStyledDefinition(v:lnum)
|
|
||||||
let l:baseIndent = 0
|
|
||||||
|
|
||||||
" find last non-styled line
|
|
||||||
let l:cnum = v:lnum
|
|
||||||
while s:IsStyledDefinition(l:cnum)
|
|
||||||
let l:cnum -= 1
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
" get indentation of the last non-styled line as base indentation
|
|
||||||
let l:baseIndent = indent(l:cnum)
|
|
||||||
|
|
||||||
" incrementally build indentation based on current indentation
|
|
||||||
" - one shiftwidth for the styled definition region
|
|
||||||
" - one shiftwidth per open nested definition region
|
|
||||||
let l:styledIndent = &sw
|
|
||||||
let l:styledIndent += min([
|
|
||||||
\ s:CountOccurencesInSOL(v:lnum, 'styledNestedRegion'),
|
|
||||||
\ s:CountOccurencesInEOL(v:lnum, 'styledNestedRegion', 0)
|
|
||||||
\ ]) * &sw
|
|
||||||
|
|
||||||
" decrease indentation by one shiftwidth, if the styled definition
|
|
||||||
" region ends on the current line
|
|
||||||
" - either directly via styled definition region, or
|
|
||||||
" - if the very last
|
|
||||||
if s:CountOccurencesInEOL(v:lnum, 'styledDefinition', 1) == 0
|
|
||||||
let l:styledIndent -= &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" return the base indentation
|
|
||||||
" (for nested styles inside classes/objects/etc.) plus the actual
|
|
||||||
" indentation inside the styled definition region
|
|
||||||
return l:baseIndent + l:styledIndent
|
|
||||||
elseif len(b:js_ts_indent)
|
|
||||||
let l:result = 0
|
|
||||||
let l:offset = 0
|
|
||||||
|
|
||||||
" increase indentation by one shiftwidth, if the last line ended on a
|
|
||||||
" styledXmlRegion and this line does not continue with it
|
|
||||||
" this is a fix for an incorrectly indented xml prop after a
|
|
||||||
" glamor-styled styledXmlRegion
|
|
||||||
if s:CountOccurencesInEOL(v:lnum-1, 'styledXmlRegion', 0) == 1 &&
|
|
||||||
\ s:CountOccurencesInSOL(v:lnum, 'styledXmlRegion') == 0
|
|
||||||
let l:offset = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" make sure `GetStyledIndent` and `GetJsxIndent` don't infinitely
|
|
||||||
" recurse by incrementing a counter variable, before evaluating the
|
|
||||||
" stored indent expression
|
|
||||||
if s:is_recursion == 0
|
|
||||||
let s:is_recursion = 1
|
|
||||||
let l:result = eval(b:js_ts_indent)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" `is_recursion` being 0 at this point indicates, that
|
|
||||||
" `eval(b:js_ts_indent)` did itself evaluate it's stored indentexpr
|
|
||||||
" and thus it can be assumed, that the current line should be
|
|
||||||
" indented as JS
|
|
||||||
if s:is_recursion == 0
|
|
||||||
" use one of `GetJavascriptIndent` or `GetJsIndent` if existing
|
|
||||||
" fallback to cindent, if not
|
|
||||||
if exists('*GetJavascriptIndent')
|
|
||||||
let l:result = GetJavascriptIndent()
|
|
||||||
elseif exists('*GetJsIndent')
|
|
||||||
let l:result = GetJsIndent()
|
|
||||||
else
|
|
||||||
let l:result = cindent(v:lnum)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" reset `is_recursion` counter and return the indentation value
|
|
||||||
let s:is_recursion = 0
|
|
||||||
return l:result + l:offset
|
|
||||||
endif
|
|
||||||
|
|
||||||
" if all else fails indent according to C-syntax
|
|
||||||
return cindent(v:lnum)
|
|
||||||
endfu
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
17
after/syntax/haskell.vim
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
@@ -54,264 +52,11 @@ else " build-in javascript syntax
|
|||||||
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr,javaScript.*
|
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr,javaScript.*
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" because this is autoloaded, when developing you're going to need to source
|
runtime syntax/jsx_pretty.vim
|
||||||
" the autoload/jsx_pretty/*.vim file manually, or restart vim
|
|
||||||
call jsx_pretty#syntax#highlight()
|
|
||||||
|
|
||||||
let b:current_syntax = 'javascript.jsx'
|
let b:current_syntax = 'javascript.jsx'
|
||||||
|
|
||||||
let &cpo = s:jsx_cpo
|
let &cpo = s:jsx_cpo
|
||||||
unlet s:jsx_cpo
|
unlet s:jsx_cpo
|
||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Vim syntax file
|
|
||||||
" Language: styled-components (js/ts)
|
|
||||||
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
|
|
||||||
" URL: https://github.com/styled-components/vim-styled-components
|
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
|
||||||
let s:current_syntax=b:current_syntax
|
|
||||||
unlet b:current_syntax
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
" fix for "-" before cssPositioningProp
|
|
||||||
" - needs to be above CSS include to not match cssVendor definitions
|
|
||||||
syn region cssCustomPositioningPrefix contained
|
|
||||||
\ start='-' end='\%(\s\{-}:\)\@='
|
|
||||||
\ contains=cssPositioningProp
|
|
||||||
|
|
||||||
" introduce CSS cluster from built-in (or single third party syntax file)
|
|
||||||
syn include @CSS syntax/css.vim
|
|
||||||
|
|
||||||
" try to include CSS3 definitions from multiple files
|
|
||||||
" this is only possible on vim version above 7
|
|
||||||
if v:version >= 700
|
|
||||||
try
|
|
||||||
syn include @CSS3 syntax/css/*.vim
|
|
||||||
catch
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
|
|
||||||
" TODO: include react-native keywords
|
|
||||||
|
|
||||||
" define custom cssAttrRegion
|
|
||||||
" - add ",", "`" and "{" to the end characters
|
|
||||||
" - add "cssPseudoClassId" to it's containing elements
|
|
||||||
" this will incorrectly highlight pseudo elements incorrectly used as
|
|
||||||
" attributes but correctly highlight actual attributes
|
|
||||||
syn region cssCustomAttrRegion contained
|
|
||||||
\ start=":" end="\ze\%(;\|)\|{\|}\|`\)"
|
|
||||||
\ contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,
|
|
||||||
\ cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,
|
|
||||||
\ cssError,cssAttrComma,cssNoise,cssPseudoClassId,
|
|
||||||
\ jsTemplateExpression,
|
|
||||||
\ typescriptInterpolation,typescriptTemplateSubstitution
|
|
||||||
syn region cssCustomAttrRegion contained
|
|
||||||
\ start="transition\s*:" end="\ze\%(;\|)\|{\|}\|`\)"
|
|
||||||
\ contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,
|
|
||||||
\ cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,
|
|
||||||
\ cssVendor,cssError,cssAttrComma,cssNoise,cssPseudoClassId,
|
|
||||||
\ jsTemplateExpression,
|
|
||||||
\ typescriptInterpolation,typescriptTemplateSubstitution
|
|
||||||
|
|
||||||
" define custom css elements to not utilize cssDefinition
|
|
||||||
syn region cssCustomMediaBlock contained fold transparent matchgroup=cssBraces
|
|
||||||
\ start="{" end="}"
|
|
||||||
\ contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,
|
|
||||||
\ cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,
|
|
||||||
\ cssUnicodeEscape,cssVendor,cssTagName,cssClassName,
|
|
||||||
\ cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,
|
|
||||||
\ cssAttributeSelector
|
|
||||||
syn region cssCustomPageWrap contained transparent matchgroup=cssBraces
|
|
||||||
\ start="{" end="}"
|
|
||||||
\ contains=cssPageMargin,cssPageProp,cssCustomAttrRegion,css.*Prop,
|
|
||||||
\ cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,
|
|
||||||
\ cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,
|
|
||||||
\ cssHacks
|
|
||||||
syn match cssCustomPageMargin contained skipwhite skipnl
|
|
||||||
\ "@\%(\%(top\|left\|right\|bottom\)-\%(left\|center\|right\|middle\|bottom\)\)\%(-corner\)\="
|
|
||||||
syn match cssCustomKeyFrameSelector "\%(\d*%\|\<from\>\|\<to\>\)" contained
|
|
||||||
\ skipwhite skipnl
|
|
||||||
|
|
||||||
" define css include customly to overwrite nextgroup
|
|
||||||
syn region cssInclude start="@media\>" end="\ze{" skipwhite skipnl
|
|
||||||
\ contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,
|
|
||||||
\ cssMediaMediaAttr,cssVencor,cssMediaType,cssIncludeKeyword,
|
|
||||||
\ cssMediaComma,cssComment
|
|
||||||
\ nextgroup=cssCustomMediaBlock
|
|
||||||
|
|
||||||
" define all non-contained css definitions
|
|
||||||
syn cluster CSSTop
|
|
||||||
\ contains=cssTagName,cssSelectorOp,cssAttributeSelector,cssClassName,
|
|
||||||
\ cssBraces,cssIdentifier,cssIncludeKeyword,cssPage,cssKeyFrame,
|
|
||||||
\ cssFontDescriptor,cssAttrComma,cssPseudoClass,cssUnicodeEscape
|
|
||||||
|
|
||||||
" custom highlights for styled components
|
|
||||||
" - "&" inside top level
|
|
||||||
" - cssTagName inside of jsStrings inside of styledPrefix regions
|
|
||||||
" TODO: override highlighting of cssTagName with more subtle one
|
|
||||||
syn match styledAmpersand contained "&"
|
|
||||||
syn region styledTagNameString matchgroup=jsString contained
|
|
||||||
\ start=+'+ end=+'+ skip=+\\\%(\'\|$\)+
|
|
||||||
\ contains=cssTagName
|
|
||||||
syn region styledTagNameString matchgroup=jsString contained
|
|
||||||
\ start=+"+ end=+"+ skip=+\\\%(\"\|$\)+
|
|
||||||
\ contains=cssTagName
|
|
||||||
syn region styledTagNameString matchgroup=jsString contained
|
|
||||||
\ start=+`+ end=+`+ skip=+\\\%(\`\|$\)+
|
|
||||||
\ contains=cssTagName
|
|
||||||
|
|
||||||
" define custom API sections that trigger the styledDefinition highlighting
|
|
||||||
syn match styledPrefix "\<styled\>\.\k\+"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,javascriptTagRef
|
|
||||||
\ containedin=jsFuncBlock
|
|
||||||
syn match styledPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})"
|
|
||||||
\ transparent fold extend
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=jsObject,jsParen
|
|
||||||
\ containedin=jsFuncBlock
|
|
||||||
syn match styledPrefix "\.\<extend\>"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ containedin=jsFuncBlock
|
|
||||||
|
|
||||||
" define custom API section, that contains typescript annotations
|
|
||||||
" this is structurally similar to `jsFuncCall`, but allows type
|
|
||||||
" annotations (delimited by brackets (e.g. "<>")) between `styled` and
|
|
||||||
" the function call parenthesis
|
|
||||||
syn match styledTypescriptPrefix
|
|
||||||
\ "\<styled\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>(\%('\k\+'\|\"\k\+\"\|\k\+\))"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
syn match styledTypescriptPrefix
|
|
||||||
\ "\<styled\>\%((\%('\k\+'\|\"\k\+\"\|\k\+\))\|\.\k\+\)<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
syn match styledTypescriptPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ transparent fold extend
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
syn match styledTypescriptPrefix "\.\<extend\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ transparent fold extend
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
|
|
||||||
" define emotion css prop
|
|
||||||
" to bypass problems from top-level defined xml/js definitions, this
|
|
||||||
" plugin re-defines keywords/noise for highlighting inside of the custom
|
|
||||||
" xmlAttrib definition
|
|
||||||
syn keyword styledXmlRegionKeyword css contained
|
|
||||||
syn match styledXmlRegionNoise "\%(=\|{\|}\)" contained
|
|
||||||
" only include styledDefinitions inside of xmlAttribs, that are wrapped
|
|
||||||
" in `css={}` regions, `keepend` is necessary to correctly break on the
|
|
||||||
" higher-level xmlAttrib region end
|
|
||||||
syn region styledXmlRegion
|
|
||||||
\ start="\<css\>={" end="}"
|
|
||||||
\ keepend fold
|
|
||||||
\ containedin=xmlAttrib
|
|
||||||
\ contains=styledXmlRegionKeyword,styledXmlRegionNoise,styledDefinition
|
|
||||||
|
|
||||||
" define nested region for indenting
|
|
||||||
syn region styledNestedRegion contained transparent
|
|
||||||
\ matchgroup=cssBraces
|
|
||||||
\ start="{" end="}"
|
|
||||||
|
|
||||||
" re-define cssError to be highlighted correctly in styledNestedRegion
|
|
||||||
syn match cssError contained "{@<>"
|
|
||||||
|
|
||||||
" extend javascript matches to trigger styledDefinition highlighting
|
|
||||||
syn match jsTaggedTemplate extend
|
|
||||||
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\<styled\>\s*(.\+)" transparent
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
|
|
||||||
\ contains=styledTagNameString
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ contains=typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\.\<withComponent\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
|
|
||||||
\ contains=styledTagNameString
|
|
||||||
syn match jsFuncCall "\<dc\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))\%((\)\@="
|
|
||||||
\ contains=styledTagNameString
|
|
||||||
\ nextgroup=styledDefinitionArgument
|
|
||||||
|
|
||||||
" inject css highlighting into custom jsTemplateString region
|
|
||||||
" - use `extend` to not end all nested jsTemplateExpression on the first
|
|
||||||
" closing one
|
|
||||||
syn region styledDefinition contained transparent fold extend
|
|
||||||
\ start="`" end="`" skip="\\\%(`\|$\)"
|
|
||||||
\ contains=@CSSTop,
|
|
||||||
\ css.*Prop,cssValue.*,cssColor,cssUrl,cssImportant,cssError,
|
|
||||||
\ cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,
|
|
||||||
\ cssHacks,
|
|
||||||
\ cssCustom.*,
|
|
||||||
\ jsComment,jsTemplateExpression,
|
|
||||||
\ typescriptInterpolation,typescriptTemplateSubstitution,
|
|
||||||
\ styledAmpersand,styledNestedRegion
|
|
||||||
syn region styledDefinitionArgument contained transparent start=+(+ end=+)+
|
|
||||||
\ contains=styledDefinition
|
|
||||||
|
|
||||||
syn cluster typescriptValue add=styledPrefix,jsFuncCall,styledTypescriptPrefix
|
|
||||||
|
|
||||||
""" yajs specific extensions
|
|
||||||
" define template tag keywords, that trigger styledDefinitions again to be
|
|
||||||
" contained in and also do contain the `javascriptTagRef` region
|
|
||||||
syn match javascriptTagRefStyledPrefix transparent fold
|
|
||||||
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
|
|
||||||
\ containedin=javascriptTagRef
|
|
||||||
\ contains=javascriptTagRef
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
" extend the yajs clusters to include the previously and extraneously defined
|
|
||||||
" styled-related matches
|
|
||||||
syn cluster javascriptExpression
|
|
||||||
\ add=styledPrefix,jsFuncCall,javascriptTagRefStyledPrefix
|
|
||||||
syn cluster javascriptAfterIdentifier add=styledPrefix,jsFuncCall
|
|
||||||
|
|
||||||
""" yats specific extensions
|
|
||||||
" extend typescriptIdentifierName to allow styledDefinitions in their
|
|
||||||
" tagged templates
|
|
||||||
syn match typescriptIdentifierName extend
|
|
||||||
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
|
|
||||||
" color the custom highlight elements
|
|
||||||
hi def link cssCustomKeyFrameSelector Constant
|
|
||||||
hi def link cssCustomPositioningPrefix StorageClass
|
|
||||||
hi def link styledAmpersand Special
|
|
||||||
|
|
||||||
hi def link styledXmlRegionKeyword Type
|
|
||||||
hi def link styledXmlRegionNoise Noise
|
|
||||||
hi def link styledXmlRegion String
|
|
||||||
|
|
||||||
|
|
||||||
if exists("s:current_syntax")
|
|
||||||
let b:current_syntax=s:current_syntax
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
27
after/syntax/javascript/graphql.vim
Normal file
27
after/syntax/javascript/graphql.vim
Normal 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
|
||||||
216
after/syntax/jsx_pretty.vim
Normal file
216
after/syntax/jsx_pretty.vim
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
@@ -28,276 +26,25 @@ endif
|
|||||||
" refine the typescript line comment
|
" refine the typescript line comment
|
||||||
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
|
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
|
||||||
|
|
||||||
" add a typescriptBlock group for typescript
|
if !hlexists('typescriptTypeCast')
|
||||||
syntax region typescriptBlock
|
" add a typescriptBlock group for typescript
|
||||||
\ contained
|
syntax region typescriptBlock
|
||||||
\ matchgroup=typescriptBraces
|
\ matchgroup=typescriptBraces
|
||||||
\ start="{"
|
\ start="{"
|
||||||
\ end="}"
|
\ end="}"
|
||||||
\ extend
|
\ contained
|
||||||
\ contains=@typescriptAll,@typescriptExpression,typescriptBlock
|
\ extend
|
||||||
\ fold
|
\ contains=@typescriptExpression,typescriptBlock
|
||||||
|
\ fold
|
||||||
|
endif
|
||||||
|
|
||||||
" because this is autoloaded, when developing you're going to need to source
|
syntax cluster typescriptExpression add=jsxRegion,typescriptParens
|
||||||
" the autoload/jsx_pretty/*.vim file manually, or restart vim
|
|
||||||
call jsx_pretty#syntax#highlight()
|
|
||||||
|
|
||||||
syntax cluster typescriptExpression add=jsxRegion
|
runtime syntax/jsx_pretty.vim
|
||||||
|
|
||||||
let b:current_syntax = 'typescript.tsx'
|
let b:current_syntax = 'typescript.tsx'
|
||||||
|
|
||||||
let &cpo = s:jsx_cpo
|
let &cpo = s:jsx_cpo
|
||||||
unlet s:jsx_cpo
|
unlet s:jsx_cpo
|
||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Vim syntax file
|
|
||||||
" Language: styled-components (js/ts)
|
|
||||||
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
|
|
||||||
" URL: https://github.com/styled-components/vim-styled-components
|
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
|
||||||
let s:current_syntax=b:current_syntax
|
|
||||||
unlet b:current_syntax
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
" fix for "-" before cssPositioningProp
|
|
||||||
" - needs to be above CSS include to not match cssVendor definitions
|
|
||||||
syn region cssCustomPositioningPrefix contained
|
|
||||||
\ start='-' end='\%(\s\{-}:\)\@='
|
|
||||||
\ contains=cssPositioningProp
|
|
||||||
|
|
||||||
" introduce CSS cluster from built-in (or single third party syntax file)
|
|
||||||
syn include @CSS syntax/css.vim
|
|
||||||
|
|
||||||
" try to include CSS3 definitions from multiple files
|
|
||||||
" this is only possible on vim version above 7
|
|
||||||
if v:version >= 700
|
|
||||||
try
|
|
||||||
syn include @CSS3 syntax/css/*.vim
|
|
||||||
catch
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
|
|
||||||
" TODO: include react-native keywords
|
|
||||||
|
|
||||||
" define custom cssAttrRegion
|
|
||||||
" - add ",", "`" and "{" to the end characters
|
|
||||||
" - add "cssPseudoClassId" to it's containing elements
|
|
||||||
" this will incorrectly highlight pseudo elements incorrectly used as
|
|
||||||
" attributes but correctly highlight actual attributes
|
|
||||||
syn region cssCustomAttrRegion contained
|
|
||||||
\ start=":" end="\ze\%(;\|)\|{\|}\|`\)"
|
|
||||||
\ contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,
|
|
||||||
\ cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,
|
|
||||||
\ cssError,cssAttrComma,cssNoise,cssPseudoClassId,
|
|
||||||
\ jsTemplateExpression,
|
|
||||||
\ typescriptInterpolation,typescriptTemplateSubstitution
|
|
||||||
syn region cssCustomAttrRegion contained
|
|
||||||
\ start="transition\s*:" end="\ze\%(;\|)\|{\|}\|`\)"
|
|
||||||
\ contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,
|
|
||||||
\ cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,
|
|
||||||
\ cssVendor,cssError,cssAttrComma,cssNoise,cssPseudoClassId,
|
|
||||||
\ jsTemplateExpression,
|
|
||||||
\ typescriptInterpolation,typescriptTemplateSubstitution
|
|
||||||
|
|
||||||
" define custom css elements to not utilize cssDefinition
|
|
||||||
syn region cssCustomMediaBlock contained fold transparent matchgroup=cssBraces
|
|
||||||
\ start="{" end="}"
|
|
||||||
\ contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,
|
|
||||||
\ cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,
|
|
||||||
\ cssUnicodeEscape,cssVendor,cssTagName,cssClassName,
|
|
||||||
\ cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,
|
|
||||||
\ cssAttributeSelector
|
|
||||||
syn region cssCustomPageWrap contained transparent matchgroup=cssBraces
|
|
||||||
\ start="{" end="}"
|
|
||||||
\ contains=cssPageMargin,cssPageProp,cssCustomAttrRegion,css.*Prop,
|
|
||||||
\ cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,
|
|
||||||
\ cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,
|
|
||||||
\ cssHacks
|
|
||||||
syn match cssCustomPageMargin contained skipwhite skipnl
|
|
||||||
\ "@\%(\%(top\|left\|right\|bottom\)-\%(left\|center\|right\|middle\|bottom\)\)\%(-corner\)\="
|
|
||||||
syn match cssCustomKeyFrameSelector "\%(\d*%\|\<from\>\|\<to\>\)" contained
|
|
||||||
\ skipwhite skipnl
|
|
||||||
|
|
||||||
" define css include customly to overwrite nextgroup
|
|
||||||
syn region cssInclude start="@media\>" end="\ze{" skipwhite skipnl
|
|
||||||
\ contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,
|
|
||||||
\ cssMediaMediaAttr,cssVencor,cssMediaType,cssIncludeKeyword,
|
|
||||||
\ cssMediaComma,cssComment
|
|
||||||
\ nextgroup=cssCustomMediaBlock
|
|
||||||
|
|
||||||
" define all non-contained css definitions
|
|
||||||
syn cluster CSSTop
|
|
||||||
\ contains=cssTagName,cssSelectorOp,cssAttributeSelector,cssClassName,
|
|
||||||
\ cssBraces,cssIdentifier,cssIncludeKeyword,cssPage,cssKeyFrame,
|
|
||||||
\ cssFontDescriptor,cssAttrComma,cssPseudoClass,cssUnicodeEscape
|
|
||||||
|
|
||||||
" custom highlights for styled components
|
|
||||||
" - "&" inside top level
|
|
||||||
" - cssTagName inside of jsStrings inside of styledPrefix regions
|
|
||||||
" TODO: override highlighting of cssTagName with more subtle one
|
|
||||||
syn match styledAmpersand contained "&"
|
|
||||||
syn region styledTagNameString matchgroup=jsString contained
|
|
||||||
\ start=+'+ end=+'+ skip=+\\\%(\'\|$\)+
|
|
||||||
\ contains=cssTagName
|
|
||||||
syn region styledTagNameString matchgroup=jsString contained
|
|
||||||
\ start=+"+ end=+"+ skip=+\\\%(\"\|$\)+
|
|
||||||
\ contains=cssTagName
|
|
||||||
syn region styledTagNameString matchgroup=jsString contained
|
|
||||||
\ start=+`+ end=+`+ skip=+\\\%(\`\|$\)+
|
|
||||||
\ contains=cssTagName
|
|
||||||
|
|
||||||
" define custom API sections that trigger the styledDefinition highlighting
|
|
||||||
syn match styledPrefix "\<styled\>\.\k\+"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,javascriptTagRef
|
|
||||||
\ containedin=jsFuncBlock
|
|
||||||
syn match styledPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})"
|
|
||||||
\ transparent fold extend
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=jsObject,jsParen
|
|
||||||
\ containedin=jsFuncBlock
|
|
||||||
syn match styledPrefix "\.\<extend\>"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ containedin=jsFuncBlock
|
|
||||||
|
|
||||||
" define custom API section, that contains typescript annotations
|
|
||||||
" this is structurally similar to `jsFuncCall`, but allows type
|
|
||||||
" annotations (delimited by brackets (e.g. "<>")) between `styled` and
|
|
||||||
" the function call parenthesis
|
|
||||||
syn match styledTypescriptPrefix
|
|
||||||
\ "\<styled\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>(\%('\k\+'\|\"\k\+\"\|\k\+\))"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
syn match styledTypescriptPrefix
|
|
||||||
\ "\<styled\>\%((\%('\k\+'\|\"\k\+\"\|\k\+\))\|\.\k\+\)<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ transparent fold
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
syn match styledTypescriptPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ transparent fold extend
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
syn match styledTypescriptPrefix "\.\<extend\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ transparent fold extend
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
\ contains=cssTagName,
|
|
||||||
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
|
|
||||||
" define emotion css prop
|
|
||||||
" to bypass problems from top-level defined xml/js definitions, this
|
|
||||||
" plugin re-defines keywords/noise for highlighting inside of the custom
|
|
||||||
" xmlAttrib definition
|
|
||||||
syn keyword styledXmlRegionKeyword css contained
|
|
||||||
syn match styledXmlRegionNoise "\%(=\|{\|}\)" contained
|
|
||||||
" only include styledDefinitions inside of xmlAttribs, that are wrapped
|
|
||||||
" in `css={}` regions, `keepend` is necessary to correctly break on the
|
|
||||||
" higher-level xmlAttrib region end
|
|
||||||
syn region styledXmlRegion
|
|
||||||
\ start="\<css\>={" end="}"
|
|
||||||
\ keepend fold
|
|
||||||
\ containedin=xmlAttrib
|
|
||||||
\ contains=styledXmlRegionKeyword,styledXmlRegionNoise,styledDefinition
|
|
||||||
|
|
||||||
" define nested region for indenting
|
|
||||||
syn region styledNestedRegion contained transparent
|
|
||||||
\ matchgroup=cssBraces
|
|
||||||
\ start="{" end="}"
|
|
||||||
|
|
||||||
" re-define cssError to be highlighted correctly in styledNestedRegion
|
|
||||||
syn match cssError contained "{@<>"
|
|
||||||
|
|
||||||
" extend javascript matches to trigger styledDefinition highlighting
|
|
||||||
syn match jsTaggedTemplate extend
|
|
||||||
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\<styled\>\s*(.\+)" transparent
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
|
|
||||||
\ contains=styledTagNameString
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
|
|
||||||
\ contains=typescriptBraces,typescriptOpSymbols,typescriptEndColons,
|
|
||||||
\ typescriptParens,typescriptStringS,@typescriptType,
|
|
||||||
\ typescriptType,
|
|
||||||
\ styledTagNameString
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
syn match jsFuncCall "\.\<withComponent\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
|
|
||||||
\ contains=styledTagNameString
|
|
||||||
syn match jsFuncCall "\<dc\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))\%((\)\@="
|
|
||||||
\ contains=styledTagNameString
|
|
||||||
\ nextgroup=styledDefinitionArgument
|
|
||||||
|
|
||||||
" inject css highlighting into custom jsTemplateString region
|
|
||||||
" - use `extend` to not end all nested jsTemplateExpression on the first
|
|
||||||
" closing one
|
|
||||||
syn region styledDefinition contained transparent fold extend
|
|
||||||
\ start="`" end="`" skip="\\\%(`\|$\)"
|
|
||||||
\ contains=@CSSTop,
|
|
||||||
\ css.*Prop,cssValue.*,cssColor,cssUrl,cssImportant,cssError,
|
|
||||||
\ cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,
|
|
||||||
\ cssHacks,
|
|
||||||
\ cssCustom.*,
|
|
||||||
\ jsComment,jsTemplateExpression,
|
|
||||||
\ typescriptInterpolation,typescriptTemplateSubstitution,
|
|
||||||
\ styledAmpersand,styledNestedRegion
|
|
||||||
syn region styledDefinitionArgument contained transparent start=+(+ end=+)+
|
|
||||||
\ contains=styledDefinition
|
|
||||||
|
|
||||||
syn cluster typescriptValue add=styledPrefix,jsFuncCall,styledTypescriptPrefix
|
|
||||||
|
|
||||||
""" yajs specific extensions
|
|
||||||
" define template tag keywords, that trigger styledDefinitions again to be
|
|
||||||
" contained in and also do contain the `javascriptTagRef` region
|
|
||||||
syn match javascriptTagRefStyledPrefix transparent fold
|
|
||||||
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
|
|
||||||
\ containedin=javascriptTagRef
|
|
||||||
\ contains=javascriptTagRef
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
" extend the yajs clusters to include the previously and extraneously defined
|
|
||||||
" styled-related matches
|
|
||||||
syn cluster javascriptExpression
|
|
||||||
\ add=styledPrefix,jsFuncCall,javascriptTagRefStyledPrefix
|
|
||||||
syn cluster javascriptAfterIdentifier add=styledPrefix,jsFuncCall
|
|
||||||
|
|
||||||
""" yats specific extensions
|
|
||||||
" extend typescriptIdentifierName to allow styledDefinitions in their
|
|
||||||
" tagged templates
|
|
||||||
syn match typescriptIdentifierName extend
|
|
||||||
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
|
|
||||||
\ nextgroup=styledDefinition
|
|
||||||
|
|
||||||
" color the custom highlight elements
|
|
||||||
hi def link cssCustomKeyFrameSelector Constant
|
|
||||||
hi def link cssCustomPositioningPrefix StorageClass
|
|
||||||
hi def link styledAmpersand Special
|
|
||||||
|
|
||||||
hi def link styledXmlRegionKeyword Type
|
|
||||||
hi def link styledXmlRegionNoise Noise
|
|
||||||
hi def link styledXmlRegion String
|
|
||||||
|
|
||||||
|
|
||||||
if exists("s:current_syntax")
|
|
||||||
let b:current_syntax=s:current_syntax
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
26
after/syntax/typescript/graphql.vim
Normal file
26
after/syntax/typescript/graphql.vim
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -186,3 +184,5 @@ function! dart#setModifiable() abort
|
|||||||
setlocal nomodifiable
|
setlocal nomodifiable
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -18,10 +16,6 @@ function! go#config#VersionWarning() abort
|
|||||||
return get(g:, 'go_version_warning', 1)
|
return get(g:, 'go_version_warning', 1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#NullModuleWarning() abort
|
|
||||||
return get(g:, 'go_null_module_warning', 1)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! go#config#BuildTags() abort
|
function! go#config#BuildTags() abort
|
||||||
return get(g:, 'go_build_tags', '')
|
return get(g:, 'go_build_tags', '')
|
||||||
endfunction
|
endfunction
|
||||||
@@ -29,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
|
||||||
@@ -55,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
|
||||||
@@ -182,6 +186,9 @@ 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
|
||||||
@@ -219,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
|
||||||
@@ -253,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
|
||||||
@@ -276,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
|
||||||
@@ -489,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
16
autoload/graphql.vim
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! jsx_pretty#comment#update_commentstring(original)
|
function! jsx_pretty#comment#update_commentstring(original)
|
||||||
let syn_current = s:syn_name(line('.'), col('.'))
|
let syn_current = s:syn_name(line('.'), col('.'))
|
||||||
let syn_start = s:syn_name(line('.'), 1)
|
let syn_start = s:syn_name(line('.'), 1)
|
||||||
let save_cursor = getcurpos()
|
let save_view = winsaveview()
|
||||||
|
|
||||||
if syn_start =~ '^jsx'
|
if syn_start =~? '^jsx'
|
||||||
let line = getline(".")
|
let line = getline(".")
|
||||||
let start = len(matchstr(line, '^\s*'))
|
let start = len(matchstr(line, '^\s*'))
|
||||||
let syn_name = s:syn_name(line('.'), start + 1)
|
let syn_name = s:syn_name(line('.'), start + 1)
|
||||||
@@ -16,7 +14,7 @@ function! jsx_pretty#comment#update_commentstring(original)
|
|||||||
let &l:commentstring = '// %s'
|
let &l:commentstring = '// %s'
|
||||||
elseif s:syn_contains(line('.'), col('.'), 'jsxTaggedRegion')
|
elseif s:syn_contains(line('.'), col('.'), 'jsxTaggedRegion')
|
||||||
let &l:commentstring = '<!-- %s -->'
|
let &l:commentstring = '<!-- %s -->'
|
||||||
elseif syn_name =~ '^jsxAttrib'
|
elseif syn_name =~? '^jsxAttrib'
|
||||||
let &l:commentstring = '// %s'
|
let &l:commentstring = '// %s'
|
||||||
else
|
else
|
||||||
let &l:commentstring = '{/* %s */}'
|
let &l:commentstring = '{/* %s */}'
|
||||||
@@ -26,7 +24,7 @@ function! jsx_pretty#comment#update_commentstring(original)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" Restore the cursor position
|
" Restore the cursor position
|
||||||
call setpos('.', save_cursor)
|
call winrestview(save_view)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_name(lnum, cnum)
|
function! s:syn_name(lnum, cnum)
|
||||||
@@ -39,3 +37,5 @@ function! s:syn_contains(lnum, cnum, syn_name)
|
|||||||
let syn_names = map(stack, 'synIDattr(v:val, "name")')
|
let syn_names = map(stack, 'synIDattr(v:val, "name")')
|
||||||
return index(syn_names, a:syn_name) >= 0
|
return index(syn_names, a:syn_name) >= 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists('*shiftwidth')
|
if exists('*shiftwidth')
|
||||||
function! s:sw()
|
function! s:sw()
|
||||||
@@ -37,7 +35,7 @@ function! s:prev_line(lnum)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_attr_jsx(synattr)
|
function! s:syn_attr_jsx(synattr)
|
||||||
return a:synattr =~ "^jsx"
|
return a:synattr =~? "^jsx"
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_xmlish(syns)
|
function! s:syn_xmlish(syns)
|
||||||
@@ -45,21 +43,21 @@ function! s:syn_xmlish(syns)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_jsx_element(syns)
|
function! s:syn_jsx_element(syns)
|
||||||
return get(a:syns, -1) =~ 'jsxElement'
|
return get(a:syns, -1) =~? 'jsxElement'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_js_comment(syns)
|
function! s:syn_js_comment(syns)
|
||||||
return get(a:syns, -1) =~ 'Comment$'
|
return get(a:syns, -1) =~? 'Comment$'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_jsx_escapejs(syns)
|
function! s:syn_jsx_escapejs(syns)
|
||||||
return get(a:syns, -1) =~ '\(\(js\(Template\)\?\|javaScript\(Embed\)\?\|typescript\)Braces\|javascriptTemplateSB\|typescriptInterpolationDelimiter\)' &&
|
return get(a:syns, -1) =~? '\(\(js\(Template\)\?\|javaScript\(Embed\)\?\|typescript\)Braces\|javascriptTemplateSB\|typescriptInterpolationDelimiter\)' &&
|
||||||
\ (get(a:syns, -2) =~ 'jsxEscapeJs' ||
|
\ (get(a:syns, -2) =~? 'jsxEscapeJs' ||
|
||||||
\ get(a:syns, -3) =~ 'jsxEscapeJs')
|
\ get(a:syns, -3) =~? 'jsxEscapeJs')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:syn_jsx_attrib(syns)
|
function! s:syn_jsx_attrib(syns)
|
||||||
return len(filter(copy(a:syns), 'v:val =~ "jsxAttrib"'))
|
return len(filter(copy(a:syns), 'v:val =~? "jsxAttrib"'))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:start_tag = '<\s*\([-:_\.\$0-9A-Za-z]\+\|>\)'
|
let s:start_tag = '<\s*\([-:_\.\$0-9A-Za-z]\+\|>\)'
|
||||||
@@ -73,17 +71,30 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
let line = substitute(getline(lnum), '^\s*\|\s*$', '', 'g')
|
let line = substitute(getline(lnum), '^\s*\|\s*$', '', 'g')
|
||||||
let current_syn = s:syn_sol(lnum)
|
let current_syn = s:syn_sol(lnum)
|
||||||
let current_syn_eol = s:syn_eol(lnum)
|
let current_syn_eol = s:syn_eol(lnum)
|
||||||
let prev_syn_sol = s:syn_sol(lnum - 1)
|
let prev_line_num = prevnonblank(lnum - 1)
|
||||||
let prev_syn_eol = s:syn_eol(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_line = s:prev_line(lnum)
|
||||||
let prev_ind = s:prev_indent(lnum)
|
let prev_ind = s:prev_indent(lnum)
|
||||||
|
|
||||||
if s:syn_xmlish(current_syn)
|
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>
|
" <div></div>
|
||||||
" ##} <--
|
" ##} <--
|
||||||
if s:syn_jsx_element(current_syn) && line =~ '}$'
|
elseif s:syn_jsx_element(current_syn) && line =~ '}$'
|
||||||
let pair_line = searchpair('{', '', '}', 'b')
|
let pair_line = searchpair('{', '', '}', 'b')
|
||||||
return indent(pair_line)
|
return indent(pair_line)
|
||||||
elseif line =~ '^-->$'
|
elseif line =~ '^-->$'
|
||||||
@@ -124,6 +135,8 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
else
|
else
|
||||||
return prev_ind
|
return prev_ind
|
||||||
endif
|
endif
|
||||||
|
elseif prev_line =~ '^\<return'
|
||||||
|
return prev_ind
|
||||||
else
|
else
|
||||||
return prev_ind - s:sw()
|
return prev_ind - s:sw()
|
||||||
endif
|
endif
|
||||||
@@ -141,16 +154,6 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
else
|
else
|
||||||
return prev_ind
|
return prev_ind
|
||||||
endif
|
endif
|
||||||
elseif !s:syn_xmlish(prev_syn_sol)
|
|
||||||
if prev_line =~ '^\<\(return\|default\|await\|yield\)'
|
|
||||||
if line !~ '^/\s*>' || line !~ '^<\s*' . s:end_tag
|
|
||||||
return prev_ind + s:sw()
|
|
||||||
else
|
|
||||||
return prev_ind
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
return prev_ind
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
return prev_ind
|
return prev_ind
|
||||||
endif
|
endif
|
||||||
@@ -174,7 +177,8 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
return prev_ind + s:sw()
|
return prev_ind + s:sw()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
elseif s:syn_jsx_escapejs(current_syn_eol)
|
elseif line =~ '^`' && s:syn_jsx_escapejs(current_syn_eol)
|
||||||
|
" For `} of template syntax
|
||||||
let pair_line = searchpair('{', '', '}', 'bW')
|
let pair_line = searchpair('{', '', '}', 'bW')
|
||||||
return indent(pair_line)
|
return indent(pair_line)
|
||||||
elseif line =~ '^/[/*]' " js comment in jsx tag
|
elseif line =~ '^/[/*]' " js comment in jsx tag
|
||||||
@@ -188,6 +192,14 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
else
|
else
|
||||||
let ind = a:js_indent()
|
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 current syntax is not a jsx syntax group
|
||||||
if s:syn_xmlish(prev_syn_eol) && line !~ '^[)\]}]'
|
if s:syn_xmlish(prev_syn_eol) && line !~ '^[)\]}]'
|
||||||
let sol = matchstr(line, s:opfirst)
|
let sol = matchstr(line, s:opfirst)
|
||||||
@@ -202,3 +214,5 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,218 +0,0 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! jsx_pretty#syntax#highlight()
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
" Highlight the jsxCloseString (i.e. />), jsxPunct (i.e. <,>) and jsxCloseTag (i.e. <//>)
|
|
||||||
highlight def link jsxCloseString Comment
|
|
||||||
highlight def link jsxPunct jsxCloseString
|
|
||||||
highlight def link jsxOpenPunct jsxPunct
|
|
||||||
highlight def link jsxClosePunct jsxPunct
|
|
||||||
highlight def link jsxCloseTag jsxCloseString
|
|
||||||
|
|
||||||
highlight def link jsxComment Comment
|
|
||||||
highlight def link jsxSpreadOperator Operator
|
|
||||||
|
|
||||||
if s:highlight_close_tag
|
|
||||||
highlight! def link jsxOpenPunct jsxTag
|
|
||||||
highlight! def link jsxCloseString Identifier
|
|
||||||
endif
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
" 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.3.0-DEV.263
|
" The symbols are based on Julia version 1.3.0-DEV.263
|
||||||
@@ -3332,3 +3330,5 @@ function! julia_latex_symbols#get_dict()
|
|||||||
\ '\:baggage_claim:': '🛄',
|
\ '\:baggage_claim:': '🛄',
|
||||||
\ '\:left_luggage:': '🛅'}
|
\ '\:left_luggage:': '🛅'}
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -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
72
autoload/puppet/align.vim
Normal 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
40
autoload/puppet/ctags.vim
Normal 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
|
||||||
61
autoload/puppet/format.vim
Normal file
61
autoload/puppet/format.vim
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
21
autoload/rust/tags.vim
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,25 +1,60 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'terraform') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terraform') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Adapted from vim-hclfmt:
|
|
||||||
" https://github.com/fatih/vim-hclfmt/blob/master/autoload/fmt.vim
|
|
||||||
function! terraform#fmt()
|
function! terraform#fmt()
|
||||||
if !filereadable(expand('%:p'))
|
if !filereadable(expand('%:p'))
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
let l:curw = winsaveview()
|
let l:curw = winsaveview()
|
||||||
let l:tmpfile = tempname() . '.tf'
|
" Make a fake change so that the undo point is right.
|
||||||
call writefile(getline(1, '$'), l:tmpfile)
|
normal! ix
|
||||||
let output = system('terraform fmt -write ' . l:tmpfile)
|
normal! "_x
|
||||||
if v:shell_error == 0
|
silent execute '%!terraform fmt -no-color -'
|
||||||
try | silent undojoin | catch | endtry
|
if v:shell_error != 0
|
||||||
call rename(l:tmpfile, resolve(expand('%')))
|
let output = getline(1, '$')
|
||||||
silent edit!
|
silent undo
|
||||||
let &syntax = &syntax
|
echo join(output, "\n")
|
||||||
else
|
|
||||||
echo output
|
|
||||||
call delete(l:tmpfile)
|
|
||||||
endif
|
endif
|
||||||
call winrestview(l:curw)
|
call winrestview(l:curw)
|
||||||
endfunction
|
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'zig') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! zig#config#ListTypeCommands() abort
|
function! zig#config#ListTypeCommands() abort
|
||||||
return get(g:, 'zig_list_type_commands', {})
|
return get(g:, 'zig_list_type_commands', {})
|
||||||
@@ -41,3 +39,5 @@ endfunction
|
|||||||
function! zig#config#Debug() abort
|
function! zig#config#Debug() abort
|
||||||
return get(g:, 'zig_debug', [])
|
return get(g:, 'zig_debug', [])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'zig') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Adapted from fatih/vim-go: autoload/go/fmt.vim
|
" Adapted from fatih/vim-go: autoload/go/fmt.vim
|
||||||
"
|
"
|
||||||
@@ -168,3 +166,5 @@ function! zig#fmt#ToggleFmtAutoSave() abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" vim: sw=2 ts=2 et
|
" vim: sw=2 ts=2 et
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'zig') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Adapted from fatih/vim-go: autoload/go/list.vim
|
" Adapted from fatih/vim-go: autoload/go/list.vim
|
||||||
"
|
"
|
||||||
@@ -160,3 +158,5 @@ function! zig#list#Type(for) abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" vim: sw=2 ts=2 et
|
" vim: sw=2 ts=2 et
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'zig') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zig') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Adapted from vim-go: autoload/go/util.vim
|
" Adapted from vim-go: autoload/go/util.vim
|
||||||
"
|
"
|
||||||
@@ -392,3 +390,5 @@ function! zig#util#HasDebug(flag)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" vim: sw=2 ts=2 et
|
" vim: sw=2 ts=2 et
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
29
build
29
build
@@ -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=""
|
||||||
|
|
||||||
@@ -127,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() {
|
||||||
@@ -178,6 +182,7 @@ 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
|
dlang:JesseKPhillips/d.vim
|
||||||
dockerfile:ekalinin/Dockerfile.vim
|
dockerfile:ekalinin/Dockerfile.vim
|
||||||
elixir:elixir-lang/vim-elixir
|
elixir:elixir-lang/vim-elixir
|
||||||
@@ -186,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
|
||||||
@@ -194,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
|
||||||
@@ -203,6 +209,7 @@ PACKS="
|
|||||||
haskell:neovimhaskell/haskell-vim
|
haskell:neovimhaskell/haskell-vim
|
||||||
haxe:yaymukund/vim-haxe
|
haxe:yaymukund/vim-haxe
|
||||||
hcl:b4b4r07/vim-hcl
|
hcl:b4b4r07/vim-hcl
|
||||||
|
helm:towolf/vim-helm
|
||||||
hive:zebradil/hive.vim
|
hive:zebradil/hive.vim
|
||||||
html5:othree/html5.vim
|
html5:othree/html5.vim
|
||||||
i3:mboughaba/i3config.vim
|
i3:mboughaba/i3config.vim
|
||||||
@@ -215,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:MaxMEllon/vim-jsx-pretty
|
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
|
||||||
@@ -246,19 +253,18 @@ 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
|
||||||
reason:reasonml-editor/vim-reason-plus
|
reason:reasonml-editor/vim-reason-plus
|
||||||
rego:tsandall/vim-rego
|
|
||||||
rspec:sheerun/rspec.vim
|
rspec:sheerun/rspec.vim
|
||||||
rst:marshallward/vim-restructuredtext
|
rst:marshallward/vim-restructuredtext
|
||||||
ruby:vim-ruby/vim-ruby
|
ruby:vim-ruby/vim-ruby
|
||||||
@@ -270,8 +276,8 @@ PACKS="
|
|||||||
slime:slime-lang/vim-slime-syntax
|
slime:slime-lang/vim-slime-syntax
|
||||||
smt2:bohlender/vim-smt2
|
smt2:bohlender/vim-smt2
|
||||||
solidity:tomlion/vim-solidity
|
solidity:tomlion/vim-solidity
|
||||||
styled-components:styled-components/vim-styled-components#main
|
|
||||||
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
|
||||||
@@ -280,12 +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:ericpruitt/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
|
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
|
||||||
@@ -297,6 +303,7 @@ 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
|
zig:ziglang/zig.vim
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'cryptol') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cryptol') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Compiler: Cryptol version 1.8.19-academic Compiler
|
" Compiler: Cryptol version 1.8.19-academic Compiler
|
||||||
@@ -22,3 +20,5 @@ CompilerSet errorformat& " use the default 'errorformat'
|
|||||||
|
|
||||||
" "%<" means the current file name without extension.
|
" "%<" means the current file name without extension.
|
||||||
CompilerSet makeprg=cryptol\ -o\ %<\ %
|
CompilerSet makeprg=cryptol\ -o\ %<\ %
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'cucumber') != -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -1
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Compiler: Cucumber
|
" Compiler: Cucumber
|
||||||
@@ -31,3 +29,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim:set sw=2 sts=2:
|
" vim:set sw=2 sts=2:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,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 compiler file
|
" Vim compiler file
|
||||||
" Language: eRuby
|
" Language: eRuby
|
||||||
@@ -41,3 +39,5 @@ let &cpo = s:cpo_save
|
|||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
" vim: nowrap sw=2 sts=2 ts=8:
|
" vim: nowrap sw=2 sts=2 ts=8:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
@@ -1,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 compiler plugin
|
" Vim compiler plugin
|
||||||
" Language: JavaScript
|
" Language: JavaScript
|
||||||
@@ -18,3 +16,5 @@ endif
|
|||||||
|
|
||||||
CompilerSet makeprg=eslint\ -f\ compact\ %
|
CompilerSet makeprg=eslint\ -f\ compact\ %
|
||||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m
|
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m
|
||||||
|
|
||||||
|
endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user