Compare commits

...

210 Commits

Author SHA1 Message Date
Adam Stankiewicz
0626cc90a2 Change fish provider, closes #626 2020-12-30 12:16:03 +01:00
Adam Stankiewicz
8af4f8e6c0 Add jsonc, closes #635 2020-12-30 12:13:50 +01:00
Adam Stankiewicz
e5668602cc Enable again swapfiles, fixes #638 2020-12-30 09:58:20 +01:00
Adam Stankiewicz
6783bd0df9 Revert "Check changes for focus event, improves #638"
It's because it additionally changes cursor to vertical bar.
I need to disable this behavior and make it compatible with
plugins that enable vertical cursor...

This reverts commit 44e79fc935.
2020-12-30 08:36:48 +01:00
Adam Stankiewicz
dc786b7641 Try to fix tests 2020-12-30 01:04:40 +01:00
Adam Stankiewicz
3f9ce1c6cf Add link to actions 2020-12-30 01:00:14 +01:00
Adam Stankiewicz
44e79fc935 Check changes for focus event, improves #638 2020-12-30 00:48:12 +01:00
Adam Stankiewicz
2fcb15afa0 Add terraform to list of packages, fixes #625 2020-12-30 00:05:20 +01:00
Adam Stankiewicz
1150adc4db Fix detecting conf filetype, closes #641 2020-12-29 23:40:05 +01:00
Adam Stankiewicz
47dcae9131 Do not mention vim-sensible, as only tiny part of it is included 2020-12-29 20:45:36 +01:00
Adam Stankiewicz
4b54ae9cd9 Move setting default tabstop to sensible part 2020-12-29 20:42:17 +01:00
Adam Stankiewicz
c5625ffedd Set shiftwidth to tabstop if greather, fixes #648
Also should fix situations like in #654
2020-12-29 20:33:47 +01:00
Adam Stankiewicz
45f2f94975 Add mint-language, closes #653
Co-authored-by: NICHTJ3 <nicholsontrent@gmail.com>
2020-12-29 20:18:29 +01:00
Adam Stankiewicz
cec808bc19 Use maxdepth instead of depth in makefile, closes #652 2020-12-29 20:08:51 +01:00
Adam Stankiewicz
95d82fdb66 Update 2020-12-29 19:44:40 +01:00
Carl-Philipp Jung
73c5187177 Removes set incsearch which was copied from vim-sensible (#640) 2020-11-27 16:10:29 +01:00
Adam Stankiewicz
ab0ff253f6 Update plugins, closes #627 2020-11-20 13:00:38 +01:00
Adam Stankiewicz
c228e993ad Update 2020-11-18 20:33:42 +01:00
Dawid Potocki
da18fe6851 Fix neovim :Tutor filetype detection (#631) 2020-11-17 16:58:46 +01:00
Adam Stankiewicz
4af1321588 Revert "Rename cpo_save variable to prevent conflicts, fixes #619"
This reverts commit d96f11bcd8.
2020-11-04 00:44:02 +01:00
Fabien RAJAONARISON
cd76812402 fix undefined cpo_save (#623) 2020-11-02 19:46:24 +01:00
Cookies
ff35c02445 Restore cpoptions before recursive ftdetect read, fixes #619 (#621) 2020-11-02 18:48:59 +01:00
Adam Stankiewicz
32f5e90737 Do not use [0:-1] syntax, fixes #616 2020-11-02 18:32:43 +01:00
Adam Stankiewicz
d96f11bcd8 Rename cpo_save variable to prevent conflicts, fixes #619 2020-11-02 18:21:43 +01:00
Adam Stankiewicz
0738ad654d Update 2020-11-02 18:19:15 +01:00
Sinos
05e21a9e25 Add support for PEG syntax (#615)
* feat: add pest syntax

* feat: add pest into packages

* feat: increase the package count
2020-10-27 12:02:41 +01:00
Adam Stankiewicz
683286b3d7 Add all paths, fixes #612 2020-10-26 16:25:24 +01:00
Adam Stankiewicz
740a60811c Use nroff filetype for man pages, closes #611 2020-10-26 08:45:34 +01:00
Adam Stankiewicz
2838800832 Fix conditions, #608 2020-10-25 21:08:27 +01:00
Adam Stankiewicz
ba3fe9e1ae Fix loading when vim8 packages are used 2020-10-25 20:40:49 +01:00
Adam Stankiewicz
45a7512dea Preserve loading order of plugins, fixes #608 2020-10-25 20:33:44 +01:00
Adam Stankiewicz
81ada1101e Remove debugging code, closes #607 2020-10-25 11:11:53 +01:00
ichizok
48d0bc7556 Fix the filter of 'rtp' (#606)
On Windows, should handle both slash and backslash as the path separator
in checking a path in 'rtp'.
2020-10-25 11:10:44 +01:00
Adam Stankiewicz
cbde2571d4 Respect symlinks for resolving vim-polyglot as fallback, closes #605 2020-10-25 03:19:58 +01:00
Adam Stankiewicz
d73c4d1562 Fix recursive loading, closes #605 2020-10-24 23:50:54 +02:00
Adam Stankiewicz
20b31f5337 Fix warning in command line window, closes #604 2020-10-24 21:46:04 +02:00
Adam Stankiewicz
8e61708b45 Use vim-polyglot only as fallback to other plugins, fixes #580 2020-10-24 18:52:18 +02:00
Adam Stankiewicz
3c148e9ef5 Do not set checktime if already set 2020-10-24 17:46:15 +02:00
Adam Stankiewicz
739102e06d Make editing same file in multiple vim instances seamless 2020-10-24 17:32:39 +02:00
Adam Stankiewicz
f52f6b9519 Allow to override incsearch, #603 2020-10-24 17:19:54 +02:00
Adam Stankiewicz
b6654c85b2 Fix shortcuts in plugins, fixes #566 2020-10-24 16:54:55 +02:00
Adam Stankiewicz
e3609fed6b Fix disabling sensible settings, closes #602 2020-10-24 16:37:45 +02:00
Adam Stankiewicz
7324528984 Fix detecting shell filetypes, closes #603 2020-10-24 16:34:29 +02:00
Adam Stankiewicz
0a2f2cc04d Fix old nvim, closes #592 2020-10-23 21:57:54 +02:00
Adam Stankiewicz
6422a5a479 Count all multiplies for given indent, fixes #592 2020-10-23 02:36:02 +02:00
Adam Stankiewicz
113f9b8949 Respect shiftwidth if set by user or plugin 2020-10-23 01:30:33 +02:00
Adam Stankiewicz
f828912a7f Set softtabstop to -1 to allow chaging shiftwidth 2020-10-23 01:22:31 +02:00
Adam Stankiewicz
2522ad2029 Set softtabstop to -1 to allow easy sw configuraton 2020-10-23 01:16:32 +02:00
Adam Stankiewicz
50a9a7345f Update 2020-10-23 01:13:09 +02:00
Adam Stankiewicz
29ec69ffa0 Set default tabstop to 2, but only if not changed 2020-10-23 01:04:53 +02:00
Adam Stankiewicz
6636144497 Prevent setting expandtab by default, closes #599 2020-10-23 00:56:41 +02:00
Adam Stankiewicz
2a205569eb Set only softtabstop, not tabstop, fixes #600 2020-10-23 00:51:16 +02:00
Adam Stankiewicz
114f731483 Add missing menu file, fixes #597 2020-10-21 14:26:54 +02:00
Adam Stankiewicz
4b8687ebca Fix deteting tab indents, closes #596 2020-10-21 14:23:28 +02:00
Adam Stankiewicz
78f6c8f318 Improve autoindent heuristics (count diff of multiple lines of same indent) 2020-10-19 20:33:52 +02:00
Adam Stankiewicz
86bf33aa3b Use conf for /etc/hosts, fixes #595 2020-10-19 19:49:44 +02:00
Adam Stankiewicz
b64fcedd82 Count only increments in indent, also respect ftplugin settings 2020-10-19 11:24:31 +02:00
Adam Stankiewicz
903793ac04 Improve indent heuristics (count increments / decrements), fixes #592 2020-10-19 11:00:16 +02:00
Adam Stankiewicz
71a21a1044 Use spaces instead of tabs 2020-10-19 10:05:33 +02:00
Adam Stankiewicz
1d7f0e4a7e Remove non-relevant sensible settings
233a817f05
2020-10-19 10:03:56 +02:00
Adam Stankiewicz
ad2df97a64 Allow 6-spaces indent and do not set tabstop if changed 2020-10-19 09:10:57 +02:00
Adam Stankiewicz
fbeca0ed90 Change link to vim repository 2020-10-19 03:14:58 +02:00
Adam Stankiewicz
8c1ec94a3c Change ascii art 2020-10-19 03:10:32 +02:00
Adam Stankiewicz
5297baf285 Add doc for polyglot 2020-10-19 03:05:39 +02:00
Adam Stankiewicz
5e2607d93f Remove docs so docs of installed plugins are up to date 2020-10-19 02:55:37 +02:00
Adam Stankiewicz
3d80a66e7b Move comment about polyglot_disabled 2020-10-19 02:52:47 +02:00
Adam Stankiewicz
0980839568 Prevent break in readme 2020-10-19 02:51:41 +02:00
Adam Stankiewicz
4ab0bdd326 Make readme little shorter 2020-10-19 02:51:16 +02:00
Adam Stankiewicz
dbfcb6dca4 Mention I recommend using plug 2020-10-19 02:50:00 +02:00
Adam Stankiewicz
6208384bd4 Improve syntax highlighting of the readme 2020-10-19 02:38:07 +02:00
Adam Stankiewicz
225c408b02 Mention nocompatible in the .vimrc 2020-10-19 02:37:33 +02:00
Adam Stankiewicz
71d9a2db9f Add docs about sensible 2020-10-19 02:34:23 +02:00
Adam Stankiewicz
233a817f05 Add vim-sensible defaults by default 2020-10-19 02:26:31 +02:00
Adam Stankiewicz
c3e825027d Allow vim-polyglot to load in non-compatible mode 2020-10-19 02:25:59 +02:00
Adam Stankiewicz
3618414fad Do not set tabstop by mistake 2020-10-19 00:10:17 +02:00
Adam Stankiewicz
88cae16fca Autodetect only 2, 3, 4, or 8 space indent, fixes #592 2020-10-18 23:57:00 +02:00
Adam Stankiewicz
6d7f437b84 Do not set nocompatible mode, fixes #593 2020-10-18 22:15:53 +02:00
Adam Stankiewicz
bb27d0efbf Add regression test 2020-10-18 13:34:01 +02:00
Adam Stankiewicz
8a790ac7bf Leave only filetype detect for context, closes #575 2020-10-18 12:27:11 +02:00
Adam Stankiewicz
c9f2aa9ae0 Leave only filetype detection for man, #576 2020-10-18 12:24:33 +02:00
Adam Stankiewicz
1fc249bafd Set nocompatible mode instead of checking it 2020-10-17 21:23:12 +02:00
Adam Stankiewicz
518d733369 Make sure custom scripts.vim are respected as well 2020-10-17 17:40:10 +02:00
Adam Stankiewicz
0021384259 Make sure polyglot_disable does not skip native vim files, fixes #591 2020-10-17 15:56:13 +02:00
Adam Stankiewicz
af3ebda710 Fix tests 2020-10-17 14:17:55 +02:00
Adam Stankiewicz
6b663ec330 Change implementation of observing, fixes #584 2020-10-17 13:49:45 +02:00
Adam Stankiewicz
6b9625ecd5 Fix detecting indentation, closes #590 2020-10-17 11:52:39 +02:00
Adam Stankiewicz
3383046210 Handle most warnings 2020-10-16 20:15:30 +02:00
Adam Stankiewicz
8f9e5ac70b Add extensions to the readme 2020-10-16 14:08:54 +02:00
Adam Stankiewicz
23d7b0931d Use language names instead of filetype names 2020-10-16 13:49:57 +02:00
Adam Stankiewicz
3ee6ab9d13 Update 2020-10-16 13:41:54 +02:00
Adam Stankiewicz
cd919c0039 Mention filetypes in the readme 2020-10-16 13:40:50 +02:00
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
1377 changed files with 104968 additions and 20238 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,10 +1,10 @@
.PHONY: all test dev
.PHONY: build test dev
all:
build:
@ scripts/build
test:
@ scripts/test
dev:
@ echo "packages.yaml\nheuristics.yaml\nscripts/test\nscripts/build\nscripts/test_extensions.vim" | DEV=1 entr bash -c 'make && make test'
@ find scripts autoload/polyglot ftdetect tests . -type f -maxdepth 1 | DEV=1 entr bash -c 'make'

380
README.md
View File

@@ -1,30 +1,34 @@
![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)](https://github.com/sheerun/vim-polyglot/actions) [![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-->190<!--/Package Count--> packages it consists of.
- It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).
- Solid syntax and indentation support (other features skipped). Only the best language packs.
- All unnecessary files are ignored (like enormous documentation from php support).
- Automatically detect indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth))
- Each build is tested by automated vimrunner script on CI. See `spec` directory.
- It **installs and updates 120+ times faster** than the <!--Package Count-->601<!--/Package Count--> packages it consists of.
- It is also more secure (scripts loaded for every filetype are generated by vim-polyglot)
- Best syntax and indentation support (no other features). Hand-selected language packs.
- Automatically detects indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth), can be disabled)
\*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
1. Install [Pathogen](https://github.com/tpope/vim-pathogen), [Vundle](https://github.com/VundleVim/Vundle.vim), [NeoBundle](https://github.com/Shougo/neobundle.vim), or [Plug](https://github.com/junegunn/vim-plug) package manager for Vim.
2. Use this repository as submodule or package.
For example when using [Plug](https://github.com/junegunn/vim-plug):
For example when using [Plug](https://github.com/junegunn/vim-plug) (which I recommend):
```vim
set nocompatible
call plug#begin()
```
Plug 'sheerun/vim-polyglot'
call plug#end()
```
Optionally download one of the [releases](https://github.com/sheerun/vim-polyglot/releases) and unpack it directly under `~/.vim` directory.
@@ -32,206 +36,171 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
You can also use Vim 8 built-in package manager:
```
mkdir -p ~/.vim/pack/default/start
git clone https://github.com/sheerun/vim-polyglot ~/.vim/pack/default/start/vim-polyglot
git clone --depth 1 https://github.com/sheerun/vim-polyglot ~/.vim/pack/plugins/start/vim-polyglot
```
NOTE: Not all features of individual language packs are available. We strip them from functionality slowing vim startup (for example we ignore `plugins` folder that is loaded regardless of file type, instead we prefer `ftplugin` which is loaded lazily).
If you need full functionality of any plugin, please use it directly with your plugin manager.
## Language packs
On top of all language packs from [vim repository](https://github.com/vim/vim/tree/master/runtime/syntax), vim-polyglot includes:
<!--Language Packs-->
- [8th](https://github.com/vim/vim/tree/master/runtime)
- [a2ps](https://github.com/vim/vim/tree/master/runtime)
- [a65](https://github.com/vim/vim/tree/master/runtime)
- [aap](https://github.com/vim/vim/tree/master/runtime)
- [abap](https://github.com/vim/vim/tree/master/runtime)
- [abaqus](https://github.com/vim/vim/tree/master/runtime)
- [abc](https://github.com/vim/vim/tree/master/runtime)
- [abel](https://github.com/vim/vim/tree/master/runtime)
- [acedb](https://github.com/vim/vim/tree/master/runtime)
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl)
- [ada](https://github.com/vim/vim/tree/master/runtime)
- [ahdl](https://github.com/vim/vim/tree/master/runtime)
- [aidl](https://github.com/vim/vim/tree/master/runtime)
- [alsaconf](https://github.com/vim/vim/tree/master/runtime)
- [aml](https://github.com/vim/vim/tree/master/runtime)
- [ampl](https://github.com/vim/vim/tree/master/runtime)
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl) (Syntax highlighting for asl and dsl files)
- [ansible](https://github.com/pearofducks/ansible-vim)
- [ant](https://github.com/vim/vim/tree/master/runtime)
- [apache](https://github.com/vim/vim/tree/master/runtime)
- [apiblueprint](https://github.com/sheerun/apiblueprint.vim)
- [applescript](https://github.com/mityu/vim-applescript)
- [aptconf](https://github.com/vim/vim/tree/master/runtime)
- [arch](https://github.com/vim/vim/tree/master/runtime)
- [arduino](https://github.com/sudar/vim-arduino-syntax)
- [art](https://github.com/vim/vim/tree/master/runtime)
- [asciidoc](https://github.com/asciidoc/vim-asciidoc)
- [asn](https://github.com/vim/vim/tree/master/runtime)
- [aspperl](https://github.com/vim/vim/tree/master/runtime)
- [aspvbs](https://github.com/vim/vim/tree/master/runtime)
- [atlas](https://github.com/vim/vim/tree/master/runtime)
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey)
- [autoit](https://github.com/vim/vim/tree/master/runtime)
- [automake](https://github.com/vim/vim/tree/master/runtime)
- [ave](https://github.com/vim/vim/tree/master/runtime)
- [awk](https://github.com/vim/vim/tree/master/runtime)
- [blade](https://github.com/jwalton512/vim-blade)
- [apiblueprint](https://github.com/kylef/apiblueprint.vim) (API Blueprint syntax highlighting for apib files)
- [applescript](https://github.com/mityu/vim-applescript) (AppleScript syntax highlighting for applescript and scpt files)
- [arduino](https://github.com/sudar/vim-arduino-syntax) (Processing syntax highlighting for pde and ino files)
- [asciidoc](https://github.com/asciidoc/vim-asciidoc) (AsciiDoc syntax highlighting for asciidoc, adoc and asc files)
- [autohotkey](https://github.com/hnamikaw/vim-autohotkey) (AutoHotkey syntax highlighting for ahk and ahkl files)
- [blade](https://github.com/jwalton512/vim-blade) (Blade syntax highlighting for blade and blade.php files)
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
- [c/c++](https://github.com/vim-jp/vim-cpp)
- [c/c++](https://github.com/vim-jp/vim-cpp) (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 17 more files)
- [caddyfile](https://github.com/isobit/vim-caddyfile)
- [carp](https://github.com/hellerve/carp-vim)
- [carp](https://github.com/hellerve/carp-vim) (Syntax highlighting for carp files)
- [cjsx](https://github.com/mtscout6/vim-cjsx)
- [clojure](https://github.com/guns/vim-clojure-static)
- [cmake](https://github.com/pboettch/vim-cmake-syntax)
- [coffee-script](https://github.com/kchmck/vim-coffee-script)
- [cql](https://github.com/elubow/cql-vim)
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim)
- [crystal](https://github.com/rhysd/vim-crystal)
- [csv](https://github.com/chrisbra/csv.vim)
- [cucumber](https://github.com/tpope/vim-cucumber)
- [cue](https://github.com/mgrabovsky/vim-cuesheet)
- [dart](https://github.com/dart-lang/dart-vim-plugin)
- [dhall](https://github.com/vmchale/dhall-vim)
- [dlang](https://github.com/JesseKPhillips/d.vim)
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim)
- [elf](https://github.com/vim/vim/tree/master/runtime)
- [elixir](https://github.com/elixir-lang/vim-elixir)
- [elm](https://github.com/andys8/vim-elm-syntax)
- [emberscript](https://github.com/yalesov/vim-ember-script)
- [emblem](https://github.com/yalesov/vim-emblem)
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime)
- [fennel](https://github.com/bakpakin/fennel.vim)
- [ferm](https://github.com/vim-scripts/ferm.vim)
- [fish](https://github.com/georgewitteman/vim-fish)
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers)
- [forth](https://github.com/vim/vim/tree/master/runtime)
- [fsharp](https://github.com/ionide/Ionide-vim)
- [gdscript](https://github.com/calviken/vim-gdscript3)
- [git](https://github.com/tpope/vim-git)
- [glsl](https://github.com/tikhomirov/vim-glsl)
- [gmpl](https://github.com/maelvalais/gmpl.vim)
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting)
- [go](https://github.com/fatih/vim-go)
- [clojure](https://github.com/guns/vim-clojure-static) (Clojure syntax highlighting for clj, boot, cl2, cljc, cljs, cljs.hl, cljscm, cljx, hic and edn files)
- [cmake](https://github.com/pboettch/vim-cmake-syntax) (CMake syntax highlighting for cmake and cmake.in files)
- [coffee-script](https://github.com/kchmck/vim-coffee-script) (CoffeeScript and Literate CoffeeScript syntax highlighting for coffee, cake, cjsx, iced, coffeekup, litcoffee and coffee.md files)
- [cpp-modern](https://github.com/bfrg/vim-cpp-modern)
- [cql](https://github.com/elubow/cql-vim) (Syntax highlighting for cql files)
- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim) (Syntax highlighting for cry, cyl, lcry and lcyl files)
- [crystal](https://github.com/rhysd/vim-crystal) (Crystal and HTML+ECR syntax highlighting for cr and ecr files)
- [csv](https://github.com/chrisbra/csv.vim) (CSV syntax highlighting for csv, tsv and tab files)
- [cucumber](https://github.com/tpope/vim-cucumber) (Gherkin syntax highlighting for feature and story files)
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (Syntax highlighting for cue files)
- [dart](https://github.com/dart-lang/dart-vim-plugin) (Dart syntax highlighting for dart and drt files)
- [dhall](https://github.com/vmchale/dhall-vim) (Dhall syntax highlighting for dhall files)
- [dlang](https://github.com/JesseKPhillips/d.vim) (D syntax highlighting for d, di, lst, dd, ddoc and sdl files)
- [docker-compose](https://github.com/ekalinin/Dockerfile.vim)
- [elixir](https://github.com/elixir-lang/vim-elixir) (Elixir and HTML+EEX syntax highlighting for ex, exs, eex, html.leex and leex files)
- [elm](https://github.com/andys8/vim-elm-syntax) (Elm syntax highlighting for elm files)
- [emberscript](https://github.com/yalesov/vim-ember-script) (EmberScript syntax highlighting for em and emberscript files)
- [emblem](https://github.com/yalesov/vim-emblem) (Syntax highlighting for emblem and em files)
- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (Erlang syntax highlighting for erl, app.src, es, escript, hrl, xrl, yrl, app and yaws files)
- [fennel](https://github.com/bakpakin/fennel.vim) (Syntax highlighting for fnl files)
- [ferm](https://github.com/vim-scripts/ferm.vim) (Syntax highlighting for ferm files)
- [fish](https://github.com/blankname/vim-fish) (fish syntax highlighting for fish files)
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (Syntax highlighting for fbs files)
- [fsharp](https://github.com/ionide/Ionide-vim) (F# syntax highlighting for fs, fsi and fsx files)
- [gdscript](https://github.com/calviken/vim-gdscript3) (GDScript syntax highlighting for gd files)
- [git](https://github.com/tpope/vim-git) (Git Config syntax highlighting for gitconfig files)
- [gitignore](https://github.com/fszymanski/fzf-gitignore)
- [glsl](https://github.com/tikhomirov/vim-glsl) (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 16 more files)
- [gmpl](https://github.com/maelvalais/gmpl.vim) (Syntax highlighting for mod files)
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (Gnuplot syntax highlighting for gp, gnu, gnuplot, p, plot, plt and gpi files)
- [go](https://github.com/fatih/vim-go) (Go syntax highlighting for go and tmpl files)
- [gradle](https://github.com/tfnico/vim-gradle)
- [graphql](https://github.com/jparise/vim-graphql)
- [grub](https://github.com/vim/vim/tree/master/runtime)
- [haml](https://github.com/sheerun/vim-haml)
- [handlebars](https://github.com/sheerun/vim-mustache-handlebars)
- [haproxy](https://github.com/CH-DanReif/haproxy.vim)
- [haskell](https://github.com/neovimhaskell/haskell-vim)
- [haxe](https://github.com/yaymukund/vim-haxe)
- [hcl](https://github.com/b4b4r07/vim-hcl)
- [graphql](https://github.com/jparise/vim-graphql) (GraphQL syntax highlighting for graphql, gql and graphqls files)
- [haml](https://github.com/tpope/vim-haml) (Haml syntax highlighting for haml, haml.deface, hamlc and hamlbars files)
- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (Mustache and Handlebars syntax highlighting for mustache, hogan, hulk, hjs, handlebars, hbs, hdbs and hb files)
- [haproxy](https://github.com/CH-DanReif/haproxy.vim) (HAProxy syntax highlighting)
- [haskell](https://github.com/neovimhaskell/haskell-vim) (Haskell syntax highlighting for hs, hs-boot, hsc, bpk and hsig files)
- [haxe](https://github.com/yaymukund/vim-haxe) (Haxe syntax highlighting for hx and hxsl files)
- [hcl](https://github.com/b4b4r07/vim-hcl) (HCL syntax highlighting for hcl, nomad and workflow files)
- [helm](https://github.com/towolf/vim-helm)
- [help](https://github.com/neovim/neovim/tree/master/runtime)
- [hive](https://github.com/zebradil/hive.vim)
- [html5](https://github.com/othree/html5.vim)
- [i3](https://github.com/mboughaba/i3config.vim)
- [icalendar](https://github.com/chutzpah/icalendar.vim)
- [idris](https://github.com/idris-hackers/idris-vim)
- [ion](https://github.com/vmchale/ion-vim)
- [hive](https://github.com/zebradil/hive.vim) (HiveQL syntax highlighting for q, hql and ql files)
- [html5](https://github.com/sheerun/html5.vim)
- [i3](https://github.com/mboughaba/i3config.vim) (Syntax highlighting for i3.config and i3config files)
- [icalendar](https://github.com/chutzpah/icalendar.vim) (Syntax highlighting for ics files)
- [idris2](https://github.com/edwinb/idris2-vim) (Syntax highlighting for idr, ipkg and lidr files)
- [idris](https://github.com/idris-hackers/idris-vim) (Idris syntax highlighting for idr and lidr files)
- [ion](https://github.com/vmchale/ion-vim) (Syntax highlighting for ion files)
- [javascript-sql](https://github.com/statico/vim-javascript-sql)
- [javascript](https://github.com/pangloss/vim-javascript)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax)
- [jinja](https://github.com/lepture/vim-jinja)
- [jq](https://github.com/vito-c/jq.vim)
- [json5](https://github.com/GutenYe/json5.vim)
- [json](https://github.com/elzr/vim-json)
- [jsonnet](https://github.com/google/vim-jsonnet)
- [jst](https://github.com/briancollins/vim-jst)
- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty)
- [julia](https://github.com/JuliaEditorSupport/julia-vim)
- [kotlin](https://github.com/udalov/kotlin-vim)
- [ledger](https://github.com/ledger/vim-ledger)
- [less](https://github.com/groenewege/vim-less)
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond)
- [livescript](https://github.com/gkz/vim-ls)
- [llvm](https://github.com/rhysd/vim-llvm)
- [log](https://github.com/MTDL9/vim-log-highlighting)
- [lua](https://github.com/tbastos/vim-lua)
- [m4](https://github.com/vim/vim/tree/master/runtime)
- [mako](https://github.com/sophacles/vim-bundle-mako)
- [markdown](https://github.com/plasticboy/vim-markdown)
- [mathematica](https://github.com/voldikss/vim-mma)
- [mdx](https://github.com/jxnblk/vim-mdx-js)
- [meson](https://github.com/mesonbuild/meson/tree/master/data/syntax-highlighting/vim)
- [moonscript](https://github.com/leafo/moonscript-vim)
- [murphi](https://github.com/vim/vim/tree/master/runtime)
- [nginx](https://github.com/chr4/nginx.vim)
- [nim](https://github.com/zah/nim.vim)
- [nix](https://github.com/LnL7/vim-nix)
- [objc](https://github.com/b4winckler/vim-objc)
- [ocaml](https://github.com/rgrinberg/vim-ocaml)
- [octave](https://github.com/McSinyx/vim-octave)
- [opencl](https://github.com/petRUShka/vim-opencl)
- [perl](https://github.com/vim-perl/vim-perl)
- [pgsql](https://github.com/lifepillar/pgsql.vim)
- [php](https://github.com/StanAngeloff/php.vim)
- [plantuml](https://github.com/aklt/plantuml-syntax)
- [pony](https://github.com/jakwings/vim-pony)
- [powershell](https://github.com/PProvost/vim-ps1)
- [protobuf](https://github.com/uarun/vim-protobuf)
- [pug](https://github.com/digitaltoad/vim-pug)
- [puppet](https://github.com/rodjek/vim-puppet)
- [purescript](https://github.com/purescript-contrib/purescript-vim)
- [javascript](https://github.com/pangloss/vim-javascript) (JavaScript syntax highlighting for js, bones, cjs, es, es6 and 17 more files)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (Syntax highlighting for jenkinsfile and Jenkinsfile files)
- [jq](https://github.com/vito-c/jq.vim) (JSONiq syntax highlighting for jq files)
- [json5](https://github.com/GutenYe/json5.vim) (JSON5 syntax highlighting for json5 files)
- [json](https://github.com/elzr/vim-json) (JSON syntax highlighting for json, avsc, geojson, gltf, har and 13 more files)
- [jsonc](https://github.com/neoclide/jsonc.vim) (Syntax highlighting for cjson and jsonc files)
- [jsonnet](https://github.com/google/vim-jsonnet) (Jsonnet syntax highlighting for jsonnet and libsonnet files)
- [jst](https://github.com/briancollins/vim-jst) (EJS syntax highlighting for ejs, ect and jst files)
- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (JSX syntax highlighting for jsx files)
- [julia](https://github.com/JuliaEditorSupport/julia-vim) (Julia syntax highlighting for jl files)
- [kotlin](https://github.com/udalov/kotlin-vim) (Kotlin syntax highlighting for kt, ktm and kts files)
- [ledger](https://github.com/ledger/vim-ledger) (Syntax highlighting for ldg, ledger and journal files)
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (LilyPond syntax highlighting for ly and ily files)
- [livescript](https://github.com/gkz/vim-ls) (LiveScript syntax highlighting for ls files)
- [llvm](https://github.com/rhysd/vim-llvm) (LLVM syntax highlighting for ll and td files)
- [log](https://github.com/MTDL9/vim-log-highlighting) (Syntax highlighting for log and LOG files)
- [lua](https://github.com/tbastos/vim-lua) (Lua syntax highlighting for lua, fcgi, nse, p8, rbxs, rockspec and wlua files)
- [mako](https://github.com/sophacles/vim-bundle-mako) (Mako syntax highlighting for mako and mao files)
- [markdown](https://github.com/plasticboy/vim-markdown) (Markdown syntax highlighting for md, markdown, mdown, mdwn, mkd, mkdn, mkdown, ronn and workbook files)
- [mathematica](https://github.com/voldikss/vim-mma) (Mathematica syntax highlighting for mathematica, cdf, m, ma, mt and 6 more files)
- [mdx](https://github.com/jxnblk/vim-mdx-js) (Syntax highlighting for mdx files)
- [meson](https://github.com/mesonbuild/meson/tree/master/data/syntax-highlighting/vim) (Meson syntax highlighting for wrap files)
- [mint](https://github.com/IrenejMarc/vim-mint) (Syntax highlighting for mint files)
- [moonscript](https://github.com/leafo/moonscript-vim) (MoonScript syntax highlighting for moon files)
- [nginx](https://github.com/chr4/nginx.vim) (Nginx syntax highlighting for nginx, nginxconf and vhost files)
- [nim](https://github.com/zah/nim.vim) (Nim syntax highlighting for nim, nim.cfg, nimble, nimrod and nims files)
- [nix](https://github.com/LnL7/vim-nix) (Nix syntax highlighting for nix files)
- [objc](https://github.com/b4winckler/vim-objc) (Objective-C syntax highlighting for m and h files)
- [ocaml](https://github.com/rgrinberg/vim-ocaml) (OCaml syntax highlighting for ml, eliom, eliomi, ml4, mli and 13 more files)
- [octave](https://github.com/McSinyx/vim-octave) (Syntax highlighting for oct and m files)
- [odin](https://github.com/Tetralux/odin.vim) (Odin syntax highlighting for odin files)
- [opencl](https://github.com/petRUShka/vim-opencl) (OpenCL syntax highlighting for cl and opencl files)
- [perl](https://github.com/vim-perl/vim-perl) (Perl syntax highlighting for pl, al, cgi, fcgi, perl and 12 more files)
- [pest](https://github.com/pest-parser/pest.vim) (Syntax highlighting for pest files)
- [pgsql](https://github.com/lifepillar/pgsql.vim) (PLpgSQL syntax highlighting for pgsql files)
- [php](https://github.com/StanAngeloff/php.vim) (PHP syntax highlighting for php, aw, ctp, fcgi, inc and 7 more files)
- [plantuml](https://github.com/aklt/plantuml-syntax) (PlantUML syntax highlighting for puml, iuml, plantuml, uml and pu files)
- [pony](https://github.com/jakwings/vim-pony) (Pony syntax highlighting for pony files)
- [powershell](https://github.com/PProvost/vim-ps1) (PowerShell syntax highlighting for ps1, psd1, psm1, pssc and ps1xml files)
- [protobuf](https://github.com/uarun/vim-protobuf) (Protocol Buffer syntax highlighting for proto files)
- [pug](https://github.com/digitaltoad/vim-pug) (Pug syntax highlighting for jade and pug files)
- [puppet](https://github.com/rodjek/vim-puppet) (Puppet syntax highlighting for pp and epp files)
- [purescript](https://github.com/purescript-contrib/purescript-vim) (PureScript syntax highlighting for purs files)
- [python-compiler](https://github.com/aliev/vim-compiler-python)
- [python-indent](https://github.com/Vimjas/vim-python-pep8-indent)
- [python](https://github.com/vim-python/python-syntax)
- [qmake](https://github.com/artoj/qmake-syntax-vim)
- [qml](https://github.com/peterhoeg/vim-qml)
- [r-lang](https://github.com/vim-scripts/R.vim)
- [racket](https://github.com/wlangstroth/vim-racket)
- [ragel](https://github.com/jneen/ragel.vim)
- [raku](https://github.com/Raku/vim-raku)
- [raml](https://github.com/IN3D/vim-raml)
- [razor](https://github.com/adamclerk/vim-razor)
- [reason](https://github.com/reasonml-editor/vim-reason-plus)
- [requirements](https://github.com/raimon49/requirements.txt.vim)
- [python](https://github.com/vim-python/python-syntax) (Python syntax highlighting for py, cgi, fcgi, gyp, gypi and 14 more files)
- [qmake](https://github.com/artoj/qmake-syntax-vim) (QMake syntax highlighting for pro and pri files)
- [qml](https://github.com/peterhoeg/vim-qml) (QML syntax highlighting for qml and qbs files)
- [r-lang](https://github.com/vim-scripts/R.vim) (R syntax highlighting for r, rsx, s, S and rd files)
- [racket](https://github.com/wlangstroth/vim-racket) (Racket syntax highlighting for rkt, rktd, rktl and scrbl files)
- [ragel](https://github.com/jneen/ragel.vim) (Ragel syntax highlighting for rl files)
- [raku](https://github.com/Raku/vim-raku) (Raku syntax highlighting for 6pl, 6pm, nqp, p6, p6l and 12 more files)
- [raml](https://github.com/IN3D/vim-raml) (RAML syntax highlighting for raml files)
- [razor](https://github.com/adamclerk/vim-razor) (HTML+Razor syntax highlighting for cshtml and razor files)
- [reason](https://github.com/reasonml-editor/vim-reason-plus) (Reason syntax highlighting for re and rei files)
- [requirements](https://github.com/raimon49/requirements.txt.vim) (Syntax highlighting for pip files)
- [rspec](https://github.com/keith/rspec.vim)
- [rst](https://github.com/marshallward/vim-restructuredtext)
- [ruby](https://github.com/vim-ruby/vim-ruby)
- [rust](https://github.com/rust-lang/rust.vim)
- [sbt](https://github.com/derekwyatt/vim-sbt)
- [scala](https://github.com/derekwyatt/vim-scala)
- [scss](https://github.com/cakebaker/scss-syntax.vim)
- [sh](https://github.com/arzg/vim-sh)
- [slim](https://github.com/slim-template/vim-slim)
- [slime](https://github.com/slime-lang/vim-slime-syntax)
- [smt2](https://github.com/bohlender/vim-smt2)
- [solidity](https://github.com/tomlion/vim-solidity)
- [stylus](https://github.com/wavded/vim-stylus)
- [svelte](https://github.com/evanleck/vim-svelte/tree/main)
- [rst](https://github.com/marshallward/vim-restructuredtext) (reStructuredText syntax highlighting for rst, rest, rest.txt and rst.txt files)
- [ruby](https://github.com/vim-ruby/vim-ruby) (Ruby and HTML+ERB syntax highlighting for rb, builder, eye, fcgi, gemspec and 25 more files)
- [rust](https://github.com/rust-lang/rust.vim) (Rust syntax highlighting for rs and rs.in files)
- [scala](https://github.com/derekwyatt/vim-scala) (Scala syntax highlighting for scala, kojo and sc files)
- [scss](https://github.com/cakebaker/scss-syntax.vim) (SCSS syntax highlighting for scss files)
- [sh](https://github.com/arzg/vim-sh) (Shell syntax highlighting for sh, bash, bats, cgi, command and 7 more files)
- [slim](https://github.com/slim-template/vim-slim) (Slim syntax highlighting for slim files)
- [slime](https://github.com/slime-lang/vim-slime-syntax) (Syntax highlighting for slime files)
- [smt2](https://github.com/bohlender/vim-smt2) (SMT syntax highlighting for smt2 and smt files)
- [solidity](https://github.com/tomlion/vim-solidity) (Solidity syntax highlighting for sol files)
- [stylus](https://github.com/wavded/vim-stylus) (Stylus syntax highlighting for styl and stylus files)
- [svelte](https://github.com/evanleck/vim-svelte/tree/main) (Svelte syntax highlighting for svelte files)
- [svg-indent](https://github.com/jasonshell/vim-svg-indent)
- [svg](https://github.com/vim-scripts/svg.vim)
- [swift](https://github.com/keith/swift.vim)
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc)
- [systemd](https://github.com/wgwoods/vim-systemd-syntax)
- [terraform](https://github.com/hashivim/vim-terraform)
- [textile](https://github.com/timcharper/textile.vim)
- [thrift](https://github.com/solarnz/thrift.vim)
- [svg](https://github.com/vim-scripts/svg.vim) (SVG syntax highlighting for svg files)
- [swift](https://github.com/keith/swift.vim) (Swift syntax highlighting for swift files)
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (Syntax highlighting for sxhkdrc files)
- [systemd](https://github.com/wgwoods/vim-systemd-syntax) (Syntax highlighting for automount, dnssd, link, mount, netdev and 9 more files)
- [terraform](https://github.com/hashivim/vim-terraform) (Syntax highlighting for tf and tfvars files)
- [textile](https://github.com/timcharper/textile.vim) (Textile syntax highlighting for textile files)
- [thrift](https://github.com/solarnz/thrift.vim) (Thrift syntax highlighting for thrift files)
- [tmux](https://github.com/ericpruitt/tmux.vim/tree/master/vim)
- [toml](https://github.com/cespare/vim-toml)
- [tptp](https://github.com/c-cube/vim-tptp)
- [trasys](https://github.com/vim/vim/tree/master/runtime)
- [twig](https://github.com/lumiliet/vim-twig)
- [typescript](https://github.com/HerringtonDarkholme/yats.vim)
- [unison](https://github.com/unisonweb/unison/tree/trunk/editor-support/vim)
- [v](https://github.com/ollykel/v-vim)
- [vala](https://github.com/arrufat/vala.vim)
- [vbnet](https://github.com/vim-scripts/vbnet.vim)
- [vcl](https://github.com/smerrill/vcl-vim-plugin)
- [velocity](https://github.com/lepture/vim-velocity)
- [vmasm](https://github.com/vim/vim/tree/master/runtime)
- [vue](https://github.com/posva/vim-vue)
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax)
- [xml](https://github.com/amadeus/vim-xml)
- [xsl](https://github.com/vim-scripts/XSLT-syntax)
- [yaml](https://github.com/stephpy/vim-yaml)
- [yard](https://github.com/sheerun/vim-yardoc)
- [zephir](https://github.com/xwsoul/vim-zephir)
- [zig](https://github.com/ziglang/zig.vim)
- [toml](https://github.com/cespare/vim-toml) (TOML syntax highlighting for toml files)
- [tptp](https://github.com/c-cube/vim-tptp) (Syntax highlighting for p, tptp and ax files)
- [twig](https://github.com/lumiliet/vim-twig) (Twig syntax highlighting for twig and xml.twig files)
- [typescript](https://github.com/HerringtonDarkholme/yats.vim) (TypeScript and TSX syntax highlighting for ts and tsx files)
- [unison](https://github.com/unisonweb/unison/tree/trunk/editor-support/vim) (Syntax highlighting for u and uu files)
- [v](https://github.com/ollykel/v-vim) (V syntax highlighting for v, vv and vsh files)
- [vala](https://github.com/arrufat/vala.vim) (Vala syntax highlighting for vala, vapi and valadoc files)
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (Visual Basic .NET syntax highlighting for vb and vbhtml files)
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (VCL syntax highlighting for vcl files)
- [velocity](https://github.com/lepture/vim-velocity) (Syntax highlighting for vm files)
- [vue](https://github.com/posva/vim-vue) (Vue syntax highlighting for vue and wpy files)
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (Syntax highlighting for xdc files)
- [xml](https://github.com/amadeus/vim-xml) (XML syntax highlighting for xml, adml, admx, ant, axml and 94 more files)
- [xsl](https://github.com/vim-scripts/XSLT-syntax) (XSLT syntax highlighting for xslt and xsl files)
- [yard](https://github.com/noprompt/vim-yardoc)
- [zephir](https://github.com/xwsoul/vim-zephir) (Zephir syntax highlighting for zep files)
- [zig](https://github.com/ziglang/zig.vim) (Zig syntax highlighting for zir, zig and zir files)
- [zinit](https://github.com/zinit-zsh/zplugin-vim-syntax)
<!--/Language Packs-->
@@ -241,17 +210,27 @@ You can either wait for new patch release with updates or run `make` by yourself
## Troubleshooting
Please make sure you have `syntax on` in your `.vimrc` (or use something like [sheerun/vimrc](https://github.com/sheerun/vimrc))
Please make sure you have `set nocompatible` in your `.vimrc` (or use something like [sheerun/vimrc](https://github.com/sheerun/vimrc))
Individual language packs can be disabled by setting `g:polyglot_disabled` as follows:
**Please declare this variable before polyglot is loaded (at the top of .vimrc)**
```vim
let g:polyglot_disabled = ['css']
let g:polyglot_disabled = ['markdown']
```
*Please declare this variable before polyglot is loaded (at the top of .vimrc)*
The list of available languages to disable is shown above.
Please note that disabling a language won't make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are loaded lazily, on demand.
If you wish to use filetype detection by Vim Polyglot but you'd like to use your own syntax-highlighting plugin, you can append `.plugin` to disabled entry, like below. Disabling Vim Polyglot filetype plugin won't disable native Vim filetype plugin.
```vim
let g:polyglot_disabled = ['markdown.plugin']
```
Please note that disabling a language won't make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are lazily loaded only when they are really needed.
## Autoindent
Vim Polyglot tries to automatically detect indentation settings (just like vim-sleuth). If this feature is not working for you for some reason, please file an issue and disable it temporarily with:
@@ -259,6 +238,15 @@ Vim Polyglot tries to automatically detect indentation settings (just like vim-s
let g:polyglot_disabled = ['autoindent']
```
## Default settings
Vim Polyglot includes vim-sensible plugin, which is usually necessary for editing any language. This can be disabled with:
```vim
let g:polyglot_disabled = ['sensible']
```
## Contributing
Language packs are periodically updated using automated `scripts/build` script.

View File

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

View File

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

View File

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

13
after/ftplugin/html.vim Normal file
View File

@@ -0,0 +1,13 @@
if has_key(g:polyglot_is_disabled, 'html5')
finish
endif
" 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-->

View File

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

View File

@@ -0,0 +1,5 @@
if has_key(g:polyglot_is_disabled, 'idris2')
finish
endif
setlocal iskeyword+='

View File

@@ -0,0 +1,16 @@
if has_key(g:polyglot_is_disabled, 'javascript')
finish
endif
" 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

View File

@@ -0,0 +1,9 @@
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
if get(g:, 'vim_jsx_pretty_disable_js', 0)
finish
endif
source <sfile>:h/jsx.vim

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

View File

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

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

@@ -0,0 +1,35 @@
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 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

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'puppet') == -1
if has_key(g:polyglot_is_disabled, 'puppet')
finish
endif
if !exists('g:puppet_align_hashes')
let g:puppet_align_hashes = 1
@@ -7,5 +9,3 @@ endif
if g:puppet_align_hashes
inoremap <buffer> <silent> => =><Esc>:call puppet#align#AlignHashrockets()<CR>$a
endif
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
" modified from html.vim
" For matchit plugin
@@ -28,5 +30,3 @@ augroup jsx_comment
augroup end
setlocal suffixesadd+=.tsx
endif

View File

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

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 has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
if get(g:, 'vim_jsx_pretty_disable_js', 0)
finish
endif
source <sfile>:h/jsx.vim

View File

@@ -0,0 +1,46 @@
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" 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

View File

@@ -1,80 +1,3 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
"
" Permission is hereby granted, free of charge, to any person obtaining a copy
" of this software and associated documentation files (the "Software"), to
" deal in the Software without restriction, including without limitation the
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
" sell copies of the Software, and to permit persons to whom the Software is
" furnished to do so, subject to the following conditions:
"
" The above copyright notice and this permission notice shall be included in
" all copies or substantial portions of the Software.
"
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
" IN THE SOFTWARE.
"
" Language: GraphQL
" Maintainer: Jon Parise <jon@indelible.org>
runtime! indent/graphql.vim
" Don't redefine our function and also require the standard Javascript indent
" function to exist.
if exists('*GetJavascriptGraphQLIndent') || !exists('*GetJavascriptIndent')
finish
endif
" Set the indentexpr with our own version that will call GetGraphQLIndent when
" we're inside of a GraphQL string and otherwise defer to GetJavascriptIndent.
setlocal indentexpr=GetJavascriptGraphQLIndent()
function GetJavascriptGraphQLIndent()
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val,'name')")
if !empty(l:stack) && l:stack[0] ==# 'graphqlTemplateString'
return GetGraphQLIndent()
endif
return GetJavascriptIndent()
endfunction
endif
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim indent file
"
" Language: javascript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if exists('b:did_indent')
let s:did_indent = b:did_indent
unlet b:did_indent
endif
let s:keepcpo = &cpo
set cpo&vim
if exists('s:did_indent')
let b:did_indent = s:did_indent
endif
setlocal indentexpr=GetJsxIndent()
setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/
function! GetJsxIndent()
return jsx_pretty#indent#get(function('GetJavascriptIndent'))
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
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, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/javascript.vim
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
source <sfile>:h/jsx.vim

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

@@ -0,0 +1,33 @@
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 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

View File

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

46
after/indent/php.vim Normal file
View File

@@ -0,0 +1,46 @@
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" 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('*GetPHPGraphQLIndent') && !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=GetPHPGraphQLIndent()
function GetPHPGraphQLIndent()
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val, 'name')")
if get(l:stack, 0, '') ==# 'phpRegion' && count(l:stack, 'graphqlFold') > 0
return GetGraphQLIndent()
endif
return eval(b:indentexpr_base)
endfunction

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim indent file
@@ -36,5 +38,3 @@ endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
"
@@ -23,25 +25,22 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
" Language: GraphQL
" Maintainer: Jon Parise <jon@indelible.org>
runtime! indent/graphql.vim
" Don't redefine our function and also require the standard Typescript indent
" function to exist.
if exists('*GetTypescriptGraphQLIndent') || !exists('*GetTypescriptIndent')
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 GetTypescriptIndent.
" 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 !empty(l:stack) && l:stack[0] ==# 'graphqlTemplateString'
let l:stack = map(synstack(v:lnum, 1), "synIDattr(v:val, 'name')")
if get(l:stack, 0, '') ==# 'graphqlTemplateString'
return GetGraphQLIndent()
endif
return GetTypescriptIndent()
return eval(b:indentexpr_base)
endfunction
endif

