Compare commits

...

44 Commits

Author SHA1 Message Date
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
61 changed files with 3904 additions and 13985 deletions

View File

@@ -8,11 +8,10 @@ A collection of language packs for Vim.
- 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-->598<!--/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 is also more secure (scripts loaded for every filetype are generated by vim-polyglot)
- Best syntax and indentation support (no other features). Hand-selected language packs.
- Automatically detects indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth), can be disabled)
- Includes some defaults from [vim-sensible](https://github.com/tpope/vim-sensible), which are usually necessary for editing in any language (can be disabled)
\*To be completely honest, optimized `ftdetect` script takes around `10ms` to load.
@@ -21,10 +20,16 @@ A collection of language packs for Vim.
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.
@@ -35,13 +40,9 @@ You can also use Vim 8 built-in package manager:
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), vim-polyglot includes:
On top of all language packs from [vim repository](https://github.com/vim/vim/tree/master/runtime/syntax), vim-polyglot includes:
<!--Language Packs-->
- [acpiasl](https://github.com/martinlroth/vim-acpi-asl) (Syntax highlighting for asl and dsl files)
@@ -206,18 +207,18 @@ 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 = ['markdown']
```
The list of available languages to disable is shown above.
*Please declare this variable before polyglot is loaded (at the top of .vimrc)*
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
@@ -226,12 +227,23 @@ 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:
```vim
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

@@ -7,7 +7,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cpp-modern') ==
" http://www.vim.org/scripts/script.php?script_id=3064
" Maintainer: bfrg <bfrg@users.noreply.github.com>
" Website: https://github.com/bfrg/vim-cpp-modern
" Last Change: Oct 4, 2020
" Last Change: Oct 23, 2020
"
" Extended C syntax highlighting including highlighting of user-defined
" functions.
@@ -28,6 +28,22 @@ if !get(g:, 'cpp_no_function_highlight', 0)
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
@@ -47,6 +63,7 @@ hi def link cAnsiName Identifier
if get(g:, 'cpp_simple_highlight', 0)
hi link cStorageClass Statement
hi link cStructure Statement
hi link cTypedef Statement
hi link cLabel Statement
endif

View File

@@ -1,188 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'context') == -1
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 21
let s:keepcpo= &cpo
set cpo&vim
" Helper functions {{{
function! s:context_echo(message, mode)
redraw
echo "\r"
execute 'echohl' a:mode
echomsg '[ConTeXt]' a:message
echohl None
endf
function! s:sh()
return has('win32') || has('win64') || has('win16') || has('win95')
\ ? ['cmd.exe', '/C']
\ : ['/bin/sh', '-c']
endfunction
" For backward compatibility
if exists('*win_getid')
function! s:win_getid()
return win_getid()
endf
function! s:win_id2win(winid)
return win_id2win(a:winid)
endf
else
function! s:win_getid()
return winnr()
endf
function! s:win_id2win(winnr)
return a:winnr
endf
endif
" }}}
" ConTeXt jobs {{{
if has('job')
let g:context_jobs = []
" Print the status of ConTeXt jobs
function! context#job_status()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
let l:n = len(l:jobs)
call s:context_echo(
\ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
\ .' job'.(l:n == 1 ? '' : 's').' running'
\ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
\ 'ModeMsg')
endfunction
" Stop all ConTeXt jobs
function! context#stop_jobs()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
for job in l:jobs
call job_stop(job)
endfor
sleep 1
let l:tmp = []
for job in l:jobs
if job_status(job) == "run"
call add(l:tmp, job)
endif
endfor
let g:context_jobs = l:tmp
if empty(g:context_jobs)
call s:context_echo('Done. No jobs running.', 'ModeMsg')
else
call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
endif
endfunction
function! context#callback(path, job, status)
if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
call remove(g:context_jobs, index(g:context_jobs, a:job))
endif
call s:callback(a:path, a:job, a:status)
endfunction
function! context#close_cb(channel)
call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
endfunction
function! s:typeset(path)
call add(g:context_jobs,
\ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
\ 'close_cb' : 'context#close_cb',
\ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path]),
\ 'in_io' : 'null'
\ }))
endfunction
else " No jobs
function! context#job_status()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction!
function! context#stop_jobs()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction
function! context#callback(path, job, status)
call s:callback(a:path, a:job, a:status)
endfunction
function! s:typeset(path)
execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path, 0, v:shell_error])
endfunction
endif " has('job')
function! s:callback(path, job, status) abort
if a:status < 0 " Assume the job was terminated
return
endif
" Get info about the current window
let l:winid = s:win_getid() " Save window id
let l:efm = &l:errorformat " Save local errorformat
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
" Set errorformat to parse ConTeXt errors
execute 'setl efm=' . escape(b:context_errorformat, ' ')
try " Set cwd to expand error file correctly
execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
catch /.*/
execute 'setl efm=' . escape(l:efm, ' ')
throw v:exception
endtry
try
execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
botright cwindow
finally " Restore cwd and errorformat
execute s:win_id2win(l:winid) . 'wincmd w'
execute 'lcd ' . fnameescape(l:cwd)
execute 'setl efm=' . escape(l:efm, ' ')
endtry
if a:status == 0
call s:context_echo('Success!', 'ModeMsg')
else
call s:context_echo('There are errors. ', 'ErrorMsg')
endif
endfunction
function! context#command()
return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode'
\ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
endfunction
" Accepts an optional path (useful for big projects, when the file you are
" editing is not the project's root document). If no argument is given, uses
" the path of the current buffer.
function! context#typeset(...) abort
let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
call s:context_echo('Typesetting...', 'ModeMsg')
execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
try
call s:typeset(l:path)
finally " Restore local working directory
execute 'lcd ' . fnameescape(l:cwd)
endtry
endfunction!
"}}}
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker
endif

View File

@@ -574,10 +574,21 @@ 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

View File

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

View File

