Updated plugins
This commit is contained in:
parent
71fc570357
commit
20729bff94
56 changed files with 726 additions and 404 deletions
|
@ -11,11 +11,11 @@
|
||||||
## 1. Bug reports / GitHub issues
|
## 1. Bug reports / GitHub issues
|
||||||
|
|
||||||
Please note that the preferred channel for posting bug reports is the
|
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.
|
to be seen by the core team.
|
||||||
|
|
||||||
When reporting a bug make sure you search the existing GitHub issues
|
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
|
comment with any additional information that may help us solve the
|
||||||
issue.
|
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`).
|
* the version of syntastic you are using (see `:SyntasticInfo`).
|
||||||
|
|
||||||
For syntax checker bugs also state the version of the checker executable
|
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:
|
too:
|
||||||
|
|
||||||
* open a file handled by your checker;
|
* open a file handled by your checker;
|
||||||
|
@ -38,10 +38,10 @@ too:
|
||||||
|
|
||||||
## 2. Submitting a patch
|
## 2. Submitting a patch
|
||||||
|
|
||||||
Before you consider adding features to syntastic, _please_ spend a few
|
Before you consider adding features to syntastic, _please_ spend a few minutes
|
||||||
minutes (re-)reading the latest version of the [manual][1]. Syntastic
|
(re-)reading the latest version of the [manual][1]. Syntastic is changing
|
||||||
is changing rapidly at times, and it's quite possible that some features
|
rapidly at times, and it's possible that some features you want to add exist
|
||||||
you want to add exist already.
|
already.
|
||||||
|
|
||||||
To submit a patch:
|
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.
|
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.
|
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.
|
features that aren't documented.
|
||||||
|
|
||||||
<a name="generalstyle"></a>
|
<a name="generalstyle"></a>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
4.8. [How can I pass additional arguments to a checker?](#faqargs)
|
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.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.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.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)
|
4.13. [The error window is closed automatically when I :quit the current buffer but not when I :bdelete it?](#faqbdelete)
|
||||||
5. [Resources](#otherresources)
|
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,
|
R, Racket, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim,
|
||||||
SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog,
|
SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog,
|
||||||
VHDL, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, z80, Zope page templates, and
|
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,
|
A number of third-party Vim plugins also provide checkers for syntastic,
|
||||||
for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12],
|
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].
|
[vim-eastwood][28], and [vim-swift][24].
|
||||||
|
|
||||||
Below is a screenshot showing the methods that Syntastic uses to display syntax
|
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.
|
enabled.
|
||||||
|
|
||||||
![Screenshot 1][0]
|
![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
|
[Vundle][17]. Instructions for installing syntastic with [Pathogen][1] are
|
||||||
included below for completeness.
|
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
|
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
|
itself. In order to get meaningful results you need to install external
|
||||||
checkers corresponding to the types of files you use. Please consult the
|
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
|
#### 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
|
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:
|
file and the directories it needs:
|
||||||
```sh
|
```sh
|
||||||
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
|
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
|
||||||
|
@ -148,7 +154,7 @@ Quit vim and start it back up to reload it, then type:
|
||||||
:Helptags
|
:Helptags
|
||||||
```
|
```
|
||||||
If you get an error when you do this, then you probably didn't install
|
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:
|
following:
|
||||||
|
|
||||||
1. Created both the `~/.vim/autoload` and `~/.vim/bundle` directories.
|
1. Created both the `~/.vim/autoload` and `~/.vim/bundle` directories.
|
||||||
|
@ -161,7 +167,7 @@ following:
|
||||||
## 3\. Recommended settings
|
## 3\. Recommended settings
|
||||||
|
|
||||||
Syntastic has numerous options that can be configured, and the defaults
|
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
|
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):
|
return to them after reading the manual (see `:help syntastic` in Vim):
|
||||||
```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?__
|
__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
|
[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
|
in replacement, and syntastic can use it without changes. Just install it
|
||||||
somewhere and point `g:syntastic_html_tidy_exec` to its executable:
|
somewhere and point `g:syntastic_html_tidy_exec` to its executable:
|
||||||
```vim
|
```vim
|
||||||
let g:syntastic_html_tidy_exec = 'tidy5'
|
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
|
A. The `perl` checker runs `perl -c` against your file, which in turn
|
||||||
__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`
|
__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`
|
||||||
statements in your file (cf. [perlrun][10]). This is probably fine if you
|
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
|
wrote the file yourself, but it's a security problem if you're checking
|
||||||
party files. Since there is currently no way to disable this behaviour while
|
third-party files. Since there is currently no way to disable this behaviour
|
||||||
still producing useful results, the checker is now disabled by default. To
|
while still producing useful results, the checker is now disabled by default.
|
||||||
(re-)enable it, make sure the `g:syntastic_perl_checkers` list includes `perl`,
|
To (re-)enable it, make sure the `g:syntastic_perl_checkers` list includes
|
||||||
and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`:
|
`perl`, and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`:
|
||||||
```vim
|
```vim
|
||||||
let g:syntastic_enable_perl_checker = 1
|
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?__
|
__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.
|
checker should be picked up automatically by syntastic.
|
||||||
|
|
||||||
<a name="faqxcrun"></a>
|
<a name="faqxcrun"></a>
|
||||||
|
@ -275,7 +281,7 @@ checker should be picked up automatically by syntastic.
|
||||||
__4.6. Q. What happened to the `xcrun` checker?__
|
__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. 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.
|
install this plugin the checker should be picked up automatically by syntastic.
|
||||||
|
|
||||||
<a name="faqloclist"></a>
|
<a name="faqloclist"></a>
|
||||||
|
@ -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...__
|
__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`
|
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
|
location list to always be updated when you run the checkers, add this line to
|
||||||
your `vimrc`:
|
your `vimrc`:
|
||||||
```vim
|
```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.
|
able to sort out these things by itself.
|
||||||
|
|
||||||
In fact it's more useful to look at this from the perspective of filtering
|
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
|
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
|
errors and warnings, and thus you can turn off messages based on level, on
|
||||||
type, or both.
|
type, or both.
|
||||||
|
@ -380,7 +386,7 @@ See `:help syntastic_quiet_messages` for details.
|
||||||
|
|
||||||
<a name="faqaggregate"></a>
|
<a name="faqaggregate"></a>
|
||||||
|
|
||||||
__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?__
|
display all errors from all checkers together?__
|
||||||
|
|
||||||
A. Set `g:syntastic_aggregate_errors` to 1 in your `vimrc`:
|
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 tag at StackOverflow][6].
|
||||||
|
|
||||||
Syntastic aims to provide a common interface to syntax checkers for as many
|
Syntastic aims to provide a common interface to syntax checkers for as many
|
||||||
languages as possible. For particular languages, there are, of course, other
|
languages as possible. For particular languages, there are, of course, other
|
||||||
plugins that provide more functionality than syntastic. You might want to take
|
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
|
a look at [ghcmod-vim][31], [jedi-vim][7], [python-mode][8], [vim-go][32], or
|
||||||
[YouCompleteMe][9].
|
[YouCompleteMe][9].
|
||||||
|
|
||||||
|
|
|
@ -240,7 +240,12 @@ function! syntastic#util#findGlobInParent(what, where) abort " {{{2
|
||||||
|
|
||||||
let old = ''
|
let old = ''
|
||||||
while here !=# ''
|
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)
|
if !empty(p)
|
||||||
return fnamemodify(p[0], ':p')
|
return fnamemodify(p[0], ':p')
|
||||||
|
@ -499,7 +504,13 @@ function! s:_rmrf(what) abort " {{{2
|
||||||
return
|
return
|
||||||
endif
|
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)
|
call s:_rmrf(f)
|
||||||
endfor
|
endfor
|
||||||
silent! call syntastic#util#system(s:rmdir . ' ' . syntastic#util#shescape(a:what))
|
silent! call syntastic#util#system(s:rmdir . ' ' . syntastic#util#shescape(a:what))
|
||||||
|
|
|
@ -64,8 +64,8 @@ CONTENTS *syntastic-contents*
|
||||||
1. Intro *syntastic-intro*
|
1. Intro *syntastic-intro*
|
||||||
|
|
||||||
Syntastic is a syntax checking plugin that runs files through external syntax
|
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
|
checkers. This can be done on demand, or automatically as files are saved
|
||||||
opened. If syntax errors are detected, the user is notified and is happy
|
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
|
because they didn't have to compile their code or execute their script to find
|
||||||
them.
|
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.
|
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
|
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
|
different errors. Vim provides several built-in commands for this, for
|
||||||
example |:lnext| and |:lprevious|. You may want to add shortcut mappings 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'
|
these commands, or perhaps install a plugin such as Tim Pope's 'unimpaired'
|
||||||
(see https://github.com/tpope/vim-unimpaired) that provides such mappings.
|
(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
|
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
|
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
|
grouped together, and sorting within each group is decided by the variables
|
||||||
|'syntastic_<filetype>_<checker>_sort'|.
|
|'syntastic_<filetype>_<checker>_sort'|.
|
||||||
|
|
||||||
|
@ -274,17 +274,17 @@ for more info.
|
||||||
|
|
||||||
:SyntasticCheck *:SyntasticCheck*
|
: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_<filetype>_checkers'| or |'b:syntastic_checkers'| lists are run,
|
|'g:syntastic_<filetype>_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
|
(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
|
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.
|
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_<filetype>_checkers'| and |'b:syntastic_checkers'| are
|
case |'g:syntastic_<filetype>_checkers'| and |'b:syntastic_checkers'| are
|
||||||
ignored, and the checkers named by the command's arguments are run instead, in
|
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: >
|
Example: >
|
||||||
:SyntasticCheck flake8 pylint
|
:SyntasticCheck flake8 pylint
|
||||||
|
@ -319,7 +319,7 @@ when buffers are first loaded, as well as on saving: >
|
||||||
*'syntastic_check_on_wq'*
|
*'syntastic_check_on_wq'*
|
||||||
Default: 1
|
Default: 1
|
||||||
In active mode syntax checks are normally run whenever buffers are written to
|
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: >
|
skip checks when you issue |:wq|, |:x|, and |:ZZ|, set this variable to 0: >
|
||||||
let g:syntastic_check_on_wq = 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,
|
error list (that is either when |'syntastic_aggregate_errors'| is enabled,
|
||||||
or when checking a file with a composite filetype), errors are grouped by
|
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
|
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: >
|
to leave messages grouped by checker output, set this variable to 0: >
|
||||||
let g:syntastic_sort_aggregated_errors = 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
|
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,
|
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.
|
location list is also overwritten when running the |:Errors| command.
|
||||||
|
|
||||||
*'syntastic_auto_jump'*
|
*'syntastic_auto_jump'*
|
||||||
|
@ -469,10 +469,10 @@ opens. >
|
||||||
<
|
<
|
||||||
*'syntastic_ignore_files'*
|
*'syntastic_ignore_files'*
|
||||||
Default: []
|
Default: []
|
||||||
Use this option to specify files that syntastic should never check. It's a
|
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
|
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|
|
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$']
|
let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$']
|
||||||
<
|
<
|
||||||
*'syntastic_filetype_map'*
|
*'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
|
"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
|
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|.
|
calls |:SyntasticCheck|.
|
||||||
|
|
||||||
The exceptions to these rules are defined with "active_filetypes" and
|
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'*
|
*'syntastic_quiet_messages'*
|
||||||
Default: {}
|
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: >
|
option should be set to something like: >
|
||||||
let g:syntastic_quiet_messages = {
|
let g:syntastic_quiet_messages = {
|
||||||
\ "!level": "errors",
|
\ "!level": "errors",
|
||||||
|
@ -646,20 +646,20 @@ The above variable can be used to disable exit code checks in syntastic.
|
||||||
Default: Vim's 'shell'
|
Default: Vim's 'shell'
|
||||||
This is the (full path to) the shell syntastic will use to run the checkers.
|
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
|
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
|
compatible shells are "zsh", "bash", "ksh", and of course the original Bourne
|
||||||
"sh".
|
"sh".
|
||||||
|
|
||||||
This shell is independent of Vim's 'shell', and it isn't used for interactive
|
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
|
operations. It must take care to initialize all environment variables needed
|
||||||
by the checkers you're using. Example: >
|
by the checkers you're using. Example: >
|
||||||
let g:syntastic_shell = "/bin/sh"
|
let g:syntastic_shell = "/bin/sh"
|
||||||
<
|
<
|
||||||
*'syntastic_nested_autocommands'*
|
*'syntastic_nested_autocommands'*
|
||||||
Default: 0
|
Default: 0
|
||||||
Controls whether syntastic's autocommands |BufReadPost| and |BufWritePost|
|
Controls whether syntastic's autocommands |BufReadPost| and |BufWritePost|
|
||||||
are called from other |BufReadPost| and |BufWritePost| autocommands (see
|
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.
|
other plugins, so only enable it if you actually need that functionality.
|
||||||
|
|
||||||
*'syntastic_debug'*
|
*'syntastic_debug'*
|
||||||
|
@ -688,7 +688,7 @@ addition to being added to Vim's |message-history|: >
|
||||||
<
|
<
|
||||||
*'syntastic_extra_filetypes'*
|
*'syntastic_extra_filetypes'*
|
||||||
Default: []
|
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
|
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
|
filetype that is unknown to syntastic, you might consider adding that filetype
|
||||||
to this list: >
|
to this list: >
|
||||||
|
@ -710,7 +710,7 @@ variable 'g:syntastic_<filetype>_checkers' to a list of checkers, e.g. >
|
||||||
<
|
<
|
||||||
*'b:syntastic_checkers'*
|
*'b:syntastic_checkers'*
|
||||||
There is also a per-buffer version of this setting, 'b:syntastic_checkers'.
|
There is also a per-buffer version of this setting, 'b:syntastic_checkers'.
|
||||||
When set, it takes precedence over |'g:syntastic_<filetype>_checkers'|. You can
|
When set, it takes precedence over |'g:syntastic_<filetype>_checkers'|. You can
|
||||||
use this in an autocmd to configure specific checkers for particular paths: >
|
use this in an autocmd to configure specific checkers for particular paths: >
|
||||||
autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 |
|
autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 |
|
||||||
\ let b:syntastic_checkers = ["pylint"] | endif
|
\ 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*
|
6.2 Editing files over network *syntastic-netrw*
|
||||||
|
|
||||||
The standard plugin |netrw| allows Vim to transparently edit files over
|
The standard plugin |netrw| allows Vim to transparently edit files over
|
||||||
network and inside archives. Currently syntastic doesn't support this mode
|
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
|
of operation. It can only check files that can be accessed directly by local
|
||||||
checkers, without any translation or conversion.
|
checkers, without any translation or conversion.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
6.3 The 'shellslash' option *syntastic-shellslash*
|
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
|
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
|
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
|
"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.
|
value.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
@ -887,8 +887,8 @@ quickfix windows.
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.1 The csh and tcsh shells *syntastic-csh*
|
7.1 The csh and tcsh shells *syntastic-csh*
|
||||||
|
|
||||||
The "csh" and "tcsh" shells are mostly compatible with syntastic. However,
|
The "csh" and "tcsh" shells are mostly compatible with syntastic. However,
|
||||||
some checkers assume Bourne shell syntax for redirecting "stderr". For this
|
some checkers assume Bourne shell syntax for redirecting "stderr". For this
|
||||||
reason, you should point |'syntastic_shell'| to a Bourne-compatible shell,
|
reason, you should point |'syntastic_shell'| to a Bourne-compatible shell,
|
||||||
such as "zsh", "bash", "ksh", or even the original Bourne "sh": >
|
such as "zsh", "bash", "ksh", or even the original Bourne "sh": >
|
||||||
let g:syntastic_shell = "/bin/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
|
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
|
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": >
|
Vim's 'shell' to a more traditional program, such as "cmd.exe": >
|
||||||
set shell=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*
|
7.9. vim-auto-save *syntastic-vim-auto-save*
|
||||||
|
|
||||||
Syntastic can be used together with the "vim-auto-save" Vim plugin (see
|
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.
|
mode only work with "vim-auto-save" version 0.1.7 or later.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.10. vim-go *syntastic-vim-go*
|
7.10. vim-go *syntastic-vim-go*
|
||||||
|
|
||||||
Syntastic can be used along with the "vim-go" Vim plugin (see
|
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
|
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,
|
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
|
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
|
|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
|
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
|
At the time of this writing, syntastic can't run checkers installed
|
||||||
in Python virtual environments activated by "vim-virtualenv" (see
|
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".
|
"vim-virtualenv".
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.12 YouCompleteMe *syntastic-ycm*
|
7.12 YouCompleteMe *syntastic-ycm*
|
||||||
|
|
||||||
Syntastic can be used together with the "YouCompleteMe" Vim plugin (see
|
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"
|
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
|
identifier completer but still run syntastic's checkers for those filetypes you
|
||||||
have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: >
|
have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: >
|
||||||
let g:ycm_show_diagnostics_ui = 0
|
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/)
|
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
|
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
|
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
|
programs such as "rvm" (https://rvm.io/) or "rbenv" (http://rbenv.org/), that
|
||||||
rely on setting environment variables.
|
rely on setting environment variables.
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ if has('reltime')
|
||||||
lockvar! g:_SYNTASTIC_START
|
lockvar! g:_SYNTASTIC_START
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let g:_SYNTASTIC_VERSION = '3.7.0-88'
|
let g:_SYNTASTIC_VERSION = '3.7.0-99'
|
||||||
lockvar g:_SYNTASTIC_VERSION
|
lockvar g:_SYNTASTIC_VERSION
|
||||||
|
|
||||||
" Sanity checks {{{1
|
" Sanity checks {{{1
|
||||||
|
|
|
@ -164,7 +164,7 @@ function! g:SyntasticRegistry.CreateAndRegisterChecker(args) abort " {{{2
|
||||||
|
|
||||||
if has_key(a:args, 'redirect')
|
if has_key(a:args, 'redirect')
|
||||||
let [ft, name] = split(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, {})
|
let clone = get(registry._checkerMap[ft], name, {})
|
||||||
if empty(clone)
|
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)' )
|
return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' )
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticRegistry._loadCheckersFor(filetype) abort " {{{2
|
function! g:SyntasticRegistry._loadCheckersFor(filetype, ...) abort " {{{2
|
||||||
if has_key(self._checkerMap, a:filetype)
|
" XXX: a:1 == 1 means re-scan checkers for filetype
|
||||||
|
if has_key(self._checkerMap, a:filetype) && (!a:0 || !a:1)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,6 @@ let s:setup_done = 0
|
||||||
|
|
||||||
function! g:SyntasticSignsNotifier.New() abort " {{{2
|
function! g:SyntasticSignsNotifier.New() abort " {{{2
|
||||||
let newObj = copy(self)
|
let newObj = copy(self)
|
||||||
|
|
||||||
if !s:setup_done
|
|
||||||
call self._setup()
|
|
||||||
let s:setup_done = 1
|
|
||||||
lockvar s:setup_done
|
|
||||||
endif
|
|
||||||
|
|
||||||
return newObj
|
return newObj
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
|
@ -37,8 +30,15 @@ endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticSignsNotifier.refresh(loclist) abort " {{{2
|
function! g:SyntasticSignsNotifier.refresh(loclist) abort " {{{2
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh')
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh')
|
||||||
|
|
||||||
let old_signs = copy(self._bufSignIds())
|
let old_signs = copy(self._bufSignIds())
|
||||||
if self.enabled()
|
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)
|
call self._signErrors(a:loclist)
|
||||||
endif
|
endif
|
||||||
call self._removeSigns(old_signs)
|
call self._removeSigns(old_signs)
|
||||||
|
|
|
@ -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 while reading hint file\, %m,' .
|
||||||
\ '%E%f:%l:%v: Error: %m,' .
|
\ '%E%f:%l:%v: Error: %m,' .
|
||||||
\ '%W%f:%l:%v: Warning: %m,' .
|
\ '%W%f:%l:%v: Warning: %m,' .
|
||||||
|
\ '%W%f:%l:%v: Suggestion: %m,' .
|
||||||
\ '%C%m'
|
\ '%C%m'
|
||||||
|
|
||||||
return SyntasticMake({
|
return SyntasticMake({
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
"============================================================================
|
"============================================================================
|
||||||
"File: pep257.vim
|
"File: pep257.vim
|
||||||
"Description: Docstring style checking plugin for syntastic.vim
|
"Description: Syntax checking plugin for syntastic
|
||||||
|
"Maintainer: LCD 47 <lcd047 at gmail dot com>
|
||||||
|
"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')
|
if exists('g:loaded_syntastic_python_pep257_checker')
|
||||||
|
@ -8,52 +15,9 @@ if exists('g:loaded_syntastic_python_pep257_checker')
|
||||||
endif
|
endif
|
||||||
let g:loaded_syntastic_python_pep257_checker = 1
|
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({
|
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||||
\ 'filetype': 'python',
|
\ 'filetype': 'python',
|
||||||
\ 'name': 'pep257'})
|
\ 'name': 'pep257',
|
||||||
|
\ 'redirect': 'python/pydocstyle'})
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
" vim: set sw=4 sts=4 et fdm=marker:
|
" vim: set sw=4 sts=4 et fdm=marker:
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
"============================================================================
|
||||||
|
"File: pydocstyle.vim
|
||||||
|
"Description: Syntax checking plugin for syntastic
|
||||||
|
"Maintainer: LCD 47 <lcd047 at gmail dot com>
|
||||||
|
"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:
|
|
@ -50,6 +50,12 @@ function! airline#themes#lucius#refresh()
|
||||||
\ 'red': airline#themes#get_highlight('Constant'),
|
\ '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
|
endfunction
|
||||||
|
|
||||||
call airline#themes#lucius#refresh()
|
call airline#themes#lucius#refresh()
|
||||||
|
|
|
@ -3,16 +3,31 @@
|
||||||
This is the Changelog for the vim-airline project.
|
This is the Changelog for the vim-airline project.
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.8] - 2016-03-09
|
||||||
- Changes
|
- Changes
|
||||||
- Themes have been moved into an extra repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)
|
- Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline)
|
||||||
- Many new themes
|
- Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)
|
||||||
- Airline Moved to new [repository](https://github.com/vim-airline/vim-airline)
|
- Improvements
|
||||||
- New features
|
- Extensions
|
||||||
- Integration with [taboo](https://github.com/gcmt/taboo.vim), [vim-ctrlspace](https://github.com/szw/vim-ctrlspace),
|
- branch: support Git and Mercurial simultaneously, untracked files
|
||||||
[quickfixsigns](https://github.com/tomtom/quickfixsigns_vim), [YouCompleteMe](https://github.com/Valloric/YouCompleteMe)
|
- whitespace: new mixed-indent rule
|
||||||
|
- Windows support
|
||||||
|
- Many bug fixes
|
||||||
- Support for Neovim
|
- Support for Neovim
|
||||||
- Added wordcount extension
|
- New features
|
||||||
- Adding Crypt and Byte Order Mark Indicator
|
- 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
|
## [0.7] - 2014-12-10
|
||||||
- New features
|
- 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
|
- integration with other plugins: netrw, unite, nerdtree, undotree, gundo, tagbar, minibufexplr, ctrlp
|
||||||
- support for themes: 8 included
|
- 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.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.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
|
[0.5]: https://github.com/vim-airline/vim-airline/compare/v0.4...v0.5
|
||||||
|
|
14
sources_non_forked/vim-airline/ISSUE_TEMPLATE.md
Normal file
14
sources_non_forked/vim-airline/ISSUE_TEMPLATE.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#### environment
|
||||||
|
|
||||||
|
- vim: ????
|
||||||
|
- vim-airline: ????
|
||||||
|
- OS: ????
|
||||||
|
- terminal: ????
|
||||||
|
|
||||||
|
#### actual behavior
|
||||||
|
|
||||||
|
????
|
||||||
|
|
||||||
|
#### expected behavior
|
||||||
|
|
||||||
|
????
|
|
@ -72,9 +72,10 @@ endfunction
|
||||||
function! airline#switch_matching_theme()
|
function! airline#switch_matching_theme()
|
||||||
if exists('g:colors_name')
|
if exists('g:colors_name')
|
||||||
let existing = g:airline_theme
|
let existing = g:airline_theme
|
||||||
|
let theme = substitute(g:colors_name, '-', '_', 'g')
|
||||||
try
|
try
|
||||||
let palette = g:airline#themes#{g:colors_name}#palette
|
let palette = g:airline#themes#{theme}#palette
|
||||||
call airline#switch_theme(g:colors_name)
|
call airline#switch_theme(theme)
|
||||||
return 1
|
return 1
|
||||||
catch
|
catch
|
||||||
for map in items(g:airline_theme_map)
|
for map in items(g:airline_theme_map)
|
||||||
|
|
|
@ -210,6 +210,10 @@ function! airline#extensions#load()
|
||||||
call airline#extensions#whitespace#init(s:ext)
|
call airline#extensions#whitespace#init(s:ext)
|
||||||
endif
|
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)
|
if get(g:, 'airline#extensions#wordcount#enabled', 1)
|
||||||
call airline#extensions#wordcount#init(s:ext)
|
call airline#extensions#wordcount#init(s:ext)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -154,7 +154,7 @@ function! airline#extensions#branch#head()
|
||||||
if exists("g:airline#extensions#branch#displayed_head_limit")
|
if exists("g:airline#extensions#branch#displayed_head_limit")
|
||||||
let w:displayed_head_limit = 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
|
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
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
@ -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_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||||
let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 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: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)
|
let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0)
|
||||||
if s:taboo
|
if s:taboo
|
||||||
let g:taboo_tabline = 0
|
let g:taboo_tabline = 0
|
||||||
|
@ -41,27 +42,21 @@ function! s:toggle_on()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:update_tabline()
|
function! s:update_tabline()
|
||||||
|
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
||||||
|
return
|
||||||
|
endif
|
||||||
let match = expand('<afile>')
|
let match = expand('<afile>')
|
||||||
if pumvisible()
|
if pumvisible()
|
||||||
return
|
return
|
||||||
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||||
return
|
return
|
||||||
" return, if buffer matches ignore pattern or is directory (netrw)
|
" return, if buffer matches ignore pattern or is directory (netrw)
|
||||||
elseif empty(match)
|
elseif empty(match)
|
||||||
\ || match(match, s:ignore_bufadd_pat) > -1
|
\ || match(match, s:ignore_bufadd_pat) > -1
|
||||||
\ || isdirectory(expand("<afile>"))
|
\ || isdirectory(expand("<afile>"))
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if empty(mapcheck("<Plug>AirlineTablineRefresh", 'n'))
|
doautocmd User BufMRUChange
|
||||||
noremap <silent> <Plug>AirlineTablineRefresh :set mod!<cr>
|
|
||||||
endif
|
|
||||||
call feedkeys("\<Plug>AirlineTablineRefresh")
|
|
||||||
call feedkeys("\<Plug>AirlineTablineRefresh")
|
|
||||||
"call feedkeys(',,', 't')
|
|
||||||
"call feedkeys(':unmap ,,')
|
|
||||||
" force re-evaluation of tabline setting
|
|
||||||
" disable explicit redraw, may cause E315
|
|
||||||
"redraw
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#load_theme(palette)
|
function! airline#extensions#tabline#load_theme(palette)
|
||||||
|
@ -92,6 +87,7 @@ function! airline#extensions#tabline#load_theme(palette)
|
||||||
|
|
||||||
" Theme for tabs on the right
|
" Theme for tabs on the right
|
||||||
let l:tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a)
|
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: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)
|
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')
|
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
|
"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)
|
let l:tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c)
|
||||||
endif
|
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_tabsel_right', l:tabsel_right)
|
||||||
call airline#highlighter#exec('airline_tabmod_right', l:tabmod_right)
|
call airline#highlighter#exec('airline_tabmod_right', l:tabmod_right)
|
||||||
call airline#highlighter#exec('airline_tabhid_right', l:tabhid_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)
|
return airline#builder#new(builder_context)
|
||||||
endfunction
|
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
|
||||||
|
|
|
@ -5,6 +5,7 @@ scriptencoding utf-8
|
||||||
|
|
||||||
let s:buffer_idx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0)
|
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: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:spc = g:airline_symbols.space
|
||||||
|
|
||||||
let s:current_bufnr = -1
|
let s:current_bufnr = -1
|
||||||
|
@ -64,23 +65,16 @@ function! airline#extensions#tabline#buffers#get()
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if cur == nr
|
let group = airline#extensions#tabline#group_of_bufnr(tab_bufs, nr)
|
||||||
if g:airline_detect_modified && getbufvar(nr, '&modified')
|
|
||||||
let group = 'airline_tabmod'
|
if nr == cur
|
||||||
else
|
|
||||||
let group = 'airline_tabsel'
|
|
||||||
endif
|
|
||||||
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
|
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
|
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 s:buffer_idx_mode
|
||||||
if len(s:number_map) > 0
|
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)
|
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
|
else
|
||||||
call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
|
call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
|
||||||
endif
|
endif
|
||||||
|
if has("tablineat")
|
||||||
|
call b.add_raw('%X')
|
||||||
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call b.add_section('airline_tabfill', '')
|
call b.add_section('airline_tabfill', '')
|
||||||
call b.split()
|
call b.split()
|
||||||
call b.add_section('airline_tabfill', '')
|
call b.add_section('airline_tabfill', '')
|
||||||
if s:show_tab_type
|
if s:show_tab_type
|
||||||
call b.add_section('airline_tabtype', ' buffers ')
|
call b.add_section_spaced('airline_tabtype', s:buffers_label)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:current_bufnr = cur
|
let s:current_bufnr = cur
|
||||||
|
@ -198,3 +195,11 @@ function s:map_keys()
|
||||||
noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR>
|
noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR>
|
||||||
endif
|
endif
|
||||||
endfunction
|
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
|
||||||
|
|
|
@ -7,6 +7,12 @@ let s:current_bufnr = -1
|
||||||
let s:current_tabnr = -1
|
let s:current_tabnr = -1
|
||||||
let s:current_tabline = ''
|
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()
|
function! airline#extensions#tabline#ctrlspace#off()
|
||||||
augroup airline_tabline_ctrlspace
|
augroup airline_tabline_ctrlspace
|
||||||
autocmd!
|
autocmd!
|
||||||
|
@ -25,6 +31,62 @@ function! airline#extensions#tabline#ctrlspace#invalidate()
|
||||||
let s:current_tabnr = -1
|
let s:current_tabnr = -1
|
||||||
endfunction
|
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()
|
function! airline#extensions#tabline#ctrlspace#get()
|
||||||
let cur_buf = bufnr('%')
|
let cur_buf = bufnr('%')
|
||||||
|
|
||||||
|
@ -39,59 +101,44 @@ function! airline#extensions#tabline#ctrlspace#get()
|
||||||
return s:current_tabline
|
return s:current_tabline
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b = airline#extensions#tabline#new_builder()
|
let builder = airline#extensions#tabline#new_builder()
|
||||||
|
|
||||||
call b.add_section_spaced('airline_tabtype', 'buffers')
|
" Add left tabline content
|
||||||
|
if s:show_buffers == 0
|
||||||
let s:buffer_list = ctrlspace#api#BufferList(cur_tab)
|
call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 0)
|
||||||
for buffer in s:buffer_list
|
elseif s:show_tabs == 0
|
||||||
if cur_buf == buffer.index
|
call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 0)
|
||||||
if buffer.modified
|
else
|
||||||
let group = 'airline_tabmod'
|
if s:switch_buffers_and_tabs == 0
|
||||||
else
|
call builder.add_section_spaced('airline_tabtype', s:buffers_label)
|
||||||
let group = 'airline_tabsel'
|
call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 0)
|
||||||
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
|
|
||||||
else
|
else
|
||||||
if tab.modified
|
call builder.add_section_spaced('airline_tabtype', s:tabs_label)
|
||||||
let group = 'airline_tabmod_unsel_right'
|
call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 0)
|
||||||
else
|
|
||||||
let group = 'airline_tabhid_right'
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
call b.add_section_spaced(group, tab.title.ctrlspace#api#TabBuffersNumber(tab.index))
|
call builder.add_section('airline_tabfill', '')
|
||||||
endfor
|
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_bufnr = cur_buf
|
||||||
let s:current_tabnr = cur_tab
|
let s:current_tabnr = cur_tab
|
||||||
let s:current_tabline = b.build()
|
let s:current_tabline = builder.build()
|
||||||
return s:current_tabline
|
return s:current_tabline
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" 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_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_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: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_bufnr = -1
|
||||||
let s:current_tabnr = -1
|
let s:current_tabnr = -1
|
||||||
|
@ -39,19 +42,20 @@ function! airline#extensions#tabline#tabs#get()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b = airline#extensions#tabline#new_builder()
|
let b = airline#extensions#tabline#new_builder()
|
||||||
|
|
||||||
for i in range(1, tabpagenr('$'))
|
for i in range(1, tabpagenr('$'))
|
||||||
if i == curtab
|
if i == curtab
|
||||||
let group = 'airline_tabsel'
|
let group = 'airline_tabsel_right'
|
||||||
if g:airline_detect_modified
|
if g:airline_detect_modified
|
||||||
for bi in tabpagebuflist(i)
|
for bi in tabpagebuflist(i)
|
||||||
if getbufvar(bi, '&modified')
|
if getbufvar(bi, '&modified')
|
||||||
let group = 'airline_tabmod'
|
let group = 'airline_tabmod_right'
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
|
let s:current_modified = (group == 'airline_tabmod_right') ? 1 : 0
|
||||||
else
|
else
|
||||||
let group = 'airline_tab'
|
let group = 'airline_tab_right'
|
||||||
endif
|
endif
|
||||||
let val = '%('
|
let val = '%('
|
||||||
if s:show_tab_nr
|
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.')} %)')
|
call b.add_section(group, val.'%'.i.'T %{airline#extensions#tabline#title('.i.')} %)')
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call b.add_raw('%T')
|
|
||||||
call b.add_section('airline_tabfill', '')
|
call b.add_section('airline_tabfill', '')
|
||||||
call b.split()
|
call b.split()
|
||||||
|
call b.add_section('airline_tabfill', '')
|
||||||
|
|
||||||
if s:show_close_button
|
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
|
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
|
endif
|
||||||
|
|
||||||
let s:current_bufnr = curbuf
|
let s:current_bufnr = curbuf
|
||||||
|
|
|
@ -35,8 +35,14 @@ function! s:check_mixed_indent()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:check_mixed_indent_file()
|
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_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
|
if indent_tabs > 0 && indent_spc > 0
|
||||||
return printf("%d:%d", indent_tabs, indent_spc)
|
return printf("%d:%d", indent_tabs, indent_spc)
|
||||||
else
|
else
|
||||||
|
|
|
@ -47,13 +47,12 @@ function! airline#init#bootstrap()
|
||||||
|
|
||||||
call s:check_defined('g:airline_theme_map', {})
|
call s:check_defined('g:airline_theme_map', {})
|
||||||
call extend(g:airline_theme_map, {
|
call extend(g:airline_theme_map, {
|
||||||
\ 'Tomorrow.*': 'tomorrow',
|
\ '\CTomorrow': 'tomorrow',
|
||||||
\ 'base16.*': 'base16',
|
\ 'base16': 'base16',
|
||||||
\ 'bubblegum': 'bubblegum',
|
|
||||||
\ 'mo[l|n]okai': 'molokai',
|
\ 'mo[l|n]okai': 'molokai',
|
||||||
\ 'wombat.*': 'wombat',
|
\ 'wombat': 'wombat',
|
||||||
\ '.*zenburn.*': 'zenburn',
|
\ 'zenburn': 'zenburn',
|
||||||
\ '.*solarized.*': 'solarized',
|
\ 'solarized': 'solarized',
|
||||||
\ }, 'keep')
|
\ }, 'keep')
|
||||||
|
|
||||||
call s:check_defined('g:airline_symbols', {})
|
call s:check_defined('g:airline_symbols', {})
|
||||||
|
|
|
@ -70,7 +70,11 @@ function! airline#parts#iminsert()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#readonly()
|
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
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#filetype()
|
function! airline#parts#filetype()
|
||||||
|
|
|
@ -489,13 +489,22 @@ eclim <https://eclim.org>
|
||||||
let g:airline#extensions#whitespace#trailing_regexp = '\s$'
|
let g:airline#extensions#whitespace#trailing_regexp = '\s$'
|
||||||
<
|
<
|
||||||
------------------------------------- *airline-tabline*
|
------------------------------------- *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
|
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
|
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
|
let g:airline#extensions#tabline#show_tabs = 1
|
||||||
<
|
<
|
||||||
* configure filename match rules to exclude from the tabline. >
|
* configure filename match rules to exclude from the tabline. >
|
||||||
|
@ -515,11 +524,13 @@ eclim <https://eclim.org>
|
||||||
* enable/disable displaying tab type (far right) >
|
* enable/disable displaying tab type (far right) >
|
||||||
let g:airline#extensions#tabline#show_tab_type = 1
|
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
|
* rename label for tabs (default: 'tabs') (c)
|
||||||
buffer on the left. Also none of the tabline switches is currently
|
let g:airline#extensions#tabline#tabs_label = 't'
|
||||||
supported!
|
|
||||||
|
* enable/disable displaying index of the buffer.
|
||||||
|
|
||||||
When enabled, numbers will be displayed in the tabline and mappings will be
|
When enabled, numbers will be displayed in the tabline and mappings will be
|
||||||
exposed to allow you to select a buffer directly. Up to 9 mappings will be
|
exposed to allow you to select a buffer directly. Up to 9 mappings will be
|
||||||
|
@ -545,7 +556,7 @@ eclim <https://eclim.org>
|
||||||
Use |gt| for switching tabs.
|
Use |gt| for switching tabs.
|
||||||
In tabmode, those mappings will switch to the specified tab.
|
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'
|
let g:airline#extensions#tabline#formatter = 'default'
|
||||||
|
|
||||||
" here is how you can define a 'foo' formatter:
|
" here is how you can define a 'foo' formatter:
|
||||||
|
@ -565,7 +576,7 @@ eclim <https://eclim.org>
|
||||||
* configure whether buffer numbers should be shown. >
|
* configure whether buffer numbers should be shown. >
|
||||||
let g:airline#extensions#tabline#buffer_nr_show = 0
|
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: '
|
let g:airline#extensions#tabline#buffer_nr_format = '%s: '
|
||||||
<
|
<
|
||||||
* configure the formatting of filenames (see |filename-modifiers|). >
|
* configure the formatting of filenames (see |filename-modifiers|). >
|
||||||
|
@ -614,9 +625,13 @@ eclim <https://eclim.org>
|
||||||
let airline#extensions#tabline#ignore_bufadd_pat =
|
let airline#extensions#tabline#ignore_bufadd_pat =
|
||||||
\ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree'
|
\ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree'
|
||||||
|
|
||||||
<
|
|
||||||
Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
|
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*
|
------------------------------------- *airline-tmuxline*
|
||||||
tmuxline <https://github.com/edkolev/tmuxline.vim>
|
tmuxline <https://github.com/edkolev/tmuxline.vim>
|
||||||
|
|
||||||
|
@ -707,6 +722,15 @@ Shows number of errors and warnings in the current file detected by YCM.
|
||||||
* set warning count prefix >
|
* set warning count prefix >
|
||||||
let g:airline#extensions#ycm#warning_symbol = 'W:'
|
let g:airline#extensions#ycm#warning_symbol = 'W:'
|
||||||
<
|
<
|
||||||
|
------------------------------------- *airline-po*
|
||||||
|
po.vim <http://www.vim.org/scripts/script.php?script_id=2530>
|
||||||
|
|
||||||
|
* 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*
|
ADVANCED CUSTOMIZATION *airline-advanced-customization*
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,11 @@ function! s:go(type,...) abort
|
||||||
let [lnum1, lnum2] = [line("'["), line("']")]
|
let [lnum1, lnum2] = [line("'["), line("']")]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let [l, r] = s:surroundings()
|
let [l_, r_] = s:surroundings()
|
||||||
let uncomment = 2
|
let uncomment = 2
|
||||||
for lnum in range(lnum1,lnum2)
|
for lnum in range(lnum1,lnum2)
|
||||||
let line = matchstr(getline(lnum),'\S.*\s\@<!')
|
let line = matchstr(getline(lnum),'\S.*\s\@<!')
|
||||||
let [l, r] = s:strip_white_space(l,r,line)
|
let [l, r] = s:strip_white_space(l_,r_,line)
|
||||||
if line != '' && (stridx(line,l) || line[strlen(line)-strlen(r) : -1] != r)
|
if line != '' && (stridx(line,l) || line[strlen(line)-strlen(r) : -1] != r)
|
||||||
let uncomment = 0
|
let uncomment = 0
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -57,6 +57,10 @@ that are part of Git repositories).
|
||||||
q close status
|
q close status
|
||||||
r reload status
|
r reload status
|
||||||
S |:Gvsplit|
|
S |:Gvsplit|
|
||||||
|
U |:Git| checkout
|
||||||
|
U |:Git| checkout HEAD (staged files)
|
||||||
|
U |:Git| clean (untracked files)
|
||||||
|
U |:Git| rm (unmerged files)
|
||||||
|
|
||||||
*fugitive-:Gcommit*
|
*fugitive-:Gcommit*
|
||||||
:Gcommit [args] A wrapper around git-commit. If there is nothing
|
:Gcommit [args] A wrapper around git-commit. If there is nothing
|
||||||
|
|
|
@ -123,7 +123,9 @@ let s:abstract_prototype = {}
|
||||||
|
|
||||||
function! fugitive#is_git_dir(path) abort
|
function! fugitive#is_git_dir(path) abort
|
||||||
let path = s:sub(a:path, '[\/]$', '') . '/'
|
let path = s:sub(a:path, '[\/]$', '') . '/'
|
||||||
return isdirectory(path.'objects') && isdirectory(path.'refs') && getfsize(path.'HEAD') > 10
|
return getfsize(path.'HEAD') > 10 && (
|
||||||
|
\ isdirectory(path.'objects') && isdirectory(path.'refs') ||
|
||||||
|
\ getftype(path.'commondir') ==# 'file')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! fugitive#extract_git_dir(path) abort
|
function! fugitive#extract_git_dir(path) abort
|
||||||
|
@ -265,9 +267,17 @@ function! s:configured_tree(git_dir) abort
|
||||||
let config = readfile(config_file,'',10)
|
let config = readfile(config_file,'',10)
|
||||||
call filter(config,'v:val =~# "^\\s*worktree *="')
|
call filter(config,'v:val =~# "^\\s*worktree *="')
|
||||||
if len(config) == 1
|
if len(config) == 1
|
||||||
let s:worktree_for_dir[a:git_dir] = matchstr(config[0], '= *\zs.*')
|
let worktree = matchstr(config[0], '= *\zs.*')
|
||||||
let s:dir_for_worktree[s:worktree_for_dir[a:git_dir]] = a:git_dir
|
|
||||||
endif
|
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
|
||||||
endif
|
endif
|
||||||
if s:worktree_for_dir[a:git_dir] =~# '^\.'
|
if s:worktree_for_dir[a:git_dir] =~# '^\.'
|
||||||
|
@ -299,6 +309,10 @@ function! s:repo_bare() dict abort
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:repo_translate(spec) dict abort
|
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 ==# '/.'
|
if a:spec ==# '.' || a:spec ==# '/.'
|
||||||
return self.bare() ? self.dir() : self.tree()
|
return self.bare() ? self.dir() : self.tree()
|
||||||
elseif a:spec =~# '^/\=\.git$' && self.bare()
|
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]
|
return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1]
|
||||||
elseif a:spec ==# '@'
|
elseif a:spec ==# '@'
|
||||||
return self.dir('HEAD')
|
return self.dir('HEAD')
|
||||||
elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(self.dir(a:spec))
|
elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(refs . '../' . a:spec)
|
||||||
return self.dir(a:spec)
|
return simplify(refs . '../' . a:spec)
|
||||||
elseif filereadable(self.dir('refs/'.a:spec))
|
elseif filereadable(refs.a:spec)
|
||||||
return self.dir('refs/'.a:spec)
|
return refs.a:spec
|
||||||
elseif filereadable(self.dir('refs/tags/'.a:spec))
|
elseif filereadable(refs.'tags/'.a:spec)
|
||||||
return self.dir('refs/tags/'.a:spec)
|
return refs.'tags/'.a:spec
|
||||||
elseif filereadable(self.dir('refs/heads/'.a:spec))
|
elseif filereadable(refs.'heads/'.a:spec)
|
||||||
return self.dir('refs/heads/'.a:spec)
|
return refs.'heads/'.a:spec
|
||||||
elseif filereadable(self.dir('refs/remotes/'.a:spec))
|
elseif filereadable(refs.'remotes/'.a:spec)
|
||||||
return self.dir('refs/remotes/'.a:spec)
|
return refs.'remotes/'.a:spec
|
||||||
elseif filereadable(self.dir('refs/remotes/'.a:spec.'/HEAD'))
|
elseif filereadable(refs.'remotes/'.a:spec.'/HEAD')
|
||||||
return self.dir('refs/remotes/'.a:spec,'/HEAD')
|
return refs.'remotes/'.a:spec,'/HEAD'
|
||||||
else
|
else
|
||||||
try
|
try
|
||||||
let ref = self.rev_parse(matchstr(a:spec,'[^:]*'))
|
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)
|
let hash = repo.git_chomp('hash-object', '-w', filename)
|
||||||
if !empty(hash)
|
if !empty(hash)
|
||||||
if section ==# 'untracked'
|
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'
|
elseif section ==# 'unstaged'
|
||||||
call repo.git_chomp_in_tree('checkout', '--', filename)
|
call repo.git_chomp_in_tree('checkout', '--', filename)
|
||||||
else
|
else
|
||||||
|
@ -2675,7 +2691,7 @@ function! s:BufReadObject() abort
|
||||||
if b:fugitive_display_format
|
if b:fugitive_display_format
|
||||||
call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash))
|
call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash))
|
||||||
else
|
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 ')
|
keepjumps call search('^parent ')
|
||||||
if getline('.') ==# 'parent '
|
if getline('.') ==# 'parent '
|
||||||
silent keepjumps delete_
|
silent keepjumps delete_
|
||||||
|
|
9
sources_non_forked/vim-go/.github/CONTRIBUTING.md
vendored
Normal file
9
sources_non_forked/vim-go/.github/CONTRIBUTING.md
vendored
Normal file
|
@ -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.
|
30
sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md
vendored
Normal file
30
sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md
vendored
Normal file
|
@ -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:
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,26 +5,26 @@ endif
|
||||||
|
|
||||||
" Test alternates between the implementation of code and the test code.
|
" Test alternates between the implementation of code and the test code.
|
||||||
function! go#alternate#Switch(bang, cmd)
|
function! go#alternate#Switch(bang, cmd)
|
||||||
let l:file = go#alternate#Filename(fnameescape(expand("%")))
|
let file = expand('%')
|
||||||
if !filereadable(l:file) && !bufexists(l:file) && !a:bang
|
if empty(file)
|
||||||
redraws! | echon "vim-go: " | echohl ErrorMsg | echon "couldn't find ".file | echohl None
|
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
|
return
|
||||||
elseif empty(a:cmd)
|
elseif empty(a:cmd)
|
||||||
execute ":" . g:go_alternate_mode . " " . file
|
execute ":" . g:go_alternate_mode . " " . alt_file
|
||||||
else
|
else
|
||||||
execute ":" . a:cmd . " " . file
|
execute ":" . a:cmd . " " . alt_file
|
||||||
endif
|
endif
|
||||||
endfunction
|
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
|
|
||||||
|
|
|
@ -74,8 +74,12 @@ endfunction
|
||||||
|
|
||||||
|
|
||||||
" Run runs the current file (and their dependencies if any) in a new terminal.
|
" Run runs the current file (and their dependencies if any) in a new terminal.
|
||||||
function! go#cmd#RunTerm(bang, mode)
|
function! go#cmd#RunTerm(bang, mode, files)
|
||||||
let cmd = "go run ". go#util#Shelljoin(go#tool#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)
|
call go#term#newmode(a:bang, cmd, a:mode)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -85,7 +89,7 @@ endfunction
|
||||||
" calling long running apps will block the whole UI.
|
" calling long running apps will block the whole UI.
|
||||||
function! go#cmd#Run(bang, ...)
|
function! go#cmd#Run(bang, ...)
|
||||||
if has('nvim')
|
if has('nvim')
|
||||||
call go#cmd#RunTerm(a:bang, '')
|
call go#cmd#RunTerm(a:bang, '', a:000)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -117,9 +121,9 @@ function! go#cmd#Run(bang, ...)
|
||||||
if g:go_dispatch_enabled && exists(':Make') == 2
|
if g:go_dispatch_enabled && exists(':Make') == 2
|
||||||
silent! exe 'Make'
|
silent! exe 'Make'
|
||||||
elseif l:listtype == "locationlist"
|
elseif l:listtype == "locationlist"
|
||||||
silent! exe 'lmake!'
|
exe 'lmake!'
|
||||||
else
|
else
|
||||||
silent! exe 'make!'
|
exe 'make!'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let items = go#list#Get(l:listtype)
|
let items = go#list#Get(l:listtype)
|
||||||
|
|
|
@ -149,13 +149,16 @@ function! go#complete#GetInfoFromOffset(offset)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#complete#GetInfo()
|
function! go#complete#GetInfo()
|
||||||
let offset = go#complete#gocodeCursor()
|
let offset = go#complete#gocodeCursor()+1
|
||||||
return go#complete#GetInfoFromOffset(offset)
|
return go#complete#GetInfoFromOffset(offset)
|
||||||
endfunction
|
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()
|
let result = go#complete#GetInfo()
|
||||||
if !empty(result)
|
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
|
echo "vim-go: " | echohl Function | echon result | echohl None
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
@ -116,7 +116,7 @@ function! s:godefJump(out, mode)
|
||||||
|
|
||||||
" jump to file now
|
" jump to file now
|
||||||
sil ll 1
|
sil ll 1
|
||||||
normal zz
|
normal! zz
|
||||||
|
|
||||||
let &switchbuf = old_switchbuf
|
let &switchbuf = old_switchbuf
|
||||||
end
|
end
|
||||||
|
|
|
@ -113,28 +113,28 @@ function! go#doc#Open(newmode, mode, ...)
|
||||||
call s:GodocView(a:newmode, a:mode, content)
|
call s:GodocView(a:newmode, a:mode, content)
|
||||||
|
|
||||||
if exported_name == ''
|
if exported_name == ''
|
||||||
silent! normal gg
|
silent! normal! gg
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" jump to the specified name
|
" jump to the specified name
|
||||||
if search('^func ' . exported_name . '(')
|
if search('^func ' . exported_name . '(')
|
||||||
silent! normal zt
|
silent! normal! zt
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if search('^type ' . exported_name)
|
if search('^type ' . exported_name)
|
||||||
silent! normal zt
|
silent! normal! zt
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if search('^\%(const\|var\|type\|\s\+\) ' . pkg . '\s\+=\s')
|
if search('^\%(const\|var\|type\|\s\+\) ' . pkg . '\s\+=\s')
|
||||||
silent! normal zt
|
silent! normal! zt
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" nothing found, jump to top
|
" nothing found, jump to top
|
||||||
silent! normal gg
|
silent! normal! gg
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:GodocView(newposition, position, content)
|
function! s:GodocView(newposition, position, content)
|
||||||
|
|
|
@ -52,13 +52,25 @@ endif
|
||||||
" this and have VimL experience, please look at the function for
|
" this and have VimL experience, please look at the function for
|
||||||
" improvements, patches are welcome :)
|
" improvements, patches are welcome :)
|
||||||
function! go#fmt#Format(withGoimport)
|
function! go#fmt#Format(withGoimport)
|
||||||
" save cursor position, folds and many other things
|
if g:go_fmt_experimental == 1
|
||||||
let l:curw = {}
|
" Using winsaveview to save/restore cursor state has the problem of
|
||||||
try
|
" closing folds on save:
|
||||||
mkview!
|
" https://github.com/fatih/vim-go/issues/502
|
||||||
catch
|
" 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()
|
let l:curw=winsaveview()
|
||||||
endtry
|
endif
|
||||||
|
|
||||||
" Write current unsaved buffer to a temp file
|
" Write current unsaved buffer to a temp file
|
||||||
let l:tmpname = tempname()
|
let l:tmpname = tempname()
|
||||||
|
@ -101,6 +113,24 @@ function! go#fmt#Format(withGoimport)
|
||||||
let command = command . g:go_fmt_options
|
let command = command . g:go_fmt_options
|
||||||
endif
|
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...
|
" execute our command...
|
||||||
let out = system(command . " " . l:tmpname)
|
let out = system(command . " " . l:tmpname)
|
||||||
|
|
||||||
|
@ -163,10 +193,15 @@ function! go#fmt#Format(withGoimport)
|
||||||
call delete(tmpundofile)
|
call delete(tmpundofile)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" restore our cursor/windows positions, folds, etc..
|
if g:go_fmt_experimental == 1
|
||||||
if empty(l:curw)
|
" Restore our cursor/windows positions, folds, etc.
|
||||||
silent! loadview
|
if empty(l:curw)
|
||||||
|
silent! loadview
|
||||||
|
else
|
||||||
|
call winrestview(l:curw)
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
|
" Restore our cursor/windows positions.
|
||||||
call winrestview(l:curw)
|
call winrestview(l:curw)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
@ -165,7 +165,7 @@ function! go#import#SwitchImport(enabled, localname, path, bang)
|
||||||
call append(appendline, appendstr)
|
call append(appendline, appendstr)
|
||||||
execute appendline + 1
|
execute appendline + 1
|
||||||
if indentstr
|
if indentstr
|
||||||
execute 'normal >>'
|
execute 'normal! >>'
|
||||||
endif
|
endif
|
||||||
let linesdelta += 1
|
let linesdelta += 1
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -114,6 +114,10 @@ func! s:RunOracle(mode, selected, needs_package) range abort
|
||||||
\ shellescape(fname), pos, tags, a:mode)
|
\ shellescape(fname), pos, tags, a:mode)
|
||||||
endif
|
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
|
" 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
|
" a packages or go files, dependent on the User's own choice. For more
|
||||||
" info check Oracle's User Manual section about scopes:
|
" info check Oracle's User Manual section about scopes:
|
||||||
|
|
|
@ -48,6 +48,12 @@ function! go#util#StripPathSep(path)
|
||||||
return a:path
|
return a:path
|
||||||
endfunction
|
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
|
" Shelljoin returns a shell-safe string representation of arglist. The
|
||||||
" {special} argument of shellescape() may optionally be passed.
|
" {special} argument of shellescape() may optionally be passed.
|
||||||
function! go#util#Shelljoin(arglist, ...)
|
function! go#util#Shelljoin(arglist, ...)
|
||||||
|
|
|
@ -16,12 +16,12 @@ command! -nargs=? GoOracleTags call go#oracle#Tags(<f-args>)
|
||||||
" tool
|
" tool
|
||||||
command! -nargs=0 GoFiles echo go#tool#Files()
|
command! -nargs=0 GoFiles echo go#tool#Files()
|
||||||
command! -nargs=0 GoDeps echo go#tool#Deps()
|
command! -nargs=0 GoDeps echo go#tool#Deps()
|
||||||
command! -nargs=* GoInfo call go#complete#Info()
|
command! -nargs=* GoInfo call go#complete#Info(0)
|
||||||
|
|
||||||
" cmd
|
" cmd
|
||||||
command! -nargs=* -bang GoBuild call go#cmd#Build(<bang>0,<f-args>)
|
command! -nargs=* -bang GoBuild call go#cmd#Build(<bang>0,<f-args>)
|
||||||
command! -nargs=* -bang GoGenerate call go#cmd#Generate(<bang>0,<f-args>)
|
command! -nargs=* -bang GoGenerate call go#cmd#Generate(<bang>0,<f-args>)
|
||||||
command! -nargs=* -bang GoRun call go#cmd#Run(<bang>0,<f-args>)
|
command! -nargs=* -bang -complete=file GoRun call go#cmd#Run(<bang>0,<f-args>)
|
||||||
command! -nargs=* -bang GoInstall call go#cmd#Install(<bang>0, <f-args>)
|
command! -nargs=* -bang GoInstall call go#cmd#Install(<bang>0, <f-args>)
|
||||||
command! -nargs=* -bang GoTest call go#cmd#Test(<bang>0, 0, <f-args>)
|
command! -nargs=* -bang GoTest call go#cmd#Test(<bang>0, 0, <f-args>)
|
||||||
command! -nargs=* -bang GoTestFunc call go#cmd#TestFunc(<bang>0, <f-args>)
|
command! -nargs=* -bang GoTestFunc call go#cmd#TestFunc(<bang>0, <f-args>)
|
||||||
|
|
|
@ -12,9 +12,9 @@ endif
|
||||||
nnoremap <silent> <Plug>(go-run) :<C-u>call go#cmd#Run(!g:go_jump_to_error)<CR>
|
nnoremap <silent> <Plug>(go-run) :<C-u>call go#cmd#Run(!g:go_jump_to_error)<CR>
|
||||||
|
|
||||||
if has("nvim")
|
if has("nvim")
|
||||||
nnoremap <silent> <Plug>(go-run-vertical) :<C-u>call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit')<CR>
|
nnoremap <silent> <Plug>(go-run-vertical) :<C-u>call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit', [])<CR>
|
||||||
nnoremap <silent> <Plug>(go-run-split) :<C-u>call go#cmd#RunTerm(!g:go_jump_to_error, 'split')<CR>
|
nnoremap <silent> <Plug>(go-run-split) :<C-u>call go#cmd#RunTerm(!g:go_jump_to_error, 'split', [])<CR>
|
||||||
nnoremap <silent> <Plug>(go-run-tab) :<C-u>call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe')<CR>
|
nnoremap <silent> <Plug>(go-run-tab) :<C-u>call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe', [])<CR>
|
||||||
endif
|
endif
|
||||||
|
|
||||||
nnoremap <silent> <Plug>(go-build) :<C-u>call go#cmd#Build(!g:go_jump_to_error)<CR>
|
nnoremap <silent> <Plug>(go-build) :<C-u>call go#cmd#Build(!g:go_jump_to_error)<CR>
|
||||||
|
@ -27,7 +27,7 @@ nnoremap <silent> <Plug>(go-coverage) :<C-u>call go#cmd#Coverage(!g:go_jump_to_e
|
||||||
|
|
||||||
nnoremap <silent> <Plug>(go-files) :<C-u>call go#tool#Files()<CR>
|
nnoremap <silent> <Plug>(go-files) :<C-u>call go#tool#Files()<CR>
|
||||||
nnoremap <silent> <Plug>(go-deps) :<C-u>call go#tool#Deps()<CR>
|
nnoremap <silent> <Plug>(go-deps) :<C-u>call go#tool#Deps()<CR>
|
||||||
nnoremap <silent> <Plug>(go-info) :<C-u>call go#complete#Info()<CR>
|
nnoremap <silent> <Plug>(go-info) :<C-u>call go#complete#Info(0)<CR>
|
||||||
nnoremap <silent> <Plug>(go-import) :<C-u>call go#import#SwitchImport(1, '', expand('<cword>'), '')<CR>
|
nnoremap <silent> <Plug>(go-import) :<C-u>call go#import#SwitchImport(1, '', expand('<cword>'), '')<CR>
|
||||||
|
|
||||||
nnoremap <silent> <Plug>(go-implements) :<C-u>call go#oracle#Implements(-1)<CR>
|
nnoremap <silent> <Plug>(go-implements) :<C-u>call go#oracle#Implements(-1)<CR>
|
||||||
|
|
|
@ -143,7 +143,7 @@ augroup vim-go
|
||||||
|
|
||||||
" GoInfo automatic update
|
" GoInfo automatic update
|
||||||
if get(g:, "go_auto_type_info", 0)
|
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
|
endif
|
||||||
|
|
||||||
" Echo the identifier information when completion is done. Useful to see
|
" Echo the identifier information when completion is done. Useful to see
|
||||||
|
|
|
@ -179,30 +179,31 @@ syn region goBlock start="{" end="}" transparent fold
|
||||||
syn region goParen start='(' end=')' transparent
|
syn region goParen start='(' end=')' transparent
|
||||||
|
|
||||||
" Integers
|
" Integers
|
||||||
syn match goDecimalInt "\<\d\+\([Ee]\d\+\)\?\>"
|
syn match goDecimalInt "\<-\=\d\+\%([Ee][-+]\=\d\+\)\=\>"
|
||||||
syn match goHexadecimalInt "\<0x\x\+\>"
|
syn match goHexadecimalInt "\<-\=0[xX]\x\+\>"
|
||||||
syn match goOctalInt "\<0\o\+\>"
|
syn match goOctalInt "\<-\=0\o\+\>"
|
||||||
syn match goOctalError "\<0\o*[89]\d*\>"
|
syn match goOctalError "\<-\=0\o*[89]\d*\>"
|
||||||
|
|
||||||
hi def link goDecimalInt Integer
|
hi def link goDecimalInt Integer
|
||||||
hi def link goHexadecimalInt Integer
|
hi def link goHexadecimalInt Integer
|
||||||
hi def link goOctalInt Integer
|
hi def link goOctalInt Integer
|
||||||
|
hi def link goOctalError Error
|
||||||
hi def link Integer Number
|
hi def link Integer Number
|
||||||
|
|
||||||
" Floating point
|
" Floating point
|
||||||
syn match goFloat "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>"
|
syn match goFloat "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=\>"
|
||||||
syn match goFloat "\<\.\d\+\([Ee][-+]\d\+\)\?\>"
|
syn match goFloat "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=\>"
|
||||||
syn match goFloat "\<\d\+[Ee][-+]\d\+\>"
|
|
||||||
|
|
||||||
hi def link goFloat Float
|
hi def link goFloat Float
|
||||||
|
|
||||||
" Imaginary literals
|
" Imaginary literals
|
||||||
syn match goImaginary "\<\d\+i\>"
|
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 goImaginaryFloat "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=i\>"
|
||||||
syn match goImaginary "\<\d\+[Ee][-+]\d\+i\>"
|
syn match goImaginaryFloat "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=i\>"
|
||||||
|
|
||||||
hi def link goImaginary Number
|
hi def link goImaginary Number
|
||||||
|
hi def link goImaginaryFloat Float
|
||||||
|
|
||||||
" Spaces after "[]"
|
" Spaces after "[]"
|
||||||
if g:go_highlight_array_whitespace_error != 0
|
if g:go_highlight_array_whitespace_error != 0
|
||||||
|
|
|
@ -9,7 +9,7 @@ endif
|
||||||
|
|
||||||
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
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=<!--%s-->
|
||||||
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
|
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
|
||||||
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
|
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
|
||||||
|
|
||||||
|
|
|
@ -283,7 +283,9 @@ fun! s:AddScopeAliases(list) abort
|
||||||
return keys(did)
|
return keys(did)
|
||||||
endf
|
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
|
function! s:info_from_filename(file) abort
|
||||||
let parts = split(fnamemodify(a:file, ':r'), '/')
|
let parts = split(fnamemodify(a:file, ':r'), '/')
|
||||||
|
|
|
@ -28,12 +28,14 @@ if (!exists('g:snipMateSources'))
|
||||||
let g:snipMateSources['default'] = funcref#Function('snipMate#DefaultPool')
|
let g:snipMateSources['default'] = funcref#Function('snipMate#DefaultPool')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
au BufRead,BufNewFile *.snippet,*.snippets setlocal filetype=snippets
|
augroup SnipMateDetect
|
||||||
au FileType snippets if expand('<afile>:e') =~# 'snippet$'
|
au BufRead,BufNewFile *.snippet,*.snippets setlocal filetype=snippets
|
||||||
|
au FileType snippets if expand('<afile>:e') =~# 'snippet$'
|
||||||
\ | setlocal syntax=snippet
|
\ | setlocal syntax=snippet
|
||||||
\ | else
|
\ | else
|
||||||
\ | setlocal syntax=snippets
|
\ | setlocal syntax=snippets
|
||||||
\ | endif
|
\ | endif
|
||||||
|
augroup END
|
||||||
|
|
||||||
inoremap <silent> <Plug>snipMateNextOrTrigger <C-R>=snipMate#TriggerSnippet()<CR>
|
inoremap <silent> <Plug>snipMateNextOrTrigger <C-R>=snipMate#TriggerSnippet()<CR>
|
||||||
snoremap <silent> <Plug>snipMateNextOrTrigger <Esc>a<C-R>=snipMate#TriggerSnippet()<CR>
|
snoremap <silent> <Plug>snipMateNextOrTrigger <Esc>a<C-R>=snipMate#TriggerSnippet()<CR>
|
||||||
|
|
|
@ -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:
|
"snippets" ending. For example, to add the JavaScript Jasmine snippets, run:
|
||||||
`:UltiSnipsAddFiletypes javascript-jasmine`. To have this snippet loaded
|
`:UltiSnipsAddFiletypes javascript-jasmine`. To have this snippet loaded
|
||||||
everytime a JavaScript file is opened or created you can add the command to your
|
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`).
|
For more see the UltiSnips docs (`:help UltiSnips`).
|
||||||
|
|
||||||
|
|
|
@ -185,7 +185,7 @@ ${1:FIELDNAME} = models.DateTimeField($2)
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet mdecimal "DecimalField" b
|
snippet mdecimal "DecimalField" b
|
||||||
${1:FIELDNAME} = models.DateTimeField($2)
|
${1:FIELDNAME} = models.DecimalField(max_digits=${2:10}, decimal_places=${3:2})
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet memail "EmailField" b
|
snippet memail "EmailField" b
|
||||||
|
|
|
@ -45,25 +45,6 @@ type ${1:Interface} interface {
|
||||||
}
|
}
|
||||||
endsnippet
|
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
|
snippet if "If statement" b
|
||||||
if ${1:condition}${1/(.+)/ /}{
|
if ${1:condition}${1/(.+)/ /}{
|
||||||
${0:${VISUAL}}
|
${0:${VISUAL}}
|
||||||
|
@ -76,22 +57,6 @@ case${0}
|
||||||
}
|
}
|
||||||
endsnippet
|
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
|
# functions
|
||||||
snippet /^main/ "Main function" r
|
snippet /^main/ "Main function" r
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
@ -58,6 +58,12 @@ ${1:var }${2:function_name} = function $2(${3}) {
|
||||||
};
|
};
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet af "Anonymous Function" i
|
||||||
|
function($1) {
|
||||||
|
${VISUAL}$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
snippet iife "Immediately-Invoked Function Expression (iife)"
|
snippet iife "Immediately-Invoked Function Expression (iife)"
|
||||||
(function(${1:window}) {
|
(function(${1:window}) {
|
||||||
${VISUAL}$0
|
${VISUAL}$0
|
||||||
|
|
|
@ -51,11 +51,11 @@ format!("${1}"${2/..*/, /}${2});
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet macro "macro_rules!" b
|
snippet macro "macro_rules!" b
|
||||||
macro_rules! ${1:name} (
|
macro_rules! ${1:name} {
|
||||||
(${2:matcher}) => (
|
(${2:matcher}) => (
|
||||||
${3}
|
${3}
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet mod "A module" b
|
snippet mod "A module" b
|
||||||
|
@ -88,7 +88,7 @@ pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} {
|
||||||
|
|
||||||
impl $1 {
|
impl $1 {
|
||||||
pub fn new(${2}) -> $1 {
|
pub fn new(${2}) -> $1 {
|
||||||
$1 { ${3} };
|
$1 { ${3} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -87,10 +87,6 @@ snippet doc
|
||||||
"""
|
"""
|
||||||
snippet fn
|
snippet fn
|
||||||
fn ${1:args} -> ${0} end
|
fn ${1:args} -> ${0} end
|
||||||
snippet fun
|
|
||||||
function do
|
|
||||||
${0}
|
|
||||||
end
|
|
||||||
snippet mdoc
|
snippet mdoc
|
||||||
@moduledoc """
|
@moduledoc """
|
||||||
${0}
|
${0}
|
||||||
|
@ -114,6 +110,12 @@ snippet test
|
||||||
end
|
end
|
||||||
snippet testa
|
snippet testa
|
||||||
test "${1:test_name}", %{${2:arg: arg}} do
|
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}
|
${0}
|
||||||
end
|
end
|
||||||
snippet try try .. rescue .. end
|
snippet try try .. rescue .. end
|
||||||
|
|
|
@ -53,26 +53,6 @@ snippet dfr
|
||||||
${0}
|
${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 <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Copyright (C) ${1:Author}, `strftime("%Y")`
|
|
||||||
*/
|
|
||||||
|
|
||||||
${0}
|
|
||||||
# int
|
# int
|
||||||
snippet i
|
snippet i
|
||||||
int
|
int
|
||||||
|
@ -94,6 +74,12 @@ snippet if
|
||||||
if ${1:/* condition */} {
|
if ${1:/* condition */} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
|
snippet ife
|
||||||
|
if ${1:/* condition */} {
|
||||||
|
${2}
|
||||||
|
} else {
|
||||||
|
${0}
|
||||||
|
}
|
||||||
# else snippet
|
# else snippet
|
||||||
snippet el
|
snippet el
|
||||||
else {
|
else {
|
||||||
|
@ -128,18 +114,21 @@ snippet ie
|
||||||
${3}
|
${3}
|
||||||
}
|
}
|
||||||
${0}
|
${0}
|
||||||
# for loop
|
# for int loop
|
||||||
snippet fo
|
snippet for
|
||||||
|
for ${1}{
|
||||||
|
${0}
|
||||||
|
}
|
||||||
|
# for int loop
|
||||||
|
snippet fori
|
||||||
for ${2:i} := 0; $2 < ${1:count}; $2${3:++} {
|
for ${2:i} := 0; $2 < ${1:count}; $2${3:++} {
|
||||||
${4}
|
${0}
|
||||||
}
|
}
|
||||||
${0}
|
|
||||||
# for range loop
|
# for range loop
|
||||||
snippet fr
|
snippet forr
|
||||||
for ${1:k}, ${2:v} := range ${3} {
|
for ${1:e} := range ${2:collection} {
|
||||||
${4}
|
${0}
|
||||||
}
|
}
|
||||||
${0}
|
|
||||||
# function simple
|
# function simple
|
||||||
snippet fun
|
snippet fun
|
||||||
func ${1:funcName}(${2}) ${3:error} {
|
func ${1:funcName}(${2}) ${3:error} {
|
||||||
|
@ -196,8 +185,6 @@ snippet sl
|
||||||
select {
|
select {
|
||||||
case ${1:v1} := <-${2:chan1}
|
case ${1:v1} := <-${2:chan1}
|
||||||
${3}
|
${3}
|
||||||
case ${4:v2} := <-${5:chan2}
|
|
||||||
${6}
|
|
||||||
default:
|
default:
|
||||||
${0}
|
${0}
|
||||||
}
|
}
|
||||||
|
@ -228,7 +215,7 @@ snippet t
|
||||||
# goroutine named function
|
# goroutine named function
|
||||||
snippet g
|
snippet g
|
||||||
go ${1:funcName}(${0})
|
go ${1:funcName}(${0})
|
||||||
# goroutine anonymous function
|
# goroutine anonymous function
|
||||||
snippet ga
|
snippet ga
|
||||||
go func(${1} ${2:type}) {
|
go func(${1} ${2:type}) {
|
||||||
${3:/* code */}
|
${3:/* code */}
|
||||||
|
|
|
@ -5,7 +5,7 @@ snippet ex
|
||||||
module.exports = ${1};
|
module.exports = ${1};
|
||||||
# require
|
# require
|
||||||
snippet re
|
snippet re
|
||||||
var ${1} = require('${2:module_name}');
|
${1:var} ${2} = require('${3:module_name}');
|
||||||
# EventEmitter
|
# EventEmitter
|
||||||
snippet on
|
snippet on
|
||||||
on('${1:event_name}', function(${2:stream}) {
|
on('${1:event_name}', function(${2:stream}) {
|
||||||
|
|
|
@ -723,3 +723,7 @@ snippet iiexp
|
||||||
it { is_expected.to ${0} }
|
it { is_expected.to ${0} }
|
||||||
snippet iiexpn
|
snippet iiexpn
|
||||||
it { is_expected.not_to ${0} }
|
it { is_expected.not_to ${0} }
|
||||||
|
snippet agg
|
||||||
|
aggregate_failures '${1:message}' do
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
|
|
@ -25,7 +25,7 @@ snippet bench "Bench function" b
|
||||||
}
|
}
|
||||||
snippet new "Constructor function"
|
snippet new "Constructor function"
|
||||||
pub fn new(${2}) -> ${1:Name} {
|
pub fn new(${2}) -> ${1:Name} {
|
||||||
$1 { ${3} };
|
$1 { ${3} }
|
||||||
}
|
}
|
||||||
snippet main "Main function"
|
snippet main "Main function"
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
|
@ -143,7 +143,7 @@ snippet stn "Struct with new constructor"
|
||||||
|
|
||||||
impl $1 {
|
impl $1 {
|
||||||
pub fn new(${2}) -> $1 {
|
pub fn new(${2}) -> $1 {
|
||||||
$1 { ${3} };
|
$1 { ${3} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
snippet type "Type alias"
|
snippet type "Type alias"
|
||||||
|
|
Loading…
Reference in a new issue