From 20729bff94911b937b6c39058cb56c9e626387b1 Mon Sep 17 00:00:00 2001 From: amix Date: Mon, 14 Mar 2016 11:04:57 +0100 Subject: [PATCH] Updated plugins --- sources_non_forked/syntastic/CONTRIBUTING.md | 16 +- sources_non_forked/syntastic/README.markdown | 48 +++--- .../syntastic/autoload/syntastic/util.vim | 15 +- .../syntastic/doc/syntastic.txt | 80 +++++----- .../syntastic/plugin/syntastic.vim | 2 +- .../syntastic/plugin/syntastic/registry.vim | 7 +- .../syntastic/plugin/syntastic/signs.vim | 14 +- .../syntax_checkers/haskell/hlint.vim | 1 + .../syntax_checkers/python/pep257.vim | 56 ++----- .../syntax_checkers/python/pydocstyle.vim | 66 +++++++++ .../autoload/airline/themes/lucius.vim | 6 + sources_non_forked/vim-airline/CHANGELOG.md | 34 +++-- .../vim-airline/ISSUE_TEMPLATE.md | 14 ++ .../vim-airline/autoload/airline.vim | 5 +- .../autoload/airline/extensions.vim | 4 + .../autoload/airline/extensions/branch.vim | 2 +- .../autoload/airline/extensions/po.vim | 36 +++++ .../autoload/airline/extensions/tabline.vim | 39 +++-- .../airline/extensions/tabline/buffers.vim | 35 +++-- .../airline/extensions/tabline/ctrlspace.vim | 139 ++++++++++++------ .../airline/extensions/tabline/tabs.vim | 32 ++-- .../airline/extensions/whitespace.vim | 8 +- .../vim-airline/autoload/airline/init.vim | 11 +- .../vim-airline/autoload/airline/parts.vim | 6 +- .../vim-airline/doc/airline.txt | 46 ++++-- .../vim-commentary/plugin/commentary.vim | 4 +- .../vim-fugitive/doc/fugitive.txt | 4 + .../vim-fugitive/plugin/fugitive.vim | 50 ++++--- .../vim-go/.github/CONTRIBUTING.md | 9 ++ .../vim-go/.github/ISSUE_TEMPLATE.md | 30 ++++ .../vim-go/autoload/go/alternate.vim | 36 ++--- sources_non_forked/vim-go/autoload/go/cmd.vim | 14 +- .../vim-go/autoload/go/complete.vim | 7 +- sources_non_forked/vim-go/autoload/go/def.vim | 2 +- sources_non_forked/vim-go/autoload/go/doc.vim | 10 +- sources_non_forked/vim-go/autoload/go/fmt.vim | 53 +++++-- .../vim-go/autoload/go/import.vim | 2 +- .../vim-go/autoload/go/oracle.vim | 4 + .../vim-go/autoload/go/util.vim | 6 + .../vim-go/ftplugin/go/commands.vim | 4 +- .../vim-go/ftplugin/go/mappings.vim | 8 +- sources_non_forked/vim-go/plugin/go.vim | 2 +- sources_non_forked/vim-go/syntax/go.vim | 23 +-- .../vim-markdown/ftplugin/markdown.vim | 2 +- .../vim-snipmate/autoload/snipMate.vim | 4 +- .../vim-snipmate/plugin/snipMate.vim | 12 +- sources_non_forked/vim-snippets/README.md | 4 +- .../vim-snippets/UltiSnips/django.snippets | 2 +- .../vim-snippets/UltiSnips/go.snippets | 35 ----- .../UltiSnips/javascript.snippets | 6 + .../vim-snippets/UltiSnips/rust.snippets | 6 +- .../vim-snippets/snippets/elixir.snippets | 10 +- .../vim-snippets/snippets/go.snippets | 49 +++--- .../javascript/javascript.node.snippets | 2 +- .../vim-snippets/snippets/ruby.snippets | 4 + .../vim-snippets/snippets/rust.snippets | 4 +- 56 files changed, 726 insertions(+), 404 deletions(-) create mode 100644 sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim create mode 100644 sources_non_forked/vim-airline/ISSUE_TEMPLATE.md create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/po.vim create mode 100644 sources_non_forked/vim-go/.github/CONTRIBUTING.md create mode 100644 sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md diff --git a/sources_non_forked/syntastic/CONTRIBUTING.md b/sources_non_forked/syntastic/CONTRIBUTING.md index 9c78aa32..6dd17758 100644 --- a/sources_non_forked/syntastic/CONTRIBUTING.md +++ b/sources_non_forked/syntastic/CONTRIBUTING.md @@ -11,11 +11,11 @@ ## 1. Bug reports / GitHub issues Please note that the preferred channel for posting bug reports is the -[issue tracker at GitHub][0]. Reports posted elsewhere are less likely +[issue tracker at GitHub][0]. Reports posted elsewhere are less likely to be seen by the core team. When reporting a bug make sure you search the existing GitHub issues -for the same/similar issues. If you find one, feel free to add a `+1` +for the same/similar issues. If you find one, feel free to add a `+1` comment with any additional information that may help us solve the issue. @@ -26,7 +26,7 @@ When creating a new issue be sure to state the following: * the version of syntastic you are using (see `:SyntasticInfo`). For syntax checker bugs also state the version of the checker executable -that you are using. Adding debugging information is typically useful +that you are using. Adding debugging information is typically useful too: * open a file handled by your checker; @@ -38,10 +38,10 @@ too: ## 2. Submitting a patch -Before you consider adding features to syntastic, _please_ spend a few -minutes (re-)reading the latest version of the [manual][1]. Syntastic -is changing rapidly at times, and it's quite possible that some features -you want to add exist already. +Before you consider adding features to syntastic, _please_ spend a few minutes +(re-)reading the latest version of the [manual][1]. Syntastic is changing +rapidly at times, and it's possible that some features you want to add exist +already. To submit a patch: @@ -54,7 +54,7 @@ Small, focused patches are preferred. Large changes to the code should be discussed with the core team first. Create an issue and explain your plan and see what we say. -Also, make sure to update the manual whenever applicable. Nobody can use +Also, make sure to update the manual whenever applicable. Nobody can use features that aren't documented. diff --git a/sources_non_forked/syntastic/README.markdown b/sources_non_forked/syntastic/README.markdown index a05b0f2a..91629417 100644 --- a/sources_non_forked/syntastic/README.markdown +++ b/sources_non_forked/syntastic/README.markdown @@ -35,7 +35,7 @@ 4.8. [How can I pass additional arguments to a checker?](#faqargs) 4.9. [Syntastic supports several checkers for my filetype - how do I tell which one(s) to use?](#faqcheckers) 4.10. [What is the difference between syntax checkers and style checkers?](#faqstyle) -4.11. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate) +4.11. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate) 4.12. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext) 4.13. [The error window is closed automatically when I :quit the current buffer but not when I :bdelete it?](#faqbdelete) 5. [Resources](#otherresources) @@ -64,7 +64,7 @@ Object, OS X and iOS property lists, Pug (formerly Jade), Puppet, Python, QML, R, Racket, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, z80, Zope page templates, and -zsh. See the [wiki][3] for details about the corresponding supported checkers. +zsh. See the [wiki][3] for details about the corresponding supported checkers. A number of third-party Vim plugins also provide checkers for syntastic, for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12], @@ -72,7 +72,7 @@ for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12], [vim-eastwood][28], and [vim-swift][24]. 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 +errors. Note that, in practise, you will only have a subset of these methods enabled. ![Screenshot 1][0] @@ -105,6 +105,12 @@ Syntastic should work with any modern plugin managers for Vim, such as [Vundle][17]. Instructions for installing syntastic with [Pathogen][1] are included below for completeness. +Starting with Vim version 7.4.1486 you can also load syntastic using the +standard mechanism of packages, without the help of third-party plugin managers +(see `:help packages` in Vim for details). Beware however that, while support +for packages has been added in Vim 7.4.1384, the functionality needed by +syntastic is present only in versions 7.4.1486 and later. + Last but not least: syntastic doesn't know how to do any syntax checks by itself. In order to get meaningful results you need to install external checkers corresponding to the types of files you use. Please consult the @@ -122,7 +128,7 @@ If you already have [Pathogen][1] working then skip [Step 1](#step1) and go to #### 2.2.1\. Step 1: Install pathogen.vim First I'll show you how to install Tim Pope's [Pathogen][1] so that it's easy to -install syntastic. Do this in your terminal so that you get the `pathogen.vim` +install syntastic. Do this in your terminal so that you get the `pathogen.vim` file and the directories it needs: ```sh mkdir -p ~/.vim/autoload ~/.vim/bundle && \ @@ -148,7 +154,7 @@ Quit vim and start it back up to reload it, then type: :Helptags ``` If you get an error when you do this, then you probably didn't install -[Pathogen][1] right. Go back to [Step 1](#step1) and make sure you did the +[Pathogen][1] right. Go back to [Step 1](#step1) and make sure you did the following: 1. Created both the `~/.vim/autoload` and `~/.vim/bundle` directories. @@ -161,7 +167,7 @@ following: ## 3\. Recommended settings Syntastic has numerous options that can be configured, and the defaults -are not particularly well suitable for new users. It is recommended +are not particularly well suitable for new users. It is recommended that you start by adding the following lines to your `vimrc` file, and return to them after reading the manual (see `:help syntastic` in Vim): ```vim @@ -231,8 +237,8 @@ let g:syntastic_python_python_exec = '/path/to/python3' __4.3. Q. Are there any local checkers for HTML5 that I can use with syntastic?__ -[HTML Tidy][18] has a fork named [HTML Tidy for HTML5][19]. It's a drop -in replacement, and syntastic can use it without changes. Just install it +[HTML Tidy][18] has a fork named [HTML Tidy for HTML5][19]. It's a drop +in replacement, and syntastic can use it without changes. Just install it somewhere and point `g:syntastic_html_tidy_exec` to its executable: ```vim let g:syntastic_html_tidy_exec = 'tidy5' @@ -253,12 +259,12 @@ __4.4. Q. The `perl` checker has stopped working...__ A. The `perl` checker runs `perl -c` against your file, which in turn __executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use` -statements in your file (cf. [perlrun][10]). This is probably fine if you -wrote the file yourself, but it's a security problem if you're checking third -party files. Since there is currently no way to disable this behaviour while -still producing useful results, the checker is now disabled by default. To -(re-)enable it, make sure the `g:syntastic_perl_checkers` list includes `perl`, -and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`: +statements in your file (cf. [perlrun][10]). This is probably fine if you +wrote the file yourself, but it's a security problem if you're checking +third-party files. Since there is currently no way to disable this behaviour +while still producing useful results, the checker is now disabled by default. +To (re-)enable it, make sure the `g:syntastic_perl_checkers` list includes +`perl`, and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`: ```vim let g:syntastic_enable_perl_checker = 1 ``` @@ -267,7 +273,7 @@ let g:syntastic_enable_perl_checker = 1 __4.5. Q. What happened to the `rustc` checker?__ -A. It is now part of the [rust.vim][12] plugin. If you install this plugin the +A. It is now part of the [rust.vim][12] plugin. If you install this plugin the checker should be picked up automatically by syntastic. @@ -275,7 +281,7 @@ checker should be picked up automatically by syntastic. __4.6. Q. What happened to the `xcrun` checker?__ A. The `xcrun` checker used to have a security problem and it has been removed. -A better checker for __Swift__ is part of the [vim-swift][24] plugin. If you +A better checker for __Swift__ is part of the [vim-swift][24] plugin. If you install this plugin the checker should be picked up automatically by syntastic. @@ -284,7 +290,7 @@ __4.7. Q. I run a checker and the location list is not updated...__ __4.7. 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 +command, in order to minimise conflicts with other plugins. If you want the location list to always be updated when you run the checkers, add this line to your `vimrc`: ```vim @@ -367,7 +373,7 @@ 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 +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. @@ -380,7 +386,7 @@ See `:help syntastic_quiet_messages` for details. -__4.11. Q. I have enabled multiple checkers for the current filetype. How can I +__4.11. Q. I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?__ A. Set `g:syntastic_aggregate_errors` to 1 in your `vimrc`: @@ -426,8 +432,8 @@ There are also a dedicated [google group][5], and a [syntastic tag at StackOverflow][6]. Syntastic aims to provide a common interface to syntax checkers for as many -languages as possible. For particular languages, there are, of course, other -plugins that provide more functionality than syntastic. You might want to take +languages as possible. For particular languages, there are, of course, other +plugins that provide more functionality than syntastic. You might want to take a look at [ghcmod-vim][31], [jedi-vim][7], [python-mode][8], [vim-go][32], or [YouCompleteMe][9]. diff --git a/sources_non_forked/syntastic/autoload/syntastic/util.vim b/sources_non_forked/syntastic/autoload/syntastic/util.vim index ccb08410..8a593457 100644 --- a/sources_non_forked/syntastic/autoload/syntastic/util.vim +++ b/sources_non_forked/syntastic/autoload/syntastic/util.vim @@ -240,7 +240,12 @@ function! syntastic#util#findGlobInParent(what, where) abort " {{{2 let old = '' while here !=# '' - let p = split(globpath(here, a:what, 1), '\n') + try + " Vim 7.4.279 and later + let p = globpath(here, a:what, 1, 1) + catch /\m^Vim\%((\a\+)\)\=:E118/ + let p = split(globpath(here, a:what, 1), "\n") + endtry if !empty(p) return fnamemodify(p[0], ':p') @@ -499,7 +504,13 @@ function! s:_rmrf(what) abort " {{{2 return endif - for f in split(globpath(a:what, '*', 1), "\n") + try + " Vim 7.4.279 and later + let entries = globpath(a:what, '*', 1, 1) + catch /\m^Vim\%((\a\+)\)\=:E118/ + let entries = split(globpath(a:what, '*', 1), "\n") + endtry + for f in entries call s:_rmrf(f) endfor silent! call syntastic#util#system(s:rmdir . ' ' . syntastic#util#shescape(a:what)) diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt index 7a937b42..d60e8ccf 100644 --- a/sources_non_forked/syntastic/doc/syntastic.txt +++ b/sources_non_forked/syntastic/doc/syntastic.txt @@ -64,8 +64,8 @@ CONTENTS *syntastic-contents* 1. Intro *syntastic-intro* Syntastic is a syntax checking plugin that runs files through external syntax -checkers. This can be done on demand, or automatically as files are saved and -opened. If syntax errors are detected, the user is notified and is happy +checkers. This can be done on demand, or automatically as files are saved +and opened. If syntax errors are detected, the user is notified and is happy because they didn't have to compile their code or execute their script to find them. @@ -103,8 +103,8 @@ list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch between active (checking on writing the buffer) and passive (manual) checking. You don't have to switch focus to the |location-list| window to jump to the -different errors. Vim provides several built-in commands for this, for -example |:lnext| and |:lprevious|. You may want to add shortcut mappings for +different errors. Vim provides several built-in commands for this, for +example |:lnext| and |:lprevious|. You may want to add shortcut mappings for these commands, or perhaps install a plugin such as Tim Pope's 'unimpaired' (see https://github.com/tpope/vim-unimpaired) that provides such mappings. @@ -242,7 +242,7 @@ disable generation of these labels by turning off '|syntastic_id_checkers|'. If |'syntastic_sort_aggregated_errors'| is set (which is the default), messages in the aggregated list are grouped by file, then sorted by line number, then -type, then column number. Otherwise messages produced by the same checker are +type, then column number. Otherwise messages produced by the same checker are grouped together, and sorting within each group is decided by the variables |'syntastic___sort'|. @@ -274,17 +274,17 @@ for more info. :SyntasticCheck *:SyntasticCheck* -Manually cause a syntax check to be done. By default the checkers in the +Manually cause a syntax check to be done. By default the checkers in the |'g:syntastic__checkers'| or |'b:syntastic_checkers'| lists are run, -cf. |syntastic-filetype-checkers|. If |'syntastic_aggregate_errors'| is unset +cf. |syntastic-filetype-checkers|. If |'syntastic_aggregate_errors'| is unset (which is the default), checking stops the first time a checker reports any errors; if |'syntastic_aggregate_errors'| is set, all checkers that apply are run in turn, and all errors found are aggregated in a single list. -The command may be followed by a (space separated) list of checkers. In this +The command may be followed by a (space separated) list of checkers. In this case |'g:syntastic__checkers'| and |'b:syntastic_checkers'| are ignored, and the checkers named by the command's arguments are run instead, in -the order specified. The set by |'syntastic_aggregate_errors'| still apply. +the order specified. The set by |'syntastic_aggregate_errors'| still apply. Example: > :SyntasticCheck flake8 pylint @@ -319,7 +319,7 @@ when buffers are first loaded, as well as on saving: > *'syntastic_check_on_wq'* Default: 1 In active mode syntax checks are normally run whenever buffers are written to -disk, even when the writes happen just before quitting Vim. If you want to +disk, even when the writes happen just before quitting Vim. If you want to skip checks when you issue |:wq|, |:x|, and |:ZZ|, set this variable to 0: > let g:syntastic_check_on_wq = 0 < @@ -347,7 +347,7 @@ By default, when results from multiple checkers are aggregated in a single error list (that is either when |'syntastic_aggregate_errors'| is enabled, or when checking a file with a composite filetype), errors are grouped by file, then sorted by line number, then grouped by type (namely errors take -precedence over warnings), then they are sorted by column number. If you want +precedence over warnings), then they are sorted by column number. If you want to leave messages grouped by checker output, set this variable to 0: > let g:syntastic_sort_aggregated_errors = 0 < @@ -413,7 +413,7 @@ option to tell syntastic to always stick any detected errors into the < Please note that if |'syntastic_auto_jump'| is set to a non-zero value the location list is overwritten with Syntastic's own list when taking a jump, -regardless of the value of |'syntastic_always_populate_loc_list'|. The +regardless of the value of |'syntastic_always_populate_loc_list'|. The location list is also overwritten when running the |:Errors| command. *'syntastic_auto_jump'* @@ -469,10 +469,10 @@ opens. > < *'syntastic_ignore_files'* Default: [] -Use this option to specify files that syntastic should never check. It's a -list of |regular-expression| patterns. The full paths of files (see |::p|) are +Use this option to specify files that syntastic should never check. It's a +list of |regular-expression| patterns. The full paths of files (see |::p|) are matched against these patterns, and the matches are case-sensitive. Use |\c| -to specify case-insensitive patterns. Example: > +to specify case-insensitive patterns. Example: > let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$'] < *'syntastic_filetype_map'* @@ -504,7 +504,7 @@ The option should be set to something like: > < "mode" can be mapped to one of two values - "active" or "passive". When set to "active", syntastic does automatic checking whenever a buffer is saved or -initially opened. When set to "passive" syntastic only checks when the user +initially opened. When set to "passive" syntastic only checks when the user calls |:SyntasticCheck|. The exceptions to these rules are defined with "active_filetypes" and @@ -531,7 +531,7 @@ whether the corresponding buffer should be checked automatically. *'syntastic_quiet_messages'* Default: {} -Use this option to filter out some of the messages produced by checkers. The +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": "errors", @@ -646,20 +646,20 @@ The above variable can be used to disable exit code checks in syntastic. Default: Vim's 'shell' This is the (full path to) the shell syntastic will use to run the checkers. On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for -file "stdout" and "stderr" redirections ">file" and "2>file". Examples of +file "stdout" and "stderr" redirections ">file" and "2>file". Examples of compatible shells are "zsh", "bash", "ksh", and of course the original Bourne "sh". This shell is independent of Vim's 'shell', and it isn't used for interactive -operations. It must take care to initialize all environment variables needed -by the checkers you're using. Example: > +operations. It must take care to initialize all environment variables needed +by the checkers you're using. Example: > let g:syntastic_shell = "/bin/sh" < *'syntastic_nested_autocommands'* Default: 0 Controls whether syntastic's autocommands |BufReadPost| and |BufWritePost| are called from other |BufReadPost| and |BufWritePost| autocommands (see -|autocmd-nested|). This is known to trigger interoperability problems with +|autocmd-nested|). This is known to trigger interoperability problems with other plugins, so only enable it if you actually need that functionality. *'syntastic_debug'* @@ -688,7 +688,7 @@ addition to being added to Vim's |message-history|: > < *'syntastic_extra_filetypes'* Default: [] -List of filetypes handled by checkers external to syntastic. If you have a Vim +List of filetypes handled by checkers external to syntastic. If you have a Vim plugin that adds a checker for syntastic, and if the said checker deals with a filetype that is unknown to syntastic, you might consider adding that filetype to this list: > @@ -710,7 +710,7 @@ variable 'g:syntastic__checkers' to a list of checkers, e.g. > < *'b:syntastic_checkers'* There is also a per-buffer version of this setting, 'b:syntastic_checkers'. -When set, it takes precedence over |'g:syntastic__checkers'|. You can +When set, it takes precedence over |'g:syntastic__checkers'|. You can use this in an autocmd to configure specific checkers for particular paths: > autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 | \ let b:syntastic_checkers = ["pylint"] | endif @@ -856,19 +856,19 @@ composite filetypes to simple ones using |'syntastic_filetype_map'|, e.g.: > 6.2 Editing files over network *syntastic-netrw* The standard plugin |netrw| allows Vim to transparently edit files over -network and inside archives. Currently syntastic doesn't support this mode -of operation. It can only check files that can be accessed directly by local +network and inside archives. Currently syntastic doesn't support this mode +of operation. It can only check files that can be accessed directly by local checkers, without any translation or conversion. ------------------------------------------------------------------------------ 6.3 The 'shellslash' option *syntastic-shellslash* -The 'shellslash' option is relevant only on Windows systems. This option +The 'shellslash' option is relevant only on Windows systems. This option determines (among other things) the rules for quoting command lines, and there is no easy way for syntastic to make sure its state is appropriate for your -shell. It should be turned off if your 'shell' (or |'syntastic_shell'|) is +shell. It should be turned off if your 'shell' (or |'syntastic_shell'|) is "cmd.exe", and on for shells that expect an UNIX-like syntax, such as Cygwin's -"sh". Most checkers will stop working if 'shellslash' is set to the wrong +"sh". Most checkers will stop working if 'shellslash' is set to the wrong value. ------------------------------------------------------------------------------ @@ -887,8 +887,8 @@ quickfix windows. ------------------------------------------------------------------------------ 7.1 The csh and tcsh shells *syntastic-csh* -The "csh" and "tcsh" shells are mostly compatible with syntastic. However, -some checkers assume Bourne shell syntax for redirecting "stderr". For this +The "csh" and "tcsh" shells are mostly compatible with syntastic. However, +some checkers assume Bourne shell syntax for redirecting "stderr". For this reason, you should point |'syntastic_shell'| to a Bourne-compatible shell, such as "zsh", "bash", "ksh", or even the original Bourne "sh": > let g:syntastic_shell = "/bin/sh" @@ -961,7 +961,7 @@ packaged with a syntastic segment. To customize this segment create a file At the time of this writing, syntastic is not compatible with using "Windows PowerShell" (http://technet.microsoft.com/en-us/library/bb978526.aspx) as Vim's -'shell'. You may still run Vim from 'PowerShell', but you do have to point +'shell'. You may still run Vim from 'PowerShell', but you do have to point Vim's 'shell' to a more traditional program, such as "cmd.exe": > set shell=cmd.exe < @@ -980,18 +980,18 @@ for python in syntastic (see |'syntastic_mode_map'|), or disable lint checks in 7.9. vim-auto-save *syntastic-vim-auto-save* Syntastic can be used together with the "vim-auto-save" Vim plugin (see -https://github.com/907th/vim-auto-save). However, syntastic checks in active +https://github.com/907th/vim-auto-save). However, syntastic checks in active mode only work with "vim-auto-save" version 0.1.7 or later. ------------------------------------------------------------------------------ 7.10. vim-go *syntastic-vim-go* Syntastic can be used along with the "vim-go" Vim plugin (see -https://github.com/fatih/vim-go). However, both "vim-go" and syntastic run -syntax checks by default when you save buffers to disk. To avoid conflicts, +https://github.com/fatih/vim-go). However, both "vim-go" and syntastic run +syntax checks by default when you save buffers to disk. To avoid conflicts, you have to either set passive mode in syntastic for the go filetype (see |syntastic_mode_map|), or prevent "vim-go" from showing a quickfix window when -|g:go_fmt_command| fails, by setting |g:go_fmt_fail_silently| to 1. E.g.: > +|g:go_fmt_command| fails, by setting |g:go_fmt_fail_silently| to 1. E.g.: > let g:go_fmt_fail_silently = 1 < ------------------------------------------------------------------------------ @@ -999,16 +999,16 @@ you have to either set passive mode in syntastic for the go filetype (see At the time of this writing, syntastic can't run checkers installed in Python virtual environments activated by "vim-virtualenv" (see -https://github.com/jmcantrell/vim-virtualenv). This is a limitation of +https://github.com/jmcantrell/vim-virtualenv). This is a limitation of "vim-virtualenv". ------------------------------------------------------------------------------ 7.12 YouCompleteMe *syntastic-ycm* Syntastic can be used together with the "YouCompleteMe" Vim plugin (see -http://valloric.github.io/YouCompleteMe/). However, by default "YouCompleteMe" +http://valloric.github.io/YouCompleteMe/). However, by default "YouCompleteMe" disables syntastic's checkers for the "c", "cpp", "objc", and "objcpp" -filetypes, in order to allow its own checkers to run. If you want to use YCM's +filetypes, in order to allow its own checkers to run. If you want to use YCM's identifier completer but still run syntastic's checkers for those filetypes you have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: > let g:ycm_show_diagnostics_ui = 0 @@ -1018,9 +1018,9 @@ have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: > If you're running MacVim together with the "zsh" shell (http://www.zsh.org/) you need to be aware that MacVim does not source your .zshrc file, but will -source a .zshenv file. Consequently you have to move any setup steps relevant +source a .zshenv file. Consequently you have to move any setup steps relevant to the checkers you're using from .zshrc to .zshenv, otherwise your checkers -will misbehave when run by syntastic. This is particularly important for +will misbehave when run by syntastic. This is particularly important for programs such as "rvm" (https://rvm.io/) or "rbenv" (http://rbenv.org/), that rely on setting environment variables. diff --git a/sources_non_forked/syntastic/plugin/syntastic.vim b/sources_non_forked/syntastic/plugin/syntastic.vim index 5cda9966..21ae9ee7 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.7.0-88' +let g:_SYNTASTIC_VERSION = '3.7.0-99' lockvar g:_SYNTASTIC_VERSION " Sanity checks {{{1 diff --git a/sources_non_forked/syntastic/plugin/syntastic/registry.vim b/sources_non_forked/syntastic/plugin/syntastic/registry.vim index 695d3364..5605a5fe 100644 --- a/sources_non_forked/syntastic/plugin/syntastic/registry.vim +++ b/sources_non_forked/syntastic/plugin/syntastic/registry.vim @@ -164,7 +164,7 @@ function! g:SyntasticRegistry.CreateAndRegisterChecker(args) abort " {{{2 if has_key(a:args, 'redirect') let [ft, name] = split(a:args['redirect'], '/') - call registry._loadCheckersFor(ft) + call registry._loadCheckersFor(ft, 1) let clone = get(registry._checkerMap[ft], name, {}) if empty(clone) @@ -320,8 +320,9 @@ function! g:SyntasticRegistry._filterCheckersByName(checkers_map, list) abort " return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' ) endfunction " }}}2 -function! g:SyntasticRegistry._loadCheckersFor(filetype) abort " {{{2 - if has_key(self._checkerMap, a:filetype) +function! g:SyntasticRegistry._loadCheckersFor(filetype, ...) abort " {{{2 + " XXX: a:1 == 1 means re-scan checkers for filetype + if has_key(self._checkerMap, a:filetype) && (!a:0 || !a:1) return endif diff --git a/sources_non_forked/syntastic/plugin/syntastic/signs.vim b/sources_non_forked/syntastic/plugin/syntastic/signs.vim index 1b89d2fa..e3bafa0d 100644 --- a/sources_non_forked/syntastic/plugin/syntastic/signs.vim +++ b/sources_non_forked/syntastic/plugin/syntastic/signs.vim @@ -21,13 +21,6 @@ let s:setup_done = 0 function! g:SyntasticSignsNotifier.New() abort " {{{2 let newObj = copy(self) - - if !s:setup_done - call self._setup() - let s:setup_done = 1 - lockvar s:setup_done - endif - return newObj endfunction " }}}2 @@ -37,8 +30,15 @@ endfunction " }}}2 function! g:SyntasticSignsNotifier.refresh(loclist) abort " {{{2 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh') + let old_signs = copy(self._bufSignIds()) if self.enabled() + if !s:setup_done + call self._setup() + let s:setup_done = 1 + lockvar s:setup_done + endif + call self._signErrors(a:loclist) endif call self._removeSigns(old_signs) diff --git a/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim b/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim index 096e429f..c75ea8b4 100644 --- a/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim +++ b/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim @@ -21,6 +21,7 @@ function! SyntaxCheckers_haskell_hlint_GetLocList() dict \ '%E%f:%l:%v: Error while reading hint file\, %m,' . \ '%E%f:%l:%v: Error: %m,' . \ '%W%f:%l:%v: Warning: %m,' . + \ '%W%f:%l:%v: Suggestion: %m,' . \ '%C%m' return SyntasticMake({ diff --git a/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim b/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim index 64f5b05e..e59166bc 100644 --- a/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim +++ b/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim @@ -1,6 +1,13 @@ "============================================================================ "File: pep257.vim -"Description: Docstring style checking plugin for syntastic.vim +"Description: Syntax checking plugin for syntastic +"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_python_pep257_checker') @@ -8,52 +15,9 @@ if exists('g:loaded_syntastic_python_pep257_checker') endif let g:loaded_syntastic_python_pep257_checker = 1 -let s:save_cpo = &cpo -set cpo&vim - -function! SyntaxCheckers_python_pep257_GetLocList() dict - if !exists('s:pep257_new') - let s:pep257_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 3]) - endif - - let makeprg = self.makeprgBuild({}) - - if s:pep257_new - let errorformat = - \ '%E%f:%l %.%#:,' . - \ '%+C %m' - else - let errorformat = - \ '%E%f:%l:%c%\%.%\%.%\d%\+:%\d%\+: %m,' . - \ '%E%f:%l:%c: %m,' . - \ '%+C %m' - endif - - let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' } - - let loclist = SyntasticMake({ - \ 'makeprg': makeprg, - \ 'errorformat': errorformat, - \ 'env': env, - \ 'subtype': 'Style', - \ 'preprocess': 'killEmpty', - \ 'postprocess': ['compressWhitespace'] }) - - if s:pep257_new == 0 - " byte offsets rather than column numbers - for e in loclist - let e['col'] = get(e, 'col', 0) + 1 - endfor - endif - - return loclist -endfunction - call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'python', - \ 'name': 'pep257'}) - -let &cpo = s:save_cpo -unlet s:save_cpo + \ 'name': 'pep257', + \ 'redirect': 'python/pydocstyle'}) " vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim b/sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim new file mode 100644 index 00000000..05ea6b36 --- /dev/null +++ b/sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim @@ -0,0 +1,66 @@ +"============================================================================ +"File: pydocstyle.vim +"Description: Syntax checking plugin for syntastic +"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_python_pydocstyle_checker') + finish +endif +let g:loaded_syntastic_python_pydocstyle_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_python_pydocstyle_GetLocList() dict + if !exists('s:pydocstyle_new') + let s:pydocstyle_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 3]) + endif + + let makeprg = self.makeprgBuild({}) + + if s:pydocstyle_new + let errorformat = + \ '%E%f:%l %.%#:,' . + \ '%+C %m' + else + let errorformat = + \ '%E%f:%l:%c%\%.%\%.%\d%\+:%\d%\+: %m,' . + \ '%E%f:%l:%c: %m,' . + \ '%+C %m' + endif + + let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' } + + let loclist = SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat, + \ 'env': env, + \ 'subtype': 'Style', + \ 'preprocess': 'killEmpty', + \ 'postprocess': ['compressWhitespace'] }) + + if s:pydocstyle_new == 0 + " byte offsets rather than column numbers + for e in loclist + let e['col'] = get(e, 'col', 0) + 1 + endfor + endif + + return loclist +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'python', + \ 'name': 'pydocstyle'}) + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim index e3869007..c6db8b63 100644 --- a/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim @@ -50,6 +50,12 @@ function! airline#themes#lucius#refresh() \ 'red': airline#themes#get_highlight('Constant'), \ } + " Extra tabline colors + let s:TS = airline#themes#get_highlight('TabLineSel') + let g:airline#themes#lucius#palette.tabline = {} + let g:airline#themes#lucius#palette.tabline.airline_tabsel = s:TS + let g:airline#themes#lucius#palette.tabline.airline_tabsel_right = s:TS + endfunction call airline#themes#lucius#refresh() diff --git a/sources_non_forked/vim-airline/CHANGELOG.md b/sources_non_forked/vim-airline/CHANGELOG.md index 3aacc267..b37ee18c 100644 --- a/sources_non_forked/vim-airline/CHANGELOG.md +++ b/sources_non_forked/vim-airline/CHANGELOG.md @@ -3,16 +3,31 @@ This is the Changelog for the vim-airline project. ## [Unreleased] + +## [0.8] - 2016-03-09 - Changes - - Themes have been moved into an extra repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) - - Many new themes - - Airline Moved to new [repository](https://github.com/vim-airline/vim-airline) -- New features - - Integration with [taboo](https://github.com/gcmt/taboo.vim), [vim-ctrlspace](https://github.com/szw/vim-ctrlspace), - [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim), [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) + - Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline) + - Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) +- Improvements + - Extensions + - branch: support Git and Mercurial simultaneously, untracked files + - whitespace: new mixed-indent rule + - Windows support + - Many bug fixes - Support for Neovim - - Added wordcount extension - - Adding Crypt and Byte Order Mark Indicator +- New features + - Many new themes + - Extensions/integration + - [taboo](https://github.com/gcmt/taboo.vim) + - [vim-ctrlspace](https://github.com/szw/vim-ctrlspace) + - [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim) + - [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) + - [po.vim](http://www.vim.org/scripts/script.php?script_id=695) + - [unicode.vim](https://github.com/chrisbra/unicode.vim) + - wordcount + - crypt indicator + - byte order mark indicator + - Tabline's tab mode can display splits simultaneously ## [0.7] - 2014-12-10 - New features @@ -94,7 +109,8 @@ This is the Changelog for the vim-airline project. - integration with other plugins: netrw, unite, nerdtree, undotree, gundo, tagbar, minibufexplr, ctrlp - support for themes: 8 included -[Unreleased]: https://github.com/vim-airline/vim-airline/compare/v0.7...HEAD +[Unreleased]: https://github.com/vim-airline/vim-airline/compare/v0.8...HEAD +[0.8]: https://github.com/vim-airline/vim-airline/compare/v0.7...v0.8 [0.7]: https://github.com/vim-airline/vim-airline/compare/v0.6...v0.7 [0.6]: https://github.com/vim-airline/vim-airline/compare/v0.5...v0.6 [0.5]: https://github.com/vim-airline/vim-airline/compare/v0.4...v0.5 diff --git a/sources_non_forked/vim-airline/ISSUE_TEMPLATE.md b/sources_non_forked/vim-airline/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..d246fef4 --- /dev/null +++ b/sources_non_forked/vim-airline/ISSUE_TEMPLATE.md @@ -0,0 +1,14 @@ +#### environment + +- vim: ???? +- vim-airline: ???? +- OS: ???? +- terminal: ???? + +#### actual behavior + +???? + +#### expected behavior + +???? diff --git a/sources_non_forked/vim-airline/autoload/airline.vim b/sources_non_forked/vim-airline/autoload/airline.vim index 83b7dfa2..f19d2fbe 100644 --- a/sources_non_forked/vim-airline/autoload/airline.vim +++ b/sources_non_forked/vim-airline/autoload/airline.vim @@ -72,9 +72,10 @@ endfunction function! airline#switch_matching_theme() if exists('g:colors_name') let existing = g:airline_theme + let theme = substitute(g:colors_name, '-', '_', 'g') try - let palette = g:airline#themes#{g:colors_name}#palette - call airline#switch_theme(g:colors_name) + let palette = g:airline#themes#{theme}#palette + call airline#switch_theme(theme) return 1 catch for map in items(g:airline_theme_map) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions.vim b/sources_non_forked/vim-airline/autoload/airline/extensions.vim index 0ce64252..2970dc8e 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions.vim @@ -210,6 +210,10 @@ function! airline#extensions#load() call airline#extensions#whitespace#init(s:ext) endif + if get(g:, 'airline#extensions#po#enabled', 1) && executable('msgfmt') + call airline#extensions#po#init(s:ext) + endif + if get(g:, 'airline#extensions#wordcount#enabled', 1) call airline#extensions#wordcount#init(s:ext) endif 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 d7f227d7..6b31c7de 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim @@ -154,7 +154,7 @@ function! airline#extensions#branch#head() if exists("g:airline#extensions#branch#displayed_head_limit") let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit if len(b:airline_head) > w:displayed_head_limit - 1 - let b:airline_head = b:airline_head[0:w:displayed_head_limit - 1].'…' + let b:airline_head = b:airline_head[0:(w:displayed_head_limit - 1)].(&encoding ==? 'utf-8' ? '…' : '.') endif endif diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/po.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/po.vim new file mode 100644 index 00000000..6e5b6bca --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/po.vim @@ -0,0 +1,36 @@ +" MIT License. Copyright (c) 2013-2016 Bailey Ling. +" vim: et ts=2 sts=2 sw=2 + +function! airline#extensions#po#apply(...) + if &ft ==# 'po' + call airline#extensions#prepend_to_section('z', '%{airline#extensions#po#stats()}') + autocmd airline BufWritePost * unlet! b:airline_po_stats + endif +endfunction + +function! airline#extensions#po#stats() + if exists('b:airline_po_stats') && !empty(b:airline_po_stats) + return b:airline_po_stats + endif + + let airline_po_stats = system('msgfmt --statistics -o /dev/null -- '. expand('%:p')) + if v:shell_error + return '' + endif + try + let b:airline_po_stats = '['. split(airline_po_stats, '\n')[0]. ']' + catch + let b:airline_po_stats = '' + endtry + if exists("g:airline#extensions#po#displayed_limit") + let w:displayed_po_limit = g:airline#extensions#po#displayed_limit + if len(b:airline_po_stats) > w:displayed_po_limit - 1 + let b:airline_po_stats = b:airline_po_stats[0:(w:displayed_po_limit - 1)].(&encoding==?'utf-8' ? '…' : '.') + endif + endif + return b:airline_po_stats +endfunction + +function! airline#extensions#po#init(ext) + call a:ext.add_statusline_func('airline#extensions#po#apply') +endfunction 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 0447952b..05053a5b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim @@ -5,6 +5,7 @@ let s:formatter = get(g:, 'airline#extensions#tabline#formatter', 'default') let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) let s:ignore_bufadd_pat = get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree') + let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0) if s:taboo let g:taboo_tabline = 0 @@ -41,27 +42,21 @@ function! s:toggle_on() endfunction function! s:update_tabline() + if get(g:, 'airline#extensions#tabline#disable_refresh', 0) + return + endif let match = expand('') if pumvisible() return elseif !get(g:, 'airline#extensions#tabline#enabled', 0) return " return, if buffer matches ignore pattern or is directory (netrw) - elseif empty(match) + elseif empty(match) \ || match(match, s:ignore_bufadd_pat) > -1 \ || isdirectory(expand("")) return endif - if empty(mapcheck("AirlineTablineRefresh", 'n')) - noremap AirlineTablineRefresh :set mod! - endif - call feedkeys("\AirlineTablineRefresh") - call feedkeys("\AirlineTablineRefresh") - "call feedkeys(',,', 't') - "call feedkeys(':unmap ,,') - " force re-evaluation of tabline setting - " disable explicit redraw, may cause E315 - "redraw + doautocmd User BufMRUChange endfunction function! airline#extensions#tabline#load_theme(palette) @@ -92,6 +87,7 @@ function! airline#extensions#tabline#load_theme(palette) " Theme for tabs on the right let l:tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a) + let l:tab_right = get(colors, 'airline_tab_right', a:palette.inactive.airline_c) let l:tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a) let l:tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c) if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c') @@ -100,6 +96,7 @@ function! airline#extensions#tabline#load_theme(palette) "Fall back to normal airline_c if modified airline_c isn't present let l:tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c) endif + call airline#highlighter#exec('airline_tab_right', l:tab_right) call airline#highlighter#exec('airline_tabsel_right', l:tabsel_right) call airline#highlighter#exec('airline_tabmod_right', l:tabmod_right) call airline#highlighter#exec('airline_tabhid_right', l:tabhid_right) @@ -163,3 +160,23 @@ function! airline#extensions#tabline#new_builder() return airline#builder#new(builder_context) endfunction + +function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr) + let cur = bufnr('%') + if cur == a:bufnr + if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') + let group = 'airline_tabmod' + else + let group = 'airline_tabsel' + endif + else + if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') + let group = 'airline_tabmod_unsel' + elseif index(a:tab_bufs, a:bufnr) > -1 + let group = 'airline_tab' + else + let group = 'airline_tabhid' + endif + endif + return group +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim index 96b1a877..11d3f684 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim @@ -5,6 +5,7 @@ scriptencoding utf-8 let s:buffer_idx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0) let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1) +let s:buffers_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers') let s:spc = g:airline_symbols.space let s:current_bufnr = -1 @@ -64,23 +65,16 @@ function! airline#extensions#tabline#buffers#get() continue endif - if cur == nr - if g:airline_detect_modified && getbufvar(nr, '&modified') - let group = 'airline_tabmod' - else - let group = 'airline_tabsel' - endif + let group = airline#extensions#tabline#group_of_bufnr(tab_bufs, nr) + + if nr == cur let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 - else - 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 + " Neovim feature: Have clickable buffers + if has("tablineat") + call b.add_raw('%'.nr.'@airline#extensions#tabline#buffers#switchbuf@') + endif 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) @@ -91,13 +85,16 @@ function! airline#extensions#tabline#buffers#get() else call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc) endif + if has("tablineat") + call b.add_raw('%X') + endif endfor call b.add_section('airline_tabfill', '') call b.split() call b.add_section('airline_tabfill', '') if s:show_tab_type - call b.add_section('airline_tabtype', ' buffers ') + call b.add_section_spaced('airline_tabtype', s:buffers_label) endif let s:current_bufnr = cur @@ -198,3 +195,11 @@ function s:map_keys() noremap AirlineSelectNextTab :call jump_to_tab(v:count1) endif endfunction + +function airline#extensions#tabline#buffers#switchbuf(minwid, clicks, button, modifiers) abort + " Run the following code only on a single left mouse button click without modifiers pressed + " works only in recent NeoVim with has('tablineat') + if a:clicks == 1 && a:button is# 'l' && a:modifiers !~# '[^ ]' + sil execute 'buffer' a:minwid + endif +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim index 9490ab02..5b0ff59b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim @@ -7,6 +7,12 @@ let s:current_bufnr = -1 let s:current_tabnr = -1 let s:current_tabline = '' +let s:buffers_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers') +let s:tabs_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs') +let s:switch_buffers_and_tabs = get(g:, 'airline#extensions#tabline#switch_buffers_and_tabs', 0) +let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) +let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) + function! airline#extensions#tabline#ctrlspace#off() augroup airline_tabline_ctrlspace autocmd! @@ -25,6 +31,62 @@ function! airline#extensions#tabline#ctrlspace#invalidate() let s:current_tabnr = -1 endfunction +function! airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, pos) + if a:pos == 0 + let pos_extension = '' + else + let pos_extension = '_right' + endif + + let s:buffer_list = ctrlspace#api#BufferList(a:cur_tab) + for buffer in s:buffer_list + if a:cur_buf == buffer.index + if buffer.modified + let group = 'airline_tabmod'.pos_extension + else + let group = 'airline_tabsel'.pos_extension + endif + else + if buffer.modified + let group = 'airline_tabmod_unsel'.pos_extension + elseif buffer.visible + let group = 'airline_tab'.pos_extension + else + let group = 'airline_tabhid'.pos_extension + endif + endif + + let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)' + call a:builder.add_section_spaced(group, buf_name) + endfor +endfunction + +function! airline#extensions#tabline#ctrlspace#add_tab_section(builder, pos) + if a:pos == 0 + let pos_extension = '' + else + let pos_extension = '_right' + endif + + for tab in s:tab_list + if tab.current + if tab.modified + let group = 'airline_tabmod'.pos_extension + else + let group = 'airline_tabsel'.pos_extension + endif + else + if tab.modified + let group = 'airline_tabmod_unsel'.pos_extension + else + let group = 'airline_tabhid'.pos_extension + endif + endif + + call a:builder.add_section_spaced(group, tab.title.ctrlspace#api#TabBuffersNumber(tab.index)) + endfor +endfunction + function! airline#extensions#tabline#ctrlspace#get() let cur_buf = bufnr('%') @@ -39,59 +101,44 @@ function! airline#extensions#tabline#ctrlspace#get() return s:current_tabline endif - let b = airline#extensions#tabline#new_builder() + let builder = airline#extensions#tabline#new_builder() - call b.add_section_spaced('airline_tabtype', 'buffers') - - let s:buffer_list = ctrlspace#api#BufferList(cur_tab) - for buffer in s:buffer_list - if cur_buf == buffer.index - if buffer.modified - let group = 'airline_tabmod' - else - let group = 'airline_tabsel' - endif - else - if buffer.modified - let group = 'airline_tabmod_unsel' - elseif buffer.visible - let group = 'airline_tab' - else - let group = 'airline_tabhid' - endif - endif - - let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)' - call b.add_section_spaced(group, buf_name) - endfor - - - call b.add_section('airline_tabfill', '') - call b.split() - call b.add_section('airline_tabfill', '') - - for tab in s:tab_list - if tab.current - if tab.modified - let group = 'airline_tabmod_right' - else - let group = 'airline_tabsel_right' - endif + " Add left tabline content + if s:show_buffers == 0 + call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 0) + elseif s:show_tabs == 0 + call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 0) + else + if s:switch_buffers_and_tabs == 0 + call builder.add_section_spaced('airline_tabtype', s:buffers_label) + call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 0) else - if tab.modified - let group = 'airline_tabmod_unsel_right' - else - let group = 'airline_tabhid_right' - endif + call builder.add_section_spaced('airline_tabtype', s:tabs_label) + call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 0) endif + endif - call b.add_section_spaced(group, tab.title.ctrlspace#api#TabBuffersNumber(tab.index)) - endfor + call builder.add_section('airline_tabfill', '') + call builder.split() + call builder.add_section('airline_tabfill', '') - call b.add_section_spaced('airline_tabtype', 'tabs') + " Add right tabline content + if s:show_buffers == 0 + call builder.add_section_spaced('airline_tabtype', s:tabs_label) + elseif s:show_tabs == 0 + call builder.add_section_spaced('airline_tabtype', s:buffers_label) + else + if s:switch_buffers_and_tabs == 0 + call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 1) + call builder.add_section_spaced('airline_tabtype', s:tabs_label) + else + call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 1) + call builder.add_section_spaced('airline_tabtype', s:buffers_label) + endif + endif let s:current_bufnr = cur_buf let s:current_tabnr = cur_tab - let s:current_tabline = b.build() + let s:current_tabline = builder.build() return s:current_tabline endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim index 02e4dc9d..0dba19bc 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim @@ -1,11 +1,14 @@ " MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 -let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1) -let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0) let s:show_close_button = get(g:, 'airline#extensions#tabline#show_close_button', 1) let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1) +let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1) +let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0) let s:close_symbol = get(g:, 'airline#extensions#tabline#close_symbol', 'X') +let s:tabs_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs') +let s:show_splits = get(g:, 'airline#extensions#tabline#show_splits', 1) +let s:spc = g:airline_symbols.space let s:current_bufnr = -1 let s:current_tabnr = -1 @@ -39,19 +42,20 @@ function! airline#extensions#tabline#tabs#get() endif let b = airline#extensions#tabline#new_builder() + for i in range(1, tabpagenr('$')) if i == curtab - let group = 'airline_tabsel' + let group = 'airline_tabsel_right' if g:airline_detect_modified for bi in tabpagebuflist(i) if getbufvar(bi, '&modified') - let group = 'airline_tabmod' + let group = 'airline_tabmod_right' endif endfor endif - let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 + let s:current_modified = (group == 'airline_tabmod_right') ? 1 : 0 else - let group = 'airline_tab' + let group = 'airline_tab_right' endif let val = '%(' if s:show_tab_nr @@ -66,14 +70,22 @@ function! airline#extensions#tabline#tabs#get() call b.add_section(group, val.'%'.i.'T %{airline#extensions#tabline#title('.i.')} %)') endfor - call b.add_raw('%T') call b.add_section('airline_tabfill', '') call b.split() + call b.add_section('airline_tabfill', '') + if s:show_close_button - call b.add_section('airline_tab', ' %999X'.s:close_symbol.' ') + call b.add_section('airline_tab_right', ' %999X'.s:close_symbol.' ') endif - if s:show_tab_type - call b.add_section('airline_tabtype', ' tabs ') + + if s:show_splits == 1 + let buffers = tabpagebuflist(curtab) + for nr in buffers + let group = airline#extensions#tabline#group_of_bufnr(buffers, nr) + call b.add_section_spaced(group, '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)') + endfor + elseif s:show_tab_type == 1 + call b.add_section_spaced('airline_tabtype', s:tabs_label) endif let s:current_bufnr = curbuf diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim index fbd241ca..546bfc77 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim @@ -35,8 +35,14 @@ function! s:check_mixed_indent() endfunction function! s:check_mixed_indent_file() + if stridx(&ft, 'c') == 0 || stridx(&ft, 'cpp') == 0 || stridx(&ft, 'javascript') == 0 + " for C/CPP only allow /** */ comment style with one space before the '*' + let head_spc = '\v(^ +\*@!)' + else + let head_spc = '\v(^ +)' + endif let indent_tabs = search('\v(^\t+)', 'nw') - let indent_spc = search('\v(^ +)', 'nw') + let indent_spc = search(head_spc, 'nw') if indent_tabs > 0 && indent_spc > 0 return printf("%d:%d", indent_tabs, indent_spc) else diff --git a/sources_non_forked/vim-airline/autoload/airline/init.vim b/sources_non_forked/vim-airline/autoload/airline/init.vim index 2d6a6c22..2a30f31a 100644 --- a/sources_non_forked/vim-airline/autoload/airline/init.vim +++ b/sources_non_forked/vim-airline/autoload/airline/init.vim @@ -47,13 +47,12 @@ function! airline#init#bootstrap() call s:check_defined('g:airline_theme_map', {}) call extend(g:airline_theme_map, { - \ 'Tomorrow.*': 'tomorrow', - \ 'base16.*': 'base16', - \ 'bubblegum': 'bubblegum', + \ '\CTomorrow': 'tomorrow', + \ 'base16': 'base16', \ 'mo[l|n]okai': 'molokai', - \ 'wombat.*': 'wombat', - \ '.*zenburn.*': 'zenburn', - \ '.*solarized.*': 'solarized', + \ 'wombat': 'wombat', + \ 'zenburn': 'zenburn', + \ 'solarized': 'solarized', \ }, 'keep') call s:check_defined('g:airline_symbols', {}) diff --git a/sources_non_forked/vim-airline/autoload/airline/parts.vim b/sources_non_forked/vim-airline/autoload/airline/parts.vim index cd0a5c67..eab96242 100644 --- a/sources_non_forked/vim-airline/autoload/airline/parts.vim +++ b/sources_non_forked/vim-airline/autoload/airline/parts.vim @@ -70,7 +70,11 @@ function! airline#parts#iminsert() endfunction function! airline#parts#readonly() - return &readonly ? g:airline_symbols.readonly : '' + if &readonly && &modifiable && !filereadable(bufname('%')) + return '[noperm]' + else + return &readonly ? g:airline_symbols.readonly : '' + endif endfunction function! airline#parts#filetype() diff --git a/sources_non_forked/vim-airline/doc/airline.txt b/sources_non_forked/vim-airline/doc/airline.txt index 79e10122..82956bbb 100644 --- a/sources_non_forked/vim-airline/doc/airline.txt +++ b/sources_non_forked/vim-airline/doc/airline.txt @@ -489,13 +489,22 @@ eclim let g:airline#extensions#whitespace#trailing_regexp = '\s$' < ------------------------------------- *airline-tabline* -* enable/disable enhanced tabline. > +Note: If you're using the ctrlspace tabline only the option marked with (c) +are supported! + +* enable/disable enhanced tabline. (c) let g:airline#extensions#tabline#enabled = 0 -< -* enable/disable displaying buffers with a single tab. > + +* enable/disable displaying open splits per tab (only when tabs are opened). > + let g:airline#extensions#tabline#show_splits = 1 + * +* switch position of buffers and tabs on splited tabline (c) + let g:airline#extensions#tabline#switch_buffers_and_tabs = 0 + +* enable/disable displaying buffers with a single tab. (c) let g:airline#extensions#tabline#show_buffers = 1 < -* enable/disable displaying tabs, regardless of number. > +* enable/disable displaying tabs, regardless of number. (c) let g:airline#extensions#tabline#show_tabs = 1 < * configure filename match rules to exclude from the tabline. > @@ -515,11 +524,13 @@ eclim * enable/disable displaying tab type (far right) > let g:airline#extensions#tabline#show_tab_type = 1 -* enable/disable displaying index of the buffer. +* rename label for buffers (default: 'buffers') (c) + let g:airline#extensions#tabline#buffers_label = 'b' - Note: If you're using ctrlspace the tabline shows your tabs on the right and - buffer on the left. Also none of the tabline switches is currently - supported! +* rename label for tabs (default: 'tabs') (c) + let g:airline#extensions#tabline#tabs_label = 't' + +* 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 @@ -545,7 +556,7 @@ eclim Use |gt| for switching tabs. In tabmode, those mappings will switch to the specified tab. -* defines the name of a formatter for how buffer names are displayed. > +* defines the name of a formatter for how buffer names are displayed. (c) let g:airline#extensions#tabline#formatter = 'default' " here is how you can define a 'foo' formatter: @@ -565,7 +576,7 @@ eclim * configure whether buffer numbers should be shown. > let g:airline#extensions#tabline#buffer_nr_show = 0 < - * configure how buffer numbers should be formatted with |printf|. > + * configure how buffer numbers should be formatted with |printf()|. > let g:airline#extensions#tabline#buffer_nr_format = '%s: ' < * configure the formatting of filenames (see |filename-modifiers|). > @@ -614,9 +625,13 @@ eclim let airline#extensions#tabline#ignore_bufadd_pat = \ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree' -< Note: Enabling this extension will modify 'showtabline' and 'guioptions'. +* enable Refresh of tabline buffers on |BufAdd| autocommands + (set this to one, if you note 'AirlineTablineRefresh', however, this + won't update airline on |:badd| commands) > + let airline#extensions#tabline#disable_refresh = 0 + ------------------------------------- *airline-tmuxline* tmuxline @@ -707,6 +722,15 @@ Shows number of errors and warnings in the current file detected by YCM. * set warning count prefix > let g:airline#extensions#ycm#warning_symbol = 'W:' < +------------------------------------- *airline-po* +po.vim + +* enable/disable po integration > + let g:airline#extensions#po#enabled = 1 +< +* truncate width names to a fixed length > + let g:airline#extensions#po#displayed_limit = 0 +< ============================================================================== ADVANCED CUSTOMIZATION *airline-advanced-customization* diff --git a/sources_non_forked/vim-commentary/plugin/commentary.vim b/sources_non_forked/vim-commentary/plugin/commentary.vim index 3aedd8d5..0bef7cc9 100644 --- a/sources_non_forked/vim-commentary/plugin/commentary.vim +++ b/sources_non_forked/vim-commentary/plugin/commentary.vim @@ -28,11 +28,11 @@ function! s:go(type,...) abort let [lnum1, lnum2] = [line("'["), line("']")] endif - let [l, r] = s:surroundings() + let [l_, r_] = s:surroundings() let uncomment = 2 for lnum in range(lnum1,lnum2) let line = matchstr(getline(lnum),'\S.*\s\@ 10 + return getfsize(path.'HEAD') > 10 && ( + \ isdirectory(path.'objects') && isdirectory(path.'refs') || + \ getftype(path.'commondir') ==# 'file') endfunction function! fugitive#extract_git_dir(path) abort @@ -265,9 +267,17 @@ function! s:configured_tree(git_dir) abort let config = readfile(config_file,'',10) call filter(config,'v:val =~# "^\\s*worktree *="') if len(config) == 1 - let s:worktree_for_dir[a:git_dir] = matchstr(config[0], '= *\zs.*') - let s:dir_for_worktree[s:worktree_for_dir[a:git_dir]] = a:git_dir + let worktree = matchstr(config[0], '= *\zs.*') endif + elseif filereadable(a:git_dir . '/gitdir') + let worktree = fnamemodify(readfile(a:git_dir . '/gitdir')[0], ':h') + if worktree ==# '.' + unlet! worktree + endif + endif + if exists('worktree') + let s:worktree_for_dir[a:git_dir] = worktree + let s:dir_for_worktree[s:worktree_for_dir[a:git_dir]] = a:git_dir endif endif if s:worktree_for_dir[a:git_dir] =~# '^\.' @@ -299,6 +309,10 @@ function! s:repo_bare() dict abort endfunction function! s:repo_translate(spec) dict abort + let refs = self.dir('refs/') + if filereadable(self.dir('commondir')) + let refs = simplify(self.dir(get(readfile(self.dir('commondir'), 1), 0, ''))) . '/refs/' + endif if a:spec ==# '.' || a:spec ==# '/.' return self.bare() ? self.dir() : self.tree() elseif a:spec =~# '^/\=\.git$' && self.bare() @@ -322,18 +336,18 @@ function! s:repo_translate(spec) dict abort return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1] elseif a:spec ==# '@' return self.dir('HEAD') - elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(self.dir(a:spec)) - return self.dir(a:spec) - elseif filereadable(self.dir('refs/'.a:spec)) - return self.dir('refs/'.a:spec) - elseif filereadable(self.dir('refs/tags/'.a:spec)) - return self.dir('refs/tags/'.a:spec) - elseif filereadable(self.dir('refs/heads/'.a:spec)) - return self.dir('refs/heads/'.a:spec) - elseif filereadable(self.dir('refs/remotes/'.a:spec)) - return self.dir('refs/remotes/'.a:spec) - elseif filereadable(self.dir('refs/remotes/'.a:spec.'/HEAD')) - return self.dir('refs/remotes/'.a:spec,'/HEAD') + elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(refs . '../' . a:spec) + return simplify(refs . '../' . a:spec) + elseif filereadable(refs.a:spec) + return refs.a:spec + elseif filereadable(refs.'tags/'.a:spec) + return refs.'tags/'.a:spec + elseif filereadable(refs.'heads/'.a:spec) + return refs.'heads/'.a:spec + elseif filereadable(refs.'remotes/'.a:spec) + return refs.'remotes/'.a:spec + elseif filereadable(refs.'remotes/'.a:spec.'/HEAD') + return refs.'remotes/'.a:spec,'/HEAD' else try let ref = self.rev_parse(matchstr(a:spec,'[^:]*')) @@ -849,7 +863,9 @@ function! s:StageUndo() abort let hash = repo.git_chomp('hash-object', '-w', filename) if !empty(hash) if section ==# 'untracked' - call delete(s:repo().tree(filename)) + call repo.git_chomp_in_tree('clean', '--', filename) + elseif section ==# 'unmerged' + call repo.git_chomp_in_tree('rm', '--', filename) elseif section ==# 'unstaged' call repo.git_chomp_in_tree('checkout', '--', filename) else @@ -2675,7 +2691,7 @@ function! s:BufReadObject() abort if b:fugitive_display_format call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash)) else - call s:ReplaceCmd(s:repo().git_command('show','--no-color','--pretty=format:tree %T%nparent %P%nauthor %an <%ae> %ad%ncommitter %cn <%ce> %cd%nencoding %e%n%n%s%n%n%b',hash)) + call s:ReplaceCmd(s:repo().git_command('show','--no-color','--pretty=format:tree%x20%T%nparent%x20%P%nauthor%x20%an%x20<%ae>%x20%ad%ncommitter%x20%cn%x20<%ce>%x20%cd%nencoding%x20%e%n%n%s%n%n%b',hash)) keepjumps call search('^parent ') if getline('.') ==# 'parent ' silent keepjumps delete_ diff --git a/sources_non_forked/vim-go/.github/CONTRIBUTING.md b/sources_non_forked/vim-go/.github/CONTRIBUTING.md new file mode 100644 index 00000000..7266ccea --- /dev/null +++ b/sources_non_forked/vim-go/.github/CONTRIBUTING.md @@ -0,0 +1,9 @@ +Thanks for improving vim-go! Before you dive in please read the following: + +1. Please read our + [FAQ](https://github.com/fatih/vim-go/wiki/FAQ-Troubleshooting), it might + have answers for your problem +2. If you add a new feature please don't forget to update the documentation: + [doc/vim-go.txt](doc/vim-go.txt) +3. If it's a breaking change or exceed +100 lines please open an issue first + and describe the changes you want to make. diff --git a/sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md b/sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..7d48151d --- /dev/null +++ b/sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,30 @@ +### Expected behavior + +Write here what you're expecting ... + +### Actual behavior + +Write here what happens instead ... + +### Steps to reproduce: + +Please create a reproducible case of your problem. Re produce it +with a minimal `vimrc` with all plugins disabled and only `vim-go` +enabled: + +1. +2. +3. + +### Configuration + +#### `vimrc` you used to reproduce: + +#### vim version: + +#### vim-go version: + +#### go version: + + + diff --git a/sources_non_forked/vim-go/autoload/go/alternate.vim b/sources_non_forked/vim-go/autoload/go/alternate.vim index 83951cf0..1de6a699 100644 --- a/sources_non_forked/vim-go/autoload/go/alternate.vim +++ b/sources_non_forked/vim-go/autoload/go/alternate.vim @@ -5,26 +5,26 @@ endif " Test alternates between the implementation of code and the test code. function! go#alternate#Switch(bang, cmd) - let l:file = go#alternate#Filename(fnameescape(expand("%"))) - if !filereadable(l:file) && !bufexists(l:file) && !a:bang - redraws! | echon "vim-go: " | echohl ErrorMsg | echon "couldn't find ".file | echohl None + let file = expand('%') + if empty(file) + call go#util#EchoError("no buffer name") + return + elseif file =~# '^\f\+_test\.go$' + let l:root = split(file, '_test.go$')[0] + let l:alt_file = l:root . ".go" + elseif file =~# '^\f\+\.go$' + let l:root = split(file, ".go$")[0] + let l:alt_file = l:root . '_test.go' + else + call go#util#EchoError("not a go file") + return + endif + if !filereadable(alt_file) && !bufexists(alt_file) && !a:bang + call go#util#EchoError("couldn't find ".alt_file) return elseif empty(a:cmd) - execute ":" . g:go_alternate_mode . " " . file + execute ":" . g:go_alternate_mode . " " . alt_file else - execute ":" . a:cmd . " " . file + execute ":" . a:cmd . " " . alt_file endif endfunction - -" Filename returns the name of the test file or implementation file -" depending on the arguments -function! go#alternate#Filename(path) - if empty(matchstr(a:path, "_test")) - let l:root = split(a:path, ".go$")[0] - let l:file = l:root . "_test.go" - else - let l:root = split(a:path, "_test.go$")[0] - let l:file = l:root . ".go" - endif - return l:file -endfunction diff --git a/sources_non_forked/vim-go/autoload/go/cmd.vim b/sources_non_forked/vim-go/autoload/go/cmd.vim index d99bc01e..c90a0537 100644 --- a/sources_non_forked/vim-go/autoload/go/cmd.vim +++ b/sources_non_forked/vim-go/autoload/go/cmd.vim @@ -74,8 +74,12 @@ endfunction " Run runs the current file (and their dependencies if any) in a new terminal. -function! go#cmd#RunTerm(bang, mode) - let cmd = "go run ". go#util#Shelljoin(go#tool#Files()) +function! go#cmd#RunTerm(bang, mode, files) + if empty(a:files) + let cmd = "go run ". go#util#Shelljoin(go#tool#Files()) + else + let cmd = "go run ". go#util#Shelljoin(map(copy(a:files), "expand(v:val)"), 1) + endif call go#term#newmode(a:bang, cmd, a:mode) endfunction @@ -85,7 +89,7 @@ endfunction " calling long running apps will block the whole UI. function! go#cmd#Run(bang, ...) if has('nvim') - call go#cmd#RunTerm(a:bang, '') + call go#cmd#RunTerm(a:bang, '', a:000) return endif @@ -117,9 +121,9 @@ function! go#cmd#Run(bang, ...) if g:go_dispatch_enabled && exists(':Make') == 2 silent! exe 'Make' elseif l:listtype == "locationlist" - silent! exe 'lmake!' + exe 'lmake!' else - silent! exe 'make!' + exe 'make!' endif let items = go#list#Get(l:listtype) diff --git a/sources_non_forked/vim-go/autoload/go/complete.vim b/sources_non_forked/vim-go/autoload/go/complete.vim index d295257a..097422cd 100644 --- a/sources_non_forked/vim-go/autoload/go/complete.vim +++ b/sources_non_forked/vim-go/autoload/go/complete.vim @@ -149,13 +149,16 @@ function! go#complete#GetInfoFromOffset(offset) endfunction function! go#complete#GetInfo() - let offset = go#complete#gocodeCursor() + let offset = go#complete#gocodeCursor()+1 return go#complete#GetInfoFromOffset(offset) endfunction -function! go#complete#Info() +function! go#complete#Info(auto) + " auto is true if we were called by g:go_auto_type_info's autocmd let result = go#complete#GetInfo() if !empty(result) + " if auto, and the result is a PANIC by gocode, hide it + if a:auto && result ==# 'PANIC PANIC PANIC' | return | endif echo "vim-go: " | echohl Function | echon result | echohl None endif endfunction diff --git a/sources_non_forked/vim-go/autoload/go/def.vim b/sources_non_forked/vim-go/autoload/go/def.vim index ae9bf11e..b9bda3d5 100644 --- a/sources_non_forked/vim-go/autoload/go/def.vim +++ b/sources_non_forked/vim-go/autoload/go/def.vim @@ -116,7 +116,7 @@ function! s:godefJump(out, mode) " jump to file now sil ll 1 - normal zz + normal! zz let &switchbuf = old_switchbuf end diff --git a/sources_non_forked/vim-go/autoload/go/doc.vim b/sources_non_forked/vim-go/autoload/go/doc.vim index 3291026e..ab107251 100644 --- a/sources_non_forked/vim-go/autoload/go/doc.vim +++ b/sources_non_forked/vim-go/autoload/go/doc.vim @@ -113,28 +113,28 @@ function! go#doc#Open(newmode, mode, ...) call s:GodocView(a:newmode, a:mode, content) if exported_name == '' - silent! normal gg + silent! normal! gg return -1 endif " jump to the specified name if search('^func ' . exported_name . '(') - silent! normal zt + silent! normal! zt return -1 endif if search('^type ' . exported_name) - silent! normal zt + silent! normal! zt return -1 endif if search('^\%(const\|var\|type\|\s\+\) ' . pkg . '\s\+=\s') - silent! normal zt + silent! normal! zt return -1 endif " nothing found, jump to top - silent! normal gg + silent! normal! gg endfunction function! s:GodocView(newposition, position, content) diff --git a/sources_non_forked/vim-go/autoload/go/fmt.vim b/sources_non_forked/vim-go/autoload/go/fmt.vim index 6d474b31..56c6ee71 100644 --- a/sources_non_forked/vim-go/autoload/go/fmt.vim +++ b/sources_non_forked/vim-go/autoload/go/fmt.vim @@ -52,13 +52,25 @@ endif " this and have VimL experience, please look at the function for " improvements, patches are welcome :) function! go#fmt#Format(withGoimport) - " save cursor position, folds and many other things - let l:curw = {} - try - mkview! - catch + if g:go_fmt_experimental == 1 + " Using winsaveview to save/restore cursor state has the problem of + " closing folds on save: + " https://github.com/fatih/vim-go/issues/502 + " One fix is to use mkview instead. Unfortunately, this sometimes causes + " other bad side effects: + " https://github.com/fatih/vim-go/issues/728 + " and still closes all folds if foldlevel>0: + " https://github.com/fatih/vim-go/issues/732 + let l:curw = {} + try + mkview! + catch + let l:curw=winsaveview() + endtry + else + " Save cursor position and many other things. let l:curw=winsaveview() - endtry + endif " Write current unsaved buffer to a temp file let l:tmpname = tempname() @@ -101,6 +113,24 @@ function! go#fmt#Format(withGoimport) let command = command . g:go_fmt_options endif + if fmt_command == "goimports" + if !exists('b:goimports_vendor_compatible') + let out = system("goimports --help") + if out !~ "-srcdir" + echohl WarningMsg + echomsg "vim-go: goimports does not support srcdir." + echomsg " update with: :GoUpdateBinaries" + echohl None + else + let b:goimports_vendor_compatible = 1 + endif + endif + + if exists('b:goimports_vendor_compatible') && b:goimports_vendor_compatible + let command = command . '-srcdir ' . fnameescape(expand("%:p:h")) + endif + endif + " execute our command... let out = system(command . " " . l:tmpname) @@ -163,10 +193,15 @@ function! go#fmt#Format(withGoimport) call delete(tmpundofile) endif - " restore our cursor/windows positions, folds, etc.. - if empty(l:curw) - silent! loadview + if g:go_fmt_experimental == 1 + " Restore our cursor/windows positions, folds, etc. + if empty(l:curw) + silent! loadview + else + call winrestview(l:curw) + endif else + " Restore our cursor/windows positions. call winrestview(l:curw) endif endfunction diff --git a/sources_non_forked/vim-go/autoload/go/import.vim b/sources_non_forked/vim-go/autoload/go/import.vim index 766a4af1..26600994 100644 --- a/sources_non_forked/vim-go/autoload/go/import.vim +++ b/sources_non_forked/vim-go/autoload/go/import.vim @@ -165,7 +165,7 @@ function! go#import#SwitchImport(enabled, localname, path, bang) call append(appendline, appendstr) execute appendline + 1 if indentstr - execute 'normal >>' + execute 'normal! >>' endif let linesdelta += 1 endif diff --git a/sources_non_forked/vim-go/autoload/go/oracle.vim b/sources_non_forked/vim-go/autoload/go/oracle.vim index 9b2ec1cd..6ba0b958 100644 --- a/sources_non_forked/vim-go/autoload/go/oracle.vim +++ b/sources_non_forked/vim-go/autoload/go/oracle.vim @@ -114,6 +114,10 @@ func! s:RunOracle(mode, selected, needs_package) range abort \ shellescape(fname), pos, tags, a:mode) endif + " strip trailing slashes for each path in scoped. bug: + " https://github.com/golang/go/issues/14584 + let scopes = go#util#StripTrailingSlash(scopes) + " now append each scope to the end as Oracle's scope parameter. It can be " a packages or go files, dependent on the User's own choice. For more " info check Oracle's User Manual section about scopes: diff --git a/sources_non_forked/vim-go/autoload/go/util.vim b/sources_non_forked/vim-go/autoload/go/util.vim index 3808044f..9aae995a 100644 --- a/sources_non_forked/vim-go/autoload/go/util.vim +++ b/sources_non_forked/vim-go/autoload/go/util.vim @@ -48,6 +48,12 @@ function! go#util#StripPathSep(path) return a:path endfunction +" StripTrailingSlash strips the trailing slash from the given path list. +" example: ['/foo/bar/'] -> ['/foo/bar'] +function! go#util#StripTrailingSlash(paths) + return map(copy(a:paths), 'go#util#StripPathSep(v:val)') +endfunction + " Shelljoin returns a shell-safe string representation of arglist. The " {special} argument of shellescape() may optionally be passed. function! go#util#Shelljoin(arglist, ...) diff --git a/sources_non_forked/vim-go/ftplugin/go/commands.vim b/sources_non_forked/vim-go/ftplugin/go/commands.vim index 4c6ddba2..51081ad9 100644 --- a/sources_non_forked/vim-go/ftplugin/go/commands.vim +++ b/sources_non_forked/vim-go/ftplugin/go/commands.vim @@ -16,12 +16,12 @@ command! -nargs=? GoOracleTags call go#oracle#Tags() " tool command! -nargs=0 GoFiles echo go#tool#Files() command! -nargs=0 GoDeps echo go#tool#Deps() -command! -nargs=* GoInfo call go#complete#Info() +command! -nargs=* GoInfo call go#complete#Info(0) " cmd command! -nargs=* -bang GoBuild call go#cmd#Build(0,) command! -nargs=* -bang GoGenerate call go#cmd#Generate(0,) -command! -nargs=* -bang GoRun call go#cmd#Run(0,) +command! -nargs=* -bang -complete=file GoRun call go#cmd#Run(0,) command! -nargs=* -bang GoInstall call go#cmd#Install(0, ) command! -nargs=* -bang GoTest call go#cmd#Test(0, 0, ) command! -nargs=* -bang GoTestFunc call go#cmd#TestFunc(0, ) diff --git a/sources_non_forked/vim-go/ftplugin/go/mappings.vim b/sources_non_forked/vim-go/ftplugin/go/mappings.vim index 4ce38d02..2529a845 100644 --- a/sources_non_forked/vim-go/ftplugin/go/mappings.vim +++ b/sources_non_forked/vim-go/ftplugin/go/mappings.vim @@ -12,9 +12,9 @@ endif nnoremap (go-run) :call go#cmd#Run(!g:go_jump_to_error) if has("nvim") - nnoremap (go-run-vertical) :call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit') - nnoremap (go-run-split) :call go#cmd#RunTerm(!g:go_jump_to_error, 'split') - nnoremap (go-run-tab) :call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe') + nnoremap (go-run-vertical) :call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit', []) + nnoremap (go-run-split) :call go#cmd#RunTerm(!g:go_jump_to_error, 'split', []) + nnoremap (go-run-tab) :call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe', []) endif nnoremap (go-build) :call go#cmd#Build(!g:go_jump_to_error) @@ -27,7 +27,7 @@ nnoremap (go-coverage) :call go#cmd#Coverage(!g:go_jump_to_e nnoremap (go-files) :call go#tool#Files() nnoremap (go-deps) :call go#tool#Deps() -nnoremap (go-info) :call go#complete#Info() +nnoremap (go-info) :call go#complete#Info(0) nnoremap (go-import) :call go#import#SwitchImport(1, '', expand(''), '') nnoremap (go-implements) :call go#oracle#Implements(-1) diff --git a/sources_non_forked/vim-go/plugin/go.vim b/sources_non_forked/vim-go/plugin/go.vim index 63b42ceb..dc6f8007 100644 --- a/sources_non_forked/vim-go/plugin/go.vim +++ b/sources_non_forked/vim-go/plugin/go.vim @@ -143,7 +143,7 @@ augroup vim-go " GoInfo automatic update if get(g:, "go_auto_type_info", 0) - autocmd CursorHold *.go nested call go#complete#Info() + autocmd CursorHold *.go nested call go#complete#Info(1) endif " Echo the identifier information when completion is done. Useful to see diff --git a/sources_non_forked/vim-go/syntax/go.vim b/sources_non_forked/vim-go/syntax/go.vim index 56722a19..f575b55a 100644 --- a/sources_non_forked/vim-go/syntax/go.vim +++ b/sources_non_forked/vim-go/syntax/go.vim @@ -179,30 +179,31 @@ 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*\>" +syn match goDecimalInt "\<-\=\d\+\%([Ee][-+]\=\d\+\)\=\>" +syn match goHexadecimalInt "\<-\=0[xX]\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 goOctalError Error 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\+\>" +syn match goFloat "\<-\=\d\+\.\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\>" +syn match goImaginary "\<-\=\d\+i\>" +syn match goImaginary "\<-\=\d\+[Ee][-+]\=\d\+i\>" +syn match goImaginaryFloat "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=i\>" +syn match goImaginaryFloat "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=i\>" hi def link goImaginary Number +hi def link goImaginaryFloat Float " Spaces after "[]" if g:go_highlight_array_whitespace_error != 0 diff --git a/sources_non_forked/vim-markdown/ftplugin/markdown.vim b/sources_non_forked/vim-markdown/ftplugin/markdown.vim index e8627ccc..f406db58 100644 --- a/sources_non_forked/vim-markdown/ftplugin/markdown.vim +++ b/sources_non_forked/vim-markdown/ftplugin/markdown.vim @@ -9,7 +9,7 @@ endif runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim -setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s +setlocal comments=fb:*,fb:-,fb:+,n:> commentstring= setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]: diff --git a/sources_non_forked/vim-snipmate/autoload/snipMate.vim b/sources_non_forked/vim-snipmate/autoload/snipMate.vim index cb8f3564..cc98df50 100644 --- a/sources_non_forked/vim-snipmate/autoload/snipMate.vim +++ b/sources_non_forked/vim-snipmate/autoload/snipMate.vim @@ -283,7 +283,9 @@ fun! s:AddScopeAliases(list) abort return keys(did) endf -au SourceCmd *.snippet,*.snippets call s:source_snippet() +augroup SnipMateSource + au SourceCmd *.snippet,*.snippets call s:source_snippet() +augroup END function! s:info_from_filename(file) abort let parts = split(fnamemodify(a:file, ':r'), '/') diff --git a/sources_non_forked/vim-snipmate/plugin/snipMate.vim b/sources_non_forked/vim-snipmate/plugin/snipMate.vim index 246b542c..837f0dcc 100644 --- a/sources_non_forked/vim-snipmate/plugin/snipMate.vim +++ b/sources_non_forked/vim-snipmate/plugin/snipMate.vim @@ -28,12 +28,14 @@ if (!exists('g:snipMateSources')) let g:snipMateSources['default'] = funcref#Function('snipMate#DefaultPool') endif -au BufRead,BufNewFile *.snippet,*.snippets setlocal filetype=snippets -au FileType snippets if expand(':e') =~# 'snippet$' +augroup SnipMateDetect + au BufRead,BufNewFile *.snippet,*.snippets setlocal filetype=snippets + au FileType snippets if expand(':e') =~# 'snippet$' \ | setlocal syntax=snippet - \ | else - \ | setlocal syntax=snippets - \ | endif + \ | else + \ | setlocal syntax=snippets + \ | endif +augroup END inoremap snipMateNextOrTrigger =snipMate#TriggerSnippet() snoremap snipMateNextOrTrigger a=snipMate#TriggerSnippet() diff --git a/sources_non_forked/vim-snippets/README.md b/sources_non_forked/vim-snippets/README.md index 9d6b08f9..d4e83c33 100644 --- a/sources_non_forked/vim-snippets/README.md +++ b/sources_non_forked/vim-snippets/README.md @@ -74,7 +74,9 @@ Additional snippets can be added to the current buffer with the "snippets" ending. For example, to add the JavaScript Jasmine snippets, run: `:UltiSnipsAddFiletypes javascript-jasmine`. To have this snippet loaded everytime a JavaScript file is opened or created you can add the command to your -`.vim/ftplugin/javascript.vim` file. + -`.vim/ftplugin/javascript.vim` file. Another way is to add + `autocmd FileType js UltiSnipsAddFiletypes javascript-jasmine` in your `.vimrc`. + For more see the UltiSnips docs (`:help UltiSnips`). diff --git a/sources_non_forked/vim-snippets/UltiSnips/django.snippets b/sources_non_forked/vim-snippets/UltiSnips/django.snippets index eabd80f7..0ba6c9d5 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/django.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/django.snippets @@ -185,7 +185,7 @@ ${1:FIELDNAME} = models.DateTimeField($2) endsnippet snippet mdecimal "DecimalField" b -${1:FIELDNAME} = models.DateTimeField($2) +${1:FIELDNAME} = models.DecimalField(max_digits=${2:10}, decimal_places=${3:2}) endsnippet snippet memail "EmailField" b diff --git a/sources_non_forked/vim-snippets/UltiSnips/go.snippets b/sources_non_forked/vim-snippets/UltiSnips/go.snippets index 780ee29b..b6891ff0 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/go.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/go.snippets @@ -45,25 +45,6 @@ type ${1:Interface} interface { } endsnippet -# statements -snippet for "For loop" b -for ${1:condition}${1/(.+)/ /}{ - ${0:${VISUAL}} -} -endsnippet - -snippet fori "Integer for loop" b -for ${1:i} := 0; $1 < ${2:N}; $1++ { - ${0:${VISUAL}} -} -endsnippet - -snippet forr "For range loop" b -for ${2:name} := range ${1:collection} { - ${0:${VISUAL}} -} -endsnippet - snippet if "If statement" b if ${1:condition}${1/(.+)/ /}{ ${0:${VISUAL}} @@ -76,22 +57,6 @@ case${0} } endsnippet -snippet select "Select statement" b -select { -case${0} -} -endsnippet - -snippet case "Case clause" b -case ${1:condition}: - ${0:${VISUAL}} -endsnippet - -snippet default "Default clause" b -default: - ${0:${VISUAL}} -endsnippet - # functions snippet /^main/ "Main function" r func main() { diff --git a/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets b/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets index 9480e812..4537baea 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets @@ -58,6 +58,12 @@ ${1:var }${2:function_name} = function $2(${3}) { }; endsnippet +snippet af "Anonymous Function" i +function($1) { + ${VISUAL}$0 +} +endsnippet + snippet iife "Immediately-Invoked Function Expression (iife)" (function(${1:window}) { ${VISUAL}$0 diff --git a/sources_non_forked/vim-snippets/UltiSnips/rust.snippets b/sources_non_forked/vim-snippets/UltiSnips/rust.snippets index b377fa97..40e76055 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/rust.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/rust.snippets @@ -51,11 +51,11 @@ format!("${1}"${2/..*/, /}${2}); endsnippet snippet macro "macro_rules!" b -macro_rules! ${1:name} ( +macro_rules! ${1:name} { (${2:matcher}) => ( ${3} ) -) +} endsnippet snippet mod "A module" b @@ -88,7 +88,7 @@ pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { impl $1 { pub fn new(${2}) -> $1 { - $1 { ${3} }; + $1 { ${3} } } } endsnippet diff --git a/sources_non_forked/vim-snippets/snippets/elixir.snippets b/sources_non_forked/vim-snippets/snippets/elixir.snippets index bd621760..17cebbbb 100644 --- a/sources_non_forked/vim-snippets/snippets/elixir.snippets +++ b/sources_non_forked/vim-snippets/snippets/elixir.snippets @@ -87,10 +87,6 @@ snippet doc """ snippet fn fn ${1:args} -> ${0} end -snippet fun - function do - ${0} - end snippet mdoc @moduledoc """ ${0} @@ -114,6 +110,12 @@ snippet test end snippet testa test "${1:test_name}", %{${2:arg: arg}} do + ${0} + end +snippet exunit + defmodule ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} do + use ExUnit.Case + ${0} end snippet try try .. rescue .. end diff --git a/sources_non_forked/vim-snippets/snippets/go.snippets b/sources_non_forked/vim-snippets/snippets/go.snippets index af76e724..b3acac1a 100644 --- a/sources_non_forked/vim-snippets/snippets/go.snippets +++ b/sources_non_forked/vim-snippets/snippets/go.snippets @@ -53,26 +53,6 @@ snippet dfr ${0} } }() -# gpl -snippet gpl - /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - * - * Copyright (C) ${1:Author}, `strftime("%Y")` - */ - - ${0} # int snippet i int @@ -94,6 +74,12 @@ snippet if if ${1:/* condition */} { ${2} } +snippet ife + if ${1:/* condition */} { + ${2} + } else { + ${0} + } # else snippet snippet el else { @@ -128,18 +114,21 @@ snippet ie ${3} } ${0} -# for loop -snippet fo +# for int loop +snippet for + for ${1}{ + ${0} + } +# for int loop +snippet fori for ${2:i} := 0; $2 < ${1:count}; $2${3:++} { - ${4} + ${0} } - ${0} # for range loop -snippet fr - for ${1:k}, ${2:v} := range ${3} { - ${4} +snippet forr + for ${1:e} := range ${2:collection} { + ${0} } - ${0} # function simple snippet fun func ${1:funcName}(${2}) ${3:error} { @@ -196,8 +185,6 @@ snippet sl select { case ${1:v1} := <-${2:chan1} ${3} - case ${4:v2} := <-${5:chan2} - ${6} default: ${0} } @@ -228,7 +215,7 @@ snippet t # goroutine named function snippet g go ${1:funcName}(${0}) -# goroutine anonymous function +# goroutine anonymous function snippet ga go func(${1} ${2:type}) { ${3:/* code */} diff --git a/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets b/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets index 1da78d09..2b5aefb4 100644 --- a/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets +++ b/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets @@ -5,7 +5,7 @@ snippet ex module.exports = ${1}; # require snippet re - var ${1} = require('${2:module_name}'); + ${1:var} ${2} = require('${3:module_name}'); # EventEmitter snippet on on('${1:event_name}', function(${2:stream}) { diff --git a/sources_non_forked/vim-snippets/snippets/ruby.snippets b/sources_non_forked/vim-snippets/snippets/ruby.snippets index e9509a29..a6340e46 100644 --- a/sources_non_forked/vim-snippets/snippets/ruby.snippets +++ b/sources_non_forked/vim-snippets/snippets/ruby.snippets @@ -723,3 +723,7 @@ snippet iiexp it { is_expected.to ${0} } snippet iiexpn it { is_expected.not_to ${0} } +snippet agg + aggregate_failures '${1:message}' do + ${0} + end diff --git a/sources_non_forked/vim-snippets/snippets/rust.snippets b/sources_non_forked/vim-snippets/snippets/rust.snippets index 9bf896f6..20532f73 100644 --- a/sources_non_forked/vim-snippets/snippets/rust.snippets +++ b/sources_non_forked/vim-snippets/snippets/rust.snippets @@ -25,7 +25,7 @@ snippet bench "Bench function" b } snippet new "Constructor function" pub fn new(${2}) -> ${1:Name} { - $1 { ${3} }; + $1 { ${3} } } snippet main "Main function" pub fn main() { @@ -143,7 +143,7 @@ snippet stn "Struct with new constructor" impl $1 { pub fn new(${2}) -> $1 { - $1 { ${3} }; + $1 { ${3} } } } snippet type "Type alias"