@@ -1,3 +1,9 @@
" Restore 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim
" DO NOT EDIT CODE BELOW, IT IS GENERATED WITH MAKEFILE
let s:globs = {
\ '8th': '*.8th',
\ 'Jenkinsfile': '*.jenkinsfile,*.Jenkinsfile,Jenkinsfile,Jenkinsfile*',
@@ -624,6 +630,13 @@ let s:globs = {
\ 'zsh': '*.zsh,.zshrc,.zshenv,.zlogin,.zprofile,.zlogout,.zlog*,.zcompdump*,.zfbfmarks,.zsh*',
\}
" DO NOT EDIT CODE ABOVE, IT IS GENERATED WITH MAKEFILE
func! polyglot#sleuth#GlobForFiletype(type)
return get(s:globs, a:type, '')
endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,58 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'context') == -1
" Vim compiler file
" Compiler: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 21
if exists("current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" If makefile exists and we are not asked to ignore it, we use standard make
" (do not redefine makeprg)
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
\ (!filereadable('Makefile') && !filereadable('makefile'))
let current_compiler = 'context'
" The following assumes that the current working directory is set to the
" directory of the file to be typeset
let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode --synctex='
\ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
\ . ' ' . shellescape(expand('%:p:t'))
else
let current_compiler = 'make'
endif
let b:context_errorformat = ''
\ . '%-Popen source%.%#> %f,'
\ . '%-Qclose source%.%#> %f,'
\ . "%-Popen source%.%#name '%f',"
\ . "%-Qclose source%.%#name '%f',"
\ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
\ . 'tex %trror%.%#error on line %l in file %f: %m,'
\ . '%Elua %trror%.%#error on line %l in file %f:,'
\ . '%+Emetapost %#> error: %#,'
\ . '! error: %#%m,'
\ . '%-C %#,'
\ . '%C! %m,'
\ . '%Z[ctxlua]%m,'
\ . '%+C<*> %.%#,'
\ . '%-C%.%#,'
\ . '%Z...%m,'
\ . '%-Zno-error,'
\ . '%-G%.%#' " Skip remaining lines
execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
endif

View File

@@ -1,12 +1,12 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
if exists("current_compiler")
if exists('current_compiler')
finish
endif
let current_compiler = "nim"
let current_compiler = 'nim'
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
if exists(':CompilerSet') != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif

View File

@@ -1,185 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
*clojure.txt* Clojure runtime files
INTRODUCTION *clojure-introduction*
Meikel Brandmeyer's excellent Clojure runtime files. Includes syntax, indent,
ftdetect, and ftplugin scripts.
CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
*g:clojure_maxlines*
Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
>
" Default
let g:clojure_maxlines = 100
<
*g:clojure_fuzzy_indent*
*g:clojure_fuzzy_indent_patterns*
*g:clojure_fuzzy_indent_blacklist*
The 'lispwords' option is a list of comma-separated words that mark special
forms whose subforms must be indented with two spaces.
For example:
>
(defn bad []
"Incorrect indentation")
(defn good []
"Correct indentation")
<
If you would like to specify 'lispwords' with a |pattern| instead, you can use
the fuzzy indent feature:
>
" Default
let g:clojure_fuzzy_indent = 1
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
let g:clojure_fuzzy_indent_blacklist =
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
" Legacy comma-delimited string version; the list format above is
" recommended. Note that patterns are implicitly anchored with ^ and $
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
<
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|Lists| of patterns that will be matched against the unquoted, unqualified
symbol at the head of a list. This means that a pattern like "^foo" will match
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
Each candidate word is tested for special treatment in this order:
1. Return true if word is literally in 'lispwords'
2. Return false if word matches a pattern in
|g:clojure_fuzzy_indent_blacklist|
3. Return true if word matches a pattern in
|g:clojure_fuzzy_indent_patterns|
4. Return false and indent normally otherwise
*g:clojure_special_indent_words*
Some forms in Clojure are indented so that every subform is indented only two
spaces, regardless of 'lispwords'. If you have a custom construct that should
be indented in this idiosyncratic fashion, you can add your symbols to the
default list below.
>
" Default
let g:clojure_special_indent_words =
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
<
*g:clojure_align_multiline_strings*
Align subsequent lines in multiline strings to the column after the opening
quote, instead of the same column.
For example:
>
(def default
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
(def aligned
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
<
This option is off by default.
>
" Default
let g:clojure_align_multiline_strings = 0
<
*g:clojure_align_subforms*
By default, parenthesized compound forms that look like function calls and
whose head subform is on its own line have subsequent subforms indented by
two spaces relative to the opening paren:
>
(foo
bar
baz)
<
Setting this option changes this behavior so that all subforms are aligned to
the same column, emulating the default behavior of clojure-mode.el:
>
(foo
bar
baz)
<
This option is off by default.
>
" Default
let g:clojure_align_subforms = 0
<
CLOJURE *ft-clojure-syntax*
The default syntax groups can be augmented through the
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
value should be a |Dictionary| of syntax group names to a |List| of custom
identifiers:
>
let g:clojure_syntax_keywords = {
\ 'clojureMacro': ["defproject", "defcustom"],
\ 'clojureFunc': ["string/join", "string/replace"]
\ }
<
Refer to the Clojure syntax script for valid syntax group names.
If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
language constants and special forms are matched.
Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
Any list, vector, or map that extends over more than one line can be folded
using the standard Vim |fold-commands|.
Please note that this option does not work with scripts that redefine the
bracket syntax regions, such as rainbow-parentheses plugins.
This option is off by default.
>
" Default
let g:clojure_fold = 0
<
ABOUT *clojure-about*
This document and associated runtime files are maintained at:
https://github.com/guns/vim-clojure-static
Distributed under the Vim license. See |license|.
syntax/clojure.vim
Copyright 2007-2008 (c) Toralf Wittner <toralf.wittner@gmail.com>
Copyright 2008-2012 (c) Meikel Brandmeyer <mb@kotka.de>
ftdetect/clojure.vim,
ftplugin/clojure.vim,
indent/clojure.vim
Copyright 2008-2012 (c) Meikel Brandmeyer <mb@kotka.de>
Modified and relicensed under the Vim License for distribution with Vim:
Copyright 2013-2014 (c) Sung Pae <self@sungpae.com>
Last Change: %%RELEASE_DATE%%
vim:tw=78:noet:sw=8:sts=8:ts=8:ft=help:norl:
endif

View File

@@ -1,8 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
Please see the project readme for up-to-date docs:
https://github.com/kchmck/vim-coffee-script
vim:tw=78:ts=8:ft=help:norl:
endif

View File

@@ -1,108 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cryptol') == -1
*cryptol.txt* functionality for the Cryptol programming language
Copyright © 2013 Edward O'Callaghan. All Rights Reserved.
.oooooo. . oooo
d8P' `Y8b .o8 `888
888 oooo d8b oooo ooo oo.ooooo. .o888oo .ooooo. 888
888 `888""8P `88. .8' 888' `88b 888 d88' `88b 888
888 888 `88..8' 888 888 888 888 888 888
`88b ooo 888 `888' 888 888 888 . 888 888 888
`Y8bood8P' d888b .8' 888bod8P' "888" `Y8bod8P' o888o
.o..P' 888
`Y8P' o888o
Functionality for the Cryptol programming language.
Includes syntax highlighting, code folding, and more!
==============================================================================
CONTENTS *CryptolContents*
1. Usage ................ |CryptolUsage|
2. Mappings ............. |CryptolMappings|
3. License .............. |CryptolLicense|
4. Bugs ................. |CryptolBugs|
5. Contributing ......... |CryptolContributing|
6. Changelog ............ |CryptolChangelog|
7. Credits .............. |CryptolCredits|
==============================================================================
Section 1: Usage *CryptolUsage*
This plugin will automatically provide syntax highlighting for Cryptol files
(files ending in .cry).
Cryptol is a purely functional domain specific language, developed over the
past decade by Galois for the NSA, for the design, implementation and
verification of cryptographic algorithms.
==============================================================================
Section 2: Mappings *CryptolMappings*
Code folding is done in the typical way, for example:
* za - When on a closed fold - open it.
* zM - Close all foldings to level 0.
* zR - Reduce folding
For more information see, for example, :help za
==============================================================================
Section 3: License *CryptolLicense*
Copyright © 2013 Edward O'Callaghan. All Rights Reserved.
HOWEVER:
Be it known, The syntax file was written by
Copyright © 2005 Fergus Henderson. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
==============================================================================
Section 4: Bugs *CryptolBugs*
* https://github.com/victoredwardocallaghan/cryptol.vim/issues
==============================================================================
Section 5: TODOs *CryptolTODOs
* Add compiler support
- .
==============================================================================
Section 6: Contributing *CryptolContributing*
* Edward O'Callaghan
==============================================================================
Section 7: Changelog *CryptolChangelog*
* Initial 25 Apr 2013.
==============================================================================
Section 8: Credits *CryptolCredits*
* Edward O'Callaghan
* Fergus Henderson - wrote the orginal syntax file.
vim:ts=4:ft=help:tw=78:et
endif

View File

@@ -1,90 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
*dart-vim-plugin* Dart support for Vim
INTRODUCTION *dart.vim*
dart-vim-plugin provides filetype detection, syntax highlighting, and
indentation for Dart code in Vim.
https://github.com/dart-lang/dart-vim-plugin
TOOLS *dart-tools*
An `includeexpr` is set that can read `.packages` files and resolve `package:`
uris to a file. See |gf| for an example use.
COMMANDS *dart-commands*
These commands are available in buffers with the dart filetype.
*:Dart2Js*
Runs dart2js to compile the current file. Takes the same arguments as the
dart2js binary and always passes the path to the current file as the last
argument.
If there are any errors they will be shown in the quickfix window.
*:DartFmt*
Runs dartfmt and passes the current buffer content through stdin. If the
format is successful replaces the current buffer content with the formatted
result. If the format is unsuccessful errors are shown in the quickfix window.
This command does not use the file content on disk so it is safe to run with
unwritten changes.
Passes arguments through to dartfmt.
*:DartAnalyzer*
Runs dartanalyzer to analyze the current file. Takes the same arguments as the
dartanalyzer binary and always passes the path to the current file as the last
argument.
If there are any errors they will be shown in the quickfix window.
CONFIGURATION *dart-configure*
*g:dart_html_in_string*
Set to `v:true` to highlights HTML syntax inside Strings within Dart files.
Default `v:false`
*g:dart_corelib_highlight*
Set to `v:false` to disable highlighting of code Dart classes like `Map` or
`List`.
Default `v:true`
*g:dart_style_guide*
Set to any value (set to `2` by convention) to set tab and width behavior to
match the Dart style guide - spaces only with an indent of 2. Also sets
`formatoptions += t` to auto wrap text.
Configure DartFmt options with `let g:dartfmt_options`, for example, enable
auto syntax fixes with `let g:dartfmt_options = ['--fix']`
(discover formatter options with `dartfmt -h`)
SYNTAX HIGHLIGHTING *dart-syntax*
This plugin uses narrow highlight groups to allow selectively disabling the
syntax highlights. Link any of the following groups to the `Normal` highlight
group to disable them:
`dartSdkException`: Capitalized exception or error classes defined in the SDK.
`dartCoreType`: `void`, `var`, `dynamic`
`dartSdkClass`: Capitalized classes defined in the SDK, along with `bool`,
`int`, `double`, and `num`.
`dartUserType`: Any capitalized identifier.
`dartType`: Combines `dartCoreType`, `dartSdkClass`, and `dartUserType`.
`dartSdkTypedef`: SDK defined `typdef`s.
`dartFunction`: Any lower cased identifier preceding an open parenthesis.
For example, to remove the highlighting for type and function names:
>
highlight link dartType Normal
highlight link dartFunction Normal
<
vim:tw=78:sw=4:ts=8:ft=help:norl:
endif

View File

@@ -1,43 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dhall') == -1
*dhall* Dhall syntax highlighting for Vim
____
=====================================================================
CONTENTS *DhallContents*
1. Config ......................................... ❘DhallConfig❘
2. License ....................................... ❘DhallLicense❘
======================================================================
Section 1: Config *DhallConfig*
----------------------------------------------------------------------
*'g:dhall_use_ctags'*
Values: 0, 1
Default: ''
Generate tags file for vim on write, using universal ctags. >
let g:dhall_use_ctags=1
<
*'g:dhall_format'*
Values: 0, 1
Default: ''
Format Dhall files on write >
let g:dhall_format=1
<
*'g:dhall_strip_whitespace'*
Values: 0, 1
Default: ''
To enable whitespace stripping >
let g:dhall_strip_whitespace=1
<
======================================================================
Section 2: License *DhallLicense*
This plugin is licensed under the BDS3 license.
endif

View File

@@ -1,116 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
*elixir.txt* Vim configuration files for Elixir http://elixir-lang.org/
Author: Plataformatec
License: Apache License Version 2.0
==============================================================================
CONTENTS *elixir-contents*
INTRODUCTION |elixir-introduction|
INTERFACE |elixir-interface|
FUNCTIONS |elixir-functions|
KEY MAPPINGS |elixir-key-mappings|
OPTIONS |elixir-options|
SETTINGS |elixir-settings|
==============================================================================
INTRODUCTION *elixir-introduction*
*elixir* provides Vim configuration files for Elixir http://elixir-lang.org/
* Syntax highlighting for Elixir and EEx files
* Filetype detection for `.ex`, `.exs`, `.eex` and `.leex` files
* Automatic indentation
* Integration between Ecto projects and |vim-dadbod| for running SQL queries
on defined Ecto repositories
Latest Version:
https://github.com/elixir-editors/vim-elixir
==============================================================================
INTERFACE *elixir-interface*
------------------------------------------------------------------------------
FUNCTIONS *elixir-functions*
db#adapter#ecto#canonicalize({url}) *db#adapter#ecto#canonicalize()*
TODO
db#adapter#ecto#complete_opaque({url}) *db#adapter#ecto#complete_opaque()*
TODO
elixir#indent#indent({lnum}) *elixir#indent#indent()*
TODO
elixir#indent#searchpair_back_skip() *elixir#indent#searchpair_back_skip()*
TODO
*elixir#indent#handle_top_of_file()*
elixir#indent#handle_top_of_file({context})
TODO
*elixir#indent#handle_follow_prev_nb()*
elixir#indent#handle_follow_prev_nb({context})
TODO
*elixir#indent#handle_following_trailing_binary_operator()*
elixir#indent#handle_following_trailing_binary_operator({context})
TODO
*elixir#indent#handle_starts_with_pipe()*
elixir#indent#handle_starts_with_pipe({context})
TODO
*elixir#indent#handle_starts_with_end()*
elixir#indent#handle_starts_with_end({context})
TODO
*elixir#indent#handle_starts_with_binary_operator()*
elixir#indent#handle_starts_with_binary_operator({context})
TODO
*elixir#indent#handle_inside_block()*
elixir#indent#handle_inside_block({context})
TODO
*elixir#indent#handle_inside_generic_block()*
elixir#indent#handle_inside_generic_block({context})
TODO
elixir#util#get_filename({word}) *elixir#util#get_filename({word})*
TODO
------------------------------------------------------------------------------
KEY MAPPINGS *elixir-key-mappings*
TODO
==============================================================================
SETTINGS *elixir-settings*
*g:eelixir_default_subtype*
TODO
*g:elixir_indent_debug*
TODO
*g:elixir_indent_max_lookbehind*
TODO
*g:elixir_use_markdown_for_docs*
TODO
*g:path*
TODO
==============================================================================
vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl
endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,25 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
GIT COMMIT *ft-gitcommit-plugin*
One command, :DiffGitCached, is provided to show a diff of the current commit
in the preview window. It is equivalent to calling "git diff --cached" plus
any arguments given to the command.
GIT REBASE *ft-gitrebase-plugin*
In a gitrebase filetype buffer, the following commands are provided:
`:Pick` Changes the cursor line to a `pick` line.
`:Squash` Changes the cursor line to a `squash` line
`:Edit` Changes the cursor line to an `edit` line
`:Reword` Changes the cursor line to a `reword` line
`:Fixup` Changes the cursor line to a `fixup` line
`:Drop` Changes the cursor line to a `drop` line
`:Cycle` Cycles between the first 5 gitrebase commands
To make the `:Cycle` command more useful, it might be mapped, e.g. >
nnoremap <buffer> <silent> S :Cycle<CR>
<
endif

View File

@@ -1,152 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
RUBY *ft-ruby-indent*
*vim-ruby-indent*
Ruby: Access modifier indentation |ruby-access-modifier-indentation|
Ruby: Block style indentation |ruby-block-style-indentation|
Ruby: Assignment style indentation |ruby-assignment-style-indentation|
Ruby: Hanging element indentation |ruby-hanging-element-indentation|
*ruby-access-modifier-indentation*
*g:ruby_indent_access_modifier_style*
Ruby: Access modifier indentation ~
Different access modifier indentation styles can be used by setting: >
:let g:ruby_indent_access_modifier_style = 'normal'
:let g:ruby_indent_access_modifier_style = 'indent'
:let g:ruby_indent_access_modifier_style = 'outdent'
<
By default, the "normal" access modifier style is used.
Access modifier style "normal":
>
class Indent
private :method
protected :method
private
def method; end
protected
def method; end
public
def method; end
end
<
Access modifier style "indent":
>
class Indent
private :method
protected :method
private
def method; end
protected
def method; end
public
def method; end
end
<
Access modifier style "outdent":
>
class Indent
private :method
protected :method
private
def method; end
protected
def method; end
public
def method; end
end
<
*ruby-block-style-indentation*
*g:ruby_indent_block_style*
Ruby: Block style indentation ~
Different block indentation styles can be used by setting: >
:let g:ruby_indent_block_style = 'expression'
:let g:ruby_indent_block_style = 'do'
<
By default, the "do" block indent style is used.
Block indent style "expression":
>
first
.second do |x|
something
end
<
Block indent style "do":
>
first
.second do |x|
something
end
<
*ruby-assignment-style-indentation*
*g:ruby_indent_assignment_style*
Ruby: Assignment style indentation ~
Different styles of indenting assignment for multiline expressions:
>
:let g:ruby_indent_assignment_style = 'hanging'
:let g:ruby_indent_assignment_style = 'variable'
<
By default, the "hanging" style is used.
Assignment indent style "hanging":
>
x = if condition
something
end
<
Assignment indent style "variable":
>
x = if condition
something
end
<
*ruby-hanging-element-indentation*
*g:ruby_indent_hanging_elements*
Ruby: Hanging element indentation ~
Elements of multiline collections -- such as arrays, hashes, and method
argument lists -- can have hanging indentation enabled or disabled with the
following setting.
>
:let g:ruby_indent_hanging_elements = 1
:let g:ruby_indent_hanging_elements = 0
<
By default, this setting is "1" (true) meaning that hanging indentation is
enabled in some cases.
Here is an example method call when the setting is true (non-zero):
>
render('product/show',
product: product,
on_sale: true,
)
<
And the same method call when the setting is false (zero):
>
render('product/show',
product: product,
on_sale: true,
)
<
Note that, even if the setting is turned on, you can still get non-hanging
indentation by putting each argument on a separate line:
>
render(
'product/show',
product: product,
on_sale: true,
)
<
vim:tw=78:sw=4:ts=8:ft=help:norl:
endif

View File

@@ -1,56 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
RUBY *ft-ruby-omni*
*vim-ruby-omni*
Completion of Ruby code requires that Vim be built with |+ruby|.
Ruby completion will parse your buffer on demand in order to provide a list of
completions. These completions will be drawn from modules loaded by "require"
and modules defined in the current buffer.
The completions provided by CTRL-X CTRL-O are sensitive to the context:
CONTEXT COMPLETIONS PROVIDED ~
1. Not inside a class definition Classes, constants and globals
2. Inside a class definition Methods or constants defined in the class
3. After '.', '::' or ':' Methods applicable to the object being
dereferenced
4. After ':' or ':foo' Symbol name (beginning with "foo")
Notes:
- Vim will load/evaluate code in order to provide completions. This may
cause some code execution, which may be a concern. This is no longer
enabled by default, to enable this feature add >
let g:rubycomplete_buffer_loading = 1
< - In context 1 above, Vim can parse the entire buffer to add a list of
classes to the completion results. This feature is turned off by default,
to enable it add >
let g:rubycomplete_classes_in_global = 1
< to your vimrc
- In context 2 above, anonymous classes are not supported.
- In context 3 above, Vim will attempt to determine the methods supported by
the object.
- Vim can detect and load the Rails environment for files within a rails
project. The feature is disabled by default, to enable it add >
let g:rubycomplete_rails = 1
< to your vimrc
- Vim can parse a Gemfile, in case gems are being implicitly required. To
activate the feature: >
let g:rubycomplete_load_gemfile = 1
< To specify an alternative path, use: >
let g:rubycomplete_gemfile_path = 'Gemfile.aux'
< To use Bundler.require instead of parsing the Gemfile, set: >
let g:rubycomplete_use_bundler = 1
< To use custom paths that should be added to $LOAD_PATH to correctly
resolve requires, set: >
let g:rubycomplete_load_paths = ["/path/to/code", "./lib/example"]
vim:tw=78:sw=4:ts=8:ft=help:norl:
endif

View File

@@ -1,85 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
RUBY *ft-ruby-plugin*
*vim-ruby-plugin*
Ruby: Recommended settings |ruby-recommended|
Ruby: Motion commands |ruby-motion|
Ruby: Text objects |ruby-text-objects|
*ruby-recommended*
*g:ruby_recommended_style*
Ruby: Recommended settings ~
The `g:ruby_recommended_style` variable activates indentation settings
according to the most common ruby convention: two spaces for indentation. It's
turned on by default to ensure an unsurprising default experience for most
ruby developers.
If you'd like to enforce your own style, it's possible to apply your own
preferences in your own configuration in `after/ftplugin/ruby.vim`. You can
also disable the setting by setting the variable to 0:
>
let g:ruby_recommended_style = 0
<
*ruby-motion*
Ruby: Motion commands ~
Vim provides motions such as |[m| and |]m| for jumping to the start or end of
a method definition. Out of the box, these work for curly-bracket languages,
but not for Ruby. The vim-ruby plugin enhances these motions, by making them
also work on Ruby files.
*ruby-]m*
]m Go to start of next method definition.
*ruby-]M*
]M Go to end of next method definition.
*ruby-[m*
[m Go to start of previous method definition.
*ruby-[M*
[M Go to end of previous method definition.
*ruby-]]*
]] Go to start of next module or class definition.
*ruby-][*
][ Go to end of next module or class definition.
*ruby-[[*
[[ Go to start of previous module or class definition.
*ruby-[]*
[] Go to end of previous module or class definition.
*ruby-text-objects*
Ruby: Text objects ~
Vim's |text-objects| can be used to select or operate upon regions of text
that are defined by structure. The vim-ruby plugin adds text objects for
operating on methods and classes.
*ruby-v_am* *ruby-am*
am "a method", select from "def" until matching "end"
keyword.
*ruby-v_im* *ruby-im*
im "inner method", select contents of "def"/"end" block,
excluding the "def" and "end" themselves.
*ruby-v_aM* *ruby-aM*
aM "a class", select from "class" until matching "end"
keyword.
*ruby-v_iM* *ruby-iM*
iM "inner class", select contents of "class"/"end"
block, excluding the "class" and "end" themselves.
vim:tw=78:sw=4:ts=8:ft=help:norl:
endif

View File

@@ -1,123 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
RUBY *ruby.vim* *ft-ruby-syntax*
*vim-ruby-syntax*
Ruby: Operator highlighting |ruby_operators|
Ruby: Whitespace errors |ruby_space_errors|
Ruby: Syntax errors |ruby_syntax_errors|
Ruby: Folding |ruby_fold| |ruby_foldable_groups|
Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines|
Ruby: Spellchecking strings |ruby_spellcheck_strings|
*ruby_operators*
Ruby: Operator highlighting ~
Operators, and pseudo operators, can be highlighted by defining: >
:let ruby_operators = 1
:let ruby_pseudo_operators = 1
<
The supported pseudo operators are ., &., ::, *, **, &, <, << and ->.
*ruby_space_errors*
Ruby: Whitespace errors ~
Whitespace errors can be highlighted by defining "ruby_space_errors": >
:let ruby_space_errors = 1
<
This will highlight trailing whitespace and tabs preceded by a space character
as errors. This can be refined by defining "ruby_no_trail_space_error" and
"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
spaces respectively.
*ruby_syntax_errors*
Ruby: Syntax errors ~
Redundant line continuations and predefined global variable look-alikes (such
as $# and $-z) can be highlighted as errors by defining:
>
:let ruby_line_continuation_error = 1
:let ruby_global_variable_error = 1
<
*ruby_fold*
Ruby: Folding ~
Folding can be enabled by defining "ruby_fold": >
:let ruby_fold = 1
<
This will set the value of 'foldmethod' to "syntax" locally to the current
buffer or window, which will enable syntax-based folding when editing Ruby
filetypes.
*ruby_foldable_groups*
Default folding is rather detailed, i.e., small syntax units like "if", "do",
"%w[]" may create corresponding fold levels.
You can set "ruby_foldable_groups" to restrict which groups are foldable: >
:let ruby_foldable_groups = 'if case %'
<
The value is a space-separated list of keywords:
keyword meaning ~
-------- ------------------------------------- ~
ALL Most block syntax (default)
NONE Nothing
if "if" or "unless" block
def "def" block
class "class" block
module "module" block
do "do" block
begin "begin" block
case "case" block
for "for", "while", "until" loops
{ Curly bracket block or hash literal
[ Array literal
% Literal with "%" notation, e.g.: %w(STRING), %!STRING!
/ Regexp
string String and shell command output (surrounded by ', ", `)
: Symbol
# Multiline comment
<< Here documents
__END__ Source code after "__END__" directive
NONE and ALL have priority, in that order, over all other folding groups.
*ruby_no_expensive*
Ruby: Reducing expensive operations ~
By default, the "end" keyword is colorized according to the opening statement
of the block it closes. While useful, this feature can be expensive; if you
experience slow redrawing (or you are on a terminal with poor color support)
you may want to turn it off by defining the "ruby_no_expensive" variable: >
:let ruby_no_expensive = 1
<
In this case the same color will be used for all control keywords.
*ruby_minlines*
If you do want this feature enabled, but notice highlighting errors while
scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
the "ruby_minlines" variable to a value larger than 50: >
:let ruby_minlines = 100
<
Ideally, this value should be a number of lines large enough to embrace your
largest class or module.
*ruby_spellcheck_strings*
Ruby: Spellchecking strings ~
Ruby syntax will perform spellchecking of strings if you define
"ruby_spellcheck_strings": >
:let ruby_spellcheck_strings = 1
<
vim:tw=78:sw=4:ts=8:ft=help:norl:
endif

View File

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

View File

@@ -1,54 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
*graphql.txt* GraphQL plug-in for Vim *graphql*
CONTENTS *graphql-contents*
1. Introduction |graphql-intro|
2. JavaScript Support |graphql-javascript|
3. TypeScript Support |graphql-typescript|
INTRODUCTION *graphql-intro*
This plugin provides GraphQL (http://graphql.org/) file detection, syntax
highlighting, and indentation.
JAVASCRIPT *graphql-javascript*
GraphQL syntax support in ES2015 template literals is provided. It works "out
of the box" with Vim 8.2's JavaScript support. The extended syntax provided by
the vim-javascript (https://github.com/pangloss/vim-javascript) plugin is also
supported.
*graphql-javascript-options*
*g:graphql_javascript_tags*
|g:graphql_javascript_tags| list of strings
Default: `["gql", "graphql", "Relay.QL"]`
This variable lists the ES2015 template tag names that will be recognized as
containing GraphQL template literal strings.
TYPESCRIPT *graphql-typescript*
Like |graphql-javascript|, GraphQL syntax support in ES2015 template literals
is provided. It also works "out of the box" with Vim 8.2's TypeScript support,
which is based on the yats (https://github.com/HerringtonDarkholme/yats.vim)
plugin. For older versions, you can install yats directly.
TypeScript syntax support also uses |graphql-javascript-options| to customize
the list of recognized template tag names.
REASONML *graphql-reasonml*
GraphQL syntax support inside of ReasonML template strings using graphql-ppx
is available.
------------------------------------------------------------------------------
vim:tw=78:ft=help:norl:
endif

View File

@@ -1,163 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
*haskell-vim.txt* Last Change 2016 March 14
===============================================================================
===============================================================================
===============================================================================
CONTENTS *haskell-vim-contents*
1. Features |haskell-vim-features|
2. Configuration |haskell-vim-configuration|
3. Highlighting |haskell-vim-indentation|
===============================================================================
FEATURES *haskell-vim-features*
* Covers a broader spectrum of keywords
* Highlighting for new features like type families, pattern synonyms,
arrow syntax, recursive do, role annotations, QuasiQuotation
* More contextual highlighting
(e.g. highlight "as" or "family" only in appropriate places)
* Smarter indentation
* Better Cabal support
===============================================================================
CONFIGURATION *haskell-vim-configuration*
To enable the features you would like to use, just add the according line to
your `.vimrc`.
===============================================================================
HIGHLIGHTING *haskell-vim-highlighting*
`haskell-vim` can highlight additional keywords. This is enabled by setting
the according variable to 1 in the `.vimrc`.
* |haskell-vim-enable-quantification|
* |haskell-vim-enable-recursivedo|
* |haskell-vim-enable-arrowsyntax|
* |haskell-vim-enable-pattern-synonyms|
* |haskell-vim-enable-typeroles|
* |haskell-vim-enable-static-pointers|
* |haskell-vim-classic-highlighting|
* |haskell-vim-disable-TH|
*haskell-vim-enable-quantification*
`g:haskell_enable_quantification` Enables highlighting of `forall`.
*haskell-vim-enable-recursivedo*
`g:haskell_enable_recursivedo` Enables highlighting of `mdo` and `rec`.
*haskell-vim-enable-arrowsyntax*
`g:haskell_enable_arrowsyntax` Enables highlighting of `proc`.
*haskell-vim-enable-pattern-synonyms*
`g:haskell_enable_pattern_synonyms` Enables highlighting of the `pattern` keyword.
*haskell-vim-enable-typeroles*
`g:haskell_enable_typeroles` Enables highlighting of the `role` keyword, as
well as `phantom`, `norminal` and
`representational`.
*haskell-vim-enable-static-pointers*
`g:haskell_enable_static_pointers` Enables highlighting of the `static` keyword.
*haskell-vim-classic-highlighting*
`haskell-vim` has an opinionated highlighting. If you do not like that you can
switch to a more traditional mode by setting `g:haskell_classic_highlighting`
to 1.
*haskell-vim-disable-TH*
Disabling Template Haskell and Quasiquoting syntax is possible by setting
`g:haskell_disable_TH` to `1`.
===============================================================================
INDENTATION *haskell-vim-indentation*
To configure indentation in `haskell-vim` you can use the following variables to
change indentation depth, just add the according line to your `.vimrc`.
You can disable the indentation by setting `g:haskell_indent_disable` to `1`.
Haskell~
* |haskell-vim-indent-if|
* |haskell-vim-indent-case|
* |haskell-vim-indent-let|
* |haskell-vim-indent-where|
* |haskell-vim-indent-before-where|
* |haskell-vim-indent-after-bare-where|
* |haskell-vim-indent-do|
* |haskell-vim-indent-in|
* |haskell-vim-indent-guard|
*haskell-vim-indent-if*
* let g:haskell_indent_if = 3 >
if bool
>>>then ...
>>>else ...
<
*haskell-vim-indent-case*
* let g:haskell_indent_case = 2 >
case xs of
>>[] -> ...
>>(y:ys) -> ...
<
*haskell-vim-indent-let*
* let g:haskell_indent_let = 4 >
let x = 0 in
>>>>x
<
*haskell-vim-indent-where*
* let g:haskell_indent_where = 6 >
where f :: Int -> Int
>>>>>>f x = x
<
*haskell-vim-indent-before-where*
* let g:haskell_indent_before_where = 2 >
foo
>>where
<
*haskell-vim-indent-after-bare-where*
* let g:haskell_indent_after_bare_where = 2 >
where
>>foo
<
*haskell-vim-indent-do*
* let g:haskell_indent_do = 3 >
do x <- a
>>>y <- b
<
*haskell-vim-indent-in*
* let g:haskell_indent_in = 1 >
let x = 1
>in x
<
*haskell-vim-indent-guard*
* let g:haskell_indent_guard = 2 >
f x y
>>|
<
Cabal~
* |cabal-vim-indent-section|
*cabal-vim-indent-section*
* let g:cabal_indent_section = 2 (limited to max. 4 spaces) >
executable name
>>main-is: Main.hs
<
endif

View File

@@ -1,158 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris') == -1
*idris-vim.txt* Last change 2014 April 24
===============================================================================
===============================================================================
@@@@ @@@@@@@@ @@@@@@@@ @@@@ @@@@@@ @@ @@ @@@@ @@ @@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@ @@@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@ @@@@
@@ @@ @@ @@@@@@@@ @@ @@@@@@ @@@@@@@ @@ @@ @@ @@ @@@ @@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
@@@@ @@@@@@@@ @@ @@ @@@@ @@@@@@ @@@ @@@@ @@ @@
===============================================================================
CONTENTS *idris-vim-contents*
1. Features: |idris-vim-features|
2. Requirements: |idris-vim-requirements|
3. Functions: |idris-vim-functions|
4. Troubleshooting |idris-vim-troubleshooting|
5. Examples: |idris-vim-examples|
6. Information: |idris-vim-information|
===============================================================================
FEATURES *idris-vim-features*
* Syntax Highlighting
* Indentation
* Unicode Concealing
* Syntax Checking (via Syntastic(https://github.com/scrooloose/syntastic))
* Interactive Editing via the REPL
===============================================================================
REQUIREMENTS *idris-vim-requirements*
* Idris (http://www.idris-lang.org/)
OPTIONAL:
* Syntastic(https://github.com/scrooloose/syntastic) for syntax checking
* Vimshell(https://github.com/Shougo/vimshell.vim) for a REPL
===============================================================================
FUNCTIONS *idris-vim-functions*
All of the functions in idris-vim are essentially just calls back to the REPL,
so documentation for each of them is also available there.
IdrisDocumentation *IdrisDocumentation*
Shows internal documentation of the primitive under the cursor.
Mapped to '<LocalLeader>_h' by default.
IdrisResponseWin *IdrisResponseWin*
This opens an idris response window in a new pane.
Mapped to '<LocalLeader>_i' by default.
IdrisShowType *IdrisShowType*
This shows the type of the name under the cursor (or, if the cursor happens
to be over a metavariable, a bit more information about its context).
Mapped to '<LocalLeader>_t' by default.
IdrisReload *IdrisReload*
This reloads the file and type-checks the file in the current buffer.
Mapped to '<LocalLeader>_r' by default.
IdrisEval *IdrisEval*
This prompts for an expression and then evaluates it in the REPL, then
returns the result.
Mapped to '<LocalLeader>_e' by default.
IdrisCaseSplit *IdrisCaseSplit*
When the cursor is over a variable in a pattern match clause or case
expression, this splits the variable into all well-typed patterns.
Mapped to '<LocalLeader>_c' by default
IdrisAddClause *IdrisAddClause*
When the cursor is at a type declaration this creates a new clause for that
signature.
By default mapped to '<LocalLeader>_d' for an ordinary top-level definition,
'<LocalLeader>_b' for a typeclass instance definition, and
'<LocalLeader>_md' to add a pattern-matching proof clause.
IdrisAddMissing: *IdrisAddMissing*
When the cursor is over a function, this adds all clauses necessary to make
that function cover all inputs. This also eliminates clauses which would
lead to unification errors from appearing.
Mapped to '<LocalLeader>_m' by default
IdrisRefine: *IdrisRefine*
Refines the item the cursor is over (applies the name and fills in any
arguments which can be filled in via unification)
Mapped to '<LocalLeader>_f' by default
IdrisProofSearch: *IdrisProofSearch*
This attempts to find a value for the metavariable it was called on by
looking at the rest of the code. It can also be called with hints, which
are functions that can apply to help solve for the metavariable.
Mapped to '<LocalLeader>_o' without hints and '<LocalLeader>p' with hints by
default
IdrisMakeWith: *IdrisMakeWith*
When the cursor is over a pattern clause and this is called, it creates a
new with clause.
Mapped to '<LocalLeader>_w' by default
IdrisMakeLemma: *IdrisMakeLemma*
When the cursor is over a metavariable and this is called, it creates a new
top-level definition to solve the metavariable.
Mapped to '<LocalLeader>_l' by default
===============================================================================
TROUBLESHOOTING *idris-vim-troubleshooting*
If this isn't working for you, make sure that:
* There is an Idris REPL running
* For syntax checking, you have syntastic installed
* The plugins mappings exists and don't conflict with anything else installed
(You can use ':map' to check. There should be mappings similar to
'\h * :call IdrisShowDoc()'.)
* Vim recognizes you're in an idris file (you can use ':verb set ft' to check)
If none of this works, check to issue tracker on github and if nothing is
there create an issue with a detailed description of the problem.
===============================================================================
EXAMPLES *idris-vim-examples*
Some excellent tutorials/examples for interactive editing using the above
functions can be found at:
http://edwinb.wordpress.com/2013/10/28/interactive-idris-editing-with-vim/
and
http://www.scribd.com/doc/214031954/60/Interactive-Editing-in-Vim
===============================================================================
INFORMATION *idris-vim-information*
Author: edwinb
Repo: https://github.com/idris-hackers/idris-vim
Documentation by japesinator
===============================================================================
===============================================================================
" vim:ft=help:et:ts=2:sw=2:sts=2:norl:
endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,405 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
*julia-vim-L2U.txt* Support for LaTeX-to-Unicode substitutions
Author: Carlo Baldassi <carlobaldassi@gmail.com>
License: MIT license {{{
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
}}}
CONTENTS *julia-vim-L2U*
LaTeX-to-Unicode substitutions |julia-vim-L2U-introdction|
Via Tab key |julia-vim-L2U-tab|
As you type |julia-vim-L2U-as-you-type|
Via Keymap |julia-vim-L2U-keymap|
On different file types |julia-vim-L2U-file-types|
Enabling and disabling |julia-vim-L2U-enable-disable|
Variables |julia-vim-L2U-variables|
Functions |julia-vim-L2U-functions|
==============================================================================
LATEX TO UNICODE *julia-vim-L2U-introduction*
In the Julia REPL, entering a LaTeX-like sequence such as `\alpha` and pressing
the <Tab> key substitutes it with a Unicode character such as `α`. The Julia
REPL also provides partial completions, and suggestions for possible
completions upon repeated pressing of the <Tab> key. Emojis are also
available, with their names written between colons, e.g. `\:interrobang:`
produces `⁉`.
See |julia-vim-L2U-reference| for the complete table of substitutions.
This Vim plug-in also provides the functionality needed to convert LaTeX
input sequences into Unicode characters. There are 3 different methods
available:
1. The default one is the most similar to the Julia one: substitutions are
triggered by pressing the <Tab> key; if a partial match is found a list
of suggested completions is presented in a menu together with their
Unicode counterpart. The exact behaviour of this feature can be
customized, see |julia-vim-L2U-tab|.
2. The second one substitutes symbols on the fly as you type, but only in
|Insert| mode. See |julia-vim-L2U-as-you-type|.
3. The third is based on |keymap|. It also substitutes as-you-type, but it
doesn't show you the full LaTeX sequence as you're typing it, and there
is a time-out. Its main advantage over the previous one is that can be
used in more circumstances, e.g. in |Command-line| mode or when searching
for a character with |f| or |t|, as explained in |language-mapping|. See
|julia-vim-L2U-keymap|.
All of these methods are independent and can be used together without issues.
The default configuration is to use the first method, and it's only active
when editing Julia files. It only works in |Insert| and |Command-line| modes.
It is possible to enable it with other file types, see
|julia-vim-L2U-file-types|, and it can be even turned on/off on the fly
regardless of the file type, see |julia-vim-L2U-enable-disable|.
In |Command-line| mode, e.g. when searching with the |/| or |?| commands, the
default behavior is very similar to the default |Insert| mode behavior, but
slightly more limited, see |julia-vim-L2U-cmdmode|.
These features only work as described with Vim version 7.4 or higher. Tab
completion can still be made available on lower Vim versions, see
|julia-vim-L2U-workaround|. The keymap mode might work but it hasn't been
tested.
See |julia-vim| for the general reference about the other features of the
julia-vim plug-in.
------------------------------------------------------------------------------
LATEX TO UNICODE VIA TAB KEY *julia-vim-L2U-tab*
Substitution of LaTeX sequences when pressing the <Tab> key (in |Insert| mode or
in |Command-line| modes) is active by default. Use |g:latex_to_unicode_tab| to
control it.
When this feature is active, the julia-vim plug-in creates a mapping for the
<Tab> key (in |Insert| mode) which takes precedence on any previously defined
mapping assigned to it, such that when the <Tab> key is pressed the plug-in
looks for potential LaTeX symbol matches before the cursor, and if it fails to
find anything of interest it will fall-back to the previous mapping for <Tab>
(with default Vim settings, this means it will insert a literal <Tab>; but if
you have defined some other behavior for that key, e.g. by installing another
plug-in such as supertab (https://github.com/ervandew/supertab) than that will
be used).
For example, entering this text in a file:
>
1 + \alpha
<
and then pressing <Tab>, results in:
>
1 + α
<
This feature is associated with 'omnifunc' completion, and therefore can
always be accessed via CTRL-X CTRL-O, even when |g:latex_to_unicode_tab| is 0.
A literal <Tab> key can always be entered by using CTRL-V before <Tab> (see
|i_CTRL-V|).
Partial sequence recognition triggers auto-completion (performed as if the
`longest` setting was used in 'completeopt') and shows a menu of suggestions
together with their corresponding Unicode symbol (provided the `menu` setting
is included in 'completeopt', and more then one match is found). So for
example, entering `\al` and pressing <Tab> will result in the following list:
>
+-------------+
| \aleph ℵ |
| \allequal ≌ |
| \alpha α |
+-------------+
>
Then, pressing `p` will reduce the list to `\alpha`, pressing <Tab> will
complete it and pressing <Tab> again will perform the substitution.
The completion menu can be disbled, and this will happen automatically if a
plug-in which is known to be incompatible with this feature is detected: see
|g:latex_to_unicode_suggestions|.
Some LaTeX sequences can be valid both as they are and as partial matches for
other sequences, e.g. `\ne` is associated with `≠`, but it is also a partial
match for `\nequiv` (`≢`). By default, if <Tab> finds an exact match performs
the substitution, but this can be controlled by the |g:latex_to_unicode_eager|
setting.
Command-line mode *julia-vim-L2U-cmdmode*
In |Command-line| mode, the behavior is largely the same except that both
<Tab> and <S-Tab> are mapped by default, and the functionality is slightly
more limited. No suggestions are shown for partial completions. Pre-existing
user-defined mappings of <Tab> are overridden. In order to avoid that, the
completion can be mapped onto a defferent key combination, see
|g:latex_to_unicode_cmd_mapping|. When using <Tab>, if no matches are found
the behavior falls back to the standard Vim command-line completion.
Vim versions lower than 7.4 *julia-vim-L2U-workaround*
The <Tab> key remapping is not performed by default with Vim versions lower
than 7.4. However, the functionality is still available via onmicompletion,
which is accessible by the CTRL-X CTRL-O key combination. You can map some
other key combination to this by adding something like
>
inoremap <C-Tab> <C-X><C-O>
<
in your |.vimrc| file. If you'd map <Tab> directly, then you'd need to use
CTRL-V <Tab> to insert a literal <Tab>.
The settings |g:latex_to_unicode_eager| and |g:latex_to_unicode_suggestions|
are still meaningful in this case.
------------------------------------------------------------------------------
LATEX TO UNICODE AS YOU TYPE *julia-vim-L2U-as-you-type*
This feature is disabled by default, see |g:latex_to_unicode_auto|, and it is
only available with Vim version 7.4 or higher. It consists in substituting
valid LaTeX sequences with Unicode symbols automatically as the typing
progresses, as soon as the sequences is unambiguously complete. For example,
when typing:
>
\chi\^2 = 1
<
The result is
>
χ² = 1
<
The `\chi` is substituted right when the second backslash is entered, and the
`\^2` is substituted when the following space is entered, before the equal
sign.
This feature does not currently work with emojis.
This feature does not interfere with the <Tab> based substitution.
------------------------------------------------------------------------------
LATEX TO UNICODE VIA KEYMAP *julia-vim-L2U-keymap*
This method is somewhat similar to the as-you-type one described above, but it
uses |keymap| to generate the mappings. This has the advantage that it works
in more circumstances, e.g. in |Command-line| mode or when searching within a
line with |f| or |t| (since it uses |language-mapping| underneath). It can
also be easily turned on or off like any other keymap (see |i_CTRL-^| and
|c_CTRL-^|). Like the as-you-type fature, it doesn't work with emojis.
The disadvantage is that you don't see the whole sequence as you're typing
it, and you can't fix mistakes with backspace, for example.
Another difference is that there is a |timeout| like for any other mapping.
In order to use this method, set |g:latex_to_unicode_keymap| to `1`.
You can use it in parallel with the other methods, they don't interfere. For
example, typing a partial sequence and pressing <Tab> still triggers
completions and suggestions if |g:latex_to_unicode_tab| is active.
If you use this feature, it's also useful to set |lCursor|.
------------------------------------------------------------------------------
LATEX TO UNICODE ON DIFFERENT FILE TYPES *julia-vim-L2U-file-types*
By default, the LaTeX-to-Unicode substitutions are only active when editing
Julia files. However, you can use the variable |g:latex_to_unicode_file_types|
to specify for which file types this feature is active by default. The
variable must be set to a string containing a |pattern| (a regular expression)
which matches the desired file types, or to a list of such patterns. For
example, to activate the feature on all file types by default, you could put
this in your |.vimrc| file:
>
let g:latex_to_unicode_file_types = ".*"
<
To make it active only on, say, Julia and Lisp files, you could use:
>
let g:latex_to_unicode_file_types = ["julia", "lisp"]
<
Another option, |g:latex_to_unicode_file_types_blacklist|, can be used to
exclude certain file types. For example, if you'd wish to enable the feature
in all cases except for Python and untyped files, you would use:
>
let g:latex_to_unicode_file_types = ".*"
let g:latex_to_unicode_file_types_blacklist = ["python", ""]
<
NOTE: enabling the functionality will override the |'omnifunc'| setting, which
can be undesirable, and interfere with plug-ins for different file types. In
any case, the previous |'omnifunc'| setting is restored when the functionality
is disabled, see |julia-vim-L2U-enable-disable|.
------------------------------------------------------------------------------
ENABLING AND DISABLING LATEX TO UNICODE *julia-vim-L2U-enable-disable*
The LaTeX-to-Unicode functionality can be enabled or disabled at any time,
regardless of the |'filetype'| of the file you're editing, using the functions
|LaTeXtoUnicode#Enable()|, |LaTeXtoUnicode#Disable()|, |LaTeXtoUnicode#Toggle()|.
For example, you could use a mapping like:
>
noremap <expr> <F7> LaTeXtoUnicode#Toggle()
noremap! <expr> <F7> LaTeXtoUnicode#Toggle()
<
and then use the <F7> key to quickly switch the functionality on and off as
needed (see |noremap| and |noremap!|).
NOTE: these functions are different from the variables |g:latex_to_unicode_tab|,
|g:latex_to_unicode_auto| and |g:latex_to_unicode_keymap|: the functions
enable/disable the functionality as a whole, while the variables control
individual features (tab, auto and keymap substitution).
==============================================================================
VARIABLES *julia-vim-L2U-variables*
*g:latex_to_unicode_tab*
g:latex_to_unicode_tab
Determines whether to map LaTeX-to-Unicode substitution to the
<Tab> key while in |Insert| and |Command-line| modes, see
|julia-vim-L2U-tab|. If unspecified, it is on. You can disable
the feature by default by inserting the line
>
let g:latex_to_unicode_tab = 0
<
in your |.vimrc| file. You can change this setting at any moment
while editing, but you need to invoke |LaTeXtoUnicode#Init()|
for the change to take effect.
*g:latex_to_unicode_suggestions*
g:latex_to_unicode_suggestions
Determines whether the <Tab> key mapping produces suggestions
for partial matches. By default, this is set to 1 (active),
unless a plug-in which is known to be incompatible with it is
detected. Currently, known incompatible plug-ins are
YouCompleteMe (https://github.com/Valloric/YouCompleteMe),
neocomplcache (https://github.com/Shougo/neocomplcache.vim),
neocomplete (https://github.com/Shougo/neocomplete.vim) and
deoplete (https://github.com/Shougo/deoplete.nvim),
This variable can be set at any time, changes will immediately
take effect.
*g:latex_to_unicode_eager*
g:latex_to_unicode_eager
Determines whether the <Tab> key mapping performs the
substitution immediately upon finding an exact match. By
default this setting is set to 1 (active), so that e.g. typing
`\ne` and pressing the <Tab> key triggers the substitution. If
this variable is set to 0, an exact match which is also a
possible partial match to some other sequence triggers the
suggestions menu first, but another <Tab> forces the
substitution, so that e.g. typing `\ne` and then <Tab>
produces a list with `\ne`, `\neg`, `\nequiv` etc., and
pressing <Tab> again performs the substitution.
This variable can be set at any time, changes will immediately
take effect. When |g:latex_to_unicode_suggestions| is `0`,
this setting has no effect (it's like if it was always on).
*g:latex_to_unicode_auto*
g:latex_to_unicode_auto
Determines whether to activate LaTeX-to-Unicode substitution
on the fly as you type (in |Insert| mode), see
|julia-vim-L2U-as-you-type|. If unspecified, it is `0` (off).
You can enable the feature by default by inserting the line
>
let g:latex_to_unicode_auto = 1
<
in your |.vimrc| file. You can change this setting at any
moment while editing, but you need to invoke
|LaTeXtoUnicode#Init()| for the change to take effect.
*g:latex_to_unicode_keymap*
g:latex_to_unicode_keymap
Determines whether to activate the |keymap|-based
LaTeX-to-Unicode substitutions, see |julia-vim-L2U-keymap|.
If unspecified, it is `0` (off). You can enable the feature by
default by inserting the line
>
let g:latex_to_unicode_keymap = 1
<
in your |.vimrc| file. You can change this setting at any
moment while editing, but you need to invoke
|LaTeXtoUnicode#Init()| for the change to take effect.
*g:latex_to_unicode_file_types*
g:latex_to_unicode_file_types
Contains a |pattern|, or a list of patterns, which are matched
against the |'filetype'| to determine when to enable the
LaTeX-to-Unicode functionality, see |julia-vim-L2U-file-types|.
By default, its value is `"julia"`. The patterns provided must
match the whole filetype name. See also
|g:latex_to_unicode_file_types_blacklist|.
*g:latex_to_unicode_file_types_blacklist*
g:latex_to_unicode_file_types_blacklist
Same as |g:latex_to_unicode_file_types|, but acts in reverse:
it disables the LaTeX-to-Unicode functionality when the
|'filetype'| matches the provided pattern (or any of the
patterns if a list is provided). By default, it contains an
unmatchable pattern, i.e. it is effectively disabled.
*g:latex_to_unicode_cmd_mapping*
g:latex_to_unicode_cmd_mapping
Specifies the mapping (or list of mappings) for the
substitution in |Command-line| mode. By default, it is
`['<Tab>', '<S-Tab>']`, but it can be changed to avoid
overriding other user-defined mapping, e.g. to `'<S-Tab>'`
(if your terminal suppoorts it) or `'<C-\><Tab>'`.
The `'<Tab>'` (or to be more precise the |wildchar| key) and
`'<S-Tab>'` mappings are special in that they fall back to
performing default Vim completions in case no suitable
substitutions are found.
==============================================================================
FUNCTIONS *julia-vim-L2U-functions*
*LaTeXtoUnicode#Init()*
LaTeXtoUnicode#Init()
Initialize or re-initialize the LaTeX-to-Unicode substitutions
(see |julia-vim-L2U-introduction|). Must be invoked after
changing |g:latex_to_unicode_tab| or |g:latex_to_unicode_auto|
to make the changes take effect.
*LaTeXtoUnicode#Enable()*
*LaTeXtoUnicode#Disable()*
*LaTeXtoUnicode#Toggle()*
LaTeXtoUnicode#Enable()
LaTeXtoUnicode#Disable()
LaTeXtoUnicode#Toggle()
These functions enable/disable/toggle the LaTeX-to-Unicode
functionality, regardless of the |'filetype'| specified in
|g:latex_to_unicode_file_types| and
|g:latex_to_unicode_file_types_blacklist|. See
|julia-vim-L2U-enable-disable|. Note that LaTeXtoUnicode#Enable()
will override the |'omnifunc'| definition, if present. However,
LaTeXtoUnicode#Disable() will restore it.
These functions implicitly invoke |LaTeXtoUnicode#Init()|.
vim:tw=78:et:ft=help:norl:
endif

View File

@@ -1,484 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
*julia-vim.txt* Support for Julia in Vim
Author: Carlo Baldassi <carlobaldassi@gmail.com>
License: MIT license {{{
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
}}}
CONTENTS *julia-vim*
Introduction |julia-vim-introduction|
Block-wise movements/objects |julia-vim-blocks|
Keyword-oriented movements |julia-vim-blocks-move|
Block-oriented movements |julia-vim-blocks-moveblock|
Block text objects |julia-vim-blocks-objects|
Variables |julia-vim-blocks-variables|
Referring to documents |julia-vim-doc|
Extras |julia-vim-extras|
Customizations |julia-vim-options|
About |julia-vim-about|
==============================================================================
INTRODUCTION *julia-vim-introduction*
The julia-vim plug-in provides:
- basic support for editing Julia files (automatic filetype detection,
indentation, syntax highlighting)
- support for the |matchit| plugin
- support for Julia block-wise movements (i.e. jumping around between
Julia blocks like if/end, function/end etc.) and block text-objects
- facilities for conversion of LaTeX entries to Unicode symbols which mimic
and extend what the Julia REPL and the IJulia notebook interface do.
Optionally, this functionality can be used with all file types, not
just Julia files. See |julia-vim-L2U|.
- a keymapping |K| to refer julia documents.
This help file documents: 1) the block-wise movements and objects, how they
work and what variables can be used to enable/disable/tweak them; 2) The
documentation lookup facility; 3) Some extra functions and customization
options.
The LaTeX-to-Unicode facilities are documented in |julia-vim-L2U|.
==============================================================================
BLOCK-WISE MOVEMENTS AND BLOCK TEXT OBJECTS *julia-vim-blocks*
In Julia, all blocks start with a keyword (`module`, `function`, `if`, `for`,
`while`, `type`, etc.) and end with the `end` keyword.
This plug-in adds support for the |matchit| plugin, such that pressing |%| while
on a block keyword will jump to the other keywords pertaining to the same
block. For example, if the cursor is at the beginning of the following code:
>
if a == 1
if b > 0
println("yes")
end
else
println("no")
end
<
then pressing |%| will jump to the `else` keyword, pressing it again will jump
to `end`, and pressing it again will go back to the first `if`.
Note that the matchit plugin is normally distributed with ViM, but it is
disabled by default. To enable it, add this line to your |.vimrc| file:
>
runtime macros/matchit.vim
<
The julia-vim plug-in also adds commands to jump around block keywords in
normal, operator-pending and visual modes (see |vim-modes|). These are somehow
similar to the |]]| and |]m| mappings when used in C and Java files,
respectively, but are more powerful. These commands also require that the
matchit plugin is enabled.
There are two families of block movements, keyword-oriented (see
|julia-vim-blocks-move|) and block-oriented (see
|julia-vim-blocks-blockmove|).
Finally, this plug-in also adds block |text-objects| special mappings, so that
whole blocks can be manipulated as a whole when in visual mode or
operator-pending mode, see |julia-vim-block-objects|.
The block movements and block objects mappings can be collectively disabled,
see |g:julia_blocks|, and customized, see |g:julia_blocks_mappings|.
NOTE: in all cases, macros at the beginning of a block are considered as part
of the block itself. For example, in this code:
>
@inbounds for i = 1:5
s += v[i]
end
<
the block begins at `@inbounds`.
------------------------------------------------------------------------------
KEYWORD-ORIENTED MOVEMENTS *julia-vim-blocks-move*
These movements jump to the following/preceding block keyword, and they
differentiate between begin keywords and end keywords. Some block keywords can
also be used outside blocks (e.g. `for` in comprehensions, or `end` within
indexing expressions): these instances are ignored by these commands.
The following movements are provided:
*julia_]j* *julia_]J* *julia_[j* *julia_[J*
move_n : jumps to the next begin keyword. By default, it is mapped to `]j`.
move_N : jumps to the next end keyword. By default, it is mapped to `]J`.
move_p : jumps to the preceding begin keyword. By default, it is mapped to `[j`.
move_P : jumps to the preceding end keyword. By default, it is mapped to `[J`.
Use |g:julia_blocks_mappings| to customize the mappings.
------------------------------------------------------------------------------
BLOCK-ORIENTED MOVEMENTS *julia-vim-blocks-moveblock*
These movements are like keyword-oriented movements (|julia-vim-blocks-move|),
except that they ignore nested blocks within the block where the cursor is.
For example, given the following code (with line annotations):
>
1 while true
2 a += 1
3 if a > 5
4 break
5 end
6 end
7 if b == 2
8 return
9 end
<
if the cursor is on line 2, these movements will ignore the inner
`if/end` block (lines 3 to 5). You would then be able to jump directly
to lines 1 (with `[[`), 6 (with `][`), 7 (with `]]`), or 9 (with `2][`).
The following movements are provided:
*julia_]]* *julia_][* *julia_[[* *julia_[]*
moveblock_n : gets out from the current block (if any) and jumps to the next
begin keyword. (Similar to |w| for word movements.) By default,
it is mapped to `]]`.
moveblock_N : jumps to the end of the current block, if any. If the cursor is
already at the end of a block, jumps to the end of the following
block at the same level of the current one, or at the end of the
enclosing block. (Similar to |e| for word movements.) By
default, it is mapped to `][`.
moveblock_p : jumps to the beginning of the current block, if any. If the
cursor is already at the beginning of a block, jumps to the
beginning of the preceding block at the same level of the
current one, or at the beginning of the enclosing block.
(Similar to |b| for word movements.) By default, it is mapped to
`[[`.
moveblock_P : gets out from the current block (if any) and jumps to the
preceding end keyword. (Similar to |ge| for word movements.)
By default, it is mapped to `[]`.
Use |g:julia_blocks_mappings| to customize the mappings.
------------------------------------------------------------------------------
BLOCK TEXT OBJECTS *julia-vim-blocks-objects*
The julia-vim plug-in extends the ViM |text-objects| by defining special
mappings which allow to operate on blocks as a whole when in visual mode
or operator-pending mode. The default mappings use `aj` and `ij` to refer to
these objects.
For example, given the following code (with line annotations):
>
1 while true
2 a += 1
3 if a > 5
4 break
5 end
6 end
<
if the cursor is on `break` on line 4, pressing `vaj` will select the whole
inner `if` block (lines 3 to 5), and pressing `aj` again will select the whole
`while` block (lines 1 to 6). The same effect could have been obtained with a
counter, i.e. using `v2aj`. If the cursor were initially on line 2, the whole
`while` block would have been selected with the first `vaj`. Using `daj` would
delete a block, `caj` would delete it and leave ViM in insert mode, `=aj`
would indent it, etc.
Starting from line 2, pressing `vij` wuold only select the inner part of the
`while` block (lines 2 to 5).
The following mappings are provided:
*julia_aj* *julia_ij*
select_a : the block which contains the cursor, including its delimiters.
By default, this is mapped to `aj`. Repeated application (e.g.
`vajaj`) selects the enclosing blocks. A counter can be used to
the same effect as repetition (e.g. `v2aj`).
select_i : same as select_a, but only selects the lines included between the
delimiters. Thus, this does not work with single-line blocks.
By default, this is mapped to `ij`. Repeated application (e.g.
`vijij`) has no effect, but using a counter has the same effect as
using "select_a" and then selecting the inner part of the outermost
block. For example, with the default mappings, `v3ij` is the same as
`v3ajij`, or `vajajajij`.
Use |g:julia_blocks_mappings| to customize the mappings.
The following auxiliary function is only mapped to normal mode:
*julia_whereami*
whereami : this mapping prints the first line of the current block on the
command line. If invoked repeatedly, or if given a count, it prints
the first line of the enclosing blocks, like `select_a`. If followed
by `select_a`, the selection, or operation, will refer to the last
block printed. By default, it is not mapped to any key, but a
mapping can be easily provided in |g:julia_blocks_mappings|. It is
possible to obtain the string, instead of having it printed, by
calling the function `julia_blocks#whereami()`. In such case, use
the function `julia_blocks#select_reset()` to reset the block
nesting level.
------------------------------------------------------------------------------
VARIABLES *julia-vim-blocks-variables*
*g:julia_blocks*
g:julia_blocks
Determines whether to map block-wise movements and objects. If
unspecified, it is on. You can disable the feature by default
by inserting the line
>
let g:julia_blocks = 0
<
in your |.vimrc| file.
*g:julia_blocks_mappings*
g:julia_blocks_mappings
Custom mapping for block-wise movements. This must be a |dict|
associating movements to key combinations. Use empty strings
to disable individual mappings. The following is equivalent
to the default mappings (see |julia-vim-blocks-moveblock|,
|julia-vim-blocks-move| and |julia-vim-blocks-objects|):
>
let g:julia_blocks_mappings = {
\ "move_n" : "]j",
\ "move_N" : "]J",
\ "move_p" : "[j",
\ "move_P" : "[J",
\
\ "moveblock_n" : "]]",
\ "moveblock_N" : "][",
\ "moveblock_p" : "[[",
\ "moveblock_P" : "[]",
\
\ "select_a" : "aj",
\ "select_i" : "ij",
\
\ "whereami" : "",
\ }
<
You can change individual mappings by writing something like
this in your |.vimrc| file:
>
let g:julia_blocks_mappings = {
\ "move_N" : "]n",
\ "move_P" : "[n",
\ "whereami" : "<Leader>j",
\ }
<
Or you can disable individual mappings by writing something like
this in your |.vimrc| file:
>
let g:julia_blocks_mappings = {
\ "moveblock_n" : "",
\ "moveblock_p" : "",
\ }
<
All unspecified entries keep their default value.
==============================================================================
REFERRING TO DOCUMENTATION *julia-vim-doc*
*julia-vim-K*
K
Look up documentation for the keyword under the cursor. If found,
a preview window with the documentation is opened.
This also works for keywords within the opened preview window,
allowing effortless browsing of the documentation.
(This is not really a key mapping, but uses the built-in
|keywordprg|-mechanism in vim; see |K| if you're curious).
*<Plug>(JuliaDocPrompt)*
<Plug>(JuliaDocPrompt)
Open a prompt for keyword documentation lookup. If you don't use |?|
for backward search, you can use the following to make `?` work like
in the Julia REPL:
>
autocmd FileType julia nmap <buffer> ? <Plug>(JuliaDocPrompt)
<
Apply |:augroup| as needed.
*:JuliaDoc*
:JuliaDoc {keyword}
Look up documentation for {keyword}.
==============================================================================
EXTRAS *julia-vim-extras*
*julia#toggle_function_blockassign*
*julia#function_block2assign*
*julia#function_assign2block*
julia#toggle_function_blockassign()
julia#function_block2assign()
julia#function_assign2block()
These functions allow to transform function definitions
between block format and assignment format. For example,
these two definitions are equivalent:
>
function test(x, y)
x + 2y
end
test(x, y) = x + 2y
<
You can use the function `julia#toggle_function_blockassign()`
to switch between the two forms (the cursor needs to be on the
first line of the block form). This functionality requires
that the |matchit| plugin is loaded. Only three-line function
blocks like the one in the example are recognized. When
changing the block form into the assignment form, `return`
statements are removed; if the result is empty, `nothing` is
substituted. Leading macros (e.g. `@inline` or `@compat`) are
recognized and preserved by the transformation.
In order to make this functionality practical, it is advisable
to map it to some key combination, e.g.:
>
noremap <Leader>fb :call julia#toggle_function_blockassign()<CR>
<
==============================================================================
CUSTOMIZATIONS *julia-vim-options*
The following options allows customizing some aspects of the plugin.
*g:julia_spellcheck_docstrings*
g:julia_spellcheck_docstrings
Determines whether to enable spell-checking for docstrings,
i.e. triple quoted strings that start in the first column. See
|spell|. Default: on (set to `1`).
*g:julia_spellcheck_strings*
g:julia_spellcheck_strings
Determines whether to enable spell-checking for all strings.
See |spell|. Default: off (set to `0`).
*g:julia_spellcheck_comments*
g:julia_spellcheck_comments
Determines whether to enable spell-checking for comments. See
|spell|. Default: on (set to `1`).
*g:julia_highlight_operators*
g:julia_highlight_operators
Determines whether to apply syntax highlighting to operators.
Default: on (set to `1`).
*g:julia_indent_align_import*
g:julia_indent_align_import
In a multi-line import/using/export statment, the lines after
the first one use some special alignment rules by default,
e.g.:
>
import X: one,
two,
three
export four,
five,
six
<
When `g:julia_indent_align_import` is `0` instead, the usual
indentation is used:
>
import X: one,
two,
three
export four,
five,
six
*g:julia_indent_align_brackets*
g:julia_indent_align_brackets
In a multi-line bracketed expression (except for function
arguments, see |g:julia_indent_align_funcargs|), the lines
after the first one use some special alignment rules by
default, e.g.:
>
matrix = [1 2 3;
4 5 6]
tpl = (
abc = Dict(a=>1,
b=>2),
def = [1 2;
3 4],
xyz = SubArray{eltype(P),
N, P, I,
false}
)
<
When `g:julia_indent_align_brackets` is `0` instead, an extra
indent is used:
>
matrix = [1 2 3;
4 5 6]
tpl = (
abc = Dict(a=>1,
b=>2),
def = [1 2;
3 4],
xyz = SubArray{eltype(P),
N, P, I,
false}
)
<
*g:julia_indent_align_funcargs*
g:julia_indent_align_funcargs
In a function definition, when the arguments span multiple
lines, the lines after the first one get an extra indentation
step by default, e.g.:
>
function functionanme(
arg1, arg2,
arg3, arg4
)
# function body
end
<
By setting `g:julia_indent_align_funcargs` to `1`, the
arguments are aligned to the bracket instead (they work as any
other bracket with the default value of
|g:julia_indent_align_brackets|):
>
function functionanme(arg1, arg2,
arg3, arg4
)
# function body
end
<
==============================================================================
ABOUT *julia-vim-about*
Grab the latest version or report a bug on GitHub:
http://github.com/JuliaEditorSupport/julia-vim
vim:tw=78:et:ft=help:norl:
endif

View File

@@ -1,443 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ledger') == -1
*ledger.txt* Plugin for the ledger filetype.
*ledger* *ledger-plugin*
Contents:
Commands............|ledger-invoking|
Source................|ledger-source|
Usage..................|ledger-usage|
Tips....................|ledger-tips|
Reports..............|ledger-reports|
Settings............|ledger-settings|
Completion........|ledger-completion|
License..............|ledger-license|
==============================================================================
USAGE *ledger-usage*
Copy each file to the corresponding directory in your ~/.vim directory or
install using Pathogen.
You can also use a modeline like this in every ledger file:
vim:filetype=ledger
==============================================================================
TIPS *ledger-tips*
Tips and useful commands
* vim-ledger can do syntax-sensitive folding when you set `foldmethod=syntax`
in the |modeline| of your ledger file. This way transactions can shrink down
to just one line.
* Try account-completion (as explained below). If you use YouCompleteMe, you
should disable it for Ledger files. Put this in your .vimrc:
if exists('g:ycm_filetype_blacklist')
call extend(g:ycm_filetype_blacklist, { 'ledger': 1 })
endif
* You may use `:make` for syntax checking. It may be convenient to define a
mapping for the following command:
:silent make | redraw! | cwindow
It is recommended to set the value of `g:ledger_extra_options` (see below)
as follows:
let g:ledger_extra_options = '--pedantic --explicit --check-payees'
to catch most potential problems in your source file.
* Remap vim paragraph motion to move by transaction.
In vim, the "{" and "}" keystrokes move the cursor up and down by whole
paragraphs. They can be redefined in ledger files to move by transaction
instead. Add these lines to .vimrc:
au FileType ledger noremap { ?^\d<CR>
au FileType ledger noremap } /^\d<CR>
The default definitions already work in ledger files that separate
transactions with blank lines.
* `:call ledger#transaction_date_set(line('.'), "auxiliary")`
will set today's date as the auxiliary date of the current transaction. You
can use also "primary" or "unshift" in place of "auxiliary". When you pass
"unshift" the old primary date will be set as the auxiliary date and today's
date will be set as the new primary date.
To use a different date pass a date measured in seconds since 1st Jan 1970
as the third argument.
* `:call ledger#transaction_state_set(line('.'), '*')`
sets the state of the current transaction to '*'. You can use this in custom
mappings.
* `:call ledger#transaction_state_toggle(line('.'), ' *?!')`
will toggle through the provided transaction states. You can map this to
double-clicking for example:
noremap <silent><buffer> <2-LeftMouse>\
:call ledger#transaction_state_toggle(line('.'), ' *?!')<CR>
* `:LedgerAlign`
moves the amount expression of a posting so that the decimal separator is
aligned at the column specified by g:ledger_align_at. If an amount has no
decimal point, the imaginary decimal point to the right of the least
significant digit will align. The command acts on a range, with the default
being the current line.
The decimal separator can be set using `g:ledger_decimal_sep`. The default
value of `g:ledger_decimal_sep` is `'.'`.
See below for the recommended mappings.
* `:call ledger#align_amount_at_cursor()`
aligns the amount under the cursor and append/prepend the default currency.
The default currency can be set using `g:ledger_default_commodity`. Whether
the commodity should be inserted before the amount or appended to it can be
configured with the boolean flag `g:ledger_commodity_before` (the default
value is 1). A separator between the commodity and the amount may be set
using `g:ledger_commodity_sep`.
See below for the recommended mappings.
* `:call ledger#autocomplete_and_align()`
when the cursor is on a number or immediately after it, invokes
`ledger#align_amount_at_cursor()` to align it and add the default currency;
otherwise, performs autocompletion. If you define the following mappings in
your `.vimrc` then you may perform both autocompletion and alignment using
the <Tab> key:
au FileType ledger inoremap <silent> <Tab> \
<C-r>=ledger#autocomplete_and_align()<CR>
au FileType ledger vnoremap <silent> <Tab> :LedgerAlign<CR>
Alternatively, you may create a file `.vim/after/ftplugin/ledger.vim`
containing the following definitions:
inoremap <silent> <buffer> <Tab> \
<C-r>=ledger#autocomplete_and_align()<CR>
vnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
Now, you may type `asset:check<Tab><Space>123.45<Tab>`, and have the
account name autocompleted and `$123.45` properly aligned (assuming your
default commodity is set to `'$'`). Or you may press <Tab> in Visual mode
to align a number of transactions at once.
* `:call ledger#entry()`
enters a new transaction based on the text in the current line.
The text in the current line is replaced by the new transaction.
This is a front end to `ledger entry`.
==============================================================================
REPORTS *ledger-reports*
* `:Ledger`
Executes an arbitrary Ledger command and sends the output to a new buffer.
For example:
:Ledger bal ^assets ^liab
Errors are displayed in a quickfix window. The command offers account and
payee autocompletion (by pressing <Tab>): every name starting with `@` is
autocompleted as a payee; any other name is autocompleted as an account.
In a report buffer or in the quickfix window, you may press <Tab> to switch
back to your source file, and you may press `q` to dismiss the current window.
There are three highlight groups that are used to color the report:
* `LedgerNumber`
This is used to color nonnegative numbers.
* `LedgerNegativeNumber`
This is used to color negative numbers.
* `LedgerImproperPerc`
This is used to color improper percentages.
* `:Balance`
Show the pending and cleared balance of a given account below the status
line. For example:
:Balance checking:savings
The command offers payee and account autocompletion (see `:Ledger`). The
account argument is optional: if no argument is given, the first account
name found in the current line is used.
Two highlight groups can be used to customize the colors of the line:
* `LedgerCleared`
This is used to color the cleared balance.
* `LedgerPending`
This is used to color the pending balance.
* `:Register`
Opens an arbitrary register report in the quickfix window. For example:
:Register groceries -p 'this month'
The command offers account and payee autocompletion (see |:Ledger|). You
may use the standard quickfix commands to jump from an entry in the register
report to the corresponding location in the source file. If you use GUI Vim
or if your terminal has support for the mouse (e.g., iTerm2, or even
Terminal.app in OS X 10.11 or later), you may also double-click on a line
number in the quickfix window to jump to the corresponding posting.
It is strongly recommended that you add mappings for common quickfix
commands like `:cprev` and `:cnext`, or that you use T. Pope's Unimpaired
plugin.
* :`Reconcile`
Reconcile an account. For example:
:Reconcile checking
After you press Enter, you will be asked to enter a target amount (use
Vim's syntax for numbers, not your ledger's format). For example, for a
checking account, the target amount may be the balance of your latest bank
statement. The list of uncleared postings appears in the quickfix window.
The current balance of the account, together with the difference between the
target amount and the cleared balance, is shown at the bottom of the screen.
You may use standard quickfix commands to navigate through the postings. You
may use |ledger#transaction_state_set()| to update a transaction's state.
Every time you save your file, the balance and the difference from the
target amount are updated at the bottom of the screen. The goal, of course,
is to get such difference to zero. You may press `<C-l>` to refresh the
Reconcile buffer. To finish reconciling an account, simply close the
quickfix window.
There is a highlight group to customize the color of the difference from
target:
* `LedgerTarget`
This is used to color the difference between the target amount and the
cleared balance.
==============================================================================
SETTINGS *ledger-settings*
Configuration
Include the following let-statements somewhere in your `.vimrc` to modify the
behaviour of the ledger filetype.
* Path to the `ledger` executable:
let g:ledger_bin = 'ledger'
* Additional default options for the `ledger` executable:
let g:ledger_extra_options = ''
* To use a custom external system command to generate a list of account names
for completion, set the following. If g:ledger_bin is set, this will default
to running that command with arguments to parse the current file using the
accounts subcommand (works with ledger or hledger), otherwise it will parse
the postings in the current file itself.
let g:ledger_accounts_cmd = 'your_command args'
* To use a custom external system command to generate a list of descriptions
for completion, set the following. If g:ledger_bin is set, this will default
to running that command with arguments to parse the current file using the
descriptions subcommand (works with ledger or hledger), otherwise it will
parse the transactions in the current file itself.
let g:ledger_descriptions_cmd = 'your_command args'
* Number of columns that will be used to display the foldtext. Set this when
you think that the amount is too far off to the right.
let g:ledger_maxwidth = 80
* String that will be used to fill the space between account name and amount in
the foldtext. Set this to get some kind of lines or visual aid.
let g:ledger_fillstring = ' -'
* If you want the account completion to be sorted by level of detail/depth
instead of alphabetical, include the following line:
let g:ledger_detailed_first = 1
* By default vim will fold ledger transactions, leaving surrounding blank lines
unfolded. You can use 'g:ledger_fold_blanks' to hide blank lines following a
transaction.
let g:ledger_fold_blanks = 0
A value of 0 will disable folding of blank lines, 1 will allow folding of a
single blank line between transactions; any larger value will enable folding
unconditionally.
Note that only lines containing no trailing spaces are considered for
folding. You can take advantage of this to disable this feature on a
case-by-case basis.
* Decimal separator:
let g:ledger_decimal_sep = '.'
* Specify at which column decimal separators should be aligned:
let g:ledger_align_at = 60
* Default commodity used by `ledger#align_amount_at_cursor()`:
let g:ledger_default_commodity = ''
* Flag that tells whether the commodity should be prepended or appended to the
amount:
let g:ledger_commodity_before = 1
* String to be put between the commodity and the amount:
let g:ledger_commodity_sep = ''
* Flag that enable the spelling of the amount:
let g:ledger_commodity_spell = 1
* Format of transaction date:
let g:ledger_date_format = '%Y/%m/%d'
* The file to be used to generate reports:
let g:ledger_main = '%'
The default is to use the current file.
* Position of a report buffer:
let g:ledger_winpos = 'B'
Use `b` for bottom, `t` for top, `l` for left, `r` for right. Use uppercase letters
if you want the window to always occupy the full width or height.
* Format of quickfix register reports (see |:Register|):
let g:ledger_qf_register_format = \
'%(date) %-50(payee) %-30(account) %15(amount) %15(total)\n'
The format is specified using the standard Ledger syntax for --format.
* Format of the reconcile quickfix window (see |:Reconcile|):
let g:ledger_qf_reconcile_format = \
'%(date) %-4(code) %-50(payee) %-30(account) %15(amount)\n'
The format is specified using the standard Ledger syntax for --format.
* Flag that tells whether a location list or a quickfix list should be used:
let g:ledger_use_location_list = 0
The default is to use the quickfix window. Set to 1 to use a location list.
* Position of the quickfix/location list:
let g:ledger_qf_vertical = 0
Set to 1 to open the quickfix window in a vertical split.
* Size of the quickfix window:
let g:ledger_qf_size = 10
This is the number of lines of a horizontal quickfix window, or the number
of columns of a vertical quickfix window.
* Flag to show or hide filenames in the quickfix window:
let g:ledger_qf_hide_file = 1
Filenames in the quickfix window are hidden by default. Set this to 1 is
you want filenames to be visible.
* Text of the output of the |:Balance| command:
let g:ledger_cleared_string = 'Cleared: '
let g:ledger_pending_string = 'Cleared or pending: '
let g:ledger_target_string = 'Difference from target: '
==============================================================================
COMPLETION *ledger-completion*
Omni completion is currently implemented for account names only.
### Accounts
Account names are matched by the start of every sub-level. When you
insert an account name like this:
Asse<C-X><C-O>
You will get a list of top-level accounts that start like this.
Go ahead and try something like:
As:Ban:Che<C-X><C-O>
When you have an account like this, 'Assets:Bank:Checking' should show up.
When you want to complete on a virtual transaction, it's currently best
to keep the cursor in front of the closing bracket. Of course you can
insert the closing bracket after calling the completion, too.
==============================================================================
LICENSE *ledger-license*
https://github.com/ledger/vim-ledger
Copyright 2019 Caleb Maclennan
Copyright 20092017 Johann Klähn
Copyright 2009 Stefan Karrmann
Copyright 2005 Wolfgang Oertl
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <https://www.gnu.org/licenses/>.
vim:ts=8 sw=8 noexpandtab tw=78 ft=help:
endif

View File

@@ -1,16 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
*ocaml.txt* Filetype plugin for OCaml
CONFIGURATION *ocaml-configuration*
*g:ocaml_highlight_operators*
By default operators are not linked to the Operator group and thus not
highlighted. You can turn on highlighting of operators by defining:
let g:ocaml_highlight_operators = 1
vim:tw=78:et:ft=help:norl:
endif

View File

@@ -1,22 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
*opam.txt* Switch OCaml versions from inside Vim using OPAM
Author: Rudi Grinberg <http://rgrinberg.com>
License: Same terms as Vim itself (see |license|)
This plugin is only available if 'compatible' is not set.
COMMANDS *:opam*
:Opam {version} Set the current OCaml version to {version}.
ABOUT *opam-about*
Grab the latest version or report a bug on GitHub:
https://github.com/ocaml/vim-ocaml
vim:tw=78:et:ft=help:norl:
endif

View File

@@ -1,145 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pgsql') == -1
*pgsql.txt* Syntax highlighting for PostgreSQL files
_ ~
| | ~
____ ____ ___ ____| | ~
| _ \ / _ |/___)/ _ | | ~
| |_| ( (_| |___ | |_| | | ~
| __/ \___ (___/ \__ |\_) ~
|_| (_____| |_| ~
The best PostgreSQL plugin for Vim!
Author: Lifepillar <https://github.com/lifepillar>
License: Public Domain
==============================================================================
CONTENTS *pgsql-contents*
1. Syntax highlighting ................... |pgsql-syntax|
2. Customization ......................... |pgsql-customization|
3. Autocompletion ........................ |pgsql-autocompletion|
4. Contributing .......................... |pgsql-contributing|
5. Credits ............................... |pgsql-credits|
==============================================================================
Syntax highlighting *pgsql-syntax*
Files with a .`pgsql` suffix are highlighted out of the box. If you want to
highlight `.sql` files using this plugin by default, add this to your `.vimrc`
(see |ft_sql.txt| for more details):
>
let g:sql_type_default = 'pgsql'
<
Alternatively, after loading a `.sql` file use this command:
>
SQLSetType pgsql.vim
<
To set the file type in new buffers use:
>
let b:sql_type_override='pgsql' | set ft=sql
<
Identifiers starting with an underscore are highlighted as variables. It is
recommended to adopt the convention of prefixing function parameters and local
variables with `_`.
Code between `$pgsql$`, `$body$`, or `$$` pairs is interpreted as PL/pgSQL and
highlighted accordingly (the delimiters are case-insensitive). If you prefer
to use `$$` to highlight strings instead, you may set |g:pgsql_dollar_strings|
to 1.
Text enclosed between `$anyword$` pairs, where `anyword` is any non-empty
sequence of word characters different from those with a special meaning (such
as `$pgsql$`) is treated as a multi-line string.
When |foldmethod| is set to "syntax", SQL commands can be folded.
Finally, the plugin supports syntax highlighting of arbitrary languages within
procedure and function blocks. This feature needs to be configured: see
|g:pgsql_pl|.
==============================================================================
Customization *pgsql-customization*
*'g:pgsql_backslash_quote'*
Set to 1 to recognize `\'` as an escape sequence in all strings. By default,
`\'` is treated as an escape sequence only in "escape" strings constants,
i.e., strings enclosed in `E''`.
>
let g:pgsql_backslash_quote = 0
<
*'g:pgsql_disabled_extensions'*
Support for the most common PostgreSQL extensions is enabled by default. Set
this to a List of names of extensions whose keywords you do not want to be
highlighted.
>
let g:pgsql_disabled_extensions = []
<
*'g:pgsql_dollar_strings'*
Set to 1 if you want double-dollar enclosed text highlighted as a SQL string.
By default, text quoted with `$$` is highlighted as PL/pgSQL.
>
let g:pgsql_dollar_strings = 0
<
*'g:pgsql_pl'*
*'b:pgsql_pl'*
A List of the filetypes that should be highlighted inside the body of
user-defined functions and procedures.
>
let g:pgsql_pl = []
<
For example, to use PL/Python and PL/R, you should define:
>
let g:pgsql_pl = ['python', 'r']
<
Then, code between `$python$` pairs will be highlighted as Python, and code
between `$r$` pairs will be highlighted as R.
The buffer-local version of this setting can be used to override the global
setting in a single buffer.
Note: changes to any of these variables take effect after the SQL filetype is
reloaded.
==============================================================================
Autocompletion *pgsql-autocompletion*
This plugin just defines a new dialect for Vim's SQL plugin. As such, it
inherits the static and dynamic completion methods already offered by Vim (see
|sql-completion|). So, for example, by default you may use `<C-c>f` to
complete function names, `<C-c>T` to complete types, and so on. See
|ft_sql.txt| for thorough documentation about SQL support in Vim.
As far as I know, YouCompleteMe does not support SQL. If you use YouCompleteMe
you may want to disable it for SQL buffers. Add this to
`.vim/after/ftplugin/sql.vim`:
>
if exists('g:ycm_filetype_blacklist')
call extend(g:ycm_filetype_blacklist, { 'sql': 1 })
endif
<
Of course, I recommend using my own MUcomplete plugin over YCM ;)
==============================================================================
Contributing *pgsql-contributing*
For bug reports and feature requests please use:
https://github.com/lifepillar/pgsql.vim/issues
Pull requests are welcome, too!
==============================================================================
Credits *pgsql-credits*
This plugin was originally a fork of space::tekk's
https://github.com/spacetekk/pgsql.vim
and completely rewritten.
vim:tw=78:ts=8:noet:ft=help:norl:
endif

29
doc/polyglot.txt Normal file
View File

@@ -0,0 +1,29 @@
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
o | o o | o o | o o | o o | o o | o o | o o | o o
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
*polyglot-vim-plugin* Language pack for Vim
CONFIGURATION *polyglot.vim*
You can disable vim-polyglot by putting using `g:polyglot_disabled`
option. It needs to be defined before vim-polyglot is loaded.
```
let g:polyglot_disabled = ['javascript', 'autoindent', 'sensible']
```
What can be disabled:
1. Language packs, like "javascript", "css" etc.
2. Support for detecting indentation like vim-sleuth ('autoindent')
3. Default vim settings from vim-sensible ('sensible')
You can file bugs, and find more information at:
https://github.com/sheerun/vim-polyglot
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
o | o o | o o | o o | o o | o o | o o | o o | o o
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---

View File

@@ -1,68 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
*ps1.txt* A Windows PowerShell syntax plugin for Vim
Maintainer: Peter Provost <https://www.github.com/PProvost>
License: Apache 2.0
Version: 2.10
INTRODUCTION *ps1-syntax*
This plugin provides Vim syntax, indent and filetype detection for Windows
PowerShell scripts, modules, and XML configuration files.
ABOUT *ps1-about*
Grab the latest version or report a bug on GitHub:
https://github.com/PProvost/vim-ps1
FOLDING *ps1-folding*
The ps1 syntax file provides syntax folding (see |:syn-fold|) for script blocks
and digital signatures in scripts.
When 'foldmethod' is set to "syntax" then function script blocks will be
folded unless you use the following in your .vimrc or before opening a script: >
:let g:ps1_nofold_blocks = 1
<
Digital signatures in scripts will also be folded unless you use: >
:let g:ps1_nofold_sig = 1
<
Note: syntax folding might slow down syntax highlighting significantly,
especially for large files.
COMPILER *ps1-compiler*
The powershell |compiler| script configures |:make| to execute the script in
PowerShell.
It tries to pick a smart default PowerShell command: `pwsh` if available and
`powershell` otherwise, but you can customize the command: >
:let g:ps1_makeprg_cmd = '/path/to/pwsh'
<
To configure whether to show the exception type information: >
:let g:ps1_efm_show_error_categories = 1
<
KEYWORD LOOKUP *ps1-keyword*
To look up keywords using PowerShell's Get-Help, press the |K| key. For more
convenient paging, the pager `less` should be installed, which is included in
many Linux distributions and in macOS.
Many other distributions are available for Windows like
https://chocolatey.org/packages/less/. Make sure `less` is in a directory
listed in the `PATH` environment variable, which chocolatey above does.
------------------------------------------------------------------------------
vim:ft=help:
endif

View File

@@ -1,124 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'python') == -1
*python-syntax.txt* Python syntax highlighting
==============================================================================
Introduction *python-syntax* *ft-python-syntax* *python.vim*
This is an enhanced version of the original Vim 6.1 Python syntax highlighting
`python.vim` by Neil Schemenauer.
Features
--------
* Enhanced highlighting for:
* Strings
* Special symbols inside strings
* Numeric constants
* Added support for:
* Python 3
* Numbers with underscores
* String %-formatting and f-strings
* Magic comments: source code encoding and shebangs
* New exceptions and builtins
* Doctests
* `@decorator` syntax
* Class variables such as `self` and `cls`
* Operators
* Highlighting of the following errors:
* Invalid symbols in source file
* Invalid numeric constants
* Invalid %-formatting inside strings
* Invalid variable names
* Invalid operators
* Mixing spaces and tabs
* Trailing spaces (Enabled with `g:python_highlight_space_errors`)
* Commands for easy switching between versions
Folding is done by the plugin SimpylFold
(https://github.com/tmhedberg/SimpylFold).
==============================================================================
Configuration *python-syntax-configuration*
Option variables
----------------
Set variable to `1` to enable or `0` to disable.
For example to enable all syntax highlighting features you can add the
following command to your `~/.config/nvim/init.vim` or `~/.vimrc`: >
let g:python_highlight_all = 1
<
`g:python_version_2` (default `0`)
Python 2 mode
`b:python_version_2` (default `0`)
Python 2 mode (buffer local)
`g:python_highlight_builtins` (default `0`)
Highlight builtin objects, types, and functions
`g:python_highlight_builtin_objs` (default `0`)
Highlight builtin objects only
`g:python_highlight_builtin_types` (default `0`)
Highlight builtin types only
`g:python_highlight_builtin_funcs` (default `0`)
Highlight builtin functions only
`g:python_highlight_builtin_funcs_kwarg` (default `1`)
Highlight builtin functions when used as kwarg
`g:python_highlight_exceptions` (default `0`)
Highlight standard exceptions
`g:python_highlight_string_formatting` (default `0`)
Highlight `%` string formatting
`g:python_highlight_string_format` (default `0`)
Highlight syntax of `str.format` syntax
`g:python_highlight_string_templates` (default `0`)
Highlight syntax of `string.Template`
`g:python_highlight_indent_errors` (default `0`)
Highlight indentation errors
`g:python_highlight_space_errors` (default `0`)
Highlight trailing spaces
`g:python_highlight_doctests` (default `0`)
Highlight doc-tests
`g:python_highlight_func_calls` (default `0`)
Highlight functions calls
`g:python_highlight_class_vars` (default `0`)
Highlight class variables `self` and `cls`
`g:python_highlight_operators` (default `0`)
Highlight all operators
`g:python_highlight_all` (default `0`)
Enable all highlight options above, except for previously set.
`g:python_highlight_file_headers_as_comments` (default `0`)
Highlight shebang and coding headers as comments
`g:python_slow_sync` (default `1`)
Disable for slow machines
Commands
--------
`Python2Syntax`
Switch to Python 2
`Python3Syntax`
Switch to Python 3
endif

View File

@@ -1,24 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'reason') == -1
*reason.txt* Filetype plugin for Reason
==============================================================================
CONTENTS *reason* *ft-reason*
==============================================================================
INTRODUCTION *reason-intro*
==============================================================================
SETTINGS *reason-settings*
==============================================================================
MAPPINGS *reason-mappings*
==============================================================================
vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
endif

View File

@@ -1,490 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
*ft_rust.txt* Filetype plugin for Rust
==============================================================================
CONTENTS *rust*
1. Introduction |rust-intro|
2. Settings |rust-settings|
3. Commands |rust-commands|
4. Mappings |rust-mappings|
==============================================================================
INTRODUCTION *rust-intro*
This plugin provides syntax and supporting functionality for the Rust
filetype. It requires Vim 8 or higher for full functionality. Some commands
will not work on earlier versions.
==============================================================================
SETTINGS *rust-settings*
This plugin has a few variables you can define in your vimrc that change the
behavior of the plugin.
Some variables can be set buffer local (`:b` prefix), and the buffer local
will take precedence over the global `g:` counterpart.
*g:rustc_path*
g:rustc_path~
Set this option to the path to rustc for use in the |:RustRun| and
|:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
let g:rustc_path = $HOME."/bin/rustc"
<
*g:rustc_makeprg_no_percent*
g:rustc_makeprg_no_percent~
Set this option to 1 to have 'makeprg' default to "rustc" instead of
"rustc %": >
let g:rustc_makeprg_no_percent = 1
<
*g:rust_conceal*
g:rust_conceal~
Set this option to turn on the basic |conceal| support: >
let g:rust_conceal = 1
<
*g:rust_conceal_mod_path*
g:rust_conceal_mod_path~
Set this option to turn on |conceal| for the path connecting token
"::": >
let g:rust_conceal_mod_path = 1
<
*g:rust_conceal_pub*
g:rust_conceal_pub~
Set this option to turn on |conceal| for the "pub" token: >
let g:rust_conceal_pub = 1
<
*g:rust_recommended_style*
g:rust_recommended_style~
Set this option to enable vim indentation and textwidth settings to
conform to style conventions of the rust standard library (i.e. use 4
spaces for indents and sets 'textwidth' to 99). This option is enabled
by default. To disable it: >
let g:rust_recommended_style = 0
<
*g:rust_fold*
g:rust_fold~
Set this option to turn on |folding|: >
let g:rust_fold = 1
<
Value Effect ~
0 No folding
1 Braced blocks are folded. All folds are open by
default.
2 Braced blocks are folded. 'foldlevel' is left at the
global value (all folds are closed by default).
*g:rust_bang_comment_leader*
g:rust_bang_comment_leader~
Set this option to 1 to preserve the leader on multi-line doc comments
using the /*! syntax: >
let g:rust_bang_comment_leader = 1
<
*g:rust_use_custom_ctags_defs*
g:rust_use_custom_ctags_defs~
Set this option to 1 if you have customized ctags definitions for Rust
and do not wish for those included with rust.vim to be used: >
let g:rust_use_custom_ctags_defs = 1
<
NOTE: rust.vim's built-in definitions are only used for the Tagbar Vim
plugin, if you have it installed, AND if Universal Ctags is not
detected. This is because Universal Ctags already has built-in
support for Rust when used with Tagbar.
Also, note that when using ctags other than Universal Ctags, it is not
automatically used when generating |tags| files that Vim can use to
navigate to definitions across different source files. Feel free to
copy `rust.vim/ctags/rust.ctags` into your own `~/.ctags` if you wish
to generate |tags| files.
*g:ftplugin_rust_source_path*
g:ftplugin_rust_source_path~
Set this option to a path that should be prepended to 'path' for Rust
source files: >
let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
<
*g:rustfmt_command*
g:rustfmt_command~
Set this option to the name of the 'rustfmt' executable in your $PATH. If
not specified it defaults to 'rustfmt' : >
let g:rustfmt_command = 'rustfmt'
<
*g:rustfmt_autosave*
g:rustfmt_autosave~
Set this option to 1 to run |:RustFmt| automatically when saving a
buffer. If not specified it defaults to 0 : >
let g:rustfmt_autosave = 0
<
There is also a buffer-local b:rustfmt_autosave that can be set for
the same purpose, and can override the global setting.
*g:rustfmt_autosave_if_config_present*
g:rustfmt_autosave_if_config_present~
Set this option to 1 to have *b:rustfmt_autosave* be set automatically
if a `rustfmt.toml` file is present in any parent directly leading to
the file being edited. If not set, default to 0: >
let g:rustfmt_autosave_if_config_present = 0
<
This is useful to have `rustfmt` only execute on save, on projects
that have `rustfmt.toml` configuration.
There is also a buffer-local b:rustfmt_autosave_if_config_present
that can be set for the same purpose, which can overrides the global
setting.
*g:rustfmt_fail_silently*
g:rustfmt_fail_silently~
Set this option to 1 to prevent 'rustfmt' from populating the
|location-list| with errors. If not specified it defaults to 0: >
let g:rustfmt_fail_silently = 0
<
*g:rustfmt_options*
g:rustfmt_options~
Set this option to a string of options to pass to 'rustfmt'. The
write-mode is already set to 'overwrite'. If not specified it
defaults to '' : >
let g:rustfmt_options = ''
<
*g:rustfmt_emit_files*
g:rustfmt_emit_files~
If not specified rust.vim tries to detect the right parameter to
pass to rustfmt based on its reported version. Otherwise, it
determines whether to run rustfmt with '--emit=files' (when 1 is
provided) instead of '--write-mode=overwrite'. >
let g:rustfmt_emit_files = 0
*g:rust_playpen_url*
g:rust_playpen_url~
Set this option to override the url for the playpen to use: >
let g:rust_playpen_url = 'https://play.rust-lang.org/'
<
*g:rust_shortener_url*
g:rust_shortener_url~
Set this option to override the url for the url shortener: >
let g:rust_shortener_url = 'https://is.gd/'
<
*g:rust_clip_command*
g:rust_clip_command~
Set this option to the command used in your OS to copy the Rust Play
url to the clipboard: >
let g:rust_clip_command = 'xclip -selection clipboard'
<
*g:cargo_makeprg_params*
g:cargo_makeprg_params~
Set this option to the string of parameters to pass to cargo. If not
specified it defaults to '$*' : >
let g:cargo_makeprg_params = 'build'
<
*g:cargo_shell_command_runner*
g:cargo_shell_command_runner~
Set this option to change how to run shell commands for cargo commands
|:Cargo|, |:Cbuild|, |:Crun|, ...
By default, |:terminal| is used to run shell command in terminal window
asynchronously. But if you prefer |:!| for running the commands, it can
be specified: >
let g:cargo_shell_command_runner = '!'
<
Integration with Syntastic *rust-syntastic*
--------------------------
This plugin automatically integrates with the Syntastic checker. There are two
checkers provided: 'rustc', and 'cargo'. The latter invokes 'Cargo' in order to
build code, and the former delivers a single edited '.rs' file as a compilation
target directly to the Rust compiler, `rustc`.
Because Cargo is almost exclusively being used for building Rust code these
days, 'cargo' is the default checker. >
let g:syntastic_rust_checkers = ['cargo']
<
If you would like to change it, you can set `g:syntastic_rust_checkers` to a
different value.
*g:rust_cargo_avoid_whole_workspace*
*b:rust_cargo_avoid_whole_workspace*
g:rust_cargo_avoid_whole_workspace~
When editing a crate that is part of a Cargo workspace, and this
option is set to 1 (the default), then 'cargo' will be executed
directly in that crate directory instead of in the workspace
directory. Setting 0 prevents this behavior - however be aware that if
you are working in large workspace, Cargo commands may take more time,
plus the Syntastic error list may include all the crates in the
workspace. >
let g:rust_cargo_avoid_whole_workspace = 0
<
*g:rust_cargo_check_all_targets*
*b:rust_cargo_check_all_targets*
g:rust_cargo_check_all_targets~
When set to 1, the `--all-targets` option will be passed to cargo when
Syntastic executes it, allowing the linting of all targets under the
package.
The default is 0.
*g:rust_cargo_check_all_features*
*b:rust_cargo_check_all_features*
g:rust_cargo_check_all_features~
When set to 1, the `--all-features` option will be passed to cargo when
Syntastic executes it, allowing the linting of all features of the
package.
The default is 0.
*g:rust_cargo_check_examples*
*b:rust_cargo_check_examples*
g:rust_cargo_check_examples~
When set to 1, the `--examples` option will be passed to cargo when
Syntastic executes it, to prevent the exclusion of examples from
linting. The examples are normally under the `examples/` directory of
the crate.
The default is 0.
*g:rust_cargo_check_tests*
*b:rust_cargo_check_tests*
g:rust_cargo_check_tests~
When set to 1, the `--tests` option will be passed to cargo when
Syntastic executes it, to prevent the exclusion of tests from linting.
The tests are normally under the `tests/` directory of the crate.
The default is 0.
*g:rust_cargo_check_benches*
*b:rust_cargo_check_benches*
g:rust_cargo_check_benches~
When set to 1, the `--benches` option will be passed to cargo when
Syntastic executes it. The benches are normally under the `benches/`
directory of the crate.
The default is 0.
Integration with auto-pairs *rust-auto-pairs*
---------------------------
This plugin automatically configures the auto-pairs plugin not to duplicate
single quotes, which are used more often for lifetime annotations than for
single character literals.
*g:rust_keep_autopairs_default*
g:rust_keep_autopairs_default~
Don't override auto-pairs default for the Rust filetype. The default
is 0.
==============================================================================
COMMANDS *rust-commands*
Invoking Cargo
--------------
This plug defines very simple shortcuts for invoking Cargo from with Vim.
:Cargo <args> *:Cargo*
Runs 'cargo' with the provided arguments.
:Cbuild <args> *:Cbuild*
Shortcut for 'cargo build`.
:Cclean <args> *:Cclean*
Shortcut for 'cargo clean`.
:Cdoc <args> *:Cdoc*
Shortcut for 'cargo doc`.
:Cinit <args> *:Cinit*
Shortcut for 'cargo init`.
:Crun <args> *:Crun*
Shortcut for 'cargo run`.
:Ctest <args> *:Ctest*
Shortcut for 'cargo test`.
:Cupdate <args> *:Cupdate*
Shortcut for 'cargo update`.
:Cbench <args> *:Cbench*
Shortcut for 'cargo bench`.
:Csearch <args> *:Csearch*
Shortcut for 'cargo search`.
:Cpublish <args> *:Cpublish*
Shortcut for 'cargo publish`.
:Cinstall <args> *:Cinstall*
Shortcut for 'cargo install`.
:Cruntarget <args> *:Cruntarget*
Shortcut for 'cargo run --bin' or 'cargo run --example',
depending on the currently open buffer.
Formatting
----------
:RustFmt *:RustFmt*
Runs |g:rustfmt_command| on the current buffer. If
|g:rustfmt_options| is set then those will be passed to the
executable.
If |g:rustfmt_fail_silently| is 0 (the default) then it
will populate the |location-list| with the errors from
|g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
then it will not populate the |location-list|.
:RustFmtRange *:RustFmtRange*
Runs |g:rustfmt_command| with selected range. See
|:RustFmt| for any other information.
Playpen integration
-------------------
:RustPlay *:RustPlay*
This command will only work if you have web-api.vim installed
(available at https://github.com/mattn/webapi-vim). It sends the
current selection, or if nothing is selected, the entirety of the
current buffer to the Rust playpen, and emits a message with the
shortened URL to the playpen.
|g:rust_playpen_url| is the base URL to the playpen, by default
"https://play.rust-lang.org/".
|g:rust_shortener_url| is the base url for the shorterner, by
default "https://is.gd/"
|g:rust_clip_command| is the command to run to copy the
playpen url to the clipboard of your system.
Evaluation of a single Rust file
--------------------------------
NOTE: These commands are useful only when working with standalone Rust files,
which is usually not the case for common Rust development. If you wish to
building Rust crates from with Vim can should use Vim's make, Syntastic, or
functionality from other plugins.
:RustRun [args] *:RustRun*
:RustRun! [rustc-args] [--] [args]
Compiles and runs the current file. If it has unsaved changes,
it will be saved first using |:update|. If the current file is
an unnamed buffer, it will be written to a temporary file
first. The compiled binary is always placed in a temporary
directory, but is run from the current directory.
The arguments given to |:RustRun| will be passed to the
compiled binary.
If ! is specified, the arguments are passed to rustc instead.
A "--" argument will separate the rustc arguments from the
arguments passed to the binary.
If |g:rustc_path| is defined, it is used as the path to rustc.
Otherwise it is assumed rustc can be found in $PATH.
:RustExpand [args] *:RustExpand*
:RustExpand! [TYPE] [args]
Expands the current file using --pretty and displays the
results in a new split. If the current file has unsaved
changes, it will be saved first using |:update|. If the
current file is an unnamed buffer, it will be written to a
temporary file first.
The arguments given to |:RustExpand| will be passed to rustc.
This is largely intended for specifying various --cfg
configurations.
If ! is specified, the first argument is the expansion type to
pass to rustc --pretty. Otherwise it will default to
"expanded".
If |g:rustc_path| is defined, it is used as the path to rustc.
Otherwise it is assumed rustc can be found in $PATH.
:RustEmitIr [args] *:RustEmitIr*
Compiles the current file to LLVM IR and displays the results
in a new split. If the current file has unsaved changes, it
will be saved first using |:update|. If the current file is an
unnamed buffer, it will be written to a temporary file first.
The arguments given to |:RustEmitIr| will be passed to rustc.
If |g:rustc_path| is defined, it is used as the path to rustc.
Otherwise it is assumed rustc can be found in $PATH.
:RustEmitAsm [args] *:RustEmitAsm*
Compiles the current file to assembly and displays the results
in a new split. If the current file has unsaved changes, it
will be saved first using |:update|. If the current file is an
unnamed buffer, it will be written to a temporary file first.
The arguments given to |:RustEmitAsm| will be passed to rustc.
If |g:rustc_path| is defined, it is used as the path to rustc.
Otherwise it is assumed rustc can be found in $PATH.
Running test(s)
---------------
:[N]RustTest[!] [options] *:RustTest*
Runs a test under the cursor when the current buffer is in a
cargo project with "cargo test" command. If the command did
not find any test function under the cursor, it stops with an
error message.
When N is given, adjust the size of the new window to N lines
or columns.
When ! is given, runs all tests regardless of current cursor
position.
When [options] is given, it is passed to "cargo" command
arguments.
When the current buffer is outside cargo project, the command
runs "rustc --test" command instead of "cargo test" as
fallback. All tests are run regardless of adding ! since there
is no way to run specific test function with rustc. [options]
is passed to "rustc" command arguments in the case.
Takes optional modifiers (see |<mods>|): >
:tab RustTest
:belowright 16RustTest
:leftabove vert 80RustTest
<
rust.vim Debugging
------------------
:RustInfo *:RustInfo*
Emits debugging info of the Vim Rust plugin.
:RustInfoToClipboard *:RustInfoClipboard*
Saves debugging info of the Vim Rust plugin to the default
register.
:RustInfoToFile [filename] *:RustInfoToFile*
Saves debugging info of the Vim Rust plugin to the the given
file, overwritting it.
==============================================================================
MAPPINGS *rust-mappings*
This plugin defines mappings for |[[| and |]]| to support hanging indents.
==============================================================================
vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
endif

View File

@@ -1,137 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
*scala.txt* Syntax highlighting and helper functions for the Scala language.
This plugin is only available if 'compatible' is not set.
{Vi does not have any of this}
==============================================================================
INTRODUCTION *scala*
Syntax highlighting and helper functions for the scala language. Extras
include:
- Sorting of import statements, configurable to your conventions.
- Tagbar support to navigate definitions within a file in the plugin's
sidebar window.
- ...and probably more that we've forgotten to update in this doc.
==============================================================================
OPTIONS *scala-options*
Use these options to control behavior of the plugin. Default values are
indicated in the examples.
*'g:scala_use_builtin_tagbar_defs'*
If you are using the Tagbar Vim plugin, vim-scala includes a Tagbar type
definition and ctags definition for Scala, so you can use Tagbar immediately.
If you have your own ctags definition in `~/.ctags` and prefer to use it, set
this option to 0 (we would appreciate contributions if you've improved the
ctags definition!).
Note that Tagbar's ctags definition for Scala is not used to generate a
|tags| file that Vim can use to navigate to definitions in other files, only
for the plugin sidebar. Feel free to copy `vim-scala/ctags/scala.ctags` into
your own `~/.ctags` if you wish to generate |tags| files.
>
let g:scala_use_builtin_tagbar_defs = 1
<
*'g:scala_use_default_keymappings'*
Set this option to disable definition of all mappings provided by vim-scala.
See |scala-mappings|.
>
let g:scala_use_default_keymappings = 1
<
*'g:scala_scaladoc_indent'*
By default, the plugin indents documentation comments according to the
standard Javadoc format.
/**
* This is a doc comment using Javadoc-style indentation.
*/
Set this option to enable the indentation standard as recommended for Scaladoc
comments.
/** This is a Scaladoc comment using
* the recommended indentation.
*/
>
let g:scala_scaladoc_indent = 1
<
==============================================================================
COMMANDS *scala-commands*
*:SortScalaImports*
:SortScalaImports There are two modes in which this command can operate.
By default it walks all import groups at the top of
the Scala file and orders their lines alphabetically.
A group is a series of lines starting with the
import keyword separated by one or more blank lines.
The second, more advanced mode, can be activated by
setting
let g:scala_sort_across_groups=1
This makes this command include all imports in the
sorting regardless of blank lines in between them and
puts them in three predefined groups instead.
The three groups in which the imports can fall are:
1. Scala and Java core
2. Third party libraries
3. First party code (ie. your own)
Java and Scala core imports are identified by the
java(x) and scala namespaces.
Everything else that isn't a first party namespace
will be a third party import.
You can define a regex that matches first party
namespaces by setting
g:scala_first_party_namespaces
For example in a standard Play app this would be
set to
g:scala_first_party_namespaces=
\ '\(controllers\|views\|models\)'
==============================================================================
MAPPINGS *scala-mappings*
Currently the only mappings defined are for FuzzyFinder users--these will
only be enabled if FuzzyFinder is detected.
*scala-leader-fs*
<Leader>fs "Find src". Primes |:FufFile| with `src/main/scala`,
and goes deeper still if only a single directory
exists below that. Helpful for package namespacing
like `src/main/scala/com/myorg`.
*scala-leader-ft*
<Leader>ft "Find test". Like |scala-leader-fs|, but with
`src/test/scala`.
*scala-leader-fr*
<Leader>fr "Find from root". For the rarer cases when you want to
start FuzzyFinder at project root (parent of `src/`).
Disabling Mappings~
If you wish to disable the default key mappings, write the following line in
your ~/.vimrc: >
let g:scala_use_default_keymappings = 0
==============================================================================
CREDITS *scala-credits*
Developed by Derek Wyatt, building on initial work by Stefan Matthias Aust.
Distributed under the Apache 2 license.
Project's home and Git repository: https://github.com/derekwyatt/vim-scala
------------------------------------------------------------------------------
vim:tw=78:ts=8:ft=help:norl:
endif

View File

@@ -1,18 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terraform') == -1
*terraform.txt* basic vim/terraform integration
Author: HashiVim <https://github.com/hashivim>
License: ISC license
Repo: https://github.com/hashivim/vim-terraform
COMMANDS *terraform*
This command is only available if terraform is in your PATH.
*terraform-:terraform*
:Terraform [args] Invoke an arbitrary terraform command.
vim:tw=78:et:ft=help:norl:
endif

View File

@@ -1,70 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'textile') == -1
*textile.txt* Textile for Vim Last Change: November 3, 2008
==============================================================================
REQUIREMENTS *textile-requirements*
- ruby - http://ruby-lang.org/ (seperate executable, not compiled in)
- RedCloth - http://redcloth.org/
Files with the extension *.textile will auto-detected. If editing a new file,
or otherwise, run ":setf textile" to enable textile commands.
==============================================================================
CHANGELOG *textile-changelog*
0.3 - Fixed keymappings in the documentation
0.2 - Added multiple colors for headers, and alternating colors for list
items
- Fixed error in the vim script for TextileRenderBufferToFile
- Changed shortcut keys from \tp to \rp (render preview instead of
textile preview, since it's file-type specific anyways)
0.1 - Initial Release
==============================================================================
COMMANDS *textile-commands*
:TextilePreview - Render the current buffer to a temp file, and open it in
your web browser (OSX only)
<Leader>rp
:TextileRenderTab - ... to a new tab
<Leader>rt
:TextileRenderFile - ... to a file
<Leader>rf
<Leader> is \ by default, so <Leader>rp == \rp
==============================================================================
CONFIG *textile-config*
MAC OS X:
Optional:
let g:TextileBrowser="Google Chrome" - Open preview in "Google Chrome"
rather than Safari (optional)
Other:
Mandatory:
let g:TextileOS="Linux"
let g:TextileBrowser="/path/to/browser_bin"
==============================================================================
CREDITS *textile-credits*
- "Dominic Mitchell":http://happygiraffe.net/: initial syntax highlighting
- "Aaron Bieber":http://blog.aaronbieber.com/: improved syntax highlighting
- "Tim Harper":http://tim.theenchanter.com/ : improved syntax highlighting,
plugin
vim:tw=78:noet:wrap:ts=2:expandtab:ft=help:norl:
endif

View File

@@ -1,210 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fsharp') == -1
*vim-fsharp.txt* F# support for Vim
*FSharp* *F#* *fsharp* *vim-fsharp*
===============================================================================
# #
# ███████╗███████╗██╗ ██╗ █████╗ ██████╗ ██████╗ #
# ██╔════╝██╔════╝██║ ██║██╔══██╗██╔══██╗██╔══██╗ #
# █████╗ ███████╗███████║███████║██████╔╝██████╔╝ #
# ██╔══╝ ╚════██║██╔══██║██╔══██║██╔══██╗██╔═══╝ #
# ██║ ███████║██║ ██║██║ ██║██║ ██║██║ #
# ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ #
# #
===============================================================================
CONTENTS *fsharp-contents*
1. Dependencies.................................|fsharp-dependencies|
2. Usage........................................|fsharp-usage|
3. Options......................................|fsharp-options|
4. Commands.....................................|fsharp-commands|
5. Mappings.....................................|fsharp-mappings|
6. Credits......................................|fsharp-credits|
===============================================================================
DEPENDENCIES *fsharp-dependencies*
Required:~
- Vim 7.3 or higher with Python 2 or 3 support
- Mono OR .NET Framework
- F#
Optional:~
- Syntastic plugin (for syntax and type checking)
NOTE: Must be enabled (see |'g:syntastic_fsharp_checkers'|)
===============================================================================
USAGE *fsharp-usage*
Syntax highlighting and linting will trigger upon opening a `*.fs`, `*.fsi`,
or `*.fsx` file. Using omni completion will begin the fsautocomplete process.
Suggestion: Install a completer such as NeoComplete or SuperTab
===============================================================================
OPTIONS *fsharp-options*
*'g:syntastic_fsharp_checkers'*
Use this option to enable syntastic integration >
let g:syntastic_fsharp_checkers=['syntax']
<
*'g:fsharp_only_check_errors_on_write'*
Use this option to disable "on the fly" syntax checking >
let g:fsharp_only_check_errors_on_write = 1
<
*'g:fsharpbinding_debug'*
Use this option to enable debug-mode and inspect fsautocomplete behavior: >
let g:fsharpbinding_debug = 1
<
This will create two log files `log.txt` and `log2.txt` in your temporary folder
(i.e. `/tmp/`)
*'g:fsharp_xbuild_path'*
Use this option set the msbuild/xbuild path >
let g:fsharp_xbuild_path = "/path/to/xbuild/or/msbuild"
<
*'g:fsharp_test_runner'*
Use this option to point to a suitable test runner (such as nunit-console.exe) >
let g:fsharp_test_runner = "/path/to/test/runner"
<
*'g:fsharp_completion_helptext'*
Use this option to disable helptext during auto completion. Turn off if
completion is too slow >
let g:fsharp_completion_helptext = 0
<
*'g:fsharp_map_keys'*
Use this option to disable default bindings >
let g:fsharp_map_keys = 0
<
*'g:fsharp_map_prefix'*
Use this option to override the default prefix of `<leader>` >
let g:fsharp_map_prefix = 'cp'
<
Set to `cp` in this example
*'g:fsharp_map_fsisendline'*
Use this option to override the default mapping to send the current line to
fsharp interactive >
let g:fsharp_map_fsisendline = 'p'
<
Set to `p` in this example
*'g:fsharp_map_fsisendsel'*
Use this option to override the default mapping to send the current selection
to fsharp interactive >
let g:fsharp_map_fsisendsel = 'p'
<
Set to `p` in this example
*'g:fsharp_map_gotodecl'*
Use this option to override the default mapping to go to declaration in the
current window >
let g:fsharp_map_gotodecl = 'g'
<
Set to `g` in this example
*'g:fsharp_map_gobackfromdecl'*
Use this option to override the default mapping to go back to where go to
declaration was triggered >
let g:fsharp_map_gobackfromdecl = 'b'
<
Set to `b` in this example
*'g:fsharp_map_fsiinput'*
Override the default mapping to evaluate an fsharp expression in the fsi >
let g:fsharp_map_fsiinput = 'i'
<
===============================================================================
COMMANDS *fsharp-commands*
General commands:~
*:make*
:make
Calls xbuild on the fsproj for the current file (if any).
*:FSharpParseProject*
:FSharpParseProject
Reparses all the project files and dependencies (this is done automatically
when opening a .fs or .fsi file).
*:FSharpBuildProject*
:FSharpBuildProject
Calls xbuild on the fsproj for the current file (if any). Can also take a
path to the proj file to build.
*:FSharpRunProject*
:FSharpRunProject
Runs the project for the current file (if any).
*:FSharpRunTests*
:FSharpRunTests
If `g:fsharp_test_runner` is set it will build the current project and run
any tests. (Currently only tested with nunit-console.exe)
*:FSharpToggleHelptext*
:FSharpToggleHelptext
toggles g:fsharp_completion_helptext. (See below for details)
FSharp interaction commands:~
`:FsiEval`
:FsiEval
Evaluates an fsharp expression in the fsi
`:FsiEvalBuffer`
:FsiEvalBuffer
Evaluates the entire buffer in the fsi
`:FsiReset`
:FsiReset
Resets the current fsharp interactive
`:FsiRead`
:FsiRead
Outputs any lines written by the fsi but not yet output as vim messages
`:FsiClear`
:FsiClear
Deletes all text from the fsi output buffer but doesn't reset the fsi
session.
`:FsiShow`
:FsiShow
Opens the _fsi-out_ buffer in a split window
===============================================================================
MAPPINGS *fsharp-mappings*
General:~
<leader>t
Echoes the type of the expression currently pointed to by the cursor
<leader>d
Go to declaration in current window
<leader>s
Takes you back from where go to declaration was triggered. Experimental
FSharp Interactive:~
<A-CR> OR
<leader>i
Send either the current selection or the current line to the fsharp
interactive and echoes the output the first line of the output. All
output will be written to the fsi-out buffer.
===============================================================================
CREDITS *fsharp-credits*
Syntax and indent files by kongo2002 <github.com/kongo2002>:
http://github.com/kongo2002/fsharp-vim
Adapted from Tim Robinson <github.com/timrobinson>:
http://github.com/timrobinson/fsharp-vim
>
===============================================================================
endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,104 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsonnet') == -1
*vim-jsonnet.txt* Jsonnet development plugin
*vim-jsonnet*
====================================================================================
# # ### # # # ##### ####### # # # # ####### #######
# # # ## ## # # # # # ## # ## # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # ##### # ##### # # # # # # # # ##### #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # ## # ## # #
# ### # # ##### ##### ####### # # # # ####### #
====================================================================================
CONTENTS *jsonnet-contents*
1. Intro........................................|jsonnet-intro|
2. Install......................................|jsonnet-install|
3. Commands.....................................|jsonnet-commands|
4. Mappings.....................................|jsonnet-mappings|
6. Functions....................................|jsonnet-functions|
7. Settings.....................................|jsonnet-settings|
8. Troubleshooting..............................|jsonnet-troubleshooting|
9. Credits......................................|jsonnet-credits|
==============================================================================
INTRO *jsonnet-intro*
==============================================================================
INSTALL *jsonnet-install*
==============================================================================
COMMANDS *jsonnet-commands*
*:JsonnetFmt*
:JsonnetFmt
Filter the current Jsonnet buffer through `jsonnetfmt`. It tries to
preserve cursor position and avoids replacing the buffer with stderr
output.
==============================================================================
MAPPINGS *jsonnet-mappings*
==============================================================================
FUNCTIONS *jsonnet-functions*
*jsonnet#Format()*
Filter the current Jsonnet buffer through `jsonnetfmt`. It tries to
preserve cursor position and avoids replacing the buffer with stderr
output.
==============================================================================
SETTINGS *jsonnet-settings*
*'g:jsonnet_fmt_on_save'*
Use this option to auto |:JsonnetFmt| on save. By default it's enabled >
let g:jsonnet_fmt_on_save = 1
<
*'g:jsonnet_command'*
Use this option to define which tool is used to fotmat. By default `jsonnet` is
used >
let g:jsonnet_command = "jsonnet"
<
*'g:jsonnet_fmt_command'*
Use this option to define which <cmd> parameter is used with *g:jsonnet_command* tool.
By default `fmt` is used >
let g:jsonnet_fmt_command = "fmt"
<
*'g:jsonnet_fmt_options'*
Use this option to add additional options to the
|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'|. Default is empty. >
let g:jsonnet_fmt_options = ''
<
*'g:jsonnet_fmt_fail_silently'*
Use this option to enable processing of
|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'| command if it fails. By default
it is turned off. By default the error output from the
|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'| command is ignored.
FixMe: The processing of the |'g:jsonnet_command'| + |'g:jsonnet_fmt_command'|
is not implemented yet. So clearing this option would not do anything at this time. >
let g:jsonnet_fmt_fail_silently = 1
<
==============================================================================
TROUBLESHOOTING *jsonnet-troubleshooting*
==============================================================================
CREDITS *jsonnet-credits*
endif

View File

@@ -1,129 +0,0 @@
if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1)
vim-jsx-pretty is syntax highlight for JSX (React.js).
(https://github.com/MaxMEllon/vim-jsx-pretty)
version 1.0.6
Author: maxmellon<maxmellon1994@gmail.com>
License: MIT
About |vim-jsx-pretty-about|
Usage |vim-jsx-pretty-usage|
Install |vim-jsx-pretty-install|
Config |vim-jsx-pretty-config|
Detail |vim-jsx-pretty-detail|
License |vim-jsx-pretty-license|
Thanks |vim-jsx-retty-thanks|
Inspiration |vim-jsx-pretty-inspiration|
===============================================================================
ABOUT *vim-jsx-pretty-about*
*vim-jsx-pretty* is highlight and indentation JSX (React.js) syntax.
Dependency Plugin:
- pangloss/vim-javascript
===============================================================================
USAGE *vim-jsx-pretty-usage*
Just Install it.
===============================================================================
INSTALL *vim-jsx-pretty-install*
If you used plugin manager `vim-plug`, As follows. >
Plug 'pangloss/vim-javascript' " dependency plugin
Plug 'maxmellon/vim-jsx-pretty'
<
===============================================================================
CONFIG *vim-jsx-pretty-config*
- config list
>
| name | default | detail |
|---------------------------------------|---------|----------------------|
| g:vim_jsx_pretty_enable_jsx_highlight | 1 | jsx highlight flag |
| g:vim_jsx_pretty_colorful_config | 0 | colorful config flag |
| g:vim_jsx_pretty_disable_js | 0 | js toggle flag |
<
- *g:vim_jsx_pretty_enable_jsx_highlight*
If you set 'g:vim_jsx_pretty_enable_jsx_highlight', Disable jsx highlight.
But highlight group is set to jsx syntax. So you should set manual
highlight setting.
- Example: >
let g:vim_jsx_pretty_enable_jsx_highlight = 0
highlight def link jsxTag Function
highlight def link jsxTagName Function
highlight def link jsxString String
highlight def link jsxNameSpace Function
highlight def link jsxComment Error
highlight def link jsxAttrib Type
highlight def link jsxCloseTag Identifier
highlight def link jsxCloseString Identifier
- *g:vim_jsx_pretty_colorful_config*
If you set 'g:vim_jsx_pretty_colorful_config', Enable colorful config.
===============================================================================
DETAIL *vim-jsx-pretty-detail*
- Syntax group list
>
| name | match | | |
|--------------|--------------------|--------------|--------------------|
| jsxTag | `<tag id="sample">`| jsxjsxAttrib | `<tag id="sample">`|
| | `~~~~~~~~~~~~~~~~~`| | `_____~~__________`|
|--------------|--------------------|--------------|--------------------|
| jsxTagName | `<tag id="sample">`| jsxEqual | `<tag id="sample">`|
| | `_~~~_____________`| | `_______~_________`|
|--------------|--------------------|--------------|--------------------|
| jsxString | `<tag id="sample">`| jsxCloseTag | `</tag> <tag />`|
| | `________~~~~~~~~_`| | `~~~~~~ _____~~|
|--------------|--------------------|--------------|--------------------|
===============================================================================
LICENSE *vim-jsx-pretty-license*
Copyright (c) 2016-2017 MaxMEllon
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
==============================================================================
THANKS *vim-jsx-pretty-thanks*
- yuezk
- y0za
- cormacrelf
===============================================================================
INSPIREATION *vim-jsx-pretty-inspiration*
- vim-jsx
See: https://github.com/mxw/vim-jsx
vim:tw=78:ts=8:ft=help:norl:
endif

View File

@@ -1,667 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
*vim-markdown* Vim Markdown
===============================================================================
Contents ~
1. Introduction |vim-markdown-introduction|
2. Installation |vim-markdown-installation|
3. Basic usage |vim-markdown-basic-usage|
1. Folding |vim-markdown-folding|
2. Concealing |vim-markdown-concealing|
4. Options |vim-markdown-options|
1. Disable Folding |vim-markdown-disable-folding|
2. Change fold style |vim-markdown-change-fold-style|
3. Set header folding level |vim-markdown-set-header-folding-level|
4. Disable Default Key Mappings |vim-markdown-disable-default-key-mappings|
5. Enable TOC window auto-fit |vim-markdown-enable-toc-window-auto-fit|
6. Text emphasis restriction to single-lines
|vim-markdown-text-emphasis-restriction-to-single-lines|
7. Syntax Concealing |vim-markdown-syntax-concealing|
8. Fenced code block languages |vim-markdown-fenced-code-block-languages|
9. Follow named anchors |vim-markdown-follow-named-anchors|
10. Syntax extensions |vim-markdown-syntax-extensions|
1. LaTeX math |vim-markdown-latex-math|
2. YAML Front Matter |vim-markdown-yaml-front-matter|
3. TOML Front Matter |vim-markdown-toml-front-matter|
4. JSON Front Matter |vim-markdown-json-front-matter|
5. Strikethrough |vim-markdown-strikethrough|
11. Adjust new list item indent |vim-markdown-adjust-new-list-item-indent|
12. Do not require .md extensions for Markdown links
|vim-markdown-do-not-require-.md-extensions-for-markdown-links|
13. Auto-write when following link
|vim-markdown-auto-write-when-following-link|
14. Change default file extension
|vim-markdown-change-default-file-extension|
15. Do not automatically insert bulletpoints
|vim-markdown-do-not-automatically-insert-bulletpoints|
16. Change how to open new files |vim-markdown-change-how-to-open-new-files|
5. Mappings |vim-markdown-mappings|
6. Commands |vim-markdown-commands|
7. Credits |vim-markdown-credits|
8. License |vim-markdown-license|
9. References |vim-markdown-references|
===============================================================================
*vim-markdown-introduction*
Introduction ~
Syntax highlighting, matching rules and mappings for the original Markdown [1]
and extensions.
===============================================================================
*vim-markdown-installation*
Installation ~
If you use Vundle [2], add the following lines to your '~/.vimrc':
>
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'
<
The 'tabular' plugin must come _before_ 'vim-markdown'.
Then run inside Vim:
>
:so ~/.vimrc
:PluginInstall
<
If you use Pathogen [3], do this:
>
cd ~/.vim/bundle
git clone https://github.com/plasticboy/vim-markdown.git
<
To install without Pathogen using the Debian vim-addon-manager [4], do this:
>
git clone https://github.com/plasticboy/vim-markdown.git
cd vim-markdown
sudo make install
vim-addon-manager install markdown
<
If you are not using any package manager, download the tarball [5] and do this:
>
cd ~/.vim
tar --strip=1 -zxf vim-markdown-master.tar.gz
<
===============================================================================
*vim-markdown-basic-usage*
Basic usage ~
-------------------------------------------------------------------------------
*vim-markdown-folding*
Folding ~
Folding is enabled for headers by default.
The following commands are useful to open and close folds:
*vim-markdown-zr*
- 'zr': reduces fold level throughout the buffer
*vim-markdown-zR*
- 'zR': opens all folds
*vim-markdown-zm*
- 'zm': increases fold level throughout the buffer
*vim-markdown-zM*
- 'zM': folds everything all the way
*vim-markdown-za*
- 'za': open a fold your cursor is on
*vim-markdown-zA*
- 'zA': open a fold your cursor is on recursively
*vim-markdown-zc*
- 'zc': close a fold your cursor is on
*vim-markdown-zC*
- 'zC': close a fold your cursor is on recursively
Options are available to disable folding or change folding style.
Try ':help fold-expr' and ':help fold-commands' for details.
-------------------------------------------------------------------------------
*vim-markdown-concealing*
Concealing ~
Concealing is set for some syntax such as bold, italic, code block and link.
Concealing lets you conceal text with other text. The actual source text is not
modified. If you put your cursor on the concealed line, the conceal goes away.
Options are available to disable or change concealing.
Try ':help concealcursor' and ':help conceallevel' for details.
===============================================================================
*vim-markdown-options*
Options ~
-------------------------------------------------------------------------------
*vim-markdown-disable-folding*
Disable Folding ~
*g:vim_markdown_folding_disabled*
- 'g:vim_markdown_folding_disabled'
Add the following line to your '.vimrc' to disable the folding
configuration:
>
let g:vim_markdown_folding_disabled = 1
<
This option only controls Vim Markdown specific folding configuration.
To enable/disable folding use Vim's standard folding configuration.
>
set [no]foldenable
<
-------------------------------------------------------------------------------
*vim-markdown-change-fold-style*
Change fold style ~
*g:vim_markdown_folding_style_pythonic*
- 'g:vim_markdown_folding_style_pythonic'
To fold in a style like python-mode [6], add the following to your
'.vimrc':
>
let g:vim_markdown_folding_style_pythonic = 1
<
'g:vim_markdown_folding_level' setting (default 1) is set to 'foldlevel'.
Thus level 1 heading which is served as a document title is expanded by
default.
*g:vim_markdown_override_foldtext*
- 'g:vim_markdown_override_foldtext'
To prevent foldtext from being set add the following to your '.vimrc':
>
let g:vim_markdown_override_foldtext = 0
<
-------------------------------------------------------------------------------
*vim-markdown-set-header-folding-level*
Set header folding level ~
*g:vim_markdown_folding_level*
- 'g:vim_markdown_folding_level'
Folding level is a number between 1 and 6. By default, if not specified, it
is set to 1.
>
let g:vim_markdown_folding_level = 6
<
Tip: it can be changed on the fly with:
>
:let g:vim_markdown_folding_level = 1
:edit
<
-------------------------------------------------------------------------------
*vim-markdown-disable-default-key-mappings*
Disable Default Key Mappings ~
*g:vim_markdown_no_default_key_mappings*
- 'g:vim_markdown_no_default_key_mappings'
Add the following line to your '.vimrc' to disable default key mappings:
>
let g:vim_markdown_no_default_key_mappings = 1
<
You can also map them by yourself with '<Plug>' mappings.
-------------------------------------------------------------------------------
*vim-markdown-enable-toc-window-auto-fit*
Enable TOC window auto-fit ~
*g:vim_markdown_toc_autofit*
- 'g:vim_markdown_toc_autofit'
Allow for the TOC window to auto-fit when it's possible for it to shrink.
It never increases its default size (half screen), it only shrinks.
>
let g:vim_markdown_toc_autofit = 1
<
-------------------------------------------------------------------------------
*vim-markdown-text-emphasis-restriction-to-single-lines*
Text emphasis restriction to single-lines ~
*g:vim_markdown_emphasis_multiline*
- 'g:vim_markdown_emphasis_multiline'
By default text emphasis works across multiple lines until a closing token
is found. However, it's possible to restrict text emphasis to a single line
(i.e., for it to be applied a closing token must be found on the same
line). To do so:
>
let g:vim_markdown_emphasis_multiline = 0
<
-------------------------------------------------------------------------------
*vim-markdown-syntax-concealing*
Syntax Concealing ~
*g:vim_markdown_conceal*
- 'g:vim_markdown_conceal'
Concealing is set for some syntax.
For example, conceal '[link text](link url)' as just 'link text'. Also,
'_italic_' and '*italic*' will conceal to just _italic_. Similarly
'__bold__', '**bold**', '___italic bold___', and '***italic bold***' will
conceal to just **bold**, **bold**, **_italic bold_**, and **_italic
bold_** respectively.
To enable conceal use Vim's standard conceal configuration.
>
set conceallevel=2
<
To disable conceal regardless of 'conceallevel' setting, add the following
to your '.vimrc':
>
let g:vim_markdown_conceal = 0
<
To disable math conceal with LaTeX math syntax enabled, add the following
to your '.vimrc':
>
let g:tex_conceal = ""
let g:vim_markdown_math = 1
<
*g:vim_markdown_conceal_code_blocks*
- 'g:vim_markdown_conceal_code_blocks'
Disabling conceal for code fences requires an additional setting:
>
let g:vim_markdown_conceal_code_blocks = 0
<
-------------------------------------------------------------------------------
*vim-markdown-fenced-code-block-languages*
Fenced code block languages ~
*g:vim_markdown_fenced_languages*
- 'g:vim_markdown_fenced_languages'
You can use filetype name as fenced code block languages for syntax
highlighting. If you want to use different name from filetype, you can add
it in your '.vimrc' like so:
>
let g:vim_markdown_fenced_languages = ['csharp=cs']
<
This will cause the following to be highlighted using the 'cs' filetype
syntax.
>
```csharp
...
```
<
Default is "['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini']".
-------------------------------------------------------------------------------
*vim-markdown-follow-named-anchors*
Follow named anchors ~
*g:vim_markdown_follow_anchor*
- 'g:vim_markdown_follow_anchor'
This feature allows the 'ge' command to follow named anchors in links of
the form 'file#anchor' or just '#anchor', where file may omit the '.md'
extension as usual. Two variables control its operation:
>
let g:vim_markdown_follow_anchor = 1
<
This tells vim-markdown whether to attempt to follow a named anchor in a
link or not. When it is 1, and only if a link can be split in two parts by
the pattern '#', then the first part is interpreted as the file and the
second one as the named anchor. This also includes urls of the form
'#anchor', for which the first part is considered empty, meaning that the
target file is the current one. After the file is opened, the anchor will
be searched.
Default is '0'.
*g:vim_markdown_anchorexpr*
- 'g:vim_markdown_anchorexpr'
>
let g:vim_markdown_anchorexpr = "'<<'.v:anchor.'>>'"
<
This expression will be evaluated substituting 'v:anchor' with a quoted
string that contains the anchor to visit. The result of the evaluation will
become the real anchor to search in the target file. This is useful in
order to convert anchors of the form, say, 'my-section-title' to searches
of the form 'My Section Title' or '<<my-section-title>>'.
Default is "''".
-------------------------------------------------------------------------------
*vim-markdown-syntax-extensions*
Syntax extensions ~
The following options control which syntax extensions will be turned on. They
are off by default.
-------------------------------------------------------------------------------
*vim-markdown-latex-math*
LaTeX math ~
*g:vim_markdown_math*
- 'g:vim_markdown_math'
Used as '$x^2$', '$$x^2$$', escapable as '\$x\$' and '\$\$x\$\$'.
>
let g:vim_markdown_math = 1
<
-------------------------------------------------------------------------------
*vim-markdown-yaml-front-matter*
YAML Front Matter ~
*g:vim_markdown_frontmatter*
- 'g:vim_markdown_frontmatter'
Highlight YAML front matter as used by Jekyll or Hugo [7].
>
let g:vim_markdown_frontmatter = 1
<
-------------------------------------------------------------------------------
*vim-markdown-toml-front-matter*
TOML Front Matter ~
*g:vim_markdown_toml_frontmatter*
- 'g:vim_markdown_toml_frontmatter'
Highlight TOML front matter as used by Hugo [7].
TOML syntax highlight requires vim-toml [8].
>
let g:vim_markdown_toml_frontmatter = 1
<
-------------------------------------------------------------------------------
*vim-markdown-json-front-matter*
JSON Front Matter ~
*g:vim_markdown_json_frontmatter*
- 'g:vim_markdown_json_frontmatter'
Highlight JSON front matter as used by Hugo [7].
JSON syntax highlight requires vim-json [9].
>
let g:vim_markdown_json_frontmatter = 1
<
-------------------------------------------------------------------------------
*vim-markdown-strikethrough*
Strikethrough ~
*g:vim_markdown_strikethrough*
- 'g:vim_markdown_strikethrough'
Strikethrough uses two tildes. '~~Scratch this.~~'
>
let g:vim_markdown_strikethrough = 1
<
-------------------------------------------------------------------------------
*vim-markdown-adjust-new-list-item-indent*
Adjust new list item indent ~
*g:vim_markdown_new_list_item_indent*
- 'g:vim_markdown_new_list_item_indent'
You can adjust a new list indent. For example, you insert a single line
like below:
>
* item1
<
Then if you type 'o' to insert new line in vim and type '* item2', the
result will be:
>
* item1
* item2
<
vim-markdown automatically insert the indent. By default, the number of
spaces of indent is 4. If you'd like to change the number as 2, just write:
>
let g:vim_markdown_new_list_item_indent = 2
<
-------------------------------------------------------------------------------
*vim-markdown-do-not-require-.md-extensions-for-markdown-links*
Do not require .md extensions for Markdown links ~
*g:vim_markdown_no_extensions_in_markdown*
- 'g:vim_markdown_no_extensions_in_markdown'
If you want to have a link like this '[link text](link-url)' and follow it
for editing in vim using the 'ge' command, but have it open the file "link-
url.md" instead of the file "link-url", then use this option:
>
let g:vim_markdown_no_extensions_in_markdown = 1
<
This is super useful for GitLab and GitHub wiki repositories.
Normal behaviour would be that vim-markup required you to do this '[link
text](link-url.md)', but this is not how the Gitlab and GitHub wiki
repositories work. So this option adds some consistency between the two.
-------------------------------------------------------------------------------
*vim-markdown-auto-write-when-following-link*
Auto-write when following link ~
*g:vim_markdown_autowrite*
- 'g:vim_markdown_autowrite'
If you follow a link like this '[link text](link-url)' using the 'ge'
shortcut, this option will automatically save any edits you made before
moving you:
>
let g:vim_markdown_autowrite = 1
<
-------------------------------------------------------------------------------
*vim-markdown-change-default-file-extension*
Change default file extension ~
*g:vim_markdown_auto_extension_ext*
- 'g:vim_markdown_auto_extension_ext'
If you would like to use a file extension other than '.md' you may do so
using the 'vim_markdown_auto_extension_ext' variable:
>
let g:vim_markdown_auto_extension_ext = 'txt'
<
-------------------------------------------------------------------------------
*vim-markdown-do-not-automatically-insert-bulletpoints*
Do not automatically insert bulletpoints ~
*g:vim_markdown_auto_insert_bullets*
- 'g:vim_markdown_auto_insert_bullets'
Automatically inserting bulletpoints can lead to problems when wrapping
text (see issue #232 for details), so it can be disabled:
>
let g:vim_markdown_auto_insert_bullets = 0
<
In that case, you probably also want to set the new list item indent to 0
as well, or you will have to remove an indent each time you add a new list
item:
>
let g:vim_markdown_new_list_item_indent = 0
<
-------------------------------------------------------------------------------
*vim-markdown-change-how-to-open-new-files*
Change how to open new files ~
*g:vim_markdown_edit_url_in*
- 'g:vim_markdown_edit_url_in'
By default when following a link the target file will be opened in your
current buffer. This behavior can change if you prefer using splits or tabs
by using the 'vim_markdown_edit_url_in' variable. Possible values are
'tab', 'vsplit', 'hsplit', 'current' opening in a new tab, vertical split,
horizontal split, and current buffer respectively. Defaults to current
buffer if not set:
>
let g:vim_markdown_edit_url_in = 'tab'
<
===============================================================================
*vim-markdown-mappings*
Mappings ~
The following work on normal and visual modes:
*vim-markdown-gx*
- 'gx': open the link under the cursor in the same browser as the standard
'gx' command. '<Plug>Markdown_OpenUrlUnderCursor'
The standard 'gx' is extended by allowing you to put your cursor anywhere
inside a link.
For example, all the following cursor positions will work:
>
[Example](http://example.com)
^ ^ ^^ ^ ^
1 2 34 5 6
<http://example.com>
^ ^ ^
1 2 3
<
Known limitation: does not work for links that span multiple lines.
*vim-markdown-ge*
- 'ge': open the link under the cursor in Vim for editing. Useful for
relative markdown links. '<Plug>Markdown_EditUrlUnderCursor'
The rules for the cursor position are the same as the 'gx' command.
*vim-markdown-]]*
- ']]': go to next header. '<Plug>Markdown_MoveToNextHeader'
*vim-markdown-[[*
- '[[': go to previous header. Contrast with ']c'.
'<Plug>Markdown_MoveToPreviousHeader'
*vim-markdown-][*
- '][': go to next sibling header if any.
'<Plug>Markdown_MoveToNextSiblingHeader'
*vim-markdown-[]*
- '[]': go to previous sibling header if any.
'<Plug>Markdown_MoveToPreviousSiblingHeader'
*vim-markdown-]c*
- ']c': go to Current header. '<Plug>Markdown_MoveToCurHeader'
*vim-markdown-]u*
- ']u': go to parent header (Up). '<Plug>Markdown_MoveToParentHeader'
This plugin follows the recommended Vim plugin mapping interface, so to change
the map ']u' to 'asdf', add to your '.vimrc':
>
map asdf <Plug>Markdown_MoveToParentHeader
<
To disable a map use:
>
map <Plug> <Plug>Markdown_MoveToParentHeader
<
===============================================================================
*vim-markdown-commands*
Commands ~
The following requires ':filetype plugin on'.
*:HeaderDecrease*
- ':HeaderDecrease':
Decrease level of all headers in buffer: 'h2' to 'h1', 'h3' to 'h2', etc.
If range is given, only operate in the range.
If an 'h1' would be decreased, abort.
For simplicity of implementation, Setex headers are converted to Atx.
*:HeaderIncrease*
- ':HeaderIncrease': Analogous to ':HeaderDecrease', but increase levels
instead.
*:SetexToAtx*
- ':SetexToAtx':
Convert all Setex style headers in buffer to Atx.
If a range is given, e.g. hit ':' from visual mode, only operate on the
range.
*:TableFormat*
- ':TableFormat': Format the table under the cursor like this [10].
Requires Tabular [11].
The input table _must_ already have a separator line as the second line of
the table. That line only needs to contain the correct pipes '|', nothing
else is required.
*:Toc*
- ':Toc': create a quickfix vertical window navigable table of contents with
the headers.
Hit '<Enter>' on a line to jump to the corresponding line of the markdown
file.
*:Toch*
- ':Toch': Same as ':Toc' but in an horizontal window.
*:Toct*
- ':Toct': Same as ':Toc' but in a new tab.
*:Tocv*
- ':Tocv': Same as ':Toc' for symmetry with ':Toch' and ':Tocv'.
===============================================================================
*vim-markdown-credits*
Credits ~
The main contributors of vim-markdown are:
- **Ben Williams** (A.K.A. **plasticboy**). The original developer of vim-
markdown. Homepage [12].
If you feel that your name should be on this list, please make a pull request
listing your contributions.
===============================================================================
*vim-markdown-license*
License ~
The MIT License (MIT)
Copyright (c) 2012 Benjamin D. Williams
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
===============================================================================
*vim-markdown-references*
References ~
[1] http://daringfireball.net/projects/markdown/
[2] https://github.com/gmarik/vundle
[3] https://github.com/tpope/vim-pathogen
[4] http://packages.qa.debian.org/v/vim-addon-manager.html
[5] https://github.com/plasticboy/vim-markdown/archive/master.tar.gz
[6] https://github.com/klen/python-mode
[7] https://gohugo.io/content/front-matter/
[8] https://github.com/cespare/vim-toml
[9] https://github.com/elzr/vim-json
[10] http://www.cirosantilli.com/markdown-style-guide/#tables
[11] https://github.com/godlygeek/tabular
[12] http://plasticboy.com/
vim: ft=help
endif

View File

@@ -1,64 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'raml') == -1
# vim-raml
Vim syntax and language settings for RAML
About
---
vim-raml is a superset of Vim's own syntax settings for YAML, as RAML itself
is a superset of YAML. Obviously, filetype detection is provided for RAML
files as well to make use of the expanded syntax, as well language formatting
defaults.
You'll notice several changes over using the default YAML syntax file:
- The RAML version header, manditory in RAML now stands out brightly,
rather than looking like a comment.
- Parameter interpolation i.e. ```<<thing>>``` is highlighted inside of blocks
and values.
- Delimiters and blocks i.e. ```-, |, etc``` are consistently highlighted
(flaky in YAML).
- HTTP verbs, response codes, data types, and route definitions are all
colored separately from regular keys to help immediately distingush
different levels of the data structure.
- HTTP verbs include all that are supported by RAML: get, post, put, delete,
head, patch, and options
- Response codes e.g. 200, 201, 404, 401, etc are colored like numbers
(for obvious reasons)
- Data types e.g. ```type: integer```. Supports all RAML datatypes. string,
number, integer, date, boolean, and file.
- Route definitions: these include ```/posts:``` or ```/{id}:```
Installation
---
vim-raml doesn't have any strange or esoteric requirements.
Provided you're using Vundle, Pathogen or any of the other standard Vim
plugin managers. You can install vim-raml exactly how you'd expect.
For completeness, to install via Vundle just add the following into your
.vimrc with your other plugins
Plugin '.../.../'
Plugin 'IN3D/vim-raml'
Plugin '.../.../'
Then run:
:source %
:PluginInstall
Or for Pathogen:
cd ~/.vim/bundle
git clone https://github.com/IN3D/vim-raml.git
And Pathogen should pick it up the next time Vim is started.
Questions, suggestions, and issues
---
If you have a question, suggestion, or have found an issue with vim-raml.
The best way to bring it to my attention is to open an issue at
https://github.com/IN3D/vim-raml/issues
endif

2257
extras/filetype.vim Normal file

File diff suppressed because it is too large Load Diff

1213
extras/menu.vim Normal file

File diff suppressed because it is too large Load Diff

1
filetype.vim Normal file
View File

@@ -0,0 +1 @@
runtime! ftdetect/polyglot.vim

View File

@@ -3,22 +3,18 @@
" Maintainer: Adam Stankiewicz <sheerun@sher.pl>
" URL: https://github.com/sheerun/vim-polyglot
" We are not supporting non-compatible mode
if &compatible
finish
endif
" Listen very carefully, I will say this only once
if exists("did_load_polyglot")
finish
endif
" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim
let did_load_polyglot = 1
" Switch to compatible mode for the time being
let s:cpo_save = &cpo
set cpo&vim
" It can happen vim filetype.vim loads first, then we need a reset
if exists("did_load_filetypes")
au! filetypedetect
@@ -30,14 +26,6 @@ let did_load_filetypes = 1
" Be consistent across different systems
set nofileignorecase
func! s:Observe(fn)
let b:PolyglotObserve = function("polyglot#" . a:fn)
augroup polyglot-observer
au! CursorHold,CursorHoldI,BufWritePost <buffer>
\ if b:PolyglotObserve() | au! polyglot-observer | endif
augroup END
endfunc
let s:disabled_packages = {}
let s:new_polyglot_disabled = []
@@ -117,6 +105,8 @@ func! s:StarSetf(ft)
endif
endfunc
augroup polyglot-observer | augroup END
augroup filetypedetect
" Load user-defined filetype.vim and oter plugins ftdetect first
@@ -2550,7 +2540,7 @@ if !has_key(s:disabled_packages, 'alsaconf')
endif
if !has_key(s:disabled_packages, 'conf')
au BufNewFile,BufRead *.conf,auto.master,config setf conf
au BufNewFile,BufRead *.conf,*/etc/hosts,auto.master,config setf conf
endif
if !has_key(s:disabled_packages, 'master')
@@ -2626,24 +2616,58 @@ endif
" DO NOT EDIT CODE ABOVE, IT IS GENERATED WITH MAKEFILE
au! BufNewFile,BufRead,StdinReadPost * if expand("<afile>:e") == "" |
func! s:Observe(fn)
let b:PolyglotObserve = function("polyglot#" . a:fn)
augroup polyglot-observer
au!
au CursorHold,CursorHoldI,BufWritePost <buffer> call b:PolyglotObserve()
augroup END
endfunc
au BufNewFile,BufRead,StdinReadPost * if expand("<afile>:e") == "" |
\ call polyglot#shebang#Detect() | endif
au BufEnter * if &ft == "" && expand("<afile>:e") == "" |
au BufWinEnter * if &ft == "" && expand("<afile>:e") == "" |
\ call s:Observe('shebang#Detect') | endif
au FileType * au! polyglot-observer
augroup END
if !has_key(s:disabled_packages, 'autoindent')
" Code below re-implements sleuth for vim-polyglot
let g:loaded_sleuth = 1
" Makes shiftwidth to be synchronized with tabstop by default
if &shiftwidth == &tabstop
let &shiftwidth = 0
if &tabstop == 8
let &tabstop = 2
endif
function! s:guess(lines) abort
let s:default_shiftwidth = &shiftwidth
func! s:get_shiftwidth(indents) abort
let shiftwidth = 0
let max_count = 0
let final_counts = {}
for [indent, indent_count] in items(a:indents)
let indent_count = indent_count * 1.5
for [indent2, indent2_count] in items(a:indents)
if indent2 > indent && indent2 % indent == 0
let indent_count = indent_count + indent2_count
endif
endfor
let final_counts[indent] = indent_count
endfor
for [indent, final_count] in items(final_counts)
if final_count > max_count
let shiftwidth = indent
let max_count = final_count
endif
endfor
return shiftwidth
endfunc
func! s:guess(lines) abort
let options = {}
let ccomment = 0
let podcomment = 0
@@ -2653,12 +2677,14 @@ if !has_key(s:disabled_packages, 'autoindent')
let heredoc = ''
let minindent = 10
let spaces_minus_tabs = 0
let i = 0
let lineno = 0
let stack = [0]
let indents = { '2': 0, '3': 0, '4': 0, '6': 0, '8': 0 }
for line in a:lines
let i += 1
let lineno += 1
if !len(line) || line =~# '^\S+$'
if line =~# '^\s*$'
continue
endif
@@ -2722,38 +2748,70 @@ if !has_key(s:disabled_packages, 'autoindent')
let heredoc = herematch[1] . '$'
endif
let spaces_minus_tabs += line[0] == "\t" ? 1 : -1
if line[0] == "\t"
setlocal noexpandtab
let &l:shiftwidth=&tabstop
let b:sleuth_culprit .= ':' . i
return 1
elseif line[0] == " "
let spaces_minus_tabs -= 1
else
if line[0] == " "
let spaces_minus_tabs += 1
endif
let indent = len(matchstr(line, '^ *'))
if (indent % 2 == 0 || indent % 3 == 0) && indent < minindent
let minindent = indent
while stack[-1] > indent
call remove(stack, -1)
endwhile
let indent_inc = indent - stack[-1]
if indent_inc == 0 && len(stack) > 1
let indent_inc = indent - stack[-2]
endif
if has_key(indents, indent_inc)
let indents[indent_inc] += 1
let prev_indent = indent
endif
if stack[-1] != indent
call add(stack, indent)
endif
endif
endfor
if minindent < 10
if spaces_minus_tabs < 0
setlocal noexpandtab
let &l:shiftwidth=&tabstop
return 1
endif
let shiftwidth = s:get_shiftwidth(indents)
if shiftwidth > 0
setlocal expandtab
let &l:shiftwidth=minindent
let b:sleuth_culprit .= ':' . i
let &l:shiftwidth=shiftwidth
try
" Sunchronize tabstop with shiftwidth
let &l:softtabstop = -1
catch /^Vim\%((\a\+)\)\=:E487/
" -1 was not supported before Vim 7.4
let &l:softtabstop = a:num_spaces
endtry
return 1
endif
return 0
endfunction
endfunc
function! s:detect_indent() abort
func! s:detect_indent() abort
if &buftype ==# 'help'
return
endif
" Do not autodetect indent if language or user sets it
if &l:shiftwidth != s:default_shiftwidth
return
endif
let b:sleuth_culprit = expand("<afile>:p")
if s:guess(getline(1, 32))
if s:guess(getline(1, 128))
return
endif
if s:guess(getline(1, 1024))
@@ -2790,12 +2848,12 @@ if !has_key(s:disabled_packages, 'autoindent')
let level -= 1
endwhile
unlet b:sleuth_culprit
endfunction
let b:sleuth_culprit = "default"
endfunc
setglobal smarttab
set smarttab
function! SleuthIndicator() abort
func! SleuthIndicator() abort
let sw = &shiftwidth ? &shiftwidth : &tabstop
if &expandtab
return 'sw='.sw
@@ -2804,11 +2862,11 @@ if !has_key(s:disabled_packages, 'autoindent')
else
return 'sw='.sw.',ts='.&tabstop
endif
endfunction
endfunc
augroup polyglot-sleuth
au!
au FileType * call s:detect_indent()
au BufEnter * call s:detect_indent()
au User Flags call Hoist('buffer', 5, 'SleuthIndicator')
augroup END
@@ -3431,7 +3489,31 @@ augroup END
" detected filetypes.
if exists("did_load_filetypes") && exists("g:polyglot_disabled")
unlet did_load_filetypes
runtime! $VIMRUNTIME/filetype.vim
runtime! extras/filetype.vim
endif
if !has_key(s:disabled_packages, 'sensible')
" Reload unchanged files automatically.
set autoread
" Disable swap, it doesn't play well with autoread
set noswapfile
" Auto reload if file was changed somewhere else (for autoread)
augroup polyglot-sensible
au!
au CursorHold * checktime
augroup END
" Enable highlighted case-insensitive incremential search.
set incsearch
" Use utf-8 encoding by default
set encoding=utf-8
" Autoindent when starting new line, or using `o` or `O`.
set autoindent
endif
" Restore 'cpoptions'

View File

@@ -1,106 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'context') == -1
" Vim filetype plugin file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 30
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
if !exists('current_compiler')
compiler context
endif
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
setlocal omnifunc=contextcomplete#Complete
let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
let g:omni_syntax_group_exclude_context = 'mfTodoComment'
endif
let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
\ . 'def\|\\font\|\\\%(future\)\=let'
\ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
\ . '\|fam\|insert\|if\)'
let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
setlocal suffixesadd=.tex
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
\ '\\start\(\a\+\):\\stop\1'
endif
let s:context_regex = {
\ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
\ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
\ 'beginblock' : '\\\%(start\|setup\|define\)',
\ 'endblock' : '\\\%(stop\|setup\|define\)'
\ }
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
endfunction
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
" Other useful mappings
if get(g:, 'context_mappings', 1)
let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
fun! s:tp()
call cursor(search(s:tp_regex, 'bcW') + 1, 1)
normal! V
call cursor(search(s:tp_regex, 'W') - 1, 1)
endf
" Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
" Select TeX paragraph
vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
" $...$ text object
onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
vnoremap <buffer> i$ T$ot$
vnoremap <buffer> a$ F$of$
endif
" Commands for asynchronous typesetting
command! -buffer -nargs=? -complete=file ConTeXt call context#typeset(<q-args>)
command! -nargs=0 ConTeXtJobStatus call context#job_status()
command! -nargs=0 ConTeXtStopJobs call context#stop_jobs()
let &cpo = s:cpo_save
unlet s:cpo_save
endif

View File

@@ -1,254 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'man') == -1
" Vim filetype plugin file
" Language: man
" Maintainer: Jason Franklin <vim@justemail.net>
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2020 Jun 01
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
" If 'filetype' isn't "man", we must have been called to only define ":Man".
if &filetype == "man"
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
endif
let s:cpo_save = &cpo
set cpo-=C
if &filetype == "man"
" allow dot and dash in manual page name.
setlocal iskeyword+=\.,-
let b:undo_ftplugin = "setlocal iskeyword<"
" Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_man_maps")
if !hasmapto('<Plug>ManBS')
nmap <buffer> <LocalLeader>h <Plug>ManBS
let b:undo_ftplugin = b:undo_ftplugin
\ . '|silent! nunmap <buffer> <LocalLeader>h'
endif
nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>''
nnoremap <buffer> <silent> <c-]> :call <SID>PreGetPage(v:count)<CR>
nnoremap <buffer> <silent> <c-t> :call <SID>PopPage()<CR>
nnoremap <buffer> <silent> q :q<CR>
" Add undo commands for the maps
let b:undo_ftplugin = b:undo_ftplugin
\ . '|silent! nunmap <buffer> <Plug>ManBS'
\ . '|silent! nunmap <buffer> <c-]>'
\ . '|silent! nunmap <buffer> <c-t>'
\ . '|silent! nunmap <buffer> q'
endif
if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1)
setlocal foldmethod=indent foldnestmax=1 foldenable
let b:undo_ftplugin = b:undo_ftplugin
\ . '|silent! setl fdm< fdn< fen<'
endif
endif
if exists(":Man") != 2
com -nargs=+ -complete=shellcmd Man call s:GetPage(<q-mods>, <f-args>)
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
endif
" Define functions only once.
if !exists("s:man_tag_depth")
let s:man_tag_depth = 0
let s:man_sect_arg = ""
let s:man_find_arg = "-w"
try
if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
let s:man_sect_arg = "-s"
let s:man_find_arg = "-l"
endif
catch /E145:/
" Ignore the error in restricted mode
endtry
func <SID>PreGetPage(cnt)
if a:cnt == 0
let old_isk = &iskeyword
if &ft == 'man'
setl iskeyword+=(,)
endif
let str = expand("<cword>")
let &l:iskeyword = old_isk
let page = substitute(str, '(*\(\k\+\).*', '\1', '')
let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '')
if match(sect, '^[0-9 ]\+$') == -1
let sect = ""
endif
if sect == page
let sect = ""
endif
else
let sect = a:cnt
let page = expand("<cword>")
endif
call s:GetPage('', sect, page)
endfunc
func <SID>GetCmdArg(sect, page)
if a:sect == ''
return a:page
endif
return s:man_sect_arg.' '.a:sect.' '.a:page
endfunc
func <SID>FindPage(sect, page)
let where = system("man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page))
if where !~ "^/"
if matchstr(where, " [^ ]*$") !~ "^ /"
return 0
endif
endif
return 1
endfunc
func <SID>GetPage(cmdmods, ...)
if a:0 >= 2
let sect = a:1
let page = a:2
elseif a:0 >= 1
let sect = ""
let page = a:1
else
return
endif
" To support: nmap K :Man <cword>
if page == '<cword>'
let page = expand('<cword>')
endif
if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0)
if sect != "" && s:FindPage(sect, page) == 0
let sect = ""
endif
endif
if s:FindPage(sect, page) == 0
let msg = 'man.vim: no manual entry for "' . page . '"'
if !empty(sect)
let msg .= ' in section ' . sect
endif
echomsg msg
return
endif
exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%")
exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".")
exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".")
let s:man_tag_depth = s:man_tag_depth + 1
let open_cmd = 'edit'
" Use an existing "man" window if it exists, otherwise open a new one.
if &filetype != "man"
let thiswin = winnr()
exe "norm! \<C-W>b"
if winnr() > 1
exe "norm! " . thiswin . "\<C-W>w"
while 1
if &filetype == "man"
break
endif
exe "norm! \<C-W>w"
if thiswin == winnr()
break
endif
endwhile
endif
if &filetype != "man"
if exists("g:ft_man_open_mode")
if g:ft_man_open_mode == 'vert'
let open_cmd = 'vsplit'
elseif g:ft_man_open_mode == 'tab'
let open_cmd = 'tabedit'
else
let open_cmd = 'split'
endif
else
let open_cmd = a:cmdmods . ' split'
endif
endif
endif
silent execute open_cmd . " $HOME/" . page . '.' . sect . '~'
" Avoid warning for editing the dummy file twice
setl buftype=nofile noswapfile
setl fdc=0 ma nofen nonu nornu
%delete _
let unsetwidth = 0
if empty($MANWIDTH)
let $MANWIDTH = winwidth(0)
let unsetwidth = 1
endif
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
" on a man page reference by unsetting MANPAGER.
" Some versions of env(1) do not support the '-u' option, and in such case
" we set MANPAGER=cat.
if !exists('s:env_has_u')
call system('env -u x true')
let s:env_has_u = (v:shell_error == 0)
endif
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
let env_cmd .= ' GROFF_NO_SGR=1'
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
silent exec "r !" . man_cmd
if unsetwidth
let $MANWIDTH = ''
endif
" Remove blank lines from top and bottom.
while line('$') > 1 && getline(1) =~ '^\s*$'
1delete _
endwhile
while line('$') > 1 && getline('$') =~ '^\s*$'
$delete _
endwhile
1
setl ft=man nomod
setl bufhidden=hide
setl nobuflisted
setl noma
endfunc
func <SID>PopPage()
if s:man_tag_depth > 0
let s:man_tag_depth = s:man_tag_depth - 1
exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth
exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth
exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
exec s:man_tag_buf."b"
exec s:man_tag_lin
exec "norm! ".s:man_tag_col."|"
exec "unlet s:man_tag_buf_".s:man_tag_depth
exec "unlet s:man_tag_lin_".s:man_tag_depth
exec "unlet s:man_tag_col_".s:man_tag_depth
unlet s:man_tag_buf s:man_tag_lin s:man_tag_col
endif
endfunc
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: set sw=2 ts=8 noet:
endif

View File

@@ -1,40 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'context') == -1
" ConTeXt indent file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 15
if exists("b:did_indent")
finish
endif
if !get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
finish
endif
" Load MetaPost indentation script
runtime! indent/mp.vim
let s:keepcpo= &cpo
set cpo&vim
setlocal indentexpr=GetConTeXtIndent()
let b:undo_indent = "setl indentexpr<"
function! GetConTeXtIndent()
" Use MetaPost rules inside MetaPost graphic environments
if len(synstack(v:lnum, 1)) > 0 &&
\ synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic'
return GetMetaPostIndent()
endif
return -1
endfunc
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:sw=2
endif

View File

@@ -1,7 +1,7 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
if exists('b:did_indent')
finish
endif
let b:did_indent = 1
@@ -14,7 +14,7 @@ setlocal indentexpr=GetNimIndent(v:lnum)
setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif
" Only define the function once.
if exists("*GetNimIndent")
if exists('*GetNimIndent')
finish
endif
@@ -40,7 +40,7 @@ function! GetNimIndent(lnum)
endif
" If the start of the line is in a string don't change the indent.
if has('syntax_items') && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
if has('syntax_items') && synIDattr(synID(a:lnum, 1, 1), 'name') =~# 'String$'
return -1
endif
@@ -56,12 +56,12 @@ function! GetNimIndent(lnum)
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "Comment$"
if synIDattr(synID(plnum, pline_len, 1), 'name') =~# 'Comment$'
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "Comment$"
if synIDattr(synID(plnum, col, 1), 'name') =~# 'Comment$'
let max = col
else
let min = col + 1
@@ -80,16 +80,16 @@ function! GetNimIndent(lnum)
endwhile
endif
if cline =~ '^\s*\(if\|when\|for\|while\|case\|of\|try\)\>'
if cline =~# '^\s*\(if\|when\|for\|while\|case\|of\|try\)\>'
" This is a benign line, do nothing
return -1
endif
" If the current line begins with a keyword that lines up with "try"
if cline =~ '^\s*\(except\|finally\)\>'
if cline =~# '^\s*\(except\|finally\)\>'
let lnum = a:lnum - 1
while lnum >= 1
if getline(lnum) =~ '^\s*\(try\|except\)\>'
if getline(lnum) =~# '^\s*\(try\|except\)\>'
let ind = indent(lnum)
if ind >= clindent
return -1 " indent is already less than this
@@ -102,31 +102,31 @@ function! GetNimIndent(lnum)
endif
" If the current line begins with a header keyword, dedent
if cline =~ '^\s*\(elif\|else\)\>'
if cline =~# '^\s*\(elif\|else\)\>'
return s:FindStartLine(a:lnum, '^\s*\(if\|when\|elif\|of\)')
endif
if pline =~ ':\s*$'
if pline =~# ':\s*$'
"return s:FindStartLine(plnum, '(^\s*\(if\|when\|else\|elif\|case\|of\|try\|except\|finally\)\>)\|\<do\>') + &sw
return s:FindStartLine(plnum, '^\s*\(if\|when\|else\|elif\|for\|while\|case\|of\|try\|except\|finally\)\>') + &sw
endif
if pline =~ '=\s*$'
if pline =~# '=\s*$'
return s:FindStartLine(plnum, '^\s*\(proc\|template\|macro\|iterator\)\>') + &sw
endif
" if we got here, this should be the begging of a multi-line if expression for example
if pline =~ '^\s*\(if\|when\|proc\|iterator\|macro\|template\|for\|while\)[^:]*$'
if pline =~# '^\s*\(if\|when\|proc\|iterator\|macro\|template\|for\|while\)[^:]*$'
return plindent + &sw
endif
if pline =~ '\(type\|import\|const\|var\|let\)\s*$'
\ || pline =~ '=\s*\(object\|enum\|tuple\|concept\)'
if pline =~# '\(type\|import\|const\|var\|let\)\s*$'
\ || pline =~# '=\s*\(object\|enum\|tuple\|concept\)'
return plindent + &sw
endif
" If the previous line was a stop-execution statement...
if pline =~ '^\s*\(break\|continue\|raise\|return\)\>'
if pline =~# '^\s*\(break\|continue\|raise\|return\)\>'
" See if the user has already dedented
if indent(a:lnum) > plindent - &sw
" If not, recommend one dedent

View File

@@ -1958,6 +1958,7 @@ filetypes:
filenames:
- auto.master
- config
- '*/etc/hosts'
---
name: b
remote: vim/vim:runtime
@@ -5509,8 +5510,6 @@ filetypes:
- pattern: "XF86Config-4*,XF86Config*,*/xorg.conf.d/*.conf,xorg.conf,xorg.conf-4"
---
name: man
remote: vim/vim:runtime
glob: "**/man.vim"
filetypes:
- name: man
linguist: Roff Manpage
@@ -5532,8 +5531,6 @@ filetypes:
description: X PixMap 2
---
name: context
remote: vim/vim:runtime
glob: "**/context.vim"
filetypes:
- name: context
patterns:

View File

@@ -1,3 +1,98 @@
if !exists("did_load_polyglot")
" Turn on filetype plugins (:help filetype-plugin).
if has('autocmd') && !(exists("did_load_filetypes") && exists("did_indent_on"))
filetype plugin indent on
endif
" Enable syntax highlighting.
if has('syntax') && !exists('g:syntax_on')
syntax enable
endif
" No need to duplicate work
if exists('g:loaded_sensible')
finish
endif
" Code taken from https://github.com/tpope/vim-sensible
" and (mostly comments) from https://github.com/sheerun/vimrc
"
" Only settings that matter for proper editing are left
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sensible') == -1
" Allow backspace in insert mode.
if &backspace == ""
set backspace=indent,eol,start
endif
" Allow for mappings including `Esc`, while preserving
" zero timeout after pressing it manually.
" (only vim needs a fix for this)
if !has('nvim') && &ttimeoutlen == -1
set ttimeout
set ttimeoutlen=100
endif
" Set default whitespace characters when using `:set list`
if &listchars ==# 'eol:$'
set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
endif
" Delete comment character when joining commented lines
if v:version > 703 || v:version == 703 && has("patch541")
set formatoptions+=j
endif
" Search upwards for tags file instead only locally
if has('path_extra')
setglobal tags-=./tags tags-=./tags; tags^=./tags;
endif
" Fix issues with fish shell
" https://github.com/tpope/vim-sensible/issues/50
if &shell =~# 'fish$' && (v:version < 704 || v:version == 704 && !has('patch276'))
set shell=/usr/bin/env\ bash
endif
" Increase history size to 1000 items.
if &history < 1000
set history=1000
endif
" Allow for up to 50 opened tabs on Vim start.
if &tabpagemax < 50
set tabpagemax=50
endif
" Reduce updatetime from 4000 to 300 to avoid issues with coc.nvim
if &updatetime == 4000
set updatetime=300
endif
" Always save upper case variables to viminfo file.
if !empty(&viminfo)
set viminfo^=!
endif
" Don't save options in sessions and views
set sessionoptions-=options
set viewoptions-=options
" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^Eterm'
set t_Co=16
endif
" Load matchit.vim, but only if the user hasn't installed a newer version.
if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
runtime! macros/matchit.vim
endif
" `Ctrl-U` in insert mode deletes a lot. Use `Ctrl-G` u to first break undo,
" so that you can undo `Ctrl-U` without undoing what you typed before it.
if empty(mapcheck('<C-U>', 'i'))
inoremap <C-U> <C-G>u<C-U>
endif
if empty(mapcheck('<C-W>', 'i'))
inoremap <C-W> <C-G>u<C-W>
endif
endif

View File

@@ -128,6 +128,10 @@ def load_data()
for package in packages
for filetype in package["filetypes"]
if ["context", "man"].include?(filetype["name"]) && package["remote"]
puts "context and man packages caused issues in past, are you sure?"
exit 1
end
if filetype["patterns"]
for pattern in filetype["patterns"]
for p in comma_expanson(pattern["pattern"])
@@ -257,9 +261,8 @@ def parse_remote(remote)
[match[:repo], match[:branch] || "master", match[:path], dir]
end
def copy_file(package, src, dest)
def copy_file(name, src, dest)
FileUtils.mkdir_p(File.dirname(dest))
name = package.fetch("name")
if dest.end_with?(".vim")
header = '" Polyglot metafile'
@@ -471,10 +474,10 @@ def rule_to_code(rule)
end
def extract(packages)
all_dirs = %w(syntax indent doc compiler ftplugin ctags extras after)
all_dirs = %w(syntax indent compiler ftplugin ctags extras after)
default_dirs = %w(
syntax indent doc compiler autoload ftplugin ctags extras
syntax indent compiler autoload ftplugin ctags extras
after/syntax after/indent after/ftplugin
)
@@ -509,11 +512,11 @@ def extract(packages)
globs.each do |glob|
Dir.glob("#{subdir}/#{glob}", base: subtree).each do |p|
next unless File.file?("#{subtree}#{p}")
copy_file(package, "#{subtree}#{p}", p)
copy_file(package["name"], "#{subtree}#{p}", p)
end
end
elsif File.exist?(subpath)
copy_file(package, subpath, subdir)
copy_file(package["name"], subpath, subdir)
end
end
@@ -845,15 +848,7 @@ def generate_plugins(packages)
end
output << " \\}\n\n"
output << <<~EOS
func! polyglot#sleuth#GlobForFiletype(type)
return get(s:globs, a:type, '')
endfunc
EOS
File.write('autoload/polyglot/sleuth.vim', output)
inject_code('autoload/polyglot/sleuth.vim', output)
end
def process_list(list, extras)
@@ -889,6 +884,21 @@ def show_warnings(all_filetypes, expected_filetypes)
end
end
def generate_fallback
filetype_content = File.read('tmp/vim/vim/runtime/filetype.vim')
filetype_content.gsub!('runtime! ftdetect/*.vim', '')
filetype_content.gsub!(/^au BufNewFile,BufRead \*\n.+?runtime!.+?endif/m) {}
filetype_content.gsub!(/^au StdinReadPost \* .+?runtime!.+?endif/m) {}
filetype_content.gsub!(/^au filetypedetect BufNewFile,BufRead,StdinReadPost \*\n.+?endif/m) {}
filetype_content.gsub!("dist#ft#", "polyglot#ft#")
File.write('extras/filetype.vim', filetype_content)
File.write('extras/menu.vim', File.read('tmp/vim/vim/runtime/menu.vim'))
autoload_content = File.read('tmp/vim/vim/runtime/autoload/dist/ft.vim')
autoload_content.gsub!('dist#ft#', 'polyglot#ft#')
File.write('autoload/polyglot/ft.vim', autoload_content)
end
if __FILE__ == $0
if !ENV["DEV"]
@@ -900,6 +910,7 @@ if __FILE__ == $0
packages, heuristics = load_data()
download(packages)
extract(packages)
generate_fallback()
generate_ftdetect(packages, heuristics)
generate_plugins(packages)
generate_tests(packages)

View File

@@ -7,7 +7,6 @@ def run_script(src)
end
def run_vimscript(src)
wrapper = <<~EOF
vim --clean --not-a-term -u <(cat <<- "EOM"
set nocompatible

View File

@@ -1,145 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'context') == -1
" Vim syntax file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 16
if exists("b:current_syntax")
finish
endif
runtime! syntax/plaintex.vim
unlet b:current_syntax
let s:cpo_save = &cpo
set cpo&vim
" Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP.
let s:context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'}))
" For backward compatibility (g:context_include used to be a List)
if type(s:context_include) ==# type([])
let g:context_metapost = (index(s:context_include, 'mp') != -1)
let s:context_include = filter(
\ {'c': 'C', 'javascript': 'JS', 'ruby': 'Ruby', 'xml': 'XML'},
\ { k,_ -> index(s:context_include, k) != -1 }
\ )
endif
syn iskeyword @,48-57,a-z,A-Z,192-255
syn spell toplevel
" ConTeXt options, i.e., [...] blocks
syn region contextOptions matchgroup=contextDelimiter start='\[' end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=ALLBUT,contextBeginEndLua,@Spell
" Highlight braces
syn match contextDelimiter '[{}]'
" Comments
syn match contextComment '\\\@<!\%(\\\\\)*\zs%.*$' display contains=initexTodo
syn match contextComment '^\s*%[CDM].*$' display contains=initexTodo
syn match contextBlockDelim '\\\%(start\|stop\)\a\+' contains=@NoSpell
syn region contextEscaped matchgroup=contextPreProc start='\\type\%(\s*\|\n\)*\z([^A-Za-z%]\)' end='\z1'
syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s\|\n\)*{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s*\|\n\)*<<' end='>>'
syn region contextEscaped matchgroup=contextPreProc
\ start='\\start\z(\a*\%(typing\|typen\)\)'
\ end='\\stop\z1' contains=plaintexComment keepend
syn region contextEscaped matchgroup=contextPreProc start='\\\h\+Type\%(\s\|\n\)*{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\Typed\h\+\%(\s\|\n\)*{' end='}'
syn match contextBuiltin display contains=@NoSpell
\ '\\\%(unprotect\|protect\|unexpanded\)\>'
syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\)\>'
\ contains=@NoSpell
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
let b:mp_metafun_macros = 1 " Highlight MetaFun keywords
syn include @mpTop syntax/mp.vim
unlet b:current_syntax
syn region contextMPGraphic matchgroup=contextBlockDelim
\ start='\\start\z(MP\%(clip\|code\|definitions\|drawing\|environment\|extensions\|inclusions\|initializations\|page\|\)\)\>.*$'
\ end='\\stop\z1'
\ contains=@mpTop,@NoSpell
syn region contextMPGraphic matchgroup=contextBlockDelim
\ start='\\start\z(\%(\%[re]usable\|use\|unique\|static\)MPgraphic\|staticMPfigure\|uniqueMPpagegraphic\)\>.*$'
\ end='\\stop\z1'
\ contains=@mpTop,@NoSpell
endif
if get(b:, 'context_lua', get(g:, 'context_lua', 1))
syn include @luaTop syntax/lua.vim
unlet b:current_syntax
syn region contextLuaCode matchgroup=contextBlockDelim
\ start='\\startluacode\>'
\ end='\\stopluacode\>' keepend
\ contains=@luaTop,@NoSpell
syn match contextDirectLua "\\\%(directlua\|ctxlua\)\>\%(\s*%.*$\)\="
\ nextgroup=contextBeginEndLua skipwhite skipempty
\ contains=initexComment
syn region contextBeginEndLua matchgroup=contextSpecial
\ start="{" end="}" skip="\\[{}]"
\ contained contains=@luaTop,@NoSpell
endif
for synname in keys(s:context_include)
execute 'syn include @' . synname . 'Top' 'syntax/' . synname . '.vim'
unlet b:current_syntax
execute 'syn region context' . s:context_include[synname] . 'Code'
\ 'matchgroup=contextBlockDelim'
\ 'start=+\\start' . s:context_include[synname] . '+'
\ 'end=+\\stop' . s:context_include[synname] . '+'
\ 'contains=@' . synname . 'Top,@NoSpell'
endfor
syn match contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>'
\ contains=@NoSpell
syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
\ contains=@NoSpell
syn match contextSpecial /\\[`'"]/
syn match contextSpecial +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
\ contains=@NoSpell
syn match contextSpecial '\^\^.'
syn match contextSpecial '`\%(\\.\|\^\^.\|.\)'
syn match contextStyle '\\\%(em\|ss\|hw\|cg\|mf\)\>'
\ contains=@NoSpell
syn match contextFont '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
\ contains=@NoSpell
syn match contextFont '\\\%(Word\|WORD\|Words\|WORDS\)\>'
\ contains=@NoSpell
syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
\ contains=@NoSpell
syn match contextFont '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
\ contains=@NoSpell
hi def link contextOptions Typedef
hi def link contextComment Comment
hi def link contextBlockDelim Keyword
hi def link contextBuiltin Keyword
hi def link contextDelimiter Delimiter
hi def link contextEscaped String
hi def link contextPreProc PreProc
hi def link contextSectioning PreProc
hi def link contextSpecial Special
hi def link contextType Type
hi def link contextStyle contextType
hi def link contextFont contextType
hi def link contextDirectLua Keyword
let b:current_syntax = "context"
let &cpo = s:cpo_save
unlet s:cpo_save
endif

View File

@@ -1,60 +0,0 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'man') == -1
" Vim syntax file
" Language: Man page
" Maintainer: Jason Franklin <vim@justemail.net>
" Previous Maintainer: SungHyun Nam <goweol@gmail.com>
" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
" Version Info:
" Last Change: 2020 Sep 19
" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
" * manSubHeading
" * manSynopsis (only for sections 2 and 3)
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Get the CTRL-H syntax to handle backspaced text
runtime! syntax/ctrlh.vim
syn case ignore
syn match manReference "\f\+([1-9][a-z]\=)"
syn match manSectionHeading "^\a.*$"
syn match manSubHeading "^\s\{3\}\a.*$"
syn match manOptionDesc "^\s*[+-][a-z0-9]\S*"
syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*"
" syn match manHistory "^[a-z].*last change.*$"
syn match manHeader '\%1l.*'
exe 'syn match manFooter ''\%' . line('$') . 'l.*'''
if getline(1) =~ '^[a-zA-Z_]\+([23])'
syntax include @cCode <sfile>:p:h/c.vim
syn match manCFuncDefinition display "\<\h\w*\>\s*("me=e-1 contained
syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"me=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition
endif
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link manHeader Title
hi def link manFooter PreProc
hi def link manSectionHeading Statement
hi def link manOptionDesc Constant
hi def link manLongOptionDesc Constant
hi def link manReference PreProc
hi def link manSubHeading Function
hi def link manCFuncDefinition Function
let b:current_syntax = "man"
" vim:ts=8 sts=2 sw=2:
endif

View File

@@ -2,30 +2,30 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
if v:version < 600
syntax clear
elseif exists("b:current_syntax")
elseif exists('b:current_syntax')
finish
endif
" Keep user-supplied options
if !exists("nim_highlight_numbers")
if !exists('nim_highlight_numbers')
let nim_highlight_numbers = 1
endif
if !exists("nim_highlight_builtins")
if !exists('nim_highlight_builtins')
let nim_highlight_builtins = 1
endif
if !exists("nim_highlight_exceptions")
if !exists('nim_highlight_exceptions')
let nim_highlight_exceptions = 1
endif
if !exists("nim_highlight_space_errors")
if !exists('nim_highlight_space_errors')
let nim_highlight_space_errors = 1
endif
if !exists("nim_highlight_special_vars")
if !exists('nim_highlight_special_vars')
let nim_highlight_special_vars = 1
endif
if exists("nim_highlight_all")
if exists('nim_highlight_all')
let nim_highlight_numbers = 1
let nim_highlight_builtins = 1
let nim_highlight_exceptions = 1
@@ -158,8 +158,8 @@ syn sync match nimSync grouphere NONE "):$"
syn sync maxlines=200
syn sync minlines=2000
if version >= 508 || !exists("did_nim_syn_inits")
if version <= 508
if v:version >= 508 || !exists('did_nim_syn_inits')
if v:version <= 508
let did_nim_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
@@ -202,7 +202,7 @@ if version >= 508 || !exists("did_nim_syn_inits")
delcommand HiLink
endif
let b:current_syntax = "nim"
let b:current_syntax = 'nim'
endif

View File

@@ -54,7 +54,7 @@ syn keyword qmlRepeat while for do in
syn keyword qmlBranch break continue
syn keyword qmlOperator new delete instanceof typeof
syn keyword qmlJsType Array Boolean Date Function Number Object String RegExp
syn keyword qmlType action alias bool color date double enumeration font int list point real rect size string time url variant vector3d
syn keyword qmlType action alias bool color date double enumeration font int list point real rect size string time url variant vector2d vector3d vector4d
syn keyword qmlStatement return with
syn keyword qmlBoolean true false
syn keyword qmlNull null undefined