View File

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

66
after/syntax/c.vim Normal file
View File

@@ -0,0 +1,66 @@
if has_key(g:polyglot_is_disabled, 'cpp-modern')
finish
endif
" ==============================================================================
" Vim syntax file
" Language: C Additions
" Original Author: Mikhail Wolfson <mywolfson@gmail.com>
" Maintainer: bfrg <https://github.com/bfrg>
" Website: https://github.com/bfrg/vim-cpp-modern
" Last Change: Nov 23, 2020
"
" This syntax file is based on:
" https://github.com/octol/vim-cpp-enhanced-highlight
" ==============================================================================
" Highlight additional keywords in the comments
syn keyword cTodo contained BUG NOTE
" Highlight function names
if !get(g:, 'cpp_no_function_highlight', 0)
syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cParen,cCppParen
hi def link cUserFunction Function
endif
" Highlight struct/class member variables
if get(g:, 'cpp_member_highlight', 0)
syn match cMemberAccess "\.\|->" nextgroup=cStructMember,cppTemplateKeyword
syn match cStructMember "\<\h\w*\>\%((\|<\)\@!" contained
syn cluster cParenGroup add=cStructMember
syn cluster cPreProcGroup add=cStructMember
syn cluster cMultiGroup add=cStructMember
hi def link cStructMember Identifier
if &filetype ==# 'cpp'
syn keyword cppTemplateKeyword template
hi def link cppTemplateKeyword cppStructure
endif
endif
" Common ANSI-standard Names
syn keyword cAnsiName
\ PRId8 PRIi16 PRIo32 PRIu64 PRId16 PRIi32 PRIo64 PRIuLEAST8 PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16 PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32 PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64 PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8 PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16 PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32 PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64 PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR PRIdFAST64 PRIiMAX PRIoPTR PRIx8 PRIdMAX PRIiPTR PRIu8 PRIx16 PRIdPTR PRIo8 PRIu16 PRIx32 PRIi8 PRIo16 PRIu32 PRIx64 PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32 PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64 PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8 PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16 PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32 PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64 PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8 PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16 PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32 PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64 PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8 PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16 PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32 PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64 PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8 PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16 PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32 PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64 PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR PRIXMAX SCNiFAST8 SCNuLEAST8 PRIXPTR SCNiFAST16 SCNuLEAST16 STDC CX_LIMITED_RANGE STDC FENV_ACCESS STDC FP_CONTRACT
\ errno environ and bitor not_eq xor and_eq compl or xor_eq bitand not or_eq
" Booleans
syn keyword cBoolean true false TRUE FALSE
" Default highlighting
hi def link cBoolean Boolean
hi def link cAnsiName Identifier
" Highlight all standard C keywords as Statement
" This is very similar to what other IDEs and editors do
if get(g:, 'cpp_simple_highlight', 0)
hi! def link cStorageClass Statement
hi! def link cStructure Statement
hi! def link cTypedef Statement
hi! def link cLabel Statement
endif

