Compare commits

...

135 Commits

Author SHA1 Message Date
Adam Stankiewicz
3ac0dd5a80 Alaways use native vim syntax, fixes #582 2020-10-14 23:47:17 +02:00
Adam Stankiewicz
e95c5f49aa Check indentation with 1024 lines as fallback, fixes #588 2020-10-14 23:37:38 +02:00
Adam Stankiewicz
ba11e0f1ad Improve django detection, closes #585 2020-10-14 23:26:36 +02:00
Adam Stankiewicz
c45f0b8f64 Make sure custom ftdetect is loaded, fixes #587 2020-10-14 23:23:32 +02:00
Adam Stankiewicz
bbee246aae Add and fix tests from upstream vim 2020-10-14 23:01:53 +02:00
Adam Stankiewicz
3da600ac30 Relax previous commit a bit 2020-10-09 23:00:41 +02:00
Adam Stankiewicz
0d48ba9245 Fix detecting of some filetypes, closes #579 2020-10-09 22:57:13 +02:00
Adam Stankiewicz
1993b9f68f Fix encoding of vim files 2020-10-08 08:31:09 +02:00
Adam Stankiewicz
bb3de8fa5e Fix markdown and other highlighting, #578 2020-10-08 00:40:28 +02:00
Adam Stankiewicz
b3763a917a Use neovim version of .vim highlighting, #578 2020-10-07 23:52:17 +02:00
Adam Stankiewicz
4bec20ec1a Fix test and loading of filetypes, closes #577 2020-10-07 21:51:30 +02:00
Adam Stankiewicz
9f4e2b6834 Remove context from packages, fixes #575 2020-10-07 13:01:20 +02:00
Adam Stankiewicz
619a7a854b Remove man plugin from vim, it does not work for nvim, closes #576 2020-10-07 12:48:46 +02:00
Adam Stankiewicz
3f79f795dc Remove filetype.vim for now, not clear it works 2020-10-07 12:37:21 +02:00
Adam Stankiewicz
f084509520 Fix vim 8 package manager, closes #574 2020-10-07 12:10:02 +02:00
Adam Stankiewicz
214ecc1384 Update readme 2020-10-06 19:00:50 +02:00
Adam Stankiewicz
a96c420e14 Simplify list of packages 2020-10-06 19:00:11 +02:00
Adam Stankiewicz
bc9757916e Add all vim filetypes 2020-10-06 18:54:19 +02:00
Adam Stankiewicz
c6fa4d2bf5 Add extensions to vlang 2020-10-06 11:02:00 +02:00
Adam Stankiewicz
cbc4600333 Update 2020-10-04 23:25:48 +02:00
Adam Stankiewicz
32b097f67e Add some missing filetypes 2020-10-04 22:20:23 +02:00
Adam Stankiewicz
04d110660e Fix formatting 2020-10-04 21:25:26 +02:00
Adam Stankiewicz
c0b866aac3 Add graphql indentation again, thanks @jparise! 2020-10-04 21:19:51 +02:00
Adam Stankiewicz
b4868c7ea7 Add comments for some extensions + test 2020-10-04 21:17:06 +02:00
Adam Stankiewicz
d221139bd7 Address BufWritePost error, fixes #573 2020-10-04 19:00:16 +02:00
Adam Stankiewicz
073e4d44be Actually do not use ++once, fixes #573 2020-10-02 10:39:03 +02:00
Adam Stankiewicz
5bd9f16476 Disable vim-polyglot for compatible mode 2020-10-02 03:46:08 +02:00
Adam Stankiewicz
94ec9c38e7 Do not use ++once to support older vims, fixes #7056 2020-10-02 03:42:03 +02:00
Adam Stankiewicz
bff55a54fa Update Vim 8 installation instructions 2020-10-02 00:44:02 +02:00
Adam Stankiewicz
560024abe0 Resolve issues with loading order, closes #571 2020-10-02 00:36:09 +02:00
Chayoung You
3ad297db5c Fix error when editing path for shebang (#572) 2020-09-30 11:20:29 +02:00
Adam Stankiewicz
5d7121d829 Update README.md 2020-09-30 11:03:53 +02:00
Adam Stankiewicz
8b272d6e52 Document how to install with vim8 packages 2020-09-30 05:38:14 +02:00
Adam Stankiewicz
449bb88248 Make loading faster for ambiguous extensions without heuristics 2020-09-30 01:40:34 +02:00
Adam Stankiewicz
7036147860 Brag in readme about shortened ftdetect time 2020-09-30 01:23:41 +02:00
Adam Stankiewicz
a37e7e2939 Reduce startup time by avoiding calling slow au! 2020-09-30 01:22:44 +02:00
Adam Stankiewicz
c1aac2e279 Deduplicate polyglot files 2020-09-29 23:36:28 +02:00
Adam Stankiewicz
543e8c917b Modularize lazy loading of polyglot parts 2020-09-29 21:48:38 +02:00
Adam Stankiewicz
2f133372bc Make loading faster for ambiguous extensions 2020-09-29 19:51:43 +02:00
Adam Stankiewicz
539952f922 Prevent warning for ps1xml heuristics, #570 2020-09-29 19:38:49 +02:00
Adam Stankiewicz
b5cc8fc336 Remove ambiguity for terraform files, #570 2020-09-29 19:35:05 +02:00
Adam Stankiewicz
1872af2d5e Fix detection of conf files, closes #569 2020-09-29 19:11:11 +02:00
Adam Stankiewicz
46b09b0d5b Remove {{ }} from detecting htmldjango, #560 2020-09-29 16:26:03 +02:00
Adam Stankiewicz
63f43f3b01 Make ftdetect even shorter 2020-09-28 19:35:09 +02:00
Adam Stankiewicz
046a052f18 Make generated file bit shorter 2020-09-28 19:13:59 +02:00
Adam Stankiewicz
31409eaafb Fix all warning messages 2020-09-28 18:56:36 +02:00
Adam Stankiewicz
f431aee86e Change less provider, closes #567 2020-09-28 18:28:56 +02:00
Adam Stankiewicz
6a086b0c79 Fix many extensions detection 2020-09-28 03:00:01 +02:00
Adam Stankiewicz
692db4dc29 Fix more warnings 2020-09-28 02:30:26 +02:00
Adam Stankiewicz
417df69667 Fix zsh missing filenames 2020-09-28 02:19:06 +02:00
Adam Stankiewicz
ae778bdb17 Add missing filetypes for sql 2020-09-28 01:33:57 +02:00
Adam Stankiewicz
b7598ff0c5 Add missing filetypes for systemd 2020-09-28 01:23:00 +02:00
Adam Stankiewicz
312e95099d Show warnings only for DEV build 2020-09-28 00:43:36 +02:00
Adam Stankiewicz
63369f98ef Fix missing filetypes detection 2020-09-28 00:41:10 +02:00
Adam Stankiewicz
2116dd281b Fix some missing extensions warnings 2020-09-28 00:31:39 +02:00
Adam Stankiewicz
7ec499c19f Set indentation only locally, fixes #564 2020-09-27 12:05:29 +02:00
Adam Stankiewicz
33b86476b6 Fix neovim warning, closes #563 2020-09-26 01:25:12 +02:00
Adam Stankiewicz
4f36a63813 Update filenames for gitignore 2020-09-25 00:09:44 +02:00
Adam Stankiewicz
d6479bbf0b Change gitignore provider 2020-09-25 00:07:37 +02:00
Adam Stankiewicz
d53d2189b9 Add support for .gitignore highlighting 2020-09-24 23:24:42 +02:00
Adam Stankiewicz
a6a6aeab76 Improve django filetype detection, closes #560 2020-09-24 22:52:50 +02:00
Adam Stankiewicz
444e7f184d Change maintained badge 2020-09-24 19:00:06 +02:00
Adam Stankiewicz
4c028b37bf Add warning to generated files 2020-09-24 18:56:07 +02:00
Adam Stankiewicz
9ff714cb6c Extract non-generated code to polyglot.vim 2020-09-24 18:52:58 +02:00
Adam Stankiewicz
e2bbed8acc Fix django highlighting, fixes #553 2020-09-24 10:50:19 +02:00
Adam Stankiewicz
6b4da27538 Improve html heuristics 2020-09-24 09:24:13 +02:00
Adam Stankiewicz
c284af58fa Update readme 2020-09-23 23:55:28 +02:00
Adam Stankiewicz
50aa05bd72 Allow to disable only syntax highlighting, #556 2020-09-23 23:49:57 +02:00
Adam Stankiewicz
7e2d060f88 Fix detecting jinja templates, #553 2020-09-23 23:25:01 +02:00
Adam Stankiewicz
3a298c9759 Add more advanced cpp syntax, #557 2020-09-23 22:04:29 +02:00
Adam Stankiewicz
d9ec600545 Allow to use ruby 2.5.5, closes #558 2020-09-23 20:18:38 +02:00
Adam Stankiewicz
33f0964d53 Update test script to ruby 2020-09-23 19:37:58 +02:00
Adam Stankiewicz
92cb76e33a Fix polyglot_disabled docs, closes #555 2020-09-23 09:43:36 +02:00
Adam Stankiewicz
378dcb3878 Update tests location 2020-09-22 21:47:21 +02:00
Adam Stankiewicz
6f0c50457f Build 2020-09-22 17:16:27 +02:00
Adam Stankiewicz
06548fe617 Get rid of s:Setf helper 2020-09-16 17:43:03 +02:00
Adam Stankiewicz
0118088e0a Make config more vim-independent 2020-09-16 17:24:10 +02:00
Adam Stankiewicz
17c2b630e1 Write heuristics for perl, closes #550 2020-09-16 15:50:39 +02:00
Adam Stankiewicz
271679272c Fix eruby filetype detect, closes #547 2020-09-15 11:19:56 +02:00
Adam Stankiewicz
d43d269bed Update 2020-09-15 10:45:50 +02:00
Adam Stankiewicz
4314841aa4 Fix build, closes #548 2020-09-13 09:14:21 +02:00
Adam Stankiewicz
5308fab3e9 Fix build, closes #548 2020-09-13 09:13:11 +02:00
Adam Stankiewicz
c842cbcb59 Update 2020-09-12 14:54:55 +02:00
Adam Stankiewicz
314621a395 Make warning more clear, #546 2020-09-11 13:56:24 +02:00
Adam Stankiewicz
ca8818e8ed Improve issue template 2020-09-10 16:46:31 +02:00
Adam Stankiewicz
947e6853aa Improve issue template 2020-09-10 16:44:51 +02:00
Adam Stankiewicz
05ff14bfda Add odin support, closes #544 2020-09-10 16:38:32 +02:00
Adam Stankiewicz
9243367ba3 Automatically detect script filetype when typing 2020-09-10 15:40:27 +02:00
Adam Stankiewicz
1eed30b2af Fix filetype detection and docini filetypes 2020-09-10 14:07:02 +02:00
Adam Stankiewicz
be092d6f43 Fix jsx indentation, closes #543 2020-09-10 12:18:29 +02:00
Adam Stankiewicz
fb7cf8a9ab Update 2020-09-10 10:30:32 +02:00
Adam Stankiewicz
19a69cf77d Remove debugging code... 2020-09-09 19:22:27 +02:00
Adam Stankiewicz
4f7a4036eb Finally fix issues with tab detection, #541 2020-09-09 19:08:17 +02:00
Adam Stankiewicz
0ff5d451b0 Fix b:sleuth_culprit for tabs 2020-09-09 18:31:30 +02:00
Adam Stankiewicz
49840b1893 Show full path in b:sleuth_culprit 2020-09-09 18:28:28 +02:00
Adam Stankiewicz
2dc954d6fa Last fixes to b:sleuth_culprit 2020-09-09 18:07:03 +02:00
Adam Stankiewicz
2369cd5d22 Make b:sleuth_culprit more readable 2020-09-09 18:02:38 +02:00
Adam Stankiewicz
46affb6153 Show warning if g:polyglot_disabled is not at the top of .vimrc 2020-09-09 17:50:40 +02:00
Adam Stankiewicz
a4cc3f64f9 Make it easier to debug indentation issues, #542 2020-09-09 17:39:27 +02:00
Adam Stankiewicz
2fe310256e Transcompile ..= operator to support old vims, fixes #542 2020-09-09 17:08:29 +02:00
Adam Stankiewicz
2e1a980632 Add missing functions from Sleuth, #541 2020-09-09 16:48:49 +02:00
Adam Stankiewicz
cecfb5dd10 Fix disabling autoindent, #541 2020-09-09 16:45:51 +02:00
Adam Stankiewicz
a4a9481d37 Fix disabling autoindent, closes #541 2020-09-09 11:58:24 +02:00
Adam Stankiewicz
5e5d127eb8 Add expect (fix tests) 2020-09-08 22:41:51 +02:00
Adam Stankiewicz
002573265a Fix some ftdetect issues from tests 2020-09-08 21:17:24 +02:00
Adam Stankiewicz
a4b91124a8 Fix auto-detecting indent, closes #540 2020-09-08 16:15:45 +02:00
Adam Stankiewicz
46040f3ffd Add heuristics for .h extension 2020-09-06 23:37:24 +02:00
Adam Stankiewicz
48254ec7ad Add more apache filetypes 2020-09-06 21:07:04 +02:00
Adam Stankiewicz
cd2fded0e0 Add support for Visual Basic and Basic 2020-09-06 20:51:38 +02:00
Adam Stankiewicz
255345bf95 Remove stephpy/vim-yaml syntax
It causes issues:
- https://github.com/dracula/vim/pull/163
- https://github.com/stephpy/vim-yaml/issues/22
2020-09-06 19:25:34 +02:00
Adam Stankiewicz
3169f80169 Remove empty blocks 2020-09-06 19:23:23 +02:00
Adam Stankiewicz
e9b3bcd5e1 Ensure duplicate tags do not happen in the future, #538 2020-09-06 19:20:23 +02:00
Adam Stankiewicz
d9ee362537 Fix weird indentation issue of yaml 2020-09-06 15:08:20 +02:00
Adam Stankiewicz
57badea2dc Ignore idris2 doc, fixes #538 2020-09-06 02:34:46 +02:00
CodingCellist
3baafd5c33 Add support for Idris2, closes #534 (#535) 2020-09-05 21:37:11 +02:00
Adam Stankiewicz
b0124dc880 Ignore files from homedir and root for indent
https://github.com/tpope/vim-sleuth/pull/57
2020-09-04 19:45:47 +02:00
Adam Stankiewicz
99166bd51f Do not set indent on by default
https://github.com/tpope/vim-sleuth/issues/21
2020-09-04 19:21:08 +02:00
Adam Stankiewicz
48b4f233c5 Fix detecting indentation in some CSS
This is done by ignoring lines that don't have any
alphanumeric characters, e.g. following would be detected
as 4-spaces indentation instead of 2-spaces

.android {
    height: 404px; width: 334px;
    margin: 100px auto;
  }

https://github.com/tpope/vim-sleuth/issues/22
2020-09-04 19:02:39 +02:00
Adam Stankiewicz
556ba05cee Ignore heredoc when detecting indent 2020-09-04 18:55:51 +02:00
Adam Stankiewicz
262960fa22 Synchronize shiftwidth with tabstop by default 2020-09-04 18:29:53 +02:00
Adam Stankiewicz
b2640b5b76 Fix detection of indentation, #537 2020-09-04 17:31:22 +02:00
Adam Stankiewicz
c30ba66d22 Let user select tabstop, by not changing it 2020-09-04 14:23:18 +02:00
Adam Stankiewicz
4df00e6574 Allow to disable autoindent with g:polyglot_disabled 2020-09-04 14:18:37 +02:00
Adam Stankiewicz
48f59577c8 Switch to neovim version of help filetype, fixes #536 2020-09-04 12:11:55 +02:00
Adam Stankiewicz
96179c95ba Update contribution info 2020-09-03 17:16:08 +02:00
Adam Stankiewicz
520389bbfd Add test for terraform 2020-09-03 05:38:07 +02:00
Adam Stankiewicz
7123e97498 Disable native autocommands when appropriate, fixes #533 2020-09-03 05:36:55 +02:00
Adam Stankiewicz
63119f09d1 Automatically detect indentation, closes #529 2020-09-01 23:38:17 +02:00
Adam Stankiewicz
f2ef4cedec Fix reason filetype detection, closes #532 2020-09-01 23:02:36 +02:00
Adam Stankiewicz
45c1923f43 Add sql support for javascript 2020-09-01 16:02:38 +02:00
Adam Stankiewicz
8dd0474feb Remove vim-sql-syntax, #528 2020-09-01 15:55:43 +02:00
Adam Stankiewicz
e166f741ef Some major updates including heuristics
- Allow to define heuristics in heuristics.yaml
- Migrate all filetypes from vim beginning with "a"
- Remove enhanced cpp syntax (it was too slow to load)
- Use setf instead of set ft for setting filetype (faster)
- Override native hauristics with au!
- Add globbing of files for packages
- Replace predefined dirs with extra_dirs and ignored_dirs
- Allow to define proper order of packages with topological sort
- Fix powershell detection
- Lint and fix many packages.yaml issues
- etc etd
2020-09-01 08:33:15 +02:00
Tim Bedard
d4fcef1aa8 add missing period to fix mako detection (#530) 2020-08-29 12:17:29 +02:00
Adam Stankiewicz
7972e8eea1 Build 2020-08-27 15:02:54 +02:00
Adam Stankiewicz
6ed481e463 Make sure all extensions are covered 2020-08-27 15:01:44 +02:00
797 changed files with 106017 additions and 6169 deletions

View File

@@ -2,17 +2,23 @@
name: Add language
about: Add support for new language
title: ''
labels: ''
labels: 'enhancement'
assignees: ''
---
<!--- vim-polyglot accepts only lightweight, maintained github-hosted vim plugins -->
**What is the name of this language in Linguist?**
<!-- https://github.com/github/linguist/blob/master/lib/linguist/languages.yml -->
**Link to GitHub repository of Vim plugin**
**GitHub repository url**
**Is this plugin well maintained?**
**Is this plugin lightweight? (no advanced functionality, just indent and syntax support)**

View File

@@ -1,20 +0,0 @@
---
name: Add support for language
about: ''
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -14,7 +14,7 @@ jobs:
run: |
sudo add-apt-repository ppa:jonathonf/vim -y
sudo apt-get update -q
sudo apt-get install -y vim
sudo apt-get install -y vim expect
vim --version
- uses: actions/checkout@v2
- name: Run Tests

View File

@@ -1,7 +1,10 @@
.PHONY: all
.PHONY: build test dev
all:
build:
@ scripts/build
test:
@ scripts/test
dev:
@ find scripts autoload/polyglot ftdetect tests . -type f -depth 1 | DEV=1 entr bash -c 'make && make test'

344
README.md
View File

@@ -1,20 +1,20 @@
![vim-polyglot](https://i.imgur.com/9RxQK6k.png)
![build](https://github.com/sheerun/vim-polyglot/workflows/Vim%20Polyglot%20CI/badge.svg) [![Maintenance](https://img.shields.io/maintenance/yes/2020.svg?maxAge=2592000)]()
![build](https://github.com/sheerun/vim-polyglot/workflows/Vim%20Polyglot%20CI/badge.svg) [![Maintenance](https://img.shields.io/badge/maintained%20since-2013-yes)]()
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-->155<!--/Package Count--> packages it consists of.
- It **installs and updates 120+ times faster** than the <!--Package Count-->593<!--/Package Count--> packages it consists of.
- It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).
- Solid syntax and indentation support (other features skipped). Only the best language packs.
- All unnecessary files are ignored (like enormous documentation from php support).
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
- Automatically detect indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth))
- Each build is tested by automated vimrunner script on CI. See `spec` directory.
\*To be completely honest, optimized `ftdetect` script takes around `19ms` to load.
\*To be completely honest, optimized `ftdetect` script takes around `10ms` to load.
## Installation
@@ -32,8 +32,7 @@ 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).
@@ -42,162 +41,163 @@ If you need full functionality of any plugin, please use it directly with your p
## Language packs
On top of all language packs from [vim repository](https://github.com/vim/vim/tree/master/runtime), vim-polyglot includes:
<!--Language Packs-->
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl) (syntax)
- [ansible](https://github.com/pearofducks/ansible-vim) (syntax, indent, ftplugin)
- [apiblueprint](https://github.com/sheerun/apiblueprint.vim) (syntax, ctags)
- [applescript](https://github.com/mityu/vim-applescript) (syntax, indent)
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent)
- [asciidoc](https://github.com/asciidoc/vim-asciidoc) (syntax)
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey) (indent)
- [blade](https://github.com/jwalton512/vim-blade) (syntax, indent, ftplugin)
- [brewfile](https://github.com/bfontaine/Brewfile.vim) (syntax)
- [c++11](https://github.com/octol/vim-cpp-enhanced-highlight) (syntax)
- [c/c++](https://github.com/vim-jp/vim-cpp) (syntax)
- [caddyfile](https://github.com/isobit/vim-caddyfile) (syntax, indent, ftplugin)
- [carp](https://github.com/hellerve/carp-vim) (syntax)
- [cjsx](https://github.com/mtscout6/vim-cjsx) (syntax, ftplugin)
- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, doc, autoload, ftplugin)
- [cmake](https://github.com/pboettch/vim-cmake-syntax) (syntax, indent)
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, doc, compiler, autoload, ftplugin)
- [cql](https://github.com/elubow/cql-vim) (syntax)
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim) (syntax, doc, compiler, ftplugin)
- [crystal](https://github.com/rhysd/vim-crystal) (syntax, indent, autoload, ftplugin)
- [csv](https://github.com/chrisbra/csv.vim) (syntax, doc, autoload, ftplugin)
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin)
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (syntax)
- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, doc, autoload, ftplugin)
- [dhall](https://github.com/vmchale/dhall-vim) (syntax, doc, ftplugin)
- [dlang](https://github.com/JesseKPhillips/d.vim) (syntax, indent)
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (syntax, indent, ftplugin)
- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, doc, compiler, autoload, ftplugin)
- [elm](https://github.com/andys8/vim-elm-syntax) (syntax, indent)
- [emberscript](https://github.com/yalesov/vim-ember-script) (syntax, indent, ftplugin)
- [emblem](https://github.com/yalesov/vim-emblem) (syntax, indent, ftplugin)
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (syntax, indent)
- [fennel](https://github.com/bakpakin/fennel.vim) (syntax, indent, ftplugin)
- [ferm](https://github.com/vim-scripts/ferm.vim) (syntax)
- [fish](https://github.com/georgewitteman/vim-fish) (syntax, indent, compiler, autoload, ftplugin)
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (syntax)
- [fsharp](https://github.com/ionide/Ionide-vim) (syntax, indent, doc, autoload)
- [gdscript](https://github.com/calviken/vim-gdscript3) (syntax, indent)
- [git](https://github.com/tpope/vim-git) (syntax, indent, doc, ftplugin)
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent)
- [gmpl](https://github.com/maelvalais/gmpl.vim) (syntax)
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (syntax)
- [go](https://github.com/fatih/vim-go) (syntax, indent, doc, compiler)
- [gradle](https://github.com/tfnico/vim-gradle) (compiler)
- [graphql](https://github.com/jparise/vim-graphql) (syntax, indent, autoload, ftplugin, after, doc)
- [haml](https://github.com/sheerun/vim-haml) (syntax, indent, compiler, ftplugin)
- [handlebars](https://github.com/sheerun/vim-mustache-handlebars) (syntax, indent, ftplugin)
- [haproxy](https://github.com/CH-DanReif/haproxy.vim) (syntax)
- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, doc, ftplugin)
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax)
- [hcl](https://github.com/b4b4r07/vim-hcl) (syntax, indent, ftplugin)
- [helm](https://github.com/towolf/vim-helm) (syntax)
- [hive](https://github.com/zebradil/hive.vim) (syntax, ftplugin)
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
- [i3](https://github.com/mboughaba/i3config.vim) (syntax, ftplugin)
- [icalendar](https://github.com/chutzpah/icalendar.vim) (syntax)
- [idris](https://github.com/idris-hackers/idris-vim) (syntax, indent, doc, ftplugin)
- [ion](https://github.com/vmchale/ion-vim) (syntax, ftplugin)
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftplugin, extras)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (syntax, indent)
- [jinja](https://github.com/lepture/vim-jinja) (syntax, indent)
- [jq](https://github.com/vito-c/jq.vim) (syntax, ftplugin)
- [json5](https://github.com/GutenYe/json5.vim) (syntax)
- [json](https://github.com/elzr/vim-json) (syntax, indent, ftplugin)
- [jsonnet](https://github.com/google/vim-jsonnet) (syntax, doc, autoload, ftplugin)
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent)
- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (autoload, after, doc)
- [julia](https://github.com/JuliaEditorSupport/julia-vim) (syntax, indent, doc, autoload, ftplugin)
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftplugin)
- [ledger](https://github.com/ledger/vim-ledger) (syntax, indent, doc, compiler, autoload)
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin)
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (syntax, indent, compiler, ftplugin)
- [livescript](https://github.com/gkz/vim-ls) (syntax, indent, compiler, ftplugin)
- [llvm](https://github.com/rhysd/vim-llvm) (syntax, indent, ftplugin)
- [log](https://github.com/MTDL9/vim-log-highlighting) (syntax, doc)
- [lua](https://github.com/tbastos/vim-lua) (syntax, indent)
- [mako](https://github.com/sophacles/vim-bundle-mako) (syntax, indent, ftplugin)
- [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent, doc, ftplugin)
- [mathematica](https://github.com/voldikss/vim-mma) (syntax, ftplugin)
- [mdx](https://github.com/jxnblk/vim-mdx-js) (syntax)
- [meson](https://github.com/mesonbuild/meson) (syntax, indent, ftplugin)
- [moonscript](https://github.com/leafo/moonscript-vim) (syntax, indent, ftplugin)
- [nginx](https://github.com/chr4/nginx.vim) (syntax, indent, ftplugin)
- [nim](https://github.com/zah/nim.vim) (syntax, indent, compiler, autoload)
- [nix](https://github.com/LnL7/vim-nix) (syntax, indent, compiler, ftplugin)
- [objc](https://github.com/b4winckler/vim-objc) (ftplugin, syntax, indent)
- [ocaml](https://github.com/rgrinberg/vim-ocaml) (syntax, indent, doc, compiler, ftplugin)
- [octave](https://github.com/McSinyx/vim-octave) (syntax, indent)
- [opencl](https://github.com/petRUShka/vim-opencl) (syntax, indent, ftplugin)
- [perl](https://github.com/vim-perl/vim-perl) (syntax, indent, ftplugin)
- [pgsql](https://github.com/lifepillar/pgsql.vim) (syntax, indent, doc)
- [php](https://github.com/StanAngeloff/php.vim) (syntax)
- [plantuml](https://github.com/aklt/plantuml-syntax) (syntax, indent, ftplugin)
- [pony](https://github.com/jakwings/vim-pony) (syntax, indent, autoload, ftplugin)
- [powershell](https://github.com/PProvost/vim-ps1) (syntax, indent, doc, compiler, ftplugin)
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, indent)
- [pug](https://github.com/digitaltoad/vim-pug) (syntax, indent, ftplugin)
- [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, autoload, ftplugin, ctags)
- [purescript](https://github.com/purescript-contrib/purescript-vim) (syntax, indent, ftplugin)
- [python-compiler](https://github.com/aliev/vim-compiler-python) (compiler, autoload)
- [python-indent](https://github.com/Vimjas/vim-python-pep8-indent) (indent)
- [python](https://github.com/vim-python/python-syntax) (syntax, doc)
- [qmake](https://github.com/artoj/qmake-syntax-vim) (syntax)
- [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin)
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax)
- [racket](https://github.com/wlangstroth/vim-racket) (syntax, indent, ftplugin)
- [ragel](https://github.com/jneen/ragel.vim) (syntax)
- [raku](https://github.com/Raku/vim-raku) (syntax, indent, ftplugin)
- [raml](https://github.com/IN3D/vim-raml) (syntax, doc, ftplugin)
- [razor](https://github.com/adamclerk/vim-razor) (syntax, indent, ftplugin)
- [reason](https://github.com/reasonml-editor/vim-reason-plus) (syntax, indent, doc)
- [requirements](https://github.com/raimon49/requirements.txt.vim) (syntax, autoload)
- [rspec](https://github.com/keith/rspec.vim) (syntax)
- [rst](https://github.com/marshallward/vim-restructuredtext) (syntax, indent, autoload, ftplugin)
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, doc, compiler, autoload, ftplugin)
- [rust](https://github.com/rust-lang/rust.vim) (syntax, indent, doc, compiler, autoload, ftplugin, ctags)
- [sbt](https://github.com/derekwyatt/vim-sbt) (syntax)
- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, doc, compiler, ftplugin, ctags)
- [scss](https://github.com/cakebaker/scss-syntax.vim) (syntax, indent, ftplugin)
- [sh](https://github.com/arzg/vim-sh) (syntax)
- [slim](https://github.com/slim-template/vim-slim) (syntax, indent, ftplugin)
- [slime](https://github.com/slime-lang/vim-slime-syntax) (syntax, indent)
- [smt2](https://github.com/bohlender/vim-smt2) (syntax, autoload, ftplugin)
- [solidity](https://github.com/tomlion/vim-solidity) (syntax, indent, ftplugin)
- [sql](https://github.com/shmup/vim-sql-syntax) (syntax)
- [stylus](https://github.com/wavded/vim-stylus) (syntax, indent, ftplugin)
- [svelte](https://github.com/evanleck/vim-svelte) (syntax, indent, ftplugin)
- [svg-indent](https://github.com/jasonshell/vim-svg-indent) (indent)
- [svg](https://github.com/vim-scripts/svg.vim) (syntax)
- [swift](https://github.com/keith/swift.vim) (syntax, indent, compiler, ftplugin, ctags)
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (syntax)
- [systemd](https://github.com/wgwoods/vim-systemd-syntax) (syntax, ftplugin)
- [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, doc, autoload, ftplugin)
- [textile](https://github.com/timcharper/textile.vim) (syntax, doc, ftplugin)
- [thrift](https://github.com/solarnz/thrift.vim) (syntax)
- [tmux](https://github.com/ericpruitt/tmux.vim) (syntax, ftplugin)
- [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin)
- [tptp](https://github.com/c-cube/vim-tptp) (syntax)
- [twig](https://github.com/lumiliet/vim-twig) (syntax, indent, ftplugin)
- [typescript](https://github.com/HerringtonDarkholme/yats.vim) (syntax, indent, compiler, ftplugin, ctags)
- [unison](https://github.com/unisonweb/unison) (syntax)
- [v](https://github.com/ollykel/v-vim) (syntax, indent, ftplugin)
- [vala](https://github.com/arrufat/vala.vim) (syntax, indent, ftplugin)
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax)
- [velocity](https://github.com/lepture/vim-velocity) (syntax, indent)
- [vue](https://github.com/posva/vim-vue) (syntax, indent, ftplugin)
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (syntax)
- [xml](https://github.com/amadeus/vim-xml) (syntax)
- [xsl](https://github.com/vim-scripts/XSLT-syntax) (syntax)
- [yaml](https://github.com/stephpy/vim-yaml) (syntax, ftplugin)
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
- [zephir](https://github.com/xwsoul/vim-zephir) (syntax)
- [zig](https://github.com/ziglang/zig.vim) (syntax, indent, autoload, ftplugin)
- [zinit](https://github.com/zinit-zsh/zplugin-vim-syntax) (syntax)
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl)
- [ansible](https://github.com/pearofducks/ansible-vim)
- [apiblueprint](https://github.com/kylef/apiblueprint.vim)
- [applescript](https://github.com/mityu/vim-applescript)
- [arduino](https://github.com/sudar/vim-arduino-syntax)
- [asciidoc](https://github.com/asciidoc/vim-asciidoc)
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey)
- [blade](https://github.com/jwalton512/vim-blade)
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
- [c/c++](https://github.com/vim-jp/vim-cpp)
- [caddyfile](https://github.com/isobit/vim-caddyfile)
- [carp](https://github.com/hellerve/carp-vim)
- [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)
- [cpp-modern](https://github.com/bfrg/vim-cpp-modern)
- [cql](https://github.com/elubow/cql-vim)
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim)
- [crystal](https://github.com/rhysd/vim-crystal)
- [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)
- [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)
- [fsharp](https://github.com/ionide/Ionide-vim)
- [gdscript](https://github.com/calviken/vim-gdscript3)
- [git](https://github.com/tpope/vim-git)
- [gitignore](https://github.com/fszymanski/fzf-gitignore)
- [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)
- [gradle](https://github.com/tfnico/vim-gradle)
- [graphql](https://github.com/jparise/vim-graphql)
- [haml](https://github.com/tpope/vim-haml)
- [handlebars](https://github.com/mustache/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)
- [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/sheerun/html5.vim)
- [i3](https://github.com/mboughaba/i3config.vim)
- [icalendar](https://github.com/chutzpah/icalendar.vim)
- [idris2](https://github.com/edwinb/idris2-vim)
- [idris](https://github.com/idris-hackers/idris-vim)
- [ion](https://github.com/vmchale/ion-vim)
- [javascript-sql](https://github.com/statico/vim-javascript-sql)
- [javascript](https://github.com/pangloss/vim-javascript)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [textile](https://github.com/timcharper/textile.vim)
- [thrift](https://github.com/solarnz/thrift.vim)
- [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)
- [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)
- [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)
- [yard](https://github.com/noprompt/vim-yardoc)
- [zephir](https://github.com/xwsoul/vim-zephir)
- [zig](https://github.com/ziglang/zig.vim)
- [zinit](https://github.com/zinit-zsh/zplugin-vim-syntax)
<!--/Language Packs-->
## Updating
@@ -210,19 +210,33 @@ Please make sure you have `syntax on` in your `.vimrc` (or use something like [s
Individual language packs can be disabled by setting `g:polyglot_disabled` as follows:
```viml
let g:polyglot_disabled = ['css']
```vim
let g:polyglot_disabled = ['markdown']
```
The list of available languages to disable is shown above.
*Please declare this variable before polyglot is loaded (at the top of .vimrc)*
Please note that disabling a language won't make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are loaded lazily, on demand.
If you wish to use filetype detection by Vim Polyglot but you'd like to use your own syntax-highlighting plugin, you can append `.plugin` to disabled entry, like 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.
Vim Polyglot tries to automatically detect indentation settings (just like vim-sleuth). If this feature is not working for you for some reason, please file an issue and disable it temporarily with:
```vim
let g:polyglot_disabled = ['autoindent']
```
## Contributing
Language packs are periodically updated using automated `scripts/build` script.
Feel free to add your language to `packages.yaml`, and send pull-request. Please don't run `make` and include that in your PR, send just changes to `packages.yaml` and build scripts if really necessary. You can run `make test` to run rough tests.
Feel free to add your language to `packages.yaml` + `heuristics.yaml`, and send pull-request. You can run `make test` to run rough tests. And `make dev` for easy development.
## License

13
after/ftplugin/html.vim Normal file
View 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

View File

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

View File

@@ -0,0 +1,16 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
" Vim filetype plugin file
" Language: JavaScript
" Maintainer: vim-javascript community
" URL: https://github.com/pangloss/vim-javascript
setlocal iskeyword+=$ suffixesadd+=.js
if exists('b:undo_ftplugin')
let b:undo_ftplugin .= ' | setlocal iskeyword< suffixesadd<'
else
let b:undo_ftplugin = 'setlocal iskeyword< suffixesadd<'
endif
endif

View 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

View File

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

View File

@@ -1,5 +1,5 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/javascript.vim
source <sfile>:h/jsx.vim
endif

35
after/ftplugin/jsx.vim Normal file
View File

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

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
" modified from html.vim
" For matchit plugin

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/tsx.vim

View File

@@ -1,11 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
" Vim indent file
" Language: Yaml
" Author: Henrique Barcelos
" Date: 2014-10-08
" URL: https://github.com/hjpbarcelos
setlocal autoindent sw=2 ts=2 expandtab
" vim:set sw=2:
endif

1064
after/indent/html.vim Normal file

File diff suppressed because it is too large Load Diff

View 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

View 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

View File

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

View File

@@ -1,5 +1,5 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/javascript.vim
source <sfile>:h/jsx.vim
endif

33
after/indent/jsx.vim Normal file
View File

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

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim indent file

View 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

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/tsx.vim

View File

@@ -1,321 +1,53 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c++11') == -1
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') == -1
" ==============================================================================
" Vim syntax file
" Language: C Additions
" Maintainer: Jon Haggblad <jon@haeggblad.com>
" Contributor: Mikhail Wolfson <mywolfson@gmail.com>
" URL: http://www.haeggblad.com
" Last Change: 6 Sep 2014
" Version: 0.3
" Changelog:
" 0.3 - integration of aftersyntaxc.vim
" 0.2 - Cleanup
" 0.1 - initial version.
" 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 4, 2020
"
" Syntax highlighting for functions in C.
" Extended C syntax highlighting including highlighting of user-defined
" functions.
"
" Based on:
" http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim
" This syntax file is based on:
" https://github.com/octol/vim-cpp-enhanced-highlight
" ==============================================================================
" -----------------------------------------------------------------------------
" Highlight function names.
" -----------------------------------------------------------------------------
if !exists('g:cpp_no_function_highlight')
syn match cCustomParen transparent "(" contains=cParen contains=cCppParen
syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen
hi def link cCustomFunc Function
" 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 member variable names.
" -----------------------------------------------------------------------------
if exists('g:cpp_member_variable_highlight') && g:cpp_member_variable_highlight
syn match cCustomDot "\." contained
syn match cCustomPtr "->" contained
syn match cCustomMemVar "\(\.\|->\)\h\w*" contains=cCustomDot,cCustomPtr
hi def link cCustomMemVar Function
endif
" -----------------------------------------------------------------------------
" Highlight POSIX functions.
" -----------------------------------------------------------------------------
if exists('g:cpp_posix_standard') && g:cpp_posix_standard
syn keyword cPOSIXFunction socket accept bind connect getsockname
syn keyword cPOSIXFunction listen recv recvfrom recvmsg
syn keyword cPOSIXFunction send sendto sendmsg setsockopt socketpair
syn keyword cPOSIXFunction htonl htons ntohl ntohs
syn keyword cPOSIXFunction inet_ntop inet_pton getaddrinfo
syn keyword cPOSIXFunction poll select pselect
hi def link cPOSIXFunction Function
endif
" -----------------------------------------------------------------------------
" Source: aftersyntaxc.vim
" -----------------------------------------------------------------------------
" Common ANSI-standard functions
syn keyword cAnsiFunction MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_
syn keyword cAnsiFunction main typeof
syn keyword cAnsiFunction open close read write lseek dup dup2
syn keyword cAnsiFunction fcntl ioctl
syn keyword cAnsiFunction wctrans towctrans towupper
syn keyword cAnsiFunction towlower wctype iswctype
syn keyword cAnsiFunction iswxdigit iswupper iswspace
syn keyword cAnsiFunction iswpunct iswprint iswlower
syn keyword cAnsiFunction iswgraph iswdigit iswcntrl
syn keyword cAnsiFunction iswalpha iswalnum wcsrtombs
syn keyword cAnsiFunction mbsrtowcs wcrtomb mbrtowc
syn keyword cAnsiFunction mbrlen mbsinit wctob
syn keyword cAnsiFunction btowc wcsfxtime wcsftime
syn keyword cAnsiFunction wmemset wmemmove wmemcpy
syn keyword cAnsiFunction wmemcmp wmemchr wcstok
syn keyword cAnsiFunction wcsstr wcsspn wcsrchr
syn keyword cAnsiFunction wcspbrk wcslen wcscspn
syn keyword cAnsiFunction wcschr wcsxfrm wcsncmp
syn keyword cAnsiFunction wcscoll wcscmp wcsncat
syn keyword cAnsiFunction wcscat wcsncpy wcscpy
syn keyword cAnsiFunction wcstoull wcstoul wcstoll
syn keyword cAnsiFunction wcstol wcstold wcstof
syn keyword cAnsiFunction wcstod ungetwc putwchar
syn keyword cAnsiFunction putwc getwchar getwc
syn keyword cAnsiFunction fwide fputws fputwc
syn keyword cAnsiFunction fgetws fgetwc wscanf
syn keyword cAnsiFunction wprintf vwscanf vwprintf
syn keyword cAnsiFunction vswscanf vswprintf vfwscanf
syn keyword cAnsiFunction vfwprintf swscanf swprintf
syn keyword cAnsiFunction fwscanf fwprintf zonetime
syn keyword cAnsiFunction strfxtime strftime localtime
syn keyword cAnsiFunction gmtime ctime asctime
syn keyword cAnsiFunction time mkxtime mktime
syn keyword cAnsiFunction difftime clock strlen
syn keyword cAnsiFunction strerror memset strtok
syn keyword cAnsiFunction strstr strspn strrchr
syn keyword cAnsiFunction strpbrk strcspn strchr
syn keyword cAnsiFunction memchr strxfrm strncmp
syn keyword cAnsiFunction strcoll strcmp memcmp
syn keyword cAnsiFunction strncat strcat strncpy
syn keyword cAnsiFunction strcpy memmove memcpy
syn keyword cAnsiFunction wcstombs mbstowcs wctomb
syn keyword cAnsiFunction mbtowc mblen lldiv
syn keyword cAnsiFunction ldiv div llabs
syn keyword cAnsiFunction labs abs qsort
"syn keyword cAnsiFunction bsearch system getenv
syn keyword cAnsiFunction bsearch getenv
syn keyword cAnsiFunction exit atexit abort
syn keyword cAnsiFunction realloc malloc free
syn keyword cAnsiFunction calloc srand rand
syn keyword cAnsiFunction strtoull strtoul strtoll
syn keyword cAnsiFunction strtol strtold strtof
syn keyword cAnsiFunction strtod atoll atol
syn keyword cAnsiFunction atoi atof perror
syn keyword cAnsiFunction ferror feof clearerr
syn keyword cAnsiFunction rewind ftell fsetpos
syn keyword cAnsiFunction fseek fgetpos fwrite
syn keyword cAnsiFunction fread ungetc puts
syn keyword cAnsiFunction putchar putc gets
syn keyword cAnsiFunction getchar getc fputs
syn keyword cAnsiFunction fputc fgets fgetc
syn keyword cAnsiFunction vsscanf vsprintf vsnprintf
syn keyword cAnsiFunction vscanf vprintf vfscanf
syn keyword cAnsiFunction vfprintf sscanf sprintf
syn keyword cAnsiFunction snprintf scanf printf
syn keyword cAnsiFunction fscanf fprintf setvbuf
syn keyword cAnsiFunction setbuf freopen fopen
syn keyword cAnsiFunction fflush fclose tmpnam
syn keyword cAnsiFunction tmpfile rename remove
syn keyword cAnsiFunction offsetof va_start va_end
syn keyword cAnsiFunction va_copy va_arg raise signal
syn keyword cAnsiFunction longjmp setjmp isunordered
syn keyword cAnsiFunction islessgreater islessequal isless
syn keyword cAnsiFunction isgreaterequal isgreater fmal
syn keyword cAnsiFunction fmaf fma fminl
syn keyword cAnsiFunction fminf fmin fmaxl
syn keyword cAnsiFunction fmaxf fmax fdiml
syn keyword cAnsiFunction fdimf fdim nextafterxl
syn keyword cAnsiFunction nextafterxf nextafterx nextafterl
syn keyword cAnsiFunction nextafterf nextafter nanl
syn keyword cAnsiFunction nanf nan copysignl
syn keyword cAnsiFunction copysignf copysign remquol
syn keyword cAnsiFunction remquof remquo remainderl
syn keyword cAnsiFunction remainderf remainder fmodl
syn keyword cAnsiFunction fmodf fmod truncl
syn keyword cAnsiFunction truncf trunc llroundl
syn keyword cAnsiFunction llroundf llround lroundl
syn keyword cAnsiFunction lroundf lround roundl
syn keyword cAnsiFunction roundf round llrintl
syn keyword cAnsiFunction llrintf llrint lrintl
syn keyword cAnsiFunction lrintf lrint rintl
syn keyword cAnsiFunction rintf rint nearbyintl
syn keyword cAnsiFunction nearbyintf nearbyint floorl
syn keyword cAnsiFunction floorf floor ceill
syn keyword cAnsiFunction ceilf ceil tgammal
syn keyword cAnsiFunction tgammaf tgamma lgammal
syn keyword cAnsiFunction lgammaf lgamma erfcl
syn keyword cAnsiFunction erfcf erfc erfl
syn keyword cAnsiFunction erff erf sqrtl
syn keyword cAnsiFunction sqrtf sqrt powl
syn keyword cAnsiFunction powf pow hypotl
syn keyword cAnsiFunction hypotf hypot fabsl
syn keyword cAnsiFunction fabsf fabs cbrtl
syn keyword cAnsiFunction cbrtf cbrt scalblnl
syn keyword cAnsiFunction scalblnf scalbln scalbnl
syn keyword cAnsiFunction scalbnf scalbn modfl
syn keyword cAnsiFunction modff modf logbl
syn keyword cAnsiFunction logbf logb log2l
syn keyword cAnsiFunction log2f log2 log1pl
syn keyword cAnsiFunction log1pf log1p log10l
syn keyword cAnsiFunction log10f log10 logl
syn keyword cAnsiFunction logf log ldexpl
syn keyword cAnsiFunction ldexpf ldexp ilogbl
syn keyword cAnsiFunction ilogbf ilogb frexpl
syn keyword cAnsiFunction frexpf frexp expm1l
syn keyword cAnsiFunction expm1f expm1 exp2l
syn keyword cAnsiFunction exp2f exp2 expl
syn keyword cAnsiFunction expf exp tanhl
syn keyword cAnsiFunction tanhf tanh sinhl
syn keyword cAnsiFunction sinhf sinh coshl
syn keyword cAnsiFunction coshf cosh atanhl
syn keyword cAnsiFunction atanhf atanh asinhl
syn keyword cAnsiFunction asinhf asinh acoshl
syn keyword cAnsiFunction acoshf acosh tanl
syn keyword cAnsiFunction tanf tan sinl
syn keyword cAnsiFunction sinf sin cosl
syn keyword cAnsiFunction cosf cos atan2l
syn keyword cAnsiFunction atan2f atan2 atanl
syn keyword cAnsiFunction atanf atan asinl
syn keyword cAnsiFunction asinf asin acosl
syn keyword cAnsiFunction acosf acos signbit
syn keyword cAnsiFunction isnormal isnan isinf
syn keyword cAnsiFunction isfinite fpclassify localeconv
syn keyword cAnsiFunction setlocale wcstoumax wcstoimax
syn keyword cAnsiFunction strtoumax strtoimax feupdateenv
syn keyword cAnsiFunction fesetenv feholdexcept fegetenv
syn keyword cAnsiFunction fesetround fegetround fetestexcept
syn keyword cAnsiFunction fesetexceptflag feraiseexcept fegetexceptflag
syn keyword cAnsiFunction feclearexcept toupper tolower
syn keyword cAnsiFunction isxdigit isupper isspace
syn keyword cAnsiFunction ispunct isprint islower
syn keyword cAnsiFunction isgraph isdigit iscntrl
syn keyword cAnsiFunction isalpha isalnum creall
syn keyword cAnsiFunction crealf creal cprojl
syn keyword cAnsiFunction cprojf cproj conjl
syn keyword cAnsiFunction conjf conj cimagl
syn keyword cAnsiFunction cimagf cimag cargl
syn keyword cAnsiFunction cargf carg csqrtl
syn keyword cAnsiFunction csqrtf csqrt cpowl
syn keyword cAnsiFunction cpowf cpow cabsl
syn keyword cAnsiFunction cabsf cabs clogl
syn keyword cAnsiFunction clogf clog cexpl
syn keyword cAnsiFunction cexpf cexp ctanhl
syn keyword cAnsiFunction ctanhf ctanh csinhl
syn keyword cAnsiFunction csinhf csinh ccoshl
syn keyword cAnsiFunction ccoshf ccosh catanhl
syn keyword cAnsiFunction catanhf catanh casinhl
syn keyword cAnsiFunction casinhf casinh cacoshl
syn keyword cAnsiFunction cacoshf cacosh ctanl
syn keyword cAnsiFunction ctanf ctan csinl
syn keyword cAnsiFunction csinf csin ccosl
syn keyword cAnsiFunction ccosf ccos catanl
syn keyword cAnsiFunction catanf catan casinl
syn keyword cAnsiFunction casinf casin cacosl
syn keyword cAnsiFunction cacosf cacos assert
syn keyword cAnsiFunction UINTMAX_C INTMAX_C UINT64_C
syn keyword cAnsiFunction UINT32_C UINT16_C UINT8_C
syn keyword cAnsiFunction INT64_C INT32_C INT16_C INT8_C
" Common ANSI-standard Names
syn keyword cAnsiName PRId8 PRIi16 PRIo32 PRIu64
syn keyword cAnsiName PRId16 PRIi32 PRIo64 PRIuLEAST8
syn keyword cAnsiName PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16
syn keyword cAnsiName PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32
syn keyword cAnsiName PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64
syn keyword cAnsiName PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8
syn keyword cAnsiName PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16
syn keyword cAnsiName PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32
syn keyword cAnsiName PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64
syn keyword cAnsiName PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX
syn keyword cAnsiName PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR
syn keyword cAnsiName PRIdFAST64 PRIiMAX PRIoPTR PRIx8
syn keyword cAnsiName PRIdMAX PRIiPTR PRIu8 PRIx16
syn keyword cAnsiName PRIdPTR PRIo8 PRIu16 PRIx32
syn keyword cAnsiName PRIi8 PRIo16 PRIu32 PRIx64
syn keyword cAnsiName PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32
syn keyword cAnsiName PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64
syn keyword cAnsiName PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8
syn keyword cAnsiName PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16
syn keyword cAnsiName PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32
syn keyword cAnsiName PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64
syn keyword cAnsiName PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX
syn keyword cAnsiName PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR
syn keyword cAnsiName PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8
syn keyword cAnsiName PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16
syn keyword cAnsiName PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32
syn keyword cAnsiName PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64
syn keyword cAnsiName PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8
syn keyword cAnsiName PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16
syn keyword cAnsiName PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32
syn keyword cAnsiName PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64
syn keyword cAnsiName PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8
syn keyword cAnsiName PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16
syn keyword cAnsiName PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32
syn keyword cAnsiName PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64
syn keyword cAnsiName PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX
syn keyword cAnsiName PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR
syn keyword cAnsiName PRIXMAX SCNiFAST8 SCNuLEAST8
syn keyword cAnsiName PRIXPTR SCNiFAST16 SCNuLEAST16
syn keyword cAnsiName errno environ
syn keyword cAnsiName STDC CX_LIMITED_RANGE
syn keyword cAnsiName STDC FENV_ACCESS
syn keyword cAnsiName STDC FP_CONTRACT
syn keyword cAnsiName and bitor not_eq xor
syn keyword cAnsiName and_eq compl or xor_eq
syn keyword cAnsiName bitand not or_eq
hi def link cAnsiFunction cFunction
hi def link cAnsiName cIdentifier
hi def link cFunction Function
hi def link cIdentifier Identifier
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
hi def link cBoolean Boolean
" -----------------------------------------------------------------------------
" Additional optional highlighting
" -----------------------------------------------------------------------------
" Operators
"syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
"syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
"syn match cOperator "[.!~*&%<>^|=,+-]"
"syn match cOperator "/[^/*=]"me=e-1
"syn match cOperator "/$"
"syn match cOperator "&&\|||"
"syn match cOperator "[][]"
"
"" Preprocs
"syn keyword cDefined defined contained containedin=cDefine
"hi def link cDefined cDefine
" Default highlighting
hi def link cBoolean Boolean
hi def link cAnsiName Identifier
"" Functions
"syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
"syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator
"
"hi def link cUserFunction cFunction
"hi def link cUserFunctionPointer cFunction
"
"" Delimiters
"syn match cDelimiter "[();\\]"
"" foldmethod=syntax fix, courtesy of Ivan Freitas
"syn match cBraces display "[{}]"
" Links
"hi def link cDelimiter Delimiter
" foldmethod=syntax fix, courtesy of Ivan Freitas
"hi def link cBraces Delimiter
" 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

File diff suppressed because it is too large Load Diff

View File

@@ -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

82
after/syntax/idris2.vim Normal file
View File

@@ -0,0 +1,82 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris2') == -1
" This script allows for unicode concealing of certain characters
" For instance -> goes to →
"
" It needs vim >= 7.3, set nocompatible, set enc=utf-8
"
" If you want to turn this on, let g:idris_conceal = 1
if !exists('g:idris_conceal') || !has('conceal') || &enc != 'utf-8'
finish
endif
" vim: set fenc=utf-8:
syntax match idrNiceOperator "\\\ze[[:alpha:][:space:]_([]" conceal cchar=λ
syntax match idrNiceOperator "<-" conceal cchar=
syntax match idrNiceOperator "->" conceal cchar=
syntax match idrNiceOperator "\<sum\>" conceal cchar=
syntax match idrNiceOperator "\<product\>" conceal cchar=
syntax match idrNiceOperator "\<sqrt\>" conceal cchar=
syntax match idrNiceOperator "\<pi\>" conceal cchar=π
syntax match idrNiceOperator "==" conceal cchar=
syntax match idrNiceOperator "\/=" conceal cchar=
let s:extraConceal = 1
let s:doubleArrow = 1
" Set this to 0 to use the more technically correct arrow from bar
" Some windows font don't support some of the characters,
" so if they are the main font, we don't load them :)
if has("win32")
let s:incompleteFont = [ 'Consolas'
\ , 'Lucida Console'
\ , 'Courier New'
\ ]
let s:mainfont = substitute( &guifont, '^\([^:,]\+\).*', '\1', '')
for s:fontName in s:incompleteFont
if s:mainfont ==? s:fontName
let s:extraConceal = 0
break
endif
endfor
endif
if s:extraConceal
syntax match idrNiceOperator "Void" conceal cchar=
" Match greater than and lower than w/o messing with Kleisli composition
syntax match idrNiceOperator "<=\ze[^<]" conceal cchar=
syntax match idrNiceOperator ">=\ze[^>]" conceal cchar=
if s:doubleArrow
syntax match idrNiceOperator "=>" conceal cchar=
else
syntax match idrNiceOperator "=>" conceal cchar=
endif
syntax match idrNiceOperator "=\zs<<" conceal cchar=«
syntax match idrNiceOperator "++" conceal cchar=
syntax match idrNiceOperator "::" conceal cchar=
syntax match idrNiceOperator "-<" conceal cchar=
syntax match idrNiceOperator ">-" conceal cchar=
syntax match idrNiceOperator "-<<" conceal cchar=
syntax match idrNiceOperator ">>-" conceal cchar=
" Only replace the dot, avoid taking spaces around.
syntax match idrNiceOperator /\s\.\s/ms=s+1,me=e-1 conceal cchar=
syntax match idrNiceOperator "\.\." conceal cchar=
syntax match idrNiceOperator "`elem`" conceal cchar=
syntax match idrNiceOperator "`notElem`" conceal cchar=
endif
hi link idrNiceOperator Operator
hi! link Conceal Operator
setlocal conceallevel=2
endif

View File

@@ -1,59 +1,9 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file
"
" Language: javascript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let s:jsx_cpo = &cpo
set cpo&vim
syntax case match
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
if get(g:, 'vim_jsx_pretty_disable_js', 0)
finish
endif
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
if hlexists("jsDebugger") || hlexists("jsNoise") " yuezk/vim-js or pangloss/vim-javascript
syntax cluster jsExpression add=jsxRegion
elseif hlexists("javascriptOpSymbols") " othree/yajs.vim
" refine the javascript line comment
syntax region javascriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
syntax cluster javascriptValue add=jsxRegion
syntax cluster javascriptNoReserved add=jsxElement,jsxTag
else " build-in javascript syntax
" refine the javascript line comment
syntax region javaScriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
" refine the template string syntax
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr
" add a javaScriptBlock group for build-in syntax
syntax region javaScriptBlock
\ matchgroup=javaScriptBraces
\ start="{"
\ end="}"
\ contained
\ extend
\ contains=javaScriptBlock,@javaScriptEmbededExpr,javaScript.*
\ fold
syntax cluster javaScriptEmbededExpr add=jsxRegion,javaScript.*
endif
runtime syntax/jsx_pretty.vim
let b:current_syntax = 'javascript.jsx'
let &cpo = s:jsx_cpo
unlet s:jsx_cpo
source <sfile>:h/jsx.vim
endif

View File

@@ -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

View File

@@ -0,0 +1,26 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript-sql') == -1
" Vim plugin
" Language: JavaScript
" Maintainer: Ian Langworth <ian@langworth.com>
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
exec 'syntax include @SQLSyntax syntax/' . g:javascript_sql_dialect . '.vim'
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
syntax region sqlTemplateString start=+`+ skip=+\\\(`\|$\)+ end=+`+ contains=@SQLSyntax,jsTemplateExpression,jsSpecial extend
exec 'syntax match sqlTaggedTemplate +\%(SQL\)\%(`\)\@=+ nextgroup=sqlTemplateString'
hi def link sqlTemplateString jsTemplateString
hi def link sqlTaggedTemplate jsTaggedTemplate
syn cluster jsExpression add=sqlTaggedTemplate
syn cluster sqlTaggedTemplate add=sqlTemplateString
endif

View File

@@ -1,5 +1,5 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/javascript.vim
source <sfile>:h/jsx.vim
endif

59
after/syntax/jsx.vim Normal file
View File

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

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)

View File

@@ -32,6 +32,6 @@ if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
syntax region graphqlMultilineString matchgroup=reasonMultilineString start=+graphql\_s*\zs{|+ end=+|}+ contains=@GraphQLSyntax,reasonEscape,reasonEscapeUnicode,reasonEscapeError,reasonStringContinuation keepend
syntax region graphqlExtensionPoint matchgroup=Noise start=+\[%graphql\_s*{|+lc=10 end=+|}\_s*]+he=s+1 contains=@GraphQLSyntax keepend
endif

View File

@@ -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

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file

View File

@@ -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.

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/tsx.vim

View File

@@ -1,65 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1
" To make this file do stuff, add something like the following (without the
" leading ") to your ~/.vimrc:
" au BufNewFile,BufRead *.yaml,*.yml so ~/src/PyYaml/YAML.vim
" Vim syntax/macro file
" Language: YAML
" Author: Igor Vergeichik <iverg@mail.ru>
" Sponsor: Tom Sawyer <transami@transami.net>
" Stayven: Ryan King <jking@panoptic.com>
" Copyright (c) 2002 Tom Saywer
" Add an item to a gangly list:
"map , o<bs><bs><bs><bs>-<esc>o
" Convert to Canonical form:
"map \c :%!python -c 'from yaml.redump import redump; import sys; print redump(sys.stdin.read()).rstrip()'
if version < 600
syntax clear
endif
syntax clear
syn match yamlInline "[\[\]\{\}]"
syn match yamlBlock "[>|]\d\?[+-]"
syn region yamlComment start="\#" end="$"
syn match yamlIndicator "#YAML:\S\+"
syn region yamlString start="\(^\|\s\|\[\|\,\|\-\)\@<='" end="'" skip="\\'"
syn region yamlString start='"' end='"' skip='\\"' contains=yamlEscape
syn region yamlString matchgroup=yamlBlock start=/[>|]\s*\n\+\z(\s\+\)\S/rs=s+1 skip=/^\%(\z1\S\|^$\)/ end=/^\z1\@!.*/me=s-1
syn region yamlString matchgroup=yamlBlock start=/[>|]\(\d\|[+-]\)\s*\n\+\z(\s\+\)\S/rs=s+2 skip=/^\%(\z1\S\|^$\)/ end=/^\z1\@!.*/me=s-1
syn region yamlString matchgroup=yamlBlock start=/[>|]\d\(\d\|[+-]\)\s*\n\+\z(\s\+\)\S/rs=s+3 skip=/^\%(\z1\S\|^$\)/ end=/^\z1\@!.*/me=s-1
syn match yamlEscape +\\[abfnrtv'"\\]+ contained
syn match yamlEscape "\\\o\o\=\o\=" contained
syn match yamlEscape "\\x\x\+" contained
syn match yamlType "!\S\+"
syn keyword yamlConstant NULL Null null NONE None none NIL Nil nil
syn keyword yamlConstant TRUE True true YES Yes yes ON On on
syn keyword yamlConstant FALSE False false NO No no OFF Off off
syn match yamlKey "^\s*\zs[^ \t\"\'#]\+\ze\s*:"
syn match yamlKey "^\s*-\s*\zs[^ \t\"\'#]\+\ze\s*:"
syn match yamlAnchor "&\S\+"
syn match yamlAlias "*\S\+"
" Setup the highlighting links
hi link yamlConstant Keyword
hi link yamlIndicator PreCondit
hi link yamlAnchor Function
hi link yamlAlias Function
hi link yamlKey Identifier
hi link yamlType Type
hi link yamlComment Comment
hi link yamlInline Operator
hi link yamlBlock Operator
hi link yamlString String
hi link yamlEscape Special
endif

641
autoload/ada.vim Normal file
View File

@@ -0,0 +1,641 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ada') == -1
"------------------------------------------------------------------------------
" Description: Perform Ada specific completion & tagging.
" Language: Ada (2005)
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Mathias Brousset <mathiasb17@gmail.com>
" Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com>
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2017-01-31 20:20:05 +0200 (Mon, 01 Jan 2017) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
" History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK ' should not be in iskeyword.
" 16.07.2006 MK Ada-Mode as vim-ball
" 02.10.2006 MK Better folding.
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" 08.07.2007 TV fix mapleader problems.
" 09.05.2007 MK Session just won't work no matter how much
" tweaking is done
" 19.09.2007 NO still some mapleader problems
" 31.01.2017 MB fix more mapleader problems
" Help Page: ft-ada-functions
"------------------------------------------------------------------------------
if version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
" Section: Constants {{{1
"
let g:ada#DotWordRegex = '\a\w*\(\_s*\.\_s*\a\w*\)*'
let g:ada#WordRegex = '\a\w*'
let g:ada#Comment = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*"
let g:ada#Keywords = []
" Section: g:ada#Keywords {{{1
"
" Section: add Ada keywords {{{2
"
for Item in ['abort', 'else', 'new', 'return', 'abs', 'elsif', 'not', 'reverse', 'abstract', 'end', 'null', 'accept', 'entry', 'select', 'access', 'exception', 'of', 'separate', 'aliased', 'exit', 'or', 'subtype', 'all', 'others', 'synchronized', 'and', 'for', 'out', 'array', 'function', 'overriding', 'tagged', 'at', 'task', 'generic', 'package', 'terminate', 'begin', 'goto', 'pragma', 'then', 'body', 'private', 'type', 'if', 'procedure', 'case', 'in', 'protected', 'until', 'constant', 'interface', 'use', 'is', 'raise', 'declare', 'range', 'when', 'delay', 'limited', 'record', 'while', 'delta', 'loop', 'rem', 'with', 'digits', 'renames', 'do', 'mod', 'requeue', 'xor']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'keyword',
\ 'info': 'Ada keyword.',
\ 'kind': 'k',
\ 'icase': 1}]
endfor
" Section: GNAT Project Files {{{3
"
if exists ('g:ada_with_gnat_project_files')
for Item in ['project']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'keyword',
\ 'info': 'GNAT projectfile keyword.',
\ 'kind': 'k',
\ 'icase': 1}]
endfor
endif
" Section: add standart exception {{{2
"
for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
\ 'info': 'Ada standart exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
" Section: add GNAT exception {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['Assert_Failure']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
\ 'info': 'GNAT exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
endif
" Section: add Ada buildin types {{{2
"
for Item in ['Boolean', 'Integer', 'Natural', 'Positive', 'Float', 'Character', 'Wide_Character', 'Wide_Wide_Character', 'String', 'Wide_String', 'Wide_Wide_String', 'Duration']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'type',
\ 'info': 'Ada buildin type.',
\ 'kind': 't',
\ 'icase': 1}]
endfor
" Section: add GNAT buildin types {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['Short_Integer', 'Short_Short_Integer', 'Long_Integer', 'Long_Long_Integer', 'Short_Float', 'Short_Short_Float', 'Long_Float', 'Long_Long_Float']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'type',
\ 'info': 'GNAT buildin type.',
\ 'kind': 't',
\ 'icase': 1}]
endfor
endif
" Section: add Ada Attributes {{{2
"
for Item in ['''Access', '''Address', '''Adjacent', '''Aft', '''Alignment', '''Base', '''Bit_Order', '''Body_Version', '''Callable', '''Caller', '''Ceiling', '''Class', '''Component_Size', '''Compose', '''Constrained', '''Copy_Sign', '''Count', '''Definite', '''Delta', '''Denorm', '''Digits', '''Emax', '''Exponent', '''External_Tag', '''Epsilon', '''First', '''First_Bit', '''Floor', '''Fore', '''Fraction', '''Identity', '''Image', '''Input', '''Large', '''Last', '''Last_Bit', '''Leading_Part', '''Length', '''Machine', '''Machine_Emax', '''Machine_Emin', '''Machine_Mantissa', '''Machine_Overflows', '''Machine_Radix', '''Machine_Rounding', '''Machine_Rounds', '''Mantissa', '''Max', '''Max_Size_In_Storage_Elements', '''Min', '''Mod', '''Model', '''Model_Emin', '''Model_Epsilon', '''Model_Mantissa', '''Model_Small', '''Modulus', '''Output', '''Partition_ID', '''Pos', '''Position', '''Pred', '''Priority', '''Range', '''Read', '''Remainder', '''Round', '''Rounding', '''Safe_Emax', '''Safe_First', '''Safe_Large', '''Safe_Last', '''Safe_Small', '''Scale', '''Scaling', '''Signed_Zeros', '''Size', '''Small', '''Storage_Pool', '''Storage_Size', '''Stream_Size', '''Succ', '''Tag', '''Terminated', '''Truncation', '''Unbiased_Rounding', '''Unchecked_Access', '''Val', '''Valid', '''Value', '''Version', '''Wide_Image', '''Wide_Value', '''Wide_Wide_Image', '''Wide_Wide_Value', '''Wide_Wide_Width', '''Wide_Width', '''Width', '''Write']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'attribute',
\ 'info': 'Ada attribute.',
\ 'kind': 'a',
\ 'icase': 1}]
endfor
" Section: add GNAT Attributes {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['''Abort_Signal', '''Address_Size', '''Asm_Input', '''Asm_Output', '''AST_Entry', '''Bit', '''Bit_Position', '''Code_Address', '''Default_Bit_Order', '''Elaborated', '''Elab_Body', '''Elab_Spec', '''Emax', '''Enum_Rep', '''Epsilon', '''Fixed_Value', '''Has_Access_Values', '''Has_Discriminants', '''Img', '''Integer_Value', '''Machine_Size', '''Max_Interrupt_Priority', '''Max_Priority', '''Maximum_Alignment', '''Mechanism_Code', '''Null_Parameter', '''Object_Size', '''Passed_By_Reference', '''Range_Length', '''Storage_Unit', '''Target_Name', '''Tick', '''To_Address', '''Type_Class', '''UET_Address', '''Unconstrained_Array', '''Universal_Literal_String', '''Unrestricted_Access', '''VADS_Size', '''Value_Size', '''Wchar_T_Size', '''Word_Size']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'attribute',
\ 'info': 'GNAT attribute.',
\ 'kind': 'a',
\ 'icase': 1}]
endfor
endif
" Section: add Ada Pragmas {{{2
"
for Item in ['All_Calls_Remote', 'Assert', 'Assertion_Policy', 'Asynchronous', 'Atomic', 'Atomic_Components', 'Attach_Handler', 'Controlled', 'Convention', 'Detect_Blocking', 'Discard_Names', 'Elaborate', 'Elaborate_All', 'Elaborate_Body', 'Export', 'Import', 'Inline', 'Inspection_Point', 'Interface (Obsolescent)', 'Interrupt_Handler', 'Interrupt_Priority', 'Linker_Options', 'List', 'Locking_Policy', 'Memory_Size (Obsolescent)', 'No_Return', 'Normalize_Scalars', 'Optimize', 'Pack', 'Page', 'Partition_Elaboration_Policy', 'Preelaborable_Initialization', 'Preelaborate', 'Priority', 'Priority_Specific_Dispatching', 'Profile', 'Pure', 'Queueing_Policy', 'Relative_Deadline', 'Remote_Call_Interface', 'Remote_Types', 'Restrictions', 'Reviewable', 'Shared (Obsolescent)', 'Shared_Passive', 'Storage_Size', 'Storage_Unit (Obsolescent)', 'Suppress', 'System_Name (Obsolescent)', 'Task_Dispatching_Policy', 'Unchecked_Union', 'Unsuppress', 'Volatile', 'Volatile_Components']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'pragma',
\ 'info': 'Ada pragma.',
\ 'kind': 'p',
\ 'icase': 1}]
endfor
" Section: add GNAT Pragmas {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['Abort_Defer', 'Ada_83', 'Ada_95', 'Ada_05', 'Annotate', 'Ast_Entry', 'C_Pass_By_Copy', 'Comment', 'Common_Object', 'Compile_Time_Warning', 'Complex_Representation', 'Component_Alignment', 'Convention_Identifier', 'CPP_Class', 'CPP_Constructor', 'CPP_Virtual', 'CPP_Vtable', 'Debug', 'Elaboration_Checks', 'Eliminate', 'Export_Exception', 'Export_Function', 'Export_Object', 'Export_Procedure', 'Export_Value', 'Export_Valued_Procedure', 'Extend_System', 'External', 'External_Name_Casing', 'Finalize_Storage_Only', 'Float_Representation', 'Ident', 'Import_Exception', 'Import_Function', 'Import_Object', 'Import_Procedure', 'Import_Valued_Procedure', 'Initialize_Scalars', 'Inline_Always', 'Inline_Generic', 'Interface_Name', 'Interrupt_State', 'Keep_Names', 'License', 'Link_With', 'Linker_Alias', 'Linker_Section', 'Long_Float', 'Machine_Attribute', 'Main_Storage', 'Obsolescent', 'Passive', 'Polling', 'Profile_Warnings', 'Propagate_Exceptions', 'Psect_Object', 'Pure_Function', 'Restriction_Warnings', 'Source_File_Name', 'Source_File_Name_Project', 'Source_Reference', 'Stream_Convert', 'Style_Checks', 'Subtitle', 'Suppress_All', 'Suppress_Exception_Locations', 'Suppress_Initialization', 'Task_Info', 'Task_Name', 'Task_Storage', 'Thread_Body', 'Time_Slice', 'Title', 'Unimplemented_Unit', 'Universal_Data', 'Unreferenced', 'Unreserve_All_Interrupts', 'Use_VADS_Size', 'Validity_Checks', 'Warnings', 'Weak_External']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'pragma',
\ 'info': 'GNAT pragma.',
\ 'kind': 'p',
\ 'icase': 1}]
endfor
endif
" 1}}}
" Section: g:ada#Ctags_Kinds {{{1
"
let g:ada#Ctags_Kinds = {
\ 'P': ["packspec", "package specifications"],
\ 'p': ["package", "packages"],
\ 'T': ["typespec", "type specifications"],
\ 't': ["type", "types"],
\ 'U': ["subspec", "subtype specifications"],
\ 'u': ["subtype", "subtypes"],
\ 'c': ["component", "record type components"],
\ 'l': ["literal", "enum type literals"],
\ 'V': ["varspec", "variable specifications"],
\ 'v': ["variable", "variables"],
\ 'f': ["formal", "generic formal parameters"],
\ 'n': ["constant", "constants"],
\ 'x': ["exception", "user defined exceptions"],
\ 'R': ["subprogspec", "subprogram specifications"],
\ 'r': ["subprogram", "subprograms"],
\ 'K': ["taskspec", "task specifications"],
\ 'k': ["task", "tasks"],
\ 'O': ["protectspec", "protected data specifications"],
\ 'o': ["protected", "protected data"],
\ 'E': ["entryspec", "task/protected data entry specifications"],
\ 'e': ["entry", "task/protected data entries"],
\ 'b': ["label", "labels"],
\ 'i': ["identifier", "loop/declare identifiers"],
\ 'a': ["autovar", "automatic variables"],
\ 'y': ["annon", "loops and blocks with no identifier"]}
" Section: ada#Word (...) {{{1
"
" Extract current Ada word across multiple lines
" AdaWord ([line, column])\
"
function ada#Word (...)
if a:0 > 1
let l:Line_Nr = a:1
let l:Column_Nr = a:2 - 1
else
let l:Line_Nr = line('.')
let l:Column_Nr = col('.') - 1
endif
let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
" Cope with tag searching for items in comments; if we are, don't loop
" backards looking for previous lines
if l:Column_Nr > strlen(l:Line)
" We were in a comment
let l:Line = getline(l:Line_Nr)
let l:Search_Prev_Lines = 0
else
let l:Search_Prev_Lines = 1
endif
" Go backwards until we find a match (Ada ID) that *doesn't* include our
" location - i.e., the previous ID. This is because the current 'correct'
" match will toggle matching/not matching as we traverse characters
" backwards. Thus, we have to find the previous unrelated match, exclude
" it, then use the next full match (ours).
" Remember to convert vim column 'l:Column_Nr' [1..n] to string offset [0..(n-1)]
" ... but start, here, one after the required char.
let l:New_Column = l:Column_Nr + 1
while 1
let l:New_Column = l:New_Column - 1
if l:New_Column < 0
" Have to include previous l:Line from file
let l:Line_Nr = l:Line_Nr - 1
if l:Line_Nr < 1 || !l:Search_Prev_Lines
" Start of file or matching in a comment
let l:Line_Nr = 1
let l:New_Column = 0
let l:Our_Match = match (l:Line, g:ada#WordRegex )
break
endif
" Get previous l:Line, and prepend it to our search string
let l:New_Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
let l:New_Column = strlen (l:New_Line) - 1
let l:Column_Nr = l:Column_Nr + l:New_Column
let l:Line = l:New_Line . l:Line
endif
" Check to see if this is a match excluding 'us'
let l:Match_End = l:New_Column +
\ matchend (strpart (l:Line,l:New_Column), g:ada#WordRegex ) - 1
if l:Match_End >= l:New_Column &&
\ l:Match_End < l:Column_Nr
" Yes
let l:Our_Match = l:Match_End+1 +
\ match (strpart (l:Line,l:Match_End+1), g:ada#WordRegex )
break
endif
endwhile
" Got anything?
if l:Our_Match < 0
return ''
else
let l:Line = strpart (l:Line, l:Our_Match)
endif
" Now simply add further lines until the match gets no bigger
let l:Match_String = matchstr (l:Line, g:ada#WordRegex)
let l:Last_Line = line ('$')
let l:Line_Nr = line ('.') + 1
while l:Line_Nr <= l:Last_Line
let l:Last_Match = l:Match_String
let l:Line = l:Line .
\ substitute (getline (l:Line_Nr), g:ada#Comment, '', '')
let l:Match_String = matchstr (l:Line, g:ada#WordRegex)
if l:Match_String == l:Last_Match
break
endif
endwhile
" Strip whitespace & return
return substitute (l:Match_String, '\s\+', '', 'g')
endfunction ada#Word
" Section: ada#List_Tag (...) {{{1
"
" List tags in quickfix window
"
function ada#List_Tag (...)
if a:0 > 1
let l:Tag_Word = ada#Word (a:1, a:2)
elseif a:0 > 0
let l:Tag_Word = a:1
else
let l:Tag_Word = ada#Word ()
endif
echo "Searching for" l:Tag_Word
let l:Pattern = '^' . l:Tag_Word . '$'
let l:Tag_List = taglist (l:Pattern)
let l:Error_List = []
"
" add symbols
"
for Tag_Item in l:Tag_List
if l:Tag_Item['kind'] == ''
let l:Tag_Item['kind'] = 's'
endif
let l:Error_List += [
\ l:Tag_Item['filename'] . '|' .
\ l:Tag_Item['cmd'] . '|' .
\ l:Tag_Item['kind'] . "\t" .
\ l:Tag_Item['name'] ]
endfor
set errorformat=%f\|%l\|%m
cexpr l:Error_List
cwindow
endfunction ada#List_Tag
" Section: ada#Jump_Tag (Word, Mode) {{{1
"
" Word tag - include '.' and if Ada make uppercase
"
function ada#Jump_Tag (Word, Mode)
if a:Word == ''
" Get current word
let l:Word = ada#Word()
if l:Word == ''
throw "NOT_FOUND: no identifier found."
endif
else
let l:Word = a:Word
endif
echo "Searching for " . l:Word
try
execute a:Mode l:Word
catch /.*:E426:.*/
let ignorecase = &ignorecase
set ignorecase
execute a:Mode l:Word
let &ignorecase = ignorecase
endtry
return
endfunction ada#Jump_Tag
" Section: ada#Insert_Backspace () {{{1
"
" Backspace at end of line after auto-inserted commentstring '-- ' wipes it
"
function ada#Insert_Backspace ()
let l:Line = getline ('.')
if col ('.') > strlen (l:Line) &&
\ match (l:Line, '-- $') != -1 &&
\ match (&comments,'--') != -1
return "\<bs>\<bs>\<bs>"
else
return "\<bs>"
endif
return
endfunction ada#InsertBackspace
" Section: Insert Completions {{{1
"
" Section: ada#User_Complete(findstart, base) {{{2
"
" This function is used for the 'complete' option.
"
function! ada#User_Complete(findstart, base)
if a:findstart == 1
"
" locate the start of the word
"
let line = getline ('.')
let start = col ('.') - 1
while start > 0 && line[start - 1] =~ '\i\|'''
let start -= 1
endwhile
return start
else
"
" look up matches
"
let l:Pattern = '^' . a:base . '.*$'
"
" add keywords
"
for Tag_Item in g:ada#Keywords
if l:Tag_Item['word'] =~? l:Pattern
if complete_add (l:Tag_Item) == 0
return []
endif
if complete_check ()
return []
endif
endif
endfor
return []
endif
endfunction ada#User_Complete
" Section: ada#Completion (cmd) {{{2
"
" Word completion (^N/^R/^X^]) - force '.' inclusion
function ada#Completion (cmd)
set iskeyword+=46
return a:cmd . "\<C-R>=ada#Completion_End ()\<CR>"
endfunction ada#Completion
" Section: ada#Completion_End () {{{2
"
function ada#Completion_End ()
set iskeyword-=46
return ''
endfunction ada#Completion_End
" Section: ada#Create_Tags {{{1
"
function ada#Create_Tags (option)
if a:option == 'file'
let l:Filename = fnamemodify (bufname ('%'), ':p')
elseif a:option == 'dir'
let l:Filename =
\ fnamemodify (bufname ('%'), ':p:h') . "*.ada " .
\ fnamemodify (bufname ('%'), ':p:h') . "*.adb " .
\ fnamemodify (bufname ('%'), ':p:h') . "*.ads"
else
let l:Filename = a:option
endif
execute '!ctags --excmd=number ' . l:Filename
endfunction ada#Create_Tags
" Section: ada#Switch_Session {{{1
"
function ada#Switch_Session (New_Session)
"
" you should not save to much date into the seession since they will
" be sourced
"
let l:sessionoptions=&sessionoptions
try
set sessionoptions=buffers,curdir,folds,globals,resize,slash,tabpages,tabpages,unix,winpos,winsize
if a:New_Session != v:this_session
"
" We actually got a new session - otherwise there
" is nothing to do.
"
if strlen (v:this_session) > 0
execute 'mksession! ' . v:this_session
endif
let v:this_session = a:New_Session
"if filereadable (v:this_session)
"execute 'source ' . v:this_session
"endif
augroup ada_session
autocmd!
autocmd VimLeavePre * execute 'mksession! ' . v:this_session
augroup END
"if exists ("g:Tlist_Auto_Open") && g:Tlist_Auto_Open
"TlistOpen
"endif
endif
finally
let &sessionoptions=l:sessionoptions
endtry
return
endfunction ada#Switch_Session
" Section: GNAT Pretty Printer folding {{{1
"
if exists('g:ada_folding') && g:ada_folding[0] == 'g'
"
" Lines consisting only of ')' ';' are due to a gnat pretty bug and
" have the same level as the line above (can't happen in the first
" line).
"
let s:Fold_Collate = '^\([;)]*$\|'
"
" some lone statements are folded with the line above
"
if stridx (g:ada_folding, 'i') >= 0
let s:Fold_Collate .= '\s\+\<is\>$\|'
endif
if stridx (g:ada_folding, 'b') >= 0
let s:Fold_Collate .= '\s\+\<begin\>$\|'
endif
if stridx (g:ada_folding, 'p') >= 0
let s:Fold_Collate .= '\s\+\<private\>$\|'
endif
if stridx (g:ada_folding, 'x') >= 0
let s:Fold_Collate .= '\s\+\<exception\>$\|'
endif
" We also handle empty lines and
" comments here.
let s:Fold_Collate .= '--\)'
function ada#Pretty_Print_Folding (Line) " {{{2
let l:Text = getline (a:Line)
if l:Text =~ s:Fold_Collate
"
" fold with line above
"
let l:Level = "="
elseif l:Text =~ '^\s\+('
"
" gnat outdents a line which stards with a ( by one characters so
" that parameters which follow are aligned.
"
let l:Level = (indent (a:Line) + 1) / &shiftwidth
else
let l:Level = indent (a:Line) / &shiftwidth
endif
return l:Level
endfunction ada#Pretty_Print_Folding " }}}2
endif
" Section: Options and Menus {{{1
"
" Section: ada#Switch_Syntax_Options {{{2
"
function ada#Switch_Syntax_Option (option)
syntax off
if exists ('g:ada_' . a:option)
unlet g:ada_{a:option}
echo a:option . 'now off'
else
let g:ada_{a:option}=1
echo a:option . 'now on'
endif
syntax on
endfunction ada#Switch_Syntax_Option
" Section: ada#Map_Menu {{{2
"
function ada#Map_Menu (Text, Keys, Command)
if a:Keys[0] == ':'
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . a:Keys .
\ " :" . a:Command . "<CR>"
execute
\ "command -buffer " .
\ a:Keys[1:] .
\" :" . a:Command . "<CR>"
elseif a:Keys[0] == '<'
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . a:Keys .
\ " :" . a:Command . "<CR>"
execute
\ "nnoremap <buffer> " .
\ a:Keys .
\" :" . a:Command . "<CR>"
execute
\ "inoremap <buffer> " .
\ a:Keys .
\" <C-O>:" . a:Command . "<CR>"
else
if exists("g:mapleader")
let l:leader = g:mapleader
else
let l:leader = '\'
endif
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
\ " :" . a:Command . "<CR>"
execute
\ "nnoremap <buffer>" .
\ " <Leader>a" . a:Keys .
\" :" . a:Command
execute
\ "inoremap <buffer>" .
\ " <Leader>a" . a:Keys .
\" <C-O>:" . a:Command
endif
return
endfunction
" Section: ada#Map_Popup {{{2
"
function ada#Map_Popup (Text, Keys, Command)
if exists("g:mapleader")
let l:leader = g:mapleader
else
let l:leader = '\'
endif
execute
\ "50amenu " .
\ "PopUp." . escape(a:Text, ' ') .
\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
\ " :" . a:Command . "<CR>"
call ada#Map_Menu (a:Text, a:Keys, a:Command)
return
endfunction ada#Map_Popup
" }}}1
lockvar g:ada#WordRegex
lockvar g:ada#DotWordRegex
lockvar g:ada#Comment
lockvar! g:ada#Keywords
lockvar! g:ada#Ctags_Kinds
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
endif

View File

@@ -1,7 +1,8 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
function! cargo#quickfix#CmdPre() abort
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo'
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' &&
\ &makeprg =~ '\V\^cargo\ \.\*'
" Preserve the current directory, and 'lcd' to the nearest Cargo file.
let b:rust_compiler_cargo_qf_has_lcd = haslocaldir()
let b:rust_compiler_cargo_qf_prev_cd = getcwd()

View File

@@ -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 . '\|$\)'
@@ -1450,7 +1454,7 @@ fu! csv#SumColumn(list) "{{{3
let b:csv_result = '0'
return 0
else
let sum = has("float") ? 0.0 : 0
let sum = 0.0
for item in a:list
if empty(item)
continue
@@ -1460,33 +1464,25 @@ fu! csv#SumColumn(list) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr = '0'
endtry
let sum += (has("float") ? str2float(nr) : (nr + 0))
let sum += str2float(nr)
endfor
if has("float")
let b:csv_result = string(float2nr(sum))
if float2nr(sum) == sum
return float2nr(sum)
else
return printf("%.2f", sum)
endif
endif
let b:csv_result = string(sum)
return sum
let b:csv_result = sum
return printf("%.2f", sum)
endif
endfu
fu! csv#AvgColumn(list) "{{{3
if empty(a:list)
let b:csv_result = '0'
return 0
return 0.0
else
let cnt = 0
let sum = has("float") ? 0.0 : 0
let sum = 0.0
for item in a:list
if empty(item)
continue
@@ -1496,30 +1492,25 @@ fu! csv#AvgColumn(list) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr ='0'
endtry
let sum += (has("float") ? str2float(nr) : (nr + 0))
let sum += str2float(nr)
let cnt += 1
endfor
if has("float")
let b:csv_result = printf("%.2f", sum/cnt)
return str2float(b:csv_result)
else
let b:csv_result = printf("%s", sum/cnt)
return b:csv_result + 0
endif
let b:csv_result = printf("%.2f", sum/cnt)
return sum/cnt
endif
endfu
fu! csv#VarianceColumn(list, is_population) "{{{3
if empty(a:list)
return 0
return 0.0
else
let cnt = 0
let sum = has("float") ? 0.0 : 0
let sum = 0.0
let avg = csv#AvgColumn(a:list)
for item in a:list
if empty(item)
@@ -1530,64 +1521,64 @@ fu! csv#VarianceColumn(list, is_population) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr = '0'
endtry
let sum += pow((has("float") ? (str2float(nr)-avg) : ((nr + 0)-avg)), 2)
let nr = str2float(nr)
let sum += pow((nr-avg), 2)
let cnt += 1
endfor
if(a:is_population == 0)
let cnt = cnt-1
endif
if has("float")
let b:csv_result = printf("%." . get(b:, 'csv_accuracy', get(g:, 'csv_accuracy', 2)) . "f", sum/cnt)
return b:csv_result
else
let b:csv_result = printf("%s", sum/cnt)
return sum/(cnt)
endif
let b:csv_result = sum/cnt
return b:csv_result
endif
endfu
fu! csv#SmplVarianceColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
return csv#VarianceColumn(a:list, 0)
endif
endfu
fu! csv#PopVarianceColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
return csv#VarianceColumn(a:list, 1)
endif
endfu
fu! csv#SmplStdDevColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
let result = sqrt(str2float(csv#VarianceColumn(a:list, 0)))
let b:csv_result = string(result)
let result = sqrt(csv#VarianceColumn(a:list, 0))
let b:csv_result = result
return result
endif
endfu
fu! csv#PopStdDevColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
let result = sqrt(str2float(csv#VarianceColumn(a:list, 1)))
let b:csv_result = string(result)
let result = sqrt(csv#VarianceColumn(a:list, 1))
let b:csv_result = result
return result
endif
endfu
@@ -1610,13 +1601,13 @@ fu! csv#MaxColumn(list) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr = '0'
endtry
call add(result, has("float") ? str2float(nr) : nr+0)
call add(result, str2float(nr))
endfor
let result = sort(result, s:csv_numeric_sort ? 'n' : 'csv#CSVSortValues')
let ind = len(result) > 9 ? 9 : len(result)
@@ -1995,10 +1986,7 @@ fu! csv#AnalyzeColumn(...) "{{{3
call filter(res, 'v:val =~ ''^''.join(max_items, ''\|'').''$''')
endif
if has("float")
let title="Nr\tCount\t % \tValue"
else
let title="Nr\tCount\tValue"
let title="Nr\tCount\t % \tValue"
endif
echohl Title
echo printf("%s", title)
@@ -2014,12 +2002,8 @@ fu! csv#AnalyzeColumn(...) "{{{3
else
let k = key
endif
if has("float")
echo printf("%02d\t%02d\t%2.0f%%\t%.50s", i, res[key],
\ ((res[key] + 0.0)/qty)*100, k)
else
echo printf("%02d\t%02d\t%.50s", i, res[key], k)
endif
echo printf("%02d\t%02d\t%2.0f%%\t%.50s", i, res[key],
\ ((res[key] + 0.0)/qty)*100, k)
call remove(res,key)
let i+=1
else
@@ -2950,6 +2934,11 @@ fu! csv#EvalColumn(nr, func, first, last, ...) range "{{{3
call csv#Warn("File is no CSV file!")
return
endif
" Need a Vim with floating point feature
if !has("float")
call csv#Warn("Your Vim is missing floating point feature!")
return
endif
let save = winsaveview()
call csv#CheckHeaderLine()
let nr = matchstr(a:nr, '^\-\?\d\+')

View File

@@ -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

View 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

View File

@@ -55,6 +55,10 @@ function! go#config#TermCloseOnExit() abort
return get(g:, 'go_term_close_on_exit', 1)
endfunction
function! go#config#TermReuse() abort
return get(g:, 'go_term_reuse', 0)
endfunction
function! go#config#SetTermCloseOnExit(value) abort
let g:go_term_close_on_exit = a:value
endfunction
@@ -262,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
@@ -548,6 +562,14 @@ function! go#config#GoplsLocal() abort
return get(g:, 'go_gopls_local', v:null)
endfunction
function! go#config#GoplsGofumpt() abort
return get(g:, 'go_gopls_gofumpt', v:null)
endfunction
function! go#config#GoplsSettings() abort
return get(g:, 'go_gopls_settings', v:null)
endfunction
function! go#config#GoplsEnabled() abort
return get(g:, 'go_gopls_enabled', 1)
endfunction
@@ -560,6 +582,10 @@ function! go#config#GoplsOptions() abort
return get(g:, 'go_gopls_options', ['-remote=auto'])
endfunction
function! go#config#FillStructMode() abort
return get(g:, 'go_fillstruct_mode', 'fillstruct')
endfunction
" Set the default value. A value of "1" is a shortcut for this, for
" compatibility reasons.
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
function! jsx_pretty#comment#update_commentstring(original)
let line = getline(".")

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if exists('*shiftwidth')
function! s:sw()

View 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
View 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

View 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

View File

@@ -0,0 +1,624 @@
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',
\ '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': '',
\ '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',
\ '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,.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,Rantfile,.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*',
\ '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*',
\}
func! polyglot#sleuth#GlobForFiletype(type)
return get(s:globs, a:type, '')
endfunc

View File

@@ -65,12 +65,12 @@ endfunction
function! s:RustfmtConfigOptions()
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
if l:rustfmt_toml !=# ''
return '--config-path '.fnamemodify(l:rustfmt_toml, ":p")
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
endif
let l:_rustfmt_toml = findfile('.rustfmt.toml', expand('%:p:h') . ';')
if l:_rustfmt_toml !=# ''
return '--config-path '.fnamemodify(l:_rustfmt_toml, ":p")
return '--config-path '.shellescape(fnamemodify(l:_rustfmt_toml, ":p"))
endif
" Default to edition 2018 in case no rustfmt.toml was found.
@@ -109,7 +109,7 @@ function! s:DeleteLines(start, end) abort
endfunction
function! s:RunRustfmt(command, tmpname, from_writepre)
mkview!
let l:view = winsaveview()
let l:stderr_tmpname = tempname()
call writefile([], l:stderr_tmpname)
@@ -215,7 +215,7 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
lwindow
endif
silent! loadview
call winrestview(l:view)
endfunction
function! rustfmt#FormatRange(line1, line2)

View File

@@ -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
View 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

42
compiler/ant.vim Normal file
View File

@@ -0,0 +1,42 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ant') == -1
" Vim Compiler File
" Compiler: ant
" Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Mi, 13 Apr 2005 22:50:07 CEST
if exists("current_compiler")
finish
endif
let current_compiler = "ant"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo&vim
CompilerSet makeprg=ant
" first line:
" ant with jikes +E, which assumes the following
" two property lines in your 'build.xml':
"
" <property name = "build.compiler" value = "jikes"/>
" <property name = "build.compiler.emacs" value = "true"/>
"
" second line:
" ant with javac
"
" note that this will work also for tasks like [wtkbuild]
"
CompilerSet errorformat=\ %#[%.%#]\ %#%f:%l:%v:%*\\d:%*\\d:\ %t%[%^:]%#:%m,
\%A\ %#[%.%#]\ %f:%l:\ %m,%-Z\ %#[%.%#]\ %p^,%C\ %#[%.%#]\ %#%m
" ,%-C%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
endif

26
compiler/bdf.vim Normal file
View 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
View 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
View 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

34
compiler/sass.vim Normal file
View 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
View 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
View 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
View 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

View File

@@ -969,8 +969,7 @@ The result is also available in the buffer-local variable `b:csv_result`.
See also |csv-aggregate-functions|
*MinCol_CSV*
3.27 Maximum/Minimum value of a Column *MaxCol_CSV*
3.27 Maximum/Minimum value of a Column *MaxCol_CSV* *MinCol_CSV*
---------------------------------------
You can let Vim output the 10 maximum/minimum values of a column using the
`:CSVMaxCol` command >
@@ -984,6 +983,7 @@ given, this calculates the sum for the column the cursor is on. Note, that the
delimiter will be stripped away from each value and also empty values won't be
considered.
*format_number_csv*
By default, Vim uses the a numerical format that uses the '.' as decimal
separator while there is no thousands separator. If youre file contains
the numbers in a different format, you can use the /format/ option to specify
@@ -1003,10 +1003,6 @@ uses the Space as thousands separator and the '.' as decimal separator.
If [distinct] is given, only returns the number of distinct values.
Note, if you Vim is compiled without floating point number format (|+float|),
Vim will only aggregate the integer part and therefore won't use the 'y'
argument in the /format/ specifier.
The result is also available in the buffer-local variable `b:csv_result`.
3.28 Average value of a Column *AvgCol_CSV*
@@ -1021,19 +1017,21 @@ given, this calculates the sum for the column the cursor is on. Note, that the
delimiter will be stripped away from each value and also empty values won't be
considered.
For the [/format/] part, see |MaxCol_CSV|.
For the [/format/] part, see |format_number_csv|.
The result is also available in the buffer-local variable `b:csv_result`.
See also |csv-aggregate-functions|
3.29 Variance of a Column *VarCol_CSV*
3.29 Variance of a Column *VarCol_CSV* *SmplVarCol* *PopVarCol*
_________________________
:[range]PopVarCol [nr] [/format/]
:[range]SmplVarCol [nr] [/format/]
Calculate the Population or Sample Variance for the specified column.
This outputs the result of the column `<nr>` within the range given. If no range
is given, this will calculate the statistical variance of the whole column. If <nr> is not
given, this calculates the variance for the column the cursor is on. Note, that the delimiter
@@ -1041,13 +1039,17 @@ will be stripped away from each value and also empty values won't be considered.
The result is also available in the buffer-local variable `b:csv_result`.
3.30 Standard Deviation of a Column *StdDevCol_CSV*
For the [/format/] part, see |format_number_csv|.
3.30 Standard Deviation of a Column *StdDevCol_CSV* *PopStdCol* *SmplStdCol*
___________________________________
:[range]PopStdCol [nr] [/format/]
:[range]SmplStdCol [nr] [/format/]
Calculate the Population or Sample Standard Deviation for the specified column.
This outputs the result of the column `<nr>` within the range given. If no range
is given, this will calculate the standard deviation of the whole column. If <nr> is not
given, this calculates the standard deviation for the column the cursor is on. Note, that
@@ -1055,6 +1057,8 @@ the delimiter will be stripped away from each value and also empty values won't
The result is also available in the buffer-local variable `b:csv_result`.
For the [/format/] part, see |format_number_csv|.
*:CSVDupColumn*
3.31 Duplicate columns *DupColumn_CSV*
----------------------
@@ -1089,7 +1093,7 @@ This outputs the sum of the row [range]. If no range is given, this will
calculate the sum for the current row. Note, that the delimiter will be
stripped away from each value and also empty values won't be considered.
For the [/format/] part, see |MaxCol_CSV|.
For the [/format/] part, see |format_number_csv|
==============================================================================
4. CSV Configuration *csv-configuration*
@@ -1111,6 +1115,11 @@ manually, use: >
to let the comma be the delimiter. This sets the buffer local delimiter
variable b:delimiter.
You can also set default delimiter to prevent a warning if no delimiter can
be detected: >
:let g:csv_default_delim=','
If your file does not consist of delimited columns, but rather is a fixed
width csv file, see |csv-fixedwidth| for configuring the plugin appropriately.

85
doc/fzf_gitignore.txt Normal file
View File

@@ -0,0 +1,85 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'gitignore') == -1
*fzf_gitignore.txt* Create useful .gitignore files for your project
Author: Filip Szymański <fszymanski.pl@gmail.com>
==============================================================================
CONTENTS *fzf-gitignore-contents*
1. Introduction |fzf-gitignore-introduction|
2. Configuration |fzf-gitignore-configuration|
3. Commands |fzf-gitignore-commands|
4. Mappings |fzf-gitignore-mappings|
5. License |fzf-gitignore-license|
6. Bugs |fzf-gitignore-bugs|
7. Contributing |fzf-gitignore-contributing|
==============================================================================
INTRODUCTION *fzf-gitignore-introduction*
fzf[1] interface for creating .gitignore files using the gitignore.io[2] API.
Note: This plugin was inspired by helm-gitignore[3].
==============================================================================
CONFIGURATION *fzf-gitignore-configuration*
*g:fzf_gitignore_no_maps*
Set this option to disable all key mappings.
>
let g:fzf_gitignore_no_maps = 1
<
Default: Not defined (number)
*g:fzf_gitignore_map*
Set this option to change the |<Plug>(fzf-gitignore)| key mapping.
>
let g:fzf_gitignore_map = '<Leader>i'
<
Default: '<Leader>gi' (string)
==============================================================================
COMMANDS *fzf-gitignore-commands*
*:FzfGitignore*
Create .gitignore file.
==============================================================================
MAPPINGS *fzf-gitignore-mappings*
-----------------------------------+----------------------------------------
Mapping | Description ~
-----------------------------------+----------------------------------------
<Plug>(fzf-gitignore) | Create .gitignore file
-----------------------------------+----------------------------------------
==============================================================================
LICENSE *fzf-gitignore-license*
MIT
==============================================================================
BUGS *fzf-gitignore-bugs*
If you find a bug please create an issue on GitHub.
https://github.com/fszymanski/fzf-gitignore/issues
==============================================================================
CONTRIBUTING *fzf-gitignore-contributing*
Think you can make this plugin better? Awesome. Fork it on GitHub and create
a pull request.
https://github.com/fszymanski/fzf-gitignore
==============================================================================
[1] https://github.com/junegunn/fzf
[2] https://www.gitignore.io/
[3] https://github.com/jupl/helm-gitignore
vim: tw=78 ts=8 ft=help norl
endif

View File

@@ -46,8 +46,7 @@ the list of recognized template tag names.
REASONML *graphql-reasonml*
GraphQL syntax support inside of ReasonML template strings using graphql-ppx
is available when vim-reasonml (https://github.com/jordwalke/vim-reasonml) is
also installed.
is available.
------------------------------------------------------------------------------
vim:tw=78:ft=help:norl:

View File

@@ -53,6 +53,8 @@ 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.
When |foldmethod| is set to "syntax", SQL commands can be folded.
Finally, the plugin supports syntax highlighting of arbitrary languages within
procedure and function blocks. This feature needs to be configured: see
|g:pgsql_pl|.

View File

@@ -426,10 +426,6 @@ CTRL-t
If [!] is not given the first error is jumped to.
If using neovim `:GoTestFunc` will run in a new terminal or run
asynchronously in the background according to |'g:go_term_enabled'|. You
can set the mode of the new terminal with |'g:go_term_mode'|.
*:GoTestCompile*
:GoTestCompile[!] [expand]
@@ -441,10 +437,6 @@ CTRL-t
If [!] is not given the first error is jumped to.
If using neovim `:GoTestCompile` will run in a new terminal or run
asynchronously in the background according to |'g:go_term_enabled'|. You
can set the mode of the new terminal with |'g:go_term_mode'|.
*:GoCoverage*
:GoCoverage[!] [options]
@@ -802,7 +794,7 @@ CTRL-t
You can define a constant value instead of the default field based value.
For example the following command will add ``valid:"1"`` to all fields.
>
:GoAddTags valid=1
:GoAddTags valid:1
<
*:GoRemoveTags*
:[range]GoRemoveTags [key],[option] [key1],[option1] ...
@@ -1483,6 +1475,14 @@ accuracy or `godef` for its performance. Valid options are `godef`, `gopls`,
and `guru`.
>
let g:go_def_mode = 'gopls'
<
*'g:go_fillstruct_mode'*
Use this option to define the command to be used for |:GoFillStruct|. By
default `fillstruct` is used. Valid values are `fillstruct` and `gopls`. By
default it is `fillstruct`.
>
let g:go_fillstruct_mode = 'fillstruct'
<
*'g:go_referrers_mode'*
@@ -1625,27 +1625,45 @@ window. The list to use can be set using |'g:go_list_type_commands'|.
<
*'g:go_metalinter_autosave_enabled'*
Specifies the enabled linters for auto |:GoMetaLinter| on save. By
default it's using `vet` and `golint`. If any are enabled, `--disable-all`
will be sent to the metalinter.
Specifies the enabled linters for auto |:GoMetaLinter| on save. When the
metalinter is `golangci-lint`, if any are enabled, `--disable-all` will be
sent to the metalinter.
When `g:go_metalinter_command` is set to `staticcheck`, the default value is
an empty list; `staticcheck`'s `-checks` flag will not be used.
>
let g:go_metalinter_autosave_enabled = ['all']
<
When `g:go_metalinter_command is set to `golangci-lint'`, the default value is
>
let g:go_metalinter_autosave_enabled = ['vet', 'golint']
<
*'g:go_metalinter_enabled'*
Specifies the linters to enable for the |:GoMetaLinter| command. By default
it's using `vet`, `golint` and `errcheck`. If any are enabled, `--disable-all`
will be sent to the metalinter.
Specifies the linters to enable for the |:GoMetaLinter| command. For
`golangci-lint`, if any are enabled, `--disable-all` will be passed to the
metalinter.
When `g:go_metalinter_command` is set to `staticcheck`, the default value is
an empty list; `staticcheck`'s `-checks` flag will not be used.
>
let g:go_metalinter_autosave_enabled = ['all']
<
When `g:go_metalinter_command is set to `golangci-lint'`, the default value is
>
let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck']
<
*'g:go_metalinter_command'*
Overrides the command to be executed when |:GoMetaLinter| is called. By
default it's `golangci-lint`. Valid options are `golangci-lint` and `gopls`.
default it's `golangci-lint`. Valid options are `golangci-lint, `gopls`, and
`staticcheck`..
When the value is `gopls`, users may want to consider setting
`g:go_gopls_staticcheck`. It can also be used as an advanced setting for
users who want to have more control over the metalinter.
`g:go_gopls_staticcheck`. It can also be used as an advanced setting for users
who want to have more control over the metalinter.
>
let g:go_metalinter_command = "golangci-lint"
<
@@ -1653,6 +1671,8 @@ users who want to have more control over the metalinter.
Overrides the maximum time the linters have to complete. By default it's 5
seconds.
Only applies when the metalinter is `golangci-lint`.
>
let g:go_metalinter_deadline = "5s"
<
@@ -1718,6 +1738,13 @@ The default command used to open a new terminal for go commands such as
Applicable to Neovim and Vim with `terminal` feature only.
>
let g:go_term_mode = "vsplit"
<
*'g:go_term_reuse'*
Reuse the terminal window when |'g:go_term_enabled'| is set. By default it's
disabled.
>
let g:go_term_reuse = 0
<
*'g:go_term_height'*
*'g:go_term_width'*
@@ -1782,25 +1809,34 @@ same.
*'g:go_gopls_enabled'*
Specifies whether `gopls` can be used by vim-go. By default gopls is enabled.
When gopls is disabled completion will not work and other configuration
Specifies whether `gopls` can be used by vim-go.
Completion will not work when gopls is disabled and other configuration
options may also need to be adjusted.
By default gopls is enabled.
>
let g:go_gopls_enabled = 1
<
*'g:go_gopls_options'*
The commandline arguments to pass to gopls. By default, it's `-remote=auto`.
The commandline arguments to pass to gopls.
By default, it is `['-remote=auto']`.
>
let g:go_gopls_options = []
let g:go_gopls_options = ['-remote=auto']
<
*'g:go_gopls_analyses'*
The analyses settings for `gopls`. By default, it's `v:null`. Valid map values
are `v:true` and `v:false`.
The analyses settings for `gopls`.
The Expected value is either `v:null` or a dictionary. The dictionary will be
provided to `gopls` via json-rpc, so dictionary values need to be of the
appropriate type for Vim to convert to JSON (e.g. truthy dictionary values
should be `v:true` or `v:false`). By default, it is `v:null`.
>
let g:go_gopls_analyses = v:null
<
@@ -1808,34 +1844,36 @@ are `v:true` and `v:false`.
*'g:go_gopls_complete_unimported'*
Specifies whether `gopls` should include suggestions from unimported packages.
When it is `v:null`, `gopls`' default will be used. By default it is
`v:null`.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_complete_unimported = v:null
<
*'g:go_gopls_deep_completion'*
Specifies whether `gopls` should use deep completion. When it is `v:null`,
`gopls`' default will be used. By default it is `v:null`.
Specifies whether `gopls` should use deep completion.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_deep_completion = v:null
<
*'g:go_gopls_matcher'*
Specifies how `gopls` should match for completions. Valid values are `v:null`,
`fuzzy`, and `caseSensitive`. When it is `v:null`, `gopls`' default will be
used. By default it is `v:null`.
Specifies how `gopls` should match for completions.
Valid values are `v:null`, `fuzzy`, and `caseSensitive`. When it is `v:null`,
`gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_matcher = v:null
<
*'g:go_gopls_staticcheck'*
Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
`gopls`' default will be used. By default it is `v:null`.
Specifies whether `gopls` should run staticcheck checks.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_staticcheck = v:null
<
@@ -1845,8 +1883,9 @@ Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
Specifies whether `gopls` can provide placeholders for function parameters and
struct fields. When set, completion items will be treated as anonymous
snippets if UltiSnips is installed and configured to be used as
|'g:go_snippet_engine'|. When it is `v:null`, `gopls`' default will be used.
By default it is `v:null`.
|'g:go_snippet_engine'|.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_use_placeholders = v:null
<
@@ -1854,8 +1893,9 @@ By default it is `v:null`.
*'g:go_gopls_temp_modfile'*
Specifies whether `gopls` should use a temp modfile and suggest edits rather
than modifying the ambient go.mod file. When it is `v:null`, `gopls`' default
will be used. By default it is `v:null`.
than modifying the ambient go.mod file.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_temp_modfile = v:null
<
@@ -1863,17 +1903,41 @@ will be used. By default it is `v:null`.
*'g:go_gopls_local'*
Specifies the prefix for imports that `gopls` should consider group
separately. When it is `v:null`, `gopls`' default will be used. By default it
is `v:null`.
separately.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_local = v:null
<
*'g:go_gopls_gofumpt'*
Specifies whether `gopls` should use `gofumpt` for formatting.
When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_gofumpt = v:null
<
*'g:go_gopls_settings'*
Specifies `gopls` workspace settings for `gopls` that are not yet officially
supported by vim-go.
Any value in the dictionary will be overridden by values provided in the
specific options supported by vim-go (e.g. g:go_gopls_staticcheck) or
settings statically configured by vim-go to ensure expected behavior. By
default it is `v:null`.
>
let g:go_gopls_settings = v:null
<
*'g:go_diagnostics_enabled'*
Specifies whether `gopls` diagnostics are enabled. Only the diagnostics for
the current buffer will be processed when it is not set; all others will be
ignored. By default it is disabled.
ignored.
By default it is disabled.
>
let g:go_diagnostics_enabled = 0
<
@@ -2242,6 +2306,8 @@ The program will halt on the breakpoint, at which point you can inspect the
program state. You can go to the next line with |:GoDebugNext| (<F10>) or step
in with |:GoDebugStep| (<F11>).
The program can also be halted with `:GoDebugHalt` (<F8>).
The variable window in the bottom left (`GODEBUG_VARIABLES`) will display all
local variables. Struct values are displayed as `{...}`, array/slices as
`[4]`. Use <CR> on the variable name to expand the values.
@@ -2258,10 +2324,21 @@ the `dlv` process, or |:GoDebugRestart| to recompile the code.
*go-debug-commands*
DEBUGGER COMMANDS~
Only |:GoDebugStart|, `:GoDebugTest`, and |:GoDebugBreakpoint| are available
by default. `:GoDebugContinue` becomes available after running `:GoDebugStart`
or `:GoDebugTest`. The rest of the commands and mappings become available
after executing `:GoDebugContinue`.
Only |:GoDebugAttach|, |:GoDebugStart|, |:GoDebugTest|, and
|:GoDebugBreakpoint| are available by default. |:GoDebugContinue| becomes
available after running |:GoDebugAttach|, |:GoDebugStart| or |:GoDebugTest|.
The rest of the commands and mappings become available after executing
|:GoDebugContinue|.
*:GoDebugAttach*
:GoDebugAttach pid
Start the debug mode for pid; this does several things:
* Setup the debug windows according to |'g:go_debug_windows'|.
* Make the `:GoDebug*` commands and `(go-debug-*)` mappings available.
Use |:GoDebugStop| to stop `dlv` and exit debugging mode.
*:GoDebugStart*
:GoDebugStart [pkg] [program-args]
@@ -2285,12 +2362,28 @@ after executing `:GoDebugContinue`.
Use `-test.flag` to pass flags to `go test` when debugging a test; for
example `-test.v` or `-test.run TestFoo`
*:GoDebugTestFunc*
:GoDebugTestFunc [expand]
Behaves the same as |:GoDebugTest| and implicitly adds `-test.run` to run
the nearest test or example function (i.e the nearest function declaration
that matches `func Test` or `func Example`) at or previous to the cursor.
Search will not wrap around when at the top of the file.
*:GoDebugRestart*
:GoDebugRestart
Stop the program (if running) and restart `dlv` to recompile the package.
The current window layout and breakpoints will be left intact.
*:GoDebugHalt*
*(go-debug-halt)*
:GoDebugHalt
Halt the program.
Mapped to <F8> by default.
*:GoDebugStop*
*(go-debug-stop)*
:GoDebugStop

View File

@@ -1,4 +1,4 @@
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
if !exists('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)
@@ -46,6 +46,7 @@ CONFIG *vim-jsx-pretty-config*
|---------------------------------------|---------|----------------------|
| g:vim_jsx_pretty_enable_jsx_highlight | 1 | jsx highlight flag |
| g:vim_jsx_pretty_colorful_config | 0 | colorful config flag |
| g:vim_jsx_pretty_disable_js | 0 | js toggle flag |
<
- *g:vim_jsx_pretty_enable_jsx_highlight*

File diff suppressed because it is too large Load Diff

3
ftoff.vim Normal file
View File

@@ -0,0 +1,3 @@
if exists("did_load_polyglot")
unlet did_load_polyglot
endif

29
ftplugin/8th.vim Normal file
View File

@@ -0,0 +1,29 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, '8th') == -1
" Vim ftplugin file
" Language: 8th
" Version: any
" Last Change: 2015/11/08
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: 8th allows any non-whitespace in a name, so you need to do:
" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
" This goes with the syntax/8th.vim file.
" Only do this when not done yet for this buffer
if exists("b:did_8thplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_8thplugin = 1
setlocal ts=2 sts=2 sw=2 et
setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
setlocal fo=tcrqol
setlocal matchpairs+=\::;
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
setlocal suffixesadd=.8th
endif

View File

@@ -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

24
ftplugin/a2ps.vim Normal file
View File

@@ -0,0 +1,24 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'a2ps') == -1
" Vim filetype plugin file
" Language: a2ps(1) 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< inc< fo<"
setlocal comments=:# commentstring=#\ %s include=^\\s*Include:
setlocal formatoptions-=t formatoptions+=croql
let &cpo = s:cpo_save
unlet s:cpo_save
endif

29
ftplugin/aap.vim Normal file
View File

@@ -0,0 +1,29 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'aap') == -1
" Vim filetype plugin file
" Language: Aap recipe
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Apr 05
" 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
" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin.
let b:undo_ftplugin = "setl fo< com< et<"
" 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=s:#\ -,m:#\ \ ,e:#,n:#,fb:-
" Expand tabs to spaces to avoid trouble.
setlocal expandtab
endif

33
ftplugin/abap.vim Normal file
View File

@@ -0,0 +1,33 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'abap') == -1
" Vim filetype plugin file
" Language: ABAP
" Author: Steven Oliver <oliver.steven@gmail.com>
" Copyright: Copyright (c) 2013 Steven Oliver
" License: You may redistribute this under the same terms as Vim itself
" --------------------------------------------------------------------------
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal softtabstop=2 shiftwidth=2
setlocal suffixesadd=.abap
" Windows allows you to filter the open file dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" .
\ "All Files (*.*)\t*.*\n"
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: set sw=4 sts=4 et tw=80 :
endif

101
ftplugin/abaqus.vim Normal file
View File

@@ -0,0 +1,101 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'abaqus') == -1
" Vim filetype plugin file
" Language: Abaqus finite element input file (www.abaqus.com)
" Maintainer: Carl Osterwisch <osterwischc@asme.org>
" Last Change: 2012 Apr 30
" 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
" Save the compatibility options and temporarily switch to vim defaults
let s:cpo_save = &cpoptions
set cpoptions&vim
" Set the format of the include file specification for Abaqus
" Used in :check gf ^wf [i and other commands
setlocal include=\\<\\cINPUT\\s*=
" Remove characters up to the first = when evaluating filenames
setlocal includeexpr=substitute(v:fname,'.\\{-}=','','')
" Remove comma from valid filename characters since it is used to
" separate keyword parameters
setlocal isfname-=,
" Define format of comment lines (see 'formatoptions' for uses)
setlocal comments=:**
setlocal commentstring=**%s
" Definitions start with a * and assign a NAME, NSET, or ELSET
" Used in [d ^wd and other commands
setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*=
" Abaqus keywords and identifiers may include a - character
setlocal iskeyword+=-
let b:undo_ftplugin = "setlocal include< includeexpr< isfname<"
\ . " comments< commentstring< define< iskeyword<"
if has("folding")
" Fold all lines that do not begin with *
setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
setlocal foldmethod=expr
let b:undo_ftplugin .= " foldexpr< foldmethod<"
endif
" Set the file browse filter (currently only supported under Win32 gui)
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
\ "Abaqus Results (*.dat)\t*.dat\n" .
\ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= "|unlet! b:browsefilter"
endif
" Define patterns for the matchit plugin
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 1
let b:match_words =
\ '\*part:\*end\s*part,' .
\ '\*assembly:\*end\s*assembly,' .
\ '\*instance:\*end\s*instance,' .
\ '\*step:\*end\s*step'
let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words"
endif
" Define keys used to move [count] keywords backward or forward.
noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
" Define key to toggle commenting of the current line or range
noremap <silent><buffer> <LocalLeader><LocalLeader>
\ :call <SID>Abaqus_ToggleComment()<CR>j
function! <SID>Abaqus_ToggleComment() range
if strpart(getline(a:firstline), 0, 2) == "**"
" Un-comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
else
" Comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^/**/'
endif
endfunction
let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
\ . "|unmap <buffer> <LocalLeader><LocalLeader>"
" Undo must be done in nocompatible mode for <LocalLeader>.
let b:undo_ftplugin = "let s:cpo_save = &cpoptions|"
\ . "set cpoptions&vim|"
\ . b:undo_ftplugin
\ . "|let &cpoptions = s:cpo_save"
\ . "|unlet s:cpo_save"
" Restore saved compatibility options
let &cpoptions = s:cpo_save
unlet s:cpo_save
endif

214
ftplugin/ada.vim Normal file
View File

@@ -0,0 +1,214 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ada') == -1
"------------------------------------------------------------------------------
" Description: Perform Ada specific completion & tagging.
" Language: Ada (2005)
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6 with patch from David Bürgin
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/ftplugin/ada.vim $
" History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK ' should not be in iskeyword.
" 16.07.2006 MK Ada-Mode as vim-ball
" 02.10.2006 MK Better folding.
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" 08.07.2007 TV fix default compiler problems.
" Help Page: ft-ada-plugin
"------------------------------------------------------------------------------
" Provides mapping overrides for tag jumping that figure out the current
" Ada object and tag jump to that, not the 'simple' vim word.
" Similarly allows <Ctrl-N> matching of full-length ada entities from tags.
"------------------------------------------------------------------------------
" Only do this when not done yet for this buffer
if exists ("b:did_ftplugin") || version < 700
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 45
"
" Temporarily set cpoptions to ensure the script loads OK
"
let s:cpoptions = &cpoptions
set cpoptions-=C
" Section: Comments {{{1
"
setlocal comments=O:--,:--\ \
setlocal commentstring=--\ \ %s
setlocal complete=.,w,b,u,t,i
" Section: case {{{1
"
setlocal nosmartcase
setlocal ignorecase
" Section: formatoptions {{{1
"
setlocal formatoptions+=ron
" Section: Tagging {{{1
"
if exists ("g:ada_extended_tagging")
" Make local tag mappings for this buffer (if not already set)
if g:ada_extended_tagging == 'jump'
if mapcheck('<C-]>','n') == ''
nnoremap <unique> <buffer> <C-]> :call ada#Jump_Tag ('', 'tjump')<cr>
endif
if mapcheck('g<C-]>','n') == ''
nnoremap <unique> <buffer> g<C-]> :call ada#Jump_Tag ('','stjump')<cr>
endif
elseif g:ada_extended_tagging == 'list'
if mapcheck('<C-]>','n') == ''
nnoremap <unique> <buffer> <C-]> :call ada#List_Tag ()<cr>
endif
if mapcheck('g<C-]>','n') == ''
nnoremap <unique> <buffer> g<C-]> :call ada#List_Tag ()<cr>
endif
endif
endif
" Section: Completion {{{1
"
setlocal completefunc=ada#User_Complete
setlocal omnifunc=adacomplete#Complete
if exists ("g:ada_extended_completion")
if mapcheck ('<C-N>','i') == ''
inoremap <unique> <buffer> <C-N> <C-R>=ada#Completion("\<lt>C-N>")<cr>
endif
if mapcheck ('<C-P>','i') == ''
inoremap <unique> <buffer> <C-P> <C-R>=ada#Completion("\<lt>C-P>")<cr>
endif
if mapcheck ('<C-X><C-]>','i') == ''
inoremap <unique> <buffer> <C-X><C-]> <C-R>=<SID>ada#Completion("\<lt>C-X>\<lt>C-]>")<cr>
endif
if mapcheck ('<bs>','i') == ''
inoremap <silent> <unique> <buffer> <bs> <C-R>=ada#Insert_Backspace ()<cr>
endif
endif
" Section: Matchit {{{1
"
" Only do this when not done yet for this buffer & matchit is used
"
if !exists ("b:match_words") &&
\ exists ("loaded_matchit")
"
" The following lines enable the macros/matchit.vim plugin for
" Ada-specific extended matching with the % key.
"
let s:notend = '\%(\<end\s\+\)\@<!'
let b:match_words =
\ s:notend . '\<if\>:\<elsif\>:\<else\>:\<end\>\s\+\<if\>,' .
\ s:notend . '\<case\>:\<when\>:\<end\>\s\+\<case\>,' .
\ '\%(\<while\>.*\|\<for\>.*\|'.s:notend.'\)\<loop\>:\<end\>\s\+\<loop\>,' .
\ '\%(\<do\>\|\<begin\>\):\<exception\>:\<end\>\s*\%($\|[;A-Z]\),' .
\ s:notend . '\<record\>:\<end\>\s\+\<record\>'
endif
" Section: Compiler {{{1
"
if ! exists("g:ada_default_compiler")
if has("vms")
let g:ada_default_compiler = 'decada'
else
let g:ada_default_compiler = 'gnat'
endif
endif
if ! exists("current_compiler") ||
\ current_compiler != g:ada_default_compiler
execute "compiler " . g:ada_default_compiler
endif
" Section: Folding {{{1
"
if exists("g:ada_folding")
if g:ada_folding[0] == 'i'
setlocal foldmethod=indent
setlocal foldignore=--
setlocal foldnestmax=5
elseif g:ada_folding[0] == 'g'
setlocal foldmethod=expr
setlocal foldexpr=ada#Pretty_Print_Folding(v:lnum)
elseif g:ada_folding[0] == 's'
setlocal foldmethod=syntax
endif
setlocal tabstop=8
setlocal softtabstop=3
setlocal shiftwidth=3
endif
" Section: Abbrev {{{1
"
if exists("g:ada_abbrev")
iabbrev ret return
iabbrev proc procedure
iabbrev pack package
iabbrev func function
endif
" Section: Commands, Mapping, Menus {{{1
"
call ada#Map_Popup (
\ 'Tag.List',
\ 'l',
\ 'call ada#List_Tag ()')
call ada#Map_Popup (
\'Tag.Jump',
\'j',
\'call ada#Jump_Tag ()')
call ada#Map_Menu (
\'Tag.Create File',
\':AdaTagFile',
\'call ada#Create_Tags (''file'')')
call ada#Map_Menu (
\'Tag.Create Dir',
\':AdaTagDir',
\'call ada#Create_Tags (''dir'')')
call ada#Map_Menu (
\'Highlight.Toggle Space Errors',
\ ':AdaSpaces',
\'call ada#Switch_Syntax_Option (''space_errors'')')
call ada#Map_Menu (
\'Highlight.Toggle Lines Errors',
\ ':AdaLines',
\'call ada#Switch_Syntax_Option (''line_errors'')')
call ada#Map_Menu (
\'Highlight.Toggle Rainbow Color',
\ ':AdaRainbow',
\'call ada#Switch_Syntax_Option (''rainbow_color'')')
call ada#Map_Menu (
\'Highlight.Toggle Standard Types',
\ ':AdaTypes',
\'call ada#Switch_Syntax_Option (''standard_types'')')
" 1}}}
" Reset cpoptions
let &cpoptions = s:cpoptions
unlet s:cpoptions
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
endif

23
ftplugin/alsaconf.vim Normal file
View File

@@ -0,0 +1,23 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'alsaconf') == -1
" Vim filetype plugin file
" Language: alsaconf(8) 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

48
ftplugin/ant.vim Normal file
View File

@@ -0,0 +1,48 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ant') == -1
" Vim filetype plugin file
" Language: ant
" 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 = "XML Files (*.xml)\t*.xml\n" .
\ "All Files (*.*)\t*.*\n"
runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.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 Ant-related files.
if has("gui_win32")
let b:browsefilter = "Build Files (build.xml)\tbuild.xml\n" .
\ "Java Files (*.java)\t*.java\n" .
\ "Properties Files (*.prop*)\t*.prop*\n" .
\ "Manifest Files (*.mf)\t*.mf\n" .
\ s:browsefilter
endif
" Undo the stuff we changed.
let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
endif

23
ftplugin/arch.vim Normal file
View File

@@ -0,0 +1,23 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'arch') == -1
" Vim filetype plugin file
" Language: GNU Arch inventory 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

19
ftplugin/art.vim Normal file
View File

@@ -0,0 +1,19 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'art') == -1
" Vim filetype plugin
" Language: ART-IM and ART*Enterprise
" Maintainer: Dorai Sitaram <ds26@gte.com>
" URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
" Last Change: Apr 2, 2003
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
run ftplugin/lisp.vim
setl lw-=if
setl lw+=def-art-fun,deffacts,defglobal,defrule,defschema,for,schema,while
endif

64
ftplugin/aspvbs.vim Normal file
View 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

20
ftplugin/automake.vim Normal file
View File

@@ -0,0 +1,20 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'automake') == -1
" Vim filetype plugin file
" Language: Automake
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim
let &cpo = s:cpo_save
unlet s:cpo_save
endif

59
ftplugin/awk.vim Normal file
View File

@@ -0,0 +1,59 @@
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: 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")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

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