From 89c36a0d2ca36edc678b77f366f2687f4307d53b Mon Sep 17 00:00:00 2001 From: amix Date: Sat, 27 Sep 2014 16:32:18 +0100 Subject: [PATCH] Updated plugins --- autoload/pathogen.vim | 379 +++---- sources_non_forked/goyo.vim/plugin/goyo.vim | 14 +- sources_non_forked/nerdtree/doc/NERD_tree.txt | 4 +- sources_non_forked/syntastic/README.markdown | 81 +- .../syntastic/autoload/syntastic/c.vim | 64 +- .../syntastic/autoload/syntastic/log.vim | 32 +- .../autoload/syntastic/postprocess.vim | 19 + .../syntastic/autoload/syntastic/util.vim | 70 +- .../syntastic/doc/syntastic.txt | 107 +- .../syntastic/plugin/syntastic.vim | 24 +- .../syntastic/plugin/syntastic/checker.vim | 11 +- .../syntastic/plugin/syntastic/cursor.vim | 95 +- .../syntastic/plugin/syntastic/loclist.vim | 130 ++- .../syntastic/plugin/syntastic/registry.vim | 14 +- .../syntax_checkers/arduino/avrgcc.vim | 2 +- .../syntax_checkers/c/clang_check.vim | 65 ++ .../syntax_checkers/c/clang_tidy.vim | 65 ++ .../syntastic/syntax_checkers/c/oclint.vim | 15 +- .../syntastic/syntax_checkers/c/pc_lint.vim | 65 ++ .../syntax_checkers/cpp/clang_check.vim | 25 + .../syntax_checkers/cpp/clang_tidy.vim | 25 + .../syntastic/syntax_checkers/cpp/pc_lint.vim | 26 + .../erlang/erlang_check_file.erl | 9 +- .../syntastic/syntax_checkers/eruby/ruby.vim | 11 +- .../syntax_checkers/handlebars/handlebars.vim | 1 + .../syntax_checkers/java/checkstyle.vim | 18 +- .../syntax_checkers/javascript/eslint.vim | 3 +- .../syntastic/syntax_checkers/less/lessc.vim | 1 + .../syntax_checkers/ocaml/camlp4o.vim | 2 +- .../syntastic/syntax_checkers/php/php.vim | 3 +- .../syntastic/syntax_checkers/php/phplint.vim | 91 ++ .../syntax_checkers/puppet/puppet.vim | 4 +- .../syntax_checkers/python/frosted.vim | 2 +- .../syntax_checkers/python/pylint.vim | 4 +- .../syntastic/syntax_checkers/ruby/mri.vim | 2 +- .../syntastic/syntax_checkers/sass/sass.vim | 2 +- .../syntax_checkers/scala/scalastyle.vim | 71 ++ .../syntax_checkers/scss/scss_lint.vim | 2 +- .../syntastic/syntax_checkers/sh/sh.vim | 2 +- .../syntax_checkers/spec/lacheck.vim | 43 + .../syntax_checkers/text/atdtool.vim | 2 + .../vim-airline/autoload/airline.vim | 2 +- .../autoload/airline/extensions.vim | 4 + .../autoload/airline/extensions/branch.vim | 13 +- .../autoload/airline/extensions/default.vim | 6 +- .../autoload/airline/extensions/tabline.vim | 88 +- .../airline/extensions/windowswap.vim | 23 + .../vim-airline/autoload/airline/init.vim | 4 +- .../vim-airline/autoload/airline/section.vim | 2 +- .../autoload/airline/themes/kalisi.vim | 59 +- .../vim-airline/doc/airline.txt | 31 + .../vim-fugitive/plugin/fugitive.vim | 2 +- sources_non_forked/vim-golang/README.md | 8 + .../vim-golang/autoload/go/complete.vim | 103 -- sources_non_forked/vim-golang/compiler/go.vim | 30 - .../vim-golang/ftdetect/gofiletype.vim | 23 - sources_non_forked/vim-golang/ftplugin/go.vim | 19 - .../vim-golang/ftplugin/go/fmt.vim | 69 -- .../vim-golang/ftplugin/go/import.vim | 250 ----- .../vim-golang/ftplugin/go/test.sh | 78 -- sources_non_forked/vim-golang/indent/go.vim | 77 -- sources_non_forked/vim-golang/mirror.txt | 6 - .../vim-golang/plugin/godoc.vim | 130 --- sources_non_forked/vim-golang/readme.txt | 103 -- sources_non_forked/vim-golang/syntax/go.vim | 207 ---- .../vim-golang/syntax/godoc.vim | 20 - .../vim-less/after/syntax/html.vim | 22 + sources_non_forked/vim-snippets/README.md | 71 +- .../vim-snippets/UltiSnips/ada.snippets | 324 ++++++ .../vim-snippets/UltiSnips/all.snippets | 10 + .../vim-snippets/UltiSnips/c.snippets | 1 - .../vim-snippets/UltiSnips/help.snippets | 5 + .../vim-snippets/UltiSnips/html.snippets | 4 + .../vim-snippets/UltiSnips/java.snippets | 8 +- .../UltiSnips/javascript_jasmine.snippets | 4 + .../vim-snippets/UltiSnips/pandoc.snippets | 11 +- .../vim-snippets/UltiSnips/perl.snippets | 7 + .../vim-snippets/UltiSnips/php.snippets | 12 +- .../vim-snippets/UltiSnips/python.snippets | 22 +- .../vim-snippets/UltiSnips/rust.snippets | 14 +- .../vim-snippets/UltiSnips/scss.snippets | 22 +- .../vim-snippets/snippets/ada.snippets | 255 +++++ .../snippets/coffee/requirejs_coffee.snippets | 11 + .../vim-snippets/snippets/d.snippets | 338 ++++++ .../vim-snippets/snippets/html.snippets | 45 +- .../vim-snippets/snippets/java.snippets | 2 + .../javascript/javascript-requirejs.snippets | 14 + .../javascript/javascript.node.snippets | 50 + .../snippets/javascript/javascript.snippets | 20 +- .../vim-snippets/snippets/perl.snippets | 8 + .../vim-snippets/snippets/php.snippets | 4 + .../vim-snippets/snippets/rails.snippets | 2 + .../vim-snippets/snippets/ruby.snippets | 6 +- .../vim-snippets/snippets/rust.snippets | 14 +- .../vim-snippets/snippets/stylus.snippets | 993 ++++++++++++++++++ .../vim-snippets/snippets/tex.snippets | 17 + .../vim-snippets/snippets/zsh.snippets | 12 +- 97 files changed, 3635 insertions(+), 1655 deletions(-) create mode 100644 sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/c/pc_lint.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/cpp/pc_lint.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/php/phplint.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/scala/scalastyle.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/spec/lacheck.vim create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/windowswap.vim create mode 100644 sources_non_forked/vim-golang/README.md delete mode 100644 sources_non_forked/vim-golang/autoload/go/complete.vim delete mode 100644 sources_non_forked/vim-golang/compiler/go.vim delete mode 100644 sources_non_forked/vim-golang/ftdetect/gofiletype.vim delete mode 100644 sources_non_forked/vim-golang/ftplugin/go.vim delete mode 100644 sources_non_forked/vim-golang/ftplugin/go/fmt.vim delete mode 100644 sources_non_forked/vim-golang/ftplugin/go/import.vim delete mode 100644 sources_non_forked/vim-golang/ftplugin/go/test.sh delete mode 100644 sources_non_forked/vim-golang/indent/go.vim delete mode 100644 sources_non_forked/vim-golang/mirror.txt delete mode 100644 sources_non_forked/vim-golang/plugin/godoc.vim delete mode 100644 sources_non_forked/vim-golang/readme.txt delete mode 100644 sources_non_forked/vim-golang/syntax/go.vim delete mode 100644 sources_non_forked/vim-golang/syntax/godoc.vim create mode 100644 sources_non_forked/vim-less/after/syntax/html.vim create mode 100644 sources_non_forked/vim-snippets/UltiSnips/ada.snippets create mode 100644 sources_non_forked/vim-snippets/snippets/ada.snippets create mode 100644 sources_non_forked/vim-snippets/snippets/coffee/requirejs_coffee.snippets create mode 100644 sources_non_forked/vim-snippets/snippets/d.snippets create mode 100644 sources_non_forked/vim-snippets/snippets/javascript/javascript-requirejs.snippets create mode 100644 sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets create mode 100644 sources_non_forked/vim-snippets/snippets/stylus.snippets diff --git a/autoload/pathogen.vim b/autoload/pathogen.vim index 7b89ccaf..a13ae08f 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') - endif - endfor - endfor -endfunction " }}}1 - -command! -bar Helptags :call pathogen#helptags() - -" Execute the given command. This is basically a backdoor for --remote-expr. -function! pathogen#execute(...) abort " {{{1 - for command in a:000 - execute command - endfor - return '' -endfunction " }}}1 +" 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 5308326a..c64d4aae 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 79b649ff..5d5b3f6f 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 d0eb41f2..8d96daa7 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 22fb0ede..5dad1408 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 65570d98..80fd7cf4 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 837a280f..51831b47 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 daefafdd..8f09e818 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 43a5ace1..15f999f4 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 + 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 e7c05bf7..19a61984 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 47d83106..6a7aab3b 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 2a1b867c..98647638 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 00000000..16fbd59b --- /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 00000000..96d2e0e6 --- /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 ca717c48..cb896914 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 00000000..68050298 --- /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 00000000..3eb7b809 --- /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 00000000..e4266664 --- /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 00000000..95feab5e --- /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 bd94870b..367c110e 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 ea6b2f05..3dbc3a5e 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 93c298f6..adf4b611 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 387c2c9f..75431610 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 96919c8f..f23eb73b 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 9b5efa96..ce653f51 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 d9f57001..5f7a0ee7 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 23c1db9e..558dc0ac 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 00000000..d857d9e2 --- /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 5777993d..38e896cd 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 e1284e44..05a07080 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 88dff422..d1373439 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 e55c493d..8d179c27 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 a515fe5f..21e0fd6f 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 00000000..9c0a3cce --- /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 2f971dce..fa63f19e 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 d736f296..65d84a97 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 00000000..dfd965dc --- /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 b0f32c11..48c65f9e 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 b4a88817..81cf3b5f 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 64560738..1738f626 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 954b0f68..e97cae85 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 d01349df..53b000d4 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 ec75db75..955f3db1 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 00000000..2beb91c8 --- /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 539f2c49..021b3b28 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 0baf0779..06d930f4 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 4ff94f57..82c70712 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 cd2a17c5..ddc81ce0 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 b5a204b2..8fabd1cc 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 00000000..aca52b78 --- /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 a4fa6b66..00000000 --- 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 2c8cce49..00000000 --- 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 b658f6b0..00000000 --- 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 532fb172..00000000 --- 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 359545bd..00000000 --- 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 91c8697a..00000000 --- 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 d8a5b895..00000000 --- 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 e3d6e841..00000000 --- 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 7fc4f60f..00000000 --- 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 a145d313..00000000 --- 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 9a9e2287..00000000 --- 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 1ce6cb27..00000000 --- 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 bd4443f7..00000000 --- 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 00000000..589c2718 --- /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 bf8b3346..bc9dd691 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 00000000..d33c7778 --- /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 532010e7..f816ba40 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 e6ea2f9d..618bfe3d 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 61327385..b07a7de0 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 5746feb6..fee451f9 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 54ca6f35..e8eb77cc 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 3a872985..e392459f 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 157c9ef0..ad165c56 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 abaae3f5..67c7f278 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 b7109120..bf450ff0 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 233ad332..3387533d 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 d7f0047c..82a1abb8 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 70a44a07..f2142847 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 00000000..ce377b99 --- /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 00000000..6dfe1796 --- /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 00000000..216a4d89 --- /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 3642bbca..5fb4aa92 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
${0} @@ -353,6 +353,14 @@ snippet figcaption
${0}
snippet figure
${0}
+snippet figure# +
+ ${0} +
+snippet figure. +
+ ${0} +
snippet footer