mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
61 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50aa05bd72 | ||
|
|
7e2d060f88 | ||
|
|
3a298c9759 | ||
|
|
d9ec600545 | ||
|
|
33f0964d53 | ||
|
|
92cb76e33a | ||
|
|
378dcb3878 | ||
|
|
6f0c50457f | ||
|
|
06548fe617 | ||
|
|
0118088e0a | ||
|
|
17c2b630e1 | ||
|
|
271679272c | ||
|
|
d43d269bed | ||
|
|
4314841aa4 | ||
|
|
5308fab3e9 | ||
|
|
c842cbcb59 | ||
|
|
314621a395 | ||
|
|
ca8818e8ed | ||
|
|
947e6853aa | ||
|
|
05ff14bfda | ||
|
|
9243367ba3 | ||
|
|
1eed30b2af | ||
|
|
be092d6f43 | ||
|
|
fb7cf8a9ab | ||
|
|
19a69cf77d | ||
|
|
4f7a4036eb | ||
|
|
0ff5d451b0 | ||
|
|
49840b1893 | ||
|
|
2dc954d6fa | ||
|
|
2369cd5d22 | ||
|
|
46affb6153 | ||
|
|
a4cc3f64f9 | ||
|
|
2fe310256e | ||
|
|
2e1a980632 | ||
|
|
cecfb5dd10 | ||
|
|
a4a9481d37 | ||
|
|
5e5d127eb8 | ||
|
|
002573265a | ||
|
|
a4b91124a8 | ||
|
|
46040f3ffd | ||
|
|
48254ec7ad | ||
|
|
cd2fded0e0 | ||
|
|
255345bf95 | ||
|
|
3169f80169 | ||
|
|
e9b3bcd5e1 | ||
|
|
d9ee362537 | ||
|
|
57badea2dc | ||
|
|
3baafd5c33 | ||
|
|
b0124dc880 | ||
|
|
99166bd51f | ||
|
|
48b4f233c5 | ||
|
|
556ba05cee | ||
|
|
262960fa22 | ||
|
|
b2640b5b76 | ||
|
|
c30ba66d22 | ||
|
|
4df00e6574 | ||
|
|
48f59577c8 | ||
|
|
96179c95ba | ||
|
|
520389bbfd | ||
|
|
7123e97498 | ||
|
|
63119f09d1 |
12
.github/ISSUE_TEMPLATE/add-language.md
vendored
12
.github/ISSUE_TEMPLATE/add-language.md
vendored
@@ -2,17 +2,23 @@
|
||||
name: Add language
|
||||
about: Add support for new language
|
||||
title: ''
|
||||
labels: ''
|
||||
labels: 'enhancement'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--- vim-polyglot accepts only lightweight, maintained github-hosted vim plugins -->
|
||||
**What is the name of this language in Linguist?**
|
||||
|
||||
<!-- https://github.com/github/linguist/blob/master/lib/linguist/languages.yml -->
|
||||
|
||||
**Link to GitHub repository of Vim plugin**
|
||||
|
||||
**GitHub repository url**
|
||||
|
||||
|
||||
**Is this plugin well maintained?**
|
||||
|
||||
|
||||
|
||||
**Is this plugin lightweight? (no advanced functionality, just indent and syntax support)**
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Add support for language
|
||||
about: ''
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
run: |
|
||||
sudo add-apt-repository ppa:jonathonf/vim -y
|
||||
sudo apt-get update -q
|
||||
sudo apt-get install -y vim
|
||||
sudo apt-get install -y vim expect
|
||||
vim --version
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run Tests
|
||||
|
||||
6
Makefile
6
Makefile
@@ -1,10 +1,10 @@
|
||||
.PHONY: all test dev
|
||||
.PHONY: build test dev
|
||||
|
||||
all:
|
||||
build:
|
||||
@ scripts/build
|
||||
|
||||
test:
|
||||
@ scripts/test
|
||||
|
||||
dev:
|
||||
@ echo "packages.yaml\nheuristics.yaml\nscripts/test\nscripts/build\nscripts/test_extensions.vim" | DEV=1 entr bash -c 'make && make test'
|
||||
@ echo "packages.yaml\nheuristics.yaml\nscripts/test\nscripts/build\ntests/extensions.vim" | DEV=1 entr bash -c 'make && make test'
|
||||
|
||||
42
README.md
42
README.md
@@ -7,14 +7,14 @@ A collection of language packs for Vim.
|
||||
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
||||
|
||||
- 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-->190<!--/Package Count--> packages it consists of.
|
||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->200<!--/Package Count--> packages it consists of.
|
||||
- It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).
|
||||
- Solid syntax and indentation support (other features skipped). Only the best language packs.
|
||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||
- Automatically detect indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth))
|
||||
- Each build is tested by automated vimrunner script on CI. See `spec` directory.
|
||||
|
||||
\*To be completely honest, optimized `ftdetect` script takes around `19ms` to load.
|
||||
\*To be completely honest, optimized `ftdetect` script takes around `20ms` to load.
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -78,8 +78,10 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [automake](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [ave](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [awk](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [basic](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [blade](https://github.com/jwalton512/vim-blade)
|
||||
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
|
||||
- [bzl](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [c/c++](https://github.com/vim-jp/vim-cpp)
|
||||
- [caddyfile](https://github.com/isobit/vim-caddyfile)
|
||||
- [carp](https://github.com/hellerve/carp-vim)
|
||||
@@ -87,6 +89,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [clojure](https://github.com/guns/vim-clojure-static)
|
||||
- [cmake](https://github.com/pboettch/vim-cmake-syntax)
|
||||
- [coffee-script](https://github.com/kchmck/vim-coffee-script)
|
||||
- [cpp-modern](https://github.com/bfrg/vim-cpp-modern)
|
||||
- [cql](https://github.com/elubow/cql-vim)
|
||||
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim)
|
||||
- [crystal](https://github.com/rhysd/vim-crystal)
|
||||
@@ -97,6 +100,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [dhall](https://github.com/vmchale/dhall-vim)
|
||||
- [dlang](https://github.com/JesseKPhillips/d.vim)
|
||||
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim)
|
||||
- [dosini](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [elf](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [elixir](https://github.com/elixir-lang/vim-elixir)
|
||||
- [elm](https://github.com/andys8/vim-elm-syntax)
|
||||
@@ -117,6 +121,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [go](https://github.com/fatih/vim-go)
|
||||
- [gradle](https://github.com/tfnico/vim-gradle)
|
||||
- [graphql](https://github.com/jparise/vim-graphql)
|
||||
- [groovy](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [grub](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [haml](https://github.com/sheerun/vim-haml)
|
||||
- [handlebars](https://github.com/sheerun/vim-mustache-handlebars)
|
||||
@@ -125,11 +130,12 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [haxe](https://github.com/yaymukund/vim-haxe)
|
||||
- [hcl](https://github.com/b4b4r07/vim-hcl)
|
||||
- [helm](https://github.com/towolf/vim-helm)
|
||||
- [help](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [help](https://github.com/neovim/neovim/tree/master/runtime)
|
||||
- [hive](https://github.com/zebradil/hive.vim)
|
||||
- [html5](https://github.com/othree/html5.vim)
|
||||
- [i3](https://github.com/mboughaba/i3config.vim)
|
||||
- [icalendar](https://github.com/chutzpah/icalendar.vim)
|
||||
- [idris2](https://github.com/edwinb/idris2-vim)
|
||||
- [idris](https://github.com/idris-hackers/idris-vim)
|
||||
- [ion](https://github.com/vmchale/ion-vim)
|
||||
- [javascript-sql](https://github.com/statico/vim-javascript-sql)
|
||||
@@ -165,6 +171,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [objc](https://github.com/b4winckler/vim-objc)
|
||||
- [ocaml](https://github.com/rgrinberg/vim-ocaml)
|
||||
- [octave](https://github.com/McSinyx/vim-octave)
|
||||
- [odin](https://github.com/Tetralux/odin.vim)
|
||||
- [opencl](https://github.com/petRUShka/vim-opencl)
|
||||
- [perl](https://github.com/vim-perl/vim-perl)
|
||||
- [pgsql](https://github.com/lifepillar/pgsql.vim)
|
||||
@@ -172,6 +179,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [plantuml](https://github.com/aklt/plantuml-syntax)
|
||||
- [pony](https://github.com/jakwings/vim-pony)
|
||||
- [powershell](https://github.com/PProvost/vim-ps1)
|
||||
- [prolog](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [protobuf](https://github.com/uarun/vim-protobuf)
|
||||
- [pug](https://github.com/digitaltoad/vim-pug)
|
||||
- [puppet](https://github.com/rodjek/vim-puppet)
|
||||
@@ -208,6 +216,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [swift](https://github.com/keith/swift.vim)
|
||||
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc)
|
||||
- [systemd](https://github.com/wgwoods/vim-systemd-syntax)
|
||||
- [tads](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [terraform](https://github.com/hashivim/vim-terraform)
|
||||
- [textile](https://github.com/timcharper/textile.vim)
|
||||
- [thrift](https://github.com/solarnz/thrift.vim)
|
||||
@@ -223,12 +232,13 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim)
|
||||
- [vcl](https://github.com/smerrill/vcl-vim-plugin)
|
||||
- [velocity](https://github.com/lepture/vim-velocity)
|
||||
- [visual-basic](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [vmasm](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [vue](https://github.com/posva/vim-vue)
|
||||
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax)
|
||||
- [xml](https://github.com/amadeus/vim-xml)
|
||||
- [xsl](https://github.com/vim-scripts/XSLT-syntax)
|
||||
- [yaml](https://github.com/stephpy/vim-yaml)
|
||||
- [yaml](https://github.com/vim/vim/tree/df44a27b53586fccfc6a3aedc89061fdd9a515ff/runtime)
|
||||
- [yard](https://github.com/sheerun/vim-yardoc)
|
||||
- [zephir](https://github.com/xwsoul/vim-zephir)
|
||||
- [zig](https://github.com/ziglang/zig.vim)
|
||||
@@ -245,19 +255,33 @@ Please make sure you have `syntax on` in your `.vimrc` (or use something like [s
|
||||
|
||||
Individual language packs can be disabled by setting `g:polyglot_disabled` as follows:
|
||||
|
||||
```viml
|
||||
let g:polyglot_disabled = ['css']
|
||||
```vim
|
||||
let g:polyglot_disabled = ['markdown']
|
||||
```
|
||||
|
||||
The list of available languages to disable is shown above.
|
||||
|
||||
*Please declare this variable before polyglot is loaded (at the top of .vimrc)*
|
||||
|
||||
Please note that disabling a language won't make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are loaded lazily, on demand.
|
||||
If you wish to use filetype detection by Vim Polyglot but you'd like to use your own syntax-highlighting plugin, you can append `.plugin` to disabled entry, like so:
|
||||
|
||||
```vim
|
||||
let g:polyglot_disabled = ['markdown.plugin']
|
||||
```
|
||||
|
||||
Please note that disabling a language won't make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are lazily loaded only when they are really needed.
|
||||
|
||||
Vim Polyglot tries to automatically detect indentation settings (just like vim-sleuth). If this feature is not working for you for some reason, please file an issue and disable it temporarily with:
|
||||
|
||||
```vim
|
||||
let g:polyglot_disabled = ['autoindent']
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Language packs are periodically updated using automated `scripts/build` script.
|
||||
|
||||
Feel free to add your language to `packages.yaml`, and send pull-request. Please don't run `make` and include that in your PR, send just changes to `packages.yaml` and build scripts if really necessary. You can run `make test` to run rough tests.
|
||||
Feel free to add your language to `packages.yaml` + `heuristics.yaml`, and send pull-request. You can run `make test` to run rough tests. And `make dev` for easy development.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
5
after/ftplugin/idris2.vim
Normal file
5
after/ftplugin/idris2.vim
Normal file
@@ -0,0 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
|
||||
|
||||
setlocal iskeyword+='
|
||||
|
||||
endif
|
||||
16
after/ftplugin/javascript-1.vim
Normal file
16
after/ftplugin/javascript-1.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: JavaScript
|
||||
" Maintainer: vim-javascript community
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
|
||||
setlocal iskeyword+=$ suffixesadd+=.js
|
||||
|
||||
if exists('b:undo_ftplugin')
|
||||
let b:undo_ftplugin .= ' | setlocal iskeyword< suffixesadd<'
|
||||
else
|
||||
let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<'
|
||||
endif
|
||||
|
||||
endif
|
||||
9
after/ftplugin/javascript-2.vim
Normal file
9
after/ftplugin/javascript-2.vim
Normal file
@@ -0,0 +1,9 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
if get(g:, 'vim_jsx_pretty_disable_js', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
source <sfile>:h/jsx.vim
|
||||
|
||||
endif
|
||||
@@ -1,51 +1,3 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: JavaScript
|
||||
" Maintainer: vim-javascript community
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
|
||||
setlocal iskeyword+=$ suffixesadd+=.js
|
||||
|
||||
if exists('b:undo_ftplugin')
|
||||
let b:undo_ftplugin .= ' | setlocal iskeyword< suffixesadd<'
|
||||
else
|
||||
let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<'
|
||||
endif
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim ftplugin file
|
||||
"
|
||||
" Language: javascript.jsx
|
||||
" Maintainer: MaxMEllon <maxmellon1994@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" modified from html.vim
|
||||
" For matchit plugin
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words = '(:),\[:\],{:},<:>,' .
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
|
||||
endif
|
||||
|
||||
" For andymass/vim-matchup plugin
|
||||
if exists("loaded_matchup")
|
||||
setlocal matchpairs=(:),{:},[:],<:>
|
||||
let b:match_words = '<\@<=\([^/][^ \t>]*\)\g{hlend}[^>]*\%(/\@<!>\|$\):<\@<=/\1>'
|
||||
let b:match_skip = 's:comment\|string'
|
||||
endif
|
||||
|
||||
let b:jsx_pretty_old_cms = &l:commentstring
|
||||
|
||||
augroup jsx_comment
|
||||
autocmd! CursorMoved <buffer>
|
||||
autocmd CursorMoved <buffer> call jsx_pretty#comment#update_commentstring(b:jsx_pretty_old_cms)
|
||||
augroup end
|
||||
|
||||
setlocal suffixesadd+=.jsx
|
||||
|
||||
endif
|
||||
" Polyglot metafile
|
||||
source <sfile>:h/javascript-1.vim
|
||||
source <sfile>:h/javascript-2.vim
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
source <sfile>:h/javascript.vim
|
||||
source <sfile>:h/jsx.vim
|
||||
|
||||
endif
|
||||
|
||||
35
after/ftplugin/jsx.vim
Normal file
35
after/ftplugin/jsx.vim
Normal file
@@ -0,0 +1,35 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim ftplugin file
|
||||
"
|
||||
" Language: javascript.jsx
|
||||
" Maintainer: MaxMEllon <maxmellon1994@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" modified from html.vim
|
||||
" For matchit plugin
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words = '(:),\[:\],{:},<:>,' .
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
|
||||
endif
|
||||
|
||||
" For andymass/vim-matchup plugin
|
||||
if exists("loaded_matchup")
|
||||
setlocal matchpairs=(:),{:},[:],<:>
|
||||
let b:match_words = '<\@<=\([^/][^ \t>]*\)\g{hlend}[^>]*\%(/\@<!>\|$\):<\@<=/\1>'
|
||||
let b:match_skip = 's:comment\|string'
|
||||
endif
|
||||
|
||||
let b:jsx_pretty_old_cms = &l:commentstring
|
||||
|
||||
augroup jsx_comment
|
||||
autocmd! CursorMoved <buffer>
|
||||
autocmd CursorMoved <buffer> call jsx_pretty#comment#update_commentstring(b:jsx_pretty_old_cms)
|
||||
augroup end
|
||||
|
||||
setlocal suffixesadd+=.jsx
|
||||
|
||||
endif
|
||||
@@ -1,11 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: Yaml
|
||||
" Author: Henrique Barcelos
|
||||
" Date: 2014-10-08
|
||||
" URL: https://github.com/hjpbarcelos
|
||||
setlocal autoindent sw=2 ts=2 expandtab
|
||||
" vim:set sw=2:
|
||||
|
||||
endif
|
||||
@@ -1,80 +1,9 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
|
||||
"
|
||||
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
" of this software and associated documentation files (the "Software"), to
|
||||
" deal in the Software without restriction, including without limitation the
|
||||
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
" sell copies of the Software, and to permit persons to whom the Software is
|
||||
" furnished to do so, subject to the following conditions:
|
||||
"
|
||||
" The above copyright notice and this permission notice shall be included in
|
||||
" all copies or substantial portions of the Software.
|
||||
"
|
||||
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
" IN THE SOFTWARE.
|
||||
"
|
||||
" Language: GraphQL
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
|
||||
runtime! indent/graphql.vim
|
||||
|
||||
" Don't redefine our function and also require the standard Javascript indent
|
||||
" function to exist.
|
||||
if exists('*GetJavascriptGraphQLIndent') || !exists('*GetJavascriptIndent')
|
||||
if get(g:, 'vim_jsx_pretty_disable_js', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
" Set the indentexpr with our own version that will call GetGraphQLIndent when
|
||||
" we're inside of a GraphQL string and otherwise defer to GetJavascriptIndent.
|
||||
setlocal indentexpr=GetJavascriptGraphQLIndent()
|
||||
|
||||
function GetJavascriptGraphQLIndent()
|
||||
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val,'name')")
|
||||
if !empty(l:stack) && l:stack[0] ==# 'graphqlTemplateString'
|
||||
return GetGraphQLIndent()
|
||||
endif
|
||||
|
||||
return GetJavascriptIndent()
|
||||
endfunction
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim indent file
|
||||
"
|
||||
" Language: javascript.jsx
|
||||
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
if exists('b:did_indent')
|
||||
let s:did_indent = b:did_indent
|
||||
unlet b:did_indent
|
||||
endif
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists('s:did_indent')
|
||||
let b:did_indent = s:did_indent
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetJsxIndent()
|
||||
setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/
|
||||
|
||||
function! GetJsxIndent()
|
||||
return jsx_pretty#indent#get(function('GetJavascriptIndent'))
|
||||
endfunction
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
source <sfile>:h/jsx.vim
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
source <sfile>:h/javascript.vim
|
||||
source <sfile>:h/jsx.vim
|
||||
|
||||
endif
|
||||
|
||||
33
after/indent/jsx.vim
Normal file
33
after/indent/jsx.vim
Normal file
@@ -0,0 +1,33 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim indent file
|
||||
"
|
||||
" Language: javascript.jsx
|
||||
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
if exists('b:did_indent')
|
||||
let s:did_indent = b:did_indent
|
||||
unlet b:did_indent
|
||||
endif
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists('s:did_indent')
|
||||
let b:did_indent = s:did_indent
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetJsxIndent()
|
||||
setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/
|
||||
|
||||
function! GetJsxIndent()
|
||||
return jsx_pretty#indent#get(function('GetJavascriptIndent'))
|
||||
endfunction
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
endif
|
||||
@@ -1,47 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||
|
||||
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
|
||||
"
|
||||
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
" of this software and associated documentation files (the "Software"), to
|
||||
" deal in the Software without restriction, including without limitation the
|
||||
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
" sell copies of the Software, and to permit persons to whom the Software is
|
||||
" furnished to do so, subject to the following conditions:
|
||||
"
|
||||
" The above copyright notice and this permission notice shall be included in
|
||||
" all copies or substantial portions of the Software.
|
||||
"
|
||||
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
" IN THE SOFTWARE.
|
||||
"
|
||||
" Language: GraphQL
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
|
||||
runtime! indent/graphql.vim
|
||||
|
||||
" Don't redefine our function and also require the standard Typescript indent
|
||||
" function to exist.
|
||||
if exists('*GetTypescriptGraphQLIndent') || !exists('*GetTypescriptIndent')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Set the indentexpr with our own version that will call GetGraphQLIndent when
|
||||
" we're inside of a GraphQL string and otherwise defer to GetTypescriptIndent.
|
||||
setlocal indentexpr=GetTypescriptGraphQLIndent()
|
||||
|
||||
function GetTypescriptGraphQLIndent()
|
||||
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val,'name')")
|
||||
if !empty(l:stack) && l:stack[0] ==# 'graphqlTemplateString'
|
||||
return GetGraphQLIndent()
|
||||
endif
|
||||
|
||||
return GetTypescriptIndent()
|
||||
endfunction
|
||||
|
||||
endif
|
||||
74
after/syntax/c.vim
Normal file
74
after/syntax/c.vim
Normal file
@@ -0,0 +1,74 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') == -1
|
||||
|
||||
" ==============================================================================
|
||||
" Vim syntax file
|
||||
" Language: C Additions
|
||||
" Original Author: Mikhail Wolfson <mywolfson@gmail.com>
|
||||
" http://www.vim.org/scripts/script.php?script_id=3064
|
||||
" Maintainer: bfrg <bfrg@users.noreply.github.com>
|
||||
" Website: https://github.com/bfrg/vim-cpp-modern
|
||||
" Last Change: Mar 14, 2020
|
||||
"
|
||||
" Extended C syntax highlighting including highlighting of user-defined
|
||||
" functions.
|
||||
"
|
||||
" This syntax file is based on:
|
||||
" https://github.com/octol/vim-cpp-enhanced-highlight
|
||||
" ==============================================================================
|
||||
|
||||
|
||||
" Highlight some additional keywords in the comments
|
||||
syn keyword cTodo contained BUG NOTE
|
||||
|
||||
|
||||
" Highlight function names
|
||||
if !get(g:, 'cpp_no_function_highlight', 0)
|
||||
syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cParen,cCppParen
|
||||
hi def link cUserFunction Function
|
||||
endif
|
||||
|
||||
|
||||
" Common ANSI-standard Names
|
||||
syn keyword cAnsiName
|
||||
\ PRId8 PRIi16 PRIo32 PRIu64 PRId16 PRIi32 PRIo64 PRIuLEAST8 PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16 PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32 PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64 PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8 PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16 PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32 PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64 PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR PRIdFAST64 PRIiMAX PRIoPTR PRIx8 PRIdMAX PRIiPTR PRIu8 PRIx16 PRIdPTR PRIo8 PRIu16 PRIx32 PRIi8 PRIo16 PRIu32 PRIx64 PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32 PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64 PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8 PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16 PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32 PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64 PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8 PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16 PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32 PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64 PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8 PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16 PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32 PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64 PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8 PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16 PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32 PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64 PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR PRIXMAX SCNiFAST8 SCNuLEAST8 PRIXPTR SCNiFAST16 SCNuLEAST16 STDC CX_LIMITED_RANGE STDC FENV_ACCESS STDC FP_CONTRACT
|
||||
\ errno environ and bitor not_eq xor and_eq compl or xor_eq bitand not or_eq
|
||||
|
||||
" Booleans
|
||||
syn keyword cBoolean true false TRUE FALSE
|
||||
|
||||
|
||||
" Default highlighting
|
||||
hi def link cBoolean Boolean
|
||||
hi def link cAnsiName Identifier
|
||||
|
||||
|
||||
" Highlight all standard C keywords as Statement
|
||||
" This is very similar to what other IDEs and editors do
|
||||
if get(g:, 'cpp_simple_highlight', 0)
|
||||
hi link cStorageClass Statement
|
||||
hi link cStructure Statement
|
||||
hi link cLabel Statement
|
||||
endif
|
||||
|
||||
|
||||
" Operators
|
||||
" syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
|
||||
" syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
|
||||
" syn match cOperator "[.!~*&%<>^|=,+-]"
|
||||
" syn match cOperator "/[^/*=]"me=e-1
|
||||
" syn match cOperator "/$"
|
||||
" syn match cOperator "&&\|||"
|
||||
" syn match cOperator "[][]"
|
||||
|
||||
" Preprocessor
|
||||
" syn keyword cDefined defined contained containedin=cDefine
|
||||
" hi def link cDefined cDefine
|
||||
|
||||
" Delimiters
|
||||
" syn match cDelimiter "[();\\]"
|
||||
" hi def link cDelimiter Delimiter
|
||||
" foldmethod=syntax fix, courtesy of Ivan Freitas
|
||||
" syn match cBraces display "[{}]"
|
||||
" hi def link cBraces Delimiter
|
||||
|
||||
endif
|
||||
450
after/syntax/cpp.vim
Normal file
450
after/syntax/cpp.vim
Normal file
@@ -0,0 +1,450 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') == -1
|
||||
|
||||
" ==============================================================================
|
||||
" Vim syntax file
|
||||
" Language: C++ (Standard library including C++11/14/17/20)
|
||||
" Original Author: Jon Haggblad <https://github.com/octol>
|
||||
" Maintainer: bfrg <bfrg@users.noreply.github.com>
|
||||
" Website: https://github.com/bfrg/vim-cpp-modern
|
||||
" Last Change: Jun 23, 2020
|
||||
"
|
||||
" This syntax file is based on:
|
||||
" https://github.com/octol/vim-cpp-enhanced-highlight
|
||||
" http://www.vim.org/scripts/script.php?script_id=4293
|
||||
" ==============================================================================
|
||||
|
||||
" Standard library {{{1
|
||||
syntax keyword cppSTLconstant
|
||||
\ MB_CUR_MAX MB_LEN_MAX WCHAR_MAX WCHAR_MIN WEOF __STDC_UTF_16__ __STDC_UTF_32__
|
||||
|
||||
syntax keyword cppSTLconstant
|
||||
\ badbit digits digits10 eofbit failbit goodbit has_denorm has_denorm_loss has_infinity has_quiet_NaN has_signaling_NaN is_bounded is_exact is_iec559 is_integer is_modulo is_signed is_specialized max_exponent max_exponent10 min_exponent min_exponent10 nothrow npos radix round_style tinyness_before traps
|
||||
|
||||
syntax keyword cppSTLVariable
|
||||
\ cerr cin clog cout wcerr wcin wclog wcout
|
||||
|
||||
syntax keyword cppSTLexception
|
||||
\ bad_alloc bad_exception bad_typeid bad_cast domain_error exception failure invalid_argument length_error logic_error out_of_range overflow_error range_error runtime_error underflow_error
|
||||
|
||||
syntax keyword cppSTLfunctional
|
||||
\ binary_function binary_negate bit_and bit_not bit_or divides equal_to greater greater_equal less less_equal logical_and logical_not logical_or minus modulus multiplies negate not_equal_to plus unary_function unary_negate
|
||||
|
||||
syntax keyword cppSTLios
|
||||
\ endl ends flush resetiosflags setbase setfill setiosflags setprecision setw ws
|
||||
|
||||
syntax keyword cppSTLios
|
||||
\ boolalpha dec defaultfloat fixed hex hexfloat internal left noboolalpha noshowbase noshowpoint noshowpos noskipws nounitbuf nouppercase oct right scientific showbase showpoint showpos skipws unitbuf uppercase
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ fmtflags iostate openmode
|
||||
|
||||
" Some of these can be highlighted as both cppSTLios and cppSTLconstant
|
||||
" syntax keyword cppSTLconstant
|
||||
" \ adjustfield app ate basefield binary floatfield in out trunc boolalpha dec fixed hex internal left oct right scientific showbase showpoint showpos skipws unitbuf uppercase
|
||||
|
||||
syntax keyword cppSTLiterator
|
||||
\ back_insert_iterator bidirectional_iterator const_iterator const_reverse_iterator forward_iterator front_insert_iterator input_iterator insert_iterator istream_iterator istreambuf_iterator iterator ostream_iterator ostreambuf_iterator output_iterator random_access_iterator raw_storage_iterator reverse_bidirectional_iterator reverse_iterator
|
||||
|
||||
syntax keyword cppSTLiterator_tag
|
||||
\ bidirectional_iterator_tag forward_iterator_tag input_iterator_tag output_iterator_tag random_access_iterator_tag
|
||||
|
||||
syntax keyword cppSTLnamespace
|
||||
\ experimental rel_ops std
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ Init allocator auto_ptr basic_filebuf basic_fstream basic_ifstream basic_ios basic_iostream basic_istream basic_istringstream basic_ofstream basic_ostream basic_ostringstream basic_streambuf basic_string basic_stringbuf basic_stringstream binary_compose binder1st binder2nd bitset char_traits char_type const_mem_fun1_t const_mem_fun_ref1_t const_mem_fun_ref_t const_mem_fun_t const_pointer const_reference container_type deque difference_type div_t double_t event_callback filebuf first_type float_denorm_style float_round_style float_t fpos fstream gslice_array ifstream imaxdiv_t indirect_array int_type ios ios_base iostream istream istringstream istrstream iterator_category iterator_traits key_compare key_type ldiv_t list lldiv_t map mapped_type mask_array mbstate_t mem_fun1_t mem_fun_ref1_t mem_fun_ref_t mem_fun_t multimap multiset nothrow_t numeric_limits off_type ofstream ostream ostringstream ostrstream pair pointer pointer_to_binary_function pointer_to_unary_function pos_type priority_queue queue reference second_type seekdir sequence_buffer set sig_atomic_t size_type slice_array stack state_type stream streambuf streamoff streampos streamsize string stringbuf stringstream strstream strstreambuf temporary_buffer test_type time_t tm traits_type type_info u16string u32string unary_compose unary_negate valarray value_compare value_type vector wctrans_t wctype_t wfilebuf wfstream wifstream wint_t wios wiostream wistream wistringstream wofstream wostream wostringstream wstreambuf wstreampos wstring wstringbuf wstringstream
|
||||
|
||||
" locale
|
||||
syntax keyword cppSTLtype
|
||||
\ codecvt codecvt_base codecvt_byname collate collate_byname ctype ctype_base ctype_byname locale messages messages_base messages_byname money_base money_get money_put moneypunct moneypunct_byname num_get num_put numpunct numpunct_byname time_base time_get time_get_byname time_put time_put_byname
|
||||
|
||||
" template functions that are called with template parameters, like
|
||||
" std::use_facet<std::moneypunct<char, true>>(loc).curr_symbol()
|
||||
syntax keyword cppSTLfunction use_facet has_facet
|
||||
|
||||
" std::get is a template function, so when called as std::get<N>(t), we want it
|
||||
" to be highlighted as a function
|
||||
syntax keyword cppSTLfunction get
|
||||
|
||||
|
||||
" C++11 extensions {{{1
|
||||
if !exists('cpp_no_cpp11')
|
||||
syntax keyword cppType char16_t char32_t
|
||||
syntax keyword cppSTLconstant nullptr
|
||||
|
||||
" std containers
|
||||
syntax keyword cppSTLtype array
|
||||
|
||||
" atomic
|
||||
syntax keyword cppSTLconstant ATOMIC_FLAG_INIT
|
||||
syntax keyword cppSTLenum memory_order
|
||||
syntax keyword cppSTLtype
|
||||
\ atomic atomic_bool atomic_char atomic_char16_t atomic_char32_t atomic_flag atomic_int atomic_int_fast16_t atomic_int_fast32_t atomic_int_fast64_t atomic_int_fast8_t atomic_int_least16_t atomic_int_least32_t atomic_int_least64_t atomic_int_least8_t atomic_intmax_t atomic_intptr_t atomic_llong atomic_long atomic_ptrdiff_t atomic_schar atomic_short atomic_size_t atomic_uchar atomic_uint atomic_uint_fast16_t atomic_uint_fast32_t atomic_uint_fast64_t atomic_uint_fast8_t atomic_uint_least16_t atomic_uint_least32_t atomic_uint_least64_t atomic_uint_least8_t atomic_uintmax_t atomic_uintptr_t atomic_ullong atomic_ulong atomic_ushort atomic_wchar_t
|
||||
|
||||
" chrono
|
||||
syntax keyword cppSTLnamespace chrono
|
||||
syntax keyword cppSTLcast duration_cast time_point_cast
|
||||
syntax keyword cppSTLtype
|
||||
\ duration duration_values high_resolution_clock hours microseconds milliseconds minutes nanoseconds seconds steady_clock system_clock time_point treat_as_floating_point
|
||||
|
||||
" condition_variable
|
||||
syntax keyword cppSTLtype condition_variable
|
||||
|
||||
" cstddef
|
||||
syntax keyword cppSTLtype nullptr_t max_align_t
|
||||
|
||||
" exception
|
||||
syntax keyword cppSTLtype exception_ptr nested_exception
|
||||
|
||||
" functional
|
||||
syntax keyword cppSTLexception bad_function_call
|
||||
syntax keyword cppSTLfunctional function
|
||||
syntax keyword cppSTLfunction mem_fn
|
||||
syntax keyword cppSTLconstant _1 _2 _3 _4 _5 _6 _7 _8 _9
|
||||
syntax keyword cppSTLtype
|
||||
\ hash is_bind_expression is_placeholder reference_wrapper
|
||||
|
||||
" iterator
|
||||
syntax keyword cppSTLiterator move_iterator
|
||||
|
||||
" forward_list
|
||||
syntax keyword cppSTLtype forward_list
|
||||
|
||||
" future
|
||||
syntax keyword cppSTLtype future packaged_task promise shared_future
|
||||
syntax keyword cppSTLenum future_status future_errc launch
|
||||
syntax keyword cppSTLexception future_error
|
||||
|
||||
" initializer_list
|
||||
syntax keyword cppSTLtype initializer_list
|
||||
|
||||
" ios
|
||||
syntax keyword cppSTLenum io_errc
|
||||
" syntax keyword cppSTLtype is_error_code_enum
|
||||
|
||||
" limits
|
||||
syntax keyword cppSTLconstant max_digits10
|
||||
|
||||
" locale
|
||||
syntax keyword cppSTLfunction isblank
|
||||
syntax keyword cppSTLtype
|
||||
\ codecvt_mode codecvt_utf16 codecvt_utf8 codecvt_utf8_utf16 wbuffer_convert wstring_convert
|
||||
|
||||
" memory
|
||||
syntax keyword cppSTLconstant allocator_arg
|
||||
syntax keyword cppSTLexception bad_weak_ptr
|
||||
syntax keyword cppSTLfunction allocate_shared make_shared
|
||||
syntax keyword cppSTLfunction
|
||||
\ const_pointer_cast dynamic_pointer_cast static_pointer_cast
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ allocator_arg_t allocator_traits allocator_type default_delete enable_shared_from_this is_always_equal owner_less pointer_safety pointer_traits propagate_on_container_copy_assignment propagate_on_container_move_assignment propagate_on_container_swap rebind_alloc rebind_traits shared_ptr unique_ptr uses_allocator void_pointer const_void_pointer weak_ptr
|
||||
|
||||
" mutex
|
||||
syntax keyword cppSTLenum cv_status
|
||||
syntax keyword cppSTLconstant defer_lock try_to_lock adopt_lock
|
||||
syntax keyword cppSTLtype
|
||||
\ adopt_lock_t condition_variable_any defer_lock_t lock_guard mutex once_flag recursive_mutex recursive_timed_mutex timed_mutex try_to_lock_t unique_lock
|
||||
|
||||
" new
|
||||
syntax keyword cppSTLexception bad_array_new_length
|
||||
|
||||
" numerics, cmath
|
||||
syntax keyword cppSTLconstant
|
||||
\ FLT_EVAL_METHOD FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO HUGE_VALF HUGE_VALL INFINITY MATH_ERREXCEPT MATH_ERRNO NAN math_errhandling
|
||||
|
||||
" random
|
||||
syntax keyword cppSTLfunction generate_canonical
|
||||
syntax keyword cppSTLtype
|
||||
\ bernoulli_distribution binomial_distribution cauchy_distribution chi_squared_distribution default_random_engine discard_block_engine discrete_distribution exponential_distribution extreme_value_distribution fisher_f_distribution gamma_distribution geometric_distribution independent_bits_engine knuth_b linear_congruential_engine lognormal_distribution mersenne_twister_engine minstd_rand minstd_rand0 mt19937 mt19937_64 negative_binomial_distribution normal_distribution piecewise_constant_distribution piecewise_linear_distribution poisson_distribution random_device ranlux24 ranlux24_base ranlux48 ranlux48_base seed_seq shuffle_order_engine student_t_distribution subtract_with_carry_engine uniform_int_distribution uniform_real_distribution weibull_distribution
|
||||
|
||||
" ratio
|
||||
syntax keyword cppSTLtype
|
||||
\ atto centi deca deci exa femto giga hecto kilo mega micro milli nano peta pico ratio ratio_add ratio_divide ratio_equal ratio_greater ratio_greater_equal ratio_less ratio_less_equal ratio_multiply ratio_not_equal ratio_subtract tera yocto yotta zepto zetta
|
||||
|
||||
" regex
|
||||
syntax keyword cppSTLiterator regex_iterator regex_token_iterator
|
||||
syntax keyword cppSTLexception regex_error
|
||||
syntax keyword cppSTLtype
|
||||
\ basic_regex match_results regex_traits sub_match syntax_option_type match_flag_type error_type
|
||||
|
||||
" scoped_allocator
|
||||
syntax keyword cppSTLtype
|
||||
\ scoped_allocator_adaptor outer_allocator_type inner_allocator_type
|
||||
|
||||
" system_error
|
||||
syntax keyword cppSTLenum errc
|
||||
syntax keyword cppSTLexception system_error
|
||||
syntax keyword cppSTLtype
|
||||
\ error_code error_condition error_category is_error_code_enum is_error_condition_enum
|
||||
|
||||
" thread
|
||||
syntax keyword cppSTLnamespace this_thread
|
||||
syntax keyword cppSTLtype thread
|
||||
|
||||
" tuple
|
||||
syntax keyword cppSTLtype tuple tuple_size tuple_element
|
||||
syntax keyword cppSTLfunction forward_as_tuple make_tuple tie tuple_cat
|
||||
" Note: ignore is also a function
|
||||
" syntax keyword cppSTLVariable ignore
|
||||
|
||||
" typeindex
|
||||
syntax keyword cppSTLtype type_index
|
||||
|
||||
" type_traits
|
||||
syntax keyword cppSTLtype
|
||||
\ add_const add_cv add_lvalue_reference add_pointer add_rvalue_reference add_volatile aligned_storage aligned_union alignment_of common_type conditional decay enable_if extent false_type has_virtual_destructor integral_constant is_abstract is_arithmetic is_array is_assignable is_base_of is_class is_compound is_const is_constructible is_convertible is_copy_assignable is_copy_constructible is_default_constructible is_destructible is_empty is_enum is_floating_point is_function is_fundamental is_integral is_literal_type is_lvalue_reference is_member_function_pointer is_member_object_pointer is_member_pointer is_move_assignable is_move_constructible is_nothrow_assignable is_nothrow_constructible is_nothrow_copy_assignable is_nothrow_copy_constructible is_nothrow_default_constructible is_nothrow_destructible is_nothrow_move_assignable is_nothrow_move_constructible is_object is_pod is_pointer is_polymorphic is_reference is_rvalue_reference is_same is_scalar is_signed is_standard_layout is_trivial is_trivially_assignable is_trivially_constructible is_trivially_copy_assignable is_trivially_copy_constructible is_trivially_copyable is_trivially_default_constructible is_trivially_destructible is_trivially_move_assignable is_trivially_move_constructible is_union is_unsigned is_void is_volatile make_signed make_unsigned rank remove_all_extents remove_const remove_cv remove_extent remove_pointer remove_reference remove_volatile result_of true_type underlying_type
|
||||
|
||||
" unordered_map, unordered_set, unordered_multimap, unordered_multiset
|
||||
syntax keyword cppSTLiterator const_local_iterator local_iterator
|
||||
syntax keyword cppSTLtype
|
||||
\ hasher key_equal unordered_map unordered_multimap unordered_multiset unordered_set
|
||||
|
||||
" utility
|
||||
syntax keyword cppSTLtype piecewise_construct_t
|
||||
syntax keyword cppSTLconstant piecewise_construct
|
||||
syntax keyword cppSTLfunction declval forward move move_if_noexcept
|
||||
endif
|
||||
|
||||
|
||||
" C++14 extensions {{{1
|
||||
if !exists('cpp_no_cpp14')
|
||||
" chrono
|
||||
syntax keyword cppSTLnamespace literals chrono_literals
|
||||
|
||||
" memory
|
||||
syntax keyword cppSTLfunction make_unique
|
||||
|
||||
" utility
|
||||
syntax keyword cppSTLtype
|
||||
\ index_sequence index_sequence_for integer_sequence make_index_sequence make_integer_sequence
|
||||
|
||||
" shared_mutex
|
||||
syntax keyword cppSTLtype shared_lock shared_timed_mutex
|
||||
|
||||
" string
|
||||
syntax keyword cppSTLnamespace string_literals
|
||||
|
||||
" tuple
|
||||
syntax keyword cppSTLtype tuple_element_t
|
||||
|
||||
" type_traits
|
||||
syntax keyword cppSTLtype
|
||||
\ add_const_t add_cv_t add_lvalue_reference_t add_pointer_t add_rvalue_reference_t add_volatile_t aligned_storage_t aligned_union_t common_type_t conditional_t decay_t enable_if_t is_null_pointer make_signed_t make_unsigned_t remove_all_extents_t remove_const_t remove_cv_t remove_extent_t remove_pointer_t remove_reference_t remove_volatile_t result_of_t underlying_type_t
|
||||
endif
|
||||
|
||||
|
||||
" C++17 extensions {{{1
|
||||
if !exists('cpp_no_cpp17')
|
||||
" any
|
||||
syntax keyword cppSTLtype any
|
||||
syntax keyword cppSTLexception bad_any_cast
|
||||
syntax keyword cppSTLcast any_cast
|
||||
|
||||
" atomic
|
||||
syntax keyword cppSTLconstant is_always_lock_free
|
||||
|
||||
" chrono
|
||||
syntax keyword cppSTLbool treat_as_floating_point_v
|
||||
|
||||
" execution
|
||||
syntax keyword cppSTLnamespace execution
|
||||
syntax keyword cppSTLconstant seq par par_unseq
|
||||
syntax keyword cppSTLbool is_execution_policy_v
|
||||
syntax keyword cppSTLtype
|
||||
\ is_execution_policy parallel_policy parallel_unsequenced_policy sequenced_policy
|
||||
|
||||
" filesystem
|
||||
syntax keyword cppSTLnamespace filesystem
|
||||
syntax keyword cppSTLexception filesystem_error
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ directory_entry directory_iterator file_status file_time_type path recursive_directory_iterator space_info
|
||||
|
||||
syntax keyword cppSTLenum
|
||||
\ copy_options directory_options file_type perm_options perms
|
||||
|
||||
" Note: There is std::filesystem::path::format and std::format() in <format>
|
||||
syntax match cppSTLenum "\<format\>(\@!"
|
||||
|
||||
syntax keyword cppSTLconstant
|
||||
\ copy_symlinks auto_format create_hard_links create_symlinks directories_only follow_directory_symlink generic_format group_all group_exec group_read group_write native_format others_all others_exec others_read others_write overwrite_existing owner_all owner_exec owner_read owner_write preferred_separator recursive set_gid set_uid skip_existing skip_permission_denied skip_symlinks sticky_bit update_existing
|
||||
|
||||
" Note: these keywords are very likely to coincide with user-defined variables
|
||||
" syntax keyword cppSTLconstant
|
||||
" \ all mask unknown replace add remove nofollow none not_found regular directory symlink block character fifo socket unknown
|
||||
|
||||
" Note: these are also functions
|
||||
" syntax keyword cppSTLconstant capacity free available
|
||||
|
||||
" functional
|
||||
syntax keyword cppSTLbool is_bind_expression_v is_placeholder_v
|
||||
syntax keyword cppSTLtype
|
||||
\ default_order default_order_t default_searcher boyer_moore_searcher boyer_moore_horspool_searcher
|
||||
|
||||
" memory
|
||||
syntax keyword cppSTLfunction reinterpret_pointer_cast
|
||||
syntax keyword cppSTLconstant uses_allocator_v
|
||||
|
||||
" memory_resource
|
||||
syntax keyword cppSTLtype
|
||||
\ memory_resource monotonic_buffer_resource polymorphic_allocator pool_options synchronized_pool_resource unsynchronized_pool_resource
|
||||
|
||||
" mutex
|
||||
syntax keyword cppSTLtype scoped_lock
|
||||
|
||||
" new
|
||||
syntax keyword cppSTLconstant
|
||||
\ hardware_destructive_interference_size hardware_constructive_interference_size
|
||||
|
||||
" optional
|
||||
syntax keyword cppSTLtype optional nullopt_t
|
||||
syntax keyword cppSTLexception bad_optional_access
|
||||
syntax keyword cppSTLconstant nullopt
|
||||
syntax keyword cppSTLfunction make_optional
|
||||
|
||||
" shared_mutex
|
||||
syntax keyword cppSTLtype shared_mutex
|
||||
|
||||
" string_view
|
||||
syntax keyword cppSTLtype
|
||||
\ basic_string_view string_view u16string_view u32string_view wstring_view
|
||||
|
||||
" system_error
|
||||
syntax keyword cppSTLbool is_error_code_enum_v is_error_condition_enum_v
|
||||
|
||||
" tuple
|
||||
syntax keyword cppSTLconstant tuple_size_v
|
||||
syntax keyword cppSTLfunction make_from_tuple
|
||||
|
||||
" type_traits
|
||||
syntax keyword cppSTLconstant alignment_of_v rank_v extent_v
|
||||
syntax keyword cppSTLbool
|
||||
\ conjunction_v disjunction_v has_unique_object_representations_v has_virtual_destructor_v is_abstract_v is_aggregate_v is_arithmetic_v is_array_v is_assignable_v is_base_of_v is_callable_v is_class_v is_compound_v is_const_v is_constructible_v is_convertible_v is_copy_assignable_v is_copy_constructible_v is_default_constructible_v is_destructible_v is_empty_v is_enum_v is_floating_point_v is_function_v is_fundamental_v is_integral_v is_invocable_r_v is_invocable_v is_literal_type_v is_lvalue_reference_v is_member_function_pointer_v is_member_object_pointer_v is_member_pointer_v is_move_assignable_v is_move_constructible_v is_nothrow_assignable_v is_nothrow_constructible_v is_nothrow_copy_assignable_v is_nothrow_copy_constructible_v is_nothrow_default_constructible_v is_nothrow_destructible_v is_nothrow_invocable_r_v is_nothrow_invocable_v is_nothrow_move_assignable_v is_nothrow_move_constructible_v is_nothrow_swappable_v is_nothrow_swappable_with_v is_nowthrow_callable_v is_null_pointer_v is_object_v is_pod_v is_pointer_v is_polymorphic_v is_reference_v is_rvalue_reference_v is_same_v is_scalar_v is_signed_v is_standard_layout_v is_swappable_v is_swappable_with_v is_trivial_v is_trivially_assignable_v is_trivially_constructible_v is_trivially_copy_assignable_v is_trivially_copy_constructible_v is_trivially_copyable_v is_trivially_default_constructible_v is_trivially_destructible_v is_trivially_move_assignable_v is_trivially_move_constructible_v is_union_v is_unsigned_v is_void_v is_volatile_v negation_v
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ bool_constant conjunction disjunction has_unique_object_representations invoke_result invoke_result_t is_aggregate is_callable is_invocable is_invocable_r is_nothrow_invocable is_nothrow_invocable_r is_nothrow_swappable is_nothrow_swappable_with is_nowthrow_callable is_swappable is_swappable_with negation void_t
|
||||
|
||||
" unordered_map, unordered_set, unordered_multimap, unordered_multiset
|
||||
syntax keyword cppSTLtype node_type insert_return_type
|
||||
|
||||
" utility
|
||||
syntax keyword cppSTLtype
|
||||
\ in_place_tag in_place_t in_place_type_t in_place_index_t
|
||||
|
||||
" variant
|
||||
syntax keyword cppSTLconstant variant_npos variant_size_v
|
||||
syntax keyword cppSTLexception bad_variant_access
|
||||
syntax keyword cppSTLtype
|
||||
\ monostate variant variant_size variant_alternative variant_alternative_t
|
||||
endif
|
||||
|
||||
|
||||
" C++20 extensions {{{1
|
||||
if !exists('cpp_no_cpp20')
|
||||
syntax keyword cppType char8_t
|
||||
syntax keyword cppOperator co_await
|
||||
syntax keyword cppStatement consteval constinit concept requires co_yield co_return
|
||||
|
||||
" atomic
|
||||
syntax keyword cppSTLtype atomic_ref
|
||||
|
||||
" bit
|
||||
syntax keyword cppSTLtype endian
|
||||
|
||||
" compare
|
||||
syntax keyword cppSTLtype
|
||||
\ weak_ordering strong_ordering partial_ordering weak_equality strong_equality common_comparison_category common_comparison_category_t
|
||||
|
||||
" concepts
|
||||
syntax keyword cppSTLconcept
|
||||
\ assignable_from boolean common_reference_with common_with constructible_from convertible_to copy_constructible copyable default_constructible derived_from destructible equality_comparable equality_comparable_with equivalence_relation floating_point integral invocable movable move_constructible predicate regular regular_invocable relation same_as semiregular signed_integral strict_weak_order swappable swappable_with totally_ordered totally_ordered_with unsigned_integral default_initializable
|
||||
|
||||
" concepts - named requirements
|
||||
" These are concepts that haven't made it into the C++ Standard yet
|
||||
" https://en.cppreference.com/w/cpp/named_req
|
||||
" http://en.cppreference.com/w/cpp/language/constraints
|
||||
if get(g:, 'cpp_named_requirements_highlight', 0)
|
||||
syntax keyword cppSTLNamedReq
|
||||
\ Allocator AllocatorAwareContainer AssociativeContainer BasicLockable BidirectionalIterator BinaryPredicate BinaryTypeTrait BitmaskType Callable CharTraits Clock Compare ConstExprIterator Container ContiguousContainer ContiguousIterator CopyAssignable CopyInsertable CopyInsertable DefaultInsertable EmplaceConstructible Erasable FormattedInputFunction FormattedOutputFunction ForwardIterator FunctionObject Hash InputIterator Iterator LessThanComparable LiteralType Lockable MoveAssignable MoveInsertable Mutex NullablePointer NumericType OutputIterator PODType RandomAccessIterator RandomNumberDistribution RandomNumberEngine RandomNumberEngineAdaptor RegexTraits ReversibleContainer SeedSequence SequenceContainer SharedMutex SharedTimedMutex StandardLayoutType TimedLockable TimedMutex TransformationTrait TrivialClock TrivialType TriviallyCopyable UnaryTypeTrait UnformattedInputFunction UnformattedOutputFunction UniformRandomBitGenerator UnorderedAssociativeContainer ValueSwappable
|
||||
hi def link cppSTLNamedReq Typedef
|
||||
endif
|
||||
|
||||
" contract
|
||||
syntax keyword cppSTLtype contract_violation
|
||||
|
||||
" coroutines
|
||||
syntax keyword cppSTLtype
|
||||
\ coroutine_traits coroutine_handle noop_coroutine_handle noop_coroutine_promise suspend_never suspend_always
|
||||
|
||||
" memory
|
||||
syntax keyword cppSTLfunction
|
||||
\ make_unique_default_init make_shared_default_init allocate_shared_default_init uses_allocator_construction_args make_obj_using_allocator
|
||||
|
||||
" type_traits
|
||||
syntax keyword cppSTLtype
|
||||
\ remove_cvref remove_cvref_t is_bounded_array is_layout_compatible is_unbounded_array is_nothrow_convertible has_strong_structural_equality is_pointer_interconvertible_base_of unwrap_reference unwrap_reference_t unwrap_ref_decay unwrap_ref_decay_t basic_common_reference common_reference common_reference_t
|
||||
|
||||
syntax keyword cppSTLbool
|
||||
\ is_bounded_array_v is_layout_compatible_v is_unbounded_array_v is_nothrow_convertible_v has_strong_structural_equality_v is_pointer_interconvertible_base_of_v
|
||||
|
||||
syntax keyword cppSTLfunction is_corresponding_member
|
||||
|
||||
" ranges
|
||||
syntax keyword cppSTLnamespace ranges views
|
||||
|
||||
syntax keyword cppSTLconcept
|
||||
\ range sized_range view input_range output_range forward_range bidirectional_range random_access_range contiguous_range common_range viewable_range
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ iterator_t sentinel_t dangling safe_iterator_t safe_subrange_t ref_view filter_view transform_view iota_view join_view empty_view single_view split_view common_view reverse_view view_interface
|
||||
|
||||
" span
|
||||
syntax keyword cppSTLtype span
|
||||
syntax keyword cppSTLconstant dynamic_extent
|
||||
syntax keyword cppSTLfunction subspan
|
||||
|
||||
" syncstream
|
||||
syntax keyword cppSTLtype
|
||||
\ basic_syncbuf basic_osyncstream syncbuf wsyncbuf osyncstream wosyncstream
|
||||
endif
|
||||
|
||||
" Boost {{{1
|
||||
if !exists('cpp_no_boost')
|
||||
syntax keyword cppSTLnamespace boost
|
||||
syntax keyword cppSTLcast lexical_cast
|
||||
endif
|
||||
" }}}
|
||||
|
||||
|
||||
" Default highlighting
|
||||
hi def link cppSTLbool Boolean
|
||||
hi def link cppStatement Statement
|
||||
hi def link cppSTLfunction Function
|
||||
hi def link cppSTLfunctional Typedef
|
||||
hi def link cppSTLconstant Constant
|
||||
hi def link cppSTLnamespace Constant
|
||||
hi def link cppSTLtype Typedef
|
||||
hi def link cppSTLexception Exception
|
||||
hi def link cppSTLiterator Typedef
|
||||
hi def link cppSTLiterator_tag Typedef
|
||||
hi def link cppSTLenum Typedef
|
||||
hi def link cppSTLios Function
|
||||
hi def link cppSTLcast Statement
|
||||
hi def link cppSTLconcept Typedef
|
||||
hi def link cppSTLVariable Identifier
|
||||
|
||||
" The keywords {inline, virtual, explicit, export, override, final} are
|
||||
" standard C++ keywords and NOT types!
|
||||
hi link cppModifier Statement
|
||||
|
||||
|
||||
" Highlight all standard C++ keywords as Statement
|
||||
if get(g:, 'cpp_simple_highlight', 0)
|
||||
hi link cppStructure Statement
|
||||
hi link cppExceptions Statement
|
||||
hi link cppStorageClass Statement
|
||||
hi link cppSTLexception Typedef
|
||||
endif
|
||||
|
||||
endif
|
||||
82
after/syntax/idris2.vim
Normal file
82
after/syntax/idris2.vim
Normal file
@@ -0,0 +1,82 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
|
||||
|
||||
" This script allows for unicode concealing of certain characters
|
||||
" For instance -> goes to →
|
||||
"
|
||||
" It needs vim >= 7.3, set nocompatible, set enc=utf-8
|
||||
"
|
||||
" If you want to turn this on, let g:idris_conceal = 1
|
||||
|
||||
if !exists('g:idris_conceal') || !has('conceal') || &enc != 'utf-8'
|
||||
finish
|
||||
endif
|
||||
|
||||
" vim: set fenc=utf-8:
|
||||
syntax match idrNiceOperator "\\\ze[[:alpha:][:space:]_([]" conceal cchar=λ
|
||||
syntax match idrNiceOperator "<-" conceal cchar=←
|
||||
syntax match idrNiceOperator "->" conceal cchar=→
|
||||
syntax match idrNiceOperator "\<sum\>" conceal cchar=∑
|
||||
syntax match idrNiceOperator "\<product\>" conceal cchar=∏
|
||||
syntax match idrNiceOperator "\<sqrt\>" conceal cchar=√
|
||||
syntax match idrNiceOperator "\<pi\>" conceal cchar=π
|
||||
syntax match idrNiceOperator "==" conceal cchar=≡
|
||||
syntax match idrNiceOperator "\/=" conceal cchar=≠
|
||||
|
||||
|
||||
let s:extraConceal = 1
|
||||
|
||||
let s:doubleArrow = 1
|
||||
" Set this to 0 to use the more technically correct arrow from bar
|
||||
|
||||
" Some windows font don't support some of the characters,
|
||||
" so if they are the main font, we don't load them :)
|
||||
if has("win32")
|
||||
let s:incompleteFont = [ 'Consolas'
|
||||
\ , 'Lucida Console'
|
||||
\ , 'Courier New'
|
||||
\ ]
|
||||
let s:mainfont = substitute( &guifont, '^\([^:,]\+\).*', '\1', '')
|
||||
for s:fontName in s:incompleteFont
|
||||
if s:mainfont ==? s:fontName
|
||||
let s:extraConceal = 0
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
|
||||
if s:extraConceal
|
||||
syntax match idrNiceOperator "Void" conceal cchar=⊥
|
||||
|
||||
" Match greater than and lower than w/o messing with Kleisli composition
|
||||
syntax match idrNiceOperator "<=\ze[^<]" conceal cchar=≤
|
||||
syntax match idrNiceOperator ">=\ze[^>]" conceal cchar=≥
|
||||
|
||||
if s:doubleArrow
|
||||
syntax match idrNiceOperator "=>" conceal cchar=⇒
|
||||
else
|
||||
syntax match idrNiceOperator "=>" conceal cchar=↦
|
||||
endif
|
||||
|
||||
syntax match idrNiceOperator "=\zs<<" conceal cchar=«
|
||||
|
||||
syntax match idrNiceOperator "++" conceal cchar=⧺
|
||||
syntax match idrNiceOperator "::" conceal cchar=∷
|
||||
syntax match idrNiceOperator "-<" conceal cchar=↢
|
||||
syntax match idrNiceOperator ">-" conceal cchar=↣
|
||||
syntax match idrNiceOperator "-<<" conceal cchar=⤛
|
||||
syntax match idrNiceOperator ">>-" conceal cchar=⤜
|
||||
|
||||
" Only replace the dot, avoid taking spaces around.
|
||||
syntax match idrNiceOperator /\s\.\s/ms=s+1,me=e-1 conceal cchar=∘
|
||||
syntax match idrNiceOperator "\.\." conceal cchar=‥
|
||||
|
||||
syntax match idrNiceOperator "`elem`" conceal cchar=∈
|
||||
syntax match idrNiceOperator "`notElem`" conceal cchar=∉
|
||||
endif
|
||||
|
||||
hi link idrNiceOperator Operator
|
||||
hi! link Conceal Operator
|
||||
setlocal conceallevel=2
|
||||
|
||||
|
||||
endif
|
||||
@@ -1,59 +1,9 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim syntax file
|
||||
"
|
||||
" Language: javascript.jsx
|
||||
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
let s:jsx_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syntax case match
|
||||
|
||||
if exists('b:current_syntax')
|
||||
let s:current_syntax = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
if get(g:, 'vim_jsx_pretty_disable_js', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists('s:current_syntax')
|
||||
let b:current_syntax = s:current_syntax
|
||||
endif
|
||||
|
||||
if hlexists("jsDebugger") || hlexists("jsNoise") " yuezk/vim-js or pangloss/vim-javascript
|
||||
syntax cluster jsExpression add=jsxRegion
|
||||
elseif hlexists("javascriptOpSymbols") " othree/yajs.vim
|
||||
" refine the javascript line comment
|
||||
syntax region javascriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
|
||||
syntax cluster javascriptValue add=jsxRegion
|
||||
syntax cluster javascriptNoReserved add=jsxElement,jsxTag
|
||||
else " build-in javascript syntax
|
||||
" refine the javascript line comment
|
||||
syntax region javaScriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
|
||||
|
||||
" refine the template string syntax
|
||||
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr
|
||||
|
||||
" add a javaScriptBlock group for build-in syntax
|
||||
syntax region javaScriptBlock
|
||||
\ matchgroup=javaScriptBraces
|
||||
\ start="{"
|
||||
\ end="}"
|
||||
\ contained
|
||||
\ extend
|
||||
\ contains=javaScriptBlock,@javaScriptEmbededExpr,javaScript.*
|
||||
\ fold
|
||||
|
||||
syntax cluster javaScriptEmbededExpr add=jsxRegion,javaScript.*
|
||||
endif
|
||||
|
||||
runtime syntax/jsx_pretty.vim
|
||||
|
||||
let b:current_syntax = 'javascript.jsx'
|
||||
|
||||
let &cpo = s:jsx_cpo
|
||||
unlet s:jsx_cpo
|
||||
source <sfile>:h/jsx.vim
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
source <sfile>:h/javascript.vim
|
||||
source <sfile>:h/jsx.vim
|
||||
|
||||
endif
|
||||
|
||||
59
after/syntax/jsx.vim
Normal file
59
after/syntax/jsx.vim
Normal file
@@ -0,0 +1,59 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Vim syntax file
|
||||
"
|
||||
" Language: javascript.jsx
|
||||
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
let s:jsx_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syntax case match
|
||||
|
||||
if exists('b:current_syntax')
|
||||
let s:current_syntax = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
if exists('s:current_syntax')
|
||||
let b:current_syntax = s:current_syntax
|
||||
endif
|
||||
|
||||
if hlexists("jsDebugger") || hlexists("jsNoise") " yuezk/vim-js or pangloss/vim-javascript
|
||||
syntax cluster jsExpression add=jsxRegion
|
||||
elseif hlexists("javascriptOpSymbols") " othree/yajs.vim
|
||||
" refine the javascript line comment
|
||||
syntax region javascriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
|
||||
syntax cluster javascriptValue add=jsxRegion
|
||||
syntax cluster javascriptNoReserved add=jsxElement,jsxTag
|
||||
else " build-in javascript syntax
|
||||
" refine the javascript line comment
|
||||
syntax region javaScriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
|
||||
|
||||
" refine the template string syntax
|
||||
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr
|
||||
|
||||
" add a javaScriptBlock group for build-in syntax
|
||||
syntax region javaScriptBlock
|
||||
\ matchgroup=javaScriptBraces
|
||||
\ start="{"
|
||||
\ end="}"
|
||||
\ contained
|
||||
\ extend
|
||||
\ contains=javaScriptBlock,@javaScriptEmbededExpr,javaScript.*
|
||||
\ fold
|
||||
|
||||
syntax cluster javaScriptEmbededExpr add=jsxRegion,javaScript.*
|
||||
endif
|
||||
|
||||
runtime syntax/jsx_pretty.vim
|
||||
|
||||
let b:current_syntax = 'javascript.jsx'
|
||||
|
||||
let &cpo = s:jsx_cpo
|
||||
unlet s:jsx_cpo
|
||||
|
||||
endif
|
||||
@@ -32,6 +32,6 @@ if exists('s:current_syntax')
|
||||
let b:current_syntax = s:current_syntax
|
||||
endif
|
||||
|
||||
syntax region graphqlMultilineString matchgroup=reasonMultilineString start=+graphql\_s*\zs{|+ end=+|}+ contains=@GraphQLSyntax,reasonEscape,reasonEscapeUnicode,reasonEscapeError,reasonStringContinuation keepend
|
||||
syntax region graphqlExtensionPoint matchgroup=Noise start=+\[%graphql\_s*{|+lc=10 end=+|}\_s*]+he=s+1 contains=@GraphQLSyntax keepend
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||
|
||||
" To make this file do stuff, add something like the following (without the
|
||||
" leading ") to your ~/.vimrc:
|
||||
" au BufNewFile,BufRead *.yaml,*.yml so ~/src/PyYaml/YAML.vim
|
||||
|
||||
" Vim syntax/macro file
|
||||
" Language: YAML
|
||||
" Author: Igor Vergeichik <iverg@mail.ru>
|
||||
" Sponsor: Tom Sawyer <transami@transami.net>
|
||||
" Stayven: Ryan King <jking@panoptic.com>
|
||||
" Copyright (c) 2002 Tom Saywer
|
||||
|
||||
" Add an item to a gangly list:
|
||||
"map , o<bs><bs><bs><bs>-<esc>o
|
||||
" Convert to Canonical form:
|
||||
"map \c :%!python -c 'from yaml.redump import redump; import sys; print redump(sys.stdin.read()).rstrip()'
|
||||
|
||||
if version < 600
|
||||
syntax clear
|
||||
endif
|
||||
syntax clear
|
||||
|
||||
syn match yamlInline "[\[\]\{\}]"
|
||||
syn match yamlBlock "[>|]\d\?[+-]"
|
||||
|
||||
syn region yamlComment start="\#" end="$"
|
||||
syn match yamlIndicator "#YAML:\S\+"
|
||||
|
||||
syn region yamlString start="\(^\|\s\|\[\|\,\|\-\)\@<='" end="'" skip="\\'"
|
||||
syn region yamlString start='"' end='"' skip='\\"' contains=yamlEscape
|
||||
syn region yamlString matchgroup=yamlBlock start=/[>|]\s*\n\+\z(\s\+\)\S/rs=s+1 skip=/^\%(\z1\S\|^$\)/ end=/^\z1\@!.*/me=s-1
|
||||
syn region yamlString matchgroup=yamlBlock start=/[>|]\(\d\|[+-]\)\s*\n\+\z(\s\+\)\S/rs=s+2 skip=/^\%(\z1\S\|^$\)/ end=/^\z1\@!.*/me=s-1
|
||||
syn region yamlString matchgroup=yamlBlock start=/[>|]\d\(\d\|[+-]\)\s*\n\+\z(\s\+\)\S/rs=s+3 skip=/^\%(\z1\S\|^$\)/ end=/^\z1\@!.*/me=s-1
|
||||
syn match yamlEscape +\\[abfnrtv'"\\]+ contained
|
||||
syn match yamlEscape "\\\o\o\=\o\=" contained
|
||||
syn match yamlEscape "\\x\x\+" contained
|
||||
|
||||
syn match yamlType "!\S\+"
|
||||
|
||||
syn keyword yamlConstant NULL Null null NONE None none NIL Nil nil
|
||||
syn keyword yamlConstant TRUE True true YES Yes yes ON On on
|
||||
syn keyword yamlConstant FALSE False false NO No no OFF Off off
|
||||
|
||||
syn match yamlKey "^\s*\zs[^ \t\"\'#]\+\ze\s*:"
|
||||
syn match yamlKey "^\s*-\s*\zs[^ \t\"\'#]\+\ze\s*:"
|
||||
syn match yamlAnchor "&\S\+"
|
||||
syn match yamlAlias "*\S\+"
|
||||
|
||||
" Setup the highlighting links
|
||||
|
||||
hi link yamlConstant Keyword
|
||||
hi link yamlIndicator PreCondit
|
||||
hi link yamlAnchor Function
|
||||
hi link yamlAlias Function
|
||||
hi link yamlKey Identifier
|
||||
hi link yamlType Type
|
||||
|
||||
hi link yamlComment Comment
|
||||
hi link yamlInline Operator
|
||||
hi link yamlBlock Operator
|
||||
hi link yamlString String
|
||||
hi link yamlEscape Special
|
||||
|
||||
endif
|
||||
@@ -1,7 +1,8 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
function! cargo#quickfix#CmdPre() abort
|
||||
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo'
|
||||
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' &&
|
||||
\ &makeprg =~ '\V\^cargo\ \.\*'
|
||||
" Preserve the current directory, and 'lcd' to the nearest Cargo file.
|
||||
let b:rust_compiler_cargo_qf_has_lcd = haslocaldir()
|
||||
let b:rust_compiler_cargo_qf_prev_cd = getcwd()
|
||||
|
||||
111
autoload/csv.vim
111
autoload/csv.vim
@@ -1450,7 +1450,7 @@ fu! csv#SumColumn(list) "{{{3
|
||||
let b:csv_result = '0'
|
||||
return 0
|
||||
else
|
||||
let sum = has("float") ? 0.0 : 0
|
||||
let sum = 0.0
|
||||
for item in a:list
|
||||
if empty(item)
|
||||
continue
|
||||
@@ -1460,33 +1460,25 @@ fu! csv#SumColumn(list) "{{{3
|
||||
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
|
||||
try
|
||||
let nr = substitute(nr, format1, '', '')
|
||||
if has("float") && s:nr_format[1] != '.'
|
||||
if s:nr_format[1] != '.'
|
||||
let nr = substitute(nr, format2, '.', '')
|
||||
endif
|
||||
catch
|
||||
let nr = 0
|
||||
let nr = '0'
|
||||
endtry
|
||||
let sum += (has("float") ? str2float(nr) : (nr + 0))
|
||||
let sum += str2float(nr)
|
||||
endfor
|
||||
if has("float")
|
||||
let b:csv_result = string(float2nr(sum))
|
||||
if float2nr(sum) == sum
|
||||
return float2nr(sum)
|
||||
else
|
||||
return printf("%.2f", sum)
|
||||
endif
|
||||
endif
|
||||
let b:csv_result = string(sum)
|
||||
return sum
|
||||
let b:csv_result = sum
|
||||
return printf("%.2f", sum)
|
||||
endif
|
||||
endfu
|
||||
fu! csv#AvgColumn(list) "{{{3
|
||||
if empty(a:list)
|
||||
let b:csv_result = '0'
|
||||
return 0
|
||||
return 0.0
|
||||
else
|
||||
let cnt = 0
|
||||
let sum = has("float") ? 0.0 : 0
|
||||
let sum = 0.0
|
||||
for item in a:list
|
||||
if empty(item)
|
||||
continue
|
||||
@@ -1496,30 +1488,25 @@ fu! csv#AvgColumn(list) "{{{3
|
||||
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
|
||||
try
|
||||
let nr = substitute(nr, format1, '', '')
|
||||
if has("float") && s:nr_format[1] != '.'
|
||||
if s:nr_format[1] != '.'
|
||||
let nr = substitute(nr, format2, '.', '')
|
||||
endif
|
||||
catch
|
||||
let nr = 0
|
||||
let nr ='0'
|
||||
endtry
|
||||
let sum += (has("float") ? str2float(nr) : (nr + 0))
|
||||
let sum += str2float(nr)
|
||||
let cnt += 1
|
||||
endfor
|
||||
if has("float")
|
||||
let b:csv_result = printf("%.2f", sum/cnt)
|
||||
return str2float(b:csv_result)
|
||||
else
|
||||
let b:csv_result = printf("%s", sum/cnt)
|
||||
return b:csv_result + 0
|
||||
endif
|
||||
let b:csv_result = printf("%.2f", sum/cnt)
|
||||
return sum/cnt
|
||||
endif
|
||||
endfu
|
||||
fu! csv#VarianceColumn(list, is_population) "{{{3
|
||||
if empty(a:list)
|
||||
return 0
|
||||
return 0.0
|
||||
else
|
||||
let cnt = 0
|
||||
let sum = has("float") ? 0.0 : 0
|
||||
let sum = 0.0
|
||||
let avg = csv#AvgColumn(a:list)
|
||||
for item in a:list
|
||||
if empty(item)
|
||||
@@ -1530,64 +1517,64 @@ fu! csv#VarianceColumn(list, is_population) "{{{3
|
||||
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
|
||||
try
|
||||
let nr = substitute(nr, format1, '', '')
|
||||
if has("float") && s:nr_format[1] != '.'
|
||||
if s:nr_format[1] != '.'
|
||||
let nr = substitute(nr, format2, '.', '')
|
||||
endif
|
||||
catch
|
||||
let nr = 0
|
||||
let nr = '0'
|
||||
endtry
|
||||
let sum += pow((has("float") ? (str2float(nr)-avg) : ((nr + 0)-avg)), 2)
|
||||
let nr = str2float(nr)
|
||||
let sum += pow((nr-avg), 2)
|
||||
let cnt += 1
|
||||
endfor
|
||||
if(a:is_population == 0)
|
||||
let cnt = cnt-1
|
||||
endif
|
||||
if has("float")
|
||||
let b:csv_result = printf("%." . get(b:, 'csv_accuracy', get(g:, 'csv_accuracy', 2)) . "f", sum/cnt)
|
||||
return b:csv_result
|
||||
else
|
||||
let b:csv_result = printf("%s", sum/cnt)
|
||||
return sum/(cnt)
|
||||
endif
|
||||
let b:csv_result = sum/cnt
|
||||
return b:csv_result
|
||||
endif
|
||||
endfu
|
||||
|
||||
fu! csv#SmplVarianceColumn(list) "{{{2
|
||||
unlet! b:csv_result
|
||||
if empty(a:list)
|
||||
let b:csv_result = '0'
|
||||
return 0
|
||||
let b:csv_result = 0.0
|
||||
return 0.0
|
||||
else
|
||||
return csv#VarianceColumn(a:list, 0)
|
||||
endif
|
||||
endfu
|
||||
|
||||
fu! csv#PopVarianceColumn(list) "{{{2
|
||||
unlet! b:csv_result
|
||||
if empty(a:list)
|
||||
let b:csv_result = '0'
|
||||
return 0
|
||||
let b:csv_result = 0.0
|
||||
return 0.0
|
||||
else
|
||||
return csv#VarianceColumn(a:list, 1)
|
||||
endif
|
||||
endfu
|
||||
|
||||
fu! csv#SmplStdDevColumn(list) "{{{2
|
||||
unlet! b:csv_result
|
||||
if empty(a:list)
|
||||
let b:csv_result = '0'
|
||||
return 0
|
||||
let b:csv_result = 0.0
|
||||
return 0.0
|
||||
else
|
||||
let result = sqrt(str2float(csv#VarianceColumn(a:list, 0)))
|
||||
let b:csv_result = string(result)
|
||||
let result = sqrt(csv#VarianceColumn(a:list, 0))
|
||||
let b:csv_result = result
|
||||
return result
|
||||
endif
|
||||
endfu
|
||||
|
||||
fu! csv#PopStdDevColumn(list) "{{{2
|
||||
unlet! b:csv_result
|
||||
if empty(a:list)
|
||||
let b:csv_result = '0'
|
||||
return 0
|
||||
let b:csv_result = 0.0
|
||||
return 0.0
|
||||
else
|
||||
let result = sqrt(str2float(csv#VarianceColumn(a:list, 1)))
|
||||
let b:csv_result = string(result)
|
||||
let result = sqrt(csv#VarianceColumn(a:list, 1))
|
||||
let b:csv_result = result
|
||||
return result
|
||||
endif
|
||||
endfu
|
||||
@@ -1610,13 +1597,13 @@ fu! csv#MaxColumn(list) "{{{3
|
||||
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
|
||||
try
|
||||
let nr = substitute(nr, format1, '', '')
|
||||
if has("float") && s:nr_format[1] != '.'
|
||||
if s:nr_format[1] != '.'
|
||||
let nr = substitute(nr, format2, '.', '')
|
||||
endif
|
||||
catch
|
||||
let nr = 0
|
||||
let nr = '0'
|
||||
endtry
|
||||
call add(result, has("float") ? str2float(nr) : nr+0)
|
||||
call add(result, str2float(nr))
|
||||
endfor
|
||||
let result = sort(result, s:csv_numeric_sort ? 'n' : 'csv#CSVSortValues')
|
||||
let ind = len(result) > 9 ? 9 : len(result)
|
||||
@@ -1995,10 +1982,7 @@ fu! csv#AnalyzeColumn(...) "{{{3
|
||||
call filter(res, 'v:val =~ ''^''.join(max_items, ''\|'').''$''')
|
||||
endif
|
||||
|
||||
if has("float")
|
||||
let title="Nr\tCount\t % \tValue"
|
||||
else
|
||||
let title="Nr\tCount\tValue"
|
||||
let title="Nr\tCount\t % \tValue"
|
||||
endif
|
||||
echohl Title
|
||||
echo printf("%s", title)
|
||||
@@ -2014,12 +1998,8 @@ fu! csv#AnalyzeColumn(...) "{{{3
|
||||
else
|
||||
let k = key
|
||||
endif
|
||||
if has("float")
|
||||
echo printf("%02d\t%02d\t%2.0f%%\t%.50s", i, res[key],
|
||||
\ ((res[key] + 0.0)/qty)*100, k)
|
||||
else
|
||||
echo printf("%02d\t%02d\t%.50s", i, res[key], k)
|
||||
endif
|
||||
echo printf("%02d\t%02d\t%2.0f%%\t%.50s", i, res[key],
|
||||
\ ((res[key] + 0.0)/qty)*100, k)
|
||||
call remove(res,key)
|
||||
let i+=1
|
||||
else
|
||||
@@ -2950,6 +2930,11 @@ fu! csv#EvalColumn(nr, func, first, last, ...) range "{{{3
|
||||
call csv#Warn("File is no CSV file!")
|
||||
return
|
||||
endif
|
||||
" Need a Vim with floating point feature
|
||||
if !has("float")
|
||||
call csv#Warn("Your Vim is missing floating point feature!")
|
||||
return
|
||||
endif
|
||||
let save = winsaveview()
|
||||
call csv#CheckHeaderLine()
|
||||
let nr = matchstr(a:nr, '^\-\?\d\+')
|
||||
|
||||
@@ -552,6 +552,14 @@ function! go#config#GoplsLocal() abort
|
||||
return get(g:, 'go_gopls_local', v:null)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsGofumpt() abort
|
||||
return get(g:, 'go_gopls_gofumpt', v:null)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsSettings() abort
|
||||
return get(g:, 'go_gopls_settings', v:null)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsEnabled() abort
|
||||
return get(g:, 'go_gopls_enabled', 1)
|
||||
endfunction
|
||||
@@ -564,6 +572,10 @@ function! go#config#GoplsOptions() abort
|
||||
return get(g:, 'go_gopls_options', ['-remote=auto'])
|
||||
endfunction
|
||||
|
||||
function! go#config#FillStructMode() abort
|
||||
return get(g:, 'go_fillstruct_mode', 'fillstruct')
|
||||
endfunction
|
||||
|
||||
" Set the default value. A value of "1" is a shortcut for this, for
|
||||
" compatibility reasons.
|
||||
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1
|
||||
|
||||
@@ -2,13 +2,15 @@
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
func! polyglot#Heuristics()
|
||||
func! polyglot#Shebang()
|
||||
" Try to detect filetype from shebang
|
||||
let l:filetype = polyglot#Shebang()
|
||||
if l:filetype != ""
|
||||
exec "setf " . l:filetype
|
||||
return
|
||||
let ft = polyglot#ShebangFiletype()
|
||||
if ft != ""
|
||||
let &ft = ft
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
let s:interpreters = {
|
||||
@@ -21,6 +23,7 @@ let s:interpreters = {
|
||||
\ 'escript': 'erlang',
|
||||
\ 'fish': 'fish',
|
||||
\ 'gnuplot': 'gnuplot',
|
||||
\ 'groovy': 'groovy',
|
||||
\ 'runhaskell': 'haskell',
|
||||
\ 'chakra': 'javascript',
|
||||
\ 'd8': 'javascript',
|
||||
@@ -41,6 +44,8 @@ let s:interpreters = {
|
||||
\ 'cperl': 'perl',
|
||||
\ 'perl': 'perl',
|
||||
\ 'php': 'php',
|
||||
\ 'swipl': 'prolog',
|
||||
\ 'yap': 'prolog',
|
||||
\ 'pwsh': 'ps1',
|
||||
\ 'python': 'python',
|
||||
\ 'python2': 'python',
|
||||
@@ -84,7 +89,7 @@ let s:r_hashbang = '^#!\s*\(\S\+\)\s*\(.*\)\s*'
|
||||
let s:r_envflag = '%(\S\+=\S\+\|-[iS]\|--ignore-environment\|--split-string\)'
|
||||
let s:r_env = '^\%(\' . s:r_envflag . '\s\+\)*\(\S\+\)'
|
||||
|
||||
func! polyglot#Shebang()
|
||||
func! polyglot#ShebangFiletype()
|
||||
let l:line1 = getline(1)
|
||||
|
||||
if l:line1 !~# "^#!"
|
||||
@@ -122,36 +127,55 @@ func! polyglot#Shebang()
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectInpFiletype()
|
||||
let line = getline(1)
|
||||
let line = getline(nextnonblank(1))
|
||||
if line =~# '^\*'
|
||||
setf abaqus | return
|
||||
set ft=abaqus | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 500]))
|
||||
let line = getline(lnum)
|
||||
if line =~? '^header surface data'
|
||||
setf trasys | return
|
||||
set ft=trasys | return
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectAsaFiletype()
|
||||
if exists("g:filetype_asa")
|
||||
exe "setf " . g:filetype_asa | return
|
||||
let &ft = g:filetype_asa | return
|
||||
endif
|
||||
setf aspvbs | return
|
||||
set ft=aspvbs | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectAspFiletype()
|
||||
if exists("g:filetype_asp")
|
||||
exe "setf " . g:filetype_asp | return
|
||||
let &ft = g:filetype_asp | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 3]))
|
||||
let line = getline(lnum)
|
||||
if line =~? 'perlscript'
|
||||
setf aspperl | return
|
||||
set ft=aspperl | return
|
||||
endif
|
||||
endfor
|
||||
setf aspvbs | return
|
||||
set ft=aspvbs | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectHFiletype()
|
||||
for lnum in range(1, min([line("$"), 200]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*\(@\(interface\|class\|protocol\|property\|end\|synchronised\|selector\|implementation\)\(\<\|\>\)\|#import\s\+.\+\.h[">]\)'
|
||||
if exists("g:c_syntax_for_h")
|
||||
set ft=objc | return
|
||||
endif
|
||||
set ft=objcpp | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:c_syntax_for_h")
|
||||
set ft=c | return
|
||||
endif
|
||||
if exists("g:ch_syntax_for_h")
|
||||
set ft=ch | return
|
||||
endif
|
||||
set ft=cpp | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectMFiletype()
|
||||
@@ -162,56 +186,199 @@ func! polyglot#DetectMFiletype()
|
||||
let saw_comment = 1
|
||||
endif
|
||||
if line =~# '^\s*\(@\(interface\|class\|protocol\|property\|end\|synchronised\|selector\|implementation\)\(\<\|\>\)\|#import\s\+.\+\.h[">]\)'
|
||||
setf objc | return
|
||||
set ft=objc | return
|
||||
endif
|
||||
if line =~# '^\s*%'
|
||||
setf octave | return
|
||||
set ft=octave | return
|
||||
endif
|
||||
if line =~# '^\s*(\*'
|
||||
setf mma | return
|
||||
set ft=mma | return
|
||||
endif
|
||||
if line =~? '^\s*\(\(type\|var\)\(\<\|\>\)\|--\)'
|
||||
setf murphi | return
|
||||
set ft=murphi | return
|
||||
endif
|
||||
endfor
|
||||
if saw_comment
|
||||
setf objc | return
|
||||
set ft=objc | return
|
||||
endif
|
||||
if exists("g:filetype_m")
|
||||
exe "setf " . g:filetype_m | return
|
||||
let &ft = g:filetype_m | return
|
||||
endif
|
||||
setf octave | return
|
||||
set ft=octave | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectFsFiletype()
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\(: \|new-device\)'
|
||||
setf forth | return
|
||||
set ft=forth | return
|
||||
endif
|
||||
if line =~# '^\s*\(#light\|import\|let\|module\|namespace\|open\|type\)'
|
||||
setf fsharp | return
|
||||
set ft=fsharp | return
|
||||
endif
|
||||
if line =~# '\s*\(#version\|precision\|uniform\|varying\|vec[234]\)'
|
||||
setf glsl | return
|
||||
set ft=glsl | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_fs")
|
||||
exe "setf " . g:filetype_fs | return
|
||||
let &ft = g:filetype_fs | return
|
||||
endif
|
||||
setf forth | return
|
||||
set ft=forth | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectReFiletype()
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*#\%(\%(if\|ifdef\|define\|pragma\)\s\+\w\|\s*include\s\+[<"]\|template\s*<\)'
|
||||
setf cpp | return
|
||||
set ft=cpp | return
|
||||
endif
|
||||
setf reason | return
|
||||
set ft=reason | return
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectIdrFiletype()
|
||||
for lnum in range(1, min([line("$"), 5]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*--.*[Ii]dris \=1'
|
||||
set ft=idris | return
|
||||
endif
|
||||
if line =~# '^\s*--.*[Ii]dris \=2'
|
||||
set ft=idris2 | return
|
||||
endif
|
||||
endfor
|
||||
for lnum in range(1, min([line("$"), 30]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^pkgs =.*'
|
||||
set ft=idris | return
|
||||
endif
|
||||
if line =~# '^depends =.*'
|
||||
set ft=idris2 | return
|
||||
endif
|
||||
if line =~# '^%language \(TypeProviders\|ElabReflection\)'
|
||||
set ft=idris | return
|
||||
endif
|
||||
if line =~# '^%language PostfixProjections'
|
||||
set ft=idris2 | return
|
||||
endif
|
||||
if line =~# '^%access .*'
|
||||
set ft=idris | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_idr")
|
||||
let &ft = g:filetype_idr | return
|
||||
endif
|
||||
set ft=idris2 | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectLidrFiletype()
|
||||
for lnum in range(1, min([line("$"), 200]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^>\s*--.*[Ii]dris \=1'
|
||||
set ft=lidris | return
|
||||
endif
|
||||
endfor
|
||||
set ft=lidris2 | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectBasFiletype()
|
||||
for lnum in range(1, min([line("$"), 5]))
|
||||
let line = getline(lnum)
|
||||
if line =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
set ft=vb | return
|
||||
endif
|
||||
endfor
|
||||
set ft=basic | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectPmFiletype()
|
||||
let line = getline(nextnonblank(1))
|
||||
if line =~# 'XPM2'
|
||||
set ft=xpm2 | return
|
||||
endif
|
||||
if line =~# 'XPM'
|
||||
set ft=xpm | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*\%(use\s\+v6\(\<\|\>\)\|\(\<\|\>\)module\(\<\|\>\)\|\(\<\|\>\)\%(my\s\+\)\=class\(\<\|\>\)\)'
|
||||
set ft=raku | return
|
||||
endif
|
||||
if line =~# '\(\<\|\>\)use\s\+\%(strict\(\<\|\>\)\|v\=5\.\)'
|
||||
set ft=perl | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_pm")
|
||||
let &ft = g:filetype_pm | return
|
||||
endif
|
||||
set ft=perl | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectPlFiletype()
|
||||
let line = getline(nextnonblank(1))
|
||||
if line =~# '^[^#]*:-' || line =~# '^\s*\%(%\|/\*\)' || line =~# '\.\s*$'
|
||||
set ft=prolog | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*\%(use\s\+v6\(\<\|\>\)\|\(\<\|\>\)module\(\<\|\>\)\|\(\<\|\>\)\%(my\s\+\)\=class\(\<\|\>\)\)'
|
||||
set ft=raku | return
|
||||
endif
|
||||
if line =~# '\(\<\|\>\)use\s\+\%(strict\(\<\|\>\)\|v\=5\.\)'
|
||||
set ft=perl | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_pl")
|
||||
let &ft = g:filetype_pl | return
|
||||
endif
|
||||
set ft=perl | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectTFiletype()
|
||||
for lnum in range(1, min([line("$"), 5]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\.'
|
||||
set ft=nroff | return
|
||||
endif
|
||||
endfor
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*\%(use\s\+v6\(\<\|\>\)\|\(\<\|\>\)module\(\<\|\>\)\|\(\<\|\>\)\%(my\s\+\)\=class\(\<\|\>\)\)'
|
||||
set ft=raku | return
|
||||
endif
|
||||
if line =~# '\(\<\|\>\)use\s\+\%(strict\(\<\|\>\)\|v\=5\.\)'
|
||||
set ft=perl | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_t")
|
||||
let &ft = g:filetype_t | return
|
||||
endif
|
||||
set ft=perl | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectTt2Filetype()
|
||||
for lnum in range(1, min([line("$"), 3]))
|
||||
let line = getline(lnum)
|
||||
if line =~? '<\%(!DOCTYPE HTML\|[%?]\|html\)'
|
||||
set ft=tt2html | return
|
||||
endif
|
||||
endfor
|
||||
set ft=tt2 | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectHtmlFiletype()
|
||||
let line = getline(nextnonblank(1))
|
||||
if line =~# '^\(%\|<[%&].*>\)'
|
||||
set ft=mason | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '{{.*}}\|{%-\=\s*\(end.*\|extends\|block\|macro\|set\|if\|for\|include\|trans\)\(\<\|\>\)'
|
||||
set ft=jinja.html | return
|
||||
endif
|
||||
endfor
|
||||
set ft=html | return
|
||||
endfunc
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -65,12 +65,12 @@ endfunction
|
||||
function! s:RustfmtConfigOptions()
|
||||
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:rustfmt_toml !=# ''
|
||||
return '--config-path '.fnamemodify(l:rustfmt_toml, ":p")
|
||||
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
|
||||
endif
|
||||
|
||||
let l:_rustfmt_toml = findfile('.rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:_rustfmt_toml !=# ''
|
||||
return '--config-path '.fnamemodify(l:_rustfmt_toml, ":p")
|
||||
return '--config-path '.shellescape(fnamemodify(l:_rustfmt_toml, ":p"))
|
||||
endif
|
||||
|
||||
" Default to edition 2018 in case no rustfmt.toml was found.
|
||||
@@ -109,7 +109,7 @@ function! s:DeleteLines(start, end) abort
|
||||
endfunction
|
||||
|
||||
function! s:RunRustfmt(command, tmpname, from_writepre)
|
||||
mkview!
|
||||
let l:view = winsaveview()
|
||||
|
||||
let l:stderr_tmpname = tempname()
|
||||
call writefile([], l:stderr_tmpname)
|
||||
@@ -215,7 +215,7 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
|
||||
lwindow
|
||||
endif
|
||||
|
||||
silent! loadview
|
||||
call winrestview(l:view)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#FormatRange(line1, line2)
|
||||
|
||||
234
autoload/sleuth.vim
Normal file
234
autoload/sleuth.vim
Normal file
@@ -0,0 +1,234 @@
|
||||
let s:globs = {
|
||||
\ '8th': '*.8th',
|
||||
\ 'Dockerfile': '*.dockerfile,*.dock,*.Dockerfile,Dockerfile,dockerfile,Dockerfile*',
|
||||
\ 'Jenkinsfile': '*.jenkinsfile,*.Jenkinsfile,Jenkinsfile,Jenkinsfile*',
|
||||
\ 'a2ps': 'a2psrc',
|
||||
\ 'a65': '*.a65',
|
||||
\ 'aap': '*.aap',
|
||||
\ 'abap': '*.abap',
|
||||
\ 'abaqus': '*.inp',
|
||||
\ 'abc': '*.abc',
|
||||
\ 'abel': '*.abl',
|
||||
\ 'acedb': '*.wrm',
|
||||
\ 'ada': '*.adb,*.ads,*.ada,*.adc,*.gpr,*.ada_m',
|
||||
\ 'ahdl': '*.tdf',
|
||||
\ 'aidl': '*.aidl',
|
||||
\ 'alsaconf': '',
|
||||
\ 'aml': '*.aml',
|
||||
\ 'ampl': '*.run',
|
||||
\ 'ant': 'build.xml',
|
||||
\ 'apache': 'access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf*',
|
||||
\ 'apiblueprint': '*.apib',
|
||||
\ 'applescript': '*.applescript,*.scpt',
|
||||
\ 'aptconf': 'apt.conf',
|
||||
\ 'arch': '=tagging-method',
|
||||
\ 'arduino': '*.pde,*.ino',
|
||||
\ 'art': '*.art',
|
||||
\ 'asciidoc': '*.asciidoc,*.adoc,*.asc',
|
||||
\ 'asl': '*.asl,*.dsl',
|
||||
\ 'asn': '*.asn,*.asn1',
|
||||
\ 'aspperl': '*.asp',
|
||||
\ 'aspvbs': '*.asa,*.asp',
|
||||
\ 'atlas': '*.atl,*.as',
|
||||
\ 'autohotkey': '*.ahk,*.ahkl',
|
||||
\ 'autoit': '*.au3',
|
||||
\ 'automake': '[Mm]akefile.am,GNUmakefile.am',
|
||||
\ 'ave': '*.ave',
|
||||
\ 'awk': '*.awk,*.gawk',
|
||||
\ 'basic': '*.basic',
|
||||
\ 'blade': '*.blade,*.blade.php',
|
||||
\ 'brewfile': 'Brewfile',
|
||||
\ 'bzl': '*.bzl,BUCK,BUILD,BUILD.bazel,Tiltfile,WORKSPACE',
|
||||
\ 'c': '*.c,*.cats,*.h,*.idc,*.qc',
|
||||
\ 'caddyfile': 'Caddyfile',
|
||||
\ 'carp': '*.carp',
|
||||
\ 'clojure': '*.clj,*.boot,*.cl2,*.cljc,*.cljs,*.cljs.hl,*.cljscm,*.cljx,*.hic,*.edn,riemann.config,build.boot,profile.boot',
|
||||
\ 'cmake': '*.cmake,*.cmake.in,CMakeLists.txt',
|
||||
\ 'coffee': '*.coffee,*._coffee,*.cake,*.cjsx,*.iced,*.coffeekup,Cakefile',
|
||||
\ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.tcc,*.tpp,*.moc,*.tlh',
|
||||
\ 'cql': '*.cql',
|
||||
\ 'cryptol': '*.cry,*.cyl,*.lcry,*.lcyl',
|
||||
\ 'crystal': '*.cr,Projectfile',
|
||||
\ 'csv': '*.csv,*.tsv,*.tab',
|
||||
\ 'cucumber': '*.feature,*.story',
|
||||
\ 'cuesheet': '*.cue',
|
||||
\ 'd': '*.d,*.di',
|
||||
\ 'dart': '*.dart,*.drt',
|
||||
\ 'dcov': '*.lst',
|
||||
\ 'dd': '*.dd',
|
||||
\ 'ddoc': '*.ddoc',
|
||||
\ 'dhall': '*.dhall',
|
||||
\ 'dosini': '*.wrap,*.ini,*.dof,*.lektorproject,*.prefs,*.pro,*.properties,buildozer.spec,php.ini-*',
|
||||
\ 'dsdl': '*.sdl',
|
||||
\ 'dune': 'jbuild,dune,dune-project,dune-workspace',
|
||||
\ 'ecrystal': '*.ecr',
|
||||
\ 'eelixir': '*.eex,*.leex',
|
||||
\ 'elf': '*.am',
|
||||
\ 'elixir': '*.ex,*.exs,mix.lock',
|
||||
\ 'elm': '*.elm',
|
||||
\ 'embeddedpuppet': '*.epp',
|
||||
\ 'ember-script': '*.em,*.emberscript',
|
||||
\ 'emblem': '*.emblem,*.em',
|
||||
\ 'erlang': '*.erl,*.app.src,*.es,*.escript,*.hrl,*.xrl,*.yrl,*.app,*.yaws,Emakefile,rebar.config,rebar.config.lock,rebar.lock',
|
||||
\ 'eruby': '*.erb,*.erb.deface,*.rhtml',
|
||||
\ 'fbs': '*.fbs',
|
||||
\ 'fennel': '*.fnl',
|
||||
\ 'ferm': '*.ferm,ferm.conf',
|
||||
\ 'fish': '*.fish',
|
||||
\ 'flow': '*.flow',
|
||||
\ 'forth': '*.fs,*.ft,*.fth',
|
||||
\ 'fsharp': '*.fs,*.fsi,*.fsx',
|
||||
\ 'gdscript3': '*.gd',
|
||||
\ 'gitcommit': 'COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG',
|
||||
\ 'gitconfig': '*.gitconfig',
|
||||
\ 'gitrebase': 'git-rebase-todo',
|
||||
\ 'gitsendemail': '',
|
||||
\ 'glsl': '*.glsl,*.fp,*.frag,*.frg,*.fs,*.fsh,*.fshader,*.geo,*.geom,*.glslf,*.glslv,*.gs,*.gshader,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader,*.comp',
|
||||
\ 'gmpl': '*.mod',
|
||||
\ 'gnuplot': '*.gp,*.gnu,*.gnuplot,*.p,*.plot,*.plt,*.gpi',
|
||||
\ 'go': '*.go',
|
||||
\ 'gohtmltmpl': '*.tmpl',
|
||||
\ 'gomod': 'go.mod',
|
||||
\ 'graphql': '*.graphql,*.gql,*.graphqls',
|
||||
\ 'groovy': '*.groovy,*.grt,*.gtpl,*.gvy,*.gradle,Jenkinsfile',
|
||||
\ 'grub': '',
|
||||
\ 'haml': '*.haml,*.haml.deface,*.hamlc,*.hamlbars',
|
||||
\ 'haproxy': '*.cfg,haproxy.cfg,haproxy*.c*',
|
||||
\ 'haskell': '*.hs,*.hs-boot,*.hsc,*.bpk,*.hsig',
|
||||
\ 'haxe': '*.hx,*.hxsl',
|
||||
\ 'hcl': '*.hcl,*.nomad,*.workflow,Appfile',
|
||||
\ 'helm': '',
|
||||
\ 'help': '',
|
||||
\ 'hive': '*.q,*.hql,*.ql',
|
||||
\ 'html': '*.html,*.htm,*.html.hl,*.inc,*.st,*.xht,*.xhtml',
|
||||
\ 'html.twig': '*.twig',
|
||||
\ 'i3config': '*.i3.config,*.i3config,i3.config,i3config',
|
||||
\ 'icalendar': '*.ics',
|
||||
\ 'idris': '*.idr,*.lidr,idris-response',
|
||||
\ 'idris2': '*.idr,*.ipkg,idris-response',
|
||||
\ 'ion': '*.ion',
|
||||
\ 'javascript': '*.js,*._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,Jakefile',
|
||||
\ 'javascriptreact': '*.jsx',
|
||||
\ 'jinja.html': '*.jinja,*.j2,*.jinja2',
|
||||
\ 'jq': '*.jq',
|
||||
\ 'json': '*.json,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.JSON-tmLanguage,*.jsonl,*.mcmeta,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,*.jsonp,*.template,composer.lock,mcmod.info,Pipfile.lock',
|
||||
\ 'json5': '*.json5',
|
||||
\ 'jsonnet': '*.jsonnet,*.libsonnet',
|
||||
\ 'jst': '*.ejs,*.ect,*.jst',
|
||||
\ 'julia': '*.jl',
|
||||
\ 'kotlin': '*.kt,*.ktm,*.kts',
|
||||
\ 'ledger': '*.ldg,*.ledger,*.journal',
|
||||
\ 'less': '*.less',
|
||||
\ 'lidris2': '*.lidr',
|
||||
\ 'lilypond': '*.ly,*.ily',
|
||||
\ 'litcoffee': '*.litcoffee,*.coffee.md',
|
||||
\ 'livescript': '*.ls,*._ls,Slakefile',
|
||||
\ 'llvm': '*.ll',
|
||||
\ 'log': '*.log,*.LOG,*_log,*_LOG',
|
||||
\ 'lua': '*.lua,*.fcgi,*.nse,*.p8,*.pd_lua,*.rbxs,*.rockspec,*.wlua',
|
||||
\ 'm4': '*.m4,*.at',
|
||||
\ 'mako': '*.mako,*.mao',
|
||||
\ 'markdown': '*.md,*.markdown,*.mdown,*.mdwn,*.mkd,*.mkdn,*.mkdown,*.ronn,*.workbook,contents.lr',
|
||||
\ 'markdown.mdx': '*.mdx',
|
||||
\ 'mason': '*.mason,*.mhtml,*.comp',
|
||||
\ 'meson': 'meson.build,meson_options.txt',
|
||||
\ 'mma': '*.mathematica,*.cdf,*.m,*.ma,*.mt,*.nb,*.nbp,*.wl,*.wlt,*.wls,*.mma',
|
||||
\ 'moon': '*.moon',
|
||||
\ 'murphi': '*.m',
|
||||
\ 'mustache': '*.handlebars,*.hbs,*.hulk,*.hjs,*.mustache,*.njk,*.hogan,*.hdbs,*.hb',
|
||||
\ 'nginx': '*.nginx,*.nginxconf,*.vhost,nginx.conf,nginx*.conf,*nginx.conf',
|
||||
\ 'nim': '*.nim,*.nim.cfg,*.nimble,*.nimrod,*.nims,nim.cfg',
|
||||
\ 'nix': '*.nix',
|
||||
\ 'oasis': '_oasis',
|
||||
\ 'objc': '*.m,*.h',
|
||||
\ 'ocaml': '*.ml,*.eliom,*.eliomi,*.ml4,*.mli,*.mll,*.mly,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo',
|
||||
\ 'ocamlbuild_tags': '_tags',
|
||||
\ 'ocpbuild': '*.ocp',
|
||||
\ 'ocpbuildroot': '*.root',
|
||||
\ 'octave': '*.oct,*.m',
|
||||
\ 'odin': '*.odin',
|
||||
\ 'omake': '*.om,OMakefile,OMakeroot,OMakeroot.in',
|
||||
\ 'opam': '*.opam,*.opam.template,opam',
|
||||
\ 'opencl': '*.cl,*.opencl',
|
||||
\ 'perl': '*.pl,*.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.pm,*.psgi,*.t,Makefile.PL,Rexfile,ack,cpanfile',
|
||||
\ 'php': '*.php,*.aw,*.ctp,*.fcgi,*.inc,*.php3,*.php4,*.php5,*.phps,*.phpt,Phakefile',
|
||||
\ 'plantuml': '*.puml,*.iuml,*.plantuml,*.uml,*.pu',
|
||||
\ 'pod': '*.pod',
|
||||
\ 'pony': '*.pony',
|
||||
\ 'prolog': '*.pl,*.pro,*.prolog,*.yap',
|
||||
\ 'proto': '*.proto',
|
||||
\ 'ps1': '*.ps1,*.psd1,*.psm1,*.pssc',
|
||||
\ 'ps1xml': '*.ps1xml',
|
||||
\ 'pug': '*.jade,*.pug',
|
||||
\ 'puppet': '*.pp,Modulefile',
|
||||
\ 'purescript': '*.purs',
|
||||
\ 'python': '*.py,*.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.smk,*.spec,*.tac,*.wsgi,*.xpy,DEPS,SConscript,SConstruct,Snakefile,wscript',
|
||||
\ 'qmake': '*.pro,*.pri',
|
||||
\ 'qml': '*.qml,*.qbs',
|
||||
\ 'r': '*.r,*.rsx,*.s,*.S,expr-dist',
|
||||
\ 'racket': '*.rkt,*.rktd,*.rktl,*.scrbl',
|
||||
\ 'ragel': '*.rl',
|
||||
\ 'raku': '*.6pl,*.6pm,*.nqp,*.p6,*.p6l,*.p6m,*.pl,*.pl6,*.pm,*.pm6,*.t,*.rakudoc,*.rakutest,*.raku,*.rakumod,*.pod6,*.t6',
|
||||
\ 'raml': '*.raml',
|
||||
\ 'razor': '*.cshtml,*.razor',
|
||||
\ 'reason': '*.re,*.rei',
|
||||
\ 'requirements': '*.pip,*requirements.{txt,in},*require.{txt,in},constraints.{txt,in}',
|
||||
\ 'rhelp': '*.rd',
|
||||
\ 'rst': '*.rst,*.rest,*.rest.txt,*.rst.txt',
|
||||
\ 'ruby': '*.rb,*.builder,*.eye,*.fcgi,*.gemspec,*.god,*.jbuilder,*.mspec,*.pluginspec,*.podspec,*.rabl,*.rake,*.rbi,*.rbuild,*.rbw,*.rbx,*.ru,*.ruby,*.spec,*.thor,*.watchr,*.rxml,*.rjs,*.rant,*.axlsx,*.cap,*.opal,Appraisals,Berksfile,Buildfile,Capfile,Dangerfile,Deliverfile,Fastfile,Gemfile,Gemfile.lock,Guardfile,Jarfile,Mavenfile,Podfile,Puppetfile,Rakefile,Snapfile,Thorfile,Vagrantfile,buildfile,Rantfile,Cheffile,KitchenSink,Routefile,vagrantfile,[Rr]akefile*,*_spec.rb',
|
||||
\ 'rust': '*.rs,*.rs.in',
|
||||
\ 'sbt.scala': '*.sbt',
|
||||
\ 'scala': '*.scala,*.kojo,*.sc',
|
||||
\ 'scss': '*.scss',
|
||||
\ 'sexplib': '*.sexp',
|
||||
\ 'sh': '*.sh,*.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh.in,*.tmux,*.tool,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,login,man,profile',
|
||||
\ 'slim': '*.slim',
|
||||
\ 'slime': '*.slime',
|
||||
\ 'smt2': '*.smt2,*.smt',
|
||||
\ 'solidity': '*.sol',
|
||||
\ 'sql': '*.pgsql',
|
||||
\ 'stylus': '*.styl,*.stylus',
|
||||
\ 'svelte': '*.svelte',
|
||||
\ 'svg': '*.svg',
|
||||
\ 'swift': '*.swift',
|
||||
\ 'sxhkdrc': '*.sxhkdrc,sxhkdrc',
|
||||
\ 'systemd': '*.automount,*.mount,*.path,*.service,*.socket,*.swap,*.target,*.timer',
|
||||
\ 'tablegen': '*.td',
|
||||
\ 'tads': '*.t',
|
||||
\ 'terraform': '*.hcl,*.nomad,*.tf,*.tfvars,*.workflow',
|
||||
\ 'textile': '*.textile',
|
||||
\ 'thrift': '*.thrift',
|
||||
\ 'tmux': '',
|
||||
\ 'toml': '*.toml,Cargo.lock,Gopkg.lock,poetry.lock,Pipfile',
|
||||
\ 'tptp': '*.p,*.tptp,*.ax',
|
||||
\ 'trasys': '*.inp',
|
||||
\ 'tt2': '*.tt2',
|
||||
\ 'tt2html': '*.tt2',
|
||||
\ 'typescript': '*.ts',
|
||||
\ 'typescriptreact': '*.tsx',
|
||||
\ 'unison': '*.u,*.uu',
|
||||
\ 'v': '*.v',
|
||||
\ 'vala': '*.vala,*.vapi,*.valadoc',
|
||||
\ 'vb': '*.bas,*.cls,*.frm,*.frx,*.vba,*.vbs,*.dsm,*.ctl,*.sba',
|
||||
\ 'vbnet': '*.vb,*.vbhtml',
|
||||
\ 'vcl': '*.vcl',
|
||||
\ 'velocity': '*.vm',
|
||||
\ 'vmasm': '*.mar',
|
||||
\ 'vue': '*.vue,*.wpy',
|
||||
\ 'xdc': '*.xdc',
|
||||
\ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mm,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.ps1xml,*.psc1,*.pt,*.rdf,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config',
|
||||
\ 'xml.twig': '*.xml.twig',
|
||||
\ 'xs': '*.xs',
|
||||
\ 'xsl': '*.xslt,*.xsl',
|
||||
\ 'yaml': '*.yml,*.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml.mysql,glide.lock,yarn.lock,fish_history,fish_read_history',
|
||||
\ 'yaml.ansible': 'playbook.y{a,}ml,site.y{a,}ml,main.y{a,}ml,local.y{a,}ml,requirements.y{a,}ml,tasks.*.y{a,}ml,roles.*.y{a,}ml,handlers.*.y{a,}ml',
|
||||
\ 'yaml.docker-compose': 'docker-compose*.yaml,docker-compose*.yml',
|
||||
\ 'zephir': '*.zep',
|
||||
\ 'zig': '*.zig,*.zir',
|
||||
\ 'zir': '*.zir',
|
||||
\ 'zsh': '*.zsh',
|
||||
\}
|
||||
|
||||
func! sleuth#GlobForFiletype(type)
|
||||
return get(s:globs, a:type, '')
|
||||
endfunc
|
||||
@@ -68,6 +68,7 @@ function! terraform#commands(ArgLead, CmdLine, CursorPos) abort
|
||||
\ 'version',
|
||||
\ 'workspace',
|
||||
\ '0.12upgrade',
|
||||
\ '0.13upgrade',
|
||||
\ 'debug',
|
||||
\ 'force-unlock',
|
||||
\ 'push',
|
||||
|
||||
@@ -969,8 +969,7 @@ The result is also available in the buffer-local variable `b:csv_result`.
|
||||
|
||||
See also |csv-aggregate-functions|
|
||||
|
||||
*MinCol_CSV*
|
||||
3.27 Maximum/Minimum value of a Column *MaxCol_CSV*
|
||||
3.27 Maximum/Minimum value of a Column *MaxCol_CSV* *MinCol_CSV*
|
||||
---------------------------------------
|
||||
You can let Vim output the 10 maximum/minimum values of a column using the
|
||||
`:CSVMaxCol` command >
|
||||
@@ -984,6 +983,7 @@ given, this calculates the sum for the column the cursor is on. Note, that the
|
||||
delimiter will be stripped away from each value and also empty values won't be
|
||||
considered.
|
||||
|
||||
*format_number_csv*
|
||||
By default, Vim uses the a numerical format that uses the '.' as decimal
|
||||
separator while there is no thousands separator. If youre file contains
|
||||
the numbers in a different format, you can use the /format/ option to specify
|
||||
@@ -1003,10 +1003,6 @@ uses the Space as thousands separator and the '.' as decimal separator.
|
||||
|
||||
If [distinct] is given, only returns the number of distinct values.
|
||||
|
||||
Note, if you Vim is compiled without floating point number format (|+float|),
|
||||
Vim will only aggregate the integer part and therefore won't use the 'y'
|
||||
argument in the /format/ specifier.
|
||||
|
||||
The result is also available in the buffer-local variable `b:csv_result`.
|
||||
|
||||
3.28 Average value of a Column *AvgCol_CSV*
|
||||
@@ -1021,19 +1017,21 @@ given, this calculates the sum for the column the cursor is on. Note, that the
|
||||
delimiter will be stripped away from each value and also empty values won't be
|
||||
considered.
|
||||
|
||||
For the [/format/] part, see |MaxCol_CSV|.
|
||||
For the [/format/] part, see |format_number_csv|.
|
||||
|
||||
The result is also available in the buffer-local variable `b:csv_result`.
|
||||
|
||||
See also |csv-aggregate-functions|
|
||||
|
||||
3.29 Variance of a Column *VarCol_CSV*
|
||||
3.29 Variance of a Column *VarCol_CSV* *SmplVarCol* *PopVarCol*
|
||||
_________________________
|
||||
|
||||
:[range]PopVarCol [nr] [/format/]
|
||||
|
||||
:[range]SmplVarCol [nr] [/format/]
|
||||
|
||||
Calculate the Population or Sample Variance for the specified column.
|
||||
|
||||
This outputs the result of the column `<nr>` within the range given. If no range
|
||||
is given, this will calculate the statistical variance of the whole column. If <nr> is not
|
||||
given, this calculates the variance for the column the cursor is on. Note, that the delimiter
|
||||
@@ -1041,13 +1039,17 @@ will be stripped away from each value and also empty values won't be considered.
|
||||
|
||||
The result is also available in the buffer-local variable `b:csv_result`.
|
||||
|
||||
3.30 Standard Deviation of a Column *StdDevCol_CSV*
|
||||
For the [/format/] part, see |format_number_csv|.
|
||||
|
||||
3.30 Standard Deviation of a Column *StdDevCol_CSV* *PopStdCol* *SmplStdCol*
|
||||
___________________________________
|
||||
|
||||
:[range]PopStdCol [nr] [/format/]
|
||||
|
||||
:[range]SmplStdCol [nr] [/format/]
|
||||
|
||||
Calculate the Population or Sample Standard Deviation for the specified column.
|
||||
|
||||
This outputs the result of the column `<nr>` within the range given. If no range
|
||||
is given, this will calculate the standard deviation of the whole column. If <nr> is not
|
||||
given, this calculates the standard deviation for the column the cursor is on. Note, that
|
||||
@@ -1055,6 +1057,8 @@ the delimiter will be stripped away from each value and also empty values won't
|
||||
|
||||
The result is also available in the buffer-local variable `b:csv_result`.
|
||||
|
||||
For the [/format/] part, see |format_number_csv|.
|
||||
|
||||
*:CSVDupColumn*
|
||||
3.31 Duplicate columns *DupColumn_CSV*
|
||||
----------------------
|
||||
@@ -1089,7 +1093,7 @@ This outputs the sum of the row [range]. If no range is given, this will
|
||||
calculate the sum for the current row. Note, that the delimiter will be
|
||||
stripped away from each value and also empty values won't be considered.
|
||||
|
||||
For the [/format/] part, see |MaxCol_CSV|.
|
||||
For the [/format/] part, see |format_number_csv|
|
||||
==============================================================================
|
||||
4. CSV Configuration *csv-configuration*
|
||||
|
||||
|
||||
@@ -46,8 +46,7 @@ the list of recognized template tag names.
|
||||
REASONML *graphql-reasonml*
|
||||
|
||||
GraphQL syntax support inside of ReasonML template strings using graphql-ppx
|
||||
is available when vim-reasonml (https://github.com/jordwalke/vim-reasonml) is
|
||||
also installed.
|
||||
is available.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
vim:tw=78:ft=help:norl:
|
||||
|
||||
107
doc/vim-go.txt
107
doc/vim-go.txt
@@ -426,10 +426,6 @@ CTRL-t
|
||||
|
||||
If [!] is not given the first error is jumped to.
|
||||
|
||||
If using neovim `:GoTestFunc` will run in a new terminal or run
|
||||
asynchronously in the background according to |'g:go_term_enabled'|. You
|
||||
can set the mode of the new terminal with |'g:go_term_mode'|.
|
||||
|
||||
*:GoTestCompile*
|
||||
:GoTestCompile[!] [expand]
|
||||
|
||||
@@ -441,10 +437,6 @@ CTRL-t
|
||||
|
||||
If [!] is not given the first error is jumped to.
|
||||
|
||||
If using neovim `:GoTestCompile` will run in a new terminal or run
|
||||
asynchronously in the background according to |'g:go_term_enabled'|. You
|
||||
can set the mode of the new terminal with |'g:go_term_mode'|.
|
||||
|
||||
*:GoCoverage*
|
||||
:GoCoverage[!] [options]
|
||||
|
||||
@@ -802,7 +794,7 @@ CTRL-t
|
||||
You can define a constant value instead of the default field based value.
|
||||
For example the following command will add ``valid:"1"`` to all fields.
|
||||
>
|
||||
:GoAddTags valid=1
|
||||
:GoAddTags valid:1
|
||||
<
|
||||
*:GoRemoveTags*
|
||||
:[range]GoRemoveTags [key],[option] [key1],[option1] ...
|
||||
@@ -1483,6 +1475,14 @@ accuracy or `godef` for its performance. Valid options are `godef`, `gopls`,
|
||||
and `guru`.
|
||||
>
|
||||
let g:go_def_mode = 'gopls'
|
||||
<
|
||||
*'g:go_fillstruct_mode'*
|
||||
|
||||
Use this option to define the command to be used for |:GoFillStruct|. By
|
||||
default `fillstruct` is used. Valid values are `fillstruct` and `gopls`. By
|
||||
default it is `fillstruct`.
|
||||
>
|
||||
let g:go_fillstruct_mode = 'fillstruct'
|
||||
<
|
||||
*'g:go_referrers_mode'*
|
||||
|
||||
@@ -1789,25 +1789,34 @@ same.
|
||||
|
||||
*'g:go_gopls_enabled'*
|
||||
|
||||
Specifies whether `gopls` can be used by vim-go. By default gopls is enabled.
|
||||
When gopls is disabled completion will not work and other configuration
|
||||
Specifies whether `gopls` can be used by vim-go.
|
||||
|
||||
Completion will not work when gopls is disabled and other configuration
|
||||
options may also need to be adjusted.
|
||||
|
||||
By default gopls is enabled.
|
||||
|
||||
>
|
||||
let g:go_gopls_enabled = 1
|
||||
<
|
||||
|
||||
*'g:go_gopls_options'*
|
||||
|
||||
The commandline arguments to pass to gopls. By default, it's `-remote=auto`.
|
||||
The commandline arguments to pass to gopls.
|
||||
|
||||
By default, it is `['-remote=auto']`.
|
||||
>
|
||||
let g:go_gopls_options = []
|
||||
let g:go_gopls_options = ['-remote=auto']
|
||||
<
|
||||
|
||||
*'g:go_gopls_analyses'*
|
||||
|
||||
The analyses settings for `gopls`. By default, it's `v:null`. Valid map values
|
||||
are `v:true` and `v:false`.
|
||||
The analyses settings for `gopls`.
|
||||
|
||||
The Expected value is either `v:null` or a dictionary. The dictionary will be
|
||||
provided to `gopls` via json-rpc, so dictionary values need to be of the
|
||||
appropriate type for Vim to convert to JSON (e.g. truthy dictionary values
|
||||
should be `v:true` or `v:false`). By default, it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_analyses = v:null
|
||||
<
|
||||
@@ -1815,34 +1824,36 @@ are `v:true` and `v:false`.
|
||||
*'g:go_gopls_complete_unimported'*
|
||||
|
||||
Specifies whether `gopls` should include suggestions from unimported packages.
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is
|
||||
`v:null`.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_complete_unimported = v:null
|
||||
<
|
||||
|
||||
*'g:go_gopls_deep_completion'*
|
||||
|
||||
Specifies whether `gopls` should use deep completion. When it is `v:null`,
|
||||
`gopls`' default will be used. By default it is `v:null`.
|
||||
Specifies whether `gopls` should use deep completion.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_deep_completion = v:null
|
||||
<
|
||||
|
||||
*'g:go_gopls_matcher'*
|
||||
|
||||
Specifies how `gopls` should match for completions. Valid values are `v:null`,
|
||||
`fuzzy`, and `caseSensitive`. When it is `v:null`, `gopls`' default will be
|
||||
used. By default it is `v:null`.
|
||||
Specifies how `gopls` should match for completions.
|
||||
|
||||
Valid values are `v:null`, `fuzzy`, and `caseSensitive`. When it is `v:null`,
|
||||
`gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_matcher = v:null
|
||||
<
|
||||
|
||||
*'g:go_gopls_staticcheck'*
|
||||
|
||||
Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
|
||||
`gopls`' default will be used. By default it is `v:null`.
|
||||
Specifies whether `gopls` should run staticcheck checks.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_staticcheck = v:null
|
||||
<
|
||||
@@ -1852,8 +1863,9 @@ Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
|
||||
Specifies whether `gopls` can provide placeholders for function parameters and
|
||||
struct fields. When set, completion items will be treated as anonymous
|
||||
snippets if UltiSnips is installed and configured to be used as
|
||||
|'g:go_snippet_engine'|. When it is `v:null`, `gopls`' default will be used.
|
||||
By default it is `v:null`.
|
||||
|'g:go_snippet_engine'|.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_use_placeholders = v:null
|
||||
<
|
||||
@@ -1861,8 +1873,9 @@ By default it is `v:null`.
|
||||
*'g:go_gopls_temp_modfile'*
|
||||
|
||||
Specifies whether `gopls` should use a temp modfile and suggest edits rather
|
||||
than modifying the ambient go.mod file. When it is `v:null`, `gopls`' default
|
||||
will be used. By default it is `v:null`.
|
||||
than modifying the ambient go.mod file.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_temp_modfile = v:null
|
||||
<
|
||||
@@ -1870,17 +1883,41 @@ will be used. By default it is `v:null`.
|
||||
*'g:go_gopls_local'*
|
||||
|
||||
Specifies the prefix for imports that `gopls` should consider group
|
||||
separately. When it is `v:null`, `gopls`' default will be used. By default it
|
||||
is `v:null`.
|
||||
separately.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_local = v:null
|
||||
<
|
||||
|
||||
*'g:go_gopls_gofumpt'*
|
||||
|
||||
Specifies whether `gopls` should use `gofumpt` for formatting.
|
||||
|
||||
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_gofumpt = v:null
|
||||
<
|
||||
|
||||
*'g:go_gopls_settings'*
|
||||
|
||||
Specifies `gopls` workspace settings for `gopls` that are not yet officially
|
||||
supported by vim-go.
|
||||
|
||||
Any value in the dictionary will be overridden by values provided in the
|
||||
specific options supported by vim-go (e.g. g:go_gopls_staticcheck) or
|
||||
settings statically configured by vim-go to ensure expected behavior. By
|
||||
default it is `v:null`.
|
||||
>
|
||||
let g:go_gopls_settings = v:null
|
||||
<
|
||||
*'g:go_diagnostics_enabled'*
|
||||
|
||||
Specifies whether `gopls` diagnostics are enabled. Only the diagnostics for
|
||||
the current buffer will be processed when it is not set; all others will be
|
||||
ignored. By default it is disabled.
|
||||
ignored.
|
||||
|
||||
By default it is disabled.
|
||||
>
|
||||
let g:go_diagnostics_enabled = 0
|
||||
<
|
||||
@@ -2305,6 +2342,14 @@ The rest of the commands and mappings become available after executing
|
||||
Use `-test.flag` to pass flags to `go test` when debugging a test; for
|
||||
example `-test.v` or `-test.run TestFoo`
|
||||
|
||||
*:GoDebugTestFunc*
|
||||
:GoDebugTestFunc [expand]
|
||||
|
||||
Behaves the same as |:GoDebugTest| and implicitly adds `-test.run` to run
|
||||
the nearest test or example function (i.e the nearest function declaration
|
||||
that matches `func Test` or `func Example`) at or previous to the cursor.
|
||||
Search will not wrap around when at the top of the file.
|
||||
|
||||
*:GoDebugRestart*
|
||||
:GoDebugRestart
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ CONFIG *vim-jsx-pretty-config*
|
||||
|---------------------------------------|---------|----------------------|
|
||||
| g:vim_jsx_pretty_enable_jsx_highlight | 1 | jsx highlight flag |
|
||||
| g:vim_jsx_pretty_colorful_config | 0 | colorful config flag |
|
||||
| g:vim_jsx_pretty_disable_js | 0 | js toggle flag |
|
||||
<
|
||||
|
||||
- *g:vim_jsx_pretty_enable_jsx_highlight*
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
98
ftplugin/bzl.vim
Normal file
98
ftplugin/bzl.vim
Normal file
@@ -0,0 +1,98 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bzl') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Bazel (http://bazel.io)
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||
" Last Change: 2015 Aug 11
|
||||
|
||||
""
|
||||
" @section Introduction, intro
|
||||
" Core settings for the bzl filetype, used for BUILD and *.bzl files for the
|
||||
" Bazel build system (http://bazel.io/).
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" Vim 7.4.051 has opinionated settings in ftplugin/python.vim that try to force
|
||||
" PEP8 conventions on every python file, but these conflict with Google's
|
||||
" indentation guidelines. As a workaround, we explicitly source the system
|
||||
" ftplugin, but save indentation settings beforehand and restore them after.
|
||||
let s:save_expandtab = &l:expandtab
|
||||
let s:save_shiftwidth = &l:shiftwidth
|
||||
let s:save_softtabstop = &l:softtabstop
|
||||
let s:save_tabstop = &l:tabstop
|
||||
|
||||
" NOTE: Vim versions before 7.3.511 had a ftplugin/python.vim that was broken
|
||||
" for compatible mode.
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Load base python ftplugin (also defines b:did_ftplugin).
|
||||
source $VIMRUNTIME/ftplugin/python.vim
|
||||
|
||||
" NOTE: Vim versions before 7.4.104 and later set this in ftplugin/python.vim.
|
||||
setlocal comments=b:#,fb:-
|
||||
|
||||
" Restore pre-existing indentation settings.
|
||||
let &l:expandtab = s:save_expandtab
|
||||
let &l:shiftwidth = s:save_shiftwidth
|
||||
let &l:softtabstop = s:save_softtabstop
|
||||
let &l:tabstop = s:save_tabstop
|
||||
|
||||
setlocal formatoptions-=t
|
||||
|
||||
" Make gf work with imports in BUILD files.
|
||||
setlocal includeexpr=substitute(v:fname,'//','','')
|
||||
|
||||
" Enable syntax-based folding, if specified.
|
||||
if get(g:, 'ft_bzl_fold', 0)
|
||||
setlocal foldmethod=syntax
|
||||
setlocal foldtext=BzlFoldText()
|
||||
endif
|
||||
|
||||
if exists('*BzlFoldText')
|
||||
finish
|
||||
endif
|
||||
|
||||
function BzlFoldText() abort
|
||||
let l:start_num = nextnonblank(v:foldstart)
|
||||
let l:end_num = prevnonblank(v:foldend)
|
||||
|
||||
if l:end_num <= l:start_num + 1
|
||||
" If the fold is empty, don't print anything for the contents.
|
||||
let l:content = ''
|
||||
else
|
||||
" Otherwise look for something matching the content regex.
|
||||
" And if nothing matches, print an ellipsis.
|
||||
let l:content = '...'
|
||||
for l:line in getline(l:start_num + 1, l:end_num - 1)
|
||||
let l:content_match = matchstr(l:line, '\m\C^\s*name = \zs.*\ze,$')
|
||||
if !empty(l:content_match)
|
||||
let l:content = l:content_match
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
|
||||
" Enclose content with start and end
|
||||
let l:start_text = getline(l:start_num)
|
||||
let l:end_text = substitute(getline(l:end_num), '^\s*', '', '')
|
||||
let l:text = l:start_text . ' ' . l:content . ' ' . l:end_text
|
||||
|
||||
" Compute the available width for the displayed text.
|
||||
let l:width = winwidth(0) - &foldcolumn - (&number ? &numberwidth : 0)
|
||||
let l:lines_folded = ' ' . string(1 + v:foldend - v:foldstart) . ' lines'
|
||||
|
||||
" Expand tabs, truncate, pad, and concatenate
|
||||
let l:text = substitute(l:text, '\t', repeat(' ', &tabstop), 'g')
|
||||
let l:text = strpart(l:text, 0, l:width - len(l:lines_folded))
|
||||
let l:padding = repeat(' ', l:width - len(l:lines_folded) - len(l:text))
|
||||
return l:text . l:padding . l:lines_folded
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
23
ftplugin/dosini.vim
Normal file
23
ftplugin/dosini.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dosini') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Configuration File (ini file) for MSDOS/MS Windows
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
23
ftplugin/groovy.vim
Normal file
23
ftplugin/groovy.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'groovy') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: groovy
|
||||
" Maintainer: Justin M. Keyes <justinkz@gmail.com>
|
||||
" Last Change: 2016 May 22
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
let b:undo_ftplugin = 'setlocal commentstring<'
|
||||
|
||||
setlocal commentstring=//%s
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
@@ -15,11 +15,86 @@ set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl fo< tw< cole< cocu< keywordprg<"
|
||||
|
||||
setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help
|
||||
setlocal formatoptions+=tcroql textwidth=78
|
||||
if has("conceal")
|
||||
setlocal cole=2 cocu=nc
|
||||
endif
|
||||
|
||||
" Prefer Vim help instead of manpages.
|
||||
setlocal keywordprg=:help
|
||||
|
||||
if !exists('g:no_plugin_maps')
|
||||
function! s:show_toc() abort
|
||||
let bufname = bufname('%')
|
||||
let info = getloclist(0, {'winid': 1})
|
||||
if !empty(info) && getwinvar(info.winid, 'qf_toc') ==# bufname
|
||||
lopen
|
||||
return
|
||||
endif
|
||||
|
||||
let toc = []
|
||||
let lnum = 2
|
||||
let last_line = line('$') - 1
|
||||
let last_added = 0
|
||||
let has_section = 0
|
||||
let has_sub_section = 0
|
||||
|
||||
while lnum && lnum <= last_line
|
||||
let level = 0
|
||||
let add_text = ''
|
||||
let text = getline(lnum)
|
||||
|
||||
if text =~# '^=\+$' && lnum + 1 < last_line
|
||||
" A de-facto section heading. Other headings are inferred.
|
||||
let has_section = 1
|
||||
let has_sub_section = 0
|
||||
let lnum = nextnonblank(lnum + 1)
|
||||
let text = getline(lnum)
|
||||
let add_text = text
|
||||
while add_text =~# '\*[^*]\+\*\s*$'
|
||||
let add_text = matchstr(add_text, '.*\ze\*[^*]\+\*\s*$')
|
||||
endwhile
|
||||
elseif text =~# '^[A-Z0-9][-A-ZA-Z0-9 .][-A-Z0-9 .():]*\%([ \t]\+\*.\+\*\)\?$'
|
||||
" Any line that's yelling is important.
|
||||
let has_sub_section = 1
|
||||
let level = has_section
|
||||
let add_text = matchstr(text, '.\{-}\ze\s*\%([ \t]\+\*.\+\*\)\?$')
|
||||
elseif text =~# '\~$'
|
||||
\ && matchstr(text, '^\s*\zs.\{-}\ze\s*\~$') !~# '\t\|\s\{2,}'
|
||||
\ && getline(lnum - 1) =~# '^\s*<\?$\|^\s*\*.*\*$'
|
||||
\ && getline(lnum + 1) =~# '^\s*>\?$\|^\s*\*.*\*$'
|
||||
" These lines could be headers or code examples. We only want the
|
||||
" ones that have subsequent lines at the same indent or more.
|
||||
let l = nextnonblank(lnum + 1)
|
||||
if getline(l) =~# '\*[^*]\+\*$'
|
||||
" Ignore tag lines
|
||||
let l = nextnonblank(l + 1)
|
||||
endif
|
||||
|
||||
if indent(lnum) <= indent(l)
|
||||
let level = has_section + has_sub_section
|
||||
let add_text = matchstr(text, '\S.*')
|
||||
endif
|
||||
endif
|
||||
|
||||
let add_text = substitute(add_text, '\s\+$', '', 'g')
|
||||
if !empty(add_text) && last_added != lnum
|
||||
let last_added = lnum
|
||||
call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum,
|
||||
\ 'text': repeat(' ', level) . add_text})
|
||||
endif
|
||||
let lnum = nextnonblank(lnum + 1)
|
||||
endwhile
|
||||
|
||||
call setloclist(0, toc, ' ')
|
||||
call setloclist(0, [], 'a', {'title': 'Help TOC'})
|
||||
lopen
|
||||
let w:qf_toc = bufname
|
||||
endfunction
|
||||
|
||||
nnoremap <silent><buffer> gO :call <sid>show_toc()<cr>
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
|
||||
334
ftplugin/idris2.vim
Normal file
334
ftplugin/idris2.vim
Normal file
@@ -0,0 +1,334 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
|
||||
|
||||
if bufname('%') == "idris-response"
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
setlocal shiftwidth=2
|
||||
setlocal tabstop=2
|
||||
if !exists("g:idris_allow_tabchar") || g:idris_allow_tabchar == 0
|
||||
setlocal expandtab
|
||||
endif
|
||||
setlocal comments=s1:{-,mb:-,ex:-},:\|\|\|,:--
|
||||
setlocal commentstring=--%s
|
||||
setlocal iskeyword+=?
|
||||
setlocal wildignore+=*.ibc
|
||||
|
||||
let idris_response = 0
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Text near cursor position that needs to be passed to a command.
|
||||
" Refinment of `expand(<cword>)` to accomodate differences between
|
||||
" a (n)vim word and what Idris requires.
|
||||
function! s:currentQueryObject()
|
||||
let word = expand("<cword>")
|
||||
if word =~ '^?'
|
||||
" Cut off '?' that introduces a hole identifier.
|
||||
let word = strpart(word, 1)
|
||||
endif
|
||||
return word
|
||||
endfunction
|
||||
|
||||
function! s:IdrisCommand(...)
|
||||
let idriscmd = shellescape(join(a:000))
|
||||
" echo("idris2 " . expand ('%:p') . " --client " . idriscmd)
|
||||
return system("idris2 --find-ipkg " . shellescape(expand('%:p')) . " --client " . idriscmd)
|
||||
endfunction
|
||||
|
||||
function! IdrisDocFold(lineNum)
|
||||
let line = getline(a:lineNum)
|
||||
|
||||
if line =~ "^\s*|||"
|
||||
return "1"
|
||||
endif
|
||||
|
||||
return "0"
|
||||
endfunction
|
||||
|
||||
function! IdrisFold(lineNum)
|
||||
return IdrisDocFold(a:lineNum)
|
||||
endfunction
|
||||
|
||||
setlocal foldmethod=expr
|
||||
setlocal foldexpr=IdrisFold(v:lnum)
|
||||
|
||||
function! IdrisResponseWin()
|
||||
if (!bufexists("idris-response"))
|
||||
botright 10split
|
||||
badd idris-response
|
||||
b idris-response
|
||||
let g:idris_respwin = "active"
|
||||
set buftype=nofile
|
||||
wincmd k
|
||||
elseif (bufexists("idris-response") && g:idris_respwin == "hidden")
|
||||
botright 10split
|
||||
b idris-response
|
||||
let g:idris_respwin = "active"
|
||||
wincmd k
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisHideResponseWin()
|
||||
let g:idris_respwin = "hidden"
|
||||
endfunction
|
||||
|
||||
function! IdrisShowResponseWin()
|
||||
let g:idris_respwin = "active"
|
||||
endfunction
|
||||
|
||||
function! IWrite(str)
|
||||
if (bufexists("idris-response"))
|
||||
let save_cursor = getcurpos()
|
||||
b idris-response
|
||||
%delete
|
||||
let resp = split(a:str, '\n')
|
||||
call append(1, resp)
|
||||
b #
|
||||
call setpos('.', save_cursor)
|
||||
else
|
||||
echo a:str
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisReload(q)
|
||||
w
|
||||
let file = expand('%:p')
|
||||
let tc = system("idris2 --find-ipkg " . shellescape(file) . " --client ''")
|
||||
if (! (tc is ""))
|
||||
call IWrite(tc)
|
||||
else
|
||||
if (a:q==0)
|
||||
call IWrite("Successfully reloaded " . file)
|
||||
endif
|
||||
endif
|
||||
return tc
|
||||
endfunction
|
||||
|
||||
function! IdrisReloadToLine(cline)
|
||||
return IdrisReload(1)
|
||||
"w
|
||||
"let file = expand("%:p")
|
||||
"let tc = s:IdrisCommand(":lto", a:cline, file)
|
||||
"if (! (tc is ""))
|
||||
" call IWrite(tc)
|
||||
"endif
|
||||
"return tc
|
||||
endfunction
|
||||
|
||||
function! IdrisShowType()
|
||||
w
|
||||
let word = s:currentQueryObject()
|
||||
let cline = line(".")
|
||||
let ccol = col(".")
|
||||
let ty = s:IdrisCommand(":t", word)
|
||||
call IWrite(ty)
|
||||
endfunction
|
||||
|
||||
function! IdrisShowDoc()
|
||||
w
|
||||
let word = expand("<cword>")
|
||||
let ty = s:IdrisCommand(":doc", word)
|
||||
call IWrite(ty)
|
||||
endfunction
|
||||
|
||||
function! IdrisProofSearch(hint)
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = s:currentQueryObject()
|
||||
|
||||
if (a:hint==0)
|
||||
let hints = ""
|
||||
else
|
||||
let hints = input ("Hints: ")
|
||||
endif
|
||||
|
||||
let result = s:IdrisCommand(":ps!", cline, word, hints)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisGenerateDef()
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = s:currentQueryObject()
|
||||
|
||||
let result = s:IdrisCommand(":gd!", cline, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisMakeLemma()
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = s:currentQueryObject()
|
||||
|
||||
let result = s:IdrisCommand(":ml!", cline, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
call search(word, "b")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisRefine()
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = expand("<cword>")
|
||||
let name = input ("Name: ")
|
||||
|
||||
let result = s:IdrisCommand(":ref!", cline, word, name)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisAddMissing()
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = expand("<cword>")
|
||||
|
||||
let result = s:IdrisCommand(":am!", cline, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisCaseSplit()
|
||||
w
|
||||
let view = winsaveview()
|
||||
let cline = line(".")
|
||||
let ccol = col(".")
|
||||
let word = expand("<cword>")
|
||||
let result = s:IdrisCommand(":cs!", cline, ccol, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisMakeWith()
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = s:currentQueryObject()
|
||||
let tc = IdrisReload(1)
|
||||
|
||||
let result = s:IdrisCommand(":mw!", cline, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
call search("_")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisMakeCase()
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = s:currentQueryObject()
|
||||
|
||||
let result = s:IdrisCommand(":mc!", cline, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
call search("_")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisAddClause(proof)
|
||||
let view = winsaveview()
|
||||
w
|
||||
let cline = line(".")
|
||||
let word = expand("<cword>")
|
||||
|
||||
if (a:proof==0)
|
||||
let fn = ":ac!"
|
||||
else
|
||||
let fn = ":apc!"
|
||||
endif
|
||||
|
||||
let result = s:IdrisCommand(fn, cline, word)
|
||||
if (! (result is ""))
|
||||
call IWrite(result)
|
||||
else
|
||||
e
|
||||
call winrestview(view)
|
||||
call search(word)
|
||||
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! IdrisEval()
|
||||
w
|
||||
let expr = input ("Expression: ")
|
||||
let result = s:IdrisCommand(expr)
|
||||
call IWrite(" = " . result)
|
||||
endfunction
|
||||
|
||||
nnoremap <buffer> <silent> <LocalLeader>t :call IdrisShowType()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>r :call IdrisReload(0)<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>c :call IdrisCaseSplit()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>a 0:call search(":")<ENTER>b:call IdrisAddClause(0)<ENTER>w
|
||||
nnoremap <buffer> <silent> <LocalLeader>d 0:call search(":")<ENTER>b:call IdrisAddClause(0)<ENTER>w
|
||||
nnoremap <buffer> <silent> <LocalLeader>b 0:call IdrisAddClause(0)<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>m :call IdrisAddMissing()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>md 0:call search(":")<ENTER>b:call IdrisAddClause(1)<ENTER>w
|
||||
nnoremap <buffer> <silent> <LocalLeader>f :call IdrisRefine()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>o :call IdrisProofSearch(0)<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>s :call IdrisProofSearch(0)<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>g :call IdrisGenerateDef()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>p :call IdrisProofSearch(1)<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>l :call IdrisMakeLemma()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>e :call IdrisEval()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>w 0:call IdrisMakeWith()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>mc :call IdrisMakeCase()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>i 0:call IdrisResponseWin()<ENTER>
|
||||
nnoremap <buffer> <silent> <LocalLeader>h :call IdrisShowDoc()<ENTER>
|
||||
|
||||
menu Idris.Reload <LocalLeader>r
|
||||
menu Idris.Show\ Type <LocalLeader>t
|
||||
menu Idris.Evaluate <LocalLeader>e
|
||||
menu Idris.-SEP0- :
|
||||
menu Idris.Add\ Clause <LocalLeader>a
|
||||
menu Idris.Generate\ Definition <LocalLeader>g
|
||||
menu Idris.Add\ with <LocalLeader>w
|
||||
menu Idris.Case\ Split <LocalLeader>c
|
||||
menu Idris.Add\ missing\ cases <LocalLeader>m
|
||||
menu Idris.Proof\ Search <LocalLeader>s
|
||||
menu Idris.Proof\ Search\ with\ hints <LocalLeader>p
|
||||
|
||||
au BufHidden idris-response call IdrisHideResponseWin()
|
||||
au BufEnter idris-response call IdrisShowResponseWin()
|
||||
|
||||
endif
|
||||
24
ftplugin/prolog.vim
Normal file
24
ftplugin/prolog.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'prolog') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Prolog
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
49
ftplugin/vb.vim
Normal file
49
ftplugin/vb.vim
Normal file
@@ -0,0 +1,49 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'visual-basic') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: VisualBasic (ft=vb)
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
|
||||
|
||||
" we need this wrapper, as call doesn't allow a count
|
||||
fun! <SID>VbSearch(pattern, flags)
|
||||
let cnt = v:count1
|
||||
while cnt > 0
|
||||
call search(a:pattern, a:flags)
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
endfun
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" NOTE the double escaping \\|
|
||||
nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
|
||||
nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
|
||||
nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
|
||||
nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
|
||||
|
||||
" matchit support
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase=1
|
||||
let b:match_words=
|
||||
\ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
|
||||
\ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
|
||||
\ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
|
||||
\ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
|
||||
\ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
|
||||
\ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
|
||||
\ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
29
ftplugin/yaml.vim
Normal file
29
ftplugin/yaml.vim
Normal file
@@ -0,0 +1,29 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: YAML (YAML Ain't Markup Language)
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> (inactive)
|
||||
" Last Change: 2020 Mar 02
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< et< fo<"
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s expandtab
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
if !exists("g:yaml_recommended_style") || g:yaml_recommended_style != 0
|
||||
let b:undo_ftplugin .= " sw< sts<"
|
||||
setlocal shiftwidth=2 softtabstop=2
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
@@ -21,14 +21,31 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal suffixesadd=.zig,.zir
|
||||
setlocal makeprg=zig\ build
|
||||
|
||||
if has("comments")
|
||||
if has('comments')
|
||||
setlocal comments=:///,://!,://,:\\\\
|
||||
setlocal commentstring=//\ %s
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setl et< ts< sts< sw< fo< sua< mp< com< cms<"
|
||||
if has('find_in_path')
|
||||
let &l:includeexpr='substitute(v:fname, "^([^.])$", "\1.zig", "")'
|
||||
let &l:include='\v(\@import>|\@cInclude>|^\s*\#\s*include)'
|
||||
endif
|
||||
|
||||
let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
|
||||
|
||||
if exists("*json_decode") && executable('zig')
|
||||
silent let s:env = system('zig env')
|
||||
if v:shell_error == 0
|
||||
let &l:path=json_decode(s:env)['std_dir'] . ',' . &l:path
|
||||
endif
|
||||
unlet! s:env
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin =
|
||||
\ 'setl et< ts< sts< sw< fo< sua< mp< com< cms< inex< inc< pa<'
|
||||
|
||||
let &cpo = s:cpo_orig
|
||||
unlet s:cpo_orig
|
||||
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|
||||
|
||||
endif
|
||||
|
||||
130
heuristics.yaml
130
heuristics.yaml
@@ -11,18 +11,32 @@ rules:
|
||||
---
|
||||
extensions: [asa]
|
||||
rules:
|
||||
- override: "g:filetype_asa"
|
||||
- override: true
|
||||
- filetype: aspvbs
|
||||
---
|
||||
extensions: [asp]
|
||||
rules:
|
||||
- override: "g:filetype_asp"
|
||||
- override: true
|
||||
- lines: 3
|
||||
pattern: 'perlscript'
|
||||
ignore_case: true
|
||||
filetype: aspperl
|
||||
- filetype: aspvbs
|
||||
---
|
||||
extensions: [h]
|
||||
rules:
|
||||
- lines: 200
|
||||
pattern: '^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])'
|
||||
rules:
|
||||
- if_exists: "g:c_syntax_for_h"
|
||||
filetype: objc
|
||||
- filetype: objcpp
|
||||
- if_exists: "g:c_syntax_for_h"
|
||||
filetype: c
|
||||
- if_exists: "g:ch_syntax_for_h"
|
||||
filetype: ch
|
||||
- filetype: cpp
|
||||
---
|
||||
extensions: [m]
|
||||
rules:
|
||||
- lines: 100
|
||||
@@ -40,7 +54,7 @@ rules:
|
||||
filetype: murphi
|
||||
- if_set: "saw_comment"
|
||||
filetype: objc
|
||||
- override: "g:filetype_m"
|
||||
- override: true
|
||||
- filetype: octave
|
||||
---
|
||||
extensions: [fs]
|
||||
@@ -53,7 +67,7 @@ rules:
|
||||
filetype: fsharp
|
||||
- pattern: '\s*(#version|precision|uniform|varying|vec[234])'
|
||||
filetype: glsl
|
||||
- override: "g:filetype_fs"
|
||||
- override: true
|
||||
- filetype: forth
|
||||
---
|
||||
extensions: [re]
|
||||
@@ -63,3 +77,111 @@ rules:
|
||||
- pattern: '^\s*#(?:(?:if|ifdef|define|pragma)\s+\w|\s*include\s+[<"]|template\s*<)'
|
||||
filetype: cpp
|
||||
- filetype: reason
|
||||
---
|
||||
extensions: [idr]
|
||||
rules:
|
||||
- lines: 5
|
||||
rules:
|
||||
- pattern: '^\s*--.*[Ii]dris ?1'
|
||||
filetype: idris
|
||||
- pattern: '^\s*--.*[Ii]dris ?2'
|
||||
filetype: idris2
|
||||
- lines: 30
|
||||
rules:
|
||||
- pattern: '^pkgs =.*'
|
||||
filetype: idris
|
||||
- pattern: '^depends =.*'
|
||||
filetype: idris2
|
||||
- pattern: '^%language (TypeProviders|ElabReflection)'
|
||||
filetype: idris
|
||||
- pattern: '^%language PostfixProjections'
|
||||
filetype: idris2
|
||||
- pattern: '^%access .*'
|
||||
filetype: idris
|
||||
- override: true
|
||||
- filetype: idris2
|
||||
---
|
||||
extensions: [lidr]
|
||||
rules:
|
||||
- lines: 200
|
||||
pattern: '^>\s*--.*[Ii]dris ?1'
|
||||
filetype: lidris
|
||||
- filetype: lidris2
|
||||
---
|
||||
extensions: [bas]
|
||||
rules:
|
||||
- lines: 5
|
||||
pattern: 'VB_Name|Begin VB\.(Form|MDIForm|UserControl)'
|
||||
filetype: vb
|
||||
ignore_case: true
|
||||
- filetype: basic
|
||||
---
|
||||
extensions: [pm]
|
||||
rules:
|
||||
- lines: 1
|
||||
rules:
|
||||
- pattern: 'XPM2'
|
||||
filetype: xpm2
|
||||
- pattern: 'XPM'
|
||||
filetype: xpm
|
||||
- lines: 50
|
||||
rules:
|
||||
- pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
|
||||
filetype: raku
|
||||
- pattern: '\buse\s+(?:strict\b|v?5\.)'
|
||||
filetype: perl
|
||||
- override: true
|
||||
- filetype: perl
|
||||
---
|
||||
extensions: [pl]
|
||||
rules:
|
||||
- lines: 1
|
||||
or:
|
||||
- pattern: '^[^#]*:-'
|
||||
- pattern: '^\s*(?:%|/\*)'
|
||||
- pattern: '\.\s*$'
|
||||
filetype: prolog
|
||||
- lines: 50
|
||||
rules:
|
||||
- pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
|
||||
filetype: raku
|
||||
- pattern: '\buse\s+(?:strict\b|v?5\.)'
|
||||
filetype: perl
|
||||
- override: true
|
||||
- filetype: perl
|
||||
---
|
||||
extensions: [t]
|
||||
rules:
|
||||
- lines: 5
|
||||
pattern: '^\.'
|
||||
filetype: nroff
|
||||
- lines: 50
|
||||
rules:
|
||||
- pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
|
||||
filetype: raku
|
||||
- pattern: '\buse\s+(?:strict\b|v?5\.)'
|
||||
filetype: perl
|
||||
## I haven't found turing syntax for vim...
|
||||
# - pattern: '^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+'
|
||||
# filetype: turing
|
||||
- override: true
|
||||
- filetype: perl
|
||||
---
|
||||
extensions: [tt2]
|
||||
rules:
|
||||
- lines: 3
|
||||
pattern: '<(?:!DOCTYPE HTML|[%?]|html)'
|
||||
ignore_case: true
|
||||
filetype: tt2html
|
||||
- filetype: tt2
|
||||
---
|
||||
extensions: [html]
|
||||
rules:
|
||||
- lines: 1
|
||||
pattern: '^(%|<[%&].*>)'
|
||||
filetype: mason
|
||||
- lines: 50
|
||||
pattern: '{{.*}}|{%-?\s*(end.*|extends|block|macro|set|if|for|include|trans)\b'
|
||||
filetype: jinja.html
|
||||
- filetype: html
|
||||
|
||||
|
||||
98
indent/bzl.vim
Normal file
98
indent/bzl.vim
Normal file
@@ -0,0 +1,98 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bzl') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: Bazel (http://bazel.io)
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||
" Last Change: 2017 Jun 13
|
||||
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Load base python indent.
|
||||
if !exists('*GetPythonIndent')
|
||||
runtime! indent/python.vim
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
" Only enable bzl google indent if python google indent is enabled.
|
||||
if !get(g:, 'no_google_python_indent')
|
||||
setlocal indentexpr=GetBzlIndent(v:lnum)
|
||||
endif
|
||||
|
||||
if exists('*GetBzlIndent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
" Maximum number of lines to look backwards.
|
||||
let s:maxoff = 50
|
||||
|
||||
""
|
||||
" Determine the correct indent level given an {lnum} in the current buffer.
|
||||
function GetBzlIndent(lnum) abort
|
||||
let l:use_recursive_indent = !get(g:, 'no_google_python_recursive_indent')
|
||||
if l:use_recursive_indent
|
||||
" Backup and override indent setting variables.
|
||||
if exists('g:pyindent_nested_paren')
|
||||
let l:pyindent_nested_paren = g:pyindent_nested_paren
|
||||
endif
|
||||
if exists('g:pyindent_open_paren')
|
||||
let l:pyindent_open_paren = g:pyindent_open_paren
|
||||
endif
|
||||
let g:pyindent_nested_paren = 'shiftwidth() * 2'
|
||||
let g:pyindent_open_paren = 'shiftwidth() * 2'
|
||||
endif
|
||||
|
||||
let l:indent = -1
|
||||
|
||||
" Indent inside parens.
|
||||
" Align with the open paren unless it is at the end of the line.
|
||||
" E.g.
|
||||
" open_paren_not_at_EOL(100,
|
||||
" (200,
|
||||
" 300),
|
||||
" 400)
|
||||
" open_paren_at_EOL(
|
||||
" 100, 200, 300, 400)
|
||||
call cursor(a:lnum, 1)
|
||||
let [l:par_line, l:par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
|
||||
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" .
|
||||
\ " synIDattr(synID(line('.'), col('.'), 1), 'name')" .
|
||||
\ " =~ '\\(Comment\\|String\\)$'")
|
||||
if l:par_line > 0
|
||||
call cursor(l:par_line, 1)
|
||||
if l:par_col != col('$') - 1
|
||||
let l:indent = l:par_col
|
||||
endif
|
||||
endif
|
||||
|
||||
" Delegate the rest to the original function.
|
||||
if l:indent == -1
|
||||
let l:indent = GetPythonIndent(a:lnum)
|
||||
endif
|
||||
|
||||
if l:use_recursive_indent
|
||||
" Restore global variables.
|
||||
if exists('l:pyindent_nested_paren')
|
||||
let g:pyindent_nested_paren = l:pyindent_nested_paren
|
||||
else
|
||||
unlet g:pyindent_nested_paren
|
||||
endif
|
||||
if exists('l:pyindent_open_paren')
|
||||
let g:pyindent_open_paren = l:pyindent_open_paren
|
||||
else
|
||||
unlet g:pyindent_open_paren
|
||||
endif
|
||||
endif
|
||||
|
||||
return l:indent
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
@@ -6,7 +6,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'erlang') == -1
|
||||
" Contributors: Edwin Fine <efine145_nospam01 at usa dot net>
|
||||
" Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
|
||||
" Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
|
||||
" Last Update: 2017-Feb-28
|
||||
" Last Update: 2020-Jun-11
|
||||
" License: Vim license
|
||||
" URL: https://github.com/vim-erlang/vim-erlang-runtime
|
||||
|
||||
|
||||
@@ -45,6 +45,10 @@ endif
|
||||
let s:cpo_save = &cpoptions
|
||||
set cpoptions&vim
|
||||
|
||||
" searchpair() skip expression that matches in comments and strings.
|
||||
let s:pair_skip_expr =
|
||||
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "comment\\|string"'
|
||||
|
||||
" Check if the character at lnum:col is inside a string.
|
||||
function s:InString(lnum, col)
|
||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') ==# 'graphqlString'
|
||||
@@ -61,18 +65,18 @@ function GetGraphQLIndent()
|
||||
let l:line = getline(v:lnum)
|
||||
|
||||
" If this line contains just a closing bracket, find its matching opening
|
||||
" bracket and indent the closing backet to match.
|
||||
" bracket and indent the closing bracket to match.
|
||||
let l:col = matchend(l:line, '^\s*[]})]')
|
||||
if l:col > 0 && !s:InString(v:lnum, l:col)
|
||||
let l:bracket = l:line[l:col - 1]
|
||||
call cursor(v:lnum, l:col)
|
||||
|
||||
if l:bracket is# '}'
|
||||
let l:matched = searchpair('{', '', '}', 'bW')
|
||||
elseif l:bracket is# ']'
|
||||
let l:matched = searchpair('\[', '', '\]', 'bW')
|
||||
elseif l:bracket is# ')'
|
||||
let l:matched = searchpair('(', '', ')', 'bW')
|
||||
let l:bracket = l:line[l:col - 1]
|
||||
if l:bracket ==# '}'
|
||||
let l:matched = searchpair('{', '', '}', 'bW', s:pair_skip_expr)
|
||||
elseif l:bracket ==# ']'
|
||||
let l:matched = searchpair('\[', '', '\]', 'bW', s:pair_skip_expr)
|
||||
elseif l:bracket ==# ')'
|
||||
let l:matched = searchpair('(', '', ')', 'bW', s:pair_skip_expr)
|
||||
else
|
||||
let l:matched = -1
|
||||
endif
|
||||
@@ -85,9 +89,8 @@ function GetGraphQLIndent()
|
||||
return indent(v:lnum)
|
||||
endif
|
||||
|
||||
" If the previous line contained an opening bracket, and we are still in it,
|
||||
" add indent depending on the bracket type.
|
||||
if getline(l:prevlnum) =~# '[[{(]\s*$'
|
||||
" If the previous line ended with an opening bracket, indent this line.
|
||||
if getline(l:prevlnum) =~# '\%(#.*\)\@<![[{(]\s*$'
|
||||
return indent(l:prevlnum) + shiftwidth()
|
||||
endif
|
||||
|
||||
|
||||
148
indent/idris2.vim
Normal file
148
indent/idris2.vim
Normal file
@@ -0,0 +1,148 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
|
||||
|
||||
" indentation for idris (idris-lang.org)
|
||||
"
|
||||
" Based on haskell indentation by motemen <motemen@gmail.com>
|
||||
"
|
||||
" author: raichoo (raichoo@googlemail.com)
|
||||
"
|
||||
" Modify g:idris_indent_if and g:idris_indent_case to
|
||||
" change indentation for `if'(default 3) and `case'(default 5).
|
||||
" Example (in .vimrc):
|
||||
" > let g:idris_indent_if = 2
|
||||
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
if !exists('g:idris_indent_if')
|
||||
" if bool
|
||||
" >>>then ...
|
||||
" >>>else ...
|
||||
let g:idris_indent_if = 3
|
||||
endif
|
||||
|
||||
if !exists('g:idris_indent_case')
|
||||
" case xs of
|
||||
" >>>>>[] => ...
|
||||
" >>>>>(y::ys) => ...
|
||||
let g:idris_indent_case = 5
|
||||
endif
|
||||
|
||||
if !exists('g:idris_indent_let')
|
||||
" let x : Nat = O in
|
||||
" >>>>x
|
||||
let g:idris_indent_let = 4
|
||||
endif
|
||||
|
||||
if !exists('g:idris_indent_rewrite')
|
||||
" rewrite prf in expr
|
||||
" >>>>>>>>x
|
||||
let g:idris_indent_rewrite = 8
|
||||
endif
|
||||
|
||||
if !exists('g:idris_indent_where')
|
||||
" where f : Nat -> Nat
|
||||
" >>>>>>f x = x
|
||||
let g:idris_indent_where = 6
|
||||
endif
|
||||
|
||||
if !exists('g:idris_indent_do')
|
||||
" do x <- a
|
||||
" >>>y <- b
|
||||
let g:idris_indent_do = 3
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetIdrisIndent()
|
||||
setlocal indentkeys=!^F,o,O,}
|
||||
|
||||
function! GetIdrisIndent()
|
||||
let prevline = getline(v:lnum - 1)
|
||||
|
||||
if prevline =~ '\s\+(\s*.\+\s\+:\s\+.\+\s*)\s\+->\s*$'
|
||||
return match(prevline, '(')
|
||||
elseif prevline =~ '\s\+{\s*.\+\s\+:\s\+.\+\s*}\s\+->\s*$'
|
||||
return match(prevline, '{')
|
||||
endif
|
||||
|
||||
if prevline =~ '[!#$%&*+./<>?@\\^|~-]\s*$'
|
||||
let s = match(prevline, '[:=]')
|
||||
if s > 0
|
||||
return s + 2
|
||||
else
|
||||
return match(prevline, '\S')
|
||||
endif
|
||||
endif
|
||||
|
||||
if prevline =~ '[{([][^})\]]\+$'
|
||||
return match(prevline, '[{([]')
|
||||
endif
|
||||
|
||||
if prevline =~ '\<let\>\s\+.\+\<in\>\s*$'
|
||||
return match(prevline, '\<let\>') + g:idris_indent_let
|
||||
endif
|
||||
|
||||
if prevline =~ '\<rewrite\>\s\+.\+\<in\>\s*$'
|
||||
return match(prevline, '\<rewrite\>') + g:idris_indent_rewrite
|
||||
endif
|
||||
|
||||
if prevline !~ '\<else\>'
|
||||
let s = match(prevline, '\<if\>.*\&.*\zs\<then\>')
|
||||
if s > 0
|
||||
return s
|
||||
endif
|
||||
|
||||
let s = match(prevline, '\<if\>')
|
||||
if s > 0
|
||||
return s + g:idris_indent_if
|
||||
endif
|
||||
endif
|
||||
|
||||
if prevline =~ '\(\<where\>\|\<do\>\|=\|[{([]\)\s*$'
|
||||
return match(prevline, '\S') + &shiftwidth
|
||||
endif
|
||||
|
||||
if prevline =~ '\<where\>\s\+\S\+.*$'
|
||||
return match(prevline, '\<where\>') + g:idris_indent_where
|
||||
endif
|
||||
|
||||
if prevline =~ '\<do\>\s\+\S\+.*$'
|
||||
return match(prevline, '\<do\>') + g:idris_indent_do
|
||||
endif
|
||||
|
||||
if prevline =~ '^\s*\<\(co\)\?data\>\s\+[^=]\+\s\+=\s\+\S\+.*$'
|
||||
return match(prevline, '=')
|
||||
endif
|
||||
|
||||
if prevline =~ '\<with\>\s\+([^)]*)\s*$'
|
||||
return match(prevline, '\S') + &shiftwidth
|
||||
endif
|
||||
|
||||
if prevline =~ '\<case\>\s\+.\+\<of\>\s*$'
|
||||
return match(prevline, '\<case\>') + g:idris_indent_case
|
||||
endif
|
||||
|
||||
if prevline =~ '^\s*\(\<namespace\>\|\<\(co\)\?data\>\)\s\+\S\+\s*$'
|
||||
return match(prevline, '\(\<namespace\>\|\<\(co\)\?data\>\)') + &shiftwidth
|
||||
endif
|
||||
|
||||
if prevline =~ '^\s*\(\<using\>\|\<parameters\>\)\s*([^(]*)\s*$'
|
||||
return match(prevline, '\(\<using\>\|\<parameters\>\)') + &shiftwidth
|
||||
endif
|
||||
|
||||
if prevline =~ '^\s*\<mutual\>\s*$'
|
||||
return match(prevline, '\<mutual\>') + &shiftwidth
|
||||
endif
|
||||
|
||||
let line = getline(v:lnum)
|
||||
|
||||
if (line =~ '^\s*}\s*' && prevline !~ '^\s*;')
|
||||
return match(prevline, '\S') - &shiftwidth
|
||||
endif
|
||||
|
||||
return match(prevline, '\S')
|
||||
endfunction
|
||||
|
||||
endif
|
||||
41
indent/odin.vim
Normal file
41
indent/odin.vim
Normal file
@@ -0,0 +1,41 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'odin') == -1
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nosmartindent
|
||||
setlocal nolisp
|
||||
setlocal autoindent
|
||||
|
||||
setlocal indentexpr=GetOdinIndent(v:lnum)
|
||||
|
||||
if exists("*GetOdinIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! GetOdinIndent(lnum)
|
||||
let prev = prevnonblank(a:lnum-1)
|
||||
|
||||
if prev == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let prevline = getline(prev)
|
||||
let line = getline(a:lnum)
|
||||
|
||||
let ind = indent(prev)
|
||||
|
||||
if prevline =~ '[({]\s*$'
|
||||
let ind += &sw
|
||||
endif
|
||||
|
||||
if line =~ '^\s*[)}]'
|
||||
let ind -= &sw
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
endif
|
||||
71
indent/prolog.vim
Normal file
71
indent/prolog.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'prolog') == -1
|
||||
|
||||
" vim: set sw=4 sts=4:
|
||||
" Maintainer : Gergely Kontra <kgergely@mcl.hu>
|
||||
" Revised on : 2002.02.18. 23:34:05
|
||||
" Language : Prolog
|
||||
" Last change by: Takuya Fujiwara, 2018 Sep 23
|
||||
|
||||
" TODO:
|
||||
" checking with respect to syntax highlighting
|
||||
" ignoring multiline comments
|
||||
" detecting multiline strings
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetPrologIndent()
|
||||
setlocal indentkeys-=:,0#
|
||||
setlocal indentkeys+=0%,-,0;,>,0)
|
||||
|
||||
" Only define the function once.
|
||||
"if exists("*GetPrologIndent")
|
||||
" finish
|
||||
"endif
|
||||
|
||||
function! GetPrologIndent()
|
||||
" Find a non-blank line above the current line.
|
||||
let pnum = prevnonblank(v:lnum - 1)
|
||||
" Hit the start of the file, use zero indent.
|
||||
if pnum == 0
|
||||
return 0
|
||||
endif
|
||||
let line = getline(v:lnum)
|
||||
let pline = getline(pnum)
|
||||
|
||||
let ind = indent(pnum)
|
||||
" Previous line was comment -> use previous line's indent
|
||||
if pline =~ '^\s*%'
|
||||
return ind
|
||||
endif
|
||||
" Previous line was the start of block comment -> +1 after '/*' comment
|
||||
if pline =~ '^\s*/\*'
|
||||
return ind + 1
|
||||
endif
|
||||
" Previous line was the end of block comment -> -1 after '*/' comment
|
||||
if pline =~ '^\s*\*/'
|
||||
return ind - 1
|
||||
endif
|
||||
" Check for clause head on previous line
|
||||
if pline =~ '\%(:-\|-->\)\s*\(%.*\)\?$'
|
||||
let ind = ind + shiftwidth()
|
||||
" Check for end of clause on previous line
|
||||
elseif pline =~ '\.\s*\(%.*\)\?$'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
" Check for opening conditional on previous line
|
||||
if pline =~ '^\s*\([(;]\|->\)'
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
" Check for closing an unclosed paren, or middle ; or ->
|
||||
if line =~ '^\s*\([);]\|->\)'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
endif
|
||||
@@ -10,11 +10,11 @@ let s:cpo_save = &cpoptions
|
||||
set cpoptions&vim
|
||||
|
||||
setlocal nolisp
|
||||
setlocal autoindent shiftwidth=2 tabstop=2 softtabstop=2
|
||||
setlocal autoindent shiftwidth=2 tabstop=2 softtabstop=2 expandtab
|
||||
setlocal indentexpr=TerraformIndent(v:lnum)
|
||||
setlocal indentkeys+=<:>,0=},0=)
|
||||
let b:undo_indent = 'setlocal lisp< autoindent< shiftwidth< tabstop< softtabstop<'
|
||||
\ . ' indentexpr< indentkeys<'
|
||||
\ . ' expandtab< indentexpr< indentkeys<'
|
||||
|
||||
let &cpoptions = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
82
indent/vb.vim
Normal file
82
indent/vb.vim
Normal file
@@ -0,0 +1,82 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'visual-basic') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: VisualBasic (ft=vb) / Basic (ft=basic) / SaxBasic (ft=vb)
|
||||
" Author: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Fri, 18 Jun 2004 07:22:42 CEST
|
||||
" Small update 2010 Jul 28 by Maxim Kim
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=VbGetIndent(v:lnum)
|
||||
setlocal indentkeys&
|
||||
setlocal indentkeys+==~else,=~elseif,=~end,=~wend,=~case,=~next,=~select,=~loop,<:>
|
||||
|
||||
let b:undo_indent = "set ai< indentexpr< indentkeys<"
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*VbGetIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
fun! VbGetIndent(lnum)
|
||||
" labels and preprocessor get zero indent immediately
|
||||
let this_line = getline(a:lnum)
|
||||
let LABELS_OR_PREPROC = '^\s*\(\<\k\+\>:\s*$\|#.*\)'
|
||||
if this_line =~? LABELS_OR_PREPROC
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Find a non-blank line above the current line.
|
||||
" Skip over labels and preprocessor directives.
|
||||
let lnum = a:lnum
|
||||
while lnum > 0
|
||||
let lnum = prevnonblank(lnum - 1)
|
||||
let previous_line = getline(lnum)
|
||||
if previous_line !~? LABELS_OR_PREPROC
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
|
||||
" Hit the start of the file, use zero indent.
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let ind = indent(lnum)
|
||||
|
||||
" Add
|
||||
if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
|
||||
" Subtract
|
||||
if this_line =~? '^\s*\<end\>\s\+\<select\>'
|
||||
if previous_line !~? '^\s*\<select\>'
|
||||
let ind = ind - 2 * shiftwidth()
|
||||
else
|
||||
" this case is for an empty 'select' -- 'end select'
|
||||
" (w/o any case statements) like:
|
||||
"
|
||||
" select case readwrite
|
||||
" end select
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
elseif this_line =~? '^\s*\<\(end\|else\|elseif\|until\|loop\|next\|wend\)\>'
|
||||
let ind = ind - shiftwidth()
|
||||
elseif this_line =~? '^\s*\<\(case\|default\)\>'
|
||||
if previous_line !~? '^\s*\<select\>'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfun
|
||||
|
||||
" vim:sw=4
|
||||
|
||||
endif
|
||||
159
indent/yaml.vim
Normal file
159
indent/yaml.vim
Normal file
@@ -0,0 +1,159 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: YAML
|
||||
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
|
||||
" Last Change: 2019 Sep 28
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetYAMLIndent(v:lnum)
|
||||
setlocal indentkeys=!^F,o,O,0#,0},0],<:>,0-
|
||||
setlocal nosmartindent
|
||||
|
||||
let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
|
||||
|
||||
" Only define the function once.
|
||||
if exists('*GetYAMLIndent')
|
||||
finish
|
||||
endif
|
||||
|
||||
function s:FindPrevLessIndentedLine(lnum, ...)
|
||||
let prevlnum = prevnonblank(a:lnum-1)
|
||||
let curindent = a:0 ? a:1 : indent(a:lnum)
|
||||
while prevlnum
|
||||
\&& indent(prevlnum) >= curindent
|
||||
\&& getline(prevlnum) !~# '^\s*#'
|
||||
let prevlnum = prevnonblank(prevlnum-1)
|
||||
endwhile
|
||||
return prevlnum
|
||||
endfunction
|
||||
|
||||
function s:FindPrevLEIndentedLineMatchingRegex(lnum, regex)
|
||||
let plilnum = s:FindPrevLessIndentedLine(a:lnum, indent(a:lnum)+1)
|
||||
while plilnum && getline(plilnum) !~# a:regex
|
||||
let plilnum = s:FindPrevLessIndentedLine(plilnum)
|
||||
endwhile
|
||||
return plilnum
|
||||
endfunction
|
||||
|
||||
let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''.
|
||||
\ '|\"%([^"\\]|\\.)*\"'.
|
||||
\ '|%(%(\:\ )@!.)*)\:%(\ |$)'
|
||||
let s:liststartregex='\v^\s*%(\-%(\ |$))'
|
||||
|
||||
let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)'
|
||||
let s:c_ns_anchor_name = s:c_ns_anchor_char.'+'
|
||||
let s:c_ns_anchor_property = '\v\&'.s:c_ns_anchor_name
|
||||
|
||||
let s:ns_word_char = '\v[[:alnum:]_\-]'
|
||||
let s:ns_tag_char = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])'
|
||||
let s:c_named_tag_handle = '\v\!'.s:ns_word_char.'+\!'
|
||||
let s:c_secondary_tag_handle = '\v\!\!'
|
||||
let s:c_primary_tag_handle = '\v\!'
|
||||
let s:c_tag_handle = '\v%('.s:c_named_tag_handle.
|
||||
\ '|'.s:c_secondary_tag_handle.
|
||||
\ '|'.s:c_primary_tag_handle.')'
|
||||
let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+'
|
||||
let s:c_non_specific_tag = '\v\!'
|
||||
let s:ns_uri_char = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])'
|
||||
let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>'
|
||||
let s:c_ns_tag_property = '\v'.s:c_verbatim_tag.
|
||||
\ '\v|'.s:c_ns_shorthand_tag.
|
||||
\ '\v|'.s:c_non_specific_tag
|
||||
|
||||
let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?'
|
||||
|
||||
function GetYAMLIndent(lnum)
|
||||
if a:lnum == 1 || !prevnonblank(a:lnum-1)
|
||||
return 0
|
||||
endif
|
||||
|
||||
let prevlnum = prevnonblank(a:lnum-1)
|
||||
let previndent = indent(prevlnum)
|
||||
|
||||
let line = getline(a:lnum)
|
||||
if line =~# '^\s*#' && getline(a:lnum-1) =~# '^\s*#'
|
||||
" Comment blocks should have identical indent
|
||||
return previndent
|
||||
elseif line =~# '^\s*[\]}]'
|
||||
" Lines containing only closing braces should have previous indent
|
||||
return indent(s:FindPrevLessIndentedLine(a:lnum))
|
||||
endif
|
||||
|
||||
" Ignore comment lines when calculating indent
|
||||
while getline(prevlnum) =~# '^\s*#'
|
||||
let prevlnum = prevnonblank(prevlnum-1)
|
||||
if !prevlnum
|
||||
return previndent
|
||||
endif
|
||||
endwhile
|
||||
|
||||
let prevline = getline(prevlnum)
|
||||
let previndent = indent(prevlnum)
|
||||
|
||||
" Any examples below assume that shiftwidth=2
|
||||
if prevline =~# '\v[{[:]$|[:-]\ [|>][+\-]?%(\s+\#.*|\s*)$'
|
||||
" Mapping key:
|
||||
" nested mapping: ...
|
||||
"
|
||||
" - {
|
||||
" key: [
|
||||
" list value
|
||||
" ]
|
||||
" }
|
||||
"
|
||||
" - |-
|
||||
" Block scalar without indentation indicator
|
||||
return previndent+shiftwidth()
|
||||
elseif prevline =~# '\v[:-]\ [|>]%(\d+[+\-]?|[+\-]?\d+)%(\#.*|\s*)$'
|
||||
" - |+2
|
||||
" block scalar with indentation indicator
|
||||
"#^^ indent+2, not indent+shiftwidth
|
||||
return previndent + str2nr(matchstr(prevline,
|
||||
\'\v([:-]\ [|>])@<=[+\-]?\d+%([+\-]?%(\s+\#.*|\s*)$)@='))
|
||||
elseif prevline =~# '\v\"%([^"\\]|\\.)*\\$'
|
||||
" "Multiline string \
|
||||
" with escaped end"
|
||||
let qidx = match(prevline, '\v\"%([^"\\]|\\.)*\\')
|
||||
return virtcol([prevlnum, qidx+1])
|
||||
elseif line =~# s:liststartregex
|
||||
" List line should have indent equal to previous list line unless it was
|
||||
" caught by one of the previous rules
|
||||
return indent(s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
|
||||
\ s:liststartregex))
|
||||
elseif line =~# s:mapkeyregex
|
||||
" Same for line containing mapping key
|
||||
let prevmapline = s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
|
||||
\ s:mapkeyregex)
|
||||
if getline(prevmapline) =~# '^\s*- '
|
||||
return indent(prevmapline) + 2
|
||||
else
|
||||
return indent(prevmapline)
|
||||
endif
|
||||
elseif prevline =~# '^\s*- '
|
||||
" - List with
|
||||
" multiline scalar
|
||||
return previndent+2
|
||||
elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property.
|
||||
\ '\v|'.s:c_ns_anchor_property.
|
||||
\ '\v|'.s:block_scalar_header.
|
||||
\ '\v)%(\s+|\s*%(\#.*)?$))*'
|
||||
" Mapping with: value
|
||||
" that is multiline scalar
|
||||
return previndent+shiftwidth()
|
||||
endif
|
||||
return previndent
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
endif
|
||||
217
packages.yaml
217
packages.yaml
@@ -93,7 +93,9 @@ filetypes:
|
||||
- adb
|
||||
- ads
|
||||
- ada
|
||||
- adc
|
||||
- gpr
|
||||
- ada_m
|
||||
---
|
||||
name: ahdl
|
||||
remote: vim/vim:runtime
|
||||
@@ -155,6 +157,16 @@ filetypes:
|
||||
- .htaccess
|
||||
- '*/etc/httpd/*.conf'
|
||||
- '*/etc/apache2/sites-*/*.com'
|
||||
- 'access.conf*'
|
||||
- 'apache.conf*'
|
||||
- 'apache2.conf*'
|
||||
- 'httpd.conf*'
|
||||
- 'srm.conf*'
|
||||
- '*/etc/apache2/*.conf*'
|
||||
- '*/etc/apache2/conf.*/*'
|
||||
- '*/etc/apache2/mods-*/*'
|
||||
- '*/etc/apache2/sites-*/*'
|
||||
- '*/etc/httpd/conf.d/*.conf*'
|
||||
---
|
||||
name: apiblueprint
|
||||
remote: sheerun/apiblueprint.vim
|
||||
@@ -179,7 +191,13 @@ filetypes:
|
||||
filenames:
|
||||
- apt.conf
|
||||
- '*/.aptitude/config'
|
||||
- '*/etc/apt/apt.conf.d/[^.]*'
|
||||
- '*/etc/apt/apt.conf.d/*.conf'
|
||||
ignored_warnings:
|
||||
# some kind of bugs in filetype detection algorithm
|
||||
- '*/etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf}'
|
||||
- '*/etc/apt/apt.conf.d/]\+'
|
||||
- '*/etc/apt/apt.conf.d/]\+.conf'
|
||||
---
|
||||
name: arch
|
||||
remote: vim/vim:runtime
|
||||
@@ -291,17 +309,34 @@ filetypes:
|
||||
- name: awk
|
||||
extensions:
|
||||
- awk
|
||||
- gawk
|
||||
---
|
||||
name: c/c++
|
||||
remote: vim-jp/vim-cpp
|
||||
filetypes:
|
||||
- name: c
|
||||
linguist: C
|
||||
- name: cpp
|
||||
linguist: C++
|
||||
extra_extensions:
|
||||
- moc
|
||||
# TLH files are C++ headers generated by Visual C++'s #import from typelibs
|
||||
- tlh
|
||||
ignored_extensions:
|
||||
# conflicts with more popular reason, remove after heuristics work
|
||||
- re
|
||||
# implemented by arduino
|
||||
- ino
|
||||
ignored_warnings:
|
||||
# TODO: fix these
|
||||
- C
|
||||
- H
|
||||
- name: c
|
||||
linguist: C
|
||||
extra_extensions:
|
||||
# Quake C
|
||||
- qc
|
||||
extra_filenames:
|
||||
# Enlightenment configuration file
|
||||
- '*enlightenment/*.cfg'
|
||||
---
|
||||
name: caddyfile
|
||||
remote: isobit/vim-caddyfile
|
||||
@@ -310,6 +345,11 @@ filetypes:
|
||||
filenames:
|
||||
- Caddyfile
|
||||
---
|
||||
name: cpp-modern
|
||||
remote: bfrg/vim-cpp-modern
|
||||
after: c/c++
|
||||
filetypes: []
|
||||
---
|
||||
name: carp
|
||||
remote: hellerve/carp-vim
|
||||
filetypes:
|
||||
@@ -345,14 +385,13 @@ filetypes:
|
||||
extra_extensions:
|
||||
# 17 results: https://github.com/search?q=extension%3Acoffeekup+html&type=Code
|
||||
- coffeekup
|
||||
ignored_extensions:
|
||||
ignored_warnings:
|
||||
# Probably mistake
|
||||
- '*Cakefile'
|
||||
# Used by C#
|
||||
- csx
|
||||
# Used by Chuck
|
||||
- ck
|
||||
ignored_filenames:
|
||||
# Probably mistake
|
||||
- '*Cakefile'
|
||||
- name: litcoffee
|
||||
linguist: Literate CoffeeScript
|
||||
extra_extensions:
|
||||
@@ -392,7 +431,7 @@ filetypes:
|
||||
extra_extensions:
|
||||
- tsv
|
||||
- tab
|
||||
ignored_extensions:
|
||||
ignored_warnings:
|
||||
# This is definitely not csv-only, maybe re-enable when heuristics done
|
||||
- dat
|
||||
---
|
||||
@@ -417,6 +456,8 @@ remote: dart-lang/dart-vim-plugin
|
||||
filetypes:
|
||||
- name: dart
|
||||
linguist: Dart
|
||||
extra_extensions:
|
||||
- drt
|
||||
---
|
||||
name: dhall
|
||||
remote: vmchale/dhall-vim
|
||||
@@ -457,7 +498,7 @@ filetypes:
|
||||
filenames:
|
||||
- 'docker-compose*.yaml'
|
||||
- 'docker-compose*.yml'
|
||||
ignored_filenames:
|
||||
ignored_warnings:
|
||||
# Probably mistakes?
|
||||
- 'docker-compose*.yaml*'
|
||||
- 'docker-compose*.yml*'
|
||||
@@ -574,16 +615,27 @@ filetypes:
|
||||
extra_filenames:
|
||||
- "*.git/config"
|
||||
- "*/.config/git/config"
|
||||
- "*.git/modules/*/config"
|
||||
- "*/git/config"
|
||||
- "*/{.,}gitconfig.d/*"
|
||||
ignored_warnings:
|
||||
- '/etc/gitconfig'
|
||||
- '$XDG_CONFIG_HOME/git/config'
|
||||
- "*.git/modules/**/config"
|
||||
- '.gitmodules'
|
||||
- "*.git/modules/**/config"
|
||||
- "/etc/gitconfig.d/*"
|
||||
- name: gitrebase
|
||||
filenames:
|
||||
- git-rebase-todo
|
||||
- name: gitsendemail
|
||||
filenames:
|
||||
- ".gitsendemail.*"
|
||||
ignored_warnings:
|
||||
- '.gitsendemail.msg.??????'
|
||||
- name: gitcommit
|
||||
filenames:
|
||||
- 'COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG'
|
||||
ignored_warnings:
|
||||
- '*.git/{,modules/**/,worktrees/*/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG'
|
||||
---
|
||||
name: glsl
|
||||
@@ -609,6 +661,9 @@ remote: vim-scripts/gnuplot-syntax-highlighting
|
||||
filetypes:
|
||||
- name: gnuplot
|
||||
linguist: Gnuplot
|
||||
extra_extensions:
|
||||
# Gnuplot scripts
|
||||
- gpi
|
||||
---
|
||||
name: go
|
||||
remote: fatih/vim-go
|
||||
@@ -629,15 +684,29 @@ filetypes:
|
||||
---
|
||||
name: graphql
|
||||
remote: jparise/vim-graphql
|
||||
after: [javascript, jsx]
|
||||
ignored_dirs:
|
||||
# TODO: remove after bug is fixed:
|
||||
# https://github.com/jparise/vim-graphql/issues/62
|
||||
- after/indent
|
||||
filetypes:
|
||||
- name: graphql
|
||||
linguist: GraphQL
|
||||
---
|
||||
name: gradle
|
||||
remote: tfnico/vim-gradle
|
||||
after: groovy
|
||||
# Just adds compiler
|
||||
filetypes: []
|
||||
---
|
||||
name: groovy
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/groovy.vim'
|
||||
filetypes:
|
||||
- name: groovy
|
||||
linguist: Gradle
|
||||
linguist: Groovy
|
||||
extra_extensions:
|
||||
- gradle
|
||||
---
|
||||
name: grub
|
||||
remote: vim/vim:runtime
|
||||
@@ -752,6 +821,21 @@ filetypes:
|
||||
extra_filenames:
|
||||
- idris-response
|
||||
---
|
||||
name: idris2
|
||||
remote: edwinb/idris2-vim
|
||||
ignored_dirs:
|
||||
- doc
|
||||
filetypes:
|
||||
- name: idris2
|
||||
extensions:
|
||||
- idr
|
||||
- ipkg
|
||||
filenames:
|
||||
- idris-response
|
||||
- name: lidris2
|
||||
extensions:
|
||||
- lidr
|
||||
---
|
||||
name: ion
|
||||
remote: vmchale/ion-vim
|
||||
filetypes:
|
||||
@@ -797,8 +881,10 @@ filetypes:
|
||||
extra_extensions:
|
||||
- j2
|
||||
ignored_extensions:
|
||||
- mustache
|
||||
- njk
|
||||
ignore_warnings:
|
||||
# handled by mustache plugin
|
||||
- mustache
|
||||
---
|
||||
name: jq
|
||||
remote: vito-c/jq.vim
|
||||
@@ -807,7 +893,6 @@ filetypes:
|
||||
linguist: JSONiq
|
||||
extra_filenames:
|
||||
- ".jqrc"
|
||||
ignored_filenames:
|
||||
- ".jqrc*"
|
||||
---
|
||||
name: json5
|
||||
@@ -824,6 +909,8 @@ filetypes:
|
||||
extra_extensions:
|
||||
- jsonp
|
||||
- template
|
||||
extra_filenames:
|
||||
- Pipfile.lock
|
||||
---
|
||||
name: jsonnet
|
||||
remote: google/vim-jsonnet
|
||||
@@ -839,13 +926,14 @@ filetypes:
|
||||
extra_extensions:
|
||||
- jst
|
||||
- ect
|
||||
ignored_extensions:
|
||||
# I haven't found reference to them
|
||||
ignored_warnings:
|
||||
# I haven't found reference to them on github
|
||||
- djs
|
||||
- hamljs
|
||||
---
|
||||
name: jsx
|
||||
remote: MaxMEllon/vim-jsx-pretty
|
||||
after: javascript
|
||||
filetypes:
|
||||
- name: javascriptreact
|
||||
linguist: JSX
|
||||
@@ -944,6 +1032,7 @@ filetypes:
|
||||
linguist: Mathematica
|
||||
extra_extensions:
|
||||
- wls
|
||||
- mma
|
||||
---
|
||||
name: markdown
|
||||
remote: plasticboy/vim-markdown
|
||||
@@ -956,6 +1045,7 @@ filetypes:
|
||||
ignored_extensions:
|
||||
# Handled by mdx extension
|
||||
- mdx
|
||||
ignored_warnings:
|
||||
- '{md,mdx,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx}'
|
||||
---
|
||||
name: mdx
|
||||
@@ -1090,6 +1180,23 @@ remote: vim-perl/vim-perl
|
||||
filetypes:
|
||||
- name: perl
|
||||
linguist: Perl
|
||||
- name: pod
|
||||
extensions:
|
||||
- pod
|
||||
- name: mason
|
||||
extensions:
|
||||
- mason
|
||||
- mhtml
|
||||
- comp
|
||||
- name: tt2
|
||||
extensions:
|
||||
- tt2
|
||||
- name: tt2html
|
||||
extensions:
|
||||
- tt2
|
||||
- name: xs
|
||||
extensions:
|
||||
- xs
|
||||
---
|
||||
name: pgsql
|
||||
remote: lifepillar/pgsql.vim
|
||||
@@ -1112,7 +1219,6 @@ remote: StanAngeloff/php.vim
|
||||
filetypes:
|
||||
- name: php
|
||||
linguist: PHP
|
||||
# Needs to be after .php (can be .blade.php)
|
||||
---
|
||||
name: blade
|
||||
remote: jwalton512/vim-blade
|
||||
@@ -1533,9 +1639,9 @@ remote: lumiliet/vim-twig
|
||||
filetypes:
|
||||
- name: html.twig
|
||||
linguist: Twig
|
||||
ignored_extensions:
|
||||
ignored_warnings:
|
||||
# handled by other extension
|
||||
- xml.twig
|
||||
ignored_extensions:
|
||||
# already covered by .twig
|
||||
- html.twig
|
||||
- name: xml.twig
|
||||
@@ -1632,14 +1738,16 @@ filetypes:
|
||||
linguist: XSLT
|
||||
---
|
||||
name: yaml
|
||||
remote: stephpy/vim-yaml
|
||||
# Fixes indentation issue: https://github.com/vim/vim/issues/6417
|
||||
remote: vim/vim@df44a27b53586fccfc6a3aedc89061fdd9a515ff:runtime
|
||||
glob: '**/yaml.vim'
|
||||
filetypes:
|
||||
- name: yaml
|
||||
linguist: YAML
|
||||
extra_filenames:
|
||||
- fish_history
|
||||
- fish_read_history
|
||||
ignored_filenames:
|
||||
ignored_warnings:
|
||||
- '~/.config/fish/fish_{read_,}history'
|
||||
# Ansible needs to be after YAML
|
||||
---
|
||||
@@ -1670,7 +1778,7 @@ filetypes:
|
||||
- "*/templates/*.tpl"
|
||||
---
|
||||
name: help
|
||||
remote: vim/vim:runtime
|
||||
remote: neovim/neovim:runtime
|
||||
glob: '**/help.vim'
|
||||
filetypes:
|
||||
- name: help
|
||||
@@ -1701,3 +1809,72 @@ filetypes:
|
||||
- name: trasys
|
||||
extensions:
|
||||
- inp
|
||||
---
|
||||
name: basic
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/basic.vim'
|
||||
filetypes:
|
||||
- name: basic
|
||||
extensions:
|
||||
- basic
|
||||
---
|
||||
name: visual-basic
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/vb.vim'
|
||||
filetypes:
|
||||
- name: vb
|
||||
linguist: VBA
|
||||
extra_extensions:
|
||||
- vbs
|
||||
- dsm
|
||||
- ctl
|
||||
# SaxBasic is close to Visual Basic
|
||||
- sba
|
||||
ignored_warnings:
|
||||
- vb
|
||||
---
|
||||
name: dosini
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/dosini.vim'
|
||||
filetypes:
|
||||
- name: dosini
|
||||
linguist: INI
|
||||
extra_filenames:
|
||||
- .editorconfig
|
||||
- .npmrc
|
||||
- '*/etc/pacman.conf'
|
||||
- 'php.ini-*'
|
||||
- '*/etc/yum.conf'
|
||||
- '*/etc/yum.repos.d/*'
|
||||
ignored_extensions:
|
||||
- cfg
|
||||
ignored_warnings:
|
||||
- php.ini
|
||||
---
|
||||
name: odin
|
||||
remote: Tetralux/odin.vim
|
||||
filetypes:
|
||||
- name: odin
|
||||
linguist: Odin
|
||||
---
|
||||
name: bzl
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/bzl.vim'
|
||||
filetypes:
|
||||
- name: bzl
|
||||
linguist: Starlark
|
||||
---
|
||||
name: prolog
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/prolog.vim'
|
||||
filetypes:
|
||||
- name: prolog
|
||||
linguist: Prolog
|
||||
---
|
||||
name: tads
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/tads.vim'
|
||||
filetypes:
|
||||
- name: tads
|
||||
extensions:
|
||||
- t
|
||||
|
||||
397
scripts/build
397
scripts/build
@@ -29,15 +29,8 @@ def load_data()
|
||||
|
||||
deps = Hash.new { |h, k| h[k] = [] }
|
||||
|
||||
for package in packages.values
|
||||
for name in [package.fetch("after", [])].flatten
|
||||
packages[name] or raise "#{package["name"]} depends on unknown package: #{name}"
|
||||
deps[name] << package["name"]
|
||||
end
|
||||
end
|
||||
|
||||
each_node = lambda {|&b| packages.keys.each(&b) }
|
||||
each_child = lambda {|n, &b| deps[n].each(&b) }
|
||||
each_child = lambda {|n, &b| [packages[n]["after"] || []].flatten.each(&b) }
|
||||
|
||||
languages = load_languages
|
||||
|
||||
@@ -60,20 +53,34 @@ def load_data()
|
||||
linguist = languages.fetch(filetype["linguist"])
|
||||
|
||||
filetype["extensions"] = (linguist["extensions"] || []).map { |e| e[1..-1] } |
|
||||
filetype.fetch("extra_extensions", []) -
|
||||
filetype.fetch("ignored_extensions", []).uniq
|
||||
filetype.fetch("extra_extensions", [])
|
||||
|
||||
filetype["filenames"] = (linguist["filenames"] || []) |
|
||||
filetype.fetch("extra_filenames", []) -
|
||||
filetype.fetch("ignored_filenames", []).uniq
|
||||
extra_ignored_extensions = filetype.fetch("ignored_extensions", []) - filetype["extensions"]
|
||||
if extra_ignored_extensions.size > 0
|
||||
raise StandardError.new("[#{filetype["name"]}]: Unnecessary ignored extensions: #{extra_ignored_extensions.join(", ")}")
|
||||
end
|
||||
|
||||
filetype["extensions"] -= filetype.fetch("ignored_extensions", [])
|
||||
|
||||
filetype["filenames"] = ((
|
||||
(linguist["filenames"] || []) |
|
||||
filetype.fetch("extra_filenames", [])
|
||||
) - filetype.fetch("ignored_filenames", [])).uniq
|
||||
|
||||
filetype["interpreters"] = (linguist["interpreters"] || []) |
|
||||
filetype.fetch("extra_interpreters", []) -
|
||||
filetype.fetch("ignored_interpreters", []).uniq
|
||||
filetype["interpreters"] = ((
|
||||
(linguist["interpreters"] || []) |
|
||||
filetype.fetch("extra_interpreters", [])
|
||||
) - filetype.fetch("ignored_interpreters", []).uniq)
|
||||
else
|
||||
filetype["extensions"] ||= []
|
||||
filetype["filenames"] ||= []
|
||||
filetype["interpreters"] ||= []
|
||||
|
||||
filetype.keys.each do |key|
|
||||
if key.start_with?("extra_")
|
||||
raise "[#{filetype["name"]}]: #{key} is not allowed if linguist is not used"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -83,25 +90,6 @@ def load_data()
|
||||
[packages, transform_patterns(heuristics)]
|
||||
end
|
||||
|
||||
def parallel(*procs)
|
||||
threads = procs.map { |p| Thread.new { method(p).call } }
|
||||
threads.map(&:join).map(&:value)
|
||||
end
|
||||
|
||||
def read_strings(data, keys, print=false)
|
||||
if data.is_a?(Hash)
|
||||
data.flat_map do |key, val|
|
||||
read_strings(val, keys, keys.include?(key))
|
||||
end
|
||||
elsif data.is_a?(Array)
|
||||
data.flat_map { |d| read_strings(d, keys, print) }
|
||||
elsif data.is_a?(String)
|
||||
print ? [data] : []
|
||||
else
|
||||
[]
|
||||
end
|
||||
end
|
||||
|
||||
def patterns_to_vim_patterns(patterns)
|
||||
stdin, stdout, stderr = Open3.popen3('vim', '-V', '--clean', '/dev/stdin', '-es', '-c', "echo expand('%:p:h') | source #{__dir__}/eregex.vim", '-c', "for line in range(0, line('$')) | call setline(line, ExtendedRegex2VimRegex(getline(line))) | endfor", '-c', ':wq! /dev/stdout', chdir: __dir__)
|
||||
stdin.write(patterns.join("\n"))
|
||||
@@ -140,27 +128,64 @@ def transform_patterns(heuristics)
|
||||
end
|
||||
|
||||
def load_languages
|
||||
url = "#{BASE_URL}/lib/linguist/languages.yml"
|
||||
data = URI.open(url) { |io| YAML.load(io.read) }
|
||||
file = 'tmp/languages.yml'
|
||||
|
||||
unless File.exist?(file)
|
||||
url = "#{BASE_URL}/lib/linguist/languages.yml"
|
||||
data = URI.open(url) { |io| io.read }
|
||||
File.write(file, data)
|
||||
end
|
||||
|
||||
YAML.load(File.read(file))
|
||||
end
|
||||
|
||||
def parse_remote(remote)
|
||||
match = remote.match(/(?<repo>[^@:]+)(?:@(?<branch>[^:]+))?(?::(?<path>.*))?/)
|
||||
[match[:repo], match[:branch] || "master", match[:path]]
|
||||
dir = "tmp/" + match[:repo] + (match[:branch] ? "-#{match[:branch]}" : "")
|
||||
[match[:repo], match[:branch] || "master", match[:path], dir]
|
||||
end
|
||||
|
||||
def copy_file(package, src, dest)
|
||||
FileUtils.mkdir_p(File.dirname(dest))
|
||||
name = package.fetch("name")
|
||||
|
||||
if dest.end_with?(".vim")
|
||||
header = '" Polyglot metafile'
|
||||
if File.exist?(dest)
|
||||
meta_dest = dest
|
||||
new_dest = dest
|
||||
i = 0
|
||||
while File.exist?(new_dest)
|
||||
i += 1
|
||||
new_dest = "#{dest.gsub(/\.vim$/, '')}-#{i}.vim"
|
||||
end
|
||||
|
||||
if File.read(dest).include?(header)
|
||||
dest = new_dest
|
||||
else
|
||||
FileUtils.mv(dest, new_dest)
|
||||
File.write(meta_dest, "#{header}\n")
|
||||
open(meta_dest, "a+") do |output|
|
||||
output << "source <sfile>:h/#{File.basename(new_dest)}\n"
|
||||
end
|
||||
dest = "#{dest.gsub(/\.vim$/, '')}-#{i+1}.vim"
|
||||
end
|
||||
open(meta_dest, "a+") do |output|
|
||||
output << "source <sfile>:h/#{File.basename(dest)}\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
open(src, "r") do |input|
|
||||
open(dest, "a+") do |output|
|
||||
open(dest, "w") do |output|
|
||||
if name == "jsx"
|
||||
output << "if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)\n\n"
|
||||
else
|
||||
output << "if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, '#{name}') == -1\n\n"
|
||||
end
|
||||
IO.copy_stream(input, output)
|
||||
contents = File.read(input)
|
||||
contents.gsub!(' ..= ', ' .= ')
|
||||
output << contents
|
||||
output << "\nendif\n"
|
||||
end
|
||||
end
|
||||
@@ -170,8 +195,7 @@ def download(packages)
|
||||
packages.map { |p| p["remote"] or raise "No remote for: " + p["name"] }.uniq.each_slice(20) do |remotes|
|
||||
remotes.map do |remote|
|
||||
Thread.new do
|
||||
repo, branch, path = parse_remote(remote)
|
||||
dir = "tmp/" + repo
|
||||
repo, branch, path, dir = parse_remote(remote)
|
||||
unless File.exist?(dir)
|
||||
FileUtils.mkdir_p(dir)
|
||||
url = "https://codeload.github.com/#{repo}/tar.gz/#{branch}"
|
||||
@@ -233,13 +257,15 @@ def rules_to_code(rules)
|
||||
end
|
||||
|
||||
output << rule_to_code(rules)
|
||||
|
||||
output
|
||||
end
|
||||
|
||||
def rule_to_code(rule)
|
||||
if rule.has_key?("lines")
|
||||
if rule["lines"] == 1
|
||||
return <<~EOS
|
||||
let line = getline(1)
|
||||
let line = getline(nextnonblank(1))
|
||||
|
||||
#{indent(rule_to_code(except(rule, "lines")), 0)}
|
||||
EOS
|
||||
@@ -254,10 +280,6 @@ def rule_to_code(rule)
|
||||
end
|
||||
end
|
||||
|
||||
if rule.has_key?("rules")
|
||||
return rule["rules"].map { |r| indent(rule_to_code(r), 0) }.join("\n")
|
||||
end
|
||||
|
||||
if rule.has_key?("pattern") || rule.has_key?("or") || rule.has_key?("and")
|
||||
return <<~EOS
|
||||
if #{pattern_to_condition(rule)}
|
||||
@@ -266,6 +288,12 @@ def rule_to_code(rule)
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("rules")
|
||||
return rule["rules"].map do |r|
|
||||
indent(rule_to_code({ "extensions" => rule["extensions"] }.merge(r)), 0)
|
||||
end.join("\n")
|
||||
end
|
||||
|
||||
if rule.has_key?("if_set")
|
||||
return <<~EOS
|
||||
if #{rule["negative"] ? "!" : ""}#{rule["if_set"]}
|
||||
@@ -274,6 +302,14 @@ def rule_to_code(rule)
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("if_exists")
|
||||
return <<~EOS
|
||||
if #{rule["negative"] ? "!" : ""}exists("#{rule["if_exists"]}")
|
||||
#{indent(rule_to_code(except(rule, "if_exists", "negative")), 2)}
|
||||
endif
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("set")
|
||||
return <<~EOS
|
||||
let #{rule["set"]} = 1
|
||||
@@ -281,20 +317,29 @@ def rule_to_code(rule)
|
||||
EOS
|
||||
end
|
||||
|
||||
if (rule.keys - ["filetype", "override", "set"]).size > 0
|
||||
if (rule.keys - ["filetype", "override", "set", "extensions"]).size > 0
|
||||
raise "Unknown rule: #{JSON.generate(rule)}"
|
||||
end
|
||||
|
||||
if rule.has_key?("override")
|
||||
variable = "g:filetype_#{rule["extensions"].first}"
|
||||
return <<~EOS
|
||||
if exists("#{rule["override"]}")
|
||||
exe "setf " . #{rule["override"]} | return
|
||||
if exists("#{variable}")
|
||||
let &ft = #{variable} | return
|
||||
endif
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("filetype")
|
||||
return "setf #{rule["filetype"]} | return"
|
||||
return "set ft=#{rule["filetype"]} | return"
|
||||
end
|
||||
|
||||
if rule.has_key?("filetype")
|
||||
return "set ft=#{rule["filetype"]} | return"
|
||||
end
|
||||
|
||||
if rule.has_key?("extensions")
|
||||
return ""
|
||||
end
|
||||
|
||||
return ""
|
||||
@@ -312,8 +357,7 @@ def extract(packages)
|
||||
|
||||
output = []
|
||||
packages.map do |package|
|
||||
repo, branch, path = parse_remote(package["remote"])
|
||||
dir = "tmp/" + repo
|
||||
repo, branch, path, dir = parse_remote(package["remote"])
|
||||
dirs = package.fetch("dirs", default_dirs)
|
||||
ignored_dirs = package.fetch("ignored_dirs", [])
|
||||
if ignored_dirs.size > 0
|
||||
@@ -368,69 +412,7 @@ def extract(packages)
|
||||
end
|
||||
|
||||
def generate_ftdetect(packages, heuristics)
|
||||
output = <<~EOS
|
||||
" don't spam the user when Vim is started in Vi compatibility mode
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Disable all native vim ftdetect
|
||||
if exists('g:polyglot_test')
|
||||
autocmd!
|
||||
endif
|
||||
|
||||
let s:disabled_packages = {}
|
||||
|
||||
if exists('g:polyglot_disabled')
|
||||
for pkg in g:polyglot_disabled
|
||||
let s:disabled_packages[pkg] = 1
|
||||
endfor
|
||||
endif
|
||||
|
||||
function! s:SetDefault(name, value)
|
||||
if !exists(a:name)
|
||||
let {a:name} = a:value
|
||||
endif
|
||||
endfunction
|
||||
|
||||
call s:SetDefault('g:markdown_enable_spell_checking', 0)
|
||||
call s:SetDefault('g:markdown_enable_input_abbreviations', 0)
|
||||
call s:SetDefault('g:markdown_enable_mappings', 0)
|
||||
|
||||
" Enable jsx syntax by default
|
||||
call s:SetDefault('g:jsx_ext_required', 0)
|
||||
|
||||
" Needed for sql highlighting
|
||||
call s:SetDefault('g:javascript_sql_dialect', 'sql')
|
||||
|
||||
" Make csv loading faster
|
||||
call s:SetDefault('g:csv_start', 1)
|
||||
call s:SetDefault('g:csv_end', 2)
|
||||
|
||||
" Disable json concealing by default
|
||||
call s:SetDefault('g:vim_json_syntax_conceal', 0)
|
||||
|
||||
call s:SetDefault('g:filetype_euphoria', 'elixir')
|
||||
|
||||
if !exists('g:python_highlight_all')
|
||||
call s:SetDefault('g:python_highlight_builtins', 1)
|
||||
call s:SetDefault('g:python_highlight_builtin_objs', 1)
|
||||
call s:SetDefault('g:python_highlight_builtin_types', 1)
|
||||
call s:SetDefault('g:python_highlight_builtin_funcs', 1)
|
||||
call s:SetDefault('g:python_highlight_builtin_funcs_kwarg', 1)
|
||||
call s:SetDefault('g:python_highlight_exceptions', 1)
|
||||
call s:SetDefault('g:python_highlight_string_formatting', 1)
|
||||
call s:SetDefault('g:python_highlight_string_format', 1)
|
||||
call s:SetDefault('g:python_highlight_string_templates', 1)
|
||||
call s:SetDefault('g:python_highlight_indent_errors', 1)
|
||||
call s:SetDefault('g:python_highlight_space_errors', 1)
|
||||
call s:SetDefault('g:python_highlight_doctests', 1)
|
||||
call s:SetDefault('g:python_highlight_func_calls', 1)
|
||||
call s:SetDefault('g:python_highlight_class_vars', 1)
|
||||
call s:SetDefault('g:python_highlight_operators', 1)
|
||||
call s:SetDefault('g:python_highlight_file_headers_as_comments', 1)
|
||||
call s:SetDefault('g:python_slow_sync', 1)
|
||||
endif
|
||||
EOS
|
||||
output = "\n"
|
||||
|
||||
extensions = Hash.new { |h, k| h[k] = [] }
|
||||
|
||||
@@ -445,25 +427,57 @@ def generate_ftdetect(packages, heuristics)
|
||||
ambiguous_extensions = extensions
|
||||
.select { |a, b| b.uniq.size > 1 }.keys.sort
|
||||
|
||||
expected_filetypes = detect_filetypes
|
||||
all_filetypes = packages.flat_map { |f| f["filetypes"] || [] }
|
||||
filetype_names = Set.new(all_filetypes.map { |f| f["name"] })
|
||||
|
||||
native_filetypes = detect_filetypes('tmp/vim/vim/runtime/filetype.vim')
|
||||
expected_filetypes = detect_filetypes('tmp/**/ftdetect/*.vim') + native_filetypes
|
||||
|
||||
expected_filetypes = expected_filetypes.select { |e| filetype_names.include?(e["name"]) }
|
||||
|
||||
native_extensions = Set.new(native_filetypes.flat_map { |f| f["extensions"] || [] })
|
||||
native_filenames = Set.new(native_filetypes.flat_map { |f| f["filenames"] || [] })
|
||||
|
||||
for package in packages
|
||||
name = package.fetch("name")
|
||||
|
||||
output << "if !has_key(s:disabled_packages, '#{name}')\n"
|
||||
to_disable = []
|
||||
|
||||
for filetype in package["filetypes"]
|
||||
for extension in filetype["extensions"]
|
||||
if native_extensions.include?(extension)
|
||||
to_disable << "*." + extension
|
||||
end
|
||||
end
|
||||
|
||||
for filename in filetype["filenames"]
|
||||
if native_filenames.include?(filename)
|
||||
to_disable << filename
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if to_disable.size > 0
|
||||
output << "if !has_key(s:disabled_packages, '#{name}')\n"
|
||||
output << " au! BufRead,BufNewFile #{to_disable.join(",")}\n"
|
||||
output << "endif\n\n"
|
||||
end
|
||||
end
|
||||
|
||||
for package in packages
|
||||
filetypes = package["filetypes"] or raise "Unknown filetype for: #{package["name"]}"
|
||||
|
||||
package_heuristics = []
|
||||
|
||||
autocommands = ""
|
||||
for filetype in filetypes
|
||||
name = filetype.fetch("name")
|
||||
syntax = filetype["syntax"] ? " | set syntax=#{filetype["syntax"]}" : ""
|
||||
|
||||
set_command = "setf #{name}"
|
||||
set_command = "set ft=#{name}"
|
||||
|
||||
if filetype["syntax"]
|
||||
set_command = "if !did_filetype() | set ft=#{name} syntax=#{filetype["syntax"]} | endif"
|
||||
set_command = "set ft=#{name} syntax=#{filetype["syntax"]}"
|
||||
end
|
||||
|
||||
if filetype["custom_set"]
|
||||
@@ -473,21 +487,11 @@ def generate_ftdetect(packages, heuristics)
|
||||
extensions = filetype["extensions"]
|
||||
filenames = filetype["filenames"]
|
||||
|
||||
if expected_filetypes[name] && !filetype["syntax"]
|
||||
for e in expected_filetypes.fetch(name)[:extensions] - extensions - expand_all(filetype.fetch("ignored_extensions", []))
|
||||
puts "Probable missing extension for #{name}: #{e}"
|
||||
end
|
||||
|
||||
for e in expected_filetypes.fetch(name)[:filenames] - expand_all(filenames).flat_map { |e| [e, e.gsub(/^\./, '')] } - expand_all(filetype.fetch("ignored_filenames", [])) - ['*']
|
||||
puts "Probable missing filename for #{name}: #{e}"
|
||||
end
|
||||
end
|
||||
|
||||
for extension in extensions.sort
|
||||
outer_filetype = filetype["outer_filetype"]
|
||||
if outer_filetype
|
||||
output << " au BufNewFile *.*.#{extension} execute \"do BufNewFile filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}\n"
|
||||
output << " au BufReadPre *.*.#{extension} execute \"do BufRead filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}\n"
|
||||
autocommands << " au BufNewFile *.*.#{extension} execute \"do BufNewFile filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}\n"
|
||||
autocommands << " au BufReadPre *.*.#{extension} execute \"do BufRead filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}\n"
|
||||
end
|
||||
|
||||
heuristic = heuristics.find { |h| h["extensions"].include?(extension) }
|
||||
@@ -498,50 +502,69 @@ def generate_ftdetect(packages, heuristics)
|
||||
# puts "Ambiguous extension without heuristic: #{extension} => #{filetype["name"]}"
|
||||
# end
|
||||
#
|
||||
output << " au BufNewFile,BufRead *.#{extension} #{set_command}\n"
|
||||
autocommands << " au BufNewFile,BufRead *.#{extension} #{set_command}\n"
|
||||
end
|
||||
end
|
||||
|
||||
for filename in filenames.sort
|
||||
if filename[0] == "."
|
||||
filename = "{.,}" + filename[1..]
|
||||
filename = "{.,}" + filename[1..-1]
|
||||
end
|
||||
if filename[-1] == "*"
|
||||
autocommands << " au BufNewFile,BufRead #{filename} call s:StarSetf('#{name}')\n"
|
||||
else
|
||||
autocommands << " au BufNewFile,BufRead #{filename} #{set_command}\n"
|
||||
end
|
||||
output << " au BufNewFile,BufRead #{filename} #{set_command}\n"
|
||||
end
|
||||
end
|
||||
|
||||
for heuristic in package_heuristics.uniq
|
||||
extensions = heuristic["extensions"].map { |e| "*.#{e}" }
|
||||
output << " au! BufNewFile,BufRead #{extensions.join(",")} call polyglot#Detect#{camelize(heuristic["extensions"].first)}Filetype()\n"
|
||||
autocommands << " au! BufNewFile,BufRead #{extensions.join(",")} call polyglot#Detect#{camelize(heuristic["extensions"].first)}Filetype()\n"
|
||||
end
|
||||
|
||||
output << "endif\n\n"
|
||||
if autocommands != ""
|
||||
output << "if !has_key(s:disabled_packages, '#{package["name"]}')\n"
|
||||
output << autocommands
|
||||
output << "endif\n\n"
|
||||
end
|
||||
end
|
||||
|
||||
defined_extensions = all_filetypes.flat_map { |f| expand_all(f["extensions"] || []).map { |e| [f["name"], e] } }
|
||||
expected_extensions = expected_filetypes.flat_map { |f| expand_all(f["extensions"] || []).map { |e| [f["name"], e] } }
|
||||
ignored_extensions = all_filetypes.flat_map { |f| expand_all(f.fetch("ignored_extensions", [])).map { |e| [f["name"], e] } }
|
||||
|
||||
defined_filenames = all_filetypes.flat_map { |f| expand_all(f["filenames"] || []).map { |e| [f["name"], e] } }
|
||||
expected_filenames = expected_filetypes.flat_map { |f| expand_all(f["filenames"] || []).map { |e| [f["name"], e] } }
|
||||
ignored_filenames = all_filetypes.flat_map { |f| expand_all(f.fetch("ignored_filenames", [])).map { |e| [f["name"], e] } }
|
||||
|
||||
ignored_warnings = all_filetypes.flat_map { |f| expand_all(f.fetch("ignored_warnings", [])).map { |e| [f["name"], e] } + [f, "*"] }
|
||||
|
||||
for name, e in expected_extensions - defined_extensions - ignored_extensions - ignored_warnings
|
||||
puts "Missing extension for #{name}: #{e}"
|
||||
end
|
||||
|
||||
output << <<~EOS
|
||||
au BufNewFile,BufRead,StdinReadPost *
|
||||
\\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
|
||||
\\ | call polyglot#Heuristics() | endif
|
||||
for name, e in expected_filenames - defined_filenames - ignored_filenames - ignored_warnings
|
||||
puts "Missing filename for #{name}: #{e}"
|
||||
end
|
||||
|
||||
" restore Vi compatibility settings
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
EOS
|
||||
|
||||
File.write('ftdetect/polyglot.vim', output)
|
||||
ftdetect = File.read('ftdetect/polyglot.vim')
|
||||
File.write('ftdetect/polyglot.vim', ftdetect.gsub(/(?<=" filetypes\n).*(?=\n" end filetypes)/m, output))
|
||||
|
||||
output = <<~EOS
|
||||
" Line continuation is used here, remove 'C' from 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
func! polyglot#Heuristics()
|
||||
func! polyglot#Shebang()
|
||||
" Try to detect filetype from shebang
|
||||
let l:filetype = polyglot#Shebang()
|
||||
if l:filetype != ""
|
||||
exec "setf " . l:filetype
|
||||
return
|
||||
let ft = polyglot#ShebangFiletype()
|
||||
if ft != ""
|
||||
let &ft = ft
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
let s:interpreters = {
|
||||
@@ -560,7 +583,7 @@ def generate_ftdetect(packages, heuristics)
|
||||
let s:r_envflag = '%(\\S\\+=\\S\\+\\|-[iS]\\|--ignore-environment\\|--split-string\\)'
|
||||
let s:r_env = '^\\%(\\' . s:r_envflag . '\\s\\+\\)*\\(\\S\\+\\)'
|
||||
|
||||
func! polyglot#Shebang()
|
||||
func! polyglot#ShebangFiletype()
|
||||
let l:line1 = getline(1)
|
||||
|
||||
if l:line1 !~# "^#!"
|
||||
@@ -620,15 +643,10 @@ end
|
||||
def generate_tests(packages)
|
||||
output = <<~EOS
|
||||
function! TestFiletype(filetype)
|
||||
try
|
||||
enew
|
||||
exec 'set ft=' . a:filetype
|
||||
catch
|
||||
echo 'Error loading filetype ' . a:filetype . ':'
|
||||
echo v:exception
|
||||
echo v:throwpoint
|
||||
exec ':cq!'
|
||||
endtry
|
||||
call Log('Loading ' . a:filetype . ' filetype...')
|
||||
|
||||
enew
|
||||
exec 'set ft=' . a:filetype
|
||||
endfunction
|
||||
|
||||
EOS
|
||||
@@ -639,7 +657,7 @@ def generate_tests(packages)
|
||||
end
|
||||
end
|
||||
|
||||
File.write('scripts/test_filetypes.vim', output)
|
||||
File.write('tests/filetypes.vim', output)
|
||||
|
||||
|
||||
end
|
||||
@@ -690,8 +708,8 @@ def expand_all(pattern)
|
||||
end
|
||||
end
|
||||
|
||||
def detect_filetypes
|
||||
filetypes = Dir['tmp/**/ftdetect/*.vim'].flat_map do |file|
|
||||
def detect_filetypes(glob)
|
||||
filetypes = Dir[glob].flat_map do |file|
|
||||
contents = File.read(file).gsub(/^\s*au(tocmd)?!?\s*$/, '')
|
||||
results = contents.scan(/^\s*(?:au!|au|au[^g][^ ]*) +(?:\S+)\s+(\S+)[\s\\]+([^\n]+)/)
|
||||
results = results.map do |a, b|
|
||||
@@ -706,25 +724,62 @@ def detect_filetypes
|
||||
results
|
||||
end
|
||||
|
||||
Hash[filetypes.flat_map do |ext, filetype|
|
||||
filetypes.flat_map do |ext, filetype|
|
||||
expand_all(ext).map { |e| [filetype, e] }
|
||||
end.group_by { |a, b| a }.map { |a, b| [a, b.map { |c, d| d }] }.map { |a, b|
|
||||
[a, {
|
||||
extensions: b.select { |x| x.match(/^\*\.[^\/]+$/) }.map { |a| a.strip[2..] },
|
||||
filenames: expand_all(b.select { |x| !x.match(/^\*\.[^\/]+$/) })
|
||||
}]
|
||||
}]
|
||||
{
|
||||
"name" => a,
|
||||
"extensions" => b.select { |x| x.match(/^\*\.[^\/]+$/) }.map { |a| a.strip[2..-1] },
|
||||
"filenames" => expand_all(b.select { |x| !x.match(/^\*\.[^\/]+$/) })
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
def generate_plugins(packages)
|
||||
FileUtils.mkdir_p('autoload/polyglot')
|
||||
|
||||
output = "let s:globs = {\n"
|
||||
|
||||
patterns = Hash.new { |h, k| h[k] = [] }
|
||||
|
||||
for package in packages
|
||||
for filetype in package["filetypes"]
|
||||
extensions = (filetype["extensions"] || []).map { |e| "*.#{e}" }
|
||||
files = (filetype["filenames"] || []).reject { |e| e.match(/\*\*|\//) || e[0] == "." }
|
||||
patterns[filetype["name"]].concat(extensions)
|
||||
patterns[filetype["name"]].concat(files)
|
||||
end
|
||||
end
|
||||
|
||||
for filetype in patterns.keys.sort
|
||||
output << " \\ '#{filetype}': '#{patterns[filetype].uniq.join(",")}',\n"
|
||||
end
|
||||
output << " \\}\n\n"
|
||||
|
||||
|
||||
output << <<~EOS
|
||||
func! sleuth#GlobForFiletype(type)
|
||||
return get(s:globs, a:type, '')
|
||||
endfunc
|
||||
EOS
|
||||
|
||||
|
||||
File.write('autoload/sleuth.vim', output)
|
||||
end
|
||||
|
||||
|
||||
if __FILE__ == $0
|
||||
if !ENV["DEV"]
|
||||
FileUtils.rm_rf("tmp")
|
||||
end
|
||||
|
||||
Dir.mkdir('tmp') unless File.exists?('tmp')
|
||||
|
||||
packages, heuristics = load_data()
|
||||
download(packages)
|
||||
extract(packages)
|
||||
generate_ftdetect(packages, heuristics)
|
||||
generate_plugins(packages)
|
||||
generate_tests(packages)
|
||||
puts(" Bye! Have a wonderful time!")
|
||||
|
||||
|
||||
67
scripts/test
67
scripts/test
@@ -1,11 +1,60 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
set -e
|
||||
def run_script(src)
|
||||
system("bash", "-c", src)
|
||||
end
|
||||
|
||||
vim --clean -N -u <(echo "
|
||||
let &rtp='$PWD,'.&rtp
|
||||
let g:polyglot_test = 1
|
||||
source scripts/test_extensions.vim
|
||||
\"source scripts/test_filetypes.vim
|
||||
qa!
|
||||
")
|
||||
def run_vimscript(src)
|
||||
wrapper = <<~EOF
|
||||
vim --clean --not-a-term -u <(cat <<- "EOM"
|
||||
let g:polyglot_test = 1
|
||||
let &rtp='$PWD,' . &rtp
|
||||
runtime filetype.vim
|
||||
set t_ti= t_te=
|
||||
set shortmess+=F
|
||||
set noswapfile
|
||||
set nocp
|
||||
set nomore
|
||||
func! Log(msg)
|
||||
if $DEV != '1'
|
||||
echo a:msg
|
||||
else
|
||||
echon '.'
|
||||
endif
|
||||
endfunc
|
||||
EOM
|
||||
) -S <(cat <<- "EOM"
|
||||
try
|
||||
#{src}
|
||||
catch
|
||||
echo v:exception
|
||||
echo v:throwpoint
|
||||
endtry
|
||||
qa!
|
||||
EOM
|
||||
) | perl -pe 's/\e\[[0-9;]*[a-zA-Z]//g'
|
||||
EOF
|
||||
|
||||
run_script(wrapper)
|
||||
end
|
||||
|
||||
test_helptags = <<~EOF
|
||||
if ! expect -c 'set timeout 1' -c 'spawn vim -N --clean -c "set nomore | :helptags ./doc | q"' -c 'expect "ENTER" { exit 1 }' > /dev/null; then
|
||||
echo "Please ensure ':helptags ./doc' works properly"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
run_vimscript('source tests/filetypes.vim')
|
||||
run_vimscript('source tests/extensions.vim')
|
||||
run_script(test_helptags)
|
||||
|
||||
# run_vimscript("
|
||||
# func! TestIndent(file)
|
||||
# :e a:file
|
||||
# echo 'ok'
|
||||
# echo &filetype
|
||||
# endfunc
|
||||
#
|
||||
# #{Dir['tests/indent/**/test.*'].map { |f| "call TestIndent(\"#{f}\")"}.join("\n")}
|
||||
# ")
|
||||
|
||||
@@ -1,216 +0,0 @@
|
||||
function! TestExtension(filetype, filename, content)
|
||||
try
|
||||
let g:message = ""
|
||||
exec "noautocmd n " . a:filename
|
||||
put =a:content
|
||||
1delete _
|
||||
filetype detect
|
||||
exec "if &filetype != '" . a:filetype . "' \nthrow &filetype\nendif"
|
||||
exec ":bw!"
|
||||
catch
|
||||
echo g:message
|
||||
echo 'Filename "' . a:filename . '" does not resolve to extension "' . a:filetype . '"'
|
||||
echo ' instead received: "' . v:exception . '"'
|
||||
exec ':cq!'
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
call TestExtension('sh', 'bash1', "#!/bin/bash")
|
||||
call TestExtension('sh', 'bash2', "#! /bin/bash")
|
||||
call TestExtension('sh', 'bash3', "#! /bin/bash2.3")
|
||||
call TestExtension('sh', 'bash4', "#!/usr/bin/env bash")
|
||||
call TestExtension('sh', 'bash6', "#!/usr/bin/env -i -=split-string foo=bar bash -l foo")
|
||||
call TestExtension('sh', 'bash1', "#!/bin/bash")
|
||||
|
||||
" Vim help file
|
||||
call TestExtension('help', $VIMRUNTIME . '/doc/foobar.txt', '')
|
||||
|
||||
" Abaqus or Trasys
|
||||
call TestExtension('abaqus', 'foobar.inp', "*HEADING\nFoobar")
|
||||
call TestExtension('trasys', 'foobar.inp', "MSC PATRAN\n* foobar\nHEADER SURFACE DATA\nBSC ENCLO1")
|
||||
|
||||
" 8th (Firth-derivative)
|
||||
call TestExtension('8th', 'foobar.8th', '')
|
||||
call TestExtension('8th', 'foobar.8th', '')
|
||||
|
||||
" A-A-P recipe
|
||||
call TestExtension('aap', 'foobar.aap', '')
|
||||
|
||||
|
||||
" A2ps printing utility
|
||||
call TestExtension('a2ps', '/etc/a2ps.cfg', '')
|
||||
call TestExtension('a2ps', '/usr/local/etc/a2ps.cfg', '')
|
||||
call TestExtension('a2ps', '/etc/a2ps/foobar.cfg', '')
|
||||
call TestExtension('a2ps', '/usr/local/etc/a2ps/foobar.cfg', '')
|
||||
call TestExtension('a2ps', '/tmp/a2psrc', '')
|
||||
call TestExtension('a2ps', '/tmp/.a2psrc', '')
|
||||
|
||||
" ABAB/4
|
||||
call TestExtension('abap', 'foobar.abap', '')
|
||||
|
||||
" ABC music notation
|
||||
call TestExtension('abc', 'foobar.abc', '')
|
||||
|
||||
" ABEL
|
||||
call TestExtension('abel', 'foobar.abl', '')
|
||||
|
||||
" AceDB
|
||||
call TestExtension('acedb', 'foobar.wrm', '')
|
||||
|
||||
" Ada (83, 9X, 95)
|
||||
call TestExtension('ada', 'foobar.adb', '')
|
||||
call TestExtension('ada', 'foobar.ads', '')
|
||||
call TestExtension('ada', 'foobar.ada', '')
|
||||
call TestExtension('ada', 'foobar.gpr', '')
|
||||
|
||||
" AHDL
|
||||
call TestExtension('ahdl', 'foobar.tdf', '')
|
||||
|
||||
" AIDL
|
||||
call TestExtension('aidl', 'foobar.aidl', '')
|
||||
|
||||
" AMPL
|
||||
call TestExtension('ampl', 'foobar.run', '')
|
||||
|
||||
" Ant
|
||||
call TestExtension('ant', 'build.xml', '')
|
||||
|
||||
" Arduino
|
||||
call TestExtension('arduino', 'foobar.ino', '')
|
||||
call TestExtension('arduino', 'foobar.pde', '')
|
||||
|
||||
" Apache config file
|
||||
call TestExtension('apache', '.htaccess', '')
|
||||
call TestExtension('apache', '/etc/httpd/foobar.conf', '')
|
||||
call TestExtension('apache', '/etc/apache2/sites-foobar/foobar.com', '')
|
||||
call TestExtension('apache', '/usr/local/etc/httpd/foobar.conf', '')
|
||||
call TestExtension('apache', '/usr/local/etc/apache2/sites-foobar/foobar.com', '')
|
||||
|
||||
" XA65 MOS6510 cross assembler
|
||||
call TestExtension('a65', 'foobar.a65', '')
|
||||
|
||||
" Applescript
|
||||
call TestExtension('applescript', 'foobar.scpt', '')
|
||||
|
||||
" Applix ELF
|
||||
call TestExtension('elf', 'foobar.am', '')
|
||||
call TestExtension('automake', 'Makefile.am', '')
|
||||
call TestExtension('automake', 'makefile.am', '')
|
||||
|
||||
" ALSA configuration
|
||||
call TestExtension('alsaconf', '.asoundrc', '')
|
||||
call TestExtension('alsaconf', '/usr/share/alsa/alsa.conf', '')
|
||||
call TestExtension('alsaconf', '/media/foo/usr/share/alsa/alsa.conf', '')
|
||||
call TestExtension('alsaconf', '/etc/asound.conf', '')
|
||||
call TestExtension('alsaconf', '/media/foo/etc/asound.conf', '')
|
||||
|
||||
" Arc Macro Language
|
||||
call TestExtension('aml', 'foobar.aml', '')
|
||||
|
||||
" APT config file
|
||||
call TestExtension('aptconf', 'apt.conf', '')
|
||||
call TestExtension('aptconf', '/root/.aptitude/config', '')
|
||||
call TestExtension('aptconf', '/etc/apt/apt.conf.d/foo_bar-12', '')
|
||||
call TestExtension('aptconf', '/etc/apt/apt.conf.d/foo_bar-12.conf', '')
|
||||
call TestExtension('', '/etc/apt/apt.conf.d/.gsdf', '')
|
||||
|
||||
" Arch Inventory file
|
||||
call TestExtension('arch', '.arch-inventory', '')
|
||||
call TestExtension('arch', '=tagging-method', '')
|
||||
|
||||
" ART*Enterprise (formerly ART-IM)
|
||||
call TestExtension('art', 'foobar.art', '')
|
||||
|
||||
" AsciiDoc
|
||||
call TestExtension('asciidoc', 'foobar.asciidoc', '')
|
||||
call TestExtension('asciidoc', 'foobar.adoc', '')
|
||||
|
||||
" ASN.1
|
||||
call TestExtension('asn', 'foobar.asn', '')
|
||||
call TestExtension('asn', 'foobar.asn1', '')
|
||||
|
||||
" Active Server Pages (with Visual Basic Script)
|
||||
call TestExtension('aspvbs', 'foobar.asa', '')
|
||||
let g:filetype_asa = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'foobar.asa', '')
|
||||
|
||||
" Active Server Pages (with Perl or Visual Basic Script)
|
||||
call TestExtension('aspvbs', 'vbs.asp', "")
|
||||
call TestExtension('aspperl', 'perl.asp', "<Job ID=\"DropFiles\">\n<script language=\"PerlScript\">\n</script>\n</Job>")
|
||||
let g:filetype_asp = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.asp', '')
|
||||
|
||||
|
||||
" Grub (must be before catch *.lst)
|
||||
call TestExtension('grub', '/boot/grub/menu.lst', '')
|
||||
call TestExtension('grub', '/media/foobar/boot/grub/menu.lst', '')
|
||||
call TestExtension('grub', '/boot/grub/grub.conf', '')
|
||||
call TestExtension('grub', '/media/foobar/boot/grub/grub.conf', '')
|
||||
call TestExtension('grub', '/etc/grub.conf', '')
|
||||
call TestExtension('grub', '/media/foobar/etc/grub.conf', '')
|
||||
|
||||
" Assembly (all kinds)
|
||||
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
|
||||
|
||||
au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
|
||||
|
||||
" Macro (VAX)
|
||||
call TestExtension('vmasm', 'foobar.mar', '')
|
||||
|
||||
" Atlas
|
||||
call TestExtension('atlas', 'foobar.atl', '')
|
||||
call TestExtension('atlas', 'foobar.as', '')
|
||||
|
||||
" Autoit v3
|
||||
call TestExtension('autoit', 'foobar.au3', '')
|
||||
|
||||
" Autohotkey
|
||||
call TestExtension('autohotkey', 'foobar.ahk', '')
|
||||
|
||||
" Automake
|
||||
call TestExtension('automake', 'Makefile.am', '')
|
||||
call TestExtension('automake', 'makefile.am', '')
|
||||
call TestExtension('automake', 'GNUmakefile.am', '')
|
||||
|
||||
" Autotest .at files are actually m4
|
||||
call TestExtension('m4', 'foobar.at', '')
|
||||
|
||||
" Avenue
|
||||
call TestExtension('ave', 'foobar.ave', '')
|
||||
|
||||
" Awk
|
||||
call TestExtension('awk', 'foobar.awk', '')
|
||||
|
||||
" vim-polyglot only
|
||||
call TestExtension('blade', 'test.blade.php', '')
|
||||
call TestExtension('yaml.ansible', 'playbook.yml', '')
|
||||
call TestExtension('yaml.ansible', 'host_vars/foobar', '')
|
||||
call TestExtension('yaml.ansible', 'handlers.foobar.yaml', '')
|
||||
call TestExtension('yaml.ansible', 'requirements.yaml', '')
|
||||
call TestExtension('ps1xml', 'foobar.ps1xml', '')
|
||||
|
||||
" .m extension
|
||||
call TestExtension('octave', 'matlab.m', '')
|
||||
call TestExtension('objc', 'objc.m', "\n\n #import <Foundation/Foundation.h>")
|
||||
call TestExtension('octave', 'objc.m', "results_ub_times=zeros(2,2,M);\n%results pour la lower bound")
|
||||
call TestExtension('mma', 'mathematica.m', "newcase[ \"00003\" ];\n (* Hello world *)")
|
||||
call TestExtension('murphi', 'murphi.m', "type\n square: 1 .. 9")
|
||||
call TestExtension('murphi', 'murphi.m', "something\n--foobar")
|
||||
call TestExtension('octave', 'percentcomment.m', "hello world\n%foobar")
|
||||
call TestExtension('objc', 'comment.m', "\n/* Hello world */")
|
||||
let g:filetype_m = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.m', '')
|
||||
|
||||
" .fs extension
|
||||
call TestExtension('forth', 'empty.fs', '')
|
||||
call TestExtension('fsharp', 'fsharp.fs', "let myInt = 5")
|
||||
call TestExtension('glsl', 'glsl.fs', "//#version 120\nvoid main() {}")
|
||||
let g:filetype_fs = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.fs', '')
|
||||
|
||||
" .re extension
|
||||
call TestExtension('reason', 'empty.re', '')
|
||||
call TestExtension('cpp', 'cpp.re', '#include "config.h"')
|
||||
call TestExtension('cpp', 'cpp2.re', '#ifdef HAVE_CONFIG_H')
|
||||
call TestExtension('cpp', 'cpp3.re', '#define YYCTYPE unsigned char')
|
||||
call TestExtension('reason', 'react.re', 'ReasonReact.Router.push("");')
|
||||
170
syntax/basic.vim
Normal file
170
syntax/basic.vim
Normal file
@@ -0,0 +1,170 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'basic') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: BASIC
|
||||
" Maintainer: Allan Kelly <allan@fruitloaf.co.uk>
|
||||
" Last Change: 2011 Dec 25 by Thilo Six
|
||||
|
||||
" First version based on Micro$soft QBASIC circa 1989, as documented in
|
||||
" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
|
||||
" This syntax file not a complete implementation yet. Send suggestions to the
|
||||
" maintainer.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" A bunch of useful BASIC keywords
|
||||
syn keyword basicStatement BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave
|
||||
syn keyword basicStatement CALL call Call ABSOLUTE absolute Absolute
|
||||
syn keyword basicStatement CHAIN chain Chain CHDIR chdir Chdir
|
||||
syn keyword basicStatement CIRCLE circle Circle CLEAR clear Clear
|
||||
syn keyword basicStatement CLOSE close Close CLS cls Cls COLOR color Color
|
||||
syn keyword basicStatement COM com Com COMMON common Common
|
||||
syn keyword basicStatement CONST const Const DATA data Data
|
||||
syn keyword basicStatement DECLARE declare Declare DEF def Def
|
||||
syn keyword basicStatement DEFDBL defdbl Defdbl DEFINT defint Defint
|
||||
syn keyword basicStatement DEFLNG deflng Deflng DEFSNG defsng Defsng
|
||||
syn keyword basicStatement DEFSTR defstr Defstr DIM dim Dim
|
||||
syn keyword basicStatement DO do Do LOOP loop Loop
|
||||
syn keyword basicStatement DRAW draw Draw END end End
|
||||
syn keyword basicStatement ENVIRON environ Environ ERASE erase Erase
|
||||
syn keyword basicStatement ERROR error Error EXIT exit Exit
|
||||
syn keyword basicStatement FIELD field Field FILES files Files
|
||||
syn keyword basicStatement FOR for For NEXT next Next
|
||||
syn keyword basicStatement FUNCTION function Function GET get Get
|
||||
syn keyword basicStatement GOSUB gosub Gosub GOTO goto Goto
|
||||
syn keyword basicStatement IF if If THEN then Then ELSE else Else
|
||||
syn keyword basicStatement INPUT input Input INPUT# input# Input#
|
||||
syn keyword basicStatement IOCTL ioctl Ioctl KEY key Key
|
||||
syn keyword basicStatement KILL kill Kill LET let Let
|
||||
syn keyword basicStatement LINE line Line LOCATE locate Locate
|
||||
syn keyword basicStatement LOCK lock Lock UNLOCK unlock Unlock
|
||||
syn keyword basicStatement LPRINT lprint Lprint USING using Using
|
||||
syn keyword basicStatement LSET lset Lset MKDIR mkdir Mkdir
|
||||
syn keyword basicStatement NAME name Name ON on On
|
||||
syn keyword basicStatement ERROR error Error OPEN open Open
|
||||
syn keyword basicStatement OPTION option Option BASE base Base
|
||||
syn keyword basicStatement OUT out Out PAINT paint Paint
|
||||
syn keyword basicStatement PALETTE palette Palette PCOPY pcopy Pcopy
|
||||
syn keyword basicStatement PEN pen Pen PLAY play Play
|
||||
syn keyword basicStatement PMAP pmap Pmap POKE poke Poke
|
||||
syn keyword basicStatement PRESET preset Preset PRINT print Print
|
||||
syn keyword basicStatement PRINT# print# Print# USING using Using
|
||||
syn keyword basicStatement PSET pset Pset PUT put Put
|
||||
syn keyword basicStatement RANDOMIZE randomize Randomize READ read Read
|
||||
syn keyword basicStatement REDIM redim Redim RESET reset Reset
|
||||
syn keyword basicStatement RESTORE restore Restore RESUME resume Resume
|
||||
syn keyword basicStatement RETURN return Return RMDIR rmdir Rmdir
|
||||
syn keyword basicStatement RSET rset Rset RUN run Run
|
||||
syn keyword basicStatement SEEK seek Seek SELECT select Select
|
||||
syn keyword basicStatement CASE case Case SHARED shared Shared
|
||||
syn keyword basicStatement SHELL shell Shell SLEEP sleep Sleep
|
||||
syn keyword basicStatement SOUND sound Sound STATIC static Static
|
||||
syn keyword basicStatement STOP stop Stop STRIG strig Strig
|
||||
syn keyword basicStatement SUB sub Sub SWAP swap Swap
|
||||
syn keyword basicStatement SYSTEM system System TIMER timer Timer
|
||||
syn keyword basicStatement TROFF troff Troff TRON tron Tron
|
||||
syn keyword basicStatement TYPE type Type UNLOCK unlock Unlock
|
||||
syn keyword basicStatement VIEW view View WAIT wait Wait
|
||||
syn keyword basicStatement WHILE while While WEND wend Wend
|
||||
syn keyword basicStatement WIDTH width Width WINDOW window Window
|
||||
syn keyword basicStatement WRITE write Write DATE$ date$ Date$
|
||||
syn keyword basicStatement MID$ mid$ Mid$ TIME$ time$ Time$
|
||||
|
||||
syn keyword basicFunction ABS abs Abs ASC asc Asc
|
||||
syn keyword basicFunction ATN atn Atn CDBL cdbl Cdbl
|
||||
syn keyword basicFunction CINT cint Cint CLNG clng Clng
|
||||
syn keyword basicFunction COS cos Cos CSNG csng Csng
|
||||
syn keyword basicFunction CSRLIN csrlin Csrlin CVD cvd Cvd
|
||||
syn keyword basicFunction CVDMBF cvdmbf Cvdmbf CVI cvi Cvi
|
||||
syn keyword basicFunction CVL cvl Cvl CVS cvs Cvs
|
||||
syn keyword basicFunction CVSMBF cvsmbf Cvsmbf EOF eof Eof
|
||||
syn keyword basicFunction ERDEV erdev Erdev ERL erl Erl
|
||||
syn keyword basicFunction ERR err Err EXP exp Exp
|
||||
syn keyword basicFunction FILEATTR fileattr Fileattr FIX fix Fix
|
||||
syn keyword basicFunction FRE fre Fre FREEFILE freefile Freefile
|
||||
syn keyword basicFunction INP inp Inp INSTR instr Instr
|
||||
syn keyword basicFunction INT int Int LBOUND lbound Lbound
|
||||
syn keyword basicFunction LEN len Len LOC loc Loc
|
||||
syn keyword basicFunction LOF lof Lof LOG log Log
|
||||
syn keyword basicFunction LPOS lpos Lpos PEEK peek Peek
|
||||
syn keyword basicFunction PEN pen Pen POINT point Point
|
||||
syn keyword basicFunction POS pos Pos RND rnd Rnd
|
||||
syn keyword basicFunction SADD sadd Sadd SCREEN screen Screen
|
||||
syn keyword basicFunction SEEK seek Seek SETMEM setmem Setmem
|
||||
syn keyword basicFunction SGN sgn Sgn SIN sin Sin
|
||||
syn keyword basicFunction SPC spc Spc SQR sqr Sqr
|
||||
syn keyword basicFunction STICK stick Stick STRIG strig Strig
|
||||
syn keyword basicFunction TAB tab Tab TAN tan Tan
|
||||
syn keyword basicFunction UBOUND ubound Ubound VAL val Val
|
||||
syn keyword basicFunction VALPTR valptr Valptr VALSEG valseg Valseg
|
||||
syn keyword basicFunction VARPTR varptr Varptr VARSEG varseg Varseg
|
||||
syn keyword basicFunction CHR$ Chr$ chr$ COMMAND$ command$ Command$
|
||||
syn keyword basicFunction DATE$ date$ Date$ ENVIRON$ environ$ Environ$
|
||||
syn keyword basicFunction ERDEV$ erdev$ Erdev$ HEX$ hex$ Hex$
|
||||
syn keyword basicFunction INKEY$ inkey$ Inkey$ INPUT$ input$ Input$
|
||||
syn keyword basicFunction IOCTL$ ioctl$ Ioctl$ LCASES$ lcases$ Lcases$
|
||||
syn keyword basicFunction LAFT$ laft$ Laft$ LTRIM$ ltrim$ Ltrim$
|
||||
syn keyword basicFunction MID$ mid$ Mid$ MKDMBF$ mkdmbf$ Mkdmbf$
|
||||
syn keyword basicFunction MKD$ mkd$ Mkd$ MKI$ mki$ Mki$
|
||||
syn keyword basicFunction MKL$ mkl$ Mkl$ MKSMBF$ mksmbf$ Mksmbf$
|
||||
syn keyword basicFunction MKS$ mks$ Mks$ OCT$ oct$ Oct$
|
||||
syn keyword basicFunction RIGHT$ right$ Right$ RTRIM$ rtrim$ Rtrim$
|
||||
syn keyword basicFunction SPACE$ space$ Space$ STR$ str$ Str$
|
||||
syn keyword basicFunction STRING$ string$ String$ TIME$ time$ Time$
|
||||
syn keyword basicFunction UCASE$ ucase$ Ucase$ VARPTR$ varptr$ Varptr$
|
||||
syn keyword basicTodo contained TODO
|
||||
|
||||
"integer number, or floating point number without a dot.
|
||||
syn match basicNumber "\<\d\+\>"
|
||||
"floating point number, with dot
|
||||
syn match basicNumber "\<\d\+\.\d*\>"
|
||||
"floating point number, starting with a dot
|
||||
syn match basicNumber "\.\d\+\>"
|
||||
|
||||
" String and Character contstants
|
||||
syn match basicSpecial contained "\\\d\d\d\|\\."
|
||||
syn region basicString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=basicSpecial
|
||||
|
||||
syn region basicComment start="REM" end="$" contains=basicTodo
|
||||
syn region basicComment start="^[ \t]*'" end="$" contains=basicTodo
|
||||
syn region basicLineNumber start="^\d" end="\s"
|
||||
syn match basicTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
|
||||
" Used with OPEN statement
|
||||
syn match basicFilenumber "#\d\+"
|
||||
"syn sync ccomment basicComment
|
||||
" syn match basicMathsOperator "[<>+\*^/\\=-]"
|
||||
syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR"
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link basicLabel Label
|
||||
hi def link basicConditional Conditional
|
||||
hi def link basicRepeat Repeat
|
||||
hi def link basicLineNumber Comment
|
||||
hi def link basicNumber Number
|
||||
hi def link basicError Error
|
||||
hi def link basicStatement Statement
|
||||
hi def link basicString String
|
||||
hi def link basicComment Comment
|
||||
hi def link basicSpecial Special
|
||||
hi def link basicTodo Todo
|
||||
hi def link basicFunction Identifier
|
||||
hi def link basicTypeSpecifier Type
|
||||
hi def link basicFilenumber basicTypeSpecifier
|
||||
"hi basicMathsOperator term=bold cterm=bold gui=bold
|
||||
|
||||
|
||||
let b:current_syntax = "basic"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
20
syntax/bzl.vim
Normal file
20
syntax/bzl.vim
Normal file
@@ -0,0 +1,20 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bzl') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Bazel (http://bazel.io)
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||
" Last Change: 2015 Aug 11
|
||||
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
runtime! syntax/python.vim
|
||||
|
||||
let b:current_syntax = 'bzl'
|
||||
|
||||
syn region bzlRule start='^\w\+($' end='^)\n*' transparent fold
|
||||
syn region bzlList start='\[' end='\]' transparent fold
|
||||
|
||||
endif
|
||||
44
syntax/dosini.vim
Normal file
44
syntax/dosini.vim
Normal file
@@ -0,0 +1,44 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dosini') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Configuration File (ini file) for MSDOS/MS Windows
|
||||
" Version: 2.2
|
||||
" Original Author: Sean M. McKee <mckee@misslink.net>
|
||||
" Previous Maintainer: Nima Talebi <nima@it.net.au>
|
||||
" Current Maintainer: Hong Xu <hong@topbug.net>
|
||||
" Homepage: http://www.vim.org/scripts/script.php?script_id=3747
|
||||
" Repository: https://github.com/xuhdev/syntax-dosini.vim
|
||||
" Last Change: 2018 Sep 11
|
||||
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" shut case off
|
||||
syn case ignore
|
||||
|
||||
syn match dosiniLabel "^.\{-}\ze\s*=" nextgroup=dosiniNumber,dosiniValue
|
||||
syn match dosiniValue "=\zs.*"
|
||||
syn match dosiniNumber "=\zs\s*\d\+\s*$"
|
||||
syn match dosiniNumber "=\zs\s*\d*\.\d\+\s*$"
|
||||
syn match dosiniNumber "=\zs\s*\d\+e[+-]\=\d\+\s*$"
|
||||
syn region dosiniHeader start="^\s*\[" end="\]"
|
||||
syn match dosiniComment "^[#;].*$"
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link dosiniNumber Number
|
||||
hi def link dosiniHeader Special
|
||||
hi def link dosiniComment Comment
|
||||
hi def link dosiniLabel Type
|
||||
hi def link dosiniValue String
|
||||
|
||||
|
||||
let b:current_syntax = "dosini"
|
||||
|
||||
" vim: sts=2 sw=2 et
|
||||
|
||||
endif
|
||||
@@ -20,7 +20,7 @@ syn keyword lispKey ppx_runtime_libraries virtual_deps js_of_ocaml link_flags
|
||||
syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps
|
||||
syn keyword lispKey library_flags c_flags c_library_flags kind package action
|
||||
syn keyword lispKey deps targets locks fallback
|
||||
syn keyword lispKey inline_tests tests names
|
||||
syn keyword lispKey inline_tests tests test names
|
||||
|
||||
syn keyword lispAtom true false
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'erlang') == -1
|
||||
" Language: Erlang (http://www.erlang.org)
|
||||
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
|
||||
" Contributor: Adam Rutkowski <hq@mtod.org>
|
||||
" Last Update: 2019-Jun-18
|
||||
" Last Update: 2020-May-26
|
||||
" License: Vim license
|
||||
" URL: https://github.com/vim-erlang/vim-erlang-runtime
|
||||
|
||||
|
||||
@@ -424,8 +424,8 @@ function! s:hi()
|
||||
|
||||
" :GoDebug commands
|
||||
if go#config#HighlightDebug()
|
||||
hi GoDebugBreakpoint term=standout ctermbg=117 ctermfg=0 guibg=#BAD4F5 guifg=Black
|
||||
hi GoDebugCurrent term=reverse ctermbg=12 ctermfg=7 guibg=DarkBlue guifg=White
|
||||
hi def GoDebugBreakpoint term=standout ctermbg=117 ctermfg=0 guibg=#BAD4F5 guifg=Black
|
||||
hi def GoDebugCurrent term=reverse ctermbg=12 ctermfg=7 guibg=DarkBlue guifg=White
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
454
syntax/groovy.vim
Normal file
454
syntax/groovy.vim
Normal file
@@ -0,0 +1,454 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'groovy') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Groovy
|
||||
" Original Author: Alessio Pace <billy.corgan AT tiscali.it>
|
||||
" Maintainer: Tobias Rapp <yahuxo+vim AT mailbox.org>
|
||||
" Version: 0.1.17
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=945
|
||||
" Last Change: 2020 May 26
|
||||
|
||||
" THE ORIGINAL AUTHOR'S NOTES:
|
||||
"
|
||||
" This is my very first vim script, I hope to have
|
||||
" done it the right way.
|
||||
"
|
||||
" I must directly or indirectly thank the author of java.vim and ruby.vim:
|
||||
" I copied from them most of the stuff :-)
|
||||
"
|
||||
" Relies on html.vim
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
"
|
||||
" HOWTO USE IT (INSTALL) when not part of the distribution:
|
||||
"
|
||||
" 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder
|
||||
"
|
||||
" 2) add this line to recognize groovy files by filename extension:
|
||||
"
|
||||
" au BufNewFile,BufRead *.groovy setf groovy
|
||||
" in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim
|
||||
"
|
||||
" 3) add this part to recognize by content groovy script (no extension needed :-)
|
||||
"
|
||||
" if did_filetype()
|
||||
" finish
|
||||
" endif
|
||||
" if getline(1) =~ '^#!.*[/\\]groovy\>'
|
||||
" setf groovy
|
||||
" endif
|
||||
"
|
||||
" in the global scripts.vim file or in $HOME/.vim/scripts.vim
|
||||
"
|
||||
" 4) open/write a .groovy file or a groovy script :-)
|
||||
"
|
||||
" Let me know if you like it or send me patches, so that I can improve it
|
||||
" when I have time
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if !exists("main_syntax")
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
" we define it here so that included files can test for it
|
||||
let main_syntax='groovy'
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" ##########################
|
||||
" Java stuff taken from java.vim
|
||||
" some characters that cannot be in a groovy program (outside a string)
|
||||
" syn match groovyError "[\\@`]"
|
||||
"syn match groovyError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
|
||||
"syn match groovyOK "\.\.\."
|
||||
|
||||
" keyword definitions
|
||||
syn keyword groovyExternal native package
|
||||
syn match groovyExternal "\<import\>\(\s\+static\>\)\?"
|
||||
syn keyword groovyError goto const
|
||||
syn keyword groovyConditional if else switch
|
||||
syn keyword groovyRepeat while for do
|
||||
syn keyword groovyBoolean true false
|
||||
syn keyword groovyConstant null
|
||||
syn keyword groovyTypedef this super
|
||||
syn keyword groovyOperator new instanceof
|
||||
syn keyword groovyType boolean char byte short int long float double
|
||||
syn keyword groovyType void
|
||||
syn keyword groovyType Integer Double Date Boolean Float String Array Vector List
|
||||
syn keyword groovyStatement return
|
||||
syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable
|
||||
syn keyword groovyExceptions throw try catch finally
|
||||
syn keyword groovyAssert assert
|
||||
syn keyword groovyMethodDecl synchronized throws
|
||||
syn keyword groovyClassDecl extends implements interface
|
||||
" to differentiate the keyword class from MyClass.class we use a match here
|
||||
syn match groovyTypedef "\.\s*\<class\>"ms=s+1
|
||||
syn keyword groovyClassDecl enum
|
||||
syn match groovyClassDecl "^class\>"
|
||||
syn match groovyClassDecl "[^.]\s*\<class\>"ms=s+1
|
||||
syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite
|
||||
syn match groovyUserLabelRef "\k\+" contained
|
||||
syn keyword groovyScopeDecl public protected private abstract
|
||||
|
||||
|
||||
if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy_lang") || exists("groovy_highlight_all")
|
||||
" groovy.lang.*
|
||||
syn keyword groovyLangClass Closure MetaMethod GroovyObject
|
||||
|
||||
syn match groovyJavaLangClass "\<System\>"
|
||||
syn keyword groovyJavaLangClass Cloneable Comparable Runnable Serializable Boolean Byte Class Object
|
||||
syn keyword groovyJavaLangClass Character CharSequence ClassLoader Compiler
|
||||
" syn keyword groovyJavaLangClass Integer Double Float Long
|
||||
syn keyword groovyJavaLangClass InheritableThreadLocal Math Number Object Package Process
|
||||
syn keyword groovyJavaLangClass Runtime RuntimePermission InheritableThreadLocal
|
||||
syn keyword groovyJavaLangClass SecurityManager Short StrictMath StackTraceElement
|
||||
syn keyword groovyJavaLangClass StringBuffer Thread ThreadGroup
|
||||
syn keyword groovyJavaLangClass ThreadLocal Throwable Void ArithmeticException
|
||||
syn keyword groovyJavaLangClass ArrayIndexOutOfBoundsException AssertionError
|
||||
syn keyword groovyJavaLangClass ArrayStoreException ClassCastException
|
||||
syn keyword groovyJavaLangClass ClassNotFoundException
|
||||
syn keyword groovyJavaLangClass CloneNotSupportedException Exception
|
||||
syn keyword groovyJavaLangClass IllegalAccessException
|
||||
syn keyword groovyJavaLangClass IllegalArgumentException
|
||||
syn keyword groovyJavaLangClass IllegalMonitorStateException
|
||||
syn keyword groovyJavaLangClass IllegalStateException
|
||||
syn keyword groovyJavaLangClass IllegalThreadStateException
|
||||
syn keyword groovyJavaLangClass IndexOutOfBoundsException
|
||||
syn keyword groovyJavaLangClass InstantiationException InterruptedException
|
||||
syn keyword groovyJavaLangClass NegativeArraySizeException NoSuchFieldException
|
||||
syn keyword groovyJavaLangClass NoSuchMethodException NullPointerException
|
||||
syn keyword groovyJavaLangClass NumberFormatException RuntimeException
|
||||
syn keyword groovyJavaLangClass SecurityException StringIndexOutOfBoundsException
|
||||
syn keyword groovyJavaLangClass UnsupportedOperationException
|
||||
syn keyword groovyJavaLangClass AbstractMethodError ClassCircularityError
|
||||
syn keyword groovyJavaLangClass ClassFormatError Error ExceptionInInitializerError
|
||||
syn keyword groovyJavaLangClass IllegalAccessError InstantiationError
|
||||
syn keyword groovyJavaLangClass IncompatibleClassChangeError InternalError
|
||||
syn keyword groovyJavaLangClass LinkageError NoClassDefFoundError
|
||||
syn keyword groovyJavaLangClass NoSuchFieldError NoSuchMethodError
|
||||
syn keyword groovyJavaLangClass OutOfMemoryError StackOverflowError
|
||||
syn keyword groovyJavaLangClass ThreadDeath UnknownError UnsatisfiedLinkError
|
||||
syn keyword groovyJavaLangClass UnsupportedClassVersionError VerifyError
|
||||
syn keyword groovyJavaLangClass VirtualMachineError
|
||||
|
||||
syn keyword groovyJavaLangObject clone equals finalize getClass hashCode
|
||||
syn keyword groovyJavaLangObject notify notifyAll toString wait
|
||||
|
||||
hi def link groovyLangClass groovyConstant
|
||||
hi def link groovyJavaLangClass groovyExternal
|
||||
hi def link groovyJavaLangObject groovyConstant
|
||||
syn cluster groovyTop add=groovyJavaLangObject,groovyJavaLangClass,groovyLangClass
|
||||
syn cluster groovyClasses add=groovyJavaLangClass,groovyLangClass
|
||||
endif
|
||||
|
||||
|
||||
" Groovy stuff
|
||||
syn match groovyOperator "\.\."
|
||||
syn match groovyOperator "<\{2,3}"
|
||||
syn match groovyOperator ">\{2,3}"
|
||||
syn match groovyOperator "->"
|
||||
syn match groovyLineComment '^\%1l#!.*' " Shebang line
|
||||
syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
|
||||
|
||||
" Groovy JDK stuff
|
||||
syn keyword groovyJDKBuiltin as def in
|
||||
syn keyword groovyJDKOperOverl div minus plus abs round power multiply
|
||||
syn keyword groovyJDKMethods each call inject sort print println
|
||||
syn keyword groovyJDKMethods getAt putAt size push pop toList getText writeLine eachLine readLines
|
||||
syn keyword groovyJDKMethods withReader withStream withWriter withPrintWriter write read leftShift
|
||||
syn keyword groovyJDKMethods withWriterAppend readBytes splitEachLine
|
||||
syn keyword groovyJDKMethods newInputStream newOutputStream newPrintWriter newReader newWriter
|
||||
syn keyword groovyJDKMethods compareTo next previous isCase
|
||||
syn keyword groovyJDKMethods times step toInteger upto any collect dump every find findAll grep
|
||||
syn keyword groovyJDKMethods inspect invokeMethods join
|
||||
syn keyword groovyJDKMethods getErr getIn getOut waitForOrKill
|
||||
syn keyword groovyJDKMethods count tokenize asList flatten immutable intersect reverse reverseEach
|
||||
syn keyword groovyJDKMethods subMap append asWritable eachByte eachLine eachFile
|
||||
syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods
|
||||
|
||||
" no useful I think, so I comment it..
|
||||
"if filereadable(expand("<sfile>:p:h")."/groovyid.vim")
|
||||
" source <sfile>:p:h/groovyid.vim
|
||||
"endif
|
||||
|
||||
if exists("groovy_space_errors")
|
||||
if !exists("groovy_no_trail_space_error")
|
||||
syn match groovySpaceError "\s\+$"
|
||||
endif
|
||||
if !exists("groovy_no_tab_space_error")
|
||||
syn match groovySpaceError " \+\t"me=e-1
|
||||
endif
|
||||
endif
|
||||
|
||||
" it is a better case construct than java.vim to match groovy syntax
|
||||
syn region groovyLabelRegion transparent matchgroup=groovyLabel start="\<case\>" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass
|
||||
syn match groovyUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel
|
||||
syn keyword groovyLabel default
|
||||
|
||||
if !exists("groovy_allow_cpp_keywords")
|
||||
syn keyword groovyError auto delete extern friend inline redeclared
|
||||
syn keyword groovyError register signed sizeof struct template typedef union
|
||||
syn keyword groovyError unsigned operator
|
||||
endif
|
||||
|
||||
" The following cluster contains all groovy groups except the contained ones
|
||||
syn cluster groovyTop add=groovyExternal,groovyError,groovyError,groovyBranch,groovyLabelRegion,groovyLabel,groovyConditional,groovyRepeat,groovyBoolean,groovyConstant,groovyTypedef,groovyOperator,groovyType,groovyType,groovyStatement,groovyStorageClass,groovyAssert,groovyExceptions,groovyMethodDecl,groovyClassDecl,groovyClassDecl,groovyClassDecl,groovyScopeDecl,groovyError,groovyError2,groovyUserLabel,groovyLangObject
|
||||
|
||||
|
||||
" Comments
|
||||
syn keyword groovyTodo contained TODO FIXME XXX
|
||||
if exists("groovy_comment_strings")
|
||||
syn region groovyCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=groovySpecial,groovyCommentStar,groovySpecialChar,@Spell
|
||||
syn region groovyComment2String contained start=+"+ end=+$\|"+ contains=groovySpecial,groovySpecialChar,@Spell
|
||||
syn match groovyCommentCharacter contained "'\\[^']\{1,6\}'" contains=groovySpecialChar
|
||||
syn match groovyCommentCharacter contained "'\\''" contains=groovySpecialChar
|
||||
syn match groovyCommentCharacter contained "'[^\\]'"
|
||||
syn cluster groovyCommentSpecial add=groovyCommentString,groovyCommentCharacter,groovyNumber
|
||||
syn cluster groovyCommentSpecial2 add=groovyComment2String,groovyCommentCharacter,groovyNumber
|
||||
endif
|
||||
syn region groovyComment start="/\*" end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell
|
||||
syn match groovyCommentStar contained "^\s*\*[^/]"me=e-1
|
||||
syn match groovyCommentStar contained "^\s*\*$"
|
||||
syn match groovyLineComment "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
|
||||
hi def link groovyCommentString groovyString
|
||||
hi def link groovyComment2String groovyString
|
||||
hi def link groovyCommentCharacter groovyCharacter
|
||||
|
||||
syn cluster groovyTop add=groovyComment,groovyLineComment
|
||||
|
||||
if !exists("groovy_ignore_groovydoc") && main_syntax != 'jsp'
|
||||
syntax case ignore
|
||||
" syntax coloring for groovydoc comments (HTML)
|
||||
" syntax include @groovyHtml <sfile>:p:h/html.vim
|
||||
syntax include @groovyHtml runtime! syntax/html.vim
|
||||
unlet b:current_syntax
|
||||
syntax spell default " added by Bram
|
||||
syn region groovyDocComment start="/\*\*" end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
|
||||
syn region groovyCommentTitle contained matchgroup=groovyDocComment start="/\*\*" matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags
|
||||
|
||||
syn region groovyDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
|
||||
syn match groovyDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam
|
||||
syn match groovyDocParam contained "\s\S\+"
|
||||
syn match groovyDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
|
||||
syntax case match
|
||||
endif
|
||||
|
||||
" match the special comment /**/
|
||||
syn match groovyComment "/\*\*/"
|
||||
|
||||
" Strings and constants
|
||||
syn match groovySpecialError contained "\\."
|
||||
syn match groovySpecialCharError contained "[^']"
|
||||
syn match groovySpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"
|
||||
syn match groovyRegexChar contained "\\."
|
||||
syn region groovyString start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
|
||||
syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell
|
||||
syn region groovyString start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
|
||||
syn region groovyString start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell
|
||||
if exists("groovy_regex_strings")
|
||||
" regex strings interfere with the division operator and thus are disabled
|
||||
" by default
|
||||
syn region groovyString start='/[^/*]' end='/' contains=groovySpecialChar,groovyRegexChar,groovyELExpr
|
||||
endif
|
||||
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
|
||||
syn match groovyELExpr /\${.\{-}}/ contained
|
||||
syn match groovyELExpr /\$[a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE_][a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE0-9_.]*/ contained
|
||||
hi def link groovyELExpr Identifier
|
||||
|
||||
" TODO: better matching. I am waiting to understand how it really works in groovy
|
||||
" syn region groovyClosureParamsBraces start=+|+ end=+|+ contains=groovyClosureParams
|
||||
" syn match groovyClosureParams "[ a-zA-Z0-9_*]\+" contained
|
||||
" hi def link groovyClosureParams Identifier
|
||||
|
||||
" next line disabled, it can cause a crash for a long line
|
||||
"syn match groovyStringError +"\([^"\\]\|\\.\)*$+
|
||||
|
||||
" disabled: in groovy strings or characters are written the same
|
||||
" syn match groovyCharacter "'[^']*'" contains=groovySpecialChar,groovySpecialCharError
|
||||
" syn match groovyCharacter "'\\''" contains=groovySpecialChar
|
||||
" syn match groovyCharacter "'[^\\]'"
|
||||
syn match groovyNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
|
||||
syn match groovyNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
|
||||
syn match groovyNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
|
||||
syn match groovyNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
|
||||
|
||||
" unicode characters
|
||||
syn match groovySpecial "\\u\d\{4\}"
|
||||
|
||||
syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError
|
||||
|
||||
if exists("groovy_highlight_functions")
|
||||
if groovy_highlight_functions == "indent"
|
||||
syn match groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
syn match groovyFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
syn region groovyFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
|
||||
else
|
||||
" This line catches method declarations at any indentation>0, but it assumes
|
||||
" two things:
|
||||
" 1. class names are always capitalized (ie: Button)
|
||||
" 2. method names are never capitalized (except constructors, of course)
|
||||
syn region groovyFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,groovyComment,groovyLineComment,@groovyClasses
|
||||
endif
|
||||
syn match groovyBraces "[{}]"
|
||||
syn cluster groovyTop add=groovyFuncDef,groovyBraces
|
||||
endif
|
||||
|
||||
if exists("groovy_highlight_debug")
|
||||
|
||||
" Strings and constants
|
||||
syn match groovyDebugSpecial contained "\\\d\d\d\|\\."
|
||||
syn region groovyDebugString contained start=+"+ end=+"+ contains=groovyDebugSpecial
|
||||
syn match groovyDebugStringError +"\([^"\\]\|\\.\)*$+
|
||||
syn match groovyDebugCharacter contained "'[^\\]'"
|
||||
syn match groovyDebugSpecialCharacter contained "'\\.'"
|
||||
syn match groovyDebugSpecialCharacter contained "'\\''"
|
||||
syn match groovyDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
|
||||
syn match groovyDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
|
||||
syn match groovyDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
|
||||
syn match groovyDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
|
||||
syn keyword groovyDebugBoolean contained true false
|
||||
syn keyword groovyDebugType contained null this super
|
||||
syn region groovyDebugParen start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen
|
||||
|
||||
" to make this work you must define the highlighting for these groups
|
||||
syn match groovyDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
syn match groovyDebug "\<p\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
syn match groovyDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
syn match groovyDebug "\<trace[SL]\=\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
|
||||
|
||||
syn cluster groovyTop add=groovyDebug
|
||||
|
||||
hi def link groovyDebug Debug
|
||||
hi def link groovyDebugString DebugString
|
||||
hi def link groovyDebugStringError groovyError
|
||||
hi def link groovyDebugType DebugType
|
||||
hi def link groovyDebugBoolean DebugBoolean
|
||||
hi def link groovyDebugNumber Debug
|
||||
hi def link groovyDebugSpecial DebugSpecial
|
||||
hi def link groovyDebugSpecialCharacter DebugSpecial
|
||||
hi def link groovyDebugCharacter DebugString
|
||||
hi def link groovyDebugParen Debug
|
||||
|
||||
hi def link DebugString String
|
||||
hi def link DebugSpecial Special
|
||||
hi def link DebugBoolean Boolean
|
||||
hi def link DebugType Type
|
||||
endif
|
||||
|
||||
" Match all Exception classes
|
||||
syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
|
||||
|
||||
|
||||
if !exists("groovy_minlines")
|
||||
let groovy_minlines = 10
|
||||
endif
|
||||
exec "syn sync ccomment groovyComment minlines=" . groovy_minlines
|
||||
|
||||
|
||||
" ###################
|
||||
" Groovy stuff
|
||||
" syn match groovyOperator "|[ ,a-zA-Z0-9_*]\+|"
|
||||
|
||||
" All groovy valid tokens
|
||||
" syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~=="
|
||||
" syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>"
|
||||
|
||||
" Must put explicit these ones because groovy.vim mark them as errors otherwise
|
||||
" syn match groovyTokens "<=>\|<>\|==\~"
|
||||
"syn cluster groovyTop add=groovyTokens
|
||||
|
||||
" Mark these as operators
|
||||
|
||||
" Hightlight brackets
|
||||
" syn match groovyBraces "[{}]"
|
||||
" syn match groovyBraces "[\[\]]"
|
||||
" syn match groovyBraces "[\|]"
|
||||
|
||||
if exists("groovy_mark_braces_in_parens_as_errors")
|
||||
syn match groovyInParen contained "[{}]"
|
||||
hi def link groovyInParen groovyError
|
||||
syn cluster groovyTop add=groovyInParen
|
||||
endif
|
||||
|
||||
" catch errors caused by wrong parenthesis
|
||||
syn region groovyParenT transparent matchgroup=groovyParen start="(" end=")" contains=@groovyTop,groovyParenT1
|
||||
syn region groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained
|
||||
syn region groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT contained
|
||||
syn match groovyParenError ")"
|
||||
hi def link groovyParenError groovyError
|
||||
|
||||
" catch errors caused by wrong square parenthesis
|
||||
syn region groovyParenT transparent matchgroup=groovyParen start="\[" end="\]" contains=@groovyTop,groovyParenT1
|
||||
syn region groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained
|
||||
syn region groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT contained
|
||||
syn match groovyParenError "\]"
|
||||
|
||||
" ###############################
|
||||
" java.vim default highlighting
|
||||
hi def link groovyFuncDef Function
|
||||
hi def link groovyBraces Function
|
||||
hi def link groovyBranch Conditional
|
||||
hi def link groovyUserLabelRef groovyUserLabel
|
||||
hi def link groovyLabel Label
|
||||
hi def link groovyUserLabel Label
|
||||
hi def link groovyConditional Conditional
|
||||
hi def link groovyRepeat Repeat
|
||||
hi def link groovyExceptions Exception
|
||||
hi def link groovyAssert Statement
|
||||
hi def link groovyStorageClass StorageClass
|
||||
hi def link groovyMethodDecl groovyStorageClass
|
||||
hi def link groovyClassDecl groovyStorageClass
|
||||
hi def link groovyScopeDecl groovyStorageClass
|
||||
hi def link groovyBoolean Boolean
|
||||
hi def link groovySpecial Special
|
||||
hi def link groovySpecialError Error
|
||||
hi def link groovySpecialCharError Error
|
||||
hi def link groovyString String
|
||||
hi def link groovyRegexChar String
|
||||
hi def link groovyCharacter Character
|
||||
hi def link groovySpecialChar SpecialChar
|
||||
hi def link groovyNumber Number
|
||||
hi def link groovyError Error
|
||||
hi def link groovyStringError Error
|
||||
hi def link groovyStatement Statement
|
||||
hi def link groovyOperator Operator
|
||||
hi def link groovyComment Comment
|
||||
hi def link groovyDocComment Comment
|
||||
hi def link groovyLineComment Comment
|
||||
hi def link groovyConstant Constant
|
||||
hi def link groovyTypedef Typedef
|
||||
hi def link groovyTodo Todo
|
||||
|
||||
hi def link groovyCommentTitle SpecialComment
|
||||
hi def link groovyDocTags Special
|
||||
hi def link groovyDocParam Function
|
||||
hi def link groovyCommentStar groovyComment
|
||||
|
||||
hi def link groovyType Type
|
||||
hi def link groovyExternal Include
|
||||
|
||||
hi def link htmlComment Special
|
||||
hi def link htmlCommentPart Special
|
||||
hi def link groovySpaceError Error
|
||||
hi def link groovyJDKBuiltin Special
|
||||
hi def link groovyJDKOperOverl Operator
|
||||
hi def link groovyJDKMethods Function
|
||||
|
||||
|
||||
let b:current_syntax = "groovy"
|
||||
if main_syntax == 'groovy'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
let b:spell_options="contained"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'help') == -1
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2020 Jul 28
|
||||
" Last Change: 2019 May 12
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -13,7 +13,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn match helpHeadline "^[-A-Z .][-A-Z0-9 .()_]*\ze\(\s\+\*\|$\)"
|
||||
syn match helpHeadline "^[-A-Z .][-A-Z0-9 .()_]*[ \t]\+\*"me=e-1
|
||||
syn match helpSectionDelim "^===.*===$"
|
||||
syn match helpSectionDelim "^---.*--$"
|
||||
if has("conceal")
|
||||
@@ -21,15 +21,9 @@ if has("conceal")
|
||||
else
|
||||
syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
|
||||
endif
|
||||
if has("ebcdic")
|
||||
syn match helpHyperTextJump "\\\@<!|[^"*|]\+|" contains=helpBar
|
||||
syn match helpHyperTextEntry "\*[^"*|]\+\*\s"he=e-1 contains=helpStar
|
||||
syn match helpHyperTextEntry "\*[^"*|]\+\*$" contains=helpStar
|
||||
else
|
||||
syn match helpHyperTextJump "\\\@<!|[#-)!+-~]\+|" contains=helpBar
|
||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
|
||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
|
||||
endif
|
||||
syn match helpHyperTextJump "\\\@<!|[#-)!+-~]\+|" contains=helpBar
|
||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
|
||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
|
||||
if has("conceal")
|
||||
syn match helpBar contained "|" conceal
|
||||
syn match helpBacktick contained "`" conceal
|
||||
@@ -44,6 +38,7 @@ syn match helpNormal "|||"
|
||||
syn match helpNormal ":|vim:|" " for :help modeline
|
||||
syn match helpVim "\<Vim version [0-9][0-9.a-z]*"
|
||||
syn match helpVim "VIM REFERENCE.*"
|
||||
syn match helpVim "NVIM REFERENCE.*"
|
||||
syn match helpOption "'[a-z]\{2,\}'"
|
||||
syn match helpOption "'t_..'"
|
||||
syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
|
||||
@@ -68,7 +63,7 @@ syn match helpSpecial "\[N]"
|
||||
syn match helpSpecial "N N"he=s+1
|
||||
syn match helpSpecial "Nth"me=e-2
|
||||
syn match helpSpecial "N-1"me=e-2
|
||||
syn match helpSpecial "{[-a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
|
||||
syn match helpSpecial "{[-_a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
|
||||
syn match helpSpecial "\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1
|
||||
syn match helpSpecial "<[-a-zA-Z0-9_]\+>"
|
||||
syn match helpSpecial "<[SCM]-.>"
|
||||
@@ -92,15 +87,14 @@ syn match helpSpecial "\[group]"
|
||||
syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
|
||||
|
||||
syn match helpSpecial "CTRL-."
|
||||
syn match helpSpecial "CTRL-SHIFT-."
|
||||
syn match helpSpecial "CTRL-Break"
|
||||
syn match helpSpecial "CTRL-PageUp"
|
||||
syn match helpSpecial "CTRL-PageDown"
|
||||
syn match helpSpecial "CTRL-Insert"
|
||||
syn match helpSpecial "CTRL-Del"
|
||||
syn match helpSpecial "CTRL-{char}"
|
||||
syn region helpNotVi start="{Vi[: ]" start="{not" start="{only" end="}" contains=helpLeadBlank,helpHyperTextJump
|
||||
syn match helpLeadBlank "^\s\+" contained
|
||||
syn match helpSpecial "META-."
|
||||
syn match helpSpecial "ALT-."
|
||||
|
||||
" Highlight group items in their own color.
|
||||
syn match helpComment "\t[* ]Comment\t\+[a-z].*"
|
||||
@@ -154,7 +148,6 @@ if v:lang =~ '\<IT\>' || v:lang =~ '_IT\>' || v:lang =~? "italian"
|
||||
syn match helpSpecial "Nmi"me=e-2
|
||||
syn match helpSpecial "Nmo"me=e-2
|
||||
syn match helpSpecial "\[interv.]"
|
||||
syn region helpNotVi start="{non" start="{solo" start="{disponibile" end="}" contains=helpLeadBlank,helpHyperTextJump
|
||||
endif
|
||||
|
||||
syn sync minlines=40
|
||||
@@ -175,7 +168,6 @@ hi def link helpVim Identifier
|
||||
hi def link helpCommand Comment
|
||||
hi def link helpExample Comment
|
||||
hi def link helpOption Type
|
||||
hi def link helpNotVi Special
|
||||
hi def link helpSpecial Special
|
||||
hi def link helpNote Todo
|
||||
hi def link helpWarning Todo
|
||||
|
||||
196
syntax/html-1.vim
Normal file
196
syntax/html-1.vim
Normal file
@@ -0,0 +1,196 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: HTML (version 5.1)
|
||||
" SVG (SVG 1.1 Second Edition)
|
||||
" MathML (MathML 3.0 Second Edition)
|
||||
" Last Change: 2017 Mar 07
|
||||
" License: Public domain
|
||||
" (but let me know if you like :) )
|
||||
"
|
||||
" Note: This file just add new tags from HTML 5
|
||||
" and don't replace default html.vim syntax file
|
||||
"
|
||||
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
|
||||
" Changes: update to Draft 2016 Jan 13
|
||||
" add microdata Attributes
|
||||
" Maintainer: Rodrigo Machado <rcmachado@gmail.com>
|
||||
" URL: http://rm.blog.br/vim/syntax/html.vim
|
||||
" Modified: htdebeer <H.T.de.Beer@gmail.com>
|
||||
" Changes: add common SVG elements and attributes for inline SVG
|
||||
|
||||
" Patch 7.4.1142
|
||||
if has("patch-7.4-1142")
|
||||
if has("win32")
|
||||
syn iskeyword @,48-57,_,128-167,224-235,-
|
||||
else
|
||||
syn iskeyword @,48-57,_,192-255,-
|
||||
endif
|
||||
endif
|
||||
|
||||
" HTML 5 tags
|
||||
syn keyword htmlTagName contained article aside audio canvas command
|
||||
syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer
|
||||
syn keyword htmlTagName contained header hgroup keygen main mark meter menu menuitem nav output
|
||||
syn keyword htmlTagName contained progress ruby rt rp rb rtc section source summary time track video data
|
||||
syn keyword htmlTagName contained template content shadow slot
|
||||
syn keyword htmlTagName contained wbr bdi
|
||||
syn keyword htmlTagName contained picture
|
||||
|
||||
" SVG tags
|
||||
" http://www.w3.org/TR/SVG/
|
||||
" as found in http://www.w3.org/TR/SVG/eltindex.html
|
||||
syn keyword htmlTagName contained svg
|
||||
syn keyword htmlTagName contained altGlyph altGlyphDef altGlyphItem
|
||||
syn keyword htmlTagName contained animate animateColor animateMotion animateTransform
|
||||
syn keyword htmlTagName contained circle ellipse rect line polyline polygon image path
|
||||
syn keyword htmlTagName contained clipPath color-profile cursor
|
||||
syn keyword htmlTagName contained defs desc g symbol view use switch foreignObject
|
||||
syn keyword htmlTagName contained filter feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence
|
||||
syn keyword htmlTagName contained font font-face font-face-format font-face-name font-face-src font-face-uri
|
||||
syn keyword htmlTagName contained glyph glyphRef hkern
|
||||
syn keyword htmlTagName contained linearGradient marker mask pattern radialGradient set stop
|
||||
syn keyword htmlTagName contained missing-glyph mpath
|
||||
syn keyword htmlTagName contained text textPath tref tspan vkern
|
||||
syn keyword htmlTagName contained metadata title
|
||||
|
||||
" MathML tags
|
||||
" https://www.w3.org/TR/MathML3/appendixi.html#index.elem
|
||||
syn keyword htmlTagName contained abs and annotation annotation-xml apply approx arccos arccosh arccot arccoth
|
||||
syn keyword htmlTagName contained arccsc arccsch arcsec arcsech arcsin arcsinh arctan arctanh arg bind
|
||||
syn keyword htmlTagName contained bvar card cartesianproduct cbytes ceiling cerror ci cn codomain complexes
|
||||
syn keyword htmlTagName contained compose condition conjugate cos cosh cot coth cs csc csch
|
||||
syn keyword htmlTagName contained csymbol curl declare degree determinant diff divergence divide domain domainofapplication
|
||||
syn keyword htmlTagName contained emptyset eq equivalent eulergamma exists exp exponentiale factorial factorof false
|
||||
syn keyword htmlTagName contained floor fn forall gcd geq grad gt ident image imaginary
|
||||
syn keyword htmlTagName contained imaginaryi implies in infinity int integers intersect interval inverse lambda
|
||||
syn keyword htmlTagName contained laplacian lcm leq limit list ln log logbase lowlimit lt
|
||||
syn keyword htmlTagName contained maction maligngroup malignmark math matrix matrixrow max mean median menclose
|
||||
syn keyword htmlTagName contained merror mfenced mfrac mglyph mi mi" min minus mlabeledtr mlongdiv
|
||||
syn keyword htmlTagName contained mmultiscripts mn mo mode moment momentabout mover mpadded mphantom mprescripts
|
||||
syn keyword htmlTagName contained mroot mrow ms mscarries mscarry msgroup msline mspace msqrt msrow
|
||||
syn keyword htmlTagName contained mstack mstyle msub msubsup msup mtable mtd mtext mtr munder
|
||||
syn keyword htmlTagName contained munderover naturalnumbers neq none not notanumber notin notprsubset notsubset or
|
||||
syn keyword htmlTagName contained otherwise outerproduct partialdiff pi piece piecewise plus power primes product
|
||||
syn keyword htmlTagName contained prsubset quotient rationals real reals reln rem root scalarproduct sdev
|
||||
syn keyword htmlTagName contained sec sech selector semantics sep set setdiff share sin sinh
|
||||
syn keyword htmlTagName contained span subset sum tan tanh tendsto times transpose true union
|
||||
syn keyword htmlTagName contained uplimit variance vector vectorproduct xor
|
||||
|
||||
" Custom Element
|
||||
syn match htmlTagName contained "\<[a-z][-.0-9_a-z]*-[-.0-9_a-z]*\>"
|
||||
syn match htmlTagName contained "[.0-9_a-z]\@<=-[-.0-9_a-z]*\>"
|
||||
|
||||
" HTML 5 arguments
|
||||
" Core Attributes
|
||||
syn keyword htmlArg contained accesskey class contenteditable contextmenu dir
|
||||
syn keyword htmlArg contained draggable hidden id is lang spellcheck style tabindex title translate
|
||||
" Event-handler Attributes
|
||||
syn keyword htmlArg contained onabort onblur oncanplay oncanplaythrough onchange
|
||||
syn keyword htmlArg contained onclick oncontextmenu ondblclick ondrag ondragend ondragenter ondragleave ondragover
|
||||
syn keyword htmlArg contained ondragstart ondrop ondurationchange onemptied onended onerror onfocus onformchange
|
||||
syn keyword htmlArg contained onforminput oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata
|
||||
syn keyword htmlArg contained onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup
|
||||
syn keyword htmlArg contained onmousewheel onpause onplay onplaying onprogress onratechange onreadystatechange
|
||||
syn keyword htmlArg contained onscroll onseeked onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate
|
||||
syn keyword htmlArg contained onvolumechange onwaiting
|
||||
" XML Attributes
|
||||
syn keyword htmlArg contained xml:lang xml:space xml:base xmlns
|
||||
" new features
|
||||
" <body>
|
||||
syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload
|
||||
syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload
|
||||
" <video>, <audio>, <source>, <track>
|
||||
syn keyword htmlArg contained autoplay preload controls loop poster media kind charset srclang track playsinline
|
||||
" <form>, <input>, <button>
|
||||
syn keyword htmlArg contained form autocomplete autofocus list min max step
|
||||
syn keyword htmlArg contained formaction autofocus formenctype formmethod formtarget formnovalidate
|
||||
syn keyword htmlArg contained required placeholder pattern
|
||||
" <command>, <details>, <time>
|
||||
syn keyword htmlArg contained label icon open datetime-local pubdate
|
||||
" <script>
|
||||
syn keyword htmlArg contained async
|
||||
" <content>
|
||||
syn keyword htmlArg contained select
|
||||
" <iframe>
|
||||
syn keyword htmlArg contained seamless srcdoc sandbox allowfullscreen allowusermedia allowpaymentrequest allowpresentation
|
||||
" <picture>
|
||||
syn keyword htmlArg contained srcset sizes
|
||||
" <a>
|
||||
syn keyword htmlArg contained download media
|
||||
" <script>, <style>
|
||||
syn keyword htmlArg contained nonce
|
||||
" <area>, <a>, <img>, <iframe>, <link>
|
||||
syn keyword htmlArg contained referrerpolicy
|
||||
" https://w3c.github.io/webappsec-subresource-integrity/#the-integrity-attribute
|
||||
syn keyword htmlArg contained integrity crossorigin
|
||||
" <link>
|
||||
syn keyword htmlArg contained prefetch
|
||||
" syn keyword htmlArg contained preload
|
||||
" <img>
|
||||
syn keyword htmlArg contained decoding
|
||||
" https://w3c.github.io/selection-api/#extensions-to-globaleventhandlers
|
||||
syn keyword htmlArg contained onselectstart onselectionchange
|
||||
" https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/loading
|
||||
syn keyword htmlArg contained loading
|
||||
|
||||
" Custom Data Attributes
|
||||
" http://w3c.github.io/html/single-page.html#embedding-custom-non-visible-data-with-the-data-attributes
|
||||
syn match htmlArg "\<data[-.0-9_a-z]*-[-.0-9_a-z]*\>" contained
|
||||
|
||||
" Vendor Extension Attributes
|
||||
" http://w3c.github.io/html/single-page.html#conformance-requirements-extensibility
|
||||
syn match htmlArg "\<x[-.0-9_a-z]*-[-.0-9_a-z]*\>" contained
|
||||
|
||||
" Microdata
|
||||
" http://dev.w3.org/html5/md/
|
||||
syn keyword htmlArg contained itemid itemscope itemtype itemprop itemref
|
||||
|
||||
" SVG
|
||||
" http://www.w3.org/TR/SVG/
|
||||
" Some common attributes from http://www.w3.org/TR/SVG/attindex.html
|
||||
syn keyword htmlArg contained accent-height accumulate additive alphabetic amplitude arabic-form ascent attributeName attributeType azimuth
|
||||
syn keyword htmlArg contained baseFrequency baseProfile bbox begin bias by
|
||||
syn keyword htmlArg contained calcMode cap-height class clipPathUnits contentScriptType contentStyleType cx cy
|
||||
syn keyword htmlArg contained d descent diffuseConstant divisor dur dx dy
|
||||
syn keyword htmlArg contained edgeMode elevation end exponent externalResourcesRequired
|
||||
syn keyword htmlArg contained fill filterRes filterUnits font-family font-size font-stretch font-style font-variant font-weight format format from fx fy
|
||||
syn keyword htmlArg contained g1 g2 glyph-name glyphRef gradientTransform gradientUnits
|
||||
syn keyword htmlArg contained hanging height horiz-adv-x horiz-origin-x horiz-origin-y
|
||||
syn keyword htmlArg contained id ideographic in in2 intercept
|
||||
syn keyword htmlArg contained k k1 k2 k3 k4 kernelMatrix kernelUnitLength keyPoints keySplines keyTimes
|
||||
syn keyword htmlArg contained lang lengthAdjust limitingConeAngle local
|
||||
syn keyword htmlArg contained markerHeight markerUnits markerWidth maskContentUnits maskUnits mathematical max media method min mode name
|
||||
syn keyword htmlArg contained numOctaves
|
||||
syn keyword htmlArg contained offset onabort onactivate onbegin onclick onend onerror onfocusin onfocusout onload onmousedown onmousemove onmouseout onmouseover onmouseup onrepeat onresize onscroll onunload onzoom operator order orient orientation origin overline-position overline-thickness
|
||||
syn keyword htmlArg contained panose-1 path pathLength patternContentUnits patternTransform patternUnits points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits
|
||||
syn keyword htmlArg contained r radius refX refY rendering-intent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry
|
||||
syn keyword htmlArg contained scale seed slope spacing specularConstant specularExponent spreadMethod startOffset stdDeviation stemh stemv stitchTiles strikethrough-position strikethrough-thickness string surfaceScale systemLanguage
|
||||
syn keyword htmlArg contained tableValues target targetX targetY textLength title to transform type
|
||||
syn keyword htmlArg contained u1 u2 underline-position underline-thickness unicode unicode-range units-per-em
|
||||
syn keyword htmlArg contained v-alphabetic v-hanging v-ideographic v-mathematical values version vert-adv-y vert-origin-x vert-origin-y viewBox viewTarget
|
||||
syn keyword htmlArg contained width widths
|
||||
syn keyword htmlArg contained x x-height x1 x2 xChannelSelector xlink:actuate xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xml:lang xml:space
|
||||
syn keyword htmlArg contained y y1 y2 yChannelSelector
|
||||
syn keyword htmlArg contained z zoomAndPan
|
||||
syn keyword htmlArg contained alignment-baseline baseline-shift clip-path clip-rule clip color-interpolation-filters color-interpolation color-profile color-rendering color cursor direction display dominant-baseline enable-background fill-opacity fill-rule fill filter flood-color flood-opacity font-family font-size-adjust font-size font-stretch font-style font-variant font-weight glyph-orientation-horizontal glyph-orientation-vertical image-rendering kerning letter-spacing lighting-color marker-end marker-mid marker-start mask opacity overflow pointer-events shape-rendering stop-color stop-opacity stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width stroke text-anchor text-decoration text-rendering unicode-bidi visibility word-spacing writing-mode
|
||||
|
||||
" MathML attributes
|
||||
" https://www.w3.org/TR/MathML3/chapter2.html#interf.toplevel.atts
|
||||
syn keyword htmlArg contained accent accentunder actiontype align alignmentscope altimg altimg-height altimg-valign altimg-width alttext
|
||||
syn keyword htmlArg contained annotation-xml background base baseline bevelled cd cdgroup charalign charspacing close
|
||||
syn keyword htmlArg contained closure color columnalign columnalignment columnlines columnspacing columnspan columnwidth crossout decimalpoint
|
||||
syn keyword htmlArg contained definitionURL denomalign depth display displaystyle edge encoding equalcolumns equalrows fence
|
||||
syn keyword htmlArg contained fontfamily fontsize fontstyle fontweight form frame framespacing groupalign height indentalign
|
||||
syn keyword htmlArg contained indentalignfirst indentalignlast indentshift indentshiftfirst indentshiftlast indenttarget index infixlinebreakstyle integer largeop
|
||||
syn keyword htmlArg contained leftoverhang length linebreak linebreakmultchar linebreakstyle lineleading linethickness location longdivstyle lquote
|
||||
syn keyword htmlArg contained lspace ltr macros math mathbackground mathcolor mathsize mathvariant maxsize maxwidth
|
||||
syn keyword htmlArg contained mediummathspace menclose minlabelspacing minsize mode movablelimits msgroup mslinethickness name nargs
|
||||
syn keyword htmlArg contained newline notation numalign number occurrence open order other overflow position
|
||||
syn keyword htmlArg contained rightoverhang role rowalign rowlines rowspacing rowspan rquote rspace schemaLocation scope
|
||||
syn keyword htmlArg contained scriptlevel scriptminsize scriptsize scriptsizemultiplier selection separator separators shift side stackalign
|
||||
syn keyword htmlArg contained stretchy subscriptshift superscriptshift symmetric thickmathspace thinmathspace type valign verythickmathspace verythinmathspace
|
||||
syn keyword htmlArg contained veryverythickmathspace veryverythinmathspace voffset width xref
|
||||
|
||||
|
||||
endif
|
||||
94
syntax/html-2.vim
Normal file
94
syntax/html-2.vim
Normal file
@@ -0,0 +1,94 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jinja') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: HTML (version 5)
|
||||
" Maintainer: Rodrigo Machado <rcmachado@gmail.com>
|
||||
" URL: http://rm.blog.br/vim/syntax/html.vim
|
||||
" Last Change: 2009 Aug 19
|
||||
" License: Public domain
|
||||
" (but let me know if you like :) )
|
||||
"
|
||||
" Note: This file just adds the new tags from HTML 5
|
||||
" and don't replace default html.vim syntax file
|
||||
"
|
||||
" Modified: othree <othree@gmail.com>
|
||||
" Changes: update to Draft 28 August 2010
|
||||
" add complete new attributes
|
||||
" add wai-aria attributes
|
||||
" add microdata attributes
|
||||
" add rdfa attributes
|
||||
|
||||
|
||||
syn keyword htmlTagName contained script
|
||||
" HTML 5 tags
|
||||
syn keyword htmlTagName contained article aside audio canvas command
|
||||
syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer
|
||||
syn keyword htmlTagName contained header hgroup keygen mark meter menu nav output
|
||||
syn keyword htmlTagName contained progress time ruby rt rp section source summary time track video wbr
|
||||
|
||||
" HTML 5 arguments
|
||||
" Core Attributes
|
||||
syn keyword htmlArg contained accesskey class contenteditable contextmenu dir
|
||||
syn keyword htmlArg contained draggable hidden id lang spellcheck style tabindex title
|
||||
" Event-handler Attributes
|
||||
syn keyword htmlArg contained onabort onblur oncanplay oncanplaythrough onchange
|
||||
syn keyword htmlArg contained onclick oncontextmenu ondblclick ondrag ondragend ondragenter ondragleave ondragover
|
||||
syn keyword htmlArg contained ondragstart ondrop ondurationchange onemptied onended onerror onfocus onformchange
|
||||
syn keyword htmlArg contained onforminput oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata
|
||||
syn keyword htmlArg contained onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup
|
||||
syn keyword htmlArg contained onmousewheel onpause onplay onplaying onprogress onratechange onreadystatechange
|
||||
syn keyword htmlArg contained onscroll onseeked onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate
|
||||
syn keyword htmlArg contained onvolumechange onwaiting
|
||||
" XML Attributes
|
||||
syn keyword htmlArg contained xml:lang xml:space xml:base
|
||||
" new features
|
||||
" <body>
|
||||
syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload
|
||||
syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload
|
||||
" <video>, <audio>, <source>, <track>
|
||||
syn keyword htmlArg contained autoplay preload controls loop poster media kind charset srclang track
|
||||
" <form>, <input>, <button>
|
||||
syn keyword htmlArg contained form autocomplete autofocus list min max step
|
||||
syn keyword htmlArg contained formaction autofocus formenctype formmethod formtarget formnovalidate
|
||||
" <command>, <details>, <time>
|
||||
syn keyword htmlArg contained label icon open datetime pubdate
|
||||
|
||||
" Custom Data Attributes
|
||||
" http://dev.w3.org/html5/spec/Overview.html#custom-data-attribute
|
||||
syn match htmlArg "\<\(data(\-[a-z]\+)\+\)=" contained
|
||||
|
||||
" Microdata
|
||||
" http://dev.w3.org/html5/md/
|
||||
syn keyword htmlArg contained item itemid itemscope itemtype itemprop
|
||||
|
||||
" RDFa
|
||||
" http://www.w3.org/TR/rdfa-syntax/#a_xhtmlrdfa_dtd
|
||||
syn keyword htmlArg contained about typeof property resource content datatype rel rev
|
||||
|
||||
" WAI-ARIA States and Properties
|
||||
" http://www.w3.org/TR/wai-aria/states_and_properties
|
||||
syn keyword htmlArg contained role
|
||||
" Global States and Properties
|
||||
syn match htmlArg contained "\<aria-\(atomic\|busy\|controls\|describedby\)\>"
|
||||
syn match htmlArg contained "\<aria-\(disabled\|dropeffect\|flowto\|grabbed\)\>"
|
||||
syn match htmlArg contained "\<aria-\(haspopup\|hidden\|invalid\|label\)\>"
|
||||
syn match htmlArg contained "\<aria-\(labelledby\|live\|owns\|relevant\)\>"
|
||||
|
||||
" Widget Attributes
|
||||
syn match htmlArg contained "\<aria-\(autocomplete\|checked\|disabled\|expanded\)\>"
|
||||
syn match htmlArg contained "\<aria-\(haspopup\|hidden\|invalid\|label\)\>"
|
||||
syn match htmlArg contained "\<aria-\(level\|multiline\|multiselectable\|orientation\)\>"
|
||||
syn match htmlArg contained "\<aria-\(pressed\|readonly\|required\|selected\)\>"
|
||||
syn match htmlArg contained "\<aria-\(sort\|valuemax\|valuemin\|valuenow\|valuetext\|\)\>"
|
||||
|
||||
" Live Region Attributes
|
||||
syn match htmlArg contained "\<aria-\(atomic\|busy\|live\|relevant\|\)\>"
|
||||
|
||||
" Drag-and-Drop attributes
|
||||
syn match htmlArg contained "\<aria-\(dropeffect\|grabbed\)\>"
|
||||
|
||||
" Relationship Attributes
|
||||
syn match htmlArg contained "\<aria-\(activedescendant\|controls\|describedby\|flowto\|\)\>"
|
||||
syn match htmlArg contained "\<aria-\(labelledby\|owns\|posinset\|setsize\|\)\>"
|
||||
|
||||
endif
|
||||
293
syntax/html.vim
293
syntax/html.vim
@@ -1,290 +1,3 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: HTML (version 5.1)
|
||||
" SVG (SVG 1.1 Second Edition)
|
||||
" MathML (MathML 3.0 Second Edition)
|
||||
" Last Change: 2017 Mar 07
|
||||
" License: Public domain
|
||||
" (but let me know if you like :) )
|
||||
"
|
||||
" Note: This file just add new tags from HTML 5
|
||||
" and don't replace default html.vim syntax file
|
||||
"
|
||||
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
|
||||
" Changes: update to Draft 2016 Jan 13
|
||||
" add microdata Attributes
|
||||
" Maintainer: Rodrigo Machado <rcmachado@gmail.com>
|
||||
" URL: http://rm.blog.br/vim/syntax/html.vim
|
||||
" Modified: htdebeer <H.T.de.Beer@gmail.com>
|
||||
" Changes: add common SVG elements and attributes for inline SVG
|
||||
|
||||
" Patch 7.4.1142
|
||||
if has("patch-7.4-1142")
|
||||
if has("win32")
|
||||
syn iskeyword @,48-57,_,128-167,224-235,-
|
||||
else
|
||||
syn iskeyword @,48-57,_,192-255,-
|
||||
endif
|
||||
endif
|
||||
|
||||
" HTML 5 tags
|
||||
syn keyword htmlTagName contained article aside audio canvas command
|
||||
syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer
|
||||
syn keyword htmlTagName contained header hgroup keygen main mark meter menu menuitem nav output
|
||||
syn keyword htmlTagName contained progress ruby rt rp rb rtc section source summary time track video data
|
||||
syn keyword htmlTagName contained template content shadow slot
|
||||
syn keyword htmlTagName contained wbr bdi
|
||||
syn keyword htmlTagName contained picture
|
||||
|
||||
" SVG tags
|
||||
" http://www.w3.org/TR/SVG/
|
||||
" as found in http://www.w3.org/TR/SVG/eltindex.html
|
||||
syn keyword htmlTagName contained svg
|
||||
syn keyword htmlTagName contained altGlyph altGlyphDef altGlyphItem
|
||||
syn keyword htmlTagName contained animate animateColor animateMotion animateTransform
|
||||
syn keyword htmlTagName contained circle ellipse rect line polyline polygon image path
|
||||
syn keyword htmlTagName contained clipPath color-profile cursor
|
||||
syn keyword htmlTagName contained defs desc g symbol view use switch foreignObject
|
||||
syn keyword htmlTagName contained filter feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence
|
||||
syn keyword htmlTagName contained font font-face font-face-format font-face-name font-face-src font-face-uri
|
||||
syn keyword htmlTagName contained glyph glyphRef hkern
|
||||
syn keyword htmlTagName contained linearGradient marker mask pattern radialGradient set stop
|
||||
syn keyword htmlTagName contained missing-glyph mpath
|
||||
syn keyword htmlTagName contained text textPath tref tspan vkern
|
||||
syn keyword htmlTagName contained metadata title
|
||||
|
||||
" MathML tags
|
||||
" https://www.w3.org/TR/MathML3/appendixi.html#index.elem
|
||||
syn keyword htmlTagName contained abs and annotation annotation-xml apply approx arccos arccosh arccot arccoth
|
||||
syn keyword htmlTagName contained arccsc arccsch arcsec arcsech arcsin arcsinh arctan arctanh arg bind
|
||||
syn keyword htmlTagName contained bvar card cartesianproduct cbytes ceiling cerror ci cn codomain complexes
|
||||
syn keyword htmlTagName contained compose condition conjugate cos cosh cot coth cs csc csch
|
||||
syn keyword htmlTagName contained csymbol curl declare degree determinant diff divergence divide domain domainofapplication
|
||||
syn keyword htmlTagName contained emptyset eq equivalent eulergamma exists exp exponentiale factorial factorof false
|
||||
syn keyword htmlTagName contained floor fn forall gcd geq grad gt ident image imaginary
|
||||
syn keyword htmlTagName contained imaginaryi implies in infinity int integers intersect interval inverse lambda
|
||||
syn keyword htmlTagName contained laplacian lcm leq limit list ln log logbase lowlimit lt
|
||||
syn keyword htmlTagName contained maction maligngroup malignmark math matrix matrixrow max mean median menclose
|
||||
syn keyword htmlTagName contained merror mfenced mfrac mglyph mi mi" min minus mlabeledtr mlongdiv
|
||||
syn keyword htmlTagName contained mmultiscripts mn mo mode moment momentabout mover mpadded mphantom mprescripts
|
||||
syn keyword htmlTagName contained mroot mrow ms mscarries mscarry msgroup msline mspace msqrt msrow
|
||||
syn keyword htmlTagName contained mstack mstyle msub msubsup msup mtable mtd mtext mtr munder
|
||||
syn keyword htmlTagName contained munderover naturalnumbers neq none not notanumber notin notprsubset notsubset or
|
||||
syn keyword htmlTagName contained otherwise outerproduct partialdiff pi piece piecewise plus power primes product
|
||||
syn keyword htmlTagName contained prsubset quotient rationals real reals reln rem root scalarproduct sdev
|
||||
syn keyword htmlTagName contained sec sech selector semantics sep set setdiff share sin sinh
|
||||
syn keyword htmlTagName contained span subset sum tan tanh tendsto times transpose true union
|
||||
syn keyword htmlTagName contained uplimit variance vector vectorproduct xor
|
||||
|
||||
" Custom Element
|
||||
syn match htmlTagName contained "\<[a-z][-.0-9_a-z]*-[-.0-9_a-z]*\>"
|
||||
syn match htmlTagName contained "[.0-9_a-z]\@<=-[-.0-9_a-z]*\>"
|
||||
|
||||
" HTML 5 arguments
|
||||
" Core Attributes
|
||||
syn keyword htmlArg contained accesskey class contenteditable contextmenu dir
|
||||
syn keyword htmlArg contained draggable hidden id is lang spellcheck style tabindex title translate
|
||||
" Event-handler Attributes
|
||||
syn keyword htmlArg contained onabort onblur oncanplay oncanplaythrough onchange
|
||||
syn keyword htmlArg contained onclick oncontextmenu ondblclick ondrag ondragend ondragenter ondragleave ondragover
|
||||
syn keyword htmlArg contained ondragstart ondrop ondurationchange onemptied onended onerror onfocus onformchange
|
||||
syn keyword htmlArg contained onforminput oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata
|
||||
syn keyword htmlArg contained onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup
|
||||
syn keyword htmlArg contained onmousewheel onpause onplay onplaying onprogress onratechange onreadystatechange
|
||||
syn keyword htmlArg contained onscroll onseeked onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate
|
||||
syn keyword htmlArg contained onvolumechange onwaiting
|
||||
" XML Attributes
|
||||
syn keyword htmlArg contained xml:lang xml:space xml:base xmlns
|
||||
" new features
|
||||
" <body>
|
||||
syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload
|
||||
syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload
|
||||
" <video>, <audio>, <source>, <track>
|
||||
syn keyword htmlArg contained autoplay preload controls loop poster media kind charset srclang track playsinline
|
||||
" <form>, <input>, <button>
|
||||
syn keyword htmlArg contained form autocomplete autofocus list min max step
|
||||
syn keyword htmlArg contained formaction autofocus formenctype formmethod formtarget formnovalidate
|
||||
syn keyword htmlArg contained required placeholder pattern
|
||||
" <command>, <details>, <time>
|
||||
syn keyword htmlArg contained label icon open datetime-local pubdate
|
||||
" <script>
|
||||
syn keyword htmlArg contained async
|
||||
" <content>
|
||||
syn keyword htmlArg contained select
|
||||
" <iframe>
|
||||
syn keyword htmlArg contained seamless srcdoc sandbox allowfullscreen allowusermedia allowpaymentrequest allowpresentation
|
||||
" <picture>
|
||||
syn keyword htmlArg contained srcset sizes
|
||||
" <a>
|
||||
syn keyword htmlArg contained download media
|
||||
" <script>, <style>
|
||||
syn keyword htmlArg contained nonce
|
||||
" <area>, <a>, <img>, <iframe>, <link>
|
||||
syn keyword htmlArg contained referrerpolicy
|
||||
" https://w3c.github.io/webappsec-subresource-integrity/#the-integrity-attribute
|
||||
syn keyword htmlArg contained integrity crossorigin
|
||||
" <link>
|
||||
syn keyword htmlArg contained prefetch
|
||||
" syn keyword htmlArg contained preload
|
||||
" <img>
|
||||
syn keyword htmlArg contained decoding
|
||||
" https://w3c.github.io/selection-api/#extensions-to-globaleventhandlers
|
||||
syn keyword htmlArg contained onselectstart onselectionchange
|
||||
" https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/loading
|
||||
syn keyword htmlArg contained loading
|
||||
|
||||
" Custom Data Attributes
|
||||
" http://w3c.github.io/html/single-page.html#embedding-custom-non-visible-data-with-the-data-attributes
|
||||
syn match htmlArg "\<data[-.0-9_a-z]*-[-.0-9_a-z]*\>" contained
|
||||
|
||||
" Vendor Extension Attributes
|
||||
" http://w3c.github.io/html/single-page.html#conformance-requirements-extensibility
|
||||
syn match htmlArg "\<x[-.0-9_a-z]*-[-.0-9_a-z]*\>" contained
|
||||
|
||||
" Microdata
|
||||
" http://dev.w3.org/html5/md/
|
||||
syn keyword htmlArg contained itemid itemscope itemtype itemprop itemref
|
||||
|
||||
" SVG
|
||||
" http://www.w3.org/TR/SVG/
|
||||
" Some common attributes from http://www.w3.org/TR/SVG/attindex.html
|
||||
syn keyword htmlArg contained accent-height accumulate additive alphabetic amplitude arabic-form ascent attributeName attributeType azimuth
|
||||
syn keyword htmlArg contained baseFrequency baseProfile bbox begin bias by
|
||||
syn keyword htmlArg contained calcMode cap-height class clipPathUnits contentScriptType contentStyleType cx cy
|
||||
syn keyword htmlArg contained d descent diffuseConstant divisor dur dx dy
|
||||
syn keyword htmlArg contained edgeMode elevation end exponent externalResourcesRequired
|
||||
syn keyword htmlArg contained fill filterRes filterUnits font-family font-size font-stretch font-style font-variant font-weight format format from fx fy
|
||||
syn keyword htmlArg contained g1 g2 glyph-name glyphRef gradientTransform gradientUnits
|
||||
syn keyword htmlArg contained hanging height horiz-adv-x horiz-origin-x horiz-origin-y
|
||||
syn keyword htmlArg contained id ideographic in in2 intercept
|
||||
syn keyword htmlArg contained k k1 k2 k3 k4 kernelMatrix kernelUnitLength keyPoints keySplines keyTimes
|
||||
syn keyword htmlArg contained lang lengthAdjust limitingConeAngle local
|
||||
syn keyword htmlArg contained markerHeight markerUnits markerWidth maskContentUnits maskUnits mathematical max media method min mode name
|
||||
syn keyword htmlArg contained numOctaves
|
||||
syn keyword htmlArg contained offset onabort onactivate onbegin onclick onend onerror onfocusin onfocusout onload onmousedown onmousemove onmouseout onmouseover onmouseup onrepeat onresize onscroll onunload onzoom operator order orient orientation origin overline-position overline-thickness
|
||||
syn keyword htmlArg contained panose-1 path pathLength patternContentUnits patternTransform patternUnits points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits
|
||||
syn keyword htmlArg contained r radius refX refY rendering-intent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry
|
||||
syn keyword htmlArg contained scale seed slope spacing specularConstant specularExponent spreadMethod startOffset stdDeviation stemh stemv stitchTiles strikethrough-position strikethrough-thickness string surfaceScale systemLanguage
|
||||
syn keyword htmlArg contained tableValues target targetX targetY textLength title to transform type
|
||||
syn keyword htmlArg contained u1 u2 underline-position underline-thickness unicode unicode-range units-per-em
|
||||
syn keyword htmlArg contained v-alphabetic v-hanging v-ideographic v-mathematical values version vert-adv-y vert-origin-x vert-origin-y viewBox viewTarget
|
||||
syn keyword htmlArg contained width widths
|
||||
syn keyword htmlArg contained x x-height x1 x2 xChannelSelector xlink:actuate xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xml:lang xml:space
|
||||
syn keyword htmlArg contained y y1 y2 yChannelSelector
|
||||
syn keyword htmlArg contained z zoomAndPan
|
||||
syn keyword htmlArg contained alignment-baseline baseline-shift clip-path clip-rule clip color-interpolation-filters color-interpolation color-profile color-rendering color cursor direction display dominant-baseline enable-background fill-opacity fill-rule fill filter flood-color flood-opacity font-family font-size-adjust font-size font-stretch font-style font-variant font-weight glyph-orientation-horizontal glyph-orientation-vertical image-rendering kerning letter-spacing lighting-color marker-end marker-mid marker-start mask opacity overflow pointer-events shape-rendering stop-color stop-opacity stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width stroke text-anchor text-decoration text-rendering unicode-bidi visibility word-spacing writing-mode
|
||||
|
||||
" MathML attributes
|
||||
" https://www.w3.org/TR/MathML3/chapter2.html#interf.toplevel.atts
|
||||
syn keyword htmlArg contained accent accentunder actiontype align alignmentscope altimg altimg-height altimg-valign altimg-width alttext
|
||||
syn keyword htmlArg contained annotation-xml background base baseline bevelled cd cdgroup charalign charspacing close
|
||||
syn keyword htmlArg contained closure color columnalign columnalignment columnlines columnspacing columnspan columnwidth crossout decimalpoint
|
||||
syn keyword htmlArg contained definitionURL denomalign depth display displaystyle edge encoding equalcolumns equalrows fence
|
||||
syn keyword htmlArg contained fontfamily fontsize fontstyle fontweight form frame framespacing groupalign height indentalign
|
||||
syn keyword htmlArg contained indentalignfirst indentalignlast indentshift indentshiftfirst indentshiftlast indenttarget index infixlinebreakstyle integer largeop
|
||||
syn keyword htmlArg contained leftoverhang length linebreak linebreakmultchar linebreakstyle lineleading linethickness location longdivstyle lquote
|
||||
syn keyword htmlArg contained lspace ltr macros math mathbackground mathcolor mathsize mathvariant maxsize maxwidth
|
||||
syn keyword htmlArg contained mediummathspace menclose minlabelspacing minsize mode movablelimits msgroup mslinethickness name nargs
|
||||
syn keyword htmlArg contained newline notation numalign number occurrence open order other overflow position
|
||||
syn keyword htmlArg contained rightoverhang role rowalign rowlines rowspacing rowspan rquote rspace schemaLocation scope
|
||||
syn keyword htmlArg contained scriptlevel scriptminsize scriptsize scriptsizemultiplier selection separator separators shift side stackalign
|
||||
syn keyword htmlArg contained stretchy subscriptshift superscriptshift symmetric thickmathspace thinmathspace type valign verythickmathspace verythinmathspace
|
||||
syn keyword htmlArg contained veryverythickmathspace veryverythinmathspace voffset width xref
|
||||
|
||||
|
||||
endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jinja') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: HTML (version 5)
|
||||
" Maintainer: Rodrigo Machado <rcmachado@gmail.com>
|
||||
" URL: http://rm.blog.br/vim/syntax/html.vim
|
||||
" Last Change: 2009 Aug 19
|
||||
" License: Public domain
|
||||
" (but let me know if you like :) )
|
||||
"
|
||||
" Note: This file just adds the new tags from HTML 5
|
||||
" and don't replace default html.vim syntax file
|
||||
"
|
||||
" Modified: othree <othree@gmail.com>
|
||||
" Changes: update to Draft 28 August 2010
|
||||
" add complete new attributes
|
||||
" add wai-aria attributes
|
||||
" add microdata attributes
|
||||
" add rdfa attributes
|
||||
|
||||
|
||||
syn keyword htmlTagName contained script
|
||||
" HTML 5 tags
|
||||
syn keyword htmlTagName contained article aside audio canvas command
|
||||
syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer
|
||||
syn keyword htmlTagName contained header hgroup keygen mark meter menu nav output
|
||||
syn keyword htmlTagName contained progress time ruby rt rp section source summary time track video wbr
|
||||
|
||||
" HTML 5 arguments
|
||||
" Core Attributes
|
||||
syn keyword htmlArg contained accesskey class contenteditable contextmenu dir
|
||||
syn keyword htmlArg contained draggable hidden id lang spellcheck style tabindex title
|
||||
" Event-handler Attributes
|
||||
syn keyword htmlArg contained onabort onblur oncanplay oncanplaythrough onchange
|
||||
syn keyword htmlArg contained onclick oncontextmenu ondblclick ondrag ondragend ondragenter ondragleave ondragover
|
||||
syn keyword htmlArg contained ondragstart ondrop ondurationchange onemptied onended onerror onfocus onformchange
|
||||
syn keyword htmlArg contained onforminput oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata
|
||||
syn keyword htmlArg contained onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup
|
||||
syn keyword htmlArg contained onmousewheel onpause onplay onplaying onprogress onratechange onreadystatechange
|
||||
syn keyword htmlArg contained onscroll onseeked onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate
|
||||
syn keyword htmlArg contained onvolumechange onwaiting
|
||||
" XML Attributes
|
||||
syn keyword htmlArg contained xml:lang xml:space xml:base
|
||||
" new features
|
||||
" <body>
|
||||
syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload
|
||||
syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload
|
||||
" <video>, <audio>, <source>, <track>
|
||||
syn keyword htmlArg contained autoplay preload controls loop poster media kind charset srclang track
|
||||
" <form>, <input>, <button>
|
||||
syn keyword htmlArg contained form autocomplete autofocus list min max step
|
||||
syn keyword htmlArg contained formaction autofocus formenctype formmethod formtarget formnovalidate
|
||||
" <command>, <details>, <time>
|
||||
syn keyword htmlArg contained label icon open datetime pubdate
|
||||
|
||||
" Custom Data Attributes
|
||||
" http://dev.w3.org/html5/spec/Overview.html#custom-data-attribute
|
||||
syn match htmlArg "\<\(data(\-[a-z]\+)\+\)=" contained
|
||||
|
||||
" Microdata
|
||||
" http://dev.w3.org/html5/md/
|
||||
syn keyword htmlArg contained item itemid itemscope itemtype itemprop
|
||||
|
||||
" RDFa
|
||||
" http://www.w3.org/TR/rdfa-syntax/#a_xhtmlrdfa_dtd
|
||||
syn keyword htmlArg contained about typeof property resource content datatype rel rev
|
||||
|
||||
" WAI-ARIA States and Properties
|
||||
" http://www.w3.org/TR/wai-aria/states_and_properties
|
||||
syn keyword htmlArg contained role
|
||||
" Global States and Properties
|
||||
syn match htmlArg contained "\<aria-\(atomic\|busy\|controls\|describedby\)\>"
|
||||
syn match htmlArg contained "\<aria-\(disabled\|dropeffect\|flowto\|grabbed\)\>"
|
||||
syn match htmlArg contained "\<aria-\(haspopup\|hidden\|invalid\|label\)\>"
|
||||
syn match htmlArg contained "\<aria-\(labelledby\|live\|owns\|relevant\)\>"
|
||||
|
||||
" Widget Attributes
|
||||
syn match htmlArg contained "\<aria-\(autocomplete\|checked\|disabled\|expanded\)\>"
|
||||
syn match htmlArg contained "\<aria-\(haspopup\|hidden\|invalid\|label\)\>"
|
||||
syn match htmlArg contained "\<aria-\(level\|multiline\|multiselectable\|orientation\)\>"
|
||||
syn match htmlArg contained "\<aria-\(pressed\|readonly\|required\|selected\)\>"
|
||||
syn match htmlArg contained "\<aria-\(sort\|valuemax\|valuemin\|valuenow\|valuetext\|\)\>"
|
||||
|
||||
" Live Region Attributes
|
||||
syn match htmlArg contained "\<aria-\(atomic\|busy\|live\|relevant\|\)\>"
|
||||
|
||||
" Drag-and-Drop attributes
|
||||
syn match htmlArg contained "\<aria-\(dropeffect\|grabbed\)\>"
|
||||
|
||||
" Relationship Attributes
|
||||
syn match htmlArg contained "\<aria-\(activedescendant\|controls\|describedby\|flowto\|\)\>"
|
||||
syn match htmlArg contained "\<aria-\(labelledby\|owns\|posinset\|setsize\|\)\>"
|
||||
|
||||
endif
|
||||
" Polyglot metafile
|
||||
source <sfile>:h/html-1.vim
|
||||
source <sfile>:h/html-2.vim
|
||||
|
||||
85
syntax/idris2.vim
Normal file
85
syntax/idris2.vim
Normal file
@@ -0,0 +1,85 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
|
||||
|
||||
" syntax highlighting for Idris 2 (idris-lang.org)
|
||||
"
|
||||
" Heavily modified version of the haskell syntax
|
||||
" highlighter to support Idris 2.
|
||||
"
|
||||
" author: raichoo (raichoo@googlemail.com)
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match idrisTypeDecl "[a-zA-Z][a-zA-z0-9_']*\s\+:\s\+"
|
||||
\ contains=idrisIdentifier,idrisOperators
|
||||
syn region idrisParens matchgroup=idrisDelimiter start="(" end=")" contains=TOP,idrisTypeDecl
|
||||
syn region idrisBrackets matchgroup=idrisDelimiter start="\[" end="]" contains=TOP,idrisTypeDecl
|
||||
syn region idrisBlock matchgroup=idrisDelimiter start="{" end="}" contains=TOP,idrisTypeDecl
|
||||
syn keyword idrisModule module namespace
|
||||
syn keyword idrisImport import
|
||||
syn keyword idrisStructure data record interface implementation
|
||||
syn keyword idrisWhere where
|
||||
syn keyword idrisVisibility public abstract private export
|
||||
syn keyword idrisBlock parameters mutual using
|
||||
syn keyword idrisTotality total partial covering
|
||||
syn keyword idrisAnnotation auto impossible default constructor
|
||||
syn keyword idrisStatement do case of rewrite with
|
||||
syn keyword idrisLet let in
|
||||
syn keyword idrisForall forall
|
||||
syn keyword idrisDataOpt noHints uniqueSearch search external noNewtype containedin=idrisBrackets
|
||||
syn match idrisSyntax "\(pattern \+\|term \+\)\?syntax"
|
||||
syn keyword idrisConditional if then else
|
||||
syn match idrisNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
|
||||
syn match idrisFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
|
||||
syn match idrisDelimiter "[,;]"
|
||||
syn keyword idrisInfix prefix infix infixl infixr
|
||||
syn match idrisOperators "\([-!#$%&\*\+./<=>\?@\\^|~:]\|\<_\>\)"
|
||||
syn match idrisType "\<[A-Z][a-zA-Z0-9_']*\>"
|
||||
syn keyword idrisTodo TODO FIXME XXX HACK contained
|
||||
syn match idrisLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idrisTodo,@Spell
|
||||
syn match idrisDocComment "|||\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=idrisTodo,@Spell
|
||||
syn match idrisMetaVar "?[a-z][A-Za-z0-9_']*"
|
||||
syn match idrisPragma "%\(hide\|logging\|auto_lazy\|unbound_implicits\|undotted_record_projections\|amibguity_depth\|pair\|rewrite\|integerLit\|stringLit\|charLit\|name\|start\|allow_overloads\|language\|default\|transform\|hint\|global_hint\|defaulthint\|inline\|extern\|macro\|spec\|foreign\|runElab\|tcinline\)"
|
||||
syn match idrisChar "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'"
|
||||
syn match idrisBacktick "`[A-Za-z][A-Za-z0-9_']*`"
|
||||
syn region idrisString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
|
||||
syn region idrisBlockComment start="{-" end="-}" contains=idrisBlockComment,idrisTodo,@Spell
|
||||
syn match idrisIdentifier "[a-zA-Z][a-zA-z0-9_']*" contained
|
||||
|
||||
highlight def link idrisDeprecated Error
|
||||
highlight def link idrisIdentifier Identifier
|
||||
highlight def link idrisImport Structure
|
||||
highlight def link idrisModule Structure
|
||||
highlight def link idrisStructure Structure
|
||||
highlight def link idrisStatement Statement
|
||||
highlight def link idrisForall Structure
|
||||
highlight def link idrisDataOpt Statement
|
||||
highlight def link idrisDSL Statement
|
||||
highlight def link idrisBlock Statement
|
||||
highlight def link idrisAnnotation Statement
|
||||
highlight def link idrisWhere Structure
|
||||
highlight def link idrisLet Structure
|
||||
highlight def link idrisTotality Statement
|
||||
highlight def link idrisSyntax Statement
|
||||
highlight def link idrisVisibility Statement
|
||||
highlight def link idrisConditional Conditional
|
||||
highlight def link idrisPragma Statement
|
||||
highlight def link idrisNumber Number
|
||||
highlight def link idrisFloat Float
|
||||
highlight def link idrisDelimiter Delimiter
|
||||
highlight def link idrisInfix PreProc
|
||||
highlight def link idrisOperators Operator
|
||||
highlight def link idrisType Include
|
||||
highlight def link idrisDocComment Comment
|
||||
highlight def link idrisLineComment Comment
|
||||
highlight def link idrisBlockComment Comment
|
||||
highlight def link idrisTodo Todo
|
||||
highlight def link idrisMetaVar Macro
|
||||
highlight def link idrisString String
|
||||
highlight def link idrisChar String
|
||||
highlight def link idrisBacktick Operator
|
||||
|
||||
let b:current_syntax = "idris2"
|
||||
|
||||
endif
|
||||
26
syntax/lidris2.vim
Normal file
26
syntax/lidris2.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Literate Idris 2
|
||||
" Maintainer: Idris Hackers (https://github.com/edwinb/idris2-vim)
|
||||
" Last Change: 2020 May 19
|
||||
" Version: 0.1
|
||||
"
|
||||
" This is just a minimal adaption of the Literate Haskell syntax file.
|
||||
|
||||
|
||||
" Read Idris highlighting.
|
||||
if version < 600
|
||||
syntax include @idrisTop <sfile>:p:h/idris2.vim
|
||||
else
|
||||
syntax include @idrisTop syntax/idris2.vim
|
||||
endif
|
||||
|
||||
" Recognize blocks of Bird tracks, highlight as Idris.
|
||||
syntax region lidrisBirdTrackBlock start="^>" end="\%(^[^>]\)\@=" contains=@idrisTop,lidrisBirdTrack
|
||||
syntax match lidrisBirdTrack "^>" contained
|
||||
hi def link lidrisBirdTrack Comment
|
||||
|
||||
let b:current_syntax = "lidris2"
|
||||
|
||||
endif
|
||||
178
syntax/odin.vim
Normal file
178
syntax/odin.vim
Normal file
@@ -0,0 +1,178 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'odin') == -1
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax keyword odinUsing using
|
||||
syntax keyword odinTransmute transmute
|
||||
syntax keyword odinDistinct distinct
|
||||
syntax keyword odinOpaque opaque
|
||||
|
||||
syntax keyword odinStruct struct
|
||||
syntax keyword odinEnum enum
|
||||
syntax keyword odinUnion union
|
||||
syntax keyword odinBitField bit_field
|
||||
syntax keyword odinBitSet bit_set
|
||||
|
||||
syntax keyword odinIf if
|
||||
syntax keyword odinWhen when
|
||||
syntax keyword odinElse else
|
||||
syntax keyword odinDo do
|
||||
syntax keyword odinFor for
|
||||
syntax keyword odinSwitch switch
|
||||
syntax keyword odinCase case
|
||||
syntax keyword odinContinue continue
|
||||
syntax keyword odinBreak break
|
||||
syntax keyword odinSizeOf size_of
|
||||
syntax keyword odinTypeInfoOf type_info_of
|
||||
syntax keyword odinTypeIdOf typeid_of
|
||||
syntax keyword odinTypeOf type_of
|
||||
syntax keyword odinAlignOf align_of
|
||||
|
||||
syntax keyword odinInline inline
|
||||
syntax keyword odinNoInline no_inline
|
||||
|
||||
syntax match odinTodo "TODO"
|
||||
syntax match odinNote "NOTE"
|
||||
syntax match odinXXX "XXX"
|
||||
syntax match odinFixMe "FIXME"
|
||||
syntax match odinNoCheckin "NOCHECKIN"
|
||||
syntax match odinHack "HACK"
|
||||
|
||||
syntax keyword odinDataType string cstring bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint uintptr i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int
|
||||
syntax keyword odinBool true false
|
||||
syntax keyword odinNull nil
|
||||
syntax keyword odinDynamic dynamic
|
||||
syntax keyword odinProc proc
|
||||
syntax keyword odinIn in
|
||||
syntax keyword odinNotIn notin
|
||||
syntax keyword odinNotIn not_in
|
||||
syntax keyword odinImport import
|
||||
syntax keyword odinExport export
|
||||
syntax keyword odinForeign foreign
|
||||
syntax keyword odinConst const
|
||||
syntax match odinNoinit "---"
|
||||
syntax keyword odinPackage package
|
||||
|
||||
syntax keyword odinReturn return
|
||||
syntax keyword odinDefer defer
|
||||
|
||||
syntax region odinChar start=/\v'/ skip=/\v\\./ end=/\v'/
|
||||
syntax region odinString start=/\v"/ skip=/\v\\./ end=/\v"/
|
||||
|
||||
syntax match odinFunction "\v<\w*>(\s*::\s*)@="
|
||||
syntax match odinDynamicFunction "\v<\w*(\s*:\=\s*\(.*\))@="
|
||||
|
||||
syntax match odinTagNote "@\<\w\+\>" display
|
||||
|
||||
syntax match odinClass "\v<[A-Z]\w+>" display
|
||||
syntax match odinConstant "\v<[A-Z0-9,_]+>" display
|
||||
syntax match odinRange "\.\." display
|
||||
syntax match odinHalfRange "\.\.\<" display
|
||||
syntax match odinTernaryQMark "?" display
|
||||
syntax match odinDeclaration "\:\:\?" display
|
||||
syntax match odinDeclAssign ":=" display
|
||||
syntax match odinReturnOp "->" display
|
||||
|
||||
syntax match odinInteger "\-\?\<\d\+\>" display
|
||||
syntax match odinFloat "\-\?\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=" display
|
||||
syntax match odinHex "\-\?\<0x[0-9A-Fa-f]\+\>" display
|
||||
syntax match odinAddressOf "&" display
|
||||
syntax match odinDeref "\^" display
|
||||
|
||||
syntax match odinMacro "#\<\w\+\>" display
|
||||
|
||||
syntax match odinTemplate "$\<\w\+\>"
|
||||
|
||||
syntax match odinCommentNote "@\<\w\+\>" contained display
|
||||
syntax region odinLineComment start=/\/\// end=/$/ contains=odinLineComment, odinCommentNote, odinTodo, odinNote, odinXXX, odinFixMe, odinNoCheckin, odinHack
|
||||
syntax region odinBlockComment start=/\v\/\*/ end=/\v\*\// contains=odinBlockComment, odinCommentNote, odinTodo, odinNote, odinXXX, odinFixMe, odinNoCheckin, odinHack
|
||||
|
||||
highlight link odinUsing Keyword
|
||||
highlight link odinTransmute Keyword
|
||||
highlight link odinDistinct Keyword
|
||||
highlight link odinOpaque Keyword
|
||||
highlight link odinReturn Keyword
|
||||
highlight link odinSwitch Keyword
|
||||
highlight link odinCase Keyword
|
||||
highlight link odinProc Keyword
|
||||
highlight link odinIn Keyword
|
||||
highlight link odinNotIn Keyword
|
||||
highlight link odinContinue Keyword
|
||||
highlight link odinBreak Keyword
|
||||
highlight link odinSizeOf Keyword
|
||||
highlight link odinTypeOf Keyword
|
||||
highlight link odinTypeInfoOf Keyword
|
||||
highlight link odinTypeIdOf Keyword
|
||||
highlight link odinAlignOf Keyword
|
||||
highlight link odinPackage Keyword
|
||||
|
||||
highlight link odinInline Keyword
|
||||
highlight link odinNoInline Keyword
|
||||
|
||||
highlight link odinImport Keyword
|
||||
highlight link odinExport Keyword
|
||||
highlight link odinForeign Keyword
|
||||
highlight link odinNoinit Keyword
|
||||
highlight link odinDo Keyword
|
||||
|
||||
highlight link odinDefer Operator
|
||||
highlight link odinDynamic Operator
|
||||
highlight link odinRange Operator
|
||||
highlight link odinHalfRange Operator
|
||||
highlight link odinAssign Operator
|
||||
highlight link odinAddressOf Operator
|
||||
highlight link odinDeref Operator
|
||||
|
||||
highlight link odinDeclaration Operator
|
||||
highlight link odinDeclAssign Operator
|
||||
highlight link odinAssign Operator
|
||||
highlight link odinTernaryQMark Operator
|
||||
highlight link odinReturnOp Operator
|
||||
|
||||
highlight link odinString String
|
||||
highlight link odinChar String
|
||||
|
||||
highlight link odinStruct Structure
|
||||
highlight link odinEnum Structure
|
||||
highlight link odinUnion Structure
|
||||
highlight link odinBitField Structure
|
||||
highlight link odinBitSet Structure
|
||||
|
||||
highlight link odinFunction Function
|
||||
highlight link odinDynamicFunction Function
|
||||
|
||||
highlight link odinMacro Macro
|
||||
highlight link odinIf Conditional
|
||||
highlight link odinWhen Conditional
|
||||
highlight link odinElse Conditional
|
||||
highlight link odinFor Repeat
|
||||
|
||||
highlight link odinLineComment Comment
|
||||
highlight link odinBlockComment Comment
|
||||
highlight link odinCommentNote Todo
|
||||
|
||||
highlight link odinTodo Todo
|
||||
highlight link odinNote Todo
|
||||
highlight link odinXXX Todo
|
||||
highlight link odinFixMe Todo
|
||||
highlight link odinNoCheckin Todo
|
||||
highlight link odinHack Todo
|
||||
|
||||
highlight link odinClass Type
|
||||
|
||||
highlight link odinTemplate Constant
|
||||
|
||||
highlight link odinTagNote Identifier
|
||||
highlight link odinDataType Type
|
||||
highlight link odinBool Boolean
|
||||
highlight link odinConstant Constant
|
||||
highlight link odinNull Type
|
||||
highlight link odinInteger Number
|
||||
highlight link odinFloat Float
|
||||
highlight link odinHex Number
|
||||
|
||||
let b:current_syntax = "odin"
|
||||
|
||||
endif
|
||||
122
syntax/prolog.vim
Normal file
122
syntax/prolog.vim
Normal file
@@ -0,0 +1,122 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'prolog') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: PROLOG
|
||||
" Maintainer: Anton Kochkov <anton.kochkov@gmail.com>
|
||||
" Last Change: 2019 Aug 29
|
||||
|
||||
" There are two sets of highlighting in here:
|
||||
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
|
||||
" Otherwise you get more highlighting.
|
||||
"
|
||||
" You can also set the "prolog_highlighting_no_keyword" variable. If set,
|
||||
" keywords will not be highlighted.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Prolog is case sensitive.
|
||||
syn case match
|
||||
|
||||
" Very simple highlighting for comments, clause heads and
|
||||
" character codes. It respects prolog strings and atoms.
|
||||
|
||||
syn region prologCComment start=+/\*+ end=+\*/+
|
||||
syn match prologComment +%.*+
|
||||
|
||||
if !exists("prolog_highlighting_no_keyword")
|
||||
syn keyword prologKeyword module meta_predicate multifile dynamic
|
||||
endif
|
||||
syn match prologCharCode +0'\\\=.+
|
||||
syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
|
||||
syn region prologClause matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause
|
||||
|
||||
if !exists("prolog_highlighting_clean")
|
||||
|
||||
" some keywords
|
||||
" some common predicates are also highlighted as keywords
|
||||
" is there a better solution?
|
||||
if !exists("prolog_highlighting_no_keyword")
|
||||
syn keyword prologKeyword abolish current_output peek_code
|
||||
syn keyword prologKeyword append current_predicate put_byte
|
||||
syn keyword prologKeyword arg current_prolog_flag put_char
|
||||
syn keyword prologKeyword asserta fail put_code
|
||||
syn keyword prologKeyword assertz findall read
|
||||
syn keyword prologKeyword at_end_of_stream float read_term
|
||||
syn keyword prologKeyword atom flush_output repeat
|
||||
syn keyword prologKeyword atom_chars functor retract
|
||||
syn keyword prologKeyword atom_codes get_byte set_input
|
||||
syn keyword prologKeyword atom_concat get_char set_output
|
||||
syn keyword prologKeyword atom_length get_code set_prolog_flag
|
||||
syn keyword prologKeyword atomic halt set_stream_position
|
||||
syn keyword prologKeyword bagof integer setof
|
||||
syn keyword prologKeyword call is stream_property
|
||||
syn keyword prologKeyword catch nl sub_atom
|
||||
syn keyword prologKeyword char_code nonvar throw
|
||||
syn keyword prologKeyword char_conversion number true
|
||||
syn keyword prologKeyword clause number_chars unify_with_occurs_check
|
||||
syn keyword prologKeyword close number_codes var
|
||||
syn keyword prologKeyword compound once write
|
||||
syn keyword prologKeyword copy_term op write_canonical
|
||||
syn keyword prologKeyword current_char_conversion open write_term
|
||||
syn keyword prologKeyword current_input peek_byte writeq
|
||||
syn keyword prologKeyword current_op peek_char
|
||||
endif
|
||||
|
||||
syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|=\.\.\|<\|>\|="
|
||||
syn match prologAsIs "===\|\\===\|<=\|=>"
|
||||
|
||||
syn match prologNumber "\<\d*\>'\@!"
|
||||
syn match prologNumber "\<0[xX]\x*\>'\@!"
|
||||
syn match prologCommentError "\*/"
|
||||
syn match prologSpecialCharacter ";"
|
||||
syn match prologSpecialCharacter "!"
|
||||
syn match prologSpecialCharacter ":-"
|
||||
syn match prologSpecialCharacter "-->"
|
||||
syn match prologQuestion "?-.*\." contains=prologNumber
|
||||
|
||||
|
||||
endif
|
||||
|
||||
syn sync maxlines=50
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
" The default highlighting.
|
||||
hi def link prologComment Comment
|
||||
hi def link prologCComment Comment
|
||||
hi def link prologCharCode Special
|
||||
|
||||
if exists ("prolog_highlighting_clean")
|
||||
|
||||
hi def link prologKeyword Statement
|
||||
hi def link prologClauseHead Statement
|
||||
hi def link prologClause Normal
|
||||
|
||||
else
|
||||
|
||||
hi def link prologKeyword Keyword
|
||||
hi def link prologClauseHead Constant
|
||||
hi def link prologClause Normal
|
||||
hi def link prologQuestion PreProc
|
||||
hi def link prologSpecialCharacter Special
|
||||
hi def link prologNumber Number
|
||||
hi def link prologAsIs Normal
|
||||
hi def link prologCommentError Error
|
||||
hi def link prologAtom String
|
||||
hi def link prologString String
|
||||
hi def link prologOperator Operator
|
||||
|
||||
endif
|
||||
|
||||
|
||||
let b:current_syntax = "prolog"
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
@@ -67,10 +67,11 @@ syn match rustExternCrateString /".*"\_s*as/ contained nextgroup=rustIdentifie
|
||||
syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite skipempty
|
||||
|
||||
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||
syn match rustFuncName "\%(r#\)\=\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||
|
||||
syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end="),\=[*+]" contains=TOP
|
||||
syn match rustMacroVariable "$\w\+"
|
||||
syn match rustRawIdent "\<r#\h\w*" contains=NONE
|
||||
|
||||
" Reserved (but not yet used) keywords {{{2
|
||||
syn keyword rustReservedKeyword become do priv typeof unsized abstract virtual final override
|
||||
@@ -230,7 +231,7 @@ syn region rustCommentBlockDocNestError matchgroup=rustCommentBlockDocError star
|
||||
" then you must deal with cases like ``/*/**/*/``. And don't try making it
|
||||
" worse with ``\%(/\@<!\*\)\@<!``, either...
|
||||
|
||||
syn keyword rustTodo contained TODO FIXME XXX NB NOTE
|
||||
syn keyword rustTodo contained TODO FIXME XXX NB NOTE SAFETY
|
||||
|
||||
" asm! macro {{{2
|
||||
syn region rustAsmMacro matchgroup=rustMacro start="\<asm!\s*(" end=")" contains=rustAsmDirSpec,rustAsmSym,rustAsmConst,rustAsmOptionsGroup,rustComment.*,rustString.*
|
||||
|
||||
175
syntax/tads.vim
Normal file
175
syntax/tads.vim
Normal file
@@ -0,0 +1,175 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tads') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: TADS
|
||||
" Maintainer: Amir Karger <karger@post.harvard.edu>
|
||||
" $Date: 2004/06/13 19:28:45 $
|
||||
" $Revision: 1.1 $
|
||||
" Stolen from: Bram Moolenaar's C language file
|
||||
" Newest version at: http://www.hec.utah.edu/~karger/vim/syntax/tads.vim
|
||||
" History info at the bottom of the file
|
||||
|
||||
" TODO lots more keywords
|
||||
" global, self, etc. are special *objects*, not functions. They should
|
||||
" probably be a different color than the special functions
|
||||
" Actually, should cvtstr etc. be functions?! (change tadsFunction)
|
||||
" Make global etc. into Identifiers, since we don't have regular variables?
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" A bunch of useful keywords
|
||||
syn keyword tadsStatement goto break return continue pass
|
||||
syn keyword tadsLabel case default
|
||||
syn keyword tadsConditional if else switch
|
||||
syn keyword tadsRepeat while for do
|
||||
syn keyword tadsStorageClass local compoundWord formatstring specialWords
|
||||
syn keyword tadsBoolean nil true
|
||||
|
||||
" TADS keywords
|
||||
syn keyword tadsKeyword replace modify
|
||||
syn keyword tadsKeyword global self inherited
|
||||
" builtin functions
|
||||
syn keyword tadsKeyword cvtstr cvtnum caps lower upper substr
|
||||
syn keyword tadsKeyword say length
|
||||
syn keyword tadsKeyword setit setscore
|
||||
syn keyword tadsKeyword datatype proptype
|
||||
syn keyword tadsKeyword car cdr
|
||||
syn keyword tadsKeyword defined isclass
|
||||
syn keyword tadsKeyword find firstobj nextobj
|
||||
syn keyword tadsKeyword getarg argcount
|
||||
syn keyword tadsKeyword input yorn askfile
|
||||
syn keyword tadsKeyword rand randomize
|
||||
syn keyword tadsKeyword restart restore quit save undo
|
||||
syn keyword tadsException abort exit exitobj
|
||||
|
||||
syn keyword tadsTodo contained TODO FIXME XXX
|
||||
|
||||
" String and Character constants
|
||||
" Highlight special characters (those which have a backslash) differently
|
||||
syn match tadsSpecial contained "\\."
|
||||
syn region tadsDoubleString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tadsSpecial,tadsEmbedded
|
||||
syn region tadsSingleString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=tadsSpecial
|
||||
" Embedded expressions in strings
|
||||
syn region tadsEmbedded contained start="<<" end=">>" contains=tadsKeyword
|
||||
|
||||
" TADS doesn't have \xxx, right?
|
||||
"syn match cSpecial contained "\\[0-7][0-7][0-7]\=\|\\."
|
||||
"syn match cSpecialCharacter "'\\[0-7][0-7]'"
|
||||
"syn match cSpecialCharacter "'\\[0-7][0-7][0-7]'"
|
||||
|
||||
"catch errors caused by wrong parenthesis
|
||||
"syn region cParen transparent start='(' end=')' contains=ALLBUT,cParenError,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel
|
||||
"syn match cParenError ")"
|
||||
"syn match cInParen contained "[{}]"
|
||||
syn region tadsBrace transparent start='{' end='}' contains=ALLBUT,tadsBraceError,tadsIncluded,tadsSpecial,tadsTodo
|
||||
syn match tadsBraceError "}"
|
||||
|
||||
"integer number (TADS has no floating point numbers)
|
||||
syn case ignore
|
||||
syn match tadsNumber "\<[0-9]\+\>"
|
||||
"hex number
|
||||
syn match tadsNumber "\<0x[0-9a-f]\+\>"
|
||||
syn match tadsIdentifier "\<[a-z][a-z0-9_$]*\>"
|
||||
syn case match
|
||||
" flag an octal number with wrong digits
|
||||
syn match tadsOctalError "\<0[0-7]*[89]"
|
||||
|
||||
" Removed complicated c_comment_strings
|
||||
syn region tadsComment start="/\*" end="\*/" contains=tadsTodo
|
||||
syn match tadsComment "//.*" contains=tadsTodo
|
||||
syntax match tadsCommentError "\*/"
|
||||
|
||||
syn region tadsPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tadsComment,tadsString,tadsNumber,tadsCommentError
|
||||
syn region tadsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match tadsIncluded contained "<[^>]*>"
|
||||
syn match tadsInclude "^\s*#\s*include\>\s*["<]" contains=tadsIncluded
|
||||
syn region tadsDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInBrace,tadsIdentifier
|
||||
|
||||
syn region tadsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInParen,tadsIdentifier
|
||||
|
||||
" Highlight User Labels
|
||||
" TODO labels for gotos?
|
||||
"syn region cMulti transparent start='?' end=':' contains=ALLBUT,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel,cBitField
|
||||
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||
"syn match cUserCont "^\s*\I\i*\s*:$" contains=cUserLabel
|
||||
"syn match cUserCont ";\s*\I\i*\s*:$" contains=cUserLabel
|
||||
"syn match cUserCont "^\s*\I\i*\s*:[^:]" contains=cUserLabel
|
||||
"syn match cUserCont ";\s*\I\i*\s*:[^:]" contains=cUserLabel
|
||||
|
||||
"syn match cUserLabel "\I\i*" contained
|
||||
|
||||
" identifier: class-name [, class-name [...]] [property-list] ;
|
||||
" Don't highlight comment in class def
|
||||
syn match tadsClassDef "\<class\>[^/]*" contains=tadsObjectDef,tadsClass
|
||||
syn match tadsClass contained "\<class\>"
|
||||
syn match tadsObjectDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*[a-zA-Z0-9_$]\+\(\s*,\s*[a-zA-Z][a-zA-Z0-9_$]*\)*\(\s*;\)\="
|
||||
syn keyword tadsFunction contained function
|
||||
syn match tadsFunctionDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*function[^{]*" contains=tadsFunction
|
||||
"syn region tadsObject transparent start = '[a-zA-Z][\i$]\s*:\s*' end=";" contains=tadsBrace,tadsObjectDef
|
||||
|
||||
" How far back do we go to find matching groups
|
||||
if !exists("tads_minlines")
|
||||
let tads_minlines = 15
|
||||
endif
|
||||
exec "syn sync ccomment tadsComment minlines=" . tads_minlines
|
||||
if !exists("tads_sync_dist")
|
||||
let tads_sync_dist = 100
|
||||
endif
|
||||
execute "syn sync maxlines=" . tads_sync_dist
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
hi def link tadsFunctionDef Function
|
||||
hi def link tadsFunction Structure
|
||||
hi def link tadsClass Structure
|
||||
hi def link tadsClassDef Identifier
|
||||
hi def link tadsObjectDef Identifier
|
||||
" no highlight for tadsEmbedded, so it prints as normal text w/in the string
|
||||
|
||||
hi def link tadsOperator Operator
|
||||
hi def link tadsStructure Structure
|
||||
hi def link tadsTodo Todo
|
||||
hi def link tadsLabel Label
|
||||
hi def link tadsConditional Conditional
|
||||
hi def link tadsRepeat Repeat
|
||||
hi def link tadsException Exception
|
||||
hi def link tadsStatement Statement
|
||||
hi def link tadsStorageClass StorageClass
|
||||
hi def link tadsKeyWord Keyword
|
||||
hi def link tadsSpecial SpecialChar
|
||||
hi def link tadsNumber Number
|
||||
hi def link tadsBoolean Boolean
|
||||
hi def link tadsDoubleString tadsString
|
||||
hi def link tadsSingleString tadsString
|
||||
|
||||
hi def link tadsOctalError tadsError
|
||||
hi def link tadsCommentError tadsError
|
||||
hi def link tadsBraceError tadsError
|
||||
hi def link tadsInBrace tadsError
|
||||
hi def link tadsError Error
|
||||
|
||||
hi def link tadsInclude Include
|
||||
hi def link tadsPreProc PreProc
|
||||
hi def link tadsDefine Macro
|
||||
hi def link tadsIncluded tadsString
|
||||
hi def link tadsPreCondit PreCondit
|
||||
|
||||
hi def link tadsString String
|
||||
hi def link tadsComment Comment
|
||||
|
||||
|
||||
|
||||
let b:current_syntax = "tads"
|
||||
|
||||
" Changes:
|
||||
" 11/18/99 Added a bunch of TADS functions, tadsException
|
||||
" 10/22/99 Misspelled Moolenaar (sorry!), c_minlines to tads_minlines
|
||||
"
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
@@ -97,6 +97,7 @@ endif
|
||||
syn match uLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$"
|
||||
syn region uBlockComment start="{-" end="-}" contains=uBlockComment
|
||||
syn region uPragma start="{-#" end="#-}"
|
||||
syn region uBelowFold start="^---" skip="." end="." contains=uBelowFold
|
||||
|
||||
" Docs
|
||||
syn region uDocBlock start="\[:" end=":]" contains=uLink,uDocDirective
|
||||
@@ -134,6 +135,7 @@ if version >= 508 || !exists("did_u_syntax_inits")
|
||||
HiLink uBlockComment uComment
|
||||
HiLink uLineComment uComment
|
||||
HiLink uComment Comment
|
||||
HiLink uBelowFold Comment
|
||||
HiLink uDocBlock String
|
||||
HiLink uLink uType
|
||||
HiLink uDocDirective uImport
|
||||
@@ -148,6 +150,7 @@ if version >= 508 || !exists("did_u_syntax_inits")
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
|
||||
let b:current_syntax = "unison"
|
||||
|
||||
" Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim
|
||||
|
||||
369
syntax/vb.vim
Normal file
369
syntax/vb.vim
Normal file
@@ -0,0 +1,369 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'visual-basic') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Visual Basic
|
||||
" Maintainer: Tim Chase <vb.vim@tim.thechases.com>
|
||||
" Former Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
|
||||
" (tried multiple times to contact, but email bounced)
|
||||
" Last Change:
|
||||
" 2005 May 25 Synched with work by Thomas Barthel
|
||||
" 2004 May 30 Added a few keywords
|
||||
|
||||
" This was thrown together after seeing numerous requests on the
|
||||
" VIM and VIM-DEV mailing lists. It is by no means complete.
|
||||
" Send comments, suggestions and requests to the maintainer.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" VB is case insensitive
|
||||
syn case ignore
|
||||
|
||||
syn keyword vbConditional If Then ElseIf Else Select Case
|
||||
|
||||
syn keyword vbOperator AddressOf And ByRef ByVal Eqv Imp In
|
||||
syn keyword vbOperator Is Like Mod Not Or To Xor
|
||||
|
||||
syn match vbOperator "[()+.,\-/*=&]"
|
||||
syn match vbOperator "[<>]=\="
|
||||
syn match vbOperator "<>"
|
||||
syn match vbOperator "\s\+_$"
|
||||
|
||||
syn keyword vbBoolean True False
|
||||
syn keyword vbConst Null Nothing
|
||||
|
||||
syn keyword vbRepeat Do For ForEach Loop Next
|
||||
syn keyword vbRepeat Step To Until Wend While
|
||||
|
||||
syn keyword vbEvents AccessKeyPress Activate ActiveRowChanged
|
||||
syn keyword vbEvents AfterAddFile AfterChangeFileName AfterCloseFile
|
||||
syn keyword vbEvents AfterColEdit AfterColUpdate AfterDelete
|
||||
syn keyword vbEvents AfterInsert AfterLabelEdit AfterRemoveFile
|
||||
syn keyword vbEvents AfterUpdate AfterWriteFile AmbientChanged
|
||||
syn keyword vbEvents ApplyChanges Associate AsyncProgress
|
||||
syn keyword vbEvents AsyncReadComplete AsyncReadProgress AxisActivated
|
||||
syn keyword vbEvents AxisLabelActivated AxisLabelSelected
|
||||
syn keyword vbEvents AxisLabelUpdated AxisSelected AxisTitleActivated
|
||||
syn keyword vbEvents AxisTitleSelected AxisTitleUpdated AxisUpdated
|
||||
syn keyword vbEvents BeforeClick BeforeColEdit BeforeColUpdate
|
||||
syn keyword vbEvents BeforeConnect BeforeDelete BeforeInsert
|
||||
syn keyword vbEvents BeforeLabelEdit BeforeLoadFile BeforeUpdate
|
||||
syn keyword vbEvents BeginRequest BeginTrans ButtonClick
|
||||
syn keyword vbEvents ButtonCompleted ButtonDropDown ButtonGotFocus
|
||||
syn keyword vbEvents ButtonLostFocus CallbackKeyDown Change Changed
|
||||
syn keyword vbEvents ChartActivated ChartSelected ChartUpdated Click
|
||||
syn keyword vbEvents Close CloseQuery CloseUp ColEdit ColResize
|
||||
syn keyword vbEvents Collapse ColumnClick CommitTrans Compare
|
||||
syn keyword vbEvents ConfigChageCancelled ConfigChanged
|
||||
syn keyword vbEvents ConfigChangedCancelled Connect ConnectionRequest
|
||||
syn keyword vbEvents CurrentRecordChanged DECommandAdded
|
||||
syn keyword vbEvents DECommandPropertyChanged DECommandRemoved
|
||||
syn keyword vbEvents DEConnectionAdded DEConnectionPropertyChanged
|
||||
syn keyword vbEvents DEConnectionRemoved DataArrival DataChanged
|
||||
syn keyword vbEvents DataUpdated DateClicked DblClick Deactivate
|
||||
syn keyword vbEvents DevModeChange DeviceArrival DeviceOtherEvent
|
||||
syn keyword vbEvents DeviceQueryRemove DeviceQueryRemoveFailed
|
||||
syn keyword vbEvents DeviceRemoveComplete DeviceRemovePending
|
||||
syn keyword vbEvents Disconnect DisplayChanged Dissociate
|
||||
syn keyword vbEvents DoGetNewFileName Done DonePainting DownClick
|
||||
syn keyword vbEvents DragDrop DragOver DropDown EditProperty EditQuery
|
||||
syn keyword vbEvents EndRequest EnterCell EnterFocus ExitFocus Expand
|
||||
syn keyword vbEvents FontChanged FootnoteActivated FootnoteSelected
|
||||
syn keyword vbEvents FootnoteUpdated Format FormatSize GotFocus
|
||||
syn keyword vbEvents HeadClick HeightChanged Hide InfoMessage
|
||||
syn keyword vbEvents IniProperties InitProperties Initialize
|
||||
syn keyword vbEvents ItemActivated ItemAdded ItemCheck ItemClick
|
||||
syn keyword vbEvents ItemReloaded ItemRemoved ItemRenamed
|
||||
syn keyword vbEvents ItemSeletected KeyDown KeyPress KeyUp LeaveCell
|
||||
syn keyword vbEvents LegendActivated LegendSelected LegendUpdated
|
||||
syn keyword vbEvents LinkClose LinkError LinkExecute LinkNotify
|
||||
syn keyword vbEvents LinkOpen Load LostFocus MouseDown MouseMove
|
||||
syn keyword vbEvents MouseUp NodeCheck NodeClick OLECompleteDrag
|
||||
syn keyword vbEvents OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData
|
||||
syn keyword vbEvents OLEStartDrag ObjectEvent ObjectMove OnAddNew
|
||||
syn keyword vbEvents OnComm Paint PanelClick PanelDblClick PathChange
|
||||
syn keyword vbEvents PatternChange PlotActivated PlotSelected
|
||||
syn keyword vbEvents PlotUpdated PointActivated PointLabelActivated
|
||||
syn keyword vbEvents PointLabelSelected PointLabelUpdated PointSelected
|
||||
syn keyword vbEvents PointUpdated PowerQuerySuspend PowerResume
|
||||
syn keyword vbEvents PowerStatusChanged PowerSuspend ProcessTag
|
||||
syn keyword vbEvents ProcessingTimeout QueryChangeConfig QueryClose
|
||||
syn keyword vbEvents QueryComplete QueryCompleted QueryTimeout
|
||||
syn keyword vbEvents QueryUnload ReadProperties RepeatedControlLoaded
|
||||
syn keyword vbEvents RepeatedControlUnloaded Reposition
|
||||
syn keyword vbEvents RequestChangeFileName RequestWriteFile Resize
|
||||
syn keyword vbEvents ResultsChanged RetainedProject RollbackTrans
|
||||
syn keyword vbEvents RowColChange RowCurrencyChange RowResize
|
||||
syn keyword vbEvents RowStatusChanged Scroll SelChange SelectionChanged
|
||||
syn keyword vbEvents SendComplete SendProgress SeriesActivated
|
||||
syn keyword vbEvents SeriesSelected SeriesUpdated SettingChanged Show
|
||||
syn keyword vbEvents SplitChange Start StateChanged StatusUpdate
|
||||
syn keyword vbEvents SysColorsChanged Terminate TimeChanged Timer
|
||||
syn keyword vbEvents TitleActivated TitleSelected TitleUpdated
|
||||
syn keyword vbEvents UnboundAddData UnboundDeleteRow
|
||||
syn keyword vbEvents UnboundGetRelativeBookmark UnboundReadData
|
||||
syn keyword vbEvents UnboundWriteData Unformat Unload UpClick Updated
|
||||
syn keyword vbEvents UserEvent Validate ValidationError
|
||||
syn keyword vbEvents VisibleRecordChanged WillAssociate WillChangeData
|
||||
syn keyword vbEvents WillDissociate WillExecute WillUpdateRows
|
||||
syn keyword vbEvents WriteProperties
|
||||
|
||||
|
||||
syn keyword vbFunction Abs Array Asc AscB AscW Atn Avg BOF CBool CByte
|
||||
syn keyword vbFunction CCur CDate CDbl CInt CLng CSng CStr CVDate CVErr
|
||||
syn keyword vbFunction CVar CallByName Cdec Choose Chr ChrB ChrW Command
|
||||
syn keyword vbFunction Cos Count CreateObject CurDir DDB Date DateAdd
|
||||
syn keyword vbFunction DateDiff DatePart DateSerial DateValue Day Dir
|
||||
syn keyword vbFunction DoEvents EOF Environ Error Exp FV FileAttr
|
||||
syn keyword vbFunction FileDateTime FileLen FilterFix Fix Format
|
||||
syn keyword vbFunction FormatCurrency FormatDateTime FormatNumber
|
||||
syn keyword vbFunction FormatPercent FreeFile GetAllStrings GetAttr
|
||||
syn keyword vbFunction GetAutoServerSettings GetObject GetSetting Hex
|
||||
syn keyword vbFunction Hour IIf IMEStatus IPmt InStr Input InputB
|
||||
syn keyword vbFunction InputBox InstrB Int IsArray IsDate IsEmpty IsError
|
||||
syn keyword vbFunction IsMissing IsNull IsNumeric IsObject Join LBound
|
||||
syn keyword vbFunction LCase LOF LTrim Left LeftB Len LenB LoadPicture
|
||||
syn keyword vbFunction LoadResData LoadResPicture LoadResString Loc Log
|
||||
syn keyword vbFunction MIRR Max Mid MidB Min Minute Month MonthName
|
||||
syn keyword vbFunction MsgBox NPV NPer Now Oct PPmt PV Partition Pmt
|
||||
syn keyword vbFunction QBColor RGB RTrim Rate Replace Right RightB Rnd
|
||||
syn keyword vbFunction Round SLN SYD Second Seek Sgn Shell Sin Space Spc
|
||||
syn keyword vbFunction Split Sqr StDev StDevP Str StrComp StrConv
|
||||
syn keyword vbFunction StrReverse String Sum Switch Tab Tan Time
|
||||
syn keyword vbFunction TimeSerial TimeValue Timer Trim TypeName UBound
|
||||
syn keyword vbFunction UCase Val Var VarP VarType Weekday WeekdayName
|
||||
syn keyword vbFunction Year
|
||||
|
||||
syn keyword vbMethods AboutBox Accept Activate Add AddCustom AddFile
|
||||
syn keyword vbMethods AddFromFile AddFromGuid AddFromString
|
||||
syn keyword vbMethods AddFromTemplate AddItem AddNew AddToAddInToolbar
|
||||
syn keyword vbMethods AddToolboxProgID Append AppendAppendChunk
|
||||
syn keyword vbMethods AppendChunk Arrange Assert AsyncRead BatchUpdate
|
||||
syn keyword vbMethods BeginQueryEdit BeginTrans Bind BuildPath
|
||||
syn keyword vbMethods CanPropertyChange Cancel CancelAsyncRead
|
||||
syn keyword vbMethods CancelBatch CancelUpdate CaptureImage CellText
|
||||
syn keyword vbMethods CellValue Circle Clear ClearFields ClearSel
|
||||
syn keyword vbMethods ClearSelCols ClearStructure Clone Close Cls
|
||||
syn keyword vbMethods ColContaining CollapseAll ColumnSize CommitTrans
|
||||
syn keyword vbMethods CompactDatabase Compose Connect Copy CopyFile
|
||||
syn keyword vbMethods CopyFolder CopyQueryDef Count CreateDatabase
|
||||
syn keyword vbMethods CreateDragImage CreateEmbed CreateField
|
||||
syn keyword vbMethods CreateFolder CreateGroup CreateIndex CreateLink
|
||||
syn keyword vbMethods CreatePreparedStatement CreatePropery CreateQuery
|
||||
syn keyword vbMethods CreateQueryDef CreateRelation CreateTableDef
|
||||
syn keyword vbMethods CreateTextFile CreateToolWindow CreateUser
|
||||
syn keyword vbMethods CreateWorkspace Customize Cut Delete
|
||||
syn keyword vbMethods DeleteColumnLabels DeleteColumns DeleteFile
|
||||
syn keyword vbMethods DeleteFolder DeleteLines DeleteRowLabels
|
||||
syn keyword vbMethods DeleteRows DeselectAll DesignerWindow DoVerb Drag
|
||||
syn keyword vbMethods Draw DriveExists Edit EditCopy EditPaste EndDoc
|
||||
syn keyword vbMethods EnsureVisible EstablishConnection Execute Exists
|
||||
syn keyword vbMethods Expand Export ExportReport ExtractIcon Fetch
|
||||
syn keyword vbMethods FetchVerbs FileExists Files FillCache Find
|
||||
syn keyword vbMethods FindFirst FindItem FindLast FindNext FindPrevious
|
||||
syn keyword vbMethods FolderExists Forward GetAbsolutePathName
|
||||
syn keyword vbMethods GetBaseName GetBookmark GetChunk GetClipString
|
||||
syn keyword vbMethods GetData GetDrive GetDriveName GetFile GetFileName
|
||||
syn keyword vbMethods GetFirstVisible GetFolder GetFormat GetHeader
|
||||
syn keyword vbMethods GetLineFromChar GetNumTicks GetParentFolderName
|
||||
syn keyword vbMethods GetRows GetSelectedPart GetSelection
|
||||
syn keyword vbMethods GetSpecialFolder GetTempName GetText
|
||||
syn keyword vbMethods GetVisibleCount GoBack GoForward Hide HitTest
|
||||
syn keyword vbMethods HoldFields Idle Import InitializeLabels Insert
|
||||
syn keyword vbMethods InsertColumnLabels InsertColumns InsertFile
|
||||
syn keyword vbMethods InsertLines InsertObjDlg InsertRowLabels
|
||||
syn keyword vbMethods InsertRows Item Keys KillDoc Layout Line Lines
|
||||
syn keyword vbMethods LinkExecute LinkPoke LinkRequest LinkSend Listen
|
||||
syn keyword vbMethods LoadFile LoadResData LoadResPicture LoadResString
|
||||
syn keyword vbMethods LogEvent MakeCompileFile MakeCompiledFile
|
||||
syn keyword vbMethods MakeReplica MoreResults Move MoveData MoveFile
|
||||
syn keyword vbMethods MoveFirst MoveFolder MoveLast MoveNext
|
||||
syn keyword vbMethods MovePrevious NavigateTo NewPage NewPassword
|
||||
syn keyword vbMethods NextRecordset OLEDrag OnAddinsUpdate OnConnection
|
||||
syn keyword vbMethods OnDisconnection OnStartupComplete Open
|
||||
syn keyword vbMethods OpenAsTextStream OpenConnection OpenDatabase
|
||||
syn keyword vbMethods OpenQueryDef OpenRecordset OpenResultset OpenURL
|
||||
syn keyword vbMethods Overlay PSet PaintPicture PastSpecialDlg Paste
|
||||
syn keyword vbMethods PeekData Play Point PopulatePartial PopupMenu
|
||||
syn keyword vbMethods Print PrintForm PrintReport PropertyChanged Quit
|
||||
syn keyword vbMethods Raise RandomDataFill RandomFillColumns
|
||||
syn keyword vbMethods RandomFillRows ReFill Read ReadAll ReadFromFile
|
||||
syn keyword vbMethods ReadLine ReadProperty Rebind Refresh RefreshLink
|
||||
syn keyword vbMethods RegisterDatabase ReleaseInstance Reload Remove
|
||||
syn keyword vbMethods RemoveAddInFromToolbar RemoveAll RemoveItem Render
|
||||
syn keyword vbMethods RepairDatabase ReplaceLine Reply ReplyAll Requery
|
||||
syn keyword vbMethods ResetCustom ResetCustomLabel ResolveName
|
||||
syn keyword vbMethods RestoreToolbar Resync Rollback RollbackTrans
|
||||
syn keyword vbMethods RowBookmark RowContaining RowTop Save SaveAs
|
||||
syn keyword vbMethods SaveFile SaveToFile SaveToOle1File SaveToolbar
|
||||
syn keyword vbMethods Scale ScaleX ScaleY Scroll SelPrint SelectAll
|
||||
syn keyword vbMethods SelectPart Send SendData Set SetAutoServerSettings
|
||||
syn keyword vbMethods SetData SetFocus SetOption SetSelection SetSize
|
||||
syn keyword vbMethods SetText SetViewport Show ShowColor ShowFont
|
||||
syn keyword vbMethods ShowHelp ShowOpen ShowPrinter ShowSave
|
||||
syn keyword vbMethods ShowWhatsThis SignOff SignOn Size Skip SkipLine
|
||||
syn keyword vbMethods Span Split SplitContaining StartLabelEdit
|
||||
syn keyword vbMethods StartLogging Stop Synchronize Tag TextHeight
|
||||
syn keyword vbMethods TextWidth ToDefaults Trace TwipsToChartPart
|
||||
syn keyword vbMethods TypeByChartType URLFor Update UpdateControls
|
||||
syn keyword vbMethods UpdateRecord UpdateRow Upto ValidateControls Value
|
||||
syn keyword vbMethods WhatsThisMode Write WriteBlankLines WriteLine
|
||||
syn keyword vbMethods WriteProperty WriteTemplate ZOrder
|
||||
syn keyword vbMethods rdoCreateEnvironment rdoRegisterDataSource
|
||||
|
||||
syn keyword vbStatement Alias AppActivate As Base Beep Begin Call ChDir
|
||||
syn keyword vbStatement ChDrive Close Const Date Declare DefBool DefByte
|
||||
syn keyword vbStatement DefCur DefDate DefDbl DefDec DefInt DefLng DefObj
|
||||
syn keyword vbStatement DefSng DefStr DefVar Deftype DeleteSetting Dim Do
|
||||
syn keyword vbStatement Each ElseIf End Enum Erase Error Event Exit
|
||||
syn keyword vbStatement Explicit FileCopy For ForEach Function Get GoSub
|
||||
syn keyword vbStatement GoTo Gosub Implements Kill LSet Let Lib LineInput
|
||||
syn keyword vbStatement Load Lock Loop Mid MkDir Name Next On OnError Open
|
||||
syn keyword vbStatement Option Preserve Private Property Public Put RSet
|
||||
syn keyword vbStatement RaiseEvent Randomize ReDim Redim Reset Resume
|
||||
syn keyword vbStatement Return RmDir SavePicture SaveSetting Seek SendKeys
|
||||
syn keyword vbStatement Sendkeys Set SetAttr Static Step Stop Sub Time
|
||||
syn keyword vbStatement Type Unload Unlock Until Wend While Width With
|
||||
syn keyword vbStatement Write
|
||||
|
||||
syn keyword vbKeyword As Binary ByRef ByVal Date Empty Error Friend Get
|
||||
syn keyword vbKeyword Input Is Len Lock Me Mid New Nothing Null On
|
||||
syn keyword vbKeyword Option Optional ParamArray Print Private Property
|
||||
syn keyword vbKeyword Public PublicNotCreateable OnNewProcessSingleUse
|
||||
syn keyword vbKeyword InSameProcessMultiUse GlobalMultiUse Resume Seek
|
||||
syn keyword vbKeyword Set Static Step String Time WithEvents
|
||||
|
||||
syn keyword vbTodo contained TODO
|
||||
|
||||
"Datatypes
|
||||
syn keyword vbTypes Boolean Byte Currency Date Decimal Double Empty
|
||||
syn keyword vbTypes Integer Long Object Single String Variant
|
||||
|
||||
"VB defined values
|
||||
syn keyword vbDefine dbBigInt dbBinary dbBoolean dbByte dbChar
|
||||
syn keyword vbDefine dbCurrency dbDate dbDecimal dbDouble dbFloat
|
||||
syn keyword vbDefine dbGUID dbInteger dbLong dbLongBinary dbMemo
|
||||
syn keyword vbDefine dbNumeric dbSingle dbText dbTime dbTimeStamp
|
||||
syn keyword vbDefine dbVarBinary
|
||||
|
||||
"VB defined values
|
||||
syn keyword vbDefine vb3DDKShadow vb3DFace vb3DHighlight vb3DLight
|
||||
syn keyword vbDefine vb3DShadow vbAbort vbAbortRetryIgnore
|
||||
syn keyword vbDefine vbActiveBorder vbActiveTitleBar vbAlias
|
||||
syn keyword vbDefine vbApplicationModal vbApplicationWorkspace
|
||||
syn keyword vbDefine vbAppTaskManager vbAppWindows vbArchive vbArray
|
||||
syn keyword vbDefine vbBack vbBinaryCompare vbBlack vbBlue vbBoolean
|
||||
syn keyword vbDefine vbButtonFace vbButtonShadow vbButtonText vbByte
|
||||
syn keyword vbDefine vbCalGreg vbCalHijri vbCancel vbCr vbCritical
|
||||
syn keyword vbDefine vbCrLf vbCurrency vbCyan vbDatabaseCompare
|
||||
syn keyword vbDefine vbDataObject vbDate vbDecimal vbDefaultButton1
|
||||
syn keyword vbDefine vbDefaultButton2 vbDefaultButton3 vbDefaultButton4
|
||||
syn keyword vbDefine vbDesktop vbDirectory vbDouble vbEmpty vbError
|
||||
syn keyword vbDefine vbExclamation vbFirstFourDays vbFirstFullWeek
|
||||
syn keyword vbDefine vbFirstJan1 vbFormCode vbFormControlMenu
|
||||
syn keyword vbDefine vbFormFeed vbFormMDIForm vbFriday vbFromUnicode
|
||||
syn keyword vbDefine vbGrayText vbGreen vbHidden vbHide vbHighlight
|
||||
syn keyword vbDefine vbHighlightText vbHiragana vbIgnore vbIMEAlphaDbl
|
||||
syn keyword vbDefine vbIMEAlphaSng vbIMEDisable vbIMEHiragana
|
||||
syn keyword vbDefine vbIMEKatakanaDbl vbIMEKatakanaSng vbIMEModeAlpha
|
||||
syn keyword vbDefine vbIMEModeAlphaFull vbIMEModeDisable
|
||||
syn keyword vbDefine vbIMEModeHangul vbIMEModeHangulFull
|
||||
syn keyword vbDefine vbIMEModeHiragana vbIMEModeKatakana
|
||||
syn keyword vbDefine vbIMEModeKatakanaHalf vbIMEModeNoControl
|
||||
syn keyword vbDefine vbIMEModeOff vbIMEModeOn vbIMENoOp vbIMEOff
|
||||
syn keyword vbDefine vbIMEOn vbInactiveBorder vbInactiveCaptionText
|
||||
syn keyword vbDefine vbInactiveTitleBar vbInfoBackground vbInformation
|
||||
syn keyword vbDefine vbInfoText vbInteger vbKatakana vbKey0 vbKey1
|
||||
syn keyword vbDefine vbKey2 vbKey3 vbKey4 vbKey5 vbKey6 vbKey7 vbKey8
|
||||
syn keyword vbDefine vbKey9 vbKeyA vbKeyAdd vbKeyB vbKeyBack vbKeyC
|
||||
syn keyword vbDefine vbKeyCancel vbKeyCapital vbKeyClear vbKeyControl
|
||||
syn keyword vbDefine vbKeyD vbKeyDecimal vbKeyDelete vbKeyDivide
|
||||
syn keyword vbDefine vbKeyDown vbKeyE vbKeyEnd vbKeyEscape vbKeyExecute
|
||||
syn keyword vbDefine vbKeyF vbKeyF1 vbKeyF10 vbKeyF11 vbKeyF12 vbKeyF13
|
||||
syn keyword vbDefine vbKeyF14 vbKeyF15 vbKeyF16 vbKeyF2 vbKeyF3 vbKeyF4
|
||||
syn keyword vbDefine vbKeyF5 vbKeyF6 vbKeyF7 vbKeyF8 vbKeyF9 vbKeyG
|
||||
syn keyword vbDefine vbKeyH vbKeyHelp vbKeyHome vbKeyI vbKeyInsert
|
||||
syn keyword vbDefine vbKeyJ vbKeyK vbKeyL vbKeyLButton vbKeyLeft vbKeyM
|
||||
syn keyword vbDefine vbKeyMButton vbKeyMenu vbKeyMultiply vbKeyN
|
||||
syn keyword vbDefine vbKeyNumlock vbKeyNumpad0 vbKeyNumpad1
|
||||
syn keyword vbDefine vbKeyNumpad2 vbKeyNumpad3 vbKeyNumpad4
|
||||
syn keyword vbDefine vbKeyNumpad5 vbKeyNumpad6 vbKeyNumpad7
|
||||
syn keyword vbDefine vbKeyNumpad8 vbKeyNumpad9 vbKeyO vbKeyP
|
||||
syn keyword vbDefine vbKeyPageDown vbKeyPageUp vbKeyPause vbKeyPrint
|
||||
syn keyword vbDefine vbKeyQ vbKeyR vbKeyRButton vbKeyReturn vbKeyRight
|
||||
syn keyword vbDefine vbKeyS vbKeySelect vbKeySeparator vbKeyShift
|
||||
syn keyword vbDefine vbKeySnapshot vbKeySpace vbKeySubtract vbKeyT
|
||||
syn keyword vbDefine vbKeyTab vbKeyU vbKeyUp vbKeyV vbKeyW vbKeyX
|
||||
syn keyword vbDefine vbKeyY vbKeyZ vbLf vbLong vbLowerCase vbMagenta
|
||||
syn keyword vbDefine vbMaximizedFocus vbMenuBar vbMenuText
|
||||
syn keyword vbDefine vbMinimizedFocus vbMinimizedNoFocus vbMonday
|
||||
syn keyword vbDefine vbMsgBox vbMsgBoxHelpButton vbMsgBoxRight
|
||||
syn keyword vbDefine vbMsgBoxRtlReading vbMsgBoxSetForeground
|
||||
syn keyword vbDefine vbMsgBoxText vbNarrow vbNewLine vbNo vbNormal
|
||||
syn keyword vbDefine vbNormalFocus vbNormalNoFocus vbNull vbNullChar
|
||||
syn keyword vbDefine vbNullString vbObject vbObjectError vbOK
|
||||
syn keyword vbDefine vbOKCancel vbOKOnly vbProperCase vbQuestion
|
||||
syn keyword vbDefine vbReadOnly vbRed vbRetry vbRetryCancel vbSaturday
|
||||
syn keyword vbDefine vbScrollBars vbSingle vbString vbSunday vbSystem
|
||||
syn keyword vbDefine vbSystemModal vbTab vbTextCompare vbThursday
|
||||
syn keyword vbDefine vbTitleBarText vbTuesday vbUnicode vbUpperCase
|
||||
syn keyword vbDefine vbUseSystem vbUseSystemDayOfWeek vbVariant
|
||||
syn keyword vbDefine vbVerticalTab vbVolume vbWednesday vbWhite vbWide
|
||||
syn keyword vbDefine vbWindowBackground vbWindowFrame vbWindowText
|
||||
syn keyword vbDefine vbYellow vbYes vbYesNo vbYesNoCancel
|
||||
|
||||
"Numbers
|
||||
"integer number, or floating point number without a dot.
|
||||
syn match vbNumber "\<\d\+\>"
|
||||
"floating point number, with dot
|
||||
syn match vbNumber "\<\d\+\.\d*\>"
|
||||
"floating point number, starting with a dot
|
||||
syn match vbNumber "\.\d\+\>"
|
||||
"syn match vbNumber "{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
|
||||
"syn match vbNumber ":[[:xdigit:]]\+"
|
||||
"syn match vbNumber "[-+]\=\<\d\+\>"
|
||||
syn match vbFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
|
||||
syn match vbFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
|
||||
syn match vbFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
|
||||
|
||||
" String and Character contstants
|
||||
syn region vbString start=+"+ end=+"\|$+
|
||||
syn region vbComment start="\(^\|\s\)REM\s" end="$" contains=vbTodo
|
||||
syn region vbComment start="\(^\|\s\)\'" end="$" contains=vbTodo
|
||||
syn match vbLineNumber "^\d\+\(\s\|$\)"
|
||||
syn match vbTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
|
||||
syn match vbTypeSpecifier "#[a-zA-Z0-9]"me=e-1
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link vbBoolean Boolean
|
||||
hi def link vbLineNumber Comment
|
||||
hi def link vbComment Comment
|
||||
hi def link vbConditional Conditional
|
||||
hi def link vbConst Constant
|
||||
hi def link vbDefine Constant
|
||||
hi def link vbError Error
|
||||
hi def link vbFunction Identifier
|
||||
hi def link vbIdentifier Identifier
|
||||
hi def link vbNumber Number
|
||||
hi def link vbFloat Float
|
||||
hi def link vbMethods PreProc
|
||||
hi def link vbOperator Operator
|
||||
hi def link vbRepeat Repeat
|
||||
hi def link vbString String
|
||||
hi def link vbStatement Statement
|
||||
hi def link vbKeyword Statement
|
||||
hi def link vbEvents Special
|
||||
hi def link vbTodo Todo
|
||||
hi def link vbTypes Type
|
||||
hi def link vbTypeSpecifier Type
|
||||
|
||||
|
||||
let b:current_syntax = "vb"
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
247
syntax/yaml.vim
Normal file
247
syntax/yaml.vim
Normal file
@@ -0,0 +1,247 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: YAML (YAML Ain't Markup Language) 1.2
|
||||
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
|
||||
" First author: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2015-03-28
|
||||
" removed duplicate yamlKeyValueDelimiter (pull #4799)
|
||||
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Choose the schema to use
|
||||
" TODO: Validate schema
|
||||
if !exists('b:yaml_schema')
|
||||
if exists('g:yaml_schema')
|
||||
let b:yaml_schema = g:yaml_schema
|
||||
else
|
||||
let b:yaml_schema = 'core'
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:ns_char = '\%([\n\r\uFEFF \t]\@!\p\)'
|
||||
let s:ns_word_char = '[[:alnum:]_\-]'
|
||||
let s:ns_uri_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$,.!~*''()[\]]\)'
|
||||
let s:ns_tag_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$.~*''()]\)'
|
||||
let s:c_ns_anchor_char = '\%([\n\r\uFEFF \t,[\]{}]\@!\p\)'
|
||||
let s:c_indicator = '[\-?:,[\]{}#&*!|>''"%@`]'
|
||||
let s:c_flow_indicator = '[,[\]{}]'
|
||||
|
||||
let s:ns_char_without_c_indicator = substitute(s:ns_char, '\v\C[\zs', '\=s:c_indicator[1:-2]', '')
|
||||
|
||||
let s:_collection = '[^\@!\(\%(\\\.\|\[^\\\]]\)\+\)]'
|
||||
let s:_neg_collection = '[^\(\%(\\\.\|\[^\\\]]\)\+\)]'
|
||||
function s:SimplifyToAssumeAllPrintable(p)
|
||||
return substitute(a:p, '\V\C\\%('.s:_collection.'\\@!\\p\\)', '[^\1]', '')
|
||||
endfunction
|
||||
let s:ns_char = s:SimplifyToAssumeAllPrintable(s:ns_char)
|
||||
let s:ns_char_without_c_indicator = s:SimplifyToAssumeAllPrintable(s:ns_char_without_c_indicator)
|
||||
let s:c_ns_anchor_char = s:SimplifyToAssumeAllPrintable(s:c_ns_anchor_char)
|
||||
|
||||
function s:SimplifyAdjacentCollections(p)
|
||||
return substitute(a:p, '\V\C'.s:_collection.'\\|'.s:_collection, '[\1\2]', 'g')
|
||||
endfunction
|
||||
let s:ns_uri_char = s:SimplifyAdjacentCollections(s:ns_uri_char)
|
||||
let s:ns_tag_char = s:SimplifyAdjacentCollections(s:ns_tag_char)
|
||||
|
||||
let s:c_verbatim_tag = '!<'.s:ns_uri_char.'\+>'
|
||||
let s:c_named_tag_handle = '!'.s:ns_word_char.'\+!'
|
||||
let s:c_secondary_tag_handle = '!!'
|
||||
let s:c_primary_tag_handle = '!'
|
||||
let s:c_tag_handle = '\%('.s:c_named_tag_handle.
|
||||
\ '\|'.s:c_secondary_tag_handle.
|
||||
\ '\|'.s:c_primary_tag_handle.'\)'
|
||||
let s:c_ns_shorthand_tag = s:c_tag_handle . s:ns_tag_char.'\+'
|
||||
let s:c_non_specific_tag = '!'
|
||||
let s:c_ns_tag_property = s:c_verbatim_tag.
|
||||
\ '\|'.s:c_ns_shorthand_tag.
|
||||
\ '\|'.s:c_non_specific_tag
|
||||
|
||||
let s:c_ns_anchor_name = s:c_ns_anchor_char.'\+'
|
||||
let s:c_ns_anchor_property = '&'.s:c_ns_anchor_name
|
||||
let s:c_ns_alias_node = '\*'.s:c_ns_anchor_name
|
||||
|
||||
let s:ns_directive_name = s:ns_char.'\+'
|
||||
|
||||
let s:ns_local_tag_prefix = '!'.s:ns_uri_char.'*'
|
||||
let s:ns_global_tag_prefix = s:ns_tag_char.s:ns_uri_char.'*'
|
||||
let s:ns_tag_prefix = s:ns_local_tag_prefix.
|
||||
\ '\|'.s:ns_global_tag_prefix
|
||||
|
||||
let s:ns_plain_safe_out = s:ns_char
|
||||
let s:ns_plain_safe_in = '\%('.s:c_flow_indicator.'\@!'.s:ns_char.'\)'
|
||||
|
||||
let s:ns_plain_safe_in = substitute(s:ns_plain_safe_in, '\V\C\\%('.s:_collection.'\\@!'.s:_neg_collection.'\\)', '[^\1\2]', '')
|
||||
let s:ns_plain_safe_in_without_colhash = substitute(s:ns_plain_safe_in, '\V\C'.s:_neg_collection, '[^\1:#]', '')
|
||||
let s:ns_plain_safe_out_without_colhash = substitute(s:ns_plain_safe_out, '\V\C'.s:_neg_collection, '[^\1:#]', '')
|
||||
|
||||
let s:ns_plain_first_in = '\%('.s:ns_char_without_c_indicator.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)'
|
||||
let s:ns_plain_first_out = '\%('.s:ns_char_without_c_indicator.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)'
|
||||
|
||||
let s:ns_plain_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|'.s:ns_plain_safe_in_without_colhash.'\)'
|
||||
let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|'.s:ns_plain_safe_out_without_colhash.'\)'
|
||||
|
||||
let s:ns_plain_out = s:ns_plain_first_out . s:ns_plain_char_out.'*'
|
||||
let s:ns_plain_in = s:ns_plain_first_in . s:ns_plain_char_in.'*'
|
||||
|
||||
|
||||
syn keyword yamlTodo contained TODO FIXME XXX NOTE
|
||||
|
||||
syn region yamlComment display oneline start='\%\(^\|\s\)#' end='$'
|
||||
\ contains=yamlTodo
|
||||
|
||||
execute 'syn region yamlDirective oneline start='.string('^\ze%'.s:ns_directive_name.'\s\+').' '.
|
||||
\ 'end="$" '.
|
||||
\ 'contains=yamlTAGDirective,'.
|
||||
\ 'yamlYAMLDirective,'.
|
||||
\ 'yamlReservedDirective '.
|
||||
\ 'keepend'
|
||||
|
||||
syn match yamlTAGDirective '%TAG\s\+' contained nextgroup=yamlTagHandle
|
||||
execute 'syn match yamlTagHandle contained nextgroup=yamlTagPrefix '.string(s:c_tag_handle.'\s\+')
|
||||
execute 'syn match yamlTagPrefix contained nextgroup=yamlComment ' . string(s:ns_tag_prefix)
|
||||
|
||||
syn match yamlYAMLDirective '%YAML\s\+' contained nextgroup=yamlYAMLVersion
|
||||
syn match yamlYAMLVersion '\d\+\.\d\+' contained nextgroup=yamlComment
|
||||
|
||||
execute 'syn match yamlReservedDirective contained nextgroup=yamlComment '.
|
||||
\string('%\%(\%(TAG\|YAML\)\s\)\@!'.s:ns_directive_name)
|
||||
|
||||
syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"'
|
||||
\ contains=yamlEscape
|
||||
\ nextgroup=yamlKeyValueDelimiter
|
||||
syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''" end="'"
|
||||
\ contains=yamlSingleEscape
|
||||
\ nextgroup=yamlKeyValueDelimiter
|
||||
syn match yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)'
|
||||
syn match yamlSingleEscape contained "''"
|
||||
|
||||
syn match yamlBlockScalarHeader contained '\s\+\zs[|>]\%([+-]\=[1-9]\|[1-9]\=[+-]\)\='
|
||||
|
||||
syn cluster yamlConstant contains=yamlBool,yamlNull
|
||||
|
||||
syn cluster yamlFlow contains=yamlFlowString,yamlFlowMapping,yamlFlowCollection
|
||||
syn cluster yamlFlow add=yamlFlowMappingKey,yamlFlowMappingMerge
|
||||
syn cluster yamlFlow add=@yamlConstant,yamlPlainScalar,yamlFloat
|
||||
syn cluster yamlFlow add=yamlTimestamp,yamlInteger,yamlMappingKeyStart
|
||||
syn cluster yamlFlow add=yamlComment
|
||||
syn region yamlFlowMapping matchgroup=yamlFlowIndicator start='{' end='}' contains=@yamlFlow
|
||||
syn region yamlFlowCollection matchgroup=yamlFlowIndicator start='\[' end='\]' contains=@yamlFlow
|
||||
|
||||
execute 'syn match yamlPlainScalar /'.s:ns_plain_out.'/'
|
||||
execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/'
|
||||
|
||||
syn match yamlMappingKeyStart '?\ze\s'
|
||||
syn match yamlMappingKeyStart '?' contained
|
||||
|
||||
execute 'syn match yamlFlowMappingKey /\%#=1'.s:ns_plain_in.'\%(\s\+'.s:ns_plain_in.'\)*\ze\s*:/ contained '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter
|
||||
|
||||
syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
|
||||
" Use the old regexp engine, the NFA engine doesn't like all the \@ items.
|
||||
execute 'syn match yamlBlockMappingKey /\%#=1^\s*\zs'.s:ns_plain_out.'\%(\s\+'.s:ns_plain_out.'\)*\ze\s*:\%(\s\|$\)/ '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
execute 'syn match yamlBlockMappingKey /\%#=1\s*\zs'.s:ns_plain_out.'\%(\s\+'.s:ns_plain_out.'\)*\ze\s*:\%(\s\|$\)/ contained '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
|
||||
syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
|
||||
|
||||
syn match yamlKeyValueDelimiter /\s*:/ contained
|
||||
|
||||
syn cluster yamlScalarWithSpecials contains=yamlPlainScalar,yamlBlockMappingKey,yamlFlowMappingKey
|
||||
|
||||
let s:_bounder = s:SimplifyToAssumeAllPrintable('\%([[\]{}, \t]\@!\p\)')
|
||||
if b:yaml_schema is# 'json'
|
||||
syn keyword yamlNull null contained containedin=@yamlScalarWithSpecials
|
||||
syn keyword yamlBool true false
|
||||
exe 'syn match yamlInteger /'.s:_bounder.'\@1<!\%(0\|-\=[1-9][0-9]*\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
exe 'syn match yamlFloat /'.s:_bounder.'\@1<!\%(-\=[1-9][0-9]*\%(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|0\|-\=\.inf\|\.nan\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
elseif b:yaml_schema is# 'core'
|
||||
syn keyword yamlNull null Null NULL contained containedin=@yamlScalarWithSpecials
|
||||
syn keyword yamlBool true True TRUE false False FALSE contained containedin=@yamlScalarWithSpecials
|
||||
exe 'syn match yamlNull /'.s:_bounder.'\@1<!\~'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
exe 'syn match yamlInteger /'.s:_bounder.'\@1<!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0-5]\=\d\)\+\)\)\|[1-9][0-9_]*\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
exe 'syn match yamlFloat /'.s:_bounder.'\@1<!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\=\d\+\)\=\|\.[0-9_]\+\%([eE][-+]\=[0-9]\+\)\=\|\d[0-9_]*\%(:[0-5]\=\d\)\+\.[0-9_]*\|\.\%(inf\|Inf\|INF\)\)\|\%(\.\%(nan\|NaN\|NAN\)\)\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
elseif b:yaml_schema is# 'pyyaml'
|
||||
syn keyword yamlNull null Null NULL contained containedin=@yamlScalarWithSpecials
|
||||
syn keyword yamlBool true True TRUE false False FALSE yes Yes YES no No NO on On ON off Off OFF contained containedin=@yamlScalarWithSpecials
|
||||
exe 'syn match yamlNull /'.s:_bounder.'\@1<!\~'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
exe 'syn match yamlFloat /'.s:_bounder.'\@1<!\%(\v[-+]?%(\d[0-9_]*)\.[0-9_]*%([eE][-+]\d+)?|\.[0-9_]+%([eE][-+]\d+)?|[-+]?\d[0-9_]*%(\:[0-5]?\d)+\.[0-9_]*|[-+]?\.%(inf|Inf|INF)|\.%(nan|NaN|NAN)\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
exe 'syn match yamlInteger /'.s:_bounder.'\@1<!\%(\v[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?%(0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*%(:[0-5]?\d)+\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
exe 'syn match yamlTimestamp /'.s:_bounder.'\@1<!\%(\v\d\d\d\d\-\d\d\-\d\d|\d\d\d\d \-\d\d? \-\d\d?%([Tt]|[ \t]+)\d\d?\:\d\d \:\d\d %(\.\d*)?%([ \t]*%(Z|[-+]\d\d?%(\:\d\d)?))?\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
|
||||
elseif b:yaml_schema is# 'failsafe'
|
||||
" Nothing
|
||||
endif
|
||||
unlet s:_bounder
|
||||
|
||||
|
||||
execute 'syn match yamlNodeTag '.string(s:c_ns_tag_property)
|
||||
execute 'syn match yamlAnchor '.string(s:c_ns_anchor_property)
|
||||
execute 'syn match yamlAlias '.string(s:c_ns_alias_node)
|
||||
|
||||
syn match yamlDocumentStart '^---\ze\%(\s\|$\)'
|
||||
syn match yamlDocumentEnd '^\.\.\.\ze\%(\s\|$\)'
|
||||
|
||||
hi def link yamlTodo Todo
|
||||
hi def link yamlComment Comment
|
||||
|
||||
hi def link yamlDocumentStart PreProc
|
||||
hi def link yamlDocumentEnd PreProc
|
||||
|
||||
hi def link yamlDirectiveName Keyword
|
||||
|
||||
hi def link yamlTAGDirective yamlDirectiveName
|
||||
hi def link yamlTagHandle String
|
||||
hi def link yamlTagPrefix String
|
||||
|
||||
hi def link yamlYAMLDirective yamlDirectiveName
|
||||
hi def link yamlReservedDirective Error
|
||||
hi def link yamlYAMLVersion Number
|
||||
|
||||
hi def link yamlString String
|
||||
hi def link yamlFlowString yamlString
|
||||
hi def link yamlFlowStringDelimiter yamlString
|
||||
hi def link yamlEscape SpecialChar
|
||||
hi def link yamlSingleEscape SpecialChar
|
||||
|
||||
hi def link yamlBlockCollectionItemStart Label
|
||||
hi def link yamlBlockMappingKey Identifier
|
||||
hi def link yamlBlockMappingMerge Special
|
||||
|
||||
hi def link yamlFlowMappingKey Identifier
|
||||
hi def link yamlFlowMappingMerge Special
|
||||
|
||||
hi def link yamlMappingKeyStart Special
|
||||
hi def link yamlFlowIndicator Special
|
||||
hi def link yamlKeyValueDelimiter Special
|
||||
|
||||
hi def link yamlConstant Constant
|
||||
|
||||
hi def link yamlNull yamlConstant
|
||||
hi def link yamlBool yamlConstant
|
||||
|
||||
hi def link yamlAnchor Type
|
||||
hi def link yamlAlias Type
|
||||
hi def link yamlNodeTag Type
|
||||
|
||||
hi def link yamlInteger Number
|
||||
hi def link yamlFloat Float
|
||||
hi def link yamlTimestamp Number
|
||||
|
||||
let b:current_syntax = "yaml"
|
||||
|
||||
unlet s:ns_word_char s:ns_uri_char s:c_verbatim_tag s:c_named_tag_handle s:c_secondary_tag_handle s:c_primary_tag_handle s:c_tag_handle s:ns_tag_char s:c_ns_shorthand_tag s:c_non_specific_tag s:c_ns_tag_property s:c_ns_anchor_char s:c_ns_anchor_name s:c_ns_anchor_property s:c_ns_alias_node s:ns_char s:ns_directive_name s:ns_local_tag_prefix s:ns_global_tag_prefix s:ns_tag_prefix s:c_indicator s:ns_plain_safe_out s:c_flow_indicator s:ns_plain_safe_in s:ns_plain_first_in s:ns_plain_first_out s:ns_plain_char_in s:ns_plain_char_out s:ns_plain_out s:ns_plain_in s:ns_char_without_c_indicator s:ns_plain_safe_in_without_colhash s:ns_plain_safe_out_without_colhash
|
||||
unlet s:_collection s:_neg_collection
|
||||
delfunction s:SimplifyAdjacentCollections
|
||||
delfunction s:SimplifyToAssumeAllPrintable
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
@@ -60,7 +60,7 @@ syn match zigCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{6}\)\)'/ contain
|
||||
syn region zigBlock start="{" end="}" transparent fold
|
||||
|
||||
syn region zigCommentLine start="//" end="$" contains=zigTodo,@Spell
|
||||
syn region zigCommentLineDoc start="////\@!" end="$" contains=zigTodo,@Spell
|
||||
syn region zigCommentLineDoc start="//[/!]/\@!" end="$" contains=zigTodo,@Spell
|
||||
|
||||
" TODO: match only the first '\\' within the zigMultilineString as zigMultilineStringPrefix
|
||||
syn match zigMultilineStringPrefix display contained /c\?\\\\/
|
||||
|
||||
361
tests/extensions.vim
Normal file
361
tests/extensions.vim
Normal file
@@ -0,0 +1,361 @@
|
||||
function! TestExtension(filetype, filename, content)
|
||||
call Log('Detecting ' . a:filetype . ' filetype (' . a:filename . ')...')
|
||||
|
||||
try
|
||||
let g:message = ""
|
||||
exec "noautocmd n " . a:filename
|
||||
silent put =a:content
|
||||
1delete _
|
||||
filetype detect
|
||||
exec "if &filetype != '" . a:filetype . "' \nthrow &filetype\nendif"
|
||||
exec ":bw!"
|
||||
catch
|
||||
echo g:message
|
||||
echo "Filename '" . a:filename . "' does not resolve to extension '" . a:filetype . "'"
|
||||
echo " instead received: '" . v:exception . "'"
|
||||
exec ":cq!"
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" make sure native vim scripts.vim is respected
|
||||
call TestExtension("rib", "renderman", "##RenderMan")
|
||||
|
||||
" make sure case of file does matter when recognizing file
|
||||
call TestExtension("ruby", "scripts/build", "#!/usr/bin/env ruby")
|
||||
|
||||
call TestExtension("sh", "bash1", "#!/bin/bash")
|
||||
call TestExtension("sh", "bash2", "#! /bin/bash")
|
||||
call TestExtension("sh", "bash3", "#! /bin/bash2.3")
|
||||
call TestExtension("sh", "bash4", "#!/usr/bin/env bash")
|
||||
call TestExtension("sh", "bash6", "#!/usr/bin/env -i -=split-string foo=bar bash -l foo")
|
||||
call TestExtension("sh", "bash1", "#!/bin/bash")
|
||||
|
||||
" Vim help file
|
||||
call TestExtension("help", $VIMRUNTIME . "/doc/foobar.txt", "")
|
||||
|
||||
" Abaqus or Trasys
|
||||
call TestExtension("abaqus", "foobar.inp", "*HEADING\nFoobar")
|
||||
call TestExtension("trasys", "foobar.inp", "MSC PATRAN\n* foobar\nHEADER SURFACE DATA\nBSC ENCLO1")
|
||||
|
||||
" 8th (Firth-derivative)
|
||||
call TestExtension("8th", "foobar.8th", "")
|
||||
call TestExtension("8th", "foobar.8th", "")
|
||||
|
||||
" A-A-P recipe
|
||||
call TestExtension("aap", "foobar.aap", "")
|
||||
|
||||
|
||||
" A2ps printing utility
|
||||
call TestExtension("a2ps", "/etc/a2ps.cfg", "")
|
||||
call TestExtension("a2ps", "/usr/local/etc/a2ps.cfg", "")
|
||||
call TestExtension("a2ps", "/etc/a2ps/foobar.cfg", "")
|
||||
call TestExtension("a2ps", "/usr/local/etc/a2ps/foobar.cfg", "")
|
||||
call TestExtension("a2ps", "/tmp/a2psrc", "")
|
||||
call TestExtension("a2ps", "/tmp/.a2psrc", "")
|
||||
|
||||
" ABAB/4
|
||||
call TestExtension("abap", "foobar.abap", "")
|
||||
|
||||
" ABC music notation
|
||||
call TestExtension("abc", "foobar.abc", "")
|
||||
|
||||
" ABEL
|
||||
call TestExtension("abel", "foobar.abl", "")
|
||||
|
||||
" AceDB
|
||||
call TestExtension("acedb", "foobar.wrm", "")
|
||||
|
||||
" Ada (83, 9X, 95)
|
||||
call TestExtension("ada", "foobar.adb", "")
|
||||
call TestExtension("ada", "foobar.ads", "")
|
||||
call TestExtension("ada", "foobar.ada", "")
|
||||
call TestExtension("ada", "foobar.gpr", "")
|
||||
|
||||
" AHDL
|
||||
call TestExtension("ahdl", "foobar.tdf", "")
|
||||
|
||||
" AIDL
|
||||
call TestExtension("aidl", "foobar.aidl", "")
|
||||
|
||||
" AMPL
|
||||
call TestExtension("ampl", "foobar.run", "")
|
||||
|
||||
" Ant
|
||||
call TestExtension("ant", "build.xml", "")
|
||||
|
||||
" Arduino
|
||||
call TestExtension("arduino", "foobar.ino", "")
|
||||
call TestExtension("arduino", "foobar.pde", "")
|
||||
|
||||
" Apache config file
|
||||
call TestExtension("apache", ".htaccess", "")
|
||||
call TestExtension("apache", "/etc/httpd/foobar.conf", "")
|
||||
call TestExtension("apache", "/etc/apache2/sites-foobar/foobar.com", "")
|
||||
call TestExtension("apache", "/usr/local/etc/httpd/foobar.conf", "")
|
||||
call TestExtension("apache", "/usr/local/etc/apache2/sites-foobar/foobar.com", "")
|
||||
|
||||
" XA65 MOS6510 cross assembler
|
||||
call TestExtension("a65", "foobar.a65", "")
|
||||
|
||||
" Applescript
|
||||
call TestExtension("applescript", "foobar.scpt", "")
|
||||
|
||||
" Applix ELF
|
||||
call TestExtension("elf", "foobar.am", "")
|
||||
call TestExtension("automake", "Makefile.am", "")
|
||||
call TestExtension("automake", "makefile.am", "")
|
||||
|
||||
" ALSA configuration
|
||||
call TestExtension("alsaconf", ".asoundrc", "")
|
||||
call TestExtension("alsaconf", "/usr/share/alsa/alsa.conf", "")
|
||||
call TestExtension("alsaconf", "/media/foo/usr/share/alsa/alsa.conf", "")
|
||||
call TestExtension("alsaconf", "/etc/asound.conf", "")
|
||||
call TestExtension("alsaconf", "/media/foo/etc/asound.conf", "")
|
||||
|
||||
" Arc Macro Language
|
||||
call TestExtension("aml", "foobar.aml", "")
|
||||
|
||||
" APT config file
|
||||
call TestExtension("aptconf", "apt.conf", "")
|
||||
call TestExtension("aptconf", "/root/.aptitude/config", "")
|
||||
call TestExtension("aptconf", "/etc/apt/apt.conf.d/foo_bar-12", "")
|
||||
call TestExtension("aptconf", "/etc/apt/apt.conf.d/foo_bar-12.conf", "")
|
||||
call TestExtension("", "/etc/apt/apt.conf.d/.gsdf", "")
|
||||
|
||||
" Arch Inventory file
|
||||
call TestExtension("arch", ".arch-inventory", "")
|
||||
call TestExtension("arch", "=tagging-method", "")
|
||||
|
||||
" ART*Enterprise (formerly ART-IM)
|
||||
call TestExtension("art", "foobar.art", "")
|
||||
|
||||
" AsciiDoc
|
||||
call TestExtension("asciidoc", "foobar.asciidoc", "")
|
||||
call TestExtension("asciidoc", "foobar.adoc", "")
|
||||
|
||||
" ASN.1
|
||||
call TestExtension("asn", "foobar.asn", "")
|
||||
call TestExtension("asn", "foobar.asn1", "")
|
||||
|
||||
" Active Server Pages (with Visual Basic Script)
|
||||
call TestExtension("aspvbs", "foobar.asa", "")
|
||||
let g:filetype_asa = "fizfuz"
|
||||
call TestExtension("fizfuz", "foobar.asa", "")
|
||||
|
||||
" Active Server Pages (with Perl or Visual Basic Script)
|
||||
call TestExtension("aspvbs", "vbs.asp", "")
|
||||
call TestExtension("aspperl", "perl.asp", "<Job ID=\"DropFiles\">\n<script language=\"PerlScript\">\n</script>\n</Job>")
|
||||
let g:filetype_asp = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.asp", "")
|
||||
|
||||
|
||||
" Grub (must be before catch *.lst)
|
||||
call TestExtension("grub", "/boot/grub/menu.lst", "")
|
||||
call TestExtension("grub", "/media/foobar/boot/grub/menu.lst", "")
|
||||
call TestExtension("grub", "/boot/grub/grub.conf", "")
|
||||
call TestExtension("grub", "/media/foobar/boot/grub/grub.conf", "")
|
||||
call TestExtension("grub", "/etc/grub.conf", "")
|
||||
call TestExtension("grub", "/media/foobar/etc/grub.conf", "")
|
||||
|
||||
" Assembly (all kinds)
|
||||
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
|
||||
|
||||
au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
|
||||
|
||||
" Macro (VAX)
|
||||
call TestExtension("vmasm", "foobar.mar", "")
|
||||
|
||||
" Atlas
|
||||
call TestExtension("atlas", "foobar.atl", "")
|
||||
call TestExtension("atlas", "foobar.as", "")
|
||||
|
||||
" Autoit v3
|
||||
call TestExtension("autoit", "foobar.au3", "")
|
||||
|
||||
" Autohotkey
|
||||
call TestExtension("autohotkey", "foobar.ahk", "")
|
||||
|
||||
" Automake
|
||||
call TestExtension("automake", "Makefile.am", "")
|
||||
call TestExtension("automake", "makefile.am", "")
|
||||
call TestExtension("automake", "GNUmakefile.am", "")
|
||||
|
||||
" Autotest .at files are actually m4
|
||||
call TestExtension("m4", "foobar.at", "")
|
||||
|
||||
" Avenue
|
||||
call TestExtension("ave", "foobar.ave", "")
|
||||
|
||||
" Awk
|
||||
call TestExtension("awk", "foobar.awk", "")
|
||||
|
||||
" C++
|
||||
call TestExtension("c", "foobar.c", "")
|
||||
call TestExtension("cpp", "foobar.cxx", "")
|
||||
call TestExtension("cpp", "foobar.c++", "")
|
||||
call TestExtension("cpp", "foobar.hh", "")
|
||||
call TestExtension("cpp", "foobar.hxx", "")
|
||||
call TestExtension("cpp", "foobar.hpp", "")
|
||||
call TestExtension("cpp", "foobar.ipp", "")
|
||||
call TestExtension("cpp", "foobar.moc", "")
|
||||
call TestExtension("cpp", "foobar.tcc", "")
|
||||
call TestExtension("cpp", "foobar.inl", "")
|
||||
|
||||
" vim-polyglot only
|
||||
call TestExtension("blade", "test.blade.php", "")
|
||||
call TestExtension("yaml.ansible", "playbook.yml", "")
|
||||
call TestExtension("yaml.ansible", "host_vars/foobar", "")
|
||||
call TestExtension("yaml.ansible", "handlers.foobar.yaml", "")
|
||||
call TestExtension("yaml.ansible", "requirements.yaml", "")
|
||||
call TestExtension("ps1xml", "foobar.ps1xml", "")
|
||||
call TestExtension("terraform", "terraform.tf", "")
|
||||
|
||||
call TestExtension("idris2", "foobar.idr", "")
|
||||
call TestExtension("idris", "foobar.idr", "pkgs : List String\npkgs = [\"NCurses\", \"Readline\"]")
|
||||
let g:filetype_idr = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.idr", "")
|
||||
|
||||
" .m extension
|
||||
call TestExtension("octave", "matlab.m", "")
|
||||
call TestExtension("objc", "objc.m", "\n\n #import <Foundation/Foundation.h>")
|
||||
call TestExtension("octave", "objc.m", "results_ub_times=zeros(2,2,M);\n%results pour la lower bound")
|
||||
call TestExtension("mma", "mathematica.m", "newcase[ \"00003\" ];\n (* Hello world *)")
|
||||
call TestExtension("murphi", "murphi.m", "type\n square: 1 .. 9")
|
||||
call TestExtension("murphi", "murphi.m", "something\n--foobar")
|
||||
call TestExtension("octave", "percentcomment.m", "hello world\n%foobar")
|
||||
call TestExtension("objc", "comment.m", "\n/* Hello world */")
|
||||
let g:filetype_m = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.m", "")
|
||||
|
||||
" .fs extension
|
||||
call TestExtension("forth", "empty.fs", "")
|
||||
call TestExtension("fsharp", "fsharp.fs", "let myInt = 5")
|
||||
call TestExtension("glsl", "glsl.fs", "//#version 120\nvoid main() {}")
|
||||
let g:filetype_fs = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.fs", "")
|
||||
|
||||
" .re extension
|
||||
call TestExtension("reason", "empty.re", "")
|
||||
call TestExtension("cpp", "cpp.re", "#include \"config.h\"")
|
||||
call TestExtension("cpp", "cpp2.re", "#ifdef HAVE_CONFIG_H")
|
||||
call TestExtension("cpp", "cpp3.re", "#define YYCTYPE unsigned char")
|
||||
call TestExtension("reason", "react.re", "ReasonReact.Router.push('');")
|
||||
|
||||
" .bas extension
|
||||
call TestExtension("vbnet", "vb.vb", "")
|
||||
call TestExtension("basic", "empty.bas", "")
|
||||
call TestExtension("vb", "vb1.bas", "Attribute VB_Name = \"Class1\"")
|
||||
call TestExtension("vb", "vb2.bas", "VERSION 5.00\nBegin VB.Form Form1")
|
||||
call TestExtension("vb", "vb2.bas", "VERSION 5.00\nBegin VB.Form Form1")
|
||||
call TestExtension("vb", "vb.sba", "")
|
||||
call TestExtension("vb", "vb.vbs", "")
|
||||
call TestExtension("vb", "vb.dsm", "")
|
||||
call TestExtension("vb", "vb.dsm", "")
|
||||
call TestExtension("vb", "vb.ctl", "")
|
||||
|
||||
" .idr extension
|
||||
call TestExtension("idris", "lowercase.idr", "--idris1")
|
||||
call TestExtension("idris", "uppercase.idr", "--Idris1")
|
||||
call TestExtension("idris", "start-space-l.idr", "-- idris1")
|
||||
call TestExtension("idris", "start-space-u.idr", "-- Idris1")
|
||||
call TestExtension("idris", "two-spaces-l.idr", "-- idris 1")
|
||||
call TestExtension("idris", "two-spaces-u.idr", "-- Idris 1")
|
||||
"call TestExtension("idris", "mypkg.ipkg", "package mypkg\n\npkgs = pruviloj, lightyear")
|
||||
call TestExtension("idris", "use-type-prov.idr", "%language TypeProviders")
|
||||
call TestExtension("idris", "use-elab-refl.idr", "%language ElabReflection")
|
||||
call TestExtension("idris", "access-modifier.idr", "%access export\n\npublic export\nMyTest : Type-> Type\n\nfact : Nat -> Nat")
|
||||
call TestExtension("idris2", "lowercase.idr", "--idris2")
|
||||
call TestExtension("idris2", "uppercase.idr", "--Idris2")
|
||||
call TestExtension("idris2", "start-space-l.idr", "-- idris2")
|
||||
call TestExtension("idris2", "start-space-u.idr", "-- Idris2")
|
||||
call TestExtension("idris2", "two-spaces-l.idr", "-- idris 2")
|
||||
call TestExtension("idris2", "two-spaces-u.idr", "-- Idris 2")
|
||||
call TestExtension("idris2", "mypkg.ipkg", "package mypkg\n\ndepends = effects")
|
||||
call TestExtension("idris2", "use-post-proj.idr", "%language PostfixProjections")
|
||||
|
||||
" .lidr extension
|
||||
call TestExtension("lidris", "lidris-1.lidr", "Some test plaintext\n\n> --idris1\n> myfact : Nat -> Nat\n> myfact Z = 1\n> myfact (S k) = (S k) * myfact k\n\nMore plaintext")
|
||||
call TestExtension("lidris2", "lidris-2.lidr", "Some test plaintext\n\n> --idris2\n> myfact : Nat -> Nat\n> myfact Z = 1\n> myfact (S k) = (S k) * myfact k\n\nMore plaintext")
|
||||
|
||||
|
||||
" .h extension
|
||||
call TestExtension("objcpp", "foo.h", "@interface MTNavigationController : UINavigationController")
|
||||
call TestExtension("cpp", "foo.h", "")
|
||||
let g:c_syntax_for_h = 1
|
||||
call TestExtension("objc", "foo.h", "@interface MTNavigationController : UINavigationController")
|
||||
call TestExtension("c", "foo.h", "")
|
||||
unlet g:c_syntax_for_h
|
||||
let g:ch_syntax_for_h = 1
|
||||
call TestExtension("ch", "foo.h", "")
|
||||
|
||||
" perl
|
||||
call TestExtension("perl", "empty.plx", "")
|
||||
call TestExtension("perl", "empty.al", "")
|
||||
call TestExtension("perl", "empty.psgi", "")
|
||||
call TestExtension("pod", "empty.pod", "")
|
||||
|
||||
" raku
|
||||
call TestExtension("raku", "empty.p6", "")
|
||||
call TestExtension("raku", "empty.pm6", "")
|
||||
call TestExtension("raku", "empty.pl6", "")
|
||||
call TestExtension("raku", "empty.raku", "")
|
||||
call TestExtension("raku", "empty.rakumod", "")
|
||||
call TestExtension("raku", "empty.pod6", "")
|
||||
call TestExtension("raku", "empty.rakudoc", "")
|
||||
call TestExtension("raku", "empty.rakutest", "")
|
||||
call TestExtension("raku", "empty.t6", "")
|
||||
|
||||
|
||||
" .pm extension
|
||||
call TestExtension("perl", "empty.pm", "")
|
||||
call TestExtension("perl", "strict.pm", " use strict hello;")
|
||||
call TestExtension("perl", "use5.pm", " use 5;")
|
||||
call TestExtension("perl", "usev5.pm", " use v5;")
|
||||
call TestExtension("raku", "script.pm", "#!/usr/bin/env perl6\nprint('Hello world')")
|
||||
call TestExtension("raku", "class.pm", " class Class {}")
|
||||
call TestExtension("raku", "module.pm", " module foobar")
|
||||
call TestExtension("xpm", "xpm.pm", "/* XPM */")
|
||||
call TestExtension("xpm2", "xpm2.pm", "/* XPM2 */")
|
||||
let g:filetype_pm = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.pm", "")
|
||||
|
||||
" .pl extension
|
||||
call TestExtension("perl", "empty.pl", "")
|
||||
call TestExtension("prolog", "comment.pl", "% hello world")
|
||||
call TestExtension("prolog", "comment2.pl", "/* hello world */")
|
||||
call TestExtension("prolog", "statement.pl", "happy(vincent). ")
|
||||
call TestExtension("prolog", "statement2.pl", "nearbychk(X,Y) :- Y is X-1.")
|
||||
call TestExtension("perl", "strict.pl", " use strict hello;")
|
||||
call TestExtension("perl", "use5.pl", " use 5;")
|
||||
call TestExtension("perl", "usev5.pl", " use v5;")
|
||||
call TestExtension("raku", "script.pl", "#!/usr/bin/env perl6\nprint('Hello world')")
|
||||
call TestExtension("raku", "class.pl", " class Class {}")
|
||||
call TestExtension("raku", "module.pl", " module foobar")
|
||||
let g:filetype_pl = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.pl", "")
|
||||
|
||||
" .t extension
|
||||
call TestExtension("perl", "empty.t", "")
|
||||
call TestExtension("perl", "strict.t", " use strict hello;")
|
||||
call TestExtension("perl", "use5.t", " use 5;")
|
||||
call TestExtension("perl", "usev5.t", " use v5;")
|
||||
call TestExtension("raku", "script.t", "#!/usr/bin/env perl6\nprint('Hello world')")
|
||||
call TestExtension("raku", "class.t", " class Class {}")
|
||||
call TestExtension("raku", "module.t", " module foobar")
|
||||
call TestExtension("nroff", "module.t", ".nf\n101 Main Street")
|
||||
let g:filetype_t = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.t", "")
|
||||
|
||||
" .tt2 extension
|
||||
call TestExtension("tt2", "empty.tt2", "")
|
||||
call TestExtension("tt2html", "doctype.tt2", "<!DOCTYPE HTML>")
|
||||
call TestExtension("tt2html", "percent.tt2", "<%filter>")
|
||||
call TestExtension("tt2html", "html.tt2", "<html>")
|
||||
|
||||
" .html extension
|
||||
call TestExtension("html", "empty.html", "")
|
||||
call TestExtension("mason", "mason1.html", "% my $planet = 42;")
|
||||
call TestExtension("mason", "mason2.html", "<%filter></%filter>")
|
||||
call TestExtension("jinja.html", "jinja.html", "{{ item.href }}")
|
||||
call TestExtension("jinja.html", "jinja.html", "{% for item in navigation %}{% endfor %}")
|
||||
call TestExtension("jinja.html", "jinja.html", "{% block head %}")
|
||||
@@ -1,16 +1,12 @@
|
||||
function! TestFiletype(filetype)
|
||||
try
|
||||
enew
|
||||
exec 'set ft=' . a:filetype
|
||||
catch
|
||||
echo 'Error loading filetype ' . a:filetype . ':'
|
||||
echo v:exception
|
||||
echo v:throwpoint
|
||||
exec ':cq!'
|
||||
endtry
|
||||
call Log('Loading ' . a:filetype . ' filetype...')
|
||||
|
||||
enew
|
||||
exec 'set ft=' . a:filetype
|
||||
endfunction
|
||||
|
||||
call TestFiletype('8th')
|
||||
call TestFiletype('haproxy')
|
||||
call TestFiletype('a2ps')
|
||||
call TestFiletype('a65')
|
||||
call TestFiletype('aap')
|
||||
@@ -26,16 +22,20 @@ call TestFiletype('aidl')
|
||||
call TestFiletype('alsaconf')
|
||||
call TestFiletype('aml')
|
||||
call TestFiletype('ampl')
|
||||
call TestFiletype('xml')
|
||||
call TestFiletype('ant')
|
||||
call TestFiletype('apache')
|
||||
call TestFiletype('apiblueprint')
|
||||
call TestFiletype('applescript')
|
||||
call TestFiletype('aptconf')
|
||||
call TestFiletype('arch')
|
||||
call TestFiletype('cpp')
|
||||
call TestFiletype('c')
|
||||
call TestFiletype('arduino')
|
||||
call TestFiletype('art')
|
||||
call TestFiletype('asciidoc')
|
||||
call TestFiletype('autohotkey')
|
||||
call TestFiletype('elf')
|
||||
call TestFiletype('automake')
|
||||
call TestFiletype('asn')
|
||||
call TestFiletype('aspvbs')
|
||||
@@ -44,9 +44,6 @@ call TestFiletype('atlas')
|
||||
call TestFiletype('autoit')
|
||||
call TestFiletype('ave')
|
||||
call TestFiletype('awk')
|
||||
call TestFiletype('reason')
|
||||
call TestFiletype('c')
|
||||
call TestFiletype('cpp')
|
||||
call TestFiletype('caddyfile')
|
||||
call TestFiletype('carp')
|
||||
call TestFiletype('clojure')
|
||||
@@ -61,7 +58,6 @@ call TestFiletype('cucumber')
|
||||
call TestFiletype('cuesheet')
|
||||
call TestFiletype('dart')
|
||||
call TestFiletype('dhall')
|
||||
call TestFiletype('grub')
|
||||
call TestFiletype('d')
|
||||
call TestFiletype('dcov')
|
||||
call TestFiletype('dd')
|
||||
@@ -69,7 +65,6 @@ call TestFiletype('ddoc')
|
||||
call TestFiletype('dsdl')
|
||||
call TestFiletype('Dockerfile')
|
||||
call TestFiletype('yaml.docker-compose')
|
||||
call TestFiletype('elf')
|
||||
call TestFiletype('elixir')
|
||||
call TestFiletype('eelixir')
|
||||
call TestFiletype('elm')
|
||||
@@ -81,23 +76,26 @@ call TestFiletype('ferm')
|
||||
call TestFiletype('fish')
|
||||
call TestFiletype('fbs')
|
||||
call TestFiletype('forth')
|
||||
call TestFiletype('glsl')
|
||||
call TestFiletype('fsharp')
|
||||
call TestFiletype('gdscript3')
|
||||
call TestFiletype('gitconfig')
|
||||
call TestFiletype('gitrebase')
|
||||
call TestFiletype('gitsendemail')
|
||||
call TestFiletype('gitcommit')
|
||||
call TestFiletype('glsl')
|
||||
call TestFiletype('gmpl')
|
||||
call TestFiletype('gnuplot')
|
||||
call TestFiletype('go')
|
||||
call TestFiletype('gomod')
|
||||
call TestFiletype('gohtmltmpl')
|
||||
call TestFiletype('javascript')
|
||||
call TestFiletype('flow')
|
||||
call TestFiletype('javascriptreact')
|
||||
call TestFiletype('graphql')
|
||||
call TestFiletype('groovy')
|
||||
call TestFiletype('grub')
|
||||
call TestFiletype('haml')
|
||||
call TestFiletype('mustache')
|
||||
call TestFiletype('haproxy')
|
||||
call TestFiletype('haskell')
|
||||
call TestFiletype('haxe')
|
||||
call TestFiletype('hcl')
|
||||
@@ -106,9 +104,9 @@ call TestFiletype('html')
|
||||
call TestFiletype('i3config')
|
||||
call TestFiletype('icalendar')
|
||||
call TestFiletype('idris')
|
||||
call TestFiletype('idris2')
|
||||
call TestFiletype('lidris2')
|
||||
call TestFiletype('ion')
|
||||
call TestFiletype('javascript')
|
||||
call TestFiletype('flow')
|
||||
call TestFiletype('Jenkinsfile')
|
||||
call TestFiletype('jinja.html')
|
||||
call TestFiletype('jq')
|
||||
@@ -116,7 +114,6 @@ call TestFiletype('json5')
|
||||
call TestFiletype('json')
|
||||
call TestFiletype('jsonnet')
|
||||
call TestFiletype('jst')
|
||||
call TestFiletype('javascriptreact')
|
||||
call TestFiletype('julia')
|
||||
call TestFiletype('kotlin')
|
||||
call TestFiletype('ledger')
|
||||
@@ -129,7 +126,6 @@ call TestFiletype('log')
|
||||
call TestFiletype('lua')
|
||||
call TestFiletype('m4')
|
||||
call TestFiletype('mako')
|
||||
call TestFiletype('octave')
|
||||
call TestFiletype('mma')
|
||||
call TestFiletype('markdown')
|
||||
call TestFiletype('markdown.mdx')
|
||||
@@ -150,12 +146,18 @@ call TestFiletype('ocamlbuild_tags')
|
||||
call TestFiletype('ocpbuild')
|
||||
call TestFiletype('ocpbuildroot')
|
||||
call TestFiletype('sexplib')
|
||||
call TestFiletype('octave')
|
||||
call TestFiletype('opencl')
|
||||
call TestFiletype('perl')
|
||||
call TestFiletype('pod')
|
||||
call TestFiletype('mason')
|
||||
call TestFiletype('tt2')
|
||||
call TestFiletype('tt2html')
|
||||
call TestFiletype('xs')
|
||||
call TestFiletype('sql')
|
||||
call TestFiletype('cql')
|
||||
call TestFiletype('blade')
|
||||
call TestFiletype('php')
|
||||
call TestFiletype('blade')
|
||||
call TestFiletype('plantuml')
|
||||
call TestFiletype('pony')
|
||||
call TestFiletype('ps1')
|
||||
@@ -176,6 +178,7 @@ call TestFiletype('ragel')
|
||||
call TestFiletype('raku')
|
||||
call TestFiletype('raml')
|
||||
call TestFiletype('razor')
|
||||
call TestFiletype('reason')
|
||||
call TestFiletype('rst')
|
||||
call TestFiletype('ruby')
|
||||
call TestFiletype('eruby')
|
||||
@@ -216,13 +219,19 @@ call TestFiletype('velocity')
|
||||
call TestFiletype('vmasm')
|
||||
call TestFiletype('vue')
|
||||
call TestFiletype('xdc')
|
||||
call TestFiletype('xml')
|
||||
call TestFiletype('xsl')
|
||||
call TestFiletype('yaml.ansible')
|
||||
call TestFiletype('yaml')
|
||||
call TestFiletype('yaml.ansible')
|
||||
call TestFiletype('helm')
|
||||
call TestFiletype('help')
|
||||
call TestFiletype('zephir')
|
||||
call TestFiletype('zir')
|
||||
call TestFiletype('zig')
|
||||
call TestFiletype('trasys')
|
||||
call TestFiletype('basic')
|
||||
call TestFiletype('vb')
|
||||
call TestFiletype('dosini')
|
||||
call TestFiletype('odin')
|
||||
call TestFiletype('bzl')
|
||||
call TestFiletype('prolog')
|
||||
call TestFiletype('tads')
|
||||
10
tests/indent/2.1/test.js
Normal file
10
tests/indent/2.1/test.js
Normal file
@@ -0,0 +1,10 @@
|
||||
// File with 2-spaces indentation
|
||||
function foobar() {
|
||||
foo = bar
|
||||
while (true) {
|
||||
fizfuz()
|
||||
fizfuz()
|
||||
fizfuz()
|
||||
fizfuz()
|
||||
}
|
||||
}
|
||||
10
tests/indent/4.1/test.js
Normal file
10
tests/indent/4.1/test.js
Normal file
@@ -0,0 +1,10 @@
|
||||
// File with 4-spaces indentation
|
||||
function foobar() {
|
||||
foo = bar
|
||||
while (true) {
|
||||
fizfuz()
|
||||
fizfuz()
|
||||
fizfuz()
|
||||
fizfuz()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user