diff --git a/autoload/pathogen.vim b/autoload/pathogen.vim
index 7b89ccafe4..a13ae08f8c 100755
--- a/autoload/pathogen.vim
+++ b/autoload/pathogen.vim
@@ -1,6 +1,6 @@
" pathogen.vim - path option manipulation
" Maintainer: Tim Pope
-" Version: 2.2
+" Version: 2.3
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
"
@@ -8,52 +8,49 @@
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
" .vimrc is the only other setup necessary.
"
-" The API is documented inline below. For maximum ease of reading,
-" :set foldmethod=marker
+" The API is documented inline below.
if exists("g:loaded_pathogen") || &cp
finish
endif
let g:loaded_pathogen = 1
-function! s:warn(msg)
- echohl WarningMsg
- echomsg a:msg
- echohl NONE
-endfunction
-
" Point of entry for basic default usage. Give a relative path to invoke
-" pathogen#incubate() (defaults to "bundle/{}"), or an absolute path to invoke
-" pathogen#surround(). For backwards compatibility purposes, a full path that
-" does not end in {} or * is given to pathogen#runtime_prepend_subdirectories()
-" instead.
-function! pathogen#infect(...) abort " {{{1
- for path in a:0 ? reverse(copy(a:000)) : ['bundle/{}']
- if path =~# '^[^\\/]\+$'
- call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
- call pathogen#incubate(path . '/{}')
- elseif path =~# '^[^\\/]\+[\\/]\%({}\|\*\)$'
- call pathogen#incubate(path)
- elseif path =~# '[\\/]\%({}\|\*\)$'
+" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke
+" pathogen#surround(). Curly braces are expanded with pathogen#expand():
+" "bundle/{}" finds all subdirectories inside "bundle" inside all directories
+" in the runtime path.
+function! pathogen#infect(...) abort
+ for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}']
+ if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]'
call pathogen#surround(path)
- else
+ elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)'
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
call pathogen#surround(path . '/{}')
+ elseif path =~# '[{}*]'
+ call pathogen#interpose(path)
+ else
+ call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
+ call pathogen#interpose(path . '/{}')
endif
endfor
call pathogen#cycle_filetype()
+ if pathogen#is_disabled($MYVIMRC)
+ return 'finish'
+ endif
return ''
-endfunction " }}}1
+endfunction
" Split a path into a list.
-function! pathogen#split(path) abort " {{{1
+function! pathogen#split(path) abort
if type(a:path) == type([]) | return a:path | endif
+ if empty(a:path) | return [] | endif
let split = split(a:path,'\\\@"),'!isdirectory(v:val)')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
- silent! execute 'helptags' pathogen#fnameescape(dir.'/doc')
+ for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
+ if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
+ silent! execute 'helptags' pathogen#fnameescape(dir)
endif
endfor
endfor
-endfunction " }}}1
+endfunction
command! -bar Helptags :call pathogen#helptags()
" Execute the given command. This is basically a backdoor for --remote-expr.
-function! pathogen#execute(...) abort " {{{1
+function! pathogen#execute(...) abort
for command in a:000
execute command
endfor
return ''
-endfunction " }}}1
+endfunction
+
+" Section: Unofficial
+
+function! pathogen#is_absolute(path) abort
+ return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
+endfunction
+
+" Given a string, returns all possible permutations of comma delimited braced
+" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
+" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
+" and globbed. Actual globs are preserved.
+function! pathogen#expand(pattern) abort
+ if a:pattern =~# '{[^{}]\+}'
+ let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
+ let found = map(split(pat, ',', 1), 'pre.v:val.post')
+ let results = []
+ for pattern in found
+ call extend(results, pathogen#expand(pattern))
+ endfor
+ return results
+ elseif a:pattern =~# '{}'
+ let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
+ let post = a:pattern[strlen(pat) : -1]
+ return map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
+ else
+ return [a:pattern]
+ endif
+endfunction
+
+" \ on Windows unless shellslash is set, / everywhere else.
+function! pathogen#slash() abort
+ return !exists("+shellslash") || &shellslash ? '/' : '\'
+endfunction
+
+function! pathogen#separator() abort
+ return pathogen#slash()
+endfunction
+
+" Convenience wrapper around glob() which returns a list.
+function! pathogen#glob(pattern) abort
+ let files = split(glob(a:pattern),"\n")
+ return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
+endfunction "}}}1
+
+" Like pathogen#glob(), only limit the results to directories.
+function! pathogen#glob_directories(pattern) abort
+ return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
+endfunction "}}}1
+
+" Remove duplicates from a list.
+function! pathogen#uniq(list) abort
+ let i = 0
+ let seen = {}
+ while i < len(a:list)
+ if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
+ call remove(a:list,i)
+ elseif a:list[i] ==# ''
+ let i += 1
+ let empty = 1
+ else
+ let seen[a:list[i]] = 1
+ let i += 1
+ endif
+ endwhile
+ return a:list
+endfunction
+
+" Backport of fnameescape().
+function! pathogen#fnameescape(string) abort
+ if exists('*fnameescape')
+ return fnameescape(a:string)
+ elseif a:string ==# '-'
+ return '\-'
+ else
+ return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
+ endif
+endfunction
" Like findfile(), but hardcoded to use the runtimepath.
function! pathogen#runtime_findfile(file,count) abort "{{{1
@@ -246,18 +247,38 @@ function! pathogen#runtime_findfile(file,count) abort "{{{1
else
return fnamemodify(file,':p')
endif
-endfunction " }}}1
+endfunction
-" Backport of fnameescape().
-function! pathogen#fnameescape(string) abort " {{{1
- if exists('*fnameescape')
- return fnameescape(a:string)
- elseif a:string ==# '-'
- return '\-'
+" Section: Deprecated
+
+function! s:warn(msg) abort
+ echohl WarningMsg
+ echomsg a:msg
+ echohl NONE
+endfunction
+
+" Prepend all subdirectories of path to the rtp, and append all 'after'
+" directories in those subdirectories. Deprecated.
+function! pathogen#runtime_prepend_subdirectories(path) abort
+ call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')')
+ return pathogen#surround(a:path . pathogen#slash() . '{}')
+endfunction
+
+function! pathogen#incubate(...) abort
+ let name = a:0 ? a:1 : 'bundle/{}'
+ call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')')
+ return pathogen#interpose(name)
+endfunction
+
+" Deprecated alias for pathogen#interpose().
+function! pathogen#runtime_append_all_bundles(...) abort
+ if a:0
+ call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')')
else
- return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
+ call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()')
endif
-endfunction " }}}1
+ return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}')
+endfunction
if exists(':Vedit')
finish
@@ -265,7 +286,7 @@ endif
let s:vopen_warning = 0
-function! s:find(count,cmd,file,lcd) " {{{1
+function! s:find(count,cmd,file,lcd)
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
let file = pathogen#runtime_findfile(a:file,a:count)
if file ==# ''
@@ -284,10 +305,10 @@ function! s:find(count,cmd,file,lcd) " {{{1
else
return a:cmd.' '.pathogen#fnameescape(file) . warning
endif
-endfunction " }}}1
+endfunction
-function! s:Findcomplete(A,L,P) " {{{1
- let sep = pathogen#separator()
+function! s:Findcomplete(A,L,P)
+ let sep = pathogen#slash()
let cheats = {
\'a': 'autoload',
\'d': 'doc',
@@ -312,7 +333,7 @@ function! s:Findcomplete(A,L,P) " {{{1
endfor
endfor
return sort(keys(found))
-endfunction " }}}1
+endfunction
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(,'edit',,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(,'edit',,0)
@@ -323,4 +344,4 @@ command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabed
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(,'pedit',,1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(,'read',,1)
-" vim:set et sw=2:
+" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
diff --git a/sources_non_forked/goyo.vim/plugin/goyo.vim b/sources_non_forked/goyo.vim/plugin/goyo.vim
index 5308326afe..c64d4aae41 100644
--- a/sources_non_forked/goyo.vim/plugin/goyo.vim
+++ b/sources_non_forked/goyo.vim/plugin/goyo.vim
@@ -64,7 +64,8 @@ function! s:setup_pad(bufnr, vert, size)
execute win . 'wincmd w'
execute (a:vert ? 'vertical ' : '') . 'resize ' . max([0, a:size])
augroup goyop
- autocmd WinEnter,CursorMoved call s:blank()
+ autocmd WinEnter,CursorMoved nested call s:blank()
+ autocmd WinLeave call s:hide_statusline()
augroup END
" To hide scrollbars of pad windows in GVim
@@ -114,6 +115,10 @@ function! s:tranquilize()
endfor
endfunction
+function! s:hide_statusline()
+ let &l:statusline = repeat(' ', winwidth(0))
+endfunction
+
function! s:goyo_on(width)
let s:orig_tab = tabpagenr()
@@ -131,7 +136,6 @@ function! s:goyo_on(width)
\ 'winwidth': &winwidth,
\ 'winminheight': &winminheight,
\ 'winheight': &winheight,
- \ 'statusline': &statusline,
\ 'ruler': &ruler,
\ 'sidescroll': &sidescroll,
\ 'sidescrolloff': &sidescrolloff
@@ -211,19 +215,20 @@ function! s:goyo_on(width)
call s:resize_pads()
call s:tranquilize()
- let &statusline = repeat(' ', winwidth(0))
-
augroup goyo
autocmd!
autocmd BufWinLeave call s:goyo_off()
autocmd TabLeave * call s:goyo_off()
autocmd VimResized * call s:resize_pads()
autocmd ColorScheme * call s:tranquilize()
+ autocmd WinEnter,WinLeave call s:hide_statusline()
augroup END
+ call s:hide_statusline()
if exists('g:goyo_callbacks[0]')
call g:goyo_callbacks[0]()
endif
+ silent! doautocmd User GoyoEnter
endfunction
function! s:goyo_off()
@@ -312,6 +317,7 @@ function! s:goyo_off()
if exists('g:goyo_callbacks[1]')
call g:goyo_callbacks[1]()
endif
+ silent! doautocmd User GoyoLeave
endfunction
function! s:goyo(bang, ...)
diff --git a/sources_non_forked/nerdtree/doc/NERD_tree.txt b/sources_non_forked/nerdtree/doc/NERD_tree.txt
index 79b649ff40..5d5b3f6f7c 100644
--- a/sources_non_forked/nerdtree/doc/NERD_tree.txt
+++ b/sources_non_forked/nerdtree/doc/NERD_tree.txt
@@ -462,8 +462,8 @@ Jump to the previous sibling of the selected node.
------------------------------------------------------------------------------
*NERDTree-C*
Default key: C
-Map option: NERDTreeMapChdir
-Applies to: directories.
+Map option: NERDTreeMapChangeRoot
+Applies to: files and directories.
Make the selected directory node the new tree root. If a file is selected, its
parent is used.
diff --git a/sources_non_forked/syntastic/README.markdown b/sources_non_forked/syntastic/README.markdown
index d0eb41f244..8d96daa7e6 100644
--- a/sources_non_forked/syntastic/README.markdown
+++ b/sources_non_forked/syntastic/README.markdown
@@ -40,11 +40,12 @@ C++, C#, Cabal, Chef, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart,
DocBook, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go,
Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON, JSX, LESS,
Lex, Limbo, LISP, LLVM intermediate language, Lua, MATLAB, NASM, Objective-C,
-Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, OS X
-and iOS property lists, Puppet, Python, Racket, R, reStructuredText, Ruby,
-SASS/SCSS, Scala, Slim, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog,
-VHDL, VimL, xHtml, XML, XSLT, YACC, YAML, z80, Zope page templates, and zsh.
-See the [wiki][3] for details about the corresponding supported checkers.
+Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, OS X and
+iOS property lists, Puppet, Python, Racket, R, reStructuredText, RPM spec,
+Ruby, SASS/SCSS, Scala, Slim, Tcl, TeX, Texinfo, Twig, TypeScript, Vala,
+Verilog, VHDL, VimL, xHtml, XML, XSLT, YACC, YAML, z80, Zope page templates,
+and zsh. See the [wiki][3] for details about the corresponding supported
+checkers.
Below is a screenshot showing the methods that Syntastic uses to display syntax
errors. Note that, in practise, you will only have a subset of these methods
@@ -127,6 +128,16 @@ error output for a syntax checker may have changed. In this case, make sure you
have the latest version of the syntax checker installed. If it still fails then
create an issue - or better yet, create a pull request.
+
+
+__Q. The `python` checker complains about syntactically valid Python 3 constructs...__
+
+A. Configure the `python` checker to call a Python 3 interpreter rather than
+Python 2, e.g:
+```vim
+let g:syntastic_python_python_exec = '/path/to/python3'
+```
+
__Q. The `perl` checker has stopped working...__
@@ -153,7 +164,8 @@ automatically by syntastic.
-__Q. I run a checker and the location list is not updated...__
+__Q. I run a checker and the location list is not updated...__
+__Q. I run`:lopen` or `:lwindow` and the error window is empty...__
A. By default the location list is changed only when you run the `:Errors`
command, in order to minimise conflicts with other plugins. If you want the
@@ -200,8 +212,7 @@ To tell syntastic to use `pylint`, you would use this setting:
let g:syntastic_python_checkers = ['pylint']
```
-Some filetypes, like PHP, have style checkers as well as syntax checkers. These
-can be chained together like this:
+Checkers can be chained together like this:
```vim
let g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd']
```
@@ -219,7 +230,37 @@ e.g. to run `phpcs` and `phpmd`:
This works for any checkers available for the current filetype, even if they
aren't listed in `g:syntastic__checkers`. You can't run checkers for
"foreign" filetypes though (e.g. you can't run, say, a Python checker if the
-current filetype is `php`).
+filetype of the current file is `php`).
+
+
+
+__Q. What is the difference between syntax checkers and style checkers?__
+
+A. The errors and warnings they produce are highlighted differently and can
+be filtered by different rules, but otherwise the distinction is pretty much
+arbitrary. There is an ongoing effort to keep things consistent, so you can
+_generally_ expect messages produced by syntax checkers to be _mostly_ related
+to syntax, and messages produced by style checkers to be _mostly_ about style.
+But there can be no formal guarantee that, say, a style checker that runs into
+a syntax error wouldn't die with a fatal message, nor that a syntax checker
+wouldn't give you warnings against using some constructs as being bad practice.
+There is also no guarantee that messages marked as "style" are less severe than
+the ones marked as "syntax" (whatever that might mean). And there are even a
+few Frankenstein checkers (for example `flake8` and `pylama`) that, by their
+nature, produce both kinds of messages. Syntastic is not smart enough to be
+able to sort out these things by itself.
+
+In fact it's more useful to look at this from the perspective of filtering
+unwanted messages, rather than as an indicator of severity levels. The
+distinction between syntax and style is orthogonal to the distinction between
+errors and warnings, and thus you can turn off messages based on level, on
+type, or both.
+
+e.g. To disable all style messages:
+```vim
+let g:syntastic_quiet_messages = { "type": "style" }
+```
+See `:help syntastic_quiet_messages` for details.
@@ -238,29 +279,13 @@ See `:help syntastic-aggregating-errors` for more details.
__Q. How can I jump between the different errors without using the location
list at the bottom of the window?__
-A. Vim provides several built in commands for this. See `:help :lnext` and
+A. Vim provides several built-in commands for this. See `:help :lnext` and
`:help :lprev`.
If you use these commands a lot then you may want to add shortcut mappings to
your vimrc, or install something like [unimpaired][2], which provides such
mappings (among other things).
-
-
-__Q. A syntax checker is giving me unwanted/strange style tips?__
-
-A. Some filetypes (e.g. php) have style checkers as well as syntax
-checkers. You can usually configure the options that are passed to the style
-checkers, or just disable them. Take a look at the [wiki][3] to see what
-options are available.
-
-Alternatively, you can use `g:syntastic_quiet_messages` to filter out the
-messages you don't want to see. e.g. To turn off all style messages:
-```vim
-let g:syntastic_quiet_messages = { "type": "style" }
-```
-See `:help syntastic_quiet_messages` for details.
-
__Q. The error window is closed automatically when I :quit the current buffer
@@ -303,3 +328,7 @@ a look at [jedi-vim][7], [python-mode][8], or [YouCompleteMe][9].
[10]: http://perldoc.perl.org/perlrun.html#*-c*
[11]: https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide
[12]: https://github.com/rust-lang/rust/
+
+
diff --git a/sources_non_forked/syntastic/autoload/syntastic/c.vim b/sources_non_forked/syntastic/autoload/syntastic/c.vim
index 22fb0ede25..5dad14081d 100644
--- a/sources_non_forked/syntastic/autoload/syntastic/c.vim
+++ b/sources_non_forked/syntastic/autoload/syntastic/c.vim
@@ -62,7 +62,7 @@ endfunction " }}}2
" GetLocList() for C-like compilers
function! syntastic#c#GetLocList(filetype, subchecker, options) " {{{2
try
- let flags = s:getCflags(a:filetype, a:subchecker, a:options)
+ let flags = s:_getCflags(a:filetype, a:subchecker, a:options)
catch /\m\C^Syntastic: skip checks$/
return []
endtry
@@ -70,9 +70,9 @@ function! syntastic#c#GetLocList(filetype, subchecker, options) " {{{2
let makeprg = syntastic#util#shexpand(g:syntastic_{a:filetype}_compiler) .
\ ' ' . flags . ' ' . syntastic#util#shexpand('%')
- let errorformat = s:getCheckerVar('g', a:filetype, a:subchecker, 'errorformat', a:options['errorformat'])
+ let errorformat = s:_getCheckerVar('g', a:filetype, a:subchecker, 'errorformat', a:options['errorformat'])
- let postprocess = s:getCheckerVar('g', a:filetype, a:subchecker, 'remove_include_errors', 0) ?
+ let postprocess = s:_getCheckerVar('g', a:filetype, a:subchecker, 'remove_include_errors', 0) ?
\ ['filterForeignErrors'] : []
" process makeprg
@@ -87,29 +87,29 @@ endfunction " }}}2
" Private functions {{{1
" initialize c/cpp syntax checker handlers
-function! s:init() " {{{2
+function! s:_init() " {{{2
let s:handlers = []
let s:cflags = {}
- call s:regHandler('\m\', 'syntastic#c#checkPHP', [])
- call s:regHandler('\m\', 'syntastic#c#checkPython', [])
- call s:regHandler('\m\', 'syntastic#c#checkPHP', [])
+ call s:_regHandler('\m\', 'syntastic#c#checkPython', [])
+ call s:_regHandler('\m\ 0
" filter out dictionary functions
@@ -77,7 +77,7 @@ function! syntastic#log#debug(level, msg, ...) " {{{2
echomsg leader . a:msg
endif
- call s:logRedirect(0)
+ call s:_logRedirect(0)
endfunction " }}}2
function! syntastic#log#debugShowOptions(level, names) " {{{2
@@ -85,15 +85,15 @@ function! syntastic#log#debugShowOptions(level, names) " {{{2
return
endif
- let leader = s:logTimestamp()
- call s:logRedirect(1)
+ let leader = s:_logTimestamp()
+ call s:_logRedirect(1)
let vlist = copy(type(a:names) == type("") ? [a:names] : a:names)
if !empty(vlist)
call map(vlist, "'&' . v:val . ' = ' . strtrans(string(eval('&' . v:val)))")
echomsg leader . join(vlist, ', ')
endif
- call s:logRedirect(0)
+ call s:_logRedirect(0)
endfunction " }}}2
function! syntastic#log#debugShowVariables(level, names) " {{{2
@@ -101,18 +101,18 @@ function! syntastic#log#debugShowVariables(level, names) " {{{2
return
endif
- let leader = s:logTimestamp()
- call s:logRedirect(1)
+ let leader = s:_logTimestamp()
+ call s:_logRedirect(1)
let vlist = type(a:names) == type("") ? [a:names] : a:names
for name in vlist
- let msg = s:formatVariable(name)
+ let msg = s:_formatVariable(name)
if msg != ''
echomsg leader . msg
endif
endfor
- call s:logRedirect(0)
+ call s:_logRedirect(0)
endfunction " }}}2
function! syntastic#log#debugDump(level) " {{{2
@@ -127,19 +127,19 @@ endfunction " }}}2
" Private functions {{{1
-function! s:isDebugEnabled_smart(level) " {{{2
+function! s:_isDebugEnabled_smart(level) " {{{2
return and(g:syntastic_debug, a:level)
endfunction " }}}2
-function! s:isDebugEnabled_dumb(level) " {{{2
+function! s:_isDebugEnabled_dumb(level) " {{{2
" poor man's bit test for bit N, assuming a:level == 2**N
return (g:syntastic_debug / a:level) % 2
endfunction " }}}2
-let s:isDebugEnabled = function(exists('*and') ? 's:isDebugEnabled_smart' : 's:isDebugEnabled_dumb')
+let s:isDebugEnabled = function(exists('*and') ? 's:_isDebugEnabled_smart' : 's:_isDebugEnabled_dumb')
lockvar s:isDebugEnabled
-function! s:logRedirect(on) " {{{2
+function! s:_logRedirect(on) " {{{2
if exists("g:syntastic_debug_file")
if a:on
try
@@ -154,11 +154,11 @@ function! s:logRedirect(on) " {{{2
endif
endfunction " }}}2
-function! s:logTimestamp() " {{{2
+function! s:_logTimestamp() " {{{2
return 'syntastic: ' . split(reltimestr(reltime(g:syntastic_start)))[0] . ': '
endfunction " }}}2
-function! s:formatVariable(name) " {{{2
+function! s:_formatVariable(name) " {{{2
let vals = []
if exists('g:syntastic_' . a:name)
call add(vals, 'g:syntastic_' . a:name . ' = ' . strtrans(string(g:syntastic_{a:name})))
diff --git a/sources_non_forked/syntastic/autoload/syntastic/postprocess.vim b/sources_non_forked/syntastic/autoload/syntastic/postprocess.vim
index 65570d9823..80fd7cf4fb 100644
--- a/sources_non_forked/syntastic/autoload/syntastic/postprocess.vim
+++ b/sources_non_forked/syntastic/autoload/syntastic/postprocess.vim
@@ -46,6 +46,25 @@ function! syntastic#postprocess#filterForeignErrors(errors) " {{{2
return filter(copy(a:errors), 'get(v:val, "bufnr") == ' . bufnr(''))
endfunction " }}}2
+" make sure line numbers are not past end of buffers
+" XXX: this loads all referenced buffers in memory
+function! syntastic#postprocess#guards(errors) " {{{2
+ let buffers = syntastic#util#unique(map(filter(copy(a:errors), 'v:val["valid"]'), 'str2nr(v:val["bufnr"])'))
+
+ let guards = {}
+ for b in buffers
+ let guards[b] = len(getbufline(b, 1, '$'))
+ endfor
+
+ for e in a:errors
+ if e['valid'] && e['lnum'] > guards[e['bufnr']]
+ let e['lnum'] = guards[e['bufnr']]
+ endif
+ endfor
+
+ return a:errors
+endfunction " }}}2
+
" }}}1
let &cpo = s:save_cpo
diff --git a/sources_non_forked/syntastic/autoload/syntastic/util.vim b/sources_non_forked/syntastic/autoload/syntastic/util.vim
index 837a280f1a..51831b47fa 100644
--- a/sources_non_forked/syntastic/autoload/syntastic/util.vim
+++ b/sources_non_forked/syntastic/autoload/syntastic/util.vim
@@ -96,6 +96,16 @@ endfunction " }}}2
let s:width = function(exists('*strwidth') ? 'strwidth' : 'strlen')
lockvar s:width
+function! syntastic#util#screenWidth(str, tabstop) " {{{2
+ let chunks = split(a:str, "\t", 1)
+ let width = s:width(chunks[-1])
+ for c in chunks[:-2]
+ let cwidth = s:width(c)
+ let width += cwidth + a:tabstop - cwidth % a:tabstop
+ endfor
+ return width
+endfunction " }}}2
+
"print as much of a:msg as possible without "Press Enter" prompt appearing
function! syntastic#util#wideMsg(msg) " {{{2
let old_ruler = &ruler
@@ -215,7 +225,7 @@ function! syntastic#util#redraw(full) " {{{2
endfunction " }}}2
function! syntastic#util#dictFilter(errors, filter) " {{{2
- let rules = s:translateFilter(a:filter)
+ let rules = s:_translateFilter(a:filter)
" call syntastic#log#debug(g:SyntasticDebugFilters, "applying filter:", rules)
try
call filter(a:errors, rules)
@@ -225,13 +235,6 @@ function! syntastic#util#dictFilter(errors, filter) " {{{2
endtry
endfunction " }}}2
-function! syntastic#util#sortLoclist(errors) " {{{2
- for e in a:errors
- call s:setScreenColumn(e)
- endfor
- call sort(a:errors, 's:compareErrorItems')
-endfunction " }}}2
-
" Return a [high, low] list of integers, representing the time
" (hopefully high resolution) since program start
" TODO: This assumes reltime() returns a list of integers.
@@ -243,13 +246,13 @@ endfunction " }}}2
" Private functions {{{1
-function! s:translateFilter(filters) " {{{2
+function! s:_translateFilter(filters) " {{{2
let conditions = []
for k in keys(a:filters)
if type(a:filters[k]) == type([])
- call extend(conditions, map(copy(a:filters[k]), 's:translateElement(k, v:val)'))
+ call extend(conditions, map(copy(a:filters[k]), 's:_translateElement(k, v:val)'))
else
- call add(conditions, s:translateElement(k, a:filters[k]))
+ call add(conditions, s:_translateElement(k, a:filters[k]))
endif
endfor
@@ -259,7 +262,7 @@ function! s:translateFilter(filters) " {{{2
return len(conditions) == 1 ? conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ')
endfunction " }}}2
-function! s:translateElement(key, term) " {{{2
+function! s:_translateElement(key, term) " {{{2
if a:key ==? 'level'
let ret = 'v:val["type"] !=? ' . string(a:term[0])
elseif a:key ==? 'type'
@@ -275,49 +278,6 @@ function! s:translateElement(key, term) " {{{2
return ret
endfunction " }}}2
-function! s:screenWidth(str, tabstop) " {{{2
- let chunks = split(a:str, "\t", 1)
- let width = s:width(chunks[-1])
- for c in chunks[:-2]
- let cwidth = s:width(c)
- let width += cwidth + a:tabstop - cwidth % a:tabstop
- endfor
- return width
-endfunction " }}}2
-
-function! s:setScreenColumn(item) " {{{2
- if !has_key(a:item, 'scol')
- let col = get(a:item, 'col', 0)
- if col != 0 && a:item['vcol'] == 0
- let buf = str2nr(a:item['bufnr'])
- try
- let line = getbufline(buf, a:item['lnum'])[0]
- catch /\m^Vim\%((\a\+)\)\=:E684/
- let line = ''
- endtry
- let a:item['scol'] = s:screenWidth(strpart(line, 0, col), getbufvar(buf, '&tabstop'))
- else
- let a:item['scol'] = col
- endif
- endif
-endfunction " }}}2
-
-function! s:compareErrorItems(a, b) " {{{2
- if a:a['bufnr'] != a:b['bufnr']
- " group by file
- return a:a['bufnr'] - a:b['bufnr']
- elseif a:a['lnum'] != a:b['lnum']
- " sort by line
- return a:a['lnum'] - a:b['lnum']
- elseif a:a['type'] !=? a:b['type']
- " errors take precedence over warnings
- return a:a['type'] ==? 'E' ? -1 : 1
- else
- " sort by screen column
- return a:a['scol'] - a:b['scol']
- endif
-endfunction " }}}2
-
" }}}1
let &cpo = s:save_cpo
diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt
index daefafdd30..8f09e81873 100644
--- a/sources_non_forked/syntastic/doc/syntastic.txt
+++ b/sources_non_forked/syntastic/doc/syntastic.txt
@@ -67,7 +67,7 @@ Take a look at the wiki for a list of supported filetypes and checkers:
https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
Note: This doc only deals with using syntastic. To learn how to write syntax
-checker integrations, see the guide on the github wiki:
+checker integrations, see the guide on the GitHub wiki:
https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide
@@ -78,16 +78,17 @@ Syntastic comes preconfigured with a default list of enabled checkers per
filetype. This list is kept reasonably short to prevent slowing down Vim or
trying to use conflicting checkers.
-You can see the list checkers available for the current filetype with the
+You can see the list of checkers available for the current filetype with the
|:SyntasticInfo| command.
-If you want to override the configured list of checkers for a filetype then
-see |syntastic-checker-options| for details. You can also change the arguments
-passed to a specific checker as well.
+You probably want to override the configured list of checkers for the
+filetypes you use, and also change the arguments passed to specific checkers
+to suit your needs. See |syntastic-checker-options| for details.
-Use |:SyntasticCheck| to manually check right now. Use |:SyntasticToggleMode|
-to switch between active (checking on writing the buffer) and passive (manual)
-checking.
+Use |:SyntasticCheck| to manually check right now. Use |:Errors| to open the
+|location-list| window, and |:lclose| to close it. You can clear the error
+list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch
+between active (checking on writing the buffer) and passive (manual) checking.
==============================================================================
2. Functionality provided *syntastic-functionality*
@@ -155,13 +156,21 @@ Example: >
highlight SyntasticErrorLine guibg=#2f0000
<
------------------------------------------------------------------------------
-2.3. The error window *:Errors* *syntastic-error-window*
+2.3. The error window *syntastic-error-window*
-You can use the :Errors command to display the errors for the current buffer
+You can use the |:Errors| command to display the errors for the current buffer
in the |location-list|.
-Note that when you use :Errors, the current location list is overwritten with
-Syntastic's own location list.
+Note that when you use |:Errors|, the current location list is overwritten
+with Syntastic's own location list.
+
+By default syntastic doesn't fill the |location-list| with the errors found by
+the checkers, in order to reduce clashes with other plugins. Consequently, if
+you run |:lopen| or |:lwindow| rather than |:Errors| to open the error window you
+wouldn't see syntastic's list of errors. If you insist on using |:lopen| or
+|:lwindow| you should either run |:SyntasticSetLoclist| after running the checks,
+or set |syntastic_always_populate_loc_list| which tells syntastic to update the
+|location-list| automatically.
------------------------------------------------------------------------------
2.4. Error highlighting *syntastic-highlighting*
@@ -212,11 +221,14 @@ See also: |'syntastic___quiet_messages'|.
==============================================================================
3. Commands *syntastic-commands*
-:Errors *:SyntasticErrors*
+:Errors *:Errors*
When errors have been detected, use this command to pop up the |location-list|
and display the error messages.
+Please note that the |:Errors| command overwrites the current location list with
+syntastic's own location list.
+
:SyntasticToggleMode *:SyntasticToggleMode*
Toggles syntastic between active and passive mode. See |'syntastic_mode_map'|
@@ -239,7 +251,7 @@ the order specified. The rules of |syntastic_aggregate_errors| still apply.
Example: >
:SyntasticCheck flake8 pylint
<
-:SyntasticInfo *:SyntasticInfo*
+:SyntasticInfo *:SyntasticInfo*
The command takes an optional argument, and outputs information about the
checkers available for the filetype named by said argument, or for the current
@@ -303,9 +315,22 @@ messages grouped by checker output, set this variable to 0. >
<
*'syntastic_echo_current_error'*
Default: 1
-If enabled, syntastic will echo the error associated with the current line to
-the command window. If multiple errors are found, the first will be used. >
+If enabled, syntastic will echo current error to the command window. If
+multiple errors are found on the same line, |syntastic_cursor_columns| is used
+to decide which one is shown. >
let g:syntastic_echo_current_error = 1
+<
+ *'syntastic_cursor_columns'*
+Default: 1
+This option controls which errors are echoed to the command window if
+|syntastic_echo_current_error| is set and multiple errors are found on the same
+line. When the option is enabled, the first error corresponding to the current
+column is show. Otherwise, the first error on the current line is echoed,
+regardless of the cursor position on the current line.
+
+When dealing with very large lists of errors, disabling this option can speed
+up navigation significantly: >
+ let g:syntastic_cursor_column = 0
<
*'syntastic_enable_signs'*
Default: 1
@@ -407,7 +432,6 @@ default behaviour of running both checkers against the input file: >
Default: { "mode": "active",
"active_filetypes": [],
"passive_filetypes": [] }
-
Use this option to fine tune when automatic syntax checking is done (or not
done).
@@ -436,7 +460,6 @@ active and passive modes.
*'syntastic_quiet_messages'*
Default: {}
-
Use this option to filter out some of the messages produced by checkers. The
option should be set to something like: >
let g:syntastic_quiet_messages = { "level": "warnings",
@@ -505,6 +528,12 @@ statusline: >
<
If the buffer had 2 warnings, starting on line 5 then this would appear: >
[Warn: 5 #2]
+<
+ *'b:syntastic_skip_checks'*
+Default: unset
+Only the local form |'b:syntastic_skip_checks'| is used. When set to a true
+value, no checks are run against the corresponding buffer. Example: >
+ let b:syntastic_skip_checks = 1
<
*'syntastic_full_redraws'*
Default: 0 in GUI Vim and MacVim, 1 otherwise
@@ -513,6 +542,13 @@ Changing it can in principle make screen redraws smoother, but it can also
cause screen to flicker, or cause ghost characters. Leaving it to the default
should be safe.
+ *'syntastic_exit_checks'*
+Default: 0 when running under "cmd.exe" on Windows, 1 otherwise
+Syntastic attempts to catch abnormal termination conditions from checkers by
+looking at their exit codes. The "cmd.exe" shell on Windows make these checks
+meaningless, by returning 1 to Vim when the checkers exit with non-zero codes.
+The above variable can be used to disable exit code checks in syntastic.
+
*'syntastic_debug'*
Default: 0
Set this to the sum of one or more of the following flags to enable
@@ -580,11 +616,19 @@ Use |:SyntasticInfo| to see which checkers are available for a given filetype.
5.2 Choosing the executable *syntastic-config-exec*
*'syntastic___exec'*
-The executable used by a checker is normally defined automatically, when the
-checkers is registered. You can however override it by setting the variable
+The executable run by a checker is normally defined automatically, when the
+checker is registered. You can however override it, by setting the variable
'g:syntastic___exec': >
let g:syntastic_ruby_mri_exec = '~/bin/ruby2'
<
+This variable has a local version, 'b:syntastic___exec',
+which takes precedence over the global one in the corresponding buffer.
+
+ *'b:syntastic__exec'*
+And there is also a local variable named 'b:syntastic__exec', which
+takes precedence over both 'b:syntastic___exec' and
+'g:syntastic___exec' in the buffers where it is defined.
+
------------------------------------------------------------------------------
5.3 Configuring specific checkers *syntastic-config-makeprg*
@@ -609,21 +653,20 @@ have local versions 'b:syntastic___',
which take precedence over the global ones in the corresponding buffers.
If one of these variables has a non-empty default and you want it to be empty,
-you can set it to a space, e.g.: >
- let g:syntastic_javascript_jslint_args = " "
+you can set it to an empty string, e.g.: >
+ let g:syntastic_javascript_jslint_args = ""
<
-(setting it to an empty string doesn't work, for implementation reasons).
-
*'syntastic___exe'*
The 'exe' is normally the same as the 'exec' attribute described above, in
which case it may be omitted. However, you can use it to add environment
-variables or additional parameters, e.g. to tell the mri checker to use KANJI
-encoding you could do something like this: >
- let g:syntastic_ruby_mri_exe = 'RUBYOPT="-Ke" ruby'
+variables, or to change the way the checker is run. For example this setup
+allows you to run PC-Lint under Wine emulation on Linux: >
+ let g:syntastic_c_pc_lint_exec = "wine"
+ let g:syntastic_c_pc_lint_exe = "wine c:/path/to/lint-nt.exe"
<
To override the args and the tail: >
- let g:syntastic_ruby_mri_args = "--my --args --here"
- let g:syntastic_ruby_mri_tail = "> /tmp/my-output-file-biatch"
+ let g:syntastic_c_pc_lint_args = "-w5 -Iz:/usr/include/linux"
+ let g:syntastic_c_pc_lint_tail = "2>/dev/null"
<
The general form of the override options is: >
syntastic___
@@ -740,9 +783,9 @@ https://github.com/jmcantrell/vim-virtualenv). This is a limitation of
7. About *syntastic-about*
The core maintainers of syntastic are:
- Martin Grenfell (github: scrooloose)
- Gregor Uhlenheuer (github: kongo2002)
- LCD 047 (github: lcd047)
+ Martin Grenfell (GitHub: scrooloose)
+ Gregor Uhlenheuer (GitHub: kongo2002)
+ LCD 047 (GitHub: lcd047)
Find the latest version of syntastic at:
diff --git a/sources_non_forked/syntastic/plugin/syntastic.vim b/sources_non_forked/syntastic/plugin/syntastic.vim
index 43a5ace114..15f999f4ea 100644
--- a/sources_non_forked/syntastic/plugin/syntastic.vim
+++ b/sources_non_forked/syntastic/plugin/syntastic.vim
@@ -19,7 +19,7 @@ if has('reltime')
lockvar! g:syntastic_start
endif
-let g:syntastic_version = '3.4.0-117'
+let g:syntastic_version = '3.5.0-37'
lockvar g:syntastic_version
" Sanity checks {{{1
@@ -56,12 +56,14 @@ let g:syntastic_defaults = {
\ 'bash_hack': 1,
\ 'check_on_open': 0,
\ 'check_on_wq': 1,
+ \ 'cursor_columns': 1,
\ 'debug': 0,
\ 'echo_current_error': 1,
\ 'enable_balloons': 1,
\ 'enable_highlighting': 1,
\ 'enable_signs': 1,
\ 'error_symbol': '>>',
+ \ 'exit_checks': !(s:running_windows && &shell =~? '\m\= 0 && a:line == a:old_line && a:idx >= 0
+ if len(a:messages) <= 1
+ return 1
+ endif
+
+ if a:messages[a:idx].scol <= a:column || a:idx == 0
+ if a:idx == len(a:messages) - 1 || a:column < a:messages[a:idx + 1].scol
+ return 1
+ else
+ return 0
+ endif
+ else
+ return 0
+ endif
else
- echo
+ return 0
endif
endfunction " }}}2
+function! s:_findIndex(column, messages) " {{{2
+ let max = len(a:messages) - 1
+ if max == 0
+ return 0
+ endif
+ let min = 0
+
+ " modified binary search: assign index 0 to columns to the left of the first error
+ while min < max - 1
+ let mid = (min + max) / 2
+ if a:column < a:messages[mid].scol
+ let max = mid
+ else
+ let min = mid
+ endif
+ endwhile
+
+ return a:column < a:messages[max].scol ? min : max
+endfunction " }}}2
+
" }}}1
" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/sources_non_forked/syntastic/plugin/syntastic/loclist.vim b/sources_non_forked/syntastic/plugin/syntastic/loclist.vim
index e7c05bf704..19a6198463 100644
--- a/sources_non_forked/syntastic/plugin/syntastic/loclist.vim
+++ b/sources_non_forked/syntastic/plugin/syntastic/loclist.vim
@@ -21,6 +21,8 @@ function! g:SyntasticLoclist.New(rawLoclist) " {{{2
let newObj._rawLoclist = llist
let newObj._name = ''
let newObj._owner = bufnr('')
+ let newObj._sorted = 0
+ let newObj._columns = g:syntastic_cursor_columns
return newObj
endfunction " }}}2
@@ -39,7 +41,15 @@ function! g:SyntasticLoclist.extend(other) " {{{2
endfunction " }}}2
function! g:SyntasticLoclist.sort() " {{{2
- call syntastic#util#sortLoclist(self._rawLoclist)
+ if !self._sorted
+ for e in self._rawLoclist
+ call s:_setScreenColumn(e)
+ endfor
+
+ call sort(self._rawLoclist, self._columns ? 's:_compareErrorItemsByColumns' : 's:_compareErrorItemsByLines')
+
+ let self._sorted = 1
+ endif
endfunction " }}}2
function! g:SyntasticLoclist.isEmpty() " {{{2
@@ -66,6 +76,10 @@ function! g:SyntasticLoclist.getBuffers() " {{{2
return syntastic#util#unique(map(copy(self._rawLoclist), 'str2nr(v:val["bufnr"])') + [self._owner])
endfunction " }}}2
+function! g:SyntasticLoclist.getCursorColumns() " {{{2
+ return self._columns
+endfunction " }}}2
+
function! g:SyntasticLoclist.getStatuslineFlag() " {{{2
if !exists("self._stl_format")
let self._stl_format = ''
@@ -183,8 +197,8 @@ endfunction " }}}2
function! g:SyntasticLoclist.messages(buf) " {{{2
if !exists("self._cachedMessages")
let self._cachedMessages = {}
- let errors = self.errors() + self.warnings()
+ let errors = self.errors() + self.warnings()
for e in errors
let b = e['bufnr']
let l = e['lnum']
@@ -194,9 +208,32 @@ function! g:SyntasticLoclist.messages(buf) " {{{2
endif
if !has_key(self._cachedMessages[b], l)
- let self._cachedMessages[b][l] = e['text']
+ let self._cachedMessages[b][l] = [e]
+ elseif self._columns
+ call add(self._cachedMessages[b][l], e)
endif
endfor
+
+ if self._columns
+ if !self._sorted
+ for b in keys(self._cachedMessages)
+ for l in keys(self._cachedMessages[b])
+ if len(self._cachedMessages[b][l]) > 1
+ for e in self._cachedMessages[b][l]
+ call s:_setScreenColumn(e)
+ endfor
+ call sort(self._cachedMessages[b][l], 's:_compareErrorItemsByColumns')
+ endif
+ endfor
+ endfor
+ endif
+
+ for b in keys(self._cachedMessages)
+ for l in keys(self._cachedMessages[b])
+ call s:_removeShadowedItems(self._cachedMessages[b][l])
+ endfor
+ endfor
+ endif
endif
return get(self._cachedMessages, a:buf, {})
@@ -210,7 +247,7 @@ endfunction " }}}2
"
"Note that all comparisons are done with ==?
function! g:SyntasticLoclist.filter(filters) " {{{2
- let conditions = values(map(copy(a:filters), 's:translate(v:key, v:val)'))
+ let conditions = values(map(copy(a:filters), 's:_translate(v:key, v:val)'))
let filter = len(conditions) == 1 ?
\ conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ')
return filter(copy(self._rawLoclist), filter)
@@ -271,10 +308,93 @@ endfunction " }}}2
" Private functions {{{1
-function! s:translate(key, val) " {{{2
+function! s:_translate(key, val) " {{{2
return 'get(v:val, ' . string(a:key) . ', "") ==? ' . string(a:val)
endfunction " }}}2
+function! s:_setScreenColumn(item) " {{{2
+ if !has_key(a:item, 'scol')
+ let col = get(a:item, 'col', 0)
+ if col != 0 && get(a:item, 'vcol', 0) == 0
+ let buf = str2nr(a:item['bufnr'])
+ try
+ let line = getbufline(buf, a:item['lnum'])[0]
+ catch /\m^Vim\%((\a\+)\)\=:E684/
+ let line = ''
+ endtry
+ let a:item['scol'] = syntastic#util#screenWidth(strpart(line, 0, col), getbufvar(buf, '&tabstop'))
+ else
+ let a:item['scol'] = col
+ endif
+ endif
+endfunction " }}}2
+
+function! s:_removeShadowedItems(errors) " {{{2
+ " keep only the first message at a given column
+ let i = 0
+ while i < len(a:errors) - 1
+ let j = i + 1
+ let dupes = 0
+ while j < len(a:errors) && a:errors[j].scol == a:errors[i].scol
+ let dupes = 1
+ let j += 1
+ endwhile
+ if dupes
+ call remove(a:errors, i + 1, j - 1)
+ endif
+ let i += 1
+ endwhile
+
+ " merge messages with the same text
+ let i = 0
+ while i < len(a:errors) - 1
+ let j = i + 1
+ let dupes = 0
+ while j < len(a:errors) && a:errors[j].text == a:errors[i].text
+ let dupes = 1
+ let j += 1
+ endwhile
+ if dupes
+ call remove(a:errors, i + 1, j - 1)
+ endif
+ let i += 1
+ endwhile
+endfunction " }}}2
+
+function! s:_compareErrorItemsByColumns(a, b) " {{{2
+ if a:a['bufnr'] != a:b['bufnr']
+ " group by file
+ return a:a['bufnr'] - a:b['bufnr']
+ elseif a:a['lnum'] != a:b['lnum']
+ " sort by line
+ return a:a['lnum'] - a:b['lnum']
+ elseif a:a['scol'] != a:b['scol']
+ " sort by screen column
+ return a:a['scol'] - a:b['scol']
+ elseif a:a['type'] !=? a:b['type']
+ " errors take precedence over warnings
+ return a:a['type'] ==? 'E' ? -1 : 1
+ else
+ return 0
+ endif
+endfunction " }}}2
+
+function! s:_compareErrorItemsByLines(a, b) " {{{2
+ if a:a['bufnr'] != a:b['bufnr']
+ " group by file
+ return a:a['bufnr'] - a:b['bufnr']
+ elseif a:a['lnum'] != a:b['lnum']
+ " sort by line
+ return a:a['lnum'] - a:b['lnum']
+ elseif a:a['type'] !=? a:b['type']
+ " errors take precedence over warnings
+ return a:a['type'] ==? 'E' ? -1 : 1
+ else
+ " sort by screen column
+ return a:a['scol'] - a:b['scol']
+ endif
+endfunction " }}}2
+
" }}}1
" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/sources_non_forked/syntastic/plugin/syntastic/registry.vim b/sources_non_forked/syntastic/plugin/syntastic/registry.vim
index 47d83106c6..6a7aab3b6b 100644
--- a/sources_non_forked/syntastic/plugin/syntastic/registry.vim
+++ b/sources_non_forked/syntastic/plugin/syntastic/registry.vim
@@ -72,10 +72,11 @@ let s:defaultCheckers = {
\ 'scss': ['sass', 'scss_lint'],
\ 'sh': ['sh', 'shellcheck'],
\ 'slim': ['slimrb'],
+ \ 'spec': ['rpmlint'],
\ 'tcl': ['nagelfar'],
\ 'tex': ['lacheck', 'chktex'],
\ 'texinfo': ['makeinfo'],
- \ 'text': ['atdtool'],
+ \ 'text': [],
\ 'twig': ['twiglint'],
\ 'typescript': ['tsc'],
\ 'vala': ['valac'],
@@ -96,7 +97,8 @@ lockvar! s:defaultCheckers
let s:defaultFiletypeMap = {
\ 'gentoo-metadata': 'xml',
\ 'lhaskell': 'haskell',
- \ 'litcoffee': 'coffee'
+ \ 'litcoffee': 'coffee',
+ \ 'mail': 'text'
\ }
lockvar! s:defaultFiletypeMap
@@ -130,7 +132,7 @@ endfunction " }}}2
" not checked for availability (that is, the corresponding IsAvailable() are
" not run).
function! g:SyntasticRegistry.getCheckers(ftalias, hints_list) " {{{2
- let ft = s:normaliseFiletype(a:ftalias)
+ let ft = s:_normaliseFiletype(a:ftalias)
call self._loadCheckersFor(ft)
let checkers_map = self._checkerMap[ft]
@@ -173,13 +175,13 @@ function! g:SyntasticRegistry.getKnownFiletypes() " {{{2
endfunction " }}}2
function! g:SyntasticRegistry.getNamesOfAvailableCheckers(ftalias) " {{{2
- let ft = s:normaliseFiletype(a:ftalias)
+ let ft = s:_normaliseFiletype(a:ftalias)
call self._loadCheckersFor(ft)
return keys(filter( copy(self._checkerMap[ft]), 'v:val.isAvailable()' ))
endfunction " }}}2
function! g:SyntasticRegistry.echoInfoFor(ftalias_list) " {{{2
- let ft_list = syntastic#util#unique(map( copy(a:ftalias_list), 's:normaliseFiletype(v:val)' ))
+ let ft_list = syntastic#util#unique(map( copy(a:ftalias_list), 's:_normaliseFiletype(v:val)' ))
if len(ft_list) != 1
let available = []
let active = []
@@ -253,7 +255,7 @@ endfunction " }}}2
"resolve filetype aliases, and replace - with _ otherwise we cant name
"syntax checker functions legally for filetypes like "gentoo-metadata"
-function! s:normaliseFiletype(ftalias) " {{{2
+function! s:_normaliseFiletype(ftalias) " {{{2
let ft = get(s:defaultFiletypeMap, a:ftalias, a:ftalias)
let ft = get(g:syntastic_filetype_map, ft, ft)
let ft = substitute(ft, '\m-', '_', 'g')
diff --git a/sources_non_forked/syntastic/syntax_checkers/arduino/avrgcc.vim b/sources_non_forked/syntastic/syntax_checkers/arduino/avrgcc.vim
index 2a1b867cb0..98647638df 100644
--- a/sources_non_forked/syntastic/syntax_checkers/arduino/avrgcc.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/arduino/avrgcc.vim
@@ -18,7 +18,7 @@ let g:loaded_syntastic_arduino_avrgcc_checker = 1
runtime! syntax_checkers/c/*.vim
call g:SyntasticRegistry.CreateAndRegisterChecker({
- \ 'filetype': 'c',
+ \ 'filetype': 'arduino',
\ 'name': 'avrgcc',
\ 'exec': 'avr-gcc',
\ 'redirect': 'c/avrgcc'})
diff --git a/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim b/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim
new file mode 100644
index 0000000000..16fbd59b82
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim
@@ -0,0 +1,65 @@
+"============================================================================
+"File: clang_check.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+if exists("g:loaded_syntastic_c_clang_check_checker")
+ finish
+endif
+let g:loaded_syntastic_c_clang_check_checker = 1
+
+if !exists('g:syntastic_clang_check_config_file')
+ let g:syntastic_clang_check_config_file = '.syntastic_clang_check_config'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_clang_check_IsAvailable() dict
+ return executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_c_clang_check_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args':
+ \ '-- ' .
+ \ syntastic#c#ReadConfig(g:syntastic_clang_check_config_file) . ' ' .
+ \ '-fshow-column ' .
+ \ '-fshow-source-location ' .
+ \ '-fno-caret-diagnostics ' .
+ \ '-fno-color-diagnostics ' .
+ \ '-fdiagnostics-format=clang' })
+
+ let errorformat =
+ \ '%E%f:%l:%c: fatal error: %m,' .
+ \ '%E%f:%l:%c: error: %m,' .
+ \ '%W%f:%l:%c: warning: %m,' .
+ \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' .
+ \ '%E%m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')},
+ \ 'returns': [0, 1] })
+
+ call self.setWantSort(1)
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'clang_check',
+ \ 'exec': 'clang-check'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim b/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim
new file mode 100644
index 0000000000..96d2e0e63d
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim
@@ -0,0 +1,65 @@
+"============================================================================
+"File: clang_tidy.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+if exists("g:loaded_syntastic_c_clang_tidy_checker")
+ finish
+endif
+let g:loaded_syntastic_c_clang_tidy_checker = 1
+
+if !exists('g:syntastic_clang_tidy_config_file')
+ let g:syntastic_clang_tidy_config_file = '.syntastic_clang_tidy_config'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_clang_tidy_IsAvailable() dict
+ return executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_c_clang_tidy_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args':
+ \ '-- ' .
+ \ syntastic#c#ReadConfig(g:syntastic_clang_tidy_config_file) . ' ' .
+ \ '-fshow-column ' .
+ \ '-fshow-source-location ' .
+ \ '-fno-caret-diagnostics ' .
+ \ '-fno-color-diagnostics ' .
+ \ '-fdiagnostics-format=clang' })
+
+ let errorformat =
+ \ '%E%f:%l:%c: fatal error: %m,' .
+ \ '%E%f:%l:%c: error: %m,' .
+ \ '%W%f:%l:%c: warning: %m,' .
+ \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' .
+ \ '%E%m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')},
+ \ 'returns': [0, 1] })
+
+ call self.setWantSort(1)
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'clang_tidy',
+ \ 'exec': 'clang-tidy'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/c/oclint.vim b/sources_non_forked/syntastic/syntax_checkers/c/oclint.vim
index ca717c4866..cb896914af 100644
--- a/sources_non_forked/syntastic/syntax_checkers/c/oclint.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/c/oclint.vim
@@ -30,15 +30,13 @@ set cpo&vim
function! SyntaxCheckers_c_oclint_GetLocList() dict
let makeprg = self.makeprgBuild({
- \ 'post_args_before': '-- -c ' . syntastic#c#ReadConfig(g:syntastic_oclint_config_file) })
+ \ 'post_args': '-- -c ' . syntastic#c#ReadConfig(g:syntastic_oclint_config_file) })
let errorformat =
- \ '%E%f:%l:%c: %m P1 ,' .
- \ '%E%f:%l:%c: %m P2 ,' .
- \ '%W%f:%l:%c: %m P3 ,' .
\ '%E%f:%l:%c: fatal error: %m,' .
\ '%E%f:%l:%c: error: %m,' .
\ '%W%f:%l:%c: warning: %m,' .
+ \ '%E%f:%l:%c: %m,' .
\ '%-G%.%#'
let loclist = SyntasticMake({
@@ -48,6 +46,15 @@ function! SyntaxCheckers_c_oclint_GetLocList() dict
\ 'postprocess': ['compressWhitespace'],
\ 'returns': [0, 3, 5] })
+ for e in loclist
+ if e['text'] =~# '\v P3( |$)'
+ let e['type'] = 'W'
+ endif
+
+ let e['text'] = substitute(e['text'], '\m\C P[1-3]$', '', '')
+ let e['text'] = substitute(e['text'], '\m\C P[1-3] ', ': ', '')
+ endfor
+
call self.setWantSort(1)
return loclist
diff --git a/sources_non_forked/syntastic/syntax_checkers/c/pc_lint.vim b/sources_non_forked/syntastic/syntax_checkers/c/pc_lint.vim
new file mode 100644
index 0000000000..6805029837
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/c/pc_lint.vim
@@ -0,0 +1,65 @@
+"============================================================================
+"File: pc_lint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Steve Bragg
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_c_pc_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_c_pc_lint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+if !exists('g:syntastic_pc_lint_config_file')
+ let g:syntastic_pc_lint_config_file = 'options.lnt'
+endif
+
+function! SyntaxCheckers_c_pc_lint_GetLocList() dict
+ let config = findfile(g:syntastic_pc_lint_config_file, '.;')
+
+ " -hFs1 - show filename, add space after messages, try to make message 1 line
+ " -width(0,0) - make sure there are no line breaks
+ " -t - set tab size
+ " -v - turn off verbosity
+ let makeprg = self.makeprgBuild({
+ \ 'args': (filereadable(config) ? syntastic#util#shescape(fnamemodify(config, ':p')) : ''),
+ \ 'args_after': ['-hFs1', '-width(0,0)', '-t' . &tabstop, '-format=%f:%l:%C:%t:%n:%m'] })
+
+ let errorformat =
+ \ '%E%f:%l:%v:Error:%n:%m,' .
+ \ '%W%f:%l:%v:Warning:%n:%m,' .
+ \ '%I%f:%l:%v:Info:%n:%m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['cygwinRemoveCR'] })
+
+ for e in loclist
+ if e['type'] ==? 'I'
+ let e['type'] = 'W'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'pc_lint',
+ \ 'exec': 'lint-nt'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim
new file mode 100644
index 0000000000..3eb7b809df
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: clang_check.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+if exists("g:loaded_syntastic_cpp_clang_check_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_clang_check_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'clang_check',
+ \ 'exec': 'clang-check',
+ \ 'redirect': 'c/clang_check'})
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim
new file mode 100644
index 0000000000..e426666484
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: clang_tidy.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+if exists("g:loaded_syntastic_cpp_clang_tidy_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_clang_tidy_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'clang_tidy',
+ \ 'exec': 'clang-tidy',
+ \ 'redirect': 'c/clang_tidy'})
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/cpp/pc_lint.vim b/sources_non_forked/syntastic/syntax_checkers/cpp/pc_lint.vim
new file mode 100644
index 0000000000..95feab5e20
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/cpp/pc_lint.vim
@@ -0,0 +1,26 @@
+"============================================================================
+"File: pc_lint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Steve Bragg
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_cpp_pc_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_pc_lint_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'pc_lint',
+ \ 'exec': 'lint-nt',
+ \ 'redirect': 'c/pc_lint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/erlang/erlang_check_file.erl b/sources_non_forked/syntastic/syntax_checkers/erlang/erlang_check_file.erl
index bd94870bf6..367c110edf 100644
--- a/sources_non_forked/syntastic/syntax_checkers/erlang/erlang_check_file.erl
+++ b/sources_non_forked/syntastic/syntax_checkers/erlang/erlang_check_file.erl
@@ -32,7 +32,7 @@ main([FileName, "-rebar", Path, LibDirs]) ->
%io:format("~p~n", [LibDirs1]),
compile(FileName, LibDirs1);
-main([FileName, LibDirs]) ->
+main([FileName | LibDirs]) ->
compile(FileName, LibDirs).
compile(FileName, LibDirs) ->
@@ -45,7 +45,12 @@ compile(FileName, LibDirs) ->
warn_export_vars,
strong_validation,
report] ++
- [{i, filename:join(Root, I)} || I <- LibDirs]).
+ [{i, filename:join(Root, I)} || I <- LibDirs] ++
+ case lists:member("deps/pmod_transform/include", LibDirs) of
+ true -> [{parse_transform, pmod_pt}];
+ _ -> []
+ end
+ ).
get_root(Dir) ->
Path = filename:split(filename:absname(Dir)),
diff --git a/sources_non_forked/syntastic/syntax_checkers/eruby/ruby.vim b/sources_non_forked/syntastic/syntax_checkers/eruby/ruby.vim
index ea6b2f05d1..3dbc3a5ebf 100644
--- a/sources_non_forked/syntastic/syntax_checkers/eruby/ruby.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/eruby/ruby.vim
@@ -42,9 +42,16 @@ function! SyntaxCheckers_eruby_ruby_GetLocList() dict
\ syntastic#util#shescape('puts ERB.new(File.read(' .
\ fname . encoding_spec .
\ ').gsub(''<%='',''<%''), nil, ''-'').src') .
- \ ' | ' . self.getExecEscaped() . ' -c'
+ \ ' | ' . self.getExecEscaped() . ' -w -c'
- let errorformat =
+ let errorformat = '%-G%\m%.%#warning: %\%%(possibly %\)%\?useless use of a literal in void context,'
+
+ " filter out lines starting with ...
+ " long lines are truncated and wrapped in ... %p then returns the wrong
+ " column offset
+ let errorformat .= '%-G%\%.%\%.%\%.%.%#,'
+
+ let errorformat .=
\ '%-GSyntax OK,'.
\ '%E-:%l: syntax error\, %m,%Z%p^,'.
\ '%W-:%l: warning: %m,'.
diff --git a/sources_non_forked/syntastic/syntax_checkers/handlebars/handlebars.vim b/sources_non_forked/syntastic/syntax_checkers/handlebars/handlebars.vim
index 93c298f642..adf4b6114a 100644
--- a/sources_non_forked/syntastic/syntax_checkers/handlebars/handlebars.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/handlebars/handlebars.vim
@@ -29,6 +29,7 @@ function! SyntaxCheckers_handlebars_handlebars_GetLocList() dict
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'],
\ 'defaults': {'bufnr': bufnr("")} })
endfunction
diff --git a/sources_non_forked/syntastic/syntax_checkers/java/checkstyle.vim b/sources_non_forked/syntastic/syntax_checkers/java/checkstyle.vim
index 387c2c9f9f..75431610dd 100644
--- a/sources_non_forked/syntastic/syntax_checkers/java/checkstyle.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/java/checkstyle.vim
@@ -27,19 +27,27 @@ endif
let s:save_cpo = &cpo
set cpo&vim
+function! SyntaxCheckers_java_checkstyle_IsAvailable() dict
+ return
+ \ executable(self.getExec()) &&
+ \ filereadable(expand(g:syntastic_java_checkstyle_classpath)) &&
+ \ filereadable(expand(g:syntastic_java_checkstyle_conf_file))
+endfunction
+
function! SyntaxCheckers_java_checkstyle_GetLocList() dict
- let fname = syntastic#util#shescape( expand('%:p:h') . '/' . expand('%:t') )
+ let fname = syntastic#util#shescape( expand('%:p:h') . syntastic#util#Slash() . expand('%:t') )
if has('win32unix')
let fname = substitute(system('cygpath -m ' . fname), '\m\%x00', '', 'g')
endif
let makeprg = self.makeprgBuild({
- \ 'args_after': '-cp ' . g:syntastic_java_checkstyle_classpath .
- \ ' com.puppycrawl.tools.checkstyle.Main -c ' .
- \ syntastic#util#shexpand(g:syntastic_java_checkstyle_conf_file) .
- \ ' -f xml',
+ \ 'args_after': [
+ \ '-cp', expand(g:syntastic_java_checkstyle_classpath),
+ \ 'com.puppycrawl.tools.checkstyle.Main',
+ \ '-c', expand(g:syntastic_java_checkstyle_conf_file),
+ \ '-f', 'xml'],
\ 'fname': fname })
let errorformat = '%f:%t:%l:%c:%m'
diff --git a/sources_non_forked/syntastic/syntax_checkers/javascript/eslint.vim b/sources_non_forked/syntastic/syntax_checkers/javascript/eslint.vim
index 96919c8fd0..f23eb73bee 100644
--- a/sources_non_forked/syntastic/syntax_checkers/javascript/eslint.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/javascript/eslint.vim
@@ -35,7 +35,8 @@ function! SyntaxCheckers_javascript_eslint_GetLocList() dict
let loclist = SyntasticMake({
\ 'makeprg': makeprg,
- \ 'errorformat': errorformat })
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'] })
for e in loclist
let e['col'] += 1
diff --git a/sources_non_forked/syntastic/syntax_checkers/less/lessc.vim b/sources_non_forked/syntastic/syntax_checkers/less/lessc.vim
index 9b5efa96ae..ce653f5126 100644
--- a/sources_non_forked/syntastic/syntax_checkers/less/lessc.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/less/lessc.vim
@@ -58,6 +58,7 @@ function! SyntaxCheckers_less_lessc_GetLocList() dict
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'],
\ 'defaults': {'bufnr': bufnr(""), 'text': "Syntax error"} })
endfunction
diff --git a/sources_non_forked/syntastic/syntax_checkers/ocaml/camlp4o.vim b/sources_non_forked/syntastic/syntax_checkers/ocaml/camlp4o.vim
index d9f5700109..5f7a0ee7c9 100644
--- a/sources_non_forked/syntastic/syntax_checkers/ocaml/camlp4o.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/ocaml/camlp4o.vim
@@ -71,7 +71,7 @@ if !exists('g:syntastic_ocaml_use_ocamlc') || !executable('ocamlc')
endif
if !exists('g:syntastic_ocaml_use_janestreet_core')
- let g:syntastic_ocaml_use_ocamlc = 0
+ let g:syntastic_ocaml_use_janestreet_core = 0
endif
if !exists('g:syntastic_ocaml_use_ocamlbuild') || !executable("ocamlbuild")
diff --git a/sources_non_forked/syntastic/syntax_checkers/php/php.vim b/sources_non_forked/syntastic/syntax_checkers/php/php.vim
index 23c1db9e6d..558dc0acdc 100644
--- a/sources_non_forked/syntastic/syntax_checkers/php/php.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/php/php.vim
@@ -38,7 +38,8 @@ function! SyntaxCheckers_php_php_GetLocList() dict
return SyntasticMake({
\ 'makeprg': makeprg,
- \ 'errorformat': errorformat })
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
diff --git a/sources_non_forked/syntastic/syntax_checkers/php/phplint.vim b/sources_non_forked/syntastic/syntax_checkers/php/phplint.vim
new file mode 100644
index 0000000000..d857d9e219
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/php/phplint.vim
@@ -0,0 +1,91 @@
+"============================================================================
+"File: phplint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_php_phplint_checker")
+ finish
+endif
+let g:loaded_syntastic_php_phplint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_php_phplint_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\m\(class\|function\|method\) \zs\S\+\ze was declared as')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\maccess forbidden to \(private\|protected\) \(class\|constant\|method\|variable\|\(private\|protected\) property\) \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\musing deprecated \(class\|constant\|method\|property\|variable\) \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_php_phplint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after':
+ \ '--print-file-name ' .
+ \ '--print-line-numbers ' .
+ \ '--print-column-number ' .
+ \ '--print-errors ' .
+ \ '--print-warnings ' .
+ \ '--no-print-notices ' .
+ \ '--no-print-context ' .
+ \ '--no-print-source ' .
+ \ '--tab-size ' . &tabstop })
+
+ let errorformat =
+ \ '%E%f:%l:%v: %tRROR: %m,' .
+ \ '%W%f:%l:%v: %tarning: %m,' .
+ \ '%+C%\t%.%#,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['compressWhitespace'],
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ let e['text'] = substitute(e['text'], '\m \(Hint\|Examples\):.*', '', '')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'php',
+ \ 'name': 'phplint',
+ \ 'exec': 'phpl' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/puppet/puppet.vim b/sources_non_forked/syntastic/syntax_checkers/puppet/puppet.vim
index 5777993d7d..38e896cd1a 100644
--- a/sources_non_forked/syntastic/syntax_checkers/puppet/puppet.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/puppet/puppet.vim
@@ -32,8 +32,8 @@ function! SyntaxCheckers_puppet_puppet_GetLocList() dict
let errorformat =
\ '%-Gerr: Try ''puppet help parser validate'' for usage,' .
\ '%-GError: Try ''puppet help parser validate'' for usage,' .
- \ '%Eerr: Could not parse for environment %*[a-z]: %m at %f:%l,' .
- \ '%EError: Could not parse for environment %*[a-z]: %m at %f:%l'
+ \ '%A%t%*[a-zA-Z]: %m at %f:%l:%c,' .
+ \ '%A%t%*[a-zA-Z]: %m at %f:%l'
return SyntasticMake({
\ 'makeprg': makeprg,
diff --git a/sources_non_forked/syntastic/syntax_checkers/python/frosted.vim b/sources_non_forked/syntastic/syntax_checkers/python/frosted.vim
index e1284e4443..05a0708068 100644
--- a/sources_non_forked/syntastic/syntax_checkers/python/frosted.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/python/frosted.vim
@@ -42,7 +42,7 @@ function! SyntaxCheckers_python_frosted_GetLocList() dict
if len(parts) >= 4
let e["type"] = parts[1][0]
let e["text"] = parts[3] . ' [' . parts[1] . ']'
- let e["hl"] = '\V' . escape(parts[2], '\')
+ let e["hl"] = '\V\<' . escape(parts[2], '\') . '\>'
elseif e["text"] =~? '\v^I\d+:'
let e["valid"] = 0
else
diff --git a/sources_non_forked/syntastic/syntax_checkers/python/pylint.vim b/sources_non_forked/syntastic/syntax_checkers/python/pylint.vim
index 88dff4229d..d1373439ca 100644
--- a/sources_non_forked/syntastic/syntax_checkers/python/pylint.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/python/pylint.vim
@@ -69,8 +69,10 @@ function! s:PylintNew(exe)
" On Gentoo Linux it's "pylint-python2.7 0.28.0".
" On NixOS, that would be ".pylint-wrapped 0.26.0".
" On Arch Linux it's "pylint2 1.1.0".
+ " On new-ish Fedora it's "python3-pylint 1.2.0".
" Have you guys considered switching to creative writing yet? ;)
- let pylint_version = filter(split(system(exe . ' --version'), '\m, \=\|\n'), 'v:val =~# ''\m^\.\=pylint[-0-9]*\>''')[0]
+ let pylint_version = filter( split(system(exe . ' --version'), '\m, \=\|\n'),
+ \ 'v:val =~# ''\m^\(python[-0-9]*-\|\.\)\=pylint[-0-9]*\>''' )[0]
let pylint_version = substitute(pylint_version, '\v^\S+\s+', '', '')
let ret = syntastic#util#versionIsAtLeast(syntastic#util#parseVersion(pylint_version), [1])
catch /\m^Vim\%((\a\+)\)\=:E684/
diff --git a/sources_non_forked/syntastic/syntax_checkers/ruby/mri.vim b/sources_non_forked/syntastic/syntax_checkers/ruby/mri.vim
index e55c493d21..8d179c279f 100644
--- a/sources_non_forked/syntastic/syntax_checkers/ruby/mri.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/ruby/mri.vim
@@ -44,7 +44,7 @@ function! SyntaxCheckers_ruby_mri_GetLocList() dict
"
"Which always generate the warning below. Note that ruby >= 1.9.3 includes
"the word "possibly" in the warning
- let errorformat = '%-G%.%#warning: %\(possibly %\)%\?useless use of == in void context,'
+ let errorformat = '%-G%\m%.%#warning: %\%%(possibly %\)%\?useless use of == in void context,'
" filter out lines starting with ...
" long lines are truncated and wrapped in ... %p then returns the wrong
diff --git a/sources_non_forked/syntastic/syntax_checkers/sass/sass.vim b/sources_non_forked/syntastic/syntax_checkers/sass/sass.vim
index a515fe5f2f..21e0fd6f80 100644
--- a/sources_non_forked/syntastic/syntax_checkers/sass/sass.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/sass/sass.vim
@@ -43,7 +43,7 @@ function! SyntaxCheckers_sass_sass_GetLocList() dict
\ 'args_before': '--cache-location ' . s:sass_cache_location . ' ' . s:imports . ' --check' })
let errorformat =
- \ '%ESyntax %trror: %m,' .
+ \ '%E%\m%\%%(Syntax %\)%\?%trror: %m,' .
\ '%+C %.%#,' .
\ '%C on line %l of %f\, %.%#,' .
\ '%C on line %l of %f,' .
diff --git a/sources_non_forked/syntastic/syntax_checkers/scala/scalastyle.vim b/sources_non_forked/syntastic/syntax_checkers/scala/scalastyle.vim
new file mode 100644
index 0000000000..9c0a3ccebf
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/scala/scalastyle.vim
@@ -0,0 +1,71 @@
+"============================================================================
+"File: scalastyle.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists('g:loaded_syntastic_scala_scalastyle_checker')
+ finish
+endif
+let g:loaded_syntastic_scala_scalastyle_checker = 1
+
+if !exists('g:syntastic_scala_scalastyle_jar')
+ let g:syntastic_scala_scalastyle_jar = 'scalastyle-batch_2.10.jar'
+endif
+
+if !exists('g:syntastic_scala_scalastyle_config_file')
+ let g:syntastic_scala_scalastyle_config_file = 'scalastyle_config.xml'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_scala_scalastyle_IsAvailable() dict
+ return
+ \ executable(self.getExec()) &&
+ \ filereadable(expand(g:syntastic_scala_scalastyle_jar)) &&
+ \ filereadable(expand(g:syntastic_scala_scalastyle_config_file))
+endfunction
+
+function! SyntaxCheckers_scala_scalastyle_GetLocList() dict
+
+ let makeprg = self.makeprgBuild({
+ \ 'exe_after': ['-jar', expand(g:syntastic_scala_scalastyle_jar)],
+ \ 'args_before': ['-q', 'true', '-c', expand(g:syntastic_scala_scalastyle_config_file)] })
+
+ let errorformat =
+ \ '%trror file=%f message=%m line=%l column=%c,' .
+ \ '%trror file=%f message=%m line=%l,' .
+ \ '%tarning file=%f message=%m line=%l column=%c,' .
+ \ '%tarning file=%f message=%m line=%l'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ if has_key(e, 'col')
+ let e['col'] += 1
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scala',
+ \ 'name': 'scalastyle',
+ \ 'exec': 'java'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim b/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim
index 2f971dceae..fa63f19e21 100644
--- a/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim
@@ -31,7 +31,7 @@ function! SyntaxCheckers_scss_scss_lint_GetLocList() dict
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'subtype': 'Style',
- \ 'returns': [0, 1, 65] })
+ \ 'returns': [0, 1, 2, 65, 66] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
diff --git a/sources_non_forked/syntastic/syntax_checkers/sh/sh.vim b/sources_non_forked/syntastic/syntax_checkers/sh/sh.vim
index d736f2968b..65d84a97b7 100644
--- a/sources_non_forked/syntastic/syntax_checkers/sh/sh.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/sh/sh.vim
@@ -57,7 +57,7 @@ function! s:GetShell()
endif
" try to use env variable in case no shebang could be found
if b:shell == ''
- let b:shell = fnamemodify(expand('$SHELL'), ':t')
+ let b:shell = fnamemodify($SHELL, ':t')
endif
endif
return b:shell
diff --git a/sources_non_forked/syntastic/syntax_checkers/spec/lacheck.vim b/sources_non_forked/syntastic/syntax_checkers/spec/lacheck.vim
new file mode 100644
index 0000000000..dfd965dc2f
--- /dev/null
+++ b/sources_non_forked/syntastic/syntax_checkers/spec/lacheck.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: rpmlint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists('g:loaded_syntastic_spec_rpmlint_checker')
+ finish
+endif
+let g:loaded_syntastic_spec_rpmlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_spec_rpmlint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%E%f:%l: E: %m,' .
+ \ '%E%f: E: %m,' .
+ \ '%W%f:%l: W: %m,' .
+ \ '%W%f: W: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'spec',
+ \ 'name': 'rpmlint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/sources_non_forked/syntastic/syntax_checkers/text/atdtool.vim b/sources_non_forked/syntastic/syntax_checkers/text/atdtool.vim
index b0f32c1141..48c65f9e97 100644
--- a/sources_non_forked/syntastic/syntax_checkers/text/atdtool.vim
+++ b/sources_non_forked/syntastic/syntax_checkers/text/atdtool.vim
@@ -44,6 +44,8 @@ function! SyntaxCheckers_text_atdtool_GetLocList() dict
let e['text'] = substitute(e['text'], '\m\n\s\+', ' | ', 'g')
endfor
+ call self.setWantSort(1)
+
return loclist
endfunction
diff --git a/sources_non_forked/vim-airline/autoload/airline.vim b/sources_non_forked/vim-airline/autoload/airline.vim
index b4a88817bc..81cf3b5f61 100644
--- a/sources_non_forked/vim-airline/autoload/airline.vim
+++ b/sources_non_forked/vim-airline/autoload/airline.vim
@@ -156,7 +156,7 @@ function! airline#check_mode(winnr)
call add(l:mode, 'paste')
endif
- if &readonly
+ if &readonly || ! &modifiable
call add(l:mode, 'readonly')
endif
diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions.vim b/sources_non_forked/vim-airline/autoload/airline/extensions.vim
index 645607384f..1738f626ae 100644
--- a/sources_non_forked/vim-airline/autoload/airline/extensions.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/extensions.vim
@@ -215,6 +215,10 @@ function! airline#extensions#load()
call airline#extensions#capslock#init(s:ext)
endif
+ if (get(g:, 'airline#extensions#windowswap#enabled', 1) && get(g:, 'loaded_windowswap', 0))
+ call airline#extensions#windowswap#init(s:ext)
+ endif
+
if !get(g:, 'airline#extensions#disable_rtp_load', 0)
" load all other extensions, which are not part of the default distribution.
" (autoload/airline/extensions/*.vim outside of our s:script_path).
diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim
index 954b0f68c4..e97cae85f7 100644
--- a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim
@@ -21,7 +21,12 @@ function! s:get_git_branch(path)
else
try
let line = join(readfile(dir . '/HEAD'))
- let name = strpart(line, 16)
+ if strpart(line, 0, 16) == 'ref: refs/heads/'
+ let name = strpart(line, 16)
+ else
+ " raw commit hash
+ let name = strpart(line, 0, 7)
+ endif
catch
let name = ''
endtry
@@ -37,9 +42,11 @@ function! airline#extensions#branch#head()
endif
let b:airline_head = ''
+ let found_fugitive_head = 0
if s:has_fugitive && !exists('b:mercurial_dir')
- let b:airline_head = fugitive#head()
+ let b:airline_head = fugitive#head(7)
+ let found_fugitive_head = 1
if empty(b:airline_head) && !exists('b:git_dir')
let b:airline_head = s:get_git_branch(expand("%:p:h"))
@@ -61,7 +68,7 @@ function! airline#extensions#branch#head()
endif
endif
- if empty(b:airline_head) || !s:check_in_path()
+ if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path()
let b:airline_head = ''
endif
diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim
index d01349dfa5..53b000d405 100644
--- a/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim
@@ -63,7 +63,11 @@ function! airline#extensions#default#apply(builder, context)
if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse))
call build_sections(a:builder, a:context, s:layout[0])
else
- call a:builder.add_section('airline_c'.(a:context.bufnr), ' %f%m ')
+ let text = get_section(winnr, 'c')
+ if empty(text)
+ let text = ' %f%m '
+ endif
+ call a:builder.add_section('airline_c'.(a:context.bufnr), text)
endif
call a:builder.split(s:get_section(winnr, 'gutter', '', ''))
diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim
index ec75db7551..955f3db174 100644
--- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim
@@ -7,7 +7,9 @@ let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0)
let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1)
+let s:show_close_button = get(g:, 'airline#extensions#tabline#show_close_button', 1)
let s:close_symbol = get(g:, 'airline#extensions#tabline#close_symbol', 'X')
+let s:buffer_idx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0)
let s:builder_context = {
\ 'active' : 1,
@@ -26,6 +28,21 @@ let s:buf_min_count = get(g:, 'airline#extensions#tabline#buffer_min_count', 0)
let s:tab_min_count = get(g:, 'airline#extensions#tabline#tab_min_count', 0)
let s:spc = g:airline_symbols.space
+let s:number_map = &encoding == 'utf-8'
+ \ ? {
+ \ '0': '⁰',
+ \ '1': '¹',
+ \ '2': '²',
+ \ '3': '³',
+ \ '4': '⁴',
+ \ '5': '⁵',
+ \ '6': '⁶',
+ \ '7': '⁷',
+ \ '8': '⁸',
+ \ '9': '⁹'
+ \ }
+ \ : {}
+
function! airline#extensions#tabline#init(ext)
if has('gui_running')
set guioptions-=e
@@ -37,6 +54,9 @@ function! airline#extensions#tabline#init(ext)
call s:toggle_on()
call a:ext.add_theme_func('airline#extensions#tabline#load_theme')
+ if s:buffer_idx_mode
+ call s:define_buffer_idx_mode_mappings()
+ endif
endfunction
function! s:toggle_off()
@@ -71,12 +91,20 @@ function! airline#extensions#tabline#load_theme(palette)
let l:tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a)
let l:tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c)
let l:tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a)
+ if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
+ let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c)
+ else
+ "Fall back to normal airline_c if modified airline_c isn't present
+ let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c)
+ endif
+
let l:tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c)
call airline#highlighter#exec('airline_tab', l:tab)
call airline#highlighter#exec('airline_tabsel', l:tabsel)
call airline#highlighter#exec('airline_tabtype', l:tabtype)
call airline#highlighter#exec('airline_tabfill', l:tabfill)
call airline#highlighter#exec('airline_tabmod', l:tabmod)
+ call airline#highlighter#exec('airline_tabmod_unsel', l:tabmodu)
call airline#highlighter#exec('airline_tabhid', l:tabhid)
endfunction
@@ -93,7 +121,12 @@ function! s:on_cursormove(min_count, total_count)
endfunction
function! airline#extensions#tabline#get()
- if s:show_buffers && tabpagenr('$') == 1
+ let curtabcnt = tabpagenr('$')
+ if curtabcnt != s:current_tabcnt
+ let s:current_tabcnt = curtabcnt
+ let s:current_bufnr = -1 " force a refresh...
+ endif
+ if s:show_buffers && curtabcnt == 1
return s:get_buffers()
else
return s:get_tabs()
@@ -180,11 +213,13 @@ function! s:get_visible_buffers()
endif
endif
+ let g:current_visible_buffers = buffers
return buffers
endfunction
let s:current_bufnr = -1
let s:current_tabnr = -1
+let s:current_tabcnt = -1
let s:current_tabline = ''
let s:current_modified = 0
function! s:get_buffers()
@@ -195,6 +230,7 @@ function! s:get_buffers()
endif
endif
+ let l:index = 1
let b = airline#builder#new(s:builder_context)
let tab_bufs = tabpagebuflist(tabpagenr())
for nr in s:get_visible_buffers()
@@ -202,6 +238,7 @@ function! s:get_buffers()
call b.add_raw('%#airline_tabhid#...')
continue
endif
+
if cur == nr
if g:airline_detect_modified && getbufvar(nr, '&modified')
let group = 'airline_tabmod'
@@ -210,13 +247,25 @@ function! s:get_buffers()
endif
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
else
- if index(tab_bufs, nr) > -1
+ if g:airline_detect_modified && getbufvar(nr, '&modified')
+ let group = 'airline_tabmod_unsel'
+ elseif index(tab_bufs, nr) > -1
let group = 'airline_tab'
else
let group = 'airline_tabhid'
endif
endif
- call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
+
+ if s:buffer_idx_mode
+ if len(s:number_map) > 0
+ call b.add_section(group, s:spc . get(s:number_map, l:index, '') . '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)' . s:spc)
+ else
+ call b.add_section(group, '['.l:index.s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.']')
+ endif
+ let l:index = l:index + 1
+ else
+ call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
+ endif
endfor
call b.add_section('airline_tabfill', '')
@@ -228,6 +277,35 @@ function! s:get_buffers()
return s:current_tabline
endfunction
+function! s:select_tab(buf_index)
+ " no-op when called in the NERDTree buffer
+ if exists('t:NERDTreeBufName') && bufname('%') == t:NERDTreeBufName
+ return
+ endif
+
+ let idx = a:buf_index
+ if g:current_visible_buffers[0] == -1
+ let idx = idx + 1
+ endif
+
+ let buf = get(g:current_visible_buffers, idx, 0)
+ if buf != 0
+ exec 'b!' . buf
+ endif
+endfunction
+
+function! s:define_buffer_idx_mode_mappings()
+ noremap AirlineSelectTab1 :call select_tab(0)
+ noremap AirlineSelectTab2 :call select_tab(1)
+ noremap AirlineSelectTab3 :call select_tab(2)
+ noremap AirlineSelectTab4 :call select_tab(3)
+ noremap AirlineSelectTab5 :call select_tab(4)
+ noremap AirlineSelectTab6 :call select_tab(5)
+ noremap AirlineSelectTab7 :call select_tab(6)
+ noremap AirlineSelectTab8 :call select_tab(7)
+ noremap AirlineSelectTab9 :call select_tab(8)
+endfunction
+
function! s:get_tabs()
let curbuf = bufnr('%')
let curtab = tabpagenr()
@@ -266,7 +344,9 @@ function! s:get_tabs()
call b.add_raw('%T')
call b.add_section('airline_tabfill', '')
call b.split()
- call b.add_section('airline_tab', ' %999X'.s:close_symbol.' ')
+ if s:show_close_button
+ call b.add_section('airline_tab', ' %999X'.s:close_symbol.' ')
+ endif
if s:show_tab_type
call b.add_section('airline_tabtype', ' tabs ')
endif
diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/windowswap.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/windowswap.vim
new file mode 100644
index 0000000000..2beb91c8a2
--- /dev/null
+++ b/sources_non_forked/vim-airline/autoload/airline/extensions/windowswap.vim
@@ -0,0 +1,23 @@
+" vim: et ts=2 sts=2 sw=2
+
+if !exists('g:loaded_windowswap')
+ finish
+endif
+
+let s:spc = g:airline_symbols.space
+
+if !exists('g:airline#extensions#windowswap#indicator_text')
+ let g:airline#extensions#windowswap#indicator_text = 'WS'
+endif
+
+function! airline#extensions#windowswap#init(ext)
+ call airline#parts#define_function('windowswap', 'airline#extensions#windowswap#get_status')
+endfunction
+
+function! airline#extensions#windowswap#get_status()
+ if WindowSwap#HasMarkedWindow() && WindowSwap#GetMarkedWindowNum() == winnr()
+ return g:airline#extensions#windowswap#indicator_text.s:spc
+ endif
+ return ''
+endfunction
+
diff --git a/sources_non_forked/vim-airline/autoload/airline/init.vim b/sources_non_forked/vim-airline/autoload/airline/init.vim
index 539f2c498e..021b3b28c4 100644
--- a/sources_non_forked/vim-airline/autoload/airline/init.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/init.vim
@@ -78,7 +78,7 @@ function! airline#init#bootstrap()
call airline#parts#define_raw('file', '%f%m')
call airline#parts#define_raw('linenr', '%{g:airline_symbols.linenr}%#__accent_bold#%4l%#__restore__#')
call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
- call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'eclim', 'whitespace'])
+ call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'eclim', 'whitespace','windowswap'])
call airline#parts#define_text('capslock', '')
unlet g:airline#init#bootstrapping
@@ -105,7 +105,7 @@ function! airline#init#sections()
let g:airline_section_y = airline#section#create_right(['ffenc'])
endif
if !exists('g:airline_section_z')
- let g:airline_section_z = airline#section#create(['%3p%%'.spc, 'linenr', ':%3c '])
+ let g:airline_section_z = airline#section#create(['windowswap', '%3p%%'.spc, 'linenr', ':%3c '])
endif
if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['syntastic', 'eclim', 'whitespace'])
diff --git a/sources_non_forked/vim-airline/autoload/airline/section.vim b/sources_non_forked/vim-airline/autoload/airline/section.vim
index 0baf07798e..06d930f458 100644
--- a/sources_non_forked/vim-airline/autoload/airline/section.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/section.vim
@@ -49,7 +49,7 @@ function! s:create(parts, append)
endif
if exists('part.condition')
- let partval = substitute(partval, '{', '{'.(part.condition).' ? ', '')
+ let partval = substitute(partval, '{', '\="{".(part.condition)." ? "', '')
let partval = substitute(partval, '}', ' : ""}', '')
endif
diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim b/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim
index 4ff94f57fb..82c707127f 100644
--- a/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim
+++ b/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim
@@ -1,43 +1,52 @@
"
" Colorscheme: Kalisi for airline. Inspired by powerline.
-" 06.02.2014 Arthur Jaron
+" Arthur Jaron
" hifreeo@gmail.com
-"
+" 30.07.2014
+
" Insert mode
-let s:I1 = [ '#ffffff' , '#e80000' , 23 , 231 ]
-let s:I2 = [ '#c5c5c5' , '#901010' , 74 , 31 ]
-let s:I3 = [ '#c5c5c5' , '#500000' , 117 , 24 ]
+let s:I1 = [ '#ffffff' , '#e80000','','']
+let s:I2 = [ '#c5c5c5' , '#901010','','']
+let s:I3 = [ '#c5c5c5' , '#500000','','']
-" Visual mode
-let s:V1 = [ '#005f5f' , '#ffffff' , 23 , 231 ]
-let s:V2 = [ '#5fafd7' , '#0087af' , 74 , 31 ]
-let s:V3 = [ '#87d7ff' , '#005f87' , 117 , 24 ]
+" Visual mode
+let s:V1 = [ '#2a5d8e' , '#ffffff','','']
+let s:V2 = [ '#87e7ff' , '#4077df','','']
+let s:V3 = [ '#87e7ff' , '#2a5d8e','','']
" Replace mode
-let s:R1 = [ '#8e00da' , '#ffffff' , 23 , 231 ]
-let s:R2 = [ '#8e00da' , '#ce99ff' , 74 , 31 ]
-let s:R3 = [ '#ce99ff' , '#8e00da' , 117 , 24 ]
+let s:R1 = [ '#6e00ba' , '#ffffff','','']
+let s:R2 = [ '#6e00ba' , '#d358ff','','']
+let s:R3 = [ '#ce99ff' , '#6e00ba','','']
let g:airline#themes#kalisi#palette = {}
+let g:airline#themes#kalisi#palette.accents = {'red': ['#FF0000', '', 88, '']}
+
function! airline#themes#kalisi#refresh()
+ let s:StatusLine = airline#themes#get_highlight('StatusLine')
+ let s:StatusLineNC = airline#themes#get_highlight('StatusLineNC')
+
" Normal mode
- let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ]
- let s:N2 = [ '#afd700' , '#005f00' , 247 , 236 ]
- let s:N3 = airline#themes#get_highlight('StatusLine')
+ let s:N1 = [ '#005f00' , '#afd700','','']
+ let s:N2 = [ '#afd700' , '#005f00','','']
+ let s:N3 = s:StatusLine
+
" Tabline Plugin
let g:airline#themes#kalisi#palette.tabline = {
- \ 'airline_tab': ['#A6DB29', '#005f00', 231, 29, ''],
- \ 'airline_tabsel': ['#404042', '#A6DB29', 231, 36, ''],
- \ 'airline_tabtype': ['#afd700', '#005f00', 231, 36, ''],
- \ 'airline_tabfill': ['#ffffff', '#000000', 231, 23, ''],
- \ 'airline_tabhid': ['#c5c5c5', '#404042', 231, 88, ''],
- \ 'airline_tabmod': ['#ffffff', '#F1266F', 231, 88, ''],
+ \ 'airline_tab': ['#A6DB29', '#005f00','',''],
+ \ 'airline_tabsel': ['#404042', '#A6DB29','',''],
+ \ 'airline_tabtype': ['#afd700', '#204d20','',''],
+ \ 'airline_tabfill': s:StatusLine,
+ \ 'airline_tabhid': ['#c5c5c5', '#404042','',''],
+ \ 'airline_tabmod': ['#ffffff', '#F1266F','','']
\ }
+ " \ 'airline_tabfill': ['#ffffff', '#2b2b2b','',''],
+
let g:airline#themes#kalisi#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let g:airline#themes#kalisi#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#kalisi#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
@@ -55,3 +64,11 @@ endfunction
call airline#themes#kalisi#refresh()
+if !get(g:, 'loaded_ctrlp', 0)
+ finish
+endif
+let g:airline#themes#kalisi#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
+ \ s:StatusLineNC,
+ \ s:StatusLine,
+ \ [ '#005f00' , '#afd700' , '','', ''] )
+
diff --git a/sources_non_forked/vim-airline/doc/airline.txt b/sources_non_forked/vim-airline/doc/airline.txt
index cd2a17c543..ddc81ce0ce 100644
--- a/sources_non_forked/vim-airline/doc/airline.txt
+++ b/sources_non_forked/vim-airline/doc/airline.txt
@@ -404,6 +404,25 @@ eclim
* enable/disable displaying tab type (far right)
let g:airline#extensions#tabline#show_tab_type = 1
+* enable/disable displaying index of the buffer.
+
+When enabled, numbers will be displayed in the tabline and mappings will be
+exposed to allow you to select a buffer directly. Up to 9 mappings will be
+exposed.
+
+ let g:airline#extensions#tabline#buffer_idx_mode = 1
+ nmap 1 AirlineSelectTab1
+ nmap 2 AirlineSelectTab2
+ nmap 3 AirlineSelectTab3
+ nmap 4 AirlineSelectTab4
+ nmap 5 AirlineSelectTab5
+ nmap 6 AirlineSelectTab6
+ nmap 7 AirlineSelectTab7
+ nmap 8 AirlineSelectTab8
+ nmap 9 AirlineSelectTab9
+
+ Note: Mappings will be ignored within a NERDTree buffer.
+
* defines the name of a formatter for how buffer names are displayed. >
let g:airline#extensions#tabline#formatter = 'default'
@@ -453,6 +472,9 @@ eclim
let g:airline#extensions#tabline#right_sep = ''
let g:airline#extensions#tabline#right_alt_sep = ''
+* configure whether close button should be shown
+ let g:airline#extensions#tabline#show_close_button = 1
+
* configure symbol used to represent close button
let g:airline#extensions#tabline#close_symbol = 'X'
@@ -507,6 +529,15 @@ vim-capslock
* enable/disable vim-capslock integration >
let g:airline#extensions#capslock#enabled = 1
+
+------------------------------------- *airline-windowswap*
+vim-windowswap
+
+* enable/disable vim-windowswap integration >
+ let g:airline#extensions#windowswap#enabled = 1
+
+* set marked window indicator string >
+ let g:airline#extensions#windowswap#indicator_text = 'WS'
<
==============================================================================
ADVANCED CUSTOMIZATION *airline-advanced-customization*
diff --git a/sources_non_forked/vim-fugitive/plugin/fugitive.vim b/sources_non_forked/vim-fugitive/plugin/fugitive.vim
index b5a204b209..8fabd1cc12 100644
--- a/sources_non_forked/vim-fugitive/plugin/fugitive.vim
+++ b/sources_non_forked/vim-fugitive/plugin/fugitive.vim
@@ -1195,7 +1195,7 @@ endif
call s:command("-bang -nargs=? -complete=customlist,s:EditComplete Ggrep :execute s:Grep('grep',0,)")
call s:command("-bang -nargs=? -complete=customlist,s:EditComplete Glgrep :execute s:Grep('lgrep',0,)")
call s:command("-bar -bang -nargs=* -range=0 -complete=customlist,s:EditComplete Glog :call s:Log('grep',,,)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Gllog :call s:Log('lgrep',,,)")
+call s:command("-bar -bang -nargs=* -range=0 -complete=customlist,s:EditComplete Gllog :call s:Log('lgrep',,,)")
function! s:Grep(cmd,bang,arg) abort
let grepprg = &grepprg
diff --git a/sources_non_forked/vim-golang/README.md b/sources_non_forked/vim-golang/README.md
new file mode 100644
index 0000000000..aca52b78c2
--- /dev/null
+++ b/sources_non_forked/vim-golang/README.md
@@ -0,0 +1,8 @@
+## Vim plugins have moved
+
+The vim plugins have been removed from the Go repository along with all other
+editor plugins. Please visit [The Go Wiki][1] for a current list of plugins. I
+have personally moved over to the [vim-go][2] suite of plugins.
+
+[1]: https://code.google.com/p/go-wiki/wiki/IDEsAndTextEditorPlugins
+[2]: https://github.com/fatih/vim-go
diff --git a/sources_non_forked/vim-golang/autoload/go/complete.vim b/sources_non_forked/vim-golang/autoload/go/complete.vim
deleted file mode 100644
index a4fa6b6684..0000000000
--- a/sources_non_forked/vim-golang/autoload/go/complete.vim
+++ /dev/null
@@ -1,103 +0,0 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" This file provides a utility function that performs auto-completion of
-" package names, for use by other commands.
-
-let s:goos = $GOOS
-let s:goarch = $GOARCH
-
-if len(s:goos) == 0
- if exists('g:golang_goos')
- let s:goos = g:golang_goos
- elseif has('win32') || has('win64')
- let s:goos = 'windows'
- elseif has('macunix')
- let s:goos = 'darwin'
- else
- let s:goos = '*'
- endif
-endif
-
-if len(s:goarch) == 0
- if exists('g:golang_goarch')
- let s:goarch = g:golang_goarch
- else
- let s:goarch = '*'
- endif
-endif
-
-function! go#complete#PackageMembers(package, member)
- silent! let content = system('godoc ' . a:package)
- if v:shell_error || !len(content)
- return []
- endif
- let lines = filter(split(content, "\n"),"v:val !~ '^\\s\\+$'")
- try
- let mx1 = '^\s\+\(\S+\)\s\+=\s\+.*'
- let mx2 = '^\%(const\|var\|type\|func\) \([A-Z][^ (]\+\).*'
- let candidates =
- \ map(filter(copy(lines), 'v:val =~ mx1'), 'substitute(v:val, mx1, "\\1", "")')
- \ + map(filter(copy(lines), 'v:val =~ mx2'), 'substitute(v:val, mx2, "\\1", "")')
- return filter(candidates, '!stridx(v:val, a:member)')
- catch
- return []
- endtry
-endfunction
-
-function! go#complete#Package(ArgLead, CmdLine, CursorPos)
- let dirs = []
-
- let words = split(a:CmdLine, '\s\+', 1)
- if len(words) > 2
- " Complete package members
- return go#complete#PackageMembers(words[1], words[2])
- endif
-
- if executable('go')
- let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
- if v:shell_error
- echomsg '''go env GOROOT'' failed'
- endif
- else
- let goroot = $GOROOT
- endif
-
- if len(goroot) != 0 && isdirectory(goroot)
- let dirs += [goroot]
- endif
-
- let pathsep = ':'
- if s:goos == 'windows'
- let pathsep = ';'
- endif
- let workspaces = split($GOPATH, pathsep)
- if workspaces != []
- let dirs += workspaces
- endif
-
- if len(dirs) == 0
- " should not happen
- return []
- endif
-
- let ret = {}
- for dir in dirs
- " this may expand to multiple lines
- let root = split(expand(dir . '/pkg/' . s:goos . '_' . s:goarch), "\n")
- call add(root, expand(dir . '/src'))
- for r in root
- for i in split(globpath(r, a:ArgLead.'*'), "\n")
- if isdirectory(i)
- let i .= '/'
- elseif i !~ '\.a$'
- continue
- endif
- let i = substitute(substitute(i[len(r)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
- let ret[i] = i
- endfor
- endfor
- endfor
- return sort(keys(ret))
-endfunction
diff --git a/sources_non_forked/vim-golang/compiler/go.vim b/sources_non_forked/vim-golang/compiler/go.vim
deleted file mode 100644
index 2c8cce4973..0000000000
--- a/sources_non_forked/vim-golang/compiler/go.vim
+++ /dev/null
@@ -1,30 +0,0 @@
-" Copyright 2013 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" compiler/go.vim: Vim compiler file for Go.
-
-if exists("current_compiler")
- finish
-endif
-let current_compiler = "go"
-
-if exists(":CompilerSet") != 2
- command -nargs=* CompilerSet setlocal
-endif
-
-let s:save_cpo = &cpo
-set cpo-=C
-
-CompilerSet makeprg=go\ build
-CompilerSet errorformat=
- \%-G#\ %.%#,
- \%A%f:%l:%c:\ %m,
- \%A%f:%l:\ %m,
- \%C%*\\s%m,
- \%-G%.%#
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim:ts=4:sw=4:et
diff --git a/sources_non_forked/vim-golang/ftdetect/gofiletype.vim b/sources_non_forked/vim-golang/ftdetect/gofiletype.vim
deleted file mode 100644
index b658f6b0e8..0000000000
--- a/sources_non_forked/vim-golang/ftdetect/gofiletype.vim
+++ /dev/null
@@ -1,23 +0,0 @@
-" We take care to preserve the user's fileencodings and fileformats,
-" because those settings are global (not buffer local), yet we want
-" to override them for loading Go files, which are defined to be UTF-8.
-let s:current_fileformats = ''
-let s:current_fileencodings = ''
-
-" define fileencodings to open as utf-8 encoding even if it's ascii.
-function! s:gofiletype_pre()
- let s:current_fileformats = &g:fileformats
- let s:current_fileencodings = &g:fileencodings
- set fileencodings=utf-8 fileformats=unix
- setlocal filetype=go
-endfunction
-
-" restore fileencodings as others
-function! s:gofiletype_post()
- let &g:fileformats = s:current_fileformats
- let &g:fileencodings = s:current_fileencodings
-endfunction
-
-au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix
-au BufRead *.go call s:gofiletype_pre()
-au BufReadPost *.go call s:gofiletype_post()
diff --git a/sources_non_forked/vim-golang/ftplugin/go.vim b/sources_non_forked/vim-golang/ftplugin/go.vim
deleted file mode 100644
index 532fb17236..0000000000
--- a/sources_non_forked/vim-golang/ftplugin/go.vim
+++ /dev/null
@@ -1,19 +0,0 @@
-" Copyright 2013 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" go.vim: Vim filetype plugin for Go.
-
-if exists("b:did_ftplugin")
- finish
-endif
-let b:did_ftplugin = 1
-
-setlocal formatoptions-=t
-
-setlocal comments=s1:/*,mb:*,ex:*/,://
-setlocal commentstring=//\ %s
-
-let b:undo_ftplugin = "setl fo< com< cms<"
-
-" vim:ts=4:sw=4:et
diff --git a/sources_non_forked/vim-golang/ftplugin/go/fmt.vim b/sources_non_forked/vim-golang/ftplugin/go/fmt.vim
deleted file mode 100644
index 359545bd40..0000000000
--- a/sources_non_forked/vim-golang/ftplugin/go/fmt.vim
+++ /dev/null
@@ -1,69 +0,0 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" fmt.vim: Vim command to format Go files with gofmt.
-"
-" This filetype plugin add a new commands for go buffers:
-"
-" :Fmt
-"
-" Filter the current Go buffer through gofmt.
-" It tries to preserve cursor position and avoids
-" replacing the buffer with stderr output.
-"
-" Options:
-"
-" g:go_fmt_commands [default=1]
-"
-" Flag to indicate whether to enable the commands listed above.
-"
-" g:gofmt_command [default="gofmt"]
-"
-" Flag naming the gofmt executable to use.
-"
-if exists("b:did_ftplugin_go_fmt")
- finish
-endif
-
-if !exists("g:go_fmt_commands")
- let g:go_fmt_commands = 1
-endif
-
-if !exists("g:gofmt_command")
- let g:gofmt_command = "gofmt"
-endif
-
-if g:go_fmt_commands
- command! -buffer Fmt call s:GoFormat()
-endif
-
-function! s:GoFormat()
- let view = winsaveview()
- silent execute "%!" . g:gofmt_command
- if v:shell_error
- let errors = []
- for line in getline(1, line('$'))
- let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
- if !empty(tokens)
- call add(errors, {"filename": @%,
- \"lnum": tokens[2],
- \"col": tokens[3],
- \"text": tokens[4]})
- endif
- endfor
- if empty(errors)
- % | " Couldn't detect gofmt error format, output errors
- endif
- undo
- if !empty(errors)
- call setqflist(errors, 'r')
- endif
- echohl Error | echomsg "Gofmt returned error" | echohl None
- endif
- call winrestview(view)
-endfunction
-
-let b:did_ftplugin_go_fmt = 1
-
-" vim:ts=4:sw=4:et
diff --git a/sources_non_forked/vim-golang/ftplugin/go/import.vim b/sources_non_forked/vim-golang/ftplugin/go/import.vim
deleted file mode 100644
index 91c8697a4c..0000000000
--- a/sources_non_forked/vim-golang/ftplugin/go/import.vim
+++ /dev/null
@@ -1,250 +0,0 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" import.vim: Vim commands to import/drop Go packages.
-"
-" This filetype plugin adds three new commands for go buffers:
-"
-" :Import {path}
-"
-" Import ensures that the provided package {path} is imported
-" in the current Go buffer, using proper style and ordering.
-" If {path} is already being imported, an error will be
-" displayed and the buffer will be untouched.
-"
-" :ImportAs {localname} {path}
-"
-" Same as Import, but uses a custom local name for the package.
-"
-" :Drop {path}
-"
-" Remove the import line for the provided package {path}, if
-" present in the current Go buffer. If {path} is not being
-" imported, an error will be displayed and the buffer will be
-" untouched.
-"
-" If you would like to add shortcuts, you can do so by doing the following:
-"
-" Import fmt
-" au Filetype go nnoremap f :Import fmt
-"
-" Drop fmt
-" au Filetype go nnoremap F :Drop fmt
-"
-" Import the word under your cursor
-" au Filetype go nnoremap k
-" \ :exe 'Import ' . expand('')
-"
-" The backslash '\' is the default maplocalleader, so it is possible that
-" your vim is set to use a different character (:help maplocalleader).
-"
-" Options:
-"
-" g:go_import_commands [default=1]
-"
-" Flag to indicate whether to enable the commands listed above.
-"
-if exists("b:did_ftplugin_go_import")
- finish
-endif
-
-if !exists("g:go_import_commands")
- let g:go_import_commands = 1
-endif
-
-if g:go_import_commands
- command! -buffer -nargs=? -complete=customlist,go#complete#Package Drop call s:SwitchImport(0, '', )
- command! -buffer -nargs=1 -complete=customlist,go#complete#Package Import call s:SwitchImport(1, '', )
- command! -buffer -nargs=* -complete=customlist,go#complete#Package ImportAs call s:SwitchImport(1, )
-endif
-
-function! s:SwitchImport(enabled, localname, path)
- let view = winsaveview()
- let path = a:path
-
- " Quotes are not necessary, so remove them if provided.
- if path[0] == '"'
- let path = strpart(path, 1)
- endif
- if path[len(path)-1] == '"'
- let path = strpart(path, 0, len(path) - 1)
- endif
- if path == ''
- call s:Error('Import path not provided')
- return
- endif
-
- " Extract any site prefix (e.g. github.com/).
- " If other imports with the same prefix are grouped separately,
- " we will add this new import with them.
- " Only up to and including the first slash is used.
- let siteprefix = matchstr(path, "^[^/]*/")
-
- let qpath = '"' . path . '"'
- if a:localname != ''
- let qlocalpath = a:localname . ' ' . qpath
- else
- let qlocalpath = qpath
- endif
- let indentstr = 0
- let packageline = -1 " Position of package name statement
- let appendline = -1 " Position to introduce new import
- let deleteline = -1 " Position of line with existing import
- let linesdelta = 0 " Lines added/removed
-
- " Find proper place to add/remove import.
- let line = 0
- while line <= line('$')
- let linestr = getline(line)
-
- if linestr =~# '^package\s'
- let packageline = line
- let appendline = line
-
- elseif linestr =~# '^import\s\+('
- let appendstr = qlocalpath
- let indentstr = 1
- let appendline = line
- let firstblank = -1
- let lastprefix = ""
- while line <= line("$")
- let line = line + 1
- let linestr = getline(line)
- let m = matchlist(getline(line), '^\()\|\(\s\+\)\(\S*\s*\)"\(.\+\)"\)')
- if empty(m)
- if siteprefix == "" && a:enabled
- " must be in the first group
- break
- endif
- " record this position, but keep looking
- if firstblank < 0
- let firstblank = line
- endif
- continue
- endif
- if m[1] == ')'
- " if there's no match, add it to the first group
- if appendline < 0 && firstblank >= 0
- let appendline = firstblank
- endif
- break
- endif
- let lastprefix = matchstr(m[4], "^[^/]*/")
- if a:localname != '' && m[3] != ''
- let qlocalpath = printf('%-' . (len(m[3])-1) . 's %s', a:localname, qpath)
- endif
- let appendstr = m[2] . qlocalpath
- let indentstr = 0
- if m[4] == path
- let appendline = -1
- let deleteline = line
- break
- elseif m[4] < path
- " don't set candidate position if we have a site prefix,
- " we've passed a blank line, and this doesn't share the same
- " site prefix.
- if siteprefix == "" || firstblank < 0 || match(m[4], "^" . siteprefix) >= 0
- let appendline = line
- endif
- elseif siteprefix != "" && match(m[4], "^" . siteprefix) >= 0
- " first entry of site group
- let appendline = line - 1
- break
- endif
- endwhile
- break
-
- elseif linestr =~# '^import '
- if appendline == packageline
- let appendstr = 'import ' . qlocalpath
- let appendline = line - 1
- endif
- let m = matchlist(linestr, '^import\(\s\+\)\(\S*\s*\)"\(.\+\)"')
- if !empty(m)
- if m[3] == path
- let appendline = -1
- let deleteline = line
- break
- endif
- if m[3] < path
- let appendline = line
- endif
- if a:localname != '' && m[2] != ''
- let qlocalpath = printf("%s %" . len(m[2])-1 . "s", a:localname, qpath)
- endif
- let appendstr = 'import' . m[1] . qlocalpath
- endif
-
- elseif linestr =~# '^\(var\|const\|type\|func\)\>'
- break
-
- endif
- let line = line + 1
- endwhile
-
- " Append or remove the package import, as requested.
- if a:enabled
- if deleteline != -1
- call s:Error(qpath . ' already being imported')
- elseif appendline == -1
- call s:Error('No package line found')
- else
- if appendline == packageline
- call append(appendline + 0, '')
- call append(appendline + 1, 'import (')
- call append(appendline + 2, ')')
- let appendline += 2
- let linesdelta += 3
- let appendstr = qlocalpath
- let indentstr = 1
- endif
- call append(appendline, appendstr)
- execute appendline + 1
- if indentstr
- execute 'normal >>'
- endif
- let linesdelta += 1
- endif
- else
- if deleteline == -1
- call s:Error(qpath . ' not being imported')
- else
- execute deleteline . 'd'
- let linesdelta -= 1
-
- if getline(deleteline-1) =~# '^import\s\+(' && getline(deleteline) =~# '^)'
- " Delete empty import block
- let deleteline -= 1
- execute deleteline . "d"
- execute deleteline . "d"
- let linesdelta -= 2
- endif
-
- if getline(deleteline) == '' && getline(deleteline - 1) == ''
- " Delete spacing for removed line too.
- execute deleteline . "d"
- let linesdelta -= 1
- endif
- endif
- endif
-
- " Adjust view for any changes.
- let view.lnum += linesdelta
- let view.topline += linesdelta
- if view.topline < 0
- let view.topline = 0
- endif
-
- " Put buffer back where it was.
- call winrestview(view)
-
-endfunction
-
-function! s:Error(s)
- echohl Error | echo a:s | echohl None
-endfunction
-
-let b:did_ftplugin_go_import = 1
-
-" vim:ts=4:sw=4:et
diff --git a/sources_non_forked/vim-golang/ftplugin/go/test.sh b/sources_non_forked/vim-golang/ftplugin/go/test.sh
deleted file mode 100644
index d8a5b89511..0000000000
--- a/sources_non_forked/vim-golang/ftplugin/go/test.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/bash -e
-#
-# Copyright 2012 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-#
-# Tests for import.vim.
-
-cd $(dirname $0)
-
-cat > base.go <&1 -n "$1: "
- vim -e -s -u /dev/null -U /dev/null --noplugin -c "source import.vim" \
- -c "$1" -c 'wq! test.go' base.go
- # ensure blank lines are treated correctly
- if ! gofmt test.go | cmp test.go -; then
- echo 2>&1 "gofmt conflict"
- gofmt test.go | diff -u test.go - | sed "s/^/ /" 2>&1
- fail=1
- return
- fi
- if ! [[ $(cat test.go) =~ $2 ]]; then
- echo 2>&1 "$2 did not match"
- cat test.go | sed "s/^/ /" 2>&1
- fail=1
- return
- fi
- echo 2>&1 "ok"
-}
-
-# Tests for Import
-
-test_one "Import baz" '"baz".*"bytes"'
-test_one "Import io/ioutil" '"io".*"io/ioutil".*"net"'
-test_one "Import myc" '"io".*"myc".*"net"' # prefix of a site prefix
-test_one "Import nat" '"io".*"nat".*"net"'
-test_one "Import net/http" '"net".*"net/http".*"mycorp/foo"'
-test_one "Import zoo" '"net".*"zoo".*"mycorp/foo"'
-test_one "Import mycorp/bar" '"net".*"mycorp/bar".*"mycorp/foo"'
-test_one "Import mycorp/goo" '"net".*"mycorp/foo".*"mycorp/goo"'
-
-# Tests for Drop
-
-cat > base.go <&1 "FAIL"
- exit 1
-fi
-echo 2>&1 "PASS"
diff --git a/sources_non_forked/vim-golang/indent/go.vim b/sources_non_forked/vim-golang/indent/go.vim
deleted file mode 100644
index e3d6e84169..0000000000
--- a/sources_non_forked/vim-golang/indent/go.vim
+++ /dev/null
@@ -1,77 +0,0 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" indent/go.vim: Vim indent file for Go.
-"
-" TODO:
-" - function invocations split across lines
-" - general line splits (line ends in an operator)
-
-if exists("b:did_indent")
- finish
-endif
-let b:did_indent = 1
-
-" C indentation is too far off useful, mainly due to Go's := operator.
-" Let's just define our own.
-setlocal nolisp
-setlocal autoindent
-setlocal indentexpr=GoIndent(v:lnum)
-setlocal indentkeys+=<:>,0=},0=)
-
-if exists("*GoIndent")
- finish
-endif
-
-" The shiftwidth() function is relatively new.
-" Don't require it to exist.
-if exists('*shiftwidth')
- func s:sw()
- return shiftwidth()
- endfunc
-else
- func s:sw()
- return &shiftwidth
- endfunc
-endif
-
-function! GoIndent(lnum)
- let prevlnum = prevnonblank(a:lnum-1)
- if prevlnum == 0
- " top of file
- return 0
- endif
-
- " grab the previous and current line, stripping comments.
- let prevl = substitute(getline(prevlnum), '//.*$', '', '')
- let thisl = substitute(getline(a:lnum), '//.*$', '', '')
- let previ = indent(prevlnum)
-
- let ind = previ
-
- if prevl =~ '[({]\s*$'
- " previous line opened a block
- let ind += s:sw()
- endif
- if prevl =~# '^\s*\(case .*\|default\):$'
- " previous line is part of a switch statement
- let ind += s:sw()
- endif
- " TODO: handle if the previous line is a label.
-
- if thisl =~ '^\s*[)}]'
- " this line closed a block
- let ind -= s:sw()
- endif
-
- " Colons are tricky.
- " We want to outdent if it's part of a switch ("case foo:" or "default:").
- " We ignore trying to deal with jump labels because (a) they're rare, and
- " (b) they're hard to disambiguate from a composite literal key.
- if thisl =~# '^\s*\(case .*\|default\):$'
- let ind -= s:sw()
- endif
-
- return ind
-endfunction
diff --git a/sources_non_forked/vim-golang/mirror.txt b/sources_non_forked/vim-golang/mirror.txt
deleted file mode 100644
index 7fc4f60f67..0000000000
--- a/sources_non_forked/vim-golang/mirror.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a mirror of the misc/vim portion of the official Go repository. It is
-automatically updated.
-
-Any contributions or issues should be made to the official repository.
-
-http://golang.org/doc/contribute.html
diff --git a/sources_non_forked/vim-golang/plugin/godoc.vim b/sources_non_forked/vim-golang/plugin/godoc.vim
deleted file mode 100644
index a145d313fe..0000000000
--- a/sources_non_forked/vim-golang/plugin/godoc.vim
+++ /dev/null
@@ -1,130 +0,0 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" godoc.vim: Vim command to see godoc.
-"
-"
-" Commands:
-"
-" :Godoc
-"
-" Open the relevant Godoc for either the word[s] passed to the command or
-" the, by default, the word under the cursor.
-"
-" Options:
-"
-" g:go_godoc_commands [default=1]
-"
-" Flag to indicate whether to enable the commands listed above.
-
-if exists("g:loaded_godoc")
- finish
-endif
-let g:loaded_godoc = 1
-
-let s:buf_nr = -1
-let s:last_word = ''
-
-if !exists('g:go_godoc_commands')
- let g:go_godoc_commands = 1
-endif
-
-if g:go_godoc_commands
- command! -nargs=* -range -complete=customlist,go#complete#Package Godoc :call s:Godoc()
-endif
-
-nnoremap (godoc-keyword) :call Godoc('')
-
-function! s:GodocView()
- if !bufexists(s:buf_nr)
- leftabove new
- file `="[Godoc]"`
- let s:buf_nr = bufnr('%')
- elseif bufwinnr(s:buf_nr) == -1
- leftabove split
- execute s:buf_nr . 'buffer'
- delete _
- elseif bufwinnr(s:buf_nr) != bufwinnr('%')
- execute bufwinnr(s:buf_nr) . 'wincmd w'
- endif
-
- setlocal filetype=godoc
- setlocal bufhidden=delete
- setlocal buftype=nofile
- setlocal noswapfile
- setlocal nobuflisted
- setlocal modifiable
- setlocal nocursorline
- setlocal nocursorcolumn
- setlocal iskeyword+=:
- setlocal iskeyword-=-
-
- nnoremap K :Godoc
-
- au BufHidden call let buf_nr = -1
-endfunction
-
-function! s:GodocWord(word)
- if !executable('godoc')
- echohl WarningMsg
- echo "godoc command not found."
- echo " install with: go get code.google.com/p/go.tools/cmd/godoc"
- echohl None
- return 0
- endif
- let word = a:word
- silent! let content = system('godoc ' . word)
- if v:shell_error || !len(content)
- if len(s:last_word)
- silent! let content = system('godoc ' . s:last_word.'/'.word)
- if v:shell_error || !len(content)
- echo 'No documentation found for "' . word . '".'
- return 0
- endif
- let word = s:last_word.'/'.word
- else
- echo 'No documentation found for "' . word . '".'
- return 0
- endif
- endif
- let s:last_word = word
- silent! call s:GodocView()
- setlocal modifiable
- silent! %d _
- silent! put! =content
- silent! normal gg
- setlocal nomodifiable
- setfiletype godoc
- return 1
-endfunction
-
-function! s:Godoc(...)
- if !len(a:000)
- let oldiskeyword = &iskeyword
- setlocal iskeyword+=.
- let word = expand('')
- let &iskeyword = oldiskeyword
- let word = substitute(word, '[^a-zA-Z0-9\\/._~-]', '', 'g')
- let words = split(word, '\.\ze[^./]\+$')
- else
- let words = a:000
- endif
- if !len(words)
- return
- endif
- if s:GodocWord(words[0])
- if len(words) > 1
- if search('^\%(const\|var\|type\|\s\+\) ' . words[1] . '\s\+=\s')
- return
- endif
- if search('^func ' . words[1] . '(')
- silent! normal zt
- return
- endif
- echo 'No documentation found for "' . words[1] . '".'
- endif
- endif
-endfunction
-
-" vim:ts=4:sw=4:et
diff --git a/sources_non_forked/vim-golang/readme.txt b/sources_non_forked/vim-golang/readme.txt
deleted file mode 100644
index 9a9e228709..0000000000
--- a/sources_non_forked/vim-golang/readme.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-Vim plugins for Go (http://golang.org)
-======================================
-
-To use all the Vim plugins, add these lines to your $HOME/.vimrc.
-
- " Some Linux distributions set filetype in /etc/vimrc.
- " Clear filetype flags before changing runtimepath to force Vim to reload them.
- if exists("g:did_load_filetypes")
- filetype off
- filetype plugin indent off
- endif
- set runtimepath+=$GOROOT/misc/vim " replace $GOROOT with the output of: go env GOROOT
- filetype plugin indent on
- syntax on
-
-If you want to select fewer plugins, use the instructions in the rest of
-this file.
-
-A popular configuration is to gofmt Go source files when they are saved.
-To do that, add this line to the end of your $HOME/.vimrc.
-
- autocmd FileType go autocmd BufWritePre Fmt
-
-
-Vim syntax highlighting
------------------------
-
-To install automatic syntax highlighting for GO programs:
-
- 1. Copy or link the filetype detection script to the ftdetect directory
- underneath your vim runtime directory (normally $HOME/.vim/ftdetect)
- 2. Copy or link syntax/go.vim to the syntax directory underneath your vim
- runtime directory (normally $HOME/.vim/syntax). Linking this file rather
- than just copying it will ensure any changes are automatically reflected
- in your syntax highlighting.
- 3. Add the following line to your .vimrc file (normally $HOME/.vimrc):
-
- syntax on
-
-In a typical unix environment you might accomplish this using the following
-commands:
-
- mkdir -p $HOME/.vim/ftdetect
- mkdir -p $HOME/.vim/syntax
- mkdir -p $HOME/.vim/autoload/go
- ln -s $GOROOT/misc/vim/ftdetect/gofiletype.vim $HOME/.vim/ftdetect/
- ln -s $GOROOT/misc/vim/syntax/go.vim $HOME/.vim/syntax
- ln -s $GOROOT/misc/vim/autoload/go/complete.vim $HOME/.vim/autoload/go
- echo "syntax on" >> $HOME/.vimrc
-
-
-Vim filetype plugins
---------------------
-
-To install one of the available filetype plugins:
-
- 1. Same as 1 above.
- 2. Copy or link ftplugin/go.vim to the ftplugin directory underneath your vim
- runtime directory (normally $HOME/.vim/ftplugin). Copy or link one or more
- additional plugins from ftplugin/go/*.vim to the Go-specific subdirectory
- in the same place ($HOME/.vim/ftplugin/go/*.vim).
- 3. Add the following line to your .vimrc file (normally $HOME/.vimrc):
-
- filetype plugin on
-
-
-Vim indentation plugin
-----------------------
-
-To install automatic indentation:
-
- 1. Same as 1 above.
- 2. Copy or link indent/go.vim to the indent directory underneath your vim
- runtime directory (normally $HOME/.vim/indent).
- 3. Add the following line to your .vimrc file (normally $HOME/.vimrc):
-
- filetype indent on
-
-
-Vim compiler plugin
--------------------
-
-To install the compiler plugin:
-
- 1. Same as 1 above.
- 2. Copy or link compiler/go.vim to the compiler directory underneath your vim
- runtime directory (normally $HOME/.vim/compiler).
- 3. Activate the compiler plugin with ":compiler go". To always enable the
- compiler plugin in Go source files add an autocommand to your .vimrc file
- (normally $HOME/.vimrc):
-
- autocmd FileType go compiler go
-
-
-Godoc plugin
-------------
-
-To install godoc plugin:
-
- 1. Same as 1 above.
- 2. Copy or link plugin/godoc.vim to $HOME/.vim/plugin/godoc,
- syntax/godoc.vim to $HOME/.vim/syntax/godoc.vim,
- and autoload/go/complete.vim to $HOME/.vim/autoload/go/complete.vim.
diff --git a/sources_non_forked/vim-golang/syntax/go.vim b/sources_non_forked/vim-golang/syntax/go.vim
deleted file mode 100644
index 1ce6cb27f7..0000000000
--- a/sources_non_forked/vim-golang/syntax/go.vim
+++ /dev/null
@@ -1,207 +0,0 @@
-" Copyright 2009 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" go.vim: Vim syntax file for Go.
-"
-" Options:
-" There are some options for customizing the highlighting; the recommended
-" settings are the default values, but you can write:
-" let OPTION_NAME = 0
-" in your ~/.vimrc file to disable particular options. You can also write:
-" let OPTION_NAME = 1
-" to enable particular options. At present, all options default to on.
-"
-" - go_highlight_array_whitespace_error
-" Highlights white space after "[]".
-" - go_highlight_chan_whitespace_error
-" Highlights white space around the communications operator that don't follow
-" the standard style.
-" - go_highlight_extra_types
-" Highlights commonly used library types (io.Reader, etc.).
-" - go_highlight_space_tab_error
-" Highlights instances of tabs following spaces.
-" - go_highlight_trailing_whitespace_error
-" Highlights trailing white space.
-
-" Quit when a (custom) syntax file was already loaded
-if exists("b:current_syntax")
- finish
-endif
-
-if !exists("go_highlight_array_whitespace_error")
- let go_highlight_array_whitespace_error = 1
-endif
-if !exists("go_highlight_chan_whitespace_error")
- let go_highlight_chan_whitespace_error = 1
-endif
-if !exists("go_highlight_extra_types")
- let go_highlight_extra_types = 1
-endif
-if !exists("go_highlight_space_tab_error")
- let go_highlight_space_tab_error = 1
-endif
-if !exists("go_highlight_trailing_whitespace_error")
- let go_highlight_trailing_whitespace_error = 1
-endif
-
-syn case match
-
-syn keyword goDirective package import
-syn keyword goDeclaration var const type
-syn keyword goDeclType struct interface
-
-hi def link goDirective Statement
-hi def link goDeclaration Keyword
-hi def link goDeclType Keyword
-
-" Keywords within functions
-syn keyword goStatement defer go goto return break continue fallthrough
-syn keyword goConditional if else switch select
-syn keyword goLabel case default
-syn keyword goRepeat for range
-
-hi def link goStatement Statement
-hi def link goConditional Conditional
-hi def link goLabel Label
-hi def link goRepeat Repeat
-
-" Predefined types
-syn keyword goType chan map bool string error
-syn keyword goSignedInts int int8 int16 int32 int64 rune
-syn keyword goUnsignedInts byte uint uint8 uint16 uint32 uint64 uintptr
-syn keyword goFloats float32 float64
-syn keyword goComplexes complex64 complex128
-
-hi def link goType Type
-hi def link goSignedInts Type
-hi def link goUnsignedInts Type
-hi def link goFloats Type
-hi def link goComplexes Type
-
-" Treat func specially: it's a declaration at the start of a line, but a type
-" elsewhere. Order matters here.
-syn match goType /\/
-syn match goDeclaration /^func\>/
-
-" Predefined functions and values
-syn keyword goBuiltins append cap close complex copy delete imag len
-syn keyword goBuiltins make new panic print println real recover
-syn keyword goConstants iota true false nil
-
-hi def link goBuiltins Keyword
-hi def link goConstants Keyword
-
-" Comments; their contents
-syn keyword goTodo contained TODO FIXME XXX BUG
-syn cluster goCommentGroup contains=goTodo
-syn region goComment start="/\*" end="\*/" contains=@goCommentGroup,@Spell
-syn region goComment start="//" end="$" contains=@goCommentGroup,@Spell
-
-hi def link goComment Comment
-hi def link goTodo Todo
-
-" Go escapes
-syn match goEscapeOctal display contained "\\[0-7]\{3}"
-syn match goEscapeC display contained +\\[abfnrtv\\'"]+
-syn match goEscapeX display contained "\\x\x\{2}"
-syn match goEscapeU display contained "\\u\x\{4}"
-syn match goEscapeBigU display contained "\\U\x\{8}"
-syn match goEscapeError display contained +\\[^0-7xuUabfnrtv\\'"]+
-
-hi def link goEscapeOctal goSpecialString
-hi def link goEscapeC goSpecialString
-hi def link goEscapeX goSpecialString
-hi def link goEscapeU goSpecialString
-hi def link goEscapeBigU goSpecialString
-hi def link goSpecialString Special
-hi def link goEscapeError Error
-
-" Strings and their contents
-syn cluster goStringGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError
-syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup
-syn region goRawString start=+`+ end=+`+
-
-hi def link goString String
-hi def link goRawString String
-
-" Characters; their contents
-syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU
-syn region goCharacter start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup
-
-hi def link goCharacter Character
-
-" Regions
-syn region goBlock start="{" end="}" transparent fold
-syn region goParen start='(' end=')' transparent
-
-" Integers
-syn match goDecimalInt "\<\d\+\([Ee]\d\+\)\?\>"
-syn match goHexadecimalInt "\<0x\x\+\>"
-syn match goOctalInt "\<0\o\+\>"
-syn match goOctalError "\<0\o*[89]\d*\>"
-
-hi def link goDecimalInt Integer
-hi def link goHexadecimalInt Integer
-hi def link goOctalInt Integer
-hi def link Integer Number
-
-" Floating point
-syn match goFloat "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>"
-syn match goFloat "\<\.\d\+\([Ee][-+]\d\+\)\?\>"
-syn match goFloat "\<\d\+[Ee][-+]\d\+\>"
-
-hi def link goFloat Float
-
-" Imaginary literals
-syn match goImaginary "\<\d\+i\>"
-syn match goImaginary "\<\d\+\.\d*\([Ee][-+]\d\+\)\?i\>"
-syn match goImaginary "\<\.\d\+\([Ee][-+]\d\+\)\?i\>"
-syn match goImaginary "\<\d\+[Ee][-+]\d\+i\>"
-
-hi def link goImaginary Number
-
-" Spaces after "[]"
-if go_highlight_array_whitespace_error != 0
- syn match goSpaceError display "\(\[\]\)\@<=\s\+"
-endif
-
-" Spacing errors around the 'chan' keyword
-if go_highlight_chan_whitespace_error != 0
- " receive-only annotation on chan type
- syn match goSpaceError display "\(<-\)\@<=\s\+\(chan\>\)\@="
- " send-only annotation on chan type
- syn match goSpaceError display "\(\/
- syn match goExtraType /\/
- syn match goExtraType /\/
- syn match goExtraType /\/
-endif
-
-" Space-tab error
-if go_highlight_space_tab_error != 0
- syn match goSpaceError display " \+\t"me=e-1
-endif
-
-" Trailing white space error
-if go_highlight_trailing_whitespace_error != 0
- syn match goSpaceError display excludenl "\s\+$"
-endif
-
-hi def link goExtraType Type
-hi def link goSpaceError Error
-
-" Search backwards for a global declaration to start processing the syntax.
-"syn sync match goSync grouphere NONE /^\(const\|var\|type\|func\)\>/
-
-" There's a bug in the implementation of grouphere. For now, use the
-" following as a more expensive/less precise workaround.
-syn sync minlines=500
-
-let b:current_syntax = "go"
diff --git a/sources_non_forked/vim-golang/syntax/godoc.vim b/sources_non_forked/vim-golang/syntax/godoc.vim
deleted file mode 100644
index bd4443f7c4..0000000000
--- a/sources_non_forked/vim-golang/syntax/godoc.vim
+++ /dev/null
@@ -1,20 +0,0 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-
-if exists("b:current_syntax")
- finish
-endif
-
-syn case match
-syn match godocTitle "^\([A-Z][A-Z ]*\)$"
-
-command -nargs=+ HiLink hi def link
-
-HiLink godocTitle Title
-
-delcommand HiLink
-
-let b:current_syntax = "godoc"
-
-" vim:ts=4 sts=2 sw=2:
diff --git a/sources_non_forked/vim-less/after/syntax/html.vim b/sources_non_forked/vim-less/after/syntax/html.vim
new file mode 100644
index 0000000000..589c27185f
--- /dev/null
+++ b/sources_non_forked/vim-less/after/syntax/html.vim
@@ -0,0 +1,22 @@
+if !exists("g:less_html_style_tags")
+ let g:less_html_style_tags = 1
+endif
+
+if !g:less_html_style_tags
+ finish
+endif
+
+" Unset (but preserve) so that less will run.
+let s:pre_less_cur_syn = b:current_syntax
+unlet b:current_syntax
+
+" Inspired by code from github.com/kchmck/vim-coffee-script
+" and the html syntax file included with vim 7.4.
+
+syn include @htmlLess syntax/less.vim
+
+" We have to explicitly add to htmlHead (containedin) as that region specifies 'contains'.
+syn region lessStyle start=++ contains=@htmlLess,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc containedin=htmlHead
+
+" Reset since 'less' isn't really the current_syntax.
+let b:current_syntax = s:pre_less_cur_syn
diff --git a/sources_non_forked/vim-snippets/README.md b/sources_non_forked/vim-snippets/README.md
index bf8b3346dc..bc9dd69191 100644
--- a/sources_non_forked/vim-snippets/README.md
+++ b/sources_non_forked/vim-snippets/README.md
@@ -1,4 +1,4 @@
-Snipmate & UltiSnip Snippets
+snipMate & UltiSnip Snippets
============================
This repository contains snippets files for various programming languages.
@@ -9,7 +9,7 @@ other improvements already.
Contents
--------
-- `snippets/*`: snippets using snipmate format
+- `snippets/*`: snippets using snipMate format
- `UltiSnips/*`: snippets using UltiSnips format
Snippet engines supporting vim-snippets
@@ -28,8 +28,8 @@ snippets by typing the name of a snippet hitting the expansion mapping.
- [github.com/drmingdrmer/xptemplate](https://github.com/drmingdrmer/xptemplate):
Totally different syntax, does not read snippets contained in this file, but
it is also very powerful. It does not support vim-snippets (just listing it
- here for completness)
-
+ here for completeness)
+
There tries to be a more comprehensive list (which still is incomplete) here:
http://vim-wiki.mawercer.de/wiki/topic/text-snippets-skeletons-templates.html
@@ -45,16 +45,15 @@ If you have VimL only (vim without python support) your best option is using
[garbas/vim-snipmate](https://github.com/garbas/vim-snipmate) and cope with the
minor bugs found in the engine.
+Q: Should "snipMate be deprecated in favour of UltiSnips"?
-Q: Should "snipmate be deprecated in favour of UltiSnips"?
-
-A: No, because snimpate is VimL, and UltiSnips requires Python.
+A: No, because snipMate is VimL, and UltiSnips requires Python.
Some people want to use snippets without having to install Vim with Python
-support. Yes - this sucks.
+support. Yes - this sucks.
One solution would be: Use snippets if they are good enough, but allow overriding them
in UltiSnips. This would avoid most duplication while still serving most users.
-AFAIK there is a nested-placeholder branch for snipmate too. snipmate is still
+AFAIK there is a nested-placeholder branch for snipMate too. snipMate is still
improved by Adnan Zafar. So maybe time is not ready to make a final decision yet.
[github issue/discussion](https://github.com/honza/vim-snippets/issues/363)
@@ -68,11 +67,11 @@ which is why Marc Weber thinks that it doesn't make sense to repeat the same
repetitive information everywhere.
*Recommended way:*
-[vim-addon-manager](vim-addon-manager) (because Marc Weber wrote it for exactly
-this reason, it supports simple dependency management). Eg you're done by this
-line in your .vimrc:
+[vim-addon-manager](https://github.com/MarcWeber/vim-addon-manager) (because Marc Weber wrote it for exactly
+this reason, it supports simple dependency management). E.g. you're done by this
+line in your `.vimrc`:
-```
+```vim
" assuming you want to use snipmate snippet engine
ActivateAddons vim-snippets snipmate
```
@@ -80,16 +79,17 @@ ActivateAddons vim-snippets snipmate
[vim-pi](https://bitbucket.org/vimcommunity/vim-pi/issue/90/we-really-need-a-web-interface)
Is the place to discuss plugin managers and repository resources.
-About how to install snipate see [snipmate@garbas](https://github.com/garbas/vim-snipmate)
+About how to install snipMate see [snipmate@garbas](https://github.com/garbas/vim-snipmate)
(Bundle, Pathogen, git clone - keywords to make people find this link by ctrl-f search)
-I know that I should be reading the docs of the snippet engine, just let me copy paste into my .vimrc:
+I know that I should be reading the docs of the snippet engine, just let me copy paste into my `.vimrc`:
[See this pull request](https://github.com/honza/vim-snippets/pull/307/files).
TROUBLE
=======
-If you still have trouble getting this to work create a github ticket, ask on
-irc or the mailinglist.
+
+If you still have trouble getting this to work create a GitHub ticket, ask on
+IRC or the mailing list.
Policies / for contributors
---------------------------
@@ -105,7 +105,8 @@ el : else ..
wh : while (cond) ...
```
-Don't add useless placeholder default texts like
+Don't add useless placeholder default texts like:
+
```
if (${1:condition}){
${2:some code here}
@@ -119,7 +120,7 @@ if (${1}){
}
```
-Exception: Functions which are used less often, such as Vim's matchall(), matchstr()
+Exception: Functions which are used less often, such as Vim's `matchall()`, `matchstr()`
functions which case hints may be helpful to remember order. In the VimL case
get vim-dev plugin which has function completion
@@ -140,15 +141,16 @@ on merging should be done (dropping duplicates etc). Also see engines section ab
Related repositories
--------------------
+
We also encourage people to maintain sets of snippets for particular use cases
so that all users can benefit from them. People can list their snippet repositories here:
- * https://github.com/rbonvall/snipmate-snippets-bib (snippets for BibTeX files)
- * https://github.com/sudar/vim-arduino-snippets (snippets for Arduino files)
- * https://github.com/zedr/zope-snipmate-bundle.git (snippets for Python, TAL and ZCML)
- * https://github.com/bonsaiben/bootstrap-snippets (snippets for Twitter Bootstrap markup, in HTML and Haml)
+* https://github.com/rbonvall/snipmate-snippets-bib (snippets for BibTeX files)
+* https://github.com/sudar/vim-arduino-snippets (snippets for Arduino files)
+* https://github.com/zedr/zope-snipmate-bundle.git (snippets for Python, TAL and ZCML)
+* https://github.com/bonsaiben/bootstrap-snippets (snippets for Twitter Bootstrap markup, in HTML and Haml)
-Installation using VAM: "github:rbonvall/snipmate-snippets-bib"
+Installation using VAM: https://github.com/MarcWeber/vim-addon-manager
Future - ideas - examples
-------------------------
@@ -156,7 +158,6 @@ Future - ideas - examples
[overview snippet engines](http://vim-wiki.mawercer.de/wiki/topic/text-snippets-skeletons-templates.html)
If you have ideas you can add them to that list of "snippet engine features by example".
-
Historical notes
----------------
@@ -166,15 +167,15 @@ unfortunately abandoned the project. [Rok Garbas][3] is now maintaining a
Versions / dialects / ..
========================
+
There are some issues, such as newer language versions may require other
snippets than older. If this exists we currently recommend doing this:
-add snippets/ruby.snippets (common snippets)
-add snippets/ruby-1.8.snippets (1.8 only)
-add snippets/ruby-1.9.snippets (1.9 only)
-
-then configure github.com/garbas/vim-snipmate this way:
+* add snippets/ruby.snippets (common snippets)
+* add snippets/ruby-1.8.snippets (1.8 only)
+* add snippets/ruby-1.9.snippets (1.9 only)
+then configure https://github.com/garbas/vim-snipmate this way:
```vim
let g:snipMate = {}
@@ -183,17 +184,18 @@ let g:snipMate.scope_aliases['ruby'] = 'ruby,ruby-rails,ruby-1.9'
```
If it happens that you work on a project requiring ruby-1.8 snippets instead,
-consider using vim-addon-local-vimrc and override the filetypes.
+consider using `vim-addon-local-vimrc` and override the filetypes.
Well - of course it may not make sense to create a new file for each
ruby-library-version triplet. Sometimes postfixing a name such as
- migrate_lib_20_down
- migrate_lib_20_up
+```
+migrate_lib_20_down
+migrate_lib_20_up
+```
will do it then if syntax has changed.
-
Language maintainers
--------------------
@@ -219,7 +221,6 @@ License
Just as the original snipMate plugin, all the snippets are licensed under the
terms of the MIT license.
-
[1]: http://github.com/garbas/vim-snipmate
[2]: http://github.com/msanders
[3]: http://github.com/garbas
diff --git a/sources_non_forked/vim-snippets/UltiSnips/ada.snippets b/sources_non_forked/vim-snippets/UltiSnips/ada.snippets
new file mode 100644
index 0000000000..d33c777825
--- /dev/null
+++ b/sources_non_forked/vim-snippets/UltiSnips/ada.snippets
@@ -0,0 +1,324 @@
+priority -50
+
+global !p
+
+def ada_case(word):
+ out = word[0].upper()
+ for i in range(1, len(word)):
+ if word[i - 1] == '_':
+ out = out + word[i].upper()
+ else:
+ out = out + word[i]
+ return out
+
+def get_year():
+ import time
+ return time.strftime("%Y")
+
+endglobal
+
+snippet wi "with"
+with $1;$0
+endsnippet
+
+snippet pac "package"
+package ${1:`!p snip.rv = ada_case(snip.basename)`} is
+ $0
+end $1;
+endsnippet
+
+snippet pacb "package body"
+package body ${1:`!p snip.rv = ada_case(snip.basename)`} is
+ $0
+end $1;
+endsnippet
+
+snippet ent "entry ... when"
+entry $1($2) when $3 is
+begin
+ $0
+end $1;
+endsnippet
+
+snippet task "task"
+task $1 is
+ entry $0
+end $1;
+endsnippet
+
+snippet taskb "task body"
+task body $1 is
+ $2
+begin
+ $0
+end $1;
+endsnippet
+
+snippet acc "accept"
+accept $1($2) do
+ $0
+end $1;
+endsnippet
+
+snippet prot "protected type"
+protected type $1($2) is
+ $0
+end $1;
+endsnippet
+
+snippet prob "protected body"
+protected body $1 is
+ $2
+begin
+ $0
+end $1;
+endsnippet
+
+snippet gen "generic type"
+generic
+ type $1 is $2;$0
+endsnippet
+
+snippet ty "type"
+type $1 is $2;$0
+endsnippet
+
+snippet tyd "type with default value"
+type $1 is $2
+ with Default_Value => $3;$0
+endsnippet
+
+snippet subty "subtype"
+subtype $1 is $2;$0
+endsnippet
+
+snippet dec "declare block"
+declare
+ $1
+begin
+ $0
+end;
+endsnippet
+
+snippet decn "declare named block"
+$1:
+declare
+ $2
+begin
+ $0
+end $1;
+endsnippet
+
+snippet ifex "if expression"
+if $1 then $2 else $0
+endsnippet
+
+snippet casex "case expression"
+case $1 is
+ when $2 => $3,$0
+endsnippet
+
+snippet fora "for all"
+for all $1 ${2:in} $3 => $0
+endsnippet
+
+snippet fors "for some"
+for some $1 ${2:in} $3 => $0
+endsnippet
+
+snippet if "if"
+if $1 then
+ $0
+end if;
+endsnippet
+
+snippet ife "if ... else"
+if $1 then
+ $2
+else
+ $0
+end if;
+endsnippet
+
+snippet el "else"
+else
+ $0
+endsnippet
+
+snippet eif "elsif"
+elsif $1 then
+ $0
+endsnippet
+
+snippet wh "while"
+while $1 loop
+ $0
+end loop;
+endsnippet
+
+snippet nwh "named while"
+$1:
+while $2 loop
+ $0
+end loop $1;
+endsnippet
+
+snippet for "for"
+for ${1:I} in $2 loop
+ $0
+end loop;
+endsnippet
+
+snippet fore "for each"
+for $1 of $2 loop
+ $0
+end loop;
+endsnippet
+
+snippet nfor "named for"
+$1:
+for ${2:I} in $3 loop
+ $0
+end loop $1;
+endsnippet
+
+snippet nfore "named for each"
+$1:
+for $2 of $3 loop
+ $0
+end loop $1;
+endsnippet
+
+snippet proc "procedure"
+procedure $1($2) is
+ $3
+begin
+ $0
+end $1;
+endsnippet
+
+snippet procd "procedure declaration"
+procedure $1;$0
+endsnippet
+
+snippet fun "function"
+function $1($2) return $3 is
+ $4
+begin
+ $0
+end $1;
+endsnippet
+
+snippet fune "expression function"
+function $1 return $2 is
+ ($3);$0
+endsnippet
+
+snippet fund "function declaration"
+function $1 return $2;$0
+endsnippet
+
+snippet ret "extended return"
+return $1 do
+ $0
+end return;
+endsnippet
+
+snippet rec "record"
+record
+ $0
+end record;
+endsnippet
+
+snippet case "case"
+case $1 is
+ when $2 => $3;$0
+end case;
+endsnippet
+
+snippet whe "when"
+when $1 => $2;$0
+endsnippet
+
+snippet wheo "when others"
+when others => $1;$0
+endsnippet
+
+snippet lo "loop"
+loop
+ $0
+end loop;
+endsnippet
+
+snippet nlo "named loop"
+$1:
+loop
+ $0
+end loop $1;
+endsnippet
+
+snippet ex "exit when"
+exit when $1;$0
+endsnippet
+
+snippet put "Ada.Text_IO.Put"
+Ada.Text_IO.Put($1);$0
+endsnippet
+
+snippet putl "Ada.Text_IO.Put_Line"
+Ada.Text_IO.Put_Line($1);$0
+endsnippet
+
+snippet get "Ada.Text_IO.Get"
+Ada.Text_IO.Get($1);$0
+endsnippet
+
+snippet getl "Ada.Text_IO.Get_Line"
+Ada.Text_IO.Get_Line($1);$0
+endsnippet
+
+snippet newline "Ada.Text_IO.New_Line"
+Ada.Text_IO.New_Line(${1:1});$0
+endsnippet
+
+snippet gpl "GPL license header"
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU ${1}General Public License as published by
+-- the Free Software Foundation; either version ${2:3} 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 $1General Public License for more details.
+--
+-- You should have received a copy of the GNU $1General Public License
+-- along with this program; if not, see .
+--
+-- Copyright (C) ${3:Author}, ${4:`!p snip.rv = get_year()`}
+
+$0
+endsnippet
+
+snippet gplf "GPL file license header"
+-- This file is part of ${1:Program-Name}.
+--
+-- $1 is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU ${2}General Public License as published by
+-- the Free Software Foundation, either version ${3:3} of the License, or
+-- (at your option) any later version.
+--
+-- $1 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 $2General Public License for more details.
+--
+-- You should have received a copy of the GNU $2General Public License
+-- along with $1. If not, see .
+--
+-- Copyright (C) ${4:Author}, ${5:`!p snip.rv = get_year()`}
+
+$0
+endsnippet
+
+# vim:ft=snippets:
diff --git a/sources_non_forked/vim-snippets/UltiSnips/all.snippets b/sources_non_forked/vim-snippets/UltiSnips/all.snippets
index 532010e7b5..f816ba403c 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/all.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/all.snippets
@@ -120,4 +120,14 @@ vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.
endsnippet
+##########################
+# VIM MODELINE GENERATOR #
+##########################
+# See advice on `:help 'tabstop'` for why these values are set. Uses second
+# modeline form ('set') to work in languages with comment terminators
+# (/* like C */).
+snippet modeline "Vim modeline"
+vim`!v ':set '. (&expandtab ? printf('et sw=%i ts=%i', &sw, &ts) : printf('noet sts=%i sw=%i ts=%i', &sts, &sw, &ts)) . (&tw ? ' tw='. &tw : '') . ':'`
+endsnippet
+
# vim:ft=snippets:
diff --git a/sources_non_forked/vim-snippets/UltiSnips/c.snippets b/sources_non_forked/vim-snippets/UltiSnips/c.snippets
index e6ea2f9d2b..618bfe3d82 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/c.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/c.snippets
@@ -77,7 +77,6 @@ else:
${VISUAL}${0}
#endif /* end of include guard: $1 */
-
endsnippet
snippet td "Typedef"
diff --git a/sources_non_forked/vim-snippets/UltiSnips/help.snippets b/sources_non_forked/vim-snippets/UltiSnips/help.snippets
index 6132738566..b07a7de0f7 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/help.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/help.snippets
@@ -29,4 +29,9 @@ ${1:SubSubsection}:`!p snip.rv = sec_title(snip, t)`
$0
endsnippet
+# For vim help, follow the same settings as the official docs.
+snippet modeline "Vim help modeline"
+ `!v 'vim'`:tw=78:ts=8:ft=help:norl:
+endsnippet
+
# vim:ft=snippets:
diff --git a/sources_non_forked/vim-snippets/UltiSnips/html.snippets b/sources_non_forked/vim-snippets/UltiSnips/html.snippets
index 5746feb65e..fee451f976 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/html.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/html.snippets
@@ -253,6 +253,10 @@ snippet td "table cell" w
$0
endsnippet
+snippet th "table header" w
+
$0
+endsnippet
+
snippet tr "table row" w
$0
endsnippet
diff --git a/sources_non_forked/vim-snippets/UltiSnips/java.snippets b/sources_non_forked/vim-snippets/UltiSnips/java.snippets
index 54ca6f35e0..e8eb77ccfb 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/java.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/java.snippets
@@ -180,13 +180,13 @@ endsnippet
snippet elif "else if"
else if ($1)`!p nl(snip)`{
- $0
+ $0${VISUAL}
}
endsnippet
snippet el "else" w
else`!p nl(snip)`{
- $0
+ $0${VISUAL}
}
endsnippet
@@ -214,7 +214,7 @@ endsnippet
snippet if "if" b
if ($1)`!p nl(snip)`{
- $0
+ $0${VISUAL}
}
endsnippet
@@ -303,7 +303,7 @@ endsnippet
snippet try "try/catch" b
try {
- $1
+ $1${VISUAL}
} catch(${2:Exception} ${3:e}){
${4:e.printStackTrace();}
}
diff --git a/sources_non_forked/vim-snippets/UltiSnips/javascript_jasmine.snippets b/sources_non_forked/vim-snippets/UltiSnips/javascript_jasmine.snippets
index 3a87298571..e392459f47 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/javascript_jasmine.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/javascript_jasmine.snippets
@@ -50,6 +50,10 @@ snippet ee "expect to equal (js)" b
expect(${1:target}).toEqual(${2:value});
endsnippet
+snippet eb "expect to be (js)" b
+expect(${1:target}).toBe(${2:value});
+endsnippet
+
snippet em "expect to match (js)" b
expect(${1:target}).toMatch(${2:pattern});
endsnippet
diff --git a/sources_non_forked/vim-snippets/UltiSnips/pandoc.snippets b/sources_non_forked/vim-snippets/UltiSnips/pandoc.snippets
index 157c9ef068..ad165c5643 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/pandoc.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/pandoc.snippets
@@ -1,3 +1,12 @@
+extends markdown
+
+# overwrite if necessary
priority -49
-extends markdown
+snippet title "Title Header" b
+% ${1:`!v Filename('', 'title')`}
+% ${2:`!v g:snips_author`}
+% ${3:`!v strftime("%d %B %Y")`}
+
+$0
+endsnippet
diff --git a/sources_non_forked/vim-snippets/UltiSnips/perl.snippets b/sources_non_forked/vim-snippets/UltiSnips/perl.snippets
index abaae3f5a5..67c7f278d4 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/perl.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/perl.snippets
@@ -129,4 +129,11 @@ while ($1) {
endsnippet
+snippet until "until"
+until ($1) {
+ ${2:# body...}
+}
+
+endsnippet
+
# vim:ft=snippets:
diff --git a/sources_non_forked/vim-snippets/UltiSnips/php.snippets b/sources_non_forked/vim-snippets/UltiSnips/php.snippets
index b71091208d..bf450ff085 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/php.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/php.snippets
@@ -14,7 +14,7 @@ endsnippet
snippet do "do"
do {
${2:// code... }
-} while (${1:/* condition */});"
+} while (${1:/* condition */});
endsnippet
snippet doc_f "doc_f"
@@ -67,6 +67,12 @@ if (${1:/* condition */}) {
}
endsnippet
+snippet elif "elseif"
+elseif (${1:/* condition */}) {
+ ${2:// code...}
+}
+endsnippet
+
snippet inc "inc"
include '${1:file}';${2}
endsnippet
@@ -240,8 +246,8 @@ public function __construct(${1:$dependencies})
$0
endsnippet
-snippet pr "Dumb debug helper in HTML"
-echo '
' . var_export($1, 1) . '
';$0
+snippet ve "Dumb debug helper in HTML"
+ echo '
' . var_export($1, 1) . '
';$0
endsnippet
snippet pc "Dumb debug helper in cli"
diff --git a/sources_non_forked/vim-snippets/UltiSnips/python.snippets b/sources_non_forked/vim-snippets/UltiSnips/python.snippets
index 233ad33290..3387533d0c 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/python.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/python.snippets
@@ -84,22 +84,22 @@ def get_style(snip):
def format_arg(arg, style):
if style == DOXYGEN:
- return "@param %s @todo" % arg
+ return "@param %s TODO" % arg
elif style == SPHINX:
- return ":param %s: @todo" % arg
+ return ":param %s: TODO" % arg
elif style == NORMAL:
- return ":%s: @todo" % arg
+ return ":%s: TODO" % arg
elif style == GOOGLE:
- return "%s (@todo): @todo" % arg
+ return "%s (TODO): TODO" % arg
def format_return(style):
if style == DOXYGEN:
- return "@return: @todo"
+ return "@return: TODO"
elif style in (NORMAL, SPHINX):
- return ":returns: @todo"
+ return ":returns: TODO"
elif style == GOOGLE:
- return "Returns: @todo"
+ return "Returns: TODO"
def write_docstring_args(args, snip):
@@ -169,7 +169,7 @@ class ${1:MyClass}(${2:object}):
`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)`
def __init__(self$4):
- `!p snip.rv = triple_quotes(snip)`${5:@todo: to be defined1.}`!p
+ `!p snip.rv = triple_quotes(snip)`${5:TODO: to be defined1.}`!p
snip.rv = ""
snip >> 2
@@ -197,7 +197,7 @@ write_slots_args(args, snip)
`
def __init__(self$4):
- `!p snip.rv = triple_quotes(snip)`${5:@todo: to be defined.}`!p
+ `!p snip.rv = triple_quotes(snip)`${5:TODO: to be defined.}`!p
snip.rv = ""
snip >> 2
@@ -399,7 +399,7 @@ snippet def "function with docstrings" b
def ${1:function}(`!p
if snip.indent:
snip.rv = 'self' + (", " if len(t[2]) else "")`${2:arg1}):
- `!p snip.rv = triple_quotes(snip)`${4:@todo: Docstring for $1.}`!p
+ `!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p
snip.rv = ""
snip >> 1
@@ -437,7 +437,7 @@ endsnippet
snippet rwprop "Read write property" b
def ${1:name}():
`!p snip.rv = triple_quotes(snip) if t[2] else ''
-`${2:@todo: Docstring for $1.}`!p
+`${2:TODO: Docstring for $1.}`!p
if t[2]:
snip >> 1
diff --git a/sources_non_forked/vim-snippets/UltiSnips/rust.snippets b/sources_non_forked/vim-snippets/UltiSnips/rust.snippets
index d7f0047c0b..82a1abb8ae 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/rust.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/rust.snippets
@@ -73,7 +73,7 @@ endsnippet
snippet ecl "...extern crate log;" b
#![feature(phase)]
-#[phase(syntax, link)] extern crate log;
+#[phase(plugin, link)] extern crate log;
endsnippet
snippet mod "A module" b
@@ -83,16 +83,16 @@ mod ${1:`!p snip.rv = snip.basename.lower() or "name"`} {
endsnippet
snippet crate "Create header information" b
-// Crate ID
-#![crate_id = "${1:crate_name}#${2:0.0.1}"]
+// Crate name
+#![crate_name = "${1:crate_name}"]
// Additional metadata attributes
-#![desc = "${3:Descrption.}"]
-#![license = "${4:BSD}"]
-#![comment = "${5:Comment.}"]
+#![desc = "${2:Descrption.}"]
+#![license = "${3:BSD}"]
+#![comment = "${4:Comment.}"]
// Specify the output type
-#![crate_type = "${6:lib}"]
+#![crate_type = "${5:lib}"]
endsnippet
snippet allow "#[allow(..)]" b
diff --git a/sources_non_forked/vim-snippets/UltiSnips/scss.snippets b/sources_non_forked/vim-snippets/UltiSnips/scss.snippets
index 70a44a076f..f214284747 100644
--- a/sources_non_forked/vim-snippets/UltiSnips/scss.snippets
+++ b/sources_non_forked/vim-snippets/UltiSnips/scss.snippets
@@ -1,54 +1,56 @@
+extends css
+
priority -50
-snippet /@?imp/ "@import '...';" br
+snippet imp "@import '...';" b
@import '${1:file}';
endsnippet
-snippet /@?inc/ "@include mixin(...);" br
+snippet inc "@include mixin(...);" b
@include ${1:mixin}(${2:arguments});
endsnippet
-snippet /@?ext?/ "@extend %placeholder;" br
+snippet ext "@extend %placeholder;" b
@extend %${1:placeholder};
endsnippet
-snippet /@?mixin/ "@mixin (...) { ... }" br
+snippet mixin "@mixin (...) { ... }" b
@mixin ${1:name}(${2:arguments}) {
${VISUAL}$0
}
endsnippet
-snippet /@?fun/ "@function (...) { ... }" br
+snippet fun "@function (...) { ... }" b
@function ${1:name}(${2:arguments}) {
${VISUAL}$0
}
endsnippet
-snippet /@?if/ "@if (...) { ... }" br
+snippet if "@if (...) { ... }" b
@if ${1:condition} {
${VISUAL}$0
}
endsnippet
-snippet /(} )?@?else/ "@else { ... }" br
+snippet else "@else { ... }" b
@else ${1:condition} {
${VISUAL}$0
}
endsnippet
-snippet /@?for/ "@for loop" br
+snippet for "@for loop" b
@for ${1:$i} from ${2:1} through ${3:3} {
${VISUAL}$0
}
endsnippet
-snippet /@?each/ "@each loop" br
+snippet each "@each loop" b
@each ${1:$item} in ${2:item, item, item} {
${VISUAL}$0
}
endsnippet
-snippet /@?while/ "@while loop" br
+snippet while "@while loop" b
@while ${1:$i} ${2:>} ${3:0} {
${VISUAL}$0
}
diff --git a/sources_non_forked/vim-snippets/snippets/ada.snippets b/sources_non_forked/vim-snippets/snippets/ada.snippets
new file mode 100644
index 0000000000..ce377b995e
--- /dev/null
+++ b/sources_non_forked/vim-snippets/snippets/ada.snippets
@@ -0,0 +1,255 @@
+snippet wi with
+ with ${1};${0}
+
+snippet pac package
+ package ${1} is
+ ${0}
+ end $1;
+
+snippet pacb package body
+ package body ${1} is
+ ${0}
+ end $1;
+
+snippet ent entry ... when
+ entry ${1}(${2}) when ${3} is
+ begin
+ ${0}
+ end $1;
+
+snippet task task
+ task ${1} is
+ entry ${0}
+ end $1;
+
+snippet taskb task body
+ task body ${1} is
+ ${2}
+ begin
+ ${0}
+ end $1;
+
+snippet acc accept
+ accept ${1}(${2}) do
+ ${0}
+ end $1;
+
+snippet prot protected type
+ protected type ${1}(${2}) is
+ ${0}
+ end $1;
+
+snippet prob protected body
+ protected body ${1} is
+ ${2}
+ begin
+ ${0}
+ end $1;
+
+snippet gen generic type
+ generic
+ type ${1} is ${2};${0}
+
+snippet ty type
+ type ${1} is ${2};${0}
+
+snippet tyd type with default value
+ type ${1} is ${2}
+ with Default_Value => ${3};${0}
+
+snippet subty subtype
+ subtype ${1} is ${2};${0}
+
+snippet dec declare block
+ declare
+ ${1}
+ begin
+ ${0}
+ end;
+
+snippet decn declare named block
+ ${1}:
+ declare
+ ${2}
+ begin
+ ${0}
+ end $1;
+
+snippet ifex if expression
+ if ${1} then ${2} else ${0}
+
+snippet casex case expression
+ case ${1} is
+ when ${2} => ${3},${0}
+
+snippet fora for all
+ for all ${1} ${2:in} ${3} => ${0}
+
+snippet fors for some
+ for some ${1} ${2:in} ${3} => ${0}
+
+snippet if if
+ if ${1} then
+ ${0}
+ end if;
+
+snippet ife if ... else
+ if ${1} then
+ ${2}
+ else
+ ${0}
+ end if;
+
+snippet el else
+ else
+ ${0}
+
+snippet eif elsif
+ elsif ${1} then
+ ${0}
+
+snippet wh while
+ while ${1} loop
+ ${0}
+ end loop;
+
+snippet nwh named while
+ ${1}:
+ while ${2} loop
+ ${0}
+ end loop $1;
+
+snippet for for
+ for ${1:I} in ${2} loop
+ ${0}
+ end loop;
+
+snippet fore for each
+ for ${1} of ${2} loop
+ ${0}
+ end loop;
+
+snippet nfor named for
+ ${1}:
+ for ${2:I} in ${3} loop
+ ${0}
+ end loop $1;
+
+snippet nfore named for each
+ ${1}:
+ for ${2} of ${3} loop
+ ${0}
+ end loop $1;
+
+snippet proc procedure
+ procedure ${1}(${2}) is
+ ${3}
+ begin
+ ${0}
+ end $1;
+
+snippet procd procedure declaration
+ procedure ${1};${0}
+
+snippet fun function
+ function ${1}(${2}) return ${3} is
+ ${4}
+ begin
+ ${0}
+ end $1;
+
+snippet fune expression function
+ function ${1} return ${2} is
+ (${3});${0}
+
+snippet fund function declaration
+ function ${1} return ${2};${0}
+
+snippet ret extended return
+ return ${1} do
+ ${0}
+ end return;
+
+snippet rec record
+ record
+ ${0}
+ end record;
+
+snippet case case
+ case ${1} is
+ when ${2} => ${3};${0}
+ end case;
+
+snippet whe when
+ when ${1} => ${2};${0}
+
+snippet wheo when others
+ when others => ${1};${0}
+
+snippet lo loop
+ loop
+ ${0}
+ end loop;
+
+snippet nlo named loop
+ ${1}:
+ loop
+ ${0}
+ end loop $1;
+
+snippet ex exit when
+ exit when ${1};${0}
+
+snippet put Ada.Text_IO.Put
+ Ada.Text_IO.Put(${1});${0}
+
+snippet putl Ada.Text_IO.Put_Line
+ Ada.Text_IO.Put_Line(${1});${0}
+
+snippet get Ada.Text_IO.Get
+ Ada.Text_IO.Get(${1});${0}
+
+snippet getl Ada.Text_IO.Get_Line
+ Ada.Text_IO.Get_Line(${1});${0}
+
+snippet newline Ada.Text_IO.New_Line
+ Ada.Text_IO.New_Line(${1:1});${0}
+
+snippet gpl GPL license header
+ -- This program is free software; you can redistribute it and/or modify
+ -- it under the terms of the GNU ${1}General Public License as published by
+ -- the Free Software Foundation; either version ${2:3} 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 $1General Public License for more details.
+ --
+ -- You should have received a copy of the GNU $1General Public License
+ -- along with this program; if not, see .
+ --
+ -- Copyright (C) ${3:Author}, ${4:`strftime("%Y")`}
+
+ ${0}
+
+snippet gplf GPL file license header
+ -- This file is part of ${1:Program-Name}.
+ --
+ -- $1 is free software: you can redistribute it and/or modify
+ -- it under the terms of the GNU ${2}General Public License as published by
+ -- the Free Software Foundation, either version ${3:3} of the License, or
+ -- (at your option) any later version.
+ --
+ -- $1 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 $2General Public License for more details.
+ --
+ -- You should have received a copy of the GNU $2General Public License
+ -- along with $1. If not, see .
+ --
+ -- Copyright (C) ${4:Author}, ${5:`strftime("%Y")`}
+
+ ${0}
+
diff --git a/sources_non_forked/vim-snippets/snippets/coffee/requirejs_coffee.snippets b/sources_non_forked/vim-snippets/snippets/coffee/requirejs_coffee.snippets
new file mode 100644
index 0000000000..6dfe1796e3
--- /dev/null
+++ b/sources_non_forked/vim-snippets/snippets/coffee/requirejs_coffee.snippets
@@ -0,0 +1,11 @@
+snippet def
+ define ["${1:#dependencies1}"], (${2:#dependencies2}) ->
+ ${0:TARGET}
+
+snippet defn
+ define "${1:#name}", ["${2:#dependencies1}"], (${3:#dependencies2}) ->
+ ${0:TARGET}
+
+snippet reqjs
+ require ["${1:#dependencies1}"], (${2:#dependencies2}) ->
+ ${0:TARGET}
diff --git a/sources_non_forked/vim-snippets/snippets/d.snippets b/sources_non_forked/vim-snippets/snippets/d.snippets
new file mode 100644
index 0000000000..216a4d8925
--- /dev/null
+++ b/sources_non_forked/vim-snippets/snippets/d.snippets
@@ -0,0 +1,338 @@
+### Import
+snippet imp
+ import
+snippet pimp
+ public import
+### My favorite modules
+snippet io
+ std.stdio
+snippet traits
+ std.traits
+snippet conv
+ std.conv
+snippet arr
+ std.array
+snippet algo
+ std.algorithm
+snippet theusual
+ import std.stdio, std.string, std.array;
+ import std.traits, std.conv, std.algorithm;
+ import std.math, std.regex;
+### Control Structures
+snippet for
+ for(int ${1:i} = 0; $1 < ${2:count}; $1++) {
+ ${0}
+ }
+snippet fe
+ foreach(${1:elem}; ${2:range}) {
+ ${0}
+ }
+snippet fei
+ foreach(${1:i}, ${2:elem}; ${3:range}) {
+ ${0}
+ }
+snippet fer
+ foreach_reverse(${1:elem}; ${2:range}) {
+ ${0}
+ }
+snippet feri
+ foreach_reverse(${1:i}, ${2:elem}; ${3:range}) {
+ ${0}
+ }
+snippet sce
+ scope(exit) ${1:f.close();}
+snippet scs
+ scope(success) ${1}
+snippet scf
+ scope(failure) ${1}
+snippet el
+ else {
+ ${1}
+ }
+snippet eif
+ else if(${1}) {
+ ${0}
+ }
+snippet if
+ if(${1}) {
+ ${0}
+ }
+snippet ife
+ if(${1}) {
+ ${2}
+ } else {
+ ${3}
+ }
+snippet ifee
+ if(${1}) {
+ ${2}
+ } else if(${3}) {
+ ${4}
+ } else {
+ ${5}
+ }
+snippet sw
+ switch(${1}) {
+ ${0}
+ }
+snippet cs
+ case ${1:0}:
+ ${2}
+ break;
+snippet def
+ default:
+ ${0}
+snippet fsw
+ final switch(${1}) {
+ ${0}
+ }
+snippet try
+ try {
+ ${1}
+ } catch(${2:Exception} ${3:e}) {
+ ${4}
+ }
+snippet tcf
+ try {
+ ${0}
+ } catch(${1:Exception} ${2:e}) {
+ ${3}
+ } finally {
+ ${4}
+ }
+snippet wh
+ while(${1:cond}) {
+ ${0}
+ }
+snippet dowh
+ do {
+ ${1}
+ } while(${2});
+snippet sif
+ static if(${1:cond}) {
+ ${2}
+ }
+snippet sife
+ static if(${1}) {
+ ${2}
+ } else {
+ ${3}
+ }
+snippet sifee
+ static if(${1}) {
+ ${2}
+ } else static if(${3}) {
+ ${4}
+ } else {
+ ${5}
+ }
+snippet seif
+ else static if(${1}) {
+ ${2}
+ }
+snippet ?
+ (${1: a > b}) ? ${2:a} : ${3:b};
+snippet with
+ with(${1:exp}) {
+ ${2}
+ } ${0}
+### Functions
+snippet fun
+ ${1:auto} ${2:func}(${3:params}) {
+ ${0}
+ }
+snippet contr
+ in {
+ ${1}
+ } out {
+ ${2}
+ } body {
+ ${0}
+ }
+snippet l
+ (${1:x}) => ${2:x}${0:;}
+snippet funl
+ function (${1:int x}) => ${2}${3:;}
+snippet del
+ delegate (${1:int x}) => ${2}${3:;}
+### Templates
+snippet temp
+ template ${1:`vim_snippets#Filename("$2", "untitled")`}(${2:T}) {
+ ${0}
+ }
+snippet tempif
+ template ${1:`vim_snippets#Filename("$2", "untitled")`}(${2:T}) if(${3:isSomeString!}$2) {
+ ${0}
+ }
+snippet opApply
+ int opApply(Dg)(Dg dg) if(ParameterTypeTuble!Dg.length == 2) {
+ ${0}
+ }
+snippet psn
+ pure @safe nothrow
+snippet safe
+ @safe
+snippet trusted
+ @trusted
+snippet system
+ @system
+### OOPs
+snippet cl
+ class${1:(T)} ${2:`vim_snippets#Filename("$3", "untitled")`} {
+ ${0}
+ }
+snippet str
+ struct${1:(T)} ${2:`vim_snippets#Filename("$3", "untitled")`} {
+ ${0}
+ }
+snippet uni
+ union${1:(T)} ${2:`vim_snippets#Filename("$3", "untitled")`} {
+ ${0}
+ }
+snippet inter
+ interface I${1:`vim_snippets#Filename("$2", "untitled")`} {
+ ${0}
+ }
+snippet enum
+ enum ${1} {
+ ${0}
+ }
+snippet pu
+ public
+snippet pr
+ private
+snippet po
+ protected
+snippet ctor
+ this(${1}) {
+ ${0}
+ }
+snippet dtor
+ ~this(${1}) {
+ ${0}
+ }
+### Type Witchery
+snippet al
+ alias ${1:b} = ${2:a};
+ ${0}
+snippet alth
+ alias ${1:value} this;
+ ${0}
+### The Commonplace
+snippet main
+ void main() {
+ ${0}
+ }
+snippet maina
+ void main(string[] args) {
+ ${0}
+ }
+snippet mod
+ module ${1:main};${0}
+snippet var
+ ${1:auto} ${2:var} = ${0:1};
+snippet new
+ ${1:auto} ${2:var} = new ${3:Object}(${4});
+ ${0}
+snippet file
+ auto ${1:f} = File(${2:"useful_info.xml"}, ${3:"rw"});
+ ${0}
+snippet map
+ map!(${1:f})(${2:xs});
+ ${0}
+snippet filter
+ filter!(${1:p})(${2:xs});
+ ${0}
+snippet reduce
+ reduce!(${1:f})(${2:xs});
+ ${0}
+snippet find
+ find!(${1:p})($2:xs);
+ ${0}
+snippet aa
+ ${1:int}[${2:string}] ${3:dict} = ${0};
+### Misc
+snippet #!
+ #!/usr/bin/env rdmd
+snippet bang
+ #!/usr/bin/env rdmd
+snippet rdmd
+ #!/usr/bin/env rdmd
+snippet isstr
+ isSomeString!${1:S}
+snippet isnum
+ isNumeric!${1:N}
+snippet tos
+ to!string(${1:x});
+ ${0}
+snippet toi
+ to!int(${1:str});
+ ${0}
+snippet tod
+ to!double(${1:str});
+ ${0}
+snippet un
+ unittest {
+ ${0}
+ }
+snippet ver
+ version(${1:Posix}) {
+ ${0}
+ }
+snippet de
+ debug {
+ ${0}
+ }
+snippet sst
+ shared static this(${1}) {
+ ${0}
+ }
+snippet td
+ // Typedef is deprecated. Use alias instead.
+ typedef
+snippet ino
+ inout
+snippet imm
+ immutable
+snippet fin
+ final
+snippet con
+ const
+snippet psi
+ private static immutable ${1:int} ${2:Constant} = ${3:1};
+ ${0}
+snippet prag
+ pragma(${1})
+snippet pms
+ pragma(msg, ${1:Warning});
+snippet asm
+ asm {
+ ${1}
+ }
+snippet mixin
+ mixin(${1:`writeln("Hello, World!");`});
+snippet over
+ override
+snippet ret
+ return ${1};
+snippet FILE
+ __FILE__
+snippet MOD
+ __MODULE__
+snippet LINE
+ __LINE__
+snippet FUN
+ __FUNCTION__
+snippet PF
+ __PRETTY_FUNCTION__
+snippet cast
+ cast(${1:T})(${2:val});
+snippet /*
+ /*
+ * ${1}
+ */
+### Fun stuff
+snippet idk
+ // I don't know how this works. Don't touch it.
+snippet idfk
+ // Don't FUCKING touch this.
diff --git a/sources_non_forked/vim-snippets/snippets/html.snippets b/sources_non_forked/vim-snippets/snippets/html.snippets
index 3642bbca77..5fb4aa921e 100644
--- a/sources_non_forked/vim-snippets/snippets/html.snippets
+++ b/sources_non_forked/vim-snippets/snippets/html.snippets
@@ -330,7 +330,7 @@ snippet dt+
snippet em
${0}
snippet embed
-
snippet fieldset