View File

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

212
after/syntax/cpp.vim Normal file
View File

@@ -0,0 +1,212 @@
if has_key(g:polyglot_is_disabled, 'cpp-modern')
finish
endif
" ==============================================================================
" Vim syntax file
" Language: C++ (Standard library including C++11/14/17/20)
" Original Author: Jon Haggblad <https://github.com/octol>
" Maintainer: bfrg <https://github.com/bfrg>
" Website: https://github.com/bfrg/vim-cpp-modern
" Last Change: Nov 23, 2020
"
" This syntax file is based on:
" https://github.com/octol/vim-cpp-enhanced-highlight
" ==============================================================================
" C++ attributes {{{1
if get(g:, 'cpp_attributes_highlight', 0)
syntax region cppAttribute matchgroup=cppAttributeBrackets start='\[\[' end=']]' contains=cString
hi def link cppAttribute Macro
hi def link cppAttributeBrackets Identifier
endif
" Standard library {{{1
syntax keyword cppSTLdefine
\ MB_CUR_MAX MB_LEN_MAX WCHAR_MAX WCHAR_MIN WEOF __STDC_UTF_16__ __STDC_UTF_32__
syntax keyword cppSTLnamespace
\ std experimental rel_ops
syntax keyword cppSTLconstant
\ badbit digits digits10 eofbit failbit goodbit has_denorm has_denorm_loss has_infinity has_quiet_NaN has_signaling_NaN is_bounded is_exact is_iec559 is_integer is_modulo is_signed is_specialized max_exponent max_exponent10 min_exponent min_exponent10 npos radix round_style tinyness_before traps
syntax keyword cppSTLvariable
\ cerr cin clog cout wcerr wcin wclog wcout nothrow
syntax keyword cppSTLexception
\ bad_alloc bad_exception bad_typeid bad_cast domain_error exception failure invalid_argument length_error logic_error out_of_range overflow_error range_error runtime_error underflow_error
syntax keyword cppSTLios
\ endl ends flush resetiosflags setbase setfill setiosflags setprecision setw ws
syntax keyword cppSTLios
\ boolalpha dec defaultfloat fixed hex hexfloat internal left noboolalpha noshowbase noshowpoint noshowpos noskipws nounitbuf nouppercase oct right scientific showbase showpoint showpos skipws unitbuf uppercase
syntax keyword cppSTLtype
\ fmtflags iostate openmode Init allocator auto_ptr basic_filebuf basic_fstream basic_ifstream basic_ios basic_iostream basic_istream basic_istringstream basic_ofstream basic_ostream basic_ostringstream basic_streambuf basic_string basic_stringbuf basic_stringstream binary_compose binder1st binder2nd bitset char_traits char_type const_mem_fun1_t const_mem_fun_ref1_t const_mem_fun_ref_t const_mem_fun_t const_pointer const_reference container_type deque difference_type div_t event_callback filebuf first_type float_denorm_style float_round_style fpos fstream gslice_array ifstream imaxdiv_t indirect_array int_type ios ios_base iostream istream istringstream istrstream iterator_category iterator_traits key_compare key_type ldiv_t list lldiv_t map mapped_type mask_array mbstate_t mem_fun1_t mem_fun_ref1_t mem_fun_ref_t mem_fun_t multimap multiset nothrow_t numeric_limits off_type ofstream ostream ostringstream ostrstream pair pointer pointer_to_binary_function pointer_to_unary_function pos_type priority_queue queue reference second_type seekdir sequence_buffer set size_type slice_array stack state_type stream streambuf streamoff streampos streamsize string stringbuf stringstream strstream strstreambuf temporary_buffer test_type tm traits_type type_info u16string u32string unary_compose unary_negate valarray value_compare value_type vector wfilebuf wfstream wifstream wios wiostream wistream wistringstream wofstream wostream wostringstream wstreambuf wstreampos wstring wstringbuf wstringstream codecvt codecvt_base codecvt_byname collate collate_byname ctype ctype_base ctype_byname locale messages messages_base messages_byname money_base money_get money_put moneypunct moneypunct_byname num_get num_put numpunct numpunct_byname time_base time_get time_get_byname time_put time_put_byname binary_function binary_negate bit_and bit_not bit_or divides equal_to greater greater_equal less less_equal logical_and logical_not logical_or minus modulus multiplies negate not_equal_to plus unary_function unary_negate bidirectional_iterator_tag forward_iterator_tag input_iterator_tag output_iterator_tag random_access_iterator_tag
syntax keyword cppSTLtypedef
\ time_t sig_atomic_t wctrans_t wctype_t wint_t
syntax keyword cppSTLiterator
\ back_insert_iterator bidirectional_iterator const_iterator const_reverse_iterator forward_iterator front_insert_iterator input_iterator insert_iterator istream_iterator istreambuf_iterator iterator ostream_iterator ostreambuf_iterator output_iterator random_access_iterator raw_storage_iterator reverse_bidirectional_iterator reverse_iterator
" Function templates that are called with template parameters
syntax keyword cppSTLfunction
\ use_facet has_facet get
" Some of these keywords can be highlighted as cppSTLios or cppSTLconstant
" syntax keyword cppSTLconstant
" \ adjustfield app ate basefield binary floatfield in out trunc boolalpha dec fixed hex internal left oct right scientific showbase showpoint showpos skipws unitbuf uppercase
" C++11 extensions {{{1
if !exists('cpp_no_cpp11')
syntax keyword cppStatement nullptr
syntax keyword cppType char16_t char32_t
syntax keyword cppSTLnamespace chrono this_thread
syntax keyword cppSTLtype
\ array atomic atomic_bool atomic_char atomic_flag atomic_int atomic_llong atomic_long atomic_schar atomic_short atomic_uchar atomic_uint atomic_ullong atomic_ulong atomic_ushort duration duration_values high_resolution_clock hours microseconds milliseconds minutes nanoseconds seconds steady_clock system_clock time_point treat_as_floating_point condition_variable exception_ptr nested_exception hash is_bind_expression is_placeholder reference_wrapper forward_list future packaged_task promise shared_future initializer_list codecvt_mode codecvt_utf16 codecvt_utf8 codecvt_utf8_utf16 wbuffer_convert wstring_convert allocator_traits allocator_type default_delete enable_shared_from_this is_always_equal owner_less pointer_safety pointer_traits propagate_on_container_copy_assignment propagate_on_container_move_assignment propagate_on_container_swap rebind_alloc rebind_traits shared_ptr unique_ptr uses_allocator void_pointer const_void_pointer weak_ptr condition_variable_any lock_guard mutex once_flag recursive_mutex recursive_timed_mutex timed_mutex unique_lock bernoulli_distribution binomial_distribution cauchy_distribution chi_squared_distribution default_random_engine discard_block_engine discrete_distribution exponential_distribution extreme_value_distribution fisher_f_distribution gamma_distribution geometric_distribution independent_bits_engine knuth_b linear_congruential_engine lognormal_distribution mersenne_twister_engine minstd_rand minstd_rand0 mt19937 mt19937_64 negative_binomial_distribution normal_distribution piecewise_constant_distribution piecewise_linear_distribution poisson_distribution random_device ranlux24 ranlux24_base ranlux48 ranlux48_base seed_seq shuffle_order_engine student_t_distribution subtract_with_carry_engine uniform_int_distribution uniform_real_distribution weibull_distribution atto centi deca deci exa femto giga hecto kilo mega micro milli nano peta pico ratio ratio_add ratio_divide ratio_equal ratio_greater ratio_greater_equal ratio_less ratio_less_equal ratio_multiply ratio_not_equal ratio_subtract tera yocto yotta zepto zetta basic_regex match_results regex_traits sub_match syntax_option_type match_flag_type error_type scoped_allocator_adaptor outer_allocator_type inner_allocator_type error_code error_condition error_category is_error_code_enum is_error_condition_enum thread tuple tuple_size tuple_element type_index add_const add_cv add_lvalue_reference add_pointer add_rvalue_reference add_volatile aligned_storage aligned_union alignment_of common_type conditional decay enable_if extent false_type has_virtual_destructor integral_constant is_abstract is_arithmetic is_array is_assignable is_base_of is_class is_compound is_const is_constructible is_convertible is_copy_assignable is_copy_constructible is_default_constructible is_destructible is_empty is_enum is_floating_point is_function is_fundamental is_integral is_literal_type is_lvalue_reference is_member_function_pointer is_member_object_pointer is_member_pointer is_move_assignable is_move_constructible is_nothrow_assignable is_nothrow_constructible is_nothrow_copy_assignable is_nothrow_copy_constructible is_nothrow_default_constructible is_nothrow_destructible is_nothrow_move_assignable is_nothrow_move_constructible is_object is_pod is_pointer is_polymorphic is_reference is_rvalue_reference is_same is_scalar is_signed is_standard_layout is_trivial is_trivially_assignable is_trivially_constructible is_trivially_copy_assignable is_trivially_copy_constructible is_trivially_copyable is_trivially_default_constructible is_trivially_destructible is_trivially_move_assignable is_trivially_move_constructible is_union is_unsigned is_void is_volatile make_signed make_unsigned rank remove_all_extents remove_const remove_cv remove_extent remove_pointer remove_reference remove_volatile result_of true_type underlying_type hasher key_equal unordered_map unordered_multimap unordered_multiset unordered_set function
syntax keyword cppSTLtypedef
\ atomic_char16_t atomic_char32_t atomic_int_fast16_t atomic_int_fast32_t atomic_int_fast64_t atomic_int_fast8_t atomic_int_least16_t atomic_int_least32_t atomic_int_least64_t atomic_int_least8_t atomic_intmax_t atomic_intptr_t atomic_ptrdiff_t atomic_size_t atomic_uint_fast16_t atomic_uint_fast32_t atomic_uint_fast64_t atomic_uint_fast8_t atomic_uint_least16_t atomic_uint_least32_t atomic_uint_least64_t atomic_uint_least8_t atomic_uintmax_t atomic_uintptr_t atomic_wchar_t nullptr_t max_align_t allocator_arg_t adopt_lock_t defer_lock_t try_to_lock_t piecewise_construct_t
syntax keyword cppSTLconstant max_digits10
syntax keyword cppSTLvariable
\ _1 _2 _3 _4 _5 _6 _7 _8 _9 defer_lock try_to_lock adopt_lock allocator_arg
syntax keyword cppSTLdefine
\ math_errhandling FLT_EVAL_METHOD FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO HUGE_VALF HUGE_VALL INFINITY MATH_ERREXCEPT MATH_ERRNO NAN
syntax keyword cppSTLenum
\ memory_order future_status future_errc launch io_errc cv_status errc
syntax keyword cppSTLfunction
\ duration_cast time_point_cast mem_fn const_pointer_cast dynamic_pointer_cast static_pointer_cast allocate_shared make_shared isblank generate_canonical forward_as_tuple make_tuple tie tuple_cat declval forward move move_if_noexcept
syntax keyword cppSTLexception
\ bad_function_call future_error regex_error system_error bad_weak_ptr bad_array_new_length
" syntax keyword cppSTLiterator contained
syntax keyword cppSTLiterator
\ move_iterator regex_iterator regex_token_iterator const_local_iterator local_iterator
" Note: ignore is also a function
syntax match cppSTLvariable "\<ignore\>(\@!"
endif
" C++14 extensions {{{1
if !exists('cpp_no_cpp14')
syntax keyword cppSTLnamespace literals chrono_literals string_literals
syntax keyword cppSTLfunction make_unique
syntax keyword cppSTLtype
\ index_sequence index_sequence_for integer_sequence make_index_sequence make_integer_sequence shared_lock shared_timed_mutex is_null_pointer
syntax keyword cppSTLtypedef
\ tuple_element_t add_const_t add_cv_t add_lvalue_reference_t add_pointer_t add_rvalue_reference_t add_volatile_t aligned_storage_t aligned_union_t common_type_t conditional_t decay_t enable_if_t make_signed_t make_unsigned_t remove_all_extents_t remove_const_t remove_cv_t remove_extent_t remove_pointer_t remove_reference_t remove_volatile_t result_of_t underlying_type_t
endif
" C++17 extensions {{{1
if !exists('cpp_no_cpp17')
syntax keyword cppSTLnamespace filesystem execution
syntax keyword cppSTLtype
\ any is_execution_policy parallel_policy parallel_unsequenced_policy sequenced_policy directory_entry directory_iterator file_status file_time_type path recursive_directory_iterator space_info default_order default_searcher boyer_moore_searcher boyer_moore_horspool_searcher memory_resource monotonic_buffer_resource polymorphic_allocator pool_options synchronized_pool_resource unsynchronized_pool_resource scoped_lock optional shared_mutex basic_string_view string_view u16string_view u32string_view wstring_view bool_constant conjunction disjunction has_unique_object_representations invoke_result is_aggregate is_callable is_invocable is_invocable_r is_nothrow_invocable is_nothrow_invocable_r is_nothrow_swappable is_nothrow_swappable_with is_nowthrow_callable is_swappable is_swappable_with negation node_type insert_return_type in_place_tag monostate variant variant_size variant_alternative
syntax keyword cppSTLtypedef
\ invoke_result_t default_order_t nullopt_t void_t in_place_t in_place_type_t in_place_index_t variant_alternative_t
syntax keyword cppSTLexception
\ bad_any_cast filesystem_error bad_optional_access bad_variant_access
syntax keyword cppSTLconstant
\ is_always_lock_free seq par par_unseq copy_symlinks auto_format create_hard_links create_symlinks directories_only follow_directory_symlink generic_format group_all group_exec group_read group_write native_format others_all others_exec others_read others_write overwrite_existing owner_all owner_exec owner_read owner_write preferred_separator recursive set_gid set_uid skip_existing skip_permission_denied skip_symlinks sticky_bit update_existing hardware_destructive_interference_size hardware_constructive_interference_size tuple_size_v nullopt alignment_of_v rank_v extent_v variant_npos variant_size_v
syntax keyword cppSTLbool
\ treat_as_floating_point_v is_execution_policy_v is_bind_expression_v is_placeholder_v is_error_code_enum_v is_error_condition_enum_v uses_allocator_v conjunction_v disjunction_v has_unique_object_representations_v has_virtual_destructor_v is_abstract_v is_aggregate_v is_arithmetic_v is_array_v is_assignable_v is_base_of_v is_callable_v is_class_v is_compound_v is_const_v is_constructible_v is_convertible_v is_copy_assignable_v is_copy_constructible_v is_default_constructible_v is_destructible_v is_empty_v is_enum_v is_floating_point_v is_function_v is_fundamental_v is_integral_v is_invocable_r_v is_invocable_v is_literal_type_v is_lvalue_reference_v is_member_function_pointer_v is_member_object_pointer_v is_member_pointer_v is_move_assignable_v is_move_constructible_v is_nothrow_assignable_v is_nothrow_constructible_v is_nothrow_copy_assignable_v is_nothrow_copy_constructible_v is_nothrow_default_constructible_v is_nothrow_destructible_v is_nothrow_invocable_r_v is_nothrow_invocable_v is_nothrow_move_assignable_v is_nothrow_move_constructible_v is_nothrow_swappable_v is_nothrow_swappable_with_v is_nowthrow_callable_v is_null_pointer_v is_object_v is_pod_v is_pointer_v is_polymorphic_v is_reference_v is_rvalue_reference_v is_same_v is_scalar_v is_signed_v is_standard_layout_v is_swappable_v is_swappable_with_v is_trivial_v is_trivially_assignable_v is_trivially_constructible_v is_trivially_copy_assignable_v is_trivially_copy_constructible_v is_trivially_copyable_v is_trivially_default_constructible_v is_trivially_destructible_v is_trivially_move_assignable_v is_trivially_move_constructible_v is_union_v is_unsigned_v is_void_v is_volatile_v negation_v
syntax keyword cppSTLfunction
\ reinterpret_pointer_cast make_from_tuple make_optional any_cast
syntax keyword cppSTLenum
\ copy_options directory_options file_type perm_options perms
" Note: There is std::filesystem::path::format and std::format() in <format>
syntax match cppSTLenum "\<format\>(\@!"
" Note: these can be both member objects and methods
syntax match cppSTLvariable "\<\%(capacity\|free\|available\)\>(\@!"
" Note: these keywords are very likely to coincide with user-defined variables
" syntax keyword cppSTLconstant
" \ all mask unknown replace add remove nofollow none not_found regular directory symlink block character fifo socket unknown
endif
" C++20 extensions {{{1
if !exists('cpp_no_cpp20')
syntax keyword cppSTLnamespace ranges views
syntax keyword cppSTLconstant dynamic_extent
syntax keyword cppSTLvariable default_sentinel unreachable_sentinel
syntax keyword cppSTLtype
\ atomic_ref endian weak_ordering strong_ordering partial_ordering weak_equality strong_equality common_comparison_category contract_violation coroutine_traits coroutine_handle noop_coroutine_handle noop_coroutine_promise suspend_never suspend_always remove_cvref is_bounded_array is_layout_compatible is_unbounded_array is_nothrow_convertible has_strong_structural_equality is_pointer_interconvertible_base_of unwrap_reference unwrap_ref_decay basic_common_reference common_reference dangling ref_view filter_view transform_view iota_view join_view empty_view single_view split_view common_view reverse_view view_interface span basic_syncbuf basic_osyncstream syncbuf wsyncbuf osyncstream wosyncstream jthread latch barrier stop_token stop_source stop_callback counting_semaphore binary_semaphore source_location compare_three_way_result contiguous_iterator_tag incrementable_traits indirectly_readable_traits move_sentinel common_iterator counted_iterator projected type_identity
syntax keyword cppSTLtypedef
\ common_comparison_category_t remove_cvref_t unwrap_reference_t unwrap_ref_decay_t common_reference_t iterator_t sentinel_t safe_iterator_t safe_subrange_t compare_three_way_result_t iter_value_t iter_reference_t iter_difference_t iter_rvalue_reference_t iter_common_reference_t default_sentinel_t unreachable_sentinel_t indirect_result_t type_identity_t
syntax keyword cppSTLfunction
\ make_unique_default_init make_shared_default_init allocate_shared_default_init uses_allocator_construction_args make_obj_using_allocator is_corresponding_member subspan in_range is_pointer_interconvertible_with_class
syntax keyword cppSTLbool
\ is_bounded_array_v is_layout_compatible_v is_unbounded_array_v is_nothrow_convertible_v has_strong_structural_equality_v is_pointer_interconvertible_base_of_v disable_sized_sentinel_for disable_sized_range enable_borrowed_range enable_view
syntax keyword cppSTLconcept
\ assignable_from boolean common_reference_with common_with constructible_from convertible_to copy_constructible copyable default_constructible derived_from destructible equality_comparable equality_comparable_with equivalence_relation floating_point integral invocable movable move_constructible predicate regular regular_invocable relation same_as semiregular signed_integral strict_weak_order swappable swappable_with totally_ordered totally_ordered_with unsigned_integral default_initializable range sized_range view input_range output_range forward_range bidirectional_range random_access_range contiguous_range common_range viewable_range three_way_comparable three_way_comparable_with indirectly_readable indirectly_writable weakly_incrementable incrementable input_or_output_iterator sentinel_for sized_sentinel_for input_iterator output_iterator forward_iterator bidirectional_iterator random_access_iterator contiguous_iterator indirectly_unary_invocable indirectly_regular_unary_invocable indirect_unary_predicate indirect_binary_predicate indirect_equivalence_relation indirect_strict_weak_order indirectly_movable indirectly_movable_storable indirectly_copyable indirectly_copyable_storable indirectly_swappable indirectly_comparable permutable mergeable sortable
endif
" Boost {{{1
if !exists('cpp_no_boost')
syntax keyword cppSTLnamespace boost
syntax keyword cppSTLfunction lexical_cast
endif
" }}}
" Default highlighting
hi def link cppSTLbool Boolean
hi def link cppStatement Statement
hi def link cppSTLfunction Function
hi def link cppSTLdefine Constant
hi def link cppSTLconstant Constant
hi def link cppSTLnamespace Constant
hi def link cppSTLexception Type
hi def link cppSTLiterator Type
hi def link cppSTLtype Type
hi def link cppSTLtypedef Typedef
hi def link cppSTLenum Typedef
hi def link cppSTLios Function
hi def link cppSTLconcept Typedef
hi def link cppSTLvariable Identifier
" The keywords {inline, virtual, explicit, export, override, final} are
" standard C++ keywords and NOT types!
hi! def link cppModifier Statement
" Highlight all standard C++ keywords as Statement
if get(g:, 'cpp_simple_highlight', 0)
hi! def link cppStructure Statement
hi! def link cppExceptions Statement
hi! def link cppStorageClass Statement
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dhall') == -1
if has_key(g:polyglot_is_disabled, 'dhall')
finish
endif
" store and remove current syntax value
let old_syntax = b:current_syntax
@@ -13,5 +15,3 @@ hi def link quasiQuote Underlined
" restore current syntax value
let b:current_syntax = old_syntax
endif

