summaryrefslogtreecommitdiff
path: root/.vim/pack/vendor/start/vim-devicons
diff options
context:
space:
mode:
Diffstat (limited to '.vim/pack/vendor/start/vim-devicons')
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/airline/extensions/tabline/formatters/webdevicons.vim14
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/ctrlp.vim30
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/denite.vim10
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/flagship.vim15
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/startify.vim6
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/unite.vim37
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/vimfiler.vim8
-rw-r--r--.vim/pack/vendor/start/vim-devicons/autoload/vimfiler/columns/devicons.vim80
-rw-r--r--.vim/pack/vendor/start/vim-devicons/doc/webdevicons.txt1078
-rw-r--r--.vim/pack/vendor/start/vim-devicons/nerdtree_plugin/webdevicons.vim389
-rw-r--r--.vim/pack/vendor/start/vim-devicons/plugin/webdevicons.vim703
-rw-r--r--.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/__init__.py2
-rw-r--r--.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/__init__.py2
-rw-r--r--.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/segments.py28
-rw-r--r--.vim/pack/vendor/start/vim-devicons/rplugin/python3/denite/filter/devicons_denite_converter.py31
-rw-r--r--.vim/pack/vendor/start/vim-devicons/test/.themisrc1
-rw-r--r--.vim/pack/vendor/start/vim-devicons/test/default_setting.vim39
-rw-r--r--.vim/pack/vendor/start/vim-devicons/test/fileformat.vim29
-rw-r--r--.vim/pack/vendor/start/vim-devicons/test/filetype.vim344
19 files changed, 2846 insertions, 0 deletions
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/airline/extensions/tabline/formatters/webdevicons.vim b/.vim/pack/vendor/start/vim-devicons/autoload/airline/extensions/tabline/formatters/webdevicons.vim
new file mode 100644
index 0000000..c298025
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/airline/extensions/tabline/formatters/webdevicons.vim
@@ -0,0 +1,14 @@
1" Version: 0.11.0
2" Webpage: https://github.com/ryanoasis/vim-devicons
3" Maintainer: Ryan McIntyre <ryanoasis@gmail.com>
4" License: see LICENSE
5
6function! airline#extensions#tabline#formatters#webdevicons#format(bufnr, buffers) abort
7 " Call original formatter.
8 let originalFormatter = airline#extensions#tabline#formatters#{g:_webdevicons_airline_orig_formatter}#format(a:bufnr, a:buffers)
9 return originalFormatter . g:WebDevIconsTabAirLineBeforeGlyphPadding .
10 \ WebDevIconsGetFileTypeSymbol(bufname(a:bufnr)) . g:WebDevIconsTabAirLineAfterGlyphPadding
11endfunction
12
13" modeline syntax:
14" vim: fdm=marker tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/ctrlp.vim b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/ctrlp.vim
new file mode 100644
index 0000000..1ea4898
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/ctrlp.vim
@@ -0,0 +1,30 @@
1" Initialize for up to date ctrlp fork: ctrlpvim/ctrlp.vim
2" Support for kien/ctrlp.vim deprecated since v0.7.0
3" @TODO implementation for CtrlP buffer and find file mode
4
5function! devicons#plugins#ctrlp#init() abort
6 let l:ctrlp_warning_message = 'vim-devicons: https://github.com/kien/ctrlp.vim is deprecated since v0.7.0, please use https://github.com/ctrlpvim/ctrlp.vim'
7 let l:ctrlp_warned_file = webdevicons#pluginHome() . '/status_warned_ctrlp'
8
9 if exists('g:loaded_ctrlp') && g:webdevicons_enable_ctrlp
10 let l:forkedCtrlp = exists('g:ctrlp_mruf_map_string')
11
12 if l:forkedCtrlp
13 if !exists('g:ctrlp_formatline_func')
14 " logic for ctrlpvim/ctrlp.vim:
15 let g:ctrlp_formatline_func = 's:formatline(s:curtype() == "buf" ? v:val : WebDevIconsGetFileTypeSymbol(v:val) . " " . v:val) '
16 endif
17 elseif empty(glob(l:ctrlp_warned_file))
18 " logic for kien/ctrlp.vim:
19 echohl WarningMsg |
20 \ echomsg l:ctrlp_warning_message
21 " only warn first time, do not warn again:
22 try
23 execute writefile(['File automatically generated after warning about CtrlP once', l:ctrlp_warning_message], l:ctrlp_warned_file)
24 catch
25 endtry
26 endif
27 endif
28endfunction
29
30" vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/denite.vim b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/denite.vim
new file mode 100644
index 0000000..5884644
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/denite.vim
@@ -0,0 +1,10 @@
1function! devicons#plugins#denite#init() abort
2 let s:denite_ver = (exists('*denite#get_status_mode') ? 2 : 3)
3 if s:denite_ver == 3
4 call denite#custom#source('file,file/rec,file_mru,file/old,buffer,directory/rec,directory_mru', 'converters', ['devicons_denite_converter'])
5 else
6 call denite#custom#source('file,file_rec,file_mru,file_old,buffer,directory_rec,directory_mru', 'converters', ['devicons_denite_converter'])
7 endif
8endfunction
9
10" vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/flagship.vim b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/flagship.vim
new file mode 100644
index 0000000..f67103c
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/flagship.vim
@@ -0,0 +1,15 @@
1function! devicons#plugins#flagship#init() abort
2 if g:webdevicons_enable_flagship_statusline
3 augroup webdevicons_flagship_filetype
4 autocmd User Flags call Hoist('buffer', 'WebDevIconsGetFileTypeSymbol')
5 augroup END
6 endif
7
8 if g:webdevicons_enable_flagship_statusline_fileformat_symbols
9 augroup webdevicons_flagship_filesymbol
10 autocmd User Flags call Hoist('buffer', 'WebDevIconsGetFileFormatSymbol')
11 augroup END
12 endif
13endfunction
14
15" vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/startify.vim b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/startify.vim
new file mode 100644
index 0000000..f3c2d12
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/startify.vim
@@ -0,0 +1,6 @@
1
2function! devicons#plugins#startify#init() abort
3 exec ":function! StartifyEntryFormat() abort \n return 'WebDevIconsGetFileTypeSymbol(absolute_path) .\" \". entry_path' \n endfunction"
4endfunction
5
6" vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/unite.vim b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/unite.vim
new file mode 100644
index 0000000..c40924a
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/unite.vim
@@ -0,0 +1,37 @@
1function! devicons#plugins#unite#init() abort
2 let s:filters = {
3 \ 'name': 'devicons_unite_converter'
4 \ }
5
6 function! s:filters.filter(candidates, context) abort
7 for candidate in a:candidates
8
9 if has_key(candidate, 'action__buffer_nr')
10 let bufname = bufname(candidate.action__buffer_nr)
11 let filename = fnamemodify(bufname, ':p:t')
12 let path = fnamemodify(bufname, ':p:h')
13 elseif has_key(candidate, 'word') && has_key(candidate, 'action__path')
14 let path = candidate.action__path
15 let filename = candidate.word
16 endif
17
18 let icon = WebDevIconsGetFileTypeSymbol(filename, isdirectory(filename))
19
20 " prevent filenames of buffers getting 'lost'
21 if filename != path
22 let path = printf('%s', filename)
23 endif
24
25 " Customize output format.
26 let candidate.abbr = printf('%s %s', icon, path)
27 endfor
28 return a:candidates
29 endfunction
30
31 call unite#define_filter(s:filters)
32 unlet s:filters
33
34 call unite#custom#source('file,file_rec,buffer,file_rec/async,file_rec/neovim,file_rec/neovim2,file_rec/git', 'converters', 'devicons_unite_converter')
35endfunction
36
37" vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/vimfiler.vim b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/vimfiler.vim
new file mode 100644
index 0000000..62e6c3d
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/devicons/plugins/vimfiler.vim
@@ -0,0 +1,8 @@
1function! devicons#plugins#vimfiler#init() abort
2 call vimfiler#custom#profile('default', 'context', {
3 \ 'columns': 'devicons:size:time',
4 \ 'explorer_columns': 'devicons'
5 \ })
6endfunction
7
8" vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/autoload/vimfiler/columns/devicons.vim b/.vim/pack/vendor/start/vim-devicons/autoload/vimfiler/columns/devicons.vim
new file mode 100644
index 0000000..d11ee22
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/autoload/vimfiler/columns/devicons.vim
@@ -0,0 +1,80 @@
1"=============================================================================
2" FILE: devicons.vim
3" Version: 0.11.0
4" Webpage: https://github.com/ryanoasis/vim-devicons
5" Maintainer: Ryan McIntyre <ryanoasis@gmail.com>
6" License: MIT license {{{
7" Permission is hereby granted, free of charge, to any person obtaining
8" a copy of this software and associated documentation files (the
9" "Software"), to deal in the Software without restriction, including
10" without limitation the rights to use, copy, modify, merge, publish,
11" distribute, sublicense, and/or sell copies of the Software, and to
12" permit persons to whom the Software is furnished to do so, subject to
13" the following conditions:
14"
15" The above copyright notice and this permission notice shall be included
16" in all copies or substantial portions of the Software.
17"
18" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25" }}}
26"=============================================================================
27
28let s:save_cpo = &cpo
29set cpo&vim
30
31function! vimfiler#columns#devicons#define() abort
32 return s:column
33endfunction
34
35let s:column = {
36 \ 'name' : 'devicons',
37 \ 'description' : 'get devicon glyph',
38 \ 'syntax' : 'vimfilerColumn__devicons',
39 \ }
40
41function! s:column.length(files, context) abort
42 return 3
43endfunction
44
45function! s:column.define_syntax(context) abort "{{{
46 syntax match vimfilerColumn__TypeText '\[T\]'
47 \ contained containedin=vimfilerColumn__Type
48 syntax match vimfilerColumn__TypeImage '\[I\]'
49 \ contained containedin=vimfilerColumn__Type
50 syntax match vimfilerColumn__TypeArchive '\[A\]'
51 \ contained containedin=vimfilerColumn__Type
52 syntax match vimfilerColumn__TypeExecute '\[X\]'
53 \ contained containedin=vimfilerColumn__Type
54 syntax match vimfilerColumn__TypeMultimedia '\[M\]'
55 \ contained containedin=vimfilerColumn__Type
56 syntax match vimfilerColumn__TypeDirectory '\[do\]'
57 \ contained containedin=vimfilerColumn__Type
58 syntax match vimfilerColumn__TypeSystem '\[S\]'
59 \ contained containedin=vimfilerColumn__Type
60 syntax match vimfilerColumn__TypeLink '\[L\]'
61 \ contained containedin=vimfilerColumn__Type
62
63 highlight def link vimfilerColumn__TypeText Constant
64 highlight def link vimfilerColumn__TypeImage Type
65 highlight def link vimfilerColumn__TypeArchive Special
66 highlight def link vimfilerColumn__TypeExecute Statement
67 highlight def link vimfilerColumn__TypeMultimedia Identifier
68 highlight def link vimfilerColumn__TypeDirectory Preproc
69 highlight def link vimfilerColumn__TypeSystem Comment
70 highlight def link vimfilerColumn__TypeLink Comment
71endfunction"}}}
72
73function! s:column.get(file, context) abort
74 return WebDevIconsGetFileTypeSymbol(strpart(a:file.action__path, strridx(a:file.action__path, '/')), a:file.vimfiler__is_directory)
75endfunction
76
77let &cpo = s:save_cpo
78unlet s:save_cpo
79
80" vim: foldmethod=marker
diff --git a/.vim/pack/vendor/start/vim-devicons/doc/webdevicons.txt b/.vim/pack/vendor/start/vim-devicons/doc/webdevicons.txt
new file mode 100644
index 0000000..c1f5db1
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/doc/webdevicons.txt
@@ -0,0 +1,1078 @@
1*devicons*
2
3===============================================================================
4Contents ~
5
6 1. Introduction |devicons-introduction|
7 2. Features |devicons-features|
8 3. Installation |devicons-installation|
9 4. Developers |devicons-developers|
10 5. Troubleshooting |devicons-troubleshooting|
11 6. Contributing |devicons-contributing|
12 1. Code of Conduct [22] |devicons-code-of-conduct-22|
13 2. Contributing Guide [23] |devicons-contributing-guide-23|
14 3. Promotion |devicons-promotion|
15 7. Acknowledgments |devicons-acknowledgments|
16 8. License |devicons-license|
17 9. Detailed Installation |devicons-detailed-installation|
18 1. Step 1 'Nerd Font' |Nerd-Font|
19 2. Step 2 'VimDevIcons Plugin' |VimDevIcons-Plugin|
20 1. Pathogen [38] |devicons-pathogen-38|
21 2. NeoBundle [39] |devicons-neobundle-39|
22 3. Vundle [40] |devicons-vundle-40|
23 4. Manual |devicons-manual|
24 3. Step 3 'Configure Vim' |Configure-Vim|
25 1. Set Encoding |devicons-set-encoding|
26 2. Set Font |devicons-set-font|
27 3. vim-airline |devicons-vim-airline|
28 4. vimrc examples |devicons-vimrc-examples|
29 4. That's it! You're done. |devicons-thats-it-youre-done.|
30 10. Usage |devicons-usage|
31 1. NERDTree |devicons-nerdtree|
32 2. Unite |devicons-unite|
33 3. Denite |devicons-denite|
34 4. Vimfiler |devicons-vimfiler|
35 5. CtrlP |devicons-ctrlp|
36 6. Airline |devicons-airline|
37 7. Startify |devicons-startify|
38 8. Lightline Setup |devicons-lightline-setup|
39 9. Powerline Setup |devicons-powerline-setup|
40 10. Flagship |devicons-flagship|
41 11. Detailed Features |devicons-detailed-features|
42 12. Extra Configuration |devicons-extra-configuration|
43 1. Character Mappings |devicons-character-mappings|
44 2. API |devicons-api|
45 1. Public Methods |devicons-public-methods|
46 2. API Examples |devicons-api-examples|
47 1. Status line |devicons-status-line|
48 2. Simple function call |devicons-simple-function-call|
49 3. Integration with other plugins |devicons-integration-with-other-plugins|
50 1. vim-startify |devicons-vim-startify|
51 13. FAQ |devicons-faq|
52 1. Why isn't it working? How come I don't see any icons? |devicons-why-isnt-it-working-how-come-i-dont-see-any-icons|
53 2. How did you get color matching based on file type in NERDtree? |devicons-how-did-you-get-color-matching-based-on-file-type-in-nerdtree|
54 3. How did you get color matching on just the glyph/icon in NERDtree? |devicons-how-did-you-get-color-matching-on-just-glyph-icon-in-nerdtree|
55 4. How do I solve issues after re-sourcing my |vimrc|?
56 5. Why do I have artifacts after (or instead) of icons? |devicons-why-do-i-have-artifacts-after-of-icons|
57 6. Square brackets around icons |devicons-square-brackets-around-icons|
58 1. from terminal |devicons-from-terminal|
59 7. Do I have to use a patched font such as Nerd Fonts? |devicons-do-i-have-to-use-patched-font-such-as-nerd-fonts|
60 8. Rationale: Why does this exist? How did this start? |devicons-rationale-why-does-this-exist-how-did-this-start|
61 14. References |devicons-references|
62
63===============================================================================
64 *devicons-introduction*
65Introduction ~
66>
67 _ ___ ____ ____
68 | | / (_____ ___ / __ \___ _ __/ _/________ ____ _____
69 | | / / / __ `__ \/ / / / _ | | / // // ___/ __ \/ __ \/ ___/
70 | |/ / / / / / / / /_/ / __| |/ _/ // /__/ /_/ / / / (__ )
71 |___/_/_/ /_/ /_/_____/\___/|___/___/\___/\____/_/ /_/____/
72<
73**VimDevIcons**
74
75Adds Icons to Your Plugins
76
77Supports plugins such as NERDTree [1], vim-airline [2], CtrlP [3], powerline
78[4], denite [5], unite [6], lightline.vim [7], vim-startify [8], vimfiler [9],
79vim-workspace [10] and flagship [11].
80
81See Screenshots [12] for more.
82
83===============================================================================
84 *devicons-features*
85Features ~
86
87- Adds filetype glyphs (icons) to various vim plugins.
88- Supports byte order marker (BOM).
89- Customizable and extendable glyphs settings.
90- Supports a wide range of file type extensions.
91- Supports popular full filenames, like '.gitignore', 'node_modules',
92 '.vimrc'.
93- Works with patched fonts, especially Nerd Fonts [13].
94
95See Detailed Features [14] for more.
96
97See Configuration [15] for a list of configuration and customization options.
98
99===============================================================================
100 *devicons-installation*
101Installation ~
102
1031. Install a Nerd Font compatible font [16] or patch your own [17]. Then set
104 your terminal font (or 'guifont' if you are using GUI version of Vim).
105
1062. Install the Vim plugin with your favorite plugin manager, e.g. vim-plug
107 [18]:
108
109 "vim Plug 'ryanoasis/vim-devicons'"
110
111 Always load the vim-devicons as the very last one.
112
1133. Configure Vim
114
115 'vim set encoding=UTF-8'
116
117 No need to set explicitly under Neovim: always uses UTF-8 as the default
118 encoding.
119
120See Installation [19] for detailed setup instructions
121
122Use ':help devicons' for further configuration.
123
124===============================================================================
125 *devicons-developers*
126Developers ~
127
128See DEVELOPER [20] for how to use the API.
129
130===============================================================================
131 *devicons-troubleshooting*
132Troubleshooting ~
133
134See FAQ [21].
135
136===============================================================================
137 *devicons-contributing*
138Contributing ~
139
140-------------------------------------------------------------------------------
141 *devicons-code-of-conduct-22*
142Code of Conduct [22] ~
143
144This project has adopted a Code of Conduct that we expect project participants
145to adhere to. Check out code of conduct [22] for further details.
146
147-------------------------------------------------------------------------------
148 *devicons-contributing-guide-23*
149Contributing Guide [23] ~
150
151Read our contributing [23] guide to learn about how to send pull requests,
152creating issues properly.
153
154-------------------------------------------------------------------------------
155 *devicons-promotion*
156Promotion ~
157
158You can help us by simply giving a star or voting on vim.org. It will ensure
159continued development going forward.
160
161- Star this repository on GitHub [24].
162- Vote for it on vim.org [25].
163
164===============================================================================
165 *devicons-acknowledgments*
166Acknowledgments ~
167
168Thanks goes to these people for inspiration and helping with sending PRs.
169
170- vim-airline [2]
171- nerdtree [1]
172- nerdtree-git-plugin [26] by @Xuyuanp [27]
173- seti-ui [28] by @jesseweed [29]
174- devicons [30] by @vorillaz [31]
175- development.svg.icons [32] by @benatespina [33]
176- Learn Vimscript the Hard Way [34] book by Steve Losh [35]
177- All contributors [36]
178
179===============================================================================
180 *devicons-license*
181License ~
182
183MIT [37]
184
185===============================================================================
186 *devicons-detailed-installation*
187Detailed Installation ~
188
189-------------------------------------------------------------------------------
190 *Nerd-Font*
191Step 1 'Nerd Font' ~
192
193Get a **Nerd Font!** [16] or patch your own. [17] Without this, things break
194
195-------------------------------------------------------------------------------
196 *VimDevIcons-Plugin*
197Step 2 'VimDevIcons Plugin' ~
198
199**Set VimDevIcons to load _after_ these plugins!**
200
201NERDTree [1] | vim-airline [2] | CtrlP [3] | powerline [4] | Denite [5] | unite
202[6] | lightline.vim [7] | vim-startify [8] | vimfiler [9] | flagship [11]
203
204Choose your favorite plugin manager
205
206-------------------------------------------------------------------------------
207 *devicons-pathogen-38*
208Pathogen [38] ~
209
210- 'git clone https://github.com/ryanoasis/vim-devicons ~/.vim/bundle/vim-
211 devicons'
212
213-------------------------------------------------------------------------------
214 *devicons-neobundle-39*
215NeoBundle [39] ~
216
217- Add to vimrc:
218
219 "vim NeoBundle 'ryanoasis/vim-devicons'" * And install it:
220
221 'vim :so ~/.vimrc :NeoBundleInstall'
222
223-------------------------------------------------------------------------------
224 *devicons-vundle-40*
225Vundle [40] ~
226
227- Add to vimrc:
228
229 "vim Plugin 'ryanoasis/vim-devicons'" * And install it:
230
231 'vim :so ~/.vimrc :PlugInstall'
232
233-------------------------------------------------------------------------------
234 *devicons-manual*
235Manual ~
236
237- copy all of the files into your '~/.vim' directory
238
239-------------------------------------------------------------------------------
240 *Configure-Vim*
241Step 3 'Configure Vim' ~
242
243Add the following in your '.vimrc' or '.gvimrc':
244
245-------------------------------------------------------------------------------
246 *devicons-set-encoding*
247Set Encoding ~
248
249**Set encoding to UTF-8 to show glyphs**
250
251'vim set encoding=utf8'
252
253-------------------------------------------------------------------------------
254 *devicons-set-font*
255Set Font ~
256
257**Set Vim font to a Nerd Font**
258
259Linux 'vim set guifont='
260>
261 set guifont=DroidSansMono\ Nerd\ Font\ 11
262<
263macOS (OS X) and Windows
264>
265 set guifont=:h
266<
267
268>
269 set guifont=DroidSansMono\ Nerd\ Font:h11
270 " or:
271 set guifont=DroidSansMono_Nerd_Font:h11
272<
273**Note:** if you don't set 'guifont' then you'll have to set your terminal's
274font, else things break!
275
276-------------------------------------------------------------------------------
277 *devicons-vim-airline*
278vim-airline ~
279
280**If you use vim-airline you need this:**
281
282'vim let g:airline_powerline_fonts = 1'
283
284-------------------------------------------------------------------------------
285 *devicons-vimrc-examples*
286vimrc examples ~
287
288- Sample Windows vimrc configuration 1 [41]
289- Sample Linux vimrc configuration 1 [42]
290
291-------------------------------------------------------------------------------
292 *devicons-thats-it-youre-done.*
293That's it! You're done. ~
294
295===============================================================================
296 *devicons-usage*
297Usage ~
298
299If you installed and setup things correctly you should now see icons in the
300supported plugins!
301
302**Notes on include order:** _for support of these plugins: NERDTree [1], vim-
303airline [2], CtrlP [3], powerline [4], Denite [5], unite [6], vimfiler [9],
304flagship [11] you **must** configure vim to load those plugins__before_ vim-
305devicons loads. for better nerdtree-git-plugin [26] support, you _should_
306configure vim to load nerdtree-git-plugin **_before_** VimDevIcons loads. * if
307you are lazy loading Denite [5] using the Dein plugin manager, you will need to
308source VimDevIcons before Denite loads.
309
310Lightline Setup and Powerline Setup require some extra setup as shown below:
311
312-------------------------------------------------------------------------------
313 *devicons-nerdtree*
314NERDTree ~
315
316Should work "out of the box", no particular configuration should be needed.
317>
318 " Can be enabled or disabled
319 let g:webdevicons_enable_nerdtree = 1
320<
321
322>
323 " whether or not to show the nerdtree brackets around flags
324 let g:webdevicons_conceal_nerdtree_brackets = 1
325<
326-------------------------------------------------------------------------------
327 *devicons-unite*
328Unite ~
329
330Should work "out of the box", no particular configuration should be needed.
331>
332 " Can be enabled or disabled
333 " adding the custom source to unite
334 let g:webdevicons_enable_unite = 1
335<
336-------------------------------------------------------------------------------
337 *devicons-denite*
338Denite ~
339
340Should work "out of the box", no particular configuration should be needed.
341>
342 " Can be enabled or disabled
343 " Adding the custom source to denite
344 let g:webdevicons_enable_denite = 1
345<
346-------------------------------------------------------------------------------
347 *devicons-vimfiler*
348Vimfiler ~
349
350Should work "out of the box", no particular configuration should be needed.
351>
352 " Can be enabled or disabled
353 " adding the column to vimfiler
354 let g:webdevicons_enable_vimfiler = 1
355<
356-------------------------------------------------------------------------------
357 *devicons-ctrlp*
358CtrlP ~
359
360Should work "out of the box", no particular configuration should be needed.
361>
362 " Can be enabled or disabled
363 " add glyphs to all modes
364 let g:webdevicons_enable_ctrlp = 1
365<
366-------------------------------------------------------------------------------
367 *devicons-airline*
368Airline ~
369
370Should work "out of the box", no particular configuration should be needed.
371>
372 " adding to vim-airline's tabline
373 let g:webdevicons_enable_airline_tabline = 1
374<
375
376>
377 " adding to vim-airline's statusline
378 let g:webdevicons_enable_airline_statusline = 1
379<
380-------------------------------------------------------------------------------
381 *devicons-startify*
382Startify ~
383
384Should work "out of the box", no particular configuration should be needed.
385>
386 " Can be enabled or disabled
387 " adding to vim-startify screen
388 let g:webdevicons_enable_startify = 1
389<
390-------------------------------------------------------------------------------
391 *devicons-lightline-setup*
392Lightline Setup ~
393
394To add the appropriate icon to lightline [7], call the function
395'WebDevIconsGetFileTypeSymbol()' and/or 'WebDevIconsGetFileFormatSymbol()' in
396your '.vimrc'. For example, you could set your sections to:
397>
398 let g:lightline = {
399 \ 'component_function': {
400 \ 'filetype': 'MyFiletype',
401 \ 'fileformat': 'MyFileformat',
402 \ }
403 \ }
404
405 function! MyFiletype()
406 return winwidth(0) > 70 ? (strlen(&filetype) ? &filetype . ' ' . WebDevIconsGetFileTypeSymbol() : 'no ft') : ''
407 endfunction
408
409 function! MyFileformat()
410 return winwidth(0) > 70 ? (&fileformat . ' ' . WebDevIconsGetFileFormatSymbol()) : ''
411 endfunction
412<
413-------------------------------------------------------------------------------
414 *devicons-powerline-setup*
415Powerline Setup ~
416
417- _Note this is for the current Powerline [4] not the deprecated vim-
418 powerline [43]_
419
420To enable for Powerline [4] some |vimrc| and powerline configuration changes
421are needed:
422
423|vimrc| changes (only required if you don't already have powerline setup for
424vim):
425>
426 set rtp+=$HOME/.local/lib/python2.7/site-packages/powerline/bindings/vim/
427
428 " Always show statusline
429 set laststatus=2
430
431 " Use 256 colours (Use this setting only if your terminal supports 256 colours)
432 set t_Co=256
433<
434powerline configuration changes:
435
436file type segment
437>
438 {
439 "function": "vim_devicons.powerline.segments.webdevicons",
440 "priority": 10,
441 "draw_soft_divider": false,
442 "after": " "
443 }
444<
445file format segment
446>
447 {
448 "function": "vim_devicons.powerline.segments.webdevicons_file_format",
449 "draw_soft_divider": false,
450 "exclude_modes": ["nc"],
451 "priority": 90
452 }
453<
454for full example see sample file [44]
455
456-------------------------------------------------------------------------------
457 *devicons-flagship*
458Flagship ~
459
460Should work "out of the box", no particular configuration should be needed.
461>
462 " Can be enabled or disabled
463 " adding to flagship's statusline
464 let g:webdevicons_enable_flagship_statusline = 1
465<
466===============================================================================
467 *devicons-detailed-features*
468Detailed Features ~
469
470- Adds filetype glyphs (icons) to various vim plugins, currently supports:
471
472- NERDTree [1]
473
474 - Using the version hosted on vimscripts [45] in favor of GitHub will
475 lead to a outdated message, and icons will fail to show.
476
477- vim-airline [2] (statusline and tabline)
478
479- CtrlP [3] (All modes now supported)
480
481 - Using the version hosted on vimscripts [46] in favor of GitHub will
482 lead to a outdated message, and icons will fail to show.
483
484- powerline [4] (statusline)
485
486 - see: powerline setup
487
488- Denite [5]
489
490 - Currently supports 'file_rec', 'file_old', 'buffer', and
491 'directory_rec'
492
493- unite [6]
494
495 - Currently supports 'file', 'file_rec', 'buffer', 'file_rec/async', and
496 'file_rec/neovim'
497
498- lightline.vim [7] (statusline)
499
500 - see: lightline setup
501
502- vim-startify [8]
503
504- vimfiler [9]
505
506- flagship [11]
507
508 - Support is **experimental** because the API may be changing [47]
509
510- vim-workspace [10]
511
512- Supports byte order marker (BOM)
513
514- Customizable and extendable glyphs (icons) settings
515
516- ability to override defaults and use your own characters or glyphs
517
518- Supports a wide range of file type extensions by default:
519
520- 'styl, sass, scss, htm, html, slim, ejs, css, less, md, rmd, json, js, jsx,
521 rb, php, py, pyc, pyd, pyo, coffee, mustache, hbs, conf, ini, yml, yaml,
522 bat, jpg, jpeg, bmp, png, gif, twig, cpp, c++, cxx, cc, cp, c, h, hpp, hxx,
523 hs, lhs, lua, java, sh, bash, zsh, ksh, csh, awk, ps1, fish, diff, db, clj,
524 cljs, edn, scala, go, dart, xul, sln, suo, pl, pm, t, rss, f#, fsscript,
525 fsx, fs, fsi, rs, rlib, d, erl, hrl, vim, ai, psd, psb, ts, jl, pp, vue,
526 swift, eex, ex, exs'
527
528- Supports a few full filename matches, by default:
529
530- 'gruntfile.coffee, gruntfile.js, gruntfile.ls, gulpfile.coffee,
531 gulpfile.js, gulpfile.ls, dropbox, .ds_store, .gitconfig, .gitignore,
532 .bashrc, .zshrc, .vimrc, .bashprofile, favicon.ico, license, node_modules,
533 react.jsx, procfile'
534
535- Supports a few library pattern matches, by default:
536
537- 'jquery, angular, backbone, requirejs, materialize, mootools, Vagrantfile'
538
539- Works with patched fonts, especially Nerd Fonts [13]
540
541===============================================================================
542 *devicons-extra-configuration*
543Extra Configuration ~
544
545- These options can be defined in your |vimrc| or 'gvimrc'
546
547- Most options are enabled **'1'** by default but can be disabled with
548 **'0'**
549
550- You _should_**not** need to configure anything, however, the following
551 options are provided for customizing or changing the defaults:
552>
553 " loading the plugin
554 let g:webdevicons_enable = 1
555<
556
557>
558 " adding the flags to NERDTree
559 let g:webdevicons_enable_nerdtree = 1
560<
561
562>
563 " adding the custom source to unite
564 let g:webdevicons_enable_unite = 1
565<
566
567>
568 " adding the column to vimfiler
569 let g:webdevicons_enable_vimfiler = 1
570<
571
572>
573 " adding to vim-airline's tabline
574 let g:webdevicons_enable_airline_tabline = 1
575<
576
577>
578 " adding to vim-airline's statusline
579 let g:webdevicons_enable_airline_statusline = 1
580<
581
582>
583 " ctrlp glyphs
584 let g:webdevicons_enable_ctrlp = 1
585<
586
587>
588 " adding to vim-startify screen
589 let g:webdevicons_enable_startify = 1
590<
591
592>
593 " adding to flagship's statusline
594 let g:webdevicons_enable_flagship_statusline = 1
595<
596
597>
598 " turn on/off file node glyph decorations (not particularly useful)
599 let g:WebDevIconsUnicodeDecorateFileNodes = 1
600<
601
602>
603 " use double-width(1) or single-width(0) glyphs
604 " only manipulates padding, has no effect on terminal or set(guifont) font
605 let g:WebDevIconsUnicodeGlyphDoubleWidth = 1
606<
607
608>
609 " whether or not to show the nerdtree brackets around flags
610 let g:webdevicons_conceal_nerdtree_brackets = 1
611<
612
613>
614 " the amount of space to use after the glyph character (default ' ')
615 let g:WebDevIconsNerdTreeAfterGlyphPadding = ' '
616<
617
618>
619 " Force extra padding in NERDTree so that the filetype icons line up vertically
620 let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1
621<
622
623>
624 " Adding the custom source to denite
625 let g:webdevicons_enable_denite = 1
626
627
628
629 " the amount of space to use after the glyph character in vim-airline
630 tabline(default '')
631 let g:WebDevIconsTabAirLineAfterGlyphPadding = ' '
632
633
634
635 " the amount of space to use before the glyph character in vim-airline
636 tabline(default ' ')
637 let g:WebDevIconsTabAirLineBeforeGlyphPadding = ' '
638<
639-------------------------------------------------------------------------------
640 *devicons-character-mappings*
641Character Mappings ~
642
643- 'ƛ' is used as an example below, substitute for the glyph you **actually**
644 want to use
645>
646 " change the default character when no match found
647 let g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol = 'ƛ'
648<
649
650>
651 " set a byte character marker (BOM) utf-8 symbol when retrieving file encoding
652 " disabled by default with no value
653 let g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol = ''
654<
655
656>
657 " enable folder/directory glyph flag (disabled by default with 0)
658 let g:WebDevIconsUnicodeDecorateFolderNodes = 1
659<
660
661>
662 " enable open and close folder/directory glyph flags (disabled by default with 0)
663 let g:DevIconsEnableFoldersOpenClose = 1
664<
665
666>
667 " enable pattern matching glyphs on folder/directory (enabled by default with 1)
668 let g:DevIconsEnableFolderPatternMatching = 1
669<
670
671>
672 " enable file extension pattern matching glyphs on folder/directory (disabled by default with 0)
673 let g:DevIconsEnableFolderExtensionPatternMatching = 0
674<
675
676>
677 " disable showing the distribution for unix file encoding (enabled by default with 1)
678 let g:DevIconsEnableDistro = 0
679<
680
681>
682 " enable custom folder/directory glyph exact matching
683 " (enabled by default when g:WebDevIconsUnicodeDecorateFolderNodes is set to 1)
684 let WebDevIconsUnicodeDecorateFolderNodesExactMatches = 1
685<
686
687>
688 " change the default folder/directory glyph/icon
689 let g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol = 'ƛ'
690<
691
692>
693 " change the default open folder/directory glyph/icon (default is '')
694 let g:DevIconsDefaultFolderOpenSymbol = 'ƛ'
695<
696
697>
698 " change the default dictionary mappings for file extension matches
699
700 let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed
701 let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['js'] = 'ƛ'
702<
703
704>
705 " change the default dictionary mappings for exact file node matches
706
707 let g:WebDevIconsUnicodeDecorateFileNodesExactSymbols = {} " needed
708 let g:WebDevIconsUnicodeDecorateFileNodesExactSymbols['MyReallyCoolFile.okay'] = 'ƛ'
709<
710
711>
712 " add or override individual additional filetypes
713
714 let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed
715 let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['myext'] = 'ƛ'
716<
717
718>
719 " add or override pattern matches for filetypes
720 " these take precedence over the file extensions
721
722 let g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols = {} " needed
723 let g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols['.*jquery.*\.js$'] = 'ƛ'
724<
725specify OS to decide an icon for unix fileformat (_not_ defined by default) -
726this is useful for avoiding unnecessary 'system()' call. see #135 [48] for
727further details.
728>
729 let g:WebDevIconsOS = 'Darwin'
730<
731-------------------------------------------------------------------------------
732 *devicons-api*
733API ~
734>
735 " returns the font character that represents the icon
736 " parameters: a:1 (filename), a:2 (isDirectory)
737 " both parameters optional
738 " by default without parameters uses buffer name
739 WebDevIconsGetFileTypeSymbol(...)
740
741 " returns the font character that represents
742 " the file format as an icon (windows, linux, mac)
743 WebDevIconsGetFileFormatSymbol()
744<
745-------------------------------------------------------------------------------
746 *devicons-public-methods*
747Public Methods ~
748>
749 " Returns the current version of the plugin
750 webdevicons#version()
751<
752
753>
754 " Calls webdevicons#softRefresh()
755 " basically a backwards compatibility convenience
756 webdevicons#refresh()
757<
758
759>
760 " Does a 'hard' refresh of NERDTree
761 " resets vim-devicons syntax and closes and reopens NERDTree
762 webdevicons#hardRefresh()
763<
764
765>
766 " Does a 'soft' refresh of NERDTree
767 " resets vim-devicons syntax and toggles NERDTree to the same state
768 webdevicons#softRefresh()
769<
770-------------------------------------------------------------------------------
771 *devicons-api-examples*
772API Examples ~
773
774-------------------------------------------------------------------------------
775 *devicons-status-line*
776Status line ~
777
778Custom vim status line (not relying on vim-airline or lightline):
779>
780 set statusline=%f\ %{WebDevIconsGetFileTypeSymbol()}\ %h%w%m%r\ %=%(%l,%c%V\ %Y\ %=\ %P%)
781<
782-------------------------------------------------------------------------------
783 *devicons-simple-function-call*
784Simple function call ~
785>
786 echo WebDevIconsGetFileFormatSymbol()
787<
788-------------------------------------------------------------------------------
789 *devicons-integration-with-other-plugins*
790Integration with other plugins ~
791
792-------------------------------------------------------------------------------
793 *devicons-vim-startify*
794vim-startify ~
795>
796 let entry_format = "' ['. index .']'. repeat(' ', (3 - strlen(index)))"
797
798 if exists('*WebDevIconsGetFileTypeSymbol') " support for vim-devicons
799 let entry_format .= ". WebDevIconsGetFileTypeSymbol(entry_path) .' '. entry_path"
800 else
801 let entry_format .= '. entry_path'
802 endif
803<
804===============================================================================
805 *devicons-faq*
806FAQ ~
807
808**Table of Contents:**
809
810**It's not working at all:**
811
812- **Why isn't it working? How come I don't see any icons?**
813
814**Syntax or color highlighting:**
815
816- **How did you get color matching based on file type in NERDtree?**
817- **How did you get color matching on just the glyph/icon in NERDtree?**
818
819**Re-sourcing |vimrc|:**
820
821- **How do I solve issues after re-sourcing my |vimrc|?**
822
823**Weird artifacts after/on the glyphs:**
824
825- **Why do I have artifacts after (or instead) of icons?**
826- **Square brackets around icons?**
827
828**Fonts:**
829
830- **Do I have to use a patched font such as Nerd Fonts?**
831
832**Why does this exist? How did this start?**
833
834-------------------------------------------------------------------------------
835 *devicons-why-isnt-it-working-how-come-i-dont-see-any-icons*
836Why isn't it working? How come I don't see any icons? ~
837
838- Are you using the patched font provided in the separate repo (Nerd Fonts
839 [13]) or are you patching your own?
840
841- _NOTE:_ if running vim and no font set it will default to the terminal font
842 that is set
843
844- check what the vim/gvim font is set to, from ex mode:
845
846 'vim :set guifont?'
847
848- check if the plugin is loaded (should give '1'), from ex mode:
849
850 'vim :echo loaded_webdevicons'
851
852- check if the plugin is enabled (should give '1'), from ex mode:
853
854 'vim :echo g:webdevicons_enable'
855
856- check if the plugin is enabled for NERDTree (should give '1'), from ex
857 mode:
858
859 - this should _NOT_ need to be set under normal circumstances
860
861 'vim :echo g:webdevicons_enable_nerdtree'
862
863- check if you are able to see the characters, from ex mode:
864
865 'vim :echo g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol'
866
867- if all this looks correct you may try this to see if any files show flags
868
869 - last resort, see if you can even set the default symbol and have it
870 display anywhere (NERDTree, vim-airline's statusline, vim-airlines's
871 tabline), from ex mode:
872
873 "vim :let g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol='x'"
874
875-------------------------------------------------------------------------------
876 *devicons-how-did-you-get-color-matching-based-on-file-type-in-nerdtree*
877How did you get color matching based on file type in NERDtree? ~
878
879- You can either use this additional plugin: vim-nerdtree-syntax-highlight
880 [49] created by @tiagofumo [50]
881
882- Or you can use my current settings from:
883 https://github.com/scrooloose/nerdtree/issues/201#issuecomment-9954740
884
885 ```vim " NERDTress File highlighting function!
886 NERDTreeHighlightFile(extension, fg, bg, guifg, guibg) exec 'autocmd
887 FileType nerdtree highlight ' . a:extension .' ctermbg='. a:bg .'
888 ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg exec 'autocmd
889 FileType nerdtree syn match ' . a:extension .' #^\s+.*'. a:extension .'$#'
890 endfunction
891
892 call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515')
893 call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#151515')
894 call NERDTreeHighlightFile('md', 'blue', 'none', '#3366FF', '#151515') call
895 NERDTreeHighlightFile('yml', 'yellow', 'none', 'yellow', '#151515') call
896 NERDTreeHighlightFile('config', 'yellow', 'none', 'yellow', '#151515') call
897 NERDTreeHighlightFile('conf', 'yellow', 'none', 'yellow', '#151515') call
898 NERDTreeHighlightFile('json', 'yellow', 'none', 'yellow', '#151515') call
899 NERDTreeHighlightFile('html', 'yellow', 'none', 'yellow', '#151515') call
900 NERDTreeHighlightFile('styl', 'cyan', 'none', 'cyan', '#151515') call
901 NERDTreeHighlightFile('css', 'cyan', 'none', 'cyan', '#151515') call
902 NERDTreeHighlightFile('coffee', 'Red', 'none', 'red', '#151515') call
903 NERDTreeHighlightFile('js', 'Red', 'none', '#ffa500', '#151515') call
904 NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515') call
905 NERDTreeHighlightFile('ds_store', 'Gray', 'none', '#686868', '#151515')
906 call NERDTreeHighlightFile('gitconfig', 'Gray', 'none', '#686868',
907 '#151515') call NERDTreeHighlightFile('gitignore', 'Gray', 'none',
908 '#686868', '#151515') call NERDTreeHighlightFile('bashrc', 'Gray', 'none',
909 '#686868', '#151515') call NERDTreeHighlightFile('bashprofile', 'Gray',
910 'none', '#686868', '#151515') 'Note: If the colors still are not
911 highlighting, try invoking such as:' autocmd VimEnter * call
912 NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515') ``` per:
913 https://github.com/ryanoasis/vim-devicons/issues/49#issuecomment-101753558
914
915-------------------------------------------------------------------------------
916 *devicons-how-did-you-get-color-matching-on-just-glyph-icon-in-nerdtree*
917How did you get color matching on just the glyph/icon in NERDtree? ~
918
919- You can add something like this to your |vimrc|
920
921 ```vim " NERDTress File highlighting only the glyph/icon " test highlight
922 just the glyph (icons) in nerdtree: autocmd filetype nerdtree highlight
923 haskell_icon ctermbg=none ctermfg=Red guifg=#ffa500 autocmd filetype
924 nerdtree highlight html_icon ctermbg=none ctermfg=Red guifg=#ffa500 autocmd
925 filetype nerdtree highlight go_icon ctermbg=none ctermfg=Red guifg=#ffa500
926
927 autocmd filetype nerdtree syn match haskell_icon ##
928 containedin=NERDTreeFile " if you are using another syn highlight for a
929 given line (e.g. " NERDTreeHighlightFile) need to give that name in the
930 'containedin' for this " other highlight to work with it autocmd filetype
931 nerdtree syn match html_icon ## containedin=NERDTreeFile,html autocmd
932 filetype nerdtree syn match go_icon ## containedin=NERDTreeFile ```
933
934-------------------------------------------------------------------------------
935How do I solve issues after re-sourcing my *vimrc*?
936
937- Try adding this to the bottom of your |vimrc|
938
939 'vim if exists("g:loaded_webdevicons") call webdevicons#refresh() endif'
940
941-------------------------------------------------------------------------------
942 *devicons-why-do-i-have-artifacts-after-of-icons*
943Why do I have artifacts after (or instead) of icons? ~
944
945- Dots after icons in NERDTree (on GVim), try:
946
947'vim autocmd FileType nerdtree setlocal nolist'
948
949source: Issue #110 [51]
950
951- Newly created files in NERDTree are slow to show the glyph (icon)
952- check your current setting of ':updatetime?'
953- try setting 'updatetime' in your |vimrc| to a lower value like '250', for
954 more info see: Issue #153 [52]
955
956-------------------------------------------------------------------------------
957 *devicons-square-brackets-around-icons*
958Square brackets around icons ~
959
960- By default if your Vim supports conceal you should not see these, debug
961 steps:
962
963 - Check if the plugin feature is set (should be '1'):
964
965 'vim echo g:webdevicons_conceal_nerdtree_brackets'
966
967 - Check that your vim was compiled with the 'conceal' feature (should be
968 '+conceal'):
969
970 ```shell
971
972-------------------------------------------------------------------------------
973 *devicons-from-terminal*
974 from terminal ~
975
976 vim --version | grep conceal ```
977
978 - Check the 'conceallevel' (should be '3'):
979
980 'vim set conceallevel?'
981
982-------------------------------------------------------------------------------
983 *devicons-do-i-have-to-use-patched-font-such-as-nerd-fonts*
984Do I have to use a patched font such as Nerd Fonts? ~
985
986VimDevIcons was desired to work with Nerd Fonts [13], however you do _not_ have
987to use a patched font or even Nerd Fonts specified glyphs. You have 2 main
988options:
989
990fontconfig fallback
991
9921. Install the NERD Font symbol fonts:
993
9942. Symbols Nerd Font:style=1000-em [53]
995
9963. Symbols Nerd Font:style=2048-em [54]
997
9984. Install 10-nerd-font-symbols.conf [55] for Fontconfig
999
10005. for additional information see: Issue #124 [56] and [Nerd Fonts
1001 'fontconfig']
1002
1003Use your own glyph codepoints
1004
1005- specify your own glyphs and/or use your own font (see: Character Mappings
1006 [57])
1007
1008-------------------------------------------------------------------------------
1009 *devicons-rationale-why-does-this-exist-how-did-this-start*
1010Rationale: Why does this exist? How did this start? ~
1011
1012After seeing the awesome theme for Atom (seti-ui) and the awesome plugins work
1013done for NERDTree and vim-airline and wanting something like this for Vim I
1014decided to create my first plugin.
1015
1016===============================================================================
1017 *devicons-references*
1018References ~
1019
1020[1] https://github.com/scrooloose/nerdtree
1021[2] https://github.com/vim-airline/vim-airline
1022[3] https://github.com/ctrlpvim/ctrlp.vim
1023[4] https://github.com/powerline/powerline
1024[5] https://github.com/Shougo/denite.nvim
1025[6] https://github.com/Shougo/unite.vim
1026[7] https://github.com/itchyny/lightline.vim
1027[8] https://github.com/mhinz/vim-startify
1028[9] https://github.com/Shougo/vimfiler.vim
1029[10] https://github.com/bagrat/vim-workspace
1030[11] https://github.com/tpope/vim-flagship
1031[12] https://github.com/ryanoasis/vim-devicons/wiki/screenshots
1032[13] https://github.com/ryanoasis/nerd-fonts
1033[14] https://github.com/ryanoasis/vim-devicons/wiki/Detailed-Features
1034[15] https://github.com/ryanoasis/vim-devicons/wiki/Extra-Configuration
1035[16] https://github.com/ryanoasis/nerd-fonts#font-installation
1036[17] https://github.com/ryanoasis/nerd-fonts#font-patcher
1037[18] https://github.com/junegunn/vim-plug
1038[19] https://github.com/ryanoasis/vim-devicons/wiki/Installation
1039[20] DEVELOPER.md
1040[21] https://github.com/ryanoasis/vim-devicons/wiki/FAQ-&-Troubleshooting
1041[22] CODE_OF_CONDUCT.md
1042[23] CONTRIBUTING.md
1043[24] https://github.com/ryanoasis/vim-devicons
1044[25] http://www.vim.org/scripts/script.php?script_id=5114
1045[26] https://github.com/Xuyuanp/nerdtree-git-plugin
1046[27] https://github.com/Xuyuanp
1047[28] https://atom.io/themes/seti-ui
1048[29] https://github.com/jesseweed
1049[30] http://vorillaz.github.io/devicons
1050[31] https://github.com/vorillaz
1051[32] https://github.com/benatespina/development.svg.icons
1052[33] https://github.com/benatespina
1053[34] http://learnvimscriptthehardway.stevelosh.com/
1054[35] http://stevelosh.com/
1055[36] https://github.com/ryanoasis/vim-devicons/graphs/contributors
1056[37] LICENSE
1057[38] https://github.com/tpope/vim-pathogen
1058[39] https://github.com/Shougo/neobundle.vim
1059[40] https://github.com/gmarik/vundle
1060[41] https://github.com/ryanoasis/vim-devicons/wiki/samples/v0.10.x/.vimrc-windows-1
1061[42] https://github.com/ryanoasis/vim-devicons/wiki/samples/v0.10.x/.vimrc-linux-1
1062[43] https://github.com/Lokaltog/vim-powerline
1063[44] https://github.com/ryanoasis/vim-devicons/wiki/samples/v0.10.x/powerline/themes/vim/default.json
1064[45] http://www.vim.org/scripts/script.php?script_id=1658
1065[46] http://www.vim.org/scripts/script.php?script_id=3736
1066[47] https://github.com/tpope/vim-flagship/issues/6#issuecomment-116121220
1067[48] https://github.com/ryanoasis/vim-devicons/pull/135
1068[49] https://github.com/tiagofumo/vim-nerdtree-syntax-highlight
1069[50] https://github.com/tiagofumo
1070[51] https://github.com/ryanoasis/vim-devicons/issues/110#issue-103801335
1071[52] https://github.com/ryanoasis/vim-devicons/issues/153
1072[53] https://github.com/ryanoasis/nerd-fonts/blob/master/src/glyphs/Symbols-1000-em%20Nerd%20Font%20Complete.ttf
1073[54] https://github.com/ryanoasis/nerd-fonts/blob/master/src/glyphs/Symbols-2048-em%20Nerd%20Font%20Complete.ttf
1074[55] https://github.com/ryanoasis/nerd-fonts/blob/master/10-nerd-font-symbols.conf
1075[56] https://github.com/ryanoasis/vim-devicons/issues/124
1076[57] https://github.com/ryanoasis/vim-devicons#character-mappings
1077
1078vim: ft=help
diff --git a/.vim/pack/vendor/start/vim-devicons/nerdtree_plugin/webdevicons.vim b/.vim/pack/vendor/start/vim-devicons/nerdtree_plugin/webdevicons.vim
new file mode 100644
index 0000000..7c1f9f7
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/nerdtree_plugin/webdevicons.vim
@@ -0,0 +1,389 @@
1" Version: 0.11.0
2" Webpage: https://github.com/ryanoasis/vim-devicons
3" Maintainer: Ryan McIntyre <ryanoasis@gmail.com>
4" License: see LICENSE
5
6" @todo fix duplicate global variable initialize here:
7if !exists('g:webdevicons_enable')
8 let g:webdevicons_enable = 1
9endif
10
11if !exists('g:webdevicons_enable_nerdtree')
12 let g:webdevicons_enable_nerdtree = 1
13endif
14
15if !exists('g:DevIconsEnableFoldersOpenClose')
16 let g:DevIconsEnableFoldersOpenClose = 0
17endif
18
19if !exists('g:DevIconsEnableFolderPatternMatching')
20 let g:DevIconsEnableFolderPatternMatching = 1
21endif
22
23if !exists('g:DevIconsEnableFolderExtensionPatternMatching')
24 let g:DevIconsEnableFolderExtensionPatternMatching = 0
25endif
26
27" end @todo duplicate global variables
28
29" Temporary (hopefully) fix for glyph issues in gvim (proper fix is with the
30" actual font patcher)
31if !exists('g:webdevicons_gui_glyph_fix')
32 if has('gui_running')
33 let g:webdevicons_gui_glyph_fix = 1
34 else
35 let g:webdevicons_gui_glyph_fix = 0
36 endif
37endif
38
39if !exists('g:DevIconsEnableNERDTreeRedraw')
40 if has('gui_running')
41 let g:DevIconsEnableNERDTreeRedraw = 1
42 else
43 let g:DevIconsEnableNERDTreeRedraw = 0
44 endif
45endif
46
47if g:webdevicons_enable_nerdtree == 1
48 if !exists('g:loaded_nerd_tree')
49 echohl WarningMsg |
50 \ echomsg 'vim-webdevicons requires NERDTree to be loaded before vim-webdevicons.'
51 endif
52
53 if exists('g:loaded_nerd_tree') && g:loaded_nerd_tree == 1 && !exists('g:NERDTreePathNotifier')
54 let g:webdevicons_enable_nerdtree = 0
55 echohl WarningMsg |
56 \ echomsg 'vim-webdevicons requires a newer version of NERDTree to show glyphs in NERDTree - consider updating NERDTree.'
57 endif
58
59 " @todo I don't even want this to execute UNLESS the user has the
60 " 'nerdtree-git-plugin' INSTALLED (not LOADED)
61 " As it currently functions this warning will display even if the user does
62 " not have nerdtree-git-plugin not just if it isn't loaded yet
63 " (not what we want)
64 "if !exists('g:loaded_nerdtree_git_status')
65 " echohl WarningMsg |
66 " \ echomsg 'vim-webdevicons works better when 'nerdtree-git-plugin' is loaded before vim-webdevicons (small refresh issues otherwise).'
67 "endif
68endif
69
70if !exists('g:webdevicons_enable_airline_tabline')
71 let g:webdevicons_enable_airline_tabline = 1
72endif
73
74if !exists('g:webdevicons_enable_airline_statusline')
75 let g:webdevicons_enable_airline_statusline = 1
76endif
77
78function! s:SetupListeners()
79 call g:NERDTreePathNotifier.AddListener('init', 'NERDTreeWebDevIconsRefreshListener')
80 call g:NERDTreePathNotifier.AddListener('refresh', 'NERDTreeWebDevIconsRefreshListener')
81 call g:NERDTreePathNotifier.AddListener('refreshFlags', 'NERDTreeWebDevIconsRefreshListener')
82endfunction
83
84" util like helpers
85" scope: local
86function! s:Refresh()
87 call b:NERDTree.root.refreshFlags()
88 call NERDTreeRender()
89endfunction
90
91" Temporary (hopefully) fix for glyph issues in gvim (proper fix is with the
92" actual font patcher)
93
94" NERDTree-C
95" scope: global
96function! WebDevIconsNERDTreeChangeRootHandler(node)
97 call b:NERDTree.changeRoot(a:node)
98 call NERDTreeRender()
99 call a:node.putCursorHere(0, 0)
100 if g:DevIconsEnableNERDTreeRedraw ==# 1
101 redraw!
102 endif
103endfunction
104
105" NERDTree-u
106" scope: global
107function! WebDevIconsNERDTreeUpDirCurrentRootClosedHandler()
108 call nerdtree#ui_glue#upDir(0)
109 if g:DevIconsEnableNERDTreeRedraw ==# 1
110 redraw!
111 endif
112endfunction
113
114function! WebDevIconsNERDTreeDirUpdateFlags(node, glyph)
115 let path = a:node.path
116 let isOpen = a:node.isOpen
117 let postPadding = g:WebDevIconsNerdTreeAfterGlyphPadding
118 let prePadding = g:WebDevIconsNerdTreeBeforeGlyphPadding
119 let hasGitFlags = (len(path.flagSet._flagsForScope('git')) > 0)
120 let hasGitNerdTreePlugin = (exists('g:loaded_nerdtree_git_status') == 1)
121 let collapsesToSameLine = (exists('g:NERDTreeCascadeSingleChildDir') == 1)
122 let dirHasOnlyOneChildDir = 0
123
124 if collapsesToSameLine
125 " need to call to determin children:
126 call a:node._initChildren(1)
127 let dirHasOnlyOneChildDir = (a:node.getChildCount() ==# 1 && a:node.children[0].path.isDirectory)
128 endif
129
130 " properly set collapsed/combined directory display to opened glyph
131 if collapsesToSameLine && dirHasOnlyOneChildDir
132 call WebDevIconsNERDTreeDirOpen(a:node.children[0])
133 endif
134
135 " align vertically at the same level: non git-flag nodes with git-flag nodes
136 if g:WebDevIconsNerdTreeGitPluginForceVAlign && !hasGitFlags && hasGitNerdTreePlugin
137 let prePadding .= ' '
138 endif
139
140 let flag = prePadding . a:glyph . postPadding
141
142 call a:node.path.flagSet.clearFlags('webdevicons')
143
144 if flag !=? ''
145 call a:node.path.flagSet.addFlag('webdevicons', flag)
146 "echom "added flag of " . flag
147 call a:node.path.refreshFlags(b:NERDTree)
148 "echom "flagset is now " . string(a:node.path.flagSet)
149 endif
150endfunction
151
152function! WebDevIconsNERDTreeDirClose(node)
153 let a:node.path.isOpen = 0
154 let glyph = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
155 call WebDevIconsNERDTreeDirUpdateFlags(a:node, glyph)
156endfunction
157
158function! WebDevIconsNERDTreeDirOpen(node)
159 let a:node.path.isOpen = 1
160 let glyph = g:DevIconsDefaultFolderOpenSymbol
161 call WebDevIconsNERDTreeDirUpdateFlags(a:node, glyph)
162endfunction
163
164function! WebDevIconsNERDTreeDirOpenRecursively(node)
165 call WebDevIconsNERDTreeDirOpen(a:node)
166 for i in a:node.children
167 if i.path.isDirectory ==# 1
168 call WebDevIconsNERDTreeDirOpenRecursively(i)
169 endif
170 endfor
171endfunction
172
173function! WebDevIconsNERDTreeDirCloseRecursively(node)
174 call WebDevIconsNERDTreeDirClose(a:node)
175 for i in a:node.children
176 if i.path.isDirectory ==# 1
177 call WebDevIconsNERDTreeDirCloseRecursively(i)
178 endif
179 endfor
180endfunction
181
182function! WebDevIconsNERDTreeDirCloseChildren(node)
183 for i in a:node.children
184 if i.path.isDirectory ==# 1
185 call WebDevIconsNERDTreeDirClose(i)
186 endif
187 endfor
188endfunction
189
190" NERDTreeMapActivateNode and <2-LeftMouse>
191" handle the user activating a tree node
192" scope: global
193function! WebDevIconsNERDTreeMapActivateNode(node)
194 let isOpen = a:node.isOpen
195 if isOpen
196 let glyph = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
197 else
198 let glyph = g:DevIconsDefaultFolderOpenSymbol
199 endif
200 let a:node.path.isOpen = !isOpen
201 call WebDevIconsNERDTreeDirUpdateFlags(a:node, glyph)
202 " continue with normal activate logic
203 call a:node.activate()
204 " glyph change possible artifact clean-up
205 if g:DevIconsEnableNERDTreeRedraw ==# 1
206 redraw!
207 endif
208endfunction
209
210" NERDTreeMapActivateNodeSingleMode
211" handle the user activating a tree node if NERDTreeMouseMode is setted to 3
212" scope: global
213function! WebDevIconsNERDTreeMapActivateNodeSingleMode(node)
214 if g:NERDTreeMouseMode == 3
215 let isOpen = a:node.isOpen
216 if isOpen
217 let glyph = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
218 else
219 let glyph = g:DevIconsDefaultFolderOpenSymbol
220 endif
221 let a:node.path.isOpen = !isOpen
222 call WebDevIconsNERDTreeDirUpdateFlags(a:node, glyph)
223 " continue with normal activate logic
224 call a:node.activate()
225 " glyph change possible artifact clean-up
226 if g:DevIconsEnableNERDTreeRedraw ==# 1
227 redraw!
228 endif
229 endif
230endfunction
231
232function! WebDevIconsNERDTreeMapOpenRecursively(node)
233 " normal original logic:
234 call nerdtree#echo('Recursively opening node. Please wait...')
235 call WebDevIconsNERDTreeDirOpenRecursively(a:node)
236 call a:node.openRecursively()
237 " continue with normal original logic:
238 call b:NERDTree.render()
239 " glyph change possible artifact clean-up
240 if g:DevIconsEnableNERDTreeRedraw ==# 1
241 redraw!
242 endif
243 call nerdtree#echo('Recursively opening node. Please wait... DONE')
244endfunction
245
246function! WebDevIconsNERDTreeMapCloseChildren(node)
247 " close children but not current node:
248 call WebDevIconsNERDTreeDirCloseChildren(a:node)
249 " continue with normal original logic:
250 call a:node.closeChildren()
251 call b:NERDTree.render()
252 call a:node.putCursorHere(0, 0)
253 " glyph change possible artifact clean-up
254 if g:DevIconsEnableNERDTreeRedraw ==# 1
255 redraw!
256 endif
257endfunction
258
259function! WebDevIconsNERDTreeMapCloseDir(node)
260 " continue with normal original logic:
261 let parent = a:node.parent
262 while g:NERDTreeCascadeOpenSingleChildDir && !parent.isRoot()
263 let childNodes = parent.getVisibleChildren()
264 if len(childNodes) == 1 && childNodes[0].path.isDirectory
265 let parent = parent.parent
266 else
267 break
268 endif
269 endwhile
270 if parent ==# {} || parent.isRoot()
271 call nerdtree#echo('cannot close tree root')
272 else
273 call parent.close()
274 " update the glyph
275 call WebDevIconsNERDTreeDirClose(parent)
276 call b:NERDTree.render()
277 call parent.putCursorHere(0, 0)
278 " glyph change possible artifact clean-up
279 if g:DevIconsEnableNERDTreeRedraw ==# 1
280 redraw!
281 endif
282 endif
283endfunction
284
285function! WebDevIconsNERDTreeMapUpdirKeepOpen()
286 call WebDevIconsNERDTreeDirOpen(b:NERDTree.root)
287 " continue with normal logic:
288 call nerdtree#ui_glue#upDir(1)
289 call s:Refresh()
290 " glyph change possible artifact clean-up
291 if g:DevIconsEnableNERDTreeRedraw ==# 1
292 redraw!
293 endif
294endfunction
295
296if g:webdevicons_enable == 1 && g:webdevicons_enable_nerdtree == 1
297 call s:SetupListeners()
298
299 if g:DevIconsEnableFoldersOpenClose
300
301 " These overrides are needed because we cannot
302 " simply use AddListener for reliably updating
303 " the folder open/close glyphs because the event
304 " path has no access to the 'isOpen' property
305 " some of these are a little more brittle/fragile
306 " than others
307 " TODO FIXME better way to reliably update
308 " open/close glyphs in NERDTreeWebDevIconsRefreshListener
309
310 " NERDTreeMapActivateNode
311 call NERDTreeAddKeyMap({
312 \ 'key': g:NERDTreeMapActivateNode,
313 \ 'callback': 'WebDevIconsNERDTreeMapActivateNode',
314 \ 'override': 1,
315 \ 'scope': 'DirNode' })
316
317 " NERDTreeMapCustomOpen
318 call NERDTreeAddKeyMap({
319 \ 'key': g:NERDTreeMapCustomOpen,
320 \ 'callback': 'WebDevIconsNERDTreeMapActivateNode',
321 \ 'override': 1,
322 \ 'scope': 'DirNode' })
323
324 " NERDTreeMapOpenRecursively
325 call NERDTreeAddKeyMap({
326 \ 'key': g:NERDTreeMapOpenRecursively,
327 \ 'callback': 'WebDevIconsNERDTreeMapOpenRecursively',
328 \ 'override': 1,
329 \ 'scope': 'DirNode' })
330
331 " NERDTreeMapCloseChildren
332 call NERDTreeAddKeyMap({
333 \ 'key': g:NERDTreeMapCloseChildren,
334 \ 'callback': 'WebDevIconsNERDTreeMapCloseChildren',
335 \ 'override': 1,
336 \ 'scope': 'DirNode' })
337
338 " NERDTreeMapCloseChildren
339 call NERDTreeAddKeyMap({
340 \ 'key': g:NERDTreeMapCloseDir,
341 \ 'callback': 'WebDevIconsNERDTreeMapCloseDir',
342 \ 'override': 1,
343 \ 'scope': 'Node' })
344
345 " <2-LeftMouse>
346 call NERDTreeAddKeyMap({
347 \ 'key': '<2-LeftMouse>',
348 \ 'callback': 'WebDevIconsNERDTreeMapActivateNode',
349 \ 'override': 1,
350 \ 'scope': 'DirNode' })
351
352 " <LeftRelease>
353 call NERDTreeAddKeyMap({
354 \ 'key': '<LeftRelease>',
355 \ 'callback': 'WebDevIconsNERDTreeMapActivateNodeSingleMode',
356 \ 'override': 1,
357 \ 'scope': 'DirNode' })
358
359 " NERDTreeMapUpdirKeepOpen
360 call NERDTreeAddKeyMap({
361 \ 'key': g:NERDTreeMapUpdirKeepOpen,
362 \ 'callback': 'WebDevIconsNERDTreeMapUpdirKeepOpen',
363 \ 'override': 1,
364 \ 'scope': 'all' })
365
366 endif
367
368 " Temporary (hopefully) fix for glyph issues in gvim (proper fix is with the
369 " actual font patcher)
370 if g:webdevicons_gui_glyph_fix ==# 1
371 call NERDTreeAddKeyMap({
372 \ 'key': g:NERDTreeMapChangeRoot,
373 \ 'callback': 'WebDevIconsNERDTreeChangeRootHandler',
374 \ 'override': 1,
375 \ 'quickhelpText': "change tree root to the\n\" selected dir\n\" plus devicons redraw\n\" hack fix",
376 \ 'scope': 'Node' })
377
378 call NERDTreeAddKeyMap({
379 \ 'key': g:NERDTreeMapUpdir,
380 \ 'callback': 'WebDevIconsNERDTreeUpDirCurrentRootClosedHandler',
381 \ 'override': 1,
382 \ 'quickhelpText': "move tree root up a dir\n\" plus devicons redraw\n\" hack fix",
383 \ 'scope': 'all' })
384 endif
385
386endif
387
388" modeline syntax:
389" vim: fdm=marker tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/plugin/webdevicons.vim b/.vim/pack/vendor/start/vim-devicons/plugin/webdevicons.vim
new file mode 100644
index 0000000..596ec68
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/plugin/webdevicons.vim
@@ -0,0 +1,703 @@
1" Version: 0.11.0
2" Webpage: https://github.com/ryanoasis/vim-devicons
3" Maintainer: Ryan McIntyre <ryanoasis@gmail.com>
4" License: see LICENSE
5
6let s:version = '0.11.0'
7let s:plugin_home = expand('<sfile>:p:h:h')
8
9" set scriptencoding after 'encoding' and when using multibyte chars
10scriptencoding utf-8
11
12" standard fix/safety: line continuation (avoiding side effects) {{{1
13"========================================================================
14let s:save_cpo = &cpo
15set cpo&vim
16
17" standard loading / not loading {{{1
18"========================================================================
19
20if exists('g:loaded_webdevicons')
21 finish
22endif
23
24let g:loaded_webdevicons = 1
25
26" config enable / disable settings {{{1
27"========================================================================
28
29""
30" Set the variable to the default value, only if variable is not defined.
31"
32" @param {string} var Variable name with its scope.
33" @param {*} default Default value for variable.
34""
35function! s:set(var, default) abort
36 if !exists(a:var)
37 if type(a:default)
38 execute 'let' a:var '=' string(a:default)
39 else
40 execute 'let' a:var '=' a:default
41 endif
42 endif
43endfunction
44
45call s:set('g:webdevicons_enable', 1)
46call s:set('g:webdevicons_enable_nerdtree', 1)
47call s:set('g:webdevicons_enable_unite ', 1)
48call s:set('g:webdevicons_enable_denite', 1)
49call s:set('g:webdevicons_enable_vimfiler', 1)
50call s:set('g:webdevicons_enable_ctrlp', 1)
51call s:set('g:webdevicons_enable_airline_tabline', 1)
52call s:set('g:webdevicons_enable_airline_statusline', 1)
53call s:set('g:webdevicons_enable_airline_statusline_fileformat_symbols', 1)
54call s:set('g:webdevicons_enable_flagship_statusline', 1)
55call s:set('g:webdevicons_enable_flagship_statusline_fileformat_symbols', 1)
56call s:set('g:webdevicons_enable_startify', 1)
57call s:set('g:webdevicons_conceal_nerdtree_brackets', 1)
58call s:set('g:DevIconsAppendArtifactFix', has('gui_running') ? 1 : 0)
59call s:set('g:DevIconsArtifactFixChar', ' ')
60
61" config options {{{1
62"========================================================================
63
64call s:set('g:WebDevIconsUnicodeDecorateFileNodes', 1)
65call s:set('g:WebDevIconsUnicodeDecorateFolderNodes', 1)
66call s:set('g:DevIconsEnableFoldersOpenClose', 0)
67call s:set('g:DevIconsEnableFolderPatternMatching', 1)
68call s:set('g:DevIconsEnableFolderExtensionPatternMatching', 0)
69call s:set('g:DevIconsEnableDistro', 1)
70call s:set('g:WebDevIconsUnicodeDecorateFolderNodesExactMatches', 1)
71call s:set('g:WebDevIconsUnicodeGlyphDoubleWidth', 1)
72call s:set('g:WebDevIconsNerdTreeBeforeGlyphPadding', ' ')
73call s:set('g:WebDevIconsNerdTreeAfterGlyphPadding', ' ')
74call s:set('g:WebDevIconsNerdTreeGitPluginForceVAlign', 1)
75call s:set('g:NERDTreeUpdateOnCursorHold', 1) " Obsolete: For backward compatibility
76call s:set('g:NERDTreeGitStatusUpdateOnCursorHold', 1)
77call s:set('g:WebDevIconsTabAirLineBeforeGlyphPadding', ' ')
78call s:set('g:WebDevIconsTabAirLineAfterGlyphPadding', '')
79
80" config defaults {{{1
81"========================================================================
82
83call s:set('g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol', '')
84call s:set('g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol', '')
85call s:set('g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol', g:DevIconsEnableFoldersOpenClose ? '' : '')
86call s:set('g:WebDevIconsUnicodeDecorateFolderNodesSymlinkSymbol', '')
87call s:set('g:DevIconsDefaultFolderOpenSymbol', '')
88
89" functions {{{1
90"========================================================================
91
92" local functions {{{2
93"========================================================================
94
95" scope: local
96function s:getDistro()
97 if exists('s:distro')
98 return s:distro
99 endif
100
101 if has('bsd')
102 let s:distro = ''
103 return s:distro
104 endif
105
106 if g:DevIconsEnableDistro && executable('lsb_release')
107 let s:lsb = system('lsb_release -i')
108 if s:lsb =~# 'Arch'
109 let s:distro = ''
110 elseif s:lsb =~# 'Gentoo'
111 let s:distro = ''
112 elseif s:lsb =~# 'Ubuntu'
113 let s:distro = ''
114 elseif s:lsb =~# 'Cent'
115 let s:distro = ''
116 elseif s:lsb =~# 'Debian'
117 let s:distro = ''
118 elseif s:lsb =~# 'Dock'
119 let s:distro = ''
120 else
121 let s:distro = ''
122 endif
123 return s:distro
124 endif
125
126 let s:distro = ''
127 return s:distro
128endfunction
129
130" scope: local
131function s:isDarwin()
132 if exists('s:is_darwin')
133 return s:is_darwin
134 endif
135
136 if exists('g:WebDevIconsOS')
137 let s:is_darwin = g:WebDevIconsOS ==? 'Darwin'
138 return s:is_darwin
139 endif
140
141 if has('macunix')
142 let s:is_darwin = 1
143 return s:is_darwin
144 endif
145
146 if ! has('unix')
147 let s:is_darwin = 0
148 return s:is_darwin
149 endif
150
151 if system('uname -s') ==# "Darwin\n"
152 let s:is_darwin = 1
153 else
154 let s:is_darwin = 0
155 endif
156
157 return s:is_darwin
158endfunction
159
160" scope: local
161function! s:strip(input)
162 return substitute(a:input, '^\s*\(.\{-}\)\s*$', '\1', '')
163endfunction
164
165" scope: local
166function! s:setDictionaries()
167
168 let s:file_node_extensions = {
169 \ 'styl' : '',
170 \ 'sass' : '',
171 \ 'scss' : '',
172 \ 'htm' : '',
173 \ 'html' : '',
174 \ 'slim' : '',
175 \ 'haml' : '',
176 \ 'ejs' : '',
177 \ 'css' : '',
178 \ 'less' : '',
179 \ 'md' : '',
180 \ 'mdx' : '',
181 \ 'markdown' : '',
182 \ 'rmd' : '',
183 \ 'json' : '',
184 \ 'webmanifest' : '',
185 \ 'js' : '',
186 \ 'mjs' : '',
187 \ 'jsx' : '',
188 \ 'rb' : '',
189 \ 'gemspec' : '',
190 \ 'rake' : '',
191 \ 'php' : '',
192 \ 'py' : '',
193 \ 'pyc' : '',
194 \ 'pyo' : '',
195 \ 'pyd' : '',
196 \ 'coffee' : '',
197 \ 'mustache' : '',
198 \ 'hbs' : '',
199 \ 'conf' : '',
200 \ 'ini' : '',
201 \ 'yml' : '',
202 \ 'yaml' : '',
203 \ 'toml' : '',
204 \ 'bat' : '',
205 \ 'mk' : '',
206 \ 'jpg' : '',
207 \ 'jpeg' : '',
208 \ 'bmp' : '',
209 \ 'png' : '',
210 \ 'webp' : '',
211 \ 'gif' : '',
212 \ 'ico' : '',
213 \ 'twig' : '',
214 \ 'cpp' : '',
215 \ 'c++' : '',
216 \ 'cxx' : '',
217 \ 'cc' : '',
218 \ 'cp' : '',
219 \ 'c' : '',
220 \ 'cs' : '',
221 \ 'h' : '',
222 \ 'hh' : '',
223 \ 'hpp' : '',
224 \ 'hxx' : '',
225 \ 'hs' : '',
226 \ 'lhs' : '',
227 \ 'nix' : '',
228 \ 'lua' : '',
229 \ 'java' : '',
230 \ 'sh' : '',
231 \ 'fish' : '',
232 \ 'bash' : '',
233 \ 'zsh' : '',
234 \ 'ksh' : '',
235 \ 'csh' : '',
236 \ 'awk' : '',
237 \ 'ps1' : '',
238 \ 'ml' : 'λ',
239 \ 'mli' : 'λ',
240 \ 'diff' : '',
241 \ 'db' : '',
242 \ 'sql' : '',
243 \ 'dump' : '',
244 \ 'clj' : '',
245 \ 'cljc' : '',
246 \ 'cljs' : '',
247 \ 'edn' : '',
248 \ 'scala' : '',
249 \ 'go' : '',
250 \ 'dart' : '',
251 \ 'xul' : '',
252 \ 'sln' : '',
253 \ 'suo' : '',
254 \ 'pl' : '',
255 \ 'pm' : '',
256 \ 't' : '',
257 \ 'rss' : '',
258 \ 'f#' : '',
259 \ 'fsscript' : '',
260 \ 'fsx' : '',
261 \ 'fs' : '',
262 \ 'fsi' : '',
263 \ 'rs' : '',
264 \ 'rlib' : '',
265 \ 'd' : '',
266 \ 'erl' : '',
267 \ 'hrl' : '',
268 \ 'ex' : '',
269 \ 'exs' : '',
270 \ 'eex' : '',
271 \ 'leex' : '',
272 \ 'heex' : '',
273 \ 'vim' : '',
274 \ 'ai' : '',
275 \ 'psd' : '',
276 \ 'psb' : '',
277 \ 'ts' : '',
278 \ 'tsx' : '',
279 \ 'jl' : '',
280 \ 'pp' : '',
281 \ 'vue' : '﵂',
282 \ 'elm' : '',
283 \ 'swift' : '',
284 \ 'xcplayground' : '',
285 \ 'tex' : 'ﭨ',
286 \ 'r' : 'ﳒ',
287 \ 'rproj' : '鉶',
288 \ 'sol' : 'ﲹ',
289 \ 'pem' : ''
290 \}
291
292 let s:file_node_exact_matches = {
293 \ 'exact-match-case-sensitive-1.txt' : '1',
294 \ 'exact-match-case-sensitive-2' : '2',
295 \ 'gruntfile.coffee' : '',
296 \ 'gruntfile.js' : '',
297 \ 'gruntfile.ls' : '',
298 \ 'gulpfile.coffee' : '',
299 \ 'gulpfile.js' : '',
300 \ 'gulpfile.ls' : '',
301 \ 'mix.lock' : '',
302 \ 'dropbox' : '',
303 \ '.ds_store' : '',
304 \ '.gitconfig' : '',
305 \ '.gitignore' : '',
306 \ '.gitattributes' : '',
307 \ '.gitlab-ci.yml' : '',
308 \ '.bashrc' : '',
309 \ '.zshrc' : '',
310 \ '.zshenv' : '',
311 \ '.zprofile' : '',
312 \ '.vimrc' : '',
313 \ '.gvimrc' : '',
314 \ '_vimrc' : '',
315 \ '_gvimrc' : '',
316 \ '.bashprofile' : '',
317 \ 'favicon.ico' : '',
318 \ 'license' : '',
319 \ 'node_modules' : '',
320 \ 'react.jsx' : '',
321 \ 'procfile' : '',
322 \ 'dockerfile' : '',
323 \ 'docker-compose.yml' : '',
324 \ 'rakefile' : '',
325 \ 'config.ru' : '',
326 \ 'gemfile' : '',
327 \ 'makefile' : '',
328 \ 'cmakelists.txt' : '',
329 \ 'robots.txt' : 'ﮧ'
330 \}
331
332 let s:file_node_pattern_matches = {
333 \ '.*jquery.*\.js$' : '',
334 \ '.*angular.*\.js$' : '',
335 \ '.*backbone.*\.js$' : '',
336 \ '.*require.*\.js$' : '',
337 \ '.*materialize.*\.js$' : '',
338 \ '.*materialize.*\.css$' : '',
339 \ '.*mootools.*\.js$' : '',
340 \ '.*vimrc.*' : '',
341 \ 'Vagrantfile$' : ''
342 \}
343
344 if !exists('g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols')
345 let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {}
346 endif
347
348 if !exists('g:WebDevIconsUnicodeDecorateFileNodesExactSymbols')
349 " do not remove: exact-match-case-sensitive-*
350 let g:WebDevIconsUnicodeDecorateFileNodesExactSymbols = {}
351 endif
352
353 if !exists('g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols')
354 let g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols = {}
355 endif
356
357 " iterate to fix allow user overriding of specific individual keys in vimrc (only gvimrc was working previously)
358 for [key, val] in items(s:file_node_extensions)
359 if !has_key(g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols, key)
360 let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols[key] = val
361 endif
362 endfor
363
364 " iterate to fix allow user overriding of specific individual keys in vimrc (only gvimrc was working previously)
365 for [key, val] in items(s:file_node_exact_matches)
366 if !has_key(g:WebDevIconsUnicodeDecorateFileNodesExactSymbols, key)
367 let g:WebDevIconsUnicodeDecorateFileNodesExactSymbols[key] = val
368 endif
369 endfor
370
371 " iterate to fix allow user overriding of specific individual keys in vimrc (only gvimrc was working previously)
372 for [key, val] in items(s:file_node_pattern_matches)
373 if !has_key(g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols, key)
374 let g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols[key] = val
375 endif
376 endfor
377
378endfunction
379
380" scope: local
381function! s:setSyntax()
382 if g:webdevicons_enable_nerdtree == 1 && g:webdevicons_conceal_nerdtree_brackets == 1
383 augroup webdevicons_conceal_nerdtree_brackets
384 au!
385 autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\]" contained conceal containedin=NERDTreeFlags
386 autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\[" contained conceal containedin=NERDTreeFlags
387 autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\]" contained conceal containedin=NERDTreeLinkFile
388 autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\]" contained conceal containedin=NERDTreeLinkDir
389 autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\[" contained conceal containedin=NERDTreeLinkFile
390 autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\[" contained conceal containedin=NERDTreeLinkDir
391 autocmd FileType nerdtree setlocal conceallevel=3
392 autocmd FileType nerdtree setlocal concealcursor=nvic
393 augroup END
394 endif
395endfunction
396
397" scope: local
398" stole solution/idea from nerdtree-git-plugin :)
399function! s:setCursorHold()
400 if g:webdevicons_enable_nerdtree
401 augroup webdevicons_cursor_hold
402 autocmd CursorHold * silent! call s:CursorHoldUpdate()
403 augroup END
404 endif
405endfunction
406
407" scope: local
408" stole solution/idea from nerdtree-git-plugin :)
409function! s:CursorHoldUpdate()
410 if g:NERDTreeUpdateOnCursorHold != 1 || g:NERDTreeGitStatusUpdateOnCursorHold != 1
411 return
412 endif
413
414 if !exists('g:NERDTree') || !g:NERDTree.IsOpen()
415 return
416 endif
417
418 " Do not update when a special buffer is selected
419 if !empty(&l:buftype)
420 return
421 endif
422
423 " winnr need to make focus go to opened file
424 " CursorToTreeWin needed to avoid error on opening file
425 let l:winnr = winnr()
426 let l:altwinnr = winnr('#')
427
428 call g:NERDTree.CursorToTreeWin()
429 call b:NERDTree.root.refreshFlags()
430 call NERDTreeRender()
431
432 exec l:altwinnr . 'wincmd w'
433 exec l:winnr . 'wincmd w'
434endfunction
435
436" scope: local
437function! s:hardRefreshNerdTree()
438 if g:webdevicons_enable_nerdtree == 1 && g:webdevicons_conceal_nerdtree_brackets == 1 && g:NERDTree.IsOpen()
439 NERDTreeClose
440 NERDTree
441 endif
442endfunction
443
444" scope: local
445function! s:softRefreshNerdTree()
446 if g:webdevicons_enable_nerdtree == 1 && exists('g:NERDTree') && g:NERDTree.IsOpen()
447 NERDTreeToggle
448 NERDTreeToggle
449 endif
450endfunction
451
452" local initialization {{{2
453"========================================================================
454
455" scope: local
456function! s:initialize()
457 call s:setDictionaries()
458 call s:setSyntax()
459 call s:setCursorHold()
460
461 if exists('g:loaded_flagship') | call devicons#plugins#flagship#init() | endif
462 if exists('g:loaded_unite') && g:webdevicons_enable_unite | call devicons#plugins#unite#init() | endif
463 if exists('g:loaded_denite') && g:webdevicons_enable_denite | call devicons#plugins#denite#init() | endif
464 if exists('g:loaded_vimfiler') && g:webdevicons_enable_vimfiler | call devicons#plugins#vimfiler#init() | endif
465 if exists('g:loaded_ctrlp') && g:webdevicons_enable_ctrlp | call devicons#plugins#ctrlp#init() | endif
466 if exists('g:loaded_startify') && g:webdevicons_enable_startify | call devicons#plugins#startify#init() | endif
467endfunction
468
469
470" public functions {{{2
471"========================================================================
472
473" scope: public
474function! webdevicons#version()
475 return s:version
476endfunction
477
478" scope: public
479function! webdevicons#pluginHome()
480 return s:plugin_home
481endfunction
482
483" scope: public
484" allow the first version of refresh to now call softRefresh
485function! webdevicons#refresh()
486 call webdevicons#softRefresh()
487endfunction
488
489" scope: public
490function! webdevicons#hardRefresh()
491 call s:setSyntax()
492 call s:hardRefreshNerdTree()
493endfunction
494
495" scope: public
496function! webdevicons#softRefresh()
497 call s:setSyntax()
498 call s:softRefreshNerdTree()
499endfunction
500
501" a:1 (bufferName), a:2 (isDirectory)
502" scope: public
503function! WebDevIconsGetFileTypeSymbol(...) abort
504 if a:0 == 0
505 let fileNodeExtension = !empty(expand('%:e')) ? expand('%:e') : &filetype
506 let fileNode = expand('%:t')
507 let isDirectory = 0
508 else
509 let fileNodeExtension = fnamemodify(a:1, ':e')
510 let fileNode = fnamemodify(a:1, ':t')
511 if a:0 > 1
512 let isDirectory = a:2
513 else
514 let isDirectory = 0
515 endif
516 endif
517
518 if isDirectory == 0 || g:DevIconsEnableFolderPatternMatching
519
520 let symbol = g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol
521 let fileNodeExtension = tolower(fileNodeExtension)
522 let fileNode = tolower(fileNode)
523
524 for [pattern, glyph] in items(g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols)
525 if match(fileNode, pattern) != -1
526 let symbol = glyph
527 break
528 endif
529 endfor
530
531 if symbol == g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol
532 if has_key(g:WebDevIconsUnicodeDecorateFileNodesExactSymbols, fileNode)
533 let symbol = g:WebDevIconsUnicodeDecorateFileNodesExactSymbols[fileNode]
534 elseif ((isDirectory == 1 && g:DevIconsEnableFolderExtensionPatternMatching) || isDirectory == 0) && has_key(g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols, fileNodeExtension)
535 let symbol = g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols[fileNodeExtension]
536 elseif isDirectory == 1
537 let symbol = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
538 endif
539 endif
540
541 else
542 let symbol = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
543 endif
544
545 let artifactFix = s:DevIconsGetArtifactFix()
546
547 return symbol . artifactFix
548
549endfunction
550
551" scope: local
552" Temporary (hopefully) fix for glyph issues in gvim (proper fix is with the
553" actual font patcher)
554function! s:DevIconsGetArtifactFix()
555 if g:DevIconsAppendArtifactFix == 1
556 let artifactFix = g:DevIconsArtifactFixChar
557 else
558 let artifactFix = ''
559 endif
560
561 return artifactFix
562endfunction
563
564" scope: public
565function! WebDevIconsGetFileFormatSymbol(...)
566 let fileformat = ''
567 let bomb = ''
568
569 if (&bomb && g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol !=? '')
570 let bomb = g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol . ' '
571 endif
572
573 if &fileformat ==? 'dos'
574 let fileformat = ''
575 elseif &fileformat ==? 'unix'
576 let fileformat = s:isDarwin() ? '' : s:getDistro()
577 elseif &fileformat ==? 'mac'
578 let fileformat = ''
579 endif
580
581 let artifactFix = s:DevIconsGetArtifactFix()
582
583 return bomb . fileformat . artifactFix
584endfunction
585
586" for airline plugin {{{3
587"========================================================================
588
589" scope: public
590function! AirlineWebDevIcons(...)
591 let w:airline_section_x = get(w:, 'airline_section_x',
592 \ get(g:, 'airline_section_x', ''))
593 let w:airline_section_x .= ' %{WebDevIconsGetFileTypeSymbol()} '
594 let hasFileFormatEncodingPart = airline#parts#ffenc() !=? ''
595 if g:webdevicons_enable_airline_statusline_fileformat_symbols && hasFileFormatEncodingPart
596 let w:airline_section_y = ' %{&fenc . " " . WebDevIconsGetFileFormatSymbol()} '
597 endif
598endfunction
599
600if g:webdevicons_enable == 1 && exists('g:loaded_airline') && g:loaded_airline == 1 && g:webdevicons_enable_airline_statusline
601 call airline#add_statusline_func('AirlineWebDevIcons')
602endif
603
604if g:webdevicons_enable == 1 && g:webdevicons_enable_airline_tabline
605 " Store original formatter.
606 let g:_webdevicons_airline_orig_formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
607 let g:airline#extensions#tabline#formatter = 'webdevicons'
608endif
609
610" for nerdtree plugin {{{3
611"========================================================================
612
613" scope: public
614function! NERDTreeWebDevIconsRefreshListener(event)
615 let path = a:event.subject
616 let postPadding = g:WebDevIconsNerdTreeAfterGlyphPadding
617 let prePadding = g:WebDevIconsNerdTreeBeforeGlyphPadding
618 let hasGitFlags = (len(path.flagSet._flagsForScope('git')) > 0)
619 let hasGitNerdTreePlugin = (exists('g:loaded_nerdtree_git_status') == 1)
620 let artifactFix = s:DevIconsGetArtifactFix()
621
622 " align vertically at the same level: non git-flag nodes with git-flag nodes
623 if g:WebDevIconsNerdTreeGitPluginForceVAlign && !hasGitFlags && hasGitNerdTreePlugin
624 let prePadding .= ' '
625 endif
626
627 if !path.isDirectory
628 " Hey we got a regular file, lets get it's proper icon
629 let flag = prePadding . WebDevIconsGetFileTypeSymbol(path.str()) . postPadding
630
631 elseif path.isDirectory && g:WebDevIconsUnicodeDecorateFolderNodes == 1
632 " Ok we got a directory, some more tests and checks
633 let directoryOpened = 0
634
635 if g:DevIconsEnableFoldersOpenClose && len(path.flagSet._flagsForScope('webdevicons')) > 0
636 " did the user set different icons for open and close?
637
638 " isOpen is not available on the path listener directly
639 " but we added one via overriding particular keymappings for NERDTree
640 if has_key(path, 'isOpen') && path.isOpen == 1
641 let directoryOpened = 1
642 endif
643 endif
644
645 if g:WebDevIconsUnicodeDecorateFolderNodesExactMatches == 1
646 " Did the user enable exact matching of folder type/names
647 " think node_modules
648 if g:DevIconsEnableFoldersOpenClose && directoryOpened
649 " the folder is open
650 let flag = prePadding . g:DevIconsDefaultFolderOpenSymbol . artifactFix . postPadding
651 else
652 " the folder is not open
653 if path.isSymLink
654 " We have a symlink
655 let flag = prePadding . g:WebDevIconsUnicodeDecorateFolderNodesSymlinkSymbol . artifactFix . postPadding
656 else
657 " We have a regular folder
658 let flag = prePadding . WebDevIconsGetFileTypeSymbol(path.str(), path.isDirectory) . postPadding
659 endif
660 endif
661
662 else
663 " the user did not enable exact matching
664 if g:DevIconsEnableFoldersOpenClose && directoryOpened
665 " the folder is open
666 let flag = prePadding . g:DevIconsDefaultFolderOpenSymbol . artifactFix . postPadding
667 else
668 " the folder is not open
669 if path.isSymLink
670 " We have a symlink
671 let flag = prePadding . g:WebDevIconsUnicodeDecorateFolderNodesSymlinkSymbol . artifactFix . postPadding
672 else
673 " We have a regular folder
674 let flag = prePadding . g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol . artifactFix . postPadding
675 endif
676 endif
677
678 endif
679
680 else
681 let flag = prePadding . ' ' . artifactFix . postPadding
682 endif
683
684 call path.flagSet.clearFlags('webdevicons')
685
686 if flag !=? ''
687 call path.flagSet.addFlag('webdevicons', flag)
688 endif
689
690endfunction
691
692" call setup after processing all the functions (to avoid errors) {{{1
693"========================================================================
694" had some issues with VimEnter, for now using:
695call s:initialize()
696
697" standard fix/safety: line continuation (avoiding side effects) {{{1
698"========================================================================
699let &cpo = s:save_cpo
700unlet s:save_cpo
701
702" modeline syntax:
703" vim: fdm=marker tabstop=2 softtabstop=2 shiftwidth=2 expandtab:
diff --git a/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/__init__.py b/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/__init__.py
new file mode 100644
index 0000000..ece379c
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/__init__.py
@@ -0,0 +1,2 @@
1import pkg_resources
2pkg_resources.declare_namespace(__name__)
diff --git a/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/__init__.py b/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/__init__.py
new file mode 100644
index 0000000..ece379c
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/__init__.py
@@ -0,0 +1,2 @@
1import pkg_resources
2pkg_resources.declare_namespace(__name__)
diff --git a/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/segments.py b/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/segments.py
new file mode 100644
index 0000000..f92f4ee
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/pythonx/vim_devicons/powerline/segments.py
@@ -0,0 +1,28 @@
1# -*- coding: utf-8 -*-
2# vim:se fenc=utf8 noet:
3from __future__ import (unicode_literals, division, absolute_import, print_function)
4
5try:
6 import vim
7except ImportError:
8 vim = {}
9
10from powerline.bindings.vim import (vim_get_func, buffer_name)
11from powerline.theme import requires_segment_info
12
13@requires_segment_info
14def webdevicons(pl, segment_info):
15 webdevicons = vim_get_func('WebDevIconsGetFileTypeSymbol')
16 name = buffer_name(segment_info)
17 return [] if not webdevicons else [{
18 'contents': webdevicons(name),
19 'highlight_groups': ['webdevicons', 'file_name'],
20 }]
21
22@requires_segment_info
23def webdevicons_file_format(pl, segment_info):
24 webdevicons_file_format = vim_get_func('WebDevIconsGetFileFormatSymbol')
25 return [] if not webdevicons_file_format else [{
26 'contents': webdevicons_file_format(),
27 'highlight_groups': ['webdevicons_file_format', 'file_format'],
28 }]
diff --git a/.vim/pack/vendor/start/vim-devicons/rplugin/python3/denite/filter/devicons_denite_converter.py b/.vim/pack/vendor/start/vim-devicons/rplugin/python3/denite/filter/devicons_denite_converter.py
new file mode 100644
index 0000000..6768009
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/rplugin/python3/denite/filter/devicons_denite_converter.py
@@ -0,0 +1,31 @@
1# -*- coding: utf-8 -*-
2# vim:se fenc=utf8 noet:
3from .base import Base
4from os.path import isdir
5
6
7class Filter(Base):
8
9 def __init__(self, vim):
10 super().__init__(vim)
11 self.name = 'devicons_denite_converter'
12 self.description = 'add devicons in front of candidates'
13
14 def filter(self, context):
15 for candidate in context['candidates']:
16
17 if 'bufnr' in candidate:
18 bufname = self.vim.funcs.bufname(candidate['bufnr'])
19 filename = self.vim.funcs.fnamemodify(bufname, ':p:t')
20 elif 'word' in candidate and 'action__path' in candidate:
21 filename = candidate['word']
22
23 icon = self.vim.funcs.WebDevIconsGetFileTypeSymbol(
24 filename, isdir(filename))
25
26 # Customize output format if not done already.
27 if icon not in candidate.get('abbr', '')[:10]:
28 candidate['abbr'] = ' {} {}'.format(
29 icon, candidate.get('abbr', candidate['word']))
30
31 return context['candidates']
diff --git a/.vim/pack/vendor/start/vim-devicons/test/.themisrc b/.vim/pack/vendor/start/vim-devicons/test/.themisrc
new file mode 100644
index 0000000..f59497a
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/test/.themisrc
@@ -0,0 +1 @@
filetype plugin on
diff --git a/.vim/pack/vendor/start/vim-devicons/test/default_setting.vim b/.vim/pack/vendor/start/vim-devicons/test/default_setting.vim
new file mode 100644
index 0000000..b379948
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/test/default_setting.vim
@@ -0,0 +1,39 @@
1scriptencoding utf-8
2
3let s:suite = themis#suite('Webdevicons-default-value')
4let s:assert = themis#helper('assert')
5
6function! s:suite.ExtensionConfig()
7 call s:assert.equals(g:webdevicons_enable, 1)
8 call s:assert.equals(g:webdevicons_enable_nerdtree, 1)
9 call s:assert.equals(g:webdevicons_enable_unite, 1)
10 call s:assert.equals(g:webdevicons_enable_denite, 1)
11 call s:assert.equals(g:webdevicons_enable_vimfiler, 1)
12 call s:assert.equals(g:webdevicons_enable_ctrlp, 1)
13 call s:assert.equals(g:webdevicons_enable_airline_tabline, 1)
14 call s:assert.equals(g:webdevicons_enable_airline_statusline, 1)
15 call s:assert.equals(g:webdevicons_enable_airline_statusline_fileformat_symbols, 1)
16 call s:assert.equals(g:webdevicons_enable_flagship_statusline, 1)
17 call s:assert.equals(g:webdevicons_enable_flagship_statusline_fileformat_symbols, 1)
18 call s:assert.equals(g:webdevicons_enable_startify, 1)
19 call s:assert.equals(g:webdevicons_conceal_nerdtree_brackets, 1)
20endfunction
21
22function! s:suite.ConfigOptions()
23 call s:assert.equals(g:DevIconsAppendArtifactFix, 0)
24 call s:assert.equals(g:DevIconsArtifactFixChar, ' ')
25 call s:assert.equals(g:WebDevIconsUnicodeDecorateFileNodes, 1)
26 call s:assert.equals(g:WebDevIconsUnicodeDecorateFolderNodes, 1)
27 call s:assert.equals(g:DevIconsEnableFoldersOpenClose, 0)
28 call s:assert.equals(g:DevIconsEnableFolderPatternMatching, 1)
29 call s:assert.equals(g:DevIconsEnableFolderExtensionPatternMatching, 0)
30 call s:assert.equals(1, g:WebDevIconsUnicodeDecorateFolderNodesExactMatches, 1)
31 call s:assert.equals(1, g:WebDevIconsUnicodeGlyphDoubleWidth, 1)
32 call s:assert.equals(g:WebDevIconsNerdTreeBeforeGlyphPadding, ' ')
33 call s:assert.equals(g:WebDevIconsNerdTreeAfterGlyphPadding, ' ')
34 call s:assert.equals(g:WebDevIconsNerdTreeGitPluginForceVAlign, 1)
35 call s:assert.equals(g:NERDTreeUpdateOnCursorHold, 1) " Obsolete: for backward compatibility
36 call s:assert.equals(g:NERDTreeGitStatusUpdateOnCursorHold, 1)
37 call s:assert.equals(g:WebDevIconsTabAirLineBeforeGlyphPadding, ' ')
38 call s:assert.equals(g:WebDevIconsTabAirLineAfterGlyphPadding, '')
39endfunction
diff --git a/.vim/pack/vendor/start/vim-devicons/test/fileformat.vim b/.vim/pack/vendor/start/vim-devicons/test/fileformat.vim
new file mode 100644
index 0000000..170a27b
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/test/fileformat.vim
@@ -0,0 +1,29 @@
1scriptencoding utf-8
2
3" Please use nerd-font if you watch icon-font
4
5let s:suite = themis#suite('WebDevIconsGetFileFormatSymbol')
6let s:assert = themis#helper('assert')
7
8function! s:suite.UnixIcon()
9 set fileformat=unix
10 let os = system('uname -a')
11 if os =~# 'Darwin'
12 call s:assert.equals(WebDevIconsGetFileFormatSymbol(), '')
13 " It may return Ubuntu because github-actions's OS is Ubuntu
14 elseif os =~# 'Ubuntu'
15 call s:assert.equals(WebDevIconsGetFileFormatSymbol(), '')
16 else
17 call s:assert.skip('Skip testing except for Ubuntu and Mac.')
18 endif
19endfunction
20
21function! s:suite.WindowsIcon()
22 set fileformat=dos
23 call s:assert.equals(WebDevIconsGetFileFormatSymbol(), '')
24endfunction
25
26function! s:suite.MacIcon()
27 set fileformat=mac
28 call s:assert.equals(WebDevIconsGetFileFormatSymbol(), '')
29endfunction
diff --git a/.vim/pack/vendor/start/vim-devicons/test/filetype.vim b/.vim/pack/vendor/start/vim-devicons/test/filetype.vim
new file mode 100644
index 0000000..3669ad9
--- /dev/null
+++ b/.vim/pack/vendor/start/vim-devicons/test/filetype.vim
@@ -0,0 +1,344 @@
1scriptencoding utf-8
2
3" Please use nerd-font if you watch icon-font
4
5let s:suite = themis#suite('WebDevIconsGetFileTypeSymbol')
6let s:assert = themis#helper('assert')
7
8function! s:Assert(filename, icon)
9 call s:assert.equals(WebDevIconsGetFileTypeSymbol(a:filename), a:icon)
10endfunction
11
12function! s:suite.NoArgument_GetDefaultIcon()
13 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
14endfunction
15
16function! s:suite.__OneArgument_VimIcon__()
17 let targetfilenames = ['.vimrc', 'vimrc', '.gvimrc', '_gvimrc', 'test.vim']
18 let expecticon = ''
19 let child = themis#suite('OneArgument_VimIcon')
20
21 for targetfilename in targetfilenames
22 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
23 endfor
24endfunction
25
26function! s:suite.__OneArgument_RubyIcon__()
27 let targetfilenames = ['test.rb', 'rakefile', 'RAKEFILE', 'Gemfile', 'config.ru']
28 let expecticon = ''
29 let child = themis#suite('OneArgument_RubyIcon')
30
31 for targetfilename in targetfilenames
32 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
33 endfor
34endfunction
35
36function! s:suite.__OneArgument_MarkDownIcon__()
37 let targetfilenames = ['test.md', 'test.markdown', 'test.mdx', 'test.rmd']
38 let expecticon = ''
39 let child = themis#suite('OneArgument_MarkDownIcon')
40
41 for targetfilename in targetfilenames
42 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
43 endfor
44endfunction
45
46function! s:suite.__OneArgument_PythonIcon__()
47 let targetfilenames = ['test.py', 'test.pyc', 'test.pyo', 'test.pyd']
48 let expecticon = ''
49 let child = themis#suite('OneArgument_PythonIcon')
50
51 for targetfilename in targetfilenames
52 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
53 endfor
54endfunction
55
56function! s:suite.__OneArgument_ShellIcon__()
57 let targetfilenames = ['test.sh', 'test.fish', 'test.bash', 'test.ksh', 'test.csh', 'test.awk', 'test.ps1']
58 let expecticon = ''
59 let child = themis#suite('OneArgument_ShellIcon')
60
61 for targetfilename in targetfilenames
62 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
63 endfor
64endfunction
65
66function! s:suite.__OneArgument_DBIcon__()
67 let targetfilenames = ['test.db', 'test.sql', 'test.dump']
68 let expecticon = ''
69 let child = themis#suite('OneArgument_DBIcon')
70
71 for targetfilename in targetfilenames
72 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
73 endfor
74endfunction
75
76function! s:suite.__OneArgument_RustIcon__()
77 let targetfilenames = ['test.rs', 'test.rlib']
78 let expecticon = ''
79 let child = themis#suite('OneArgument_RustIcon')
80
81 for targetfilename in targetfilenames
82 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
83 endfor
84endfunction
85
86function! s:suite.__OneArgument_DockerIcon__()
87 let targetfilenames = ['Dockerfile', 'docker-compose.yml']
88 let expecticon = ''
89 let child = themis#suite('OneArgument_DockerIcon')
90
91 for targetfilename in targetfilenames
92 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
93 endfor
94endfunction
95
96function! s:suite.__OneArgument_JavaScriptIcon__()
97 let targetfilenames = ['test.js', 'test.mjs']
98 let expecticon = ''
99 let child = themis#suite('OneArgument_JavaScriptIcon')
100
101 for targetfilename in targetfilenames
102 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
103 endfor
104endfunction
105
106function! s:suite.__OneArgument_ReactIcon__()
107 let targetfilenames = ['test.jsx', 'test.tsx', 'react.jsx']
108 let expecticon = ''
109 let child = themis#suite('OneArgument_ReactIcon')
110
111 for targetfilename in targetfilenames
112 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
113 endfor
114endfunction
115
116function! s:suite.__OneArgument_JsonIcon__()
117 let targetfilenames = ['test.json', 'test.webmanifest']
118 let expecticon = ''
119 let child = themis#suite('OneArgument_JsonIcon')
120
121 for targetfilename in targetfilenames
122 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
123 endfor
124endfunction
125
126function! s:suite.__OneArgument_GearIcon__()
127 let targetfilenames = ['.DS_Store', 'Makefile', 'test.mk', '.bashrc', '.zshrc', '.gitignore', '.gitattributes', 'cmakelists.txt', 'test.yaml', 'test.yml', 'test.toml', 'test.bat']
128 let expecticon = ''
129 let child = themis#suite('OneArgument_GearIcon')
130
131 for targetfilename in targetfilenames
132 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
133 endfor
134endfunction
135
136function! s:suite.__OneArgument_ErlangIcon__()
137 let targetfilenames = ['test.erl', 'test.hrl']
138 let expecticon = ''
139 let child = themis#suite('OneArgument_ErlangIcon')
140
141 for targetfilename in targetfilenames
142 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
143 endfor
144endfunction
145
146function! s:suite.__OneArgument_SwiftIcon__()
147 let targetfilenames = ['test.swift', 'test.xcplayground']
148 let expecticon = ''
149 let child = themis#suite('OneArgument_SwiftIcon')
150
151 for targetfilename in targetfilenames
152 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
153 endfor
154endfunction
155
156function! s:suite.__OneArgument_HaskellIcon__()
157 let targetfilenames = ['test.hs', 'test.lhs']
158 let expecticon = ''
159 let child = themis#suite('OneArgument_HaskellIcon')
160
161 for targetfilename in targetfilenames
162 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
163 endfor
164endfunction
165
166function! s:suite.__OneArgument_CppIcon__()
167 let targetfilenames = ['test.cpp', 'test.c++', 'test.cp', 'test.cxx', 'test.cc']
168 let expecticon = ''
169 let child = themis#suite('OneArgument_C++Icon')
170
171 for targetfilename in targetfilenames
172 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
173 endfor
174endfunction
175
176function! s:suite.__OneArgument_ElixirIcon__()
177 let targetfilenames = ['test.ex', 'test.exs', 'test.eex', 'test.leex', 'test.heex']
178 let expecticon = ''
179 let child = themis#suite('OneArgument_ElixirIcon')
180
181 for targetfilename in targetfilenames
182 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
183 endfor
184endfunction
185
186function! s:suite.__OneArgument_PerlIcon__()
187 let targetfilenames = ['test.pl', 'test.pm', 'test.t']
188 let expecticon = ''
189 let child = themis#suite('OneArgument_PerlIcon')
190
191 for targetfilename in targetfilenames
192 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
193 endfor
194endfunction
195
196function! s:suite.__OneArgument_FSharpIcon__()
197 let targetfilenames = ['test.fs', 'test.fsx', 'test.fsi', 'test.fsscript']
198 let expecticon = ''
199 let child = themis#suite('OneArgument_FSharpIcon')
200
201 for targetfilename in targetfilenames
202 let child[targetfilename] = funcref('s:Assert', [targetfilename, expecticon])
203 endfor
204endfunction
205
206function! s:suite.OneArgument_GetTypeScriptIcon()
207 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.ts'), '')
208endfunction
209
210function! s:suite.OneArgument_GetVueIcon()
211 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.vue'), '﵂')
212endfunction
213
214function! s:suite.OneArgument_GetNodeModuleIcon()
215 call s:assert.equals(WebDevIconsGetFileTypeSymbol('node_modules'), '')
216endfunction
217
218function! s:suite.OneArgument_GetDropboxIcon()
219 call s:assert.equals(WebDevIconsGetFileTypeSymbol('Dropbox'), '')
220endfunction
221
222function! s:suite.OneArgument_GetRIcon()
223 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.r'), 'ﳒ')
224endfunction
225
226function! s:suite.OneArgument_GetLuaIcon()
227 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.lua'), '')
228endfunction
229
230function! s:suite.OneArgument_GetJavaIcon()
231 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.java'), '')
232endfunction
233
234function! s:suite.OneArgument_GetCIcon()
235 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.c'), '')
236endfunction
237
238function! s:suite.OneArgument_GetCSSIcon()
239 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.cs'), '')
240endfunction
241
242function! s:suite.OneArgument_GetCSharpIcon()
243 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.cs'), '')
244endfunction
245
246function! s:suite.OneArgument_GetElmIcon()
247 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.elm'), '')
248endfunction
249
250function! s:suite.OneArgument_GetRssIcon()
251 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.rss'), '')
252endfunction
253
254function! s:suite.OneArgument_GetDartIcon()
255 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.dart'), '')
256endfunction
257
258function! s:suite.OneArgument_GetSolidityIcon()
259 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.sol'), 'ﲹ')
260endfunction
261
262function! s:suite.OneArgument_GetGoIcon()
263 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.go'), '')
264endfunction
265
266function! s:suite.OneArgument_GetPhpIcon()
267 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.php'),'')
268endfunction
269
270function! s:suite.OneArgument_GetScalaIcon()
271 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.scala'), '')
272endfunction
273
274function! s:suite.OneArgument_GetTexIcon()
275 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.tex'), 'ﭨ')
276endfunction
277
278function! s:suite.OneArgument_GetLicenseIcon()
279 call s:assert.equals( WebDevIconsGetFileTypeSymbol('LICENSE'), '')
280endfunction
281
282function! s:suite.OneArgument_GetRobotIcon()
283 call s:assert.equals( WebDevIconsGetFileTypeSymbol('robots.txt'), 'ﮧ')
284endfunction
285
286function! s:suite.OneArgument_PemIcon()
287 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.pem'), '')
288endfunction
289
290function! s:suite.TwoArgument_zero_GetFileIcon()
291 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.vim', 0), '')
292endfunction
293
294function! s:suite.TwoArgument_one_GetFolderIcon()
295 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.vim', 1), '')
296endfunction
297
298function! s:suite.TwoArgument_two_GetDefaultIcon()
299 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.vim', 2), '')
300endfunction
301
302function! s:suite.TwoArgument_string_GetFileTypeIcon()
303 call s:assert.equals( WebDevIconsGetFileTypeSymbol('test.php', 'test.vim'), '')
304endfunction
305
306function! s:suite.NoArgument_OverWriteFileType_GetVimIcon()
307 set ft=vim
308 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
309endfunction
310
311function! s:suite.NoArgument_EditVimFile_GetVimIcon()
312 edit! test.vim
313 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
314endfunction
315
316function! s:suite.NoArgument_Editvimrc_GetVimIcon()
317 edit! vimrc
318 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
319endfunction
320
321function! s:suite.NoArgument_EditPythonFile_GetPythonIcon()
322 edit! test.py
323 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
324endfunction
325
326function! s:suite.NoArgument_EditjavaScriptFile_GetjavaScriptIcon()
327 edit! test.js
328 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
329endfunction
330
331function! s:suite.NoArgument_EditRustFile_GetRustIcon()
332 edit! test.rs
333 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
334endfunction
335
336function! s:suite.NoArgument_EditMKFile_GetGearIcon()
337 edit! test.mk
338 call s:assert.equals(WebDevIconsGetFileTypeSymbol(), '')
339endfunction
340
341function! s:suite.OneArgument_EditPythonFile_GetRubyIcon()
342 edit! test.py
343 call s:assert.equals(WebDevIconsGetFileTypeSymbol('test.rb'), '')
344endfunction