Updated plugins
This commit is contained in:
parent
751af44cbe
commit
aad95603ea
60 changed files with 1788 additions and 463 deletions
|
@ -204,6 +204,14 @@ let s:hlgrps = {
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
" lname, sname of the basic(non-extension) modes
|
" lname, sname of the basic(non-extension) modes
|
||||||
|
let s:types = ['fil', 'buf', 'mru']
|
||||||
|
if !exists('g:ctrlp_types')
|
||||||
|
let g:ctrlp_types = s:types
|
||||||
|
el
|
||||||
|
call filter(g:ctrlp_types, "index(['fil', 'buf', 'mru'], v:val)!=-1")
|
||||||
|
en
|
||||||
|
let g:ctrlp_builtins = len(g:ctrlp_types)-1
|
||||||
|
|
||||||
let s:coretypes = filter([
|
let s:coretypes = filter([
|
||||||
\ ['files', 'fil'],
|
\ ['files', 'fil'],
|
||||||
\ ['buffers', 'buf'],
|
\ ['buffers', 'buf'],
|
||||||
|
@ -912,10 +920,13 @@ fu! s:PrtDeleteMRU()
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! s:PrtExit()
|
fu! s:PrtExit()
|
||||||
|
let bw = bufwinnr('%')
|
||||||
exe bufwinnr(s:bufnr).'winc w'
|
exe bufwinnr(s:bufnr).'winc w'
|
||||||
if bufnr('%') == s:bufnr && bufname('%') == 'ControlP'
|
if bufnr('%') == s:bufnr && bufname('%') == 'ControlP'
|
||||||
noa cal s:Close(1)
|
noa cal s:Close(1)
|
||||||
noa winc p
|
noa winc p
|
||||||
|
els
|
||||||
|
exe bw.'winc w'
|
||||||
en
|
en
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
@ -1962,7 +1973,7 @@ fu! s:isabs(path)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! s:bufnrfilpath(line)
|
fu! s:bufnrfilpath(line)
|
||||||
if s:isabs(a:line) || a:line =~ '^\~[/\\]'
|
if s:isabs(a:line) || a:line =~ '^\~[/\\]' || a:line =~ '^\w\+:\/\/'
|
||||||
let filpath = a:line
|
let filpath = a:line
|
||||||
el
|
el
|
||||||
let filpath = s:dyncwd.s:lash().a:line
|
let filpath = s:dyncwd.s:lash().a:line
|
||||||
|
@ -2032,7 +2043,7 @@ fu! s:checkbuf()
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! s:iscmdwin()
|
fu! s:iscmdwin()
|
||||||
let ermsg = v:errmsg
|
let [ermsg, v:errmsg] = [v:errmsg, '']
|
||||||
sil! noa winc p
|
sil! noa winc p
|
||||||
sil! noa winc p
|
sil! noa winc p
|
||||||
let [v:errmsg, ermsg] = [ermsg, v:errmsg]
|
let [v:errmsg, ermsg] = [ermsg, v:errmsg]
|
||||||
|
|
|
@ -255,8 +255,9 @@ plugins look for .git/, .hg/,... some other plugins look for external *.exe
|
||||||
tools on Windows). So be a little mindful of what you put in your |wildignore|.
|
tools on Windows). So be a little mindful of what you put in your |wildignore|.
|
||||||
|
|
||||||
*'g:ctrlp_custom_ignore'*
|
*'g:ctrlp_custom_ignore'*
|
||||||
In addition to |'wildignore'|, use this for files and directories you want only
|
In addition to |'wildignore'| and |g:ctrlp_show_hidden|, use this for files
|
||||||
CtrlP to not show. Use regexp to specify the patterns: >
|
and directories you want only CtrlP to not show. Use regexp to specify the
|
||||||
|
patterns: >
|
||||||
let g:ctrlp_custom_ignore = ''
|
let g:ctrlp_custom_ignore = ''
|
||||||
<
|
<
|
||||||
Examples: >
|
Examples: >
|
||||||
|
@ -860,7 +861,8 @@ COMMANDS *ctrlp-commands*
|
||||||
Open CtrlP in find file mode.
|
Open CtrlP in find file mode.
|
||||||
|
|
||||||
If no argument is given, the value of |g:ctrlp_working_path_mode| will be
|
If no argument is given, the value of |g:ctrlp_working_path_mode| will be
|
||||||
used to determine the starting directory.
|
used to determine the starting directory. See |:CtrlPCurFile| and
|
||||||
|
|:CtrlPCurWD| to temporarily override the setting.
|
||||||
|
|
||||||
You can use <tab> to auto-complete the [starting-directory] when typing it.
|
You can use <tab> to auto-complete the [starting-directory] when typing it.
|
||||||
|
|
||||||
|
@ -868,6 +870,16 @@ COMMANDS *ctrlp-commands*
|
||||||
:CtrlPBuffer
|
:CtrlPBuffer
|
||||||
Open CtrlP in find buffer mode.
|
Open CtrlP in find buffer mode.
|
||||||
|
|
||||||
|
*:CtrlPCurFile*
|
||||||
|
:CtrlPCurFile
|
||||||
|
This acts like |:CtrlP| with |g:ctrlp_working_path_mode| = '' and ignores
|
||||||
|
the variable's current value.
|
||||||
|
|
||||||
|
*:CtrlPCurWD*
|
||||||
|
:CtrlPCurWD
|
||||||
|
This acts like |:CtrlP| with |g:ctrlp_working_path_mode| = '' and ignores
|
||||||
|
the variable's current value.
|
||||||
|
|
||||||
*:CtrlPMRU*
|
*:CtrlPMRU*
|
||||||
:CtrlPMRU
|
:CtrlPMRU
|
||||||
Open CtrlP in find Most-Recently-Used file mode.
|
Open CtrlP in find Most-Recently-Used file mode.
|
||||||
|
@ -1329,7 +1341,8 @@ Available extensions:~
|
||||||
Buffer Tag mode options:~
|
Buffer Tag mode options:~
|
||||||
|
|
||||||
*'g:ctrlp_buftag_ctags_bin'*
|
*'g:ctrlp_buftag_ctags_bin'*
|
||||||
If ctags isn't in your $PATH, use this to set its location: >
|
If ctags isn't in your $PATH, or a ctags binary exists in either
|
||||||
|
/opt/local/bin or /usr/local/bin, us this to set its location: >
|
||||||
let g:ctrlp_buftag_ctags_bin = ''
|
let g:ctrlp_buftag_ctags_bin = ''
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
|
@ -10,15 +10,9 @@ if ( exists('g:loaded_ctrlp') && g:loaded_ctrlp ) || v:version < 700 || &cp
|
||||||
en
|
en
|
||||||
let g:loaded_ctrlp = 1
|
let g:loaded_ctrlp = 1
|
||||||
|
|
||||||
let s:types = ['fil', 'buf', 'mru']
|
|
||||||
if !exists('g:ctrlp_types')
|
|
||||||
let g:ctrlp_types = s:types
|
|
||||||
el
|
|
||||||
call filter(g:ctrlp_types, "index(['fil', 'buf', 'mru'], v:val)!=-1")
|
|
||||||
en
|
|
||||||
let [g:ctrlp_lines, g:ctrlp_allfiles, g:ctrlp_alltags, g:ctrlp_alldirs,
|
let [g:ctrlp_lines, g:ctrlp_allfiles, g:ctrlp_alltags, g:ctrlp_alldirs,
|
||||||
\ g:ctrlp_allmixes, g:ctrlp_buftags, g:ctrlp_ext_vars, g:ctrlp_builtins]
|
\ g:ctrlp_allmixes, g:ctrlp_buftags, g:ctrlp_ext_vars, g:ctrlp_builtins]
|
||||||
\ = [[], [], [], [], {}, {}, [], len(g:ctrlp_types)-1]
|
\ = [[], [], [], [], {}, {}, [], 2]
|
||||||
|
|
||||||
if !exists('g:ctrlp_map') | let g:ctrlp_map = '<c-p>' | en
|
if !exists('g:ctrlp_map') | let g:ctrlp_map = '<c-p>' | en
|
||||||
if !exists('g:ctrlp_cmd') | let g:ctrlp_cmd = 'CtrlP' | en
|
if !exists('g:ctrlp_cmd') | let g:ctrlp_cmd = 'CtrlP' | en
|
||||||
|
|
|
@ -64,6 +64,10 @@ Use `:diffthis` when opening multiple files to run `:diffthis` on the first 4 fi
|
||||||
|
|
||||||
If more than one mode is specified, they will be tried in order until a directory is located.
|
If more than one mode is specified, they will be tried in order until a directory is located.
|
||||||
|
|
||||||
|
* If a file is already open, open it again in a new pane instead of switching to the existing pane
|
||||||
|
|
||||||
|
`let g:ctrlp_switch_buffer = 'et'`
|
||||||
|
|
||||||
* Exclude files and directories using Vim's `wildignore` and CtrlP's own `g:ctrlp_custom_ignore`. If a custom listing command is being used, exclusions are ignored:
|
* Exclude files and directories using Vim's `wildignore` and CtrlP's own `g:ctrlp_custom_ignore`. If a custom listing command is being used, exclusions are ignored:
|
||||||
|
|
||||||
```vim
|
```vim
|
||||||
|
|
|
@ -272,7 +272,7 @@ set noshowmode
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Now, let us get back to the tutorial (with the patched font for vim-powerline).
|
Now, let's get back to the tutorial (with the patched font for vim-powerline).
|
||||||
You look into a help file to find the marks annoying.
|
You look into a help file to find the marks annoying.
|
||||||
|
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/6.png)
|
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/6.png)
|
||||||
|
@ -293,8 +293,8 @@ let g:lightline = {
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/7.png)
|
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/7.png)
|
||||||
|
|
||||||
Huh? Weird!
|
Huh? Weird!
|
||||||
The components do not collapse even if they have no information!
|
The subseparators are visible even if the components are empty.
|
||||||
In order to avoid this situation, you set expressions to `g:lightline.component_visible_condition`, which should become 1 only when the corresponding components have information.
|
In order to hide the subseparators, you can set expressions to `g:lightline.component_visible_condition`, which should be 1 only when the corresponding component is not empty.
|
||||||
```vim
|
```vim
|
||||||
let g:lightline = {
|
let g:lightline = {
|
||||||
\ 'colorscheme': 'wombat',
|
\ 'colorscheme': 'wombat',
|
||||||
|
@ -313,8 +313,8 @@ let g:lightline = {
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/8.png)
|
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/8.png)
|
||||||
|
|
||||||
Okay. It works nice.
|
Okay. It works nice.
|
||||||
|
The configuration `component_visible_condition` is used to control the visibility of the subseparators.
|
||||||
|
You cannot use this variable to control the visibility of the components themselves.
|
||||||
|
|
||||||
How does lightline decide the components to show in the statusline?
|
How does lightline decide the components to show in the statusline?
|
||||||
It's very simple.
|
It's very simple.
|
||||||
|
@ -340,16 +340,9 @@ let g:lightline = {
|
||||||
\ }
|
\ }
|
||||||
```
|
```
|
||||||
If the plugin arranges all the components (in a situation you `set paste` and the file `.vimrc` is read-only, try to modify):
|
If the plugin arranges all the components (in a situation you `set paste` and the file `.vimrc` is read-only, try to modify):
|
||||||
|
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/9.png)
|
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/9.png)
|
||||||
|
|
||||||
The mode component, the paste component, read-only component, filename component and modified component in a row.
|
|
||||||
Normally, the paste component does not show up.
|
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/10.png)
|
|
||||||
|
|
||||||
If the file is not read-only (more common cases), the read-only component does not show up.
|
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/11.png)
|
|
||||||
|
|
||||||
|
|
||||||
Again look into `g:lightline.active.left`.
|
Again look into `g:lightline.active.left`.
|
||||||
```vim
|
```vim
|
||||||
let g:lightline = {
|
let g:lightline = {
|
||||||
|
@ -357,8 +350,6 @@ let g:lightline = {
|
||||||
\ 'left': [ [ 'mode', 'paste' ],
|
\ 'left': [ [ 'mode', 'paste' ],
|
||||||
\ [ 'readonly', 'filename', 'modified' ] ] ...
|
\ [ 'readonly', 'filename', 'modified' ] ] ...
|
||||||
```
|
```
|
||||||
And the screen shot of all the components.
|
|
||||||
![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/9.png)
|
|
||||||
|
|
||||||
The mode and paste component are displayed in the same group.
|
The mode and paste component are displayed in the same group.
|
||||||
The read-only, filename and modified component are in the second group.
|
The read-only, filename and modified component are in the second group.
|
||||||
|
@ -369,11 +360,11 @@ You can configure the components in the statusline by the following four variabl
|
||||||
+ `g:lightline.inactive.left`
|
+ `g:lightline.inactive.left`
|
||||||
+ `g:lightline.inactive.right`
|
+ `g:lightline.inactive.right`
|
||||||
|
|
||||||
Of course, your settings in `.vimrc` have priority over the default settings in lightline.
|
Of course, your configurations in `.vimrc` have priority over the default settings in lightline.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GitHub branch is important for us.
|
Git branch is important for us.
|
||||||
And it is a default component in [powerline](https://github.com/Lokaltog/powerline) and [vim-powerline](https://github.com/Lokaltog/vim-powerline).
|
And it is a default component in [powerline](https://github.com/Lokaltog/powerline) and [vim-powerline](https://github.com/Lokaltog/vim-powerline).
|
||||||
However, lightline does not provide the branch feature by default.
|
However, lightline does not provide the branch feature by default.
|
||||||
|
|
||||||
|
@ -552,7 +543,7 @@ subseparator.left | '\|' | '' (\ue0b1) | '⮁' (\u2b81)
|
||||||
subseparator.right | '\|' | '' (\ue0b3) | '⮃' (\u2b83)
|
subseparator.right | '\|' | '' (\ue0b3) | '⮃' (\u2b83)
|
||||||
branch symbol | -- | '' (\ue0a0) | '⭠' (\u2b60)
|
branch symbol | -- | '' (\ue0a0) | '⭠' (\u2b60)
|
||||||
readonly symbol | -- | '' (\ue0a2) | '⭤' (\u2b64)
|
readonly symbol | -- | '' (\ue0a2) | '⭤' (\u2b64)
|
||||||
linecolumn symbol | -- | '' (\ue0a1) | '⭡' (\u2b81)
|
linecolumn symbol | -- | '' (\ue0a1) | '⭡' (\u2b61)
|
||||||
|
|
||||||
### My settings
|
### My settings
|
||||||
I show my settings. I use the patched font for vim-powerline.
|
I show my settings. I use the patched font for vim-powerline.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
" Filename: autoload/lightline.vim
|
" Filename: autoload/lightline.vim
|
||||||
" Author: itchyny
|
" Author: itchyny
|
||||||
" License: MIT License
|
" License: MIT License
|
||||||
" Last Change: 2016/06/12 22:40:00.
|
" Last Change: 2016/09/04 13:01:40.
|
||||||
" =============================================================================
|
" =============================================================================
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
let s:save_cpo = &cpo
|
||||||
|
@ -111,6 +111,7 @@ let s:_lightline = {
|
||||||
\ 'modified': '&modified||!&modifiable', 'readonly': '&readonly', 'paste': '&paste', 'spell': '&spell'
|
\ 'modified': '&modified||!&modifiable', 'readonly': '&readonly', 'paste': '&paste', 'spell': '&spell'
|
||||||
\ },
|
\ },
|
||||||
\ 'component_function': {},
|
\ 'component_function': {},
|
||||||
|
\ 'component_function_visible_condition': {},
|
||||||
\ 'component_expand': {
|
\ 'component_expand': {
|
||||||
\ 'tabs': 'lightline#tabs'
|
\ 'tabs': 'lightline#tabs'
|
||||||
\ },
|
\ },
|
||||||
|
@ -293,11 +294,11 @@ function! lightline#highlight(...) abort
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:subseparator(components, subseparator, expanded) abort
|
function! s:subseparator(components, subseparator, expanded) abort
|
||||||
let [a, c, f, v] = [ a:components, s:lightline.component, s:lightline.component_function, s:lightline.component_visible_condition ]
|
let [a, c, f, v, u ] = [ a:components, s:lightline.component, s:lightline.component_function, s:lightline.component_visible_condition, s:lightline.component_function_visible_condition ]
|
||||||
let xs = map(range(len(a:components)), 'a:expanded[v:val] ? "1" :
|
let xs = map(range(len(a:components)), 'a:expanded[v:val] ? "1" :
|
||||||
\ has_key(f, a[v:val]) ? (exists("*".f[a[v:val]]) ? "" : "exists(\"*".f[a[v:val]]."\")&&").f[a[v:val]]."()!=#\"\"" :
|
\ has_key(f, a[v:val]) ? (has_key(u, a[v:val]) ? "(".u[a[v:val]].")" : (exists("*".f[a[v:val]]) ? "" : "exists(\"*".f[a[v:val]]."\")&&").f[a[v:val]]."()!=#\"\"") :
|
||||||
\ has_key(v, a[v:val]) ? "(".v[a[v:val]].")" : has_key(c, a[v:val]) ? "1" : "0"')
|
\ has_key(v, a[v:val]) ? "(".v[a[v:val]].")" : has_key(c, a[v:val]) ? "1" : "0"')
|
||||||
return '%{' . (xs[0] ==# '1' ? '' : xs[0] . '&&(') . join(xs[1:], '||') . (xs[0] ==# '1' ? '' : ')') . '?"' . a:subseparator . '":""}'
|
return '%{' . (xs[0] ==# '1' || xs[0] ==# '(1)' ? '' : xs[0] . '&&(') . join(xs[1:], '||') . (xs[0] ==# '1' || xs[0] ==# '(1)' ? '' : ')') . '?"' . a:subseparator . '":""}'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! lightline#concatenate(xs, right) abort
|
function! lightline#concatenate(xs, right) abort
|
||||||
|
@ -324,7 +325,7 @@ endfunction
|
||||||
|
|
||||||
function! s:evaluate_expand(component) abort
|
function! s:evaluate_expand(component) abort
|
||||||
try
|
try
|
||||||
let result = call(a:component, [])
|
let result = eval(a:component . '()')
|
||||||
if type(result) == 1 && result ==# ''
|
if type(result) == 1 && result ==# ''
|
||||||
return []
|
return []
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
*lightline.txt* A light and configurable statusline/tabline for Vim
|
*lightline.txt* A light and configurable statusline/tabline for Vim
|
||||||
|
|
||||||
Version: 0.0
|
Version: 0.1
|
||||||
Author: itchyny (https://github.com/itchyny)
|
Author: itchyny (https://github.com/itchyny)
|
||||||
License: MIT License
|
License: MIT License
|
||||||
Repository: https://github.com/itchyny/lightline.vim
|
Repository: https://github.com/itchyny/lightline.vim
|
||||||
Last Change: 2016/08/09 06:22:39.
|
Last Change: 2016/09/13 23:56:56.
|
||||||
|
|
||||||
CONTENTS *lightline-contents*
|
CONTENTS *lightline-contents*
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ Examples |lightline-examples|
|
||||||
Nice Examples |lightline-nice-examples|
|
Nice Examples |lightline-nice-examples|
|
||||||
Powerful Example |lightline-powerful-example|
|
Powerful Example |lightline-powerful-example|
|
||||||
Troubleshooting |lightline-troubleshooting|
|
Troubleshooting |lightline-troubleshooting|
|
||||||
Changelog |lightline-changelog|
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
INTRODUCTION *lightline-introduction*
|
INTRODUCTION *lightline-introduction*
|
||||||
|
@ -115,10 +114,13 @@ OPTIONS *lightline-option*
|
||||||
\ 'column': '%c'
|
\ 'column': '%c'
|
||||||
\ 'close': '%999X X ' }
|
\ 'close': '%999X X ' }
|
||||||
<
|
<
|
||||||
g:lightline.component_visible_condition *g:lightline.component_visible_condition*
|
g:lightline.component_visible_condition
|
||||||
Dictionary of boolean expressions for the components.
|
*g:lightline.component_visible_condition*
|
||||||
|
Dictionary to store the visible condition of the components.
|
||||||
Each expression should correspond to the condition each
|
Each expression should correspond to the condition each
|
||||||
component have non-zero length.
|
component is not empty. This configuration is used to control
|
||||||
|
the visibility of the subseparators. You cannot use this
|
||||||
|
configuration to control the visibility of the components.
|
||||||
The default value is:
|
The default value is:
|
||||||
>
|
>
|
||||||
let g:lightline.component_visible_condition = {
|
let g:lightline.component_visible_condition = {
|
||||||
|
@ -135,6 +137,11 @@ OPTIONS *lightline-option*
|
||||||
because the user does not have to set both component and
|
because the user does not have to set both component and
|
||||||
component_visible_condition. If a component set to both component and
|
component_visible_condition. If a component set to both component and
|
||||||
component_function, the setting of component_function has priority.
|
component_function, the setting of component_function has priority.
|
||||||
|
|
||||||
|
The default value is:
|
||||||
|
>
|
||||||
|
let g:lightline.component_function = {}
|
||||||
|
<
|
||||||
For example, if you want a component for read-only mark, which
|
For example, if you want a component for read-only mark, which
|
||||||
disappears in help windows:
|
disappears in help windows:
|
||||||
>
|
>
|
||||||
|
@ -150,6 +157,19 @@ OPTIONS *lightline-option*
|
||||||
function! LightLineReadonly()
|
function! LightLineReadonly()
|
||||||
return &ft !~? 'help' && &readonly ? 'RO' : ''
|
return &ft !~? 'help' && &readonly ? 'RO' : ''
|
||||||
endfunction
|
endfunction
|
||||||
|
<
|
||||||
|
g:lightline.component_function_visible_condition
|
||||||
|
*g:lightline.component_function_visible_condition*
|
||||||
|
Dictionary to store the visible conditions of the function
|
||||||
|
components. Each expression should correspond to the condition
|
||||||
|
each component is not empty. This configuration is used to
|
||||||
|
control the visibility of the subseparators. You can use this
|
||||||
|
configuration to reduce the number of function calls for
|
||||||
|
function components by setting the value 1 (to tell lightline
|
||||||
|
that the component is always visible).
|
||||||
|
The default value is:
|
||||||
|
>
|
||||||
|
let g:lightline.component_function_visible_condition = {}
|
||||||
<
|
<
|
||||||
g:lightline.component_expand *g:lightline.component_expand*
|
g:lightline.component_expand *g:lightline.component_expand*
|
||||||
Another dictionary for components. You can create a component
|
Another dictionary for components. You can create a component
|
||||||
|
@ -1126,7 +1146,7 @@ Problem 9: *lightline-problem-9*
|
||||||
subseparator.right '|' '' (\ue0b3) '⮃' (\u2b83)
|
subseparator.right '|' '' (\ue0b3) '⮃' (\u2b83)
|
||||||
branch symbol -- '' (\ue0a0) '⭠' (\u2b60)
|
branch symbol -- '' (\ue0a0) '⭠' (\u2b60)
|
||||||
readonly symbol -- '' (\ue0a2) '⭤' (\u2b64)
|
readonly symbol -- '' (\ue0a2) '⭤' (\u2b64)
|
||||||
linecolumn symbol -- '' (\ue0a1) '⭡' (\u2b81)
|
linecolumn symbol -- '' (\ue0a1) '⭡' (\u2b61)
|
||||||
|
|
||||||
Problem 10: *lightline-problem-10*
|
Problem 10: *lightline-problem-10*
|
||||||
Cool statusline disappears on |unite|, |vimfiler| and |vimshell|
|
Cool statusline disappears on |unite|, |vimfiler| and |vimshell|
|
||||||
|
@ -1270,11 +1290,5 @@ Problem 17: *lightline-problem-17*
|
||||||
Report/Request the issue/feature at
|
Report/Request the issue/feature at
|
||||||
https://github.com/itchyny/lightline.vim/issues.
|
https://github.com/itchyny/lightline.vim/issues.
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
CHANGELOG *lightline-changelog*
|
|
||||||
|
|
||||||
0.0 2013-08-21, ...
|
|
||||||
- Initial commit and implementation
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
vim:tw=78:sw=4:ts=8:ft=help:norl:noet:
|
vim:tw=78:sw=4:ts=8:ft=help:norl:noet:
|
||||||
|
|
|
@ -610,3 +610,15 @@ function! s:suite.duplicated_type_both_nil_right_most()
|
||||||
\ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', 'custom', '1']])
|
\ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', 'custom', '1']])
|
||||||
delfunction Custom
|
delfunction Custom
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.dictionary_function()
|
||||||
|
let g:lightline = { 'component_expand': { 'custom': 'g:lightline.Custom' } }
|
||||||
|
function! g:lightline.Custom()
|
||||||
|
return [ ['left'], ['middle'], ['right'] ]
|
||||||
|
endfunction
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
|
||||||
|
\ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']])
|
||||||
|
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
|
||||||
|
\ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']])
|
||||||
|
endfunction
|
||||||
|
|
|
@ -177,6 +177,111 @@ function! s:suite.subseparator_component_function_7()
|
||||||
delfunction Custom3
|
delfunction Custom3
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_1()
|
||||||
|
function! Custom1()
|
||||||
|
return 'custom1'
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return 'custom2'
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return 'custom3'
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '1', 'custom2': '1', 'custom3': '1' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_2()
|
||||||
|
function! Custom1()
|
||||||
|
return 'custom1'
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return 'custom2'
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return 'custom3'
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '0', 'custom2': '1', 'custom3': '1' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_3()
|
||||||
|
function! Custom1()
|
||||||
|
return 'custom1'
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return 'custom2'
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return 'custom3'
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '1' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_4()
|
||||||
|
function! Custom1()
|
||||||
|
return 'custom1'
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return 'custom2'
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return 'custom3'
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '0' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_5()
|
||||||
|
function! Custom1()
|
||||||
|
return 'custom1'
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '0' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_6()
|
||||||
|
function! Custom1()
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return 'custom2'
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return 'custom3'
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom2': '1', 'custom3': '1' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:suite.subseparator_component_function_visible_condition_7()
|
||||||
|
function! Custom1()
|
||||||
|
return 'custom1'
|
||||||
|
endfunction
|
||||||
|
function! Custom2()
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
function! Custom3()
|
||||||
|
return 'custom3'
|
||||||
|
endfunction
|
||||||
|
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom3': '1' } }
|
||||||
|
call lightline#init()
|
||||||
|
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:suite.subseparator_component_expand()
|
function! s:suite.subseparator_component_expand()
|
||||||
function! Custom1()
|
function! Custom1()
|
||||||
return 'custom1'
|
return 'custom1'
|
||||||
|
|
|
@ -1,4 +1,16 @@
|
||||||
Next
|
Next
|
||||||
|
- Shorten delete confimration of empty directory to 'y' (mikeperri) #530
|
||||||
|
- Fix API call to open directory tree in window (devm33) #533
|
||||||
|
- Change default arrows on non-Windows platforms (gwilk) #546
|
||||||
|
- Update to README - combine cd and git clone (zwhitchcox) #584
|
||||||
|
- Update to README - Tip: start NERDTree when vim starts (therealplato) #593
|
||||||
|
- Escape filename when moving an open buffer (zacharyvoase) #595
|
||||||
|
- Fixed incorrect :helptags command in README (curran) #619
|
||||||
|
- Fixed incomplete escaping of folder arrows (adityanatraj) #548
|
||||||
|
- Added NERDTreeCascadeSingleChildDir option (juanibiapina) #558
|
||||||
|
- Replace strchars() with backward compatible workaround.
|
||||||
|
- Add support for copy command in Windows (SkylerLipthay) #231
|
||||||
|
- Fixed typo in README.markdown - :Helptags -> :helptags
|
||||||
- Rename "primary" and "secondary" trees to "tab" and "window" trees.
|
- Rename "primary" and "secondary" trees to "tab" and "window" trees.
|
||||||
- Move a bunch of buffer level variables into the NERDTree and UI classes.
|
- Move a bunch of buffer level variables into the NERDTree and UI classes.
|
||||||
- Display cascading dirs on one line to save vertical/horizontal space (@matt-gardner: brainstorming/testing)
|
- Display cascading dirs on one line to save vertical/horizontal space (@matt-gardner: brainstorming/testing)
|
||||||
|
|
|
@ -57,10 +57,9 @@ Installation
|
||||||
|
|
||||||
####[pathogen.vim](https://github.com/tpope/vim-pathogen)
|
####[pathogen.vim](https://github.com/tpope/vim-pathogen)
|
||||||
|
|
||||||
cd ~/.vim/bundle
|
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
|
||||||
git clone https://github.com/scrooloose/nerdtree.git
|
|
||||||
|
|
||||||
Then reload vim, run `:Helptags`, and check out `:help NERD_tree.txt`.
|
Then reload vim, run `:helptags ~/.vim/bundle/nerdtree/doc/`, and check out `:help NERD_tree.txt`.
|
||||||
|
|
||||||
|
|
||||||
####[apt-vim](https://github.com/egalpin/apt-vim)
|
####[apt-vim](https://github.com/egalpin/apt-vim)
|
||||||
|
@ -101,6 +100,16 @@ Stick this in your vimrc:
|
||||||
|
|
||||||
Note: Now start vim with plain `vim`, not `vim .`
|
Note: Now start vim with plain `vim`, not `vim .`
|
||||||
|
|
||||||
|
---
|
||||||
|
> How can I open NERDTree on startup, and have my cursor start in the other window?
|
||||||
|
|
||||||
|
Stick this in your vimrc:
|
||||||
|
|
||||||
|
autocmd vimenter * NERDTree
|
||||||
|
autocmd vimenter * wincmd p
|
||||||
|
|
||||||
|
*via [stackoverflow/Yohann](http://stackoverflow.com/questions/4277808/nerdtree-auto-focus-to-file-when-opened-in-new-tab/19330023#19330023)*
|
||||||
|
|
||||||
---
|
---
|
||||||
> How can I map a specific key or shortcut to open NERDTree?
|
> How can I map a specific key or shortcut to open NERDTree?
|
||||||
|
|
||||||
|
@ -125,5 +134,5 @@ See here: https://github.com/scrooloose/nerdtree/issues/433#issuecomment-9259069
|
||||||
|
|
||||||
Use these variables in your vimrc. Note that below are default arrow symbols
|
Use these variables in your vimrc. Note that below are default arrow symbols
|
||||||
|
|
||||||
let g:NERDTreeDirArrowExpandable = '▸'
|
let g:NERDTreeDirArrowExpandable = '►'
|
||||||
let g:NERDTreeDirArrowCollapsible = '▾'
|
let g:NERDTreeDirArrowCollapsible = '▼'
|
||||||
|
|
|
@ -671,6 +671,10 @@ NERD tree. These options should be set in your vimrc.
|
||||||
|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and
|
|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and
|
||||||
'Press ? for help' text.
|
'Press ? for help' text.
|
||||||
|
|
||||||
|
|'NERDTreeCascadeSingleChildDir'|
|
||||||
|
Collapses on the same line directories that
|
||||||
|
have only one child directory.
|
||||||
|
|
||||||
|'NERDTreeCascadeOpenSingleChildDir'|
|
|'NERDTreeCascadeOpenSingleChildDir'|
|
||||||
Cascade open while selected directory has only
|
Cascade open while selected directory has only
|
||||||
one child that also is a directory.
|
one child that also is a directory.
|
||||||
|
@ -986,6 +990,17 @@ of the following lines to set this option: >
|
||||||
let NERDTreeMinimalUI=1
|
let NERDTreeMinimalUI=1
|
||||||
<
|
<
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
*'NERDTreeCascadeSingleChildDir'*
|
||||||
|
Values: 0 or 1
|
||||||
|
Default: 1.
|
||||||
|
|
||||||
|
When displaying dir nodes, this option tells NERDTree to collapse dirs that
|
||||||
|
have only one child. Use one of the follow lines to set this option: >
|
||||||
|
let NERDTreeCascadeSingleChildDir=0
|
||||||
|
let NERDTreeCascadeSingleChildDir=1
|
||||||
|
<
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*'NERDTreeCascadeOpenSingleChildDir'*
|
*'NERDTreeCascadeOpenSingleChildDir'*
|
||||||
Values: 0 or 1
|
Values: 0 or 1
|
||||||
|
|
|
@ -257,7 +257,7 @@ endfunction
|
||||||
function! s:Opener._openDirectory(node)
|
function! s:Opener._openDirectory(node)
|
||||||
if self._nerdtree.isWinTree()
|
if self._nerdtree.isWinTree()
|
||||||
call self._gotoTargetWin()
|
call self._gotoTargetWin()
|
||||||
call g:NERDTreeCreator.CreateWindow(a:node.path.str())
|
call g:NERDTreeCreator.CreateWindowTree(a:node.path.str())
|
||||||
else
|
else
|
||||||
call self._gotoTargetWin()
|
call self._gotoTargetWin()
|
||||||
if empty(self._where)
|
if empty(self._where)
|
||||||
|
|
|
@ -174,11 +174,15 @@ function! s:Path.copy(dest)
|
||||||
|
|
||||||
call s:Path.createParentDirectories(a:dest)
|
call s:Path.createParentDirectories(a:dest)
|
||||||
|
|
||||||
let dest = s:Path.WinToUnixPath(a:dest)
|
if exists('g:NERDTreeCopyCmd')
|
||||||
|
let cmd_prefix = g:NERDTreeCopyCmd
|
||||||
|
else
|
||||||
|
let cmd_prefix = (self.isDirectory ? g:NERDTreeCopyDirCmd : g:NERDTreeCopyFileCmd)
|
||||||
|
endif
|
||||||
|
|
||||||
let cmd = g:NERDTreeCopyCmd . " " . escape(self.str(), self._escChars()) . " " . escape(dest, self._escChars())
|
let cmd = cmd_prefix . " " . escape(self.str(), self._escChars()) . " " . escape(a:dest, self._escChars())
|
||||||
let success = system(cmd)
|
let success = system(cmd)
|
||||||
if success != 0
|
if v:shell_error != 0
|
||||||
throw "NERDTree.CopyError: Could not copy ''". self.str() ."'' to: '" . a:dest . "'"
|
throw "NERDTree.CopyError: Could not copy ''". self.str() ."'' to: '" . a:dest . "'"
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -187,7 +191,7 @@ endfunction
|
||||||
"
|
"
|
||||||
"returns 1 if copying is supported for this OS
|
"returns 1 if copying is supported for this OS
|
||||||
function! s:Path.CopyingSupported()
|
function! s:Path.CopyingSupported()
|
||||||
return exists('g:NERDTreeCopyCmd')
|
return exists('g:NERDTreeCopyCmd') || (exists('g:NERDTreeCopyDirCmd') && exists('g:NERDTreeCopyFileCmd'))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: Path.copyingWillOverwrite(dest) {{{1
|
"FUNCTION: Path.copyingWillOverwrite(dest) {{{1
|
||||||
|
@ -213,7 +217,7 @@ endfunction
|
||||||
"FUNCTION: Path.createParentDirectories(path) {{{1
|
"FUNCTION: Path.createParentDirectories(path) {{{1
|
||||||
"
|
"
|
||||||
"create parent directories for this path if needed
|
"create parent directories for this path if needed
|
||||||
"without throwing any errors is those directories already exist
|
"without throwing any errors if those directories already exist
|
||||||
"
|
"
|
||||||
"Args:
|
"Args:
|
||||||
"path: full path of the node whose parent directories may need to be created
|
"path: full path of the node whose parent directories may need to be created
|
||||||
|
@ -226,8 +230,7 @@ endfunction
|
||||||
|
|
||||||
"FUNCTION: Path.delete() {{{1
|
"FUNCTION: Path.delete() {{{1
|
||||||
"
|
"
|
||||||
"Deletes the file represented by this path.
|
"Deletes the file or directory represented by this path.
|
||||||
"Deletion of directories is not supported
|
|
||||||
"
|
"
|
||||||
"Throws NERDTree.Path.Deletion exceptions
|
"Throws NERDTree.Path.Deletion exceptions
|
||||||
function! s:Path.delete()
|
function! s:Path.delete()
|
||||||
|
|
|
@ -117,28 +117,14 @@ endfunction
|
||||||
"FUNCTION: TreeDirNode.getCascade() {{{1
|
"FUNCTION: TreeDirNode.getCascade() {{{1
|
||||||
"Return an array of dir nodes (starting from self) that can be cascade opened.
|
"Return an array of dir nodes (starting from self) that can be cascade opened.
|
||||||
function! s:TreeDirNode.getCascade()
|
function! s:TreeDirNode.getCascade()
|
||||||
|
if !self.isCascadable()
|
||||||
let rv = [self]
|
return [self]
|
||||||
let node = self
|
|
||||||
|
|
||||||
while 1
|
|
||||||
let vc = node.getVisibleChildren()
|
|
||||||
if len(vc) != 1
|
|
||||||
break
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let vc = self.getVisibleChildren()
|
||||||
let visChild = vc[0]
|
let visChild = vc[0]
|
||||||
|
|
||||||
"TODO: optimize
|
return [self] + visChild.getCascade()
|
||||||
if !visChild.path.isDirectory
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
|
|
||||||
call add(rv, visChild)
|
|
||||||
let node = visChild
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
return rv
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: TreeDirNode.getChildCount() {{{1
|
"FUNCTION: TreeDirNode.getChildCount() {{{1
|
||||||
|
@ -264,6 +250,10 @@ endfunction
|
||||||
"FUNCTION: TreeDirNode.isCascadable() {{{1
|
"FUNCTION: TreeDirNode.isCascadable() {{{1
|
||||||
"true if this dir has only one visible child - which is also a dir
|
"true if this dir has only one visible child - which is also a dir
|
||||||
function! s:TreeDirNode.isCascadable()
|
function! s:TreeDirNode.isCascadable()
|
||||||
|
if g:NERDTreeCascadeSingleChildDir == 0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
let c = self.getVisibleChildren()
|
let c = self.getVisibleChildren()
|
||||||
return len(c) == 1 && c[0].path.isDirectory
|
return len(c) == 1 && c[0].path.isDirectory
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
@ -282,7 +282,8 @@ endfunction
|
||||||
function! s:UI._indentLevelFor(line)
|
function! s:UI._indentLevelFor(line)
|
||||||
"have to do this work around because match() returns bytes, not chars
|
"have to do this work around because match() returns bytes, not chars
|
||||||
let numLeadBytes = match(a:line, '\M\[^ '.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsible.']')
|
let numLeadBytes = match(a:line, '\M\[^ '.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsible.']')
|
||||||
let leadChars = strchars(a:line[0:numLeadBytes-1])
|
" The next line is a backward-compatible workaround for strchars(a:line(0:numLeadBytes-1]). strchars() is in 7.3+
|
||||||
|
let leadChars = len(split(a:line[0:numLeadBytes-1], '\zs'))
|
||||||
|
|
||||||
return leadChars / s:UI.IndentWid()
|
return leadChars / s:UI.IndentWid()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
@ -74,7 +74,7 @@ endfunction
|
||||||
function! s:promptToRenameBuffer(bufnum, msg, newFileName)
|
function! s:promptToRenameBuffer(bufnum, msg, newFileName)
|
||||||
echo a:msg
|
echo a:msg
|
||||||
if g:NERDTreeAutoDeleteBuffer || nr2char(getchar()) ==# 'y'
|
if g:NERDTreeAutoDeleteBuffer || nr2char(getchar()) ==# 'y'
|
||||||
let quotedFileName = "'" . a:newFileName . "'"
|
let quotedFileName = fnameescape(a:newFilename)
|
||||||
" 1. ensure that a new buffer is loaded
|
" 1. ensure that a new buffer is loaded
|
||||||
exec "badd " . quotedFileName
|
exec "badd " . quotedFileName
|
||||||
" 2. ensure that all windows which display the just deleted filename
|
" 2. ensure that all windows which display the just deleted filename
|
||||||
|
@ -160,10 +160,10 @@ function! NERDTreeDeleteNode()
|
||||||
let currentNode = g:NERDTreeFileNode.GetSelected()
|
let currentNode = g:NERDTreeFileNode.GetSelected()
|
||||||
let confirmed = 0
|
let confirmed = 0
|
||||||
|
|
||||||
if currentNode.path.isDirectory
|
if currentNode.path.isDirectory && currentNode.getChildCount() > 0
|
||||||
let choice =input("Delete the current node\n" .
|
let choice =input("Delete the current node\n" .
|
||||||
\ "==========================================================\n" .
|
\ "==========================================================\n" .
|
||||||
\ "STOP! To delete this entire directory, type 'yes'\n" .
|
\ "STOP! Directory is not empty! To delete, type 'yes'\n" .
|
||||||
\ "" . currentNode.path.str() . ": ")
|
\ "" . currentNode.path.str() . ": ")
|
||||||
let confirmed = choice ==# 'yes'
|
let confirmed = choice ==# 'yes'
|
||||||
else
|
else
|
||||||
|
|
|
@ -68,13 +68,14 @@ call s:initVariable("g:NERDTreeShowLineNumbers", 0)
|
||||||
call s:initVariable("g:NERDTreeSortDirs", 1)
|
call s:initVariable("g:NERDTreeSortDirs", 1)
|
||||||
|
|
||||||
if !nerdtree#runningWindows()
|
if !nerdtree#runningWindows()
|
||||||
call s:initVariable("g:NERDTreeDirArrowExpandable", "▸")
|
call s:initVariable("g:NERDTreeDirArrowExpandable", "►")
|
||||||
call s:initVariable("g:NERDTreeDirArrowCollapsible", "▾")
|
call s:initVariable("g:NERDTreeDirArrowCollapsible", "▼")
|
||||||
else
|
else
|
||||||
call s:initVariable("g:NERDTreeDirArrowExpandable", "+")
|
call s:initVariable("g:NERDTreeDirArrowExpandable", "+")
|
||||||
call s:initVariable("g:NERDTreeDirArrowCollapsible", "~")
|
call s:initVariable("g:NERDTreeDirArrowCollapsible", "~")
|
||||||
endif
|
endif
|
||||||
call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1)
|
call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1)
|
||||||
|
call s:initVariable("g:NERDTreeCascadeSingleChildDir", 1)
|
||||||
|
|
||||||
if !exists("g:NERDTreeSortOrder")
|
if !exists("g:NERDTreeSortOrder")
|
||||||
let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']
|
let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']
|
||||||
|
@ -103,6 +104,8 @@ call s:initVariable("g:NERDTreeWinSize", 31)
|
||||||
"Note: the space after the command is important
|
"Note: the space after the command is important
|
||||||
if nerdtree#runningWindows()
|
if nerdtree#runningWindows()
|
||||||
call s:initVariable("g:NERDTreeRemoveDirCmd", 'rmdir /s /q ')
|
call s:initVariable("g:NERDTreeRemoveDirCmd", 'rmdir /s /q ')
|
||||||
|
call s:initVariable("g:NERDTreeCopyDirCmd", 'xcopy /s /e /i /y /q ')
|
||||||
|
call s:initVariable("g:NERDTreeCopyFileCmd", 'copy /y ')
|
||||||
else
|
else
|
||||||
call s:initVariable("g:NERDTreeRemoveDirCmd", 'rm -rf ')
|
call s:initVariable("g:NERDTreeRemoveDirCmd", 'rm -rf ')
|
||||||
call s:initVariable("g:NERDTreeCopyCmd", 'cp -r ')
|
call s:initVariable("g:NERDTreeCopyCmd", 'cp -r ')
|
||||||
|
|
|
@ -25,7 +25,7 @@ syn match NERDTreeDirSlash #/# containedin=NERDTreeDir
|
||||||
exec 'syn match NERDTreeClosable #'.escape(g:NERDTreeDirArrowCollapsible, '~').'# containedin=NERDTreeDir,NERDTreeFile'
|
exec 'syn match NERDTreeClosable #'.escape(g:NERDTreeDirArrowCollapsible, '~').'# containedin=NERDTreeDir,NERDTreeFile'
|
||||||
exec 'syn match NERDTreeOpenable #'.escape(g:NERDTreeDirArrowExpandable, '~').'# containedin=NERDTreeDir,NERDTreeFile'
|
exec 'syn match NERDTreeOpenable #'.escape(g:NERDTreeDirArrowExpandable, '~').'# containedin=NERDTreeDir,NERDTreeFile'
|
||||||
|
|
||||||
let s:dirArrows = escape(g:NERDTreeDirArrowCollapsible, '~').escape(g:NERDTreeDirArrowExpandable, '~')
|
let s:dirArrows = escape(g:NERDTreeDirArrowCollapsible, '~]\-').escape(g:NERDTreeDirArrowExpandable, '~]\-')
|
||||||
exec 'syn match NERDTreeDir #[^'.s:dirArrows.' ].*/#'
|
exec 'syn match NERDTreeDir #[^'.s:dirArrows.' ].*/#'
|
||||||
syn match NERDTreeExecFile #^ .*\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmark
|
syn match NERDTreeExecFile #^ .*\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmark
|
||||||
exec 'syn match NERDTreeFile #^[^"\.'.s:dirArrows.'] *[^'.s:dirArrows.']*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile'
|
exec 'syn match NERDTreeFile #^[^"\.'.s:dirArrows.'] *[^'.s:dirArrows.']*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile'
|
||||||
|
|
|
@ -25,22 +25,21 @@
|
||||||
3. [Recommended settings](#settings)
|
3. [Recommended settings](#settings)
|
||||||
4. [FAQ](#faq)
|
4. [FAQ](#faq)
|
||||||
4.1. [I installed syntastic but it isn't reporting any errors...](#faqinfo)
|
4.1. [I installed syntastic but it isn't reporting any errors...](#faqinfo)
|
||||||
4.2. [How can I check scripts written for different versions of Python?](#faqpython)
|
4.2. [Syntastic supports several checkers for my filetype, how do I tell it which one(s) to use?](#faqcheckers)
|
||||||
4.3. [How can I check scripts written for different versions of Ruby?](#faqruby)
|
4.3. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate)
|
||||||
4.4. [Are there any local checkers for HTML5 that I can use with syntastic?](#faqhtml5)
|
4.4. [How can I pass additional arguments to a checker?](#faqargs)
|
||||||
4.5. [The `perl` checker has stopped working...](#faqperl)
|
4.5. [I run a checker and the location list is not updated...](#faqloclist)
|
||||||
4.6. [What happened to the `rustc` checker?](#faqrust)
|
4.5. [I run`:lopen` or `:lwindow` and the error window is empty...](#faqloclist)
|
||||||
4.7. [What happened to the `tsc` checker?](#faqtsc)
|
4.6. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext)
|
||||||
4.8. [What happened to the `xcrun` checker?](#faqxcrun)
|
4.7. [The error window is closed automatically when I `:quit` the current buffer but not when I `:bdelete` it?](#faqbdelete)
|
||||||
4.9. [I run a checker and the location list is not updated...](#faqloclist)
|
4.8. [My favourite checker needs to load a configuration file from the project's root rather than the current directory...](#faqconfig)
|
||||||
4.9. [I run`:lopen` or `:lwindow` and the error window is empty...](#faqloclist)
|
4.9. [What is the difference between syntax checkers and style checkers?](#faqstyle)
|
||||||
4.10. [How can I pass additional arguments to a checker?](#faqargs)
|
4.10. [How can I check scripts written for different versions of Python?](#faqpython)
|
||||||
4.11. [Syntastic supports several checkers for my filetype - how do I tell which one(s) to use?](#faqcheckers)
|
4.11. [How can I check scripts written for different versions of Ruby?](#faqruby)
|
||||||
4.12. [What is the difference between syntax checkers and style checkers?](#faqstyle)
|
4.12. [The `perl` checker has stopped working...](#faqperl)
|
||||||
4.13. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate)
|
4.13. [What happened to the `rustc` checker?](#faqrust)
|
||||||
4.14. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext)
|
4.14. [What happened to the `tsc` checker?](#faqtsc)
|
||||||
4.15. [My favourite checker needs to load a configuration file from the project's root rather than the current directory...](#faqconfig)
|
4.15. [What happened to the `xcrun` checker?](#faqxcrun)
|
||||||
4.16. [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)
|
||||||
|
|
||||||
- - -
|
- - -
|
||||||
|
@ -106,9 +105,9 @@ version 7 or later with the "normal", "big", or "huge" feature sets should be
|
||||||
fine.
|
fine.
|
||||||
|
|
||||||
Syntastic should work with any modern plugin managers for Vim, such as
|
Syntastic should work with any modern plugin managers for Vim, such as
|
||||||
[NeoBundle][neobundle], [Pathogen][pathogen], [Vim-Addon-Manager][vam], [Vim-Plug][plug], or
|
[NeoBundle][neobundle], [Pathogen][pathogen], [Vim-Addon-Manager][vam],
|
||||||
[Vundle][vundle]. Instructions for installing syntastic with [Pathogen][pathogen] are
|
[Vim-Plug][plug], or [Vundle][vundle]. Instructions for installing syntastic
|
||||||
included below for completeness.
|
with [Pathogen][pathogen] are included below for completeness.
|
||||||
|
|
||||||
Starting with Vim version 7.4.1486 you can also load syntastic using the
|
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
|
standard mechanism of packages, without the help of third-party plugin managers
|
||||||
|
@ -230,131 +229,12 @@ or the error output for a syntax checker may have changed. In this case, make
|
||||||
sure you have the latest version of the syntax checker installed. If it still
|
sure you have the latest version of the syntax checker installed. If it still
|
||||||
fails then post an [issue][bug_tracker] - or better yet, create a pull request.
|
fails then post an [issue][bug_tracker] - or better yet, create a pull request.
|
||||||
|
|
||||||
<a name="faqpython"></a>
|
|
||||||
|
|
||||||
__4.2. Q. How can I check scripts written for different versions of Python?__
|
|
||||||
|
|
||||||
A. Install a Python version manager such as [virtualenv][virtualenv]
|
|
||||||
or [pyenv][pyenv], activate the environment for the relevant version
|
|
||||||
of Python, and install in it the checkers you want to use. Set
|
|
||||||
`g:syntastic_python_checkers` accordingly in your `vimrc`, and run [Vim][vim]
|
|
||||||
from the virtual environment.
|
|
||||||
|
|
||||||
If you're starting Vim from a desktop manager rather than from a terminal you
|
|
||||||
might need to write wrapper scripts around your checkers, to activate the
|
|
||||||
virtual environment before running the actual checks. Then you'll need to
|
|
||||||
point the relevant `g:syntastic_python_<checker>_exec` variables to the wrapper
|
|
||||||
scripts.
|
|
||||||
|
|
||||||
<a name="faqruby"></a>
|
|
||||||
|
|
||||||
__4.3. Q. How can I check scripts written for different versions of Ruby?__
|
|
||||||
|
|
||||||
A. Install a Ruby version manager such as [rvm][rvm] or [rbenv][rbenv],
|
|
||||||
activate the environment for the relevant version of Ruby, and install in it
|
|
||||||
the checkers you want to use. Set `g:syntastic_ruby_checkers` accordingly in
|
|
||||||
your `vimrc`, and run [Vim][vim] from the virtual environment.
|
|
||||||
|
|
||||||
If you're starting Vim from a desktop manager rather than from a terminal you
|
|
||||||
might need to write wrapper scripts around your checkers, to activate the
|
|
||||||
virtual environment before running the actual checks. Then you'll need to
|
|
||||||
point the relevant `g:syntastic_ruby_<checker>_exec` variables to the wrapper
|
|
||||||
scripts.
|
|
||||||
|
|
||||||
<a name="faqhtml5"></a>
|
|
||||||
|
|
||||||
__4.4. Q. Are there any local checkers for HTML5 that I can use with syntastic?__
|
|
||||||
|
|
||||||
[HTML Tidy][tidy_old] has a fork named [HTML Tidy for HTML5][tidy]. It's a drop
|
|
||||||
in replacement, and syntastic can use it without changes. Just install it
|
|
||||||
somewhere and point `g:syntastic_html_tidy_exec` to its executable:
|
|
||||||
```vim
|
|
||||||
let g:syntastic_html_tidy_exec = 'tidy5'
|
|
||||||
```
|
|
||||||
Alternatively, you can install [vnu.jar][vnu_jar] from the [validator.nu][vnu]
|
|
||||||
project and run it as a [HTTP server][vnu_server]:
|
|
||||||
```sh
|
|
||||||
$ java -Xss512k -cp /path/to/vnu.jar nu.validator.servlet.Main 8888
|
|
||||||
```
|
|
||||||
Then you can configure syntastic to use it:
|
|
||||||
```vim
|
|
||||||
let g:syntastic_html_validator_api = 'http://localhost:8888/'
|
|
||||||
```
|
|
||||||
|
|
||||||
<a name="faqperl"></a>
|
|
||||||
|
|
||||||
__4.5. Q. The `perl` checker has stopped working...__
|
|
||||||
|
|
||||||
A. The `perl` checker runs `perl -c` against your file, which in turn
|
|
||||||
__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`
|
|
||||||
statements in your file (cf. [perlrun][perlrun]). This is probably fine if you
|
|
||||||
wrote the file yourself, but it's a security problem if you're checking
|
|
||||||
third-party files. Since there is currently no way to disable this behaviour
|
|
||||||
while still producing useful results, the checker is now disabled by default.
|
|
||||||
To (re-)enable it, make sure the `g:syntastic_perl_checkers` list includes
|
|
||||||
`perl`, and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`:
|
|
||||||
```vim
|
|
||||||
let g:syntastic_enable_perl_checker = 1
|
|
||||||
```
|
|
||||||
|
|
||||||
<a name="faqrust"></a>
|
|
||||||
|
|
||||||
__4.6. Q. What happened to the `rustc` checker?__
|
|
||||||
|
|
||||||
A. It is now part of the [rust.vim][rust] plugin. If you install this plugin the
|
|
||||||
checker should be picked up automatically by syntastic.
|
|
||||||
|
|
||||||
<a name="faqtsc"></a>
|
|
||||||
|
|
||||||
__4.7. Q. What happened to the `tsc` checker?__
|
|
||||||
|
|
||||||
A. It didn't meet people's expectations and it has been removed. Please
|
|
||||||
consider using the external checker [tsuquyomi][tsuquyomi] instead. If you
|
|
||||||
install this plugin the checker should be picked up automatically by syntastic.
|
|
||||||
|
|
||||||
<a name="faqxcrun"></a>
|
|
||||||
|
|
||||||
__4.8. Q. What happened to the `xcrun` checker?__
|
|
||||||
|
|
||||||
A. The `xcrun` checker used to have a security problem and it has been removed.
|
|
||||||
A better checker for __Swift__ is part of the [vim-swift][swift] plugin. If you
|
|
||||||
install this plugin the checker should be picked up automatically by syntastic.
|
|
||||||
|
|
||||||
<a name="faqloclist"></a>
|
|
||||||
|
|
||||||
__4.9. Q. I run a checker and the location list is not updated...__
|
|
||||||
__4.9. Q. I run`:lopen` or `:lwindow` and the error window is empty...__
|
|
||||||
|
|
||||||
A. By default the location list is changed only when you run the `:Errors`
|
|
||||||
command, in order to minimise conflicts with other plugins. If you want the
|
|
||||||
location list to always be updated when you run the checkers, add this line to
|
|
||||||
your `vimrc`:
|
|
||||||
```vim
|
|
||||||
let g:syntastic_always_populate_loc_list = 1
|
|
||||||
```
|
|
||||||
|
|
||||||
<a name="faqargs"></a>
|
|
||||||
|
|
||||||
__4.10. Q. How can I pass additional arguments to a checker?__
|
|
||||||
|
|
||||||
A. Almost all syntax checkers use the `makeprgBuild()` function. Those checkers
|
|
||||||
that do can be configured using global variables. The general form of the
|
|
||||||
global `args` variables is `syntastic_<filetype>_<checker>_args`.
|
|
||||||
|
|
||||||
So, If you wanted to pass `--my --args --here` to the ruby mri checker you
|
|
||||||
would add this line to your `vimrc`:
|
|
||||||
```vim
|
|
||||||
let g:syntastic_ruby_mri_args = "--my --args --here"
|
|
||||||
```
|
|
||||||
|
|
||||||
See `:help syntastic-checker-options` for more information.
|
|
||||||
|
|
||||||
<a name="faqcheckers"></a>
|
<a name="faqcheckers"></a>
|
||||||
|
|
||||||
__4.11. Q. Syntastic supports several checkers for my filetype - how do I tell it
|
__4.2. Q. Syntastic supports several checkers for my filetype, how do I tell it
|
||||||
which one(s) to use?__
|
which one(s) to use?__
|
||||||
|
|
||||||
A. Stick a line like this in your `vimrc`:
|
A. Add a line like this to your `vimrc`:
|
||||||
```vim
|
```vim
|
||||||
let g:syntastic_<filetype>_checkers = ['<checker-name>']
|
let g:syntastic_<filetype>_checkers = ['<checker-name>']
|
||||||
```
|
```
|
||||||
|
@ -362,10 +242,9 @@ let g:syntastic_<filetype>_checkers = ['<checker-name>']
|
||||||
To see the list of supported checkers for your filetype read the
|
To see the list of supported checkers for your filetype read the
|
||||||
[manual][checkers] (`:help syntastic-checkers` in Vim).
|
[manual][checkers] (`:help syntastic-checkers` in Vim).
|
||||||
|
|
||||||
e.g. Python has the following checkers, among others: `flake8`, `pyflakes`,
|
For example, Python has the following checkers, among others: `flake8`,
|
||||||
`pylint` and a native `python` checker.
|
`pyflakes`, `pylint` and a native `python` checker. To tell syntastic to use
|
||||||
|
`pylint`, you would use this setting:
|
||||||
To tell syntastic to use `pylint`, you would use this setting:
|
|
||||||
```vim
|
```vim
|
||||||
let g:syntastic_python_checkers = ['pylint']
|
let g:syntastic_python_checkers = ['pylint']
|
||||||
```
|
```
|
||||||
|
@ -379,8 +258,7 @@ This is telling syntastic to run the `php` checker first, and if no errors are
|
||||||
found, run `phpcs`, and then `phpmd`.
|
found, run `phpcs`, and then `phpmd`.
|
||||||
|
|
||||||
You can also run checkers explicitly by calling `:SyntasticCheck <checker>`.
|
You can also run checkers explicitly by calling `:SyntasticCheck <checker>`.
|
||||||
|
For example to run `phpcs` and `phpmd`:
|
||||||
e.g. to run `phpcs` and `phpmd`:
|
|
||||||
```vim
|
```vim
|
||||||
:SyntasticCheck phpcs phpmd
|
:SyntasticCheck phpcs phpmd
|
||||||
```
|
```
|
||||||
|
@ -390,39 +268,9 @@ aren't listed in `g:syntastic_<filetype>_checkers`. You can't run checkers for
|
||||||
"foreign" filetypes though (e.g. you can't run, say, a Python checker if the
|
"foreign" filetypes though (e.g. you can't run, say, a Python checker if the
|
||||||
filetype of the current file is `php`).
|
filetype of the current file is `php`).
|
||||||
|
|
||||||
<a name="faqstyle"></a>
|
|
||||||
|
|
||||||
__4.12. Q. What is the difference between syntax checkers and style checkers?__
|
|
||||||
|
|
||||||
A. The errors and warnings they produce are highlighted differently and can
|
|
||||||
be filtered by different rules, but otherwise the distinction is pretty much
|
|
||||||
arbitrary. There is an ongoing effort to keep things consistent, so you can
|
|
||||||
_generally_ expect messages produced by syntax checkers to be _mostly_ related
|
|
||||||
to syntax, and messages produced by style checkers to be _mostly_ about style.
|
|
||||||
But there can be no formal guarantee that, say, a style checker that runs into
|
|
||||||
a syntax error wouldn't die with a fatal message, nor that a syntax checker
|
|
||||||
wouldn't give you warnings against using some constructs as being bad practice.
|
|
||||||
There is also no guarantee that messages marked as "style" are less severe than
|
|
||||||
the ones marked as "syntax" (whatever that might mean). And there are even a
|
|
||||||
few Frankenstein checkers (for example `flake8` and `pylama`) that, by their
|
|
||||||
nature, produce both kinds of messages. Syntastic is not smart enough to be
|
|
||||||
able to sort out these things by itself.
|
|
||||||
|
|
||||||
In fact it's more useful to look at this from the perspective of filtering
|
|
||||||
unwanted messages, rather than as an indicator of severity levels. The
|
|
||||||
distinction between syntax and style is orthogonal to the distinction between
|
|
||||||
errors and warnings, and thus you can turn off messages based on level, on
|
|
||||||
type, or both.
|
|
||||||
|
|
||||||
e.g. To disable all style messages:
|
|
||||||
```vim
|
|
||||||
let g:syntastic_quiet_messages = { "type": "style" }
|
|
||||||
```
|
|
||||||
See `:help syntastic_quiet_messages` for details.
|
|
||||||
|
|
||||||
<a name="faqaggregate"></a>
|
<a name="faqaggregate"></a>
|
||||||
|
|
||||||
__4.13. Q. I have enabled multiple checkers for the current filetype. How can I
|
__4.3. 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`:
|
||||||
|
@ -432,9 +280,46 @@ let g:syntastic_aggregate_errors = 1
|
||||||
|
|
||||||
See `:help syntastic-aggregating-errors` for more details.
|
See `:help syntastic-aggregating-errors` for more details.
|
||||||
|
|
||||||
|
<a name="faqargs"></a>
|
||||||
|
|
||||||
|
__4.4. Q. How can I pass additional arguments to a checker?__
|
||||||
|
|
||||||
|
A. In most cases a command line is constructed using an internal function
|
||||||
|
named `makeprgBuild()`, which provides a number of options that allow you to
|
||||||
|
customise every part of the command that gets run. You can set these options
|
||||||
|
using global variables.
|
||||||
|
|
||||||
|
The general form of the global `args` variable is
|
||||||
|
`syntastic_<filetype>_<checker>_args`. Thus if you wanted to pass
|
||||||
|
`--my --args --here` to the Ruby `mri` checker you would add this line to your
|
||||||
|
`vimrc`:
|
||||||
|
```vim
|
||||||
|
let g:syntastic_ruby_mri_args = "--my --args --here"
|
||||||
|
```
|
||||||
|
|
||||||
|
See `:help syntastic-checker-options` for more information.
|
||||||
|
|
||||||
|
A number of checkers don't use the `makeprgBuild()` function mentioned above,
|
||||||
|
or have additional options that can be configured. For these checkers the exact
|
||||||
|
list of options should be included in the [manual][checkers]
|
||||||
|
(`:help syntastic-checkers` in Vim).
|
||||||
|
|
||||||
|
<a name="faqloclist"></a>
|
||||||
|
|
||||||
|
__4.5. Q. I run a checker and the location list is not updated...__
|
||||||
|
__4.5. Q. I run`:lopen` or `:lwindow` and the error window is empty...__
|
||||||
|
|
||||||
|
A. By default the location list is changed only when you run the `:Errors`
|
||||||
|
command, in order to minimise conflicts with other plugins. If you want the
|
||||||
|
location list to always be updated when you run the checkers, add this line to
|
||||||
|
your `vimrc`:
|
||||||
|
```vim
|
||||||
|
let g:syntastic_always_populate_loc_list = 1
|
||||||
|
```
|
||||||
|
|
||||||
<a name="faqlnext"></a>
|
<a name="faqlnext"></a>
|
||||||
|
|
||||||
__4.14. Q. How can I jump between the different errors without using the location
|
__4.6. Q. How can I jump between the different errors without using the location
|
||||||
list at the bottom of the window?__
|
list at the bottom of the window?__
|
||||||
|
|
||||||
A. Vim provides several built-in commands for this. See `:help :lnext` and
|
A. Vim provides several built-in commands for this. See `:help :lnext` and
|
||||||
|
@ -444,9 +329,21 @@ If you use these commands a lot then you may want to add shortcut mappings to
|
||||||
your `vimrc`, or install something like [unimpaired][unimpaired], which provides such
|
your `vimrc`, or install something like [unimpaired][unimpaired], which provides such
|
||||||
mappings (among other things).
|
mappings (among other things).
|
||||||
|
|
||||||
|
<a name="faqbdelete"></a>
|
||||||
|
|
||||||
|
__4.7. Q. The error window is closed automatically when I `:quit` the current buffer
|
||||||
|
but not when I `:bdelete` it?__
|
||||||
|
|
||||||
|
A. There is no safe way to handle that situation automatically, but you can
|
||||||
|
work around it:
|
||||||
|
```vim
|
||||||
|
nnoremap <silent> <C-d> :lclose<CR>:bdelete<CR>
|
||||||
|
cabbrev <silent> bd <C-r>=(getcmdtype()==#':' && getcmdpos()==1 ? 'lclose\|bdelete' : 'bd')<CR>
|
||||||
|
```
|
||||||
|
|
||||||
<a name="faqconfig"></a>
|
<a name="faqconfig"></a>
|
||||||
|
|
||||||
__4.15. My favourite checker needs to load a configuration file from the
|
__4.8. My favourite checker needs to load a configuration file from the
|
||||||
project's root rather than the current directory...__
|
project's root rather than the current directory...__
|
||||||
|
|
||||||
A. You can set up an `autocmd` to search for the configuration file in the
|
A. You can set up an `autocmd` to search for the configuration file in the
|
||||||
|
@ -463,18 +360,106 @@ autocmd FileType javascript let b:syntastic_javascript_jscs_args =
|
||||||
\ get(g:, 'syntastic_javascript_jscs_args', '') .
|
\ get(g:, 'syntastic_javascript_jscs_args', '') .
|
||||||
\ FindConfig('-c', '.jscsrc', expand('<afile>:p:h', 1))
|
\ FindConfig('-c', '.jscsrc', expand('<afile>:p:h', 1))
|
||||||
```
|
```
|
||||||
<a name="faqbdelete"></a>
|
|
||||||
|
|
||||||
__4.16. Q. The error window is closed automatically when I :quit the current buffer
|
<a name="faqstyle"></a>
|
||||||
but not when I :bdelete it?__
|
|
||||||
|
|
||||||
A. There is no safe way to handle that situation automatically, but you can
|
__4.9. Q. What is the difference between syntax checkers and style checkers?__
|
||||||
work around it:
|
|
||||||
|
|
||||||
|
A. The errors and warnings they produce are highlighted differently and can
|
||||||
|
be filtered by different rules, but otherwise the distinction is pretty much
|
||||||
|
arbitrary. There is an ongoing effort to keep things consistent, so you can
|
||||||
|
_generally_ expect messages produced by syntax checkers to be _mostly_ related
|
||||||
|
to syntax, and messages produced by style checkers to be _mostly_ about style.
|
||||||
|
But there can be no formal guarantee that, say, a style checker that runs into
|
||||||
|
a syntax error wouldn't die with a fatal message, nor that a syntax checker
|
||||||
|
wouldn't give you warnings against using some constructs as being bad practice.
|
||||||
|
There is also no guarantee that messages marked as `style` are less severe than
|
||||||
|
the ones marked as `syntax` (whatever that might mean). And there are even a
|
||||||
|
few Frankenstein checkers (for example `flake8` and `pylama`) that, by their
|
||||||
|
nature, produce both kinds of messages. Syntastic is not smart enough to be
|
||||||
|
able to sort out these things by itself.
|
||||||
|
|
||||||
|
Generally it's more useful to look at this from the perspective of filtering
|
||||||
|
unwanted messages, rather than as an indicator of severity levels. The
|
||||||
|
distinction between syntax and style is orthogonal to the distinction between
|
||||||
|
errors and warnings, and thus you can turn off messages based on level, on
|
||||||
|
type, or both.
|
||||||
|
|
||||||
|
e.g. To disable all style messages:
|
||||||
```vim
|
```vim
|
||||||
nnoremap <silent> <C-d> :lclose<CR>:bdelete<CR>
|
let g:syntastic_quiet_messages = { "type": "style" }
|
||||||
cabbrev <silent> bd <C-r>=(getcmdtype()==#':' && getcmdpos()==1 ? 'lclose\|bdelete' : 'bd')<CR>
|
|
||||||
```
|
```
|
||||||
|
See `:help syntastic_quiet_messages` for more information.
|
||||||
|
|
||||||
|
<a name="faqpython"></a>
|
||||||
|
|
||||||
|
__4.10. Q. How can I check scripts written for different versions of Python?__
|
||||||
|
|
||||||
|
A. Install a Python version manager such as [virtualenv][virtualenv]
|
||||||
|
or [pyenv][pyenv], activate the environment for the relevant version
|
||||||
|
of Python, and install in it the checkers you want to use. Set
|
||||||
|
`g:syntastic_python_checkers` accordingly in your `vimrc`, and run [Vim][vim]
|
||||||
|
from the virtual environment.
|
||||||
|
|
||||||
|
If you're starting Vim from a desktop manager rather than from a terminal you
|
||||||
|
might need to write wrapper scripts around your checkers, to activate the
|
||||||
|
virtual environment before running the actual checks. Then you'll need to
|
||||||
|
point the relevant `g:syntastic_python_<checker>_exec` variables to the wrapper
|
||||||
|
scripts.
|
||||||
|
|
||||||
|
<a name="faqruby"></a>
|
||||||
|
|
||||||
|
__4.11. Q. How can I check scripts written for different versions of Ruby?__
|
||||||
|
|
||||||
|
A. Install a Ruby version manager such as [rvm][rvm] or [rbenv][rbenv],
|
||||||
|
activate the environment for the relevant version of Ruby, and install in it
|
||||||
|
the checkers you want to use. Set `g:syntastic_ruby_checkers` accordingly in
|
||||||
|
your `vimrc`, and run [Vim][vim] from the virtual environment.
|
||||||
|
|
||||||
|
If you're starting Vim from a desktop manager rather than from a terminal you
|
||||||
|
might need to write wrapper scripts around your checkers, to activate the
|
||||||
|
virtual environment before running the actual checks. Then you'll need to
|
||||||
|
point the relevant `g:syntastic_ruby_<checker>_exec` variables to the wrapper
|
||||||
|
scripts.
|
||||||
|
|
||||||
|
<a name="faqperl"></a>
|
||||||
|
|
||||||
|
__4.12. Q. The `perl` checker has stopped working...__
|
||||||
|
|
||||||
|
A. The `perl` checker runs `perl -c` against your file, which in turn
|
||||||
|
__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`
|
||||||
|
statements in your file (cf. [perlrun][perlrun]). This is probably fine if you
|
||||||
|
wrote the file yourself, but it's a security problem if you're checking
|
||||||
|
third-party files. Since there is currently no way to disable this behaviour
|
||||||
|
while still producing useful results, the checker is now disabled by default.
|
||||||
|
To (re-)enable it, make sure the `g:syntastic_perl_checkers` list includes
|
||||||
|
`perl`, and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`:
|
||||||
|
```vim
|
||||||
|
let g:syntastic_enable_perl_checker = 1
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="faqrust"></a>
|
||||||
|
|
||||||
|
__4.13. Q. What happened to the `rustc` checker?__
|
||||||
|
|
||||||
|
A. It is now part of the [rust.vim][rust] plugin. If you install this plugin the
|
||||||
|
checker should be picked up automatically by syntastic.
|
||||||
|
|
||||||
|
<a name="faqtsc"></a>
|
||||||
|
|
||||||
|
__4.14. Q. What happened to the `tsc` checker?__
|
||||||
|
|
||||||
|
A. It didn't meet people's expectations and it has been removed. The plugin
|
||||||
|
[tsuquyomi][tsuquyomi] comes packaged with a checker for TypeScript. If you
|
||||||
|
install this plugin the checker should be picked up automatically by syntastic.
|
||||||
|
|
||||||
|
<a name="faqxcrun"></a>
|
||||||
|
|
||||||
|
__4.15. Q. What happened to the `xcrun` checker?__
|
||||||
|
|
||||||
|
A. The `xcrun` checker used to have a security problem and it has been removed.
|
||||||
|
A better checker for __Swift__ is part of the [vim-swift][swift] plugin. If you
|
||||||
|
install this plugin the checker should be picked up automatically by syntastic.
|
||||||
|
|
||||||
<a name="otherresources"></a>
|
<a name="otherresources"></a>
|
||||||
|
|
||||||
|
@ -517,8 +502,6 @@ a look at [ghcmod-vim][ghcmod], [jedi-vim][jedi], [python-mode][python_mode], [v
|
||||||
[rvm]: https://rvm.io/
|
[rvm]: https://rvm.io/
|
||||||
[stack_overflow]: http://stackoverflow.com/questions/tagged/syntastic
|
[stack_overflow]: http://stackoverflow.com/questions/tagged/syntastic
|
||||||
[swift]: https://github.com/kballard/vim-swift
|
[swift]: https://github.com/kballard/vim-swift
|
||||||
[tidy]: http://www.htacg.org/tidy-html5/
|
|
||||||
[tidy_old]: http://tidy.sourceforge.net/
|
|
||||||
[tsuquyomi]: https://github.com/Quramy/tsuquyomi/
|
[tsuquyomi]: https://github.com/Quramy/tsuquyomi/
|
||||||
[unimpaired]: https://github.com/tpope/vim-unimpaired
|
[unimpaired]: https://github.com/tpope/vim-unimpaired
|
||||||
[vam]: https://github.com/MarcWeber/vim-addon-manager
|
[vam]: https://github.com/MarcWeber/vim-addon-manager
|
||||||
|
|
|
@ -271,6 +271,36 @@ function! syntastic#util#findGlobInParent(what, where) abort " {{{2
|
||||||
return ''
|
return ''
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
|
" Returns the buffer number of a filename
|
||||||
|
" @vimlint(EVL104, 1, l:old_shellslash)
|
||||||
|
function! syntastic#util#fname2buf(fname) abort " {{{2
|
||||||
|
if exists('+shellslash')
|
||||||
|
" bufnr() can't cope with backslashes
|
||||||
|
let old_shellslash = &shellslash
|
||||||
|
let &shellslash = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" this is a best-effort attempt to escape file patterns (cf. :h file-pattern)
|
||||||
|
" XXX it fails for filenames containing something like \{2,3}
|
||||||
|
for md in [':~:.', ':~', ':p']
|
||||||
|
let buf = bufnr('^' . escape(fnamemodify(a:fname, md), '\*?,{}[') . '$')
|
||||||
|
if buf != -1
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
if buf == -1
|
||||||
|
" XXX definitely wrong, but hope is the last thing to die :)
|
||||||
|
let buf = bufnr(fnamemodify(a:fname, ':p'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists('+shellslash')
|
||||||
|
let &shellslash = old_shellslash
|
||||||
|
endif
|
||||||
|
|
||||||
|
return buf
|
||||||
|
endfunction " }}}2
|
||||||
|
" @vimlint(EVL104, 0, l:old_shellslash)
|
||||||
|
|
||||||
" Returns unique elements in a list
|
" Returns unique elements in a list
|
||||||
function! syntastic#util#unique(list) abort " {{{2
|
function! syntastic#util#unique(list) abort " {{{2
|
||||||
let seen = {}
|
let seen = {}
|
||||||
|
@ -342,10 +372,8 @@ function! syntastic#util#stamp() abort " {{{2
|
||||||
return split( split(reltimestr(reltime(g:_SYNTASTIC_START)))[0], '\.' )
|
return split( split(reltimestr(reltime(g:_SYNTASTIC_START)))[0], '\.' )
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! syntastic#util#setChangedtick() abort " {{{2
|
function! syntastic#util#setLastTick(buf) abort " {{{2
|
||||||
unlockvar! b:syntastic_changedtick
|
call setbufvar(a:buf, 'syntastic_lasttick', getbufvar(a:buf, 'changedtick'))
|
||||||
let b:syntastic_changedtick = b:changedtick
|
|
||||||
lockvar! b:syntastic_changedtick
|
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
let s:_wid_base = 'syntastic_' . getpid() . '_' . reltimestr(g:_SYNTASTIC_START) . '_'
|
let s:_wid_base = 'syntastic_' . getpid() . '_' . reltimestr(g:_SYNTASTIC_START) . '_'
|
||||||
|
|
|
@ -3147,13 +3147,13 @@ accepts the standard options described at |syntastic-config-makeprg|.
|
||||||
|
|
||||||
Notes~
|
Notes~
|
||||||
|
|
||||||
Syntastic requires "Flow" version 0.6 or later.
|
Syntastic requires "Flow" version 0.18.1 or later.
|
||||||
|
|
||||||
To use "Flow" with your projects, you must:
|
To use "Flow" with your projects, you must:
|
||||||
|
|
||||||
a. Install it:
|
a. Install it:
|
||||||
|
|
||||||
https://github.com/sindresorhus/flow-bin
|
https://github.com/flowtype/flow-bin
|
||||||
|
|
||||||
b. Configure your project:
|
b. Configure your project:
|
||||||
>
|
>
|
||||||
|
@ -6183,7 +6183,7 @@ Maintainer: LCD 47 <lcd047@gmail.com>
|
||||||
|
|
||||||
"ESLint" is a tool for identifying and reporting on patterns found
|
"ESLint" is a tool for identifying and reporting on patterns found
|
||||||
in ECMAScript/JavaScript code. With the "babel-eslint" plugin
|
in ECMAScript/JavaScript code. With the "babel-eslint" plugin
|
||||||
(https://github.com/babel/babel-eslint) "ESLint" can also can also be
|
(https://github.com/babel/babel-eslint) "ESLint" can also be
|
||||||
used to check TypeScript files. See the project's page for details:
|
used to check TypeScript files. See the project's page for details:
|
||||||
|
|
||||||
https://github.com/nzakas/eslint
|
https://github.com/nzakas/eslint
|
||||||
|
|
|
@ -46,19 +46,21 @@ CONTENTS *syntastic-contents*
|
||||||
6.4.Saving Vim sessions....................|syntastic-sessions|
|
6.4.Saving Vim sessions....................|syntastic-sessions|
|
||||||
6.5.The location list callback.............|syntastic-loclist-callback|
|
6.5.The location list callback.............|syntastic-loclist-callback|
|
||||||
7.Compatibility with other software............|syntastic-compatibility|
|
7.Compatibility with other software............|syntastic-compatibility|
|
||||||
7.1.The csh and tcsh shells................|syntastic-csh|
|
7.1.airline................................|syntastic-airline|
|
||||||
7.2.Eclim..................................|syntastic-eclim|
|
7.2.The csh and tcsh shells................|syntastic-csh|
|
||||||
7.3.The fish shell.........................|syntastic-fish|
|
7.3.Eclim..................................|syntastic-eclim|
|
||||||
7.4.The fizsh shell........................|syntastic-fizsh|
|
7.4.ferret.................................|syntastic-ferret|
|
||||||
7.5.flagship...............................|syntastic-flagship|
|
7.5.The fish shell.........................|syntastic-fish|
|
||||||
7.6.powerline..............................|syntastic-powerline|
|
7.6.The fizsh shell........................|syntastic-fizsh|
|
||||||
7.7.The PowerShell shell...................|syntastic-powershell|
|
7.7.flagship...............................|syntastic-flagship|
|
||||||
7.8.python-mode............................|syntastic-pymode|
|
7.8.powerline..............................|syntastic-powerline|
|
||||||
7.9.vim-auto-save..........................|syntastic-vim-auto-save|
|
7.9.The PowerShell shell...................|syntastic-powershell|
|
||||||
7.10.vim-go................................|syntastic-vim-go|
|
7.10.python-mode...........................|syntastic-pymode|
|
||||||
7.11.vim-virtualenv........................|syntastic-vim-virtualenv|
|
7.11.vim-auto-save.........................|syntastic-vim-auto-save|
|
||||||
7.12.YouCompleteMe.........................|syntastic-ycm|
|
7.12.vim-go................................|syntastic-vim-go|
|
||||||
7.13.The zsh shell and MacVim..............|syntastic-zsh|
|
7.13.vim-virtualenv........................|syntastic-vim-virtualenv|
|
||||||
|
7.14.YouCompleteMe.........................|syntastic-ycm|
|
||||||
|
7.15.The zsh shell and MacVim..............|syntastic-zsh|
|
||||||
8.About........................................|syntastic-about|
|
8.About........................................|syntastic-about|
|
||||||
9.License......................................|syntastic-license|
|
9.License......................................|syntastic-license|
|
||||||
|
|
||||||
|
@ -158,12 +160,17 @@ Something like this could be more useful: >
|
||||||
set statusline+=%*
|
set statusline+=%*
|
||||||
<
|
<
|
||||||
When syntax errors are detected a flag will be shown. The content of the flag
|
When syntax errors are detected a flag will be shown. The content of the flag
|
||||||
is derived from the |syntastic_stl_format| option.
|
is derived from the |'syntastic_stl_format'| option.
|
||||||
|
|
||||||
Please note that these settings might conflict with other Vim plugins that
|
Please note that these settings might conflict with other Vim plugins that
|
||||||
change the way statusline works. Refer to these plugins' documentation for
|
change the way statusline works. Refer to the |syntastic-compatibility| notes
|
||||||
possible solutions. See also |syntastic-powerline| below if you're using the
|
below and to the respective plugins' documentation for possible solutions.
|
||||||
"powerline" Vim plugin (https://github.com/powerline/powerline).
|
|
||||||
|
In particular see |syntastic-airline| below if you're using the "airline" Vim
|
||||||
|
plugin (https://github.com/vim-airline/vim-airline). See |syntastic-flagship|
|
||||||
|
if you're using "flagship" (https://github.com/tpope/vim-flagship). See also
|
||||||
|
|syntastic-powerline| if you're using the "powerline" Vim plugin
|
||||||
|
(https://github.com/powerline/powerline).
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
2.2. Error signs *syntastic-error-signs*
|
2.2. Error signs *syntastic-error-signs*
|
||||||
|
@ -195,6 +202,10 @@ following highlight groups:
|
||||||
Example: >
|
Example: >
|
||||||
highlight SyntasticErrorLine guibg=#2f0000
|
highlight SyntasticErrorLine guibg=#2f0000
|
||||||
<
|
<
|
||||||
|
With Vim 8.0 or later you can ask Vim not to turn off the sign column when no
|
||||||
|
errors are found, by setting 'signcolumn' to "yes": >
|
||||||
|
set signcolumn=yes
|
||||||
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
2.3. The error window *syntastic-error-window*
|
2.3. The error window *syntastic-error-window*
|
||||||
|
|
||||||
|
@ -248,7 +259,7 @@ grouped together, and sorting within each group is decided by the variables
|
||||||
|'syntastic_<filetype>_<checker>_sort'|.
|
|'syntastic_<filetype>_<checker>_sort'|.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
2.6 Filtering errors *syntastic-filtering-errors*
|
2.6. Filtering errors *syntastic-filtering-errors*
|
||||||
|
|
||||||
You can selectively disable some of the errors found by checkers either
|
You can selectively disable some of the errors found by checkers either
|
||||||
using |'syntastic_quiet_messages'|, or by specifying a list of patterns in
|
using |'syntastic_quiet_messages'|, or by specifying a list of patterns in
|
||||||
|
@ -732,7 +743,7 @@ filetypes.
|
||||||
5. Checker Options *syntastic-checker-options*
|
5. Checker Options *syntastic-checker-options*
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.1 Choosing which checkers to use *syntastic-filetype-checkers*
|
5.1. Choosing which checkers to use *syntastic-filetype-checkers*
|
||||||
|
|
||||||
*'g:syntastic_<filetype>_checkers'*
|
*'g:syntastic_<filetype>_checkers'*
|
||||||
You can tell syntastic which checkers to run for a given filetype by setting a
|
You can tell syntastic which checkers to run for a given filetype by setting a
|
||||||
|
@ -756,7 +767,7 @@ are supported by syntastic: |syntastic-checkers|.
|
||||||
Use `:SyntasticInfo` to see which checkers are available for a given filetype.
|
Use `:SyntasticInfo` to see which checkers are available for a given filetype.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.2 Choosing the executable *syntastic-config-exec*
|
5.2. Choosing the executable *syntastic-config-exec*
|
||||||
|
|
||||||
*'syntastic_<filetype>_<checker>_exec'*
|
*'syntastic_<filetype>_<checker>_exec'*
|
||||||
The executable run by a checker is normally defined automatically, when the
|
The executable run by a checker is normally defined automatically, when the
|
||||||
|
@ -773,7 +784,7 @@ takes precedence over both 'b:syntastic_<filetype>_<checker>_exec' and
|
||||||
'g:syntastic_<filetype>_<checker>_exec' in the buffers where it is defined.
|
'g:syntastic_<filetype>_<checker>_exec' in the buffers where it is defined.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.3 Configuring specific checkers *syntastic-config-makeprg*
|
5.3. Configuring specific checkers *syntastic-config-makeprg*
|
||||||
|
|
||||||
Checkers are run by constructing a command line and by passing it to a shell
|
Checkers are run by constructing a command line and by passing it to a shell
|
||||||
(see |'shell'| and |'syntastic_shell'|). In most cases this command line is
|
(see |'shell'| and |'syntastic_shell'|). In most cases this command line is
|
||||||
|
@ -797,7 +808,7 @@ The result is a command line of the form: >
|
||||||
All fields above are optional, and can be overridden by setting global
|
All fields above are optional, and can be overridden by setting global
|
||||||
variables 'g:syntastic_<filetype>_<checker-name>_<option-name>' - even
|
variables 'g:syntastic_<filetype>_<checker-name>_<option-name>' - even
|
||||||
parameters not specified in the call to "makeprgBuild()". For example to
|
parameters not specified in the call to "makeprgBuild()". For example to
|
||||||
override the argguments and the tail: >
|
override the arguments and the tail: >
|
||||||
let g:syntastic_c_pc_lint_args = "-w5 -Iz:/usr/include/linux"
|
let g:syntastic_c_pc_lint_args = "-w5 -Iz:/usr/include/linux"
|
||||||
let g:syntastic_c_pc_lint_tail = "2>/dev/null"
|
let g:syntastic_c_pc_lint_tail = "2>/dev/null"
|
||||||
<
|
<
|
||||||
|
@ -849,7 +860,7 @@ options that can be set they are normally documented in this manual (see
|
||||||
|syntastic-checkers|).
|
|syntastic-checkers|).
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.4 Sorting errors *syntastic-config-sort*
|
5.4. Sorting errors *syntastic-config-sort*
|
||||||
|
|
||||||
*'syntastic_<filetype>_<checker>_sort'*
|
*'syntastic_<filetype>_<checker>_sort'*
|
||||||
Syntastic may decide to group the errors produced by some checkers by file,
|
Syntastic may decide to group the errors produced by some checkers by file,
|
||||||
|
@ -868,7 +879,7 @@ For aggregated lists (see |syntastic-aggregating-errors|) these variables are
|
||||||
ignored if |'syntastic_sort_aggregated_errors'| is set (which is the default).
|
ignored if |'syntastic_sort_aggregated_errors'| is set (which is the default).
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.5 Filtering errors *syntastic-config-filtering*
|
5.5. Filtering errors *syntastic-config-filtering*
|
||||||
|
|
||||||
*'syntastic_<filetype>_<checker>_quiet_messages'*
|
*'syntastic_<filetype>_<checker>_quiet_messages'*
|
||||||
Finally, variables 'g:syntastic_<filetype>_<checker-name>_quiet_messages' can
|
Finally, variables 'g:syntastic_<filetype>_<checker-name>_quiet_messages' can
|
||||||
|
@ -882,7 +893,7 @@ from the corresponding checkers are filtered. Example: >
|
||||||
The syntax is of course identical to that of |syntastic_quiet_messages|.
|
The syntax is of course identical to that of |syntastic_quiet_messages|.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.6 Debugging *syntastic-config-debug*
|
5.6. Debugging *syntastic-config-debug*
|
||||||
*syntastic-debug*
|
*syntastic-debug*
|
||||||
|
|
||||||
Syntastic can log a trace of its working to Vim's |message-history|. To verify
|
Syntastic can log a trace of its working to Vim's |message-history|. To verify
|
||||||
|
@ -902,7 +913,7 @@ Debug logs can be saved to a file; see |'syntastic_debug_file'| for details.
|
||||||
Setting |'syntastic_debug'| to 0 turns off logging.
|
Setting |'syntastic_debug'| to 0 turns off logging.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.7 Profiling *syntastic-profiling*
|
5.7. Profiling *syntastic-profiling*
|
||||||
|
|
||||||
A very useful tool for debugging performance problems is Vim's built-in
|
A very useful tool for debugging performance problems is Vim's built-in
|
||||||
|profiler|. In order to enable profiling for syntastic you need to add two lines
|
|profiler|. In order to enable profiling for syntastic you need to add two lines
|
||||||
|
@ -932,7 +943,7 @@ composite filetypes to simple ones using |'syntastic_filetype_map'|, e.g.: >
|
||||||
let g:syntastic_filetype_map = { "handlebars.html": "handlebars" }
|
let g:syntastic_filetype_map = { "handlebars.html": "handlebars" }
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
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
|
||||||
|
@ -940,7 +951,7 @@ 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
|
||||||
|
@ -951,7 +962,7 @@ shell. It should be turned off if your 'shell' (or |'syntastic_shell'|) is
|
||||||
value.
|
value.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
6.4 Saving Vim sessions *syntastic-sessions*
|
6.4. Saving Vim sessions *syntastic-sessions*
|
||||||
|
|
||||||
If you use `:mksession` to save Vim sessions you should probably make sure to
|
If you use `:mksession` to save Vim sessions you should probably make sure to
|
||||||
remove option "blank" from 'sessionoptions': >
|
remove option "blank" from 'sessionoptions': >
|
||||||
|
@ -961,7 +972,7 @@ This will prevent `:mksession` from saving |syntastic-error-window| as empty
|
||||||
quickfix windows.
|
quickfix windows.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
6.5 The location list callback *syntastic-loclist-callback*
|
6.5. The location list callback *syntastic-loclist-callback*
|
||||||
|
|
||||||
*SyntasticCheckHook()*
|
*SyntasticCheckHook()*
|
||||||
Syntastic also gives you direct access to the list of errors. A function
|
Syntastic also gives you direct access to the list of errors. A function
|
||||||
|
@ -987,7 +998,17 @@ also affect window sizes.)
|
||||||
7. Compatibility with other software *syntastic-compatibility*
|
7. Compatibility with other software *syntastic-compatibility*
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.1 The csh and tcsh shells *syntastic-csh*
|
7.1. airline *syntastic-airline*
|
||||||
|
|
||||||
|
The "airline" Vim plugin (https://github.com/vim-airline/vim-airline) comes
|
||||||
|
packaged with a mechanism of showing flags on the |'statusline'| according
|
||||||
|
to your |'syntastic_stl_format'|. When using this plugin you do NOT need to
|
||||||
|
follow the recommendation outlined in the |syntastic-statusline-flag| section
|
||||||
|
above to modify your |'statusline'|; "airline" will make all necessary changes
|
||||||
|
automatically.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
7.2. 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
|
||||||
|
@ -996,7 +1017,7 @@ such as "zsh", "bash", "ksh", or even the original Bourne "sh": >
|
||||||
let g:syntastic_shell = "/bin/sh"
|
let g:syntastic_shell = "/bin/sh"
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.2. Eclim *syntastic-eclim*
|
7.3. Eclim *syntastic-eclim*
|
||||||
|
|
||||||
Syntastic can be used together with "Eclim" (see http://eclim.org/). However,
|
Syntastic can be used together with "Eclim" (see http://eclim.org/). However,
|
||||||
by default Eclim disables syntastic's checks for the filetypes it supports, in
|
by default Eclim disables syntastic's checks for the filetypes it supports, in
|
||||||
|
@ -1009,7 +1030,15 @@ run Eclim's validation for others. Please consult Eclim's documentation for
|
||||||
details.
|
details.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.3 The fish shell *syntastic-fish*
|
7.4. ferret *syntastic-ferret*
|
||||||
|
|
||||||
|
At the time of this writing syntastic conflicts with the "ferret" Vim plugin
|
||||||
|
(https://github.com/wincent/ferret). The "ferret" plugin assumes control over
|
||||||
|
loclist windows even when configured to use |quickfix| lists. This interferes
|
||||||
|
with syntastic's functioning.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
7.5. The fish shell *syntastic-fish*
|
||||||
|
|
||||||
At the time of this writing the "fish" shell (see http://fishshell.com/)
|
At the time of this writing the "fish" shell (see http://fishshell.com/)
|
||||||
doesn't support the standard UNIX syntax for file redirections, and thus it
|
doesn't support the standard UNIX syntax for file redirections, and thus it
|
||||||
|
@ -1019,7 +1048,7 @@ original Bourne "sh": >
|
||||||
let g:syntastic_shell = "/bin/sh"
|
let g:syntastic_shell = "/bin/sh"
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.4. The fizsh shell *syntastic-fizsh*
|
7.6. The fizsh shell *syntastic-fizsh*
|
||||||
|
|
||||||
Using syntastic with the "fizsh" shell (see https://github.com/zsh-users/fizsh)
|
Using syntastic with the "fizsh" shell (see https://github.com/zsh-users/fizsh)
|
||||||
is possible, but potentially problematic. In order to do it you'll need to set
|
is possible, but potentially problematic. In order to do it you'll need to set
|
||||||
|
@ -1032,7 +1061,7 @@ interactive features of "fizsh". Using a more traditional shell such as "zsh",
|
||||||
let g:syntastic_shell = "/bin/sh"
|
let g:syntastic_shell = "/bin/sh"
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.5 flagship *syntastic-flagship*
|
7.7. flagship *syntastic-flagship*
|
||||||
|
|
||||||
The "flagship" Vim plugin (https://github.com/tpope/vim-flagship) has its
|
The "flagship" Vim plugin (https://github.com/tpope/vim-flagship) has its
|
||||||
own mechanism of showing flags on the |'statusline'|. To allow "flagship"
|
own mechanism of showing flags on the |'statusline'|. To allow "flagship"
|
||||||
|
@ -1042,7 +1071,7 @@ described in the |syntastic-statusline-flag| section above: >
|
||||||
autocmd User Flags call Hoist("window", "SyntasticStatuslineFlag")
|
autocmd User Flags call Hoist("window", "SyntasticStatuslineFlag")
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.6. powerline *syntastic-powerline*
|
7.8. powerline *syntastic-powerline*
|
||||||
|
|
||||||
The "powerline" Vim plugin (https://github.com/powerline/powerline) comes
|
The "powerline" Vim plugin (https://github.com/powerline/powerline) comes
|
||||||
packaged with a syntastic segment. To customize this segment create a file
|
packaged with a syntastic segment. To customize this segment create a file
|
||||||
|
@ -1059,16 +1088,18 @@ packaged with a syntastic segment. To customize this segment create a file
|
||||||
}
|
}
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.7. The PowerShell shell *syntastic-powershell*
|
7.9. The PowerShell shell *syntastic-powershell*
|
||||||
|
|
||||||
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
|
||||||
PowerShell" (http://technet.microsoft.com/en-us/library/bb978526.aspx) as Vim's
|
"PowerShell" (https://msdn.microsoft.com/en-us/powershell) as Vim's 'shell'.
|
||||||
'shell'. You may still run Vim from 'PowerShell', but you do have to point
|
You may still run Vim from "PowerShell", but you do have to point Vim's
|
||||||
Vim's 'shell' to a more traditional program, such as "cmd.exe": >
|
'shell' to a more traditional program, such as "cmd.exe" on Windows, or
|
||||||
set shell=cmd.exe
|
"/bin/sh" on UNIX: >
|
||||||
|
set shell=c:\Windows\system32\cmd.exe
|
||||||
|
set shell=/bin/sh
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.8 python-mode *syntastic-pymode*
|
7.10. python-mode *syntastic-pymode*
|
||||||
|
|
||||||
Syntastic can be used along with the "python-mode" Vim plugin (see
|
Syntastic can be used along with the "python-mode" Vim plugin (see
|
||||||
https://github.com/klen/python-mode). However, they both run syntax checks by
|
https://github.com/klen/python-mode). However, they both run syntax checks by
|
||||||
|
@ -1079,14 +1110,14 @@ for python in syntastic (see |'syntastic_mode_map'|), or disable lint checks in
|
||||||
let g:pymode_lint_on_write = 0
|
let g:pymode_lint_on_write = 0
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.9. vim-auto-save *syntastic-vim-auto-save*
|
7.11. 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.12. 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
|
||||||
|
@ -1103,7 +1134,7 @@ stick with |quickfix| lists: >
|
||||||
let g:go_list_type = "quickfix"
|
let g:go_list_type = "quickfix"
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.11. vim-virtualenv *syntastic-vim-virtualenv*
|
7.13. vim-virtualenv *syntastic-vim-virtualenv*
|
||||||
|
|
||||||
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
|
||||||
|
@ -1111,7 +1142,7 @@ https://github.com/jmcantrell/vim-virtualenv). This is a limitation of
|
||||||
"vim-virtualenv".
|
"vim-virtualenv".
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.12 YouCompleteMe *syntastic-ycm*
|
7.14. 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"
|
||||||
|
@ -1122,7 +1153,7 @@ 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
|
||||||
<
|
<
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
7.13 The zsh shell and MacVim *syntastic-zsh*
|
7.15. The zsh shell and MacVim *syntastic-zsh*
|
||||||
|
|
||||||
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
|
||||||
|
|
|
@ -19,7 +19,7 @@ if has('reltime')
|
||||||
lockvar! g:_SYNTASTIC_START
|
lockvar! g:_SYNTASTIC_START
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let g:_SYNTASTIC_VERSION = '3.7.0-193'
|
let g:_SYNTASTIC_VERSION = '3.7.0-226'
|
||||||
lockvar g:_SYNTASTIC_VERSION
|
lockvar g:_SYNTASTIC_VERSION
|
||||||
|
|
||||||
" Sanity checks {{{1
|
" Sanity checks {{{1
|
||||||
|
@ -132,13 +132,19 @@ let s:_DEBUG_DUMP_OPTIONS = [
|
||||||
\ 'shellpipe',
|
\ 'shellpipe',
|
||||||
\ 'shellquote',
|
\ 'shellquote',
|
||||||
\ 'shellredir',
|
\ 'shellredir',
|
||||||
\ 'shellslash',
|
|
||||||
\ 'shelltemp',
|
\ 'shelltemp',
|
||||||
\ 'shellxquote'
|
\ 'shellxquote'
|
||||||
\ ]
|
\ ]
|
||||||
if exists('+shellxescape')
|
for s:feature in [
|
||||||
call add(s:_DEBUG_DUMP_OPTIONS, 'shellxescape')
|
\ 'shellxescape',
|
||||||
|
\ 'shellslash',
|
||||||
|
\ 'autochdir',
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
if exists('+' . s:feature)
|
||||||
|
call add(s:_DEBUG_DUMP_OPTIONS, s:feature)
|
||||||
endif
|
endif
|
||||||
|
endfor
|
||||||
lockvar! s:_DEBUG_DUMP_OPTIONS
|
lockvar! s:_DEBUG_DUMP_OPTIONS
|
||||||
|
|
||||||
" debug constants
|
" debug constants
|
||||||
|
@ -163,6 +169,7 @@ let s:registry = g:SyntasticRegistry.Instance()
|
||||||
let s:notifiers = g:SyntasticNotifiers.Instance()
|
let s:notifiers = g:SyntasticNotifiers.Instance()
|
||||||
let s:modemap = g:SyntasticModeMap.Instance()
|
let s:modemap = g:SyntasticModeMap.Instance()
|
||||||
|
|
||||||
|
let s:_check_stack = []
|
||||||
let s:_quit_pre = []
|
let s:_quit_pre = []
|
||||||
|
|
||||||
" Commands {{{1
|
" Commands {{{1
|
||||||
|
@ -207,7 +214,7 @@ command! SyntasticJavacEditConfig runtime! syntax_checkers/java/*.vim | Synta
|
||||||
" Public API {{{1
|
" Public API {{{1
|
||||||
|
|
||||||
function! SyntasticCheck(...) abort " {{{2
|
function! SyntasticCheck(...) abort " {{{2
|
||||||
call s:UpdateErrors(0, a:000)
|
call s:UpdateErrors(bufnr(''), 0, a:000)
|
||||||
call syntastic#util#redraw(g:syntastic_full_redraws)
|
call syntastic#util#redraw(g:syntastic_full_redraws)
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
|
@ -215,6 +222,8 @@ function! SyntasticInfo(...) abort " {{{2
|
||||||
call s:modemap.modeInfo(a:000)
|
call s:modemap.modeInfo(a:000)
|
||||||
call s:registry.echoInfoFor(s:_resolve_filetypes(a:000))
|
call s:registry.echoInfoFor(s:_resolve_filetypes(a:000))
|
||||||
call s:_explain_skip(a:000)
|
call s:_explain_skip(a:000)
|
||||||
|
call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS)
|
||||||
|
call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! SyntasticErrors() abort " {{{2
|
function! SyntasticErrors() abort " {{{2
|
||||||
|
@ -222,19 +231,19 @@ function! SyntasticErrors() abort " {{{2
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! SyntasticReset() abort " {{{2
|
function! SyntasticReset() abort " {{{2
|
||||||
call s:ClearCache()
|
call s:ClearCache(bufnr(''))
|
||||||
call s:notifiers.refresh(g:SyntasticLoclist.New([]))
|
call s:notifiers.refresh(g:SyntasticLoclist.New([]))
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! SyntasticToggleMode() abort " {{{2
|
function! SyntasticToggleMode() abort " {{{2
|
||||||
call s:modemap.toggleMode()
|
call s:modemap.toggleMode()
|
||||||
call s:ClearCache()
|
call s:ClearCache(bufnr(''))
|
||||||
call s:notifiers.refresh(g:SyntasticLoclist.New([]))
|
call s:notifiers.refresh(g:SyntasticLoclist.New([]))
|
||||||
call s:modemap.echoMode()
|
call s:modemap.echoMode()
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! SyntasticSetLoclist() abort " {{{2
|
function! SyntasticSetLoclist() abort " {{{2
|
||||||
call g:SyntasticLoclist.current().setloclist()
|
call g:SyntasticLoclist.current().setloclist(0)
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
" }}}1
|
" }}}1
|
||||||
|
@ -243,54 +252,68 @@ endfunction " }}}2
|
||||||
|
|
||||||
augroup syntastic
|
augroup syntastic
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd BufEnter * call s:BufEnterHook()
|
autocmd VimEnter * call s:VimEnterHook()
|
||||||
|
autocmd BufEnter * call s:BufEnterHook(expand('<afile>', 1))
|
||||||
|
autocmd BufWinEnter * call s:BufWinEnterHook(expand('<afile>', 1))
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
if g:syntastic_nested_autocommands
|
if g:syntastic_nested_autocommands
|
||||||
augroup syntastic
|
augroup syntastic
|
||||||
autocmd BufReadPost * nested call s:BufReadPostHook()
|
autocmd BufReadPost * nested call s:BufReadPostHook(expand('<afile>', 1))
|
||||||
autocmd BufWritePost * nested call s:BufWritePostHook()
|
autocmd BufWritePost * nested call s:BufWritePostHook(expand('<afile>', 1))
|
||||||
augroup END
|
augroup END
|
||||||
else
|
else
|
||||||
augroup syntastic
|
augroup syntastic
|
||||||
autocmd BufReadPost * call s:BufReadPostHook()
|
autocmd BufReadPost * call s:BufReadPostHook(expand('<afile>', 1))
|
||||||
autocmd BufWritePost * call s:BufWritePostHook()
|
autocmd BufWritePost * call s:BufWritePostHook(expand('<afile>', 1))
|
||||||
augroup END
|
augroup END
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('##QuitPre')
|
if exists('##QuitPre')
|
||||||
" QuitPre was added in Vim 7.3.544
|
" QuitPre was added in Vim 7.3.544
|
||||||
augroup syntastic
|
augroup syntastic
|
||||||
autocmd QuitPre * call s:QuitPreHook(expand('<amatch>', 1))
|
autocmd QuitPre * call s:QuitPreHook(expand('<afile>', 1))
|
||||||
augroup END
|
augroup END
|
||||||
endif
|
endif
|
||||||
|
|
||||||
function! s:BufReadPostHook() abort " {{{2
|
function! s:BufReadPostHook(fname) abort " {{{2
|
||||||
if g:syntastic_check_on_open
|
let buf = syntastic#util#fname2buf(a:fname)
|
||||||
|
if g:syntastic_check_on_open && buf > 0
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
||||||
\ 'autocmd: BufReadPost, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))))
|
\ 'autocmd: BufReadPost, buffer ' . buf . ' = ' . string(a:fname))
|
||||||
call s:UpdateErrors(1, [])
|
if index(s:_check_stack, buf) == -1
|
||||||
|
call add(s:_check_stack, buf)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! s:BufWritePostHook() abort " {{{2
|
function! s:BufWritePostHook(fname) abort " {{{2
|
||||||
|
let buf = syntastic#util#fname2buf(a:fname)
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
||||||
\ 'autocmd: BufWritePost, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))))
|
\ 'autocmd: BufWritePost, buffer ' . buf . ' = ' . string(a:fname))
|
||||||
call s:UpdateErrors(1, [])
|
call s:UpdateErrors(buf, 1, [])
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! s:BufEnterHook() abort " {{{2
|
function! s:BufEnterHook(fname) abort " {{{2
|
||||||
|
let buf = syntastic#util#fname2buf(a:fname)
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
||||||
\ 'autocmd: BufEnter, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))) .
|
\ 'autocmd: BufEnter, buffer ' . buf . ' = ' . string(a:fname) . ', &buftype = ' . string(&buftype))
|
||||||
\ ', &buftype = ' . string(&buftype))
|
if buf > 0 && getbufvar(buf, '&buftype') ==# ''
|
||||||
if &buftype ==# ''
|
let idx = index(reverse(copy(s:_check_stack)), buf)
|
||||||
|
if idx >= 0
|
||||||
|
if !has('vim_starting')
|
||||||
|
call remove(s:_check_stack, -idx - 1)
|
||||||
|
call s:UpdateErrors(buf, 1, [])
|
||||||
|
endif
|
||||||
|
elseif &buftype ==# ''
|
||||||
call s:notifiers.refresh(g:SyntasticLoclist.current())
|
call s:notifiers.refresh(g:SyntasticLoclist.current())
|
||||||
|
endif
|
||||||
elseif &buftype ==# 'quickfix'
|
elseif &buftype ==# 'quickfix'
|
||||||
" TODO: this is needed because in recent versions of Vim lclose
|
" TODO: this is needed because in recent versions of Vim lclose
|
||||||
" can no longer be called from BufWinLeave
|
" can no longer be called from BufWinLeave
|
||||||
" TODO: at this point there is no b:syntastic_loclist
|
" TODO: at this point there is no b:syntastic_loclist
|
||||||
let loclist = filter(copy(getloclist(0)), 'v:val["valid"] == 1')
|
let loclist = filter(copy(getloclist(0)), 'v:val["valid"] == 1')
|
||||||
let owner = str2nr(getbufvar(bufnr(''), 'syntastic_owner_buffer'))
|
let owner = str2nr(getbufvar(buf, 'syntastic_owner_buffer'))
|
||||||
let buffers = syntastic#util#unique(map(loclist, 'v:val["bufnr"]') + (owner ? [owner] : []))
|
let buffers = syntastic#util#unique(map(loclist, 'v:val["bufnr"]') + (owner ? [owner] : []))
|
||||||
if !empty(get(w:, 'syntastic_loclist_set', [])) && !empty(loclist) && empty(filter( buffers, 'syntastic#util#bufIsActive(v:val)' ))
|
if !empty(get(w:, 'syntastic_loclist_set', [])) && !empty(loclist) && empty(filter( buffers, 'syntastic#util#bufIsActive(v:val)' ))
|
||||||
call SyntasticLoclistHide()
|
call SyntasticLoclistHide()
|
||||||
|
@ -298,8 +321,39 @@ function! s:BufEnterHook() abort " {{{2
|
||||||
endif
|
endif
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
|
function! s:BufWinEnterHook(fname) abort " {{{2
|
||||||
|
let buf = syntastic#util#fname2buf(a:fname)
|
||||||
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
||||||
|
\ 'autocmd: BufWinEnter, buffer ' . buf . ' = ' . string(a:fname) . ', &buftype = ' . string(&buftype))
|
||||||
|
if buf > 0 && getbufvar(buf, '&buftype') ==# ''
|
||||||
|
let idx = index(reverse(copy(s:_check_stack)), buf)
|
||||||
|
if idx >= 0 && !has('vim_starting')
|
||||||
|
call remove(s:_check_stack, -idx - 1)
|
||||||
|
call s:UpdateErrors(buf, 1, [])
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction " }}}2
|
||||||
|
|
||||||
|
function! s:VimEnterHook() abort " {{{2
|
||||||
|
let g:syntastic_version =
|
||||||
|
\ g:_SYNTASTIC_VERSION .
|
||||||
|
\ ' (Vim ' . v:version . (has('nvim') ? ', Neovim' : '') . ', ' .
|
||||||
|
\ g:_SYNTASTIC_UNAME .
|
||||||
|
\ (has('gui') ? ', GUI' : '') . ')'
|
||||||
|
lockvar g:syntastic_version
|
||||||
|
|
||||||
|
let buf = bufnr('')
|
||||||
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
|
||||||
|
\ 'autocmd: VimEnter, buffer ' . buf . ' = ' . string(bufname(buf)) . ', &buftype = ' . string(&buftype))
|
||||||
|
let idx = index(reverse(copy(s:_check_stack)), buf)
|
||||||
|
if idx >= 0 && getbufvar(buf, '&buftype') ==# ''
|
||||||
|
call remove(s:_check_stack, -idx - 1)
|
||||||
|
call s:UpdateErrors(buf, 1, [])
|
||||||
|
endif
|
||||||
|
endfunction " }}}2
|
||||||
|
|
||||||
function! s:QuitPreHook(fname) abort " {{{2
|
function! s:QuitPreHook(fname) abort " {{{2
|
||||||
let buf = bufnr(fnameescape(a:fname))
|
let buf = syntastic#util#fname2buf(a:fname)
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, 'autocmd: QuitPre, buffer ' . buf . ' = ' . string(a:fname))
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, 'autocmd: QuitPre, buffer ' . buf . ' = ' . string(a:fname))
|
||||||
|
|
||||||
if !syntastic#util#var('check_on_wq')
|
if !syntastic#util#var('check_on_wq')
|
||||||
|
@ -317,7 +371,7 @@ endfunction " }}}2
|
||||||
" Main {{{1
|
" Main {{{1
|
||||||
|
|
||||||
"refresh and redraw all the error info for this buf when saving or reading
|
"refresh and redraw all the error info for this buf when saving or reading
|
||||||
function! s:UpdateErrors(auto_invoked, checker_names) abort " {{{2
|
function! s:UpdateErrors(buf, auto_invoked, checker_names) abort " {{{2
|
||||||
call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version')
|
call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version')
|
||||||
call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS)
|
call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS)
|
||||||
call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)
|
call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)
|
||||||
|
@ -326,21 +380,21 @@ function! s:UpdateErrors(auto_invoked, checker_names) abort " {{{2
|
||||||
|
|
||||||
call s:modemap.synch()
|
call s:modemap.synch()
|
||||||
|
|
||||||
if s:_skip_file()
|
if s:_skip_file(a:buf)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let run_checks = !a:auto_invoked || s:modemap.doAutoChecking()
|
let run_checks = !a:auto_invoked || s:modemap.doAutoChecking()
|
||||||
if run_checks
|
if run_checks
|
||||||
call s:CacheErrors(a:checker_names)
|
call s:CacheErrors(a:buf, a:checker_names)
|
||||||
call syntastic#util#setChangedtick()
|
call syntastic#util#setLastTick(a:buf)
|
||||||
else
|
else
|
||||||
if a:auto_invoked
|
if a:auto_invoked
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let loclist = g:SyntasticLoclist.current()
|
let loclist = g:SyntasticLoclist.current(a:buf)
|
||||||
|
|
||||||
if exists('*SyntasticCheckHook')
|
if exists('*SyntasticCheckHook')
|
||||||
call SyntasticCheckHook(loclist.getRaw())
|
call SyntasticCheckHook(loclist.getRaw())
|
||||||
|
@ -356,14 +410,8 @@ function! s:UpdateErrors(auto_invoked, checker_names) abort " {{{2
|
||||||
let do_jump = 0
|
let do_jump = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let w:syntastic_loclist_set = []
|
|
||||||
if syntastic#util#var('always_populate_loc_list') || do_jump
|
if syntastic#util#var('always_populate_loc_list') || do_jump
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist (new)')
|
call loclist.setloclist(1)
|
||||||
call setloclist(0, loclist.getRaw())
|
|
||||||
if !exists('b:syntastic_changedtick')
|
|
||||||
call syntastic#util#setChangedtick()
|
|
||||||
endif
|
|
||||||
let w:syntastic_loclist_set = [bufnr(''), b:syntastic_changedtick]
|
|
||||||
if run_checks && do_jump && !loclist.isEmpty()
|
if run_checks && do_jump && !loclist.isEmpty()
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: jump')
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: jump')
|
||||||
execute 'silent! lrewind ' . do_jump
|
execute 'silent! lrewind ' . do_jump
|
||||||
|
@ -383,21 +431,24 @@ function! s:UpdateErrors(auto_invoked, checker_names) abort " {{{2
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
"clear the loc list for the buffer
|
"clear the loc list for the buffer
|
||||||
function! s:ClearCache() abort " {{{2
|
function! s:ClearCache(buf) abort " {{{2
|
||||||
call s:notifiers.reset(g:SyntasticLoclist.current())
|
let loclist = g:SyntasticLoclist.current(a:buf)
|
||||||
call b:syntastic_loclist.destroy()
|
call s:notifiers.reset(loclist)
|
||||||
|
call loclist.destroy()
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
"detect and cache all syntax errors in this buffer
|
"detect and cache all syntax errors in this buffer
|
||||||
function! s:CacheErrors(checker_names) abort " {{{2
|
function! s:CacheErrors(buf, checker_names) abort " {{{2
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' .
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' .
|
||||||
\ (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))
|
\ (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))
|
||||||
call s:ClearCache()
|
call s:ClearCache(a:buf)
|
||||||
let newLoclist = g:SyntasticLoclist.New([])
|
let newLoclist = g:SyntasticLoclist.New([])
|
||||||
|
call newLoclist.setOwner(a:buf)
|
||||||
|
|
||||||
if !s:_skip_file()
|
if !s:_skip_file(a:buf)
|
||||||
" debug logging {{{3
|
" debug logging {{{3
|
||||||
call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors')
|
call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors')
|
||||||
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TERM = ' . string($TERM))
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$PATH = ' . string($PATH))
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$PATH = ' . string($PATH))
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . string(getcwd()))
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . string(getcwd()))
|
||||||
" }}}3
|
" }}}3
|
||||||
|
@ -436,7 +487,7 @@ function! s:CacheErrors(checker_names) abort " {{{2
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', loclist)
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', loclist)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let newLoclist = newLoclist.extend(loclist)
|
call newLoclist.extend(loclist)
|
||||||
|
|
||||||
if !aggregate_errors
|
if !aggregate_errors
|
||||||
break
|
break
|
||||||
|
@ -556,7 +607,7 @@ function! SyntasticMake(options) abort " {{{2
|
||||||
let err_lines = call('syntastic#preprocess#' . a:options['preprocess'], [err_lines])
|
let err_lines = call('syntastic#preprocess#' . a:options['preprocess'], [err_lines])
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess:', err_lines)
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess:', err_lines)
|
||||||
endif
|
endif
|
||||||
lgetexpr err_lines
|
noautocmd lgetexpr err_lines
|
||||||
|
|
||||||
let errors = deepcopy(getloclist(0))
|
let errors = deepcopy(getloclist(0))
|
||||||
|
|
||||||
|
@ -569,6 +620,12 @@ function! SyntasticMake(options) abort " {{{2
|
||||||
catch /\m^Vim\%((\a\+)\)\=:E380/
|
catch /\m^Vim\%((\a\+)\)\=:E380/
|
||||||
" E380: At bottom of quickfix stack
|
" E380: At bottom of quickfix stack
|
||||||
call setloclist(0, [], 'r')
|
call setloclist(0, [], 'r')
|
||||||
|
try
|
||||||
|
" Vim 7.4.2200 or later
|
||||||
|
call setloclist(0, [], 'r', { 'title': '' })
|
||||||
|
catch /\m^Vim\%((\a\+)\)\=:E\%(118\|731\)/
|
||||||
|
" do nothing
|
||||||
|
endtry
|
||||||
catch /\m^Vim\%((\a\+)\)\=:E776/
|
catch /\m^Vim\%((\a\+)\)\=:E776/
|
||||||
" E776: No location list
|
" E776: No location list
|
||||||
" do nothing
|
" do nothing
|
||||||
|
@ -660,10 +717,10 @@ function! s:_is_quitting(buf) abort " {{{2
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
" Skip running in special buffers
|
" Skip running in special buffers
|
||||||
function! s:_skip_file() abort " {{{2
|
function! s:_skip_file(buf) abort " {{{2
|
||||||
let fname = expand('%', 1)
|
let fname = bufname(a:buf)
|
||||||
let skip = s:_is_quitting(bufnr('%')) || get(b:, 'syntastic_skip_checks', 0) ||
|
let skip = s:_is_quitting(a:buf) || getbufvar(a:buf, 'syntastic_skip_checks') ||
|
||||||
\ (&buftype !=# '') || !filereadable(fname) || getwinvar(0, '&diff') ||
|
\ (getbufvar(a:buf, '&buftype') !=# '') || !filereadable(fname) || getwinvar(0, '&diff') ||
|
||||||
\ getwinvar(0, '&previewwindow') || s:_ignore_file(fname) ||
|
\ getwinvar(0, '&previewwindow') || s:_ignore_file(fname) ||
|
||||||
\ fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions
|
\ fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions
|
||||||
if skip
|
if skip
|
||||||
|
@ -674,17 +731,19 @@ endfunction " }}}2
|
||||||
|
|
||||||
" Explain why checks will be skipped for the current file
|
" Explain why checks will be skipped for the current file
|
||||||
function! s:_explain_skip(filetypes) abort " {{{2
|
function! s:_explain_skip(filetypes) abort " {{{2
|
||||||
if empty(a:filetypes) && s:_skip_file()
|
let buf = bufnr('')
|
||||||
|
if empty(a:filetypes) && s:_skip_file(buf)
|
||||||
let why = []
|
let why = []
|
||||||
let fname = expand('%', 1)
|
let fname = bufname(buf)
|
||||||
|
let bt = getbufvar(buf, '&buftype')
|
||||||
|
|
||||||
if s:_is_quitting(bufnr('%'))
|
if s:_is_quitting(buf)
|
||||||
call add(why, 'quitting buffer')
|
call add(why, 'quitting buffer')
|
||||||
endif
|
endif
|
||||||
if get(b:, 'syntastic_skip_checks', 0)
|
if getbufvar(buf, 'syntastic_skip_checks')
|
||||||
call add(why, 'b:syntastic_skip_checks set')
|
call add(why, 'b:syntastic_skip_checks set')
|
||||||
endif
|
endif
|
||||||
if &buftype !=# ''
|
if bt !=# ''
|
||||||
call add(why, 'buftype = ' . string(&buftype))
|
call add(why, 'buftype = ' . string(&buftype))
|
||||||
endif
|
endif
|
||||||
if !filereadable(fname)
|
if !filereadable(fname)
|
||||||
|
|
|
@ -25,10 +25,27 @@ function! g:SyntasticAutoloclistNotifier.AutoToggle(loclist) abort " {{{2
|
||||||
call a:loclist.show()
|
call a:loclist.show()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if auto_loc_list == 1 || auto_loc_list == 2
|
if (auto_loc_list == 1 || auto_loc_list == 2) && !empty(get(w:, 'syntastic_loclist_set', []))
|
||||||
"TODO: this will close the loc list window if one was opened by
|
try
|
||||||
"something other than syntastic
|
" Vim 7.4.2200 or later
|
||||||
lclose
|
let title = get(getloclist(0, { 'title': 1 }), 'title', ':SyntasticCheck ')
|
||||||
|
catch /\m^Vim\%((\a\+)\)\=:E\%(118\|731\)/
|
||||||
|
let title = ':SyntasticCheck '
|
||||||
|
endtry
|
||||||
|
|
||||||
|
if strpart(title, 0, 16) ==# ':SyntasticCheck '
|
||||||
|
" TODO: this will close the loc list window if one was opened
|
||||||
|
" by something other than syntastic
|
||||||
|
call SyntasticLoclistHide()
|
||||||
|
|
||||||
|
try
|
||||||
|
" Vim 7.4.2200 or later
|
||||||
|
call setloclist(0, [], 'r', { 'title': '' })
|
||||||
|
catch /\m^Vim\%((\a\+)\)\=:E\%(118\|731\)/
|
||||||
|
" do nothing
|
||||||
|
endtry
|
||||||
|
let w:syntastic_loclist_set = []
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
|
@ -27,17 +27,18 @@ function! g:SyntasticLoclist.New(rawLoclist) abort " {{{2
|
||||||
return newObj
|
return newObj
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticLoclist.current() abort " {{{2
|
function! g:SyntasticLoclist.current(...) abort " {{{2
|
||||||
if !exists('b:syntastic_loclist') || empty(b:syntastic_loclist)
|
let buf = a:0 > 1 ? a:1 : bufnr('')
|
||||||
let b:syntastic_loclist = g:SyntasticLoclist.New([])
|
let loclist = getbufvar(buf, 'syntastic_loclist')
|
||||||
|
if type(loclist) != type({}) || empty(loclist)
|
||||||
|
unlet! loclist
|
||||||
|
let loclist = g:SyntasticLoclist.New([])
|
||||||
endif
|
endif
|
||||||
return b:syntastic_loclist
|
return loclist
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticLoclist.extend(other) abort " {{{2
|
function! g:SyntasticLoclist.extend(other) abort " {{{2
|
||||||
let list = self.copyRaw()
|
call extend(self._rawLoclist, a:other.copyRaw())
|
||||||
call extend(list, a:other.copyRaw())
|
|
||||||
return g:SyntasticLoclist.New(list)
|
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticLoclist.sort() abort " {{{2
|
function! g:SyntasticLoclist.sort() abort " {{{2
|
||||||
|
@ -167,7 +168,6 @@ function! g:SyntasticLoclist.setOwner(buffer) abort " {{{2
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticLoclist.deploy() abort " {{{2
|
function! g:SyntasticLoclist.deploy() abort " {{{2
|
||||||
call self.setOwner(bufnr(''))
|
|
||||||
let self._stamp = syntastic#util#stamp()
|
let self._stamp = syntastic#util#stamp()
|
||||||
for buf in self.getBuffers()
|
for buf in self.getBuffers()
|
||||||
call setbufvar(buf, 'syntastic_loclist', self)
|
call setbufvar(buf, 'syntastic_loclist', self)
|
||||||
|
@ -289,23 +289,29 @@ function! g:SyntasticLoclist.filter(filters) abort " {{{2
|
||||||
return filter(copy(self._rawLoclist), filter)
|
return filter(copy(self._rawLoclist), filter)
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticLoclist.setloclist() abort " {{{2
|
function! g:SyntasticLoclist.setloclist(new) abort " {{{2
|
||||||
if !exists('w:syntastic_loclist_set')
|
if !exists('w:syntastic_loclist_set')
|
||||||
let w:syntastic_loclist_set = []
|
let w:syntastic_loclist_set = []
|
||||||
endif
|
endif
|
||||||
if empty(w:syntastic_loclist_set) || w:syntastic_loclist_set != [bufnr(''), b:changedtick]
|
if a:new || empty(w:syntastic_loclist_set) || w:syntastic_loclist_set != [self._owner, getbufvar(self._owner, 'changedtick')]
|
||||||
let replace = g:syntastic_reuse_loc_lists && !empty(w:syntastic_loclist_set)
|
let replace = !a:new && g:syntastic_reuse_loc_lists && !empty(w:syntastic_loclist_set)
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist ' . (replace ? '(replace)' : '(new)'))
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist ' . (replace ? '(replace)' : '(new)'))
|
||||||
call setloclist(0, self.getRaw(), replace ? 'r' : ' ')
|
call setloclist(0, self.getRaw(), replace ? 'r' : ' ')
|
||||||
call syntastic#util#setChangedtick()
|
try
|
||||||
let w:syntastic_loclist_set = [bufnr(''), b:syntastic_changedtick]
|
" Vim 7.4.2200 or later
|
||||||
|
call setloclist(0, [], 'r', { 'title': ':SyntasticCheck ' . self._name })
|
||||||
|
catch /\m^Vim\%((\a\+)\)\=:E\%(118\|731\)/
|
||||||
|
" do nothing
|
||||||
|
endtry
|
||||||
|
call syntastic#util#setLastTick(self._owner)
|
||||||
|
let w:syntastic_loclist_set = [self._owner, getbufvar(self._owner, 'syntastic_lasttick')]
|
||||||
endif
|
endif
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
"display the cached errors for this buf in the location list
|
"display the cached errors for this buf in the location list
|
||||||
function! g:SyntasticLoclist.show() abort " {{{2
|
function! g:SyntasticLoclist.show() abort " {{{2
|
||||||
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: show')
|
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: show')
|
||||||
call self.setloclist()
|
call self.setloclist(0)
|
||||||
|
|
||||||
if !self.isEmpty()
|
if !self.isEmpty()
|
||||||
let num = winnr()
|
let num = winnr()
|
||||||
|
|
|
@ -72,7 +72,7 @@ function! g:SyntasticModeMap.echoMode() abort " {{{2
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticModeMap.modeInfo(filetypes) abort " {{{2
|
function! g:SyntasticModeMap.modeInfo(filetypes) abort " {{{2
|
||||||
echomsg 'Syntastic version: ' . g:_SYNTASTIC_VERSION . ' (Vim ' . v:version . ', ' . g:_SYNTASTIC_UNAME . ')'
|
echomsg 'Syntastic version: ' . g:syntastic_version
|
||||||
let type = len(a:filetypes) ? a:filetypes[0] : &filetype
|
let type = len(a:filetypes) ? a:filetypes[0] : &filetype
|
||||||
echomsg 'Info for filetype: ' . type
|
echomsg 'Info for filetype: ' . type
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ function! g:SyntasticNotifiers.Instance() abort " {{{2
|
||||||
endfunction " }}}2
|
endfunction " }}}2
|
||||||
|
|
||||||
function! g:SyntasticNotifiers.refresh(loclist) abort " {{{2
|
function! g:SyntasticNotifiers.refresh(loclist) abort " {{{2
|
||||||
if !a:loclist.isEmpty() && !a:loclist.isNewerThan([])
|
if !syntastic#util#bufIsActive(bufnr('')) || (!a:loclist.isEmpty() && !a:loclist.isNewerThan([]))
|
||||||
" loclist not fully constructed yet
|
" loclist not fully constructed yet
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -339,7 +339,10 @@ endfunction " }}}2
|
||||||
|
|
||||||
" Check for obsolete variable g:syntastic_<filetype>_checker
|
" Check for obsolete variable g:syntastic_<filetype>_checker
|
||||||
function! g:SyntasticRegistry._checkDeprecation(filetype) abort " {{{2
|
function! g:SyntasticRegistry._checkDeprecation(filetype) abort " {{{2
|
||||||
if exists('g:syntastic_' . a:filetype . '_checker') && !exists('g:syntastic_' . a:filetype . '_checkers')
|
if exists('g:syntastic_' . a:filetype . '_checker') &&
|
||||||
|
\ !exists('g:syntastic_' . a:filetype . '_checkers') &&
|
||||||
|
\ type(g:syntastic_{a:filetype}_checker) == type('')
|
||||||
|
|
||||||
let g:syntastic_{a:filetype}_checkers = [g:syntastic_{a:filetype}_checker]
|
let g:syntastic_{a:filetype}_checkers = [g:syntastic_{a:filetype}_checker]
|
||||||
call syntastic#log#oneTimeWarn('variable g:syntastic_' . a:filetype . '_checker is deprecated')
|
call syntastic#log#oneTimeWarn('variable g:syntastic_' . a:filetype . '_checker is deprecated')
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -31,12 +31,12 @@ function! SyntaxCheckers_haskell_hdevtools_GetLocList() dict
|
||||||
|
|
||||||
let errorformat =
|
let errorformat =
|
||||||
\ '%-Z %#,'.
|
\ '%-Z %#,'.
|
||||||
\ '%W%f:%l:%v: Warning: %m,'.
|
\ '%W%\m%f:%l:%v%\%%(-%\d%\+%\)%\=: Warning: %m,'.
|
||||||
\ '%W%f:%l:%v: Warning:,'.
|
\ '%W%\m%f:%l:%v%\%%(-%\d%\+%\)%\=: Warning:,'.
|
||||||
\ '%E%f:%l:%v: %m,'.
|
\ '%E%\m%f:%l:%v%\%%(-%\d%\+%\)%\=: %m,'.
|
||||||
\ '%E%>%f:%l:%v:,'.
|
\ '%E%>%\m%f:%l:%v%\%%(-%\d%\+%\)%\=:,'.
|
||||||
\ '%+C %#%m,'.
|
\ '%+C %#%m,'.
|
||||||
\ '%W%>%f:%l:%v:,'.
|
\ '%W%>%\m%f:%l:%v%\%%(-%\d%\+%\)%\=:,'.
|
||||||
\ '%+C %#%tarning: %m,'
|
\ '%+C %#%tarning: %m,'
|
||||||
|
|
||||||
return SyntasticMake({
|
return SyntasticMake({
|
||||||
|
|
|
@ -25,7 +25,7 @@ function! SyntaxCheckers_javascript_flow_IsAvailable() dict
|
||||||
if !executable(self.getExec())
|
if !executable(self.getExec())
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 6])
|
return syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [0, 18, 1])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! SyntaxCheckers_javascript_flow_GetLocList() dict
|
function! SyntaxCheckers_javascript_flow_GetLocList() dict
|
||||||
|
|
|
@ -47,7 +47,7 @@ endfunction
|
||||||
function! SyntaxCheckers_lua_luac_GetLocList() dict
|
function! SyntaxCheckers_lua_luac_GetLocList() dict
|
||||||
let makeprg = self.makeprgBuild({ 'args_after': '-p' })
|
let makeprg = self.makeprgBuild({ 'args_after': '-p' })
|
||||||
|
|
||||||
let errorformat = 'luac: %#%f:%l: %m'
|
let errorformat = '%*\f: %#%f:%l: %m'
|
||||||
|
|
||||||
return SyntasticMake({
|
return SyntasticMake({
|
||||||
\ 'makeprg': makeprg,
|
\ 'makeprg': makeprg,
|
||||||
|
|
|
@ -32,7 +32,7 @@ hi def link coffeeConditional Conditional
|
||||||
syn match coffeeException /\<\%(try\|catch\|finally\)\>/ display
|
syn match coffeeException /\<\%(try\|catch\|finally\)\>/ display
|
||||||
hi def link coffeeException Exception
|
hi def link coffeeException Exception
|
||||||
|
|
||||||
syn match coffeeKeyword /\<\%(new\|in\|of\|by\|and\|or\|not\|is\|isnt\|class\|extends\|super\|do\|yield\|debugger\)\>/
|
syn match coffeeKeyword /\<\%(new\|in\|of\|by\|and\|or\|not\|is\|isnt\|class\|extends\|super\|do\|yield\|debugger\|import\|export\)\>/
|
||||||
\ display
|
\ display
|
||||||
" The `own` keyword is only a keyword after `for`.
|
" The `own` keyword is only a keyword after `for`.
|
||||||
syn match coffeeKeyword /\<for\s\+own\>/ contained containedin=coffeeRepeat
|
syn match coffeeKeyword /\<for\s\+own\>/ contained containedin=coffeeRepeat
|
||||||
|
@ -107,7 +107,7 @@ hi def link coffeeFloat Float
|
||||||
|
|
||||||
" An error for reserved keywords, taken from the RESERVED array:
|
" An error for reserved keywords, taken from the RESERVED array:
|
||||||
" http://coffeescript.org/documentation/docs/lexer.html#section-67
|
" http://coffeescript.org/documentation/docs/lexer.html#section-67
|
||||||
syn match coffeeReservedError /\<\%(case\|default\|function\|var\|void\|with\|const\|let\|enum\|export\|import\|native\|__hasProp\|__extends\|__slice\|__bind\|__indexOf\|implements\|interface\|package\|private\|protected\|public\|static\)\>/
|
syn match coffeeReservedError /\<\%(case\|default\|function\|var\|void\|with\|const\|let\|enum\|native\|implements\|interface\|package\|private\|protected\|public\|static\)\>/
|
||||||
\ display
|
\ display
|
||||||
hi def link coffeeReservedError Error
|
hi def link coffeeReservedError Error
|
||||||
|
|
||||||
|
|
1
sources_non_forked/vim-go/.gitignore
vendored
1
sources_non_forked/vim-go/.gitignore
vendored
|
@ -1 +1,2 @@
|
||||||
doc/tags
|
doc/tags
|
||||||
|
.DS_Store
|
||||||
|
|
|
@ -1,13 +1,26 @@
|
||||||
## Unplanned
|
## Unplanned
|
||||||
|
|
||||||
|
* We have now a [logo for vim-go](https://github.com/fatih/vim-go/blob/master/assets/vim-go.png)! Thanks to @egonelbre for his work on this.
|
||||||
|
|
||||||
|
BUG FIXES:
|
||||||
|
|
||||||
|
* Change back nil and iota highlighting color to the old type [gh-1049]
|
||||||
|
* Fix passing arguments to `:GoBuild` while using NeoVim [gh-1062]
|
||||||
|
|
||||||
|
## 1.9 (September 13, 2016)
|
||||||
|
|
||||||
IMPROVEMENTS:
|
IMPROVEMENTS:
|
||||||
|
|
||||||
* **guru** uses now the `-modified` flag, which allows us use guru on modified
|
* **guru** uses now the `-modified` flag, which allows us use guru on modified
|
||||||
buffers as well. This affects all commands where `guru` is used. Such as
|
buffers as well. This affects all commands where `guru` is used. Such as
|
||||||
`:GoDef`, `:GoReferrers`, etc.. [gh-944]
|
`:GoDef`, `:GoReferrers`, etc.. [gh-944]
|
||||||
|
* **:GoDoc** uses now the `-modified` flag under the hood (for `gogetdoc), which allows us to get documentation for the identifier under the cursor ina modified buffer. [gh-1014]
|
||||||
* Cleanup and improve documentation [gh-987]
|
* Cleanup and improve documentation [gh-987]
|
||||||
* Add new `g:go_gocode_socket_type` setting to change the underlying socket type passed to `gocode`. Usefull to fallback to `tcp` on cases such as Bash on Windows [gh-1000]
|
* Add new `g:go_gocode_socket_type` setting to change the underlying socket type passed to `gocode`. Usefull to fallback to `tcp` on cases such as Bash on Windows [gh-1000]
|
||||||
* `:GoSameIds` is now automatically re-evaluated in cases of buffer reloads (such as `:GoRename`) [gh-998]
|
* `:GoSameIds` is now automatically re-evaluated in cases of buffer reloads (such as `:GoRename`) [gh-998]
|
||||||
|
* Improve docs about `go_auto_sameids` [gh-1017]
|
||||||
|
* Improve error message by printing the full path if an incompatible `goimports` is being used [gh-1006]
|
||||||
|
* `iota` and `nil` are now highlighted correctly and are not treated as booleans [gh-1030]
|
||||||
|
|
||||||
BUG FIXES:
|
BUG FIXES:
|
||||||
|
|
||||||
|
@ -15,7 +28,15 @@ BUG FIXES:
|
||||||
* Fix :GoSameIds and :GoCoverage for light background and after changing color schemes [gh-983]
|
* Fix :GoSameIds and :GoCoverage for light background and after changing color schemes [gh-983]
|
||||||
* Fix TagBar and `GoCallers` for Windows user [gh-999]
|
* Fix TagBar and `GoCallers` for Windows user [gh-999]
|
||||||
* Set updatetime for for `auto_sameids` feature as well [gh-1016]
|
* Set updatetime for for `auto_sameids` feature as well [gh-1016]
|
||||||
|
* Update docs about missing `go_highlight_generate_tags` setting [gh-1023]
|
||||||
|
* Fix updating the jumplist if `:GoDef` is used [gh-1029]
|
||||||
|
* Fix highlighting literal percent sign (`%%`) in strings [gh-1011]
|
||||||
|
* Fix highlighting of nested fields [gh-1007]
|
||||||
|
* Fix checking for `exepath` feature for the upcoming vim 8.0 release [gh-1046]
|
||||||
|
|
||||||
|
BACKWARDS INCOMPATIBILITIES:
|
||||||
|
|
||||||
|
* Rename `GoMetalinterAutoSaveToggle` to `GoMetaLinterAutoSaveToggle` to make it compatible with the existing `:GoMetaLinter` command [gh-1020]
|
||||||
|
|
||||||
## 1.8 (July 31, 2016)
|
## 1.8 (July 31, 2016)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
# vim-go
|
# vim-go
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img style="float: right;" src="assets/vim-go.png" alt="Vim-go logo"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
Go (golang) support for Vim, which comes with pre-defined sensible settings (like
|
Go (golang) support for Vim, which comes with pre-defined sensible settings (like
|
||||||
auto gofmt on save), with autocomplete, snippet support, improved syntax
|
auto gofmt on save), with autocomplete, snippet support, improved syntax
|
||||||
highlighting, go toolchain commands, and more. If needed vim-go installs all
|
highlighting, go toolchain commands, and more. If needed vim-go installs all
|
||||||
|
@ -7,8 +11,6 @@ necessary binaries for providing seamless Vim integration with current
|
||||||
commands. It's highly customizable and each individual feature can be
|
commands. It's highly customizable and each individual feature can be
|
||||||
disabled/enabled easily.
|
disabled/enabled easily.
|
||||||
|
|
||||||
![vim-go](https://dl.dropboxusercontent.com/u/174404/vim-go-2.png)
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Improved Syntax highlighting with items such as Functions, Operators, Methods.
|
* Improved Syntax highlighting with items such as Functions, Operators, Methods.
|
||||||
|
|
BIN
sources_non_forked/vim-go/assets/screenshot.png
Normal file
BIN
sources_non_forked/vim-go/assets/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 747 KiB |
BIN
sources_non_forked/vim-go/assets/vim-go.png
Normal file
BIN
sources_non_forked/vim-go/assets/vim-go.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
821
sources_non_forked/vim-go/assets/vim-go.svg
Normal file
821
sources_non_forked/vim-go/assets/vim-go.svg
Normal file
|
@ -0,0 +1,821 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="173.53481mm"
|
||||||
|
height="147.26407mm"
|
||||||
|
viewBox="0 0 614.88711 521.80181"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="vim-go.svg"
|
||||||
|
style="enable-background:new"
|
||||||
|
inkscape:export-filename="F:\Go\src\github.com\egonelbre\vim-go\assets\vim-go.png"
|
||||||
|
inkscape:export-xdpi="46.84"
|
||||||
|
inkscape:export-ydpi="46.84">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<linearGradient
|
||||||
|
id="gopher-iris"
|
||||||
|
osb:paint="solid"
|
||||||
|
gradientTransform="translate(-9.2596241,38.869516)">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#394455;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4317" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="docker-iris"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#394d54;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4311" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="docker-jaw"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d4edf1;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4305" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="docker-eye"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4299" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="docker-line"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#394d54;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4293" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="docker-body"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#24b8eb;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4287" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="gopher-limbs"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#e1d6b9;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4269" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="gopher-nose"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#e1d0cb;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4263" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="gopher-body"
|
||||||
|
osb:paint="solid"
|
||||||
|
gradientTransform="matrix(-0.18574987,-0.98259706,0.98259706,-0.18574987,-1213.2665,1828.8814)">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#96d6ff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4334" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4253">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bce8ff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4194" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4182">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#2e3436;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4184" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="gopher-eye"
|
||||||
|
osb:paint="solid"
|
||||||
|
gradientTransform="translate(381.30424,802.02286)">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4178" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="gopher-lines"
|
||||||
|
osb:paint="solid"
|
||||||
|
gradientTransform="matrix(2.0620253,3.9293227,1.3839016,-0.24027903,2506.9621,8572.3972)">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#394655;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4166" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-lines"
|
||||||
|
id="linearGradient4168"
|
||||||
|
x1="776.14288"
|
||||||
|
y1="39.505058"
|
||||||
|
x2="822.42859"
|
||||||
|
y2="39.505058"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.92105265,0,0,0.92105265,79.548449,262.52483)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-eye"
|
||||||
|
id="linearGradient4180"
|
||||||
|
x1="776.14288"
|
||||||
|
y1="90.770309"
|
||||||
|
x2="822.42859"
|
||||||
|
y2="90.770309"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.92105266,0,0,0.92105266,124.54841,215.30684)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-body"
|
||||||
|
id="linearGradient4336"
|
||||||
|
x1="-628.69226"
|
||||||
|
y1="371.77307"
|
||||||
|
x2="-151.41731"
|
||||||
|
y2="371.77307"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-1,0,0,1,-681.83098,347.55492)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-nose"
|
||||||
|
id="linearGradient4265"
|
||||||
|
x1="198.05417"
|
||||||
|
y1="374.50043"
|
||||||
|
x2="263.28683"
|
||||||
|
y2="374.50043"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.65610141,0,0,0.65610141,185.97779,480.81383)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-limbs"
|
||||||
|
id="linearGradient4271"
|
||||||
|
x1="730.36273"
|
||||||
|
y1="373.60995"
|
||||||
|
x2="831.0592"
|
||||||
|
y2="373.60995"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.90381797,-0.29515654,-0.62039307,-0.90381797,-597.71307,820.3894)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-limbs"
|
||||||
|
id="linearGradient4273"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-0.54351115,-0.65417141,-1.0770811,0.54351115,655.01412,667.6722)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-limbs"
|
||||||
|
id="linearGradient4275"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-0.94401471,-0.3302474,-0.32955964,0.94401471,1151.0861,721.50542)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-limbs"
|
||||||
|
id="linearGradient4279"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.89463991,0.4064691,0.49110603,-0.89463991,-749.6705,579.40921)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-limbs"
|
||||||
|
id="linearGradient4281"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.49170605,0.377674,2.0076181,-0.49170605,229.12024,357.65841)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-iris"
|
||||||
|
id="linearGradient4319"
|
||||||
|
x1="427.26477"
|
||||||
|
y1="316.13431"
|
||||||
|
x2="488.88409"
|
||||||
|
y2="316.13431"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-1,0,0,1,744.54563,401.01143)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#gopher-iris"
|
||||||
|
id="linearGradient4321"
|
||||||
|
gradientTransform="matrix(5.6994379,2.2315229,-1.9072375,4.8711945,4487.6828,1182.8772)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.76274166"
|
||||||
|
inkscape:cx="499.78979"
|
||||||
|
inkscape:cy="92.336365"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer11"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1018"
|
||||||
|
inkscape:window-x="1912"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:snap-bbox="true"
|
||||||
|
inkscape:bbox-nodes="true"
|
||||||
|
inkscape:snap-global="false"
|
||||||
|
showguides="true"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid4305"
|
||||||
|
originx="-15.732723"
|
||||||
|
originy="-274.01154" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer11"
|
||||||
|
inkscape:label="background"
|
||||||
|
style="display:none"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d3e5de;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4347"
|
||||||
|
width="614.88708"
|
||||||
|
height="521.80182"
|
||||||
|
x="15.732722"
|
||||||
|
y="256.54886"
|
||||||
|
inkscape:export-filename="vim-go.png"
|
||||||
|
inkscape:export-xdpi="46.84"
|
||||||
|
inkscape:export-ydpi="46.84" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer6"
|
||||||
|
inkscape:label="shadow"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#2e4233;fill-opacity:0.10714285;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 287.3893,695.44531 c -50.0612,-2.78118 -62.1134,11.12305 -91.7793,11.12305 -29.6659,0 -47.28069,-6.48881 -76.01953,-1.85352 -28.738834,4.6353 -40.790093,3.70867 -55.623042,16.6875 -14.832949,12.97883 -21.926707,11.85327 -18.541016,20.39454 1.318705,3.32677 3.956373,1.53579 10.703125,0.83984 115.165183,-11.87969 237.050993,16.53486 337.406243,16.77539 83.20192,0.19942 110.33047,-21.09623 105.22253,-34.76541 -16.86616,-45.13499 -81.24683,-23.67849 -211.36901,-29.20139 z"
|
||||||
|
id="path4349"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="csssssssc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
inkscape:label="cape-back"
|
||||||
|
style="display:inline"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<path
|
||||||
|
style="fill:#0c7a31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 260.24444,535.87695 c -20.68496,5.13447 -3.94094,36.63825 -23.78246,45.53288 -18.22356,8.16932 -29.87743,27.29784 -48.21487,37.53094 -24.3143,13.56845 -47.25416,17.93122 -70.94376,35.71927 -11.54022,8.66532 -48.036929,3.46906 -49.132109,17.96915 56.226929,-8.73065 86.269619,15.95087 120.882979,20.57024 30.54605,4.07656 53.64011,2.39756 79.48357,-7.50413 89.71977,-34.37532 52.16171,-111.74704 51.81195,-135.28471 -17.69563,-3.28964 -42.98659,-18.78289 -60.1053,-14.53364 z"
|
||||||
|
id="path4321"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssscsscs" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer5"
|
||||||
|
inkscape:label="gopher-body"
|
||||||
|
style="display:inline;opacity:1"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<g
|
||||||
|
style="display:inline;opacity:1"
|
||||||
|
transform="matrix(-0.34823803,-0.28093567,-0.33018747,0.52325377,856.33627,409.62314)"
|
||||||
|
id="g4537">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4275);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 419.84023,584.57289 c -1.11092,4.23495 -3.11543,7.14238 -5.84936,9.02308 -2.73394,1.8807 -6.19236,2.76095 -10.13743,3.23943 -3.94504,0.47846 -8.37351,0.59759 -13.05363,0.66122 -4.6801,0.0636 -9.60653,0.0259 -14.5852,-0.15006 -4.97865,-0.17599 -9.67742,-0.66266 -13.94891,-1.44453 -4.27148,-0.78187 -8.12262,-1.83504 -11.28827,-3.15781 -3.16564,-1.32277 -5.63542,-2.92368 -7.07427,-4.89074 -1.43884,-1.96709 -1.83785,-4.30021 -0.94134,-7.07932 0.89648,-2.77911 2.64686,-4.65171 5.05838,-5.71202 2.41152,-1.06032 5.47772,-1.29847 8.97039,-1.04717 3.49268,0.25132 7.40119,0.98198 11.60615,1.60695 4.20496,0.62498 8.71575,1.10136 13.55734,0.95747 4.84159,-0.14387 9.82241,-1.20624 14.59946,-2.18657 4.77703,-0.9803 9.35663,-1.80521 13.2055,-1.76209 3.8489,0.0431 6.93814,0.92314 8.72484,2.84805 1.78673,1.92488 0.0493,13.32997 1.15633,9.09414 z"
|
||||||
|
id="path4539"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cssssssssssssssssc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 411.66722,570.50504 c -3.64483,-0.3204 -7.91192,0.0353 -12.44327,0.67313 -5.17866,0.72899 -10.69026,1.78243 -16.25596,1.96339 -5.56571,0.181 -10.75654,-0.27799 -15.6406,-0.87383 -4.8841,-0.59575 -9.46828,-1.26261 -13.59381,-1.35067 -4.12552,-0.0881 -7.77812,0.41271 -10.6665,1.77043 -2.88834,1.35772 -5.00621,3.55109 -6.11385,6.60546 -1.10762,3.05438 -0.68341,5.7953 0.96623,8.19507 1.64966,2.39979 4.51594,4.46252 8.19691,6.21125 3.681,1.74874 8.16283,3.1933 13.12136,4.28264 4.95854,1.08935 10.4013,1.79657 16.15733,2.05756 5.756,0.26106 11.2421,0.29972 16.33832,0.21929 5.09618,-0.0804 9.79866,-0.25121 13.94009,-0.87517 1.57579,-0.23741 3.06793,-0.55279 4.47088,-0.96129 2.8331,-0.82603 3.60613,-5.66983 1.06694,-4.35369 -2.35253,1.21937 -5.13009,1.88834 -8.23473,2.27934 -3.78352,0.47652 -8.03435,0.60519 -12.52976,0.67623 -4.49538,0.071 -9.22983,0.0403 -14.01368,-0.12137 -4.78387,-0.16172 -9.29761,-0.62006 -13.39935,-1.36274 -4.10176,-0.74271 -7.79879,-1.74643 -10.8363,-3.01023 -3.03748,-1.2638 -5.40588,-2.79646 -6.78423,-4.6796 -1.37835,-1.88316 -1.75885,-4.11616 -0.89417,-6.78092 0.86467,-2.66475 2.54876,-4.4645 4.86314,-5.48862 2.31437,-1.0241 5.2526,-1.265 8.60072,-1.03925 3.34811,0.22576 7.09649,0.90864 11.13305,1.49473 4.03653,0.5862 8.37113,1.03632 13.02879,0.89877 4.65766,-0.13756 9.45383,-1.14909 14.04535,-2.09377 4.59152,-0.94468 8.9823,-1.75345 12.66755,-1.73592 0.46066,0.002 0.91144,0.0161 1.3482,0.0436 1.1223,0.0708 2.1698,0.20509 3.10067,0.47739 1.0735,0.314 2.95461,-2.6047 -0.11758,-2.94357 -0.49859,-0.055 -1.54942,0.19872 -1.52174,-0.17766 z"
|
||||||
|
id="path4541"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="csscsscssssssssssssssssssssccsssc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(-0.20408679,0.36109427,0.8060854,0.48598006,286.09208,226.24278)"
|
||||||
|
id="g4640"
|
||||||
|
style="display:inline;opacity:1">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 767.29926,387.32674 c 11.1235,7.96555 31.77795,11.29978 44.73159,15.54502 12.95363,4.24526 18.14889,9.35948 22.12936,13.37285 3.98046,4.01338 5.94428,7.14463 4.71807,9.52723 -1.2262,2.38259 -5.54351,3.99405 -14.00119,4.81166 -8.45765,0.81761 -15.90978,0.12055 -23.02358,-1.72572 -7.11381,-1.84628 -13.80694,-4.86649 -21.70559,-8.603 -7.89866,-3.73649 -17.3272,-8.0507 -25.81115,-14.18439 -8.48395,-6.13369 -17.62324,-13.90003 -23.14238,-24.13356 -5.51915,-10.23352 -5.78201,-21.34406 -5.37146,-30.88264 0.41055,-9.53859 1.51092,-17.55377 2.71572,-23.74931 1.20482,-6.19553 2.71509,-10.67437 4.77102,-13.66952 2.05591,-2.99513 4.65165,-4.52673 7.71923,-4.52673 3.06759,0 5.70357,1.83092 7.62535,5.49926 1.9218,3.66832 3.04778,9.24444 3.28639,16.76004 0.23861,7.51561 -0.67126,17.08072 0.34029,27.19831 1.01155,10.1176 3.89485,20.79494 15.01833,28.7605 z"
|
||||||
|
id="path4642"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4281);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 760.81735,387.61463 c 8.35351,7.22933 23.40419,11.34465 36.92829,14.85447 13.52408,3.50986 21.76315,7.50998 26.41399,11.29491 4.65086,3.78492 7.04347,6.96136 6.89289,9.28045 -0.15059,2.31908 -3.07202,3.85186 -9.99413,4.53735 -6.92209,0.68549 -13.12478,-0.17957 -19.18856,-2.15841 -6.06375,-1.97886 -12.01277,-5.06603 -19.62326,-8.64782 -7.61047,-3.5818 -16.94465,-7.61787 -24.98938,-13.21535 -8.04472,-5.59749 -15.82286,-12.65396 -20.9022,-21.24583 -5.07935,-8.59186 -6.01346,-17.801 -5.99188,-25.91871 0.0216,-8.1177 0.93462,-15.14861 1.86635,-20.66954 0.93173,-5.52092 2.01706,-9.59713 3.38259,-12.30465 1.36554,-2.70753 3.03466,-4.06947 5.01979,-4.01398 1.98511,0.0555 3.57672,1.84704 4.61437,5.2751 1.03765,3.42807 1.44745,8.54444 1.4737,15.15288 0.0262,6.60845 -0.43638,14.76057 0.91317,23.27473 1.34954,8.51418 4.83074,17.27506 13.18427,24.5044 z"
|
||||||
|
id="path4644"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline;opacity:1"
|
||||||
|
id="g4594"
|
||||||
|
transform="matrix(-0.13664232,-0.29657059,-0.88136995,0.09664282,727.56031,790.52022)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4588"
|
||||||
|
d="m 767.29926,387.32674 c 11.1235,7.96555 31.77795,11.29978 44.73159,15.54502 12.95363,4.24526 18.14889,9.35948 22.12936,13.37285 3.98046,4.01338 5.94428,7.14463 4.71807,9.52723 -1.2262,2.38259 -5.54351,3.99405 -14.00119,4.81166 -8.45765,0.81761 -15.90978,0.12055 -23.02358,-1.72572 -7.11381,-1.84628 -13.80694,-4.86649 -21.70559,-8.603 -7.89866,-3.73649 -17.3272,-8.0507 -25.81115,-14.18439 -8.48395,-6.13369 -17.62324,-13.90003 -23.14238,-24.13356 -5.51915,-10.23352 -5.78201,-21.34406 -5.37146,-30.88264 0.41055,-9.53859 1.51092,-17.55377 2.71572,-23.74931 1.20482,-6.19553 2.71509,-10.67437 4.77102,-13.66952 2.05591,-2.99513 4.65165,-4.52673 7.71923,-4.52673 3.06759,0 5.70357,1.83092 7.62535,5.49926 1.9218,3.66832 3.04778,9.24444 3.28639,16.76004 0.23861,7.51561 -0.67126,17.08072 0.34029,27.19831 1.01155,10.1176 3.89485,20.79494 15.01833,28.7605 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="ellipse4590"
|
||||||
|
d="m 760.81735,387.61463 c 8.35351,7.22933 23.40419,11.34465 36.92829,14.85447 13.52408,3.50986 21.76315,7.50998 26.41399,11.29491 4.65086,3.78492 7.04347,6.96136 6.89289,9.28045 -0.15059,2.31908 -3.07202,3.85186 -9.99413,4.53735 -6.92209,0.68549 -13.12478,-0.17957 -19.18856,-2.15841 -6.06375,-1.97886 -12.01277,-5.06603 -19.62326,-8.64782 -7.61047,-3.5818 -16.94465,-7.61787 -24.98938,-13.21535 -8.04472,-5.59749 -15.82286,-12.65396 -20.9022,-21.24583 -5.07935,-8.59186 -6.01346,-17.801 -5.99188,-25.91871 0.0216,-8.1177 0.93462,-15.14861 1.86635,-20.66954 0.93173,-5.52092 2.01706,-9.59713 3.38259,-12.30465 1.36554,-2.70753 3.03466,-4.06947 5.01979,-4.01398 1.98511,0.0555 3.57672,1.84704 4.61437,5.2751 1.03765,3.42807 1.44745,8.54444 1.4737,15.15288 0.0262,6.60845 -0.43638,14.76057 0.91317,23.27473 1.34954,8.51418 4.83074,17.27506 13.18427,24.5044 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4271);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline"
|
||||||
|
id="g4533-2"
|
||||||
|
transform="matrix(-0.60102903,0.32221978,0.53870829,0.77401445,526.12645,47.501077)" />
|
||||||
|
<g
|
||||||
|
style="opacity:1"
|
||||||
|
transform="matrix(-0.32879267,0.17361606,0.20143296,0.28338802,143.13323,319.59452)"
|
||||||
|
id="g4404">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4406"
|
||||||
|
d="m -626.54672,402.3529 c 2.22767,10.86299 0.34493,21.82632 -3.86747,31.42527 -4.21252,9.59894 -10.55173,17.86115 -17.72096,24.29983 -7.1694,6.43883 -15.25476,11.10591 -24.5716,13.61353 -9.31698,2.50761 -20.94966,4.46936 -31.63903,1.98398 -10.68939,-2.48537 -18.0688,-9.22838 -24.09401,-15.89285 -6.02508,-6.66442 -12.35923,-14.47524 -22.96531,-22.06805 -10.60584,-7.59266 -20.8648,-15.59839 -25.16123,-23.3775 -4.29632,-7.77931 -7.008,-15.66934 -7.81517,-23.39095 -0.80717,-7.7215 0.35908,-14.55922 3.12288,-20.54462 2.76393,-5.98548 7.12557,-11.1208 12.7854,-15.40902 5.65998,-4.28811 12.61751,-7.73606 20.64204,-10.24271 8.02465,-2.50651 17.11262,-4.07552 27.13941,-4.41504 10.0268,-0.3395 20.06604,0.59388 29.76158,2.87504 9.69543,2.2813 19.05511,5.92037 27.47739,11.02309 8.42215,5.10286 15.89307,11.69212 21.60465,19.6287 5.71147,7.93674 13.0738,19.62846 15.30143,30.4913 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-body);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="csssccscsccscscccsccscsssscscscc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4408"
|
||||||
|
d="m -784.21409,457.33922 c -0.56136,0.0656 -1.08141,0.1809 -1.55606,0.33615 -0.63289,0.20699 -1.18396,0.48516 -1.6349,0.82686 -0.45093,0.3417 -0.80184,0.74659 -1.02778,1.21891 -0.22595,0.47234 -0.32669,1.01119 -0.27449,1.62035 0.0522,0.60917 0.25282,1.23371 0.57968,1.84938 0.32687,0.61567 0.98957,1.25218 1.83531,1.84156 0.84574,0.58937 1.35671,1.20529 1.82543,1.72857 0.46713,0.52147 1.13451,0.85371 2.02424,0.92674 0.10253,0.008 0.12328,-0.30471 0.0344,-0.32876 -0.78083,-0.20262 -1.25826,-0.72023 -1.71877,-1.11076 -0.4254,-0.46645 -0.87231,-1.01406 -1.62104,-1.54604 -0.74871,-0.53197 -1.47289,-1.09304 -1.77689,-1.63886 -0.30398,-0.54584 -0.49685,-1.10009 -0.55469,-1.64239 -0.0579,-0.54231 0.0245,-1.0222 0.21918,-1.44322 0.19469,-0.42103 0.50198,-0.78371 0.90168,-1.08623 0.39973,-0.30252 0.89062,-0.54587 1.4577,-0.7237 0.28355,-0.0889 0.5872,-0.16119 0.90722,-0.21465 0.32002,-0.0535 0.6576,-0.0885 1.01178,-0.10163 0.70839,-0.0255 1.4163,0.0392 2.10043,0.1987 0.68412,0.15947 1.34499,0.41522 1.93838,0.77329 0.59338,0.35806 1.11885,0.81986 1.52108,1.37653 0.40222,0.55667 0.92117,1.37523 1.07925,2.13677 0.12981,0.62539 0.0734,1.25844 -0.13288,1.83379 -0.0385,0.10712 0.4977,0.29416 0.62787,-0.0111 0.24265,-0.5698 0.23445,-1.24057 0.1026,-1.8741 -0.17834,-0.85666 -0.69031,-1.76937 -1.13671,-2.40019 -0.4464,-0.6308 -1.03123,-1.15292 -1.68895,-1.55276 -0.65772,-0.39984 -1.38674,-0.68003 -2.14271,-0.85021 -0.75599,-0.17016 -1.54036,-0.23166 -2.32498,-0.19142 -0.19617,0.0101 -0.38815,0.0268 -0.57528,0.0484 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
transform="matrix(13.851095,0,0,13.851095,10133.213,-6001.611)" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -753.77185,413.0219 c -0.13663,-2.61847 2.18018,-4.94804 7.2193,-6.20054 7.65443,-1.90257 20.03831,1.84566 27.93811,5.67152 4.33357,2.09883 8.88981,3.89076 12.66635,7.19411 1.28185,1.12133 2.51799,2.28349 3.36855,4.40869 -1.65849,0.577 -4.10492,-0.92134 -5.87278,-2.13046 -6.96771,-4.76531 -14.69502,-8.08983 -22.67695,-9.12646 -6.71591,-0.87187 -8.86923,-3.11022 -14.75541,-2.56175 -3.72583,0.34716 -4.90626,2.13878 -7.88716,2.74489 z"
|
||||||
|
id="path4365-1-2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cssscsssc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -720.16989,411.68353 c 0.28532,-2.32502 0.86962,3.90377 -0.31886,5.45995 -4.46007,5.84 -8.20289,12.32072 -12.42083,18.36519 -1.37385,1.96787 -3.29463,0.0414 -2.42738,-2.09874 0.88118,-2.1739 2.06053,-3.99898 3.34915,-5.8153 1.20809,-1.70147 2.81353,-3.0576 3.88834,-4.85958 2.06619,-3.46267 2.39577,-6.62873 4.25443,-10.2393 0.63712,-1.23818 3.5225,0.42546 3.67386,-0.80905 z"
|
||||||
|
id="path4367-9-2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssss" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline;opacity:1"
|
||||||
|
id="g4198"
|
||||||
|
transform="matrix(0.69027452,0,0,0.73815345,642.18876,259.65104)">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -140.71724,398.66408 c -9.31409,71.69689 -25.7611,141.32 -83.87724,188.8641 -73.31672,59.97949 -208.09131,67.90599 -303.42706,10.99618 -27.57065,-16.45805 -49.52457,-62.17665 -53.04177,-91.74122 -7.35191,-61.79791 19.82699,-103.64945 13.47928,-160.67805 -5.05249,-45.39216 -29.63784,-82.95495 -27.30836,-137.00138 1.56315,-36.26681 11.06536,-78.46439 40.50727,-100.88356 38.57103,-29.370718 83.60539,-46.188952 134.68095,-45.031125 72.73731,1.648875 151.17838,6.326503 212.18714,49.939365 43.544,31.12796 68.50323,82.53699 72.90385,135.3004 4.52019,54.19698 -0.16075,104.48555 -6.10406,150.23529 z"
|
||||||
|
id="path4188"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4336);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -158.93683,464.92976 c -15.56115,65.9367 -58.42288,127.39267 -134.42207,151.72082 -70.61462,22.6045 -163.49236,17.29949 -232.18476,-25.54762 -26.14623,-16.30879 -46.09162,-61.46233 -48.95901,-89.47579 -6.03547,-58.9646 19.04741,-102.17429 13.30293,-156.59502 -4.7951,-45.42661 -28.02123,-78.34585 -27.29597,-132.22289 0.47399,-35.21112 8.99044,-76.95773 37.82112,-98.79995 36.52466,-27.671205 78.3526,-45.238515 126.45621,-45.012482 76.22124,0.358155 162.16208,5.533182 222.84373,56.658952 55.47879,46.74224 63.38318,129.04796 60.81019,193.3049 -2.12217,52.99813 -7.67242,100.63054 -18.37237,145.96908 z"
|
||||||
|
id="ellipse4190"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssss" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g4376"
|
||||||
|
transform="matrix(0.40138799,-0.13710458,0.13710458,0.40138799,470.81791,82.723801)"
|
||||||
|
style="opacity:1">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-body);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -626.57295,401.69566 c 2.24713,11.35067 0.36741,22.38948 -3.843,32.03835 -4.21053,9.64886 -10.54997,17.90531 -17.7192,24.34399 -7.1694,6.43883 -15.25457,11.1106 -24.57171,13.61082 -9.31727,2.5002 -20.94956,4.47176 -31.64526,1.82793 -10.69571,-2.64383 -18.09209,-9.81214 -24.14818,-17.25062 -6.05597,-7.43843 -12.44269,-16.56671 -23.09665,-25.35944 -10.65372,-8.79255 -20.95218,-17.78817 -25.30072,-26.87318 -4.34843,-9.08528 -7.1154,-18.36084 -7.98,-27.52156 -0.86459,-9.1606 0.24716,-17.36404 2.9617,-24.58398 2.71467,-7.22004 7.03243,-13.45488 12.66059,-18.5369 5.6283,-5.08191 12.56665,-9.01064 20.59229,-11.48936 8.02576,-2.47858 17.13537,-3.50537 27.20916,-2.66707 10.0738,0.83832 20.1809,3.47234 29.95223,7.6529 9.77122,4.18068 19.21426,9.9086 27.71179,16.89733 8.49741,6.98886 16.03465,15.24007 21.79567,24.41557 5.7609,9.17565 13.1742,22.14471 15.42129,33.49522 z"
|
||||||
|
id="path4398"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -784.27135,455.90422 c -0.56339,0.0147 -1.08437,0.10666 -1.55902,0.26191 -0.63289,0.20699 -1.18231,0.52669 -1.63059,0.93484 -0.44828,0.40815 -0.79558,0.90361 -1.01756,1.4752 -0.22199,0.5716 -0.31844,1.21792 -0.26185,1.93717 0.0566,0.71926 0.26134,1.4471 0.59196,2.157 0.33063,0.7099 0.99621,1.41858 1.84494,2.08284 0.84872,0.66425 1.36325,1.36931 1.83382,1.93901 0.46898,0.56774 1.13678,0.9105 2.02675,0.98962 0.10256,0.009 0.12294,-0.31321 0.034,-0.33899 -0.78143,-0.21746 -1.26048,-0.77583 -1.72293,-1.21489 -0.42768,-0.5236 -0.87838,-1.16625 -1.63058,-1.78505 -0.75217,-0.61879 -1.47924,-1.25213 -1.78697,-1.89162 -0.30772,-0.63951 -0.50455,-1.29287 -0.56648,-1.9378 -0.062,-0.64492 0.0165,-1.22191 0.20772,-1.73042 0.1912,-0.50852 0.49539,-0.94884 0.89287,-1.30706 0.3975,-0.35822 0.88707,-0.63484 1.45426,-0.80994 0.2836,-0.0875 0.58767,-0.1494 0.90851,-0.1822 0.32084,-0.0328 0.65966,-0.0369 1.01552,-0.008 0.71174,0.0585 1.42446,0.24383 2.11396,0.53794 0.6895,0.29412 1.35628,0.69807 1.95502,1.19025 0.59873,0.49218 1.12894,1.07271 1.53474,1.71893 0.4058,0.64623 0.9285,1.5589 1.08808,2.35795 0.13104,0.65619 0.075,1.29927 -0.13103,1.88026 -0.0384,0.10817 0.49808,0.30362 0.62824,-0.002 0.24262,-0.57052 0.23429,-1.24452 0.10166,-1.89748 -0.17938,-0.88293 -0.69436,-1.871 -1.14416,-2.58711 -0.44981,-0.71609 -1.03943,-1.35821 -1.70275,-1.89855 -0.66333,-0.54034 -1.3987,-0.97968 -2.16052,-1.29649 -0.76184,-0.31679 -1.55154,-0.51173 -2.33984,-0.56369 -0.19709,-0.013 -0.38986,-0.0163 -0.57767,-0.0116 z"
|
||||||
|
id="path4369"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="csssccscsccscscccsccscsssscscscc"
|
||||||
|
transform="matrix(13.851095,0,0,13.851095,10133.213,-6001.611)" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -730.27274,382.91266 c 1.8068,-2.76405 6.31309,-3.63001 13.24575,-1.6171 10.53068,3.05761 22.43414,14.97755 28.94834,24.04709 3.57338,4.97534 7.6424,9.78266 9.64772,15.62449 0.68055,1.98294 1.27611,3.97774 0.68898,6.70435 -2.4056,-0.49416 -4.1871,-3.62313 -5.37952,-6.01329 -4.69962,-9.4202 -11.38574,-17.86492 -20.09536,-24.13889 -7.3284,-5.27852 -8.20487,-8.9719 -15.61502,-12.25742 -4.69053,-2.07967 -7.44128,-1.02076 -11.44089,-2.34923 z"
|
||||||
|
id="path4365-1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cssscsssc" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m -689.31909,403.49962 c 2.08771,-2.1886 -1.9021,4.5559 -4.48533,5.36905 -9.69439,3.05157 -19.01784,7.22624 -28.57811,10.64488 -3.11327,1.11257 -3.94795,-2.11026 -1.30738,-3.72982 2.68251,-1.64492 5.45711,-2.73872 8.35507,-3.75217 2.71578,-0.94874 5.64428,-1.2851 8.27731,-2.4236 5.06052,-2.18718 7.83343,-5.20599 12.75841,-7.67984 1.68866,-0.84854 3.86766,2.73608 4.97603,1.5739 z"
|
||||||
|
id="path4367-9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssss" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g4634"
|
||||||
|
transform="matrix(0.13058783,-0.42795023,-0.60869797,-0.11092817,632.15501,956.21909)"
|
||||||
|
style="display:inline;opacity:1">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4636"
|
||||||
|
d="m 423.50332,581.83521 c -0.004,4.40048 -1.19837,7.58856 -3.37524,9.82844 -2.17687,2.23987 -5.33154,3.55156 -9.14619,4.44292 -3.81465,0.89135 -8.28246,1.39523 -13.05675,1.83828 -4.77428,0.44304 -9.85163,0.79076 -14.95001,1.09928 -5.09838,0.30851 -9.94541,0.34741 -14.40217,0.0862 -4.45676,-0.26122 -8.52354,-0.79908 -11.99271,-1.71189 -3.46915,-0.91282 -6.33736,-2.21356 -8.3562,-4.09288 -2.01885,-1.87935 -3.18709,-4.34475 -3.25466,-7.51083 -0.0676,-3.16607 0.9983,-5.4859 2.92534,-7.0838 1.92703,-1.5979 4.71248,-2.46394 8.09977,-2.84688 3.38729,-0.38293 7.37282,-0.28336 11.77044,-0.16051 4.39762,0.12284 9.21051,0.23456 14.33166,-0.12202 5.12115,-0.35659 10.27171,-1.47349 15.16022,-2.54099 4.88852,-1.06749 9.50395,-2.05149 13.43823,-2.27114 3.9343,-0.21967 7.17754,0.32322 9.39823,2.04598 2.22069,1.72276 3.41425,4.59936 3.41004,8.99986 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4279);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="csscsscssssssssssssssssssssccsssc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4638"
|
||||||
|
d="m 411.91406,568.54883 c -3.75011,-0.0271 -8.08701,0.53975 -12.76172,1.28711 -5.34251,0.85413 -11.10706,1.92059 -17.00976,2.32617 -5.9027,0.40562 -11.41103,0.38326 -16.44727,0.41406 -5.03624,0.0309 -9.6045,0.1607 -13.50781,0.85938 -3.9033,0.69867 -7.13503,1.96743 -9.4082,3.96875 -2.27316,2.00131 -3.58535,4.71676 -3.65235,8.17578 -0.067,3.45901 1.21821,6.3073 3.54297,8.58008 2.32476,2.27278 5.68789,3.9795 9.76172,5.25 4.07385,1.27051 8.85237,2.11894 14.05664,2.59765 5.20427,0.47871 10.83381,0.56134 16.70313,0.22266 5.86931,-0.33868 11.47146,-0.78653 16.60547,-1.34961 5.13399,-0.56309 9.79334,-1.22365 13.70703,-2.34375 1.48913,-0.4262 2.86677,-0.9287 4.12695,-1.51953 2.54507,-1.19325 2.05015,-6.17249 -0.0996,-4.54102 -1.99172,1.51153 -4.14364,1.68162 -7.15735,2.35061 -3.67269,0.81527 -8.18136,0.99111 -12.55008,1.3428 -4.3687,0.35167 -8.7789,1.78431 -13.31332,2.07736 -4.53444,0.29304 -8.86787,0.32801 -12.93181,0.0702 -4.06396,-0.25785 -7.85651,-0.78075 -11.12475,-1.64296 -3.26823,-0.86221 -5.99695,-2.08037 -7.8846,-3.81399 -1.88765,-1.73365 -2.92537,-3.9871 -2.97865,-6.80086 -0.0533,-2.81374 0.90176,-4.8192 2.66881,-6.10562 1.76704,-1.28641 5.61732,-0.58475 8.69196,-0.71399 3.07463,-0.12925 6.90624,-0.54484 10.78772,-0.41733 3.88147,0.12754 6.54592,-0.48119 11.04844,-1.2139 4.50252,-0.73264 9.15212,-2.3434 13.88736,-3.72101 4.73523,-1.37761 9.22461,-2.34259 13.00861,-2.55385 0.473,-0.0264 0.93707,-0.0422 1.38868,-0.0449 1.16046,-0.007 2.25007,0.0442 3.25,0.23633 1.15313,0.22156 2.31543,-2.86146 -0.83789,-2.92773 -0.51177,-0.0108 -1.03459,-0.045 -1.57032,-0.0488 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer9"
|
||||||
|
inkscape:label="gopher-shadow"
|
||||||
|
style="display:inline;opacity:0.06000001"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<ellipse
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="path4544"
|
||||||
|
cx="-467.52527"
|
||||||
|
cy="482.66467"
|
||||||
|
rx="22.450642"
|
||||||
|
ry="20.682871"
|
||||||
|
transform="scale(-1,1)" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 234.60547,309.98047 c -6.62163,-0.0703 -10.7426,0.83465 -15.61133,3.26758 -5.0378,2.51742 -10.044,7.91661 -11.55273,12.45898 -2.26972,6.83348 -0.42196,14.92592 5.01757,21.97656 3.19606,4.1427 6.84938,6.56071 14.60938,9.66993 3.20846,1.28553 7.68985,3.50108 9.95898,4.92382 5.6211,3.52442 9.83526,5.31873 13.54102,5.76563 2.42194,0.29208 3.11523,0.63719 3.11523,1.55469 0,0.89182 -0.7061,1.28567 -2.89062,1.61328 -1.58919,0.23867 -3.77121,0.24076 -4.84961,0.004 -1.95019,-0.42833 -1.9703,-0.40483 -3.65625,4.68555 -3.87667,11.7048 -5.82609,25.85658 -5.80859,42.15625 0.0196,18.31899 1.82597,28.89111 9.58007,56.04688 5.56137,19.47655 7.15656,26.40249 8.58008,37.26171 2.05331,15.66359 1.31467,26.60445 -3.90625,57.79102 -4.8641,29.05517 -5.15869,31.69637 -5.18359,46.54297 -0.0239,14.28001 0.63486,19.84952 3.52539,29.8125 5.44577,18.77032 13.72789,34.11825 23.9082,44.30078 8.00321,8.00498 22.62783,16.26261 41.23438,23.2832 5.47456,2.06566 5.83617,2.12101 6.46679,0.99414 1.72277,-3.07839 3.2087,-3.7772 9.33203,-3.79882 -38.68101,-33.75954 -34.48259,-82.29367 -25.52281,-108.9339 7.33431,-21.80723 31.77025,-53.23407 31.77025,-53.23407 l -22.41052,-1.98245 c 0,0 -7.25969,-42.63753 -13.15682,-59.9065 -22.58603,-66.14023 -29.82384,-120.35922 4.37069,-158.19894 5.84309,-6.46598 12.5988,-11.21335 19.60937,-14.69727 -9.02679,1.89877 -18.30173,4.80561 -26.41601,8.32813 -6.65247,2.88791 -19.01394,9.90994 -18.99415,10.78906 0.009,0.39075 0.30731,1.97487 0.66407,3.52148 0.79845,3.46141 -0.0807,5.55969 -2.20117,5.25782 -1.1871,-0.16901 -1.49742,-0.76108 -1.83008,-3.48633 -0.63121,-5.17109 -3.20076,-9.39815 -9.06836,-14.91797 -9.25402,-8.70552 -17.29671,-12.21829 -29.22461,-12.76172 -1.05756,-0.0482 -2.05405,-0.0778 -3,-0.0879 z m 1.38086,24.10156 c 1.88404,0.0642 3.99413,0.41696 5.88476,1.04492 3.99187,1.32589 12.35644,6.69047 14.31446,9.17969 3.00519,3.82048 1.04901,4.01008 -3.4043,0.33008 -1.74522,-1.44216 -3.36983,-2.6211 -3.60937,-2.6211 -0.23954,0 -2.78812,1.91597 -5.66407,4.25782 -2.87594,2.34185 -5.59815,4.25776 -6.04883,4.25976 -1.88842,0.007 -0.56519,-2.08264 3.10938,-4.91015 4.64288,-3.57262 5.88952,-5.38766 4.12891,-6.00977 -0.64649,-0.22845 -2.92374,-1.13445 -5.06055,-2.01367 -3.0123,-1.23949 -4.52138,-1.50334 -6.71875,-1.17383 -3.06661,0.45987 -3.82178,-0.39095 -1.46485,-1.65234 0.9899,-0.52978 2.64916,-0.75563 4.53321,-0.69141 z m 103.78515,383.73633 c -0.005,0.0152 -0.007,0.0256 -0.0117,0.041 l -0.70118,2.28906 5.65625,1.01562 c 0.0901,0.0162 0.20551,0.0326 0.29688,0.0488 -1.81728,-1.11236 -3.56263,-2.24473 -5.24024,-3.39453 z"
|
||||||
|
id="path4271"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssscssssssssssscsccsscscssssssscsssscscsssscccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 328.4205,548.25967 -4.47623,14.88037 c 2.60939,0.0254 9.84161,-6.41982 16.75619,-6.818 76.94638,-4.43102 125.04829,-0.40565 187.26295,-5.40532 1.45456,-0.11689 3.76527,-0.10936 5.20677,0.2079 5.21485,1.14773 8.09003,14.3736 9.3628,13.60525 0.6055,-14.12878 -2.32372,-19.14168 -5.81784,-22.69773 z"
|
||||||
|
id="path4275"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccsssccc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:label="gopher-face"
|
||||||
|
style="display:inline"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<g
|
||||||
|
id="g4818"
|
||||||
|
transform="matrix(-0.65610141,0,0,0.65610141,655.70091,210.42145)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4812"
|
||||||
|
d="m 547.42756,318.16456 c -0.44046,14.77191 -4.12869,29.02667 -10.38967,42.25266 -6.26099,13.22599 -15.09198,25.42687 -25.80466,35.99686 -10.71268,10.57 -23.30432,19.50822 -37.11826,26.08983 -13.81394,6.58161 -28.85103,10.80263 -44.50193,11.8618 -15.65091,1.05917 -30.4406,-1.15844 -43.81781,-6.16756 -13.37721,-5.00911 -25.3405,-12.8075 -35.30087,-22.80416 -9.96037,-9.99666 -17.91599,-22.19037 -23.26581,-35.90798 -5.34983,-13.71761 -8.0915,-28.95913 -7.64195,-44.98105 0.44955,-16.02192 4.04447,-31.2937 10.1422,-45.07896 6.09773,-13.78526 14.69591,-26.08175 25.16951,-36.25747 10.4736,-10.17571 22.82245,-18.23043 36.46168,-23.66123 13.63924,-5.4308 28.57214,-8.24285 44.22923,-8.02541 15.6571,0.21745 30.56095,3.42714 44.11009,8.94154 13.54914,5.5144 25.7404,13.33722 35.92568,22.91495 10.18529,9.57774 18.36233,20.91345 23.87736,33.53282 5.51504,12.61936 8.36566,26.52144 7.92521,41.29336 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="ellipse4814"
|
||||||
|
d="m 539.72249,314.79002 c 10e-4,13.89984 -3.01572,27.53808 -8.51346,40.35257 -5.49774,12.81449 -13.48047,24.80543 -23.37659,35.2527 -9.89612,10.44726 -21.70519,19.34133 -34.78531,25.87862 -13.08011,6.53727 -27.4256,10.71236 -42.3773,11.7667 -14.9517,1.05435 -29.09103,-1.11258 -41.85904,-5.93108 -12.76803,-4.81852 -24.16883,-12.28715 -33.66552,-21.79076 -9.49671,-9.50362 -17.08979,-21.04298 -22.23241,-33.95465 -5.14261,-12.91166 -7.83328,-27.19561 -7.52333,-42.13595 0.30995,-14.94034 3.58995,-29.10832 9.22975,-41.85842 5.63981,-12.7501 13.63743,-24.08168 23.39638,-33.47108 9.75897,-9.38941 21.27795,-16.83842 34.00359,-21.94183 12.72563,-5.10342 26.66067,-7.86812 41.28534,-7.94317 14.62467,-0.0751 28.55938,2.53224 41.26083,7.24431 12.70145,4.71207 24.16709,11.5339 33.81555,20.03646 9.64847,8.50257 17.47884,18.68937 22.90117,30.21241 5.42232,11.52304 8.43889,24.38332 8.44035,38.28317 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-eye);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<circle
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4319);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="path4828"
|
||||||
|
cx="458.07443"
|
||||||
|
cy="316.13431"
|
||||||
|
r="30.809652" />
|
||||||
|
<circle
|
||||||
|
r="15.152287"
|
||||||
|
cy="301.99216"
|
||||||
|
cx="444.43738"
|
||||||
|
id="circle4830"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-eye);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(-0.49821858,-0.255998,-0.255998,0.49821858,841.05915,359.59091)"
|
||||||
|
id="g4822">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 544.2609,323.96628 c -5.95391,12.33766 -15.20034,24.2228 -25.89846,35.91934 -10.69814,11.69654 -22.74349,23.28172 -34.52447,34.21851 -11.78099,10.93679 -23.27607,21.15489 -34.23709,29.30247 -10.96102,8.14759 -21.47285,14.18083 -32.04267,16.95199 -10.56982,2.77117 -20.29711,2.02561 -29.30402,-1.67713 -9.00692,-3.70274 -20.58076,-7.76561 -27.66538,-16.71749 -7.08461,-8.95188 -12.84054,-20.18257 -16.5035,-33.03389 -3.66297,-12.85133 -5.229,-27.32914 -3.92417,-42.72858 1.30484,-15.39944 5.36688,-30.24976 11.81788,-43.75488 6.45101,-13.5051 15.29008,-25.65823 26.00811,-35.78271 10.71803,-10.12447 28.44246,-20.29305 42.24879,-25.86698 13.80633,-5.57394 28.83304,-8.62768 44.20973,-8.80364 15.3767,-0.17594 29.62737,2.52591 41.94358,7.37479 12.31622,4.84887 22.69735,11.85058 30.35956,20.34718 7.66222,8.49661 12.60139,18.48263 14.06496,29.34879 1.4636,10.86615 -0.59894,22.56457 -6.55285,34.90223 z"
|
||||||
|
id="path4824"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 538.18032,322.65868 c -5.17728,11.63182 -13.27733,23.10077 -22.96883,34.40428 -9.69151,11.30351 -20.93897,22.46482 -32.34413,32.7753 -11.40514,10.31051 -22.90789,19.71873 -33.85893,27.13351 -10.95103,7.41476 -21.39599,12.82014 -31.59528,15.28718 -10.19931,2.46703 -19.30202,1.76338 -27.56839,-1.62958 -8.26637,-3.39295 -19.13397,-6.9512 -25.3913,-15.16185 -6.25732,-8.21068 -11.24381,-18.53447 -14.30417,-30.37519 -3.06035,-11.84072 -4.18965,-25.20221 -2.68634,-39.42576 1.5033,-14.22354 5.50837,-27.94818 11.67956,-40.43838 6.17119,-12.4902 14.50792,-23.74111 24.54768,-33.13895 10.03978,-9.39782 26.99021,-19.0621 39.83566,-24.2929 12.84546,-5.2308 26.78412,-8.15811 41.0009,-8.45853 14.21678,-0.30038 27.34319,2.03758 38.64284,6.33106 11.29965,4.29349 20.7704,10.54463 27.74089,18.16875 6.97048,7.62413 11.43794,16.6127 12.81335,26.51165 1.37541,9.89894 -0.36624,20.67759 -5.54351,32.30941 z"
|
||||||
|
id="path4826"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
<circle
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4321);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="path4828-0"
|
||||||
|
cx="438.70038"
|
||||||
|
cy="219.30804"
|
||||||
|
r="27.721321"
|
||||||
|
transform="matrix(0.98640333,0.16434257,-0.16434257,0.98640333,0,0)" />
|
||||||
|
<circle
|
||||||
|
r="13.633434"
|
||||||
|
cy="205.95601"
|
||||||
|
cx="431.24106"
|
||||||
|
id="circle4830-3"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
transform="matrix(0.98640333,0.16434257,-0.16434257,0.98640333,0,0)" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer7"
|
||||||
|
inkscape:label="gopher-mouth"
|
||||||
|
style="display:inline"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 477.59321,477.72343 -6.36763,0.0828 -3.71113,-0.0821 c -1.18372,-0.0262 -2.23819,0.53559 -3.00662,1.36379 -0.76845,0.82822 -1.14658,1.97521 -1.32551,3.22687 l -1.01303,7.08562 -1.40711,7.111 c -0.25342,1.28069 0.0841,2.40965 0.70518,3.23132 0.6211,0.82165 1.57363,1.28978 2.69674,1.31649 l 3.7446,0.0891 7.40657,-0.17258 c 1.42055,-0.0331 2.74014,-0.58514 3.70785,-1.43299 0.96771,-0.84787 1.54004,-2.00084 1.65553,-3.2592 l 0.6476,-7.05621 0.52522,-7.04505 c 0.0935,-1.25398 -0.46676,-2.37726 -1.25366,-3.18163 -0.78689,-0.80437 -1.85738,-1.2842 -3.00457,-1.27716 z"
|
||||||
|
id="rect4659"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="scssscssscssscsss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 476.43064,479.86835 -5.19684,0.0698 -2.47497,-0.10149 c -0.94018,-0.0386 -1.80825,0.43586 -2.46124,1.11384 -0.65298,0.67797 -1.03424,1.61771 -1.21175,2.64338 l -1.0026,5.79325 -1.25494,5.80832 c -0.22406,1.03701 0.002,1.97056 0.48938,2.64162 0.48783,0.67105 1.26653,1.03411 2.19892,1.07115 l 2.54193,0.101 5.88547,-0.12754 c 1.11447,-0.0242 2.17518,-0.47212 2.97321,-1.1643 0.79803,-0.69218 1.30904,-1.6349 1.43939,-2.66511 l 0.73009,-5.77006 0.63032,-5.76301 c 0.11259,-1.02637 -0.28558,-1.94744 -0.89178,-2.6062 -0.60618,-0.65877 -1.45658,-1.05733 -2.39458,-1.04471 z"
|
||||||
|
id="rect4661"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="scssscssscssscsss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 447.45177,471.71537 c 0.17729,2.27145 1.57656,4.32647 3.56538,6.17684 1.98881,1.85037 4.73553,3.49055 7.9169,4.83408 3.18137,1.34353 6.76993,2.37673 10.40491,2.92876 3.63499,0.55204 7.31771,0.61337 10.93742,0.17695 3.61969,-0.43645 6.8614,-1.30517 9.67542,-2.37849 2.81402,-1.07332 5.17844,-2.3467 7.04073,-3.75925 1.86231,-1.41254 3.23922,-2.97722 4.10853,-4.72358 0.86932,-1.74636 1.22997,-3.67959 0.91461,-5.76285 -0.31535,-2.08326 -1.29186,-4.11481 -2.79935,-5.98131 -1.5075,-1.86649 -3.53491,-3.56576 -5.91642,-4.97983 -2.3815,-1.41407 -5.11304,-2.54212 -8.12844,-3.28158 -3.0154,-0.73946 -6.31783,-1.09096 -9.93094,-0.97174 -3.6131,0.11924 -7.2186,0.69446 -10.6419,1.64517 -3.4233,0.95069 -6.6496,2.2832 -9.33875,3.91065 -2.68913,1.62746 -4.89892,3.50256 -6.18894,5.61926 -1.32139,2.16817 -1.77021,4.61153 -1.61916,6.54692 z"
|
||||||
|
id="ellipse4650"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4265);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 455.1011,471.20532 c 0.31019,1.80429 1.36577,3.48937 2.98663,4.99917 1.62086,1.5098 3.80505,2.84719 6.28703,3.91437 2.48197,1.06719 5.24944,1.8562 8.07117,2.27071 2.82174,0.4145 5.70079,0.45265 8.53169,0.10713 2.83089,-0.34553 5.35911,-1.02976 7.553,-1.90451 2.19389,-0.87475 4.04484,-1.93848 5.497,-3.12538 1.45217,-1.1869 2.50911,-2.50179 3.13219,-3.93394 0.62308,-1.43214 0.81446,-2.98543 0.48985,-4.63056 -0.32461,-1.64514 -1.13916,-3.22548 -2.3414,-4.6674 -1.20224,-1.44192 -2.78948,-2.74346 -4.65903,-3.82078 -1.86955,-1.07733 -4.01937,-1.92982 -6.38974,-2.4811 -2.37037,-0.55129 -4.96168,-0.80162 -7.76722,-0.68542 -2.80553,0.11621 -5.57317,0.58631 -8.1874,1.34158 -2.61424,0.75528 -5.07126,1.79757 -7.14628,3.06167 -2.07504,1.26412 -3.75959,2.75051 -4.8326,4.37276 -1.07302,1.62225 -1.53509,3.37741 -1.22489,5.1817 z"
|
||||||
|
id="ellipse4652"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="m 465.13937,460.19393 c 0.45232,1.29294 1.43586,2.44115 2.79664,3.4102 1.36078,0.96906 3.0934,1.76079 4.97332,2.36791 1.87992,0.60712 3.89927,1.0315 5.87533,1.25741 1.97606,0.2259 3.90879,0.25223 5.71982,0.052 1.81102,-0.20028 3.33955,-0.60742 4.63321,-1.17435 1.29367,-0.56695 2.35232,-1.29343 3.18646,-2.14861 0.83413,-0.85519 1.44471,-1.8405 1.79916,-2.93195 0.35445,-1.09146 0.45213,-2.29028 0.21175,-3.55738 -0.24038,-1.2671 -0.80099,-2.48156 -1.64917,-3.57911 -0.84818,-1.09755 -1.9831,-2.07741 -3.35494,-2.8723 -1.37184,-0.7949 -2.98056,-1.40441 -4.76729,-1.7664 -1.78672,-0.36199 -3.75169,-0.47615 -5.82322,-0.29097 -2.07153,0.18518 -4.05358,0.65136 -5.84566,1.3298 -1.79207,0.67844 -3.39432,1.56902 -4.69144,2.60198 -1.29713,1.03296 -2.28898,2.20893 -2.84443,3.45293 -0.55546,1.24399 -0.67186,2.55593 -0.21954,3.84888 z"
|
||||||
|
id="path4648"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer12"
|
||||||
|
inkscape:label="gopher-hands"
|
||||||
|
style="display:inline"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<g
|
||||||
|
id="g4533"
|
||||||
|
transform="matrix(-0.28489616,-0.34500545,-0.42832103,0.44649678,715.99765,474.46827)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="sssssssssssssssss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="ellipse4523"
|
||||||
|
d="m 423.50332,581.83521 c -0.004,4.40048 -1.19837,7.58856 -3.37524,9.82844 -2.17687,2.23987 -5.33154,3.55156 -9.14619,4.44292 -3.81465,0.89135 -8.28246,1.39523 -13.05675,1.83828 -4.77428,0.44304 -9.85163,0.79076 -14.95001,1.09928 -5.09838,0.30851 -9.94541,0.34741 -14.40217,0.0862 -4.45676,-0.26122 -8.52354,-0.79908 -11.99271,-1.71189 -3.46915,-0.91282 -6.33736,-2.21356 -8.3562,-4.09288 -2.01885,-1.87935 -3.18709,-4.34475 -3.25466,-7.51083 -0.0676,-3.16607 0.9983,-5.4859 2.92534,-7.0838 1.92703,-1.5979 4.71248,-2.46394 8.09977,-2.84688 3.38729,-0.38293 7.37282,-0.28336 11.77044,-0.16051 4.39762,0.12284 9.21051,0.23456 14.33166,-0.12202 5.12115,-0.35659 10.27171,-1.47349 15.16022,-2.54099 4.88852,-1.06749 9.50395,-2.05149 13.43823,-2.27114 3.9343,-0.21967 7.17754,0.32322 9.39823,2.04598 2.22069,1.72276 3.41425,4.59936 3.41004,8.99986 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4273);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ssscsscssssssssssssssssssssccsss"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4521"
|
||||||
|
d="m 411.91406,568.54883 c -3.75011,-0.0271 -8.08701,0.53975 -12.76172,1.28711 -5.34251,0.85413 -11.10706,1.92059 -17.00976,2.32617 -5.9027,0.40562 -11.41103,0.38326 -16.44727,0.41406 -5.03624,0.0309 -9.6045,0.1607 -13.50781,0.85938 -3.9033,0.69867 -7.13503,1.96743 -9.4082,3.96875 -2.27316,2.00131 -3.58535,4.71676 -3.65235,8.17578 -0.067,3.45901 1.21821,6.3073 3.54297,8.58008 2.32476,2.27278 5.68789,3.9795 9.76172,5.25 4.07385,1.27051 8.85237,2.11894 14.05664,2.59765 5.20427,0.47871 10.83381,0.56134 16.70313,0.22266 5.86931,-0.33868 11.47146,-0.78653 16.60547,-1.34961 5.13399,-0.56309 9.79334,-1.22365 13.70703,-2.34375 1.48913,-0.4262 2.86677,-0.9287 4.12695,-1.51953 2.54507,-1.19325 2.05015,-6.17249 -0.0996,-4.54102 -1.99172,1.51153 -4.55969,2.50355 -7.57031,3.20703 -3.66893,0.85731 -7.96668,1.34146 -12.5586,1.76758 -4.59191,0.42612 -9.47527,0.75991 -14.3789,1.05664 -4.90363,0.29673 -9.56506,0.33523 -13.85156,0.084 -4.28652,-0.25124 -8.19851,-0.76855 -11.53516,-1.64649 -3.33664,-0.87795 -6.09539,-2.12996 -8.03711,-3.9375 -1.94173,-1.80756 -3.06587,-4.17751 -3.13086,-7.22265 -0.065,-3.04513 0.96102,-5.2776 2.81445,-6.81446 1.85342,-1.53686 4.53117,-2.36997 7.78907,-2.73828 3.2579,-0.36831 7.09262,-0.27244 11.32226,-0.1543 4.22963,0.11816 8.85767,0.22578 13.7832,-0.11718 4.92553,-0.34297 9.88026,-1.41664 14.58204,-2.44336 4.70178,-1.02671 9.13982,-1.97234 12.92382,-2.1836 0.473,-0.0264 0.93707,-0.0422 1.38868,-0.0449 1.16046,-0.007 2.25007,0.0442 3.25,0.23633 1.15313,0.22156 2.31543,-2.86146 -0.83789,-2.92773 -0.51177,-0.0108 -1.03459,-0.045 -1.57032,-0.0488 z"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#gopher-lines);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer3"
|
||||||
|
inkscape:label="cape-front"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cssscscc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4248"
|
||||||
|
d="m 250.62773,531.91504 c -9.09672,21.35801 -15.29674,29.07226 -30.27188,44.83759 -11.50237,12.10933 -28.85117,24.46609 -43.81134,39.61682 -13.55246,13.72509 -26.12338,21.00434 -64.22257,32.01103 -11.97434,3.45934 -44.031036,6.55017 -51.472472,37.30246 C 107.21772,654.7909 183.17617,662.32228 228.40418,636.09787 266.34279,614.10005 317.82474,552.6315 355.9453,547.7268 284.49621,547.05928 263.34291,542.49874 250.62773,531.91504 Z"
|
||||||
|
style="display:inline;fill:#019833;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="fill:#019833;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 473.29262,543.99873 73.7751,-5.10117 c 0,0 2.29258,1.0455 2.68673,2.11494 7.36409,19.98076 -12.72148,60.84328 -12.72148,60.84328 0,-2.97132 13.53121,-43.94425 -5.91529,-53.46522 -16.4456,-8.05173 -38.16124,-2.06803 -57.82506,-4.39183 z"
|
||||||
|
id="path4265"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccscsc" />
|
||||||
|
<path
|
||||||
|
style="display:inline;fill:#019432;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 249.90625,533.57227 c -8.70868,20.08478 -14.97837,27.83833 -29.55078,43.17968 -11.50237,12.10933 -28.85038,24.46646 -43.81055,39.61719 -13.55246,13.72509 -26.12346,21.00503 -64.22265,32.01172 -10.63128,3.07133 -37.077893,5.86957 -48.087895,27.97656 2.731585,-3.48747 7.206694,-4.8761 9.881319,-8.70029 4.506995,-6.44411 60.824806,-11.61546 75.673426,-21.06752 9.77176,-6.22033 32.61216,-17.69963 44.08393,-25.40211 11.47178,-7.70248 50.16856,-39.82139 59.98047,-41.62695 30.99143,-5.70295 56.04882,-31.95703 56.04882,-31.95703 0,0 -5.76873,-1.34099 -7.30468,-1.69727 -26.4653,-1.9743 -39.57284,-5.58234 -48.29883,-11.28125 -1.77957,-0.42346 -3.78649,-0.89828 -4.39258,-1.05273 z"
|
||||||
|
id="path4280"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cssscsssscccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#01a939;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 250.88543,527.29897 c 4.9284,1.23444 7.57648,5.23948 12.39942,6.83706 14.83134,4.91283 28.22069,8.13985 43.80356,9.2706 19.18619,1.39223 40.09821,1.50171 59.33179,1.15882 36.63136,-0.65304 73.4946,-1.92414 110.08831,-3.70824 19.9513,-0.97271 40.58394,-2.2893 60.49061,-3.94 3.86874,-0.3208 7.97563,-6.05622 11.58825,-4.6353 2.39418,0.94168 2.01049,3.29975 2.64058,5.79412 2.44082,4.93143 0.14511,6.64447 -5.65353,7.64824 -19.43937,3.05253 -39.20884,3.55847 -58.86827,4.40354 -48.01128,2.06378 -96.10464,2.11621 -144.15772,1.62235 -17.00379,-0.17475 -34.11943,0.52285 -50.98827,-1.62235 -13.27515,-1.68819 -26.90453,-3.45163 -39.16825,-8.80707 -4.12399,-1.80091 -7.99437,-2.72852 -8.97266,-7.12095 -0.30759,-1.38101 1.19417,-2.17728 1.88173,-3.29956 0.57446,-0.93767 0.21317,-2.26036 1.23886,-2.84803 1.34064,-0.76812 2.84679,-1.12864 4.34559,-0.75323 z"
|
||||||
|
id="path4267"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssssssccssssssss" />
|
||||||
|
<path
|
||||||
|
style="fill:#019d35;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 245.9043,528.82812 c -0.24767,0.63868 -0.21658,1.44068 -0.60352,2.07227 -0.68756,1.12228 -2.18845,1.91782 -1.88086,3.29883 0.97829,4.39243 4.84867,5.32018 8.97266,7.12109 12.26372,5.35544 25.89282,7.11845 39.16797,8.80664 16.86884,2.1452 33.98449,1.4483 50.98828,1.62305 48.05308,0.49386 96.14692,0.44073 144.1582,-1.62305 19.65943,-0.84507 39.42782,-1.34981 58.86719,-4.40234 5.79864,-1.00377 8.09512,-2.71701 5.6543,-7.64844 -0.0557,-0.22031 -0.0962,-0.43699 -0.13868,-0.65429 0.48647,4.64963 -6.66572,4.9037 -11.87478,5.92187 -33.64204,6.57569 -68.48165,3.5437 -102.75586,4.0957 -42.87828,0.69057 -93.34812,6.52037 -135.57053,-0.98242 -17.79033,-3.16129 -43.90403,-10.17243 -54.98437,-17.62891 z"
|
||||||
|
id="path4340"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="csssssscccsssc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer8"
|
||||||
|
inkscape:label="vim"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<g
|
||||||
|
id="g4330">
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#005d04;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4293"
|
||||||
|
width="194.71968"
|
||||||
|
height="194.71968"
|
||||||
|
x="-29.381023"
|
||||||
|
y="744.44128"
|
||||||
|
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" />
|
||||||
|
<rect
|
||||||
|
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
|
||||||
|
y="753.35699"
|
||||||
|
x="-20.465342"
|
||||||
|
height="176.88821"
|
||||||
|
width="176.88821"
|
||||||
|
id="rect4283"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#019833;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<g
|
||||||
|
id="text4285"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:203.27047729px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#fefefe;fill-opacity:1;stroke:#005d04;stroke-width:4;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
transform="matrix(1.0880646,0,-0.29154603,1.0880646,-528.83975,-369.0604)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccccccccccsc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4324"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-family:Eczar;-inkscape-font-specification:'Eczar Ultra-Bold';fill:#fefefe;fill-opacity:1;stroke:#005d04;stroke-width:5.01092911;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 202.34975,1029.0537 -56.02157,-157.11507 -17.82505,-3.05571 0.25466,-14.0054 89.88914,0 1.52787,8.1486 c -2.7162,2.2069 -5.77193,4.32893 -9.16717,6.36609 -3.22549,2.03714 -6.70561,3.98941 -10.44038,5.85679 l 26.38345,87.17129 39.56921,-89.71773 -21.89934,-3.81964 0.25464,-14.0054 72.06411,0 -68.4991,168.82868 0.25465,0.2547 c -6.28122,1.0184 -13.49612,1.9522 -21.6447,2.8011 -8.14859,0.8487 -16.38207,1.6126 -24.70042,2.2917 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#g4330"
|
||||||
|
id="use4338"
|
||||||
|
transform="matrix(0.4546439,-0.10745401,-0.02175104,0.44922994,711.99298,282.73776)"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer4"
|
||||||
|
inkscape:label="palette"
|
||||||
|
style="display:inline"
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
transform="translate(-15.732722,-256.54886)">
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4168);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4162"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="779.60529"
|
||||||
|
y="21.967466" />
|
||||||
|
<rect
|
||||||
|
y="21.967466"
|
||||||
|
x="824.60529"
|
||||||
|
height="40.789474"
|
||||||
|
width="40.789474"
|
||||||
|
id="rect4170"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4180);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052742;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bce8ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4208"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="779.60529"
|
||||||
|
y="86.967468" />
|
||||||
|
<rect
|
||||||
|
y="-127.75694"
|
||||||
|
x="824.60529"
|
||||||
|
height="40.789474"
|
||||||
|
width="40.789474"
|
||||||
|
id="rect4223"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#abccd9;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
transform="scale(1,-1)" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c3b0cb;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4227"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="779.60529"
|
||||||
|
y="131.96747" />
|
||||||
|
<rect
|
||||||
|
y="131.96747"
|
||||||
|
x="824.60529"
|
||||||
|
height="40.789474"
|
||||||
|
width="40.789474"
|
||||||
|
id="rect4231"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e1d0cb;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f5c3d2;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4233"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="869.60529"
|
||||||
|
y="131.96747" />
|
||||||
|
<rect
|
||||||
|
y="176.96747"
|
||||||
|
x="779.60529"
|
||||||
|
height="40.789474"
|
||||||
|
width="40.789474"
|
||||||
|
id="rect4248"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cec4ad;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<rect
|
||||||
|
transform="scale(1,-1)"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#96d6ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4263"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="869.60529"
|
||||||
|
y="-127.75694" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f2f2ce;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4267"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="824.60529"
|
||||||
|
y="176.96747" />
|
||||||
|
<rect
|
||||||
|
y="-327.75693"
|
||||||
|
x="779.60529"
|
||||||
|
height="40.789474"
|
||||||
|
width="40.789474"
|
||||||
|
id="rect4280"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#24b8eb;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
transform="scale(1,-1)" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#8aa9ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4284"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="824.60529"
|
||||||
|
y="286.96747" />
|
||||||
|
<rect
|
||||||
|
y="331.96747"
|
||||||
|
x="779.60529"
|
||||||
|
height="40.789474"
|
||||||
|
width="40.789474"
|
||||||
|
id="rect4297"
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d4edf1;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#394d54;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4301"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="779.60529"
|
||||||
|
y="241.96747" />
|
||||||
|
<rect
|
||||||
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d6e2ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:9.21052647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
id="rect4303"
|
||||||
|
width="40.789474"
|
||||||
|
height="40.789474"
|
||||||
|
x="824.60529"
|
||||||
|
y="331.96747" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 84 KiB |
|
@ -18,8 +18,9 @@ function! go#cmd#Build(bang, ...)
|
||||||
let goargs = map(copy(a:000), "expand(v:val)")
|
let goargs = map(copy(a:000), "expand(v:val)")
|
||||||
|
|
||||||
" escape all shell arguments before we pass it to make
|
" escape all shell arguments before we pass it to make
|
||||||
|
if !has('nvim')
|
||||||
let goargs = go#util#Shelllist(goargs, 1)
|
let goargs = go#util#Shelllist(goargs, 1)
|
||||||
|
endif
|
||||||
" create our command arguments. go build discards any results when it
|
" create our command arguments. go build discards any results when it
|
||||||
" compiles multiple packages. So we pass the `errors` package just as an
|
" compiles multiple packages. So we pass the `errors` package just as an
|
||||||
" placeholder with the current folder (indicated with '.')
|
" placeholder with the current folder (indicated with '.')
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
let s:sock_type = (has('win32') || has('win64')) ? 'tcp' : 'unix'
|
||||||
|
|
||||||
function! s:gocodeCurrentBuffer()
|
function! s:gocodeCurrentBuffer()
|
||||||
let buf = getline(1, '$')
|
let buf = getline(1, '$')
|
||||||
if &encoding != 'utf-8'
|
if &encoding != 'utf-8'
|
||||||
|
@ -32,7 +34,7 @@ function! s:gocodeCommand(cmd, preargs, args)
|
||||||
let old_gopath = $GOPATH
|
let old_gopath = $GOPATH
|
||||||
let $GOPATH = go#path#Detect()
|
let $GOPATH = go#path#Detect()
|
||||||
|
|
||||||
let socket_type = get(g:, 'go_gocode_socket_type', 'unix')
|
let socket_type = get(g:, 'go_gocode_socket_type', s:sock_type)
|
||||||
let cmd = printf('%s -sock %s %s %s %s',
|
let cmd = printf('%s -sock %s %s %s %s',
|
||||||
\ go#util#Shellescape(bin_path),
|
\ go#util#Shellescape(bin_path),
|
||||||
\ socket_type,
|
\ socket_type,
|
||||||
|
|
|
@ -113,8 +113,8 @@ function! s:jump_to_declaration(out, mode)
|
||||||
" modes of switchbuf which we need based on the split mode
|
" modes of switchbuf which we need based on the split mode
|
||||||
let old_switchbuf = &switchbuf
|
let old_switchbuf = &switchbuf
|
||||||
|
|
||||||
let l:fname = fnamemodify(expand("%"), ':p:gs?\\?/?')
|
normal! m'
|
||||||
if filename != l:fname
|
if filename != fnamemodify(expand("%"), ':p:gs?\\?/?')
|
||||||
" jump to existing buffer if, 1. we have enabled it, 2. the buffer is loaded
|
" jump to existing buffer if, 1. we have enabled it, 2. the buffer is loaded
|
||||||
" and 3. there is buffer window number we switch to
|
" and 3. there is buffer window number we switch to
|
||||||
if get(g:, 'go_def_reuse_buffer', 0) && bufloaded(filename) != 0 && bufwinnr(filename) != -1
|
if get(g:, 'go_def_reuse_buffer', 0) && bufloaded(filename) != 0 && bufwinnr(filename) != -1
|
||||||
|
@ -134,7 +134,7 @@ function! s:jump_to_declaration(out, mode)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" open the file and jump to line and column
|
" open the file and jump to line and column
|
||||||
exec 'edit '.filename
|
exec 'edit' filename
|
||||||
endif
|
endif
|
||||||
call cursor(line, col)
|
call cursor(line, col)
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ function! go#def#Stack(...)
|
||||||
let target = s:go_stack[s:go_stack_level]
|
let target = s:go_stack[s:go_stack_level]
|
||||||
|
|
||||||
" jump
|
" jump
|
||||||
exec 'edit '.target["file"]
|
exec 'edit' target["file"]
|
||||||
call cursor(target["line"], target["col"])
|
call cursor(target["line"], target["col"])
|
||||||
normal! zz
|
normal! zz
|
||||||
else
|
else
|
||||||
|
|
|
@ -85,6 +85,7 @@ function! go#doc#Open(newmode, mode, ...)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let command = printf("%s %s", bin_path, join(a:000, ' '))
|
let command = printf("%s %s", bin_path, join(a:000, ' '))
|
||||||
|
let out = go#util#System(command)
|
||||||
else
|
else
|
||||||
" check if we have 'gogetdoc' and use it automatically
|
" check if we have 'gogetdoc' and use it automatically
|
||||||
let bin_path = go#path#CheckBinPath('gogetdoc')
|
let bin_path = go#path#CheckBinPath('gogetdoc')
|
||||||
|
@ -95,11 +96,27 @@ function! go#doc#Open(newmode, mode, ...)
|
||||||
let offset = go#util#OffsetCursor()
|
let offset = go#util#OffsetCursor()
|
||||||
let fname = expand("%:p:gs!\\!/!")
|
let fname = expand("%:p:gs!\\!/!")
|
||||||
let pos = shellescape(fname.':#'.offset)
|
let pos = shellescape(fname.':#'.offset)
|
||||||
|
|
||||||
let command = printf("%s -pos %s", bin_path, pos)
|
let command = printf("%s -pos %s", bin_path, pos)
|
||||||
|
|
||||||
|
if &modified
|
||||||
|
" gogetdoc supports the same archive format as guru for dealing with
|
||||||
|
" modified buffers.
|
||||||
|
" use the -modified flag
|
||||||
|
" write each archive entry on stdin as:
|
||||||
|
" filename followed by newline
|
||||||
|
" file size followed by newline
|
||||||
|
" file contents
|
||||||
|
let in = ""
|
||||||
|
let sep = go#util#LineEnding()
|
||||||
|
let content = join(getline(1, '$'), sep)
|
||||||
|
let in = fname . "\n" . strlen(content) . "\n" . content
|
||||||
|
let command .= " -modified"
|
||||||
|
let out = go#util#System(command, in)
|
||||||
|
else
|
||||||
|
let out = go#util#System(command)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let out = go#util#System(command)
|
|
||||||
if go#util#ShellError() != 0
|
if go#util#ShellError() != 0
|
||||||
call go#util#EchoError(out)
|
call go#util#EchoError(out)
|
||||||
return
|
return
|
||||||
|
|
|
@ -115,7 +115,7 @@ function! go#fmt#Format(withGoimport)
|
||||||
if !exists('b:goimports_vendor_compatible')
|
if !exists('b:goimports_vendor_compatible')
|
||||||
let out = go#util#System(bin_path . " --help")
|
let out = go#util#System(bin_path . " --help")
|
||||||
if out !~ "-srcdir"
|
if out !~ "-srcdir"
|
||||||
call go#util#EchoWarning("vim-go: goimports does not support srcdir. update with: :GoUpdateBinaries")
|
call go#util#EchoWarning(printf("vim-go: goimports (%s) does not support srcdir. Update with: :GoUpdateBinaries", bin_path))
|
||||||
else
|
else
|
||||||
let b:goimports_vendor_compatible = 1
|
let b:goimports_vendor_compatible = 1
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -151,7 +151,7 @@ function! go#path#CheckBinPath(binpath)
|
||||||
|
|
||||||
" if it's in PATH just return it
|
" if it's in PATH just return it
|
||||||
if executable(binpath)
|
if executable(binpath)
|
||||||
if v:version == 704 && has('patch235')
|
if exists('*exepath')
|
||||||
let binpath = exepath(binpath)
|
let binpath = exepath(binpath)
|
||||||
endif
|
endif
|
||||||
let $PATH = old_path
|
let $PATH = old_path
|
||||||
|
|
|
@ -582,8 +582,9 @@ CTRL-t
|
||||||
Enables or disables automatic highlighting of |:GoSameIds| while moving
|
Enables or disables automatic highlighting of |:GoSameIds| while moving
|
||||||
the cursor. This basically toggles the option |'g:go_auto_sameids'|
|
the cursor. This basically toggles the option |'g:go_auto_sameids'|
|
||||||
on/off.
|
on/off.
|
||||||
If enabled it starts highlighting whenever your cursor is. If disabled it
|
If enabled it starts highlighting whenever your cursor is staying at the
|
||||||
clears and stops automatic highlighting.
|
same position for a configurable period of time (see 'updatetime'). If
|
||||||
|
disabled it clears and stops automatic highlighting.
|
||||||
|
|
||||||
*:GoMetaLinter*
|
*:GoMetaLinter*
|
||||||
:GoMetaLinter [path]
|
:GoMetaLinter [path]
|
||||||
|
@ -695,8 +696,8 @@ CTRL-t
|
||||||
|
|
||||||
Toggles |'g:go_asmfmt_autosave'|.
|
Toggles |'g:go_asmfmt_autosave'|.
|
||||||
|
|
||||||
*:GoMetalinterAutoSaveToggle*
|
*:GoMetaLinterAutoSaveToggle*
|
||||||
:GoMetalinterAutoSaveToggle
|
:GoMetaLinterAutoSaveToggle
|
||||||
|
|
||||||
Toggles |'g:go_metalinter_autosave'|.
|
Toggles |'g:go_metalinter_autosave'|.
|
||||||
|
|
||||||
|
@ -995,7 +996,8 @@ updated. By default it's disabled.
|
||||||
*'g:go_auto_sameids'*
|
*'g:go_auto_sameids'*
|
||||||
|
|
||||||
Use this option to highlight all uses of the identifier under the cursor
|
Use this option to highlight all uses of the identifier under the cursor
|
||||||
(:GoSameIds) automatically. By default it's disabled.
|
(:GoSameIds) automatically. By default it's disabled. The delay can be
|
||||||
|
configured with the 'updatetime' setting.
|
||||||
>
|
>
|
||||||
let g:go_auto_sameids = 0
|
let g:go_auto_sameids = 0
|
||||||
<
|
<
|
||||||
|
@ -1230,6 +1232,12 @@ Highlights field names. By default it's disabled. >
|
||||||
Highlights build constraints. By default it's disabled. >
|
Highlights build constraints. By default it's disabled. >
|
||||||
|
|
||||||
let g:go_highlight_build_constraints = 0
|
let g:go_highlight_build_constraints = 0
|
||||||
|
<
|
||||||
|
*'g:go_highlight_generate_tags'*
|
||||||
|
|
||||||
|
Highlights go:generate directives. By default it's disabled. >
|
||||||
|
|
||||||
|
let g:go_highlight_generate_tags = 0
|
||||||
<
|
<
|
||||||
*'g:go_highlight_string_spellcheck'*
|
*'g:go_highlight_string_spellcheck'*
|
||||||
|
|
||||||
|
@ -1456,8 +1464,7 @@ Vim becomes slow while editing Go files~
|
||||||
|
|
||||||
Don't enable these options:
|
Don't enable these options:
|
||||||
>
|
>
|
||||||
let g:go_highlight_structs = 0
|
let g:go_highlight_types = 0
|
||||||
let g:go_highlight_interfaces = 0
|
|
||||||
let g:go_highlight_operators = 0
|
let g:go_highlight_operators = 0
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ command! -nargs=* -bang -complete=customlist,go#package#Complete GoImportAs call
|
||||||
|
|
||||||
" -- linters
|
" -- linters
|
||||||
command! -nargs=* GoMetaLinter call go#lint#Gometa(0, <f-args>)
|
command! -nargs=* GoMetaLinter call go#lint#Gometa(0, <f-args>)
|
||||||
command! -nargs=0 GoMetalinterAutoSaveToggle call go#lint#ToggleMetaLinterAutoSave()
|
command! -nargs=0 GoMetaLinterAutoSaveToggle call go#lint#ToggleMetaLinterAutoSave()
|
||||||
command! -nargs=* GoLint call go#lint#Golint(<f-args>)
|
command! -nargs=* GoLint call go#lint#Golint(<f-args>)
|
||||||
command! -nargs=* -bang GoVet call go#lint#Vet(<bang>0, <f-args>)
|
command! -nargs=* -bang GoVet call go#lint#Vet(<bang>0, <f-args>)
|
||||||
command! -nargs=* -complete=customlist,go#package#Complete GoErrCheck call go#lint#Errcheck(<f-args>)
|
command! -nargs=* -complete=customlist,go#package#Complete GoErrCheck call go#lint#Errcheck(<f-args>)
|
||||||
|
|
|
@ -127,10 +127,12 @@ hi def link goComplexes Type
|
||||||
" Predefined functions and values
|
" Predefined functions and values
|
||||||
syn match goBuiltins /\<\v(append|cap|close|complex|copy|delete|imag|len)\ze\(/
|
syn match goBuiltins /\<\v(append|cap|close|complex|copy|delete|imag|len)\ze\(/
|
||||||
syn match goBuiltins /\<\v(make|new|panic|print|println|real|recover)\ze\(/
|
syn match goBuiltins /\<\v(make|new|panic|print|println|real|recover)\ze\(/
|
||||||
syn keyword goBoolean iota true false nil
|
syn keyword goBoolean true false
|
||||||
|
syn keyword goPredefinedIdentifiers nil iota
|
||||||
|
|
||||||
hi def link goBuiltins Keyword
|
hi def link goBuiltins Keyword
|
||||||
hi def link goBoolean Boolean
|
hi def link goBoolean Boolean
|
||||||
|
hi def link goPredefinedIdentifiers goBoolean
|
||||||
|
|
||||||
" Comments; their contents
|
" Comments; their contents
|
||||||
syn keyword goTodo contained TODO FIXME XXX BUG
|
syn keyword goTodo contained TODO FIXME XXX BUG
|
||||||
|
@ -175,7 +177,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:go_highlight_format_strings != 0
|
if g:go_highlight_format_strings != 0
|
||||||
syn match goFormatSpecifier /%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)*[vTtbcdoqxXUeEfgGsp]/ contained containedin=goString
|
syn match goFormatSpecifier /\([^%]\(%%\)*\)\@<=%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)*[vTtbcdoqxXUeEfgGsp]/ contained containedin=goString
|
||||||
hi def link goFormatSpecifier goSpecialString
|
hi def link goFormatSpecifier goSpecialString
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -313,7 +315,7 @@ hi def link goMethod Type
|
||||||
|
|
||||||
" Fields;
|
" Fields;
|
||||||
if g:go_highlight_fields != 0
|
if g:go_highlight_fields != 0
|
||||||
syn match goField /\.\w\+\([\ \n\r\:\)\[,]\)\@=/hs=s+1
|
syn match goField /\.\w\+\([.\ \n\r\:\)\[,]\)\@=/hs=s+1
|
||||||
endif
|
endif
|
||||||
hi def link goField Identifier
|
hi def link goField Identifier
|
||||||
|
|
||||||
|
|
|
@ -488,8 +488,18 @@ fun! snipMate#WordBelowCursor() abort
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fun! snipMate#GetSnippetsForWordBelowCursorForComplete(word) abort
|
fun! snipMate#GetSnippetsForWordBelowCursorForComplete(word) abort
|
||||||
let snippets = map(snipMate#GetSnippetsForWordBelowCursor(a:word, 0), 'v:val[0]')
|
let matches = snipMate#GetSnippetsForWordBelowCursor(a:word, 0)
|
||||||
return filter(snippets, 'v:val =~# "\\V\\^' . escape(a:word, '"\') . '"')
|
let snippets = []
|
||||||
|
for [trigger, dict] in matches
|
||||||
|
if get(g:snipMate, 'description_in_completion', 0)
|
||||||
|
call extend(snippets, map(keys(dict),
|
||||||
|
\ '{ "word" : trigger, "menu" : v:val, "dup" : 1 }'))
|
||||||
|
else
|
||||||
|
call add(snippets, { "word" : trigger })
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return filter(snippets,
|
||||||
|
\ 'v:val.word =~# "\\V\\^' . escape(a:word, '"\') . '"')
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fun! snipMate#CanBeTriggered() abort
|
fun! snipMate#CanBeTriggered() abort
|
||||||
|
|
|
@ -160,6 +160,12 @@ g:snipMate.override
|
||||||
maps and other settings work. Note: Load order
|
maps and other settings work. Note: Load order
|
||||||
is determined by 'runtimepath'.
|
is determined by 'runtimepath'.
|
||||||
|
|
||||||
|
g:snipMate.description_in_completion
|
||||||
|
If set to 1 (default is 0), snippet
|
||||||
|
descriptions will be included in the popup
|
||||||
|
menu used for snippet completion, like with
|
||||||
|
<Plug>snipMateShow.
|
||||||
|
|
||||||
g:snipMate['no_match_completion_feedkeys_chars']
|
g:snipMate['no_match_completion_feedkeys_chars']
|
||||||
A string inserted when no match for a trigger
|
A string inserted when no match for a trigger
|
||||||
is found. By default a tab is inserted
|
is found. By default a tab is inserted
|
||||||
|
|
|
@ -73,4 +73,27 @@ snippet modeline "Vim modeline"
|
||||||
vim`!v ':set '. (&expandtab ? printf('et sw=%i ts=%i', &sw, &ts) : printf('noet sts=%i sw=%i ts=%i', &sts, &sw, &ts)) . (&tw ? ' tw='. &tw : '') . ':'`
|
vim`!v ':set '. (&expandtab ? printf('et sw=%i ts=%i', &sw, &ts) : printf('noet sts=%i sw=%i ts=%i', &sts, &sw, &ts)) . (&tw ? ' tw='. &tw : '') . ':'`
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
#########
|
||||||
|
# DATES #
|
||||||
|
#########
|
||||||
|
snippet date "YYYY-MM-DD" w
|
||||||
|
`date +%Y-%m-%d`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ddate "Month DD, YYYY" w
|
||||||
|
`date +%B\ %d,\ %Y`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet diso "ISO format datetime" w
|
||||||
|
`date +%Y-%m-%dT%H:%M:%S%:z`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet time "hh:mm" w
|
||||||
|
`date +%H:%M`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet datetime "YYYY-MM-DD hh:mm" w
|
||||||
|
`date +%Y-%m-%d\ %H:%M`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
# vim:ft=snippets:
|
# vim:ft=snippets:
|
||||||
|
|
|
@ -239,6 +239,18 @@ snippet script "XHTML <script>" w
|
||||||
</script>
|
</script>
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet span "<span>" w
|
||||||
|
<span> ${0:${VISUAL}} </span>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet span. "<span> with class" w
|
||||||
|
<span`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`> ${0:${VISUAL}} </span>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet span# "<span> with ID & class" w
|
||||||
|
<span`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`> ${0:${VISUAL}} </span>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
snippet style "XHTML <style>" w
|
snippet style "XHTML <style>" w
|
||||||
<style type="text/css" media="screen">
|
<style type="text/css" media="screen">
|
||||||
${0:${VISUAL}}
|
${0:${VISUAL}}
|
||||||
|
|
|
@ -46,7 +46,7 @@ for (var ${2:i} = ${1:Things.length} - 1; $2 >= 0; $2--) {
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet fun "function (fun)"
|
snippet fun "function (fun)" w
|
||||||
function ${1:function_name}(${2:argument}) {
|
function ${1:function_name}(${2:argument}) {
|
||||||
${VISUAL}$0
|
${VISUAL}$0
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,21 @@ snippet fori
|
||||||
for ${1:item} <- ${2:items}, into: ${3} do
|
for ${1:item} <- ${2:items}, into: ${3} do
|
||||||
${0}
|
${0}
|
||||||
end
|
end
|
||||||
|
snippet wi
|
||||||
|
with(
|
||||||
|
${1:item} <- ${2:items}
|
||||||
|
) do
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
snippet wie
|
||||||
|
with(
|
||||||
|
${1:item} <- ${2:items}
|
||||||
|
) do
|
||||||
|
${3}
|
||||||
|
else
|
||||||
|
${4} ->
|
||||||
|
${0}
|
||||||
|
end
|
||||||
snippet df
|
snippet df
|
||||||
def ${1:name}, do: ${2}
|
def ${1:name}, do: ${2}
|
||||||
snippet def
|
snippet def
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# .erb and .rhmtl files
|
# .erb and .rhmtl files
|
||||||
|
|
||||||
# Includes html.snippets
|
# Includes html.snippets
|
||||||
|
extends html
|
||||||
|
|
||||||
# Rails *****************************
|
# Rails *****************************
|
||||||
snippet rc
|
snippet rc
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
# Snippet for bemjson. https://en.bem.info/platform/bemjson/
|
||||||
|
|
||||||
|
# Blocks
|
||||||
|
snippet b
|
||||||
|
{
|
||||||
|
block : '${1:name}',
|
||||||
|
content : [
|
||||||
|
'${2:content}'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# btc - BEM block with text content
|
||||||
|
snippet btc
|
||||||
|
{
|
||||||
|
block : '${1:name}',
|
||||||
|
content: '${2:content}'
|
||||||
|
}
|
||||||
|
|
||||||
|
# bwm - BEM block with modifier.
|
||||||
|
snippet bwm
|
||||||
|
{
|
||||||
|
block : '${1:name}',
|
||||||
|
mods: { ${2:modName}: '${3:modVal}' },
|
||||||
|
content : [
|
||||||
|
'${4:content}'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Elems
|
||||||
|
|
||||||
|
# e - BEM elem
|
||||||
|
snippet e
|
||||||
|
{
|
||||||
|
elem : '${1:name}',
|
||||||
|
content : [
|
||||||
|
'${2:content}'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# mo - Mods
|
||||||
|
snippet mo
|
||||||
|
mods : { ${1:modName} : '${2:modVal}' },
|
||||||
|
|
||||||
|
mi - BEM mix mod
|
||||||
|
snippet mi
|
||||||
|
mix : [ { ${1:block} : '${2:block}' } ],
|
||||||
|
|
||||||
|
# a - BEM attrs mod
|
||||||
|
snippet a
|
||||||
|
attrs : { ${1:attr} : '${2:val}' },
|
||||||
|
|
|
@ -262,6 +262,9 @@ snippet cd
|
||||||
# console.error
|
# console.error
|
||||||
snippet ce
|
snippet ce
|
||||||
console.error(${0});
|
console.error(${0});
|
||||||
|
# console.warn
|
||||||
|
snippet cw
|
||||||
|
console.warn(${0});
|
||||||
# console.trace
|
# console.trace
|
||||||
snippet ct
|
snippet ct
|
||||||
console.trace(${0:label});
|
console.trace(${0:label});
|
||||||
|
|
18
sources_non_forked/vim-snippets/snippets/lfe.snippets
Normal file
18
sources_non_forked/vim-snippets/snippets/lfe.snippets
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
snippet defmo
|
||||||
|
(defmodule ${1:`vim_snippets#Filename()`}
|
||||||
|
(export ${2:all}))
|
||||||
|
$0
|
||||||
|
snippet def
|
||||||
|
(defun $1 ($2)
|
||||||
|
$0)
|
||||||
|
snippet ltest
|
||||||
|
(defmodule ${1:`vim_snippets#Filename()`}
|
||||||
|
(behaviour ltest-unit)
|
||||||
|
(export all))
|
||||||
|
|
||||||
|
(include-lib "ltest/include/ltest-macros.lfe")
|
||||||
|
|
||||||
|
$0
|
||||||
|
snippet test
|
||||||
|
(deftest $1
|
||||||
|
$0)
|
|
@ -84,7 +84,9 @@ snippet fore
|
||||||
${1:expression} foreach @${2:array};
|
${1:expression} foreach @${2:array};
|
||||||
# Package
|
# Package
|
||||||
snippet package
|
snippet package
|
||||||
package ${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`};
|
package ${1:`expand('%:p:s?.*lib/??:r:gs?/?::?')`};
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
${0}
|
${0}
|
||||||
|
|
||||||
|
@ -93,7 +95,9 @@ snippet package
|
||||||
__END__
|
__END__
|
||||||
# Package syntax perl >= 5.14
|
# Package syntax perl >= 5.14
|
||||||
snippet packagev514
|
snippet packagev514
|
||||||
package ${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`} ${2:0.99};
|
package ${1:`expand('%:p:s?.*lib/??:r:gs?/?::?')`} ${2:0.99};
|
||||||
|
use v5.14;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
${0}
|
${0}
|
||||||
|
|
||||||
|
|
|
@ -379,6 +379,8 @@ snippet d:mis
|
||||||
display -moz-inline-stack
|
display -moz-inline-stack
|
||||||
snippet d:b
|
snippet d:b
|
||||||
display block
|
display block
|
||||||
|
snippet d:f
|
||||||
|
display flex
|
||||||
snippet d:cp
|
snippet d:cp
|
||||||
display compact
|
display compact
|
||||||
snippet d:ib
|
snippet d:ib
|
||||||
|
|
Loading…
Reference in a new issue