View File

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

View File

@@ -1,16 +1,200 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
if has_key(g:polyglot_is_disabled, 'html5')
finish
endif
" 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
syntax region htmlComment start=+<!--+ end=+-->+ contains=@Spell
syntax region htmlComment start=+<!DOCTYPE+ keepend end=+>+
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
if has_key(g:polyglot_is_disabled, 'html5')
finish
endif
" Vim syntax file
" Language: WAI-ARIA
@@ -75,5 +77,3 @@ syn match htmlArg contained "\<aria-\%(\|labelledby\|owns\|posinset\|setsize\
syn match htmlArg contained "\<aria-\%(\|colcount\|colindex\|colspan\)\>"
syn match htmlArg contained "\<aria-\%(\|rowcount\|rowindex\|rowspan\)\>"
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
if has_key(g:polyglot_is_disabled, 'html5')
finish
endif
" Vim syntax file
" Language: Electron
@@ -15,5 +17,3 @@ syn keyword htmlArg contained useragent disablewebsecurity partition allowpopups
syn keyword htmlArg contained webpreferences blinkfeatures disableblinkfeatures
syn keyword htmlArg contained guestinstance disableguestresize
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
if has_key(g:polyglot_is_disabled, 'html5')
finish
endif
" Vim syntax file
" Language: RDFa
@@ -11,5 +13,3 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
" RDFa
" http://www.w3.org/TR/rdfa-syntax/#s_syntax
syn keyword htmlArg contained about content datatype href inlist prefix property rel resource rev src typeof vocab
endif

