mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
120 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29ec69ffa0 | ||
|
|
6636144497 | ||
|
|
2a205569eb | ||
|
|
114f731483 | ||
|
|
4b8687ebca | ||
|
|
78f6c8f318 | ||
|
|
86bf33aa3b | ||
|
|
b64fcedd82 | ||
|
|
903793ac04 | ||
|
|
71a21a1044 | ||
|
|
1d7f0e4a7e | ||
|
|
ad2df97a64 | ||
|
|
fbeca0ed90 | ||
|
|
8c1ec94a3c | ||
|
|
5297baf285 | ||
|
|
5e2607d93f | ||
|
|
3d80a66e7b | ||
|
|
0980839568 | ||
|
|
4ab0bdd326 | ||
|
|
dbfcb6dca4 | ||
|
|
6208384bd4 | ||
|
|
225c408b02 | ||
|
|
71d9a2db9f | ||
|
|
233a817f05 | ||
|
|
c3e825027d | ||
|
|
3618414fad | ||
|
|
88cae16fca | ||
|
|
6d7f437b84 | ||
|
|
bb27d0efbf | ||
|
|
8a790ac7bf | ||
|
|
c9f2aa9ae0 | ||
|
|
1fc249bafd | ||
|
|
518d733369 | ||
|
|
0021384259 | ||
|
|
af3ebda710 | ||
|
|
6b663ec330 | ||
|
|
6b9625ecd5 | ||
|
|
3383046210 | ||
|
|
8f9e5ac70b | ||
|
|
23d7b0931d | ||
|
|
3ee6ab9d13 | ||
|
|
cd919c0039 | ||
|
|
3ac0dd5a80 | ||
|
|
e95c5f49aa | ||
|
|
ba11e0f1ad | ||
|
|
c45f0b8f64 | ||
|
|
bbee246aae | ||
|
|
3da600ac30 | ||
|
|
0d48ba9245 | ||
|
|
1993b9f68f | ||
|
|
bb3de8fa5e | ||
|
|
b3763a917a | ||
|
|
4bec20ec1a | ||
|
|
9f4e2b6834 | ||
|
|
619a7a854b | ||
|
|
3f79f795dc | ||
|
|
f084509520 | ||
|
|
214ecc1384 | ||
|
|
a96c420e14 | ||
|
|
bc9757916e | ||
|
|
c6fa4d2bf5 | ||
|
|
cbc4600333 | ||
|
|
32b097f67e | ||
|
|
04d110660e | ||
|
|
c0b866aac3 | ||
|
|
b4868c7ea7 | ||
|
|
d221139bd7 | ||
|
|
073e4d44be | ||
|
|
5bd9f16476 | ||
|
|
94ec9c38e7 | ||
|
|
bff55a54fa | ||
|
|
560024abe0 | ||
|
|
3ad297db5c | ||
|
|
5d7121d829 | ||
|
|
8b272d6e52 | ||
|
|
449bb88248 | ||
|
|
7036147860 | ||
|
|
a37e7e2939 | ||
|
|
c1aac2e279 | ||
|
|
543e8c917b | ||
|
|
2f133372bc | ||
|
|
539952f922 | ||
|
|
b5cc8fc336 | ||
|
|
1872af2d5e | ||
|
|
46b09b0d5b | ||
|
|
63f43f3b01 | ||
|
|
046a052f18 | ||
|
|
31409eaafb | ||
|
|
f431aee86e | ||
|
|
6a086b0c79 | ||
|
|
692db4dc29 | ||
|
|
417df69667 | ||
|
|
ae778bdb17 | ||
|
|
b7598ff0c5 | ||
|
|
312e95099d | ||
|
|
63369f98ef | ||
|
|
2116dd281b | ||
|
|
7ec499c19f | ||
|
|
33b86476b6 | ||
|
|
4f36a63813 | ||
|
|
d6479bbf0b | ||
|
|
d53d2189b9 | ||
|
|
a6a6aeab76 | ||
|
|
444e7f184d | ||
|
|
4c028b37bf | ||
|
|
9ff714cb6c | ||
|
|
e2bbed8acc | ||
|
|
6b4da27538 | ||
|
|
c284af58fa | ||
|
|
50aa05bd72 | ||
|
|
7e2d060f88 | ||
|
|
3a298c9759 | ||
|
|
d9ec600545 | ||
|
|
33f0964d53 | ||
|
|
92cb76e33a | ||
|
|
378dcb3878 | ||
|
|
6f0c50457f | ||
|
|
06548fe617 | ||
|
|
0118088e0a | ||
|
|
17c2b630e1 |
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'
|
||||
@ find scripts autoload/polyglot ftdetect tests . -type f -depth 1 | DEV=1 entr bash -c 'make && make test'
|
||||
|
||||
383
README.md
383
README.md
@@ -1,30 +1,35 @@
|
||||

|
||||
|
||||
 []()
|
||||
 []()
|
||||
|
||||
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-->196<!--/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).
|
||||
- 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.
|
||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->598<!--/Package Count--> packages it consists of.
|
||||
- It is also more secure (scripts loaded for every filetype are generated by vim-polyglot)
|
||||
- Best syntax and indentation support (no other features). Hand-selected language packs.
|
||||
- Automatically detects indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth), can be disabled)
|
||||
- Includes some defaults from [vim-sensible](https://github.com/tpope/vim-sensible), which are usually necessary for editing in any language (can be disabled)
|
||||
|
||||
\*To be completely honest, optimized `ftdetect` script takes around `20ms` to load.
|
||||
\*To be completely honest, optimized `ftdetect` script takes around `10ms` to load.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Install [Pathogen](https://github.com/tpope/vim-pathogen), [Vundle](https://github.com/VundleVim/Vundle.vim), [NeoBundle](https://github.com/Shougo/neobundle.vim), or [Plug](https://github.com/junegunn/vim-plug) package manager for Vim.
|
||||
2. Use this repository as submodule or package.
|
||||
|
||||
For example when using [Plug](https://github.com/junegunn/vim-plug):
|
||||
For example when using [Plug](https://github.com/junegunn/vim-plug) (which I recommend):
|
||||
|
||||
```vim
|
||||
set nocompatible
|
||||
|
||||
call plug#begin()
|
||||
|
||||
```
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
call plug#end()
|
||||
```
|
||||
|
||||
Optionally download one of the [releases](https://github.com/sheerun/vim-polyglot/releases) and unpack it directly under `~/.vim` directory.
|
||||
@@ -32,212 +37,167 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
||||
You can also use Vim 8 built-in package manager:
|
||||
|
||||
```
|
||||
mkdir -p ~/.vim/pack/default/start
|
||||
git clone https://github.com/sheerun/vim-polyglot ~/.vim/pack/default/start/vim-polyglot
|
||||
git clone --depth 1 https://github.com/sheerun/vim-polyglot ~/.vim/pack/plugins/start/vim-polyglot
|
||||
```
|
||||
|
||||
NOTE: Not all features of individual language packs are available. We strip them from functionality slowing vim startup (for example we ignore `plugins` folder that is loaded regardless of file type, instead we prefer `ftplugin` which is loaded lazily).
|
||||
|
||||
If you need full functionality of any plugin, please use it directly with your plugin manager.
|
||||
|
||||
## Language packs
|
||||
|
||||
On top of all language packs from [vim repository](https://github.com/vim/vim/tree/master/runtime/syntax), vim-polyglot includes:
|
||||
|
||||
<!--Language Packs-->
|
||||
- [8th](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [a2ps](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [a65](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [aap](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [abap](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [abaqus](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [abc](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [abel](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [acedb](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl)
|
||||
- [ada](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [ahdl](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [aidl](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [alsaconf](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [aml](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [ampl](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl) (Syntax highlighting for asl and dsl files)
|
||||
- [ansible](https://github.com/pearofducks/ansible-vim)
|
||||
- [ant](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [apache](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [apiblueprint](https://github.com/sheerun/apiblueprint.vim)
|
||||
- [applescript](https://github.com/mityu/vim-applescript)
|
||||
- [aptconf](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [arch](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [arduino](https://github.com/sudar/vim-arduino-syntax)
|
||||
- [art](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [asciidoc](https://github.com/asciidoc/vim-asciidoc)
|
||||
- [asn](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [aspperl](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [aspvbs](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [atlas](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey)
|
||||
- [autoit](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [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)
|
||||
- [apiblueprint](https://github.com/kylef/apiblueprint.vim) (API Blueprint syntax highlighting for apib files)
|
||||
- [applescript](https://github.com/mityu/vim-applescript) (AppleScript syntax highlighting for applescript and scpt files)
|
||||
- [arduino](https://github.com/sudar/vim-arduino-syntax) (Processing syntax highlighting for pde and ino files)
|
||||
- [asciidoc](https://github.com/asciidoc/vim-asciidoc) (AsciiDoc syntax highlighting for asciidoc, adoc and asc files)
|
||||
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey) (AutoHotkey syntax highlighting for ahk and ahkl files)
|
||||
- [blade](https://github.com/jwalton512/vim-blade) (Blade syntax highlighting for blade and blade.php files)
|
||||
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
|
||||
- [c/c++](https://github.com/vim-jp/vim-cpp)
|
||||
- [c/c++](https://github.com/vim-jp/vim-cpp) (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 17 more files)
|
||||
- [caddyfile](https://github.com/isobit/vim-caddyfile)
|
||||
- [carp](https://github.com/hellerve/carp-vim)
|
||||
- [carp](https://github.com/hellerve/carp-vim) (Syntax highlighting for carp files)
|
||||
- [cjsx](https://github.com/mtscout6/vim-cjsx)
|
||||
- [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)
|
||||
- [cql](https://github.com/elubow/cql-vim)
|
||||
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim)
|
||||
- [crystal](https://github.com/rhysd/vim-crystal)
|
||||
- [csv](https://github.com/chrisbra/csv.vim)
|
||||
- [cucumber](https://github.com/tpope/vim-cucumber)
|
||||
- [cue](https://github.com/mgrabovsky/vim-cuesheet)
|
||||
- [dart](https://github.com/dart-lang/dart-vim-plugin)
|
||||
- [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)
|
||||
- [emberscript](https://github.com/yalesov/vim-ember-script)
|
||||
- [emblem](https://github.com/yalesov/vim-emblem)
|
||||
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime)
|
||||
- [fennel](https://github.com/bakpakin/fennel.vim)
|
||||
- [ferm](https://github.com/vim-scripts/ferm.vim)
|
||||
- [fish](https://github.com/georgewitteman/vim-fish)
|
||||
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers)
|
||||
- [forth](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [fsharp](https://github.com/ionide/Ionide-vim)
|
||||
- [gdscript](https://github.com/calviken/vim-gdscript3)
|
||||
- [git](https://github.com/tpope/vim-git)
|
||||
- [glsl](https://github.com/tikhomirov/vim-glsl)
|
||||
- [gmpl](https://github.com/maelvalais/gmpl.vim)
|
||||
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting)
|
||||
- [go](https://github.com/fatih/vim-go)
|
||||
- [clojure](https://github.com/guns/vim-clojure-static) (Clojure syntax highlighting for clj, boot, cl2, cljc, cljs, cljs.hl, cljscm, cljx, hic and edn files)
|
||||
- [cmake](https://github.com/pboettch/vim-cmake-syntax) (CMake syntax highlighting for cmake and cmake.in files)
|
||||
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (CoffeeScript and Literate CoffeeScript syntax highlighting for coffee, cake, cjsx, iced, coffeekup, litcoffee and coffee.md files)
|
||||
- [cpp-modern](https://github.com/bfrg/vim-cpp-modern)
|
||||
- [cql](https://github.com/elubow/cql-vim) (Syntax highlighting for cql files)
|
||||
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim) (Syntax highlighting for cry, cyl, lcry and lcyl files)
|
||||
- [crystal](https://github.com/rhysd/vim-crystal) (Crystal and HTML+ECR syntax highlighting for cr and ecr files)
|
||||
- [csv](https://github.com/chrisbra/csv.vim) (CSV syntax highlighting for csv, tsv and tab files)
|
||||
- [cucumber](https://github.com/tpope/vim-cucumber) (Gherkin syntax highlighting for feature and story files)
|
||||
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (Syntax highlighting for cue files)
|
||||
- [dart](https://github.com/dart-lang/dart-vim-plugin) (Dart syntax highlighting for dart and drt files)
|
||||
- [dhall](https://github.com/vmchale/dhall-vim) (Dhall syntax highlighting for dhall files)
|
||||
- [dlang](https://github.com/JesseKPhillips/d.vim) (D syntax highlighting for d, di, lst, dd, ddoc and sdl files)
|
||||
- [docker-compose](https://github.com/ekalinin/Dockerfile.vim)
|
||||
- [elixir](https://github.com/elixir-lang/vim-elixir) (Elixir and HTML+EEX syntax highlighting for ex, exs, eex and leex files)
|
||||
- [elm](https://github.com/andys8/vim-elm-syntax) (Elm syntax highlighting for elm files)
|
||||
- [emberscript](https://github.com/yalesov/vim-ember-script) (EmberScript syntax highlighting for em and emberscript files)
|
||||
- [emblem](https://github.com/yalesov/vim-emblem) (Syntax highlighting for emblem and em files)
|
||||
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (Erlang syntax highlighting for erl, app.src, es, escript, hrl, xrl, yrl, app and yaws files)
|
||||
- [fennel](https://github.com/bakpakin/fennel.vim) (Syntax highlighting for fnl files)
|
||||
- [ferm](https://github.com/vim-scripts/ferm.vim) (Syntax highlighting for ferm files)
|
||||
- [fish](https://github.com/georgewitteman/vim-fish) (fish syntax highlighting for fish files)
|
||||
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (Syntax highlighting for fbs files)
|
||||
- [fsharp](https://github.com/ionide/Ionide-vim) (F# syntax highlighting for fs, fsi and fsx files)
|
||||
- [gdscript](https://github.com/calviken/vim-gdscript3) (GDScript syntax highlighting for gd files)
|
||||
- [git](https://github.com/tpope/vim-git) (Git Config syntax highlighting for gitconfig files)
|
||||
- [gitignore](https://github.com/fszymanski/fzf-gitignore)
|
||||
- [glsl](https://github.com/tikhomirov/vim-glsl) (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 16 more files)
|
||||
- [gmpl](https://github.com/maelvalais/gmpl.vim) (Syntax highlighting for mod files)
|
||||
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (Gnuplot syntax highlighting for gp, gnu, gnuplot, p, plot, plt and gpi files)
|
||||
- [go](https://github.com/fatih/vim-go) (Go syntax highlighting for go and tmpl files)
|
||||
- [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)
|
||||
- [haproxy](https://github.com/CH-DanReif/haproxy.vim)
|
||||
- [haskell](https://github.com/neovimhaskell/haskell-vim)
|
||||
- [haxe](https://github.com/yaymukund/vim-haxe)
|
||||
- [hcl](https://github.com/b4b4r07/vim-hcl)
|
||||
- [graphql](https://github.com/jparise/vim-graphql) (GraphQL syntax highlighting for graphql, gql and graphqls files)
|
||||
- [haml](https://github.com/tpope/vim-haml) (Haml syntax highlighting for haml, haml.deface, hamlc and hamlbars files)
|
||||
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (Mustache and Handlebars syntax highlighting for mustache, hogan, hulk, hjs, handlebars, hbs, hdbs and hb files)
|
||||
- [haproxy](https://github.com/CH-DanReif/haproxy.vim) (HAProxy syntax highlighting)
|
||||
- [haskell](https://github.com/neovimhaskell/haskell-vim) (Haskell syntax highlighting for hs, hs-boot, hsc, bpk and hsig files)
|
||||
- [haxe](https://github.com/yaymukund/vim-haxe) (Haxe syntax highlighting for hx and hxsl files)
|
||||
- [hcl](https://github.com/b4b4r07/vim-hcl) (HCL syntax highlighting for hcl, nomad and workflow files)
|
||||
- [helm](https://github.com/towolf/vim-helm)
|
||||
- [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)
|
||||
- [hive](https://github.com/zebradil/hive.vim) (HiveQL syntax highlighting for q, hql and ql files)
|
||||
- [html5](https://github.com/sheerun/html5.vim)
|
||||
- [i3](https://github.com/mboughaba/i3config.vim) (Syntax highlighting for i3.config and i3config files)
|
||||
- [icalendar](https://github.com/chutzpah/icalendar.vim) (Syntax highlighting for ics files)
|
||||
- [idris2](https://github.com/edwinb/idris2-vim) (Syntax highlighting for idr, ipkg and lidr files)
|
||||
- [idris](https://github.com/idris-hackers/idris-vim) (Idris syntax highlighting for idr and lidr files)
|
||||
- [ion](https://github.com/vmchale/ion-vim) (Syntax highlighting for ion files)
|
||||
- [javascript-sql](https://github.com/statico/vim-javascript-sql)
|
||||
- [javascript](https://github.com/pangloss/vim-javascript)
|
||||
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax)
|
||||
- [jinja](https://github.com/lepture/vim-jinja)
|
||||
- [jq](https://github.com/vito-c/jq.vim)
|
||||
- [json5](https://github.com/GutenYe/json5.vim)
|
||||
- [json](https://github.com/elzr/vim-json)
|
||||
- [jsonnet](https://github.com/google/vim-jsonnet)
|
||||
- [jst](https://github.com/briancollins/vim-jst)
|
||||
- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty)
|
||||
- [julia](https://github.com/JuliaEditorSupport/julia-vim)
|
||||
- [kotlin](https://github.com/udalov/kotlin-vim)
|
||||
- [ledger](https://github.com/ledger/vim-ledger)
|
||||
- [less](https://github.com/groenewege/vim-less)
|
||||
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond)
|
||||
- [livescript](https://github.com/gkz/vim-ls)
|
||||
- [llvm](https://github.com/rhysd/vim-llvm)
|
||||
- [log](https://github.com/MTDL9/vim-log-highlighting)
|
||||
- [lua](https://github.com/tbastos/vim-lua)
|
||||
- [m4](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [mako](https://github.com/sophacles/vim-bundle-mako)
|
||||
- [markdown](https://github.com/plasticboy/vim-markdown)
|
||||
- [mathematica](https://github.com/voldikss/vim-mma)
|
||||
- [mdx](https://github.com/jxnblk/vim-mdx-js)
|
||||
- [meson](https://github.com/mesonbuild/meson/tree/master/data/syntax-highlighting/vim)
|
||||
- [moonscript](https://github.com/leafo/moonscript-vim)
|
||||
- [murphi](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [nginx](https://github.com/chr4/nginx.vim)
|
||||
- [nim](https://github.com/zah/nim.vim)
|
||||
- [nix](https://github.com/LnL7/vim-nix)
|
||||
- [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)
|
||||
- [php](https://github.com/StanAngeloff/php.vim)
|
||||
- [plantuml](https://github.com/aklt/plantuml-syntax)
|
||||
- [pony](https://github.com/jakwings/vim-pony)
|
||||
- [powershell](https://github.com/PProvost/vim-ps1)
|
||||
- [protobuf](https://github.com/uarun/vim-protobuf)
|
||||
- [pug](https://github.com/digitaltoad/vim-pug)
|
||||
- [puppet](https://github.com/rodjek/vim-puppet)
|
||||
- [purescript](https://github.com/purescript-contrib/purescript-vim)
|
||||
- [javascript](https://github.com/pangloss/vim-javascript) (JavaScript syntax highlighting for js, bones, cjs, es, es6 and 17 more files)
|
||||
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (Syntax highlighting for jenkinsfile and Jenkinsfile files)
|
||||
- [jq](https://github.com/vito-c/jq.vim) (JSONiq syntax highlighting for jq files)
|
||||
- [json5](https://github.com/GutenYe/json5.vim) (JSON5 syntax highlighting for json5 files)
|
||||
- [json](https://github.com/elzr/vim-json) (JSON syntax highlighting for json, avsc, geojson, gltf, har and 13 more files)
|
||||
- [jsonnet](https://github.com/google/vim-jsonnet) (Jsonnet syntax highlighting for jsonnet and libsonnet files)
|
||||
- [jst](https://github.com/briancollins/vim-jst) (EJS syntax highlighting for ejs, ect and jst files)
|
||||
- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (JSX syntax highlighting for jsx files)
|
||||
- [julia](https://github.com/JuliaEditorSupport/julia-vim) (Julia syntax highlighting for jl files)
|
||||
- [kotlin](https://github.com/udalov/kotlin-vim) (Kotlin syntax highlighting for kt, ktm and kts files)
|
||||
- [ledger](https://github.com/ledger/vim-ledger) (Syntax highlighting for ldg, ledger and journal files)
|
||||
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (LilyPond syntax highlighting for ly and ily files)
|
||||
- [livescript](https://github.com/gkz/vim-ls) (LiveScript syntax highlighting for ls files)
|
||||
- [llvm](https://github.com/rhysd/vim-llvm) (LLVM syntax highlighting for ll and td files)
|
||||
- [log](https://github.com/MTDL9/vim-log-highlighting) (Syntax highlighting for log and LOG files)
|
||||
- [lua](https://github.com/tbastos/vim-lua) (Lua syntax highlighting for lua, fcgi, nse, p8, rbxs, rockspec and wlua files)
|
||||
- [mako](https://github.com/sophacles/vim-bundle-mako) (Mako syntax highlighting for mako and mao files)
|
||||
- [markdown](https://github.com/plasticboy/vim-markdown) (Markdown syntax highlighting for md, markdown, mdown, mdwn, mkd, mkdn, mkdown, ronn and workbook files)
|
||||
- [mathematica](https://github.com/voldikss/vim-mma) (Mathematica syntax highlighting for mathematica, cdf, m, ma, mt and 6 more files)
|
||||
- [mdx](https://github.com/jxnblk/vim-mdx-js) (Syntax highlighting for mdx files)
|
||||
- [meson](https://github.com/mesonbuild/meson/tree/master/data/syntax-highlighting/vim) (Meson syntax highlighting for wrap files)
|
||||
- [moonscript](https://github.com/leafo/moonscript-vim) (MoonScript syntax highlighting for moon files)
|
||||
- [nginx](https://github.com/chr4/nginx.vim) (Nginx syntax highlighting for nginx, nginxconf and vhost files)
|
||||
- [nim](https://github.com/zah/nim.vim) (Nim syntax highlighting for nim, nim.cfg, nimble, nimrod and nims files)
|
||||
- [nix](https://github.com/LnL7/vim-nix) (Nix syntax highlighting for nix files)
|
||||
- [objc](https://github.com/b4winckler/vim-objc) (Objective-C syntax highlighting for m and h files)
|
||||
- [ocaml](https://github.com/rgrinberg/vim-ocaml) (OCaml syntax highlighting for ml, eliom, eliomi, ml4, mli and 13 more files)
|
||||
- [octave](https://github.com/McSinyx/vim-octave) (Syntax highlighting for oct and m files)
|
||||
- [odin](https://github.com/Tetralux/odin.vim) (Odin syntax highlighting for odin files)
|
||||
- [opencl](https://github.com/petRUShka/vim-opencl) (OpenCL syntax highlighting for cl and opencl files)
|
||||
- [perl](https://github.com/vim-perl/vim-perl) (Perl syntax highlighting for pl, al, cgi, fcgi, perl and 12 more files)
|
||||
- [pgsql](https://github.com/lifepillar/pgsql.vim) (PLpgSQL syntax highlighting for pgsql files)
|
||||
- [php](https://github.com/StanAngeloff/php.vim) (PHP syntax highlighting for php, aw, ctp, fcgi, inc and 7 more files)
|
||||
- [plantuml](https://github.com/aklt/plantuml-syntax) (PlantUML syntax highlighting for puml, iuml, plantuml, uml and pu files)
|
||||
- [pony](https://github.com/jakwings/vim-pony) (Pony syntax highlighting for pony files)
|
||||
- [powershell](https://github.com/PProvost/vim-ps1) (PowerShell syntax highlighting for ps1, psd1, psm1, pssc and ps1xml files)
|
||||
- [protobuf](https://github.com/uarun/vim-protobuf) (Protocol Buffer syntax highlighting for proto files)
|
||||
- [pug](https://github.com/digitaltoad/vim-pug) (Pug syntax highlighting for jade and pug files)
|
||||
- [puppet](https://github.com/rodjek/vim-puppet) (Puppet syntax highlighting for pp and epp files)
|
||||
- [purescript](https://github.com/purescript-contrib/purescript-vim) (PureScript syntax highlighting for purs files)
|
||||
- [python-compiler](https://github.com/aliev/vim-compiler-python)
|
||||
- [python-indent](https://github.com/Vimjas/vim-python-pep8-indent)
|
||||
- [python](https://github.com/vim-python/python-syntax)
|
||||
- [qmake](https://github.com/artoj/qmake-syntax-vim)
|
||||
- [qml](https://github.com/peterhoeg/vim-qml)
|
||||
- [r-lang](https://github.com/vim-scripts/R.vim)
|
||||
- [racket](https://github.com/wlangstroth/vim-racket)
|
||||
- [ragel](https://github.com/jneen/ragel.vim)
|
||||
- [raku](https://github.com/Raku/vim-raku)
|
||||
- [raml](https://github.com/IN3D/vim-raml)
|
||||
- [razor](https://github.com/adamclerk/vim-razor)
|
||||
- [reason](https://github.com/reasonml-editor/vim-reason-plus)
|
||||
- [requirements](https://github.com/raimon49/requirements.txt.vim)
|
||||
- [python](https://github.com/vim-python/python-syntax) (Python syntax highlighting for py, cgi, fcgi, gyp, gypi and 14 more files)
|
||||
- [qmake](https://github.com/artoj/qmake-syntax-vim) (QMake syntax highlighting for pro and pri files)
|
||||
- [qml](https://github.com/peterhoeg/vim-qml) (QML syntax highlighting for qml and qbs files)
|
||||
- [r-lang](https://github.com/vim-scripts/R.vim) (R syntax highlighting for r, rsx, s, S and rd files)
|
||||
- [racket](https://github.com/wlangstroth/vim-racket) (Racket syntax highlighting for rkt, rktd, rktl and scrbl files)
|
||||
- [ragel](https://github.com/jneen/ragel.vim) (Ragel syntax highlighting for rl files)
|
||||
- [raku](https://github.com/Raku/vim-raku) (Raku syntax highlighting for 6pl, 6pm, nqp, p6, p6l and 12 more files)
|
||||
- [raml](https://github.com/IN3D/vim-raml) (RAML syntax highlighting for raml files)
|
||||
- [razor](https://github.com/adamclerk/vim-razor) (HTML+Razor syntax highlighting for cshtml and razor files)
|
||||
- [reason](https://github.com/reasonml-editor/vim-reason-plus) (Reason syntax highlighting for re and rei files)
|
||||
- [requirements](https://github.com/raimon49/requirements.txt.vim) (Syntax highlighting for pip files)
|
||||
- [rspec](https://github.com/keith/rspec.vim)
|
||||
- [rst](https://github.com/marshallward/vim-restructuredtext)
|
||||
- [ruby](https://github.com/vim-ruby/vim-ruby)
|
||||
- [rust](https://github.com/rust-lang/rust.vim)
|
||||
- [sbt](https://github.com/derekwyatt/vim-sbt)
|
||||
- [scala](https://github.com/derekwyatt/vim-scala)
|
||||
- [scss](https://github.com/cakebaker/scss-syntax.vim)
|
||||
- [sh](https://github.com/arzg/vim-sh)
|
||||
- [slim](https://github.com/slim-template/vim-slim)
|
||||
- [slime](https://github.com/slime-lang/vim-slime-syntax)
|
||||
- [smt2](https://github.com/bohlender/vim-smt2)
|
||||
- [solidity](https://github.com/tomlion/vim-solidity)
|
||||
- [stylus](https://github.com/wavded/vim-stylus)
|
||||
- [svelte](https://github.com/evanleck/vim-svelte/tree/main)
|
||||
- [rst](https://github.com/marshallward/vim-restructuredtext) (reStructuredText syntax highlighting for rst, rest, rest.txt and rst.txt files)
|
||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (Ruby and HTML+ERB syntax highlighting for rb, builder, eye, fcgi, gemspec and 25 more files)
|
||||
- [rust](https://github.com/rust-lang/rust.vim) (Rust syntax highlighting for rs and rs.in files)
|
||||
- [scala](https://github.com/derekwyatt/vim-scala) (Scala syntax highlighting for scala, kojo and sc files)
|
||||
- [scss](https://github.com/cakebaker/scss-syntax.vim) (SCSS syntax highlighting for scss files)
|
||||
- [sh](https://github.com/arzg/vim-sh) (Shell syntax highlighting for sh, bash, bats, cgi, command and 7 more files)
|
||||
- [slim](https://github.com/slim-template/vim-slim) (Slim syntax highlighting for slim files)
|
||||
- [slime](https://github.com/slime-lang/vim-slime-syntax) (Syntax highlighting for slime files)
|
||||
- [smt2](https://github.com/bohlender/vim-smt2) (SMT syntax highlighting for smt2 and smt files)
|
||||
- [solidity](https://github.com/tomlion/vim-solidity) (Solidity syntax highlighting for sol files)
|
||||
- [stylus](https://github.com/wavded/vim-stylus) (Stylus syntax highlighting for styl and stylus files)
|
||||
- [svelte](https://github.com/evanleck/vim-svelte/tree/main) (Svelte syntax highlighting for svelte files)
|
||||
- [svg-indent](https://github.com/jasonshell/vim-svg-indent)
|
||||
- [svg](https://github.com/vim-scripts/svg.vim)
|
||||
- [swift](https://github.com/keith/swift.vim)
|
||||
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc)
|
||||
- [systemd](https://github.com/wgwoods/vim-systemd-syntax)
|
||||
- [terraform](https://github.com/hashivim/vim-terraform)
|
||||
- [textile](https://github.com/timcharper/textile.vim)
|
||||
- [thrift](https://github.com/solarnz/thrift.vim)
|
||||
- [svg](https://github.com/vim-scripts/svg.vim) (SVG syntax highlighting for svg files)
|
||||
- [swift](https://github.com/keith/swift.vim) (Swift syntax highlighting for swift files)
|
||||
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (Syntax highlighting for sxhkdrc files)
|
||||
- [systemd](https://github.com/wgwoods/vim-systemd-syntax) (Syntax highlighting for automount, dnssd, link, mount, netdev and 9 more files)
|
||||
- [textile](https://github.com/timcharper/textile.vim) (Textile syntax highlighting for textile files)
|
||||
- [thrift](https://github.com/solarnz/thrift.vim) (Thrift syntax highlighting for thrift files)
|
||||
- [tmux](https://github.com/ericpruitt/tmux.vim/tree/master/vim)
|
||||
- [toml](https://github.com/cespare/vim-toml)
|
||||
- [tptp](https://github.com/c-cube/vim-tptp)
|
||||
- [trasys](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [twig](https://github.com/lumiliet/vim-twig)
|
||||
- [typescript](https://github.com/HerringtonDarkholme/yats.vim)
|
||||
- [unison](https://github.com/unisonweb/unison/tree/trunk/editor-support/vim)
|
||||
- [v](https://github.com/ollykel/v-vim)
|
||||
- [vala](https://github.com/arrufat/vala.vim)
|
||||
- [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/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)
|
||||
- [toml](https://github.com/cespare/vim-toml) (TOML syntax highlighting for toml files)
|
||||
- [tptp](https://github.com/c-cube/vim-tptp) (Syntax highlighting for p, tptp and ax files)
|
||||
- [twig](https://github.com/lumiliet/vim-twig) (Twig syntax highlighting for twig and xml.twig files)
|
||||
- [typescript](https://github.com/HerringtonDarkholme/yats.vim) (TypeScript and TSX syntax highlighting for ts and tsx files)
|
||||
- [unison](https://github.com/unisonweb/unison/tree/trunk/editor-support/vim) (Syntax highlighting for u and uu files)
|
||||
- [v](https://github.com/ollykel/v-vim) (V syntax highlighting for v, vv and vsh files)
|
||||
- [vala](https://github.com/arrufat/vala.vim) (Vala syntax highlighting for vala, vapi and valadoc files)
|
||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (Visual Basic .NET syntax highlighting for vb and vbhtml files)
|
||||
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (VCL syntax highlighting for vcl files)
|
||||
- [velocity](https://github.com/lepture/vim-velocity) (Syntax highlighting for vm files)
|
||||
- [vue](https://github.com/posva/vim-vue) (Vue syntax highlighting for vue and wpy files)
|
||||
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (Syntax highlighting for xdc files)
|
||||
- [xml](https://github.com/amadeus/vim-xml) (XML syntax highlighting for xml, adml, admx, ant, axml and 93 more files)
|
||||
- [xsl](https://github.com/vim-scripts/XSLT-syntax) (XSLT syntax highlighting for xslt and xsl files)
|
||||
- [yard](https://github.com/noprompt/vim-yardoc)
|
||||
- [zephir](https://github.com/xwsoul/vim-zephir) (Zephir syntax highlighting for zep files)
|
||||
- [zig](https://github.com/ziglang/zig.vim) (Zig syntax highlighting for zir, zig and zir files)
|
||||
- [zinit](https://github.com/zinit-zsh/zplugin-vim-syntax)
|
||||
<!--/Language Packs-->
|
||||
|
||||
@@ -247,17 +207,27 @@ You can either wait for new patch release with updates or run `make` by yourself
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Please make sure you have `syntax on` in your `.vimrc` (or use something like [sheerun/vimrc](https://github.com/sheerun/vimrc))
|
||||
Please make sure you have `set nocompatible` in your `.vimrc` (or use something like [sheerun/vimrc](https://github.com/sheerun/vimrc))
|
||||
|
||||
Individual language packs can be disabled by setting `g:polyglot_disabled` as follows:
|
||||
|
||||
**Please declare this variable before polyglot is loaded (at the top of .vimrc)**
|
||||
|
||||
```vim
|
||||
let g:polyglot_disabled = ['css']
|
||||
let g:polyglot_disabled = ['markdown']
|
||||
```
|
||||
|
||||
*Please declare this variable before polyglot is loaded (at the top of .vimrc)*
|
||||
The list of available languages to disable is shown above.
|
||||
|
||||
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 below. Disabling Vim Polyglot filetype plugin won't disable native Vim filetype plugin.
|
||||
|
||||
```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.
|
||||
|
||||
## Autoindent
|
||||
|
||||
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:
|
||||
|
||||
@@ -265,6 +235,15 @@ Vim Polyglot tries to automatically detect indentation settings (just like vim-s
|
||||
let g:polyglot_disabled = ['autoindent']
|
||||
```
|
||||
|
||||
## Default settings
|
||||
|
||||
Vim Polyglot includes vim-sensible plugin, which is usually necessary for editing any language. This can be disabled with:
|
||||
|
||||
|
||||
```vim
|
||||
let g:polyglot_disabled = ['sensible']
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Language packs are periodically updated using automated `scripts/build` script.
|
||||
|
||||
13
after/ftplugin/html.vim
Normal file
13
after/ftplugin/html.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Maintainer: othree <othree@gmail.com>
|
||||
" URL: http://github.com/othree/html5.vim
|
||||
" Last Change: 2014-05-02
|
||||
" License: MIT
|
||||
" Changes: Add - to keyword
|
||||
|
||||
" setlocal iskeyword+=-
|
||||
|
||||
setlocal commentstring=<!--%s-->
|
||||
|
||||
endif
|
||||
1064
after/indent/html.vim
Normal file
1064
after/indent/html.vim
Normal file
File diff suppressed because it is too large
Load Diff
9
after/indent/javascript-1.vim
Normal file
9
after/indent/javascript-1.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
|
||||
46
after/indent/javascript-2.vim
Normal file
46
after/indent/javascript-2.vim
Normal file
@@ -0,0 +1,46 @@
|
||||
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>
|
||||
|
||||
if exists('*GetJavascriptGraphQLIndent') && !empty(&indentexpr)
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! indent/graphql.vim
|
||||
|
||||
" Set the indentexpr with our own version that will call GetGraphQLIndent when
|
||||
" we're inside of a GraphQL string and otherwise defer to the base function.
|
||||
let b:indentexpr_base = &indentexpr
|
||||
setlocal indentexpr=GetJavascriptGraphQLIndent()
|
||||
|
||||
function GetJavascriptGraphQLIndent()
|
||||
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val, 'name')")
|
||||
if get(l:stack, 0) ==# 'graphqlTemplateString'
|
||||
return GetGraphQLIndent()
|
||||
endif
|
||||
|
||||
return eval(b:indentexpr_base)
|
||||
endfunction
|
||||
|
||||
endif
|
||||
@@ -1,9 +1,3 @@
|
||||
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
|
||||
" Polyglot metafile
|
||||
source <sfile>:h/javascript-1.vim
|
||||
source <sfile>:h/javascript-2.vim
|
||||
|
||||
46
after/indent/typescript.vim
Normal file
46
after/indent/typescript.vim
Normal file
@@ -0,0 +1,46 @@
|
||||
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>
|
||||
|
||||
if exists('*GetTypescriptGraphQLIndent') && !empty(&indentexpr)
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! indent/graphql.vim
|
||||
|
||||
" Set the indentexpr with our own version that will call GetGraphQLIndent when
|
||||
" we're inside of a GraphQL string and otherwise defer to the base function.
|
||||
let b:indentexpr_base = &indentexpr
|
||||
setlocal indentexpr=GetTypescriptGraphQLIndent()
|
||||
|
||||
function GetTypescriptGraphQLIndent()
|
||||
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val, 'name')")
|
||||
if get(l:stack, 0) ==# 'graphqlTemplateString'
|
||||
return GetGraphQLIndent()
|
||||
endif
|
||||
|
||||
return eval(b:indentexpr_base)
|
||||
endfunction
|
||||
|
||||
endif
|
||||
68
after/syntax/c.vim
Normal file
68
after/syntax/c.vim
Normal file
@@ -0,0 +1,68 @@
|
||||
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: Oct 17, 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 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
|
||||
|
||||
|
||||
" Highlight struct/class member variables
|
||||
if get(g:, 'cpp_member_highlight', 0)
|
||||
syn match cMemberAccess "\.\|->" nextgroup=cStructMember,cppTemplateKeyword
|
||||
syn match cStructMember "\<\h\w*\>\%((\|<\)\@!" contained
|
||||
syn cluster cParenGroup add=cStructMember
|
||||
syn cluster cPreProcGroup add=cStructMember
|
||||
hi def link cStructMember Identifier
|
||||
|
||||
if &filetype ==# 'cpp'
|
||||
syn keyword cppTemplateKeyword template
|
||||
hi def link cppTemplateKeyword cppStructure
|
||||
endif
|
||||
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
|
||||
|
||||
endif
|
||||
212
after/syntax/cpp.vim
Normal file
212
after/syntax/cpp.vim
Normal file
@@ -0,0 +1,212 @@
|
||||
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 <https://github.com/bfrg>
|
||||
" Website: https://github.com/bfrg/vim-cpp-modern
|
||||
" Last Change: Oct 8, 2020
|
||||
"
|
||||
" This syntax file is based on:
|
||||
" https://github.com/octol/vim-cpp-enhanced-highlight
|
||||
" ==============================================================================
|
||||
|
||||
" C++ attributes {{{1
|
||||
if get(g:, 'cpp_attributes_highlight', 0)
|
||||
syntax region cppAttribute matchgroup=cppAttributeBrackets start='\[\[' end=']]' contains=cString
|
||||
hi def link cppAttribute Macro
|
||||
hi def link cppAttributeBrackets Identifier
|
||||
endif
|
||||
|
||||
|
||||
" Standard library {{{1
|
||||
syntax keyword cppSTLdefine
|
||||
\ MB_CUR_MAX MB_LEN_MAX WCHAR_MAX WCHAR_MIN WEOF __STDC_UTF_16__ __STDC_UTF_32__
|
||||
|
||||
syntax keyword cppSTLnamespace
|
||||
\ std experimental rel_ops
|
||||
|
||||
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 npos radix round_style tinyness_before traps
|
||||
|
||||
syntax keyword cppSTLvariable
|
||||
\ cerr cin clog cout wcerr wcin wclog wcout nothrow
|
||||
|
||||
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 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 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 event_callback filebuf first_type float_denorm_style float_round_style 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 size_type slice_array stack state_type stream streambuf streamoff streampos streamsize string stringbuf stringstream strstream strstreambuf temporary_buffer test_type tm traits_type type_info u16string u32string unary_compose unary_negate valarray value_compare value_type vector wfilebuf wfstream wifstream wios wiostream wistream wistringstream wofstream wostream wostringstream wstreambuf wstreampos wstring wstringbuf wstringstream 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 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 bidirectional_iterator_tag forward_iterator_tag input_iterator_tag output_iterator_tag random_access_iterator_tag
|
||||
|
||||
syntax keyword cppSTLtypedef
|
||||
\ time_t sig_atomic_t wctrans_t wctype_t wint_t
|
||||
|
||||
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
|
||||
|
||||
" Function templates that are called with template parameters
|
||||
syntax keyword cppSTLfunction
|
||||
\ use_facet has_facet get
|
||||
|
||||
" Some of these keywords can be highlighted as cppSTLios or 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
|
||||
|
||||
|
||||
" C++11 extensions {{{1
|
||||
if !exists('cpp_no_cpp11')
|
||||
syntax keyword cppStatement nullptr
|
||||
syntax keyword cppType char16_t char32_t
|
||||
|
||||
syntax keyword cppSTLnamespace chrono this_thread
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ array atomic atomic_bool atomic_char atomic_flag atomic_int atomic_llong atomic_long atomic_schar atomic_short atomic_uchar atomic_uint atomic_ullong atomic_ulong atomic_ushort duration duration_values high_resolution_clock hours microseconds milliseconds minutes nanoseconds seconds steady_clock system_clock time_point treat_as_floating_point condition_variable exception_ptr nested_exception hash is_bind_expression is_placeholder reference_wrapper forward_list future packaged_task promise shared_future initializer_list codecvt_mode codecvt_utf16 codecvt_utf8 codecvt_utf8_utf16 wbuffer_convert wstring_convert 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 condition_variable_any lock_guard mutex once_flag recursive_mutex recursive_timed_mutex timed_mutex unique_lock 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 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 basic_regex match_results regex_traits sub_match syntax_option_type match_flag_type error_type scoped_allocator_adaptor outer_allocator_type inner_allocator_type error_code error_condition error_category is_error_code_enum is_error_condition_enum thread tuple tuple_size tuple_element type_index 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 hasher key_equal unordered_map unordered_multimap unordered_multiset unordered_set function
|
||||
|
||||
syntax keyword cppSTLtypedef
|
||||
\ atomic_char16_t atomic_char32_t 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_ptrdiff_t atomic_size_t 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_wchar_t nullptr_t max_align_t allocator_arg_t adopt_lock_t defer_lock_t try_to_lock_t piecewise_construct_t
|
||||
|
||||
syntax keyword cppSTLconstant max_digits10
|
||||
|
||||
syntax keyword cppSTLvariable
|
||||
\ _1 _2 _3 _4 _5 _6 _7 _8 _9 defer_lock try_to_lock adopt_lock allocator_arg
|
||||
|
||||
syntax keyword cppSTLdefine
|
||||
\ math_errhandling FLT_EVAL_METHOD FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO HUGE_VALF HUGE_VALL INFINITY MATH_ERREXCEPT MATH_ERRNO NAN
|
||||
|
||||
syntax keyword cppSTLenum
|
||||
\ memory_order future_status future_errc launch io_errc cv_status errc
|
||||
|
||||
syntax keyword cppSTLfunction
|
||||
\ duration_cast time_point_cast mem_fn const_pointer_cast dynamic_pointer_cast static_pointer_cast allocate_shared make_shared isblank generate_canonical forward_as_tuple make_tuple tie tuple_cat declval forward move move_if_noexcept
|
||||
|
||||
syntax keyword cppSTLexception
|
||||
\ bad_function_call future_error regex_error system_error bad_weak_ptr bad_array_new_length
|
||||
|
||||
" syntax keyword cppSTLiterator contained
|
||||
syntax keyword cppSTLiterator
|
||||
\ move_iterator regex_iterator regex_token_iterator const_local_iterator local_iterator
|
||||
|
||||
" Note: ignore is also a function
|
||||
syntax match cppSTLvariable "\<ignore\>(\@!"
|
||||
endif
|
||||
|
||||
|
||||
" C++14 extensions {{{1
|
||||
if !exists('cpp_no_cpp14')
|
||||
syntax keyword cppSTLnamespace literals chrono_literals string_literals
|
||||
|
||||
syntax keyword cppSTLfunction make_unique
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ index_sequence index_sequence_for integer_sequence make_index_sequence make_integer_sequence shared_lock shared_timed_mutex is_null_pointer
|
||||
|
||||
syntax keyword cppSTLtypedef
|
||||
\ tuple_element_t 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 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')
|
||||
syntax keyword cppSTLnamespace filesystem execution
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ any is_execution_policy parallel_policy parallel_unsequenced_policy sequenced_policy directory_entry directory_iterator file_status file_time_type path recursive_directory_iterator space_info default_order default_searcher boyer_moore_searcher boyer_moore_horspool_searcher memory_resource monotonic_buffer_resource polymorphic_allocator pool_options synchronized_pool_resource unsynchronized_pool_resource scoped_lock optional shared_mutex basic_string_view string_view u16string_view u32string_view wstring_view bool_constant conjunction disjunction has_unique_object_representations invoke_result 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 node_type insert_return_type in_place_tag monostate variant variant_size variant_alternative
|
||||
|
||||
syntax keyword cppSTLtypedef
|
||||
\ invoke_result_t default_order_t nullopt_t void_t in_place_t in_place_type_t in_place_index_t variant_alternative_t
|
||||
|
||||
syntax keyword cppSTLexception
|
||||
\ bad_any_cast filesystem_error bad_optional_access bad_variant_access
|
||||
|
||||
syntax keyword cppSTLconstant
|
||||
\ is_always_lock_free seq par par_unseq 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 hardware_destructive_interference_size hardware_constructive_interference_size tuple_size_v nullopt alignment_of_v rank_v extent_v variant_npos variant_size_v
|
||||
|
||||
syntax keyword cppSTLbool
|
||||
\ treat_as_floating_point_v is_execution_policy_v is_bind_expression_v is_placeholder_v is_error_code_enum_v is_error_condition_enum_v uses_allocator_v 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 cppSTLfunction
|
||||
\ reinterpret_pointer_cast make_from_tuple make_optional any_cast
|
||||
|
||||
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\>(\@!"
|
||||
|
||||
" Note: these can be both member objects and methods
|
||||
syntax match cppSTLvariable "\<\%(capacity\|free\|available\)\>(\@!"
|
||||
|
||||
" 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
|
||||
endif
|
||||
|
||||
|
||||
" C++20 extensions {{{1
|
||||
if !exists('cpp_no_cpp20')
|
||||
syntax keyword cppSTLnamespace ranges views
|
||||
syntax keyword cppSTLconstant dynamic_extent
|
||||
syntax keyword cppSTLvariable default_sentinel unreachable_sentinel
|
||||
|
||||
syntax keyword cppSTLtype
|
||||
\ atomic_ref endian weak_ordering strong_ordering partial_ordering weak_equality strong_equality common_comparison_category contract_violation coroutine_traits coroutine_handle noop_coroutine_handle noop_coroutine_promise suspend_never suspend_always remove_cvref is_bounded_array is_layout_compatible is_unbounded_array is_nothrow_convertible has_strong_structural_equality is_pointer_interconvertible_base_of unwrap_reference unwrap_ref_decay basic_common_reference common_reference dangling ref_view filter_view transform_view iota_view join_view empty_view single_view split_view common_view reverse_view view_interface span basic_syncbuf basic_osyncstream syncbuf wsyncbuf osyncstream wosyncstream jthread latch barrier stop_token stop_source stop_callback counting_semaphore binary_semaphore source_location compare_three_way_result contiguous_iterator_tag incrementable_traits indirectly_readable_traits move_sentinel common_iterator counted_iterator projected type_identity
|
||||
|
||||
syntax keyword cppSTLtypedef
|
||||
\ common_comparison_category_t remove_cvref_t unwrap_reference_t unwrap_ref_decay_t common_reference_t iterator_t sentinel_t safe_iterator_t safe_subrange_t compare_three_way_result_t iter_value_t iter_reference_t iter_difference_t iter_rvalue_reference_t iter_common_reference_t default_sentinel_t unreachable_sentinel_t indirect_result_t type_identity_t
|
||||
|
||||
syntax keyword cppSTLfunction
|
||||
\ make_unique_default_init make_shared_default_init allocate_shared_default_init uses_allocator_construction_args make_obj_using_allocator is_corresponding_member subspan in_range is_pointer_interconvertible_with_class
|
||||
|
||||
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 disable_sized_sentinel_for disable_sized_range enable_borrowed_range enable_view
|
||||
|
||||
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 range sized_range view input_range output_range forward_range bidirectional_range random_access_range contiguous_range common_range viewable_range three_way_comparable three_way_comparable_with indirectly_readable indirectly_writable weakly_incrementable incrementable input_or_output_iterator sentinel_for sized_sentinel_for input_iterator output_iterator forward_iterator bidirectional_iterator random_access_iterator contiguous_iterator indirectly_unary_invocable indirectly_regular_unary_invocable indirect_unary_predicate indirect_binary_predicate indirect_equivalence_relation indirect_strict_weak_order indirectly_movable indirectly_movable_storable indirectly_copyable indirectly_copyable_storable indirectly_swappable indirectly_comparable permutable mergeable sortable
|
||||
endif
|
||||
|
||||
|
||||
" Boost {{{1
|
||||
if !exists('cpp_no_boost')
|
||||
syntax keyword cppSTLnamespace boost
|
||||
syntax keyword cppSTLfunction lexical_cast
|
||||
endif
|
||||
" }}}
|
||||
|
||||
|
||||
" Default highlighting
|
||||
hi def link cppSTLbool Boolean
|
||||
hi def link cppStatement Statement
|
||||
hi def link cppSTLfunction Function
|
||||
hi def link cppSTLdefine Constant
|
||||
hi def link cppSTLconstant Constant
|
||||
hi def link cppSTLnamespace Constant
|
||||
hi def link cppSTLexception Type
|
||||
hi def link cppSTLiterator Type
|
||||
hi def link cppSTLtype Type
|
||||
hi def link cppSTLtypedef Typedef
|
||||
hi def link cppSTLenum Typedef
|
||||
hi def link cppSTLios Function
|
||||
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
|
||||
endif
|
||||
|
||||
endif
|
||||
@@ -2,11 +2,195 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: HTML (version 5.1)
|
||||
" Last Change: 2017 Feb 15
|
||||
" 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
|
||||
|
||||
" Comment
|
||||
" https://github.com/w3c/html/issues/694
|
||||
|
||||
@@ -36,7 +36,7 @@ let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
|
||||
|
||||
if graphql#has_syntax_group('jsTemplateExpression')
|
||||
" pangloss/vim-javascript
|
||||
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
|
||||
exec 'syntax region graphqlTemplateString matchgroup=jsTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
|
||||
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
||||
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
|
||||
|
||||
@@ -48,7 +48,7 @@ if graphql#has_syntax_group('jsTemplateExpression')
|
||||
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
||||
elseif graphql#has_syntax_group('javaScriptStringT')
|
||||
" runtime/syntax/javascript.vim
|
||||
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend'
|
||||
exec 'syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend'
|
||||
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
||||
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=@javaScriptEmbededExpr containedin=graphqlFold keepend
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ syn match yardNote "@note" contained
|
||||
syn match yardOption "@option" contained
|
||||
syn match yardOverload "@overload" contained
|
||||
syn match yardParam "@param" contained
|
||||
syn match yardParamName /@param \h\+/hs=s+7 contained contains=yardParam
|
||||
syn match yardPrivate "@private" contained
|
||||
syn match yardRaise "@raise" contained
|
||||
syn match yardReturn "@return" contained
|
||||
@@ -32,7 +33,7 @@ syn match yardVersion "@version" contained
|
||||
syn match yardYield "@yield" contained
|
||||
syn match yardYieldParam "@yieldparam" contained
|
||||
syn match yardYieldReturn "@yieldreturn" contained
|
||||
syn cluster yardTags contains=yardGenericTag,yardAbstract,yardApi,yardAttr,yardAttrReader,yardAttrWriter,yardAuthor,yardDeprecated,yardExample,yardNote,yardOption,yardOverload,yardParam,yardPrivate,yardRaise,yardReturn,yardSee,yardSince,yardTodo,yardVersion,yardYield,yardYieldParam,yardYieldReturn
|
||||
syn cluster yardTags contains=yardGenericTag,yardAbstract,yardApi,yardAttr,yardAttrReader,yardAttrWriter,yardAuthor,yardDeprecated,yardExample,yardNote,yardOption,yardOverload,yardParam,yardParamName,yardPrivate,yardRaise,yardReturn,yardSee,yardSince,yardTodo,yardVersion,yardYield,yardYieldParam,yardYieldReturn
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Directives
|
||||
@@ -101,9 +102,9 @@ hi def link yardSee yardGenericTag
|
||||
hi def link yardSince yardGenericTag
|
||||
hi def link yardTodo yardGenericTag
|
||||
hi def link yardVersion yardGenericTag
|
||||
hi def link yield yardGenericTag
|
||||
hi def link yieldparam yardGenericTag
|
||||
hi def link yieldreturn yardGenericTag
|
||||
hi def link yardYield yardGenericTag
|
||||
hi def link yardYieldParam yardGenericTag
|
||||
hi def link yardYieldReturn yardGenericTag
|
||||
" Directives
|
||||
hi def link yardGenericDirective rubyKeyword
|
||||
hi def link yardAttribute yardGenericDirective
|
||||
|
||||
@@ -34,7 +34,7 @@ endif
|
||||
|
||||
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
|
||||
|
||||
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
|
||||
exec 'syntax region graphqlTemplateString matchgroup=typescriptTemplate start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
|
||||
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
||||
|
||||
" Support expression interpolation ((${...})) inside template strings.
|
||||
|
||||
@@ -75,9 +75,13 @@ fu! csv#Init(start, end, ...) "{{{3
|
||||
endif
|
||||
|
||||
if empty(b:delimiter) && !exists("b:csv_fixed_width")
|
||||
call csv#Warn("No delimiter found. See :h csv-delimiter to set it manually!")
|
||||
" Use a sane default as delimiter:
|
||||
let b:delimiter = ','
|
||||
if !exists("g:csv_default_delim")
|
||||
call csv#Warn("No delimiter found. See :h csv-delimiter to set it manually!")
|
||||
" Use a sane default as delimiter:
|
||||
let b:delimiter = ','
|
||||
else
|
||||
let b:delimiter = g:csv_default_delim
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:del='\%(' . b:delimiter . '\|$\)'
|
||||
|
||||
@@ -276,12 +276,14 @@ function! elixir#indent#handle_inside_block(context)
|
||||
" hack - handle do: better
|
||||
let block_info = searchpairpos(start_pattern, '', end_pattern, 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip() || getline(line('.')) =~ 'do:'", max([0, a:context.lnum - g:elixir_indent_max_lookbehind]))
|
||||
let block_start_lnum = block_info[0]
|
||||
call s:debug("block_start_lnum=" . block_start_lnum)
|
||||
let block_start_col = block_info[1]
|
||||
if block_start_lnum != 0 || block_start_col != 0
|
||||
let block_text = getline(block_start_lnum)
|
||||
let block_start_char = block_text[block_start_col - 1]
|
||||
call s:debug("block_start_char=" . block_start_char)
|
||||
|
||||
let never_match = '\(a\)\@=b'
|
||||
let never_match = ''
|
||||
let config = {
|
||||
\'f': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match},
|
||||
\'c': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match},
|
||||
@@ -293,17 +295,25 @@ function! elixir#indent#handle_inside_block(context)
|
||||
\'(': {'aligned_clauses': ')', 'pattern_match_clauses': never_match}
|
||||
\}
|
||||
|
||||
" if `with` clause...
|
||||
if block_start_char == 'w'
|
||||
call s:debug("testing s:handle_with")
|
||||
return s:handle_with(block_start_lnum, block_start_col, a:context)
|
||||
else
|
||||
let block_config = config[block_start_char]
|
||||
" if aligned clause (closing tag/`else` clause/etc...) then indent this
|
||||
" at the same level as the block open tag (e.g. `if`/`case`/etc...)
|
||||
if s:starts_with(a:context, block_config.aligned_clauses)
|
||||
call s:debug("clause")
|
||||
return indent(block_start_lnum)
|
||||
else
|
||||
let clause_lnum = searchpair(block_config.pattern_match_clauses, '', '*', 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()", block_start_lnum)
|
||||
let relative_lnum = max([clause_lnum, block_start_lnum])
|
||||
if block_config.pattern_match_clauses == never_match
|
||||
let relative_lnum = block_start_lnum
|
||||
else
|
||||
let clause_lnum = searchpair(block_config.pattern_match_clauses, '', '*', 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()", block_start_lnum)
|
||||
call s:debug("clause_lum=" . clause_lnum)
|
||||
let relative_lnum = max([clause_lnum, block_start_lnum])
|
||||
end
|
||||
call s:debug("pattern matching relative to lnum " . relative_lnum)
|
||||
return s:do_handle_pattern_match_block(relative_lnum, a:context)
|
||||
endif
|
||||
|
||||
@@ -330,7 +330,7 @@ function! s:download(branch)
|
||||
let zip = s:script_root_dir . "fsac.zip"
|
||||
call system(
|
||||
\ 'curl -fLo ' . zip . ' --create-dirs ' .
|
||||
\ '"https://ci.appveyor.com/api/projects/fsautocomplete/fsautocomplete/artifacts/bin/pkgs/fsautocomplete.netcore.zip?branch=' . a:branch . '"'
|
||||
\ '"https://github.com/fsharp/FsAutoComplete/releases/latest/download/fsautocomplete.netcore.zip"'
|
||||
\ )
|
||||
if v:shell_error == 0
|
||||
call system('unzip -o -d ' . s:script_root_dir . "/fsac " . zip)
|
||||
|
||||
41
autoload/fzf_gitignore.vim
Normal file
41
autoload/fzf_gitignore.vim
Normal file
@@ -0,0 +1,41 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'gitignore') == -1
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
" Copyright (c) 2017-2020 Filip Szymański. All rights reserved.
|
||||
" Use of this source code is governed by an MIT license that can be
|
||||
" found in the LICENSE file.
|
||||
|
||||
function! s:template_sink(templates) abort
|
||||
try
|
||||
let l:lines = _fzf_gitignore_create(a:templates)
|
||||
catch /^Vim(\(let\|return\)):/
|
||||
return
|
||||
endtry
|
||||
|
||||
new
|
||||
setlocal filetype=gitignore
|
||||
|
||||
call setline(1, l:lines)
|
||||
|
||||
$-2,$delete _
|
||||
normal! gg
|
||||
endfunction
|
||||
|
||||
function! fzf_gitignore#run() abort
|
||||
try
|
||||
let l:opts = {
|
||||
\ 'source': _fzf_gitignore_get_all_templates(),
|
||||
\ 'sink*': function('s:template_sink'),
|
||||
\ 'options': '-m --prompt="Template> " --header="gitignore.io"'
|
||||
\ }
|
||||
catch /^Vim(\(let\|return\)):/
|
||||
return
|
||||
endtry
|
||||
|
||||
call fzf#run(fzf#wrap(l:opts))
|
||||
endfunction
|
||||
|
||||
" vim: ts=2 et sw=2
|
||||
|
||||
endif
|
||||
@@ -266,15 +266,25 @@ function! go#config#SetTemplateAutocreate(value) abort
|
||||
endfunction
|
||||
|
||||
function! go#config#MetalinterCommand() abort
|
||||
return get(g:, "go_metalinter_command", "golangci-lint")
|
||||
return get(g:, 'go_metalinter_command', 'golangci-lint')
|
||||
endfunction
|
||||
|
||||
function! go#config#MetalinterAutosaveEnabled() abort
|
||||
return get(g:, "go_metalinter_autosave_enabled", ["govet", "golint"])
|
||||
let l:default = []
|
||||
if get(g:, 'go_metalinter_command', 'golangci-lint') == 'golangci-lint'
|
||||
let l:default = ['govet', 'golint']
|
||||
endif
|
||||
|
||||
return get(g:, 'go_metalinter_autosave_enabled', l:default)
|
||||
endfunction
|
||||
|
||||
function! go#config#MetalinterEnabled() abort
|
||||
return get(g:, "go_metalinter_enabled", ["vet", "golint", "errcheck"])
|
||||
let l:default = []
|
||||
if get(g:, 'go_metalinter_command', 'golangci-lint') == 'golangci-lint'
|
||||
let l:default = ['vet', 'golint', 'errcheck']
|
||||
endif
|
||||
|
||||
return get(g:, 'go_metalinter_enabled', l:default)
|
||||
endfunction
|
||||
|
||||
function! go#config#GolintBin() abort
|
||||
@@ -514,7 +524,7 @@ function! go#config#ReferrersMode() abort
|
||||
endfunction
|
||||
|
||||
function! go#config#ImplementsMode() abort
|
||||
return get(g:, 'go_implements_mode', 'guru')
|
||||
return get(g:, 'go_implements_mode', 'gopls')
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsCompleteUnimported() abort
|
||||
@@ -564,14 +574,44 @@ function! go#config#GoplsEnabled() abort
|
||||
return get(g:, 'go_gopls_enabled', 1)
|
||||
endfunction
|
||||
|
||||
" TODO(bc): remove support for g:go_diagnostics_enabled;
|
||||
" g:go_diagnostics_level is the replacement.
|
||||
function! go#config#DiagnosticsEnabled() abort
|
||||
return get(g:, 'go_diagnostics_enabled', 0)
|
||||
endfunction
|
||||
|
||||
function! go#config#DiagnosticsLevel() abort
|
||||
let l:default = 0
|
||||
if has_key(g:, 'go_diagnostics_enabled') && g:go_diagnostics_enabled
|
||||
let l:default = 2
|
||||
endif
|
||||
|
||||
return get(g:, 'go_diagnostics_level', l:default)
|
||||
endfunction
|
||||
|
||||
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
|
||||
|
||||
function! go#config#DebugMappings() abort
|
||||
let l:default = {
|
||||
\ '(go-debug-continue)': {'key': '<F5>'},
|
||||
\ '(go-debug-print)': {'key': '<F6>'},
|
||||
\ '(go-debug-breakpoint)': {'key': '<F9>'},
|
||||
\ '(go-debug-next)': {'key': '<F10>'},
|
||||
\ '(go-debug-step)': {'key': '<F11>'},
|
||||
\ '(go-debug-halt)': {'key': '<F8>'},
|
||||
\ }
|
||||
|
||||
let l:user = deepcopy(get(g:, 'go_debug_mappings', {}))
|
||||
|
||||
return extend(l:user, l:default, 'keep')
|
||||
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
|
||||
|
||||
@@ -37,7 +37,7 @@ let s:NODOCPATTERN = '\C\VNo documentation found.'
|
||||
function! julia#doc#lookup(keyword, ...) abort
|
||||
let juliapath = get(a:000, 0, g:julia#doc#juliapath)
|
||||
let keyword = escape(a:keyword, '"\')
|
||||
let cmd = printf('%s -E "@doc %s"', juliapath, keyword)
|
||||
let cmd = printf('%s --compile=min --optimize=0 -E "@doc %s"', juliapath, keyword)
|
||||
return systemlist(cmd)
|
||||
endfunction
|
||||
|
||||
@@ -238,7 +238,7 @@ endfunction
|
||||
function! s:likely(str) abort
|
||||
" escape twice
|
||||
let str = escape(escape(a:str, '"\'), '"\')
|
||||
let cmd = printf('%s -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
|
||||
let cmd = printf('%s --compile=min --optimize=0 -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
|
||||
let output = systemlist(cmd)
|
||||
return split(matchstr(output[0], '\C^search: \zs.*'))
|
||||
endfunction
|
||||
|
||||
106
autoload/nim.vim
106
autoload/nim.vim
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
|
||||
let g:nim_log = []
|
||||
let s:plugin_path = escape(expand('<sfile>:p:h'), '\')
|
||||
|
||||
if !exists("g:nim_caas_enabled")
|
||||
if !exists('g:nim_caas_enabled')
|
||||
let g:nim_caas_enabled = 0
|
||||
endif
|
||||
|
||||
@@ -11,27 +11,25 @@ if !executable('nim')
|
||||
echoerr "the Nim compiler must be in your system's PATH"
|
||||
endif
|
||||
|
||||
if has("python3")
|
||||
exe 'py3file ' . fnameescape(s:plugin_path) . '/nim_vim.py'
|
||||
elseif has("python")
|
||||
exe 'pyfile ' . fnameescape(s:plugin_path) . '/nim_vim.py'
|
||||
if has('pythonx')
|
||||
exe 'pyxfile ' . fnameescape(s:plugin_path) . '/nim_vim.py'
|
||||
endif
|
||||
|
||||
fun! nim#init()
|
||||
let cmd = printf("nim --dump.format:json --verbosity:0 dump %s", s:CurrentNimFile())
|
||||
fun! nim#init() abort
|
||||
let cmd = printf('nim --dump.format:json --verbosity:0 dump %s', s:CurrentNimFile())
|
||||
let raw_dumpdata = system(cmd)
|
||||
if !v:shell_error && expand("%:e") == "nim"
|
||||
if !v:shell_error && expand('%:e') ==# 'nim'
|
||||
let false = 0 " Needed for eval of json
|
||||
let true = 1 " Needed for eval of json
|
||||
let dumpdata = eval(substitute(raw_dumpdata, "\n", "", "g"))
|
||||
let dumpdata = eval(substitute(raw_dumpdata, "\n", '', 'g'))
|
||||
|
||||
let b:nim_project_root = dumpdata['project_path']
|
||||
let b:nim_defined_symbols = dumpdata['defined_symbols']
|
||||
let b:nim_caas_enabled = g:nim_caas_enabled || index(dumpdata['defined_symbols'], 'forcecaas') != -1
|
||||
|
||||
for path in dumpdata['lib_paths']
|
||||
if finddir(path) == path
|
||||
let &l:path = path . "," . &l:path
|
||||
if finddir(path) ==# path
|
||||
let &l:path = path . ',' . &l:path
|
||||
endif
|
||||
endfor
|
||||
else
|
||||
@@ -39,7 +37,7 @@ fun! nim#init()
|
||||
endif
|
||||
endf
|
||||
|
||||
fun! s:UpdateNimLog()
|
||||
fun! s:UpdateNimLog() abort
|
||||
setlocal buftype=nofile
|
||||
setlocal bufhidden=hide
|
||||
setlocal noswapfile
|
||||
@@ -56,32 +54,32 @@ endf
|
||||
augroup NimVim
|
||||
au!
|
||||
au BufEnter log://nim call s:UpdateNimLog()
|
||||
if has("python3") || has("python")
|
||||
" au QuitPre * :py nimTerminateAll()
|
||||
au VimLeavePre * :py nimTerminateAll()
|
||||
if has('pythonx')
|
||||
" au QuitPre * :pyx nimTerminateAll()
|
||||
au VimLeavePre * :pyx nimTerminateAll()
|
||||
endif
|
||||
augroup END
|
||||
|
||||
command! NimLog :e log://nim
|
||||
|
||||
command! NimTerminateService
|
||||
\ :exe printf("py nimTerminateService('%s')", b:nim_project_root)
|
||||
\ :exe printf("pyx nimTerminateService('%s')", b:nim_project_root)
|
||||
|
||||
command! NimRestartService
|
||||
\ :exe printf("py nimRestartService('%s')", b:nim_project_root)
|
||||
\ :exe printf("pyx nimRestartService('%s')", b:nim_project_root)
|
||||
|
||||
fun! s:CurrentNimFile()
|
||||
fun! s:CurrentNimFile() abort
|
||||
let save_cur = getpos('.')
|
||||
call cursor(0, 0, 0)
|
||||
|
||||
let PATTERN = "\\v^\\#\\s*included from \\zs.*\\ze"
|
||||
let l = search(PATTERN, "n")
|
||||
let PATTERN = '\v^\#\s*included from \zs.*\ze'
|
||||
let l = search(PATTERN, 'n')
|
||||
|
||||
if l != 0
|
||||
let f = matchstr(getline(l), PATTERN)
|
||||
let l:to_check = expand('%:h') . "/" . f
|
||||
let l:to_check = expand('%:h') . '/' . f
|
||||
else
|
||||
let l:to_check = expand("%")
|
||||
let l:to_check = expand('%')
|
||||
endif
|
||||
|
||||
call setpos('.', save_cur)
|
||||
@@ -108,42 +106,42 @@ let g:nim_symbol_types = {
|
||||
\ 'skEnumField': 'v',
|
||||
\ }
|
||||
|
||||
fun! NimExec(op)
|
||||
let isDirty = getbufvar(bufnr('%'), "&modified")
|
||||
fun! NimExec(op) abort
|
||||
let isDirty = getbufvar(bufnr('%'), '&modified')
|
||||
if isDirty
|
||||
let tmp = tempname() . bufname("%") . "_dirty.nim"
|
||||
silent! exe ":w " . tmp
|
||||
let tmp = tempname() . bufname('%') . '_dirty.nim'
|
||||
silent! exe ':w ' . tmp
|
||||
|
||||
let cmd = printf("idetools %s --trackDirty:\"%s,%s,%d,%d\" \"%s\"",
|
||||
let cmd = printf('idetools %s --trackDirty:"%s,%s,%d,%d" "%s"',
|
||||
\ a:op, tmp, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile())
|
||||
else
|
||||
let cmd = printf("idetools %s --track:\"%s,%d,%d\" \"%s\"",
|
||||
let cmd = printf('idetools %s --track:"%s,%d,%d" "%s"',
|
||||
\ a:op, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile())
|
||||
endif
|
||||
|
||||
if b:nim_caas_enabled
|
||||
exe printf("py nimExecCmd('%s', '%s', False)", b:nim_project_root, cmd)
|
||||
let output = l:py_res
|
||||
exe printf("pyx nimExecCmd('%s', '%s', False)", b:nim_project_root, cmd)
|
||||
let output = get(l:, 'py_res', '')
|
||||
else
|
||||
let output = system("nim " . cmd)
|
||||
let output = system('nim ' . cmd)
|
||||
endif
|
||||
|
||||
call add(g:nim_log, "nim " . cmd . "\n" . output)
|
||||
call add(g:nim_log, 'nim ' . cmd . "\n" . output)
|
||||
return output
|
||||
endf
|
||||
|
||||
fun! NimExecAsync(op, Handler)
|
||||
fun! NimExecAsync(op, Handler) abort
|
||||
let result = NimExec(a:op)
|
||||
call a:Handler(result)
|
||||
endf
|
||||
|
||||
fun! NimComplete(findstart, base)
|
||||
if b:nim_caas_enabled == 0
|
||||
fun! NimComplete(findstart, base) abort
|
||||
if b:nim_caas_enabled ==# 0
|
||||
return -1
|
||||
endif
|
||||
|
||||
if a:findstart
|
||||
if synIDattr(synIDtrans(synID(line("."),col("."),1)), "name") == 'Comment'
|
||||
if synIDattr(synIDtrans(synID(line('.'),col('.'),1)), 'name') ==# 'Comment'
|
||||
return -1
|
||||
endif
|
||||
let line = getline('.')
|
||||
@@ -154,10 +152,10 @@ fun! NimComplete(findstart, base)
|
||||
return start
|
||||
else
|
||||
let result = []
|
||||
let sugOut = NimExec("--suggest")
|
||||
let sugOut = NimExec('--suggest')
|
||||
for line in split(sugOut, '\n')
|
||||
let lineData = split(line, '\t')
|
||||
if len(lineData) > 0 && lineData[0] == "sug"
|
||||
if len(lineData) > 0 && lineData[0] ==# 'sug'
|
||||
let word = split(lineData[2], '\.')[-1]
|
||||
if a:base ==? '' || word =~# '^' . a:base
|
||||
let kind = get(g:nim_symbol_types, lineData[1], '')
|
||||
@@ -170,7 +168,7 @@ fun! NimComplete(findstart, base)
|
||||
endif
|
||||
endf
|
||||
|
||||
if !exists("g:neocomplcache_omni_patterns")
|
||||
if !exists('g:neocomplcache_omni_patterns')
|
||||
let g:neocomplcache_omni_patterns = {}
|
||||
endif
|
||||
let g:neocomplcache_omni_patterns['nim'] = '[^. *\t]\.\w*'
|
||||
@@ -182,7 +180,7 @@ let g:neocomplete#sources#omni#input_patterns['nim'] = '[^. *\t]\.\w*'
|
||||
|
||||
let g:nim_completion_callbacks = {}
|
||||
|
||||
fun! NimAsyncCmdComplete(cmd, output)
|
||||
fun! NimAsyncCmdComplete(cmd, output) abort
|
||||
call add(g:nim_log, a:output)
|
||||
echom g:nim_completion_callbacks
|
||||
if has_key(g:nim_completion_callbacks, a:cmd)
|
||||
@@ -190,52 +188,52 @@ fun! NimAsyncCmdComplete(cmd, output)
|
||||
call Callback(a:output)
|
||||
" remove(g:nim_completion_callbacks, a:cmd)
|
||||
else
|
||||
echom "ERROR, Unknown Command: " . a:cmd
|
||||
echom 'ERROR, Unknown Command: ' . a:cmd
|
||||
endif
|
||||
return 1
|
||||
endf
|
||||
|
||||
fun! GotoDefinition_nim_ready(def_output)
|
||||
fun! GotoDefinition_nim_ready(def_output) abort
|
||||
if v:shell_error
|
||||
echo "nim was unable to locate the definition. exit code: " . v:shell_error
|
||||
echo 'nim was unable to locate the definition. exit code: ' . v:shell_error
|
||||
" echoerr a:def_output
|
||||
return 0
|
||||
endif
|
||||
|
||||
let rawDef = matchstr(a:def_output, 'def\t\([^\n]*\)')
|
||||
if rawDef == ""
|
||||
echo "the current cursor position does not match any definitions"
|
||||
if rawDef == ''
|
||||
echo 'the current cursor position does not match any definitions'
|
||||
return 0
|
||||
endif
|
||||
|
||||
let defBits = split(rawDef, '\t')
|
||||
let file = defBits[4]
|
||||
let line = defBits[5]
|
||||
exe printf("e +%d %s", line, file)
|
||||
exe printf('e +%d %s', line, file)
|
||||
return 1
|
||||
endf
|
||||
|
||||
fun! GotoDefinition_nim()
|
||||
call NimExecAsync("--def", function("GotoDefinition_nim_ready"))
|
||||
fun! GotoDefinition_nim() abort
|
||||
call NimExecAsync('--def', function('GotoDefinition_nim_ready'))
|
||||
endf
|
||||
|
||||
fun! FindReferences_nim()
|
||||
setloclist()
|
||||
fun! FindReferences_nim() abort
|
||||
"setloclist()
|
||||
endf
|
||||
|
||||
" Syntastic syntax checking
|
||||
fun! SyntaxCheckers_nim_nim_GetLocList()
|
||||
fun! SyntaxCheckers_nim_nim_GetLocList() abort
|
||||
let makeprg = 'nim check --hints:off --listfullpaths ' . s:CurrentNimFile()
|
||||
let errorformat = &errorformat
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endf
|
||||
|
||||
function! SyntaxCheckers_nim_nim_IsAvailable()
|
||||
return executable("nim")
|
||||
function! SyntaxCheckers_nim_nim_IsAvailable() abort
|
||||
return executable('nim')
|
||||
endfunction
|
||||
|
||||
if exists("g:SyntasticRegistry")
|
||||
if exists('g:SyntasticRegistry')
|
||||
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||
\ 'filetype': 'nim',
|
||||
\ 'name': 'nim'})
|
||||
|
||||
@@ -1,301 +0,0 @@
|
||||
" Line continuation is used here, remove 'C' from 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" We need it because scripts.vim in vim uses "set ft=" which cannot be
|
||||
" overridden with setf (and we can't use set ft= so our scripts.vim work)
|
||||
func! s:Setf(ft)
|
||||
if &filetype !~# '<'.a:ft.'>'
|
||||
let &filetype = a:ft
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func! polyglot#Heuristics()
|
||||
" Try to detect filetype from shebang
|
||||
let l:filetype = polyglot#Shebang()
|
||||
if l:filetype != ""
|
||||
exec "setf " . l:filetype
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
let s:interpreters = {
|
||||
\ 'osascript': 'applescript',
|
||||
\ 'tcc': 'c',
|
||||
\ 'coffee': 'coffee',
|
||||
\ 'crystal': 'crystal',
|
||||
\ 'dart': 'dart',
|
||||
\ 'elixir': 'elixir',
|
||||
\ 'escript': 'erlang',
|
||||
\ 'fish': 'fish',
|
||||
\ 'gnuplot': 'gnuplot',
|
||||
\ 'groovy': 'groovy',
|
||||
\ 'runhaskell': 'haskell',
|
||||
\ 'chakra': 'javascript',
|
||||
\ 'd8': 'javascript',
|
||||
\ 'gjs': 'javascript',
|
||||
\ 'js': 'javascript',
|
||||
\ 'node': 'javascript',
|
||||
\ 'nodejs': 'javascript',
|
||||
\ 'qjs': 'javascript',
|
||||
\ 'rhino': 'javascript',
|
||||
\ 'v8': 'javascript',
|
||||
\ 'v8-shell': 'javascript',
|
||||
\ 'julia': 'julia',
|
||||
\ 'lua': 'lua',
|
||||
\ 'moon': 'moon',
|
||||
\ 'ocaml': 'ocaml',
|
||||
\ 'ocamlrun': 'ocaml',
|
||||
\ 'ocamlscript': 'ocaml',
|
||||
\ 'cperl': 'perl',
|
||||
\ 'perl': 'perl',
|
||||
\ 'php': 'php',
|
||||
\ 'pwsh': 'ps1',
|
||||
\ 'python': 'python',
|
||||
\ 'python2': 'python',
|
||||
\ 'python3': 'python',
|
||||
\ 'qmake': 'qmake',
|
||||
\ 'Rscript': 'r',
|
||||
\ 'racket': 'racket',
|
||||
\ 'perl6': 'raku',
|
||||
\ 'raku': 'raku',
|
||||
\ 'rakudo': 'raku',
|
||||
\ 'ruby': 'ruby',
|
||||
\ 'macruby': 'ruby',
|
||||
\ 'rake': 'ruby',
|
||||
\ 'jruby': 'ruby',
|
||||
\ 'rbx': 'ruby',
|
||||
\ 'scala': 'scala',
|
||||
\ 'ash': 'sh',
|
||||
\ 'bash': 'sh',
|
||||
\ 'dash': 'sh',
|
||||
\ 'ksh': 'sh',
|
||||
\ 'mksh': 'sh',
|
||||
\ 'pdksh': 'sh',
|
||||
\ 'rc': 'sh',
|
||||
\ 'sh': 'sh',
|
||||
\ 'zsh': 'sh',
|
||||
\ 'boolector': 'smt2',
|
||||
\ 'cvc4': 'smt2',
|
||||
\ 'mathsat5': 'smt2',
|
||||
\ 'opensmt': 'smt2',
|
||||
\ 'smtinterpol': 'smt2',
|
||||
\ 'smt-rat': 'smt2',
|
||||
\ 'stp': 'smt2',
|
||||
\ 'verit': 'smt2',
|
||||
\ 'yices2': 'smt2',
|
||||
\ 'z3': 'smt2',
|
||||
\ 'deno': 'typescript',
|
||||
\ 'ts-node': 'typescript',
|
||||
\ }
|
||||
|
||||
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()
|
||||
let l:line1 = getline(1)
|
||||
|
||||
if l:line1 !~# "^#!"
|
||||
return
|
||||
endif
|
||||
|
||||
let l:pathrest = matchlist(l:line1, s:r_hashbang)
|
||||
|
||||
if len(l:pathrest) == 0
|
||||
return
|
||||
endif
|
||||
|
||||
let [_, l:path, l:rest; __] = l:pathrest
|
||||
|
||||
let l:script = split(l:path, "/")[-1]
|
||||
|
||||
if l:script == "env"
|
||||
let l:argspath = matchlist(l:rest, s:r_env)
|
||||
if len(l:argspath) == 0
|
||||
return
|
||||
endif
|
||||
|
||||
let l:script = l:argspath[1]
|
||||
endif
|
||||
|
||||
if has_key(s:interpreters, l:script)
|
||||
return s:interpreters[l:script]
|
||||
endif
|
||||
|
||||
for interpreter in keys(s:interpreters)
|
||||
if l:script =~# '^' . interpreter
|
||||
return s:interpreters[interpreter]
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectInpFiletype()
|
||||
let line = getline(1)
|
||||
if line =~# '^\*'
|
||||
call s:Setf('abaqus') | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 500]))
|
||||
let line = getline(lnum)
|
||||
if line =~? '^header surface data'
|
||||
call s:Setf('trasys') | return
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectAsaFiletype()
|
||||
if exists("g:filetype_asa")
|
||||
call s:Setf(g:filetype_asa) | return
|
||||
endif
|
||||
call s:Setf('aspvbs') | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectAspFiletype()
|
||||
if exists("g:filetype_asp")
|
||||
call s:Setf(g:filetype_asp) | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 3]))
|
||||
let line = getline(lnum)
|
||||
if line =~? 'perlscript'
|
||||
call s:Setf('aspperl') | return
|
||||
endif
|
||||
endfor
|
||||
call s:Setf('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")
|
||||
call s:Setf('objc') | return
|
||||
endif
|
||||
call s:Setf('objcpp') | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:c_syntax_for_h")
|
||||
call s:Setf('c') | return
|
||||
endif
|
||||
if exists("g:ch_syntax_for_h")
|
||||
call s:Setf('ch') | return
|
||||
endif
|
||||
call s:Setf('cpp') | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectMFiletype()
|
||||
let saw_comment = 0
|
||||
for lnum in range(1, min([line("$"), 100]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*/\*'
|
||||
let saw_comment = 1
|
||||
endif
|
||||
if line =~# '^\s*\(@\(interface\|class\|protocol\|property\|end\|synchronised\|selector\|implementation\)\(\<\|\>\)\|#import\s\+.\+\.h[">]\)'
|
||||
call s:Setf('objc') | return
|
||||
endif
|
||||
if line =~# '^\s*%'
|
||||
call s:Setf('octave') | return
|
||||
endif
|
||||
if line =~# '^\s*(\*'
|
||||
call s:Setf('mma') | return
|
||||
endif
|
||||
if line =~? '^\s*\(\(type\|var\)\(\<\|\>\)\|--\)'
|
||||
call s:Setf('murphi') | return
|
||||
endif
|
||||
endfor
|
||||
if saw_comment
|
||||
call s:Setf('objc') | return
|
||||
endif
|
||||
if exists("g:filetype_m")
|
||||
call s:Setf(g:filetype_m) | return
|
||||
endif
|
||||
call s:Setf('octave') | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectFsFiletype()
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\(: \|new-device\)'
|
||||
call s:Setf('forth') | return
|
||||
endif
|
||||
if line =~# '^\s*\(#light\|import\|let\|module\|namespace\|open\|type\)'
|
||||
call s:Setf('fsharp') | return
|
||||
endif
|
||||
if line =~# '\s*\(#version\|precision\|uniform\|varying\|vec[234]\)'
|
||||
call s:Setf('glsl') | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_fs")
|
||||
call s:Setf(g:filetype_fs) | return
|
||||
endif
|
||||
call s:Setf('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*<\)'
|
||||
call s:Setf('cpp') | return
|
||||
endif
|
||||
call s:Setf('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'
|
||||
call s:Setf('idris') | return
|
||||
endif
|
||||
if line =~# '^\s*--.*[Ii]dris \=2'
|
||||
call s:Setf('idris2') | return
|
||||
endif
|
||||
endfor
|
||||
for lnum in range(1, min([line("$"), 30]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^pkgs =.*'
|
||||
call s:Setf('idris') | return
|
||||
endif
|
||||
if line =~# '^depends =.*'
|
||||
call s:Setf('idris2') | return
|
||||
endif
|
||||
if line =~# '^%language \(TypeProviders\|ElabReflection\)'
|
||||
call s:Setf('idris') | return
|
||||
endif
|
||||
if line =~# '^%language PostfixProjections'
|
||||
call s:Setf('idris2') | return
|
||||
endif
|
||||
if line =~# '^%access .*'
|
||||
call s:Setf('idris') | return
|
||||
endif
|
||||
if exists("g:filetype_idr")
|
||||
call s:Setf(g:filetype_idr) | return
|
||||
endif
|
||||
endfor
|
||||
call s:Setf('idris2') | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectLidrFiletype()
|
||||
for lnum in range(1, min([line("$"), 200]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^>\s*--.*[Ii]dris \=1'
|
||||
call s:Setf('lidris') | return
|
||||
endif
|
||||
endfor
|
||||
call s:Setf('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\)'
|
||||
call s:Setf('vb') | return
|
||||
endif
|
||||
endfor
|
||||
call s:Setf('basic') | return
|
||||
endfunc
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
314
autoload/polyglot/detect.vim
Normal file
314
autoload/polyglot/detect.vim
Normal file
@@ -0,0 +1,314 @@
|
||||
" Line continuation is used here, remove 'C' from 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" DO NOT EDIT CODE BELOW, IT IS GENERATED WITH MAKEFILE
|
||||
|
||||
func! polyglot#detect#Inp(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
let line = getline(nextnonblank(1))
|
||||
if line =~# '^\*'
|
||||
set ft=abaqus | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 500]))
|
||||
let line = getline(lnum)
|
||||
if line =~? '^header surface data'
|
||||
set ft=trasys | return
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Asa(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
if exists("g:filetype_asa")
|
||||
let &ft = g:filetype_asa | return
|
||||
endif
|
||||
set ft=aspvbs | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Asp(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
if exists("g:filetype_asp")
|
||||
let &ft = g:filetype_asp | return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 3]))
|
||||
let line = getline(lnum)
|
||||
if line =~? 'perlscript'
|
||||
set ft=aspperl | return
|
||||
endif
|
||||
endfor
|
||||
set ft=aspvbs | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#H(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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#detect#M(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
let saw_comment = 0
|
||||
for lnum in range(1, min([line("$"), 100]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*/\*'
|
||||
let saw_comment = 1
|
||||
endif
|
||||
if line =~# '^\s*\(@\(interface\|class\|protocol\|property\|end\|synchronised\|selector\|implementation\)\(\<\|\>\)\|#import\s\+.\+\.h[">]\)'
|
||||
set ft=objc | return
|
||||
endif
|
||||
if line =~# '^\s*%'
|
||||
set ft=octave | return
|
||||
endif
|
||||
if line =~# '^\s*(\*'
|
||||
set ft=mma | return
|
||||
endif
|
||||
if line =~? '^\s*\(\(type\|var\)\(\<\|\>\)\|--\)'
|
||||
set ft=murphi | return
|
||||
endif
|
||||
endfor
|
||||
if saw_comment
|
||||
set ft=objc | return
|
||||
endif
|
||||
if exists("g:filetype_m")
|
||||
let &ft = g:filetype_m | return
|
||||
endif
|
||||
set ft=octave | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Fs(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
for lnum in range(1, min([line("$"), 50]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\(: \|new-device\)'
|
||||
set ft=forth | return
|
||||
endif
|
||||
if line =~# '^\s*\(#light\|import\|let\|module\|namespace\|open\|type\)'
|
||||
set ft=fsharp | return
|
||||
endif
|
||||
if line =~# '\s*\(#version\|precision\|uniform\|varying\|vec[234]\)'
|
||||
set ft=glsl | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:filetype_fs")
|
||||
let &ft = g:filetype_fs | return
|
||||
endif
|
||||
set ft=forth | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Re(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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*<\)'
|
||||
set ft=cpp | return
|
||||
endif
|
||||
set ft=reason | return
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Idr(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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#detect#Lidr(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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#detect#Bas(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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#detect#Pm(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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
|
||||
if polyglot#shebang#Detect() | return | endif
|
||||
set ft=perl | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Pl(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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
|
||||
if polyglot#shebang#Detect() | return | endif
|
||||
set ft=perl | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#T(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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
|
||||
if polyglot#shebang#Detect() | return | endif
|
||||
set ft=perl | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#detect#Tt2(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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#detect#Html(...)
|
||||
if a:0 != 1 && did_filetype()
|
||||
return
|
||||
endif
|
||||
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\|load\)\(\<\|\>\)\|{#\s\+'
|
||||
set ft=htmldjango | return
|
||||
endif
|
||||
if line =~# '\(\<\|\>\)DTD\s\+XHTML\s'
|
||||
set ft=xhtml | return
|
||||
endif
|
||||
endfor
|
||||
set ft=html | return
|
||||
endfunc
|
||||
|
||||
" DO NOT EDIT CODE ABOVE, IT IS GENERATED WITH MAKEFILE
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
757
autoload/polyglot/ft.vim
Normal file
757
autoload/polyglot/ft.vim
Normal file
@@ -0,0 +1,757 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Aug 17
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
|
||||
" Line continuation is used here, remove 'C' from 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
func polyglot#ft#Check_inp()
|
||||
if getline(1) =~ '^\*'
|
||||
setf abaqus
|
||||
else
|
||||
let n = 1
|
||||
if line("$") > 500
|
||||
let nmax = 500
|
||||
else
|
||||
let nmax = line("$")
|
||||
endif
|
||||
while n <= nmax
|
||||
if getline(n) =~? "^header surface data"
|
||||
setf trasys
|
||||
break
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" This function checks for the kind of assembly that is wanted by the user, or
|
||||
" can be detected from the first five lines of the file.
|
||||
func polyglot#ft#FTasm()
|
||||
" make sure b:asmsyntax exists
|
||||
if !exists("b:asmsyntax")
|
||||
let b:asmsyntax = ""
|
||||
endif
|
||||
|
||||
if b:asmsyntax == ""
|
||||
call polyglot#ft#FTasmsyntax()
|
||||
endif
|
||||
|
||||
" if b:asmsyntax still isn't set, default to asmsyntax or GNU
|
||||
if b:asmsyntax == ""
|
||||
if exists("g:asmsyntax")
|
||||
let b:asmsyntax = g:asmsyntax
|
||||
else
|
||||
let b:asmsyntax = "asm"
|
||||
endif
|
||||
endif
|
||||
|
||||
exe "setf " . fnameescape(b:asmsyntax)
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTasmsyntax()
|
||||
" see if file contains any asmsyntax=foo overrides. If so, change
|
||||
" b:asmsyntax appropriately
|
||||
let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
|
||||
\" ".getline(5)." "
|
||||
let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
|
||||
if match != ''
|
||||
let b:asmsyntax = match
|
||||
elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
|
||||
let b:asmsyntax = "vmasm"
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Check if one of the first five lines contains "VB_Name". In that case it is
|
||||
" probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype.
|
||||
func polyglot#ft#FTVB(alt)
|
||||
if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
setf vb
|
||||
else
|
||||
exe "setf " . a:alt
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTbtm()
|
||||
if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
|
||||
setf dosbatch
|
||||
else
|
||||
setf btm
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#BindzoneCheck(default)
|
||||
if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
setf bindzone
|
||||
elseif a:default != ''
|
||||
exe 'setf ' . a:default
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTlpc()
|
||||
if exists("g:lpc_syntax_for_c")
|
||||
let lnum = 1
|
||||
while lnum <= 12
|
||||
if getline(lnum) =~# '^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
|
||||
setf lpc
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
endif
|
||||
setf c
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTheader()
|
||||
if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
|
||||
if exists("g:c_syntax_for_h")
|
||||
setf objc
|
||||
else
|
||||
setf objcpp
|
||||
endif
|
||||
elseif exists("g:c_syntax_for_h")
|
||||
setf c
|
||||
elseif exists("g:ch_syntax_for_h")
|
||||
setf ch
|
||||
else
|
||||
setf cpp
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" This function checks if one of the first ten lines start with a '@'. In
|
||||
" that case it is probably a change file.
|
||||
" If the first line starts with # or ! it's probably a ch file.
|
||||
" If a line has "main", "include", "//" or "/*" it's probably ch.
|
||||
" Otherwise CHILL is assumed.
|
||||
func polyglot#ft#FTchange()
|
||||
let lnum = 1
|
||||
while lnum <= 10
|
||||
if getline(lnum)[0] == '@'
|
||||
setf change
|
||||
return
|
||||
endif
|
||||
if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
|
||||
setf ch
|
||||
return
|
||||
endif
|
||||
if getline(lnum) =~ "MODULE"
|
||||
setf chill
|
||||
return
|
||||
endif
|
||||
if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
|
||||
setf ch
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
setf chill
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTent()
|
||||
" This function checks for valid cl syntax in the first five lines.
|
||||
" Look for either an opening comment, '#', or a block start, '{".
|
||||
" If not found, assume SGML.
|
||||
let lnum = 1
|
||||
while lnum < 6
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*[#{]'
|
||||
setf cl
|
||||
return
|
||||
elseif line !~ '^\s*$'
|
||||
" Not a blank line, not a comment, and not a block start,
|
||||
" so doesn't look like valid cl code.
|
||||
break
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endw
|
||||
setf dtd
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#EuphoriaCheck()
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
else
|
||||
setf euphoria3
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#DtraceCheck()
|
||||
let lines = getline(1, min([line("$"), 100]))
|
||||
if match(lines, '^module\>\|^import\>') > -1
|
||||
" D files often start with a module and/or import statement.
|
||||
setf d
|
||||
elseif match(lines, '^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
|
||||
setf dtrace
|
||||
else
|
||||
setf d
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTe()
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
else
|
||||
let n = 1
|
||||
while n < 100 && n <= line("$")
|
||||
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
|
||||
setf specman
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf eiffel
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Distinguish between HTML, XHTML and Django
|
||||
func polyglot#ft#FThtml()
|
||||
let n = 1
|
||||
while n < 10 && n <= line("$")
|
||||
if getline(n) =~ '\<DTD\s\+XHTML\s'
|
||||
setf xhtml
|
||||
return
|
||||
endif
|
||||
if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
|
||||
setf htmldjango
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf FALLBACK html
|
||||
endfunc
|
||||
|
||||
" Distinguish between standard IDL and MS-IDL
|
||||
func polyglot#ft#FTidl()
|
||||
let n = 1
|
||||
while n < 50 && n <= line("$")
|
||||
if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
|
||||
setf msidl
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf idl
|
||||
endfunc
|
||||
|
||||
" Distinguish between "default" and Cproto prototype file. */
|
||||
func polyglot#ft#ProtoCheck(default)
|
||||
" Cproto files have a comment in the first line and a function prototype in
|
||||
" the second line, it always ends in ";". Indent files may also have
|
||||
" comments, thus we can't match comments to see the difference.
|
||||
" IDL files can have a single ';' in the second line, require at least one
|
||||
" chacter before the ';'.
|
||||
if getline(2) =~ '.;$'
|
||||
setf cpp
|
||||
else
|
||||
exe 'setf ' . a:default
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTm()
|
||||
let n = 1
|
||||
let saw_comment = 0 " Whether we've seen a multiline comment leader.
|
||||
while n < 100
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*/\*'
|
||||
" /* ... */ is a comment in Objective C and Murphi, so we can't conclude
|
||||
" it's either of them yet, but track this as a hint in case we don't see
|
||||
" anything more definitive.
|
||||
let saw_comment = 1
|
||||
endif
|
||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
|
||||
setf objc
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*%'
|
||||
setf matlab
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*(\*'
|
||||
setf mma
|
||||
return
|
||||
endif
|
||||
if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
|
||||
setf murphi
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
|
||||
if saw_comment
|
||||
" We didn't see anything definitive, but this looks like either Objective C
|
||||
" or Murphi based on the comment leader. Assume the former as it is more
|
||||
" common.
|
||||
setf objc
|
||||
elseif exists("g:filetype_m")
|
||||
" Use user specified default filetype for .m
|
||||
exe "setf " . g:filetype_m
|
||||
else
|
||||
" Default is matlab
|
||||
setf matlab
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTmms()
|
||||
let n = 1
|
||||
while n < 20
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
|
||||
setf mmix
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*#'
|
||||
setf make
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf mmix
|
||||
endfunc
|
||||
|
||||
" This function checks if one of the first five lines start with a dot. In
|
||||
" that case it is probably an nroff file: 'filetype' is set and 1 is returned.
|
||||
func polyglot#ft#FTnroff()
|
||||
if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.'
|
||||
setf nroff
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTmm()
|
||||
let n = 1
|
||||
while n < 20
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
setf objcpp
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf nroff
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTpl()
|
||||
if exists("g:filetype_pl")
|
||||
exe "setf " . g:filetype_pl
|
||||
else
|
||||
" recognize Prolog by specific text in the first non-empty line
|
||||
" require a blank after the '%' because Perl uses "%list" and "%translate"
|
||||
let l = getline(nextnonblank(1))
|
||||
if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
|
||||
setf prolog
|
||||
else
|
||||
setf perl
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTinc()
|
||||
if exists("g:filetype_inc")
|
||||
exe "setf " . g:filetype_inc
|
||||
else
|
||||
let lines = getline(1).getline(2).getline(3)
|
||||
if lines =~? "perlscript"
|
||||
setf aspperl
|
||||
elseif lines =~ "<%"
|
||||
setf aspvbs
|
||||
elseif lines =~ "<?"
|
||||
setf php
|
||||
else
|
||||
call polyglot#ft#FTasmsyntax()
|
||||
if exists("b:asmsyntax")
|
||||
exe "setf " . fnameescape(b:asmsyntax)
|
||||
else
|
||||
setf pov
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTprogress_cweb()
|
||||
if exists("g:filetype_w")
|
||||
exe "setf " . g:filetype_w
|
||||
return
|
||||
endif
|
||||
if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
|
||||
setf progress
|
||||
else
|
||||
setf cweb
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTprogress_asm()
|
||||
if exists("g:filetype_i")
|
||||
exe "setf " . g:filetype_i
|
||||
return
|
||||
endif
|
||||
" This function checks for an assembly comment the first ten lines.
|
||||
" If not found, assume Progress.
|
||||
let lnum = 1
|
||||
while lnum <= 10 && lnum < line('$')
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*;' || line =~ '^\*'
|
||||
call polyglot#ft#FTasm()
|
||||
return
|
||||
elseif line !~ '^\s*$' || line =~ '^/\*'
|
||||
" Not an empty line: Doesn't look like valid assembly code.
|
||||
" Or it looks like a Progress /* comment
|
||||
break
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endw
|
||||
setf progress
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTprogress_pascal()
|
||||
if exists("g:filetype_p")
|
||||
exe "setf " . g:filetype_p
|
||||
return
|
||||
endif
|
||||
" This function checks for valid Pascal syntax in the first ten lines.
|
||||
" Look for either an opening comment or a program start.
|
||||
" If not found, assume Progress.
|
||||
let lnum = 1
|
||||
while lnum <= 10 && lnum < line('$')
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*\(program\|unit\|procedure\|function\|const\|type\|var\)\>'
|
||||
\ || line =~ '^\s*{' || line =~ '^\s*(\*'
|
||||
setf pascal
|
||||
return
|
||||
elseif line !~ '^\s*$' || line =~ '^/\*'
|
||||
" Not an empty line: Doesn't look like valid Pascal code.
|
||||
" Or it looks like a Progress /* comment
|
||||
break
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endw
|
||||
setf progress
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTr()
|
||||
let max = line("$") > 50 ? 50 : line("$")
|
||||
|
||||
for n in range(1, max)
|
||||
" Rebol is easy to recognize, check for that first
|
||||
if getline(n) =~? '\<REBOL\>'
|
||||
setf rebol
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
|
||||
for n in range(1, max)
|
||||
" R has # comments
|
||||
if getline(n) =~ '^\s*#'
|
||||
setf r
|
||||
return
|
||||
endif
|
||||
" Rexx has /* comments */
|
||||
if getline(n) =~ '^\s*/\*'
|
||||
setf rexx
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Nothing recognized, use user default or assume Rexx
|
||||
if exists("g:filetype_r")
|
||||
exe "setf " . g:filetype_r
|
||||
else
|
||||
" Rexx used to be the default, but R appears to be much more popular.
|
||||
setf r
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#McSetf()
|
||||
" Rely on the file to start with a comment.
|
||||
" MS message text files use ';', Sendmail files use '#' or 'dnl'
|
||||
for lnum in range(1, min([line("$"), 20]))
|
||||
let line = getline(lnum)
|
||||
if line =~ '^\s*\(#\|dnl\)'
|
||||
setf m4 " Sendmail .mc file
|
||||
return
|
||||
elseif line =~ '^\s*;'
|
||||
setf msmessages " MS Message text file
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
setf m4 " Default: Sendmail .mc file
|
||||
endfunc
|
||||
|
||||
" Called from filetype.vim and scripts.vim.
|
||||
func polyglot#ft#SetFileTypeSH(name)
|
||||
if did_filetype()
|
||||
" Filetype was already detected
|
||||
return
|
||||
endif
|
||||
if expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return
|
||||
endif
|
||||
if a:name =~ '\<csh\>'
|
||||
" Some .sh scripts contain #!/bin/csh.
|
||||
call polyglot#ft#SetFileTypeShell("csh")
|
||||
return
|
||||
elseif a:name =~ '\<tcsh\>'
|
||||
" Some .sh scripts contain #!/bin/tcsh.
|
||||
call polyglot#ft#SetFileTypeShell("tcsh")
|
||||
return
|
||||
elseif a:name =~ '\<zsh\>'
|
||||
" Some .sh scripts contain #!/bin/zsh.
|
||||
call polyglot#ft#SetFileTypeShell("zsh")
|
||||
return
|
||||
elseif a:name =~ '\<ksh\>'
|
||||
let b:is_kornshell = 1
|
||||
if exists("b:is_bash")
|
||||
unlet b:is_bash
|
||||
endif
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif exists("g:bash_is_sh") || a:name =~ '\<bash\>' || a:name =~ '\<bash2\>'
|
||||
let b:is_bash = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
endif
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif a:name =~ '\<sh\>'
|
||||
let b:is_sh = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
endif
|
||||
if exists("b:is_bash")
|
||||
unlet b:is_bash
|
||||
endif
|
||||
endif
|
||||
call polyglot#ft#SetFileTypeShell("sh")
|
||||
endfunc
|
||||
|
||||
" For shell-like file types, check for an "exec" command hidden in a comment,
|
||||
" as used for Tcl.
|
||||
" Also called from scripts.vim, thus can't be local to this script.
|
||||
func polyglot#ft#SetFileTypeShell(name)
|
||||
if did_filetype()
|
||||
" Filetype was already detected
|
||||
return
|
||||
endif
|
||||
if expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return
|
||||
endif
|
||||
let l = 2
|
||||
while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
|
||||
" Skip empty and comment lines.
|
||||
let l = l + 1
|
||||
endwhile
|
||||
if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
|
||||
" Found an "exec" line after a comment with continuation
|
||||
let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
|
||||
if n =~ '\<tclsh\|\<wish'
|
||||
setf tcl
|
||||
return
|
||||
endif
|
||||
endif
|
||||
exe "setf " . a:name
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#CSH()
|
||||
if did_filetype()
|
||||
" Filetype was already detected
|
||||
return
|
||||
endif
|
||||
if exists("g:filetype_csh")
|
||||
call polyglot#ft#SetFileTypeShell(g:filetype_csh)
|
||||
elseif &shell =~ "tcsh"
|
||||
call polyglot#ft#SetFileTypeShell("tcsh")
|
||||
else
|
||||
call polyglot#ft#SetFileTypeShell("csh")
|
||||
endif
|
||||
endfunc
|
||||
|
||||
let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
|
||||
func polyglot#ft#FTRules()
|
||||
let path = expand('<amatch>:p')
|
||||
if path =~ '/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|\%(usr/\)\=lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
|
||||
setf udevrules
|
||||
return
|
||||
endif
|
||||
if path =~ '^/etc/ufw/'
|
||||
setf conf " Better than hog
|
||||
return
|
||||
endif
|
||||
if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
|
||||
setf javascript
|
||||
return
|
||||
endif
|
||||
try
|
||||
let config_lines = readfile('/etc/udev/udev.conf')
|
||||
catch /^Vim\%((\a\+)\)\=:E484/
|
||||
setf hog
|
||||
return
|
||||
endtry
|
||||
let dir = expand('<amatch>:p:h')
|
||||
for line in config_lines
|
||||
if line =~ s:ft_rules_udev_rules_pattern
|
||||
let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
|
||||
if dir == udev_rules
|
||||
setf udevrules
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
setf hog
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#SQL()
|
||||
if exists("g:filetype_sql")
|
||||
exe "setf " . g:filetype_sql
|
||||
else
|
||||
setf sql
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" If the file has an extension of 't' and is in a directory 't' or 'xt' then
|
||||
" it is almost certainly a Perl test file.
|
||||
" If the first line starts with '#' and contains 'perl' it's probably a Perl
|
||||
" file.
|
||||
" (Slow test) If a file contains a 'use' statement then it is almost certainly
|
||||
" a Perl file.
|
||||
func polyglot#ft#FTperl()
|
||||
let dirname = expand("%:p:h:t")
|
||||
if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
if getline(1)[0] == '#' && getline(1) =~ 'perl'
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
let save_cursor = getpos('.')
|
||||
call cursor(1,1)
|
||||
let has_use = search('^use\s\s*\k', 'c', 30)
|
||||
call setpos('.', save_cursor)
|
||||
if has_use
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
" Choose context, plaintex, or tex (LaTeX) based on these rules:
|
||||
" 1. Check the first line of the file for "%&<format>".
|
||||
" 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
|
||||
" 3. Default to "plain" or to g:tex_flavor, can be set in user's vimrc.
|
||||
func polyglot#ft#FTtex()
|
||||
let firstline = getline(1)
|
||||
if firstline =~ '^%&\s*\a\+'
|
||||
let format = tolower(matchstr(firstline, '\a\+'))
|
||||
let format = substitute(format, 'pdf', '', '')
|
||||
if format == 'tex'
|
||||
let format = 'latex'
|
||||
elseif format == 'plaintex'
|
||||
let format = 'plain'
|
||||
endif
|
||||
elseif expand('%') =~ 'tex/context/.*/.*.tex'
|
||||
let format = 'context'
|
||||
else
|
||||
" Default value, may be changed later:
|
||||
let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
|
||||
" Save position, go to the top of the file, find first non-comment line.
|
||||
let save_cursor = getpos('.')
|
||||
call cursor(1,1)
|
||||
let firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
|
||||
if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword.
|
||||
let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
|
||||
let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
|
||||
let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)',
|
||||
\ 'cnp', firstNC + 1000)
|
||||
if kwline == 1 " lpat matched
|
||||
let format = 'latex'
|
||||
elseif kwline == 2 " cpat matched
|
||||
let format = 'context'
|
||||
endif " If neither matched, keep default set above.
|
||||
" let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
|
||||
" let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
|
||||
" if cline > 0
|
||||
" let format = 'context'
|
||||
" endif
|
||||
" if lline > 0 && (cline == 0 || cline > lline)
|
||||
" let format = 'tex'
|
||||
" endif
|
||||
endif " firstNC
|
||||
call setpos('.', save_cursor)
|
||||
endif " firstline =~ '^%&\s*\a\+'
|
||||
|
||||
" Translation from formats to file types. TODO: add AMSTeX, RevTex, others?
|
||||
if format == 'plain'
|
||||
setf plaintex
|
||||
elseif format == 'context'
|
||||
setf context
|
||||
else " probably LaTeX
|
||||
setf tex
|
||||
endif
|
||||
return
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTxml()
|
||||
let n = 1
|
||||
while n < 100 && n <= line("$")
|
||||
let line = getline(n)
|
||||
" DocBook 4 or DocBook 5.
|
||||
let is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
|
||||
let is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
|
||||
if is_docbook4 || is_docbook5
|
||||
let b:docbk_type = "xml"
|
||||
if is_docbook5
|
||||
let b:docbk_ver = 5
|
||||
else
|
||||
let b:docbk_ver = 4
|
||||
endif
|
||||
setf docbk
|
||||
return
|
||||
endif
|
||||
if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
|
||||
setf xbl
|
||||
return
|
||||
endif
|
||||
let n += 1
|
||||
endwhile
|
||||
setf xml
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTy()
|
||||
let n = 1
|
||||
while n < 100 && n <= line("$")
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*%'
|
||||
setf yacc
|
||||
return
|
||||
endif
|
||||
if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
|
||||
setf racc
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf yacc
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#Redif()
|
||||
let lnum = 1
|
||||
while lnum <= 5 && lnum < line('$')
|
||||
if getline(lnum) =~ "^\ctemplate-type:"
|
||||
setf redif
|
||||
return
|
||||
endif
|
||||
let lnum = lnum + 1
|
||||
endwhile
|
||||
endfunc
|
||||
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
533
autoload/polyglot/shebang.vim
Normal file
533
autoload/polyglot/shebang.vim
Normal file
@@ -0,0 +1,533 @@
|
||||
" Line continuation is used here, remove 'C' from 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
func! polyglot#shebang#Detect()
|
||||
let ft = s:Filetype()
|
||||
if ft != ""
|
||||
let &ft = ft
|
||||
return 1
|
||||
endif
|
||||
|
||||
let err = polyglot#shebang#VimDetect()
|
||||
if err == ""
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
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! s:Filetype()
|
||||
let l:line1 = getline(1)
|
||||
|
||||
if l:line1 !~# "^#!"
|
||||
return
|
||||
endif
|
||||
|
||||
let l:pathrest = matchlist(l:line1, s:r_hashbang)
|
||||
|
||||
if len(l:pathrest) == 0
|
||||
return
|
||||
endif
|
||||
|
||||
let [_, l:path, l:rest; __] = l:pathrest
|
||||
|
||||
let l:pathparts = split(l:path, "/")
|
||||
|
||||
if len(l:pathparts) == 0
|
||||
return
|
||||
endif
|
||||
|
||||
let l:script = l:pathparts[-1]
|
||||
|
||||
if l:script == "env"
|
||||
let l:argspath = matchlist(l:rest, s:r_env)
|
||||
if len(l:argspath) == 0
|
||||
return
|
||||
endif
|
||||
|
||||
let l:script = l:argspath[1]
|
||||
endif
|
||||
|
||||
if has_key(s:interpreters, l:script)
|
||||
return s:interpreters[l:script]
|
||||
endif
|
||||
|
||||
for interpreter in keys(s:interpreters)
|
||||
if l:script =~# '^' . interpreter
|
||||
return s:interpreters[interpreter]
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func! polyglot#shebang#VimDetect()
|
||||
let line1 = getline(1)
|
||||
|
||||
if line1 =~# "^#!"
|
||||
" A script that starts with "#!".
|
||||
|
||||
" Check for a line like "#!/usr/bin/env {options} bash". Turn it into
|
||||
" "#!/usr/bin/bash" to make matching easier.
|
||||
" Recognize only a few {options} that are commonly used.
|
||||
if line1 =~# '^#!\s*\S*\<env\s'
|
||||
let line1 = substitute(line1, '\S\+=\S\+', '', 'g')
|
||||
let line1 = substitute(line1, '\(-[iS]\|--ignore-environment\|--split-string\)', '', '')
|
||||
let line1 = substitute(line1, '\<env\s\+', '', '')
|
||||
endif
|
||||
|
||||
" Get the program name.
|
||||
" Only accept spaces in PC style path "#!c:/program files/perl [args]".
|
||||
" If the word env is used, use the first word after the space:
|
||||
" "#!/usr/bin/env perl [path/args]"
|
||||
" If there is no path use the first word: "#!perl [path/args]".
|
||||
" Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
|
||||
if line1 =~# '^#!\s*\a:[/\\]'
|
||||
let name = substitute(line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
|
||||
elseif line1 =~# '^#!.*\<env\>'
|
||||
let name = substitute(line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
|
||||
elseif line1 =~# '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
|
||||
let name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
|
||||
else
|
||||
let name = substitute(line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
|
||||
endif
|
||||
|
||||
" tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
|
||||
" third line. Suggested by Steven Atkinson.
|
||||
if getline(3) =~# '^exec wish'
|
||||
let name = 'wish'
|
||||
endif
|
||||
|
||||
" Bourne-like shell script bash bash2 ksh ksh93 sh
|
||||
if name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
|
||||
call dist#ft#SetFileTypeSH(line1) " defined in filetype.vim
|
||||
return
|
||||
|
||||
" csh scripts
|
||||
elseif name =~# '^csh\>'
|
||||
if exists("g:filetype_csh")
|
||||
call dist#ft#SetFileTypeShell(g:filetype_csh)
|
||||
return
|
||||
else
|
||||
call dist#ft#SetFileTypeShell("csh")
|
||||
return
|
||||
endif
|
||||
|
||||
" tcsh scripts
|
||||
elseif name =~# '^tcsh\>'
|
||||
call dist#ft#SetFileTypeShell("tcsh")
|
||||
return
|
||||
|
||||
" Z shell scripts
|
||||
elseif name =~# '^zsh\>'
|
||||
set ft=zsh | return
|
||||
|
||||
" TCL scripts
|
||||
elseif name =~# '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
|
||||
set ft=tcl | return
|
||||
|
||||
" Expect scripts
|
||||
elseif name =~# '^expect\>'
|
||||
set ft=expect | return
|
||||
|
||||
" Gnuplot scripts
|
||||
elseif name =~# '^gnuplot\>'
|
||||
set ft=gnuplot | return
|
||||
|
||||
" Makefiles
|
||||
elseif name =~# 'make\>'
|
||||
set ft=make | return
|
||||
|
||||
" Pike
|
||||
elseif name =~# '^pike\%(\>\|[0-9]\)'
|
||||
set ft=pike | return
|
||||
|
||||
" Lua
|
||||
elseif name =~# 'lua'
|
||||
set ft=lua | return
|
||||
|
||||
" Perl 6
|
||||
elseif name =~# 'perl6'
|
||||
set ft=perl6 | return
|
||||
|
||||
" Perl
|
||||
elseif name =~# 'perl'
|
||||
set ft=perl | return
|
||||
|
||||
" PHP
|
||||
elseif name =~# 'php'
|
||||
set ft=php | return
|
||||
|
||||
" Python
|
||||
elseif name =~# 'python'
|
||||
set ft=python | return
|
||||
|
||||
" Groovy
|
||||
elseif name =~# '^groovy\>'
|
||||
set ft=groovy | return
|
||||
|
||||
" Ruby
|
||||
elseif name =~# 'ruby'
|
||||
set ft=ruby | return
|
||||
|
||||
" JavaScript
|
||||
elseif name =~# 'node\(js\)\=\>\|js\>' || name =~# 'rhino\>'
|
||||
set ft=javascript | return
|
||||
|
||||
" BC calculator
|
||||
elseif name =~# '^bc\>'
|
||||
set ft=bc | return
|
||||
|
||||
" sed
|
||||
elseif name =~# 'sed\>'
|
||||
set ft=sed | return
|
||||
|
||||
" OCaml-scripts
|
||||
elseif name =~# 'ocaml'
|
||||
set ft=ocaml | return
|
||||
|
||||
" Awk scripts; also finds "gawk"
|
||||
elseif name =~# 'awk\>'
|
||||
set ft=awk | return
|
||||
|
||||
" Website MetaLanguage
|
||||
elseif name =~# 'wml'
|
||||
set ft=wml | return
|
||||
|
||||
" Scheme scripts
|
||||
elseif name =~# 'scheme'
|
||||
set ft=scheme | return
|
||||
|
||||
" CFEngine scripts
|
||||
elseif name =~# 'cfengine'
|
||||
set ft=cfengine | return
|
||||
|
||||
" Erlang scripts
|
||||
elseif name =~# 'escript'
|
||||
set ft=erlang | return
|
||||
|
||||
" Haskell
|
||||
elseif name =~# 'haskell'
|
||||
set ft=haskell | return
|
||||
|
||||
" Scala
|
||||
elseif name =~# 'scala\>'
|
||||
set ft=scala | return
|
||||
|
||||
" Clojure
|
||||
elseif name =~# 'clojure'
|
||||
set ft=clojure | return
|
||||
|
||||
endif
|
||||
unlet name
|
||||
|
||||
else
|
||||
" File does not start with "#!".
|
||||
|
||||
let line2 = getline(2)
|
||||
let line3 = getline(3)
|
||||
let line4 = getline(4)
|
||||
let line5 = getline(5)
|
||||
|
||||
" Bourne-like shell script sh ksh bash bash2
|
||||
if line1 =~# '^:$'
|
||||
call dist#ft#SetFileTypeSH(line1) " defined in filetype.vim
|
||||
return
|
||||
|
||||
" Z shell scripts
|
||||
elseif line1 =~# '^#compdef\>' || line1 =~# '^#autoload\>' ||
|
||||
\ "\n".line1."\n".line2."\n".line3."\n".line4."\n".line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
|
||||
set ft=zsh | return
|
||||
|
||||
" ELM Mail files
|
||||
elseif line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
||||
set ft=mail | return
|
||||
|
||||
" Mason
|
||||
elseif line1 =~# '^<[%&].*>'
|
||||
set ft=mason | return
|
||||
|
||||
" Vim scripts (must have '" vim' as the first line to trigger this)
|
||||
elseif line1 =~# '^" *[vV]im$'
|
||||
set ft=vim | return
|
||||
|
||||
" libcxx and libstdc++ standard library headers like "iostream" do not have
|
||||
" an extension, recognize the Emacs file mode.
|
||||
elseif line1 =~? '-\*-.*C++.*-\*-'
|
||||
set ft=cpp | return
|
||||
|
||||
" MOO
|
||||
elseif line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
|
||||
set ft=moo | return
|
||||
|
||||
" Diff file:
|
||||
" - "diff" in first line (context diff)
|
||||
" - "Only in " in first line
|
||||
" - "--- " in first line and "+++ " in second line (unified diff).
|
||||
" - "*** " in first line and "--- " in second line (context diff).
|
||||
" - "# It was generated by makepatch " in the second line (makepatch diff).
|
||||
" - "Index: <filename>" in the first line (CVS file)
|
||||
" - "=== ", line of "=", "---", "+++ " (SVK diff)
|
||||
" - "=== ", "--- ", "+++ " (bzr diff, common case)
|
||||
" - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
|
||||
" - "# HG changeset patch" in first line (Mercurial export format)
|
||||
elseif line1 =~# '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|
||||
\ || (line1 =~# '^--- ' && line2 =~# '^+++ ')
|
||||
\ || (line1 =~# '^\* looking for ' && line2 =~# '^\* comparing to ')
|
||||
\ || (line1 =~# '^\*\*\* ' && line2 =~# '^--- ')
|
||||
\ || (line1 =~# '^=== ' && ((line2 =~# '^=\{66\}' && line3 =~# '^--- ' && line4 =~# '^+++') || (line2 =~# '^--- ' && line3 =~# '^+++ ')))
|
||||
\ || (line1 =~# '^=== \(removed\|added\|renamed\|modified\)')
|
||||
set ft=diff | return
|
||||
|
||||
" PostScript Files (must have %!PS as the first line, like a2ps output)
|
||||
elseif line1 =~# '^%![ \t]*PS'
|
||||
set ft=postscr | return
|
||||
|
||||
" M4 script Guess there is a line that starts with "dnl".
|
||||
elseif line1 =~# '^\s*dnl\>'
|
||||
\ || line2 =~# '^\s*dnl\>'
|
||||
\ || line3 =~# '^\s*dnl\>'
|
||||
\ || line4 =~# '^\s*dnl\>'
|
||||
\ || line5 =~# '^\s*dnl\>'
|
||||
set ft=m4 | return
|
||||
|
||||
" AmigaDos scripts
|
||||
elseif $TERM == "amiga"
|
||||
\ && (line1 =~# "^;" || line1 =~? '^\.bra')
|
||||
set ft=amiga | return
|
||||
|
||||
" SiCAD scripts (must have procn or procd as the first line to trigger this)
|
||||
elseif line1 =~? '^ *proc[nd] *$'
|
||||
set ft=sicad | return
|
||||
|
||||
" Purify log files start with "**** Purify"
|
||||
elseif line1 =~# '^\*\*\*\* Purify'
|
||||
set ft=purifylog | return
|
||||
|
||||
" XML
|
||||
elseif line1 =~# '<?\s*xml.*?>'
|
||||
set ft=xml | return
|
||||
|
||||
" XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
|
||||
elseif line1 =~# '\<DTD\s\+XHTML\s'
|
||||
set ft=xhtml | return
|
||||
|
||||
" HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
|
||||
" Avoid "doctype html", used by slim.
|
||||
elseif line1 =~? '<!DOCTYPE\s\+html\>'
|
||||
set ft=html | return
|
||||
|
||||
" PDF
|
||||
elseif line1 =~# '^%PDF-'
|
||||
set ft=pdf | return
|
||||
|
||||
" XXD output
|
||||
elseif line1 =~# '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
|
||||
set ft=xxd | return
|
||||
|
||||
" RCS/CVS log output
|
||||
elseif line1 =~# '^RCS file:' || line2 =~# '^RCS file:'
|
||||
set ft=rcslog | return
|
||||
|
||||
" CVS commit
|
||||
elseif line2 =~# '^CV' || getline("$") =~# '^CV '
|
||||
set ft=cvs | return
|
||||
|
||||
" Prescribe
|
||||
elseif line1 =~# '^!R!'
|
||||
set ft=prescribe | return
|
||||
|
||||
" Send-pr
|
||||
elseif line1 =~# '^SEND-PR:'
|
||||
set ft=sendpr | return
|
||||
|
||||
" SNNS files
|
||||
elseif line1 =~# '^SNNS network definition file'
|
||||
set ft=snnsnet | return
|
||||
elseif line1 =~# '^SNNS pattern definition file'
|
||||
set ft=snnspat | return
|
||||
elseif line1 =~# '^SNNS result file'
|
||||
set ft=snnsres | return
|
||||
|
||||
" Virata
|
||||
elseif line1 =~# '^%.\{-}[Vv]irata'
|
||||
\ || line2 =~# '^%.\{-}[Vv]irata'
|
||||
\ || line3 =~# '^%.\{-}[Vv]irata'
|
||||
\ || line4 =~# '^%.\{-}[Vv]irata'
|
||||
\ || line5 =~# '^%.\{-}[Vv]irata'
|
||||
set ft=virata | return
|
||||
|
||||
" Strace
|
||||
elseif line1 =~# '[0-9:.]* *execve(' || line1 =~# '^__libc_start_main'
|
||||
set ft=strace | return
|
||||
|
||||
" VSE JCL
|
||||
elseif line1 =~# '^\* $$ JOB\>' || line1 =~# '^// *JOB\>'
|
||||
set ft=vsejcl | return
|
||||
|
||||
" TAK and SINDA
|
||||
elseif line4 =~# 'K & K Associates' || line2 =~# 'TAK 2000'
|
||||
set ft=takout | return
|
||||
elseif line3 =~# 'S Y S T E M S I M P R O V E D '
|
||||
set ft=sindaout | return
|
||||
elseif getline(6) =~# 'Run Date: '
|
||||
set ft=takcmp | return
|
||||
elseif getline(9) =~# 'Node File 1'
|
||||
set ft=sindacmp | return
|
||||
|
||||
" DNS zone files
|
||||
elseif line1.line2.line3.line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
set ft=bindzone | return
|
||||
|
||||
" BAAN
|
||||
elseif line1 =~# '|\*\{1,80}' && line2 =~# 'VRC '
|
||||
\ || line2 =~# '|\*\{1,80}' && line3 =~# 'VRC '
|
||||
set ft=baan | return
|
||||
|
||||
" Valgrind
|
||||
elseif line1 =~# '^==\d\+== valgrind' || line3 =~# '^==\d\+== Using valgrind'
|
||||
set ft=valgrind | return
|
||||
|
||||
" Go docs
|
||||
elseif line1 =~# '^PACKAGE DOCUMENTATION$'
|
||||
set ft=godoc | return
|
||||
|
||||
" Renderman Interface Bytestream
|
||||
elseif line1 =~# '^##RenderMan'
|
||||
set ft=rib | return
|
||||
|
||||
" Scheme scripts
|
||||
elseif line1 =~# 'exec\s\+\S*scheme' || line2 =~# 'exec\s\+\S*scheme'
|
||||
set ft=scheme | return
|
||||
|
||||
" Git output
|
||||
elseif line1 =~# '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
|
||||
set ft=git | return
|
||||
|
||||
" Gprof (gnu profiler)
|
||||
elseif line1 == 'Flat profile:'
|
||||
\ && line2 == ''
|
||||
\ && line3 =~# '^Each sample counts as .* seconds.$'
|
||||
set ft=gprof | return
|
||||
|
||||
" Erlang terms
|
||||
" (See also: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html#Choosing-Modes)
|
||||
elseif line1 =~? '-\*-.*erlang.*-\*-'
|
||||
set ft=erlang | return
|
||||
|
||||
" YAML
|
||||
elseif line1 =~# '^%YAML'
|
||||
set ft=yaml | return
|
||||
|
||||
" CVS diff
|
||||
else
|
||||
let lnum = 1
|
||||
while getline(lnum) =~# "^? " && lnum < line("$")
|
||||
let lnum += 1
|
||||
endwhile
|
||||
if getline(lnum) =~# '^Index:\s\+\f\+$'
|
||||
set ft=diff | return
|
||||
|
||||
" locale input file Formal Definitions of Cultural Conventions
|
||||
" filename must be like en_US, fr_FR@euro or en_US.UTF-8
|
||||
elseif expand("%") =~# '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
|
||||
let lnum = 1
|
||||
while lnum < 100 && lnum < line("$")
|
||||
if getline(lnum) =~# '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
|
||||
setf fdcc | return
|
||||
break
|
||||
endif
|
||||
let lnum += 1
|
||||
endwhile
|
||||
endif
|
||||
unlet lnum
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
return 1
|
||||
endfunc
|
||||
|
||||
" DO NOT EDIT CODE BELOW, IT IS GENERATED WITH MAKEFILE
|
||||
|
||||
let s:interpreters = {
|
||||
\ 'osascript': 'applescript',
|
||||
\ 'tcc': 'c',
|
||||
\ 'coffee': 'coffee',
|
||||
\ 'crystal': 'crystal',
|
||||
\ 'dart': 'dart',
|
||||
\ 'elixir': 'elixir',
|
||||
\ 'escript': 'erlang',
|
||||
\ 'fish': 'fish',
|
||||
\ 'gnuplot': 'gnuplot',
|
||||
\ 'groovy': 'groovy',
|
||||
\ 'runghc': 'haskell',
|
||||
\ 'runhaskell': 'haskell',
|
||||
\ 'runhugs': 'haskell',
|
||||
\ 'chakra': 'javascript',
|
||||
\ 'd8': 'javascript',
|
||||
\ 'gjs': 'javascript',
|
||||
\ 'js': 'javascript',
|
||||
\ 'node': 'javascript',
|
||||
\ 'nodejs': 'javascript',
|
||||
\ 'qjs': 'javascript',
|
||||
\ 'rhino': 'javascript',
|
||||
\ 'v8': 'javascript',
|
||||
\ 'v8-shell': 'javascript',
|
||||
\ 'julia': 'julia',
|
||||
\ 'lua': 'lua',
|
||||
\ 'moon': 'moon',
|
||||
\ 'ocaml': 'ocaml',
|
||||
\ 'ocamlrun': 'ocaml',
|
||||
\ 'ocamlscript': 'ocaml',
|
||||
\ 'cperl': 'perl',
|
||||
\ 'perl': 'perl',
|
||||
\ 'php': 'php',
|
||||
\ 'swipl': 'prolog',
|
||||
\ 'yap': 'prolog',
|
||||
\ 'pwsh': 'ps1',
|
||||
\ 'python': 'python',
|
||||
\ 'python2': 'python',
|
||||
\ 'python3': 'python',
|
||||
\ 'qmake': 'qmake',
|
||||
\ 'Rscript': 'r',
|
||||
\ 'racket': 'racket',
|
||||
\ 'perl6': 'raku',
|
||||
\ 'raku': 'raku',
|
||||
\ 'rakudo': 'raku',
|
||||
\ 'ruby': 'ruby',
|
||||
\ 'macruby': 'ruby',
|
||||
\ 'rake': 'ruby',
|
||||
\ 'jruby': 'ruby',
|
||||
\ 'rbx': 'ruby',
|
||||
\ 'scala': 'scala',
|
||||
\ 'ash': 'sh',
|
||||
\ 'bash': 'sh',
|
||||
\ 'dash': 'sh',
|
||||
\ 'ksh': 'sh',
|
||||
\ 'mksh': 'sh',
|
||||
\ 'pdksh': 'sh',
|
||||
\ 'rc': 'sh',
|
||||
\ 'sh': 'sh',
|
||||
\ 'boolector': 'smt2',
|
||||
\ 'cvc4': 'smt2',
|
||||
\ 'mathsat5': 'smt2',
|
||||
\ 'opensmt': 'smt2',
|
||||
\ 'smtinterpol': 'smt2',
|
||||
\ 'smt-rat': 'smt2',
|
||||
\ 'stp': 'smt2',
|
||||
\ 'verit': 'smt2',
|
||||
\ 'yices2': 'smt2',
|
||||
\ 'z3': 'smt2',
|
||||
\ 'deno': 'typescript',
|
||||
\ 'ts-node': 'typescript',
|
||||
\ 'zsh': 'zsh',
|
||||
\ }
|
||||
" DO NOT EDIT CODE ABOVE, IT IS GENERATED WITH MAKEFILE
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
642
autoload/polyglot/sleuth.vim
Normal file
642
autoload/polyglot/sleuth.vim
Normal file
@@ -0,0 +1,642 @@
|
||||
" Restore 'cpoptions'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" DO NOT EDIT CODE BELOW, IT IS GENERATED WITH MAKEFILE
|
||||
|
||||
let s:globs = {
|
||||
\ '8th': '*.8th',
|
||||
\ 'Jenkinsfile': '*.jenkinsfile,*.Jenkinsfile,Jenkinsfile,Jenkinsfile*',
|
||||
\ 'a2ps': 'a2psrc,.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': '.asoundrc',
|
||||
\ 'aml': '*.aml',
|
||||
\ 'ampl': '*.run',
|
||||
\ 'ant': 'build.xml',
|
||||
\ 'apache': '.htaccess,access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf*',
|
||||
\ 'apachestyle': 'proftpd.conf*',
|
||||
\ 'apiblueprint': '*.apib',
|
||||
\ 'applescript': '*.applescript,*.scpt',
|
||||
\ 'aptconf': 'apt.conf',
|
||||
\ 'arch': '.arch-inventory,=tagging-method',
|
||||
\ 'arduino': '*.pde,*.ino',
|
||||
\ 'art': '*.art',
|
||||
\ 'asciidoc': '*.asciidoc,*.adoc,*.asc',
|
||||
\ 'asl': '*.asl,*.dsl',
|
||||
\ 'asn': '*.asn,*.asn1',
|
||||
\ 'aspperl': '*.asp',
|
||||
\ 'aspvbs': '*.asa,*.asp',
|
||||
\ 'asterisk': '',
|
||||
\ 'asteriskvm': '',
|
||||
\ 'atlas': '*.atl,*.as',
|
||||
\ 'autohotkey': '*.ahk,*.ahkl',
|
||||
\ 'autoit': '*.au3',
|
||||
\ 'automake': '[mM]akefile.am,GNUmakefile.am',
|
||||
\ 'ave': '*.ave',
|
||||
\ 'awk': '*.awk,*.gawk',
|
||||
\ 'b': '*.mch,*.ref,*.imp',
|
||||
\ 'basic': '*.basic',
|
||||
\ 'bc': '*.bc',
|
||||
\ 'bdf': '*.bdf',
|
||||
\ 'bib': '*.bib',
|
||||
\ 'bindzone': 'named.root',
|
||||
\ 'blade': '*.blade,*.blade.php',
|
||||
\ 'blank': '*.bl',
|
||||
\ 'brewfile': 'Brewfile',
|
||||
\ 'bsdl': '*.bsdl,*bsd',
|
||||
\ 'bst': '*.bst',
|
||||
\ 'bzl': '*.bzl,*.bazel,*.BUILD,BUCK,BUILD,BUILD.bazel,Tiltfile,WORKSPACE',
|
||||
\ 'bzr': 'bzr_log.*',
|
||||
\ 'c': '*.c,*.cats,*.h,*.idc,*.qc',
|
||||
\ 'cabal': '*.cabal',
|
||||
\ 'caddyfile': 'Caddyfile',
|
||||
\ 'calendar': 'calendar',
|
||||
\ 'carp': '*.carp',
|
||||
\ 'catalog': 'catalog,sgml.catalog*',
|
||||
\ 'cdl': '*.cdl',
|
||||
\ 'cdrdaoconf': '.cdrdao',
|
||||
\ 'cdrtoc': '*.toc',
|
||||
\ 'cf': '*.cfm,*.cfi,*.cfc',
|
||||
\ 'cfengine': 'cfengine.conf',
|
||||
\ 'cfg': '*.cfg,*.hgrc,*hgrc',
|
||||
\ 'ch': '*.chf',
|
||||
\ 'chaiscript': '*.chai',
|
||||
\ 'chaskell': '*.chs',
|
||||
\ 'chill': '*..ch',
|
||||
\ 'chordpro': '*.chopro,*.crd,*.cho,*.crdpro,*.chordpro',
|
||||
\ 'cl': '*.eni',
|
||||
\ 'clean': '*.dcl,*.icl',
|
||||
\ 'clojure': '*.clj,*.boot,*.cl2,*.cljc,*.cljs,*.cljs.hl,*.cljscm,*.cljx,*.hic,*.edn,riemann.config,build.boot,profile.boot',
|
||||
\ 'cmake': '*.cmake,*.cmake.in,CMakeLists.txt',
|
||||
\ 'cmod': '*.cmod',
|
||||
\ 'cmusrc': '',
|
||||
\ 'cobol': '*.cbl,*.cob,*.lib',
|
||||
\ 'coco': '*.atg',
|
||||
\ 'coffee': '*.coffee,*._coffee,*.cake,*.cjsx,*.iced,*.coffeekup,Cakefile',
|
||||
\ 'conaryrecipe': '*.recipe',
|
||||
\ 'conf': '*.conf,auto.master,config',
|
||||
\ 'config': 'configure.in,configure.ac,Pipfile',
|
||||
\ 'context': '*.mkii,*.mkiv,*.mkvi',
|
||||
\ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.tcc,*.tpp,*.moc,*.tlh',
|
||||
\ 'cql': '*.cql',
|
||||
\ 'crm': '*.crm',
|
||||
\ 'crontab': 'crontab,crontab.*',
|
||||
\ 'cryptol': '*.cry,*.cyl,*.lcry,*.lcyl',
|
||||
\ 'crystal': '*.cr,Projectfile',
|
||||
\ 'cs': '*.cs',
|
||||
\ 'csc': '*.csc',
|
||||
\ 'csdl': '*.csdl',
|
||||
\ 'csp': '*.csp,*.fdr',
|
||||
\ 'css': '*.css',
|
||||
\ 'csv': '*.csv,*.tsv,*.tab',
|
||||
\ 'cterm': '*.con',
|
||||
\ 'cucumber': '*.feature,*.story',
|
||||
\ 'cuda': '*.cu,*.cuh',
|
||||
\ 'cuesheet': '*.cue',
|
||||
\ 'cupl': '*.pld',
|
||||
\ 'cuplsim': '*.si',
|
||||
\ 'cvs': 'cvs\d\+',
|
||||
\ 'cvsrc': '.cvsrc',
|
||||
\ 'cynpp': '*.cyn',
|
||||
\ 'd': '*.d,*.di',
|
||||
\ 'dart': '*.dart,*.drt',
|
||||
\ 'datascript': '*.ds',
|
||||
\ 'dcd': '*.dcd',
|
||||
\ 'dcov': '*.lst',
|
||||
\ 'dd': '*.dd',
|
||||
\ 'ddoc': '*.ddoc',
|
||||
\ 'debchangelog': 'changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch',
|
||||
\ 'debcontrol': '',
|
||||
\ 'debcopyright': '',
|
||||
\ 'debsources': '',
|
||||
\ 'def': '*.def',
|
||||
\ 'denyhosts': 'denyhosts.conf',
|
||||
\ 'desc': '*.desc',
|
||||
\ 'desktop': '*.desktop,*.directory',
|
||||
\ 'dhall': '*.dhall',
|
||||
\ 'dictconf': 'dict.conf,.dictrc',
|
||||
\ 'dictdconf': 'dictd.conf',
|
||||
\ 'diff': '*.diff,*.rej',
|
||||
\ 'dircolors': '.dir_colors,.dircolors',
|
||||
\ 'dnsmasq': '',
|
||||
\ 'dockerfile': '*.Dockerfile,*.dock,Containerfile,Dockerfile,dockerfile,Dockerfile*',
|
||||
\ 'dosbatch': '*.bat,*.sys',
|
||||
\ 'dosini': '*.wrap,*.ini,*.dof,*.lektorproject,*.prefs,*.pro,*.properties,buildozer.spec,.editorconfig,.npmrc,php.ini-*',
|
||||
\ 'dot': '*.dot,*.gv',
|
||||
\ 'dracula': '*.drac,*.drc,*lvs,*lpe,drac.*',
|
||||
\ 'dsdl': '*.sdl',
|
||||
\ 'dsl': '*.dsl',
|
||||
\ 'dtd': '*.dtd',
|
||||
\ 'dts': '*.dts,*.dtsi',
|
||||
\ 'dune': 'jbuild,dune,dune-project,dune-workspace',
|
||||
\ 'dylan': '*.dylan',
|
||||
\ 'dylanintr': '*.intr',
|
||||
\ 'dylanlid': '*.lid',
|
||||
\ 'ecd': '*.ecd',
|
||||
\ 'ecrystal': '*.ecr',
|
||||
\ 'edif': '*.ed\(f\|if\|o\)',
|
||||
\ 'eelixir': '*.eex,*.leex',
|
||||
\ 'elf': '*.am',
|
||||
\ 'elinks': 'elinks.conf',
|
||||
\ 'elixir': '*.ex,*.exs,mix.lock',
|
||||
\ 'elm': '*.elm',
|
||||
\ 'elmfilt': 'filter-rules',
|
||||
\ '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',
|
||||
\ 'esmtprc': '*esmtprc',
|
||||
\ 'esqlc': '*.ec,*.EC',
|
||||
\ 'esterel': '*.strl',
|
||||
\ 'eterm': '',
|
||||
\ 'exim': 'exim.conf',
|
||||
\ 'expect': '*.exp',
|
||||
\ 'exports': 'exports',
|
||||
\ 'factor': '*.factor',
|
||||
\ 'falcon': '*.fal',
|
||||
\ 'fan': '*.fan,*.fwt',
|
||||
\ 'fbs': '*.fbs',
|
||||
\ 'fennel': '*.fnl',
|
||||
\ 'ferm': '*.ferm,ferm.conf',
|
||||
\ 'fetchmail': '.fetchmailrc',
|
||||
\ 'fgl': '*.4gl,*.4gh,*.m4gl',
|
||||
\ 'fish': '*.fish',
|
||||
\ 'flow': '*.flow',
|
||||
\ 'focexec': '*.fex,*.focexec',
|
||||
\ 'forth': '*.fs,*.ft,*.fth',
|
||||
\ 'fortran': '*.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08',
|
||||
\ 'framescript': '*.fsl',
|
||||
\ 'freebasic': '*.fb,*.bi',
|
||||
\ 'fsharp': '*.fs,*.fsi,*.fsx',
|
||||
\ 'fstab': 'fstab,mtab',
|
||||
\ 'fvwm': '',
|
||||
\ 'gdb': '.gdbinit',
|
||||
\ 'gdmo': '*.mo,*.gdmo',
|
||||
\ 'gdscript3': '*.gd',
|
||||
\ 'gedcom': '*.ged,lltxxxxx.txt',
|
||||
\ 'gitcommit': 'COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG',
|
||||
\ 'gitconfig': '*.gitconfig,.gitconfig,.gitmodules',
|
||||
\ 'gitignore': '.gitignore',
|
||||
\ 'gitolite': 'gitolite.conf',
|
||||
\ 'gitrebase': 'git-rebase-todo',
|
||||
\ 'gitsendemail': '.gitsendemail.*',
|
||||
\ 'gkrellmrc': 'gkrellmrc,gkrellmrc_?',
|
||||
\ 'glsl': '*.glsl,*.fp,*.frag,*.frg,*.fs,*.fsh,*.fshader,*.geo,*.geom,*.glslf,*.glslv,*.gs,*.gshader,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader,*.comp',
|
||||
\ 'gmpl': '*.mod',
|
||||
\ 'gnash': 'gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc',
|
||||
\ 'gnuplot': '*.gp,*.gnu,*.gnuplot,*.p,*.plot,*.plt,*.gpi',
|
||||
\ 'go': '*.go',
|
||||
\ 'gohtmltmpl': '*.tmpl',
|
||||
\ 'gomod': 'go.mod',
|
||||
\ 'gp': '*.gp,.gprc',
|
||||
\ 'gpg': '',
|
||||
\ 'grads': '*.gs',
|
||||
\ 'graphql': '*.graphql,*.gql,*.graphqls',
|
||||
\ 'gretl': '*.gretl',
|
||||
\ 'groovy': '*.groovy,*.grt,*.gtpl,*.gvy,*.gradle,Jenkinsfile',
|
||||
\ 'group': '',
|
||||
\ 'grub': '',
|
||||
\ 'gsp': '*.gsp',
|
||||
\ 'gtkrc': '.gtkrc,gtkrc,.gtkrc*,gtkrc*',
|
||||
\ 'haml': '*.haml,*.haml.deface,*.hamlc,*.hamlbars',
|
||||
\ 'hamster': '*.hsc,*.hsm',
|
||||
\ 'haproxy': 'haproxy*.conf*,haproxy*.cfg*',
|
||||
\ 'haskell': '*.hs,*.hs-boot,*.hsc,*.bpk,*.hsig',
|
||||
\ 'haste': '*.ht',
|
||||
\ 'hastepreproc': '*.htpp',
|
||||
\ 'haxe': '*.hx,*.hxsl',
|
||||
\ 'hb': '*.hb',
|
||||
\ 'hcl': '*.hcl,*.nomad,*.workflow,Appfile',
|
||||
\ 'helm': '',
|
||||
\ 'help': '',
|
||||
\ 'hercules': '*.vc,*.ev,*.sum,*.errsum',
|
||||
\ 'hex': '*.hex,*.h32',
|
||||
\ 'hgcommit': 'hg-editor-*.txt',
|
||||
\ 'hive': '*.q,*.hql,*.ql',
|
||||
\ 'hog': '*.hog,snort.conf,vision.conf',
|
||||
\ 'hollywood': '*.hws',
|
||||
\ 'hostconf': '',
|
||||
\ 'hostsaccess': '',
|
||||
\ 'html': '*.html,*.htm,*.html.hl,*.inc,*.st,*.xht,*.xhtml',
|
||||
\ 'html.handlebars': '*.handlebars,*.hbs,*.hdbs,*.hb',
|
||||
\ 'html.mustache': '*.mustache,*.hogan,*.hulk,*.hjs',
|
||||
\ 'html.twig': '*.twig',
|
||||
\ 'htmldjango': '*.jinja,*.j2,*.jinja2,*.njk',
|
||||
\ 'htmlm4': '*.html.m4',
|
||||
\ 'httest': '*.htt,*.htb',
|
||||
\ 'i3config': '*.i3.config,*.i3config,i3.config,i3config,.i3.config,.i3config',
|
||||
\ 'ibasic': '*.iba,*.ibi',
|
||||
\ 'icalendar': '*.ics',
|
||||
\ 'icemenu': '',
|
||||
\ 'icon': '*.icn',
|
||||
\ 'idris': '*.idr,*.lidr,idris-response',
|
||||
\ 'idris2': '*.idr,*.ipkg,idris-response',
|
||||
\ 'indent': '.indent.pro,indentrc',
|
||||
\ 'inform': '*.inf,*.INF',
|
||||
\ 'initng': '*.ii',
|
||||
\ 'inittab': 'inittab',
|
||||
\ 'ion': '*.ion',
|
||||
\ 'ipfilter': 'ipf.conf,ipf6.conf,ipf.rules',
|
||||
\ 'iss': '*.iss',
|
||||
\ 'ist': '*.ist,*.mst',
|
||||
\ 'j': '*.ijs',
|
||||
\ 'jal': '*.jal,*.JAL',
|
||||
\ 'jam': '*.jpl,*.jpr,Prl*.*,JAM*.*',
|
||||
\ 'java': '*.java,*.jav',
|
||||
\ 'javacc': '*.jj,*.jjt',
|
||||
\ 'javascript': '*.js,*._js,*.bones,*.cjs,*.es,*.es6,*.frag,*.gs,*.jake,*.jsb,*.jscad,*.jsfl,*.jsm,*.jss,*.mjs,*.njs,*.pac,*.sjs,*.ssjs,*.xsjs,*.xsjslib,*.javascript,Jakefile',
|
||||
\ 'javascriptreact': '*.jsx',
|
||||
\ 'jess': '*.clp',
|
||||
\ 'jgraph': '*.jgr',
|
||||
\ 'jovial': '*.jov,*.j73,*.jovial',
|
||||
\ 'jproperties': '*.properties,*.properties_??,*.properties_??_??,*.properties_??_??_*',
|
||||
\ 'jq': '*.jq,.jqrc,.jqrc*',
|
||||
\ 'json': '*.json,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.JSON-tmLanguage,*.jsonl,*.mcmeta,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,*.jsonp,*.template,.arcconfig,.htmlhintrc,.tern-config,.tern-project,.watchmanconfig,composer.lock,mcmod.info,Pipfile.lock',
|
||||
\ 'json5': '*.json5',
|
||||
\ 'jsonnet': '*.jsonnet,*.libsonnet',
|
||||
\ 'jsp': '*.jsp',
|
||||
\ 'jst': '*.ejs,*.ect,*.jst',
|
||||
\ 'julia': '*.jl',
|
||||
\ 'kconfig': 'Kconfig,Kconfig.debug,Kconfig.*',
|
||||
\ 'kivy': '*.kv',
|
||||
\ 'kix': '*.kix',
|
||||
\ 'kotlin': '*.kt,*.ktm,*.kts',
|
||||
\ 'kscript': '*.ks',
|
||||
\ 'kwt': '*.k',
|
||||
\ 'lace': '*.ace,*.ACE',
|
||||
\ 'latte': '*.latte,*.lte',
|
||||
\ 'ld': '*.ld',
|
||||
\ 'ldif': '*.ldif',
|
||||
\ 'ledger': '*.ldg,*.ledger,*.journal',
|
||||
\ 'less': '*.less',
|
||||
\ 'lex': '*.lex,*.l,*.lxx,*.l++',
|
||||
\ 'lftp': 'lftp.conf,.lftprc',
|
||||
\ 'lhaskell': '*.lhs',
|
||||
\ 'libao': '',
|
||||
\ 'lidris2': '*.lidr',
|
||||
\ 'lifelines': '*.ll',
|
||||
\ 'lilo': 'lilo.conf,lilo.conf*',
|
||||
\ 'lilypond': '*.ly,*.ily',
|
||||
\ 'limits': '',
|
||||
\ 'liquid': '*.liquid',
|
||||
\ 'lisp': '*.lsp,*.lisp,*.el,*.cl,.emacs,.sawfishrc,sbclrc,.sbclrc',
|
||||
\ 'litcoffee': '*.litcoffee,*.coffee.md',
|
||||
\ 'lite': '*.lite,*.lt',
|
||||
\ 'litestep': '',
|
||||
\ 'livescript': '*.ls,*._ls,Slakefile',
|
||||
\ 'llvm': '*.ll',
|
||||
\ 'log': '*.log,*.LOG,*_log,*_LOG',
|
||||
\ 'logcheck': '',
|
||||
\ 'loginaccess': '',
|
||||
\ 'logindefs': '',
|
||||
\ 'logtalk': '*.lgt',
|
||||
\ 'lotos': '*.lot,*.lotos',
|
||||
\ 'lout': '*.lou,*.lout',
|
||||
\ 'lpc': '*.lpc,*.ulpc',
|
||||
\ 'lprolog': '*.sig',
|
||||
\ 'lsl': '*.lsl',
|
||||
\ 'lss': '*.lss',
|
||||
\ 'lua': '*.lua,*.fcgi,*.nse,*.p8,*.pd_lua,*.rbxs,*.rockspec,*.wlua,.luacheckrc',
|
||||
\ 'lynx': 'lynx.cfg',
|
||||
\ 'm4': '*.m4,*.at',
|
||||
\ 'mail': '*.eml,snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,{neo,}mutt[[:alnum:]._-]\\\{6\},reportbug-*',
|
||||
\ 'mailaliases': '',
|
||||
\ 'mailcap': '.mailcap,mailcap',
|
||||
\ 'make': '*.mak,*.dsp,*.mk,*[mM]akefile',
|
||||
\ 'mako': '*.mako,*.mao',
|
||||
\ 'mallard': '*.page',
|
||||
\ 'man': '*.1,*.1in,*.1m,*.1x,*.2,*.3,*.3in,*.3m,*.3p,*.3pm,*.3qt,*.3x,*.4,*.5,*.6,*.7,*.8,*.9,*.man,*.mdoc',
|
||||
\ 'manconf': 'man.config',
|
||||
\ 'map': '*.map',
|
||||
\ 'maple': '*.mv,*.mpl,*.mws',
|
||||
\ 'markdown': '*.md,*.markdown,*.mdown,*.mdwn,*.mkd,*.mkdn,*.mkdown,*.ronn,*.workbook,contents.lr',
|
||||
\ 'markdown.mdx': '*.mdx',
|
||||
\ 'mason': '*.mason,*.mhtml,*.comp',
|
||||
\ 'master': '*.mas,*.master',
|
||||
\ 'mel': '*.mel',
|
||||
\ 'meson': 'meson.build,meson_options.txt',
|
||||
\ 'messages': '',
|
||||
\ 'mf': '*.mf',
|
||||
\ 'mgl': '*.mgl',
|
||||
\ 'mgp': '*.mgp',
|
||||
\ 'mib': '*.mib,*.my',
|
||||
\ 'mix': '*.mix,*.mixal',
|
||||
\ 'mma': '*.mathematica,*.cdf,*.m,*.ma,*.mt,*.nb,*.nbp,*.wl,*.wlt,*.wls,*.mma',
|
||||
\ 'mmp': '*.mmp',
|
||||
\ 'modconf': '',
|
||||
\ 'modula2': '*.m2,*.DEF,*.MOD,*.mi',
|
||||
\ 'modula3': '*.[mi][3g]',
|
||||
\ 'monk': '*.isc,*.monk,*.ssc,*.tsc',
|
||||
\ 'moo': '*.moo',
|
||||
\ 'moon': '*.moon',
|
||||
\ 'mp': '*.mp',
|
||||
\ 'mplayerconf': 'mplayer.conf',
|
||||
\ 'mrxvtrc': 'mrxvtrc,.mrxvtrc',
|
||||
\ 'msidl': '*.odl,*.mof',
|
||||
\ 'msql': '*.msql',
|
||||
\ 'mupad': '*.mu',
|
||||
\ 'murphi': '*.m',
|
||||
\ 'mush': '*.mush',
|
||||
\ 'muttrc': '.mutt{ng,}rc*,mutt{ng,}rc*,Mutt{ng,}rc*,Mutt{ng,}rc',
|
||||
\ 'mysql': '*.mysql',
|
||||
\ 'n1ql': '*.n1ql,*.nql',
|
||||
\ 'named': 'named*.conf,rndc*.conf,rndc*.key',
|
||||
\ 'nanorc': '*.nanorc',
|
||||
\ 'natural': '*.NS[ACGLMNPS]',
|
||||
\ 'ncf': '*.ncf',
|
||||
\ 'neomuttrc': 'Neomuttrc,.neomuttrc*,neomuttrc*,Neomuttrc*',
|
||||
\ 'netrc': '.netrc',
|
||||
\ 'nginx': '*.nginx,*.nginxconf,*.vhost,nginx.conf,nginx*.conf,*nginx.conf',
|
||||
\ 'nim': '*.nim,*.nim.cfg,*.nimble,*.nimrod,*.nims,nim.cfg',
|
||||
\ 'ninja': '*.ninja',
|
||||
\ 'nix': '*.nix',
|
||||
\ 'nqc': '*.nqc',
|
||||
\ 'nroff': '*.tr,*.nr,*.roff,*.tmac,*.mom,tmac.*',
|
||||
\ 'nsis': '*.nsi,*.nsh',
|
||||
\ 'oasis': '_oasis',
|
||||
\ 'obj': '*.obj',
|
||||
\ 'objc': '*.m,*.h',
|
||||
\ 'ocaml': '*.ml,*.eliom,*.eliomi,*.ml4,*.mli,*.mll,*.mly,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo,.ocamlinit',
|
||||
\ 'ocamlbuild_tags': '_tags',
|
||||
\ 'occam': '*.occ',
|
||||
\ 'ocpbuild': '*.ocp',
|
||||
\ 'ocpbuildroot': '*.root',
|
||||
\ 'octave': '*.oct,*.m',
|
||||
\ 'odin': '*.odin',
|
||||
\ 'omake': '*.om,OMakefile,OMakeroot,OMakeroot.in',
|
||||
\ 'omnimark': '*.xom,*.xin',
|
||||
\ 'opam': '*.opam,*.opam.template,opam',
|
||||
\ 'opencl': '*.cl,*.opencl',
|
||||
\ 'openroad': '*.or',
|
||||
\ 'opl': '*.[Oo][Pp][Ll]',
|
||||
\ 'ora': '*.ora',
|
||||
\ 'pamconf': '',
|
||||
\ 'pamenv': 'pam_env.conf,.pam_environment',
|
||||
\ 'papp': '*.papp,*.pxml,*.pxsl',
|
||||
\ 'pascal': '*.pas,*.pp,*.dpr,*.lpr',
|
||||
\ 'passwd': '',
|
||||
\ 'pccts': '*.g',
|
||||
\ 'pcmk': '*.pcmk',
|
||||
\ 'pdf': '*.pdf',
|
||||
\ 'perl': '*.pl,*.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.pm,*.psgi,*.t,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc,.gitolite.rc',
|
||||
\ 'pf': 'pf.conf',
|
||||
\ 'pfmain': 'main.cf',
|
||||
\ 'php': '*.php,*.aw,*.ctp,*.fcgi,*.inc,*.php3,*.php4,*.php5,*.phps,*.phpt,*.phtml,*.php9,.php,.php_cs,.php_cs.dist,Phakefile',
|
||||
\ 'pike': '*.pike,*.pmod',
|
||||
\ 'pilrc': '*.rcp',
|
||||
\ 'pine': '.pinerc,pinerc,.pinercex,pinercex',
|
||||
\ 'pinfo': '',
|
||||
\ 'plantuml': '*.puml,*.iuml,*.plantuml,*.uml,*.pu',
|
||||
\ 'pli': '*.pli,*.pl1',
|
||||
\ 'plm': '*.plm,*.p36,*.pac',
|
||||
\ 'plp': '*.plp',
|
||||
\ 'plsql': '*.pls,*.plsql',
|
||||
\ 'po': '*.po,*.pot',
|
||||
\ 'pod': '*.pod',
|
||||
\ 'pony': '*.pony',
|
||||
\ 'postscr': '*.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai',
|
||||
\ 'pov': '*.pov',
|
||||
\ 'povini': '.povrayrc',
|
||||
\ 'ppd': '*.ppd',
|
||||
\ 'ppwiz': '*.it,*.ih',
|
||||
\ 'privoxy': '*.action',
|
||||
\ 'proc': '*.pc',
|
||||
\ 'procmail': '.procmail,.procmailrc',
|
||||
\ 'prolog': '*.pl,*.pro,*.prolog,*.yap,*.pdb',
|
||||
\ 'promela': '*.pml',
|
||||
\ 'proto': '*.proto',
|
||||
\ 'protocols': '',
|
||||
\ 'ps1': '*.ps1,*.psd1,*.psm1,*.pssc',
|
||||
\ 'ps1xml': '*.ps1xml',
|
||||
\ 'psf': '*.psf',
|
||||
\ 'pug': '*.jade,*.pug',
|
||||
\ 'pullrequest': 'PULLREQ_EDITMSG',
|
||||
\ 'puppet': '*.pp,Modulefile',
|
||||
\ 'purescript': '*.purs',
|
||||
\ 'pyrex': '*.pyx,*.pxd',
|
||||
\ 'python': '*.py,*.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.smk,*.spec,*.tac,*.wsgi,*.xpy,*.ptl,.gclient,DEPS,SConscript,SConstruct,Snakefile,wscript,.pythonrc,.pythonstartup',
|
||||
\ 'qmake': '*.pro,*.pri',
|
||||
\ 'qml': '*.qml,*.qbs',
|
||||
\ 'quake': '',
|
||||
\ 'r': '*.r,*.rsx,*.s,*.S,.Rprofile,expr-dist',
|
||||
\ 'racket': '*.rkt,*.rktd,*.rktl,*.scrbl',
|
||||
\ 'radiance': '*.rad,*.mat',
|
||||
\ 'ragel': '*.rl',
|
||||
\ 'raku': '*.6pl,*.6pm,*.nqp,*.p6,*.p6l,*.p6m,*.pl,*.pl6,*.pm,*.pm6,*.t,*.rakudoc,*.rakutest,*.raku,*.rakumod,*.pod6,*.t6',
|
||||
\ 'raml': '*.raml',
|
||||
\ 'ratpoison': '.ratpoisonrc,ratpoisonrc',
|
||||
\ 'razor': '*.cshtml,*.razor',
|
||||
\ 'rc': '*.rc,*.rch',
|
||||
\ 'rcs': '*\,v',
|
||||
\ 'readline': '.inputrc,inputrc',
|
||||
\ 'reason': '*.re,*.rei',
|
||||
\ 'rego': '*.rego',
|
||||
\ 'remind': '*.remind,*.rem,.reminders,.reminders*',
|
||||
\ 'requirements': '*.pip,*requirements.{txt,in},*require.{txt,in},constraints.{txt,in}',
|
||||
\ 'resolv': 'resolv.conf',
|
||||
\ 'reva': '*.frt',
|
||||
\ 'rexx': '*.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit',
|
||||
\ 'rhelp': '*.rd',
|
||||
\ 'rib': '*.rib',
|
||||
\ 'rmd': '*.rmd,*.smd',
|
||||
\ 'rnc': '*.rnc',
|
||||
\ 'rng': '*.rng',
|
||||
\ 'rnoweb': '*.rnw,*.snw',
|
||||
\ 'robots': 'robots.txt',
|
||||
\ 'rpcgen': '*.x',
|
||||
\ 'rpl': '*.rpl',
|
||||
\ 'rrst': '*.rrst,*.srst',
|
||||
\ 'rst': '*.rst,*.rest,*.rest.txt,*.rst.txt',
|
||||
\ 'rtf': '*.rtf',
|
||||
\ '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,.irbrc,.pryrc,.simplecov,Appraisals,Berksfile,Buildfile,Capfile,Dangerfile,Deliverfile,Fastfile,Gemfile,Gemfile.lock,Guardfile,Jarfile,Mavenfile,Podfile,Puppetfile,Rakefile,Snapfile,Thorfile,Vagrantfile,buildfile,[Rr]antfile,.autotest,Cheffile,KitchenSink,Routefile,.Guardfile,.Brewfile,vagrantfile,[Rr]akefile*,*_spec.rb',
|
||||
\ 'rust': '*.rs,*.rs.in',
|
||||
\ 'samba': 'smb.conf',
|
||||
\ 'sas': '*.sas',
|
||||
\ 'sass': '*.sass',
|
||||
\ 'sather': '*.sa',
|
||||
\ 'sbt': '*.sbt',
|
||||
\ 'scala': '*.scala,*.kojo,*.sc',
|
||||
\ 'scheme': '*.scm,*.ss,*.rkt',
|
||||
\ 'scilab': '*.sci,*.sce',
|
||||
\ 'screen': '.screenrc,screenrc',
|
||||
\ 'scss': '*.scss',
|
||||
\ 'sd': '*.sd',
|
||||
\ 'sdc': '*.sdc',
|
||||
\ 'sdl': '*.sdl,*.pr',
|
||||
\ 'sed': '*.sed',
|
||||
\ 'sensors': '',
|
||||
\ 'services': '',
|
||||
\ 'setserial': '',
|
||||
\ 'sexplib': '*.sexp',
|
||||
\ 'sh': '*.sh,*.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh.in,*.tmux,*.tool,.bash_aliases,.bash_history,.bash_logout,.bash_profile,.bashrc,.cshrc,.env,.env.example,.flaskenv,.login,.profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,login,man,profile',
|
||||
\ 'sieve': '*.siv,*.sieve',
|
||||
\ 'sil': '*.sil',
|
||||
\ 'simula': '*.sim',
|
||||
\ 'sinda': '*.sin,*.s85',
|
||||
\ 'sisu': '*.sst,*.ssm,*.ssi,*.-sst,*._sst,*.sst.meta,*.-sst.meta,*._sst.meta',
|
||||
\ 'skill': '*.il,*.ils,*.cdf',
|
||||
\ 'slang': '*.sl',
|
||||
\ 'slice': '*.ice',
|
||||
\ 'slim': '*.slim',
|
||||
\ 'slime': '*.slime',
|
||||
\ 'slpconf': '',
|
||||
\ 'slpreg': '',
|
||||
\ 'slpspi': '',
|
||||
\ 'slrnrc': '.slrnrc',
|
||||
\ 'slrnsc': '*.score',
|
||||
\ 'sm': 'sendmail.cf',
|
||||
\ 'smarty': '*.tpl',
|
||||
\ 'smcl': '*.hlp,*.ihlp,*.smcl',
|
||||
\ 'smith': '*.smt,*.smith',
|
||||
\ 'sml': '*.sml',
|
||||
\ 'smt2': '*.smt2,*.smt',
|
||||
\ 'snobol4': '*.sno,*.spt',
|
||||
\ 'solidity': '*.sol',
|
||||
\ 'spec': '*.spec',
|
||||
\ 'spice': '*.sp,*.spice',
|
||||
\ 'spup': '*.speedup,*.spdata,*.spd',
|
||||
\ 'spyce': '*.spy,*.spi',
|
||||
\ 'sql': '*.pgsql,*.pls,*.bdy,*.ddl,*.fnc,*.pck,*.pkb,*.pks,*.plb,*.plsql,*.prc,*.spc,*.sql,*.tpb,*.tps,*.trg,*.vw,*.tyb,*.typ,*.tyc',
|
||||
\ 'sqlj': '*.sqlj',
|
||||
\ 'sqr': '*.sqr,*.sqi',
|
||||
\ 'squid': 'squid.conf',
|
||||
\ 'srec': '*.s19,*.s28,*.s37,*.mot,*.srec',
|
||||
\ 'sshconfig': 'ssh_config',
|
||||
\ 'sshdconfig': 'sshd_config',
|
||||
\ 'st': '*.st',
|
||||
\ 'stata': '*.ado,*.do,*.imata,*.mata',
|
||||
\ 'stp': '*.stp',
|
||||
\ 'stylus': '*.styl,*.stylus',
|
||||
\ 'sudoers': 'sudoers.tmp',
|
||||
\ 'svelte': '*.svelte',
|
||||
\ 'svg': '*.svg',
|
||||
\ 'svn': 'svn-commit*.tmp',
|
||||
\ 'swift': '*.swift',
|
||||
\ 'swiftgyb': '*.swift.gyb',
|
||||
\ 'sxhkdrc': '*.sxhkdrc,sxhkdrc',
|
||||
\ 'sysctl': '',
|
||||
\ 'systemd': '*.automount,*.dnssd,*.link,*.mount,*.netdev,*.network,*.nspawn,*.path,*.service,*.slice,*.socket,*.swap,*.target,*.timer,*.#*',
|
||||
\ 'systemverilog': '*.sv,*.svh',
|
||||
\ 'tablegen': '*.td',
|
||||
\ 'tads': '*.t',
|
||||
\ 'tags': 'tags',
|
||||
\ 'tak': '*.tak',
|
||||
\ 'taskdata': '{pending,completed,undo}.data',
|
||||
\ 'taskedit': '*.task',
|
||||
\ 'tcl': '*.tcl,*.tk,*.itcl,*.itk,*.jacl',
|
||||
\ 'template': '*.tmpl',
|
||||
\ 'teraterm': '*.ttl',
|
||||
\ 'terminfo': '*.ti',
|
||||
\ 'terraform': '*.tf,*.tfvars',
|
||||
\ 'tex': '*.latex,*.sty,*.dtx,*.ltx,*.bbl',
|
||||
\ 'texinfo': '*.texinfo,*.texi,*.txi',
|
||||
\ 'texmf': 'texmf.cnf',
|
||||
\ 'text': '*.text,README',
|
||||
\ 'textile': '*.textile',
|
||||
\ 'tf': '*.tf,.tfrc,tfrc',
|
||||
\ 'thrift': '*.thrift',
|
||||
\ 'tidy': '.tidyrc,tidyrc,tidy.conf',
|
||||
\ 'tilde': '*.t.html',
|
||||
\ 'tli': '*.tli',
|
||||
\ 'tmux': '.tmux*.conf',
|
||||
\ 'toml': '*.toml,Cargo.lock,Gopkg.lock,poetry.lock,Pipfile',
|
||||
\ 'tpp': '*.tpp',
|
||||
\ 'tptp': '*.p,*.tptp,*.ax',
|
||||
\ 'trasys': '*.inp',
|
||||
\ 'treetop': '*.treetop',
|
||||
\ 'trustees': 'trustees.conf',
|
||||
\ 'tsalt': '*.slt',
|
||||
\ 'tsscl': '*.tsscl',
|
||||
\ 'tssgm': '*.tssgm',
|
||||
\ 'tssop': '*.tssop',
|
||||
\ 'tt2': '*.tt2',
|
||||
\ 'tt2html': '*.tt2',
|
||||
\ 'typescript': '*.ts',
|
||||
\ 'typescriptreact': '*.tsx',
|
||||
\ 'uc': '*.uc',
|
||||
\ 'udevconf': '',
|
||||
\ 'udevperm': '',
|
||||
\ 'uil': '*.uit,*.uil',
|
||||
\ 'unison': '*.u,*.uu',
|
||||
\ 'updatedb': '',
|
||||
\ 'upstart': '',
|
||||
\ 'upstreamdat': '*.upstream.dat\c,upstream.dat\c,upstream.*.dat\c',
|
||||
\ 'upstreaminstalllog': '*.upstreaminstall.log\c,upstreaminstall.log\c,upstreaminstall.*.log\c',
|
||||
\ 'upstreamlog': '*.upstream.log\c,fdrupstream.log,upstream.log\c,upstream.*.log\c,UPSTREAM-*.log\c',
|
||||
\ 'usserverlog': '*.usserver.log\c,usserver.log\c,usserver.*.log\c',
|
||||
\ 'usw2kagtlog': '*.usw2kagt.log\c,usw2kagt.log\c,usw2kagt.*.log\c',
|
||||
\ 'vala': '*.vala,*.vapi,*.valadoc',
|
||||
\ 'vb': '*.bas,*.cls,*.frm,*.frx,*.vba,*.vbs,*.dsm,*.ctl,*.sba',
|
||||
\ 'vbnet': '*.vb,*.vbhtml',
|
||||
\ 'vcl': '*.vcl',
|
||||
\ 'velocity': '*.vm',
|
||||
\ 'vera': '*.vr,*.vri,*.vrh',
|
||||
\ 'verilog': '*.v',
|
||||
\ 'verilogams': '*.va,*.vams',
|
||||
\ 'vgrindefs': 'vgrindefs',
|
||||
\ 'vhdl': '*.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho,*.vhdl_[0-9]*',
|
||||
\ 'vim': '*.vim,*.vba,.exrc,_exrc,*vimrc*',
|
||||
\ 'viminfo': '.viminfo,_viminfo',
|
||||
\ 'vlang': '*.v,*.vv,*.vsh',
|
||||
\ 'vmasm': '*.mar',
|
||||
\ 'voscm': '*.cm',
|
||||
\ 'vrml': '*.wrl',
|
||||
\ 'vroom': '*.vroom',
|
||||
\ 'vue': '*.vue,*.wpy',
|
||||
\ 'wast': '*.wast,*.wat',
|
||||
\ 'webmacro': '*.wm',
|
||||
\ 'wget': '.wgetrc,wgetrc',
|
||||
\ 'winbatch': '*.wbt',
|
||||
\ 'wml': '*.wml',
|
||||
\ 'wsh': '*.ws[fc]',
|
||||
\ 'wsml': '*.wsml',
|
||||
\ 'wvdial': 'wvdial.conf,.wvdialrc',
|
||||
\ 'xdc': '*.xdc',
|
||||
\ 'xdefaults': '*.ad,.Xdefaults,.Xpdefaults,.Xresources,xdm-config,Xresources*',
|
||||
\ 'xf86conf': 'XF86Config-4*,XF86Config*,xorg.conf,xorg.conf-4',
|
||||
\ 'xhtml': '*.xhtml,*.xht',
|
||||
\ 'xinetd': '',
|
||||
\ 'xmath': '*.msc,*.msf',
|
||||
\ '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,*.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,*.tpm,*.csproj.user,*.wpl,.classpath,.cproject,.project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config,*fglrxrc',
|
||||
\ 'xml.twig': '*.xml.twig',
|
||||
\ 'xmodmap': '*Xmodmap,*xmodmap*',
|
||||
\ 'xpm': '*.xpm,*.pm',
|
||||
\ 'xpm2': '*.xpm2',
|
||||
\ 'xquery': '*.xq,*.xql,*.xqm,*.xquery,*.xqy',
|
||||
\ 'xs': '*.xs',
|
||||
\ 'xsd': '*.xsd',
|
||||
\ 'xsl': '*.xslt,*.xsl',
|
||||
\ 'xslt': '*.xsl,*.xslt',
|
||||
\ 'yacc': '*.yy,*.yxx,*.y++',
|
||||
\ 'yaml': '*.yml,*.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml.mysql,.clang-format,.clang-tidy,.gemrc,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',
|
||||
\ 'z8a': '*.z8a',
|
||||
\ 'zephir': '*.zep',
|
||||
\ 'zig': '*.zig,*.zir',
|
||||
\ 'zimbu': '*.zu',
|
||||
\ 'zimbutempl': '*.zut',
|
||||
\ 'zir': '*.zir',
|
||||
\ 'zsh': '*.zsh,.zshrc,.zshenv,.zlogin,.zprofile,.zlogout,.zlog*,.zcompdump*,.zfbfmarks,.zsh*',
|
||||
\}
|
||||
|
||||
|
||||
" DO NOT EDIT CODE ABOVE, IT IS GENERATED WITH MAKEFILE
|
||||
|
||||
func! polyglot#sleuth#GlobForFiletype(type)
|
||||
return get(s:globs, a:type, '')
|
||||
endfunc
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -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)
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
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',
|
||||
\ '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',
|
||||
\ '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',
|
||||
\ 'pony': '*.pony',
|
||||
\ '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',
|
||||
\ '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',
|
||||
\ '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',
|
||||
\ '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',
|
||||
|
||||
134
autoload/xml/xsd.vim
Normal file
134
autoload/xml/xsd.vim
Normal file
@@ -0,0 +1,134 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xsd') == -1
|
||||
|
||||
" Author: Thomas Barthel
|
||||
" Last change: 2007 May 8
|
||||
let g:xmldata_xsd = {
|
||||
\ 'schema': [
|
||||
\ [ 'include', 'import', 'redefine', 'annotation', 'simpleType', 'complexType', 'element', 'attribute', 'attributeGroup', 'group', 'notation', 'annotation'],
|
||||
\ { 'targetNamespace' : [], 'version' : [], 'xmlns' : [], 'finalDefault' : [], 'blockDefault' : [], 'id' : [], 'elementFormDefault' : [], 'attributeFormDefault' : [], 'xml:lang' : [] }],
|
||||
\ 'redefine' : [
|
||||
\ ['annotation', 'simpleType', 'complexType', 'attributeGroup', 'group'],
|
||||
\ {'schemaLocation' : [], 'id' : []} ],
|
||||
\ 'include' : [
|
||||
\ ['annotation'],
|
||||
\ {'namespace' : [], 'id' : []} ],
|
||||
\ 'import' : [
|
||||
\ ['annotation'],
|
||||
\ {'namespace' : [], 'schemaLocation' : [], 'id' : []} ],
|
||||
\ 'complexType' : [
|
||||
\ ['annotation', 'simpleContent', 'complexContent', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
|
||||
\ {'name' : [], 'id' : [], 'abstract' : [], 'final' : [], 'block' : [], 'mixed' : []} ],
|
||||
\ 'complexContent' : [
|
||||
\ ['annotation', 'restriction', 'extension'],
|
||||
\ {'mixed' : [], 'id' : [] } ],
|
||||
\ 'simpleType' : [
|
||||
\ ['annotation', 'restriction', 'list', 'union'],
|
||||
\ {'name' : [], 'final' : [], 'id' : []} ],
|
||||
\ 'simpleContent' : [
|
||||
\ ['annotation', 'restriction', 'extension'],
|
||||
\ {'id' : []} ],
|
||||
\ 'element' : [
|
||||
\ ['annotation', 'complexType', 'simpleType', 'unique', 'key', 'keyref'],
|
||||
\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'minOccurs' : [], 'maxOccurs' : [], 'nillable' : [], 'substitutionGroup' : [], 'abstract' : [], 'final' : [], 'block' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
|
||||
\ 'attribute' : [
|
||||
\ ['annotation', 'simpleType'],
|
||||
\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'use' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
|
||||
\ 'group' : [
|
||||
\ ['annotation', 'all', 'choice', 'sequence'],
|
||||
\ {'name' : [], 'ref' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
|
||||
\ 'choice' : [
|
||||
\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
|
||||
\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
|
||||
\ 'sequence' : [
|
||||
\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
|
||||
\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
|
||||
\ 'all' : [
|
||||
\ ['annotation', 'element'],
|
||||
\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
|
||||
\ 'any' : [
|
||||
\ ['annotation'],
|
||||
\ {'namespace' : [], 'processContents' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
|
||||
\ 'unique' : [
|
||||
\ ['annotation', 'selector', 'field'],
|
||||
\ {'name' : [], 'id' : []} ],
|
||||
\ 'key' : [
|
||||
\ ['annotation', 'selector', 'field'],
|
||||
\ {'name' : [], 'id' : []} ],
|
||||
\ 'keyref' : [
|
||||
\ ['annotation', 'selector', 'field'],
|
||||
\ {'name' : [], 'refer' : [], 'id' : []} ],
|
||||
\ 'selector' : [
|
||||
\ ['annotation'],
|
||||
\ {'xpath' : [], 'id' : []} ],
|
||||
\ 'field' : [
|
||||
\ ['annotation'],
|
||||
\ {'xpath' : [], 'id' : []} ],
|
||||
\ 'restriction' : [
|
||||
\ ['annotation', 'simpleType', 'minExclusive', 'maxExclusive', 'minInclusive', 'maxInclusive', 'totalDigits', 'fractionDigits', 'length', 'minLength', 'maxLength', 'enumeration', 'whiteSpace', 'pattern'],
|
||||
\ {'base' : [], 'id' : []} ],
|
||||
\ 'minExclusive' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'maxExclusive' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'minInclusive' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'maxInclusive' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'totalDigits' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'fractionDigits' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'length' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'minLength' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'maxLength' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'enumeration' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : []}],
|
||||
\ 'whiteSpace' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : [], 'fixed' : []}],
|
||||
\ 'pattern' : [
|
||||
\ ['annotation'],
|
||||
\ {'value' : [], 'id' : []}],
|
||||
\ 'extension' : [
|
||||
\ ['annotation', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
|
||||
\ {'base' : [], 'id' : []} ],
|
||||
\ 'attributeGroup' : [
|
||||
\ ['annotation', 'attribute', 'attributeGroup', 'anyAttribute'],
|
||||
\ {'name' : [], 'id' : [], 'ref' : []} ],
|
||||
\ 'anyAttribute' : [
|
||||
\ ['annotation'],
|
||||
\ {'namespace' : [], 'processContents' : [], 'id' : []} ],
|
||||
\ 'list' : [
|
||||
\ ['annotation', 'simpleType'],
|
||||
\ {'itemType' : [], 'id' : []} ],
|
||||
\ 'union' : [
|
||||
\ ['annotation', 'simpleType'],
|
||||
\ {'id' : [], 'memberTypes' : []} ],
|
||||
\ 'notation' : [
|
||||
\ ['annotation'],
|
||||
\ {'name' : [], 'id' : [], 'public' : [], 'system' : []} ],
|
||||
\ 'annotation' : [
|
||||
\ ['appinfo', 'documentation'],
|
||||
\ {} ],
|
||||
\ 'appinfo' : [
|
||||
\ [],
|
||||
\ {'source' : [], 'id' : []} ],
|
||||
\ 'documentation' : [
|
||||
\ [],
|
||||
\ {'source' : [], 'id' : [], 'xml' : []} ]
|
||||
\ }
|
||||
|
||||
endif
|
||||
26
compiler/bdf.vim
Normal file
26
compiler/bdf.vim
Normal file
@@ -0,0 +1,26 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bdf') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: BDF to PCF Conversion
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2006-04-19
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "bdf"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
setlocal makeprg=bdftopcf\ $*
|
||||
|
||||
setlocal errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
|
||||
\%-Z%p^,
|
||||
\%Cbdftopcf:\ bdf\ input\\,\ %f\\,\ corrupt,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
30
compiler/cs.vim
Normal file
30
compiler/cs.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cs') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Microsoft Visual Studio C#
|
||||
" Maintainer: Yichao Zhou (broken.zhou@gmail.com)
|
||||
" Previous Maintainer: Joseph H. Yao (hyao@sina.com)
|
||||
" Last Change: Jul 22, 2019
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "cs"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet errorformat&
|
||||
CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m,
|
||||
\%trror%*[^:]:\ %m,
|
||||
\%tarning%*[^:]:\ %m
|
||||
|
||||
CompilerSet makeprg=csc\ %:S
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
endif
|
||||
19
compiler/dot.vim
Normal file
19
compiler/dot.vim
Normal file
@@ -0,0 +1,19 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dot') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: ATT dot
|
||||
" Maintainer: Marcos Macedo <bar4ka@bol.com.br>
|
||||
" Last Change: 2004 May 16
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dot"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=dot\ -T$*\ \"%:p\"\ -o\ \"%:p:r.$*\"
|
||||
|
||||
endif
|
||||
@@ -1,12 +1,12 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
|
||||
|
||||
if exists("current_compiler")
|
||||
if exists('current_compiler')
|
||||
finish
|
||||
endif
|
||||
|
||||
let current_compiler = "nim"
|
||||
let current_compiler = 'nim'
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
if exists(':CompilerSet') != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
|
||||
34
compiler/sass.vim
Normal file
34
compiler/sass.vim
Normal file
@@ -0,0 +1,34 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sass') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "sass"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=sass
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||
\%ESyntax\ %trror:%m,
|
||||
\%C%\\s%\\+on\ line\ %l\ of\ %f,
|
||||
\%Z%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
|
||||
endif
|
||||
21
compiler/tcl.vim
Normal file
21
compiler/tcl.vim
Normal file
@@ -0,0 +1,21 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tcl') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: tcl
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "tcl"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=tcl
|
||||
|
||||
CompilerSet errorformat=%EError:\ %m,%+Z\ %\\{4}(file\ \"%f\"\ line\ %l),%-G%.%#
|
||||
|
||||
endif
|
||||
71
compiler/tex.vim
Normal file
71
compiler/tex.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tex') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: TeX
|
||||
" Maintainer: Artem Chuprina <ran@ran.pp.ru>
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
" If makefile exists and we are not asked to ignore it, we use standard make
|
||||
" (do not redefine makeprg)
|
||||
if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') ||
|
||||
\(!filereadable('Makefile') && !filereadable('makefile'))
|
||||
" If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
|
||||
" otherwize the same for global variable with same name, else it will be
|
||||
" LaTeX
|
||||
if exists("b:tex_flavor")
|
||||
let current_compiler = b:tex_flavor
|
||||
elseif exists("g:tex_flavor")
|
||||
let current_compiler = g:tex_flavor
|
||||
else
|
||||
let current_compiler = "latex"
|
||||
endif
|
||||
let &l:makeprg=current_compiler.' -interaction=nonstopmode'
|
||||
else
|
||||
let current_compiler = 'make'
|
||||
endif
|
||||
|
||||
" Value errorformat are taken from vim help, see :help errorformat-LaTeX, with
|
||||
" addition from Srinath Avadhanula <srinath@fastmail.fm>
|
||||
CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
|
||||
\%E!\ %m,
|
||||
\%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#,
|
||||
\%+W%.%#\ at\ lines\ %l--%*\\d,
|
||||
\%WLaTeX\ %.%#Warning:\ %m,
|
||||
\%Cl.%l\ %m,
|
||||
\%+C\ \ %m.,
|
||||
\%+C%.%#-%.%#,
|
||||
\%+C%.%#[]%.%#,
|
||||
\%+C[]%.%#,
|
||||
\%+C%.%#%[{}\\]%.%#,
|
||||
\%+C<%.%#>%.%#,
|
||||
\%C\ \ %m,
|
||||
\%-GSee\ the\ LaTeX%m,
|
||||
\%-GType\ \ H\ <return>%m,
|
||||
\%-G\ ...%.%#,
|
||||
\%-G%.%#\ (C)\ %.%#,
|
||||
\%-G(see\ the\ transcript%.%#),
|
||||
\%-G\\s%#,
|
||||
\%+O(%*[^()])%r,
|
||||
\%+O%*[^()](%*[^()])%r,
|
||||
\%+P(%f%r,
|
||||
\%+P\ %\\=(%f%r,
|
||||
\%+P%*[^()](%f%r,
|
||||
\%+P[%\\d%[^()]%#(%f%r,
|
||||
\%+Q)%r,
|
||||
\%+Q%*[^()])%r,
|
||||
\%+Q[%\\d%*[^()])%r
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
endif
|
||||
23
compiler/tidy.vim
Normal file
23
compiler/tidy.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tidy') == -1
|
||||
|
||||
" Vim compiler file
|
||||
" Compiler: HTML Tidy
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2016 Apr 21
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "tidy"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %:S
|
||||
|
||||
" foo.html:8:1: Warning: inserting missing 'foobar' element
|
||||
" foo.html:9:2: Error: <foobar> is not recognized!
|
||||
CompilerSet errorformat=%f:%l:%c:\ %trror:%m,%f:%l:%c:\ %tarning:%m,%-G%.%#
|
||||
|
||||
endif
|
||||
185
doc/clojure.txt
185
doc/clojure.txt
@@ -1,185 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
|
||||
|
||||
*clojure.txt* Clojure runtime files
|
||||
|
||||
INTRODUCTION *clojure-introduction*
|
||||
|
||||
Meikel Brandmeyer's excellent Clojure runtime files. Includes syntax, indent,
|
||||
ftdetect, and ftplugin scripts.
|
||||
|
||||
CLOJURE *ft-clojure-indent* *clojure-indent*
|
||||
|
||||
Clojure indentation differs somewhat from traditional Lisps, due in part to
|
||||
the use of square and curly brackets, and otherwise by community convention.
|
||||
These conventions are not universally followed, so the Clojure indent script
|
||||
offers a few configurable options, listed below.
|
||||
|
||||
If the current vim does not include searchpairpos(), the indent script falls
|
||||
back to normal 'lisp' indenting, and the following options are ignored.
|
||||
|
||||
*g:clojure_maxlines*
|
||||
|
||||
Set maximum scan distance of searchpairpos(). Larger values trade performance
|
||||
for correctness when dealing with very long forms. A value of 0 will scan
|
||||
without limits.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_maxlines = 100
|
||||
<
|
||||
*g:clojure_fuzzy_indent*
|
||||
*g:clojure_fuzzy_indent_patterns*
|
||||
*g:clojure_fuzzy_indent_blacklist*
|
||||
|
||||
The 'lispwords' option is a list of comma-separated words that mark special
|
||||
forms whose subforms must be indented with two spaces.
|
||||
|
||||
For example:
|
||||
>
|
||||
(defn bad []
|
||||
"Incorrect indentation")
|
||||
|
||||
(defn good []
|
||||
"Correct indentation")
|
||||
<
|
||||
If you would like to specify 'lispwords' with a |pattern| instead, you can use
|
||||
the fuzzy indent feature:
|
||||
>
|
||||
" Default
|
||||
let g:clojure_fuzzy_indent = 1
|
||||
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
|
||||
let g:clojure_fuzzy_indent_blacklist =
|
||||
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||
|
||||
" Legacy comma-delimited string version; the list format above is
|
||||
" recommended. Note that patterns are implicitly anchored with ^ and $
|
||||
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
|
||||
<
|
||||
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|
||||
|Lists| of patterns that will be matched against the unquoted, unqualified
|
||||
symbol at the head of a list. This means that a pattern like "^foo" will match
|
||||
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
|
||||
|
||||
Each candidate word is tested for special treatment in this order:
|
||||
|
||||
1. Return true if word is literally in 'lispwords'
|
||||
2. Return false if word matches a pattern in
|
||||
|g:clojure_fuzzy_indent_blacklist|
|
||||
3. Return true if word matches a pattern in
|
||||
|g:clojure_fuzzy_indent_patterns|
|
||||
4. Return false and indent normally otherwise
|
||||
|
||||
*g:clojure_special_indent_words*
|
||||
|
||||
Some forms in Clojure are indented so that every subform is indented only two
|
||||
spaces, regardless of 'lispwords'. If you have a custom construct that should
|
||||
be indented in this idiosyncratic fashion, you can add your symbols to the
|
||||
default list below.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_special_indent_words =
|
||||
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||
<
|
||||
*g:clojure_align_multiline_strings*
|
||||
|
||||
Align subsequent lines in multiline strings to the column after the opening
|
||||
quote, instead of the same column.
|
||||
|
||||
For example:
|
||||
>
|
||||
(def default
|
||||
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
||||
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
|
||||
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
||||
nisi ut aliquip ex ea commodo consequat.")
|
||||
|
||||
(def aligned
|
||||
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
||||
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
|
||||
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
||||
nisi ut aliquip ex ea commodo consequat.")
|
||||
<
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
<
|
||||
*g:clojure_align_subforms*
|
||||
|
||||
By default, parenthesized compound forms that look like function calls and
|
||||
whose head subform is on its own line have subsequent subforms indented by
|
||||
two spaces relative to the opening paren:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
Setting this option changes this behavior so that all subforms are aligned to
|
||||
the same column, emulating the default behavior of clojure-mode.el:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_align_subforms = 0
|
||||
<
|
||||
|
||||
CLOJURE *ft-clojure-syntax*
|
||||
|
||||
The default syntax groups can be augmented through the
|
||||
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
|
||||
value should be a |Dictionary| of syntax group names to a |List| of custom
|
||||
identifiers:
|
||||
>
|
||||
let g:clojure_syntax_keywords = {
|
||||
\ 'clojureMacro': ["defproject", "defcustom"],
|
||||
\ 'clojureFunc': ["string/join", "string/replace"]
|
||||
\ }
|
||||
<
|
||||
Refer to the Clojure syntax script for valid syntax group names.
|
||||
|
||||
If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
|
||||
language constants and special forms are matched.
|
||||
|
||||
Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
|
||||
Any list, vector, or map that extends over more than one line can be folded
|
||||
using the standard Vim |fold-commands|.
|
||||
|
||||
Please note that this option does not work with scripts that redefine the
|
||||
bracket syntax regions, such as rainbow-parentheses plugins.
|
||||
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_fold = 0
|
||||
<
|
||||
|
||||
ABOUT *clojure-about*
|
||||
|
||||
This document and associated runtime files are maintained at:
|
||||
https://github.com/guns/vim-clojure-static
|
||||
|
||||
Distributed under the Vim license. See |license|.
|
||||
|
||||
syntax/clojure.vim
|
||||
|
||||
Copyright 2007-2008 (c) Toralf Wittner <toralf.wittner@gmail.com>
|
||||
Copyright 2008-2012 (c) Meikel Brandmeyer <mb@kotka.de>
|
||||
|
||||
ftdetect/clojure.vim,
|
||||
ftplugin/clojure.vim,
|
||||
indent/clojure.vim
|
||||
|
||||
Copyright 2008-2012 (c) Meikel Brandmeyer <mb@kotka.de>
|
||||
|
||||
Modified and relicensed under the Vim License for distribution with Vim:
|
||||
|
||||
Copyright 2013-2014 (c) Sung Pae <self@sungpae.com>
|
||||
|
||||
Last Change: %%RELEASE_DATE%%
|
||||
|
||||
vim:tw=78:noet:sw=8:sts=8:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,8 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
|
||||
|
||||
Please see the project readme for up-to-date docs:
|
||||
https://github.com/kchmck/vim-coffee-script
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
108
doc/cryptol.txt
108
doc/cryptol.txt
@@ -1,108 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cryptol') == -1
|
||||
|
||||
*cryptol.txt* functionality for the Cryptol programming language
|
||||
|
||||
Copyright © 2013 Edward O'Callaghan. All Rights Reserved.
|
||||
|
||||
.oooooo. . oooo
|
||||
d8P' `Y8b .o8 `888
|
||||
888 oooo d8b oooo ooo oo.ooooo. .o888oo .ooooo. 888
|
||||
888 `888""8P `88. .8' 888' `88b 888 d88' `88b 888
|
||||
888 888 `88..8' 888 888 888 888 888 888
|
||||
`88b ooo 888 `888' 888 888 888 . 888 888 888
|
||||
`Y8bood8P' d888b .8' 888bod8P' "888" `Y8bod8P' o888o
|
||||
.o..P' 888
|
||||
`Y8P' o888o
|
||||
|
||||
Functionality for the Cryptol programming language.
|
||||
Includes syntax highlighting, code folding, and more!
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *CryptolContents*
|
||||
|
||||
1. Usage ................ |CryptolUsage|
|
||||
2. Mappings ............. |CryptolMappings|
|
||||
3. License .............. |CryptolLicense|
|
||||
4. Bugs ................. |CryptolBugs|
|
||||
5. Contributing ......... |CryptolContributing|
|
||||
6. Changelog ............ |CryptolChangelog|
|
||||
7. Credits .............. |CryptolCredits|
|
||||
|
||||
==============================================================================
|
||||
Section 1: Usage *CryptolUsage*
|
||||
|
||||
This plugin will automatically provide syntax highlighting for Cryptol files
|
||||
(files ending in .cry).
|
||||
|
||||
Cryptol is a purely functional domain specific language, developed over the
|
||||
past decade by Galois for the NSA, for the design, implementation and
|
||||
verification of cryptographic algorithms.
|
||||
|
||||
==============================================================================
|
||||
Section 2: Mappings *CryptolMappings*
|
||||
|
||||
Code folding is done in the typical way, for example:
|
||||
* za - When on a closed fold - open it.
|
||||
* zM - Close all foldings to level 0.
|
||||
* zR - Reduce folding
|
||||
|
||||
For more information see, for example, :help za
|
||||
|
||||
==============================================================================
|
||||
Section 3: License *CryptolLicense*
|
||||
|
||||
Copyright © 2013 Edward O'Callaghan. All Rights Reserved.
|
||||
|
||||
HOWEVER:
|
||||
Be it known, The syntax file was written by
|
||||
Copyright © 2005 Fergus Henderson. All Rights Reserved.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
Section 4: Bugs *CryptolBugs*
|
||||
|
||||
* https://github.com/victoredwardocallaghan/cryptol.vim/issues
|
||||
|
||||
==============================================================================
|
||||
Section 5: TODOs *CryptolTODOs
|
||||
|
||||
* Add compiler support
|
||||
- .
|
||||
|
||||
==============================================================================
|
||||
Section 6: Contributing *CryptolContributing*
|
||||
|
||||
* Edward O'Callaghan
|
||||
|
||||
==============================================================================
|
||||
Section 7: Changelog *CryptolChangelog*
|
||||
|
||||
* Initial 25 Apr 2013.
|
||||
|
||||
==============================================================================
|
||||
Section 8: Credits *CryptolCredits*
|
||||
|
||||
* Edward O'Callaghan
|
||||
* Fergus Henderson - wrote the orginal syntax file.
|
||||
|
||||
vim:ts=4:ft=help:tw=78:et
|
||||
|
||||
endif
|
||||
90
doc/dart.txt
90
doc/dart.txt
@@ -1,90 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
|
||||
|
||||
*dart-vim-plugin* Dart support for Vim
|
||||
|
||||
INTRODUCTION *dart.vim*
|
||||
|
||||
dart-vim-plugin provides filetype detection, syntax highlighting, and
|
||||
indentation for Dart code in Vim.
|
||||
|
||||
https://github.com/dart-lang/dart-vim-plugin
|
||||
|
||||
TOOLS *dart-tools*
|
||||
|
||||
An `includeexpr` is set that can read `.packages` files and resolve `package:`
|
||||
uris to a file. See |gf| for an example use.
|
||||
|
||||
COMMANDS *dart-commands*
|
||||
|
||||
These commands are available in buffers with the dart filetype.
|
||||
|
||||
*:Dart2Js*
|
||||
Runs dart2js to compile the current file. Takes the same arguments as the
|
||||
dart2js binary and always passes the path to the current file as the last
|
||||
argument.
|
||||
If there are any errors they will be shown in the quickfix window.
|
||||
|
||||
*:DartFmt*
|
||||
Runs dartfmt and passes the current buffer content through stdin. If the
|
||||
format is successful replaces the current buffer content with the formatted
|
||||
result. If the format is unsuccessful errors are shown in the quickfix window.
|
||||
This command does not use the file content on disk so it is safe to run with
|
||||
unwritten changes.
|
||||
Passes arguments through to dartfmt.
|
||||
|
||||
*:DartAnalyzer*
|
||||
Runs dartanalyzer to analyze the current file. Takes the same arguments as the
|
||||
dartanalyzer binary and always passes the path to the current file as the last
|
||||
argument.
|
||||
If there are any errors they will be shown in the quickfix window.
|
||||
|
||||
CONFIGURATION *dart-configure*
|
||||
|
||||
*g:dart_html_in_string*
|
||||
Set to `v:true` to highlights HTML syntax inside Strings within Dart files.
|
||||
Default `v:false`
|
||||
|
||||
*g:dart_corelib_highlight*
|
||||
Set to `v:false` to disable highlighting of code Dart classes like `Map` or
|
||||
`List`.
|
||||
Default `v:true`
|
||||
*g:dart_style_guide*
|
||||
Set to any value (set to `2` by convention) to set tab and width behavior to
|
||||
match the Dart style guide - spaces only with an indent of 2. Also sets
|
||||
`formatoptions += t` to auto wrap text.
|
||||
|
||||
Configure DartFmt options with `let g:dartfmt_options`, for example, enable
|
||||
auto syntax fixes with `let g:dartfmt_options = ['--fix']`
|
||||
(discover formatter options with `dartfmt -h`)
|
||||
|
||||
|
||||
SYNTAX HIGHLIGHTING *dart-syntax*
|
||||
|
||||
This plugin uses narrow highlight groups to allow selectively disabling the
|
||||
syntax highlights. Link any of the following groups to the `Normal` highlight
|
||||
group to disable them:
|
||||
|
||||
`dartSdkException`: Capitalized exception or error classes defined in the SDK.
|
||||
|
||||
`dartCoreType`: `void`, `var`, `dynamic`
|
||||
|
||||
`dartSdkClass`: Capitalized classes defined in the SDK, along with `bool`,
|
||||
`int`, `double`, and `num`.
|
||||
|
||||
`dartUserType`: Any capitalized identifier.
|
||||
|
||||
`dartType`: Combines `dartCoreType`, `dartSdkClass`, and `dartUserType`.
|
||||
|
||||
`dartSdkTypedef`: SDK defined `typdef`s.
|
||||
|
||||
`dartFunction`: Any lower cased identifier preceding an open parenthesis.
|
||||
|
||||
For example, to remove the highlighting for type and function names:
|
||||
>
|
||||
highlight link dartType Normal
|
||||
highlight link dartFunction Normal
|
||||
<
|
||||
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,43 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dhall') == -1
|
||||
|
||||
*dhall* Dhall syntax highlighting for Vim
|
||||
____
|
||||
=====================================================================
|
||||
CONTENTS *DhallContents*
|
||||
|
||||
1. Config ......................................... ❘DhallConfig❘
|
||||
2. License ....................................... ❘DhallLicense❘
|
||||
|
||||
======================================================================
|
||||
Section 1: Config *DhallConfig*
|
||||
|
||||
----------------------------------------------------------------------
|
||||
*'g:dhall_use_ctags'*
|
||||
Values: 0, 1
|
||||
Default: ''
|
||||
|
||||
Generate tags file for vim on write, using universal ctags. >
|
||||
let g:dhall_use_ctags=1
|
||||
<
|
||||
|
||||
*'g:dhall_format'*
|
||||
Values: 0, 1
|
||||
Default: ''
|
||||
|
||||
Format Dhall files on write >
|
||||
let g:dhall_format=1
|
||||
<
|
||||
*'g:dhall_strip_whitespace'*
|
||||
Values: 0, 1
|
||||
Default: ''
|
||||
|
||||
To enable whitespace stripping >
|
||||
let g:dhall_strip_whitespace=1
|
||||
<
|
||||
|
||||
======================================================================
|
||||
Section 2: License *DhallLicense*
|
||||
|
||||
This plugin is licensed under the BDS3 license.
|
||||
|
||||
endif
|
||||
116
doc/elixir.txt
116
doc/elixir.txt
@@ -1,116 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
|
||||
|
||||
*elixir.txt* Vim configuration files for Elixir http://elixir-lang.org/
|
||||
|
||||
Author: Plataformatec
|
||||
License: Apache License Version 2.0
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *elixir-contents*
|
||||
|
||||
INTRODUCTION |elixir-introduction|
|
||||
INTERFACE |elixir-interface|
|
||||
FUNCTIONS |elixir-functions|
|
||||
KEY MAPPINGS |elixir-key-mappings|
|
||||
OPTIONS |elixir-options|
|
||||
SETTINGS |elixir-settings|
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *elixir-introduction*
|
||||
|
||||
*elixir* provides Vim configuration files for Elixir http://elixir-lang.org/
|
||||
|
||||
* Syntax highlighting for Elixir and EEx files
|
||||
* Filetype detection for `.ex`, `.exs`, `.eex` and `.leex` files
|
||||
* Automatic indentation
|
||||
* Integration between Ecto projects and |vim-dadbod| for running SQL queries
|
||||
on defined Ecto repositories
|
||||
|
||||
|
||||
Latest Version:
|
||||
https://github.com/elixir-editors/vim-elixir
|
||||
|
||||
|
||||
==============================================================================
|
||||
INTERFACE *elixir-interface*
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
FUNCTIONS *elixir-functions*
|
||||
|
||||
db#adapter#ecto#canonicalize({url}) *db#adapter#ecto#canonicalize()*
|
||||
TODO
|
||||
|
||||
db#adapter#ecto#complete_opaque({url}) *db#adapter#ecto#complete_opaque()*
|
||||
TODO
|
||||
|
||||
elixir#indent#indent({lnum}) *elixir#indent#indent()*
|
||||
TODO
|
||||
|
||||
elixir#indent#searchpair_back_skip() *elixir#indent#searchpair_back_skip()*
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_top_of_file()*
|
||||
elixir#indent#handle_top_of_file({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_follow_prev_nb()*
|
||||
elixir#indent#handle_follow_prev_nb({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_following_trailing_binary_operator()*
|
||||
elixir#indent#handle_following_trailing_binary_operator({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_starts_with_pipe()*
|
||||
elixir#indent#handle_starts_with_pipe({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_starts_with_end()*
|
||||
elixir#indent#handle_starts_with_end({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_starts_with_binary_operator()*
|
||||
elixir#indent#handle_starts_with_binary_operator({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_inside_block()*
|
||||
elixir#indent#handle_inside_block({context})
|
||||
TODO
|
||||
|
||||
*elixir#indent#handle_inside_generic_block()*
|
||||
elixir#indent#handle_inside_generic_block({context})
|
||||
TODO
|
||||
|
||||
elixir#util#get_filename({word}) *elixir#util#get_filename({word})*
|
||||
TODO
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
KEY MAPPINGS *elixir-key-mappings*
|
||||
|
||||
TODO
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *elixir-settings*
|
||||
|
||||
*g:eelixir_default_subtype*
|
||||
TODO
|
||||
|
||||
*g:elixir_indent_debug*
|
||||
TODO
|
||||
|
||||
*g:elixir_indent_max_lookbehind*
|
||||
TODO
|
||||
|
||||
*g:elixir_use_markdown_for_docs*
|
||||
TODO
|
||||
|
||||
*g:path*
|
||||
TODO
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl
|
||||
|
||||
endif
|
||||
1763
doc/ft-csv.txt
1763
doc/ft-csv.txt
File diff suppressed because it is too large
Load Diff
@@ -1,25 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
|
||||
GIT COMMIT *ft-gitcommit-plugin*
|
||||
|
||||
One command, :DiffGitCached, is provided to show a diff of the current commit
|
||||
in the preview window. It is equivalent to calling "git diff --cached" plus
|
||||
any arguments given to the command.
|
||||
|
||||
GIT REBASE *ft-gitrebase-plugin*
|
||||
|
||||
In a gitrebase filetype buffer, the following commands are provided:
|
||||
|
||||
`:Pick` Changes the cursor line to a `pick` line.
|
||||
`:Squash` Changes the cursor line to a `squash` line
|
||||
`:Edit` Changes the cursor line to an `edit` line
|
||||
`:Reword` Changes the cursor line to a `reword` line
|
||||
`:Fixup` Changes the cursor line to a `fixup` line
|
||||
`:Drop` Changes the cursor line to a `drop` line
|
||||
`:Cycle` Cycles between the first 5 gitrebase commands
|
||||
|
||||
To make the `:Cycle` command more useful, it might be mapped, e.g. >
|
||||
nnoremap <buffer> <silent> S :Cycle<CR>
|
||||
<
|
||||
|
||||
endif
|
||||
@@ -1,152 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
RUBY *ft-ruby-indent*
|
||||
*vim-ruby-indent*
|
||||
|
||||
Ruby: Access modifier indentation |ruby-access-modifier-indentation|
|
||||
Ruby: Block style indentation |ruby-block-style-indentation|
|
||||
Ruby: Assignment style indentation |ruby-assignment-style-indentation|
|
||||
Ruby: Hanging element indentation |ruby-hanging-element-indentation|
|
||||
|
||||
*ruby-access-modifier-indentation*
|
||||
*g:ruby_indent_access_modifier_style*
|
||||
Ruby: Access modifier indentation ~
|
||||
|
||||
Different access modifier indentation styles can be used by setting: >
|
||||
|
||||
:let g:ruby_indent_access_modifier_style = 'normal'
|
||||
:let g:ruby_indent_access_modifier_style = 'indent'
|
||||
:let g:ruby_indent_access_modifier_style = 'outdent'
|
||||
<
|
||||
By default, the "normal" access modifier style is used.
|
||||
|
||||
Access modifier style "normal":
|
||||
>
|
||||
class Indent
|
||||
private :method
|
||||
protected :method
|
||||
private
|
||||
def method; end
|
||||
protected
|
||||
def method; end
|
||||
public
|
||||
def method; end
|
||||
end
|
||||
<
|
||||
Access modifier style "indent":
|
||||
>
|
||||
class Indent
|
||||
private :method
|
||||
protected :method
|
||||
private
|
||||
def method; end
|
||||
protected
|
||||
def method; end
|
||||
public
|
||||
def method; end
|
||||
end
|
||||
<
|
||||
Access modifier style "outdent":
|
||||
>
|
||||
class Indent
|
||||
private :method
|
||||
protected :method
|
||||
private
|
||||
def method; end
|
||||
protected
|
||||
def method; end
|
||||
public
|
||||
def method; end
|
||||
end
|
||||
<
|
||||
*ruby-block-style-indentation*
|
||||
*g:ruby_indent_block_style*
|
||||
Ruby: Block style indentation ~
|
||||
|
||||
Different block indentation styles can be used by setting: >
|
||||
|
||||
:let g:ruby_indent_block_style = 'expression'
|
||||
:let g:ruby_indent_block_style = 'do'
|
||||
<
|
||||
By default, the "do" block indent style is used.
|
||||
|
||||
Block indent style "expression":
|
||||
>
|
||||
first
|
||||
.second do |x|
|
||||
something
|
||||
end
|
||||
<
|
||||
Block indent style "do":
|
||||
>
|
||||
first
|
||||
.second do |x|
|
||||
something
|
||||
end
|
||||
<
|
||||
|
||||
*ruby-assignment-style-indentation*
|
||||
*g:ruby_indent_assignment_style*
|
||||
Ruby: Assignment style indentation ~
|
||||
|
||||
Different styles of indenting assignment for multiline expressions:
|
||||
>
|
||||
:let g:ruby_indent_assignment_style = 'hanging'
|
||||
:let g:ruby_indent_assignment_style = 'variable'
|
||||
<
|
||||
By default, the "hanging" style is used.
|
||||
|
||||
Assignment indent style "hanging":
|
||||
>
|
||||
x = if condition
|
||||
something
|
||||
end
|
||||
<
|
||||
Assignment indent style "variable":
|
||||
>
|
||||
x = if condition
|
||||
something
|
||||
end
|
||||
<
|
||||
|
||||
*ruby-hanging-element-indentation*
|
||||
*g:ruby_indent_hanging_elements*
|
||||
Ruby: Hanging element indentation ~
|
||||
|
||||
Elements of multiline collections -- such as arrays, hashes, and method
|
||||
argument lists -- can have hanging indentation enabled or disabled with the
|
||||
following setting.
|
||||
>
|
||||
:let g:ruby_indent_hanging_elements = 1
|
||||
:let g:ruby_indent_hanging_elements = 0
|
||||
<
|
||||
By default, this setting is "1" (true) meaning that hanging indentation is
|
||||
enabled in some cases.
|
||||
|
||||
Here is an example method call when the setting is true (non-zero):
|
||||
>
|
||||
render('product/show',
|
||||
product: product,
|
||||
on_sale: true,
|
||||
)
|
||||
<
|
||||
And the same method call when the setting is false (zero):
|
||||
>
|
||||
render('product/show',
|
||||
product: product,
|
||||
on_sale: true,
|
||||
)
|
||||
<
|
||||
Note that, even if the setting is turned on, you can still get non-hanging
|
||||
indentation by putting each argument on a separate line:
|
||||
>
|
||||
render(
|
||||
'product/show',
|
||||
product: product,
|
||||
on_sale: true,
|
||||
)
|
||||
<
|
||||
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,56 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
RUBY *ft-ruby-omni*
|
||||
*vim-ruby-omni*
|
||||
|
||||
Completion of Ruby code requires that Vim be built with |+ruby|.
|
||||
|
||||
Ruby completion will parse your buffer on demand in order to provide a list of
|
||||
completions. These completions will be drawn from modules loaded by "require"
|
||||
and modules defined in the current buffer.
|
||||
|
||||
The completions provided by CTRL-X CTRL-O are sensitive to the context:
|
||||
|
||||
CONTEXT COMPLETIONS PROVIDED ~
|
||||
|
||||
1. Not inside a class definition Classes, constants and globals
|
||||
|
||||
2. Inside a class definition Methods or constants defined in the class
|
||||
|
||||
3. After '.', '::' or ':' Methods applicable to the object being
|
||||
dereferenced
|
||||
|
||||
4. After ':' or ':foo' Symbol name (beginning with "foo")
|
||||
|
||||
Notes:
|
||||
- Vim will load/evaluate code in order to provide completions. This may
|
||||
cause some code execution, which may be a concern. This is no longer
|
||||
enabled by default, to enable this feature add >
|
||||
let g:rubycomplete_buffer_loading = 1
|
||||
< - In context 1 above, Vim can parse the entire buffer to add a list of
|
||||
classes to the completion results. This feature is turned off by default,
|
||||
to enable it add >
|
||||
let g:rubycomplete_classes_in_global = 1
|
||||
< to your vimrc
|
||||
- In context 2 above, anonymous classes are not supported.
|
||||
- In context 3 above, Vim will attempt to determine the methods supported by
|
||||
the object.
|
||||
- Vim can detect and load the Rails environment for files within a rails
|
||||
project. The feature is disabled by default, to enable it add >
|
||||
let g:rubycomplete_rails = 1
|
||||
< to your vimrc
|
||||
- Vim can parse a Gemfile, in case gems are being implicitly required. To
|
||||
activate the feature: >
|
||||
let g:rubycomplete_load_gemfile = 1
|
||||
< To specify an alternative path, use: >
|
||||
let g:rubycomplete_gemfile_path = 'Gemfile.aux'
|
||||
< To use Bundler.require instead of parsing the Gemfile, set: >
|
||||
let g:rubycomplete_use_bundler = 1
|
||||
< To use custom paths that should be added to $LOAD_PATH to correctly
|
||||
resolve requires, set: >
|
||||
let g:rubycomplete_load_paths = ["/path/to/code", "./lib/example"]
|
||||
|
||||
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,85 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
RUBY *ft-ruby-plugin*
|
||||
*vim-ruby-plugin*
|
||||
|
||||
|
||||
Ruby: Recommended settings |ruby-recommended|
|
||||
Ruby: Motion commands |ruby-motion|
|
||||
Ruby: Text objects |ruby-text-objects|
|
||||
|
||||
*ruby-recommended*
|
||||
*g:ruby_recommended_style*
|
||||
Ruby: Recommended settings ~
|
||||
|
||||
The `g:ruby_recommended_style` variable activates indentation settings
|
||||
according to the most common ruby convention: two spaces for indentation. It's
|
||||
turned on by default to ensure an unsurprising default experience for most
|
||||
ruby developers.
|
||||
|
||||
If you'd like to enforce your own style, it's possible to apply your own
|
||||
preferences in your own configuration in `after/ftplugin/ruby.vim`. You can
|
||||
also disable the setting by setting the variable to 0:
|
||||
>
|
||||
let g:ruby_recommended_style = 0
|
||||
<
|
||||
|
||||
*ruby-motion*
|
||||
Ruby: Motion commands ~
|
||||
|
||||
Vim provides motions such as |[m| and |]m| for jumping to the start or end of
|
||||
a method definition. Out of the box, these work for curly-bracket languages,
|
||||
but not for Ruby. The vim-ruby plugin enhances these motions, by making them
|
||||
also work on Ruby files.
|
||||
|
||||
*ruby-]m*
|
||||
]m Go to start of next method definition.
|
||||
|
||||
*ruby-]M*
|
||||
]M Go to end of next method definition.
|
||||
|
||||
*ruby-[m*
|
||||
[m Go to start of previous method definition.
|
||||
|
||||
*ruby-[M*
|
||||
[M Go to end of previous method definition.
|
||||
|
||||
*ruby-]]*
|
||||
]] Go to start of next module or class definition.
|
||||
|
||||
*ruby-][*
|
||||
][ Go to end of next module or class definition.
|
||||
|
||||
*ruby-[[*
|
||||
[[ Go to start of previous module or class definition.
|
||||
|
||||
*ruby-[]*
|
||||
[] Go to end of previous module or class definition.
|
||||
|
||||
*ruby-text-objects*
|
||||
Ruby: Text objects ~
|
||||
|
||||
Vim's |text-objects| can be used to select or operate upon regions of text
|
||||
that are defined by structure. The vim-ruby plugin adds text objects for
|
||||
operating on methods and classes.
|
||||
|
||||
*ruby-v_am* *ruby-am*
|
||||
am "a method", select from "def" until matching "end"
|
||||
keyword.
|
||||
|
||||
*ruby-v_im* *ruby-im*
|
||||
im "inner method", select contents of "def"/"end" block,
|
||||
excluding the "def" and "end" themselves.
|
||||
|
||||
*ruby-v_aM* *ruby-aM*
|
||||
aM "a class", select from "class" until matching "end"
|
||||
keyword.
|
||||
|
||||
*ruby-v_iM* *ruby-iM*
|
||||
iM "inner class", select contents of "class"/"end"
|
||||
block, excluding the "class" and "end" themselves.
|
||||
|
||||
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,123 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
|
||||
|
||||
RUBY *ruby.vim* *ft-ruby-syntax*
|
||||
*vim-ruby-syntax*
|
||||
|
||||
Ruby: Operator highlighting |ruby_operators|
|
||||
Ruby: Whitespace errors |ruby_space_errors|
|
||||
Ruby: Syntax errors |ruby_syntax_errors|
|
||||
Ruby: Folding |ruby_fold| |ruby_foldable_groups|
|
||||
Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines|
|
||||
Ruby: Spellchecking strings |ruby_spellcheck_strings|
|
||||
|
||||
*ruby_operators*
|
||||
Ruby: Operator highlighting ~
|
||||
|
||||
Operators, and pseudo operators, can be highlighted by defining: >
|
||||
|
||||
:let ruby_operators = 1
|
||||
:let ruby_pseudo_operators = 1
|
||||
<
|
||||
The supported pseudo operators are ., &., ::, *, **, &, <, << and ->.
|
||||
|
||||
*ruby_space_errors*
|
||||
Ruby: Whitespace errors ~
|
||||
|
||||
Whitespace errors can be highlighted by defining "ruby_space_errors": >
|
||||
|
||||
:let ruby_space_errors = 1
|
||||
<
|
||||
This will highlight trailing whitespace and tabs preceded by a space character
|
||||
as errors. This can be refined by defining "ruby_no_trail_space_error" and
|
||||
"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
|
||||
spaces respectively.
|
||||
|
||||
*ruby_syntax_errors*
|
||||
Ruby: Syntax errors ~
|
||||
|
||||
Redundant line continuations and predefined global variable look-alikes (such
|
||||
as $# and $-z) can be highlighted as errors by defining:
|
||||
>
|
||||
:let ruby_line_continuation_error = 1
|
||||
:let ruby_global_variable_error = 1
|
||||
<
|
||||
*ruby_fold*
|
||||
Ruby: Folding ~
|
||||
|
||||
Folding can be enabled by defining "ruby_fold": >
|
||||
|
||||
:let ruby_fold = 1
|
||||
<
|
||||
This will set the value of 'foldmethod' to "syntax" locally to the current
|
||||
buffer or window, which will enable syntax-based folding when editing Ruby
|
||||
filetypes.
|
||||
|
||||
*ruby_foldable_groups*
|
||||
Default folding is rather detailed, i.e., small syntax units like "if", "do",
|
||||
"%w[]" may create corresponding fold levels.
|
||||
|
||||
You can set "ruby_foldable_groups" to restrict which groups are foldable: >
|
||||
|
||||
:let ruby_foldable_groups = 'if case %'
|
||||
<
|
||||
The value is a space-separated list of keywords:
|
||||
|
||||
keyword meaning ~
|
||||
-------- ------------------------------------- ~
|
||||
ALL Most block syntax (default)
|
||||
NONE Nothing
|
||||
if "if" or "unless" block
|
||||
def "def" block
|
||||
class "class" block
|
||||
module "module" block
|
||||
do "do" block
|
||||
begin "begin" block
|
||||
case "case" block
|
||||
for "for", "while", "until" loops
|
||||
{ Curly bracket block or hash literal
|
||||
[ Array literal
|
||||
% Literal with "%" notation, e.g.: %w(STRING), %!STRING!
|
||||
/ Regexp
|
||||
string String and shell command output (surrounded by ', ", `)
|
||||
: Symbol
|
||||
# Multiline comment
|
||||
<< Here documents
|
||||
__END__ Source code after "__END__" directive
|
||||
|
||||
NONE and ALL have priority, in that order, over all other folding groups.
|
||||
|
||||
*ruby_no_expensive*
|
||||
Ruby: Reducing expensive operations ~
|
||||
|
||||
By default, the "end" keyword is colorized according to the opening statement
|
||||
of the block it closes. While useful, this feature can be expensive; if you
|
||||
experience slow redrawing (or you are on a terminal with poor color support)
|
||||
you may want to turn it off by defining the "ruby_no_expensive" variable: >
|
||||
|
||||
:let ruby_no_expensive = 1
|
||||
<
|
||||
In this case the same color will be used for all control keywords.
|
||||
|
||||
*ruby_minlines*
|
||||
|
||||
If you do want this feature enabled, but notice highlighting errors while
|
||||
scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
|
||||
the "ruby_minlines" variable to a value larger than 50: >
|
||||
|
||||
:let ruby_minlines = 100
|
||||
<
|
||||
Ideally, this value should be a number of lines large enough to embrace your
|
||||
largest class or module.
|
||||
|
||||
*ruby_spellcheck_strings*
|
||||
Ruby: Spellchecking strings ~
|
||||
|
||||
Ruby syntax will perform spellchecking of strings if you define
|
||||
"ruby_spellcheck_strings": >
|
||||
|
||||
:let ruby_spellcheck_strings = 1
|
||||
<
|
||||
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,54 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||
|
||||
*graphql.txt* GraphQL plug-in for Vim *graphql*
|
||||
|
||||
CONTENTS *graphql-contents*
|
||||
|
||||
1. Introduction |graphql-intro|
|
||||
2. JavaScript Support |graphql-javascript|
|
||||
3. TypeScript Support |graphql-typescript|
|
||||
|
||||
|
||||
INTRODUCTION *graphql-intro*
|
||||
|
||||
This plugin provides GraphQL (http://graphql.org/) file detection, syntax
|
||||
highlighting, and indentation.
|
||||
|
||||
|
||||
JAVASCRIPT *graphql-javascript*
|
||||
|
||||
GraphQL syntax support in ES2015 template literals is provided. It works "out
|
||||
of the box" with Vim 8.2's JavaScript support. The extended syntax provided by
|
||||
the vim-javascript (https://github.com/pangloss/vim-javascript) plugin is also
|
||||
supported.
|
||||
|
||||
*graphql-javascript-options*
|
||||
|
||||
*g:graphql_javascript_tags*
|
||||
|g:graphql_javascript_tags| list of strings
|
||||
|
||||
Default: `["gql", "graphql", "Relay.QL"]`
|
||||
|
||||
This variable lists the ES2015 template tag names that will be recognized as
|
||||
containing GraphQL template literal strings.
|
||||
|
||||
|
||||
TYPESCRIPT *graphql-typescript*
|
||||
|
||||
Like |graphql-javascript|, GraphQL syntax support in ES2015 template literals
|
||||
is provided. It also works "out of the box" with Vim 8.2's TypeScript support,
|
||||
which is based on the yats (https://github.com/HerringtonDarkholme/yats.vim)
|
||||
plugin. For older versions, you can install yats directly.
|
||||
|
||||
TypeScript syntax support also uses |graphql-javascript-options| to customize
|
||||
the list of recognized template tag names.
|
||||
|
||||
REASONML *graphql-reasonml*
|
||||
|
||||
GraphQL syntax support inside of ReasonML template strings using graphql-ppx
|
||||
is available.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
vim:tw=78:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,163 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
||||
|
||||
*haskell-vim.txt* Last Change 2016 March 14
|
||||
===============================================================================
|
||||
===============================================================================
|
||||
|
||||
===============================================================================
|
||||
CONTENTS *haskell-vim-contents*
|
||||
|
||||
1. Features |haskell-vim-features|
|
||||
2. Configuration |haskell-vim-configuration|
|
||||
3. Highlighting |haskell-vim-indentation|
|
||||
|
||||
===============================================================================
|
||||
FEATURES *haskell-vim-features*
|
||||
|
||||
* Covers a broader spectrum of keywords
|
||||
* Highlighting for new features like type families, pattern synonyms,
|
||||
arrow syntax, recursive do, role annotations, QuasiQuotation
|
||||
* More contextual highlighting
|
||||
(e.g. highlight "as" or "family" only in appropriate places)
|
||||
* Smarter indentation
|
||||
* Better Cabal support
|
||||
|
||||
===============================================================================
|
||||
CONFIGURATION *haskell-vim-configuration*
|
||||
|
||||
To enable the features you would like to use, just add the according line to
|
||||
your `.vimrc`.
|
||||
|
||||
===============================================================================
|
||||
HIGHLIGHTING *haskell-vim-highlighting*
|
||||
|
||||
`haskell-vim` can highlight additional keywords. This is enabled by setting
|
||||
the according variable to 1 in the `.vimrc`.
|
||||
|
||||
* |haskell-vim-enable-quantification|
|
||||
* |haskell-vim-enable-recursivedo|
|
||||
* |haskell-vim-enable-arrowsyntax|
|
||||
* |haskell-vim-enable-pattern-synonyms|
|
||||
* |haskell-vim-enable-typeroles|
|
||||
* |haskell-vim-enable-static-pointers|
|
||||
* |haskell-vim-classic-highlighting|
|
||||
* |haskell-vim-disable-TH|
|
||||
|
||||
*haskell-vim-enable-quantification*
|
||||
`g:haskell_enable_quantification` Enables highlighting of `forall`.
|
||||
|
||||
*haskell-vim-enable-recursivedo*
|
||||
`g:haskell_enable_recursivedo` Enables highlighting of `mdo` and `rec`.
|
||||
|
||||
*haskell-vim-enable-arrowsyntax*
|
||||
`g:haskell_enable_arrowsyntax` Enables highlighting of `proc`.
|
||||
|
||||
*haskell-vim-enable-pattern-synonyms*
|
||||
`g:haskell_enable_pattern_synonyms` Enables highlighting of the `pattern` keyword.
|
||||
|
||||
*haskell-vim-enable-typeroles*
|
||||
`g:haskell_enable_typeroles` Enables highlighting of the `role` keyword, as
|
||||
well as `phantom`, `norminal` and
|
||||
`representational`.
|
||||
|
||||
*haskell-vim-enable-static-pointers*
|
||||
`g:haskell_enable_static_pointers` Enables highlighting of the `static` keyword.
|
||||
|
||||
*haskell-vim-classic-highlighting*
|
||||
`haskell-vim` has an opinionated highlighting. If you do not like that you can
|
||||
switch to a more traditional mode by setting `g:haskell_classic_highlighting`
|
||||
to 1.
|
||||
|
||||
*haskell-vim-disable-TH*
|
||||
Disabling Template Haskell and Quasiquoting syntax is possible by setting
|
||||
`g:haskell_disable_TH` to `1`.
|
||||
|
||||
===============================================================================
|
||||
INDENTATION *haskell-vim-indentation*
|
||||
|
||||
To configure indentation in `haskell-vim` you can use the following variables to
|
||||
change indentation depth, just add the according line to your `.vimrc`.
|
||||
|
||||
You can disable the indentation by setting `g:haskell_indent_disable` to `1`.
|
||||
|
||||
Haskell~
|
||||
|
||||
* |haskell-vim-indent-if|
|
||||
* |haskell-vim-indent-case|
|
||||
* |haskell-vim-indent-let|
|
||||
* |haskell-vim-indent-where|
|
||||
* |haskell-vim-indent-before-where|
|
||||
* |haskell-vim-indent-after-bare-where|
|
||||
* |haskell-vim-indent-do|
|
||||
* |haskell-vim-indent-in|
|
||||
* |haskell-vim-indent-guard|
|
||||
*haskell-vim-indent-if*
|
||||
* let g:haskell_indent_if = 3 >
|
||||
|
||||
if bool
|
||||
>>>then ...
|
||||
>>>else ...
|
||||
<
|
||||
|
||||
*haskell-vim-indent-case*
|
||||
* let g:haskell_indent_case = 2 >
|
||||
|
||||
case xs of
|
||||
>>[] -> ...
|
||||
>>(y:ys) -> ...
|
||||
<
|
||||
*haskell-vim-indent-let*
|
||||
* let g:haskell_indent_let = 4 >
|
||||
|
||||
let x = 0 in
|
||||
>>>>x
|
||||
<
|
||||
*haskell-vim-indent-where*
|
||||
* let g:haskell_indent_where = 6 >
|
||||
|
||||
where f :: Int -> Int
|
||||
>>>>>>f x = x
|
||||
<
|
||||
*haskell-vim-indent-before-where*
|
||||
* let g:haskell_indent_before_where = 2 >
|
||||
|
||||
foo
|
||||
>>where
|
||||
<
|
||||
*haskell-vim-indent-after-bare-where*
|
||||
* let g:haskell_indent_after_bare_where = 2 >
|
||||
|
||||
where
|
||||
>>foo
|
||||
<
|
||||
*haskell-vim-indent-do*
|
||||
* let g:haskell_indent_do = 3 >
|
||||
|
||||
do x <- a
|
||||
>>>y <- b
|
||||
<
|
||||
*haskell-vim-indent-in*
|
||||
* let g:haskell_indent_in = 1 >
|
||||
|
||||
let x = 1
|
||||
>in x
|
||||
<
|
||||
*haskell-vim-indent-guard*
|
||||
* let g:haskell_indent_guard = 2 >
|
||||
|
||||
f x y
|
||||
>>|
|
||||
<
|
||||
|
||||
Cabal~
|
||||
|
||||
* |cabal-vim-indent-section|
|
||||
|
||||
*cabal-vim-indent-section*
|
||||
* let g:cabal_indent_section = 2 (limited to max. 4 spaces) >
|
||||
|
||||
executable name
|
||||
>>main-is: Main.hs
|
||||
<
|
||||
|
||||
endif
|
||||
@@ -1,158 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris') == -1
|
||||
|
||||
*idris-vim.txt* Last change 2014 April 24
|
||||
===============================================================================
|
||||
===============================================================================
|
||||
@@@@ @@@@@@@@ @@@@@@@@ @@@@ @@@@@@ @@ @@ @@@@ @@ @@
|
||||
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@ @@@
|
||||
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@ @@@@
|
||||
@@ @@ @@ @@@@@@@@ @@ @@@@@@ @@@@@@@ @@ @@ @@ @@ @@@ @@
|
||||
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
|
||||
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
|
||||
@@@@ @@@@@@@@ @@ @@ @@@@ @@@@@@ @@@ @@@@ @@ @@
|
||||
===============================================================================
|
||||
CONTENTS *idris-vim-contents*
|
||||
|
||||
1. Features: |idris-vim-features|
|
||||
2. Requirements: |idris-vim-requirements|
|
||||
3. Functions: |idris-vim-functions|
|
||||
4. Troubleshooting |idris-vim-troubleshooting|
|
||||
5. Examples: |idris-vim-examples|
|
||||
6. Information: |idris-vim-information|
|
||||
|
||||
===============================================================================
|
||||
FEATURES *idris-vim-features*
|
||||
|
||||
* Syntax Highlighting
|
||||
* Indentation
|
||||
* Unicode Concealing
|
||||
* Syntax Checking (via Syntastic(https://github.com/scrooloose/syntastic))
|
||||
* Interactive Editing via the REPL
|
||||
|
||||
===============================================================================
|
||||
REQUIREMENTS *idris-vim-requirements*
|
||||
|
||||
* Idris (http://www.idris-lang.org/)
|
||||
|
||||
OPTIONAL:
|
||||
|
||||
* Syntastic(https://github.com/scrooloose/syntastic) for syntax checking
|
||||
* Vimshell(https://github.com/Shougo/vimshell.vim) for a REPL
|
||||
|
||||
===============================================================================
|
||||
FUNCTIONS *idris-vim-functions*
|
||||
|
||||
All of the functions in idris-vim are essentially just calls back to the REPL,
|
||||
so documentation for each of them is also available there.
|
||||
|
||||
IdrisDocumentation *IdrisDocumentation*
|
||||
Shows internal documentation of the primitive under the cursor.
|
||||
|
||||
Mapped to '<LocalLeader>_h' by default.
|
||||
|
||||
IdrisResponseWin *IdrisResponseWin*
|
||||
This opens an idris response window in a new pane.
|
||||
|
||||
Mapped to '<LocalLeader>_i' by default.
|
||||
|
||||
IdrisShowType *IdrisShowType*
|
||||
This shows the type of the name under the cursor (or, if the cursor happens
|
||||
to be over a metavariable, a bit more information about its context).
|
||||
|
||||
Mapped to '<LocalLeader>_t' by default.
|
||||
|
||||
IdrisReload *IdrisReload*
|
||||
This reloads the file and type-checks the file in the current buffer.
|
||||
|
||||
Mapped to '<LocalLeader>_r' by default.
|
||||
|
||||
IdrisEval *IdrisEval*
|
||||
This prompts for an expression and then evaluates it in the REPL, then
|
||||
returns the result.
|
||||
|
||||
Mapped to '<LocalLeader>_e' by default.
|
||||
|
||||
IdrisCaseSplit *IdrisCaseSplit*
|
||||
When the cursor is over a variable in a pattern match clause or case
|
||||
expression, this splits the variable into all well-typed patterns.
|
||||
|
||||
Mapped to '<LocalLeader>_c' by default
|
||||
|
||||
IdrisAddClause *IdrisAddClause*
|
||||
When the cursor is at a type declaration this creates a new clause for that
|
||||
signature.
|
||||
|
||||
By default mapped to '<LocalLeader>_d' for an ordinary top-level definition,
|
||||
'<LocalLeader>_b' for a typeclass instance definition, and
|
||||
'<LocalLeader>_md' to add a pattern-matching proof clause.
|
||||
|
||||
IdrisAddMissing: *IdrisAddMissing*
|
||||
When the cursor is over a function, this adds all clauses necessary to make
|
||||
that function cover all inputs. This also eliminates clauses which would
|
||||
lead to unification errors from appearing.
|
||||
|
||||
Mapped to '<LocalLeader>_m' by default
|
||||
|
||||
IdrisRefine: *IdrisRefine*
|
||||
Refines the item the cursor is over (applies the name and fills in any
|
||||
arguments which can be filled in via unification)
|
||||
|
||||
Mapped to '<LocalLeader>_f' by default
|
||||
|
||||
IdrisProofSearch: *IdrisProofSearch*
|
||||
This attempts to find a value for the metavariable it was called on by
|
||||
looking at the rest of the code. It can also be called with hints, which
|
||||
are functions that can apply to help solve for the metavariable.
|
||||
|
||||
Mapped to '<LocalLeader>_o' without hints and '<LocalLeader>p' with hints by
|
||||
default
|
||||
|
||||
IdrisMakeWith: *IdrisMakeWith*
|
||||
When the cursor is over a pattern clause and this is called, it creates a
|
||||
new with clause.
|
||||
|
||||
Mapped to '<LocalLeader>_w' by default
|
||||
|
||||
IdrisMakeLemma: *IdrisMakeLemma*
|
||||
When the cursor is over a metavariable and this is called, it creates a new
|
||||
top-level definition to solve the metavariable.
|
||||
|
||||
Mapped to '<LocalLeader>_l' by default
|
||||
|
||||
===============================================================================
|
||||
TROUBLESHOOTING *idris-vim-troubleshooting*
|
||||
|
||||
If this isn't working for you, make sure that:
|
||||
|
||||
* There is an Idris REPL running
|
||||
* For syntax checking, you have syntastic installed
|
||||
* The plugins mappings exists and don't conflict with anything else installed
|
||||
(You can use ':map' to check. There should be mappings similar to
|
||||
'\h * :call IdrisShowDoc()'.)
|
||||
* Vim recognizes you're in an idris file (you can use ':verb set ft' to check)
|
||||
|
||||
If none of this works, check to issue tracker on github and if nothing is
|
||||
there create an issue with a detailed description of the problem.
|
||||
|
||||
===============================================================================
|
||||
EXAMPLES *idris-vim-examples*
|
||||
|
||||
Some excellent tutorials/examples for interactive editing using the above
|
||||
functions can be found at:
|
||||
http://edwinb.wordpress.com/2013/10/28/interactive-idris-editing-with-vim/
|
||||
and
|
||||
http://www.scribd.com/doc/214031954/60/Interactive-Editing-in-Vim
|
||||
|
||||
===============================================================================
|
||||
INFORMATION *idris-vim-information*
|
||||
|
||||
Author: edwinb
|
||||
Repo: https://github.com/idris-hackers/idris-vim
|
||||
|
||||
Documentation by japesinator
|
||||
|
||||
===============================================================================
|
||||
===============================================================================
|
||||
" vim:ft=help:et:ts=2:sw=2:sts=2:norl:
|
||||
|
||||
endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,405 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
|
||||
|
||||
*julia-vim-L2U.txt* Support for LaTeX-to-Unicode substitutions
|
||||
|
||||
Author: Carlo Baldassi <carlobaldassi@gmail.com>
|
||||
License: MIT license {{{
|
||||
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.
|
||||
}}}
|
||||
CONTENTS *julia-vim-L2U*
|
||||
|
||||
LaTeX-to-Unicode substitutions |julia-vim-L2U-introdction|
|
||||
Via Tab key |julia-vim-L2U-tab|
|
||||
As you type |julia-vim-L2U-as-you-type|
|
||||
Via Keymap |julia-vim-L2U-keymap|
|
||||
On different file types |julia-vim-L2U-file-types|
|
||||
Enabling and disabling |julia-vim-L2U-enable-disable|
|
||||
Variables |julia-vim-L2U-variables|
|
||||
Functions |julia-vim-L2U-functions|
|
||||
|
||||
==============================================================================
|
||||
LATEX TO UNICODE *julia-vim-L2U-introduction*
|
||||
|
||||
In the Julia REPL, entering a LaTeX-like sequence such as `\alpha` and pressing
|
||||
the <Tab> key substitutes it with a Unicode character such as `α`. The Julia
|
||||
REPL also provides partial completions, and suggestions for possible
|
||||
completions upon repeated pressing of the <Tab> key. Emojis are also
|
||||
available, with their names written between colons, e.g. `\:interrobang:`
|
||||
produces `⁉`.
|
||||
|
||||
See |julia-vim-L2U-reference| for the complete table of substitutions.
|
||||
|
||||
This Vim plug-in also provides the functionality needed to convert LaTeX
|
||||
input sequences into Unicode characters. There are 3 different methods
|
||||
available:
|
||||
|
||||
1. The default one is the most similar to the Julia one: substitutions are
|
||||
triggered by pressing the <Tab> key; if a partial match is found a list
|
||||
of suggested completions is presented in a menu together with their
|
||||
Unicode counterpart. The exact behaviour of this feature can be
|
||||
customized, see |julia-vim-L2U-tab|.
|
||||
|
||||
2. The second one substitutes symbols on the fly as you type, but only in
|
||||
|Insert| mode. See |julia-vim-L2U-as-you-type|.
|
||||
|
||||
3. The third is based on |keymap|. It also substitutes as-you-type, but it
|
||||
doesn't show you the full LaTeX sequence as you're typing it, and there
|
||||
is a time-out. Its main advantage over the previous one is that can be
|
||||
used in more circumstances, e.g. in |Command-line| mode or when searching
|
||||
for a character with |f| or |t|, as explained in |language-mapping|. See
|
||||
|julia-vim-L2U-keymap|.
|
||||
|
||||
All of these methods are independent and can be used together without issues.
|
||||
|
||||
The default configuration is to use the first method, and it's only active
|
||||
when editing Julia files. It only works in |Insert| and |Command-line| modes.
|
||||
|
||||
It is possible to enable it with other file types, see
|
||||
|julia-vim-L2U-file-types|, and it can be even turned on/off on the fly
|
||||
regardless of the file type, see |julia-vim-L2U-enable-disable|.
|
||||
|
||||
In |Command-line| mode, e.g. when searching with the |/| or |?| commands, the
|
||||
default behavior is very similar to the default |Insert| mode behavior, but
|
||||
slightly more limited, see |julia-vim-L2U-cmdmode|.
|
||||
|
||||
These features only work as described with Vim version 7.4 or higher. Tab
|
||||
completion can still be made available on lower Vim versions, see
|
||||
|julia-vim-L2U-workaround|. The keymap mode might work but it hasn't been
|
||||
tested.
|
||||
|
||||
See |julia-vim| for the general reference about the other features of the
|
||||
julia-vim plug-in.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE VIA TAB KEY *julia-vim-L2U-tab*
|
||||
|
||||
Substitution of LaTeX sequences when pressing the <Tab> key (in |Insert| mode or
|
||||
in |Command-line| modes) is active by default. Use |g:latex_to_unicode_tab| to
|
||||
control it.
|
||||
|
||||
When this feature is active, the julia-vim plug-in creates a mapping for the
|
||||
<Tab> key (in |Insert| mode) which takes precedence on any previously defined
|
||||
mapping assigned to it, such that when the <Tab> key is pressed the plug-in
|
||||
looks for potential LaTeX symbol matches before the cursor, and if it fails to
|
||||
find anything of interest it will fall-back to the previous mapping for <Tab>
|
||||
(with default Vim settings, this means it will insert a literal <Tab>; but if
|
||||
you have defined some other behavior for that key, e.g. by installing another
|
||||
plug-in such as supertab (https://github.com/ervandew/supertab) than that will
|
||||
be used).
|
||||
|
||||
For example, entering this text in a file:
|
||||
>
|
||||
1 + \alpha
|
||||
<
|
||||
and then pressing <Tab>, results in:
|
||||
>
|
||||
1 + α
|
||||
<
|
||||
|
||||
This feature is associated with 'omnifunc' completion, and therefore can
|
||||
always be accessed via CTRL-X CTRL-O, even when |g:latex_to_unicode_tab| is 0.
|
||||
|
||||
A literal <Tab> key can always be entered by using CTRL-V before <Tab> (see
|
||||
|i_CTRL-V|).
|
||||
|
||||
Partial sequence recognition triggers auto-completion (performed as if the
|
||||
`longest` setting was used in 'completeopt') and shows a menu of suggestions
|
||||
together with their corresponding Unicode symbol (provided the `menu` setting
|
||||
is included in 'completeopt', and more then one match is found). So for
|
||||
example, entering `\al` and pressing <Tab> will result in the following list:
|
||||
>
|
||||
+-------------+
|
||||
| \aleph ℵ |
|
||||
| \allequal ≌ |
|
||||
| \alpha α |
|
||||
+-------------+
|
||||
>
|
||||
Then, pressing `p` will reduce the list to `\alpha`, pressing <Tab> will
|
||||
complete it and pressing <Tab> again will perform the substitution.
|
||||
|
||||
The completion menu can be disbled, and this will happen automatically if a
|
||||
plug-in which is known to be incompatible with this feature is detected: see
|
||||
|g:latex_to_unicode_suggestions|.
|
||||
|
||||
Some LaTeX sequences can be valid both as they are and as partial matches for
|
||||
other sequences, e.g. `\ne` is associated with `≠`, but it is also a partial
|
||||
match for `\nequiv` (`≢`). By default, if <Tab> finds an exact match performs
|
||||
the substitution, but this can be controlled by the |g:latex_to_unicode_eager|
|
||||
setting.
|
||||
|
||||
Command-line mode *julia-vim-L2U-cmdmode*
|
||||
|
||||
In |Command-line| mode, the behavior is largely the same except that both
|
||||
<Tab> and <S-Tab> are mapped by default, and the functionality is slightly
|
||||
more limited. No suggestions are shown for partial completions. Pre-existing
|
||||
user-defined mappings of <Tab> are overridden. In order to avoid that, the
|
||||
completion can be mapped onto a defferent key combination, see
|
||||
|g:latex_to_unicode_cmd_mapping|. When using <Tab>, if no matches are found
|
||||
the behavior falls back to the standard Vim command-line completion.
|
||||
|
||||
Vim versions lower than 7.4 *julia-vim-L2U-workaround*
|
||||
|
||||
The <Tab> key remapping is not performed by default with Vim versions lower
|
||||
than 7.4. However, the functionality is still available via onmicompletion,
|
||||
which is accessible by the CTRL-X CTRL-O key combination. You can map some
|
||||
other key combination to this by adding something like
|
||||
>
|
||||
inoremap <C-Tab> <C-X><C-O>
|
||||
<
|
||||
in your |.vimrc| file. If you'd map <Tab> directly, then you'd need to use
|
||||
CTRL-V <Tab> to insert a literal <Tab>.
|
||||
|
||||
The settings |g:latex_to_unicode_eager| and |g:latex_to_unicode_suggestions|
|
||||
are still meaningful in this case.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE AS YOU TYPE *julia-vim-L2U-as-you-type*
|
||||
|
||||
This feature is disabled by default, see |g:latex_to_unicode_auto|, and it is
|
||||
only available with Vim version 7.4 or higher. It consists in substituting
|
||||
valid LaTeX sequences with Unicode symbols automatically as the typing
|
||||
progresses, as soon as the sequences is unambiguously complete. For example,
|
||||
when typing:
|
||||
>
|
||||
\chi\^2 = 1
|
||||
<
|
||||
The result is
|
||||
>
|
||||
χ² = 1
|
||||
<
|
||||
The `\chi` is substituted right when the second backslash is entered, and the
|
||||
`\^2` is substituted when the following space is entered, before the equal
|
||||
sign.
|
||||
|
||||
This feature does not currently work with emojis.
|
||||
|
||||
This feature does not interfere with the <Tab> based substitution.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE VIA KEYMAP *julia-vim-L2U-keymap*
|
||||
|
||||
This method is somewhat similar to the as-you-type one described above, but it
|
||||
uses |keymap| to generate the mappings. This has the advantage that it works
|
||||
in more circumstances, e.g. in |Command-line| mode or when searching within a
|
||||
line with |f| or |t| (since it uses |language-mapping| underneath). It can
|
||||
also be easily turned on or off like any other keymap (see |i_CTRL-^| and
|
||||
|c_CTRL-^|). Like the as-you-type fature, it doesn't work with emojis.
|
||||
The disadvantage is that you don't see the whole sequence as you're typing
|
||||
it, and you can't fix mistakes with backspace, for example.
|
||||
Another difference is that there is a |timeout| like for any other mapping.
|
||||
|
||||
In order to use this method, set |g:latex_to_unicode_keymap| to `1`.
|
||||
You can use it in parallel with the other methods, they don't interfere. For
|
||||
example, typing a partial sequence and pressing <Tab> still triggers
|
||||
completions and suggestions if |g:latex_to_unicode_tab| is active.
|
||||
|
||||
If you use this feature, it's also useful to set |lCursor|.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE ON DIFFERENT FILE TYPES *julia-vim-L2U-file-types*
|
||||
|
||||
By default, the LaTeX-to-Unicode substitutions are only active when editing
|
||||
Julia files. However, you can use the variable |g:latex_to_unicode_file_types|
|
||||
to specify for which file types this feature is active by default. The
|
||||
variable must be set to a string containing a |pattern| (a regular expression)
|
||||
which matches the desired file types, or to a list of such patterns. For
|
||||
example, to activate the feature on all file types by default, you could put
|
||||
this in your |.vimrc| file:
|
||||
>
|
||||
let g:latex_to_unicode_file_types = ".*"
|
||||
<
|
||||
To make it active only on, say, Julia and Lisp files, you could use:
|
||||
>
|
||||
let g:latex_to_unicode_file_types = ["julia", "lisp"]
|
||||
<
|
||||
|
||||
Another option, |g:latex_to_unicode_file_types_blacklist|, can be used to
|
||||
exclude certain file types. For example, if you'd wish to enable the feature
|
||||
in all cases except for Python and untyped files, you would use:
|
||||
>
|
||||
let g:latex_to_unicode_file_types = ".*"
|
||||
let g:latex_to_unicode_file_types_blacklist = ["python", ""]
|
||||
<
|
||||
|
||||
NOTE: enabling the functionality will override the |'omnifunc'| setting, which
|
||||
can be undesirable, and interfere with plug-ins for different file types. In
|
||||
any case, the previous |'omnifunc'| setting is restored when the functionality
|
||||
is disabled, see |julia-vim-L2U-enable-disable|.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
ENABLING AND DISABLING LATEX TO UNICODE *julia-vim-L2U-enable-disable*
|
||||
|
||||
The LaTeX-to-Unicode functionality can be enabled or disabled at any time,
|
||||
regardless of the |'filetype'| of the file you're editing, using the functions
|
||||
|LaTeXtoUnicode#Enable()|, |LaTeXtoUnicode#Disable()|, |LaTeXtoUnicode#Toggle()|.
|
||||
For example, you could use a mapping like:
|
||||
>
|
||||
noremap <expr> <F7> LaTeXtoUnicode#Toggle()
|
||||
noremap! <expr> <F7> LaTeXtoUnicode#Toggle()
|
||||
<
|
||||
and then use the <F7> key to quickly switch the functionality on and off as
|
||||
needed (see |noremap| and |noremap!|).
|
||||
|
||||
NOTE: these functions are different from the variables |g:latex_to_unicode_tab|,
|
||||
|g:latex_to_unicode_auto| and |g:latex_to_unicode_keymap|: the functions
|
||||
enable/disable the functionality as a whole, while the variables control
|
||||
individual features (tab, auto and keymap substitution).
|
||||
|
||||
==============================================================================
|
||||
VARIABLES *julia-vim-L2U-variables*
|
||||
|
||||
*g:latex_to_unicode_tab*
|
||||
g:latex_to_unicode_tab
|
||||
|
||||
Determines whether to map LaTeX-to-Unicode substitution to the
|
||||
<Tab> key while in |Insert| and |Command-line| modes, see
|
||||
|julia-vim-L2U-tab|. If unspecified, it is on. You can disable
|
||||
the feature by default by inserting the line
|
||||
>
|
||||
let g:latex_to_unicode_tab = 0
|
||||
<
|
||||
in your |.vimrc| file. You can change this setting at any moment
|
||||
while editing, but you need to invoke |LaTeXtoUnicode#Init()|
|
||||
for the change to take effect.
|
||||
|
||||
*g:latex_to_unicode_suggestions*
|
||||
g:latex_to_unicode_suggestions
|
||||
|
||||
Determines whether the <Tab> key mapping produces suggestions
|
||||
for partial matches. By default, this is set to 1 (active),
|
||||
unless a plug-in which is known to be incompatible with it is
|
||||
detected. Currently, known incompatible plug-ins are
|
||||
YouCompleteMe (https://github.com/Valloric/YouCompleteMe),
|
||||
neocomplcache (https://github.com/Shougo/neocomplcache.vim),
|
||||
neocomplete (https://github.com/Shougo/neocomplete.vim) and
|
||||
deoplete (https://github.com/Shougo/deoplete.nvim),
|
||||
|
||||
This variable can be set at any time, changes will immediately
|
||||
take effect.
|
||||
|
||||
*g:latex_to_unicode_eager*
|
||||
g:latex_to_unicode_eager
|
||||
|
||||
Determines whether the <Tab> key mapping performs the
|
||||
substitution immediately upon finding an exact match. By
|
||||
default this setting is set to 1 (active), so that e.g. typing
|
||||
`\ne` and pressing the <Tab> key triggers the substitution. If
|
||||
this variable is set to 0, an exact match which is also a
|
||||
possible partial match to some other sequence triggers the
|
||||
suggestions menu first, but another <Tab> forces the
|
||||
substitution, so that e.g. typing `\ne` and then <Tab>
|
||||
produces a list with `\ne`, `\neg`, `\nequiv` etc., and
|
||||
pressing <Tab> again performs the substitution.
|
||||
|
||||
This variable can be set at any time, changes will immediately
|
||||
take effect. When |g:latex_to_unicode_suggestions| is `0`,
|
||||
this setting has no effect (it's like if it was always on).
|
||||
|
||||
*g:latex_to_unicode_auto*
|
||||
g:latex_to_unicode_auto
|
||||
|
||||
Determines whether to activate LaTeX-to-Unicode substitution
|
||||
on the fly as you type (in |Insert| mode), see
|
||||
|julia-vim-L2U-as-you-type|. If unspecified, it is `0` (off).
|
||||
You can enable the feature by default by inserting the line
|
||||
>
|
||||
let g:latex_to_unicode_auto = 1
|
||||
<
|
||||
in your |.vimrc| file. You can change this setting at any
|
||||
moment while editing, but you need to invoke
|
||||
|LaTeXtoUnicode#Init()| for the change to take effect.
|
||||
|
||||
|
||||
*g:latex_to_unicode_keymap*
|
||||
g:latex_to_unicode_keymap
|
||||
|
||||
Determines whether to activate the |keymap|-based
|
||||
LaTeX-to-Unicode substitutions, see |julia-vim-L2U-keymap|.
|
||||
If unspecified, it is `0` (off). You can enable the feature by
|
||||
default by inserting the line
|
||||
>
|
||||
let g:latex_to_unicode_keymap = 1
|
||||
<
|
||||
in your |.vimrc| file. You can change this setting at any
|
||||
moment while editing, but you need to invoke
|
||||
|LaTeXtoUnicode#Init()| for the change to take effect.
|
||||
|
||||
*g:latex_to_unicode_file_types*
|
||||
g:latex_to_unicode_file_types
|
||||
|
||||
Contains a |pattern|, or a list of patterns, which are matched
|
||||
against the |'filetype'| to determine when to enable the
|
||||
LaTeX-to-Unicode functionality, see |julia-vim-L2U-file-types|.
|
||||
By default, its value is `"julia"`. The patterns provided must
|
||||
match the whole filetype name. See also
|
||||
|g:latex_to_unicode_file_types_blacklist|.
|
||||
|
||||
*g:latex_to_unicode_file_types_blacklist*
|
||||
g:latex_to_unicode_file_types_blacklist
|
||||
|
||||
Same as |g:latex_to_unicode_file_types|, but acts in reverse:
|
||||
it disables the LaTeX-to-Unicode functionality when the
|
||||
|'filetype'| matches the provided pattern (or any of the
|
||||
patterns if a list is provided). By default, it contains an
|
||||
unmatchable pattern, i.e. it is effectively disabled.
|
||||
|
||||
*g:latex_to_unicode_cmd_mapping*
|
||||
g:latex_to_unicode_cmd_mapping
|
||||
|
||||
Specifies the mapping (or list of mappings) for the
|
||||
substitution in |Command-line| mode. By default, it is
|
||||
`['<Tab>', '<S-Tab>']`, but it can be changed to avoid
|
||||
overriding other user-defined mapping, e.g. to `'<S-Tab>'`
|
||||
(if your terminal suppoorts it) or `'<C-\><Tab>'`.
|
||||
The `'<Tab>'` (or to be more precise the |wildchar| key) and
|
||||
`'<S-Tab>'` mappings are special in that they fall back to
|
||||
performing default Vim completions in case no suitable
|
||||
substitutions are found.
|
||||
|
||||
==============================================================================
|
||||
FUNCTIONS *julia-vim-L2U-functions*
|
||||
|
||||
*LaTeXtoUnicode#Init()*
|
||||
LaTeXtoUnicode#Init()
|
||||
|
||||
Initialize or re-initialize the LaTeX-to-Unicode substitutions
|
||||
(see |julia-vim-L2U-introduction|). Must be invoked after
|
||||
changing |g:latex_to_unicode_tab| or |g:latex_to_unicode_auto|
|
||||
to make the changes take effect.
|
||||
|
||||
*LaTeXtoUnicode#Enable()*
|
||||
*LaTeXtoUnicode#Disable()*
|
||||
*LaTeXtoUnicode#Toggle()*
|
||||
LaTeXtoUnicode#Enable()
|
||||
LaTeXtoUnicode#Disable()
|
||||
LaTeXtoUnicode#Toggle()
|
||||
|
||||
These functions enable/disable/toggle the LaTeX-to-Unicode
|
||||
functionality, regardless of the |'filetype'| specified in
|
||||
|g:latex_to_unicode_file_types| and
|
||||
|g:latex_to_unicode_file_types_blacklist|. See
|
||||
|julia-vim-L2U-enable-disable|. Note that LaTeXtoUnicode#Enable()
|
||||
will override the |'omnifunc'| definition, if present. However,
|
||||
LaTeXtoUnicode#Disable() will restore it.
|
||||
These functions implicitly invoke |LaTeXtoUnicode#Init()|.
|
||||
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,399 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
|
||||
|
||||
*julia-vim.txt* Support for Julia in Vim
|
||||
|
||||
Author: Carlo Baldassi <carlobaldassi@gmail.com>
|
||||
License: MIT license {{{
|
||||
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.
|
||||
}}}
|
||||
|
||||
CONTENTS *julia-vim*
|
||||
|
||||
Introduction |julia-vim-introduction|
|
||||
Block-wise movements/objects |julia-vim-blocks|
|
||||
Keyword-oriented movements |julia-vim-blocks-move|
|
||||
Block-oriented movements |julia-vim-blocks-moveblock|
|
||||
Block text objects |julia-vim-blocks-objects|
|
||||
Variables |julia-vim-blocks-variables|
|
||||
Referring to documents |julia-vim-doc|
|
||||
Extras |julia-vim-extras|
|
||||
Customizations |julia-vim-options|
|
||||
About |julia-vim-about|
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *julia-vim-introduction*
|
||||
|
||||
The julia-vim plug-in provides:
|
||||
- basic support for editing Julia files (automatic filetype detection,
|
||||
indentation, syntax highlighting)
|
||||
- support for the |matchit| plugin
|
||||
- support for Julia block-wise movements (i.e. jumping around between
|
||||
Julia blocks like if/end, function/end etc.) and block text-objects
|
||||
- facilities for conversion of LaTeX entries to Unicode symbols which mimic
|
||||
and extend what the Julia REPL and the IJulia notebook interface do.
|
||||
Optionally, this functionality can be used with all file types, not
|
||||
just Julia files. See |julia-vim-L2U|.
|
||||
- a keymapping |K| to refer julia documents.
|
||||
|
||||
This help file documents: 1) the block-wise movements and objects, how they
|
||||
work and what variables can be used to enable/disable/tweak them; 2) The
|
||||
documentation lookup facility; 3) Some extra functions and customization
|
||||
options.
|
||||
The LaTeX-to-Unicode facilities are documented in |julia-vim-L2U|.
|
||||
|
||||
==============================================================================
|
||||
BLOCK-WISE MOVEMENTS AND BLOCK TEXT OBJECTS *julia-vim-blocks*
|
||||
|
||||
In Julia, all blocks start with a keyword (`module`, `function`, `if`, `for`,
|
||||
`while`, `type`, etc.) and end with the `end` keyword.
|
||||
|
||||
This plug-in adds support for the |matchit| plugin, such that pressing |%| while
|
||||
on a block keyword will jump to the other keywords pertaining to the same
|
||||
block. For example, if the cursor is at the beginning of the following code:
|
||||
>
|
||||
if a == 1
|
||||
if b > 0
|
||||
println("yes")
|
||||
end
|
||||
else
|
||||
println("no")
|
||||
end
|
||||
<
|
||||
then pressing |%| will jump to the `else` keyword, pressing it again will jump
|
||||
to `end`, and pressing it again will go back to the first `if`.
|
||||
|
||||
Note that the matchit plugin is normally distributed with ViM, but it is
|
||||
disabled by default. To enable it, add this line to your |.vimrc| file:
|
||||
>
|
||||
runtime macros/matchit.vim
|
||||
<
|
||||
The julia-vim plug-in also adds commands to jump around block keywords in
|
||||
normal, operator-pending and visual modes (see |vim-modes|). These are somehow
|
||||
similar to the |]]| and |]m| mappings when used in C and Java files,
|
||||
respectively, but are more powerful. These commands also require that the
|
||||
matchit plugin is enabled.
|
||||
|
||||
There are two families of block movements, keyword-oriented (see
|
||||
|julia-vim-blocks-move|) and block-oriented (see
|
||||
|julia-vim-blocks-blockmove|).
|
||||
|
||||
Finally, this plug-in also adds block |text-objects| special mappings, so that
|
||||
whole blocks can be manipulated as a whole when in visual mode or
|
||||
operator-pending mode, see |julia-vim-block-objects|.
|
||||
|
||||
The block movements and block objects mappings can be collectively disabled,
|
||||
see |g:julia_blocks|, and customized, see |g:julia_blocks_mappings|.
|
||||
|
||||
NOTE: in all cases, macros at the beginning of a block are considered as part
|
||||
of the block itself. For example, in this code:
|
||||
>
|
||||
@inbounds for i = 1:5
|
||||
s += v[i]
|
||||
end
|
||||
<
|
||||
the block begins at `@inbounds`.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
KEYWORD-ORIENTED MOVEMENTS *julia-vim-blocks-move*
|
||||
|
||||
These movements jump to the following/preceding block keyword, and they
|
||||
differentiate between begin keywords and end keywords. Some block keywords can
|
||||
also be used outside blocks (e.g. `for` in comprehensions, or `end` within
|
||||
indexing expressions): these instances are ignored by these commands.
|
||||
|
||||
The following movements are provided:
|
||||
|
||||
*julia_]j* *julia_]J* *julia_[j* *julia_[J*
|
||||
move_n : jumps to the next begin keyword. By default, it is mapped to `]j`.
|
||||
move_N : jumps to the next end keyword. By default, it is mapped to `]J`.
|
||||
move_p : jumps to the preceding begin keyword. By default, it is mapped to `[j`.
|
||||
move_P : jumps to the preceding end keyword. By default, it is mapped to `[J`.
|
||||
|
||||
Use |g:julia_blocks_mappings| to customize the mappings.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
BLOCK-ORIENTED MOVEMENTS *julia-vim-blocks-moveblock*
|
||||
|
||||
These movements are like keyword-oriented movements (|julia-vim-blocks-move|),
|
||||
except that they ignore nested blocks within the block where the cursor is.
|
||||
For example, given the following code (with line annotations):
|
||||
>
|
||||
1 while true
|
||||
2 a += 1
|
||||
3 if a > 5
|
||||
4 break
|
||||
5 end
|
||||
6 end
|
||||
7 if b == 2
|
||||
8 return
|
||||
9 end
|
||||
<
|
||||
if the cursor is on line 2, these movements will ignore the inner
|
||||
`if/end` block (lines 3 to 5). You would then be able to jump directly
|
||||
to lines 1 (with `[[`), 6 (with `][`), 7 (with `]]`), or 9 (with `2][`).
|
||||
|
||||
The following movements are provided:
|
||||
|
||||
*julia_]]* *julia_][* *julia_[[* *julia_[]*
|
||||
moveblock_n : gets out from the current block (if any) and jumps to the next
|
||||
begin keyword. (Similar to |w| for word movements.) By default,
|
||||
it is mapped to `]]`.
|
||||
moveblock_N : jumps to the end of the current block, if any. If the cursor is
|
||||
already at the end of a block, jumps to the end of the following
|
||||
block at the same level of the current one, or at the end of the
|
||||
enclosing block. (Similar to |e| for word movements.) By
|
||||
default, it is mapped to `][`.
|
||||
moveblock_p : jumps to the beginning of the current block, if any. If the
|
||||
cursor is already at the beginning of a block, jumps to the
|
||||
beginning of the preceding block at the same level of the
|
||||
current one, or at the beginning of the enclosing block.
|
||||
(Similar to |b| for word movements.) By default, it is mapped to
|
||||
`[[`.
|
||||
moveblock_P : gets out from the current block (if any) and jumps to the
|
||||
preceding end keyword. (Similar to |ge| for word movements.)
|
||||
By default, it is mapped to `[]`.
|
||||
|
||||
Use |g:julia_blocks_mappings| to customize the mappings.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
BLOCK TEXT OBJECTS *julia-vim-blocks-objects*
|
||||
|
||||
The julia-vim plug-in extends the ViM |text-objects| by defining special
|
||||
mappings which allow to operate on blocks as a whole when in visual mode
|
||||
or operator-pending mode. The default mappings use `aj` and `ij` to refer to
|
||||
these objects.
|
||||
For example, given the following code (with line annotations):
|
||||
>
|
||||
1 while true
|
||||
2 a += 1
|
||||
3 if a > 5
|
||||
4 break
|
||||
5 end
|
||||
6 end
|
||||
<
|
||||
if the cursor is on `break` on line 4, pressing `vaj` will select the whole
|
||||
inner `if` block (lines 3 to 5), and pressing `aj` again will select the whole
|
||||
`while` block (lines 1 to 6). The same effect could have been obtained with a
|
||||
counter, i.e. using `v2aj`. If the cursor were initially on line 2, the whole
|
||||
`while` block would have been selected with the first `vaj`. Using `daj` would
|
||||
delete a block, `caj` would delete it and leave ViM in insert mode, `=aj`
|
||||
would indent it, etc.
|
||||
Starting from line 2, pressing `vij` wuold only select the inner part of the
|
||||
`while` block (lines 2 to 5).
|
||||
|
||||
The following mappings are provided:
|
||||
|
||||
*julia_aj* *julia_ij*
|
||||
select_a : the block which contains the cursor, including its delimiters.
|
||||
By default, this is mapped to `aj`. Repeated application (e.g.
|
||||
`vajaj`) selects the enclosing blocks. A counter can be used to
|
||||
the same effect as repetition (e.g. `v2aj`).
|
||||
select_i : same as select_a, but only selects the lines included between the
|
||||
delimiters. Thus, this does not work with single-line blocks.
|
||||
By default, this is mapped to `ij`. Repeated application (e.g.
|
||||
`vijij`) has no effect, but using a counter has the same effect as
|
||||
using "select_a" and then selecting the inner part of the outermost
|
||||
block. For example, with the default mappings, `v3ij` is the same as
|
||||
`v3ajij`, or `vajajajij`.
|
||||
|
||||
Use |g:julia_blocks_mappings| to customize the mappings.
|
||||
|
||||
The following auxiliary function is only mapped to normal mode:
|
||||
|
||||
*julia_whereami*
|
||||
whereami : this mapping prints the first line of the current block on the
|
||||
command line. If invoked repeatedly, or if given a count, it prints
|
||||
the first line of the enclosing blocks, like `select_a`. If followed
|
||||
by `select_a`, the selection, or operation, will refer to the last
|
||||
block printed. By default, it is not mapped to any key, but a
|
||||
mapping can be easily provided in |g:julia_blocks_mappings|. It is
|
||||
possible to obtain the string, instead of having it printed, by
|
||||
calling the function `julia_blocks#whereami()`. In such case, use
|
||||
the function `julia_blocks#select_reset()` to reset the block
|
||||
nesting level.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
VARIABLES *julia-vim-blocks-variables*
|
||||
|
||||
*g:julia_blocks*
|
||||
g:julia_blocks
|
||||
|
||||
Determines whether to map block-wise movements and objects. If
|
||||
unspecified, it is on. You can disable the feature by default
|
||||
by inserting the line
|
||||
>
|
||||
let g:julia_blocks = 0
|
||||
<
|
||||
in your |.vimrc| file.
|
||||
|
||||
*g:julia_blocks_mappings*
|
||||
g:julia_blocks_mappings
|
||||
|
||||
Custom mapping for block-wise movements. This must be a |dict|
|
||||
associating movements to key combinations. Use empty strings
|
||||
to disable individual mappings. The following is equivalent
|
||||
to the default mappings (see |julia-vim-blocks-moveblock|,
|
||||
|julia-vim-blocks-move| and |julia-vim-blocks-objects|):
|
||||
>
|
||||
let g:julia_blocks_mappings = {
|
||||
\ "move_n" : "]j",
|
||||
\ "move_N" : "]J",
|
||||
\ "move_p" : "[j",
|
||||
\ "move_P" : "[J",
|
||||
\
|
||||
\ "moveblock_n" : "]]",
|
||||
\ "moveblock_N" : "][",
|
||||
\ "moveblock_p" : "[[",
|
||||
\ "moveblock_P" : "[]",
|
||||
\
|
||||
\ "select_a" : "aj",
|
||||
\ "select_i" : "ij",
|
||||
\
|
||||
\ "whereami" : "",
|
||||
\ }
|
||||
<
|
||||
You can change individual mappings by writing something like
|
||||
this in your |.vimrc| file:
|
||||
>
|
||||
let g:julia_blocks_mappings = {
|
||||
\ "move_N" : "]n",
|
||||
\ "move_P" : "[n",
|
||||
\ "whereami" : "<Leader>j",
|
||||
\ }
|
||||
<
|
||||
Or you can disable individual mappings by writing something like
|
||||
this in your |.vimrc| file:
|
||||
>
|
||||
let g:julia_blocks_mappings = {
|
||||
\ "moveblock_n" : "",
|
||||
\ "moveblock_p" : "",
|
||||
\ }
|
||||
<
|
||||
All unspecified entries keep their default value.
|
||||
|
||||
|
||||
==============================================================================
|
||||
REFERRING TO DOCUMENTATION *julia-vim-doc*
|
||||
|
||||
*julia-vim-K*
|
||||
K
|
||||
Look up documentation for the keyword under the cursor. If found,
|
||||
a preview window with the documentation is opened.
|
||||
|
||||
This also works for keywords within the opened preview window,
|
||||
allowing effortless browsing of the documentation.
|
||||
|
||||
(This is not really a key mapping, but uses the built-in
|
||||
|keywordprg|-mechanism in vim; see |K| if you're curious).
|
||||
|
||||
|
||||
*<Plug>(JuliaDocPrompt)*
|
||||
<Plug>(JuliaDocPrompt)
|
||||
Open a prompt for keyword documentation lookup. If you don't use |?|
|
||||
for backward search, you can use the following to make `?` work like
|
||||
in the Julia REPL:
|
||||
>
|
||||
autocmd FileType julia nmap <buffer> ? <Plug>(JuliaDocPrompt)
|
||||
<
|
||||
Apply |:augroup| as needed.
|
||||
|
||||
|
||||
*:JuliaDoc*
|
||||
:JuliaDoc {keyword}
|
||||
Look up documentation for {keyword}.
|
||||
|
||||
|
||||
==============================================================================
|
||||
EXTRAS *julia-vim-extras*
|
||||
|
||||
|
||||
*julia#toggle_function_blockassign*
|
||||
*julia#function_block2assign*
|
||||
*julia#function_assign2block*
|
||||
julia#toggle_function_blockassign()
|
||||
julia#function_block2assign()
|
||||
julia#function_assign2block()
|
||||
|
||||
These functions allow to transform function definitions
|
||||
between block format and assignment format. For example,
|
||||
these two definitions are equivalent:
|
||||
>
|
||||
function test(x, y)
|
||||
x + 2y
|
||||
end
|
||||
|
||||
test(x, y) = x + 2y
|
||||
<
|
||||
You can use the function `julia#toggle_function_blockassign()`
|
||||
to switch between the two forms (the cursor needs to be on the
|
||||
first line of the block form). This functionality requires
|
||||
that the |matchit| plugin is loaded. Only three-line function
|
||||
blocks like the one in the example are recognized. When
|
||||
changing the block form into the assignment form, `return`
|
||||
statements are removed; if the result is empty, `nothing` is
|
||||
substituted. Leading macros (e.g. `@inline` or `@compat`) are
|
||||
recognized and preserved by the transformation.
|
||||
|
||||
In order to make this functionality practical, it is advisable
|
||||
to map it to some key combination, e.g.:
|
||||
>
|
||||
noremap <Leader>fb :call julia#toggle_function_blockassign()<CR>
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
CUSTOMIZATIONS *julia-vim-options*
|
||||
|
||||
The following options allows customizing some aspects of the plugin.
|
||||
|
||||
*g:julia_spellcheck_docstrings*
|
||||
g:julia_spellcheck_docstrings
|
||||
|
||||
Determines whether to enable spell-checking for docstrings,
|
||||
i.e. triple quoted strings that start in the first column. See
|
||||
|spell|. Default: on (set to `1`).
|
||||
|
||||
*g:julia_spellcheck_strings*
|
||||
g:julia_spellcheck_strings
|
||||
|
||||
Determines whether to enable spell-checking for all strings.
|
||||
See |spell|. Default: off (set to `0`).
|
||||
|
||||
*g:julia_spellcheck_comments*
|
||||
g:julia_spellcheck_comments
|
||||
|
||||
Determines whether to enable spell-checking for comments. See
|
||||
|spell|. Default: on (set to `1`).
|
||||
|
||||
*g:julia_highlight_operators*
|
||||
g:julia_highlight_operators
|
||||
|
||||
Determines whether to apply syntax highlighting to operators.
|
||||
Default: on (set to `1`).
|
||||
|
||||
|
||||
==============================================================================
|
||||
ABOUT *julia-vim-about*
|
||||
|
||||
Grab the latest version or report a bug on GitHub:
|
||||
|
||||
http://github.com/JuliaEditorSupport/julia-vim
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
|
||||
endif
|
||||
443
doc/ledger.txt
443
doc/ledger.txt
@@ -1,443 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ledger') == -1
|
||||
|
||||
*ledger.txt* Plugin for the ledger filetype.
|
||||
|
||||
|
||||
*ledger* *ledger-plugin*
|
||||
|
||||
Contents:
|
||||
|
||||
Commands............|ledger-invoking|
|
||||
Source................|ledger-source|
|
||||
Usage..................|ledger-usage|
|
||||
Tips....................|ledger-tips|
|
||||
Reports..............|ledger-reports|
|
||||
Settings............|ledger-settings|
|
||||
Completion........|ledger-completion|
|
||||
License..............|ledger-license|
|
||||
|
||||
|
||||
==============================================================================
|
||||
USAGE *ledger-usage*
|
||||
|
||||
Copy each file to the corresponding directory in your ~/.vim directory or
|
||||
install using Pathogen.
|
||||
|
||||
You can also use a modeline like this in every ledger file:
|
||||
|
||||
vim:filetype=ledger
|
||||
|
||||
==============================================================================
|
||||
TIPS *ledger-tips*
|
||||
|
||||
Tips and useful commands
|
||||
|
||||
* vim-ledger can do syntax-sensitive folding when you set `foldmethod=syntax`
|
||||
in the |modeline| of your ledger file. This way transactions can shrink down
|
||||
to just one line.
|
||||
|
||||
* Try account-completion (as explained below). If you use YouCompleteMe, you
|
||||
should disable it for Ledger files. Put this in your .vimrc:
|
||||
|
||||
if exists('g:ycm_filetype_blacklist')
|
||||
call extend(g:ycm_filetype_blacklist, { 'ledger': 1 })
|
||||
endif
|
||||
|
||||
* You may use `:make` for syntax checking. It may be convenient to define a
|
||||
mapping for the following command:
|
||||
|
||||
:silent make | redraw! | cwindow
|
||||
|
||||
It is recommended to set the value of `g:ledger_extra_options` (see below)
|
||||
as follows:
|
||||
|
||||
let g:ledger_extra_options = '--pedantic --explicit --check-payees'
|
||||
|
||||
to catch most potential problems in your source file.
|
||||
|
||||
* Remap vim paragraph motion to move by transaction.
|
||||
|
||||
In vim, the "{" and "}" keystrokes move the cursor up and down by whole
|
||||
paragraphs. They can be redefined in ledger files to move by transaction
|
||||
instead. Add these lines to .vimrc:
|
||||
|
||||
au FileType ledger noremap { ?^\d<CR>
|
||||
au FileType ledger noremap } /^\d<CR>
|
||||
|
||||
The default definitions already work in ledger files that separate
|
||||
transactions with blank lines.
|
||||
|
||||
* `:call ledger#transaction_date_set(line('.'), "auxiliary")`
|
||||
|
||||
will set today's date as the auxiliary date of the current transaction. You
|
||||
can use also "primary" or "unshift" in place of "auxiliary". When you pass
|
||||
"unshift" the old primary date will be set as the auxiliary date and today's
|
||||
date will be set as the new primary date.
|
||||
To use a different date pass a date measured in seconds since 1st Jan 1970
|
||||
as the third argument.
|
||||
|
||||
* `:call ledger#transaction_state_set(line('.'), '*')`
|
||||
|
||||
sets the state of the current transaction to '*'. You can use this in custom
|
||||
mappings.
|
||||
|
||||
* `:call ledger#transaction_state_toggle(line('.'), ' *?!')`
|
||||
|
||||
will toggle through the provided transaction states. You can map this to
|
||||
double-clicking for example:
|
||||
|
||||
noremap <silent><buffer> <2-LeftMouse>\
|
||||
:call ledger#transaction_state_toggle(line('.'), ' *?!')<CR>
|
||||
|
||||
* `:LedgerAlign`
|
||||
|
||||
moves the amount expression of a posting so that the decimal separator is
|
||||
aligned at the column specified by g:ledger_align_at. If an amount has no
|
||||
decimal point, the imaginary decimal point to the right of the least
|
||||
significant digit will align. The command acts on a range, with the default
|
||||
being the current line.
|
||||
|
||||
The decimal separator can be set using `g:ledger_decimal_sep`. The default
|
||||
value of `g:ledger_decimal_sep` is `'.'`.
|
||||
|
||||
See below for the recommended mappings.
|
||||
|
||||
* `:call ledger#align_amount_at_cursor()`
|
||||
|
||||
aligns the amount under the cursor and append/prepend the default currency.
|
||||
The default currency can be set using `g:ledger_default_commodity`. Whether
|
||||
the commodity should be inserted before the amount or appended to it can be
|
||||
configured with the boolean flag `g:ledger_commodity_before` (the default
|
||||
value is 1). A separator between the commodity and the amount may be set
|
||||
using `g:ledger_commodity_sep`.
|
||||
|
||||
See below for the recommended mappings.
|
||||
|
||||
* `:call ledger#autocomplete_and_align()`
|
||||
|
||||
when the cursor is on a number or immediately after it, invokes
|
||||
`ledger#align_amount_at_cursor()` to align it and add the default currency;
|
||||
otherwise, performs autocompletion. If you define the following mappings in
|
||||
your `.vimrc` then you may perform both autocompletion and alignment using
|
||||
the <Tab> key:
|
||||
|
||||
au FileType ledger inoremap <silent> <Tab> \
|
||||
<C-r>=ledger#autocomplete_and_align()<CR>
|
||||
au FileType ledger vnoremap <silent> <Tab> :LedgerAlign<CR>
|
||||
|
||||
Alternatively, you may create a file `.vim/after/ftplugin/ledger.vim`
|
||||
containing the following definitions:
|
||||
|
||||
inoremap <silent> <buffer> <Tab> \
|
||||
<C-r>=ledger#autocomplete_and_align()<CR>
|
||||
vnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
|
||||
|
||||
Now, you may type `asset:check<Tab><Space>123.45<Tab>`, and have the
|
||||
account name autocompleted and `$123.45` properly aligned (assuming your
|
||||
default commodity is set to `'$'`). Or you may press <Tab> in Visual mode
|
||||
to align a number of transactions at once.
|
||||
|
||||
* `:call ledger#entry()`
|
||||
|
||||
enters a new transaction based on the text in the current line.
|
||||
The text in the current line is replaced by the new transaction.
|
||||
This is a front end to `ledger entry`.
|
||||
|
||||
==============================================================================
|
||||
REPORTS *ledger-reports*
|
||||
|
||||
* `:Ledger`
|
||||
|
||||
Executes an arbitrary Ledger command and sends the output to a new buffer.
|
||||
For example:
|
||||
|
||||
:Ledger bal ^assets ^liab
|
||||
|
||||
Errors are displayed in a quickfix window. The command offers account and
|
||||
payee autocompletion (by pressing <Tab>): every name starting with `@` is
|
||||
autocompleted as a payee; any other name is autocompleted as an account.
|
||||
|
||||
In a report buffer or in the quickfix window, you may press <Tab> to switch
|
||||
back to your source file, and you may press `q` to dismiss the current window.
|
||||
|
||||
There are three highlight groups that are used to color the report:
|
||||
|
||||
* `LedgerNumber`
|
||||
|
||||
This is used to color nonnegative numbers.
|
||||
|
||||
* `LedgerNegativeNumber`
|
||||
|
||||
This is used to color negative numbers.
|
||||
|
||||
* `LedgerImproperPerc`
|
||||
|
||||
This is used to color improper percentages.
|
||||
|
||||
* `:Balance`
|
||||
|
||||
Show the pending and cleared balance of a given account below the status
|
||||
line. For example:
|
||||
|
||||
:Balance checking:savings
|
||||
|
||||
The command offers payee and account autocompletion (see `:Ledger`). The
|
||||
account argument is optional: if no argument is given, the first account
|
||||
name found in the current line is used.
|
||||
|
||||
Two highlight groups can be used to customize the colors of the line:
|
||||
|
||||
* `LedgerCleared`
|
||||
|
||||
This is used to color the cleared balance.
|
||||
|
||||
* `LedgerPending`
|
||||
|
||||
This is used to color the pending balance.
|
||||
|
||||
* `:Register`
|
||||
|
||||
Opens an arbitrary register report in the quickfix window. For example:
|
||||
|
||||
:Register groceries -p 'this month'
|
||||
|
||||
The command offers account and payee autocompletion (see |:Ledger|). You
|
||||
may use the standard quickfix commands to jump from an entry in the register
|
||||
report to the corresponding location in the source file. If you use GUI Vim
|
||||
or if your terminal has support for the mouse (e.g., iTerm2, or even
|
||||
Terminal.app in OS X 10.11 or later), you may also double-click on a line
|
||||
number in the quickfix window to jump to the corresponding posting.
|
||||
|
||||
It is strongly recommended that you add mappings for common quickfix
|
||||
commands like `:cprev` and `:cnext`, or that you use T. Pope's Unimpaired
|
||||
plugin.
|
||||
|
||||
* :`Reconcile`
|
||||
|
||||
Reconcile an account. For example:
|
||||
|
||||
:Reconcile checking
|
||||
|
||||
After you press Enter, you will be asked to enter a target amount (use
|
||||
Vim's syntax for numbers, not your ledger's format). For example, for a
|
||||
checking account, the target amount may be the balance of your latest bank
|
||||
statement. The list of uncleared postings appears in the quickfix window.
|
||||
The current balance of the account, together with the difference between the
|
||||
target amount and the cleared balance, is shown at the bottom of the screen.
|
||||
You may use standard quickfix commands to navigate through the postings. You
|
||||
may use |ledger#transaction_state_set()| to update a transaction's state.
|
||||
Every time you save your file, the balance and the difference from the
|
||||
target amount are updated at the bottom of the screen. The goal, of course,
|
||||
is to get such difference to zero. You may press `<C-l>` to refresh the
|
||||
Reconcile buffer. To finish reconciling an account, simply close the
|
||||
quickfix window.
|
||||
|
||||
There is a highlight group to customize the color of the difference from
|
||||
target:
|
||||
|
||||
* `LedgerTarget`
|
||||
|
||||
This is used to color the difference between the target amount and the
|
||||
cleared balance.
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *ledger-settings*
|
||||
|
||||
Configuration
|
||||
|
||||
Include the following let-statements somewhere in your `.vimrc` to modify the
|
||||
behaviour of the ledger filetype.
|
||||
|
||||
* Path to the `ledger` executable:
|
||||
|
||||
let g:ledger_bin = 'ledger'
|
||||
|
||||
* Additional default options for the `ledger` executable:
|
||||
|
||||
let g:ledger_extra_options = ''
|
||||
|
||||
* To use a custom external system command to generate a list of account names
|
||||
for completion, set the following. If g:ledger_bin is set, this will default
|
||||
to running that command with arguments to parse the current file using the
|
||||
accounts subcommand (works with ledger or hledger), otherwise it will parse
|
||||
the postings in the current file itself.
|
||||
|
||||
let g:ledger_accounts_cmd = 'your_command args'
|
||||
|
||||
* To use a custom external system command to generate a list of descriptions
|
||||
for completion, set the following. If g:ledger_bin is set, this will default
|
||||
to running that command with arguments to parse the current file using the
|
||||
descriptions subcommand (works with ledger or hledger), otherwise it will
|
||||
parse the transactions in the current file itself.
|
||||
|
||||
let g:ledger_descriptions_cmd = 'your_command args'
|
||||
|
||||
* Number of columns that will be used to display the foldtext. Set this when
|
||||
you think that the amount is too far off to the right.
|
||||
|
||||
let g:ledger_maxwidth = 80
|
||||
|
||||
* String that will be used to fill the space between account name and amount in
|
||||
the foldtext. Set this to get some kind of lines or visual aid.
|
||||
|
||||
let g:ledger_fillstring = ' -'
|
||||
|
||||
* If you want the account completion to be sorted by level of detail/depth
|
||||
instead of alphabetical, include the following line:
|
||||
|
||||
let g:ledger_detailed_first = 1
|
||||
|
||||
* By default vim will fold ledger transactions, leaving surrounding blank lines
|
||||
unfolded. You can use 'g:ledger_fold_blanks' to hide blank lines following a
|
||||
transaction.
|
||||
|
||||
let g:ledger_fold_blanks = 0
|
||||
|
||||
A value of 0 will disable folding of blank lines, 1 will allow folding of a
|
||||
single blank line between transactions; any larger value will enable folding
|
||||
unconditionally.
|
||||
|
||||
Note that only lines containing no trailing spaces are considered for
|
||||
folding. You can take advantage of this to disable this feature on a
|
||||
case-by-case basis.
|
||||
|
||||
* Decimal separator:
|
||||
|
||||
let g:ledger_decimal_sep = '.'
|
||||
|
||||
* Specify at which column decimal separators should be aligned:
|
||||
|
||||
let g:ledger_align_at = 60
|
||||
|
||||
* Default commodity used by `ledger#align_amount_at_cursor()`:
|
||||
|
||||
let g:ledger_default_commodity = ''
|
||||
|
||||
* Flag that tells whether the commodity should be prepended or appended to the
|
||||
amount:
|
||||
|
||||
let g:ledger_commodity_before = 1
|
||||
|
||||
* String to be put between the commodity and the amount:
|
||||
|
||||
let g:ledger_commodity_sep = ''
|
||||
|
||||
* Flag that enable the spelling of the amount:
|
||||
|
||||
let g:ledger_commodity_spell = 1
|
||||
|
||||
* Format of transaction date:
|
||||
|
||||
let g:ledger_date_format = '%Y/%m/%d'
|
||||
|
||||
* The file to be used to generate reports:
|
||||
|
||||
let g:ledger_main = '%'
|
||||
|
||||
The default is to use the current file.
|
||||
|
||||
* Position of a report buffer:
|
||||
|
||||
let g:ledger_winpos = 'B'
|
||||
|
||||
Use `b` for bottom, `t` for top, `l` for left, `r` for right. Use uppercase letters
|
||||
if you want the window to always occupy the full width or height.
|
||||
|
||||
* Format of quickfix register reports (see |:Register|):
|
||||
|
||||
let g:ledger_qf_register_format = \
|
||||
'%(date) %-50(payee) %-30(account) %15(amount) %15(total)\n'
|
||||
|
||||
The format is specified using the standard Ledger syntax for --format.
|
||||
|
||||
* Format of the reconcile quickfix window (see |:Reconcile|):
|
||||
|
||||
let g:ledger_qf_reconcile_format = \
|
||||
'%(date) %-4(code) %-50(payee) %-30(account) %15(amount)\n'
|
||||
|
||||
The format is specified using the standard Ledger syntax for --format.
|
||||
|
||||
* Flag that tells whether a location list or a quickfix list should be used:
|
||||
|
||||
let g:ledger_use_location_list = 0
|
||||
|
||||
The default is to use the quickfix window. Set to 1 to use a location list.
|
||||
|
||||
* Position of the quickfix/location list:
|
||||
|
||||
let g:ledger_qf_vertical = 0
|
||||
|
||||
Set to 1 to open the quickfix window in a vertical split.
|
||||
|
||||
* Size of the quickfix window:
|
||||
|
||||
let g:ledger_qf_size = 10
|
||||
|
||||
This is the number of lines of a horizontal quickfix window, or the number
|
||||
of columns of a vertical quickfix window.
|
||||
|
||||
* Flag to show or hide filenames in the quickfix window:
|
||||
|
||||
let g:ledger_qf_hide_file = 1
|
||||
|
||||
Filenames in the quickfix window are hidden by default. Set this to 1 is
|
||||
you want filenames to be visible.
|
||||
|
||||
* Text of the output of the |:Balance| command:
|
||||
|
||||
let g:ledger_cleared_string = 'Cleared: '
|
||||
let g:ledger_pending_string = 'Cleared or pending: '
|
||||
let g:ledger_target_string = 'Difference from target: '
|
||||
|
||||
==============================================================================
|
||||
COMPLETION *ledger-completion*
|
||||
|
||||
Omni completion is currently implemented for account names only.
|
||||
|
||||
### Accounts
|
||||
|
||||
Account names are matched by the start of every sub-level. When you
|
||||
insert an account name like this:
|
||||
|
||||
Asse<C-X><C-O>
|
||||
|
||||
You will get a list of top-level accounts that start like this.
|
||||
|
||||
Go ahead and try something like:
|
||||
|
||||
As:Ban:Che<C-X><C-O>
|
||||
|
||||
When you have an account like this, 'Assets:Bank:Checking' should show up.
|
||||
|
||||
When you want to complete on a virtual transaction, it's currently best
|
||||
to keep the cursor in front of the closing bracket. Of course you can
|
||||
insert the closing bracket after calling the completion, too.
|
||||
|
||||
==============================================================================
|
||||
LICENSE *ledger-license*
|
||||
|
||||
https://github.com/ledger/vim-ledger
|
||||
|
||||
Copyright 2019 Caleb Maclennan
|
||||
Copyright 2009–2017 Johann Klähn
|
||||
Copyright 2009 Stefan Karrmann
|
||||
Copyright 2005 Wolfgang Oertl
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation, either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
vim:ts=8 sw=8 noexpandtab tw=78 ft=help:
|
||||
|
||||
|
||||
endif
|
||||
@@ -1,16 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||
|
||||
*ocaml.txt* Filetype plugin for OCaml
|
||||
|
||||
CONFIGURATION *ocaml-configuration*
|
||||
|
||||
*g:ocaml_highlight_operators*
|
||||
|
||||
By default operators are not linked to the Operator group and thus not
|
||||
highlighted. You can turn on highlighting of operators by defining:
|
||||
|
||||
let g:ocaml_highlight_operators = 1
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
|
||||
endif
|
||||
22
doc/opam.txt
22
doc/opam.txt
@@ -1,22 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||
|
||||
*opam.txt* Switch OCaml versions from inside Vim using OPAM
|
||||
|
||||
Author: Rudi Grinberg <http://rgrinberg.com>
|
||||
License: Same terms as Vim itself (see |license|)
|
||||
|
||||
This plugin is only available if 'compatible' is not set.
|
||||
|
||||
COMMANDS *:opam*
|
||||
|
||||
:Opam {version} Set the current OCaml version to {version}.
|
||||
|
||||
ABOUT *opam-about*
|
||||
|
||||
Grab the latest version or report a bug on GitHub:
|
||||
|
||||
https://github.com/ocaml/vim-ocaml
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
|
||||
endif
|
||||
143
doc/pgsql.txt
143
doc/pgsql.txt
@@ -1,143 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pgsql') == -1
|
||||
|
||||
*pgsql.txt* Syntax highlighting for PostgreSQL files
|
||||
_ ~
|
||||
| | ~
|
||||
____ ____ ___ ____| | ~
|
||||
| _ \ / _ |/___)/ _ | | ~
|
||||
| |_| ( (_| |___ | |_| | | ~
|
||||
| __/ \___ (___/ \__ |\_) ~
|
||||
|_| (_____| |_| ~
|
||||
|
||||
The best PostgreSQL plugin for Vim!
|
||||
|
||||
Author: Lifepillar <https://github.com/lifepillar>
|
||||
License: Public Domain
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *pgsql-contents*
|
||||
|
||||
1. Syntax highlighting ................... |pgsql-syntax|
|
||||
2. Customization ......................... |pgsql-customization|
|
||||
3. Autocompletion ........................ |pgsql-autocompletion|
|
||||
4. Contributing .......................... |pgsql-contributing|
|
||||
5. Credits ............................... |pgsql-credits|
|
||||
|
||||
==============================================================================
|
||||
Syntax highlighting *pgsql-syntax*
|
||||
|
||||
Files with a .`pgsql` suffix are highlighted out of the box. If you want to
|
||||
highlight `.sql` files using this plugin by default, add this to your `.vimrc`
|
||||
(see |ft_sql.txt| for more details):
|
||||
>
|
||||
let g:sql_type_default = 'pgsql'
|
||||
<
|
||||
Alternatively, after loading a `.sql` file use this command:
|
||||
>
|
||||
SQLSetType pgsql.vim
|
||||
<
|
||||
To set the file type in new buffers use:
|
||||
>
|
||||
let b:sql_type_override='pgsql' | set ft=sql
|
||||
<
|
||||
Identifiers starting with an underscore are highlighted as variables. It is
|
||||
recommended to adopt the convention of prefixing function parameters and local
|
||||
variables with `_`.
|
||||
|
||||
Code between `$pgsql$`, `$body$`, or `$$` pairs is interpreted as PL/pgSQL and
|
||||
highlighted accordingly (the delimiters are case-insensitive). If you prefer
|
||||
to use `$$` to highlight strings instead, you may set |g:pgsql_dollar_strings|
|
||||
to 1.
|
||||
|
||||
Text enclosed between `$anyword$` pairs, where `anyword` is any non-empty
|
||||
sequence of word characters different from those with a special meaning (such
|
||||
as `$pgsql$`) is treated as a multi-line string.
|
||||
|
||||
Finally, the plugin supports syntax highlighting of arbitrary languages within
|
||||
procedure and function blocks. This feature needs to be configured: see
|
||||
|g:pgsql_pl|.
|
||||
|
||||
==============================================================================
|
||||
Customization *pgsql-customization*
|
||||
|
||||
*'g:pgsql_backslash_quote'*
|
||||
Set to 1 to recognize `\'` as an escape sequence in all strings. By default,
|
||||
`\'` is treated as an escape sequence only in "escape" strings constants,
|
||||
i.e., strings enclosed in `E''`.
|
||||
>
|
||||
let g:pgsql_backslash_quote = 0
|
||||
<
|
||||
*'g:pgsql_disabled_extensions'*
|
||||
Support for the most common PostgreSQL extensions is enabled by default. Set
|
||||
this to a List of names of extensions whose keywords you do not want to be
|
||||
highlighted.
|
||||
>
|
||||
let g:pgsql_disabled_extensions = []
|
||||
<
|
||||
*'g:pgsql_dollar_strings'*
|
||||
Set to 1 if you want double-dollar enclosed text highlighted as a SQL string.
|
||||
By default, text quoted with `$$` is highlighted as PL/pgSQL.
|
||||
>
|
||||
let g:pgsql_dollar_strings = 0
|
||||
<
|
||||
*'g:pgsql_pl'*
|
||||
*'b:pgsql_pl'*
|
||||
A List of the filetypes that should be highlighted inside the body of
|
||||
user-defined functions and procedures.
|
||||
>
|
||||
let g:pgsql_pl = []
|
||||
<
|
||||
For example, to use PL/Python and PL/R, you should define:
|
||||
>
|
||||
let g:pgsql_pl = ['python', 'r']
|
||||
<
|
||||
Then, code between `$python$` pairs will be highlighted as Python, and code
|
||||
between `$r$` pairs will be highlighted as R.
|
||||
|
||||
The buffer-local version of this setting can be used to override the global
|
||||
setting in a single buffer.
|
||||
|
||||
Note: changes to any of these variables take effect after the SQL filetype is
|
||||
reloaded.
|
||||
|
||||
==============================================================================
|
||||
Autocompletion *pgsql-autocompletion*
|
||||
|
||||
This plugin just defines a new dialect for Vim's SQL plugin. As such, it
|
||||
inherits the static and dynamic completion methods already offered by Vim (see
|
||||
|sql-completion|). So, for example, by default you may use `<C-c>f` to
|
||||
complete function names, `<C-c>T` to complete types, and so on. See
|
||||
|ft_sql.txt| for thorough documentation about SQL support in Vim.
|
||||
|
||||
As far as I know, YouCompleteMe does not support SQL. If you use YouCompleteMe
|
||||
you may want to disable it for SQL buffers. Add this to
|
||||
`.vim/after/ftplugin/sql.vim`:
|
||||
>
|
||||
if exists('g:ycm_filetype_blacklist')
|
||||
call extend(g:ycm_filetype_blacklist, { 'sql': 1 })
|
||||
endif
|
||||
<
|
||||
Of course, I recommend using my own MUcomplete plugin over YCM ;)
|
||||
|
||||
==============================================================================
|
||||
Contributing *pgsql-contributing*
|
||||
|
||||
For bug reports and feature requests please use:
|
||||
|
||||
https://github.com/lifepillar/pgsql.vim/issues
|
||||
|
||||
Pull requests are welcome, too!
|
||||
|
||||
==============================================================================
|
||||
Credits *pgsql-credits*
|
||||
|
||||
This plugin was originally a fork of space::tekk's
|
||||
|
||||
https://github.com/spacetekk/pgsql.vim
|
||||
|
||||
and completely rewritten.
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
|
||||
endif
|
||||
29
doc/polyglot.txt
Normal file
29
doc/polyglot.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
o | o o | o o | o o | o o | o o | o o | o o | o o
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
|
||||
*polyglot-vim-plugin* Language pack for Vim
|
||||
|
||||
CONFIGURATION *polyglot.vim*
|
||||
|
||||
You can disable vim-polyglot by putting using `g:polyglot_disabled`
|
||||
option. It needs to be defined before vim-polyglot is loaded.
|
||||
|
||||
```
|
||||
let g:polyglot_disabled = ['javascript', 'autoindent', 'sensible']
|
||||
```
|
||||
|
||||
What can be disabled:
|
||||
|
||||
1. Language packs, like "javascript", "css" etc.
|
||||
2. Support for detecting indentation like vim-sleuth ('autoindent')
|
||||
3. Default vim settings from vim-sensible ('sensible')
|
||||
|
||||
|
||||
You can file bugs, and find more information at:
|
||||
|
||||
https://github.com/sheerun/vim-polyglot
|
||||
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
o | o o | o o | o o | o o | o o | o o | o o | o o
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
68
doc/ps1.txt
68
doc/ps1.txt
@@ -1,68 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
|
||||
|
||||
*ps1.txt* A Windows PowerShell syntax plugin for Vim
|
||||
|
||||
Maintainer: Peter Provost <https://www.github.com/PProvost>
|
||||
License: Apache 2.0
|
||||
Version: 2.10
|
||||
|
||||
INTRODUCTION *ps1-syntax*
|
||||
|
||||
This plugin provides Vim syntax, indent and filetype detection for Windows
|
||||
PowerShell scripts, modules, and XML configuration files.
|
||||
|
||||
|
||||
ABOUT *ps1-about*
|
||||
|
||||
Grab the latest version or report a bug on GitHub:
|
||||
|
||||
https://github.com/PProvost/vim-ps1
|
||||
|
||||
|
||||
FOLDING *ps1-folding*
|
||||
|
||||
The ps1 syntax file provides syntax folding (see |:syn-fold|) for script blocks
|
||||
and digital signatures in scripts.
|
||||
|
||||
When 'foldmethod' is set to "syntax" then function script blocks will be
|
||||
folded unless you use the following in your .vimrc or before opening a script: >
|
||||
|
||||
:let g:ps1_nofold_blocks = 1
|
||||
<
|
||||
Digital signatures in scripts will also be folded unless you use: >
|
||||
|
||||
:let g:ps1_nofold_sig = 1
|
||||
<
|
||||
Note: syntax folding might slow down syntax highlighting significantly,
|
||||
especially for large files.
|
||||
|
||||
|
||||
COMPILER *ps1-compiler*
|
||||
|
||||
The powershell |compiler| script configures |:make| to execute the script in
|
||||
PowerShell.
|
||||
|
||||
It tries to pick a smart default PowerShell command: `pwsh` if available and
|
||||
`powershell` otherwise, but you can customize the command: >
|
||||
|
||||
:let g:ps1_makeprg_cmd = '/path/to/pwsh'
|
||||
<
|
||||
To configure whether to show the exception type information: >
|
||||
|
||||
:let g:ps1_efm_show_error_categories = 1
|
||||
<
|
||||
|
||||
KEYWORD LOOKUP *ps1-keyword*
|
||||
|
||||
To look up keywords using PowerShell's Get-Help, press the |K| key. For more
|
||||
convenient paging, the pager `less` should be installed, which is included in
|
||||
many Linux distributions and in macOS.
|
||||
|
||||
Many other distributions are available for Windows like
|
||||
https://chocolatey.org/packages/less/. Make sure `less` is in a directory
|
||||
listed in the `PATH` environment variable, which chocolatey above does.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
vim:ft=help:
|
||||
|
||||
endif
|
||||
@@ -1,124 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'python') == -1
|
||||
|
||||
*python-syntax.txt* Python syntax highlighting
|
||||
|
||||
==============================================================================
|
||||
Introduction *python-syntax* *ft-python-syntax* *python.vim*
|
||||
|
||||
This is an enhanced version of the original Vim 6.1 Python syntax highlighting
|
||||
`python.vim` by Neil Schemenauer.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
* Enhanced highlighting for:
|
||||
* Strings
|
||||
* Special symbols inside strings
|
||||
* Numeric constants
|
||||
* Added support for:
|
||||
* Python 3
|
||||
* Numbers with underscores
|
||||
* String %-formatting and f-strings
|
||||
* Magic comments: source code encoding and shebangs
|
||||
* New exceptions and builtins
|
||||
* Doctests
|
||||
* `@decorator` syntax
|
||||
* Class variables such as `self` and `cls`
|
||||
* Operators
|
||||
* Highlighting of the following errors:
|
||||
* Invalid symbols in source file
|
||||
* Invalid numeric constants
|
||||
* Invalid %-formatting inside strings
|
||||
* Invalid variable names
|
||||
* Invalid operators
|
||||
* Mixing spaces and tabs
|
||||
* Trailing spaces (Enabled with `g:python_highlight_space_errors`)
|
||||
* Commands for easy switching between versions
|
||||
|
||||
Folding is done by the plugin SimpylFold
|
||||
(https://github.com/tmhedberg/SimpylFold).
|
||||
|
||||
==============================================================================
|
||||
Configuration *python-syntax-configuration*
|
||||
|
||||
Option variables
|
||||
----------------
|
||||
|
||||
Set variable to `1` to enable or `0` to disable.
|
||||
|
||||
For example to enable all syntax highlighting features you can add the
|
||||
following command to your `~/.config/nvim/init.vim` or `~/.vimrc`: >
|
||||
|
||||
let g:python_highlight_all = 1
|
||||
<
|
||||
|
||||
`g:python_version_2` (default `0`)
|
||||
Python 2 mode
|
||||
|
||||
`b:python_version_2` (default `0`)
|
||||
Python 2 mode (buffer local)
|
||||
|
||||
`g:python_highlight_builtins` (default `0`)
|
||||
Highlight builtin objects, types, and functions
|
||||
|
||||
`g:python_highlight_builtin_objs` (default `0`)
|
||||
Highlight builtin objects only
|
||||
|
||||
`g:python_highlight_builtin_types` (default `0`)
|
||||
Highlight builtin types only
|
||||
|
||||
`g:python_highlight_builtin_funcs` (default `0`)
|
||||
Highlight builtin functions only
|
||||
|
||||
`g:python_highlight_builtin_funcs_kwarg` (default `1`)
|
||||
Highlight builtin functions when used as kwarg
|
||||
|
||||
`g:python_highlight_exceptions` (default `0`)
|
||||
Highlight standard exceptions
|
||||
|
||||
`g:python_highlight_string_formatting` (default `0`)
|
||||
Highlight `%` string formatting
|
||||
|
||||
`g:python_highlight_string_format` (default `0`)
|
||||
Highlight syntax of `str.format` syntax
|
||||
|
||||
`g:python_highlight_string_templates` (default `0`)
|
||||
Highlight syntax of `string.Template`
|
||||
|
||||
`g:python_highlight_indent_errors` (default `0`)
|
||||
Highlight indentation errors
|
||||
|
||||
`g:python_highlight_space_errors` (default `0`)
|
||||
Highlight trailing spaces
|
||||
|
||||
`g:python_highlight_doctests` (default `0`)
|
||||
Highlight doc-tests
|
||||
|
||||
`g:python_highlight_func_calls` (default `0`)
|
||||
Highlight functions calls
|
||||
|
||||
`g:python_highlight_class_vars` (default `0`)
|
||||
Highlight class variables `self` and `cls`
|
||||
|
||||
`g:python_highlight_operators` (default `0`)
|
||||
Highlight all operators
|
||||
|
||||
`g:python_highlight_all` (default `0`)
|
||||
Enable all highlight options above, except for previously set.
|
||||
|
||||
`g:python_highlight_file_headers_as_comments` (default `0`)
|
||||
Highlight shebang and coding headers as comments
|
||||
|
||||
`g:python_slow_sync` (default `1`)
|
||||
Disable for slow machines
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
`Python2Syntax`
|
||||
Switch to Python 2
|
||||
|
||||
`Python3Syntax`
|
||||
Switch to Python 3
|
||||
|
||||
endif
|
||||
@@ -1,24 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'reason') == -1
|
||||
|
||||
*reason.txt* Filetype plugin for Reason
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *reason* *ft-reason*
|
||||
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *reason-intro*
|
||||
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *reason-settings*
|
||||
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *reason-mappings*
|
||||
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
490
doc/rust.txt
490
doc/rust.txt
@@ -1,490 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
*ft_rust.txt* Filetype plugin for Rust
|
||||
|
||||
==============================================================================
|
||||
CONTENTS *rust*
|
||||
|
||||
1. Introduction |rust-intro|
|
||||
2. Settings |rust-settings|
|
||||
3. Commands |rust-commands|
|
||||
4. Mappings |rust-mappings|
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *rust-intro*
|
||||
|
||||
This plugin provides syntax and supporting functionality for the Rust
|
||||
filetype. It requires Vim 8 or higher for full functionality. Some commands
|
||||
will not work on earlier versions.
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *rust-settings*
|
||||
|
||||
This plugin has a few variables you can define in your vimrc that change the
|
||||
behavior of the plugin.
|
||||
|
||||
Some variables can be set buffer local (`:b` prefix), and the buffer local
|
||||
will take precedence over the global `g:` counterpart.
|
||||
|
||||
*g:rustc_path*
|
||||
g:rustc_path~
|
||||
Set this option to the path to rustc for use in the |:RustRun| and
|
||||
|:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
|
||||
let g:rustc_path = $HOME."/bin/rustc"
|
||||
<
|
||||
|
||||
*g:rustc_makeprg_no_percent*
|
||||
g:rustc_makeprg_no_percent~
|
||||
Set this option to 1 to have 'makeprg' default to "rustc" instead of
|
||||
"rustc %": >
|
||||
let g:rustc_makeprg_no_percent = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal*
|
||||
g:rust_conceal~
|
||||
Set this option to turn on the basic |conceal| support: >
|
||||
let g:rust_conceal = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal_mod_path*
|
||||
g:rust_conceal_mod_path~
|
||||
Set this option to turn on |conceal| for the path connecting token
|
||||
"::": >
|
||||
let g:rust_conceal_mod_path = 1
|
||||
<
|
||||
|
||||
*g:rust_conceal_pub*
|
||||
g:rust_conceal_pub~
|
||||
Set this option to turn on |conceal| for the "pub" token: >
|
||||
let g:rust_conceal_pub = 1
|
||||
<
|
||||
|
||||
*g:rust_recommended_style*
|
||||
g:rust_recommended_style~
|
||||
Set this option to enable vim indentation and textwidth settings to
|
||||
conform to style conventions of the rust standard library (i.e. use 4
|
||||
spaces for indents and sets 'textwidth' to 99). This option is enabled
|
||||
by default. To disable it: >
|
||||
let g:rust_recommended_style = 0
|
||||
<
|
||||
|
||||
*g:rust_fold*
|
||||
g:rust_fold~
|
||||
Set this option to turn on |folding|: >
|
||||
let g:rust_fold = 1
|
||||
<
|
||||
Value Effect ~
|
||||
0 No folding
|
||||
1 Braced blocks are folded. All folds are open by
|
||||
default.
|
||||
2 Braced blocks are folded. 'foldlevel' is left at the
|
||||
global value (all folds are closed by default).
|
||||
|
||||
*g:rust_bang_comment_leader*
|
||||
g:rust_bang_comment_leader~
|
||||
Set this option to 1 to preserve the leader on multi-line doc comments
|
||||
using the /*! syntax: >
|
||||
let g:rust_bang_comment_leader = 1
|
||||
<
|
||||
|
||||
*g:rust_use_custom_ctags_defs*
|
||||
g:rust_use_custom_ctags_defs~
|
||||
Set this option to 1 if you have customized ctags definitions for Rust
|
||||
and do not wish for those included with rust.vim to be used: >
|
||||
let g:rust_use_custom_ctags_defs = 1
|
||||
<
|
||||
|
||||
NOTE: rust.vim's built-in definitions are only used for the Tagbar Vim
|
||||
plugin, if you have it installed, AND if Universal Ctags is not
|
||||
detected. This is because Universal Ctags already has built-in
|
||||
support for Rust when used with Tagbar.
|
||||
|
||||
Also, note that when using ctags other than Universal Ctags, it is not
|
||||
automatically used when generating |tags| files that Vim can use to
|
||||
navigate to definitions across different source files. Feel free to
|
||||
copy `rust.vim/ctags/rust.ctags` into your own `~/.ctags` if you wish
|
||||
to generate |tags| files.
|
||||
|
||||
|
||||
*g:ftplugin_rust_source_path*
|
||||
g:ftplugin_rust_source_path~
|
||||
Set this option to a path that should be prepended to 'path' for Rust
|
||||
source files: >
|
||||
let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
|
||||
<
|
||||
|
||||
*g:rustfmt_command*
|
||||
g:rustfmt_command~
|
||||
Set this option to the name of the 'rustfmt' executable in your $PATH. If
|
||||
not specified it defaults to 'rustfmt' : >
|
||||
let g:rustfmt_command = 'rustfmt'
|
||||
<
|
||||
*g:rustfmt_autosave*
|
||||
g:rustfmt_autosave~
|
||||
Set this option to 1 to run |:RustFmt| automatically when saving a
|
||||
buffer. If not specified it defaults to 0 : >
|
||||
let g:rustfmt_autosave = 0
|
||||
<
|
||||
There is also a buffer-local b:rustfmt_autosave that can be set for
|
||||
the same purpose, and can override the global setting.
|
||||
|
||||
*g:rustfmt_autosave_if_config_present*
|
||||
g:rustfmt_autosave_if_config_present~
|
||||
Set this option to 1 to have *b:rustfmt_autosave* be set automatically
|
||||
if a `rustfmt.toml` file is present in any parent directly leading to
|
||||
the file being edited. If not set, default to 0: >
|
||||
let g:rustfmt_autosave_if_config_present = 0
|
||||
<
|
||||
This is useful to have `rustfmt` only execute on save, on projects
|
||||
that have `rustfmt.toml` configuration.
|
||||
|
||||
There is also a buffer-local b:rustfmt_autosave_if_config_present
|
||||
that can be set for the same purpose, which can overrides the global
|
||||
setting.
|
||||
*g:rustfmt_fail_silently*
|
||||
g:rustfmt_fail_silently~
|
||||
Set this option to 1 to prevent 'rustfmt' from populating the
|
||||
|location-list| with errors. If not specified it defaults to 0: >
|
||||
let g:rustfmt_fail_silently = 0
|
||||
<
|
||||
*g:rustfmt_options*
|
||||
g:rustfmt_options~
|
||||
Set this option to a string of options to pass to 'rustfmt'. The
|
||||
write-mode is already set to 'overwrite'. If not specified it
|
||||
defaults to '' : >
|
||||
let g:rustfmt_options = ''
|
||||
<
|
||||
*g:rustfmt_emit_files*
|
||||
g:rustfmt_emit_files~
|
||||
If not specified rust.vim tries to detect the right parameter to
|
||||
pass to rustfmt based on its reported version. Otherwise, it
|
||||
determines whether to run rustfmt with '--emit=files' (when 1 is
|
||||
provided) instead of '--write-mode=overwrite'. >
|
||||
let g:rustfmt_emit_files = 0
|
||||
|
||||
|
||||
*g:rust_playpen_url*
|
||||
g:rust_playpen_url~
|
||||
Set this option to override the url for the playpen to use: >
|
||||
let g:rust_playpen_url = 'https://play.rust-lang.org/'
|
||||
<
|
||||
|
||||
*g:rust_shortener_url*
|
||||
g:rust_shortener_url~
|
||||
Set this option to override the url for the url shortener: >
|
||||
let g:rust_shortener_url = 'https://is.gd/'
|
||||
<
|
||||
|
||||
*g:rust_clip_command*
|
||||
g:rust_clip_command~
|
||||
Set this option to the command used in your OS to copy the Rust Play
|
||||
url to the clipboard: >
|
||||
let g:rust_clip_command = 'xclip -selection clipboard'
|
||||
<
|
||||
|
||||
*g:cargo_makeprg_params*
|
||||
g:cargo_makeprg_params~
|
||||
Set this option to the string of parameters to pass to cargo. If not
|
||||
specified it defaults to '$*' : >
|
||||
let g:cargo_makeprg_params = 'build'
|
||||
<
|
||||
|
||||
*g:cargo_shell_command_runner*
|
||||
g:cargo_shell_command_runner~
|
||||
Set this option to change how to run shell commands for cargo commands
|
||||
|:Cargo|, |:Cbuild|, |:Crun|, ...
|
||||
By default, |:terminal| is used to run shell command in terminal window
|
||||
asynchronously. But if you prefer |:!| for running the commands, it can
|
||||
be specified: >
|
||||
let g:cargo_shell_command_runner = '!'
|
||||
<
|
||||
|
||||
|
||||
Integration with Syntastic *rust-syntastic*
|
||||
--------------------------
|
||||
|
||||
This plugin automatically integrates with the Syntastic checker. There are two
|
||||
checkers provided: 'rustc', and 'cargo'. The latter invokes 'Cargo' in order to
|
||||
build code, and the former delivers a single edited '.rs' file as a compilation
|
||||
target directly to the Rust compiler, `rustc`.
|
||||
|
||||
Because Cargo is almost exclusively being used for building Rust code these
|
||||
days, 'cargo' is the default checker. >
|
||||
|
||||
let g:syntastic_rust_checkers = ['cargo']
|
||||
<
|
||||
If you would like to change it, you can set `g:syntastic_rust_checkers` to a
|
||||
different value.
|
||||
*g:rust_cargo_avoid_whole_workspace*
|
||||
*b:rust_cargo_avoid_whole_workspace*
|
||||
g:rust_cargo_avoid_whole_workspace~
|
||||
When editing a crate that is part of a Cargo workspace, and this
|
||||
option is set to 1 (the default), then 'cargo' will be executed
|
||||
directly in that crate directory instead of in the workspace
|
||||
directory. Setting 0 prevents this behavior - however be aware that if
|
||||
you are working in large workspace, Cargo commands may take more time,
|
||||
plus the Syntastic error list may include all the crates in the
|
||||
workspace. >
|
||||
let g:rust_cargo_avoid_whole_workspace = 0
|
||||
<
|
||||
*g:rust_cargo_check_all_targets*
|
||||
*b:rust_cargo_check_all_targets*
|
||||
g:rust_cargo_check_all_targets~
|
||||
When set to 1, the `--all-targets` option will be passed to cargo when
|
||||
Syntastic executes it, allowing the linting of all targets under the
|
||||
package.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_all_features*
|
||||
*b:rust_cargo_check_all_features*
|
||||
g:rust_cargo_check_all_features~
|
||||
When set to 1, the `--all-features` option will be passed to cargo when
|
||||
Syntastic executes it, allowing the linting of all features of the
|
||||
package.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_examples*
|
||||
*b:rust_cargo_check_examples*
|
||||
g:rust_cargo_check_examples~
|
||||
When set to 1, the `--examples` option will be passed to cargo when
|
||||
Syntastic executes it, to prevent the exclusion of examples from
|
||||
linting. The examples are normally under the `examples/` directory of
|
||||
the crate.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_tests*
|
||||
*b:rust_cargo_check_tests*
|
||||
g:rust_cargo_check_tests~
|
||||
When set to 1, the `--tests` option will be passed to cargo when
|
||||
Syntastic executes it, to prevent the exclusion of tests from linting.
|
||||
The tests are normally under the `tests/` directory of the crate.
|
||||
The default is 0.
|
||||
|
||||
*g:rust_cargo_check_benches*
|
||||
*b:rust_cargo_check_benches*
|
||||
g:rust_cargo_check_benches~
|
||||
When set to 1, the `--benches` option will be passed to cargo when
|
||||
Syntastic executes it. The benches are normally under the `benches/`
|
||||
directory of the crate.
|
||||
The default is 0.
|
||||
|
||||
Integration with auto-pairs *rust-auto-pairs*
|
||||
---------------------------
|
||||
|
||||
This plugin automatically configures the auto-pairs plugin not to duplicate
|
||||
single quotes, which are used more often for lifetime annotations than for
|
||||
single character literals.
|
||||
|
||||
*g:rust_keep_autopairs_default*
|
||||
g:rust_keep_autopairs_default~
|
||||
|
||||
Don't override auto-pairs default for the Rust filetype. The default
|
||||
is 0.
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *rust-commands*
|
||||
|
||||
Invoking Cargo
|
||||
--------------
|
||||
|
||||
This plug defines very simple shortcuts for invoking Cargo from with Vim.
|
||||
|
||||
:Cargo <args> *:Cargo*
|
||||
Runs 'cargo' with the provided arguments.
|
||||
|
||||
:Cbuild <args> *:Cbuild*
|
||||
Shortcut for 'cargo build`.
|
||||
|
||||
:Cclean <args> *:Cclean*
|
||||
Shortcut for 'cargo clean`.
|
||||
|
||||
:Cdoc <args> *:Cdoc*
|
||||
Shortcut for 'cargo doc`.
|
||||
|
||||
:Cinit <args> *:Cinit*
|
||||
Shortcut for 'cargo init`.
|
||||
|
||||
:Crun <args> *:Crun*
|
||||
Shortcut for 'cargo run`.
|
||||
|
||||
:Ctest <args> *:Ctest*
|
||||
Shortcut for 'cargo test`.
|
||||
|
||||
:Cupdate <args> *:Cupdate*
|
||||
Shortcut for 'cargo update`.
|
||||
|
||||
:Cbench <args> *:Cbench*
|
||||
Shortcut for 'cargo bench`.
|
||||
|
||||
:Csearch <args> *:Csearch*
|
||||
Shortcut for 'cargo search`.
|
||||
|
||||
:Cpublish <args> *:Cpublish*
|
||||
Shortcut for 'cargo publish`.
|
||||
|
||||
:Cinstall <args> *:Cinstall*
|
||||
Shortcut for 'cargo install`.
|
||||
|
||||
:Cruntarget <args> *:Cruntarget*
|
||||
Shortcut for 'cargo run --bin' or 'cargo run --example',
|
||||
depending on the currently open buffer.
|
||||
|
||||
Formatting
|
||||
----------
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
Runs |g:rustfmt_command| on the current buffer. If
|
||||
|g:rustfmt_options| is set then those will be passed to the
|
||||
executable.
|
||||
|
||||
If |g:rustfmt_fail_silently| is 0 (the default) then it
|
||||
will populate the |location-list| with the errors from
|
||||
|g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
|
||||
then it will not populate the |location-list|.
|
||||
|
||||
:RustFmtRange *:RustFmtRange*
|
||||
Runs |g:rustfmt_command| with selected range. See
|
||||
|:RustFmt| for any other information.
|
||||
|
||||
|
||||
Playpen integration
|
||||
-------------------
|
||||
|
||||
:RustPlay *:RustPlay*
|
||||
This command will only work if you have web-api.vim installed
|
||||
(available at https://github.com/mattn/webapi-vim). It sends the
|
||||
current selection, or if nothing is selected, the entirety of the
|
||||
current buffer to the Rust playpen, and emits a message with the
|
||||
shortened URL to the playpen.
|
||||
|
||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||
"https://play.rust-lang.org/".
|
||||
|
||||
|g:rust_shortener_url| is the base url for the shorterner, by
|
||||
default "https://is.gd/"
|
||||
|
||||
|g:rust_clip_command| is the command to run to copy the
|
||||
playpen url to the clipboard of your system.
|
||||
|
||||
|
||||
Evaluation of a single Rust file
|
||||
--------------------------------
|
||||
|
||||
NOTE: These commands are useful only when working with standalone Rust files,
|
||||
which is usually not the case for common Rust development. If you wish to
|
||||
building Rust crates from with Vim can should use Vim's make, Syntastic, or
|
||||
functionality from other plugins.
|
||||
|
||||
|
||||
:RustRun [args] *:RustRun*
|
||||
:RustRun! [rustc-args] [--] [args]
|
||||
Compiles and runs the current file. If it has unsaved changes,
|
||||
it will be saved first using |:update|. If the current file is
|
||||
an unnamed buffer, it will be written to a temporary file
|
||||
first. The compiled binary is always placed in a temporary
|
||||
directory, but is run from the current directory.
|
||||
|
||||
The arguments given to |:RustRun| will be passed to the
|
||||
compiled binary.
|
||||
|
||||
If ! is specified, the arguments are passed to rustc instead.
|
||||
A "--" argument will separate the rustc arguments from the
|
||||
arguments passed to the binary.
|
||||
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustExpand [args] *:RustExpand*
|
||||
:RustExpand! [TYPE] [args]
|
||||
Expands the current file using --pretty and displays the
|
||||
results in a new split. If the current file has unsaved
|
||||
changes, it will be saved first using |:update|. If the
|
||||
current file is an unnamed buffer, it will be written to a
|
||||
temporary file first.
|
||||
|
||||
The arguments given to |:RustExpand| will be passed to rustc.
|
||||
This is largely intended for specifying various --cfg
|
||||
configurations.
|
||||
|
||||
If ! is specified, the first argument is the expansion type to
|
||||
pass to rustc --pretty. Otherwise it will default to
|
||||
"expanded".
|
||||
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustEmitIr [args] *:RustEmitIr*
|
||||
Compiles the current file to LLVM IR and displays the results
|
||||
in a new split. If the current file has unsaved changes, it
|
||||
will be saved first using |:update|. If the current file is an
|
||||
unnamed buffer, it will be written to a temporary file first.
|
||||
|
||||
The arguments given to |:RustEmitIr| will be passed to rustc.
|
||||
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
:RustEmitAsm [args] *:RustEmitAsm*
|
||||
Compiles the current file to assembly and displays the results
|
||||
in a new split. If the current file has unsaved changes, it
|
||||
will be saved first using |:update|. If the current file is an
|
||||
unnamed buffer, it will be written to a temporary file first.
|
||||
|
||||
The arguments given to |:RustEmitAsm| will be passed to rustc.
|
||||
|
||||
If |g:rustc_path| is defined, it is used as the path to rustc.
|
||||
Otherwise it is assumed rustc can be found in $PATH.
|
||||
|
||||
|
||||
Running test(s)
|
||||
---------------
|
||||
|
||||
:[N]RustTest[!] [options] *:RustTest*
|
||||
Runs a test under the cursor when the current buffer is in a
|
||||
cargo project with "cargo test" command. If the command did
|
||||
not find any test function under the cursor, it stops with an
|
||||
error message.
|
||||
|
||||
When N is given, adjust the size of the new window to N lines
|
||||
or columns.
|
||||
|
||||
When ! is given, runs all tests regardless of current cursor
|
||||
position.
|
||||
|
||||
When [options] is given, it is passed to "cargo" command
|
||||
arguments.
|
||||
|
||||
When the current buffer is outside cargo project, the command
|
||||
runs "rustc --test" command instead of "cargo test" as
|
||||
fallback. All tests are run regardless of adding ! since there
|
||||
is no way to run specific test function with rustc. [options]
|
||||
is passed to "rustc" command arguments in the case.
|
||||
|
||||
Takes optional modifiers (see |<mods>|): >
|
||||
:tab RustTest
|
||||
:belowright 16RustTest
|
||||
:leftabove vert 80RustTest
|
||||
<
|
||||
rust.vim Debugging
|
||||
------------------
|
||||
|
||||
:RustInfo *:RustInfo*
|
||||
Emits debugging info of the Vim Rust plugin.
|
||||
|
||||
:RustInfoToClipboard *:RustInfoClipboard*
|
||||
Saves debugging info of the Vim Rust plugin to the default
|
||||
register.
|
||||
|
||||
:RustInfoToFile [filename] *:RustInfoToFile*
|
||||
Saves debugging info of the Vim Rust plugin to the the given
|
||||
file, overwritting it.
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *rust-mappings*
|
||||
|
||||
This plugin defines mappings for |[[| and |]]| to support hanging indents.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
137
doc/scala.txt
137
doc/scala.txt
@@ -1,137 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
|
||||
|
||||
*scala.txt* Syntax highlighting and helper functions for the Scala language.
|
||||
|
||||
This plugin is only available if 'compatible' is not set.
|
||||
{Vi does not have any of this}
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *scala*
|
||||
|
||||
Syntax highlighting and helper functions for the scala language. Extras
|
||||
include:
|
||||
|
||||
- Sorting of import statements, configurable to your conventions.
|
||||
- Tagbar support to navigate definitions within a file in the plugin's
|
||||
sidebar window.
|
||||
- ...and probably more that we've forgotten to update in this doc.
|
||||
|
||||
==============================================================================
|
||||
OPTIONS *scala-options*
|
||||
|
||||
Use these options to control behavior of the plugin. Default values are
|
||||
indicated in the examples.
|
||||
|
||||
*'g:scala_use_builtin_tagbar_defs'*
|
||||
If you are using the Tagbar Vim plugin, vim-scala includes a Tagbar type
|
||||
definition and ctags definition for Scala, so you can use Tagbar immediately.
|
||||
If you have your own ctags definition in `~/.ctags` and prefer to use it, set
|
||||
this option to 0 (we would appreciate contributions if you've improved the
|
||||
ctags definition!).
|
||||
|
||||
Note that Tagbar's ctags definition for Scala is not used to generate a
|
||||
|tags| file that Vim can use to navigate to definitions in other files, only
|
||||
for the plugin sidebar. Feel free to copy `vim-scala/ctags/scala.ctags` into
|
||||
your own `~/.ctags` if you wish to generate |tags| files.
|
||||
>
|
||||
let g:scala_use_builtin_tagbar_defs = 1
|
||||
<
|
||||
*'g:scala_use_default_keymappings'*
|
||||
Set this option to disable definition of all mappings provided by vim-scala.
|
||||
See |scala-mappings|.
|
||||
>
|
||||
let g:scala_use_default_keymappings = 1
|
||||
<
|
||||
|
||||
*'g:scala_scaladoc_indent'*
|
||||
By default, the plugin indents documentation comments according to the
|
||||
standard Javadoc format.
|
||||
/**
|
||||
* This is a doc comment using Javadoc-style indentation.
|
||||
*/
|
||||
Set this option to enable the indentation standard as recommended for Scaladoc
|
||||
comments.
|
||||
/** This is a Scaladoc comment using
|
||||
* the recommended indentation.
|
||||
*/
|
||||
>
|
||||
let g:scala_scaladoc_indent = 1
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *scala-commands*
|
||||
|
||||
*:SortScalaImports*
|
||||
:SortScalaImports There are two modes in which this command can operate.
|
||||
By default it walks all import groups at the top of
|
||||
the Scala file and orders their lines alphabetically.
|
||||
A group is a series of lines starting with the
|
||||
import keyword separated by one or more blank lines.
|
||||
|
||||
The second, more advanced mode, can be activated by
|
||||
setting
|
||||
|
||||
let g:scala_sort_across_groups=1
|
||||
|
||||
This makes this command include all imports in the
|
||||
sorting regardless of blank lines in between them and
|
||||
puts them in three predefined groups instead.
|
||||
The three groups in which the imports can fall are:
|
||||
|
||||
1. Scala and Java core
|
||||
2. Third party libraries
|
||||
3. First party code (ie. your own)
|
||||
|
||||
Java and Scala core imports are identified by the
|
||||
java(x) and scala namespaces.
|
||||
Everything else that isn't a first party namespace
|
||||
will be a third party import.
|
||||
You can define a regex that matches first party
|
||||
namespaces by setting
|
||||
|
||||
g:scala_first_party_namespaces
|
||||
|
||||
For example in a standard Play app this would be
|
||||
set to
|
||||
g:scala_first_party_namespaces=
|
||||
\ '\(controllers\|views\|models\)'
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *scala-mappings*
|
||||
|
||||
Currently the only mappings defined are for FuzzyFinder users--these will
|
||||
only be enabled if FuzzyFinder is detected.
|
||||
|
||||
*scala-leader-fs*
|
||||
<Leader>fs "Find src". Primes |:FufFile| with `src/main/scala`,
|
||||
and goes deeper still if only a single directory
|
||||
exists below that. Helpful for package namespacing
|
||||
like `src/main/scala/com/myorg`.
|
||||
|
||||
*scala-leader-ft*
|
||||
<Leader>ft "Find test". Like |scala-leader-fs|, but with
|
||||
`src/test/scala`.
|
||||
|
||||
*scala-leader-fr*
|
||||
<Leader>fr "Find from root". For the rarer cases when you want to
|
||||
start FuzzyFinder at project root (parent of `src/`).
|
||||
|
||||
Disabling Mappings~
|
||||
|
||||
If you wish to disable the default key mappings, write the following line in
|
||||
your ~/.vimrc: >
|
||||
|
||||
let g:scala_use_default_keymappings = 0
|
||||
|
||||
==============================================================================
|
||||
CREDITS *scala-credits*
|
||||
|
||||
Developed by Derek Wyatt, building on initial work by Stefan Matthias Aust.
|
||||
Distributed under the Apache 2 license.
|
||||
|
||||
Project's home and Git repository: https://github.com/derekwyatt/vim-scala
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,18 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terraform') == -1
|
||||
|
||||
*terraform.txt* basic vim/terraform integration
|
||||
|
||||
Author: HashiVim <https://github.com/hashivim>
|
||||
License: ISC license
|
||||
Repo: https://github.com/hashivim/vim-terraform
|
||||
|
||||
COMMANDS *terraform*
|
||||
|
||||
This command is only available if terraform is in your PATH.
|
||||
|
||||
*terraform-:terraform*
|
||||
:Terraform [args] Invoke an arbitrary terraform command.
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,70 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'textile') == -1
|
||||
|
||||
*textile.txt* Textile for Vim Last Change: November 3, 2008
|
||||
|
||||
==============================================================================
|
||||
REQUIREMENTS *textile-requirements*
|
||||
|
||||
- ruby - http://ruby-lang.org/ (seperate executable, not compiled in)
|
||||
- RedCloth - http://redcloth.org/
|
||||
|
||||
Files with the extension *.textile will auto-detected. If editing a new file,
|
||||
or otherwise, run ":setf textile" to enable textile commands.
|
||||
|
||||
|
||||
==============================================================================
|
||||
CHANGELOG *textile-changelog*
|
||||
|
||||
0.3 - Fixed keymappings in the documentation
|
||||
0.2 - Added multiple colors for headers, and alternating colors for list
|
||||
items
|
||||
- Fixed error in the vim script for TextileRenderBufferToFile
|
||||
- Changed shortcut keys from \tp to \rp (render preview instead of
|
||||
textile preview, since it's file-type specific anyways)
|
||||
0.1 - Initial Release
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *textile-commands*
|
||||
|
||||
:TextilePreview - Render the current buffer to a temp file, and open it in
|
||||
your web browser (OSX only)
|
||||
|
||||
<Leader>rp
|
||||
|
||||
:TextileRenderTab - ... to a new tab
|
||||
|
||||
<Leader>rt
|
||||
|
||||
:TextileRenderFile - ... to a file
|
||||
|
||||
<Leader>rf
|
||||
|
||||
<Leader> is \ by default, so <Leader>rp == \rp
|
||||
|
||||
==============================================================================
|
||||
CONFIG *textile-config*
|
||||
|
||||
MAC OS X:
|
||||
|
||||
Optional:
|
||||
let g:TextileBrowser="Google Chrome" - Open preview in "Google Chrome"
|
||||
rather than Safari (optional)
|
||||
|
||||
Other:
|
||||
|
||||
Mandatory:
|
||||
let g:TextileOS="Linux"
|
||||
let g:TextileBrowser="/path/to/browser_bin"
|
||||
|
||||
|
||||
==============================================================================
|
||||
CREDITS *textile-credits*
|
||||
|
||||
- "Dominic Mitchell":http://happygiraffe.net/: initial syntax highlighting
|
||||
- "Aaron Bieber":http://blog.aaronbieber.com/: improved syntax highlighting
|
||||
- "Tim Harper":http://tim.theenchanter.com/ : improved syntax highlighting,
|
||||
plugin
|
||||
|
||||
vim:tw=78:noet:wrap:ts=2:expandtab:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,210 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fsharp') == -1
|
||||
|
||||
*vim-fsharp.txt* F# support for Vim
|
||||
*FSharp* *F#* *fsharp* *vim-fsharp*
|
||||
===============================================================================
|
||||
# #
|
||||
# ███████╗███████╗██╗ ██╗ █████╗ ██████╗ ██████╗ #
|
||||
# ██╔════╝██╔════╝██║ ██║██╔══██╗██╔══██╗██╔══██╗ #
|
||||
# █████╗ ███████╗███████║███████║██████╔╝██████╔╝ #
|
||||
# ██╔══╝ ╚════██║██╔══██║██╔══██║██╔══██╗██╔═══╝ #
|
||||
# ██║ ███████║██║ ██║██║ ██║██║ ██║██║ #
|
||||
# ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ #
|
||||
# #
|
||||
===============================================================================
|
||||
CONTENTS *fsharp-contents*
|
||||
|
||||
1. Dependencies.................................|fsharp-dependencies|
|
||||
2. Usage........................................|fsharp-usage|
|
||||
3. Options......................................|fsharp-options|
|
||||
4. Commands.....................................|fsharp-commands|
|
||||
5. Mappings.....................................|fsharp-mappings|
|
||||
6. Credits......................................|fsharp-credits|
|
||||
|
||||
===============================================================================
|
||||
DEPENDENCIES *fsharp-dependencies*
|
||||
|
||||
Required:~
|
||||
- Vim 7.3 or higher with Python 2 or 3 support
|
||||
- Mono OR .NET Framework
|
||||
- F#
|
||||
|
||||
Optional:~
|
||||
- Syntastic plugin (for syntax and type checking)
|
||||
NOTE: Must be enabled (see |'g:syntastic_fsharp_checkers'|)
|
||||
|
||||
===============================================================================
|
||||
USAGE *fsharp-usage*
|
||||
|
||||
Syntax highlighting and linting will trigger upon opening a `*.fs`, `*.fsi`,
|
||||
or `*.fsx` file. Using omni completion will begin the fsautocomplete process.
|
||||
|
||||
Suggestion: Install a completer such as NeoComplete or SuperTab
|
||||
|
||||
===============================================================================
|
||||
OPTIONS *fsharp-options*
|
||||
|
||||
*'g:syntastic_fsharp_checkers'*
|
||||
Use this option to enable syntastic integration >
|
||||
let g:syntastic_fsharp_checkers=['syntax']
|
||||
<
|
||||
*'g:fsharp_only_check_errors_on_write'*
|
||||
Use this option to disable "on the fly" syntax checking >
|
||||
let g:fsharp_only_check_errors_on_write = 1
|
||||
<
|
||||
*'g:fsharpbinding_debug'*
|
||||
Use this option to enable debug-mode and inspect fsautocomplete behavior: >
|
||||
let g:fsharpbinding_debug = 1
|
||||
<
|
||||
This will create two log files `log.txt` and `log2.txt` in your temporary folder
|
||||
(i.e. `/tmp/`)
|
||||
|
||||
*'g:fsharp_xbuild_path'*
|
||||
Use this option set the msbuild/xbuild path >
|
||||
let g:fsharp_xbuild_path = "/path/to/xbuild/or/msbuild"
|
||||
<
|
||||
|
||||
*'g:fsharp_test_runner'*
|
||||
Use this option to point to a suitable test runner (such as nunit-console.exe) >
|
||||
let g:fsharp_test_runner = "/path/to/test/runner"
|
||||
<
|
||||
|
||||
*'g:fsharp_completion_helptext'*
|
||||
Use this option to disable helptext during auto completion. Turn off if
|
||||
completion is too slow >
|
||||
let g:fsharp_completion_helptext = 0
|
||||
<
|
||||
|
||||
*'g:fsharp_map_keys'*
|
||||
Use this option to disable default bindings >
|
||||
let g:fsharp_map_keys = 0
|
||||
<
|
||||
|
||||
*'g:fsharp_map_prefix'*
|
||||
Use this option to override the default prefix of `<leader>` >
|
||||
let g:fsharp_map_prefix = 'cp'
|
||||
<
|
||||
Set to `cp` in this example
|
||||
|
||||
*'g:fsharp_map_fsisendline'*
|
||||
Use this option to override the default mapping to send the current line to
|
||||
fsharp interactive >
|
||||
let g:fsharp_map_fsisendline = 'p'
|
||||
<
|
||||
Set to `p` in this example
|
||||
|
||||
*'g:fsharp_map_fsisendsel'*
|
||||
Use this option to override the default mapping to send the current selection
|
||||
to fsharp interactive >
|
||||
let g:fsharp_map_fsisendsel = 'p'
|
||||
<
|
||||
Set to `p` in this example
|
||||
|
||||
*'g:fsharp_map_gotodecl'*
|
||||
Use this option to override the default mapping to go to declaration in the
|
||||
current window >
|
||||
let g:fsharp_map_gotodecl = 'g'
|
||||
<
|
||||
Set to `g` in this example
|
||||
|
||||
*'g:fsharp_map_gobackfromdecl'*
|
||||
Use this option to override the default mapping to go back to where go to
|
||||
declaration was triggered >
|
||||
let g:fsharp_map_gobackfromdecl = 'b'
|
||||
<
|
||||
Set to `b` in this example
|
||||
|
||||
*'g:fsharp_map_fsiinput'*
|
||||
Override the default mapping to evaluate an fsharp expression in the fsi >
|
||||
let g:fsharp_map_fsiinput = 'i'
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
COMMANDS *fsharp-commands*
|
||||
|
||||
General commands:~
|
||||
*:make*
|
||||
:make
|
||||
Calls xbuild on the fsproj for the current file (if any).
|
||||
|
||||
*:FSharpParseProject*
|
||||
:FSharpParseProject
|
||||
Reparses all the project files and dependencies (this is done automatically
|
||||
when opening a .fs or .fsi file).
|
||||
|
||||
*:FSharpBuildProject*
|
||||
:FSharpBuildProject
|
||||
Calls xbuild on the fsproj for the current file (if any). Can also take a
|
||||
path to the proj file to build.
|
||||
|
||||
*:FSharpRunProject*
|
||||
:FSharpRunProject
|
||||
Runs the project for the current file (if any).
|
||||
|
||||
*:FSharpRunTests*
|
||||
:FSharpRunTests
|
||||
If `g:fsharp_test_runner` is set it will build the current project and run
|
||||
any tests. (Currently only tested with nunit-console.exe)
|
||||
|
||||
*:FSharpToggleHelptext*
|
||||
:FSharpToggleHelptext
|
||||
toggles g:fsharp_completion_helptext. (See below for details)
|
||||
|
||||
FSharp interaction commands:~
|
||||
|
||||
`:FsiEval`
|
||||
:FsiEval
|
||||
Evaluates an fsharp expression in the fsi
|
||||
|
||||
`:FsiEvalBuffer`
|
||||
:FsiEvalBuffer
|
||||
Evaluates the entire buffer in the fsi
|
||||
|
||||
`:FsiReset`
|
||||
:FsiReset
|
||||
Resets the current fsharp interactive
|
||||
|
||||
`:FsiRead`
|
||||
:FsiRead
|
||||
Outputs any lines written by the fsi but not yet output as vim messages
|
||||
|
||||
`:FsiClear`
|
||||
:FsiClear
|
||||
Deletes all text from the fsi output buffer but doesn't reset the fsi
|
||||
session.
|
||||
|
||||
`:FsiShow`
|
||||
:FsiShow
|
||||
Opens the _fsi-out_ buffer in a split window
|
||||
|
||||
===============================================================================
|
||||
MAPPINGS *fsharp-mappings*
|
||||
|
||||
General:~
|
||||
|
||||
<leader>t
|
||||
Echoes the type of the expression currently pointed to by the cursor
|
||||
<leader>d
|
||||
Go to declaration in current window
|
||||
<leader>s
|
||||
Takes you back from where go to declaration was triggered. Experimental
|
||||
|
||||
FSharp Interactive:~
|
||||
<A-CR> OR
|
||||
<leader>i
|
||||
Send either the current selection or the current line to the fsharp
|
||||
interactive and echoes the output the first line of the output. All
|
||||
output will be written to the fsi-out buffer.
|
||||
|
||||
===============================================================================
|
||||
CREDITS *fsharp-credits*
|
||||
|
||||
Syntax and indent files by kongo2002 <github.com/kongo2002>:
|
||||
http://github.com/kongo2002/fsharp-vim
|
||||
|
||||
Adapted from Tim Robinson <github.com/timrobinson>:
|
||||
http://github.com/timrobinson/fsharp-vim
|
||||
>
|
||||
===============================================================================
|
||||
|
||||
endif
|
||||
2752
doc/vim-go.txt
2752
doc/vim-go.txt
File diff suppressed because it is too large
Load Diff
@@ -1,104 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsonnet') == -1
|
||||
|
||||
*vim-jsonnet.txt* Jsonnet development plugin
|
||||
*vim-jsonnet*
|
||||
|
||||
====================================================================================
|
||||
# # ### # # # ##### ####### # # # # ####### #######
|
||||
# # # ## ## # # # # # ## # ## # # #
|
||||
# # # # # # # # # # # # # # # # # # #
|
||||
# # # # # # ##### # ##### # # # # # # # # ##### #
|
||||
# # # # # # # # # # # # # # # # # #
|
||||
# # # # # # # # # # # # ## # ## # #
|
||||
# ### # # ##### ##### ####### # # # # ####### #
|
||||
====================================================================================
|
||||
CONTENTS *jsonnet-contents*
|
||||
|
||||
1. Intro........................................|jsonnet-intro|
|
||||
2. Install......................................|jsonnet-install|
|
||||
3. Commands.....................................|jsonnet-commands|
|
||||
4. Mappings.....................................|jsonnet-mappings|
|
||||
6. Functions....................................|jsonnet-functions|
|
||||
7. Settings.....................................|jsonnet-settings|
|
||||
8. Troubleshooting..............................|jsonnet-troubleshooting|
|
||||
9. Credits......................................|jsonnet-credits|
|
||||
|
||||
==============================================================================
|
||||
INTRO *jsonnet-intro*
|
||||
|
||||
==============================================================================
|
||||
INSTALL *jsonnet-install*
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *jsonnet-commands*
|
||||
|
||||
*:JsonnetFmt*
|
||||
:JsonnetFmt
|
||||
|
||||
Filter the current Jsonnet buffer through `jsonnetfmt`. It tries to
|
||||
preserve cursor position and avoids replacing the buffer with stderr
|
||||
output.
|
||||
|
||||
==============================================================================
|
||||
MAPPINGS *jsonnet-mappings*
|
||||
|
||||
==============================================================================
|
||||
FUNCTIONS *jsonnet-functions*
|
||||
|
||||
*jsonnet#Format()*
|
||||
|
||||
Filter the current Jsonnet buffer through `jsonnetfmt`. It tries to
|
||||
preserve cursor position and avoids replacing the buffer with stderr
|
||||
output.
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *jsonnet-settings*
|
||||
|
||||
*'g:jsonnet_fmt_on_save'*
|
||||
|
||||
Use this option to auto |:JsonnetFmt| on save. By default it's enabled >
|
||||
|
||||
let g:jsonnet_fmt_on_save = 1
|
||||
<
|
||||
*'g:jsonnet_command'*
|
||||
|
||||
Use this option to define which tool is used to fotmat. By default `jsonnet` is
|
||||
used >
|
||||
|
||||
let g:jsonnet_command = "jsonnet"
|
||||
<
|
||||
*'g:jsonnet_fmt_command'*
|
||||
|
||||
Use this option to define which <cmd> parameter is used with *g:jsonnet_command* tool.
|
||||
By default `fmt` is used >
|
||||
|
||||
let g:jsonnet_fmt_command = "fmt"
|
||||
<
|
||||
*'g:jsonnet_fmt_options'*
|
||||
|
||||
Use this option to add additional options to the
|
||||
|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'|. Default is empty. >
|
||||
|
||||
let g:jsonnet_fmt_options = ''
|
||||
<
|
||||
*'g:jsonnet_fmt_fail_silently'*
|
||||
|
||||
Use this option to enable processing of
|
||||
|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'| command if it fails. By default
|
||||
it is turned off. By default the error output from the
|
||||
|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'| command is ignored.
|
||||
FixMe: The processing of the |'g:jsonnet_command'| + |'g:jsonnet_fmt_command'|
|
||||
is not implemented yet. So clearing this option would not do anything at this time. >
|
||||
|
||||
let g:jsonnet_fmt_fail_silently = 1
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
TROUBLESHOOTING *jsonnet-troubleshooting*
|
||||
|
||||
==============================================================================
|
||||
CREDITS *jsonnet-credits*
|
||||
|
||||
|
||||
|
||||
endif
|
||||
@@ -1,129 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
|
||||
|
||||
vim-jsx-pretty is syntax highlight for JSX (React.js).
|
||||
(https://github.com/MaxMEllon/vim-jsx-pretty)
|
||||
|
||||
version 1.0.6
|
||||
Author: maxmellon<maxmellon1994@gmail.com>
|
||||
License: MIT
|
||||
|
||||
About |vim-jsx-pretty-about|
|
||||
Usage |vim-jsx-pretty-usage|
|
||||
Install |vim-jsx-pretty-install|
|
||||
Config |vim-jsx-pretty-config|
|
||||
Detail |vim-jsx-pretty-detail|
|
||||
License |vim-jsx-pretty-license|
|
||||
Thanks |vim-jsx-retty-thanks|
|
||||
Inspiration |vim-jsx-pretty-inspiration|
|
||||
|
||||
===============================================================================
|
||||
ABOUT *vim-jsx-pretty-about*
|
||||
|
||||
*vim-jsx-pretty* is highlight and indentation JSX (React.js) syntax.
|
||||
|
||||
Dependency Plugin:
|
||||
- pangloss/vim-javascript
|
||||
|
||||
===============================================================================
|
||||
USAGE *vim-jsx-pretty-usage*
|
||||
|
||||
Just Install it.
|
||||
|
||||
===============================================================================
|
||||
INSTALL *vim-jsx-pretty-install*
|
||||
|
||||
If you used plugin manager `vim-plug`, As follows. >
|
||||
|
||||
Plug 'pangloss/vim-javascript' " dependency plugin
|
||||
Plug 'maxmellon/vim-jsx-pretty'
|
||||
<
|
||||
===============================================================================
|
||||
CONFIG *vim-jsx-pretty-config*
|
||||
|
||||
- config list
|
||||
>
|
||||
| name | default | detail |
|
||||
|---------------------------------------|---------|----------------------|
|
||||
| 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*
|
||||
|
||||
If you set 'g:vim_jsx_pretty_enable_jsx_highlight', Disable jsx highlight.
|
||||
But highlight group is set to jsx syntax. So you should set manual
|
||||
highlight setting.
|
||||
|
||||
- Example: >
|
||||
|
||||
let g:vim_jsx_pretty_enable_jsx_highlight = 0
|
||||
|
||||
highlight def link jsxTag Function
|
||||
highlight def link jsxTagName Function
|
||||
highlight def link jsxString String
|
||||
highlight def link jsxNameSpace Function
|
||||
highlight def link jsxComment Error
|
||||
highlight def link jsxAttrib Type
|
||||
highlight def link jsxCloseTag Identifier
|
||||
highlight def link jsxCloseString Identifier
|
||||
|
||||
- *g:vim_jsx_pretty_colorful_config*
|
||||
|
||||
If you set 'g:vim_jsx_pretty_colorful_config', Enable colorful config.
|
||||
|
||||
===============================================================================
|
||||
DETAIL *vim-jsx-pretty-detail*
|
||||
|
||||
- Syntax group list
|
||||
>
|
||||
| name | match | | |
|
||||
|--------------|--------------------|--------------|--------------------|
|
||||
| jsxTag | `<tag id="sample">`| jsxjsxAttrib | `<tag id="sample">`|
|
||||
| | `~~~~~~~~~~~~~~~~~`| | `_____~~__________`|
|
||||
|--------------|--------------------|--------------|--------------------|
|
||||
| jsxTagName | `<tag id="sample">`| jsxEqual | `<tag id="sample">`|
|
||||
| | `_~~~_____________`| | `_______~_________`|
|
||||
|--------------|--------------------|--------------|--------------------|
|
||||
| jsxString | `<tag id="sample">`| jsxCloseTag | `</tag> | <tag />`|
|
||||
| | `________~~~~~~~~_`| | `~~~~~~ | _____~~|
|
||||
|--------------|--------------------|--------------|--------------------|
|
||||
|
||||
===============================================================================
|
||||
LICENSE *vim-jsx-pretty-license*
|
||||
|
||||
Copyright (c) 2016-2017 MaxMEllon
|
||||
MIT License
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
THANKS *vim-jsx-pretty-thanks*
|
||||
|
||||
- yuezk
|
||||
- y0za
|
||||
- cormacrelf
|
||||
|
||||
===============================================================================
|
||||
INSPIREATION *vim-jsx-pretty-inspiration*
|
||||
|
||||
- vim-jsx
|
||||
See: https://github.com/mxw/vim-jsx
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
endif
|
||||
@@ -1,667 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
||||
|
||||
*vim-markdown* Vim Markdown
|
||||
|
||||
===============================================================================
|
||||
Contents ~
|
||||
|
||||
1. Introduction |vim-markdown-introduction|
|
||||
2. Installation |vim-markdown-installation|
|
||||
3. Basic usage |vim-markdown-basic-usage|
|
||||
1. Folding |vim-markdown-folding|
|
||||
2. Concealing |vim-markdown-concealing|
|
||||
4. Options |vim-markdown-options|
|
||||
1. Disable Folding |vim-markdown-disable-folding|
|
||||
2. Change fold style |vim-markdown-change-fold-style|
|
||||
3. Set header folding level |vim-markdown-set-header-folding-level|
|
||||
4. Disable Default Key Mappings |vim-markdown-disable-default-key-mappings|
|
||||
5. Enable TOC window auto-fit |vim-markdown-enable-toc-window-auto-fit|
|
||||
6. Text emphasis restriction to single-lines
|
||||
|vim-markdown-text-emphasis-restriction-to-single-lines|
|
||||
7. Syntax Concealing |vim-markdown-syntax-concealing|
|
||||
8. Fenced code block languages |vim-markdown-fenced-code-block-languages|
|
||||
9. Follow named anchors |vim-markdown-follow-named-anchors|
|
||||
10. Syntax extensions |vim-markdown-syntax-extensions|
|
||||
1. LaTeX math |vim-markdown-latex-math|
|
||||
2. YAML Front Matter |vim-markdown-yaml-front-matter|
|
||||
3. TOML Front Matter |vim-markdown-toml-front-matter|
|
||||
4. JSON Front Matter |vim-markdown-json-front-matter|
|
||||
5. Strikethrough |vim-markdown-strikethrough|
|
||||
11. Adjust new list item indent |vim-markdown-adjust-new-list-item-indent|
|
||||
12. Do not require .md extensions for Markdown links
|
||||
|vim-markdown-do-not-require-.md-extensions-for-markdown-links|
|
||||
13. Auto-write when following link
|
||||
|vim-markdown-auto-write-when-following-link|
|
||||
14. Change default file extension
|
||||
|vim-markdown-change-default-file-extension|
|
||||
15. Do not automatically insert bulletpoints
|
||||
|vim-markdown-do-not-automatically-insert-bulletpoints|
|
||||
16. Change how to open new files |vim-markdown-change-how-to-open-new-files|
|
||||
5. Mappings |vim-markdown-mappings|
|
||||
6. Commands |vim-markdown-commands|
|
||||
7. Credits |vim-markdown-credits|
|
||||
8. License |vim-markdown-license|
|
||||
9. References |vim-markdown-references|
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-introduction*
|
||||
Introduction ~
|
||||
|
||||
Syntax highlighting, matching rules and mappings for the original Markdown [1]
|
||||
and extensions.
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-installation*
|
||||
Installation ~
|
||||
|
||||
If you use Vundle [2], add the following lines to your '~/.vimrc':
|
||||
>
|
||||
Plugin 'godlygeek/tabular'
|
||||
Plugin 'plasticboy/vim-markdown'
|
||||
<
|
||||
The 'tabular' plugin must come _before_ 'vim-markdown'.
|
||||
|
||||
Then run inside Vim:
|
||||
>
|
||||
:so ~/.vimrc
|
||||
:PluginInstall
|
||||
<
|
||||
If you use Pathogen [3], do this:
|
||||
>
|
||||
cd ~/.vim/bundle
|
||||
git clone https://github.com/plasticboy/vim-markdown.git
|
||||
<
|
||||
To install without Pathogen using the Debian vim-addon-manager [4], do this:
|
||||
>
|
||||
git clone https://github.com/plasticboy/vim-markdown.git
|
||||
cd vim-markdown
|
||||
sudo make install
|
||||
vim-addon-manager install markdown
|
||||
<
|
||||
If you are not using any package manager, download the tarball [5] and do this:
|
||||
>
|
||||
cd ~/.vim
|
||||
tar --strip=1 -zxf vim-markdown-master.tar.gz
|
||||
<
|
||||
===============================================================================
|
||||
*vim-markdown-basic-usage*
|
||||
Basic usage ~
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-folding*
|
||||
Folding ~
|
||||
|
||||
Folding is enabled for headers by default.
|
||||
|
||||
The following commands are useful to open and close folds:
|
||||
|
||||
*vim-markdown-zr*
|
||||
- 'zr': reduces fold level throughout the buffer
|
||||
*vim-markdown-zR*
|
||||
- 'zR': opens all folds
|
||||
*vim-markdown-zm*
|
||||
- 'zm': increases fold level throughout the buffer
|
||||
*vim-markdown-zM*
|
||||
- 'zM': folds everything all the way
|
||||
*vim-markdown-za*
|
||||
- 'za': open a fold your cursor is on
|
||||
*vim-markdown-zA*
|
||||
- 'zA': open a fold your cursor is on recursively
|
||||
*vim-markdown-zc*
|
||||
- 'zc': close a fold your cursor is on
|
||||
*vim-markdown-zC*
|
||||
- 'zC': close a fold your cursor is on recursively
|
||||
|
||||
Options are available to disable folding or change folding style.
|
||||
|
||||
Try ':help fold-expr' and ':help fold-commands' for details.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-concealing*
|
||||
Concealing ~
|
||||
|
||||
Concealing is set for some syntax such as bold, italic, code block and link.
|
||||
|
||||
Concealing lets you conceal text with other text. The actual source text is not
|
||||
modified. If you put your cursor on the concealed line, the conceal goes away.
|
||||
|
||||
Options are available to disable or change concealing.
|
||||
|
||||
Try ':help concealcursor' and ':help conceallevel' for details.
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-options*
|
||||
Options ~
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-disable-folding*
|
||||
Disable Folding ~
|
||||
|
||||
*g:vim_markdown_folding_disabled*
|
||||
- 'g:vim_markdown_folding_disabled'
|
||||
|
||||
Add the following line to your '.vimrc' to disable the folding
|
||||
configuration:
|
||||
>
|
||||
let g:vim_markdown_folding_disabled = 1
|
||||
<
|
||||
This option only controls Vim Markdown specific folding configuration.
|
||||
|
||||
To enable/disable folding use Vim's standard folding configuration.
|
||||
>
|
||||
set [no]foldenable
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-change-fold-style*
|
||||
Change fold style ~
|
||||
|
||||
*g:vim_markdown_folding_style_pythonic*
|
||||
- 'g:vim_markdown_folding_style_pythonic'
|
||||
|
||||
To fold in a style like python-mode [6], add the following to your
|
||||
'.vimrc':
|
||||
>
|
||||
let g:vim_markdown_folding_style_pythonic = 1
|
||||
<
|
||||
'g:vim_markdown_folding_level' setting (default 1) is set to 'foldlevel'.
|
||||
Thus level 1 heading which is served as a document title is expanded by
|
||||
default.
|
||||
|
||||
*g:vim_markdown_override_foldtext*
|
||||
- 'g:vim_markdown_override_foldtext'
|
||||
|
||||
To prevent foldtext from being set add the following to your '.vimrc':
|
||||
>
|
||||
let g:vim_markdown_override_foldtext = 0
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-set-header-folding-level*
|
||||
Set header folding level ~
|
||||
|
||||
*g:vim_markdown_folding_level*
|
||||
- 'g:vim_markdown_folding_level'
|
||||
|
||||
Folding level is a number between 1 and 6. By default, if not specified, it
|
||||
is set to 1.
|
||||
>
|
||||
let g:vim_markdown_folding_level = 6
|
||||
<
|
||||
Tip: it can be changed on the fly with:
|
||||
>
|
||||
:let g:vim_markdown_folding_level = 1
|
||||
:edit
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-disable-default-key-mappings*
|
||||
Disable Default Key Mappings ~
|
||||
|
||||
*g:vim_markdown_no_default_key_mappings*
|
||||
- 'g:vim_markdown_no_default_key_mappings'
|
||||
|
||||
Add the following line to your '.vimrc' to disable default key mappings:
|
||||
>
|
||||
let g:vim_markdown_no_default_key_mappings = 1
|
||||
<
|
||||
You can also map them by yourself with '<Plug>' mappings.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-enable-toc-window-auto-fit*
|
||||
Enable TOC window auto-fit ~
|
||||
|
||||
*g:vim_markdown_toc_autofit*
|
||||
- 'g:vim_markdown_toc_autofit'
|
||||
|
||||
Allow for the TOC window to auto-fit when it's possible for it to shrink.
|
||||
It never increases its default size (half screen), it only shrinks.
|
||||
>
|
||||
let g:vim_markdown_toc_autofit = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-text-emphasis-restriction-to-single-lines*
|
||||
Text emphasis restriction to single-lines ~
|
||||
|
||||
*g:vim_markdown_emphasis_multiline*
|
||||
- 'g:vim_markdown_emphasis_multiline'
|
||||
|
||||
By default text emphasis works across multiple lines until a closing token
|
||||
is found. However, it's possible to restrict text emphasis to a single line
|
||||
(i.e., for it to be applied a closing token must be found on the same
|
||||
line). To do so:
|
||||
>
|
||||
let g:vim_markdown_emphasis_multiline = 0
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-syntax-concealing*
|
||||
Syntax Concealing ~
|
||||
|
||||
*g:vim_markdown_conceal*
|
||||
- 'g:vim_markdown_conceal'
|
||||
|
||||
Concealing is set for some syntax.
|
||||
|
||||
For example, conceal '[link text](link url)' as just 'link text'. Also,
|
||||
'_italic_' and '*italic*' will conceal to just _italic_. Similarly
|
||||
'__bold__', '**bold**', '___italic bold___', and '***italic bold***' will
|
||||
conceal to just **bold**, **bold**, **_italic bold_**, and **_italic
|
||||
bold_** respectively.
|
||||
|
||||
To enable conceal use Vim's standard conceal configuration.
|
||||
>
|
||||
set conceallevel=2
|
||||
<
|
||||
To disable conceal regardless of 'conceallevel' setting, add the following
|
||||
to your '.vimrc':
|
||||
>
|
||||
let g:vim_markdown_conceal = 0
|
||||
<
|
||||
To disable math conceal with LaTeX math syntax enabled, add the following
|
||||
to your '.vimrc':
|
||||
>
|
||||
let g:tex_conceal = ""
|
||||
let g:vim_markdown_math = 1
|
||||
<
|
||||
*g:vim_markdown_conceal_code_blocks*
|
||||
- 'g:vim_markdown_conceal_code_blocks'
|
||||
|
||||
Disabling conceal for code fences requires an additional setting:
|
||||
>
|
||||
let g:vim_markdown_conceal_code_blocks = 0
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-fenced-code-block-languages*
|
||||
Fenced code block languages ~
|
||||
|
||||
*g:vim_markdown_fenced_languages*
|
||||
- 'g:vim_markdown_fenced_languages'
|
||||
|
||||
You can use filetype name as fenced code block languages for syntax
|
||||
highlighting. If you want to use different name from filetype, you can add
|
||||
it in your '.vimrc' like so:
|
||||
>
|
||||
let g:vim_markdown_fenced_languages = ['csharp=cs']
|
||||
<
|
||||
This will cause the following to be highlighted using the 'cs' filetype
|
||||
syntax.
|
||||
>
|
||||
```csharp
|
||||
...
|
||||
```
|
||||
<
|
||||
Default is "['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini']".
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-follow-named-anchors*
|
||||
Follow named anchors ~
|
||||
|
||||
*g:vim_markdown_follow_anchor*
|
||||
- 'g:vim_markdown_follow_anchor'
|
||||
|
||||
This feature allows the 'ge' command to follow named anchors in links of
|
||||
the form 'file#anchor' or just '#anchor', where file may omit the '.md'
|
||||
extension as usual. Two variables control its operation:
|
||||
>
|
||||
let g:vim_markdown_follow_anchor = 1
|
||||
<
|
||||
This tells vim-markdown whether to attempt to follow a named anchor in a
|
||||
link or not. When it is 1, and only if a link can be split in two parts by
|
||||
the pattern '#', then the first part is interpreted as the file and the
|
||||
second one as the named anchor. This also includes urls of the form
|
||||
'#anchor', for which the first part is considered empty, meaning that the
|
||||
target file is the current one. After the file is opened, the anchor will
|
||||
be searched.
|
||||
|
||||
Default is '0'.
|
||||
|
||||
*g:vim_markdown_anchorexpr*
|
||||
- 'g:vim_markdown_anchorexpr'
|
||||
>
|
||||
let g:vim_markdown_anchorexpr = "'<<'.v:anchor.'>>'"
|
||||
<
|
||||
This expression will be evaluated substituting 'v:anchor' with a quoted
|
||||
string that contains the anchor to visit. The result of the evaluation will
|
||||
become the real anchor to search in the target file. This is useful in
|
||||
order to convert anchors of the form, say, 'my-section-title' to searches
|
||||
of the form 'My Section Title' or '<<my-section-title>>'.
|
||||
|
||||
Default is "''".
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-syntax-extensions*
|
||||
Syntax extensions ~
|
||||
|
||||
The following options control which syntax extensions will be turned on. They
|
||||
are off by default.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-latex-math*
|
||||
LaTeX math ~
|
||||
|
||||
*g:vim_markdown_math*
|
||||
- 'g:vim_markdown_math'
|
||||
|
||||
Used as '$x^2$', '$$x^2$$', escapable as '\$x\$' and '\$\$x\$\$'.
|
||||
>
|
||||
let g:vim_markdown_math = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-yaml-front-matter*
|
||||
YAML Front Matter ~
|
||||
|
||||
*g:vim_markdown_frontmatter*
|
||||
- 'g:vim_markdown_frontmatter'
|
||||
|
||||
Highlight YAML front matter as used by Jekyll or Hugo [7].
|
||||
>
|
||||
let g:vim_markdown_frontmatter = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-toml-front-matter*
|
||||
TOML Front Matter ~
|
||||
|
||||
*g:vim_markdown_toml_frontmatter*
|
||||
- 'g:vim_markdown_toml_frontmatter'
|
||||
|
||||
Highlight TOML front matter as used by Hugo [7].
|
||||
|
||||
TOML syntax highlight requires vim-toml [8].
|
||||
>
|
||||
let g:vim_markdown_toml_frontmatter = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-json-front-matter*
|
||||
JSON Front Matter ~
|
||||
|
||||
*g:vim_markdown_json_frontmatter*
|
||||
- 'g:vim_markdown_json_frontmatter'
|
||||
|
||||
Highlight JSON front matter as used by Hugo [7].
|
||||
|
||||
JSON syntax highlight requires vim-json [9].
|
||||
>
|
||||
let g:vim_markdown_json_frontmatter = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-strikethrough*
|
||||
Strikethrough ~
|
||||
|
||||
*g:vim_markdown_strikethrough*
|
||||
- 'g:vim_markdown_strikethrough'
|
||||
|
||||
Strikethrough uses two tildes. '~~Scratch this.~~'
|
||||
>
|
||||
let g:vim_markdown_strikethrough = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-adjust-new-list-item-indent*
|
||||
Adjust new list item indent ~
|
||||
|
||||
*g:vim_markdown_new_list_item_indent*
|
||||
- 'g:vim_markdown_new_list_item_indent'
|
||||
|
||||
You can adjust a new list indent. For example, you insert a single line
|
||||
like below:
|
||||
>
|
||||
* item1
|
||||
<
|
||||
Then if you type 'o' to insert new line in vim and type '* item2', the
|
||||
result will be:
|
||||
>
|
||||
* item1
|
||||
* item2
|
||||
<
|
||||
vim-markdown automatically insert the indent. By default, the number of
|
||||
spaces of indent is 4. If you'd like to change the number as 2, just write:
|
||||
>
|
||||
let g:vim_markdown_new_list_item_indent = 2
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-do-not-require-.md-extensions-for-markdown-links*
|
||||
Do not require .md extensions for Markdown links ~
|
||||
|
||||
*g:vim_markdown_no_extensions_in_markdown*
|
||||
- 'g:vim_markdown_no_extensions_in_markdown'
|
||||
|
||||
If you want to have a link like this '[link text](link-url)' and follow it
|
||||
for editing in vim using the 'ge' command, but have it open the file "link-
|
||||
url.md" instead of the file "link-url", then use this option:
|
||||
>
|
||||
let g:vim_markdown_no_extensions_in_markdown = 1
|
||||
<
|
||||
This is super useful for GitLab and GitHub wiki repositories.
|
||||
|
||||
Normal behaviour would be that vim-markup required you to do this '[link
|
||||
text](link-url.md)', but this is not how the Gitlab and GitHub wiki
|
||||
repositories work. So this option adds some consistency between the two.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-auto-write-when-following-link*
|
||||
Auto-write when following link ~
|
||||
|
||||
*g:vim_markdown_autowrite*
|
||||
- 'g:vim_markdown_autowrite'
|
||||
|
||||
If you follow a link like this '[link text](link-url)' using the 'ge'
|
||||
shortcut, this option will automatically save any edits you made before
|
||||
moving you:
|
||||
>
|
||||
let g:vim_markdown_autowrite = 1
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-change-default-file-extension*
|
||||
Change default file extension ~
|
||||
|
||||
*g:vim_markdown_auto_extension_ext*
|
||||
- 'g:vim_markdown_auto_extension_ext'
|
||||
|
||||
If you would like to use a file extension other than '.md' you may do so
|
||||
using the 'vim_markdown_auto_extension_ext' variable:
|
||||
>
|
||||
let g:vim_markdown_auto_extension_ext = 'txt'
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-do-not-automatically-insert-bulletpoints*
|
||||
Do not automatically insert bulletpoints ~
|
||||
|
||||
*g:vim_markdown_auto_insert_bullets*
|
||||
- 'g:vim_markdown_auto_insert_bullets'
|
||||
|
||||
Automatically inserting bulletpoints can lead to problems when wrapping
|
||||
text (see issue #232 for details), so it can be disabled:
|
||||
>
|
||||
let g:vim_markdown_auto_insert_bullets = 0
|
||||
<
|
||||
In that case, you probably also want to set the new list item indent to 0
|
||||
as well, or you will have to remove an indent each time you add a new list
|
||||
item:
|
||||
>
|
||||
let g:vim_markdown_new_list_item_indent = 0
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-change-how-to-open-new-files*
|
||||
Change how to open new files ~
|
||||
|
||||
*g:vim_markdown_edit_url_in*
|
||||
- 'g:vim_markdown_edit_url_in'
|
||||
|
||||
By default when following a link the target file will be opened in your
|
||||
current buffer. This behavior can change if you prefer using splits or tabs
|
||||
by using the 'vim_markdown_edit_url_in' variable. Possible values are
|
||||
'tab', 'vsplit', 'hsplit', 'current' opening in a new tab, vertical split,
|
||||
horizontal split, and current buffer respectively. Defaults to current
|
||||
buffer if not set:
|
||||
>
|
||||
let g:vim_markdown_edit_url_in = 'tab'
|
||||
<
|
||||
===============================================================================
|
||||
*vim-markdown-mappings*
|
||||
Mappings ~
|
||||
|
||||
The following work on normal and visual modes:
|
||||
|
||||
*vim-markdown-gx*
|
||||
- 'gx': open the link under the cursor in the same browser as the standard
|
||||
'gx' command. '<Plug>Markdown_OpenUrlUnderCursor'
|
||||
|
||||
The standard 'gx' is extended by allowing you to put your cursor anywhere
|
||||
inside a link.
|
||||
|
||||
For example, all the following cursor positions will work:
|
||||
>
|
||||
[Example](http://example.com)
|
||||
^ ^ ^^ ^ ^
|
||||
1 2 34 5 6
|
||||
|
||||
<http://example.com>
|
||||
^ ^ ^
|
||||
1 2 3
|
||||
<
|
||||
Known limitation: does not work for links that span multiple lines.
|
||||
|
||||
*vim-markdown-ge*
|
||||
- 'ge': open the link under the cursor in Vim for editing. Useful for
|
||||
relative markdown links. '<Plug>Markdown_EditUrlUnderCursor'
|
||||
|
||||
The rules for the cursor position are the same as the 'gx' command.
|
||||
|
||||
*vim-markdown-]]*
|
||||
- ']]': go to next header. '<Plug>Markdown_MoveToNextHeader'
|
||||
|
||||
*vim-markdown-[[*
|
||||
- '[[': go to previous header. Contrast with ']c'.
|
||||
'<Plug>Markdown_MoveToPreviousHeader'
|
||||
|
||||
*vim-markdown-][*
|
||||
- '][': go to next sibling header if any.
|
||||
'<Plug>Markdown_MoveToNextSiblingHeader'
|
||||
|
||||
*vim-markdown-[]*
|
||||
- '[]': go to previous sibling header if any.
|
||||
'<Plug>Markdown_MoveToPreviousSiblingHeader'
|
||||
|
||||
*vim-markdown-]c*
|
||||
- ']c': go to Current header. '<Plug>Markdown_MoveToCurHeader'
|
||||
|
||||
*vim-markdown-]u*
|
||||
- ']u': go to parent header (Up). '<Plug>Markdown_MoveToParentHeader'
|
||||
|
||||
This plugin follows the recommended Vim plugin mapping interface, so to change
|
||||
the map ']u' to 'asdf', add to your '.vimrc':
|
||||
>
|
||||
map asdf <Plug>Markdown_MoveToParentHeader
|
||||
<
|
||||
To disable a map use:
|
||||
>
|
||||
map <Plug> <Plug>Markdown_MoveToParentHeader
|
||||
<
|
||||
===============================================================================
|
||||
*vim-markdown-commands*
|
||||
Commands ~
|
||||
|
||||
The following requires ':filetype plugin on'.
|
||||
|
||||
*:HeaderDecrease*
|
||||
- ':HeaderDecrease':
|
||||
|
||||
Decrease level of all headers in buffer: 'h2' to 'h1', 'h3' to 'h2', etc.
|
||||
|
||||
If range is given, only operate in the range.
|
||||
|
||||
If an 'h1' would be decreased, abort.
|
||||
|
||||
For simplicity of implementation, Setex headers are converted to Atx.
|
||||
|
||||
*:HeaderIncrease*
|
||||
- ':HeaderIncrease': Analogous to ':HeaderDecrease', but increase levels
|
||||
instead.
|
||||
|
||||
*:SetexToAtx*
|
||||
- ':SetexToAtx':
|
||||
|
||||
Convert all Setex style headers in buffer to Atx.
|
||||
|
||||
If a range is given, e.g. hit ':' from visual mode, only operate on the
|
||||
range.
|
||||
|
||||
*:TableFormat*
|
||||
- ':TableFormat': Format the table under the cursor like this [10].
|
||||
|
||||
Requires Tabular [11].
|
||||
|
||||
The input table _must_ already have a separator line as the second line of
|
||||
the table. That line only needs to contain the correct pipes '|', nothing
|
||||
else is required.
|
||||
|
||||
*:Toc*
|
||||
- ':Toc': create a quickfix vertical window navigable table of contents with
|
||||
the headers.
|
||||
|
||||
Hit '<Enter>' on a line to jump to the corresponding line of the markdown
|
||||
file.
|
||||
|
||||
*:Toch*
|
||||
- ':Toch': Same as ':Toc' but in an horizontal window.
|
||||
|
||||
*:Toct*
|
||||
- ':Toct': Same as ':Toc' but in a new tab.
|
||||
|
||||
*:Tocv*
|
||||
- ':Tocv': Same as ':Toc' for symmetry with ':Toch' and ':Tocv'.
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-credits*
|
||||
Credits ~
|
||||
|
||||
The main contributors of vim-markdown are:
|
||||
|
||||
- **Ben Williams** (A.K.A. **plasticboy**). The original developer of vim-
|
||||
markdown. Homepage [12].
|
||||
|
||||
If you feel that your name should be on this list, please make a pull request
|
||||
listing your contributions.
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-license*
|
||||
License ~
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2012 Benjamin D. Williams
|
||||
|
||||
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.
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-references*
|
||||
References ~
|
||||
|
||||
[1] http://daringfireball.net/projects/markdown/
|
||||
[2] https://github.com/gmarik/vundle
|
||||
[3] https://github.com/tpope/vim-pathogen
|
||||
[4] http://packages.qa.debian.org/v/vim-addon-manager.html
|
||||
[5] https://github.com/plasticboy/vim-markdown/archive/master.tar.gz
|
||||
[6] https://github.com/klen/python-mode
|
||||
[7] https://gohugo.io/content/front-matter/
|
||||
[8] https://github.com/cespare/vim-toml
|
||||
[9] https://github.com/elzr/vim-json
|
||||
[10] http://www.cirosantilli.com/markdown-style-guide/#tables
|
||||
[11] https://github.com/godlygeek/tabular
|
||||
[12] http://plasticboy.com/
|
||||
|
||||
vim: ft=help
|
||||
|
||||
endif
|
||||
@@ -1,64 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'raml') == -1
|
||||
|
||||
# vim-raml
|
||||
Vim syntax and language settings for RAML
|
||||
|
||||
About
|
||||
---
|
||||
vim-raml is a superset of Vim's own syntax settings for YAML, as RAML itself
|
||||
is a superset of YAML. Obviously, filetype detection is provided for RAML
|
||||
files as well to make use of the expanded syntax, as well language formatting
|
||||
defaults.
|
||||
|
||||
You'll notice several changes over using the default YAML syntax file:
|
||||
- The RAML version header, manditory in RAML now stands out brightly,
|
||||
rather than looking like a comment.
|
||||
- Parameter interpolation i.e. ```<<thing>>``` is highlighted inside of blocks
|
||||
and values.
|
||||
- Delimiters and blocks i.e. ```-, |, etc``` are consistently highlighted
|
||||
(flaky in YAML).
|
||||
- HTTP verbs, response codes, data types, and route definitions are all
|
||||
colored separately from regular keys to help immediately distingush
|
||||
different levels of the data structure.
|
||||
- HTTP verbs include all that are supported by RAML: get, post, put, delete,
|
||||
head, patch, and options
|
||||
- Response codes e.g. 200, 201, 404, 401, etc are colored like numbers
|
||||
(for obvious reasons)
|
||||
- Data types e.g. ```type: integer```. Supports all RAML datatypes. string,
|
||||
number, integer, date, boolean, and file.
|
||||
- Route definitions: these include ```/posts:``` or ```/{id}:```
|
||||
|
||||
Installation
|
||||
---
|
||||
vim-raml doesn't have any strange or esoteric requirements.
|
||||
Provided you're using Vundle, Pathogen or any of the other standard Vim
|
||||
plugin managers. You can install vim-raml exactly how you'd expect.
|
||||
|
||||
For completeness, to install via Vundle just add the following into your
|
||||
.vimrc with your other plugins
|
||||
|
||||
Plugin '.../.../'
|
||||
Plugin 'IN3D/vim-raml'
|
||||
Plugin '.../.../'
|
||||
|
||||
Then run:
|
||||
|
||||
:source %
|
||||
:PluginInstall
|
||||
|
||||
|
||||
Or for Pathogen:
|
||||
|
||||
cd ~/.vim/bundle
|
||||
git clone https://github.com/IN3D/vim-raml.git
|
||||
|
||||
And Pathogen should pick it up the next time Vim is started.
|
||||
|
||||
|
||||
Questions, suggestions, and issues
|
||||
---
|
||||
If you have a question, suggestion, or have found an issue with vim-raml.
|
||||
The best way to bring it to my attention is to open an issue at
|
||||
https://github.com/IN3D/vim-raml/issues
|
||||
|
||||
endif
|
||||
2257
extras/filetype.vim
Normal file
2257
extras/filetype.vim
Normal file
File diff suppressed because it is too large
Load Diff
1199
extras/menu.vim
Normal file
1199
extras/menu.vim
Normal file
File diff suppressed because it is too large
Load Diff
1
filetype.vim
Normal file
1
filetype.vim
Normal file
@@ -0,0 +1 @@
|
||||
runtime! ftdetect/polyglot.vim
|
||||
File diff suppressed because it is too large
Load Diff
3
ftoff.vim
Normal file
3
ftoff.vim
Normal file
@@ -0,0 +1,3 @@
|
||||
if exists("did_load_polyglot")
|
||||
unlet did_load_polyglot
|
||||
endif
|
||||
@@ -1,37 +0,0 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dockerfile') == -1
|
||||
|
||||
" Define comment string
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
" Enable automatic comment insertion
|
||||
setlocal formatoptions+=cro
|
||||
|
||||
function! DockerfileReplaceInstruction(original, replacement)
|
||||
let syn = synIDtrans(synID(line("."), col(".") - 1, 0))
|
||||
if syn != hlID("Comment") && syn != hlID("Constant") && strlen(getline(".")) == 0
|
||||
let word = a:replacement
|
||||
else
|
||||
let word = a:original
|
||||
endif
|
||||
let g:UnduBuffer = a:original
|
||||
return word
|
||||
endfunction
|
||||
|
||||
inoreabbr <silent> <buffer> from <C-R>=DockerfileReplaceInstruction("from", "FROM")<CR>
|
||||
inoreabbr <silent> <buffer> maintainer <C-R>=DockerfileReplaceInstruction("maintainer", "MAINTAINER")<CR>
|
||||
inoreabbr <silent> <buffer> run <C-R>=DockerfileReplaceInstruction("run", "RUN")<CR>
|
||||
inoreabbr <silent> <buffer> cmd <C-R>=DockerfileReplaceInstruction("cmd", "CMD")<CR>
|
||||
inoreabbr <silent> <buffer> label <C-R>=DockerfileReplaceInstruction("label", "LABEL")<CR>
|
||||
inoreabbr <silent> <buffer> expose <C-R>=DockerfileReplaceInstruction("expose", "EXPOSE")<CR>
|
||||
inoreabbr <silent> <buffer> env <C-R>=DockerfileReplaceInstruction("env", "ENV")<CR>
|
||||
inoreabbr <silent> <buffer> add <C-R>=DockerfileReplaceInstruction("add", "ADD")<CR>
|
||||
inoreabbr <silent> <buffer> copy <C-R>=DockerfileReplaceInstruction("copy", "COPY")<CR>
|
||||
inoreabbr <silent> <buffer> entrypoint <C-R>=DockerfileReplaceInstruction("entrypoint", "ENTRYPOINT")<CR>
|
||||
inoreabbr <silent> <buffer> volume <C-R>=DockerfileReplaceInstruction("volume", "VOLUME")<CR>
|
||||
inoreabbr <silent> <buffer> user <C-R>=DockerfileReplaceInstruction("user", "USER")<CR>
|
||||
inoreabbr <silent> <buffer> workdir <C-R>=DockerfileReplaceInstruction("workdir", "WORKDIR")<CR>
|
||||
inoreabbr <silent> <buffer> arg <C-R>=DockerfileReplaceInstruction("arg", "ARG")<CR>
|
||||
inoreabbr <silent> <buffer> onbuild <C-R>=DockerfileReplaceInstruction("onbuild", "ONBUILD")<CR>
|
||||
inoreabbr <silent> <buffer> stopsignal <C-R>=DockerfileReplaceInstruction("stopsignal", "STOPSIGNAL")<CR>
|
||||
|
||||
endif
|
||||
64
ftplugin/aspvbs.vim
Normal file
64
ftplugin/aspvbs.vim
Normal file
@@ -0,0 +1,64 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'aspvbs') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: aspvbs
|
||||
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
|
||||
" Last Changed: 20 Jan 2009
|
||||
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
" Make sure the continuation lines below do not cause problems in
|
||||
" compatibility mode.
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
" Define some defaults in case the included ftplugins don't set them.
|
||||
let s:undo_ftplugin = ""
|
||||
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let s:match_words = ""
|
||||
|
||||
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Override our defaults if these were set by an included ftplugin.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin
|
||||
endif
|
||||
if exists("b:browsefilter")
|
||||
let s:browsefilter = b:browsefilter
|
||||
endif
|
||||
if exists("b:match_words")
|
||||
let s:match_words = b:match_words
|
||||
endif
|
||||
|
||||
" ASP: Active Server Pages (with Visual Basic Script)
|
||||
" thanks to Gontran BAERTS
|
||||
if exists("loaded_matchit")
|
||||
let s:notend = '\%(\<end\s\+\)\@<!'
|
||||
let b:match_ignorecase = 1
|
||||
let b:match_words =
|
||||
\ s:notend . '\<if\>\%(.\{-}then\s\+\w\)\@!:\<elseif\>:^\s*\<else\>:\<end\s\+\<if\>,' .
|
||||
\ s:notend . '\<select\s\+case\>:\<case\>:\<case\s\+else\>:\<end\s\+select\>,' .
|
||||
\ '^\s*\<sub\>:\<end\s\+sub\>,' .
|
||||
\ '^\s*\<function\>:\<end\s\+function\>,' .
|
||||
\ '\<class\>:\<end\s\+class\>,' .
|
||||
\ '^\s*\<do\>:\<loop\>,' .
|
||||
\ '^\s*\<for\>:\<next\>,' .
|
||||
\ '\<while\>:\<wend\>,' .
|
||||
\ s:match_words
|
||||
endif
|
||||
|
||||
" Change the :browse e filter to primarily show ASP-related files.
|
||||
if has("gui_win32")
|
||||
let b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "unlet! b:match_words b:match_ignorecase b:browsefilter | " . s:undo_ftplugin
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
@@ -3,9 +3,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'awk') == -1
|
||||
" Vim filetype plugin
|
||||
" Language: awk, nawk, gawk, mawk
|
||||
" Maintainer: Antonio Colombo <azc100@gmail.com>
|
||||
" Last Change: 2017 Feb 17
|
||||
" Last Change: 2020 Sep 28
|
||||
|
||||
" This plugin was prepared by Mark Sikora
|
||||
" This plugin was updated as proposed by Doug Kearns
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -15,8 +16,44 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
setlocal define=function
|
||||
setlocal suffixesadd+=.awk
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< cms< def< sua<" .
|
||||
\ " | unlet! b:browsefilter"
|
||||
|
||||
" TODO: set this in scripts.vim?
|
||||
if exists("g:awk_is_gawk")
|
||||
setlocal include=@include
|
||||
setlocal suffixesadd+=.gawk
|
||||
if has("unix") || has("win32unix")
|
||||
setlocal formatprg=gawk\ -f-\ -o/dev/stdout
|
||||
let b:undo_ftplugin .= " | setl fp<"
|
||||
endif
|
||||
|
||||
let path = system("gawk 'BEGIN { printf ENVIRON[\"AWKPATH\"] }'")
|
||||
let path = substitute(path, '^\.\=:\|:\.\=$\|:\.\=:', ',,', 'g') " POSIX cwd
|
||||
let path = substitute(path, ':', ',', 'g')
|
||||
|
||||
let &l:path = path
|
||||
let b:undo_ftplugin .= " | setl inc< path<"
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Awk Source Files (*.awk,*.gawk)\t*.awk;*.gawk\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8
|
||||
|
||||
endif
|
||||
|
||||
24
ftplugin/bdf.vim
Normal file
24
ftplugin/bdf.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bdf') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: BDF font definition
|
||||
" 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=b:COMMENT commentstring=COMMENT\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
19
ftplugin/bst.vim
Normal file
19
ftplugin/bst.vim
Normal file
@@ -0,0 +1,19 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bst') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: bst
|
||||
" Author: Tim Pope <vimNOSPAM@tpope.info>
|
||||
" $Id: bst.vim,v 1.1 2007/05/05 17:37:57 vimboss Exp $
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=%\ %s
|
||||
setlocal comments=:%
|
||||
setlocal fo-=t fo+=croql
|
||||
|
||||
let b:undo_ftplugin = "setlocal com< cms< fo<"
|
||||
|
||||
endif
|
||||
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
|
||||
24
ftplugin/calendar.vim
Normal file
24
ftplugin/calendar.vim
Normal file
@@ -0,0 +1,24 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'calendar') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: calendar(1) input file
|
||||
" 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< inc< fo<"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include&
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
22
ftplugin/cdrdaoconf.vim
Normal file
22
ftplugin/cdrdaoconf.vim
Normal file
@@ -0,0 +1,22 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cdrdaoconf') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2007-12-04
|
||||
|
||||
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/cfg.vim
Normal file
23
ftplugin/cfg.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cfg') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Configuration File
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Latest Revision: 2018-12-24
|
||||
|
||||
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 cms< fo<"
|
||||
|
||||
setlocal commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
21
ftplugin/ch.vim
Normal file
21
ftplugin/ch.vim
Normal file
@@ -0,0 +1,21 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ch') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Ch
|
||||
" Maintainer: SoftIntegration, Inc. <info@softintegration.com>
|
||||
" URL: http://www.softintegration.com/download/vim/ftplugin/ch.vim
|
||||
" Last change: 2004 May 16
|
||||
" Created based on cpp.vim
|
||||
"
|
||||
" Ch is a C/C++ interpreter with many high level extensions
|
||||
"
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Behaves just like C
|
||||
runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
|
||||
|
||||
endif
|
||||
273
ftplugin/cobol.vim
Normal file
273
ftplugin/cobol.vim
Normal file
@@ -0,0 +1,273 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cobol') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: cobol
|
||||
" Maintainer: Ankit Jain <ajatkj@yahoo.co.in>
|
||||
" (formerly Tim Pope <vimNOSPAM@tpope.info>)
|
||||
" Last Update: By Ankit Jain (add gtk support) on 15.08.2020
|
||||
|
||||
" Insert mode mappings: <C-T> <C-D> <Tab>
|
||||
" Normal mode mappings: < > << >> [[ ]] [] ][
|
||||
" Visual mode mappings: < >
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal commentstring=\ \ \ \ \ \ *%s
|
||||
setlocal comments=:*
|
||||
setlocal fo+=croqlt
|
||||
setlocal expandtab
|
||||
setlocal textwidth=72
|
||||
|
||||
" matchit support
|
||||
if exists("loaded_matchit")
|
||||
let s:ordot = '\|\ze\.\%( \@=\|$\)'
|
||||
let b:match_ignorecase=1
|
||||
"let b:match_skip = 'getline(".") =~ "^.\\{6\\}[*/C]"'
|
||||
let b:match_words=
|
||||
\ '\$if\>:$else\>:\$endif\>,' .
|
||||
\ '[$-]\@<!\<if\>:\<\%(then\|else\)\>:\<end-if\>'.s:ordot.',' .
|
||||
\ '-\@<!\<perform\s\+\%(\d\+\s\+times\|until\|varying\|with\s\+test\)\>:\<end-perform\>'.s:ordot . ',' .
|
||||
\ '-\@<!\<\%(search\|evaluate\)\>:\<\%(when\)\>:\<end-\%(search\|evaluate\)\>' .s:ordot . ',' .
|
||||
\ '-\@<!\<\%(add\|compute\|divide\|multiply\|subtract\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+size\s\+error\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+size\s\+error\>:\<end-\%(add\|compute\|divide\|multiply\|subtract\)\>' .s:ordot . ',' .
|
||||
\ '-\@<!\<\%(string\|unstring\|accept\|display\|call\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>:\<end-\%(string\|unstring\|accept\|display\|call\)\>' .s:ordot . ',' .
|
||||
\ '-\@<!\<\%(delete\|rewrite\|start\|write\|read\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>:\<end-\%(delete\|rewrite\|start\|write\|read\)\>' .s:ordot
|
||||
endif
|
||||
|
||||
" add gtk support
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n".
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setlocal com< cms< fo< et< tw<" .
|
||||
\ " | unlet! b:browsefilter b:match_words b:match_ignorecase b:match_skip"
|
||||
if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps")
|
||||
let b:undo_ftplugin = b:undo_ftplugin .
|
||||
\ " | sil! exe 'nunmap <buffer> <'" .
|
||||
\ " | sil! exe 'nunmap <buffer> >'" .
|
||||
\ " | sil! exe 'nunmap <buffer> <<'" .
|
||||
\ " | sil! exe 'nunmap <buffer> >>'" .
|
||||
\ " | sil! exe 'vunmap <buffer> <'" .
|
||||
\ " | sil! exe 'vunmap <buffer> >'" .
|
||||
\ " | sil! exe 'iunmap <buffer> <C-D>'" .
|
||||
\ " | sil! exe 'iunmap <buffer> <C-T>'" .
|
||||
\ " | sil! exe 'iunmap <buffer> <Tab>'" .
|
||||
\ " | sil! exe 'nunmap <buffer> <Plug>Traditional'" .
|
||||
\ " | sil! exe 'nunmap <buffer> <Plug>Comment'" .
|
||||
\ " | sil! exe 'nunmap <buffer> <Plug>DeComment'" .
|
||||
\ " | sil! exe 'vunmap <buffer> <Plug>VisualTraditional'" .
|
||||
\ " | sil! exe 'vunmap <buffer> <Plug>VisualComment'" .
|
||||
\ " | sil! exe 'iunmap <buffer> <Plug>VisualDeComment'" .
|
||||
\ " | sil! exe 'unmap <buffer> [['" .
|
||||
\ " | sil! exe 'unmap <buffer> ]]'" .
|
||||
\ " | sil! exe 'unmap <buffer> []'" .
|
||||
\ " | sil! exe 'unmap <buffer> ]['"
|
||||
endif
|
||||
|
||||
if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps")
|
||||
if version >= 700
|
||||
nnoremap <silent> <buffer> > :set opfunc=<SID>IncreaseFunc<CR>g@
|
||||
nnoremap <silent> <buffer> < :set opfunc=<SID>DecreaseFunc<CR>g@
|
||||
endif
|
||||
nnoremap <silent> <buffer> >> :call CobolIndentBlock(1)<CR>
|
||||
nnoremap <silent> <buffer> << :call CobolIndentBlock(-1)<CR>
|
||||
vnoremap <silent> <buffer> > :call CobolIndentBlock(v:count1)<CR>
|
||||
vnoremap <silent> <buffer> < :call CobolIndentBlock(-v:count1)<CR>
|
||||
inoremap <silent> <buffer> <C-T> <C-R>=<SID>IncreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
|
||||
inoremap <silent> <buffer> <C-D> <C-R>=<SID>DecreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
|
||||
if !maparg("<Tab>","i")
|
||||
inoremap <silent> <buffer> <Tab> <C-R>=<SID>Tab()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
|
||||
endif
|
||||
noremap <silent> <buffer> [[ m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\s*\.','bW')<CR>
|
||||
noremap <silent> <buffer> ]] m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\.','W')<CR>
|
||||
noremap <silent> <buffer> [] m':call <SID>toend('b')<CR>
|
||||
noremap <silent> <buffer> ][ m':call <SID>toend('')<CR>
|
||||
" For EnhancedCommentify
|
||||
noremap <silent> <buffer> <Plug>Traditional :call <SID>Comment('t')<CR>
|
||||
noremap <silent> <buffer> <Plug>Comment :call <SID>Comment('c')<CR>
|
||||
noremap <silent> <buffer> <Plug>DeComment :call <SID>Comment('u')<CR>
|
||||
noremap <silent> <buffer> <Plug>VisualTraditional :'<,'>call <SID>Comment('t')<CR>
|
||||
noremap <silent> <buffer> <Plug>VisualComment :'<,'>call <SID>Comment('c')<CR>
|
||||
noremap <silent> <buffer> <Plug>VisualDeComment :'<,'>call <SID>Comment('u')<CR>
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
if exists("g:did_cobol_ftplugin_functions")
|
||||
finish
|
||||
endif
|
||||
let g:did_cobol_ftplugin_functions = 1
|
||||
|
||||
function! s:repeat(str,count)
|
||||
let i = 0
|
||||
let ret = ""
|
||||
while i < a:count
|
||||
let ret = ret . a:str
|
||||
let i = i + 1
|
||||
endwhile
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
function! s:increase(...)
|
||||
let lnum = '.'
|
||||
let sw = shiftwidth()
|
||||
let i = a:0 ? a:1 : indent(lnum)
|
||||
if i >= 11
|
||||
return sw - (i - 11) % sw
|
||||
elseif i >= 7
|
||||
return 11-i
|
||||
elseif i == 6
|
||||
return 1
|
||||
else
|
||||
return 6-i
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:decrease(...)
|
||||
let lnum = '.'
|
||||
let sw = shiftwidth()
|
||||
let i = indent(a:0 ? a:1 : lnum)
|
||||
if i >= 11 + sw
|
||||
return 1 + (i + 12) % sw
|
||||
elseif i > 11
|
||||
return i-11
|
||||
elseif i > 7
|
||||
return i-7
|
||||
elseif i == 7
|
||||
return 1
|
||||
else
|
||||
return i
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! CobolIndentBlock(shift)
|
||||
let head = strpart(getline('.'),0,7)
|
||||
let tail = strpart(getline('.'),7)
|
||||
let indent = match(tail,'[^ ]')
|
||||
let sw = shiftwidth()
|
||||
let shift = a:shift
|
||||
if shift > 0
|
||||
if indent < 4
|
||||
let tail = s:repeat(" ",4-indent).tail
|
||||
let shift = shift - 1
|
||||
endif
|
||||
let tail = s:repeat(" ",shift*sw).tail
|
||||
let shift = 0
|
||||
elseif shift < 0
|
||||
if (indent-4) > -shift * sw
|
||||
let tail = strpart(tail,-shift * sw)
|
||||
elseif (indent-4) > (-shift-1) * sw
|
||||
let tail = strpart(tail,indent - 4)
|
||||
else
|
||||
let tail = strpart(tail,indent)
|
||||
endif
|
||||
endif
|
||||
call setline('.',head.tail)
|
||||
endfunction
|
||||
|
||||
function! s:IncreaseFunc(type)
|
||||
'[,']call CobolIndentBlock(1)
|
||||
endfunction
|
||||
|
||||
function! s:DecreaseFunc(type)
|
||||
'[,']call CobolIndentBlock(-1)
|
||||
endfunction
|
||||
|
||||
function! s:IncreaseIndent()
|
||||
let c = "\<C-T>"
|
||||
if exists("*InsertCtrlTWrapper")
|
||||
let key = InsertCtrlTWrapper()
|
||||
if key != c
|
||||
return key
|
||||
endif
|
||||
endif
|
||||
let interval = s:increase()
|
||||
let b:cobol_shiftwidth = &shiftwidth
|
||||
let &shiftwidth = 1
|
||||
let lastchar = strpart(getline('.'),col('.')-2,1)
|
||||
if lastchar == '0' || lastchar == '^'
|
||||
return "\<BS>".lastchar.c
|
||||
else
|
||||
return s:repeat(c,interval)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:DecreaseIndent()
|
||||
let c = "\<C-D>"
|
||||
if exists("*InsertCtrlDWrapper")
|
||||
" I hack Ctrl-D to delete when not at the end of the line.
|
||||
let key = InsertCtrlDWrapper()
|
||||
if key != c
|
||||
return key
|
||||
endif
|
||||
endif
|
||||
let interval = s:decrease()
|
||||
let b:cobol_shiftwidth = &shiftwidth
|
||||
let &shiftwidth = 1
|
||||
return s:repeat(c,interval)
|
||||
endfunction
|
||||
|
||||
function! s:RestoreShiftwidth()
|
||||
if exists("b:cobol_shiftwidth")
|
||||
let &shiftwidth=b:cobol_shiftwidth
|
||||
unlet b:cobol_shiftwidth
|
||||
endif
|
||||
return ""
|
||||
endfunction
|
||||
|
||||
function! s:Tab()
|
||||
if (strpart(getline('.'),0,col('.')-1) =~ '^\s*$' && &sta)
|
||||
return s:IncreaseIndent()
|
||||
" &softtabstop < 0: &softtabstop follows &shiftwidth
|
||||
elseif (&sts < 0 || &sts == shiftwidth()) && &sts != 8 && &et
|
||||
return s:repeat(" ",s:increase(col('.')-1))
|
||||
else
|
||||
return "\<Tab>"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:Comment(arg)
|
||||
" For EnhancedCommentify
|
||||
let line = getline('.')
|
||||
if (line =~ '^.\{6\}[*/C]' || a:arg == 'c') && a:arg != 'u'
|
||||
let line = substitute(line,'^.\{6\}\zs.',' ','')
|
||||
else
|
||||
let line = substitute(line,'^.\{6\}\zs.','*','')
|
||||
endif
|
||||
call setline('.',line)
|
||||
endfunction
|
||||
|
||||
function! s:toend(direction)
|
||||
let ignore = '^\(\s*\|.\{6\}\)\%([*/]\|\s*$\)'
|
||||
let keep = line('.')
|
||||
keepjumps +
|
||||
while line('.') < line('$') && getline('.') =~ ignore
|
||||
keepjumps +
|
||||
endwhile
|
||||
let res = search('\c^\%(\s*\|.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\|section\)\s*\.',a:direction.'W')
|
||||
if a:direction != 'b' && !res
|
||||
let res = line('$')
|
||||
keepjumps $
|
||||
elseif res
|
||||
keepjumps -
|
||||
endif
|
||||
if res
|
||||
while line('.') > 1 && getline('.') =~ ignore
|
||||
keepjumps -
|
||||
endwhile
|
||||
if line('.') == 1 && getline('.') =~ ignore
|
||||
exe "keepjumps ".keep
|
||||
endif
|
||||
else
|
||||
exe "keepjumps ".keep
|
||||
endif
|
||||
endfunction
|
||||
|
||||
endif
|
||||
23
ftplugin/conf.vim
Normal file
23
ftplugin/conf.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'conf') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: generic configuration file
|
||||
" 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
|
||||
46
ftplugin/config.vim
Normal file
46
ftplugin/config.vim
Normal file
@@ -0,0 +1,46 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'config') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: config
|
||||
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
|
||||
" Last Changed: 20 Jan 2009
|
||||
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
" Make sure the continuation lines below do not cause problems in
|
||||
" compatibility mode.
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
" Define some defaults in case the included ftplugins don't set them.
|
||||
let s:undo_ftplugin = ""
|
||||
let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let s:match_words = ""
|
||||
|
||||
runtime! ftplugin/sh.vim ftplugin/sh_*.vim ftplugin/sh/*.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Override our defaults if these were set by an included ftplugin.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin
|
||||
endif
|
||||
if exists("b:browsefilter")
|
||||
let s:browsefilter = b:browsefilter
|
||||
endif
|
||||
|
||||
" Change the :browse e filter to primarily show configure-related files.
|
||||
if has("gui_win32")
|
||||
let b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" .
|
||||
\ s:browsefilter
|
||||
endif
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "unlet! b:browsefilter | " . b:undo_ftplugin
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
23
ftplugin/crm.vim
Normal file
23
ftplugin/crm.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crm') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: CRM114
|
||||
" 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
|
||||
33
ftplugin/cs.vim
Normal file
33
ftplugin/cs.vim
Normal file
@@ -0,0 +1,33 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cs') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: C#
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Tue, 09 Mar 2004 14:09:33 CET
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
setlocal fo-=t fo+=croql
|
||||
|
||||
" Set 'comments' to format dashed lists in comments.
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "C# Source Files (*.cs)\t*.cs\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
endif
|
||||
31
ftplugin/csc.vim
Normal file
31
ftplugin/csc.vim
Normal file
@@ -0,0 +1,31 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'csc') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: csc
|
||||
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
|
||||
" Last Changed: 20 Jan 2009
|
||||
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Make sure the continuation lines below do not cause problems in
|
||||
" compatibility mode.
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_words=
|
||||
\ '\<fix\>:\<endfix\>,' .
|
||||
\ '\<if\>:\<else\%(if\)\=\>:\<endif\>,' .
|
||||
\ '\<!loopondimensions\>\|\<!looponselected\>:\<!endloop\>'
|
||||
endif
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "unlet! b:match_words"
|
||||
|
||||
" Restore the saved compatibility options.
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
endif
|
||||
28
ftplugin/css.vim
Normal file
28
ftplugin/css.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'css') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: CSS
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" 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< inc< fo< ofu<"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal omnifunc=csscomplete#CompleteCSS
|
||||
|
||||
let &l:include = '^\s*@import\s\+\%(url(\)\='
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user