View File

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

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

@@ -0,0 +1,82 @@
if has_key(g:polyglot_is_disabled, 'idris2')
finish
endif
" 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

View File

@@ -1,59 +1,9 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file
"
" Language: javascript.jsx
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let s:jsx_cpo = &cpo
set cpo&vim
syntax case match
if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
if get(g:, 'vim_jsx_pretty_disable_js', 0)
finish
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
source <sfile>:h/jsx.vim

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
"
@@ -27,7 +29,11 @@ if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
let b:graphql_nested_syntax = 1
syn include @GraphQLSyntax syntax/graphql.vim
unlet b:graphql_nested_syntax
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
@@ -36,22 +42,26 @@ 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
syntax region graphqlTemplateString matchgroup=jsTemplateString start=+`#\s\{,4\}gql\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend
hi def link graphqlTemplateString jsTemplateString
hi def link graphqlTaggedTemplate jsTaggedTemplate
hi def link graphqlTemplateExpression jsTemplateExpression
syn cluster jsExpression add=graphqlTaggedTemplate
syn cluster jsExpression add=graphqlTemplateString,graphqlTaggedTemplate
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
syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+`#\s\{,4\}gql\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend
hi def link graphqlTemplateString javaScriptStringT
hi def link graphqlTaggedTemplate javaScriptEmbed
hi def link graphqlTemplateExpression javaScriptEmbed
@@ -60,5 +70,3 @@ elseif graphql#has_syntax_group('javaScriptStringT')
syn cluster javaScriptEmbededExpr add=graphqlTaggedTemplate
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
endif
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'html5') == -1
if has_key(g:polyglot_is_disabled, 'html5')
finish
endif
" Vim syntax file
" Language: HTML5 New Stuff
@@ -49,5 +51,3 @@ syn keyword javascriptDomElemAttrs indeterminate
" select https://w3c.github.io/selection-api/#extensions-to-globaleventhandlers
syn keyword javascriptDomElemAttrs onselectstart onselectchange
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript-sql') == -1
if has_key(g:polyglot_is_disabled, 'javascript-sql')
finish
endif
" Vim plugin
" Language: JavaScript
@@ -22,5 +24,3 @@ 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, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
source <sfile>:h/javascript.vim
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
source <sfile>:h/jsx.vim

View File

@@ -1,5 +1,5 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
runtime! after/syntax/javascript/graphql.vim
endif

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

@@ -0,0 +1,59 @@
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)
@@ -138,7 +140,7 @@ exe 'syntax match jsxTagName
" and
" <tag id='sample'>
" ~~~~~~~~
syntax region jsxString start=+\z(["']\)+ skip=+\\\\\|\\\z1\|\\\n+ end=+\z1+ contained contains=@Spell
syntax region jsxString start=+\z(["']\)+ skip=+\\\\\|\\\z1\|\\\n+ end=+\z1+ extend contained contains=@Spell
let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'jsx'])
let s:enable_tagged_jsx = !empty(s:tags)
@@ -221,5 +223,3 @@ if s:vim_jsx_pretty_colorful_config == 1
highlight def link jsArrowFuncArgs Type
highlight def link jsFuncArgs Type
endif
endif

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,42 @@
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" 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('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
let b:graphql_nested_syntax = 1
syn include @GraphQLSyntax syntax/graphql.vim
unlet b:graphql_nested_syntax
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(gql\)\c\(\i*\)\)\2$" end="^\s*\z1\>" contained contains=@GraphQLSyntax,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
syntax region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(gql\)\c\(\i*\)\)'$" end="^\s*\z1\>" contained contains=@GraphQLSyntax,@Spell keepend extend

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
"
@@ -27,11 +29,13 @@ if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
let b:graphql_nested_syntax = 1
syn include @GraphQLSyntax syntax/graphql.vim
unlet b:graphql_nested_syntax
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
endif
syntax region graphqlExtensionPoint matchgroup=Noise start=+\[%graphql\_s*{|+lc=10 end=+|}\_s*]+he=s+1 contains=@GraphQLSyntax keepend

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rspec') == -1
if has_key(g:polyglot_is_disabled, 'rspec')
finish
endif
"
" An rspec syntax file
@@ -189,5 +191,3 @@ highlight link rspecMatchers Function
highlight link rspecMessageExpectation Function
let b:current_syntax = 'rspec'
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yard') == -1
if has_key(g:polyglot_is_disabled, 'yard')
finish
endif
" Ruby syntax extensions for highlighting YARD documentation.
"
@@ -22,6 +24,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 +35,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 +104,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
@@ -126,5 +129,3 @@ hi def link yardParametricType yardComment
hi def link yardArrow yardComment
hi def link yardHashAngle yardComment
hi def link yardHashCurly yardComment
endif

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim syntax file
@@ -59,5 +61,3 @@ let b:current_syntax = 'typescript.tsx'
let &cpo = s:jsx_cpo
unlet s:jsx_cpo
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
"
@@ -27,14 +29,18 @@ if exists('b:current_syntax')
let s:current_syntax = b:current_syntax
unlet b:current_syntax
endif
let b:graphql_nested_syntax = 1
syn include @GraphQLSyntax syntax/graphql.vim
unlet b:graphql_nested_syntax
if exists('s:current_syntax')
let b:current_syntax = s:current_syntax
endif
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
exec 'syntax 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.
@@ -45,5 +51,3 @@ hi def link graphqlTemplateExpression typescriptTemplateSubstitution
syn cluster typescriptExpression add=graphqlTaggedTemplate
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
endif

View File

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

View File

@@ -1,5 +1,5 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
runtime! after/syntax/typescript/graphql.vim
endif

View File

@@ -1,5 +1,5 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
runtime! after/syntax/javascript/graphql.vim
endif

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zinit') == -1
if has_key(g:polyglot_is_disabled, 'zinit')
finish
endif
" Copyright (c) 2019 Sebastian Gniazdowski
"
@@ -122,5 +124,3 @@ highlight def link ZinitSnippetUrl2 Macro
highlight def link ZinitSnippetUrl3 Macro
highlight def link ZinitSnippetUrl4 Macro
highlight def link ZinitTrailingWhiteSpace Error
endif

View File

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

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ada') == -1
if has_key(g:polyglot_is_disabled, 'ada')
finish
endif
"------------------------------------------------------------------------------
" Description: Perform Ada specific completion & tagging.
@@ -637,5 +639,3 @@ finish " 1}}}
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker
endif

View File

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

View File

@@ -1,7 +1,10 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
if has_key(g:polyglot_is_disabled, 'rust')
finish
endif
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()
@@ -26,5 +29,3 @@ function! cargo#quickfix#CmdPost() abort
endfunction
" vim: set et sw=4 sts=4 ts=8:
endif

View File

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

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
if has_key(g:polyglot_is_disabled, 'crystal')
finish
endif
" Variables {{{1
" =========
@@ -1040,5 +1042,4 @@ endfunction
" }}}1
" vim:sw=2 sts=2 ts=8 fdm=marker et:
endif
" vim:sw=2 sts=2 ts=8 fdm=marker et:

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
if has_key(g:polyglot_is_disabled, 'crystal')
finish
endif
let s:V = vital#crystal#new()
let s:P = s:V.import('Process')
@@ -363,5 +365,3 @@ function! crystal_lang#expand(file, pos, ...) abort
endfunction
" vim: sw=2 sts=2 et:
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'csv') == -1
if has_key(g:polyglot_is_disabled, 'csv')
finish
endif
" Filetype plugin for editing CSV files. "{{{1
" Author: Christian Brabandt <cb@256bit.org>
@@ -75,9 +77,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 . '\|$\)'
@@ -3192,5 +3198,3 @@ endfun
" Vim Modeline " {{{2
" vim: set foldmethod=marker et sw=0 sts=-1 ts=4:
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
if has_key(g:polyglot_is_disabled, 'dart')
finish
endif
function! s:error(text) abort
@@ -183,5 +185,3 @@ function! dart#setModifiable() abort
setlocal nomodifiable
endif
endfunction
endif

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
if has_key(g:polyglot_is_disabled, 'crystal')
finish
endif
let s:ecrystal_extensions = {
\ 'cr': 'crystal',
@@ -32,5 +34,3 @@ function! ecrystal#SetSubtype() abort
endfunction
" vim: sw=2 sts=2 et:
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
if has_key(g:polyglot_is_disabled, 'elixir')
finish
endif
if !exists("g:elixir_indent_max_lookbehind")
let g:elixir_indent_max_lookbehind = 30
@@ -276,12 +278,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 +297,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
@@ -361,5 +373,3 @@ function! elixir#indent#handle_inside_generic_block(context)
return -1
endif
endfunction
endif

View File

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

View File

@@ -1,43 +1,113 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fish') == -1
if has_key(g:polyglot_is_disabled, 'fish')
finish
endif
function! s:IsString(lnum, col)
" Returns "true" if syntax item at the given position is part of fishString.
let l:stack = map(synstack(a:lnum, a:col), 'synIDattr(v:val, "name")')
return len(filter(l:stack, 'v:val ==# "fishString"'))
endfunction
function! s:IsContinuedLine(lnum)
" Returns "true" if the given line is a continued line.
return getline(a:lnum - 1) =~ '\v\\$'
endfunction
function! s:FindPrevLnum(lnum)
" Starting on the given line, search backwards for a line that is not
" empty, not part of a string and not a continued line.
if a:lnum < 1 || a:lnum > line('$')
" First line or wrong value, follow prevnonblank() behaviour and
" return zero.
return 0
endif
let l:lnum = prevnonblank(a:lnum)
while l:lnum > 0 && ( s:IsContinuedLine(l:lnum) || s:IsString(l:lnum, 1) )
let l:lnum = prevnonblank(l:lnum - 1)
endwhile
return l:lnum
endfunction
function! s:IsSwitch(lnum)
" Returns "true" if the given line is part of a switch block.
let l:lnum = a:lnum
let l:line = getline(l:lnum)
let l:in_block = 0
let l:stop_pat = '\v^\s*%(if|else|while|for|begin)>'
let l:block_start_pat = '\v^\s*%(if|while|for|switch|begin)>'
while l:lnum > 0
let l:lnum = prevnonblank(l:lnum - 1)
let l:line = getline(l:lnum)
if l:line =~# '\v^\s*end>'
let l:in_block += 1
elseif l:in_block && l:line =~# l:block_start_pat
let l:in_block -= 1
elseif !l:in_block && l:line =~# l:stop_pat
return 0
elseif !l:in_block && l:line =~# '\v^\s*switch>'
return 1
endif
endwhile
return 0
endfunction
function! fish#Indent()
let l:prevlnum = prevnonblank(v:lnum - 1)
if l:prevlnum ==# 0
return 0
endif
let l:prevline = getline(l:prevlnum)
let l:line = getline(v:lnum)
let l:shiftwidth = shiftwidth()
let l:previndent = indent(l:prevlnum)
let l:indent = l:previndent
if l:prevline =~# '\v^\s*%(begin|if|else|while|for|function|switch|case)>'
let l:indent += l:shiftwidth
if s:IsString(v:lnum, 1)
return indent(v:lnum)
endif
if l:line =~# '\v^\s*end>'
let l:indent -= l:shiftwidth
" If we're inside a case, dedent twice because it ends the switch.
if l:prevline =~# '\v^\s*case>'
" Previous line starts the case.
let l:indent -= l:shiftwidth
else
" Scan back to a dedented line to find whether we're in a case.
let l:i = l:prevlnum
while l:i >= 1 && indent(l:i) >= l:previndent
let l:i = prevnonblank(l:i - 1)
endwhile
if indent(l:i) < l:previndent && getline(l:i) =~# '\v^\s*case>'
let l:indent -= l:shiftwidth
endif
endif
elseif l:line =~# '\v^\s*else>'
let l:indent -= l:shiftwidth
elseif l:prevline !~# '\v^\s*switch>' && l:line =~# '\v^\s*case>'
let l:indent -= l:shiftwidth
" shiftwidth can be misleading in recent versions, use shiftwidth() if
" it is available.
if exists('*shiftwidth')
let l:shiftwidth = shiftwidth()
else
let l:shiftwidth = &shiftwidth
endif
if l:indent < 0
let l:prevlnum = s:FindPrevLnum(v:lnum - 1)
if l:prevlnum == 0
return 0
endif
return l:indent
let l:shift = 0
let l:prevline = getline(l:prevlnum)
let l:previndent = indent(l:prevlnum)
if s:IsContinuedLine(v:lnum)
" It is customary to increment indentation of continued lines by three
" or a custom value defined by the user if available.
let l:previndent = indent(v:lnum - 1)
if s:IsContinuedLine(v:lnum - 1)
return l:previndent
elseif exists('g:fish_indent_cont')
return l:previndent + g:fish_indent_cont
elseif exists('g:indent_cont')
return l:previndent + g:indent_cont
else
return l:previndent + 3
endif
endif
if l:prevline =~# '\v^\s*%(begin|if|else|while|for|function|case|switch)>'
" First line inside a block, increase by one.
let l:shift += 1
endif
if l:line =~# '\v^\s*%(end|case|else)>'
" "end", "case" or "else", decrease by one.
let l:shift -= 1
endif
if l:line =~# '\v^\s*<case>' && l:prevline =~# '\v<switch>'
" "case" following "switch", increase by one.
let l:shift += 1
endif
if l:line =~# '\v\s*end>' && s:IsSwitch(v:lnum)
" "end" ends switch block, decrease by one more so it matches
" the indentation of "switch".
let l:shift -= 1
endif
if l:prevline =~# '\v^\s*%(if|while|for|else|switch|end)>.*<begin>'
" "begin" after start of block, increase by one.
let l:shift += 1
endif
let l:indent = l:previndent + l:shift * l:shiftwidth
" Only return zero or positive numbers.
return l:indent < 0 ? 0 : l:indent
endfunction
function! fish#Format()
@@ -47,6 +117,8 @@ function! fish#Format()
let l:command = v:lnum.','.(v:lnum+v:count-1).'!fish_indent'
echo l:command
execute l:command
" Fix indentation and replace tabs with spaces if necessary.
normal! '[=']
endif
endfunction
@@ -85,5 +157,3 @@ endfunction
function! fish#errorformat()
return '%Afish: %m,%-G%*\\ ^,%-Z%f (line %l):%s'
endfunction
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fsharp') == -1
if has_key(g:polyglot_is_disabled, 'fsharp')
finish
endif
" Vim autoload functions
@@ -330,7 +332,7 @@ function! s:download(branch)
let zip = s:script_root_dir . "fsac.zip"
call system(
\ 'curl -fLo ' . zip . ' --create-dirs ' .
\ '"https://ci.appveyor.com/api/projects/fsautocomplete/fsautocomplete/artifacts/bin/pkgs/fsautocomplete.netcore.zip?branch=' . a:branch . '"'
\ '"https://github.com/fsharp/FsAutoComplete/releases/latest/download/fsautocomplete.netcore.zip"'
\ )
if v:shell_error == 0
call system('unzip -o -d ' . s:script_root_dir . "/fsac " . zip)
@@ -465,10 +467,10 @@ function! fsharp#sendFsi(text)
if fsharp#openFsi(!g:fsharp#fsi_focus_on_send) > 0
" Neovim
if has('nvim')
call chansend(s:fsi_job, a:text . ";;". "\n")
call chansend(s:fsi_job, a:text . "\n" . ";;". "\n")
" Vim 8
else
call term_sendkeys(s:fsi_buffer, a:text . ";;" . "\<cr>")
call term_sendkeys(s:fsi_buffer, a:text . "\<cr>" . ";;" . "\<cr>")
call term_wait(s:fsi_buffer)
endif
endif
@@ -513,5 +515,3 @@ let &cpo = s:cpo_save
unlet s:cpo_save
" vim: sw=4 et sts=4
endif

View File

@@ -0,0 +1,41 @@
if has_key(g:polyglot_is_disabled, 'gitignore')
finish
endif
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

View File

@@ -1,13 +1,11 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
if has_key(g:polyglot_is_disabled, 'go')
finish
endif
" don't spam the user when Vim is started in Vi compatibility mode
let s:cpo_save = &cpo
set cpo&vim
function! go#config#AutodetectGopath() abort
return get(g:, 'go_autodetect_gopath', 0)
endfunction
function! go#config#ListTypeCommands() abort
return get(g:, 'go_list_type_commands', {})
endfunction
@@ -266,15 +264,25 @@ function! go#config#SetTemplateAutocreate(value) abort
endfunction
function! go#config#MetalinterCommand() abort
return get(g:, "go_metalinter_command", "golangci-lint")
return get(g:, 'go_metalinter_command', 'golangci-lint')
endfunction
function! go#config#MetalinterAutosaveEnabled() abort
return get(g:, "go_metalinter_autosave_enabled", ["govet", "golint"])
let l:default = []
if get(g:, 'go_metalinter_command', 'golangci-lint') == 'golangci-lint'
let l:default = ['govet', 'golint']
endif
return get(g:, 'go_metalinter_autosave_enabled', l:default)
endfunction
function! go#config#MetalinterEnabled() abort
return get(g:, "go_metalinter_enabled", ["vet", "golint", "errcheck"])
let l:default = []
if get(g:, 'go_metalinter_command', 'golangci-lint') == 'golangci-lint'
let l:default = ['vet', 'golint', 'errcheck']
endif
return get(g:, 'go_metalinter_enabled', l:default)
endfunction
function! go#config#GolintBin() abort
@@ -514,7 +522,7 @@ function! go#config#ReferrersMode() abort
endfunction
function! go#config#ImplementsMode() abort
return get(g:, 'go_implements_mode', 'guru')
return get(g:, 'go_implements_mode', 'gopls')
endfunction
function! go#config#GoplsCompleteUnimported() abort
@@ -552,18 +560,56 @@ 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
" TODO(bc): remove support for g:go_diagnostics_enabled;
" g:go_diagnostics_level is the replacement.
function! go#config#DiagnosticsEnabled() abort
return get(g:, 'go_diagnostics_enabled', 0)
endfunction
function! go#config#DiagnosticsLevel() abort
let l:default = 0
if has_key(g:, 'go_diagnostics_enabled') && g:go_diagnostics_enabled
let l:default = 2
endif
return get(g:, 'go_diagnostics_level', l:default)
endfunction
function! go#config#GoplsOptions() abort
return get(g:, 'go_gopls_options', ['-remote=auto'])
endfunction
function! go#config#FillStructMode() abort
return get(g:, 'go_fillstruct_mode', 'fillstruct')
endfunction
function! go#config#DebugMappings() abort
let l:default = {
\ '(go-debug-continue)': {'key': '<F5>'},
\ '(go-debug-print)': {'key': '<F6>'},
\ '(go-debug-breakpoint)': {'key': '<F9>'},
\ '(go-debug-next)': {'key': '<F10>'},
\ '(go-debug-step)': {'key': '<F11>'},
\ '(go-debug-halt)': {'key': '<F8>'},
\ }
let l:user = deepcopy(get(g:, 'go_debug_mappings', {}))
return extend(l:user, l:default, 'keep')
endfunction
" Set the default value. A value of "1" is a shortcut for this, for
" compatibility reasons.
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1
@@ -575,5 +621,3 @@ let &cpo = s:cpo_save
unlet s:cpo_save
" vim: sw=2 ts=2 et
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
if has_key(g:polyglot_is_disabled, 'graphql')
finish
endif
" Copyright (c) 2016-2020 Jon Parise <jon@indelible.org>
"
@@ -35,5 +37,3 @@ endfunction
function! graphql#javascript_tags() abort
return get(g:, 'graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL'])
endfunction
endif

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsonnet') == -1
if has_key(g:polyglot_is_disabled, 'jsonnet')
finish
endif
@@ -125,5 +127,3 @@ function! jsonnet#Format()
endfunction
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
function! jsx_pretty#comment#update_commentstring(original)
let line = getline(".")
@@ -37,5 +39,3 @@ function! s:syn_contains(lnum, cnum, syn_name)
let syn_names = map(stack, 'synIDattr(v:val, "name")')
return index(syn_names, a:syn_name) >= 0
endfunction
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
if has_key(g:polyglot_is_disabled, 'jsx')
finish
endif
if exists('*shiftwidth')
function! s:sw()
@@ -302,5 +304,3 @@ function! jsx_pretty#indent#get(js_indent)
return a:js_indent()
endfunction
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
if has_key(g:polyglot_is_disabled, 'julia')
finish
endif
function! julia#set_syntax_version(jvers)
echo "The julia#set_syntax_version function is deprecated"
@@ -165,5 +167,3 @@ function! julia#gotodefinition()
return
endfunction
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
if has_key(g:polyglot_is_disabled, 'julia')
finish
endif
" path to the julia binary to communicate with
if has('win32') || has('win64')
@@ -37,7 +39,7 @@ let s:NODOCPATTERN = '\C\VNo documentation found.'
function! julia#doc#lookup(keyword, ...) abort
let juliapath = get(a:000, 0, g:julia#doc#juliapath)
let keyword = escape(a:keyword, '"\')
let cmd = printf('%s -E "@doc %s"', juliapath, keyword)
let cmd = printf('%s --compile=min --optimize=0 -E "@doc %s"', juliapath, keyword)
return systemlist(cmd)
endfunction
@@ -238,9 +240,7 @@ endfunction
function! s:likely(str) abort
" escape twice
let str = escape(escape(a:str, '"\'), '"\')
let cmd = printf('%s -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
let cmd = printf('%s --compile=min --optimize=0 -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
let output = systemlist(cmd)
return split(matchstr(output[0], '\C^search: \zs.*'))
endfunction
endif

View File

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

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
if has_key(g:polyglot_is_disabled, 'julia')
finish
endif
" This file is autogenerated from the script 'generate_latex_symbols_table.jl'
" The symbols are based on Julia version 1.5.0-DEV.67
@@ -3332,5 +3334,3 @@ function! julia_latex_symbols#get_dict()
\ '\:baggage_claim:': '🛄',
\ '\:left_luggage:': '🛅'}
endfunction
endif

View File

@@ -1,4 +1,6 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ledger') == -1
if has_key(g:polyglot_is_disabled, 'ledger')
finish
endif
scriptencoding utf-8
" vim:ts=2:sw=2:sts=2:foldmethod=marker
@@ -442,6 +444,19 @@ function! ledger#align_commodity() abort
endif
endf
" Align the commodity on the entire buffer
function! ledger#align_commodity_buffer() abort
" Store the viewport position
let view = winsaveview()
" Call ledger#align_commodity for every line
%call ledger#align_commodity()
" Restore the viewport position
call winrestview(view)
unlet view
endf
" Align the amount under the cursor and append/prepend the default currency.
function! ledger#align_amount_at_cursor() abort
" Select and cut text:
@@ -740,5 +755,3 @@ function! ledger#show_balance(file, ...) abort
endif
endf
" }}}
endif

View File

@@ -1,9 +1,11 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
if has_key(g:polyglot_is_disabled, 'nim')
finish
endif
let g:nim_log = []
let s:plugin_path = escape(expand('<sfile>:p:h'), '\')
if !exists("g:nim_caas_enabled")
if !exists('g:nim_caas_enabled')
let g:nim_caas_enabled = 0
endif
@@ -11,27 +13,25 @@ if !executable('nim')
echoerr "the Nim compiler must be in your system's PATH"
endif
if has("python3")
exe 'py3file ' . fnameescape(s:plugin_path) . '/nim_vim.py'
elseif has("python")
exe 'pyfile ' . fnameescape(s:plugin_path) . '/nim_vim.py'
if has('pythonx')
exe 'pyxfile ' . fnameescape(s:plugin_path) . '/nim_vim.py'
endif
fun! nim#init()
let cmd = printf("nim --dump.format:json --verbosity:0 dump %s", s:CurrentNimFile())
fun! nim#init() abort
let cmd = printf('nim --dump.format:json --verbosity:0 dump %s', s:CurrentNimFile())
let raw_dumpdata = system(cmd)
if !v:shell_error && expand("%:e") == "nim"
if !v:shell_error && expand('%:e') ==# 'nim'
let false = 0 " Needed for eval of json
let true = 1 " Needed for eval of json
let dumpdata = eval(substitute(raw_dumpdata, "\n", "", "g"))
let dumpdata = eval(substitute(raw_dumpdata, "\n", '', 'g'))
let b:nim_project_root = dumpdata['project_path']
let b:nim_defined_symbols = dumpdata['defined_symbols']
let b:nim_caas_enabled = g:nim_caas_enabled || index(dumpdata['defined_symbols'], 'forcecaas') != -1
for path in dumpdata['lib_paths']
if finddir(path) == path
let &l:path = path . "," . &l:path
if finddir(path) ==# path
let &l:path = path . ',' . &l:path
endif
endfor
else
@@ -39,7 +39,7 @@ fun! nim#init()
endif
endf
fun! s:UpdateNimLog()
fun! s:UpdateNimLog() abort
setlocal buftype=nofile
setlocal bufhidden=hide
setlocal noswapfile
@@ -56,32 +56,32 @@ endf
augroup NimVim
au!
au BufEnter log://nim call s:UpdateNimLog()
if has("python3") || has("python")
" au QuitPre * :py nimTerminateAll()
au VimLeavePre * :py nimTerminateAll()
if has('pythonx')
" au QuitPre * :pyx nimTerminateAll()
au VimLeavePre * :pyx nimTerminateAll()
endif
augroup END
command! NimLog :e log://nim
command! NimTerminateService
\ :exe printf("py nimTerminateService('%s')", b:nim_project_root)
\ :exe printf("pyx nimTerminateService('%s')", b:nim_project_root)
command! NimRestartService
\ :exe printf("py nimRestartService('%s')", b:nim_project_root)
\ :exe printf("pyx nimRestartService('%s')", b:nim_project_root)
fun! s:CurrentNimFile()
fun! s:CurrentNimFile() abort
let save_cur = getpos('.')
call cursor(0, 0, 0)
let PATTERN = "\\v^\\#\\s*included from \\zs.*\\ze"
let l = search(PATTERN, "n")
let PATTERN = '\v^\#\s*included from \zs.*\ze'
let l = search(PATTERN, 'n')
if l != 0
let f = matchstr(getline(l), PATTERN)
let l:to_check = expand('%:h') . "/" . f
let l:to_check = expand('%:h') . '/' . f
else
let l:to_check = expand("%")
let l:to_check = expand('%')
endif
call setpos('.', save_cur)
@@ -108,42 +108,42 @@ let g:nim_symbol_types = {
\ 'skEnumField': 'v',
\ }
fun! NimExec(op)
let isDirty = getbufvar(bufnr('%'), "&modified")
fun! NimExec(op) abort
let isDirty = getbufvar(bufnr('%'), '&modified')
if isDirty
let tmp = tempname() . bufname("%") . "_dirty.nim"
silent! exe ":w " . tmp
let tmp = tempname() . bufname('%') . '_dirty.nim'
silent! exe ':w ' . tmp
let cmd = printf("idetools %s --trackDirty:\"%s,%s,%d,%d\" \"%s\"",
let cmd = printf('idetools %s --trackDirty:"%s,%s,%d,%d" "%s"',
\ a:op, tmp, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile())
else
let cmd = printf("idetools %s --track:\"%s,%d,%d\" \"%s\"",
let cmd = printf('idetools %s --track:"%s,%d,%d" "%s"',
\ a:op, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile())
endif
if b:nim_caas_enabled
exe printf("py nimExecCmd('%s', '%s', False)", b:nim_project_root, cmd)
let output = l:py_res
exe printf("pyx nimExecCmd('%s', '%s', False)", b:nim_project_root, cmd)
let output = get(l:, 'py_res', '')
else
let output = system("nim " . cmd)
let output = system('nim ' . cmd)
endif
call add(g:nim_log, "nim " . cmd . "\n" . output)
call add(g:nim_log, 'nim ' . cmd . "\n" . output)
return output
endf
fun! NimExecAsync(op, Handler)
fun! NimExecAsync(op, Handler) abort
let result = NimExec(a:op)
call a:Handler(result)
endf
fun! NimComplete(findstart, base)
if b:nim_caas_enabled == 0
fun! NimComplete(findstart, base) abort
if b:nim_caas_enabled ==# 0
return -1
endif
if a:findstart
if synIDattr(synIDtrans(synID(line("."),col("."),1)), "name") == 'Comment'
if synIDattr(synIDtrans(synID(line('.'),col('.'),1)), 'name') ==# 'Comment'
return -1
endif
let line = getline('.')
@@ -154,10 +154,10 @@ fun! NimComplete(findstart, base)
return start
else
let result = []
let sugOut = NimExec("--suggest")
let sugOut = NimExec('--suggest')
for line in split(sugOut, '\n')
let lineData = split(line, '\t')
if len(lineData) > 0 && lineData[0] == "sug"
if len(lineData) > 0 && lineData[0] ==# 'sug'
let word = split(lineData[2], '\.')[-1]
if a:base ==? '' || word =~# '^' . a:base
let kind = get(g:nim_symbol_types, lineData[1], '')
@@ -170,7 +170,7 @@ fun! NimComplete(findstart, base)
endif
endf
if !exists("g:neocomplcache_omni_patterns")
if !exists('g:neocomplcache_omni_patterns')
let g:neocomplcache_omni_patterns = {}
endif
let g:neocomplcache_omni_patterns['nim'] = '[^. *\t]\.\w*'
@@ -182,7 +182,7 @@ let g:neocomplete#sources#omni#input_patterns['nim'] = '[^. *\t]\.\w*'
let g:nim_completion_callbacks = {}
fun! NimAsyncCmdComplete(cmd, output)
fun! NimAsyncCmdComplete(cmd, output) abort
call add(g:nim_log, a:output)
echom g:nim_completion_callbacks
if has_key(g:nim_completion_callbacks, a:cmd)
@@ -190,55 +190,53 @@ fun! NimAsyncCmdComplete(cmd, output)
call Callback(a:output)
" remove(g:nim_completion_callbacks, a:cmd)
else
echom "ERROR, Unknown Command: " . a:cmd
echom 'ERROR, Unknown Command: ' . a:cmd
endif
return 1
endf
fun! GotoDefinition_nim_ready(def_output)
fun! GotoDefinition_nim_ready(def_output) abort
if v:shell_error
echo "nim was unable to locate the definition. exit code: " . v:shell_error
echo 'nim was unable to locate the definition. exit code: ' . v:shell_error
" echoerr a:def_output
return 0
endif
let rawDef = matchstr(a:def_output, 'def\t\([^\n]*\)')
if rawDef == ""
echo "the current cursor position does not match any definitions"
if rawDef == ''
echo 'the current cursor position does not match any definitions'
return 0
endif
let defBits = split(rawDef, '\t')
let file = defBits[4]
let line = defBits[5]
exe printf("e +%d %s", line, file)
exe printf('e +%d %s', line, file)
return 1
endf
fun! GotoDefinition_nim()
call NimExecAsync("--def", function("GotoDefinition_nim_ready"))
fun! GotoDefinition_nim() abort
call NimExecAsync('--def', function('GotoDefinition_nim_ready'))
endf
fun! FindReferences_nim()
setloclist()
fun! FindReferences_nim() abort
"setloclist()
endf
" Syntastic syntax checking
fun! SyntaxCheckers_nim_nim_GetLocList()
fun! SyntaxCheckers_nim_nim_GetLocList() abort
let makeprg = 'nim check --hints:off --listfullpaths ' . s:CurrentNimFile()
let errorformat = &errorformat
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
endf
function! SyntaxCheckers_nim_nim_IsAvailable()
return executable("nim")
function! SyntaxCheckers_nim_nim_IsAvailable() abort
return executable('nim')
endfunction
if exists("g:SyntasticRegistry")
if exists('g:SyntasticRegistry')
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'nim',
\ 'name': 'nim'})
endif
endif

View File

@@ -1,217 +0,0 @@
" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim
func! polyglot#Heuristics()
" Try to detect filetype from shebang
let l:filetype = polyglot#Shebang()
if l:filetype != ""
exec "setf " . l:filetype
return
endif
endfunc
let s:interpreters = {
\ 'osascript': 'applescript',
\ 'tcc': 'c',
\ 'coffee': 'coffee',
\ 'crystal': 'crystal',
\ 'dart': 'dart',
\ 'elixir': 'elixir',
\ 'escript': 'erlang',
\ 'fish': 'fish',
\ 'gnuplot': 'gnuplot',
\ 'runhaskell': 'haskell',
\ 'chakra': 'javascript',
\ 'd8': 'javascript',
\ 'gjs': 'javascript',
\ 'js': 'javascript',
\ 'node': 'javascript',
\ 'nodejs': 'javascript',
\ 'qjs': 'javascript',
\ 'rhino': 'javascript',
\ 'v8': 'javascript',
\ 'v8-shell': 'javascript',
\ 'julia': 'julia',
\ 'lua': 'lua',
\ 'moon': 'moon',
\ 'ocaml': 'ocaml',
\ 'ocamlrun': 'ocaml',
\ 'ocamlscript': 'ocaml',
\ 'cperl': 'perl',
\ 'perl': 'perl',
\ 'php': 'php',
\ 'pwsh': 'ps1',
\ 'python': 'python',
\ 'python2': 'python',
\ 'python3': 'python',
\ 'qmake': 'qmake',
\ 'Rscript': 'r',
\ 'racket': 'racket',
\ 'perl6': 'raku',
\ 'raku': 'raku',
\ 'rakudo': 'raku',
\ 'ruby': 'ruby',
\ 'macruby': 'ruby',
\ 'rake': 'ruby',
\ 'jruby': 'ruby',
\ 'rbx': 'ruby',
\ 'scala': 'scala',
\ 'ash': 'sh',
\ 'bash': 'sh',
\ 'dash': 'sh',
\ 'ksh': 'sh',
\ 'mksh': 'sh',
\ 'pdksh': 'sh',
\ 'rc': 'sh',
\ 'sh': 'sh',
\ 'zsh': 'sh',
\ 'boolector': 'smt2',
\ 'cvc4': 'smt2',
\ 'mathsat5': 'smt2',
\ 'opensmt': 'smt2',
\ 'smtinterpol': 'smt2',
\ 'smt-rat': 'smt2',
\ 'stp': 'smt2',
\ 'verit': 'smt2',
\ 'yices2': 'smt2',
\ 'z3': 'smt2',
\ 'deno': 'typescript',
\ 'ts-node': 'typescript',
\ }
let s:r_hashbang = '^#!\s*\(\S\+\)\s*\(.*\)\s*'
let s:r_envflag = '%(\S\+=\S\+\|-[iS]\|--ignore-environment\|--split-string\)'
let s:r_env = '^\%(\' . s:r_envflag . '\s\+\)*\(\S\+\)'
func! polyglot#Shebang()
let l:line1 = getline(1)
if l:line1 !~# "^#!"
return
endif
let l:pathrest = matchlist(l:line1, s:r_hashbang)
if len(l:pathrest) == 0
return
endif
let [_, l:path, l:rest; __] = l:pathrest
let l:script = split(l:path, "/")[-1]
if l:script == "env"
let l:argspath = matchlist(l:rest, s:r_env)
if len(l:argspath) == 0
return
endif
let l:script = l:argspath[1]
endif
if has_key(s:interpreters, l:script)
return s:interpreters[l:script]
endif
for interpreter in keys(s:interpreters)
if l:script =~# '^' . interpreter
return s:interpreters[interpreter]
endif
endfor
endfunc
func! polyglot#DetectInpFiletype()
let line = getline(1)
if line =~# '^\*'
setf abaqus | return
endif
for lnum in range(1, min([line("$"), 500]))
let line = getline(lnum)
if line =~? '^header surface data'
setf trasys | return
endif
endfor
endfunc
func! polyglot#DetectAsaFiletype()
if exists("g:filetype_asa")
exe "setf " . g:filetype_asa | return
endif
setf aspvbs | return
endfunc
func! polyglot#DetectAspFiletype()
if exists("g:filetype_asp")
exe "setf " . g:filetype_asp | return
endif
for lnum in range(1, min([line("$"), 3]))
let line = getline(lnum)
if line =~? 'perlscript'
setf aspperl | return
endif
endfor
setf aspvbs | return
endfunc
func! polyglot#DetectMFiletype()
let saw_comment = 0
for lnum in range(1, min([line("$"), 100]))
let line = getline(lnum)
if line =~# '^\s*/\*'
let saw_comment = 1
endif
if line =~# '^\s*\(@\(interface\|class\|protocol\|property\|end\|synchronised\|selector\|implementation\)\(\<\|\>\)\|#import\s\+.\+\.h[">]\)'
setf objc | return
endif
if line =~# '^\s*%'
setf octave | return
endif
if line =~# '^\s*(\*'
setf mma | return
endif
if line =~? '^\s*\(\(type\|var\)\(\<\|\>\)\|--\)'
setf murphi | return
endif
endfor
if saw_comment
setf objc | return
endif
if exists("g:filetype_m")
exe "setf " . g:filetype_m | return
endif
setf octave | return
endfunc
func! polyglot#DetectFsFiletype()
for lnum in range(1, min([line("$"), 50]))
let line = getline(lnum)
if line =~# '^\(: \|new-device\)'
setf forth | return
endif
if line =~# '^\s*\(#light\|import\|let\|module\|namespace\|open\|type\)'
setf fsharp | return
endif
if line =~# '\s*\(#version\|precision\|uniform\|varying\|vec[234]\)'
setf glsl | return
endif
endfor
if exists("g:filetype_fs")
exe "setf " . g:filetype_fs | return
endif
setf forth | return
endfunc
func! polyglot#DetectReFiletype()
for lnum in range(1, min([line("$"), 50]))
let line = getline(lnum)
if line =~# '^\s*#\%(\%(if\|ifdef\|define\|pragma\)\s\+\w\|\s*include\s\+[<"]\|template\s*<\)'
setf cpp | return
endif
setf reason | return
endfor
endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save

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