From 1b26a378543c5cb47955ba714426651a639c75de Mon Sep 17 00:00:00 2001 From: Siew Yi Liang Date: Fri, 29 Jan 2016 10:58:35 -0500 Subject: [PATCH 01/29] -added personal git configuration file --- .gitignore | 1 - my_configs.vim | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 my_configs.vim diff --git a/.gitignore b/.gitignore index 66d01465..92da2791 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,5 @@ sources_non_forked/ack.vim/.netrwhist temp_dirs/yankring_history_v2.txt sources_forked/yankring/doc/tags sources_non_forked/tlib/doc/tags -my_configs.vim tags .DS_Store diff --git a/my_configs.vim b/my_configs.vim new file mode 100644 index 00000000..e7a98c39 --- /dev/null +++ b/my_configs.vim @@ -0,0 +1,5 @@ +set listchars=tab:»·,trail:· +set list +set number +syntax on +colorscheme monokai \ No newline at end of file From 0bdc6e3a565de29acd7b08918e7d567cffdfe0d1 Mon Sep 17 00:00:00 2001 From: Siew Yi Liang Date: Fri, 29 Jan 2016 17:45:12 -0500 Subject: [PATCH 02/29] updated personal configs --- my_configs.vim | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/my_configs.vim b/my_configs.vim index e7a98c39..7782c9f4 100644 --- a/my_configs.vim +++ b/my_configs.vim @@ -1,5 +1,26 @@ +" Basic formatting settings set listchars=tab:»·,trail:· set list +" Turn on line numbering set number syntax on -colorscheme monokai \ No newline at end of file +colorscheme monokai + +" Enable folding +set foldmethod=indent +set foldlevel=99 + +" Adds proper PEP-8 settings for Python files +au BufNewFile,BufRead *.py + \ set tabstop=4 + \ set softtabstop=4 + \ set shiftwidth=4 + \ set textwidth=79 + \ set expandtab + \ set autoindent + \ set fileformat=unix + +au BufNewFile,BufRead *.js, *.html, *.css + \ set tabstop=2 + \ set softtabstop=2 + \ set shiftwidth=2 From df3e1e35a9e18840fcb5ae691c8a987b7c7efb3a Mon Sep 17 00:00:00 2001 From: Siew Yi Liang Date: Fri, 29 Jan 2016 10:58:35 -0500 Subject: [PATCH 03/29] -added personal git configuration file --- .gitignore | 1 - my_configs.vim | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 my_configs.vim diff --git a/.gitignore b/.gitignore index 66d01465..92da2791 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,5 @@ sources_non_forked/ack.vim/.netrwhist temp_dirs/yankring_history_v2.txt sources_forked/yankring/doc/tags sources_non_forked/tlib/doc/tags -my_configs.vim tags .DS_Store diff --git a/my_configs.vim b/my_configs.vim new file mode 100644 index 00000000..e7a98c39 --- /dev/null +++ b/my_configs.vim @@ -0,0 +1,5 @@ +set listchars=tab:»·,trail:· +set list +set number +syntax on +colorscheme monokai \ No newline at end of file From 1580137f32a065463602edc92ba78696c0e2bf9f Mon Sep 17 00:00:00 2001 From: Siew Yi Liang Date: Fri, 29 Jan 2016 17:45:12 -0500 Subject: [PATCH 04/29] updated personal configs --- my_configs.vim | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/my_configs.vim b/my_configs.vim index e7a98c39..7782c9f4 100644 --- a/my_configs.vim +++ b/my_configs.vim @@ -1,5 +1,26 @@ +" Basic formatting settings set listchars=tab:»·,trail:· set list +" Turn on line numbering set number syntax on -colorscheme monokai \ No newline at end of file +colorscheme monokai + +" Enable folding +set foldmethod=indent +set foldlevel=99 + +" Adds proper PEP-8 settings for Python files +au BufNewFile,BufRead *.py + \ set tabstop=4 + \ set softtabstop=4 + \ set shiftwidth=4 + \ set textwidth=79 + \ set expandtab + \ set autoindent + \ set fileformat=unix + +au BufNewFile,BufRead *.js, *.html, *.css + \ set tabstop=2 + \ set softtabstop=2 + \ set shiftwidth=2 From 11c8e222a1f7c89b1377f41d40df7da93dbae0bd Mon Sep 17 00:00:00 2001 From: Siew Yi Liang Date: Tue, 9 Feb 2016 20:16:12 -0500 Subject: [PATCH 05/29] ignore latex-box and vim-rails packages --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 92da2791..a9fd60dc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,8 @@ sources_non_forked/ack.vim/.netrwhist temp_dirs/yankring_history_v2.txt sources_forked/yankring/doc/tags sources_non_forked/tlib/doc/tags +sources_non_forked/LaTeX-Box +sources_non_forked/vim-rails +my_configs.vim tags .DS_Store From 0229c2176ac48675876a2d7df1fe00afe7253c27 Mon Sep 17 00:00:00 2001 From: Siew Yi Liang Date: Sat, 5 Mar 2016 03:07:41 -0800 Subject: [PATCH 06/29] -adding latexmk sources --- sources_non_forked/latexmk.zip | Bin 0 -> 343022 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sources_non_forked/latexmk.zip diff --git a/sources_non_forked/latexmk.zip b/sources_non_forked/latexmk.zip new file mode 100644 index 0000000000000000000000000000000000000000..5b89d755caca39b1efc7768bfbe3099f0ab6d398 GIT binary patch literal 343022 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"^gmNsQVR0#AccxN=&G;+Q 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�QrSD|wPmnrCY-hDp>k!iwV_+} zg~T9n8?3-v=QaOaEuOQG*2NyNI@T`*Zw{jnix};6zD%HDqF9R5CX#K3y8R?lizMRM zeL~I~R23@*HoWgh-i+;S59XwIlt%58!Qp_AscBOF()rL`^i4UQm1=7eh&`LBswiGeNVh$BGCbUa(T2li-=t#YpzoJXZ z!|P$RQHk4p3-ObE!Bz1_+6&3GHJKUB=>0Qd9|x4-w7X7@qUKr<|YTpTYCFg8y2+$lCkQ;FDx!?0iKrT|W2mYu@(PR9`_X;UdZ|JH5DQUWu5FZ#JOd z-1&&!36VzJfc&+JVC$?Vf>{dIvUMe*>(*b6jnMjkD^TF)O-TUtjQg=7^Q%rL$lxWphCFIkb(5A{O38{u7 z^jXeHz=|P=Op7alv-egeThoU!K6m0Q49~h^aq~TzMfYVVF>r4YPm)&jVK=?p%uVb| zxRZN+`Zj%4DOU0Fu%9vFjWZHKWqPzw%ffhz|yw}xeL^seU zD^8nNo%D(yt@`7qy!-3j3jowVn{G=FWnv^1q&2L3fhr} zqHGkWOeGnkB{5=zVw9>|5zPs@bvd7tw5A?Mqz4z|c@u6AYW6d>%+Jf|BA|2E#TUh9 zYqQvku4yZ#0_wUUMpQi)z3$V;t5{zNQ6VIj$Kq&Ht_3$*g2GvBZ*S*v#>1241juXk z0%m3wJ%6Se+dsFmo#-zD4c5w!L?b_TN1w>sN8CKvRk(f7;^y-p1`|fGD~v`XpB<~d zaCLz1FuoRYBLP<~7ken${&+n_IQzB0zi4ve zo35GRcIW7&q7YHQ4zVr5+YAard(W4-tRpqllE4%ZG-YG(NyzuHst(DJvZ=M4a|BN0 z_qW1gTd?;Xk}MEat~GEV_6W52Q7Z(PJ5ctfxR-c2K8SfSpL_rXmN8S*1qCLsYZ4Uy z`LJEXvud$&;>aQl2k>IFl#C{plCGF3ccmgx@ARTS0uw@U4=W|jm15lrqpr8j7}dGx zxbID8P72H1`wovgYGVP`x@Ii*c~Pxpg~|oZ5T!-fOVz(aciSxbn%4V~*TOyxX~Fw2 z`{ZfL*QH};UMM!K`1w0a>JIdjLu5>sKKm?*9`HWS#%tN6v!mg~Ikl78gEO~Ph_5b& zsa40#I`=1Eoq;-T$vf=F&IP`VWHSPpo)1De%AO>uZ)_1PW%|MDhVwZQ8o>c$W*huI zal;SwZEbBGPi4;uQo4cmGUovs^pRL;Fw^wu?W^)$slc`3sSJTnN$iYC7t90 z?8nU~Hsa(>wWhRt8xR-(J|Gxb$8kqYVdbMIN5ZL!Q-~K^WnSR+? z^&ftAjJHN(%&ckj?2PjIxTR{S(3T5SF?j>Z0x@%RD|OMSm16zb)pT-`(`9K7^}a+2 zA0&7LZ^4LzE0w>^`3-Z%9{M>t#4oAl1`_uy;!8{Cbv4iKFYOVU_N{5P>!u#Zpi+ ztzuNPbfd_|_9403JMDg#6Or`yH%YYEOf^#}eN|S0WrUyh$oQyvwl?W6cQ(7xJTWAhb>yH{!0J79{sMtkQ!eA ze-BOy8}{A~MYw4jj)uLjEF;e5B^hpO zBwXGuG>V9#yCFW6TeR)H(;Siw`M50@9!+=?5<4-Thh#&YDxS3Ury5VE2-l1^(IYV8 zlAQ+7$dkX8^C>asZ1eSQT3-{}GL`_az2Ym72XLQeGf`&+oa-!kun%;4~oUqqgVe)VG(3X6hwMbC_^&*W$OR|Q) zh}VMv{wu^U(n?knmHx>DFHwuI+4+o=euX$^{a}2F+)P*3`~|HRI;)a!#o# zB)=t_7GHmxgo`pm3e59rj3iJ#KP||Hn=?|jNxFk;0s)r$Sh=g4k^o&swd9Cqxn6J1gIdgwE~D&9R! zg!}C1`Qh>D(X)eZzx`A3?8Wh`(}UyFIPf1CrrlW{Er(?QBG$=@8ztqXWEE#s-eO+8 zseIn_qQl<*!3jS~WT)A$2OPEHrs8_mgC16lKUd`dc*wAEC_AjX#wW540xwnCrM)9+ z#pz_Lxj#B7^YBMYN)fOFy9Ga_BY1moi|wWCiEM#4K5j zdmeOOzK@{yb)u=S5seU96Q#M-Zda}~T3|SqPBb2YBR!~DH=t06lk^VDIcD2z2e))^ z#Q}W(d3nRcfODo{d!3^+`UjU>aWn|gvy>C!V27eMNLy=-L4IMQ+|qXa z(IkHY|AK{^iotwjRl{*D8tuVOE|ohXSbst=*O=jRM`Eif`8=5TUCL=7DWoZ%Fm;9E z>j)Caud%GF-N?!)M%lBW?5Dgk%bGUlVmVPNOkvD2F=;Y_io<4rR2m;e9Cb$YCImE` zoHWt8K@N~aWjr3YnJ+6;C}>Wa8XH|qa$wYpo3ZznJ|Awozq`>4h#6v0m*Wd1)X5U? zVexiNq-`-cA|zfcIJd0M#Ue_OOg{qas3sarPoY&}7myK#^1mhWBgqTnRR9fVgn~hQ zuH0q-*AX|0{!#7Muj4fGme$eHk}=99AJ_IdtQs$L$brJAWEYZKi=xl!Y4%+-)a_(thPpE1A;j?j6Wu>-F{D&VezwtY z-Z@o31I{CKh|=uY_BmD#KsH$w#JNj)XrKM06Mfya#3Wzdh+EO8)D_~@Yk~Bm`~a?# z-^v&X7ewOcdgAjrN#>EUWlX|x!to=fmaueo|CgUNzUh!*wVI{9L!Mr?=}XV3`s3$G$~J)Hp%O@@JMY3E4pN~7!?+E&T|&ZH zk|F_KSxI4BB+}g7ftTd5VC90ijwAz*6%WF3wf#yiBE*dl&y9pr11A!am!mqa))L!k z1-0Y?VTlh@Uj71KNc23K2Rtul3m-u&fGu$~@|7%Fl-Qn> zXY|gmwjSo=-0pG5ga%>=bVGitg@>HAm8f)ZQC&WEgt<$S0Mi*X8CN0Pf#F)Yt#Rep zpV6D@@vLsV`k5r@_KTV)70NHwwX*hcgG$;N7RnPbx)!mfGx|!UV8gs5><;clC-aIx zNbs+<=e#aBWfmZJE7wi8)h^4dCtlBCug7m*{BZck!;>B`l?I$;+Wm8ZB$hp4NZr6C z9U4d+!+DX^9cm%WHcn@QLAWtpSAPwj&{XDklr+Omt_*3OqZ2FzRi_GeV6(LL`XeiuW zN~l%vWtrH7bXXO`=Xb;R{{w{59737uHz4n0qt>Z4C7`?0l0nGss}_}r^ukNXC9y(V zksOALmm%{d?VrbszRy_vHkwl;fcp+jr35uuc={+t7aIh zKp1eFUL)=NV1hM@>)4vTaaZtk<)}EsnYBIjBGyy(;%Z2^f6E?u%5g$|IGEgU zJP4WY-+G-i$FXL;0aOMnw4xC--Ki4>5+vOVHl$Tk;pgP(Z=KjrWU=s3)tU7ARl=b5 z6c#|A`b}DB?0F_s@rbL7LIE!gHhTQ2NVl%$tP;DEb zBU4^hoJf@}AlK(}A?;Zu>PJgmkZe>Ct7zAYR$Ux)$z0v3fqV(mF zO1^0;Fc;&7jVqY=33n>psM3AJiVUqdSK~zD)Fsrai=uYBoJUXx={7SeKV-9B*QZKCt)+i3;Li)ejA=1^F@Xv z8lr#NB7sd-mQY2V;CXo|JXu^xqnK<*=FYZ(?bi+;M4k~*dAAwU57w1mPL}m@FeayR zqP5ycQ#)!Z$Gv8w0-+%nJGGE6MO+98b@^9 z7E3~UhBVWM)<0{23oNF6rfCB8g93zZGZbc%J#0F~*{3;_O0Q}6X)T)4(^Zo-9>doA z(Wx7P<8PPOOAtVpT>nIS@M#r zbH^9%^Oq+_-yNL%DaUQmIT9DzoIqG_D*GX0^oR>G0#--oIWjA{Be*e1VghwzdwKBc zRS2?klmfNx?(gq51bF}AB>AD^`YYP#NQ5HkCa0qtCC^D#gm^La#{*}Cv3}Trx*6lb z&8fr8-k6kcX#yrw0i=FJ>%LO*pFj-!ovrwI@!g*Ih zbx#{(RTbmvx>^L2eqCb8nJEf{k>=AP;Oj31doxSi^YrH@#c~6E&VuO#pMskB91fn8 zlP@F6jmQNt_08UMq^?0{0Vez>{?M-uxhE?+sMnJR|Lwo!LE*T=7VKaZ-0VUqB`3{b z&9Jn*qH76t$!KijKvx9bWf8cCbb_bkQO5!cOR;>zt4rAm|6uvG=t@mN23JOy-ZF0- zfWYbyDzy^9M5id6zBWK)xMP-E0e0_KN#~a;IsXLLs zjpFDcFUe%OXL4_lGUmJt%GS7&(DW0b65v-a%Eb-9dRdbLBWjt)b8lqL=OM(a)+yr_ z3vyGbCd)iK+ldjxnb~5wMb*fp7Z7zh5w>1Z!8ze-5S8FtH|R9eq?Iq(dxO1lkq0Jc zo7n?=yzm~e`a@_S()i*NDvun~+4u28e6$>9D{E8 eA=J;gW;s}eE|+0C7b)Xf_l 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 mxq9x@raSoq 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 JH7L@6{|6cM++qL# literal 0 HcmV?d00001 From 0c914e09ccba476807c642ea663dca598b876576 Mon Sep 17 00:00:00 2001 From: Morton Fox Date: Fri, 20 Mar 2015 18:31:38 -0400 Subject: [PATCH 07/29] Updated PeepOpen link. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d78188f..83c88f66 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin: let g:ctrlp_map = '' -Open [PeepOpen](https://peepcode.com/products/peepopen) plugin: +Open [PeepOpen](http://topfunky.github.io/PeepOpen/) plugin: map j :PeepOpen From 677376903821cca65ff048eb43383d64363ce4cc Mon Sep 17 00:00:00 2001 From: Daniel Julius Lasiman Date: Sat, 6 Jun 2015 22:12:17 +0700 Subject: [PATCH 08/29] Improve download speed of update plugin script --- update_plugins.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/update_plugins.py b/update_plugins.py index e4191a95..4e97f48c 100644 --- a/update_plugins.py +++ b/update_plugins.py @@ -1,3 +1,11 @@ +try: + import concurrent.futures as futures +except ImportError: + try: + import futures + except ImportError: + futures = None + import zipfile import shutil import tempfile @@ -76,14 +84,21 @@ def download_extract_replace(plugin_name, zip_path, temp_dir, source_dir): print('Updated {0}'.format(plugin_name)) +def update(plugin): + name, github_url = plugin.split(' ') + zip_path = GITHUB_ZIP % github_url + download_extract_replace(name, zip_path, + temp_directory, SOURCE_DIR) + + if __name__ == '__main__': temp_directory = tempfile.mkdtemp() try: - for line in PLUGINS.splitlines(): - name, github_url = line.split(' ') - zip_path = GITHUB_ZIP % github_url - download_extract_replace(name, zip_path, - temp_directory, SOURCE_DIR) + if futures: + with futures.ThreadPoolExecutor(16) as executor: + executor.map(update, PLUGINS.splitlines()) + else: + [update(x) for x in PLUGINS.splitlines()] finally: shutil.rmtree(temp_directory) From 8b8070f5378f38571f8327633cf01fe47c46a2ae Mon Sep 17 00:00:00 2001 From: Roy Ling Date: Sat, 5 Sep 2015 18:42:44 +0800 Subject: [PATCH 09/29] key bindings for :bnext and :bprev opinionated bindings though, but easy to use, enjoy! --- vimrcs/basic.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vimrcs/basic.vim b/vimrcs/basic.vim index 198daa4b..c22d30bd 100644 --- a/vimrcs/basic.vim +++ b/vimrcs/basic.vim @@ -234,6 +234,9 @@ map bd :Bclose:tabclosegT " Close all the buffers map ba :bufdo bd +map l :bnext +map h :bprevious + " Useful mappings for managing tabs map tn :tabnew map to :tabonly From 53cef2f63570817841ac763e0e9fe4374e75d76c Mon Sep 17 00:00:00 2001 From: Daniel Gitelson Date: Thu, 22 Oct 2015 10:32:56 +0300 Subject: [PATCH 10/29] Enable jumping to the last position in file on open --- vimrcs/basic.vim | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vimrcs/basic.vim b/vimrcs/basic.vim index c22d30bd..1649cb95 100644 --- a/vimrcs/basic.vim +++ b/vimrcs/basic.vim @@ -432,3 +432,8 @@ function! BufcloseCloseIt() execute("bdelete! ".l:currentBufNum) endif endfunction + +" Make VIM remember position in file after reopen +if has("autocmd") + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif +endif From de270bf5493b481ff4697b4c04449e1e032f514b Mon Sep 17 00:00:00 2001 From: Ihor Dvoretskyi Date: Tue, 12 Jan 2016 19:02:11 +0200 Subject: [PATCH 11/29] Ctags updates installation Ctags updated installation (with Markdown for Debian/Ubuntu); added command for Arch Linux. --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 83c88f66..ba38f39f 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,14 @@ The awesome version includes a lot of great plugins, configurations and color sc git clone https://github.com/amix/vimrc.git ~/.vim_runtime sh ~/.vim_runtime/install_awesome_vimrc.sh -The taglist.vim plugin will require ctags (http://ctags.sourceforge.net) (Debian: apt-get install ctags) +The taglist.vim plugin will require ctags (http://ctags.sourceforge.net) +For Debian and Ubuntu: + + apt-get install ctags + +For Arch Linux: + + pacman -S ctags I also recommend using [Source Code Pro font from Adobe](http://store1.adobe.com/cfusion/store/html/index.cfm?event=displayFontPackage&code=1960) (it's free and awesome font for writing and programming). The Awesome vimrc is already setup to try to use it From 316ac05761d8c03aef3fd5d89cfd4430f43c79d9 Mon Sep 17 00:00:00 2001 From: Moriarty!~~ Date: Fri, 15 Jan 2016 13:43:56 +0800 Subject: [PATCH 12/29] the font name setting for the GTK+ 2 GUI. --- vimrcs/extended.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vimrcs/extended.vim b/vimrcs/extended.vim index 9ae020dd..b9863d8b 100644 --- a/vimrcs/extended.vim +++ b/vimrcs/extended.vim @@ -13,8 +13,10 @@ if has("mac") || has("macunix") set gfn=Hack:h14,Source\ Code\ Pro:h15,Menlo:h15 elseif has("win16") || has("win32") set gfn=Hack:h14,Source\ Code\ Pro:h12,Bitstream\ Vera\ Sans\ Mono:h11 +elseif has("gui_gtk2") + set gfn=Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11 elseif has("linux") - set gfn=Hack:h14,Source\ Code\ Pro:h12,Bitstream\ Vera\ Sans\ Mono:h11 + set gfn=Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11 elseif has("unix") set gfn=Monospace\ 11 endif From f1da3b2e389b65bdad6c9de4e7d4ffd3e0c43dba Mon Sep 17 00:00:00 2001 From: Isaac Andrade Date: Fri, 5 Feb 2016 00:33:39 -0700 Subject: [PATCH 13/29] Update Golang plugin used on README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba38f39f..88e17e49 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ Remove all clutter and focus only on the essential. Similar to iA Writer or Writ * [vim-bundle-mako](https://github.com/sophacles/vim-bundle-mako) * [vim-markdown](https://github.com/tpope/vim-markdown) * [nginx.vim](https://github.com/vim-scripts/nginx.vim): Highlights configuration files for nginx -* [vim-golang](https://github.com/jnwhiteh/vim-golang) +* [vim-go](https://github.com/fatih/vim-go) ## How to include your own stuff? From c1aa392b3cb8034b2e3e221671d14a7109b13457 Mon Sep 17 00:00:00 2001 From: Isaac Andrade Date: Fri, 5 Feb 2016 00:52:39 -0700 Subject: [PATCH 14/29] Add plugins for Rust support. --- sources_non_forked/rust.vim/.gitignore | 1 + sources_non_forked/rust.vim/README.md | 30 ++ .../rust.vim/after/syntax/rust.vim | 31 +++ sources_non_forked/rust.vim/autoload/rust.vim | 225 +++++++++++++++ .../rust.vim/compiler/cargo.vim | 65 +++++ .../rust.vim/compiler/rustc.vim | 33 +++ sources_non_forked/rust.vim/doc/rust.txt | 178 ++++++++++++ sources_non_forked/rust.vim/ftdetect/rust.vim | 1 + sources_non_forked/rust.vim/ftplugin/rust.vim | 150 ++++++++++ sources_non_forked/rust.vim/indent/rust.vim | 196 +++++++++++++ sources_non_forked/rust.vim/plugin/rust.vim | 22 ++ sources_non_forked/rust.vim/syntax/rust.vim | 262 ++++++++++++++++++ .../rust.vim/syntax_checkers/rust/rustc.vim | 35 +++ sources_non_forked/vim-racer/.gitignore | 1 + sources_non_forked/vim-racer/README.md | 36 +++ sources_non_forked/vim-racer/plugin/racer.vim | 196 +++++++++++++ .../rplugin/python3/deoplete/sources/racer.py | 103 +++++++ 17 files changed, 1565 insertions(+) create mode 100644 sources_non_forked/rust.vim/.gitignore create mode 100644 sources_non_forked/rust.vim/README.md create mode 100644 sources_non_forked/rust.vim/after/syntax/rust.vim create mode 100644 sources_non_forked/rust.vim/autoload/rust.vim create mode 100644 sources_non_forked/rust.vim/compiler/cargo.vim create mode 100644 sources_non_forked/rust.vim/compiler/rustc.vim create mode 100644 sources_non_forked/rust.vim/doc/rust.txt create mode 100644 sources_non_forked/rust.vim/ftdetect/rust.vim create mode 100644 sources_non_forked/rust.vim/ftplugin/rust.vim create mode 100644 sources_non_forked/rust.vim/indent/rust.vim create mode 100644 sources_non_forked/rust.vim/plugin/rust.vim create mode 100644 sources_non_forked/rust.vim/syntax/rust.vim create mode 100644 sources_non_forked/rust.vim/syntax_checkers/rust/rustc.vim create mode 100644 sources_non_forked/vim-racer/.gitignore create mode 100644 sources_non_forked/vim-racer/README.md create mode 100644 sources_non_forked/vim-racer/plugin/racer.vim create mode 100644 sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py diff --git a/sources_non_forked/rust.vim/.gitignore b/sources_non_forked/rust.vim/.gitignore new file mode 100644 index 00000000..0a56e3fc --- /dev/null +++ b/sources_non_forked/rust.vim/.gitignore @@ -0,0 +1 @@ +/doc/tags diff --git a/sources_non_forked/rust.vim/README.md b/sources_non_forked/rust.vim/README.md new file mode 100644 index 00000000..481db9f3 --- /dev/null +++ b/sources_non_forked/rust.vim/README.md @@ -0,0 +1,30 @@ +# rust.vim + +## Description + +This is a vim plugin provides [Rust][r] file detection and syntax highlighting. + +It is synchronized daily to the vim support code in [rust-lang/rust][rr]'s +master branch via cronjob. + +## Installation + +### Using [Vundle][v] + +1. Add `Plugin 'wting/rust.vim'` to `~/.vimrc` +2. `vim +PluginInstall +qall` + +*Note:* Vundle will not automatically detect Rust files properly if `filetype +on` is executed before Vundle. Please check the [quickstart][vqs] for more +details. + +### Using [Pathogen][p] + +1. `cd ~/.vim/bundle` +2. `git clone https://github.com/wting/rust.vim.git` + +[rr]: https://github.com/rust-lang/rust +[p]: https://github.com/tpope/vim-pathogen +[r]: https://en.wikipedia.org/wiki/Rust_language +[v]: https://github.com/gmarik/vundle +[vqs]: https://github.com/gmarik/vundle#quick-start diff --git a/sources_non_forked/rust.vim/after/syntax/rust.vim b/sources_non_forked/rust.vim/after/syntax/rust.vim new file mode 100644 index 00000000..735c1e15 --- /dev/null +++ b/sources_non_forked/rust.vim/after/syntax/rust.vim @@ -0,0 +1,31 @@ +if !exists('g:rust_conceal') || !has('conceal') || &enc != 'utf-8' + finish +endif + +" For those who don't want to see `::`... +if exists('g:rust_conceal_mod_path') + syn match rustNiceOperator "::" conceal cchar=ㆍ +endif + +syn match rustRightArrowHead contained ">" conceal cchar=  +syn match rustRightArrowTail contained "-" conceal cchar=⟶ +syn match rustNiceOperator "->" contains=rustRightArrowHead,rustRightArrowTail + +syn match rustFatRightArrowHead contained ">" conceal cchar=  +syn match rustFatRightArrowTail contained "=" conceal cchar=⟹ +syn match rustNiceOperator "=>" contains=rustFatRightArrowHead,rustFatRightArrowTail + +syn match rustNiceOperator /\<\@!_\(_*\>\)\@=/ conceal cchar=′ + +" For those who don't want to see `pub`... +if exists('g:rust_conceal_pub') + syn match rustPublicSigil contained "pu" conceal cchar=* + syn match rustPublicRest contained "b" conceal cchar=  + syn match rustNiceOperator "pub " contains=rustPublicSigil,rustPublicRest +endif + +hi link rustNiceOperator Operator + +if !exists('g:rust_conceal_mod_path') + hi! link Conceal Operator +endif diff --git a/sources_non_forked/rust.vim/autoload/rust.vim b/sources_non_forked/rust.vim/autoload/rust.vim new file mode 100644 index 00000000..fe8e743e --- /dev/null +++ b/sources_non_forked/rust.vim/autoload/rust.vim @@ -0,0 +1,225 @@ +" Author: Kevin Ballard +" Description: Helper functions for Rust commands/mappings +" Last Modified: May 27, 2014 + +" Jump {{{1 + +function! rust#Jump(mode, function) range + let cnt = v:count1 + normal! m' + if a:mode ==# 'v' + norm! gv + endif + let foldenable = &foldenable + set nofoldenable + while cnt > 0 + execute "call Jump_" . a:function . "()" + let cnt = cnt - 1 + endwhile + let &foldenable = foldenable +endfunction + +function! s:Jump_Back() + call search('{', 'b') + keepjumps normal! w99[{ +endfunction + +function! s:Jump_Forward() + normal! j0 + call search('{', 'b') + keepjumps normal! w99[{% + call search('{') +endfunction + +" Run {{{1 + +function! rust#Run(bang, args) + if a:bang + let idx = index(a:args, '--') + if idx != -1 + let rustc_args = idx == 0 ? [] : a:args[:idx-1] + let args = a:args[idx+1:] + else + let rustc_args = a:args + let args = [] + endif + else + let rustc_args = [] + let args = a:args + endif + + let b:rust_last_rustc_args = rustc_args + let b:rust_last_args = args + + call s:WithPath(function("s:Run"), rustc_args, args) +endfunction + +function! s:Run(path, rustc_args, args) + try + let exepath = tempname() + if has('win32') + let exepath .= '.exe' + endif + + let rustc_args = [a:path, '-o', exepath] + a:rustc_args + + let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc" + + let output = system(shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)'))) + if output != '' + echohl WarningMsg + echo output + echohl None + endif + if !v:shell_error + exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)')) + endif + finally + if exists("exepath") + silent! call delete(exepath) + endif + endtry +endfunction + +" Expand {{{1 + +function! rust#Expand(bang, args) + if a:bang && !empty(a:args) + let pretty = a:args[0] + let args = a:args[1:] + else + let pretty = "expanded" + let args = a:args + endif + call s:WithPath(function("s:Expand"), pretty, args) +endfunction + +function! s:Expand(path, pretty, args) + try + let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc" + + let args = [a:path, '--pretty', a:pretty] + a:args + let output = system(shellescape(rustc) . " " . join(map(args, "shellescape(v:val)"))) + if v:shell_error + echohl WarningMsg + echo output + echohl None + else + new + silent put =output + 1 + d + setl filetype=rust + setl buftype=nofile + setl bufhidden=hide + setl noswapfile + endif + endtry +endfunction + +function! rust#CompleteExpand(lead, line, pos) + if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$' + " first argument and it has a ! + let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph="] + if !empty(a:lead) + call filter(list, "v:val[:len(a:lead)-1] == a:lead") + endif + return list + endif + + return glob(escape(a:lead, "*?[") . '*', 0, 1) +endfunction + +" Emit {{{1 + +function! rust#Emit(type, args) + call s:WithPath(function("s:Emit"), a:type, a:args) +endfunction + +function! s:Emit(path, type, args) + try + let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc" + + let args = [a:path, '--emit', a:type, '-o', '-'] + a:args + let output = system(shellescape(rustc) . " " . join(map(args, "shellescape(v:val)"))) + if v:shell_error + echohl WarningMsg + echo output + echohl None + else + new + silent put =output + 1 + d + if a:type == "ir" + setl filetype=llvm + elseif a:type == "asm" + setl filetype=asm + endif + setl buftype=nofile + setl bufhidden=hide + setl noswapfile + endif + endtry +endfunction + +" Utility functions {{{1 + +function! s:WithPath(func, ...) + try + let save_write = &write + set write + let path = expand('%') + let pathisempty = empty(path) + if pathisempty || !save_write + " use a temporary file named 'unnamed.rs' inside a temporary + " directory. This produces better error messages + let tmpdir = tempname() + call mkdir(tmpdir) + + let save_cwd = getcwd() + silent exe 'lcd' fnameescape(tmpdir) + + let path = 'unnamed.rs' + + let save_mod = &mod + set nomod + + silent exe 'keepalt write! ' . fnameescape(path) + if pathisempty + silent keepalt 0file + endif + else + update + endif + + call call(a:func, [path] + a:000) + finally + if exists("save_mod") | let &mod = save_mod | endif + if exists("save_write") | let &write = save_write | endif + if exists("save_cwd") | silent exe 'lcd' fnameescape(save_cwd) | endif + if exists("tmpdir") | silent call s:RmDir(tmpdir) | endif + endtry +endfunction + +function! rust#AppendCmdLine(text) + call setcmdpos(getcmdpos()) + let cmd = getcmdline() . a:text + return cmd +endfunction + +function! s:RmDir(path) + " sanity check; make sure it's not empty, /, or $HOME + if empty(a:path) + echoerr 'Attempted to delete empty path' + return 0 + elseif a:path == '/' || a:path == $HOME + echoerr 'Attempted to delete protected path: ' . a:path + return 0 + endif + silent exe "!rm -rf " . shellescape(a:path) +endfunction + +" }}}1 + +" vim: set noet sw=4 ts=4: diff --git a/sources_non_forked/rust.vim/compiler/cargo.vim b/sources_non_forked/rust.vim/compiler/cargo.vim new file mode 100644 index 00000000..ed487a30 --- /dev/null +++ b/sources_non_forked/rust.vim/compiler/cargo.vim @@ -0,0 +1,65 @@ +" Vim compiler file +" Compiler: Cargo Compiler +" Maintainer: Damien Radtke +" Latest Revision: 2014 Sep 24 + +if exists('current_compiler') + finish +endif +runtime compiler/rustc.vim +let current_compiler = "cargo" + +if exists(':CompilerSet') != 2 + command -nargs=* CompilerSet setlocal +endif + +if exists('g:cargo_makeprg_params') + execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*' +else + CompilerSet makeprg=cargo\ $* +endif + +" Allow a configurable global Cargo.toml name. This makes it easy to +" support variations like 'cargo.toml'. +let s:cargo_manifest_name = get(g:, 'cargo_manifest_name', 'Cargo.toml') + +function! s:is_absolute(path) + return a:path[0] == '/' || a:path =~ '[A-Z]\+:' +endfunction + +let s:local_manifest = findfile(s:cargo_manifest_name, '.;') +if s:local_manifest != '' + let s:local_manifest = fnamemodify(s:local_manifest, ':p:h').'/' + augroup cargo + au! + au QuickfixCmdPost make call s:FixPaths() + augroup END + + " FixPaths() is run after Cargo, and is used to change the file paths + " to be relative to the current directory instead of Cargo.toml. + function! s:FixPaths() + let qflist = getqflist() + let manifest = s:local_manifest + for qf in qflist + if !qf.valid + let m = matchlist(qf.text, '(file://\(.*\))$') + if !empty(m) + let manifest = m[1].'/' + " Manually strip another slash if needed; usually just an + " issue on Windows. + if manifest =~ '^/[A-Z]\+:/' + let manifest = manifest[1:] + endif + endif + continue + endif + let filename = bufname(qf.bufnr) + if s:is_absolute(filename) + continue + endif + let qf.filename = simplify(manifest.filename) + call remove(qf, 'bufnr') + endfor + call setqflist(qflist, 'r') + endfunction +endif diff --git a/sources_non_forked/rust.vim/compiler/rustc.vim b/sources_non_forked/rust.vim/compiler/rustc.vim new file mode 100644 index 00000000..f9b854ed --- /dev/null +++ b/sources_non_forked/rust.vim/compiler/rustc.vim @@ -0,0 +1,33 @@ +" Vim compiler file +" Compiler: Rust Compiler +" Maintainer: Chris Morgan +" Latest Revision: 2013 Jul 12 + +if exists("current_compiler") + finish +endif +let current_compiler = "rustc" + +let s:cpo_save = &cpo +set cpo&vim + +if exists(":CompilerSet") != 2 + command -nargs=* CompilerSet setlocal +endif + +if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent == 1 + CompilerSet makeprg=rustc +else + CompilerSet makeprg=rustc\ \% +endif + +CompilerSet errorformat= + \%f:%l:%c:\ %t%*[^:]:\ %m, + \%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m, + \%-G%f:%l\ %s, + \%-G%*[\ ]^, + \%-G%*[\ ]^%*[~], + \%-G%*[\ ]... + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/sources_non_forked/rust.vim/doc/rust.txt b/sources_non_forked/rust.vim/doc/rust.txt new file mode 100644 index 00000000..e117b0c1 --- /dev/null +++ b/sources_non_forked/rust.vim/doc/rust.txt @@ -0,0 +1,178 @@ +*rust.txt* Filetype plugin for Rust + +============================================================================== +CONTENTS *rust* *ft-rust* + +1. Introduction |rust-intro| +2. Settings |rust-settings| +3. Commands |rust-commands| +4. Mappings |rust-mappings| + +============================================================================== +INTRODUCTION *rust-intro* + +This plugin provides syntax and supporting functionality for the Rust +filetype. + +============================================================================== +SETTINGS *rust-settings* + +This plugin has a few variables you can define in your vimrc that change the +behavior of the plugin. + + *g:rustc_path* +g:rustc_path~ + Set this option to the path to rustc for use in the |:RustRun| and + |:RustExpand| commands. If unset, "rustc" will be located in $PATH: > + let g:rustc_path = $HOME."/bin/rustc" +< + + *g:rustc_makeprg_no_percent* +g:rustc_makeprg_no_percent~ + Set this option to 1 to have 'makeprg' default to "rustc" instead of + "rustc %": > + let g:rustc_makeprg_no_percent = 1 +< + + *g:rust_conceal* +g:rust_conceal~ + Set this option to turn on the basic |conceal| support: > + let g:rust_conceal = 1 +< + + *g:rust_conceal_mod_path* +g:rust_conceal_mod_path~ + Set this option to turn on |conceal| for the path connecting token + "::": > + let g:rust_conceal_mod_path = 1 +< + + *g:rust_conceal_pub* +g:rust_conceal_pub~ + Set this option to turn on |conceal| for the "pub" token: > + let g:rust_conceal_pub = 1 +< + + *g:rust_recommended_style* +g:rust_recommended_style~ + Set this option to enable vim indentation and textwidth settings to + conform to style conventions of the rust standard library (i.e. use 4 + spaces for indents and sets 'textwidth' to 99). This option is enabled + by default. To disable it: > + let g:rust_recommended_style = 0 +< + + *g:rust_fold* +g:rust_fold~ + Set this option to turn on |folding|: > + let g:rust_fold = 1 +< + Value Effect ~ + 0 No folding + 1 Braced blocks are folded. All folds are open by + default. + 2 Braced blocks are folded. 'foldlevel' is left at the + global value (all folds are closed by default). + + *g:rust_bang_comment_leader* +g:rust_bang_comment_leader~ + Set this option to 1 to preserve the leader on multi-line doc comments + using the /*! syntax: > + let g:rust_bang_comment_leader = 1 +< + + *g:ftplugin_rust_source_path* +g:ftplugin_rust_source_path~ + Set this option to a path that should be prepended to 'path' for Rust + source files: > + let g:ftplugin_rust_source_path = $HOME.'/dev/rust' +< + + *g:cargo_manifest_name* +g:cargo_manifest_name~ + Set this option to the name of the manifest file for your projects. If + not specified it defaults to 'Cargo.toml' : > + let g:cargo_manifest_name = 'Cargo.toml' +< + +============================================================================== +COMMANDS *rust-commands* + +:RustRun [args] *:RustRun* +:RustRun! [rustc-args] [--] [args] + Compiles and runs the current file. If it has unsaved changes, + it will be saved first using |:update|. If the current file is + an unnamed buffer, it will be written to a temporary file + first. The compiled binary is always placed in a temporary + directory, but is run from the current directory. + + The arguments given to |:RustRun| will be passed to the + compiled binary. + + If ! is specified, the arguments are passed to rustc instead. + A "--" argument will separate the rustc arguments from the + arguments passed to the binary. + + If |g:rustc_path| is defined, it is used as the path to rustc. + Otherwise it is assumed rustc can be found in $PATH. + +:RustExpand [args] *:RustExpand* +:RustExpand! [TYPE] [args] + Expands the current file using --pretty and displays the + results in a new split. If the current file has unsaved + changes, it will be saved first using |:update|. If the + current file is an unnamed buffer, it will be written to a + temporary file first. + + The arguments given to |:RustExpand| will be passed to rustc. + This is largely intended for specifying various --cfg + configurations. + + If ! is specified, the first argument is the expansion type to + pass to rustc --pretty. Otherwise it will default to + "expanded". + + If |g:rustc_path| is defined, it is used as the path to rustc. + Otherwise it is assumed rustc can be found in $PATH. + +:RustEmitIr [args] *:RustEmitIr* + Compiles the current file to LLVM IR and displays the results + in a new split. If the current file has unsaved changes, it + will be saved first using |:update|. If the current file is an + unnamed buffer, it will be written to a temporary file first. + + The arguments given to |:RustEmitIr| will be passed to rustc. + + If |g:rustc_path| is defined, it is used as the path to rustc. + Otherwise it is assumed rustc can be found in $PATH. + +:RustEmitAsm [args] *:RustEmitAsm* + Compiles the current file to assembly and displays the results + in a new split. If the current file has unsaved changes, it + will be saved first using |:update|. If the current file is an + unnamed buffer, it will be written to a temporary file first. + + The arguments given to |:RustEmitAsm| will be passed to rustc. + + If |g:rustc_path| is defined, it is used as the path to rustc. + Otherwise it is assumed rustc can be found in $PATH. + +============================================================================== +MAPPINGS *rust-mappings* + +This plugin defines mappings for |[[| and |]]| to support hanging indents. + +It also has a few other mappings: + + *rust_* + Executes |:RustRun| with no arguments. + Note: This binding is only available in MacVim. + + *rust_* + Populates the command line with |:RustRun|! using the + arguments given to the last invocation, but does not + execute it. + Note: This binding is only available in MacVim. + +============================================================================== + vim:tw=78:sw=4:noet:ts=8:ft=help:norl: diff --git a/sources_non_forked/rust.vim/ftdetect/rust.vim b/sources_non_forked/rust.vim/ftdetect/rust.vim new file mode 100644 index 00000000..bf685d43 --- /dev/null +++ b/sources_non_forked/rust.vim/ftdetect/rust.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile *.rs set filetype=rust diff --git a/sources_non_forked/rust.vim/ftplugin/rust.vim b/sources_non_forked/rust.vim/ftplugin/rust.vim new file mode 100644 index 00000000..5d556994 --- /dev/null +++ b/sources_non_forked/rust.vim/ftplugin/rust.vim @@ -0,0 +1,150 @@ +" Language: Rust +" Description: Vim syntax file for Rust +" Maintainer: Chris Morgan +" Maintainer: Kevin Ballard +" Last Change: Jul 07, 2014 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:save_cpo = &cpo +set cpo&vim + +" Variables {{{1 + +" The rust source code at present seems to typically omit a leader on /*! +" comments, so we'll use that as our default, but make it easy to switch. +" This does not affect indentation at all (I tested it with and without +" leader), merely whether a leader is inserted by default or not. +if exists("g:rust_bang_comment_leader") && g:rust_bang_comment_leader == 1 + " Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why, + " but without it, */ gets indented one space even if there were no + " leaders. I'm fairly sure that's a Vim bug. + setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,:// +else + setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,:// +endif +setlocal commentstring=//%s +setlocal formatoptions-=t formatoptions+=croqnl +" j was only added in 7.3.541, so stop complaints about its nonexistence +silent! setlocal formatoptions+=j + +" smartindent will be overridden by indentexpr if filetype indent is on, but +" otherwise it's better than nothing. +setlocal smartindent nocindent + +if !exists("g:rust_recommended_style") || g:rust_recommended_style == 1 + setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab + setlocal textwidth=99 +endif + +" This includeexpr isn't perfect, but it's a good start +setlocal includeexpr=substitute(v:fname,'::','/','g') + +" NOT adding .rc as it's being phased out (0.7) +setlocal suffixesadd=.rs + +if exists("g:ftplugin_rust_source_path") + let &l:path=g:ftplugin_rust_source_path . ',' . &l:path +endif + +if exists("g:loaded_delimitMate") + if exists("b:delimitMate_excluded_regions") + let b:rust_original_delimitMate_excluded_regions = b:delimitMate_excluded_regions + endif + let b:delimitMate_excluded_regions = delimitMate#Get("excluded_regions") . ',rustLifetimeCandidate,rustGenericLifetimeCandidate' +endif + +if has("folding") && exists('g:rust_fold') && g:rust_fold != 0 + let b:rust_set_foldmethod=1 + setlocal foldmethod=syntax + if g:rust_fold == 2 + setlocal foldlevel< + else + setlocal foldlevel=99 + endif +endif + +if has('conceal') && exists('g:rust_conceal') + let b:rust_set_conceallevel=1 + setlocal conceallevel=2 +endif + +" Motion Commands {{{1 + +" Bind motion commands to support hanging indents +nnoremap [[ :call rust#Jump('n', 'Back') +nnoremap ]] :call rust#Jump('n', 'Forward') +xnoremap [[ :call rust#Jump('v', 'Back') +xnoremap ]] :call rust#Jump('v', 'Forward') +onoremap [[ :call rust#Jump('o', 'Back') +onoremap ]] :call rust#Jump('o', 'Forward') + +" Commands {{{1 + +" See |:RustRun| for docs +command! -nargs=* -complete=file -bang -bar -buffer RustRun call rust#Run(0, []) + +" See |:RustExpand| for docs +command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -bar -buffer RustExpand call rust#Expand(0, []) + +" See |:RustEmitIr| for docs +command! -nargs=* -bar -buffer RustEmitIr call rust#Emit("ir", []) + +" See |:RustEmitAsm| for docs +command! -nargs=* -bar -buffer RustEmitAsm call rust#Emit("asm", []) + +" Mappings {{{1 + +" Bind ⌘R in MacVim to :RustRun +nnoremap :RustRun +" Bind ⌘⇧R in MacVim to :RustRun! pre-filled with the last args +nnoremap :RustRun! =join(b:rust_last_rustc_args)erust#AppendCmdLine(' -- ' . join(b:rust_last_args)) + +if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args") + let b:rust_last_rustc_args = [] + let b:rust_last_args = [] +endif + +" Cleanup {{{1 + +let b:undo_ftplugin = " + \ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< + \|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth< + \|if exists('b:rust_original_delimitMate_excluded_regions') + \|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions + \|unlet b:rust_original_delimitMate_excluded_regions + \|else + \|unlet! b:delimitMate_excluded_regions + \|endif + \|if exists('b:rust_set_foldmethod') + \|setlocal foldmethod< foldlevel< + \|unlet b:rust_set_foldmethod + \|endif + \|if exists('b:rust_set_conceallevel') + \|setlocal conceallevel< + \|unlet b:rust_set_conceallevel + \|endif + \|unlet! b:rust_last_rustc_args b:rust_last_args + \|delcommand RustRun + \|delcommand RustExpand + \|delcommand RustEmitIr + \|delcommand RustEmitAsm + \|nunmap + \|nunmap + \|nunmap [[ + \|nunmap ]] + \|xunmap [[ + \|xunmap ]] + \|ounmap [[ + \|ounmap ]] + \" + +" }}}1 + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set noet sw=4 ts=4: diff --git a/sources_non_forked/rust.vim/indent/rust.vim b/sources_non_forked/rust.vim/indent/rust.vim new file mode 100644 index 00000000..300d7dac --- /dev/null +++ b/sources_non_forked/rust.vim/indent/rust.vim @@ -0,0 +1,196 @@ +" Vim indent file +" Language: Rust +" Author: Chris Morgan +" Last Change: 2014 Sep 13 + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal cindent +setlocal cinoptions=L0,(0,Ws,J1,j1 +setlocal cinkeys=0{,0},!^F,o,O,0[,0] +" Don't think cinwords will actually do anything at all... never mind +setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern + +" Some preliminary settings +setlocal nolisp " Make sure lisp indenting doesn't supersede us +setlocal autoindent " indentexpr isn't much help otherwise +" Also do indentkeys, otherwise # gets shoved to column 0 :-/ +setlocal indentkeys=0{,0},!^F,o,O,0[,0] + +setlocal indentexpr=GetRustIndent(v:lnum) + +" Only define the function once. +if exists("*GetRustIndent") + finish +endif + +" Come here when loading the script the first time. + +function! s:get_line_trimmed(lnum) + " Get the line and remove a trailing comment. + " Use syntax highlighting attributes when possible. + " NOTE: this is not accurate; /* */ or a line continuation could trick it + let line = getline(a:lnum) + let line_len = strlen(line) + if has('syntax_items') + " If the last character in the line is a comment, do a binary search for + " the start of the comment. synID() is slow, a linear search would take + " too long on a long line. + if synIDattr(synID(a:lnum, line_len, 1), "name") =~ 'Comment\|Todo' + let min = 1 + let max = line_len + while min < max + let col = (min + max) / 2 + if synIDattr(synID(a:lnum, col, 1), "name") =~ 'Comment\|Todo' + let max = col + else + let min = col + 1 + endif + endwhile + let line = strpart(line, 0, min - 1) + endif + return substitute(line, "\s*$", "", "") + else + " Sorry, this is not complete, nor fully correct (e.g. string "//"). + " Such is life. + return substitute(line, "\s*//.*$", "", "") + endif +endfunction + +function! s:is_string_comment(lnum, col) + if has('syntax_items') + for id in synstack(a:lnum, a:col) + let synname = synIDattr(id, "name") + if synname == "rustString" || synname =~ "^rustComment" + return 1 + endif + endfor + else + " without syntax, let's not even try + return 0 + endif +endfunction + +function GetRustIndent(lnum) + + " Starting assumption: cindent (called at the end) will do it right + " normally. We just want to fix up a few cases. + + let line = getline(a:lnum) + + if has('syntax_items') + let synname = synIDattr(synID(a:lnum, 1, 1), "name") + if synname == "rustString" + " If the start of the line is in a string, don't change the indent + return -1 + elseif synname =~ '\(Comment\|Todo\)' + \ && line !~ '^\s*/\*' " not /* opening line + if synname =~ "CommentML" " multi-line + if line !~ '^\s*\*' && getline(a:lnum - 1) =~ '^\s*/\*' + " This is (hopefully) the line after a /*, and it has no + " leader, so the correct indentation is that of the + " previous line. + return GetRustIndent(a:lnum - 1) + endif + endif + " If it's in a comment, let cindent take care of it now. This is + " for cases like "/*" where the next line should start " * ", not + " "* " as the code below would otherwise cause for module scope + " Fun fact: " /*\n*\n*/" takes two calls to get right! + return cindent(a:lnum) + endif + endif + + " cindent gets second and subsequent match patterns/struct members wrong, + " as it treats the comma as indicating an unfinished statement:: + " + " match a { + " b => c, + " d => e, + " f => g, + " }; + + " Search backwards for the previous non-empty line. + let prevlinenum = prevnonblank(a:lnum - 1) + let prevline = s:get_line_trimmed(prevlinenum) + while prevlinenum > 1 && prevline !~ '[^[:blank:]]' + let prevlinenum = prevnonblank(prevlinenum - 1) + let prevline = s:get_line_trimmed(prevlinenum) + endwhile + if prevline[len(prevline) - 1] == "," + \ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]' + \ && prevline !~ '^\s*fn\s' + \ && prevline !~ '([^()]\+,$' + " Oh ho! The previous line ended in a comma! I bet cindent will try to + " take this too far... For now, let's normally use the previous line's + " indent. + + " One case where this doesn't work out is where *this* line contains + " square or curly brackets; then we normally *do* want to be indenting + " further. + " + " Another case where we don't want to is one like a function + " definition with arguments spread over multiple lines: + " + " fn foo(baz: Baz, + " baz: Baz) // <-- cindent gets this right by itself + " + " Another case is similar to the previous, except calling a function + " instead of defining it, or any conditional expression that leaves + " an open paren: + " + " foo(baz, + " baz); + " + " if baz && (foo || + " bar) { + " + " There are probably other cases where we don't want to do this as + " well. Add them as needed. + return indent(prevlinenum) + endif + + if !has("patch-7.4.355") + " cindent before 7.4.355 doesn't do the module scope well at all; e.g.:: + " + " static FOO : &'static [bool] = [ + " true, + " false, + " false, + " true, + " ]; + " + " uh oh, next statement is indented further! + + " Note that this does *not* apply the line continuation pattern properly; + " that's too hard to do correctly for my liking at present, so I'll just + " start with these two main cases (square brackets and not returning to + " column zero) + + call cursor(a:lnum, 1) + if searchpair('{\|(', '', '}\|)', 'nbW', + \ 's:is_string_comment(line("."), col("."))') == 0 + if searchpair('\[', '', '\]', 'nbW', + \ 's:is_string_comment(line("."), col("."))') == 0 + " Global scope, should be zero + return 0 + else + " At the module scope, inside square brackets only + "if getline(a:lnum)[0] == ']' || search('\[', '', '\]', 'nW') == a:lnum + if line =~ "^\\s*]" + " It's the closing line, dedent it + return 0 + else + return &shiftwidth + endif + endif + endif + endif + + " Fall back on cindent, which does it mostly right + return cindent(a:lnum) +endfunction diff --git a/sources_non_forked/rust.vim/plugin/rust.vim b/sources_non_forked/rust.vim/plugin/rust.vim new file mode 100644 index 00000000..4ec4f33d --- /dev/null +++ b/sources_non_forked/rust.vim/plugin/rust.vim @@ -0,0 +1,22 @@ +" Vim syntastic plugin helper +" Language: Rust +" Maintainer: Andrew Gallant + +if exists("g:loaded_syntastic_rust_filetype") + finish +endif +let g:loaded_syntastic_rust_filetype = 1 +let s:save_cpo = &cpo +set cpo&vim + +" This is to let Syntastic know about the Rust filetype. +" It enables tab completion for the 'SyntasticInfo' command. +" (This does not actually register the syntax checker.) +if exists('g:syntastic_extra_filetypes') + call add(g:syntastic_extra_filetypes, 'rust') +else + let g:syntastic_extra_filetypes = ['rust'] +endif + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/sources_non_forked/rust.vim/syntax/rust.vim b/sources_non_forked/rust.vim/syntax/rust.vim new file mode 100644 index 00000000..a37b7b6d --- /dev/null +++ b/sources_non_forked/rust.vim/syntax/rust.vim @@ -0,0 +1,262 @@ +" Vim syntax file +" Language: Rust +" Maintainer: Patrick Walton +" Maintainer: Ben Blum +" Maintainer: Chris Morgan +" Last Change: January 5, 2015 + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Syntax definitions {{{1 +" Basic keywords {{{2 +syn keyword rustConditional match if else +syn keyword rustOperator as + +syn match rustAssert "\(); + +" This is merely a convention; note also the use of [A-Z], restricting it to +" latin identifiers rather than the full Unicode uppercase. I have not used +" [:upper:] as it depends upon 'noignorecase' +"syn match rustCapsIdent display "[A-Z]\w\(\w\)*" + +syn match rustOperator display "\%(+\|-\|/\|*\|=\|\^\|&\||\|!\|>\|<\|%\)=\?" +" This one isn't *quite* right, as we could have binary-& with a reference +syn match rustSigil display /&\s\+[&~@*][^)= \t\r\n]/he=e-1,me=e-1 +syn match rustSigil display /[&~@*][^)= \t\r\n]/he=e-1,me=e-1 +" This isn't actually correct; a closure with no arguments can be `|| { }`. +" Last, because the & in && isn't a sigil +syn match rustOperator display "&&\|||" + +syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustPanic +syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic + +syn match rustEscapeError display contained /\\./ +syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/ +syn match rustEscapeUnicode display contained /\\\(u\x\{4}\|U\x\{8}\)/ +syn match rustEscapeUnicode display contained /\\u{\x\{1,6}}/ +syn match rustStringContinuation display contained /\\\n\s*/ +syn region rustString start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation +syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell +syn region rustString start='b\?r\z(#*\)"' end='"\z1' contains=@Spell + +syn region rustAttribute start="#!\?\[" end="\]" contains=rustString,rustDerive +syn region rustDerive start="derive(" end=")" contained contains=rustTrait + +" Number literals +syn match rustDecNumber display "\<[0-9][0-9_]*\%([iu]\%(s\|8\|16\|32\|64\)\)\=" +syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\%([iu]\%(s\|8\|16\|32\|64\)\)\=" +syn match rustOctNumber display "\<0o[0-7_]\+\%([iu]\%(s\|8\|16\|32\|64\)\)\=" +syn match rustBinNumber display "\<0b[01_]\+\%([iu]\%(s\|8\|16\|32\|64\)\)\=" + +" Special case for numbers of the form "1." which are float literals, unless followed by +" an identifier, which makes them integer literals with a method call or field access, +" or by another ".", which makes them integer literals followed by the ".." token. +" (This must go first so the others take precedence.) +syn match rustFloat display "\<[0-9][0-9_]*\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\|\.\)\@!" +" To mark a number as a normal float, it must have at least one of the three things integral values don't have: +" a decimal point and more numbers; an exponent; and a type suffix. +syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)\=" +syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\(f32\|f64\)\=" +syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)" + +" For the benefit of delimitMate +syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime +syn region rustGenericRegion display start=/<\%('\|[^[cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ contains=rustGenericLifetimeCandidate +syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime + +"rustLifetime must appear before rustCharacter, or chars will get the lifetime highlighting +syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" +syn match rustCharacterInvalid display contained /b\?'\zs[\n\r\t']\ze'/ +" The groups negated here add up to 0-255 but nothing else (they do not seem to go beyond ASCII). +syn match rustCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/ +syn match rustCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode +syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{8}\|u{\x\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid + +syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell +syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell +syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell +syn region rustCommentBlockDoc matchgroup=rustCommentBlockDoc start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell +syn region rustCommentBlockNest matchgroup=rustCommentBlock start="/\*" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell contained transparent +syn region rustCommentBlockDocNest matchgroup=rustCommentBlockDoc start="/\*" end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell contained transparent +" FIXME: this is a really ugly and not fully correct implementation. Most +" importantly, a case like ``/* */*`` should have the final ``*`` not being in +" a comment, but in practice at present it leaves comments open two levels +" deep. But as long as you stay away from that particular case, I *believe* +" the highlighting is correct. Due to the way Vim's syntax engine works +" (greedy for start matches, unlike Rust's tokeniser which is searching for +" the earliest-starting match, start or end), I believe this cannot be solved. +" Oh you who would fix it, don't bother with things like duplicating the Block +" rules and putting ``\*\@ +" +" See for details on how to add an external Syntastic checker: +" https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide#external + +if exists("g:loaded_syntastic_rust_rustc_checker") + finish +endif +let g:loaded_syntastic_rust_rustc_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_rust_rustc_GetLocList() dict + let makeprg = self.makeprgBuild({ 'args': '-Zparse-only' }) + + let errorformat = + \ '%E%f:%l:%c: %\d%#:%\d%# %.%\{-}error:%.%\{-} %m,' . + \ '%W%f:%l:%c: %\d%#:%\d%# %.%\{-}warning:%.%\{-} %m,' . + \ '%C%f:%l %m,' . + \ '%-Z%.%#' + + return SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat }) +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'rust', + \ 'name': 'rustc'}) + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/sources_non_forked/vim-racer/.gitignore b/sources_non_forked/vim-racer/.gitignore new file mode 100644 index 00000000..0d20b648 --- /dev/null +++ b/sources_non_forked/vim-racer/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/sources_non_forked/vim-racer/README.md b/sources_non_forked/vim-racer/README.md new file mode 100644 index 00000000..ef47c0c6 --- /dev/null +++ b/sources_non_forked/vim-racer/README.md @@ -0,0 +1,36 @@ +# Vim Racer Plugin + +This plugin allows vim to use [Racer](http://github.com/phildawes/racer) for Rust code completion and navigation. + +## Installation + +1. Build / Install [Racer](http://github.com/phildawes/racer) + +1. Install using Pathogen, Vundle or NeoBundle. Or, copy `plugin/racer.vim` into your `~/.vim/plugin` directory. + + Vundle users: + ``` + Plugin 'racer-rust/vim-racer' + ``` + + NeoBundle users: + ``` + NeoBundle 'racer-rust/vim-racer' + ``` + + vim-plug users: + ``` + Plug 'racer-rust/vim-racer' + ``` + +2. Add `g:racer_cmd` and `$RUST_SRC_PATH` variables to your `.vimrc`. Also it's worth turning on 'hidden' mode for buffers otherwise you need to save the current buffer every time you do a goto-definition. E.g.: + + ``` + set hidden + let g:racer_cmd = "/target/release/racer" + let $RUST_SRC_PATH="/src/" + ``` + +3. In insert mode use `C-x-C-o` to search for completions + +4. In normal mode type `gd` to go to a definition diff --git a/sources_non_forked/vim-racer/plugin/racer.vim b/sources_non_forked/vim-racer/plugin/racer.vim new file mode 100644 index 00000000..c42fb3d5 --- /dev/null +++ b/sources_non_forked/vim-racer/plugin/racer.vim @@ -0,0 +1,196 @@ +" Vim plugin for Racer +" (by Phil Dawes) +" +" 1. Edit the variables below (or override in .vimrc) +" 2. copy this file into .vim/plugin/ +" 3. - now in insert mode do 'C-x C-o' to autocomplete the thing at the cursor +" - in normal mode do 'gd' to go to definition +" - 'gD' goes to the definition in a new vertical split +" +" (This plugin is best used with the 'hidden' option enabled so that switching buffers doesn't force you to save) + +if exists('g:loaded_racer') + finish +endif + +let g:loaded_racer = 1 + +let s:save_cpo = &cpo +set cpo&vim + +if !exists('g:racer_cmd') + let path = escape(expand(':p:h'), '\') . '/../target/release/' + if isdirectory(path) + let s:pathsep = has("win32") ? ';' : ':' + let $PATH .= s:pathsep . path + endif + let g:racer_cmd = 'racer' + + if !(executable(g:racer_cmd)) + echohl WarningMsg | echomsg "No racer executable found in $PATH (" . $PATH . ")" + endif +endif + +if !exists('$RUST_SRC_PATH') + let s:rust_src_default = 1 + if isdirectory("/usr/local/src/rust/src") + let $RUST_SRC_PATH="/usr/local/src/rust/src" + endif + if isdirectory("/usr/src/rust/src") + let $RUST_SRC_PATH="/usr/src/rust/src" + endif + if isdirectory("C:\\rust\\src") + let $RUST_SRC_PATH="C:\\rust\\src" + endif +endif +if !isdirectory($RUST_SRC_PATH) + if exists('s:rust_src_default') + echohl WarningMsg | echomsg "No RUST_SRC_PATH environment variable present, nor could default installation be found at: " . $RUST_SRC_PATH + else + echohl WarningMsg | echomsg "No directory was found at provided RUST_SRC_PATH: " . $RUST_SRC_PATH + endif +endif + +if !exists('g:racer_experimental_completer') + let g:racer_experimental_completer = 0 +endif + +if !exists('g:racer_insert_paren') + let g:racer_insert_paren = 1 +endif + +function! RacerGetPrefixCol(base) + let col = col(".")-1 + let b:racer_col = col + let b:tmpfname = tempname() + call writefile(RacerGetBufferContents(a:base), b:tmpfname) + let cmd = g:racer_cmd." prefix ".line(".")." ".col." ".b:tmpfname + let res = system(cmd) + let prefixline = split(res, "\\n")[0] + let startcol = split(prefixline[7:], ",")[0] + return startcol +endfunction + +function! RacerGetExpCompletions(base) + let col = strlen(getline('.')) + strlen(a:base) " use the column from the previous RacerGetPrefixCol() call, since vim ammends it afterwards + call writefile(RacerGetBufferContents(a:base), b:tmpfname) + let fname = expand("%:p") + let cmd = g:racer_cmd." complete ".line(".")." ".col." ".fname." ".b:tmpfname + let res = system(cmd) + + let typeMap = { + \ 'Struct' : 's', 'Module' : 'M', 'Function' : 'f', + \ 'Crate' : 'C', 'Let' : 'v', 'StructField' : 'm', + \ 'Impl' : 'i', 'Enum' : 'e', 'EnumVariant' : 'E', + \ 'Type' : 't', 'FnArg' : 'v', 'Trait' : 'T' + \ } + + let lines = split(res, "\\n") + let out = [] + + for line in lines + if line =~ "^MATCH" + let completions = split(line[6:], ",") + let kind = get(typeMap, completions[4]) + let completion = {'kind' : kind, 'word' : completions[0], 'dup':1 } + + if kind ==# 'f' " function + let completion['menu'] = substitute(substitute(substitute(join(completions[5:], ','), '\(pub\|fn\) ',"","g"), '{*$', "", ""), ' where\s\?.*$', "", "") + if g:racer_insert_paren == 1 + let completion['abbr'] = completions[0] + let completion['word'] .= "(" + endif + let completion['info'] = join(completions[5:], ',') + elseif kind ==# 's' " struct + let completion['menu'] = substitute(substitute(join(completions[5:], ','), '\(pub\|struct\) ',"","g"), '{*$', "", "") + endif + + let out = add(out, completion) + endif + endfor + call delete(b:tmpfname) + return out +endfunction + +function! RacerGetCompletions(base) + let col = strlen(getline('.')) + strlen(a:base) " use the column from the previous RacerGetPrefixCol() call, since vim ammends it afterwards + call writefile(RacerGetBufferContents(a:base), b:tmpfname) + let fname = expand("%:p") + let cmd = g:racer_cmd." complete ".line(".")." ".col." ".fname." ".b:tmpfname + let res = system(cmd) + let lines = split(res, "\\n") + let out = [] + for line in lines + if line =~ "^MATCH" + let completion = split(line[6:], ",")[0] + let out = add(out, completion) + endif + endfor + call delete(b:tmpfname) + return out +endfunction + +function! RacerGoToDefinition() + let col = col(".")-1 + let b:racer_col = col + let fname = expand("%:p") + let tmpfname = tempname() + call writefile(getline(1, '$'), tmpfname) + let cmd = g:racer_cmd." find-definition ".line(".")." ".col." ".fname." ".tmpfname + let res = system(cmd) + let lines = split(res, "\\n") + for line in lines + if line =~ "^MATCH" + let linenum = split(line[6:], ",")[1] + let colnum = split(line[6:], ",")[2] + let fname = split(line[6:], ",")[3] + call RacerJumpToLocation(fname, linenum, colnum) + break + endif + endfor + call delete(tmpfname) +endfunction + +function! RacerGetBufferContents(base) + " Re-combine the completion base word from omnicomplete with the current + " line contents. Since the base word gets remove from the buffer before + " this function is invoked we have to put it back in to out tmpfile. + let col = col(".")-1 + let buf_lines = getline(1, '$') + let line_contents = getline('.') + let buf_lines[line('.') - 1] = strpart(line_contents, 0, col).a:base.strpart(line_contents, col, len(line_contents)) + return buf_lines +endfunction + +function! RacerJumpToLocation(filename, linenum, colnum) + if(a:filename != '') + " Record jump mark + normal! m` + if a:filename != bufname('%') + exec 'keepjumps e ' . fnameescape(a:filename) + endif + call cursor(a:linenum, a:colnum+1) + " Center definition on screen + normal! zz + endif +endfunction + +function! RacerComplete(findstart, base) + if a:findstart + return RacerGetPrefixCol(a:base) + else + if g:racer_experimental_completer == 1 + return RacerGetExpCompletions(a:base) + else + return RacerGetCompletions(a:base) + endif + endif +endfunction + +autocmd FileType rust setlocal omnifunc=RacerComplete +autocmd FileType rust nnoremap gd :call RacerGoToDefinition() +autocmd FileType rust nnoremap gD :vsplit:call RacerGoToDefinition() + +let &cpo = s:save_cpo +unlet s:save_cpo + diff --git a/sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py b/sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py new file mode 100644 index 00000000..7af86ac7 --- /dev/null +++ b/sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py @@ -0,0 +1,103 @@ +#============================================================================= +# FILE: racer.py +# AUTHOR: Shougo Matsushita +# License: MIT license {{{ +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# }}} +#============================================================================= + +import re +import os +import subprocess +from .base import Base + +class Source(Base): + def __init__(self, vim): + Base.__init__(self, vim) + + self.name = 'racer' + self.mark = '[racer]' + self.filetypes = ['rust'] + self.input_pattern = r'(\.|::)\w*' + self.__executable_racer = self.vim.funcs.executable( + self.vim.eval('g:racer_cmd')) + self.__racer = self.vim.eval('g:racer_cmd') + self.__encoding = self.vim.eval('&encoding') + + def get_complete_position(self, context): + if not self.__executable_racer: + return -1 + + results = self.get_results('prefix', self.vim.funcs.col('.')) + if not results: + return -1 + prefixline = results[0] + return int(prefixline[7:].split(',')[0]) + + def gather_candidates(self, context): + typeMap = { + 'Struct': 's', 'Module': 'M', 'Function': 'f', + 'Crate': 'C', 'Let': 'v', 'StructField': 'm', + 'Impl': 'i', 'Enum': 'e', 'EnumVariant': 'E', + 'Type': 't', 'FnArg': 'v', 'Trait': 'T' + } + + candidates = [] + insert_paren = int(self.vim.eval('g:racer_insert_paren')) + for line in [l[6:] for l + in self.get_results('complete-with-snippet', + context['complete_position'] + 1) + if l.startswith('MATCH')]: + completions = line.split(';', 6) + kind = typeMap[completions[5]] + completion = { 'kind': kind, 'word': completions[0], 'dup': 1 } + if kind == 'f': # function + completion['menu'] = completions[6].replace( + 'pub ', '').replace('fn ', '').rstrip('{') + if ' where ' in completion['menu'] or completion[ + 'menu'].endswith(' where') : + where = completion['menu'].rindex(' where') + completion['menu'] = completion['menu'][: where] + if insert_paren: + completion['abbr'] = completions[0] + completion['word'] += '(' + elif kind == 's' : # struct + completion['menu'] = completions[6].replace( + 'pub ', '').replace( 'struct ', '').rstrip('{') + candidates.append(completion) + return candidates + + def get_results(self, command, col): + temp = self.vim.funcs.tempname() + with open(temp, 'w') as f: + for l in self.vim.current.buffer: + f.write(l + "\n") + try: + results = subprocess.check_output([ + self.__racer, command, + str(self.vim.funcs.line('.')), + str(col - 1), + temp + ]).decode(self.__encoding).splitlines() + except subprocess.CalledProcessError: + return [] + finally: + os.remove(temp) + return results From 7337b70185d870fa946fbdf71c9632ff3b58282f Mon Sep 17 00:00:00 2001 From: Isaac Andrade Date: Wed, 17 Feb 2016 12:02:39 -0700 Subject: [PATCH 15/29] Update packages --- sources_non_forked/ack.vim/README.md | 9 - sources_non_forked/ag.vim/README.md | 3 + sources_non_forked/goyo.vim/autoload/goyo.vim | 4 +- .../syntastic/autoload/syntastic/log.vim | 9 +- .../autoload/syntastic/preprocess.vim | 36 +++ .../syntastic/autoload/syntastic/util.vim | 41 ++- .../syntastic/doc/syntastic.txt | 33 ++- .../syntastic/plugin/syntastic.vim | 2 +- .../syntastic/plugin/syntastic/registry.vim | 2 +- .../syntax_checkers/asciidoc/asciidoc.vim | 16 +- .../syntax_checkers/css/stylelint.vim | 6 +- .../syntax_checkers/javascript/flow.vim | 2 +- .../syntax_checkers/javascript/jscs.vim | 3 +- .../syntax_checkers/markdown/mdl.vim | 2 +- .../syntax_checkers/rst/rst2pseudoxml.vim | 12 +- .../syntax_checkers/scss/scss_lint.vim | 13 +- sources_non_forked/vim-airline/.travis.yml | 4 + sources_non_forked/vim-airline/LICENSE | 2 +- sources_non_forked/vim-airline/README.md | 73 +++-- .../vim-airline/autoload/airline.vim | 12 +- .../vim-airline/autoload/airline/builder.vim | 4 +- .../vim-airline/autoload/airline/debug.vim | 2 +- .../autoload/airline/deprecation.vim | 32 -- .../autoload/airline/extensions.vim | 28 +- .../autoload/airline/extensions/branch.vim | 147 ++++++--- .../airline/extensions/bufferline.vim | 2 +- .../autoload/airline/extensions/commandt.vim | 2 +- .../autoload/airline/extensions/csv.vim | 2 +- .../autoload/airline/extensions/ctrlp.vim | 2 +- .../autoload/airline/extensions/ctrlspace.vim | 9 +- .../autoload/airline/extensions/default.vim | 26 +- .../autoload/airline/extensions/eclim.vim | 2 +- .../autoload/airline/extensions/example.vim | 2 +- .../autoload/airline/extensions/hunks.vim | 19 +- .../autoload/airline/extensions/netrw.vim | 2 +- .../autoload/airline/extensions/nrrwrgn.vim | 5 +- .../airline/extensions/promptline.vim | 2 +- .../autoload/airline/extensions/quickfix.vim | 2 +- .../autoload/airline/extensions/syntastic.vim | 2 +- .../autoload/airline/extensions/tabline.vim | 61 +++- .../airline/extensions/tabline/autoshow.vim | 8 +- .../airline/extensions/tabline/buffers.vim | 33 ++- .../airline/extensions/tabline/buflist.vim | 38 +-- .../extensions/tabline/formatters/default.vim | 2 +- .../tabline/formatters/unique_tail.vim | 2 +- .../formatters/unique_tail_improved.vim | 2 +- .../airline/extensions/tabline/tabs.vim | 18 +- .../autoload/airline/extensions/tagbar.vim | 2 +- .../autoload/airline/extensions/tmuxline.vim | 2 +- .../autoload/airline/extensions/undotree.vim | 2 +- .../autoload/airline/extensions/unite.vim | 2 +- .../airline/extensions/virtualenv.vim | 20 +- .../airline/extensions/whitespace.vim | 47 ++- .../autoload/airline/extensions/wordcount.vim | 44 ++- .../autoload/airline/highlighter.vim | 66 +++-- .../vim-airline/autoload/airline/init.vim | 32 +- .../vim-airline/autoload/airline/parts.vim | 4 +- .../vim-airline/autoload/airline/section.vim | 2 +- .../vim-airline/autoload/airline/themes.vim | 5 +- .../autoload/airline/themes/badwolf.vim | 52 ---- .../autoload/airline/themes/base16.vim | 136 --------- .../autoload/airline/themes/behelit.vim | 58 ---- .../autoload/airline/themes/bubblegum.vim | 70 ----- .../autoload/airline/themes/distinguished.vim | 59 ---- .../autoload/airline/themes/durant.vim | 62 ---- .../autoload/airline/themes/hybrid.vim | 58 ---- .../autoload/airline/themes/hybridline.vim | 34 --- .../autoload/airline/themes/jellybeans.vim | 52 ---- .../autoload/airline/themes/kalisi.vim | 70 ----- .../autoload/airline/themes/kolor.vim | 59 ---- .../autoload/airline/themes/laederon.vim | 62 ---- .../autoload/airline/themes/light.vim | 45 --- .../autoload/airline/themes/lucius.vim | 56 ---- .../autoload/airline/themes/luna.vim | 92 ------ .../autoload/airline/themes/molokai.vim | 65 ---- .../autoload/airline/themes/monochrome.vim | 15 - .../autoload/airline/themes/murmur.vim | 82 ----- .../autoload/airline/themes/papercolor.vim | 65 ---- .../autoload/airline/themes/powerlineish.vim | 46 --- .../autoload/airline/themes/raven.vim | 85 ------ .../autoload/airline/themes/serene.vim | 41 --- .../autoload/airline/themes/silver.vim | 85 ------ .../autoload/airline/themes/simple.vim | 46 --- .../autoload/airline/themes/sol.vim | 90 ------ .../autoload/airline/themes/solarized.vim | 176 ----------- .../autoload/airline/themes/term.vim | 92 ------ .../autoload/airline/themes/tomorrow.vim | 44 --- .../autoload/airline/themes/ubaryd.vim | 64 ---- .../autoload/airline/themes/understated.vim | 43 --- .../autoload/airline/themes/wombat.vim | 90 ------ .../autoload/airline/themes/zenburn.vim | 44 --- .../vim-airline/autoload/airline/util.vim | 2 +- .../vim-airline/doc/airline.txt | 127 ++++++-- .../vim-airline/plugin/airline.vim | 42 ++- sources_non_forked/vim-airline/t/commands.vim | 4 + sources_non_forked/vim-airline/t/themes.vim | 4 +- .../vim-commentary/doc/commentary.txt | 3 - .../vim-commentary/plugin/commentary.vim | 9 +- .../vim-fugitive/plugin/fugitive.vim | 10 +- sources_non_forked/vim-go/README.md | 76 +++-- sources_non_forked/vim-go/autoload/go/cmd.vim | 157 ++++++---- .../vim-go/autoload/go/complete.vim | 14 +- sources_non_forked/vim-go/autoload/go/def.vim | 21 +- sources_non_forked/vim-go/autoload/go/fmt.vim | 38 ++- .../vim-go/autoload/go/jobcontrol.vim | 13 +- .../vim-go/autoload/go/lint.vim | 64 ++-- .../vim-go/autoload/go/list.vim | 107 +++++-- .../vim-go/autoload/go/oracle.vim | 10 +- .../vim-go/autoload/go/package.vim | 18 +- .../vim-go/autoload/go/path.vim | 2 +- .../vim-go/autoload/go/rename.vim | 32 +- .../vim-go/autoload/go/term.vim | 17 +- .../vim-go/autoload/go/util.vim | 82 ++--- sources_non_forked/vim-go/doc/vim-go.txt | 279 ++++++++++++++---- .../vim-go/ftdetect/gofiletype.vim | 10 +- .../vim-go/ftplugin/go/commands.vim | 3 + .../vim-go/ftplugin/go/mappings.vim | 15 +- .../vim-go/gosnippets/snippets/go.snip | 5 +- .../vim-go/indent/gohtmltmpl.vim | 39 +++ sources_non_forked/vim-go/plugin/go.vim | 31 +- sources_non_forked/vim-go/syntax/go.vim | 14 +- sources_non_forked/vim-jade/README.markdown | 19 -- sources_non_forked/vim-jade/ftdetect/jade.vim | 2 - sources_non_forked/vim-jade/ftplugin/jade.vim | 57 ---- sources_non_forked/vim-jade/indent/jade.vim | 70 ----- sources_non_forked/vim-jade/syntax/jade.vim | 104 ------- .../vim-markdown/syntax/markdown.vim | 12 + .../vim-multiple-cursors/README.md | 15 +- .../autoload/multiple_cursors.vim | 28 +- .../spec/multiple_cursors_spec.rb | 76 ++++- .../vim-snippets/UltiSnips/python.snippets | 20 +- .../vim-snippets/UltiSnips/rails.snippets | 16 +- .../vim-snippets/UltiSnips/ruby.snippets | 12 - .../vim-snippets/snippets/cmake.snippets | 83 ++++-- .../vim-snippets/snippets/eelixir.snippets | 8 - .../javascript/javascript.es6.snippets | 26 +- .../snippets/javascript/javascript.snippets | 4 +- .../vim-snippets/snippets/php.snippets | 26 +- .../vim-snippets/snippets/python.snippets | 28 +- .../vim-snippets/snippets/rust.snippets | 12 +- .../vim-snippets/snippets/slim.snippets | 27 +- .../snippets/systemverilog.snippets | 60 +--- 142 files changed, 1785 insertions(+), 3274 deletions(-) delete mode 100644 sources_non_forked/vim-airline/autoload/airline/deprecation.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/badwolf.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/base16.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/behelit.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/bubblegum.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/distinguished.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/durant.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/hybrid.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/hybridline.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/jellybeans.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/kolor.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/laederon.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/light.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/lucius.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/luna.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/molokai.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/monochrome.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/murmur.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/papercolor.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/powerlineish.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/raven.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/serene.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/silver.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/simple.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/sol.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/solarized.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/term.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/tomorrow.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/ubaryd.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/understated.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/wombat.vim delete mode 100644 sources_non_forked/vim-airline/autoload/airline/themes/zenburn.vim delete mode 100644 sources_non_forked/vim-jade/README.markdown delete mode 100644 sources_non_forked/vim-jade/ftdetect/jade.vim delete mode 100644 sources_non_forked/vim-jade/ftplugin/jade.vim delete mode 100644 sources_non_forked/vim-jade/indent/jade.vim delete mode 100644 sources_non_forked/vim-jade/syntax/jade.vim diff --git a/sources_non_forked/ack.vim/README.md b/sources_non_forked/ack.vim/README.md index c2e87067..a82bb804 100644 --- a/sources_non_forked/ack.vim/README.md +++ b/sources_non_forked/ack.vim/README.md @@ -129,15 +129,6 @@ optional background search execution with [vim-dispatch], and auto-previewing. Please see [the Github releases page][releases]. -### 1.0.9 (unreleased) - -* Fix location list and layout of quickfix when using Dispatch (#154) -* Fix the quick help overlay clobbering the list mappings -* Fix `:AckFile` when using Dispatch -* Restore original `'makeprg'` and `'errorformat'` when using Dispatch -* Arrow keys also work for auto-preview (#158) -* Internal refactoring and clean-up - ## Credits This plugin is derived from Antoine Imbert's blog post [Ack and Vim diff --git a/sources_non_forked/ag.vim/README.md b/sources_non_forked/ag.vim/README.md index 21ea504b..9e43262a 100644 --- a/sources_non_forked/ag.vim/README.md +++ b/sources_non_forked/ag.vim/README.md @@ -67,6 +67,9 @@ In the quickfix window, you can use: gv to open in vertical split silently q to close the quickfix window +### Related Plugin ### +[vim-ag-anything](https://github.com/Chun-Yang/vim-ag-anything) adds an 'ga' action to search any text object. + ### Acknowledgements ### This Vim plugin is derived (and by derived, I mean copied, almost entirely) diff --git a/sources_non_forked/goyo.vim/autoload/goyo.vim b/sources_non_forked/goyo.vim/autoload/goyo.vim index e66c5c14..edacd10b 100644 --- a/sources_non_forked/goyo.vim/autoload/goyo.vim +++ b/sources_non_forked/goyo.vim/autoload/goyo.vim @@ -33,7 +33,7 @@ function! s:get_color(group, attr) endfunction function! s:set_color(group, attr, color) - let gui = has('gui_running') + let gui = a:color =~ '^#' execute printf("hi %s %s%s=%s", a:group, gui ? 'gui' : 'cterm', a:attr, a:color) endfunction @@ -106,7 +106,7 @@ function! s:resize_pads() endfunction function! s:tranquilize() - let bg = s:get_color('Normal', 'bg') + let bg = s:get_color('Normal', 'bg#') for grp in ['NonText', 'FoldColumn', 'ColorColumn', 'VertSplit', \ 'StatusLine', 'StatusLineNC', 'SignColumn'] " -1 on Vim / '' on GVim diff --git a/sources_non_forked/syntastic/autoload/syntastic/log.vim b/sources_non_forked/syntastic/autoload/syntastic/log.vim index f3950bcc..517d2c2f 100644 --- a/sources_non_forked/syntastic/autoload/syntastic/log.vim +++ b/sources_non_forked/syntastic/autoload/syntastic/log.vim @@ -173,10 +173,17 @@ endfunction " }}}2 " Utilities {{{1 -function! s:_log_timestamp() abort " {{{2 +function! s:_log_timestamp_smart() abort " {{{2 + return printf('syntastic: %f: ', reltimefloat(reltime(g:_SYNTASTIC_START))) +endfunction " }}}2 + +function! s:_log_timestamp_dumb() abort " {{{2 return 'syntastic: ' . split(reltimestr(reltime(g:_SYNTASTIC_START)))[0] . ': ' endfunction " }}}2 +let s:_log_timestamp = function(has('float') && exists('*reltimefloat') ? 's:_log_timestamp_smart' : 's:_log_timestamp_dumb') +lockvar s:_log_timestamp + function! s:_format_variable(name) abort " {{{2 let vals = [] if exists('g:syntastic_' . a:name) diff --git a/sources_non_forked/syntastic/autoload/syntastic/preprocess.vim b/sources_non_forked/syntastic/autoload/syntastic/preprocess.vim index 433ed146..36d8059b 100644 --- a/sources_non_forked/syntastic/autoload/syntastic/preprocess.vim +++ b/sources_non_forked/syntastic/autoload/syntastic/preprocess.vim @@ -284,6 +284,42 @@ function! syntastic#preprocess#rparse(errors) abort " {{{2 return out endfunction " }}}2 +function! syntastic#preprocess#scss_lint(errors) abort " {{{2 + let errs = join(a:errors, '') + if errs ==# '' + return [] + endif + + let json = s:_decode_JSON(errs) + + let out = [] + if type(json) == type({}) + for fname in keys(json) + if type(json[fname]) == type([]) + for e in json[fname] + try + cal add(out, fname . ':' . + \ e['severity'][0] . ':' . + \ e['line'] . ':' . + \ e['column'] . ':' . + \ e['length'] . ':' . + \ ( has_key(e, 'linter') ? e['linter'] . ': ' : '' ) . + \ e['reason']) + catch /\m^Vim\%((\a\+)\)\=:E716/ + call syntastic#log#warn('checker scss/scss_lint: unrecognized error item ' . string(e)) + let out = [] + endtry + endfor + else + call syntastic#log#warn('checker scss/scss_lint: unrecognized error format') + endif + endfor + else + call syntastic#log#warn('checker scss/scss_lint: unrecognized error format') + endif + return out +endfunction " }}}2 + function! syntastic#preprocess#stylelint(errors) abort " {{{2 let out = [] diff --git a/sources_non_forked/syntastic/autoload/syntastic/util.vim b/sources_non_forked/syntastic/autoload/syntastic/util.vim index eec3c0df..ccb08410 100644 --- a/sources_non_forked/syntastic/autoload/syntastic/util.vim +++ b/sources_non_forked/syntastic/autoload/syntastic/util.vim @@ -51,7 +51,7 @@ endfunction " }}}2 function! syntastic#util#tmpdir() abort " {{{2 let tempdir = '' - if (has('unix') || has('mac')) && executable('mktemp') + if (has('unix') || has('mac')) && executable('mktemp') && !has('win32unix') " TODO: option "-t" to mktemp(1) is not portable let tmp = $TMPDIR !=# '' ? $TMPDIR : $TMP !=# '' ? $TMP : '/tmp' let out = split(syntastic#util#system('mktemp -q -d ' . tmp . '/vim-syntastic-' . getpid() . '-XXXXXXXX'), "\n") @@ -90,18 +90,7 @@ function! syntastic#util#rmrf(what) abort " {{{2 endif if getftype(a:what) ==# 'dir' - if !exists('s:rmrf') - let s:rmrf = - \ has('unix') || has('mac') ? 'rm -rf' : - \ has('win32') || has('win64') ? 'rmdir /S /Q' : - \ has('win16') || has('win95') || has('dos16') || has('dos32') ? 'deltree /Y' : '' - endif - - if s:rmrf !=# '' - silent! call syntastic#util#system(s:rmrf . ' ' . syntastic#util#shescape(a:what)) - else - call s:_rmrf(a:what) - endif + call s:_delete(a:what, 'rf') else silent! call delete(a:what) endif @@ -274,8 +263,9 @@ function! syntastic#util#unique(list) abort " {{{2 let seen = {} let uniques = [] for e in a:list - if !has_key(seen, e) - let seen[e] = 1 + let k = string(e) + if !has_key(seen, k) + let seen[k] = 1 call add(uniques, e) endif endfor @@ -478,6 +468,27 @@ function! s:_translateElement(key, term) abort " {{{2 return ret endfunction " }}}2 +" @vimlint(EVL103, 1, a:flags) +function! s:_delete_dumb(what, flags) abort " {{{2 + if !exists('s:rmrf') + let s:rmrf = + \ has('unix') || has('mac') ? 'rm -rf' : + \ has('win32') || has('win64') ? 'rmdir /S /Q' : + \ has('win16') || has('win95') || has('dos16') || has('dos32') ? 'deltree /Y' : '' + endif + + if s:rmrf !=# '' + silent! call syntastic#util#system(s:rmrf . ' ' . syntastic#util#shescape(a:what)) + else + call s:_rmrf(a:what) + endif +endfunction " }}}2 +" @vimlint(EVL103, 0, a:flags) + +" delete(dir, 'rf') was added in Vim 7.4.1107, but it didn't become usable until 7.4.1128 +let s:_delete = function(v:version > 704 || (v:version == 704 && has('patch1128')) ? 'delete' : 's:_delete_dumb') +lockvar s:_delete + function! s:_rmrf(what) abort " {{{2 if !exists('s:rmdir') let s:rmdir = syntastic#util#shescape(get(g:, 'netrw_localrmdir', 'rmdir')) diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt index 85871350..7a937b42 100644 --- a/sources_non_forked/syntastic/doc/syntastic.txt +++ b/sources_non_forked/syntastic/doc/syntastic.txt @@ -36,6 +36,7 @@ CONTENTS *syntastic-contents* 5.2.Choosing the executable................|syntastic-config-exec| 5.3.Configuring specific checkers..........|syntastic-config-makeprg| 5.4.Sorting errors.........................|syntastic-config-sort| + 5.5.Debugging..............................|syntastic-config-debug| 6.Notes........................................|syntastic-notes| 6.1.Handling of composite filetypes........|syntastic-composite| 6.2.Editing files over network.............|syntastic-netrw| @@ -158,6 +159,11 @@ Something like this could be more useful: > When syntax errors are detected a flag will be shown. The content of the flag is derived from the |syntastic_stl_format| option. +Please note that these settings might conflict with other Vim plugins that +change the way statusline works. Refer to these plugins' documentation for +possible solutions. See also |syntastic-powerline| below if you're using the +"powerline" Vim plugin (https://github.com/powerline/powerline). + ------------------------------------------------------------------------------ 2.2. Error signs *syntastic-error-signs* @@ -541,10 +547,10 @@ overriding filters, cf. |filter-overrides|). "level" - takes one of two values, "warnings" or "errors" "type" - can be either "syntax" or "style" - "regex" - is matched against the messages' text as a case-insensitive - |regular-expression| - "file" - is matched against the filenames the messages refer to, as a - case-sensitive |regular-expression|. + "regex" - each item in list is matched against the messages' text as a + case-insensitive |regular-expression| + "file" - each item in list is matched against the filenames the messages + refer to, as a case-sensitive |regular-expression|. If a key is prefixed by an exclamation mark "!", the corresponding filter is negated (i.e. the above example silences all messages that are NOT errors). @@ -814,6 +820,25 @@ defined. For aggregated lists (see |syntastic-aggregating-errors|) these variables are ignored if |'syntastic_sort_aggregated_errors'| is set (which is the default). +------------------------------------------------------------------------------ +5.5 Debugging *syntastic-config-debug* + +Syntastic can log a trace of its working to Vim's |message-history|. To verify +the command line constructed by syntastic to run a checker, set the variable +|'syntastic_debug'| to a non-zero value, run the checker, then run |:mes| to +display the messages, and look for "makeprg" in the output. + +From a user's perspective, the useful values for |'syntastic_debug'| are 1, 3, +and 33: + + 1 - logs syntastic's workflow + 3 - logs workflow, checker's output, and |location-list| manipulations + 33 - logs workflow and checker-specific details (such as version checks). + +Debug logs can be saved to a file; see |'syntastic_debug_file'| for details. + +Setting |'syntastic_debug'| to 0 turns off logging. + ============================================================================== 6. Notes *syntastic-notes* diff --git a/sources_non_forked/syntastic/plugin/syntastic.vim b/sources_non_forked/syntastic/plugin/syntastic.vim index 545ca7d4..7cc98b2c 100644 --- a/sources_non_forked/syntastic/plugin/syntastic.vim +++ b/sources_non_forked/syntastic/plugin/syntastic.vim @@ -19,7 +19,7 @@ if has('reltime') lockvar! g:_SYNTASTIC_START endif -let g:_SYNTASTIC_VERSION = '3.7.0-69' +let g:_SYNTASTIC_VERSION = '3.7.0-86' lockvar g:_SYNTASTIC_VERSION " Sanity checks {{{1 diff --git a/sources_non_forked/syntastic/plugin/syntastic/registry.vim b/sources_non_forked/syntastic/plugin/syntastic/registry.vim index 5ad0a192..13453b12 100644 --- a/sources_non_forked/syntastic/plugin/syntastic/registry.vim +++ b/sources_non_forked/syntastic/plugin/syntastic/registry.vim @@ -40,7 +40,7 @@ let s:_DEFAULT_CHECKERS = { \ 'go': ['go'], \ 'haml': ['haml'], \ 'handlebars': ['handlebars'], - \ 'haskell': ['ghc_mod', 'hdevtools', 'hlint'], + \ 'haskell': ['hdevtools', 'hlint'], \ 'haxe': ['haxe'], \ 'hss': ['hss'], \ 'html': ['tidy'], diff --git a/sources_non_forked/syntastic/syntax_checkers/asciidoc/asciidoc.vim b/sources_non_forked/syntastic/syntax_checkers/asciidoc/asciidoc.vim index 74f3c130..bc64e6ac 100644 --- a/sources_non_forked/syntastic/syntax_checkers/asciidoc/asciidoc.vim +++ b/sources_non_forked/syntastic/syntax_checkers/asciidoc/asciidoc.vim @@ -22,14 +22,14 @@ function! SyntaxCheckers_asciidoc_asciidoc_GetLocList() dict let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() }) let errorformat = - \ '%Easciidoc: %tRROR: %f: line %l: %m,' . - \ '%Easciidoc: %tRROR: %f: %m,' . - \ '%Easciidoc: FAILED: %f: line %l: %m,' . - \ '%Easciidoc: FAILED: %f: %m,' . - \ '%Wasciidoc: %tARNING: %f: line %l: %m,' . - \ '%Wasciidoc: %tARNING: %f: %m,' . - \ '%Wasciidoc: DEPRECATED: %f: line %l: %m,' . - \ '%Wasciidoc: DEPRECATED: %f: %m' + \ '%E%\w%\+: %tRROR: %f: line %l: %m,' . + \ '%E%\w%\+: %tRROR: %f: %m,' . + \ '%E%\w%\+: FAILED: %f: line %l: %m,' . + \ '%E%\w%\+: FAILED: %f: %m,' . + \ '%W%\w%\+: %tARNING: %f: line %l: %m,' . + \ '%W%\w%\+: %tARNING: %f: %m,' . + \ '%W%\w%\+: DEPRECATED: %f: line %l: %m,' . + \ '%W%\w%\+: DEPRECATED: %f: %m' return SyntasticMake({ \ 'makeprg': makeprg, diff --git a/sources_non_forked/syntastic/syntax_checkers/css/stylelint.vim b/sources_non_forked/syntastic/syntax_checkers/css/stylelint.vim index 1d2f40f2..58c7dec2 100644 --- a/sources_non_forked/syntastic/syntax_checkers/css/stylelint.vim +++ b/sources_non_forked/syntastic/syntax_checkers/css/stylelint.vim @@ -19,8 +19,12 @@ let g:loaded_syntastic_css_stylelint_checker = 1 let s:save_cpo = &cpo set cpo&vim +let s:args_after = { + \ 'css': '-f json', + \ 'scss': '-f json -s scss' } + function! SyntaxCheckers_css_stylelint_GetLocList() dict - let makeprg = self.makeprgBuild({ 'args_after': '-f json' }) + let makeprg = self.makeprgBuild({ 'args_after': get(s:args_after, self.getFiletype(), '') }) let errorformat = '%t:%f:%l:%c:%m' diff --git a/sources_non_forked/syntastic/syntax_checkers/javascript/flow.vim b/sources_non_forked/syntastic/syntax_checkers/javascript/flow.vim index 6ef39790..13ee47a3 100644 --- a/sources_non_forked/syntastic/syntax_checkers/javascript/flow.vim +++ b/sources_non_forked/syntastic/syntax_checkers/javascript/flow.vim @@ -34,7 +34,7 @@ function! SyntaxCheckers_javascript_flow_GetLocList() dict endif let makeprg = self.makeprgBuild({ - \ 'exe': self.getExecEscaped() . ' status', + \ 'exe': self.getExecEscaped() . ' check', \ 'args_after': '--show-all-errors --json' }) let errorformat = diff --git a/sources_non_forked/syntastic/syntax_checkers/javascript/jscs.vim b/sources_non_forked/syntastic/syntax_checkers/javascript/jscs.vim index e91b166c..d2590869 100644 --- a/sources_non_forked/syntastic/syntax_checkers/javascript/jscs.vim +++ b/sources_non_forked/syntastic/syntax_checkers/javascript/jscs.vim @@ -29,7 +29,8 @@ function! SyntaxCheckers_javascript_jscs_IsAvailable() dict endfunction function! SyntaxCheckers_javascript_jscs_GetLocList() dict - let makeprg = self.makeprgBuild({ 'args_after': '--no-colors --reporter json' }) + let makeprg = self.makeprgBuild({ + \ 'args_after': '--no-colors --max-errors -1 --reporter json' }) let errorformat = '%f:%l:%c:%m' diff --git a/sources_non_forked/syntastic/syntax_checkers/markdown/mdl.vim b/sources_non_forked/syntastic/syntax_checkers/markdown/mdl.vim index 3b40a744..17dc86d1 100644 --- a/sources_non_forked/syntastic/syntax_checkers/markdown/mdl.vim +++ b/sources_non_forked/syntastic/syntax_checkers/markdown/mdl.vim @@ -26,7 +26,7 @@ function! SyntaxCheckers_markdown_mdl_GetLocList() dict let makeprg = self.makeprgBuild({ 'args': '--warnings' }) let errorformat = - \ '%E%f:%l: %m,'. + \ '%E%f:%\s%\=%l: %m,'. \ '%W%f: Kramdown Warning: %m found on line %l' return SyntasticMake({ diff --git a/sources_non_forked/syntastic/syntax_checkers/rst/rst2pseudoxml.vim b/sources_non_forked/syntastic/syntax_checkers/rst/rst2pseudoxml.vim index 1c3ca09c..2a7c5cf2 100644 --- a/sources_non_forked/syntastic/syntax_checkers/rst/rst2pseudoxml.vim +++ b/sources_non_forked/syntastic/syntax_checkers/rst/rst2pseudoxml.vim @@ -29,10 +29,8 @@ function! SyntaxCheckers_rst_rst2pseudoxml_GetLocList() dict \ 'tail': syntastic#util#DevNull() }) let errorformat = - \ '%f:%l: (%tNFO/1) %m,'. - \ '%f:%l: (%tARNING/2) %m,'. - \ '%f:%l: (%tRROR/3) %m,'. - \ '%f:%l: (%tEVERE/4) %m,'. + \ '%f:%l: (%t%\w%\+/%\d%\+) %m,'. + \ '%f:: (%t%\w%\+/%\d%\+) %m,'. \ '%-G%.%#' let loclist = SyntasticMake({ @@ -40,11 +38,11 @@ function! SyntaxCheckers_rst_rst2pseudoxml_GetLocList() dict \ 'errorformat': errorformat }) for e in loclist - if e['type'] ==? 'S' - let e['type'] = 'E' - elseif e['type'] ==? 'I' + if e['type'] ==? 'I' let e['type'] = 'W' let e['subtype'] = 'Style' + else + let e['type'] = 'E' endif endfor diff --git a/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim b/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim index f292554f..c0f921af 100644 --- a/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim +++ b/sources_non_forked/syntastic/syntax_checkers/scss/scss_lint.vim @@ -21,21 +21,28 @@ function! SyntaxCheckers_scss_scss_lint_IsAvailable() dict if !executable(self.getExec()) return 0 endif - return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 12]) + return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 29]) endfunction function! SyntaxCheckers_scss_scss_lint_GetLocList() dict - let makeprg = self.makeprgBuild({}) + let makeprg = self.makeprgBuild({ 'args_after': '-f JSON' }) - let errorformat = '%f:%l [%t] %m' + let errorformat = '%f:%t:%l:%c:%n:%m' let loclist = SyntasticMake({ \ 'makeprg': makeprg, \ 'errorformat': errorformat, + \ 'preprocess': 'scss_lint', + \ 'postprocess': ['guards'], \ 'returns': [0, 1, 2, 65, 66] }) let cutoff = strlen('Syntax Error: ') for e in loclist + if e['nr'] > 1 + let e['hl'] = '\%>' . (e['col'] - 1) . 'c\%<' . (e['col'] + e['nr']) . 'c' + endif + let e['nr'] = 0 + if e['text'][: cutoff-1] ==# 'Syntax Error: ' let e['text'] = e['text'][cutoff :] else diff --git a/sources_non_forked/vim-airline/.travis.yml b/sources_non_forked/vim-airline/.travis.yml index 9ed483e7..54deccf7 100644 --- a/sources_non_forked/vim-airline/.travis.yml +++ b/sources_non_forked/vim-airline/.travis.yml @@ -1,4 +1,8 @@ language: ruby +before_install: + - curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/simple.vim" -o autoload/airline/themes/simple.vim + - curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/molokai.vim" -o autoload/airline/themes/molokai.vim + - mkdir colors && curl -f -L 'https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim' -o colors/molokai.vim rvm: - 1.9.3 script: rake ci diff --git a/sources_non_forked/vim-airline/LICENSE b/sources_non_forked/vim-airline/LICENSE index 49ba02fc..875accab 100644 --- a/sources_non_forked/vim-airline/LICENSE +++ b/sources_non_forked/vim-airline/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (C) 2013-2015 Bailey Ling +Copyright (C) 2013-2016 Bailey Ling Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), diff --git a/sources_non_forked/vim-airline/README.md b/sources_non_forked/vim-airline/README.md index c4651cf4..d3b898fe 100644 --- a/sources_non_forked/vim-airline/README.md +++ b/sources_non_forked/vim-airline/README.md @@ -1,8 +1,8 @@ -# vim-airline [![Build Status](https://travis-ci.org/bling/vim-airline.png)](https://travis-ci.org/bling/vim-airline) +# vim-airline [![Build Status](https://travis-ci.org/vim-airline/vim-airline.png)](https://travis-ci.org/vim-airline/vim-airline) Lean & mean status/tabline for vim that's light as air. -![img](https://github.com/bling/vim-airline/wiki/screenshots/demo.gif) +![img](https://github.com/vim-airline/vim-airline/wiki/screenshots/demo.gif) # Features @@ -15,7 +15,8 @@ Lean & mean status/tabline for vim that's light as air. [ctrlspace][38] and more. * Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols. * Optimized for speed; it loads in under a millisecond. -* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others; have a look at the [screenshots][14] in the wiki. +* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others. + Note these are now external to this plugin. See [below][46] for detail. * Supports 7.2 as the minimum Vim version. * The master branch tries to be as stable as possible, and new features are merged in only after they have gone through a [full regression test][33]. * Unit testing suite. @@ -26,6 +27,20 @@ If you don't like the defaults, you can replace all sections with standard `stat ![image](https://f.cloud.github.com/assets/306502/1009429/d69306da-0b38-11e3-94bf-7c6e3eef41e9.png) +## Themes + +Themes have moved to +another repository as of [this commit][45]. + +Install the themes as you would this plugin (Vundle example): + +```vim +Plugin 'vim-airline/vim-airline' +Plugin 'vim-airline/vim-airline-themes' +``` + +See https://github.com/vim-airline/vim-airline-themes for more. + ## Automatic truncation Sections and parts within sections can be configured to automatically hide when the window size shrinks. @@ -78,6 +93,9 @@ vim-airline integrates with a variety of plugins out of the box. These extensio #### [promptline][36] ![airline-promptline-sc](https://f.cloud.github.com/assets/1532071/1871900/7d4b28a0-789d-11e3-90e4-16f37269981b.gif) +#### [ctrlspace][38] +![papercolor_with_ctrlspace](https://cloud.githubusercontent.com/assets/493242/12912041/7fc3c6ec-cf16-11e5-8775-8492b9c64ebf.png) + ## Extras vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also: @@ -93,7 +111,7 @@ Every section is composed of parts, and you can reorder and reconfigure them at ![image](https://f.cloud.github.com/assets/306502/1073278/f291dd4c-14a3-11e3-8a83-268e2753f97d.png) -Sections can contain accents, which allows for very granular control of visuals (see configuration [here](https://github.com/bling/vim-airline/issues/299#issuecomment-25772886)). +Sections can contain accents, which allows for very granular control of visuals (see configuration [here](https://github.com/vim-airline/vim-airline/issues/299#issuecomment-25772886)). ![image](https://f.cloud.github.com/assets/306502/1195815/4bfa38d0-249d-11e3-823e-773cfc2ca894.png) @@ -122,12 +140,14 @@ I wrote the initial version on an airplane, and since it's light as air it turne This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers: * [Pathogen][11] - * `git clone https://github.com/bling/vim-airline ~/.vim/bundle/vim-airline` + * `git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline` * Remember to run `:Helptags` to generate help tags * [NeoBundle][12] - * `NeoBundle 'bling/vim-airline'` + * `NeoBundle 'vim-airline/vim-airline'` * [Vundle][13] - * `Plugin 'bling/vim-airline'` + * `Plugin 'vim-airline/vim-airline'` +* [Plug][40] + * `Plug 'vim-airline/vim-airline'` * [VAM][22] * `call vam#ActivateAddons([ 'vim-airline' ])` * manual @@ -166,33 +186,17 @@ If you don't want all the bells and whistles enabled by default, you can define A full list of screenshots for various themes can be found in the [Wiki][14]. -# Bugs +# Maintainers -Tracking down bugs can take a very long time due to different configurations, versions, and operating systems. To ensure a timely response, please help me out by doing the following: +The project is currently being maintained by [Bailey Ling][41], [Christian Brabandt][42], and [Mike Hartington][44]. -* Reproduce it with this [minivimrc][7] repository to rule out any configuration conflicts. -* A link to your vimrc or a gist which shows how you configured the plugin(s). -* And so I can reproduce; your `:version` of vim, and the commit of vim-airline you're using. - -# Contributions - -Contributions and pull requests are welcome. Please take note of the following guidelines: - -* Adhere to the existing style as much as possible; notably, 2 space indents and long-form keywords. -* Keep the history clean! squash your branches before you submit a pull request. `pull --rebase` is your friend. -* Any changes to the core should be tested against Vim 7.2. - -## Themes - -* If you submit a theme, please create a screenshot so it can be added to the [Wiki][14]. -* In the majority of cases, modifications to colors of existing themes will likely be rejected. Themes are a subjective thing, so while you may prefer that a particular color be darker, another user will prefer it to be lighter, or something entirely different. The more popular the theme, the more unlikely the change will be accepted. However, it's pretty simple to create your own theme; copy the theme to `~/.vim/autoload/airline/themes` under a new name with your modifications, and it can be used. +If you are interested in becoming a maintainer (we always welcome more maintainers), please [go here][43]. # License -MIT License. Copyright (c) 2013-2015 Bailey Ling. +MIT License. Copyright (c) 2013-2016 Bailey Ling. - -[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/bling/vim-airline/trend.png)](https://bitdeli.com/free "Bitdeli Badge") +[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/vim-airline/vim-airline/trend.png)](https://bitdeli.com/free "Bitdeli Badge") [1]: https://github.com/Lokaltog/vim-powerline [2]: https://github.com/Lokaltog/powerline @@ -207,7 +211,7 @@ MIT License. Copyright (c) 2013-2015 Bailey Ling. [11]: https://github.com/tpope/vim-pathogen [12]: https://github.com/Shougo/neobundle.vim [13]: https://github.com/gmarik/vundle -[14]: https://github.com/bling/vim-airline/wiki/Screenshots +[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots [15]: https://github.com/techlivezheng/vim-plugin-minibufexpl [16]: https://github.com/sjl/gundo.vim [17]: https://github.com/mbbill/undotree @@ -220,16 +224,23 @@ MIT License. Copyright (c) 2013-2015 Bailey Ling. [24]: https://github.com/chriskempson/tomorrow-theme [25]: https://github.com/tomasr/molokai [26]: https://github.com/nanotech/jellybeans.vim -[27]: https://github.com/bling/vim-airline/wiki/FAQ +[27]: https://github.com/vim-airline/vim-airline/wiki/FAQ [28]: https://github.com/chrisbra/csv.vim [29]: https://github.com/airblade/vim-gitgutter [30]: https://github.com/mhinz/vim-signify [31]: https://github.com/jmcantrell/vim-virtualenv [32]: https://github.com/chriskempson/base16-vim -[33]: https://github.com/bling/vim-airline/wiki/Test-Plan +[33]: https://github.com/vim-airline/vim-airline/wiki/Test-Plan [34]: http://eclim.org [35]: https://github.com/edkolev/tmuxline.vim [36]: https://github.com/edkolev/promptline.vim [37]: https://github.com/gcmt/taboo.vim [38]: https://github.com/szw/vim-ctrlspace [39]: https://github.com/tomtom/quickfixsigns_vim +[40]: https://github.com/junegunn/vim-plug +[41]: https://github.com/bling +[42]: https://github.com/chrisbra +[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer +[44]: https://github.com/mhartington +[45]: https://github.com/vim-airline/vim-airline/commit/d7fd8ca649e441b3865551a325b10504cdf0711b +[46]: https://github.com/vim-airline/vim-airline#themes diff --git a/sources_non_forked/vim-airline/autoload/airline.vim b/sources_non_forked/vim-airline/autoload/airline.vim index 1d102320..83b7dfa2 100644 --- a/sources_non_forked/vim-airline/autoload/airline.vim +++ b/sources_non_forked/vim-airline/autoload/airline.vim @@ -1,9 +1,9 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', []) -let s:sections = ['a','b','c','gutter','x','y','z','warning'] +let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning'] let s:inactive_funcrefs = [] function! airline#add_statusline_func(name) @@ -71,6 +71,7 @@ endfunction function! airline#switch_matching_theme() if exists('g:colors_name') + let existing = g:airline_theme try let palette = g:airline#themes#{g:colors_name}#palette call airline#switch_theme(g:colors_name) @@ -78,7 +79,12 @@ function! airline#switch_matching_theme() catch for map in items(g:airline_theme_map) if match(g:colors_name, map[0]) > -1 - call airline#switch_theme(map[1]) + try + let palette = g:airline#themes#{map[1]}#palette + call airline#switch_theme(map[1]) + catch + call airline#switch_theme(existing) + endtry return 1 endif endfor diff --git a/sources_non_forked/vim-airline/autoload/airline/builder.vim b/sources_non_forked/vim-airline/autoload/airline/builder.vim index ee4bbb79..217fda99 100644 --- a/sources_non_forked/vim-airline/autoload/airline/builder.vim +++ b/sources_non_forked/vim-airline/autoload/airline/builder.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:prototype = {} @@ -77,7 +77,7 @@ function! s:should_change_group(group1, group2) endif let color1 = airline#highlighter#get_highlight(a:group1) let color2 = airline#highlighter#get_highlight(a:group2) - if has('gui_running') || (has("termtruecolor") && &guicolors == 1) + if g:airline_gui_mode ==# 'gui' return color1[1] != color2[1] || color1[0] != color2[0] else return color1[3] != color2[3] || color1[2] != color2[2] diff --git a/sources_non_forked/vim-airline/autoload/airline/debug.vim b/sources_non_forked/vim-airline/autoload/airline/debug.vim index fb195df1..3273b0c1 100644 --- a/sources_non_forked/vim-airline/autoload/airline/debug.vim +++ b/sources_non_forked/vim-airline/autoload/airline/debug.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 function! airline#debug#profile1() diff --git a/sources_non_forked/vim-airline/autoload/airline/deprecation.vim b/sources_non_forked/vim-airline/autoload/airline/deprecation.vim deleted file mode 100644 index 7669549e..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/deprecation.vim +++ /dev/null @@ -1,32 +0,0 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. -" vim: et ts=2 sts=2 sw=2 - -function! airline#deprecation#check() - if exists('g:airline_enable_fugitive') || exists('g:airline_fugitive_prefix') - echom 'The g:airline_enable_fugitive and g:airline_fugitive_prefix variables are obsolete. Please read the documentation about the branch extension.' - endif - - let tests = [ - \ [ 'g:airline_paste_symbol', 'g:airline_symbols.paste' ], - \ [ 'g:airline_readonly_symbol', 'g:airline_symbols.readonly' ], - \ [ 'g:airline_linecolumn_prefix', 'g:airline_symbols.linenr' ], - \ [ 'g:airline_branch_prefix', 'g:airline_symbols.branch' ], - \ [ 'g:airline_branch_empty_message', 'g:airline#extensions#branch#empty_message' ], - \ [ 'g:airline_detect_whitespace', 'g:airline#extensions#whitespace#enabled|show_message' ], - \ [ 'g:airline_enable_hunks', 'g:airline#extensions#hunks#enabled' ], - \ [ 'g:airline_enable_tagbar', 'g:airline#extensions#tagbar#enabled' ], - \ [ 'g:airline_enable_csv', 'g:airline#extensions#csv#enabled' ], - \ [ 'g:airline_enable_branch', 'g:airline#extensions#branch#enabled' ], - \ [ 'g:airline_enable_bufferline', 'g:airline#extensions#bufferline#enabled' ], - \ [ 'g:airline_enable_syntastic', 'g:airline#extensions#syntastic#enabled' ], - \ [ 'g:airline_enable_eclim', 'g:airline#extensions#eclim#enabled' ], - \ ] - for test in tests - if exists(test[0]) - let max = winwidth(0) - 16 - let msg = printf('The variable %s is deprecated and may not work in the future. It has been replaced with %s. Please read the documentation.', test[0], test[1]) - echom msg[:max].'...' - endif - endfor -endfunction - diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions.vim b/sources_non_forked/vim-airline/autoload/airline/extensions.vim index 4b1c80a1..0ce64252 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:ext = {} @@ -138,6 +138,10 @@ function! airline#extensions#load() call airline#extensions#netrw#init(s:ext) endif + if get(g:, 'airline#extensions#ycm#enabled', 0) + call airline#extensions#ycm#init(s:ext) + endif + if get(g:, 'loaded_vimfiler', 0) let g:vimfiler_force_overwrite_statusline = 0 endif @@ -146,7 +150,7 @@ function! airline#extensions#load() call airline#extensions#ctrlp#init(s:ext) endif - if get(g:, 'ctrlspace_loaded', 0) + if get(g:, 'CtrlSpaceLoaded', 0) call airline#extensions#ctrlspace#init(s:ext) endif @@ -158,17 +162,17 @@ function! airline#extensions#load() call airline#extensions#undotree#init(s:ext) endif - if (get(g:, 'airline#extensions#hunks#enabled', 1) && get(g:, 'airline_enable_hunks', 1)) + if get(g:, 'airline#extensions#hunks#enabled', 1) \ && (exists('g:loaded_signify') || exists('g:loaded_gitgutter') || exists('g:loaded_changes') || exists('g:loaded_quickfixsigns')) call airline#extensions#hunks#init(s:ext) endif - if (get(g:, 'airline#extensions#tagbar#enabled', 1) && get(g:, 'airline_enable_tagbar', 1)) + if get(g:, 'airline#extensions#tagbar#enabled', 1) \ && exists(':TagbarToggle') call airline#extensions#tagbar#init(s:ext) endif - if (get(g:, 'airline#extensions#csv#enabled', 1) && get(g:, 'airline_enable_csv', 1)) + if get(g:, 'airline#extensions#csv#enabled', 1) \ && (get(g:, 'loaded_csv', 0) || exists(':Table')) call airline#extensions#csv#init(s:ext) endif @@ -178,18 +182,18 @@ function! airline#extensions#load() let s:filetype_regex_overrides['^int-'] = ['vimshell','%{substitute(&ft, "int-", "", "")}'] endif - if (get(g:, 'airline#extensions#branch#enabled', 1) && get(g:, 'airline_enable_branch', 1)) + if get(g:, 'airline#extensions#branch#enabled', 1) \ && (exists('*fugitive#head') || exists('*lawrencium#statusline') || \ (get(g:, 'airline#extensions#branch#use_vcscommand', 0) && exists('*VCSCommandGetStatusLine'))) call airline#extensions#branch#init(s:ext) endif - if (get(g:, 'airline#extensions#bufferline#enabled', 1) && get(g:, 'airline_enable_bufferline', 1)) + if get(g:, 'airline#extensions#bufferline#enabled', 1) \ && exists('*bufferline#get_status_string') call airline#extensions#bufferline#init(s:ext) endif - if isdirectory($VIRTUAL_ENV) && get(g:, 'airline#extensions#virtualenv#enabled', 1) + if (get(g:, 'airline#extensions#virtualenv#enabled', 1) && (exists(':VirtualEnvList') || isdirectory($VIRTUAL_ENV))) call airline#extensions#virtualenv#init(s:ext) endif @@ -197,12 +201,12 @@ function! airline#extensions#load() call airline#extensions#eclim#init(s:ext) endif - if (get(g:, 'airline#extensions#syntastic#enabled', 1) && get(g:, 'airline_enable_syntastic', 1)) + if get(g:, 'airline#extensions#syntastic#enabled', 1) \ && exists(':SyntasticCheck') call airline#extensions#syntastic#init(s:ext) endif - if (get(g:, 'airline#extensions#whitespace#enabled', 1) && get(g:, 'airline_detect_whitespace', 1)) + if get(g:, 'airline#extensions#whitespace#enabled', 1) call airline#extensions#whitespace#init(s:ext) endif @@ -226,6 +230,10 @@ function! airline#extensions#load() call airline#extensions#nrrwrgn#init(s:ext) endif + if get(g:, 'airline#extensions#unicode#enabled', 1) && exists(':UnicodeTable') == 2 + call airline#extensions#unicode#init(s:ext) + endif + if (get(g:, 'airline#extensions#capslock#enabled', 1) && exists('*CapsLockStatusline')) call airline#extensions#capslock#init(s:ext) endif diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim index 01e23202..d7f227d7 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:has_fugitive = exists('*fugitive#head') @@ -9,6 +9,10 @@ if !s:has_fugitive && !s:has_lawrencium && !s:has_vcscommand finish endif +let s:git_dirs = {} +let s:untracked_git = {} +let s:untracked_hg = {} + let s:head_format = get(g:, 'airline#extensions#branch#format', 0) if s:head_format == 1 function! s:format_name(name) @@ -28,71 +32,125 @@ else endfunction endif -let s:git_dirs = {} function! s:get_git_branch(path) - if has_key(s:git_dirs, a:path) - return s:git_dirs[a:path] + if !s:has_fugitive + return '' endif - let dir = fugitive#extract_git_dir(a:path) - if empty(dir) - let name = '' - else - try - let line = join(readfile(dir . '/HEAD')) - if strpart(line, 0, 16) == 'ref: refs/heads/' - let name = strpart(line, 16) - else - " raw commit hash - let name = strpart(line, 0, 7) - endif - catch + let name = fugitive#head(7) + if empty(name) + if has_key(s:git_dirs, a:path) + return s:git_dirs[a:path] + endif + + let dir = fugitive#extract_git_dir(a:path) + if empty(dir) let name = '' - endtry + else + try + let line = join(readfile(dir . '/HEAD')) + if strpart(line, 0, 16) == 'ref: refs/heads/' + let name = strpart(line, 16) + else + " raw commit hash + let name = strpart(line, 0, 7) + endif + catch + let name = '' + endtry + endif endif let s:git_dirs[a:path] = name return name endfunction +function! s:get_git_untracked(file) + let untracked = '' + if empty(a:file) + return untracked + endif + if has_key(s:untracked_git, a:file) + let untracked = s:untracked_git[a:file] + else + let output = system('git status --porcelain -- '. a:file) + if output[0:1] is# '??' && output[3:-2] is? a:file + let untracked = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists) + endif + let s:untracked_git[a:file] = untracked + endif + return untracked +endfunction + +function! s:get_hg_untracked(file) + if s:has_lawrencium + " delete cache when unlet b:airline head? + let untracked = '' + if empty(a:file) + return untracked + endif + if has_key(s:untracked_hg, a:file) + let untracked = s:untracked_hg[a:file] + else + let untracked = (system('hg status -u -- '. a:file)[0] is# '?' ? + \ get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists) : '') + let s:untracked_hg[a:file] = untracked + endif + return untracked + endif +endfunction + +function! s:get_hg_branch() + if s:has_lawrencium + return lawrencium#statusline() + endif + return '' +endfunction + function! airline#extensions#branch#head() if exists('b:airline_head') && !empty(b:airline_head) return b:airline_head endif let b:airline_head = '' + let l:heads = {} + let l:vcs_priority = get(g:, "airline#extensions#branch#vcs_priority", ["git", "mercurial"]) let found_fugitive_head = 0 - if s:has_fugitive && !exists('b:mercurial_dir') - let b:airline_head = fugitive#head(7) + let l:git_head = s:get_git_branch(expand("%:p:h")) + let l:hg_head = s:get_hg_branch() + + if !empty(l:git_head) let found_fugitive_head = 1 - - if empty(b:airline_head) && !exists('b:git_dir') - let b:airline_head = s:get_git_branch(expand("%:p:h")) - endif + let l:heads.git = (!empty(l:hg_head) ? "git:" : '') . s:format_name(l:git_head) + let l:git_untracked = s:get_git_untracked(expand("%:p")) + let l:heads.git .= l:git_untracked endif - if empty(b:airline_head) - if s:has_lawrencium - let b:airline_head = lawrencium#statusline() - endif + if !empty(l:hg_head) + let l:heads.mercurial = (!empty(l:git_head) ? "hg:" : '') . s:format_name(l:hg_head) + let l:hg_untracked = s:get_hg_untracked(expand("%:p")) + let l:heads.mercurial.= l:hg_untracked endif - if empty(b:airline_head) + if empty(l:heads) if s:has_vcscommand call VCSCommandEnableBufferSetup() if exists('b:VCSCommandBufferInfo') - let b:airline_head = get(b:VCSCommandBufferInfo, 0, '') + let b:airline_head = s:format_name(get(b:VCSCommandBufferInfo, 0, '')) endif endif + else + for vcs in l:vcs_priority + if has_key(l:heads, vcs) + if !empty(b:airline_head) + let b:airline_head = b:airline_head . " | " + endif + let b:airline_head = b:airline_head . l:heads[vcs] + endif + endfor endif - if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path() - let b:airline_head = '' - endif - - let b:airline_head = s:format_name(b:airline_head) - if exists("g:airline#extensions#branch#displayed_head_limit") let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit if len(b:airline_head) > w:displayed_head_limit - 1 @@ -100,13 +158,15 @@ function! airline#extensions#branch#head() endif endif + if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path() + let b:airline_head = '' + endif return b:airline_head endfunction function! airline#extensions#branch#get_head() let head = airline#extensions#branch#head() - let empty_message = get(g:, 'airline#extensions#branch#empty_message', - \ get(g:, 'airline_branch_empty_message', '')) + let empty_message = get(g:, 'airline#extensions#branch#empty_message', '') let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch) return empty(head) \ ? empty_message @@ -136,9 +196,20 @@ function! s:check_in_path() return b:airline_file_in_root endfunction +function! s:reset_untracked_cache() + if exists("s:untracked_git") + let s:untracked_git={} + endif + if exists("s:untracked_hg") + let s:untracked_hg={} + endif +endfunction + function! airline#extensions#branch#init(ext) call airline#parts#define_function('branch', 'airline#extensions#branch#get_head') autocmd BufReadPost * unlet! b:airline_file_in_root autocmd CursorHold,ShellCmdPost,CmdwinLeave * unlet! b:airline_head + autocmd User AirlineBeforeRefresh unlet! b:airline_head + autocmd BufWritePost,ShellCmdPost * call s:reset_untracked_cache() endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/bufferline.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/bufferline.vim index f2727c39..31d77aad 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/bufferline.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/bufferline.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists('*bufferline#get_status_string') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/commandt.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/commandt.vim index 8fce75db..fe6bbf94 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/commandt.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/commandt.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !get(g:, 'command_t_loaded', 0) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/csv.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/csv.vim index f2689dde..c051ad67 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/csv.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/csv.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !get(g:, 'loaded_csv', 0) && !exists(':Table') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlp.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlp.vim index c81fc9c9..c4f856bb 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlp.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlp.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !get(g:, 'loaded_ctrlp', 0) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlspace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlspace.vim index 3a29efd0..166cd923 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlspace.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/ctrlspace.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:spc = g:airline_symbols.space @@ -6,13 +6,12 @@ let s:padding = s:spc . s:spc . s:spc function! airline#extensions#ctrlspace#statusline(...) let b = airline#builder#new({ 'active': 1 }) - call b.add_section('airline_a', s:padding . g:ctrlspace_symbols.cs . s:padding) - call b.add_section('airline_b', s:padding . ctrlspace#statusline_mode_segment(s:padding)) + call b.add_section('airline_b', '⌗' . s:padding . ctrlspace#api#StatuslineModeSegment(s:padding)) call b.split() - call b.add_section('airline_x', s:spc . ctrlspace#statusline_tab_segment() . s:spc) + call b.add_section('airline_x', s:spc . ctrlspace#api#StatuslineTabSegment() . s:spc) return b.build() endfunction function! airline#extensions#ctrlspace#init(ext) - let g:ctrlspace_statusline_function = 'airline#extensions#ctrlspace#statusline()' + let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()" endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim index 51f1c0a2..998aa43b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/default.vim @@ -1,15 +1,18 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 +let s:section_use_groups = get(g:, 'airline#extensions#default#section_use_groupitems', 1) let s:section_truncate_width = get(g:, 'airline#extensions#default#section_truncate_width', { \ 'b': 79, \ 'x': 60, \ 'y': 88, \ 'z': 45, + \ 'warning': 80, + \ 'error': 80, \ }) let s:layout = get(g:, 'airline#extensions#default#layout', [ \ [ 'a', 'b', 'c' ], - \ [ 'x', 'y', 'z', 'warning' ] + \ [ 'x', 'y', 'z', 'warning', 'error' ] \ ]) function! s:get_section(winnr, key, ...) @@ -26,30 +29,41 @@ endfunction function! s:build_sections(builder, context, keys) for key in a:keys - if key == 'warning' && !a:context.active + if (key == 'warning' || key == 'error') && !a:context.active continue endif call s:add_section(a:builder, a:context, key) endfor endfunction -if v:version >= 704 || (v:version >= 703 && has('patch81')) +" There still is a highlighting bug when using groups %(%) in the statusline, +" deactivate it, until this is properly fixed: +" https://groups.google.com/d/msg/vim_dev/sb1jmVirXPU/mPhvDnZ-CwAJ +if s:section_use_groups && (v:version >= 704 || (v:version >= 703 && has('patch81'))) function s:add_section(builder, context, key) " i have no idea why the warning section needs special treatment, but it's " needed to prevent separators from showing up - if a:key == 'warning' + if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key))) + return + endif + if (a:key == 'warning' || a:key == 'error') call a:builder.add_raw('%(') endif call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key)) - if a:key == 'warning' + if (a:key == 'warning' || a:key == 'error') call a:builder.add_raw('%)') endif endfunction else " older version don't like the use of %(%) function s:add_section(builder, context, key) + if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key))) + return + endif if a:key == 'warning' call a:builder.add_raw('%#airline_warning#'.s:get_section(a:context.winnr, a:key)) + elseif a:key == 'error' + call a:builder.add_raw('%#airline_error#'.s:get_section(a:context.winnr, a:key)) else call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key)) endif diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/eclim.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/eclim.vim index 9380447f..50cef99c 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/eclim.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/eclim.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':ProjectCreate') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/example.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/example.vim index 5bf21775..d744bea2 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/example.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/example.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 " we don't actually want this loaded :P diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/hunks.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/hunks.vim index 7e51dc40..86d86557 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/hunks.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/hunks.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !get(g:, 'loaded_signify', 0) && !get(g:, 'loaded_gitgutter', 0) && !get(g:, 'loaded_changes', 0) && !get(g:, 'loaded_quickfixsigns', 0) @@ -44,22 +44,21 @@ function! s:get_hunks_empty() return '' endfunction -let s:source_func = '' function! s:get_hunks() - if empty(s:source_func) - if get(g:, 'loaded_signify', 0) - let s:source_func = 's:get_hunks_signify' + if !exists('b:source_func') + if get(g:, 'loaded_signify') && sy#buffer_is_active() + let b:source_func = 's:get_hunks_signify' elseif exists('*GitGutterGetHunkSummary') - let s:source_func = 's:get_hunks_gitgutter' + let b:source_func = 's:get_hunks_gitgutter' elseif exists('*changes#GetStats') - let s:source_func = 's:get_hunks_changes' + let b:source_func = 's:get_hunks_changes' elseif exists('*quickfixsigns#vcsdiff#GetHunkSummary') - let s:source_func = 'quickfixsigns#vcsdiff#GetHunkSummary' + let b:source_func = 'quickfixsigns#vcsdiff#GetHunkSummary' else - let s:source_func = 's:get_hunks_empty' + let b:source_func = 's:get_hunks_empty' endif endif - return {s:source_func}() + return {b:source_func}() endfunction function! airline#extensions#hunks#get_hunks() diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/netrw.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/netrw.vim index 728dfddd..fcd312d3 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/netrw.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/netrw.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':NetrwSettings') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/nrrwrgn.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/nrrwrgn.vim index 64a7fee8..78a1daaf 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/nrrwrgn.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/nrrwrgn.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !get(g:, 'loaded_nrrw_rgn', 0) @@ -39,7 +39,8 @@ function! airline#extensions#nrrwrgn#apply(...) endif endif let range=(dict.multi ? '' : printf("[%d-%d]", dict.start[1], dict.end[1])) - call a:1.add_section('airline_c', printf("%s %s %s", name, range, dict.enabled ? "\u2713" : '!')) + call a:1.add_section('airline_c', printf("%s %s %s", name, range, + \ dict.enabled ? (&encoding ==? 'utf-8' ? "\u2713" : '') : '!')) call a:1.split() call a:1.add_section('airline_x', get(g:, 'airline_section_x').spc) call a:1.add_section('airline_y', spc.get(g:, 'airline_section_y').spc) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/promptline.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/promptline.vim index 98513a67..770a5736 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/promptline.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/promptline.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':PromptlineSnapshot') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/quickfix.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/quickfix.vim index b358329d..91f459fa 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/quickfix.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/quickfix.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let g:airline#extensions#quickfix#quickfix_text = 'Quickfix' diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/syntastic.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/syntastic.vim index 92584813..0c0c53c4 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/syntastic.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/syntastic.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':SyntasticCheck') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim index 41350cc6..0447952b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim @@ -1,15 +1,16 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:formatter = get(g:, 'airline#extensions#tabline#formatter', 'default') let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) - +let s:ignore_bufadd_pat = get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree') let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0) if s:taboo let g:taboo_tabline = 0 endif +let s:ctrlspace = get(g:, 'CtrlSpaceLoaded', 0) function! airline#extensions#tabline#init(ext) if has('gui_running') @@ -27,31 +28,60 @@ function! s:toggle_off() call airline#extensions#tabline#autoshow#off() call airline#extensions#tabline#tabs#off() call airline#extensions#tabline#buffers#off() + call airline#extensions#tabline#ctrlspace#off() endfunction function! s:toggle_on() call airline#extensions#tabline#autoshow#on() call airline#extensions#tabline#tabs#on() call airline#extensions#tabline#buffers#on() + call airline#extensions#tabline#ctrlspace#on() set tabline=%!airline#extensions#tabline#get() endfunction +function! s:update_tabline() + let match = expand('') + if pumvisible() + return + elseif !get(g:, 'airline#extensions#tabline#enabled', 0) + return + " return, if buffer matches ignore pattern or is directory (netrw) + elseif empty(match) + \ || match(match, s:ignore_bufadd_pat) > -1 + \ || isdirectory(expand("")) + return + endif + if empty(mapcheck("AirlineTablineRefresh", 'n')) + noremap AirlineTablineRefresh :set mod! + endif + call feedkeys("\AirlineTablineRefresh") + call feedkeys("\AirlineTablineRefresh") + "call feedkeys(',,', 't') + "call feedkeys(':unmap ,,') + " force re-evaluation of tabline setting + " disable explicit redraw, may cause E315 + "redraw +endfunction + function! airline#extensions#tabline#load_theme(palette) + if pumvisible() + return + endif let colors = get(a:palette, 'tabline', {}) + " Theme for tabs on the left let l:tab = get(colors, 'airline_tab', a:palette.normal.airline_b) let l:tabsel = get(colors, 'airline_tabsel', a:palette.normal.airline_a) let l:tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a) let l:tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c) let l:tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a) + let l:tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c) if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c') let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c) else "Fall back to normal airline_c if modified airline_c isn't present let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c) endif - - let l:tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c) call airline#highlighter#exec('airline_tab', l:tab) call airline#highlighter#exec('airline_tabsel', l:tabsel) call airline#highlighter#exec('airline_tabtype', l:tabtype) @@ -59,6 +89,21 @@ function! airline#extensions#tabline#load_theme(palette) call airline#highlighter#exec('airline_tabmod', l:tabmod) call airline#highlighter#exec('airline_tabmod_unsel', l:tabmodu) call airline#highlighter#exec('airline_tabhid', l:tabhid) + + " Theme for tabs on the right + let l:tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a) + let l:tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a) + let l:tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c) + if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c') + let l:tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal_modified.airline_c) + else + "Fall back to normal airline_c if modified airline_c isn't present + let l:tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c) + endif + call airline#highlighter#exec('airline_tabsel_right', l:tabsel_right) + call airline#highlighter#exec('airline_tabmod_right', l:tabmod_right) + call airline#highlighter#exec('airline_tabhid_right', l:tabhid_right) + call airline#highlighter#exec('airline_tabmod_unsel_right', l:tabmodu_right) endfunction let s:current_tabcnt = -1 @@ -68,9 +113,15 @@ function! airline#extensions#tabline#get() let s:current_tabcnt = curtabcnt call airline#extensions#tabline#tabs#invalidate() call airline#extensions#tabline#buffers#invalidate() + call airline#extensions#tabline#ctrlspace#invalidate() endif - if s:show_buffers && curtabcnt == 1 || !s:show_tabs + if !exists('#airline#BufAdd#*') + autocmd airline BufAdd * call update_tabline() + endif + if s:ctrlspace + return airline#extensions#tabline#ctrlspace#get() + elseif s:show_buffers && curtabcnt == 1 || !s:show_tabs return airline#extensions#tabline#buffers#get() else return airline#extensions#tabline#tabs#get() diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/autoshow.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/autoshow.vim index e4cb64b4..32bcf54f 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/autoshow.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/autoshow.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) @@ -22,7 +22,9 @@ function! airline#extensions#tabline#autoshow#on() augroup airline_tabline_autoshow autocmd! if s:buf_min_count <= 0 && s:tab_min_count <= 1 - set showtabline=2 + if &lines > 3 + set showtabline=2 + endif else if s:show_buffers == 1 autocmd BufEnter * call show_tabline(s:buf_min_count, len(airline#extensions#tabline#buflist#list())) @@ -40,7 +42,7 @@ endfunction function! s:show_tabline(min_count, total_count) if a:total_count >= a:min_count - if &showtabline != 2 + if &showtabline != 2 && &lines > 3 set showtabline=2 endif else diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim index 4f14a9ba..96b1a877 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 scriptencoding utf-8 @@ -37,6 +37,8 @@ function! airline#extensions#tabline#buffers#on() augroup airline_tabline_buffers autocmd! autocmd BufDelete * call airline#extensions#tabline#buffers#invalidate() + autocmd User BufMRUChange call airline#extensions#tabline#buflist#invalidate() + autocmd User BufMRUChange call airline#extensions#tabline#buffers#invalidate() augroup END endfunction @@ -45,6 +47,7 @@ function! airline#extensions#tabline#buffers#invalidate() endfunction function! airline#extensions#tabline#buffers#get() + call map_keys() let cur = bufnr('%') if cur == s:current_bufnr if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified @@ -180,16 +183,18 @@ function! s:jump_to_tab(offset) endif endfunction -if s:buffer_idx_mode - noremap AirlineSelectTab1 :call select_tab(0) - noremap AirlineSelectTab2 :call select_tab(1) - noremap AirlineSelectTab3 :call select_tab(2) - noremap AirlineSelectTab4 :call select_tab(3) - noremap AirlineSelectTab5 :call select_tab(4) - noremap AirlineSelectTab6 :call select_tab(5) - noremap AirlineSelectTab7 :call select_tab(6) - noremap AirlineSelectTab8 :call select_tab(7) - noremap AirlineSelectTab9 :call select_tab(8) - noremap AirlineSelectPrevTab :call jump_to_tab(-v:count1) - noremap AirlineSelectNextTab :call jump_to_tab(v:count1) -endif +function s:map_keys() + if s:buffer_idx_mode + noremap AirlineSelectTab1 :call select_tab(0) + noremap AirlineSelectTab2 :call select_tab(1) + noremap AirlineSelectTab3 :call select_tab(2) + noremap AirlineSelectTab4 :call select_tab(3) + noremap AirlineSelectTab5 :call select_tab(4) + noremap AirlineSelectTab6 :call select_tab(5) + noremap AirlineSelectTab7 :call select_tab(6) + noremap AirlineSelectTab8 :call select_tab(7) + noremap AirlineSelectTab9 :call select_tab(8) + noremap AirlineSelectPrevTab :call jump_to_tab(-v:count1) + noremap AirlineSelectNextTab :call jump_to_tab(v:count1) + endif +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buflist.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buflist.vim index 1b5d216a..6ee23ed0 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buflist.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buflist.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:excludes = get(g:, 'airline#extensions#tabline#excludes', []) @@ -13,26 +13,26 @@ function! airline#extensions#tabline#buflist#list() return s:current_buffer_list endif + let list = (exists('g:did_bufmru') && g:did_bufmru) ? BufMRUList() : range(1, bufnr("$")) + let buffers = [] - let cur = bufnr('%') - for nr in range(1, bufnr('$')) - if buflisted(nr) && bufexists(nr) - let toadd = 1 - for ex in s:excludes - if match(bufname(nr), ex) >= 0 - let toadd = 0 - break - endif - endfor - if getbufvar(nr, 'current_syntax') == 'qf' - let toadd = 0 - endif - if s:exclude_preview && getbufvar(nr, '&bufhidden') == 'wipe' && getbufvar(nr, '&buftype') == 'nofile' - let toadd = 0 - endif - if toadd - call add(buffers, nr) + " If this is too slow, we can switch to a different algorithm. + " Basically branch 535 already does it, but since it relies on + " BufAdd autocommand, I'd like to avoid this if possible. + for nr in list + if buflisted(nr) + " Do not add to the bufferlist, if either + " 1) buffername matches exclude pattern + " 2) buffer is a quickfix buffer + " 3) exclude preview windows (if 'bufhidden' == wipe + " and 'buftype' == nofile + if (!empty(s:excludes) && match(bufname(nr), join(s:excludes, '\|')) > -1) || + \ (getbufvar(nr, 'current_syntax') == 'qf') || + \ (s:exclude_preview && getbufvar(nr, '&bufhidden') == 'wipe' + \ && getbufvar(nr, '&buftype') == 'nofile') + continue endif + call add(buffers, nr) endif endfor diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim index db0618ac..e57eaa07 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim index 32fe07b5..3954f49e 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffers) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim index f4f3a8dc..e860bd8d 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 scriptencoding utf-8 diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim index 77f3760c..02e4dc9d 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1) @@ -31,6 +31,7 @@ endfunction function! airline#extensions#tabline#tabs#get() let curbuf = bufnr('%') let curtab = tabpagenr() + call s:map_keys() if curbuf == s:current_bufnr && curtab == s:current_tabnr if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified return s:current_tabline @@ -80,3 +81,18 @@ function! airline#extensions#tabline#tabs#get() let s:current_tabline = b.build() return s:current_tabline endfunction + +function s:map_keys() + noremap AirlineSelectTab1 :1tabn + noremap AirlineSelectTab2 :2tabn + noremap AirlineSelectTab3 :3tabn + noremap AirlineSelectTab4 :4tabn + noremap AirlineSelectTab5 :5tabn + noremap AirlineSelectTab6 :6tabn + noremap AirlineSelectTab7 :7tabn + noremap AirlineSelectTab8 :8tabn + noremap AirlineSelectTab9 :9tabn + noremap AirlineSelectPrevTab gT + " tabn {count} goes to count tab does not go {count} tab pages forward! + noremap AirlineSelectNextTab :exe repeat(':tabn\|', v:count1) +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tagbar.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tagbar.vim index 9e5b65d1..da8abf61 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tagbar.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tagbar.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':TagbarToggle') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tmuxline.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tmuxline.vim index db747023..0e55588e 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tmuxline.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tmuxline.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':Tmuxline') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/undotree.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/undotree.vim index 532f1df0..aa24bef4 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/undotree.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/undotree.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !exists(':UndotreeToggle') diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/unite.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/unite.vim index d1ff2b79..33cee27e 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/unite.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/unite.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if !get(g:, 'loaded_unite', 0) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/virtualenv.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/virtualenv.vim index af47f029..00a0c02c 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/virtualenv.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/virtualenv.vim @@ -1,10 +1,6 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 -if !isdirectory($VIRTUAL_ENV) - finish -endif - let s:spc = g:airline_symbols.space function! airline#extensions#virtualenv#init(ext) @@ -12,14 +8,22 @@ function! airline#extensions#virtualenv#init(ext) endfunction function! airline#extensions#virtualenv#apply(...) - if &filetype =~ "python" + if &filetype =~# "python" if get(g:, 'virtualenv_loaded', 0) let statusline = virtualenv#statusline() else let statusline = fnamemodify($VIRTUAL_ENV, ':t') endif - call airline#extensions#append_to_section('x', - \ s:spc.g:airline_right_alt_sep.s:spc.statusline) + if !empty(statusline) + call airline#extensions#append_to_section('x', + \ s:spc.g:airline_right_alt_sep.s:spc.statusline) + endif endif endfunction +function! airline#extensions#virtualenv#update() + if &filetype =~# "python" + call airline#extensions#virtualenv#apply() + call airline#update_statusline() + endif +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim index 304e99b2..fbd241ca 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim @@ -1,22 +1,18 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 " http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html -" for backwards compatibility -if exists('g:airline_detect_whitespace') - let s:show_message = g:airline_detect_whitespace == 1 -else - let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1) -endif - +let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1) let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace) -let s:default_checks = ['indent', 'trailing'] +let s:default_checks = ['indent', 'trailing', 'mixed-indent-file'] let s:trailing_format = get(g:, 'airline#extensions#whitespace#trailing_format', 'trailing[%s]') let s:mixed_indent_format = get(g:, 'airline#extensions#whitespace#mixed_indent_format', 'mixed-indent[%s]') let s:long_format = get(g:, 'airline#extensions#whitespace#long_format', 'long[%s]') +let s:mixed_indent_file_format = get(g:, 'airline#extensions#whitespace#mixed_indent_file_format', 'mix-indent-file[%s]') let s:indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0) +let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file'] } let s:max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000) @@ -38,6 +34,16 @@ function! s:check_mixed_indent() endif endfunction +function! s:check_mixed_indent_file() + let indent_tabs = search('\v(^\t+)', 'nw') + let indent_spc = search('\v(^ +)', 'nw') + if indent_tabs > 0 && indent_spc > 0 + return printf("%d:%d", indent_tabs, indent_spc) + else + return '' + endif +endfunction + function! airline#extensions#whitespace#check() if &readonly || !&modifiable || !s:enabled || line('$') > s:max_lines return '' @@ -49,20 +55,34 @@ function! airline#extensions#whitespace#check() let trailing = 0 if index(checks, 'trailing') > -1 - let trailing = search('\s$', 'nw') + try + let regexp = get(g:, 'airline#extensions#whitespace#trailing_regexp', '\s$') + let trailing = search(regexp, 'nw') + catch + echomsg 'airline#whitespace: error occured evaluating '. regexp + echomsg v:exception + return '' + endtry endif let mixed = 0 - if index(checks, 'indent') > -1 + let check = 'indent' + if index(checks, check) > -1 && index(get(s:skip_check_ft, &ft, []), check) < 0 let mixed = s:check_mixed_indent() endif + let mixed_file = '' + let check = 'mixed-indent-file' + if index(checks, check) > -1 && index(get(s:skip_check_ft, &ft, []), check) < 0 + let mixed_file = s:check_mixed_indent_file() + endif + let long = 0 if index(checks, 'long') > -1 && &tw > 0 let long = search('\%>'.&tw.'v.\+', 'nw') endif - if trailing != 0 || mixed != 0 || long != 0 + if trailing != 0 || mixed != 0 || long != 0 || !empty(mixed_file) let b:airline_whitespace_check = s:symbol if s:show_message if trailing != 0 @@ -74,6 +94,9 @@ function! airline#extensions#whitespace#check() if long != 0 let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:long_format, long) endif + if !empty(mixed_file) + let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:mixed_indent_file_format, mixed_file) + endif endif endif endif diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount.vim index e6462322..a25d100d 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount.vim @@ -1,33 +1,26 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 -let s:filetypes = get(g:, 'airline#extensions#wordcount#filetypes', '\vhelp|markdown|rst|org') +let s:filetypes = get(g:, 'airline#extensions#wordcount#filetypes', '\vhelp|markdown|rst|org|text') let s:format = get(g:, 'airline#extensions#wordcount#format', '%d words') +let s:formatter = get(g:, 'airline#extensions#wordcount#formatter', 'default') -" adapted from http://stackoverflow.com/questions/114431/fast-word-count-function-in-vim function! s:update() - if &ft !~ s:filetypes - unlet! b:airline_wordcount - return - elseif mode() =~? 's' - " Bail on select mode - return - endif - - let old_status = v:statusmsg - let position = getpos(".") - exe "silent normal! g\" - let stat = v:statusmsg - call setpos('.', position) - let v:statusmsg = old_status - - let parts = split(stat) - if len(parts) > 11 - let cnt = str2nr(split(stat)[11]) - let spc = g:airline_symbols.space - let b:airline_wordcount = printf(s:format, cnt) . spc . g:airline_right_alt_sep . spc - else - unlet! b:airline_wordcount + if match(&ft, s:filetypes) > -1 + let l:mode = mode() + if l:mode ==# 'v' || l:mode ==# 'V' || l:mode ==# 's' || l:mode ==# 'S' + let b:airline_wordcount = airline#extensions#wordcount#formatters#{s:formatter}#format() + let b:airline_change_tick = b:changedtick + else + if get(b:, 'airline_wordcount_cache', '') is# '' || + \ b:airline_wordcount_cache isnot# get(b:, 'airline_wordcount', '') || + \ get(b:, 'airline_change_tick', 0) != b:changedtick + " cache data + let b:airline_wordcount = airline#extensions#wordcount#formatters#{s:formatter}#format() + let b:airline_wordcount_cache = b:airline_wordcount + let b:airline_change_tick = b:changedtick + endif + endif endif endfunction @@ -41,4 +34,3 @@ function! airline#extensions#wordcount#init(ext) call a:ext.add_statusline_func('airline#extensions#wordcount#apply') autocmd BufReadPost,CursorMoved,CursorMovedI * call s:update() endfunction - diff --git a/sources_non_forked/vim-airline/autoload/airline/highlighter.vim b/sources_non_forked/vim-airline/autoload/airline/highlighter.vim index 0d3dce9b..3d30d69e 100644 --- a/sources_non_forked/vim-airline/autoload/airline/highlighter.vim +++ b/sources_non_forked/vim-airline/autoload/airline/highlighter.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:is_win32term = (has('win32') || has('win64')) && !has('gui_running') && (empty($CONEMUBUILD) || &term !=? 'xterm') @@ -9,25 +9,23 @@ let s:accents = {} function! s:gui2cui(rgb, fallback) if a:rgb == '' return a:fallback + elseif match(a:rgb, '^\%(NONE\|[fb]g\)$') > -1 + return a:rgb endif - let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)') - let rgb = [rgb[0] > 127 ? 4 : 0, rgb[1] > 127 ? 2 : 0, rgb[2] > 127 ? 1 : 0] - return rgb[0]+rgb[1]+rgb[2] + let rgb = map(split(a:rgb[1:], '..\zs'), '0 + ("0x".v:val)') + return airline#msdos#round_msdos_colors(rgb) endfunction function! s:get_syn(group, what) - " need to pass in mode, known to break on 7.3.547 - let mode = has('gui_running') || (has("termtruecolor") && &guicolors == 1) ? 'gui' : 'cterm' - let color = synIDattr(synIDtrans(hlID(a:group)), a:what, mode) + if !exists("g:airline_gui_mode") + let g:airline_gui_mode = airline#init#gui_mode() + endif + let color = synIDattr(synIDtrans(hlID(a:group)), a:what, g:airline_gui_mode) if empty(color) || color == -1 - let color = synIDattr(synIDtrans(hlID('Normal')), a:what, mode) + let color = synIDattr(synIDtrans(hlID('Normal')), a:what, g:airline_gui_mode) endif if empty(color) || color == -1 - if has('gui_running') || (has("termtruecolor") && &guicolors == 1) - let color = a:what ==# 'fg' ? '#000000' : '#FFFFFF' - else - let color = a:what ==# 'fg' ? 0 : 1 - endif + let color = 'NONE' endif return color endfunction @@ -35,7 +33,7 @@ endfunction function! s:get_array(fg, bg, opts) let fg = a:fg let bg = a:bg - return has('gui_running') || (has("termtruecolor") && &guicolors == 1) + return g:airline_gui_mode ==# 'gui' \ ? [ fg, bg, '', '', join(a:opts, ',') ] \ : [ '', '', fg, bg, join(a:opts, ',') ] endfunction @@ -43,7 +41,7 @@ endfunction function! airline#highlighter#get_highlight(group, ...) let fg = s:get_syn(a:group, 'fg') let bg = s:get_syn(a:group, 'bg') - let reverse = has('gui_running') || (has("termtruecolor") && &guicolors == 1) + let reverse = g:airline_gui_mode ==# 'gui' \ ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui') \ : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm') \|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term') @@ -57,23 +55,40 @@ function! airline#highlighter#get_highlight2(fg, bg, ...) endfunction function! airline#highlighter#exec(group, colors) + if pumvisible() + return + endif let colors = a:colors if s:is_win32term let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, '')) let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, '')) endif - exec printf('hi %s %s %s %s %s %s %s %s', - \ a:group, - \ get(colors, 0, '') != '' ? 'guifg='.colors[0] : '', - \ get(colors, 1, '') != '' ? 'guibg='.colors[1] : '', - \ get(colors, 2, '') != '' ? 'ctermfg='.colors[2] : '', - \ get(colors, 3, '') != '' ? 'ctermbg='.colors[3] : '', - \ get(colors, 4, '') != '' ? 'gui='.colors[4] : '', - \ get(colors, 4, '') != '' ? 'cterm='.colors[4] : '', - \ get(colors, 4, '') != '' ? 'term='.colors[4] : '') + let cmd= printf('hi %s %s %s %s %s %s %s %s', + \ a:group, s:Get(colors, 0, 'guifg=', ''), s:Get(colors, 1, 'guibg=', ''), + \ s:Get(colors, 2, 'ctermfg=', ''), s:Get(colors, 3, 'ctermbg=', ''), + \ s:Get(colors, 4, 'gui=', ''), s:Get(colors, 4, 'cterm=', ''), + \ s:Get(colors, 4, 'term=', '')) + let old_hi = airline#highlighter#get_highlight(a:group) + if len(colors) == 4 + call add(colors, '') + endif + if old_hi != colors + exe cmd + endif +endfunction + +function! s:Get(dict, key, prefix, default) + if get(a:dict, a:key, a:default) isnot# a:default + return a:prefix. get(a:dict, a:key) + else + return '' + endif endfunction function! s:exec_separator(dict, from, to, inverse, suffix) + if pumvisible() + return + endif let l:from = airline#themes#get_highlight(a:from.a:suffix) let l:to = airline#themes#get_highlight(a:to.a:suffix) let group = a:from.'_to_'.a:to.a:suffix @@ -87,6 +102,9 @@ function! s:exec_separator(dict, from, to, inverse, suffix) endfunction function! airline#highlighter#load_theme() + if pumvisible() + return + endif for winnr in filter(range(1, winnr('$')), 'v:val != winnr()') call airline#highlighter#highlight_modified_inactive(winbufnr(winnr)) endfor diff --git a/sources_non_forked/vim-airline/autoload/airline/init.vim b/sources_non_forked/vim-airline/autoload/airline/init.vim index f8e29639..470c2c9a 100644 --- a/sources_non_forked/vim-airline/autoload/airline/init.vim +++ b/sources_non_forked/vim-airline/autoload/airline/init.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 function! s:check_defined(variable, default) @@ -27,6 +27,7 @@ function! airline#init#bootstrap() call s:check_defined('g:airline_exclude_filenames', ['DebuggerWatch','DebuggerStack','DebuggerStatus']) call s:check_defined('g:airline_exclude_filetypes', []) call s:check_defined('g:airline_exclude_preview', 0) + call s:check_defined('g:airline_gui_mode', airline#init#gui_mode()) call s:check_defined('g:airline_mode_map', {}) call extend(g:airline_mode_map, { @@ -56,11 +57,12 @@ function! airline#init#bootstrap() call s:check_defined('g:airline_symbols', {}) call extend(g:airline_symbols, { - \ 'paste': get(g:, 'airline_paste_symbol', 'PASTE'), - \ 'readonly': get(g:, 'airline_readonly_symbol', get(g:, 'airline_powerline_fonts', 0) ? "\ue0a2" : 'RO'), + \ 'paste': 'PASTE', + \ 'readonly': get(g:, 'airline_powerline_fonts', 0) ? "\ue0a2" : 'RO', \ 'whitespace': get(g:, 'airline_powerline_fonts', 0) ? "\u2739" : '!', - \ 'linenr': get(g:, 'airline_linecolumn_prefix', get(g:, 'airline_powerline_fonts', 0) ? "\ue0a1" : ':' ), - \ 'branch': get(g:, 'airline_branch_prefix', get(g:, 'airline_powerline_fonts', 0) ? "\ue0a0" : ''), + \ 'linenr': get(g:, 'airline_powerline_fonts', 0) ? "\ue0a1" : ':', + \ 'branch': get(g:, 'airline_powerline_fonts', 0) ? "\ue0a0" : '', + \ 'notexists': "\u2204", \ 'modified': '+', \ 'space': ' ', \ 'crypt': get(g:, 'airline_crypt_symbol', nr2char(0x1F512)), @@ -80,14 +82,23 @@ function! airline#init#bootstrap() \ }) call airline#parts#define_raw('file', '%f%m') call airline#parts#define_raw('path', '%F%m') - call airline#parts#define_raw('linenr', '%{g:airline_symbols.linenr}%#__accent_bold#%4l%#__restore__#') + call airline#parts#define('linenr', { + \ 'raw': '%{g:airline_symbols.linenr}%#__accent_bold#%4l%#__restore__#', + \ 'accent': 'bold'}) call airline#parts#define_function('ffenc', 'airline#parts#ffenc') - call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'eclim', 'whitespace','windowswap']) + call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', + \ 'eclim', 'whitespace','windowswap', 'ycm_error_count', 'ycm_warning_count']) call airline#parts#define_text('capslock', '') unlet g:airline#init#bootstrapping endfunction +function! airline#init#gui_mode() + return ((has('nvim') && exists('$NVIM_TUI_ENABLE_TRUE_COLOR')) + \ || has('gui_running') || (has("termtruecolor") && &guicolors == 1)) ? + \ 'gui' : 'cterm' +endfunction + function! airline#init#sections() let spc = g:airline_symbols.space if !exists('g:airline_section_a') @@ -97,7 +108,7 @@ function! airline#init#sections() let g:airline_section_b = airline#section#create(['hunks', 'branch']) endif if !exists('g:airline_section_c') - if &autochdir == 1 + if exists("+autochdir") && &autochdir == 1 let g:airline_section_c = airline#section#create(['%<', 'path', spc, 'readonly']) else let g:airline_section_c = airline#section#create(['%<', 'file', spc, 'readonly']) @@ -115,8 +126,11 @@ function! airline#init#sections() if !exists('g:airline_section_z') let g:airline_section_z = airline#section#create(['windowswap', '%3p%%'.spc, 'linenr', ':%3v ']) endif + if !exists('g:airline_section_error') + let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic', 'eclim']) + endif if !exists('g:airline_section_warning') - let g:airline_section_warning = airline#section#create(['syntastic', 'eclim', 'whitespace']) + let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'whitespace']) endif endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/parts.vim b/sources_non_forked/vim-airline/autoload/airline/parts.vim index 45761bda..cd0a5c67 100644 --- a/sources_non_forked/vim-airline/autoload/airline/parts.vim +++ b/sources_non_forked/vim-airline/autoload/airline/parts.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 let s:parts = {} @@ -78,6 +78,6 @@ function! airline#parts#filetype() endfunction function! airline#parts#ffenc() - return printf('%s%s', &fenc, strlen(&ff) > 0 ? '['.&ff.']' : '') + return printf('%s%s%s', &fenc, &l:bomb ? '[BOM]' : '', strlen(&ff) > 0 ? '['.&ff.']' : '') endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/section.vim b/sources_non_forked/vim-airline/autoload/airline/section.vim index 4ab7b268..2e94d4e7 100644 --- a/sources_non_forked/vim-airline/autoload/airline/section.vim +++ b/sources_non_forked/vim-airline/autoload/airline/section.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 call airline#init#bootstrap() diff --git a/sources_non_forked/vim-airline/autoload/airline/themes.vim b/sources_non_forked/vim-airline/autoload/airline/themes.vim index 9387954e..920a225b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/themes.vim +++ b/sources_non_forked/vim-airline/autoload/airline/themes.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 " generates a dictionary which defines the colors for each highlight group @@ -39,6 +39,9 @@ function! airline#themes#patch(palette) if !has_key(a:palette[mode], 'airline_warning') let a:palette[mode]['airline_warning'] = [ '#000000', '#df5f00', 232, 166 ] endif + if !has_key(a:palette[mode], 'airline_error') + let a:palette[mode]['airline_error'] = [ '#000000', '#990000', 232, 160 ] + endif endfor let a:palette.accents = get(a:palette, 'accents', {}) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/badwolf.vim b/sources_non_forked/vim-airline/autoload/airline/themes/badwolf.vim deleted file mode 100644 index e2b90063..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/badwolf.vim +++ /dev/null @@ -1,52 +0,0 @@ -let s:N1 = [ '#141413' , '#aeee00' , 232 , 154 ] " blackestgravel & lime -let s:N2 = [ '#f4cf86' , '#45413b' , 222 , 238 ] " dirtyblonde & deepgravel -let s:N3 = [ '#8cffba' , '#242321' , 121 , 235 ] " saltwatertaffy & darkgravel -let s:N4 = [ '#666462' , 241 ] " mediumgravel - -let s:I1 = [ '#141413' , '#0a9dff' , 232 , 39 ] " blackestgravel & tardis -let s:I2 = [ '#f4cf86' , '#005fff' , 222 , 27 ] " dirtyblonde & facebook -let s:I3 = [ '#0a9dff' , '#242321' , 39 , 235 ] " tardis & darkgravel - -let s:V1 = [ '#141413' , '#ffa724' , 232 , 214 ] " blackestgravel & orange -let s:V2 = [ '#000000' , '#fade3e' , 16 , 221 ] " coal & dalespale -let s:V3 = [ '#000000' , '#b88853' , 16 , 137 ] " coal & toffee -let s:V4 = [ '#c7915b' , 173 ] " coffee - -let s:PA = [ '#f4cf86' , 222 ] " dirtyblonde -let s:RE = [ '#ff9eb8' , 211 ] " dress - -let s:IA = [ s:N3[1] , s:N2[1] , s:N3[3] , s:N2[3] , '' ] - -let g:airline#themes#badwolf#palette = {} - -let g:airline#themes#badwolf#palette.accents = { - \ 'red': [ '#ff2c4b' , '' , 196 , '' , '' ] - \ } - -let g:airline#themes#badwolf#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#badwolf#palette.normal_modified = { - \ 'airline_b': [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , - \ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } - - -let g:airline#themes#badwolf#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#badwolf#palette.insert_modified = { - \ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } -let g:airline#themes#badwolf#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } - - -let g:airline#themes#badwolf#palette.replace = copy(airline#themes#badwolf#palette.insert) -let g:airline#themes#badwolf#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] -let g:airline#themes#badwolf#palette.replace_modified = g:airline#themes#badwolf#palette.insert_modified - - -let g:airline#themes#badwolf#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#badwolf#palette.visual_modified = { - \ 'airline_c': [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } - - -let g:airline#themes#badwolf#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#badwolf#palette.inactive_modified = { - \ 'airline_c': [ s:V1[1] , '' , s:V1[3] , '' , '' ] } - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/base16.vim b/sources_non_forked/vim-airline/autoload/airline/themes/base16.vim deleted file mode 100644 index 0ecbe3b0..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/base16.vim +++ /dev/null @@ -1,136 +0,0 @@ -if get(g:, 'airline#themes#base16#constant', 0) - let g:airline#themes#base16#palette = {} - - " Color palette - let s:gui_dark_gray = '#202020' - let s:cterm_dark_gray = 234 - let s:gui_med_gray_hi = '#303030' - let s:cterm_med_gray_hi = 236 - let s:gui_med_gray_lo = '#3a3a3a' - let s:cterm_med_gray_lo = 237 - let s:gui_light_gray = '#505050' - let s:cterm_light_gray = 239 - let s:gui_green = '#99cc99' - let s:cterm_green = 151 - let s:gui_blue = '#6a9fb5' - let s:cterm_blue = 67 - let s:gui_purple = '#aa759f' - let s:cterm_purple = 139 - let s:gui_orange = '#d28445' - let s:cterm_orange = 173 - let s:gui_red = '#ac4142' - let s:cterm_red = 131 - let s:gui_pink = '#d7afd7' - let s:cterm_pink = 182 - - " Normal mode - let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] - let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] - let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi] - let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - let g:airline#themes#base16#palette.normal_modified = { - \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], - \ } - - " Insert mode - let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] - let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] - let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) - let g:airline#themes#base16#palette.insert_modified = copy(g:airline#themes#base16#palette.normal_modified) - let g:airline#themes#base16#palette.insert_paste = { - \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], - \ } - - " Replace mode - let g:airline#themes#base16#palette.replace = { - \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], - \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], - \ } - let g:airline#themes#base16#palette.replace_modified = copy(g:airline#themes#base16#palette.insert_modified) - - " Visual mode - let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] - let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] - let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) - let g:airline#themes#base16#palette.visual_modified = copy(g:airline#themes#base16#palette.insert_modified) - - " Inactive window - let s:IA = [s:gui_dark_gray, s:gui_med_gray_hi, s:cterm_dark_gray, s:cterm_med_gray_hi, ''] - let g:airline#themes#base16#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#base16#palette.inactive_modified = { - \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], - \ } -else - function! airline#themes#base16#refresh() - let g:airline#themes#base16#palette = {} - - let g:airline#themes#base16#palette.accents = { - \ 'red': airline#themes#get_highlight('Constant'), - \ } - - let s:N1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffText', 'fg'], 'bold') - let s:N2 = airline#themes#get_highlight2(['Visual', 'fg'], ['Visual', 'bg']) - let s:N3 = airline#themes#get_highlight('CursorLine') - let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - - let group = airline#themes#get_highlight('vimCommand') - let g:airline#themes#base16#palette.normal_modified = { - \ 'statusline': [ group[0], '', group[2], '', '' ] - \ } - - let s:I1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffAdded', 'fg'], 'bold') - let s:I2 = airline#themes#get_highlight2(['DiffAdded', 'fg'], ['Normal', 'bg']) - let s:I3 = s:N3 - let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#base16#palette.insert_modified = g:airline#themes#base16#palette.normal_modified - - let s:R1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['WarningMsg', 'fg'], 'bold') - let s:R2 = s:N2 - let s:R3 = s:N3 - let g:airline#themes#base16#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let g:airline#themes#base16#palette.replace_modified = g:airline#themes#base16#palette.normal_modified - - let s:V1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['Constant', 'fg'], 'bold') - let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg']) - let s:V3 = s:N3 - let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#base16#palette.visual_modified = g:airline#themes#base16#palette.normal_modified - - let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg']) - let g:airline#themes#base16#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#base16#palette.inactive_modified = { - \ 'airline_c': [ group[0], '', group[2], '', '' ] - \ } - - " Warnings - let s:WI = airline#themes#get_highlight2(['WarningMsg', 'bg'], ['WarningMsg', 'fg'], 'bold') - let g:airline#themes#base16#palette.normal.airline_warning = [ - \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] - \ ] - - let g:airline#themes#base16#palette.normal_modified.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - - let g:airline#themes#base16#palette.insert.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - let g:airline#themes#base16#palette.insert_modified.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - let g:airline#themes#base16#palette.visual.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - let g:airline#themes#base16#palette.visual_modified.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - let g:airline#themes#base16#palette.replace.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - let g:airline#themes#base16#palette.replace_modified.airline_warning = - \ g:airline#themes#base16#palette.normal.airline_warning - - endfunction - call airline#themes#base16#refresh() -endif - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/behelit.vim b/sources_non_forked/vim-airline/autoload/airline/themes/behelit.vim deleted file mode 100644 index 77f551c7..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/behelit.vim +++ /dev/null @@ -1,58 +0,0 @@ -let g:airline#themes#behelit#palette = {} - -" Normal mode -let s:N1 = [ '#121212', '#5f87ff', 233, 69 ] -let s:N2 = [ '#5f87ff', '#262626', 69 , 235 ] -let s:N3 = [ '#5f87ff', '#1c1c1c', 69 , 234, 'bold' ] -let g:airline#themes#behelit#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#behelit#palette.normal_modified = { - \ 'airline_c': [ '#d7005f', '#1c1c1c', 161, 234, 'bold' ], - \ } - -" Insert mode -let s:I1 = [ '#121212', '#00ff87', 233, 48 ] -let s:I2 = s:N2 -let s:I3 = s:N3 -let g:airline#themes#behelit#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#behelit#palette.insert_modified = g:airline#themes#behelit#palette.normal_modified -let g:airline#themes#behelit#palette.insert_paste = { - \ 'airline_a': [ "#121212", "#5f5faf", 233, 61, '' ], - \ } - -" Replace mode -let g:airline#themes#behelit#palette.replace = copy(g:airline#themes#behelit#palette.insert) -let g:airline#themes#behelit#palette.replace.airline_a = [ s:I1[0], '#d70057', s:I1[2], 161, '' ] -let g:airline#themes#behelit#palette.replace_modified = g:airline#themes#behelit#palette.insert_modified - -" Visual mode -let s:V1 = [ '#121212', '#5fff5f', 233, 83 ] -let s:V2 = s:N2 -let s:V3 = s:N3 -let g:airline#themes#behelit#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#behelit#palette.visual_modified = g:airline#themes#behelit#palette.normal_modified - -" Inactive window -let s:IA1 = [ '#4e4e4e', '#1c1c1c', 239, 234, '' ] -let s:IA2 = [ '#4e4e4e', '#262626', 239, 235, '' ] -let s:IA3 = [ '#4e4e4e', '#1c1c1c', 239, 234, 'bold' ] -let g:airline#themes#behelit#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) -let g:airline#themes#behelit#palette.inactive_modified = { - \ 'airline_c': [ '#5f5f87', '#1c1c1c', 60, 234, 'bold' ], - \ } - -" Accents -let g:airline#themes#behelit#palette.accents = { - \ 'red': [ '#d7005f', '', 161, '' ] - \ } - -" Warnings -let s:WI = [ '#121212', '#d7005f', 233, 161 ] -let g:airline#themes#behelit#palette.normal.airline_warning = s:WI -let g:airline#themes#behelit#palette.normal_modified.airline_warning = s:WI -let g:airline#themes#behelit#palette.insert.airline_warning = s:WI -let g:airline#themes#behelit#palette.insert_modified.airline_warning = s:WI -let g:airline#themes#behelit#palette.insert_paste.airline_warning = s:WI -let g:airline#themes#behelit#palette.visual.airline_warning = s:WI -let g:airline#themes#behelit#palette.visual_modified.airline_warning = s:WI -let g:airline#themes#behelit#palette.replace.airline_warning = s:WI -let g:airline#themes#behelit#palette.replace_modified.airline_warning = s:WI diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/bubblegum.vim b/sources_non_forked/vim-airline/autoload/airline/themes/bubblegum.vim deleted file mode 100644 index f2378ce8..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/bubblegum.vim +++ /dev/null @@ -1,70 +0,0 @@ -" Color palette -let s:gui_dark_gray = '#303030' -let s:cterm_dark_gray = 236 -let s:gui_med_gray_hi = '#444444' -let s:cterm_med_gray_hi = 238 -let s:gui_med_gray_lo = '#3a3a3a' -let s:cterm_med_gray_lo = 237 -let s:gui_light_gray = '#b2b2b2' -let s:cterm_light_gray = 249 -let s:gui_green = '#afd787' -let s:cterm_green = 150 -let s:gui_blue = '#87afd7' -let s:cterm_blue = 110 -let s:gui_purple = '#afafd7' -let s:cterm_purple = 146 -let s:gui_orange = '#d7af5f' -let s:cterm_orange = 179 -let s:gui_red = '#d78787' -let s:cterm_red = 174 -let s:gui_pink = '#d7afd7' -let s:cterm_pink = 182 - -let g:airline#themes#bubblegum#palette = {} - -" Normal mode -let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] -let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] -let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi] -let g:airline#themes#bubblegum#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#bubblegum#palette.normal_modified = { - \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], - \ } - -" Insert mode -let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] -let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] -let g:airline#themes#bubblegum#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) -let g:airline#themes#bubblegum#palette.insert_modified = copy(g:airline#themes#bubblegum#palette.normal_modified) -let g:airline#themes#bubblegum#palette.insert_paste = { - \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], - \ } - -" Replace mode -let g:airline#themes#bubblegum#palette.replace = { - \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], - \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], - \ } -let g:airline#themes#bubblegum#palette.replace_modified = copy(g:airline#themes#bubblegum#palette.insert_modified) - -" Visual mode -let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] -let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] -let g:airline#themes#bubblegum#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) -let g:airline#themes#bubblegum#palette.visual_modified = copy(g:airline#themes#bubblegum#palette.insert_modified) - -" Inactive window -let s:IA = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, ''] -let g:airline#themes#bubblegum#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#bubblegum#palette.inactive_modified = { - \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], - \ } - -" CtrlP -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#bubblegum#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, '' ] , - \ [ s:gui_orange, s:gui_med_gray_lo, s:cterm_orange, s:cterm_med_gray_lo, '' ] , - \ [ s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green, 'bold' ] ) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/distinguished.vim b/sources_non_forked/vim-airline/autoload/airline/themes/distinguished.vim deleted file mode 100644 index 0d65f4c4..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/distinguished.vim +++ /dev/null @@ -1,59 +0,0 @@ -" vim-airline companion theme of distinguished -" (https://github.com/Lokaltog/vim-distinguished) -" I have nothing to do with the original -" distinguished theme other than being a big fan. -" this theme was shamelessly created by modifying -" the Ubaryd airline theme. - -let s:gray = [245, '#8a8a8a'] -let s:golden = [143, '#afaf5f'] -let s:pink = [131, '#af5f5f'] -let s:blue = [ 67, '#5f87af'] -let s:orange = [166, '#d75f00'] -let s:outerfg = [ 16, '#000000'] -let s:innerbg = [234, '#1c1c1c'] -let s:middle = ['#bcbcbc', '#444444', 250, 238] - -" Normal mode -let s:N1 = [s:outerfg[1], s:gray[1], s:outerfg[0], s:gray[0]] -let s:N3 = [s:gray[1], s:innerbg[1], s:gray[0], s:innerbg[0]] - -" Insert mode -let s:I1 = [s:outerfg[1], s:golden[1], s:outerfg[0], s:golden[0]] -let s:I3 = [s:golden[1], s:innerbg[1], s:golden[0], s:innerbg[0]] - -" Visual mode -let s:V1 = [s:outerfg[1], s:pink[1], s:outerfg[0], s:pink[0]] -let s:V3 = [s:pink[1], s:innerbg[1], s:pink[0], s:innerbg[0]] - -" Replace mode -let s:R1 = [s:outerfg[1], s:blue[1], s:outerfg[0], s:blue[0]] -let s:R3 = [s:blue[1], s:innerbg[1], s:blue[0], s:innerbg[0]] - -" Inactive pane -let s:IA = [s:middle[1], s:innerbg[1], s:middle[3], s:innerbg[0]] - -let g:airline#themes#distinguished#palette = {} -let g:airline#themes#distinguished#palette.accents = { - \ 'red': ['#d70000', '', 160, '', '']} - -let g:airline#themes#distinguished#palette.inactive = { - \ 'airline_a': s:IA, - \ 'airline_b': s:IA, - \ 'airline_c': s:IA} - -let g:airline#themes#distinguished#palette.normal = airline#themes#generate_color_map(s:N1, s:middle, s:N3) -let g:airline#themes#distinguished#palette.normal_modified = { - \ 'airline_a': ['', s:orange[1], '', s:orange[0], ''], - \ 'airline_c': [s:orange[1], '', s:orange[0], '', ''], - \ 'airline_x': [s:orange[1], '', s:orange[0], '', ''], - \ 'airline_z': ['', s:orange[1], '', s:orange[0], '']} - -let g:airline#themes#distinguished#palette.insert = airline#themes#generate_color_map(s:I1, s:middle, s:I3) -let g:airline#themes#distinguished#palette.insert_modified = {} - -let g:airline#themes#distinguished#palette.replace = airline#themes#generate_color_map(s:R1, s:middle, s:R3) -let g:airline#themes#distinguished#palette.replace_modified = {} - -let g:airline#themes#distinguished#palette.visual = airline#themes#generate_color_map(s:V1, s:middle, s:V3) -let g:airline#themes#distinguished#palette.visual_modified = {} diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/durant.vim b/sources_non_forked/vim-airline/autoload/airline/themes/durant.vim deleted file mode 100644 index cb844d4e..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/durant.vim +++ /dev/null @@ -1,62 +0,0 @@ -let g:airline#themes#durant#palette = {} - - -let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] -let s:N2 = [ '#93a1a1' , '#586e75' , 245 , 240 ] -let s:N3 = [ '#93a1a1' , '#073642' , 240 , 233 ] -let g:airline#themes#durant#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - - -let g:airline#themes#durant#normal_modified = { - \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , - \ } - - - -let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] -let s:I2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] -let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] -let g:airline#themes#durant#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#durant#palette.insert_modified = { - \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , - \ } -let g:airline#themes#durant#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , - \ } - - -let g:airline#themes#durant#palette.replace = copy(g:airline#themes#durant#palette.insert) -let g:airline#themes#durant#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] - -let g:airline#themes#durant#palette.replace_modified = g:airline#themes#durant#palette.insert_modified - -let s:V1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ] -let s:V2 = [ '#ffffff' , '#44403a' , 255, 238 ] -let s:V3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] -let g:airline#themes#durant#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#durant#palette.visual_modified = { - \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , - \ } - - -let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] -let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] -let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] -let g:airline#themes#durant#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) -let g:airline#themes#durant#palette.inactive_modified = { - \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , - \ } - - -let g:airline#themes#durant#palette.accents = { - \ 'red': [ '#ff0000' , '' , 160 , '' ] - \ } - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif - let g:airline#themes#durant#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ], - \ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ], - \ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ]) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/hybrid.vim b/sources_non_forked/vim-airline/autoload/airline/themes/hybrid.vim deleted file mode 100644 index b0df8441..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/hybrid.vim +++ /dev/null @@ -1,58 +0,0 @@ -" vim-airline companion theme of Hybrid -" (https://github.com/w0ng/vim-hybrid) - -let g:airline#themes#hybrid#palette = {} - -function! airline#themes#hybrid#refresh() - let s:N1 = airline#themes#get_highlight('DiffAdd') - let s:N2 = airline#themes#get_highlight('CursorLine') - let s:N3 = airline#themes#get_highlight('PMenu') - let g:airline#themes#hybrid#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - - let modified_group = airline#themes#get_highlight2(['Text', 'fg'], ['SpellRare', 'bg'], 'bold') - let g:airline#themes#hybrid#palette.normal_modified = { - \ 'airline_c': airline#themes#get_highlight2(['Text', 'fg'], ['SpellRare', 'bg'], 'bold') - \ } - - let warning_group = airline#themes#get_highlight('SpellRare') - let g:airline#themes#hybrid#palette.normal.airline_warning = warning_group - let g:airline#themes#hybrid#palette.normal_modified.airline_warning = warning_group - - let s:I1 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffText', 'bg'], 'bold') - let s:I2 = airline#themes#get_highlight2(['Text', 'fg'], ['SpellLocal', 'bg'], 'bold') - let s:I3 = airline#themes#get_highlight2(['Text', 'fg'], ['SpellCap', 'bg'], 'bold') - let g:airline#themes#hybrid#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#hybrid#palette.insert_modified = g:airline#themes#hybrid#palette.normal_modified - let g:airline#themes#hybrid#palette.insert.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning - let g:airline#themes#hybrid#palette.insert_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning - - let s:R1 = airline#themes#get_highlight('DiffChange') - let s:R2 = s:N2 - let s:R3 = s:N3 - let g:airline#themes#hybrid#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let replace_group = airline#themes#get_highlight('SpellRare') - let g:airline#themes#hybrid#palette.replace_modified = g:airline#themes#hybrid#palette.normal_modified - let g:airline#themes#hybrid#palette.replace.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning - let g:airline#themes#hybrid#palette.replace_modified.airline_warning = g:airline#themes#hybrid#palette.replace_modified.airline_warning - - let s:V1 = airline#themes#get_highlight2(['Text', 'fg'], ['Folded', 'bg'], 'bold') - let s:V2 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffDelete', 'bg'], 'bold') - let s:V3 = airline#themes#get_highlight2(['Text', 'fg'], ['Error', 'bg'], 'bold') - let g:airline#themes#hybrid#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#hybrid#palette.visual_modified = g:airline#themes#hybrid#palette.normal_modified - let g:airline#themes#hybrid#palette.visual.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning - let g:airline#themes#hybrid#palette.visual_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning - - let s:IA = airline#themes#get_highlight('StatusLineNC') - let g:airline#themes#hybrid#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#hybrid#palette.inactive_modified = { - \ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ] - \ } - - let g:airline#themes#hybrid#palette.accents = { - \ 'red': airline#themes#get_highlight('Constant'), - \ } - -endfunction - -call airline#themes#hybrid#refresh() diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/hybridline.vim b/sources_non_forked/vim-airline/autoload/airline/themes/hybridline.vim deleted file mode 100644 index 84729c13..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/hybridline.vim +++ /dev/null @@ -1,34 +0,0 @@ -" vim-airline theme based on vim-hybrid and powerline -" (https://github.com/w0ng/vim-hybrid) -" (https://github.com/Lokaltog/powerline) - -let g:airline#themes#hybridline#palette = {} - -let s:N1 = [ '#282a2e' , '#c5c8c6' , 'black' , 15 ] -let s:N2 = [ '#c5c8c6' , '#373b41' , 15 , 8 ] -let s:N3 = [ '#ffffff' , '#282a2e' , 255 , 'black' ] -let g:airline#themes#hybridline#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#hybridline#palette.normal.airline_a = ['#005f00', '#b5bd68', 22, 10, ''] - -let s:I1 = [ '#005f5f' , '#8abeb7' , 23 , 14 ] -let s:I2 = [ '#c5c8c6' , '#0087af' , 15 , 31 ] -let s:I3 = [ '#ffffff' , '#005f87' , 255 , 24 ] -let g:airline#themes#hybridline#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#hybridline#palette.insert_paste = { - \ 'airline_a': ['#000000', '#ac4142', 16 , 1, ''] , - \ } - -let g:airline#themes#hybridline#palette.replace = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#hybridline#palette.replace.airline_a = ['#000000', '#CC6666', 16, 9] - -let g:airline#themes#hybridline#palette.visual = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#hybridline#palette.visual.airline_a = ['#000000', '#de935f', 16, 3] - -let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] -let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] -let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] -let g:airline#themes#hybridline#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) - -let g:airline#themes#hybridline#palette.accents = { - \ 'red': [ '#ff0000' , '' , 160 , '' ] - \ } diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/jellybeans.vim b/sources_non_forked/vim-airline/autoload/airline/themes/jellybeans.vim deleted file mode 100644 index 201068c6..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/jellybeans.vim +++ /dev/null @@ -1,52 +0,0 @@ -let g:airline#themes#jellybeans#palette = {} - -" The name of the function must be 'refresh'. -function! airline#themes#jellybeans#refresh() - " This theme is an example of how to use helper functions to extract highlight - " values from the corresponding colorscheme. It was written in a hurry, so it - " is very minimalistic. If you are a jellybeans user and want to make updates, - " please send pull requests. - - " Here are examples where the entire highlight group is copied and an airline - " compatible color array is generated. - let s:N1 = airline#themes#get_highlight('DbgCurrent', 'bold') - let s:N2 = airline#themes#get_highlight('Folded') - let s:N3 = airline#themes#get_highlight('NonText') - - let g:airline#themes#jellybeans#palette.accents = { - \ 'red': airline#themes#get_highlight('Constant'), - \ } - - let g:airline#themes#jellybeans#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - let g:airline#themes#jellybeans#palette.normal_modified = { - \ 'airline_c': [ '#ffb964', '', 215, '', '' ] - \ } - - let s:I1 = airline#themes#get_highlight('DiffAdd', 'bold') - let s:I2 = s:N2 - let s:I3 = s:N3 - let g:airline#themes#jellybeans#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#jellybeans#palette.insert_modified = g:airline#themes#jellybeans#palette.normal_modified - - let s:R1 = airline#themes#get_highlight('WildMenu', 'bold') - let s:R2 = s:N2 - let s:R3 = s:N3 - let g:airline#themes#jellybeans#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let g:airline#themes#jellybeans#palette.replace_modified = g:airline#themes#jellybeans#palette.normal_modified - - " Sometimes you want to mix and match colors from different groups, you can do - " that with this method. - let s:V1 = airline#themes#get_highlight2(['TabLineSel', 'bg'], ['DiffDelete', 'bg'], 'bold') - let s:V2 = s:N2 - let s:V3 = s:N3 - let g:airline#themes#jellybeans#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#jellybeans#palette.visual_modified = g:airline#themes#jellybeans#palette.normal_modified - - " And of course, you can always do it manually as well. - let s:IA = [ '#444444', '#1c1c1c', 237, 234 ] - let g:airline#themes#jellybeans#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#jellybeans#palette.inactive_modified = g:airline#themes#jellybeans#palette.normal_modified -endfunction - -call airline#themes#jellybeans#refresh() - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim b/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim deleted file mode 100644 index 78504fab..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/kalisi.vim +++ /dev/null @@ -1,70 +0,0 @@ -" -" Colorscheme: Kalisi for airline. Inspired by powerline. -" Arthur Jaron -" hifreeo@gmail.com -" 24.10.2014 - -" Visual mode -let s:V1 = [ '#0087ff' , '#ffffff','33','231'] -let s:V2 = [ '#005faf' , '#5fafff','25','75'] -let s:V3 = [ '#87d7ff' , '#005faf','117','25'] - -" Replace mode -let s:R1 = [ '#d75fff' , '#ffffff','171','231'] -let s:R2 = [ '#5f005f' , '#d75fff','53','171'] -let s:R3 = [ '#ff87ff' , '#8700af','213','91'] - -let g:airline#themes#kalisi#palette = {} - - -function! airline#themes#kalisi#refresh() - - let s:StatusLine = airline#themes#get_highlight('StatusLine') - let s:StatusLineNC = airline#themes#get_highlight('StatusLineNC') - - " Insert mode - let s:I1 = [ '#ffffff' , '#e80000','231','160'] - let s:I2 = [ '#ff0000' , '#5f0000','196','52'] - let s:I3 = s:StatusLine - - " Normal mode - let s:N1 = [ '#005f00' , '#afd700','22','148'] - let s:N2 = [ '#afd700' , '#005f00','148','22'] - let s:N3 = s:StatusLine - - " Tabline Plugin - let g:airline#themes#kalisi#palette.tabline = { - \ 'airline_tab': ['#bcbcbc', '#005f00','250','22'], - \ 'airline_tabsel': ['#404042', '#A6DB29','238','148'], - \ 'airline_tabtype':['#afd700', '#204d20','148','22'], - \ 'airline_tabfill': s:StatusLine, - \ 'airline_tabhid': ['#c5c5c5', '#404042','251','238'], - \ 'airline_tabmod': ['#d7ff00', '#afd700','190','148'], - \ 'airline_tabmod_unsel': ['#d7ff00', '#005f00','190','22'] - \ } - - let g:airline#themes#kalisi#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - let g:airline#themes#kalisi#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#kalisi#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#kalisi#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - - " Inactive Mode - let s:IA = airline#themes#get_highlight('StatusLineNC') - let g:airline#themes#kalisi#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#kalisi#palette.inactive_modified = { - \ 'airline_c': ['#d7ff00', s:IA[1],'190',s:IA[3]], - \ } - -endfunction - -call airline#themes#kalisi#refresh() - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#kalisi#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ s:StatusLine, - \ ['#afd700', '#005f00','148','22'], - \ [ '#005f00' , '#afd700' , '22','148'] - \) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/kolor.vim b/sources_non_forked/vim-airline/autoload/airline/themes/kolor.vim deleted file mode 100644 index e61f56f2..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/kolor.vim +++ /dev/null @@ -1,59 +0,0 @@ -let g:airline#themes#kolor#palette = {} - -let s:N1 = [ '#e2e2e2' , '#4f3598' , 254 , 56 ] -let s:N2 = [ '#ff5fd7' , '#242322' , 206 , 234 ] -let s:N3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] - -let g:airline#themes#kolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - -let g:airline#themes#kolor#palette.normal_modified = { - \ 'airline_c': [ '#e2e2e2' , '#4f3598' , 254 , 56 , '' ] , - \ } - - -let s:I1 = [ '#242322' , '#7eaefd' , 234 , 111 ] -let s:I2 = [ '#75d7d8' , '#242322' , 80 , 234 ] -let s:I3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] -let g:airline#themes#kolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#kolor#palette.insert_modified = { - \ 'airline_c': [ '#242322' , '#7eaefd' , 234 , 111 , '' ] , - \ } - - -let g:airline#themes#kolor#palette.replace = copy(g:airline#themes#kolor#palette.insert) -let g:airline#themes#kolor#palette.replace.airline_a = [ s:I2[0] , '#005154' , s:I2[2] , 23 , '' ] -let g:airline#themes#kolor#palette.replace_modified = { - \ 'airline_c': [ '#e2e2e2' , '#005154' , 254 , 23 , '' ] , - \ } - - -let s:V1 = [ '#242322' , '#e6987a' , 234 , 180 ] -let s:V2 = [ '#dbc570' , '#242322' , 186 , 234 ] -let s:V3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] -let g:airline#themes#kolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#kolor#palette.visual_modified = { - \ 'airline_c': [ '#242322' , '#e6987a' , 234 , 180 , '' ] , - \ } - - -let s:IA1 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ] -let s:IA2 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 ] -let s:IA3 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ] -let g:airline#themes#kolor#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) -let g:airline#themes#kolor#palette.inactive_modified = { - \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , - \ } - - -let g:airline#themes#kolor#palette.accents = { - \ 'red': [ '#d96e8a' , '' , 168 , '' ] - \ } - - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#kolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#e2e2e2' , '#4a4a4a' , 254 , 238 , '' ], - \ [ '#e2e2e2' , '#242322' , 254 , 234 , '' ], - \ [ '#e2e2e2' , '#4f3598' , 254 , 56 , 'bold' ]) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/laederon.vim b/sources_non_forked/vim-airline/autoload/airline/themes/laederon.vim deleted file mode 100644 index 115c1079..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/laederon.vim +++ /dev/null @@ -1,62 +0,0 @@ -" vim-airline companion theme of Laederon -" (https://github.com/Donearm/Laederon) - -" Normal mode -let s:N1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ] " blackestgravel & snow -let s:N2 = [ '#ffffff' , '#44403a' , 255, 238 ] " snow & deepgravel -let s:N3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] " dilutedpaint & darkgravel -let s:N4 = [ '#777470' , 240 ] " gravel - -" Insert mode -let s:I1 = [ '#1a1a18' , '#1693a5' , 232 , 62 ] " blackestgravel & crystallake -let s:I2 = [ '#515744' , '#44403a' , 101 , 238 ] " lichen & deepgravel -let s:I3 = [ '#1693a5' , '#2e2d2a' , 39 , 235 ] " crystallake & darkgravel - -" Visual mode -let s:V1 = [ '#1a1a18' , '#ab3e5d' , 232 , 161 ] " blackestgravel & raspberry -let s:V2 = [ '#000000' , '#908571' , 16 , 252 ] " coal & winterterrain -let s:V3 = [ '#ab3e5d' , '#8c7f77' , 161 , 245 ] " raspberry & wetcoldterrain -let s:V4 = [ '#515744' , 101 ] " lichen - -" Replace mode -let s:RE = [ '#233e09' , 22 ] " oakleaf - -" Paste mode -let s:PA = [ '#ab3e5d' , 161 ] " raspberry - -let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3], s:N3[3] , '' ] - - -let g:airline#themes#laederon#palette = {} - -let g:airline#themes#laederon#palette.accents = { - \ 'red': [ '#ef393d' , '' , 196 , '' , '' ] - \ } - -let g:airline#themes#laederon#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#laederon#palette.normal_modified = { - \ 'airline_a' : [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , - \ 'airline_c' : [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } - - -let g:airline#themes#laederon#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#laederon#palette.insert_modified = { - \ 'airline_c' : [ s:V2[1] , s:N2[1] , s:V2[3] , s:N2[3] , '' ] } -let g:airline#themes#laederon#palette.insert_paste = { - \ 'airline_a' : [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } - - -let g:airline#themes#laederon#palette.replace = copy(airline#themes#laederon#palette.insert) -let g:airline#themes#laederon#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] -let g:airline#themes#laederon#palette.replace_modified = g:airline#themes#laederon#palette.insert_modified - - -let g:airline#themes#laederon#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#laederon#palette.visual_modified = { - \ 'airline_c' : [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } - - -let g:airline#themes#laederon#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#laederon#palette.inactive_modified = { - \ 'airline_c' : [ s:V1[1] , '' , s:V1[3] , '' , '' ] } - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/light.vim b/sources_non_forked/vim-airline/autoload/airline/themes/light.vim deleted file mode 100644 index d9fe8441..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/light.vim +++ /dev/null @@ -1,45 +0,0 @@ -let g:airline#themes#light#palette = {} - -let s:N1 = [ '#ffffff' , '#005fff' , 255 , 27 ] -let s:N2 = [ '#000087' , '#00dfff' , 18 , 45 ] -let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ] -let g:airline#themes#light#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#light#palette.normal_modified = { - \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , - \ } - - -let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] -let s:I2 = [ '#005f00' , '#00df87' , 22 , 42 ] -let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ] -let g:airline#themes#light#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#light#palette.insert_modified = { - \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , - \ } -let g:airline#themes#light#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , - \ } - - -let g:airline#themes#light#palette.replace = copy(g:airline#themes#light#palette.insert) -let g:airline#themes#light#palette.replace.airline_a = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] -let g:airline#themes#light#palette.replace_modified = g:airline#themes#light#palette.insert_modified - - -let s:V1 = [ '#ffffff' , '#ff5f00' , 255 , 202 ] -let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ] -let s:V3 = [ '#df5f00' , '#ffff87' , 166 , 228 ] -let g:airline#themes#light#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#light#palette.visual_modified = { - \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , - \ } - - -let s:IA1 = [ '#666666' , '#b2b2b2' , 242 , 249 , '' ] -let s:IA2 = [ '#8a8a8a' , '#d0d0d0' , 245 , 252 , '' ] -let s:IA3 = [ '#a8a8a8' , '#ffffff' , 248 , 255 , '' ] -let g:airline#themes#light#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) -let g:airline#themes#light#palette.inactive_modified = { - \ 'airline_c': [ '#df0000' , '' , 160 , '' , '' ] , - \ } - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/lucius.vim b/sources_non_forked/vim-airline/autoload/airline/themes/lucius.vim deleted file mode 100644 index e3869007..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/lucius.vim +++ /dev/null @@ -1,56 +0,0 @@ -let g:airline#themes#lucius#palette = {} - -function! airline#themes#lucius#refresh() - - let s:N1 = airline#themes#get_highlight('StatusLine') - let s:N2 = airline#themes#get_highlight('Folded') - let s:N3 = airline#themes#get_highlight('CursorLine') - let g:airline#themes#lucius#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - - let modified_group = airline#themes#get_highlight('Statement') - let g:airline#themes#lucius#palette.normal_modified = { - \ 'airline_c': [modified_group[0], '', modified_group[2], '', ''] - \ } - - let warning_group = airline#themes#get_highlight('DiffDelete') - let g:airline#themes#lucius#palette.normal.airline_warning = warning_group - let g:airline#themes#lucius#palette.normal_modified.airline_warning = warning_group - - let s:I1 = airline#themes#get_highlight('DiffAdd') - let s:I2 = s:N2 - let s:I3 = s:N3 - let g:airline#themes#lucius#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#lucius#palette.insert_modified = g:airline#themes#lucius#palette.normal_modified - let g:airline#themes#lucius#palette.insert.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning - let g:airline#themes#lucius#palette.insert_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning - - let s:R1 = airline#themes#get_highlight('DiffChange') - let s:R2 = s:N2 - let s:R3 = s:N3 - let g:airline#themes#lucius#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let g:airline#themes#lucius#palette.replace_modified = g:airline#themes#lucius#palette.normal_modified - let g:airline#themes#lucius#palette.replace.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning - let g:airline#themes#lucius#palette.replace_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning - - let s:V1 = airline#themes#get_highlight('Cursor') - let s:V2 = s:N2 - let s:V3 = s:N3 - let g:airline#themes#lucius#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#lucius#palette.visual_modified = g:airline#themes#lucius#palette.normal_modified - let g:airline#themes#lucius#palette.visual.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning - let g:airline#themes#lucius#palette.visual_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning - - let s:IA = airline#themes#get_highlight('StatusLineNC') - let g:airline#themes#lucius#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#lucius#palette.inactive_modified = { - \ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ] - \ } - - let g:airline#themes#lucius#palette.accents = { - \ 'red': airline#themes#get_highlight('Constant'), - \ } - -endfunction - -call airline#themes#lucius#refresh() - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/luna.vim b/sources_non_forked/vim-airline/autoload/airline/themes/luna.vim deleted file mode 100644 index 879d8623..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/luna.vim +++ /dev/null @@ -1,92 +0,0 @@ -" vim-airline companion theme of Luna -" (https://github.com/Pychimp/vim-luna) - -let g:airline#themes#luna#palette = {} - -let g:airline#themes#luna#palette.accents = { - \ 'red': [ '#ffffff' , '' , 231 , '' , '' ], - \ } - - -let s:N1 = [ '#ffffff' , '#005252' , 231 , 36 ] -let s:N2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] -let s:N3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] -let g:airline#themes#luna#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#luna#palette.normal_modified = { - \ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] , - \ } - - -let s:I1 = [ '#ffffff' , '#789f00' , 231 , 106 ] -let s:I2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] -let s:I3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] -let g:airline#themes#luna#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#luna#palette.insert_modified = { - \ 'airline_c': [ '#ffffff' , '#005e5e' , 255 , 52 , '' ] , - \ } -let g:airline#themes#luna#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#789f00' , s:I1[2] , 106 , '' ] , - \ } - - -let g:airline#themes#luna#palette.replace = copy(g:airline#themes#luna#palette.insert) -let g:airline#themes#luna#palette.replace.airline_a = [ s:I2[0] , '#920000' , s:I2[2] , 88 , '' ] -let g:airline#themes#luna#palette.replace_modified = g:airline#themes#luna#palette.insert_modified - -let s:V1 = [ '#ffff9a' , '#ff8036' , 222 , 208 ] -let s:V2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] -let s:V3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] -let g:airline#themes#luna#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#luna#palette.visual_modified = { - \ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] , - \ } - -let s:IA = [ '#4e4e4e' , '#002b2b' , 59 , 23 , '' ] -let g:airline#themes#luna#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#luna#palette.inactive_modified = { - \ 'airline_c': [ '#e20000' , '' , 166 , '' , '' ] , - \ } - -let g:airline#themes#luna#palette.tabline = { - \ 'airline_tab': ['#2aa198', '#003f3f', 231, 29, ''], - \ 'airline_tabsel': ['#ffffff', '#2e8b57', 231, 36, ''], - \ 'airline_tabtype': ['#ffffff', '#005252', 231, 36, ''], - \ 'airline_tabfill': ['#ffffff', '#002b2b', 231, 23, ''], - \ 'airline_tabmod': ['#ffffff', '#780000', 231, 88, ''], - \ } - -let s:WI = [ '#ffffff', '#5f0000', 231, 88 ] -let g:airline#themes#luna#palette.normal.airline_warning = [ - \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] - \ ] - -let g:airline#themes#luna#palette.normal_modified.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - -let g:airline#themes#luna#palette.insert.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - -let g:airline#themes#luna#palette.insert_modified.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - -let g:airline#themes#luna#palette.visual.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - -let g:airline#themes#luna#palette.visual_modified.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - -let g:airline#themes#luna#palette.replace.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - -let g:airline#themes#luna#palette.replace_modified.airline_warning = - \ g:airline#themes#luna#palette.normal.airline_warning - - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#luna#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#ffffff' , '#002b2b' , 231 , 23 , '' ] , - \ [ '#ffffff' , '#005252' , 231 , 36 , '' ] , - \ [ '#ffffff' , '#973d45' , 231 , 95 , '' ] ) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/molokai.vim b/sources_non_forked/vim-airline/autoload/airline/themes/molokai.vim deleted file mode 100644 index 1998f002..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/molokai.vim +++ /dev/null @@ -1,65 +0,0 @@ -let g:airline#themes#molokai#palette = {} - -let g:airline#themes#molokai#palette.accents = { - \ 'red': [ '#66d9ef' , '' , 81 , '' , '' ], - \ } - - -" Normal mode -let s:N1 = [ '#080808' , '#e6db74' , 232 , 144 ] " mode -let s:N2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] " info -let s:N3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] " statusline - -let g:airline#themes#molokai#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#molokai#palette.normal_modified = { - \ 'airline_c': [ '#080808' , '#e6db74' , 232 , 144 , '' ] , - \ } - - -" Insert mode -let s:I1 = [ '#080808' , '#66d9ef' , 232 , 81 ] -let s:I2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] -let s:I3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] - -let g:airline#themes#molokai#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#molokai#palette.insert_modified = { - \ 'airline_c': [ '#080808' , '#66d9ef' , 232 , 81 , '' ] , - \ } - - -" Replace mode -let g:airline#themes#molokai#palette.replace = copy(g:airline#themes#molokai#palette.insert) -let g:airline#themes#molokai#palette.replace.airline_a = [ s:I1[0] , '#ef5939' , s:I1[2] , 166 , '' ] -let g:airline#themes#molokai#palette.replace_modified = { - \ 'airline_c': [ '#080808' , '#ef5939' , 232 , 166 , '' ] , - \ } - - -" Visual mode -let s:V1 = [ '#080808' , '#fd971f' , 232 , 208 ] -let s:V2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] -let s:V3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] - -let g:airline#themes#molokai#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#molokai#palette.visual_modified = { - \ 'airline_c': [ '#080808' , '#fd971f' , 232 , 208 , '' ] , - \ } - - -" Inactive -let s:IA = [ '#1b1d1e' , '#465457' , 233 , 67 , '' ] -let g:airline#themes#molokai#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#molokai#palette.inactive_modified = { - \ 'airline_c': [ '#f8f8f0' , '' , 253 , '' , '' ] , - \ } - - -" CtrlP -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#molokai#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#f8f8f0' , '#465457' , 253 , 67 , '' ] , - \ [ '#f8f8f0' , '#232526' , 253 , 16 , '' ] , - \ [ '#080808' , '#e6db74' , 232 , 144 , 'bold' ] ) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/monochrome.vim b/sources_non_forked/vim-airline/autoload/airline/themes/monochrome.vim deleted file mode 100644 index 7dd1a173..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/monochrome.vim +++ /dev/null @@ -1,15 +0,0 @@ -let g:airline#themes#monochrome#palette = {} - -function! airline#themes#monochrome#refresh() - let s:SL = airline#themes#get_highlight('StatusLine') - let g:airline#themes#monochrome#palette.normal = airline#themes#generate_color_map(s:SL, s:SL, s:SL) - let g:airline#themes#monochrome#palette.insert = g:airline#themes#monochrome#palette.normal - let g:airline#themes#monochrome#palette.replace = g:airline#themes#monochrome#palette.normal - let g:airline#themes#monochrome#palette.visual = g:airline#themes#monochrome#palette.normal - - let s:SLNC = airline#themes#get_highlight('StatusLineNC') - let g:airline#themes#monochrome#palette.inactive = airline#themes#generate_color_map(s:SLNC, s:SLNC, s:SLNC) -endfunction - -call airline#themes#monochrome#refresh() - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/murmur.vim b/sources_non_forked/vim-airline/autoload/airline/themes/murmur.vim deleted file mode 100644 index 08e47572..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/murmur.vim +++ /dev/null @@ -1,82 +0,0 @@ -let g:airline#themes#murmur#palette = {} - -" Color palette -let s:cterm_termbg = 237 " Background for branch and file format blocks -let s:gui_termbg = '#5F5F5F' -let s:cterm_termfg = 144 " Foreground for branch and file format blocks -let s:gui_termfg = '#AFAF87' - -let s:cterm_termbg2 = 234 " Background for middle block -let s:gui_termbg2 = '#1C1C1C' -let s:cterm_termfg2 = 39 " Foreground for middle block -let s:gui_termfg2 = '#F5F5F5' - -let s:cterm_normalbg = 27 " Background for normal mode and file position blocks -let s:gui_normalbg = '#5F87FF' -let s:cterm_normalfg = 15 " Foreground for normal mode and file position blocks -let s:gui_normalfg = '#FFFFFF' - -let s:cterm_insertbg = 70 " Background for insert mode and file position blocks -let s:gui_insertbg = '#87AF5F' -let s:cterm_insertfg = 15 " Foreground for insert mode and file position blocks -let s:gui_insertfg = '#FFFFFF' - -let s:cterm_visualbg = 166 " Background for visual mode and file position blocks -let s:gui_visualbg = '#ff8c00' -let s:cterm_visualfg = 15 " Foreground for visual mode and file position blocks -let s:gui_visualfg = '#FFFFFF' - -let s:cterm_replacebg = 88 " Background for replace mode and file position blocks -let s:gui_replacebg = '#870000' -let s:cterm_replacefg = 15 " Foreground for replace mode and file position blocks -let s:gui_replacefg = '#FFFFFF' - -let s:cterm_alert = 88 " Modified file alert color -let s:gui_alert = '#870000' - -let s:cterm_inactivebg = 234 " Background for inactive mode -let s:gui_inactivebg = '#1C1C1C' -let s:cterm_inactivefg = 239 " Foreground for inactive mode -let s:gui_inactivefg = '#4E4E4E' - -" Branch and file format -let s:BB = [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg] " Branch and file format blocks - -" Normal mode -let s:N1 = [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg] " Outside blocks in normal mode -let s:N2 = [s:gui_termfg2, s:gui_termbg2, s:cterm_normalbg, s:cterm_termbg2] " Middle block -let g:airline#themes#murmur#palette.normal = airline#themes#generate_color_map(s:N1, s:BB, s:N2) -let g:airline#themes#murmur#palette.normal_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} - -" Insert mode -let s:I1 = [s:gui_insertfg, s:gui_insertbg, s:cterm_insertfg, s:cterm_insertbg] " Outside blocks in insert mode -let s:I2 = [s:gui_insertbg, s:gui_termbg2, s:cterm_insertbg, s:cterm_termbg2] " Middle block -let g:airline#themes#murmur#palette.insert = airline#themes#generate_color_map(s:I1, s:BB, s:I2) -let g:airline#themes#murmur#palette.insert_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} - -" Replace mode -let s:R1 = [s:gui_replacefg, s:gui_replacebg, s:cterm_replacefg, s:cterm_replacebg] " Outside blocks in replace mode -let s:R2 = [s:gui_termfg, s:gui_termbg2, s:cterm_termfg, s:cterm_termbg2] " Middle block -let g:airline#themes#murmur#palette.replace = airline#themes#generate_color_map(s:R1, s:BB, s:R2) -let g:airline#themes#murmur#palette.replace_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} - -" Visual mode -let s:V1 = [s:gui_visualfg, s:gui_visualbg, s:cterm_visualfg, s:cterm_visualbg] " Outside blocks in visual mode -let s:V2 = [s:gui_visualbg, s:gui_termbg2, s:cterm_visualbg, s:cterm_termbg2] " Middle block -let g:airline#themes#murmur#palette.visual = airline#themes#generate_color_map(s:V1, s:BB, s:V2) -let g:airline#themes#murmur#palette.visual_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} - -" Inactive mode -let s:IA1 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] -let s:IA2 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] -let s:IA3 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] -let g:airline#themes#murmur#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) - -" CtrlP plugin colors -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#murmur#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg, ''], - \ [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg, ''], - \ [s:gui_termfg2, s:gui_termbg2, s:cterm_termfg2, s:cterm_termbg2, 'bold']) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/papercolor.vim b/sources_non_forked/vim-airline/autoload/airline/themes/papercolor.vim deleted file mode 100644 index fb8022ba..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/papercolor.vim +++ /dev/null @@ -1,65 +0,0 @@ -let g:airline#themes#papercolor#palette = {} - -let g:airline#themes#papercolor#palette.accents = { - \ 'red': [ '#66d9ef' , '' , 81 , '' , '' ], - \ } - -" Normal Mode: -let s:N1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode -let s:N2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info -let s:N3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine - - -let g:airline#themes#papercolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#papercolor#palette.normal_modified = { - \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , - \ } - - -" Insert Mode: -let s:I1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode -let s:I2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info -let s:I3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine - - -let g:airline#themes#papercolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#papercolor#palette.insert_modified = { - \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , - \ } - - -" Replace Mode: -let g:airline#themes#papercolor#palette.replace = copy(g:airline#themes#papercolor#palette.insert) -let g:airline#themes#papercolor#palette.replace.airline_a = [ '#d7005f' , '#e4e4e4' , 161 , 254, '' ] -let g:airline#themes#papercolor#palette.replace_modified = { - \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , - \ } - - -" Visual Mode: -let s:V1 = [ '#005f87', '#e4e4e4', 24, 254 ] -let s:V2 = [ '', '#0087af', '', 31 ] -let s:V3 = [ '#e4e4e4', '#005f87', 254, 24 ] - -let g:airline#themes#papercolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#papercolor#palette.visual_modified = { - \ 'airline_c': [ '#e4e4e4', '#005f87', 254, 24 ] , - \ } - -" Inactive: -let s:IA = [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] -let g:airline#themes#papercolor#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#papercolor#palette.inactive_modified = { - \ 'airline_c': [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] , - \ } - - -" CtrlP: -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#papercolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#e4e4e4' , '#005f87' , 254 , 24 , '' ] , - \ [ '#e4e4e4' , '#0087af' , 254 , 31 , '' ] , - \ [ '#585858' , '#e4e4e4' , 240 , 254 , 'bold' ] ) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/powerlineish.vim b/sources_non_forked/vim-airline/autoload/airline/themes/powerlineish.vim deleted file mode 100644 index d550e110..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/powerlineish.vim +++ /dev/null @@ -1,46 +0,0 @@ -" Theme to mimic the default colorscheme of powerline -" Not 100% the same so it's powerline... ish. -" -" Differences from default powerline: -" * Paste indicator isn't colored different -" * Far right hand section matches the color of the mode indicator -" -" Differences from other airline themes: -" * No color differences when you're in a modified buffer -" * Visual mode only changes the mode section. Otherwise -" it appears the same as normal mode - -" Normal mode " fg & bg -let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] " darkestgreen & brightgreen -let s:N2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] " gray8 & gray2 -let s:N3 = [ '#ffffff' , '#121212' , 231 , 233 ] " white & gray4 - -" Insert mode " fg & bg -let s:I1 = [ '#005f5f' , '#ffffff' , 23 , 231 ] " darkestcyan & white -let s:I2 = [ '#5fafd7' , '#0087af' , 74 , 31 ] " darkcyan & darkblue -let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] " mediumcyan & darkestblue - -" Visual mode " fg & bg -let s:V1 = [ '#080808' , '#ffaf00' , 232 , 214 ] " gray3 & brightestorange - -" Replace mode " fg & bg -let s:RE = [ '#ffffff' , '#d70000' , 231 , 160 ] " white & brightred - -let g:airline#themes#powerlineish#palette = {} - -let g:airline#themes#powerlineish#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - -let g:airline#themes#powerlineish#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#powerlineish#palette.insert_replace = { - \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } - -let g:airline#themes#powerlineish#palette.visual = { - \ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] } - -let g:airline#themes#powerlineish#palette.replace = copy(airline#themes#powerlineish#palette.normal) -let g:airline#themes#powerlineish#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] - - -let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ] -let g:airline#themes#powerlineish#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/raven.vim b/sources_non_forked/vim-airline/autoload/airline/themes/raven.vim deleted file mode 100644 index 02bfd73a..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/raven.vim +++ /dev/null @@ -1,85 +0,0 @@ -let g:airline#themes#raven#palette = {} - -let g:airline#themes#raven#palette.accents = { - \ 'red': [ '#ff2121' , '' , 196 , '' , '' ], - \ } - -let s:N1 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] -let s:N2 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] -let s:N3 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] -let g:airline#themes#raven#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#raven#palette.normal_modified = { - \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , - \ } - -let s:I1 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] -let s:I2 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] -let s:I3 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] -let g:airline#themes#raven#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#raven#palette.insert_modified = { - \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , - \ } -let g:airline#themes#raven#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#2e2e2e' , s:I1[2] , 235 , '' ] , - \ } - -let g:airline#themes#raven#palette.replace = copy(g:airline#themes#raven#palette.insert) -let g:airline#themes#raven#palette.replace.airline_a = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ] -let g:airline#themes#raven#palette.replace.airline_z = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ] -let g:airline#themes#raven#palette.replace_modified = g:airline#themes#raven#palette.insert_modified - -let s:V1 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] -let s:V2 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] -let s:V3 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] -let g:airline#themes#raven#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#raven#palette.visual_modified = { - \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , - \ } - -let s:IA = [ '#5e5e5e' , '#222222' , 59 , 235 , '' ] -let g:airline#themes#raven#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#raven#palette.inactive_modified = { - \ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] , - \ } - -let g:airline#themes#raven#palette.tabline = { - \ 'airline_tab': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], - \ 'airline_tabsel': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ], - \ 'airline_tabtype': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], - \ 'airline_tabfill': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], - \ 'airline_tabmod': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ], - \ } - -let s:WI = [ '#ff0000', '#2e2e2e', 196, 235 ] -let g:airline#themes#raven#palette.normal.airline_warning = [ - \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] - \ ] - -let g:airline#themes#raven#palette.normal_modified.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -let g:airline#themes#raven#palette.insert.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -let g:airline#themes#raven#palette.insert_modified.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -let g:airline#themes#raven#palette.visual.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -let g:airline#themes#raven#palette.visual_modified.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -let g:airline#themes#raven#palette.replace.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -let g:airline#themes#raven#palette.replace_modified.airline_warning = - \ g:airline#themes#raven#palette.normal.airline_warning - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#raven#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] , - \ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] , - \ [ '#2e2e2e' , '#a4c639' , 235 , 149 , '' ] ) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/serene.vim b/sources_non_forked/vim-airline/autoload/airline/themes/serene.vim deleted file mode 100644 index 9191c077..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/serene.vim +++ /dev/null @@ -1,41 +0,0 @@ -let g:airline#themes#serene#palette = {} - -let s:guibg = '#080808' -let s:termbg = 232 -let s:termsep = 236 -let s:guisep = '#303030' - -let s:N1 = [ '#00dfff' , s:guibg , 45 , s:termbg ] -let s:N2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] -let s:N3 = [ '#767676' , s:guibg , 7 , s:termbg ] - -let g:airline#themes#serene#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#serene#palette.normal_modified = { - \ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , - \ } - -let s:I1 = [ '#5fff00' , s:guibg , 82 , s:termbg ] -let s:I2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] -let s:I3 = [ '#767676' , s:guibg , 7 , s:termbg ] -let g:airline#themes#serene#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#serene#palette.insert_modified = copy(g:airline#themes#serene#palette.normal_modified) -let g:airline#themes#serene#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , - \ } - -let g:airline#themes#serene#palette.replace = { - \ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , - \ } -let g:airline#themes#serene#palette.replace_modified = copy(g:airline#themes#serene#palette.normal_modified) - -let s:V1 = [ '#dfdf00' , s:guibg , 184 , s:termbg ] -let s:V2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] -let s:V3 = [ '#767676' , s:guibg , 7 , s:termbg ] -let g:airline#themes#serene#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#serene#palette.visual_modified = copy(g:airline#themes#serene#palette.normal_modified) - -let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ] -let s:IA2 = [ '#4e4e4e' , s:guisep , 239 , s:termsep , '' ] -let g:airline#themes#serene#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2) -let g:airline#themes#serene#palette.inactive_modified = copy(g:airline#themes#serene#palette.normal_modified) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/silver.vim b/sources_non_forked/vim-airline/autoload/airline/themes/silver.vim deleted file mode 100644 index fd85edba..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/silver.vim +++ /dev/null @@ -1,85 +0,0 @@ -let g:airline#themes#silver#palette = {} - -let g:airline#themes#silver#palette.accents = { - \ 'red': [ '#ff2121' , '' , 196 , '' , '' ], - \ } - -let s:N1 = [ '#414141' , '#e1e1e1' , 59 , 188 ] -let s:N2 = [ '#414141' , '#e1e1e1' , 59 , 188 ] -let s:N3 = [ '#414141' , '#e1e1e1' , 59 , 188 ] -let g:airline#themes#silver#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#silver#palette.normal_modified = { - \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , - \ } - -let s:I1 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] -let s:I2 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] -let s:I3 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] -let g:airline#themes#silver#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#silver#palette.insert_modified = { - \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , - \ } -let g:airline#themes#silver#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#e1e1e1' , s:I1[2] , 188 , '' ] , - \ } - -let g:airline#themes#silver#palette.replace = copy(g:airline#themes#silver#palette.insert) -let g:airline#themes#silver#palette.replace.airline_a = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ] -let g:airline#themes#silver#palette.replace.airline_z = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ] -let g:airline#themes#silver#palette.replace_modified = g:airline#themes#silver#palette.insert_modified - -let s:V1 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] -let s:V2 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] -let s:V3 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] -let g:airline#themes#silver#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#silver#palette.visual_modified = { - \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , - \ } - -let s:IA = [ '#a1a1a1' , '#dddddd' , 145 , 188 , '' ] -let g:airline#themes#silver#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#silver#palette.inactive_modified = { - \ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] , - \ } - -let g:airline#themes#silver#palette.tabline = { - \ 'airline_tab': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], - \ 'airline_tabsel': ['#e1e1e1' , '#007599' , 188 , 30 , '' ], - \ 'airline_tabtype': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], - \ 'airline_tabfill': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], - \ 'airline_tabmod': ['#e1e1e1' , '#007599' , 188 , 30 , '' ], - \ } - -let s:WI = [ '#ff0000', '#e1e1e1', 196, 188 ] -let g:airline#themes#silver#palette.normal.airline_warning = [ - \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] - \ ] - -let g:airline#themes#silver#palette.normal_modified.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -let g:airline#themes#silver#palette.insert.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -let g:airline#themes#silver#palette.insert_modified.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -let g:airline#themes#silver#palette.visual.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -let g:airline#themes#silver#palette.visual_modified.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -let g:airline#themes#silver#palette.replace.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -let g:airline#themes#silver#palette.replace_modified.airline_warning = - \ g:airline#themes#silver#palette.normal.airline_warning - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#silver#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] , - \ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] , - \ [ '#e1e1e1' , '#007599' , 188 , 30 , '' ] ) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/simple.vim b/sources_non_forked/vim-airline/autoload/airline/themes/simple.vim deleted file mode 100644 index a111a1cb..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/simple.vim +++ /dev/null @@ -1,46 +0,0 @@ -let g:airline#themes#simple#palette = {} - -let s:guibg = '#080808' -let s:guibg2 = '#1c1c1c' -let s:termbg = 232 -let s:termbg2= 234 - -let s:N1 = [ s:guibg , '#00dfff' , s:termbg , 45 ] -let s:N2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] -let s:N3 = [ '#767676' , s:guibg, 243 , s:termbg] -let g:airline#themes#simple#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#simple#palette.normal_modified = { - \ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , - \ } - - -let s:I1 = [ s:guibg, '#5fff00' , s:termbg , 82 ] -let s:I2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] -let s:I3 = [ '#767676' , s:guibg, 243 , s:termbg ] -let g:airline#themes#simple#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#simple#palette.insert_modified = copy(g:airline#themes#simple#palette.normal_modified) -let g:airline#themes#simple#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , - \ } - - -let g:airline#themes#simple#palette.replace = { - \ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , - \ } -let g:airline#themes#simple#palette.replace_modified = copy(g:airline#themes#simple#palette.normal_modified) - - -let s:V1 = [ s:guibg, '#dfdf00' , s:termbg , 184 ] -let s:V2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] -let s:V3 = [ '#767676' , s:guibg, 243 , s:termbg ] -let g:airline#themes#simple#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#simple#palette.visual_modified = copy(g:airline#themes#simple#palette.normal_modified) - - -let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ] -let s:IA2 = [ '#4e4e4e' , s:guibg2 , 239 , s:termbg2 , '' ] -let g:airline#themes#simple#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2) -let g:airline#themes#simple#palette.inactive_modified = { - \ 'airline_c': [ '#df0000', '', 160, '', '' ] , - \ } - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/sol.vim b/sources_non_forked/vim-airline/autoload/airline/themes/sol.vim deleted file mode 100644 index 89ea5058..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/sol.vim +++ /dev/null @@ -1,90 +0,0 @@ -" vim-airline companion theme of Sol -" (https://github.com/Pychimp/vim-sol) - -let g:airline#themes#sol#palette = {} - -let g:airline#themes#sol#palette.accents = { - \ 'red': [ '#ffffff' , '' , 231 , '' , '' ], - \ } - -let s:N1 = [ '#343434' , '#a0a0a0' , 237 , 248 ] -let s:N2 = [ '#343434' , '#b3b3b3' , 237 , 250 ] -let s:N3 = [ '#343434' , '#c7c7c7' , 237 , 252 ] -let g:airline#themes#sol#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#sol#palette.normal_modified = { - \ 'airline_c': [ '#ffffff' , '#ff6868' , 237 , 209 , '' ] , - \ } - - -let s:I1 = [ '#eeeeee' , '#09643f' , 255 , 30 ] -let s:I2 = [ '#343434' , '#a3a3a3' , 237 , 249 ] -let s:I3 = [ '#343434' , '#b0b0b0' , 237 , 250 ] -let g:airline#themes#sol#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#sol#palette.insert_modified = { - \ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] , - \ } -let g:airline#themes#sol#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , '#09643f' , s:I1[2] , 30 , '' ] , - \ } - - -let g:airline#themes#sol#palette.replace = copy(g:airline#themes#sol#palette.insert) -let g:airline#themes#sol#palette.replace.airline_a = [ s:I1[0] , '#ff2121' , s:I1[2] , 196 , '' ] -let g:airline#themes#sol#palette.replace.airline_z = [ s:I1[0] , '#ff2121' , s:I1[2] , 196 , '' ] -let g:airline#themes#sol#palette.replace_modified = g:airline#themes#sol#palette.insert_modified - -let s:V1 = [ '#ffff9a' , '#ff6003' , 222 , 202 ] -let s:V2 = [ '#343434' , '#a3a3a3' , 237 , 249 ] -let s:V3 = [ '#343434' , '#b0b0b0' , 237 , 250 ] -let g:airline#themes#sol#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#sol#palette.visual_modified = { - \ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] , - \ } - -let s:IA = [ '#777777' , '#c7c7c7' , 244 , 251 , '' ] -let g:airline#themes#sol#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#sol#palette.inactive_modified = { - \ 'airline_c': [ '#ff3535' , '' , 203 , '' , '' ] , - \ } - -let g:airline#themes#sol#palette.tabline = { - \ 'airline_tab': ['#343434', '#b3b3b3', 237, 250, ''], - \ 'airline_tabsel': ['#ffffff', '#004b9a', 231, 31 , ''], - \ 'airline_tabtype': ['#343434', '#a0a0a0', 237, 248, ''], - \ 'airline_tabfill': ['#343434', '#c7c7c7', 237, 251, ''], - \ 'airline_tabmod': ['#343434', '#ffdbc7', 237, 216, ''], - \ } - -let s:WI = [ '#eeeeee', '#e33900', 255, 166 ] -let g:airline#themes#sol#palette.normal.airline_warning = [ - \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] - \ ] - -let g:airline#themes#sol#palette.normal_modified.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -let g:airline#themes#sol#palette.insert.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -let g:airline#themes#sol#palette.insert_modified.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -let g:airline#themes#sol#palette.visual.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -let g:airline#themes#sol#palette.visual_modified.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -let g:airline#themes#sol#palette.replace.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -let g:airline#themes#sol#palette.replace_modified.airline_warning = - \ g:airline#themes#sol#palette.normal.airline_warning - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#sol#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#343434' , '#c7c7c7' , 237 , 251 , '' ] , - \ [ '#343434' , '#b3b3b3' , 237 , 250 , '' ] , - \ [ '#eeeeee' , '#007fff' , 255 , 27 , '' ] ) diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/solarized.vim b/sources_non_forked/vim-airline/autoload/airline/themes/solarized.vim deleted file mode 100644 index 30ba47e6..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/solarized.vim +++ /dev/null @@ -1,176 +0,0 @@ -let g:airline#themes#solarized#palette = {} - -function! airline#themes#solarized#refresh() - """""""""""""""""""""""""""""""""""""""""""""""" - " Options - """""""""""""""""""""""""""""""""""""""""""""""" - let s:background = get(g:, 'airline_solarized_bg', &background) - let s:ansi_colors = get(g:, 'solarized_termcolors', 16) != 256 && &t_Co >= 16 ? 1 : 0 - let s:tty = &t_Co == 8 - - """""""""""""""""""""""""""""""""""""""""""""""" - " Colors - """""""""""""""""""""""""""""""""""""""""""""""" - " Base colors - let s:base03 = {'t': s:ansi_colors ? 8 : (s:tty ? '0' : 234), 'g': '#002b36'} - let s:base02 = {'t': s:ansi_colors ? '0' : (s:tty ? '0' : 235), 'g': '#073642'} - let s:base01 = {'t': s:ansi_colors ? 10 : (s:tty ? '0' : 240), 'g': '#586e75'} - let s:base00 = {'t': s:ansi_colors ? 11 : (s:tty ? '7' : 241), 'g': '#657b83'} - let s:base0 = {'t': s:ansi_colors ? 12 : (s:tty ? '7' : 244), 'g': '#839496'} - let s:base1 = {'t': s:ansi_colors ? 14 : (s:tty ? '7' : 245), 'g': '#93a1a1'} - let s:base2 = {'t': s:ansi_colors ? 7 : (s:tty ? '7' : 254), 'g': '#eee8d5'} - let s:base3 = {'t': s:ansi_colors ? 15 : (s:tty ? '7' : 230), 'g': '#fdf6e3'} - let s:yellow = {'t': s:ansi_colors ? 3 : (s:tty ? '3' : 136), 'g': '#b58900'} - let s:orange = {'t': s:ansi_colors ? 9 : (s:tty ? '1' : 166), 'g': '#cb4b16'} - let s:red = {'t': s:ansi_colors ? 1 : (s:tty ? '1' : 160), 'g': '#dc322f'} - let s:magenta = {'t': s:ansi_colors ? 5 : (s:tty ? '5' : 125), 'g': '#d33682'} - let s:violet = {'t': s:ansi_colors ? 13 : (s:tty ? '5' : 61 ), 'g': '#6c71c4'} - let s:blue = {'t': s:ansi_colors ? 4 : (s:tty ? '4' : 33 ), 'g': '#268bd2'} - let s:cyan = {'t': s:ansi_colors ? 6 : (s:tty ? '6' : 37 ), 'g': '#2aa198'} - let s:green = {'t': s:ansi_colors ? 2 : (s:tty ? '2' : 64 ), 'g': '#859900'} - - """""""""""""""""""""""""""""""""""""""""""""""" - " Simple mappings - " NOTE: These are easily tweakable mappings. The actual mappings get - " the specific gui and terminal colors from the base color dicts. - """""""""""""""""""""""""""""""""""""""""""""""" - " Normal mode - if s:background == 'dark' - let s:N1 = [s:base3, s:base1, 'bold'] - let s:N2 = [s:base2, (s:tty ? s:base01 : s:base00), ''] - let s:N3 = [s:base01, s:base02, ''] - else - let s:N1 = [s:base2, s:base00, 'bold'] - let s:N2 = [(s:tty ? s:base01 : s:base2), s:base1, ''] - let s:N3 = [s:base1, s:base2, ''] - endif - let s:NF = [s:orange, s:N3[1], ''] - let s:NW = [s:base3, s:orange, ''] - if s:background == 'dark' - let s:NM = [s:base1, s:N3[1], ''] - let s:NMi = [s:base2, s:N3[1], ''] - else - let s:NM = [s:base01, s:N3[1], ''] - let s:NMi = [s:base02, s:N3[1], ''] - endif - - " Insert mode - let s:I1 = [s:N1[0], s:yellow, 'bold'] - let s:I2 = s:N2 - let s:I3 = s:N3 - let s:IF = s:NF - let s:IM = s:NM - - " Visual mode - let s:V1 = [s:N1[0], s:magenta, 'bold'] - let s:V2 = s:N2 - let s:V3 = s:N3 - let s:VF = s:NF - let s:VM = s:NM - - " Replace mode - let s:R1 = [s:N1[0], s:red, ''] - let s:R2 = s:N2 - let s:R3 = s:N3 - let s:RM = s:NM - let s:RF = s:NF - - " Inactive, according to VertSplit in solarized - " (bg dark: base00; bg light: base0) - if s:background == 'dark' - let s:IA = [s:base02, s:base00, ''] - else - let s:IA = [s:base2, s:base0, ''] - endif - - """""""""""""""""""""""""""""""""""""""""""""""" - " Actual mappings - " WARNING: Don't modify this section unless necessary. - """""""""""""""""""""""""""""""""""""""""""""""" - let s:NFa = [s:NF[0].g, s:NF[1].g, s:NF[0].t, s:NF[1].t, s:NF[2]] - let s:IFa = [s:IF[0].g, s:IF[1].g, s:IF[0].t, s:IF[1].t, s:IF[2]] - let s:VFa = [s:VF[0].g, s:VF[1].g, s:VF[0].t, s:VF[1].t, s:VF[2]] - let s:RFa = [s:RF[0].g, s:RF[1].g, s:RF[0].t, s:RF[1].t, s:RF[2]] - - let g:airline#themes#solarized#palette.accents = { - \ 'red': s:NFa, - \ } - - let g:airline#themes#solarized#palette.inactive = airline#themes#generate_color_map( - \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], - \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], - \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]]) - let g:airline#themes#solarized#palette.inactive_modified = { - \ 'airline_c': [s:NMi[0].g, '', s:NMi[0].t, '', s:NMi[2]]} - - let g:airline#themes#solarized#palette.normal = airline#themes#generate_color_map( - \ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]], - \ [s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]], - \ [s:N3[0].g, s:N3[1].g, s:N3[0].t, s:N3[1].t, s:N3[2]]) - - let g:airline#themes#solarized#palette.normal.airline_warning = [ - \ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]] - - let g:airline#themes#solarized#palette.normal_modified = { - \ 'airline_c': [s:NM[0].g, s:NM[1].g, - \ s:NM[0].t, s:NM[1].t, s:NM[2]]} - - let g:airline#themes#solarized#palette.normal_modified.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.insert = airline#themes#generate_color_map( - \ [s:I1[0].g, s:I1[1].g, s:I1[0].t, s:I1[1].t, s:I1[2]], - \ [s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]], - \ [s:I3[0].g, s:I3[1].g, s:I3[0].t, s:I3[1].t, s:I3[2]]) - - let g:airline#themes#solarized#palette.insert.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.insert_modified = { - \ 'airline_c': [s:IM[0].g, s:IM[1].g, - \ s:IM[0].t, s:IM[1].t, s:IM[2]]} - - let g:airline#themes#solarized#palette.insert_modified.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.visual = airline#themes#generate_color_map( - \ [s:V1[0].g, s:V1[1].g, s:V1[0].t, s:V1[1].t, s:V1[2]], - \ [s:V2[0].g, s:V2[1].g, s:V2[0].t, s:V2[1].t, s:V2[2]], - \ [s:V3[0].g, s:V3[1].g, s:V3[0].t, s:V3[1].t, s:V3[2]]) - - let g:airline#themes#solarized#palette.visual.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.visual_modified = { - \ 'airline_c': [s:VM[0].g, s:VM[1].g, - \ s:VM[0].t, s:VM[1].t, s:VM[2]]} - - let g:airline#themes#solarized#palette.visual_modified.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.replace = airline#themes#generate_color_map( - \ [s:R1[0].g, s:R1[1].g, s:R1[0].t, s:R1[1].t, s:R1[2]], - \ [s:R2[0].g, s:R2[1].g, s:R2[0].t, s:R2[1].t, s:R2[2]], - \ [s:R3[0].g, s:R3[1].g, s:R3[0].t, s:R3[1].t, s:R3[2]]) - - let g:airline#themes#solarized#palette.replace.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.replace_modified = { - \ 'airline_c': [s:RM[0].g, s:RM[1].g, - \ s:RM[0].t, s:RM[1].t, s:RM[2]]} - - let g:airline#themes#solarized#palette.replace_modified.airline_warning = - \ g:airline#themes#solarized#palette.normal.airline_warning - - let g:airline#themes#solarized#palette.tabline = {} - - let g:airline#themes#solarized#palette.tabline.airline_tab = [ - \ s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]] - - let g:airline#themes#solarized#palette.tabline.airline_tabtype = [ - \ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]] -endfunction - -call airline#themes#solarized#refresh() - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/term.vim b/sources_non_forked/vim-airline/autoload/airline/themes/term.vim deleted file mode 100644 index 288ca6ac..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/term.vim +++ /dev/null @@ -1,92 +0,0 @@ - -" vim-airline 'term' theme -" it is using current terminal colorscheme -" and in gvim i left colors from 'wombat' theme but i am not using it anyway - -" Normal mode -" [ guifg, guibg, ctermfg, ctermbg, opts ] -let s:N1 = [ '#141413' , '#CAE682' , 232 , 2 ] " mode -let s:N2 = [ '#CAE682' , '#32322F' , 2 , 'black' ] " info -let s:N3 = [ '#CAE682' , '#242424' , 2 , 233 ] " statusline -let s:N4 = [ '#86CD74' , 10 ] " mode modified - -" Insert mode -let s:I1 = [ '#141413' , '#FDE76E' , 232 , 3 ] -let s:I2 = [ '#FDE76E' , '#32322F' , 3 , 'black' ] -let s:I3 = [ '#FDE76E' , '#242424' , 3 , 233 ] -let s:I4 = [ '#FADE3E' , 11 ] - -" Visual mode -let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 4 ] -let s:V2 = [ '#B5D3F3' , '#32322F' , 4 , 'black' ] -let s:V3 = [ '#B5D3F3' , '#242424' , 4 , 233 ] -let s:V4 = [ '#7CB0E6' , 12 ] - -" Replace mode -let s:R1 = [ '#141413' , '#E5786D' , 232 , 1 ] -let s:R2 = [ '#E5786D' , '#32322F' , 1 , 'black' ] -let s:R3 = [ '#E5786D' , '#242424' , 1 , 233 ] -let s:R4 = [ '#E55345' , 9 ] - -" Paste mode -let s:PA = [ '#94E42C' , 6 ] - -" Info modified -let s:IM = [ '#40403C' , 238 ] - -" Inactive mode -let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] - -let g:airline#themes#term#palette = {} - -let g:airline#themes#term#palette.accents = { - \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], - \ } - -let g:airline#themes#term#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#term#palette.normal_modified = { - \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , - \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#term#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#term#palette.insert_modified = { - \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , - \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#term#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#term#palette.visual_modified = { - \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , - \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#term#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) -let g:airline#themes#term#palette.replace_modified = { - \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , - \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#term#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , - \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } - - -let g:airline#themes#term#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#term#palette.inactive_modified = { - \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } - - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#term#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , - \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , - \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/tomorrow.vim b/sources_non_forked/vim-airline/autoload/airline/themes/tomorrow.vim deleted file mode 100644 index f382fc14..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/tomorrow.vim +++ /dev/null @@ -1,44 +0,0 @@ -let g:airline#themes#tomorrow#palette = {} - -function! airline#themes#tomorrow#refresh() - let g:airline#themes#tomorrow#palette.accents = { - \ 'red': airline#themes#get_highlight('Constant'), - \ } - - let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Directory', 'fg'], 'bold') - let s:N2 = airline#themes#get_highlight('Pmenu') - let s:N3 = airline#themes#get_highlight('CursorLine') - let g:airline#themes#tomorrow#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - - let group = airline#themes#get_highlight('vimCommand') - let g:airline#themes#tomorrow#palette.normal_modified = { - \ 'airline_c': [ group[0], '', group[2], '', '' ] - \ } - - let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['MoreMsg', 'fg'], 'bold') - let s:I2 = airline#themes#get_highlight2(['MoreMsg', 'fg'], ['Normal', 'bg']) - let s:I3 = s:N3 - let g:airline#themes#tomorrow#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#tomorrow#palette.insert_modified = g:airline#themes#tomorrow#palette.normal_modified - - let s:R1 = airline#themes#get_highlight('Error', 'bold') - let s:R2 = s:N2 - let s:R3 = s:N3 - let g:airline#themes#tomorrow#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let g:airline#themes#tomorrow#palette.replace_modified = g:airline#themes#tomorrow#palette.normal_modified - - let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Constant', 'fg'], 'bold') - let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg']) - let s:V3 = s:N3 - let g:airline#themes#tomorrow#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#tomorrow#palette.visual_modified = g:airline#themes#tomorrow#palette.normal_modified - - let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg']) - let g:airline#themes#tomorrow#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#tomorrow#palette.inactive_modified = { - \ 'airline_c': [ group[0], '', group[2], '', '' ] - \ } -endfunction - -call airline#themes#tomorrow#refresh() - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/ubaryd.vim b/sources_non_forked/vim-airline/autoload/airline/themes/ubaryd.vim deleted file mode 100644 index 70232ef8..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/ubaryd.vim +++ /dev/null @@ -1,64 +0,0 @@ -" vim-airline companion theme of Ubaryd -" (https://github.com/Donearm/Ubaryd) - -" Normal mode -let s:N1 = [ '#141413' , '#c7b386' , 232 , 252 ] " blackestgravel & bleaksand -let s:N2 = [ '#c7b386' , '#45413b' , 252, 238 ] " bleaksand & deepgravel -let s:N3 = [ '#b88853' , '#242321' , 137, 235 ] " toffee & darkgravel -let s:N4 = [ '#857f78' , 243 ] " gravel - -" Insert mode -let s:I1 = [ '#1a1a18' , '#fade3e' , 232 , 221 ] " blackestgravel & warmcorn -let s:I2 = [ '#c7b386' , '#45413b' , 252 , 238 ] " bleaksand & deepgravel -let s:I3 = [ '#f4cf86' , '#242321' , 222 , 235 ] " lighttannedskin & darkgravel - -" Visual mode -let s:V1 = [ '#1c1b1a' , '#9a4820' , 233 , 88 ] " blackgravel & warmadobe -let s:V2 = [ '#000000' , '#88633f' , 16 , 95 ] " coal & cappuccino -let s:V3 = [ '#88633f' , '#c7b386' , 95 , 252 ] " cappuccino & bleaksand -let s:V4 = [ '#c14c3d' , 160 ] " tannedumbrella - -" Replace mode -let s:RE = [ '#c7915b' , 173 ] " nut - -" Paste mode -let s:PA = [ '#f9ef6d' , 154 ] " bleaklemon - -let s:IA = [ s:N2[1], s:N3[1], s:N2[3], s:N3[3], '' ] - -let g:airline#themes#ubaryd#palette = {} - -let g:airline#themes#ubaryd#palette.accents = { - \ 'red': [ '#ff7400' , '' , 196 , '' , '' ], - \ } - -let g:airline#themes#ubaryd#palette.inactive = { - \ 'airline_a' : [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ] } - - -let g:airline#themes#ubaryd#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#ubaryd#palette.normal_modified = { - \ 'airline_a' : [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , - \ 'airline_c' : [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } - - -let g:airline#themes#ubaryd#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#ubaryd#palette.insert_modified = { - \ 'airline_c' : [ s:V2[1] , s:N2[1] , s:V2[3] , s:N2[3] , '' ] } -let g:airline#themes#ubaryd#palette.insert_paste = { - \ 'airline_a' : [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } - - -let g:airline#themes#ubaryd#palette.replace = copy(airline#themes#ubaryd#palette.insert) -let g:airline#themes#ubaryd#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] -let g:airline#themes#ubaryd#palette.replace_modified = g:airline#themes#ubaryd#palette.insert_modified - - -let g:airline#themes#ubaryd#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#ubaryd#palette.visual_modified = { - \ 'airline_c' : [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } - -let g:airline#themes#ubaryd#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#ubaryd#palette.inactive_modified = { - \ 'airline_c' : [ s:V1[1] , '' , s:V1[3] , '' , '' ] } - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/understated.vim b/sources_non_forked/vim-airline/autoload/airline/themes/understated.vim deleted file mode 100644 index b3e79179..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/understated.vim +++ /dev/null @@ -1,43 +0,0 @@ -let g:airline#themes#understated#palette = {} - -let s:N1 = ['#FFFFFF', '#5F87FF', 15, 69] " Outside blocks in normal mode (mode and file position) -let s:N2 = ['#AFAF87', '#5F5F5F', 144, 59] " Next blocks inside (branch and file format) -let s:N3 = ['#AFAF87', '#5F5F5F', 144, 59] " The middle block - -let g:airline#themes#understated#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#understated#palette.normal_modified = {'airline_c': ['#ffffff', '#5f005f', 144, 59, 'bold'] ,} - -let s:I1 = ['#FFFFFF', '#87AF5F', 15, 107] " Outside blocks in normal mode (mode and file position) -let s:I2 = ['#AFAF87', '#5F5F5F', 144, 59] " Next blocks inside (branch and file format) -let s:I3 = ['#AFAF87', '#5F5F5F', 144, 59] " The middle block -let g:airline#themes#understated#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#understated#palette.insert_modified = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, 'bold'] ,} -let g:airline#themes#understated#palette.insert_paste = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, ''] ,} - -let g:airline#themes#understated#palette.replace = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#understated#palette.replace.airline_a = ['#FFFFFF', '#870000', 15, 88, ''] -let g:airline#themes#understated#palette.replace_modified = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, 'bold'] ,} - -let s:V1 = ['#FFFFFF', '#AF5F00', 15, 130] -let s:V2 = ['#AFAF87', '#5F5F5F', 144, 59] -let s:V3 = ['#AFAF87', '#5F5F5F', 144, 59] -let g:airline#themes#understated#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#understated#palette.visual_modified = {'airline_c': [ '#AFAF87', '#5f005f', 144, 59, 'bold'] ,} - -let s:V1 = ['#080808', '#FFAF00', 232, 214] -let s:IA1 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] -let s:IA2 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] -let s:IA3 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] -let g:airline#themes#understated#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) -let g:airline#themes#understated#palette.inactive_modified = {'airline_c': ['#4E4E4E', '', 239, '', 'bold'] ,} - -let g:airline#themes#understated#palette.accents = {'red': ['#FF0000', '', 88, '']} - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#understated#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ ['#FFFFFF', '#1C1C1C', 15, 234, '' ], - \ ['#FFFFFF', '#262626', 15, 235, '' ], - \ ['#FFFFFF', '#303030', 15, 236, 'bold']) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/wombat.vim b/sources_non_forked/vim-airline/autoload/airline/themes/wombat.vim deleted file mode 100644 index 39fdc4c1..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/wombat.vim +++ /dev/null @@ -1,90 +0,0 @@ -" vim-airline companion theme of Wombat -" looks great with wombat256 vim colorscheme - -" Normal mode -" [ guifg, guibg, ctermfg, ctermbg, opts ] -let s:N1 = [ '#141413' , '#CAE682' , 232 , 192 ] " mode -let s:N2 = [ '#CAE682' , '#32322F' , 192 , 236 ] " info -let s:N3 = [ '#CAE682' , '#242424' , 192 , 234 ] " statusline -let s:N4 = [ '#86CD74' , 113 ] " mode modified - -" Insert mode -let s:I1 = [ '#141413' , '#FDE76E' , 232 , 227 ] -let s:I2 = [ '#FDE76E' , '#32322F' , 227 , 236 ] -let s:I3 = [ '#FDE76E' , '#242424' , 227 , 234 ] -let s:I4 = [ '#FADE3E' , 221 ] - -" Visual mode -let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 153 ] -let s:V2 = [ '#B5D3F3' , '#32322F' , 153 , 236 ] -let s:V3 = [ '#B5D3F3' , '#242424' , 153 , 234 ] -let s:V4 = [ '#7CB0E6' , 111 ] - -" Replace mode -let s:R1 = [ '#141413' , '#E5786D' , 232 , 173 ] -let s:R2 = [ '#E5786D' , '#32322F' , 173 , 236 ] -let s:R3 = [ '#E5786D' , '#242424' , 173 , 234 ] -let s:R4 = [ '#E55345' , 203 ] - -" Paste mode -let s:PA = [ '#94E42C' , 47 ] - -" Info modified -let s:IM = [ '#40403C' , 238 ] - -" Inactive mode -let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] - -let g:airline#themes#wombat#palette = {} - -let g:airline#themes#wombat#palette.accents = { - \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], - \ } - -let g:airline#themes#wombat#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#wombat#palette.normal_modified = { - \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , - \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#wombat#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) -let g:airline#themes#wombat#palette.insert_modified = { - \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , - \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#wombat#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) -let g:airline#themes#wombat#palette.visual_modified = { - \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , - \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#wombat#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) -let g:airline#themes#wombat#palette.replace_modified = { - \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , - \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } - - -let g:airline#themes#wombat#palette.insert_paste = { - \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , - \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , - \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } - - -let g:airline#themes#wombat#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) -let g:airline#themes#wombat#palette.inactive_modified = { - \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } - - -if !get(g:, 'loaded_ctrlp', 0) - finish -endif -let g:airline#themes#wombat#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , - \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , - \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) - diff --git a/sources_non_forked/vim-airline/autoload/airline/themes/zenburn.vim b/sources_non_forked/vim-airline/autoload/airline/themes/zenburn.vim deleted file mode 100644 index 9883c213..00000000 --- a/sources_non_forked/vim-airline/autoload/airline/themes/zenburn.vim +++ /dev/null @@ -1,44 +0,0 @@ -let g:airline#themes#zenburn#palette = {} - -function! airline#themes#zenburn#refresh() - let g:airline#themes#zenburn#palette.accents = { - \ 'red': airline#themes#get_highlight('Constant'), - \ } - - let s:N1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Folded', 'fg'], 'bold') - let s:N2 = airline#themes#get_highlight('Folded') - let s:N3 = airline#themes#get_highlight('NonText') - - let g:airline#themes#zenburn#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - let s:Nmod = airline#themes#get_highlight('Comment') - let g:airline#themes#zenburn#palette.normal_modified = { - \ 'airline_c': s:Nmod - \ } - - let s:I1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['String', 'fg'], 'bold') - let s:I2 = airline#themes#get_highlight2(['String', 'fg'], ['Folded', 'bg']) - let s:I3 = s:N3 - let g:airline#themes#zenburn#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#zenburn#palette.insert_modified = g:airline#themes#zenburn#palette.normal_modified - - let s:R1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Comment', 'fg'], 'bold') - let s:R2 = airline#themes#get_highlight2(['Comment', 'fg'], ['Folded', 'bg']) - let s:R3 = s:N3 - let g:airline#themes#zenburn#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let g:airline#themes#zenburn#palette.replace_modified = g:airline#themes#zenburn#palette.normal_modified - - let s:V1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Identifier', 'fg'], 'bold') - let s:V2 = airline#themes#get_highlight2(['Identifier', 'fg'], ['Folded', 'bg']) - let s:V3 = s:N3 - let g:airline#themes#zenburn#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#zenburn#palette.visual_modified = g:airline#themes#zenburn#palette.normal_modified - - let s:IA = airline#themes#get_highlight('NonText') - let g:airline#themes#zenburn#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) - let g:airline#themes#zenburn#palette.inactive_modified = { - \ 'airline_c': s:Nmod - \ } -endfunction - -call airline#themes#zenburn#refresh() - diff --git a/sources_non_forked/vim-airline/autoload/airline/util.vim b/sources_non_forked/vim-airline/autoload/airline/util.vim index 10aac5cb..65cf9068 100644 --- a/sources_non_forked/vim-airline/autoload/airline/util.vim +++ b/sources_non_forked/vim-airline/autoload/airline/util.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 call airline#init#bootstrap() diff --git a/sources_non_forked/vim-airline/doc/airline.txt b/sources_non_forked/vim-airline/doc/airline.txt index 7911a69f..79e10122 100644 --- a/sources_non_forked/vim-airline/doc/airline.txt +++ b/sources_non_forked/vim-airline/doc/airline.txt @@ -82,8 +82,12 @@ values): < * themes are automatically selected based on the matching colorscheme. this can be overridden by defining a value. > - let g:airline_theme= + let g:airline_theme='dark' < + Note: Only the dark theme is distributed with vim-airline. For more themes, + checkout the vim-airline-themes repository + (github.com/vim-airline/vim-airline-themes) + * if you want to patch the airline theme before it gets applied, you can supply the name of a function where you can modify the palette. > let g:airline_theme_patch_func = 'AirlineThemePatch' @@ -187,6 +191,7 @@ its contents. > let g:airline_symbols.paste = 'ρ' let g:airline_symbols.paste = 'Þ' let g:airline_symbols.paste = '∥' + let g:airline_symbols.notexists = '∄' let g:airline_symbols.whitespace = 'Ξ' " powerline symbols @@ -225,7 +230,8 @@ section. let g:airline_section_x (tagbar, filetype, virtualenv) let g:airline_section_y (fileencoding, fileformat) let g:airline_section_z (percentage, line number, column number) - let g:airline_section_warning (syntastic, whitespace) + let g:airline_section_error (ycm_error_count, syntastic, eclim) + let g:airline_section_warning (ycm_warning_count, whitespace) " here is an example of how you could replace the branch indicator with " the current working directory, followed by the filename. @@ -266,6 +272,8 @@ configuration values that you can use. \ 'x': 60, \ 'y': 88, \ 'z': 45, + \ 'warning': 80, + \ 'error': 80, \ } " Note: set to an empty dictionary to disable truncation. @@ -275,9 +283,13 @@ configuration values that you can use. (first array is the left side, second array is the right side). > let g:airline#extensions#default#layout = [ \ [ 'a', 'b', 'c' ], - \ [ 'x', 'y', 'z', 'warning' ] + \ [ 'x', 'y', 'z', 'error', 'warning' ] \ ] < +* configure the layout to not use %(%) grouping items in the statusline. + Try setting this to zero, if you notice bleeding color artifacts > + let airline#extensions#default#section_use_groupitems = 1 +< ------------------------------------- *airline-quickfix* The quickfix extension is a simple built-in extension which determines whether the buffer is a quickfix or location list buffer, and adjusts the @@ -310,6 +322,10 @@ vcscommand * change the text for when no branch is detected > let g:airline#extensions#branch#empty_message = '' < +* define the order in which the branches of different vcs systems will be + displayed on the statusline (currently only for fugitive and lawrencium) > + let g:airline#extensions#branch#vcs_priority = ["git", "mercurial"] +< * use vcscommand.vim if available > let g:airline#extensions#branch#use_vcscommand = 0 < @@ -413,6 +429,22 @@ eclim " the default value matches filetypes typically used for documentation " such as markdown and help files. let g:airline#extensions#wordcount#filetypes = ... + (default: markdown,rst,org,help,text) + +* defines the name of a formatter for word count will be displayed: > + " The default will try to guess LC_NUMERIC and format number accordingly + " e.g. 1,042 in English and 1.042 in German locale + let g:airline#extensions#wordcount#formatter = 'default' + + " here is how you can define a 'foo' formatter: + " create a file in the dir autoload/airline/extensions/wordcount/formatters/ + " called foo.vim + " this example needs at least Vim > 7.4.1042 + function! airline#extensions#wordcount#formatters#foo#format() + return (wordcount()['words'] == 0 ? 'NONE' : + \ wordcount()['words'] > 100 ? 'okay' : 'not enough') + endfunction + let g:airline#extensions#wordline#formatter = 'foo' < ------------------------------------- *airline-whitespace* * enable/disable detection of whitespace errors. > @@ -435,7 +467,11 @@ eclim let g:airline#extensions#whitespace#symbol = '!' < * configure which whitespace checks to enable. > - let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'long' ] + " indent: mixed indent within a line + " long: overlong lines + " trailing: trailing whitespace + " mixed-indent-file: different indentation in different lines + let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'long', 'mixed-indent-file' ] < * configure the maximum number of lines where whitespace checking is enabled. > let g:airline#extensions#whitespace#max_lines = 20000 @@ -447,6 +483,10 @@ eclim let g:airline#extensions#whitespace#trailing_format = 'trailing[%s]' let g:airline#extensions#whitespace#mixed_indent_format = 'mixed-indent[%s]' let g:airline#extensions#whitespace#long_format = 'long[%s]' + let g:airline#extensions#whitespace#mixed_indent_file_format = 'mix-indent-file[%s]' + +* configure custom trailing whitespace regexp rule > + let g:airline#extensions#whitespace#trailing_regexp = '\s$' < ------------------------------------- *airline-tabline* * enable/disable enhanced tabline. > @@ -461,7 +501,7 @@ eclim * configure filename match rules to exclude from the tabline. > let g:airline#extensions#tabline#excludes = [] -* enable/disable display preview window buffer in the tabline. +* enable/disable display preview window buffer in the tabline. > let g:airline#extensions#tabline#exclude_preview = 1 * configure how numbers are displayed in tab mode. > @@ -472,14 +512,18 @@ eclim * enable/disable displaying tab number in tabs mode. > let g:airline#extensions#tabline#show_tab_nr = 1 -* enable/disable displaying tab type (far right) +* enable/disable displaying tab type (far right) > let g:airline#extensions#tabline#show_tab_type = 1 * enable/disable displaying index of the buffer. -When enabled, numbers will be displayed in the tabline and mappings will be -exposed to allow you to select a buffer directly. Up to 9 mappings will be -exposed. + Note: If you're using ctrlspace the tabline shows your tabs on the right and + buffer on the left. Also none of the tabline switches is currently + supported! + + When enabled, numbers will be displayed in the tabline and mappings will be + exposed to allow you to select a buffer directly. Up to 9 mappings will be + exposed. > let g:airline#extensions#tabline#buffer_idx_mode = 1 nmap 1 AirlineSelectTab1 @@ -491,14 +535,23 @@ exposed. nmap 7 AirlineSelectTab7 nmap 8 AirlineSelectTab8 nmap 9 AirlineSelectTab9 + nmap - AirlineSelectPrevTab + nmap + AirlineSelectNextTab Note: Mappings will be ignored within a NERDTree buffer. + Note: In buffer_idx_mode these mappings won't change the + current tab, but switch to the buffer visible in that tab. + Use |gt| for switching tabs. + In tabmode, those mappings will switch to the specified tab. + * defines the name of a formatter for how buffer names are displayed. > let g:airline#extensions#tabline#formatter = 'default' " here is how you can define a 'foo' formatter: - function! airline#extensions#tabline#foo#format(bufnr, buffers) + " create a file in the dir autoload/airline/extensions/tabline/formatters/ + " called foo.vim + function! airline#extensions#tabline#formatters#foo#format(bufnr, buffers) return fnamemodify(bufname(a:bufnr), ':t') endfunction let g:airline#extensions#tabline#formatter = 'foo' @@ -550,12 +603,17 @@ exposed. let g:airline#extensions#tabline#right_sep = '' let g:airline#extensions#tabline#right_alt_sep = '' -* configure whether close button should be shown +* configure whether close button should be shown: > let g:airline#extensions#tabline#show_close_button = 1 -* configure symbol used to represent close button +* configure symbol used to represent close button > let g:airline#extensions#tabline#close_symbol = 'X' +* configure pattern to be ignored on BufAdd autocommand > + " fixes unneccessary redraw, when e.g. opening Gundo window + let airline#extensions#tabline#ignore_bufadd_pat = + \ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree' + < Note: Enabling this extension will modify 'showtabline' and 'guioptions'. @@ -628,6 +686,26 @@ vim-ctrlspace * enable/disable vim-ctrlspace integration > let g:airline#extensions#ctrlspace#enabled = 1 + + To make the vim-ctrlspace integration work you will need to make the + ctrlspace statusline function call the correct airline function. Therefore + add the following line into your .vimrc: + + let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()" +< +------------------------------------- *airline-ycm* +YouCompleteMe + +Shows number of errors and warnings in the current file detected by YCM. + +* enable/disable YCM integration > + let g:airline#extensions#ycm#enabled = 1 + +* set error count prefix > + let g:airline#extensions#ycm#error_symbol = 'E:' + +* set warning count prefix > + let g:airline#extensions#ycm#warning_symbol = 'W:' < ============================================================================== ADVANCED CUSTOMIZATION *airline-advanced-customization* @@ -653,6 +731,10 @@ greater than a minimum width. > Parts can be configured to be visible conditionally. > call airline#parts#define_condition('foo', 'getcwd() =~ "work_dir"') < + +Now add part "foo" to section section airline_section_y: > + let g:airline_section_y = airline#section#create_right(['ffenc','foo']) +< Note: Part definitions are combinative; e.g. the two examples above modify the same `foo` part. @@ -664,7 +746,7 @@ Before is a list of parts that are predefined by vim-airline. * `mode` displays the current mode * `iminsert` displays the current insert method * `paste` displays the paste indicator -* crypt displays the crypted indicator +* `crypt` displays the crypted indicator * `filetype` displays the file type * `readonly` displays the read only indicator * `file` displays the filename and modified indicator @@ -832,9 +914,12 @@ VimL syntax to write a theme, but if you've written in any programming language before it will be easy to pick up. The |dark.vim| theme fully documents this procedure and will guide you through -the process. The |jellybeans.vim| theme is another example of how to write a -theme, but instead of manually declaring colors, it extracts the values from -highlight groups. +the process. + +For other examples, you can visit the official themes repository at +. It also includes +examples such as |jellybeans.vim| which define colors by extracting highlight +groups from the underlying colorscheme. ============================================================================== TROUBLESHOOTING *airline-troubleshooting* @@ -866,9 +951,14 @@ A. Certain themes are derived from the active colorscheme by extracting colors their intended matching colorschemes, but will be hit or miss when loaded with other colorschemes. +Q. Themes are missing +A. Themes have been extracted into the vim-airlines-themes repository. Simply + clone https://github.com/vim-airline/vim-airline-themes and everything + should work again. + Solutions to other common problems can be found in the Wiki: - + ============================================================================== CONTRIBUTIONS *airline-contributions* @@ -878,7 +968,6 @@ Contributions and pull requests are welcome. ============================================================================== LICENSE *airline-license* -MIT License. Copyright © 2013-2015 Bailey Ling. - +MIT License. Copyright © 2013-2016 Bailey Ling. vim:tw=78:ts=8:ft=help:norl: diff --git a/sources_non_forked/vim-airline/plugin/airline.vim b/sources_non_forked/vim-airline/plugin/airline.vim index 847eaed1..fc8e975b 100644 --- a/sources_non_forked/vim-airline/plugin/airline.vim +++ b/sources_non_forked/vim-airline/plugin/airline.vim @@ -1,4 +1,4 @@ -" MIT License. Copyright (c) 2013-2015 Bailey Ling. +" MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 if &cp || v:version < 702 || (exists('g:loaded_airline') && g:loaded_airline) @@ -7,7 +7,6 @@ endif let g:loaded_airline = 1 let s:airline_initialized = 0 -let s:airline_theme_defined = 0 function! s:init() if s:airline_initialized return @@ -17,17 +16,25 @@ function! s:init() call airline#extensions#load() call airline#init#sections() - let s:airline_theme_defined = exists('g:airline_theme') - if s:airline_theme_defined || !airline#switch_matching_theme() - let g:airline_theme = get(g:, 'airline_theme', 'dark') - call airline#switch_theme(g:airline_theme) + let s:theme_in_vimrc = exists('g:airline_theme') + if s:theme_in_vimrc + try + let palette = g:airline#themes#{g:airline_theme}#palette + catch + echom 'Could not resolve airline theme "' . g:airline_theme . '". Themes have been migrated to github.com/vim-airline/vim-airline-themes.' + let g:airline_theme = 'dark' + endtry + silent call airline#switch_theme(g:airline_theme) + else + let g:airline_theme = 'dark' + silent call s:on_colorscheme_changed() endif silent doautocmd User AirlineAfterInit endfunction function! s:on_window_changed() - if pumvisible() + if pumvisible() && (!&previewwindow || g:airline_exclude_preview) return endif call s:init() @@ -36,10 +43,9 @@ endfunction function! s:on_colorscheme_changed() call s:init() - if !s:airline_theme_defined - if airline#switch_matching_theme() - return - endif + let g:airline_gui_mode = airline#init#gui_mode() + if !s:theme_in_vimrc + call airline#switch_matching_theme() endif " couldn't find a match, or theme was defined, just refresh @@ -72,10 +78,11 @@ function! s:airline_toggle() \ | call on_window_changed() autocmd CmdwinLeave * call airline#remove_statusline_func('airline#cmdwinenter') - autocmd ColorScheme * call on_colorscheme_changed() + autocmd GUIEnter,ColorScheme * call on_colorscheme_changed() autocmd VimEnter,WinEnter,BufWinEnter,FileType,BufUnload,VimResized * \ call on_window_changed() + autocmd TabEnter * :unlet! w:airline_lastmode autocmd BufWritePost */autoload/airline/themes/*.vim \ exec 'source '.split(globpath(&rtp, 'autoload/airline/themes/'.g:airline_theme.'.vim', 1), "\n")[0] \ | call airline#load_theme() @@ -102,13 +109,16 @@ function! s:airline_theme(...) endif endfunction +function! s:airline_refresh() + silent doautocmd User AirlineBeforeRefresh + call airline#load_theme() + call airline#update_statusline() +endfunction + command! -bar -nargs=? -complete=customlist,get_airline_themes AirlineTheme call airline_theme() command! -bar AirlineToggleWhitespace call airline#extensions#whitespace#toggle() command! -bar AirlineToggle call s:airline_toggle() -command! -bar AirlineRefresh call airline#load_theme() | call airline#update_statusline() +command! -bar AirlineRefresh call s:airline_refresh() call airline#init#bootstrap() call s:airline_toggle() - -autocmd VimEnter * call airline#deprecation#check() - diff --git a/sources_non_forked/vim-airline/t/commands.vim b/sources_non_forked/vim-airline/t/commands.vim index 4e23d5dd..0f4bcb62 100644 --- a/sources_non_forked/vim-airline/t/commands.vim +++ b/sources_non_forked/vim-airline/t/commands.vim @@ -22,6 +22,10 @@ describe 'commands' Expect g:airline_theme == 'simple' execute 'AirlineTheme dark' Expect g:airline_theme == 'dark' + execute 'AirlineTheme doesnotexist' + Expect g:airline_theme == 'dark' + colors molokai + Expect g:airline_theme == 'molokai' end it 'should have a refresh command' diff --git a/sources_non_forked/vim-airline/t/themes.vim b/sources_non_forked/vim-airline/t/themes.vim index d735229e..5a13993e 100644 --- a/sources_non_forked/vim-airline/t/themes.vim +++ b/sources_non_forked/vim-airline/t/themes.vim @@ -28,10 +28,10 @@ describe 'themes' it 'should pass args through correctly' let hl = airline#themes#get_highlight('Foo', 'bold', 'italic') - Expect hl == ['', '', 0, 1, 'bold,italic'] + Expect hl == ['', '', 'NONE', 'NONE', 'bold,italic'] let hl = airline#themes#get_highlight2(['Foo','bg'], ['Foo','fg'], 'italic', 'bold') - Expect hl == ['', '', 1, 0, 'italic,bold'] + Expect hl == ['', '', 'NONE', 'NONE', 'italic,bold'] end it 'should generate color map with mirroring' diff --git a/sources_non_forked/vim-commentary/doc/commentary.txt b/sources_non_forked/vim-commentary/doc/commentary.txt index d6deed05..b0485694 100644 --- a/sources_non_forked/vim-commentary/doc/commentary.txt +++ b/sources_non_forked/vim-commentary/doc/commentary.txt @@ -6,9 +6,6 @@ License: Same terms as Vim itself (see |license|) Comment stuff out. Then uncomment it later. Relies on 'commentstring' to be correctly set, or uses b:commentary_format if it is set. -The gc mappings are preferred, while the \\ mappings are provided for -backwards compatibility. - *gc* gc{motion} Comment or uncomment lines that {motion} moves over. diff --git a/sources_non_forked/vim-commentary/plugin/commentary.vim b/sources_non_forked/vim-commentary/plugin/commentary.vim index 2fc7db7e..3aedd8d5 100644 --- a/sources_non_forked/vim-commentary/plugin/commentary.vim +++ b/sources_non_forked/vim-commentary/plugin/commentary.vim @@ -1,6 +1,6 @@ " commentary.vim - Comment stuff out " Maintainer: Tim Pope -" Version: 1.2 +" Version: 1.3 " GetLatestVimScripts: 3695 1 :AutoInstall: commentary.vim if exists("g:loaded_commentary") || &cp || v:version < 700 @@ -100,11 +100,4 @@ if !hasmapto('Commentary') || maparg('gc','n') ==# '' nmap gcu CommentaryCommentary endif -if maparg('\\','n') ==# '' && maparg('\','n') ==# '' && get(g:, 'commentary_map_backslash', 1) - xmap \\ Commentary:echomsg '\\ is deprecated. Use gc' - nmap \\ :echomsg '\\ is deprecated. Use gc'Commentary - nmap \\\ CommentaryLine:echomsg '\\ is deprecated. Use gc' - nmap \\u CommentaryUndo:echomsg '\\ is deprecated. Use gc' -endif - " vim:set et sw=2: diff --git a/sources_non_forked/vim-fugitive/plugin/fugitive.vim b/sources_non_forked/vim-fugitive/plugin/fugitive.vim index 046bd174..0886b458 100644 --- a/sources_non_forked/vim-fugitive/plugin/fugitive.vim +++ b/sources_non_forked/vim-fugitive/plugin/fugitive.vim @@ -2180,7 +2180,7 @@ call s:command("-bar -bang -range=0 -nargs=* -complete=customlist,s:EditComplete function! s:Browse(bang,line1,count,...) abort try - let validremote = '\.\|\.\=/.*\|[[:alnum:]_-]\+\%(://.\{-\}\)' + let validremote = '\.\|\.\=/.*\|[[:alnum:]_-]\+\%(://.\{-\}\)\=' if a:0 let remote = matchstr(join(a:000, ' '),'@\zs\%('.validremote.'\)$') let rev = substitute(join(a:000, ' '),'@\%('.validremote.'\)$','','') @@ -2547,6 +2547,8 @@ function! s:BufReadIndex() abort nnoremap dv :execute StageDiff('Gvdiff') nnoremap p :execute StagePatch(line('.'),line('.')+v:count1-1) xnoremap p :execute StagePatch(line("'<"),line("'>")) + nnoremap P :execute StagePatch(line('.'),line('.')+v:count1-1) + xnoremap P :execute StagePatch(line("'<"),line("'>")) nnoremap q :if bufnr('$') == 1quitelsebdeleteendif nnoremap r :edit nnoremap R :edit @@ -2980,7 +2982,11 @@ function! fugitive#cfile() abort let pre = '' let results = s:cfile() if empty(results) - return expand('') + let cfile = expand('') + if &includeexpr =~# '\' + sandbox let cfile = eval(substitute(&includeexpr, '\C\', '\=string(cfile)', 'g')) + endif + return cfile elseif len(results) > 1 let pre = '+' . join(map(results[1:-1], 'escape(v:val, " ")'), '\|') . ' ' endif diff --git a/sources_non_forked/vim-go/README.md b/sources_non_forked/vim-go/README.md index e75c3271..1394c393 100644 --- a/sources_non_forked/vim-go/README.md +++ b/sources_non_forked/vim-go/README.md @@ -39,10 +39,15 @@ disabled/enabled easily. * Share your current code to [play.golang.org](http://play.golang.org) with `:GoPlay` * On-the-fly type information about the word under the cursor. Plug it into your custom vim function. +* Go asm formatting on save * Tagbar support to show tags of the source code in a sidebar with `gotags` * Custom vim text objects such as `a function` or `inner function` -* All commands support collecting and displaying errors in Vim's location list. +* A async launcher for the go command is implemented for Neovim, fully async + building and testing (beta). +* Integrated with the Neovim terminal, launch `:GoRun` and other go commands + in their own new terminal. (beta) +* Alternate between implementation and test code with `:GoAlternate` ## Install @@ -73,15 +78,18 @@ installed binaries. * Autocompletion is enabled by default via ``. To get real-time completion (completion by type) install: -[YCM](https://github.com/Valloric/YouCompleteMe) or -[neocomplete](https://github.com/Shougo/neocomplete.vim). +[neocomplete](https://github.com/Shougo/neocomplete.vim) for Vim or +[deoplete](https://github.com/Shougo/deoplete.nvim) and +[deoplete-go](https://github.com/zchee/deoplete-go) for NeoVim * To display source code tag information on a sidebar install [tagbar](https://github.com/majutsushi/tagbar). * For snippet features install: -[ultisnips](https://github.com/SirVer/ultisnips) or -[neosnippet](https://github.com/Shougo/neosnippet.vim). -* Screenshot color scheme is a slightly modified molokai: [fatih/molokai](https://github.com/fatih/molokai). -* For a better documentation viewer checkout: [go-explorer](https://github.com/garyburd/go-explorer). +[neosnippet](https://github.com/Shougo/neosnippet.vim) or +[ultisnips](https://github.com/SirVer/ultisnips). +* Screenshot color scheme is a slightly modified molokai: + [fatih/molokai](https://github.com/fatih/molokai). +* For a better documentation viewer checkout: + [go-explorer](https://github.com/garyburd/go-explorer). ## Usage @@ -99,9 +107,9 @@ vim-go has several `` mappings which can be used to create custom mappings. Below are some examples you might find useful: Run commands such as `go run` for the current file with `r` or `go -build` and `go test` for the current package with `b` and `t` respectively. -Display beautifully annotated source code to see which functions are covered -with `c`. +build` and `go test` for the current package with `b` and `t` +respectively. Display beautifully annotated source code to see which functions +are covered with `c`. ```vim au FileType go nmap r (go-run) @@ -159,7 +167,8 @@ recommendations, you are free to create more advanced mappings or functions based on `:he go-commands`. ## Settings -Below are some settings you might find useful. For the full list see `:he go-settings`. +Below are some settings you might find useful. For the full list see `:he +go-settings`. By default syntax-highlighting for Functions, Methods and Structs is disabled. To change it: @@ -167,6 +176,7 @@ To change it: let g:go_highlight_functions = 1 let g:go_highlight_methods = 1 let g:go_highlight_structs = 1 +let g:go_highlight_interfaces = 1 let g:go_highlight_operators = 1 let g:go_highlight_build_constraints = 1 ``` @@ -203,23 +213,39 @@ let g:go_bin_path = expand("~/.gotools") let g:go_bin_path = "/home/fatih/.mypath" "or give absolute path ``` -### Location list navigation +### Using with Neovim (beta) -All commands support collecting and displaying errors in Vim's location - list. +Note: Neovim currently is not a first class citizen for vim-go. You are free +to open bugs but I'm not going to look at them. Even though I'm using Neovim +myself, Neovim itself is still alpha. So vim-go might not work well as good as +in Vim. I'm happy to accept pull requests or very detailed bug reports. -Quickly navigate through these location lists with `:lne` for next error and `:lp` -for previous. You can also bind these to keys, for example: + +Run `:GoRun` in a new tab, horizontal split or vertical split terminal ```vim -map :lne -map :lp +au FileType go nmap rt (go-run-tab) +au FileType go nmap rs (go-run-split) +au FileType go nmap rv (go-run-vertical) ``` +By default new terminals are opened in a vertical split. To change it + +```vim +let g:go_term_mode = "split" +``` + +By default the testing commands run asynchronously in the background and +display results with `go#jobcontrol#Statusline()`. To make them run in a new +terminal + +```vim +let g:go_term_enabled = 1 +``` ### Using with Syntastic -Sometimes when using both `vim-go` and `syntastic` Vim will start lagging while saving and opening -files. The following fixes this: +Sometimes when using both `vim-go` and `syntastic` Vim will start lagging while +saving and opening files. The following fixes this: ```vim let g:syntastic_go_checkers = ['golint', 'govet', 'errcheck'] @@ -228,13 +254,17 @@ let g:syntastic_mode_map = { 'mode': 'active', 'passive_filetypes': ['go'] } ## More info -Check out the [Wiki](https://github.com/fatih/vim-go/wiki) page for more information. It includes [Screencasts](https://github.com/fatih/vim-go/wiki/Screencasts), an [FAQ -section](https://github.com/fatih/vim-go/wiki/FAQ-Troubleshooting), and many other [various pieces](https://github.com/fatih/vim-go/wiki) of information. +Check out the [Wiki](https://github.com/fatih/vim-go/wiki) page for more +information. It includes +[Screencasts](https://github.com/fatih/vim-go/wiki/Screencasts), an [FAQ +section](https://github.com/fatih/vim-go/wiki/FAQ-Troubleshooting), and many +other [various pieces](https://github.com/fatih/vim-go/wiki) of information. ## Credits * Go Authors for official vim plugins -* Gocode, Godef, Golint, Oracle, Goimports, Gotags, Errcheck projects and authors of those projects. +* Gocode, Godef, Golint, Oracle, Goimports, Gotags, Errcheck projects and + authors of those projects. * Other vim-plugins, thanks for inspiration (vim-golang, go.vim, vim-gocode, vim-godef) * [Contributors](https://github.com/fatih/vim-go/graphs/contributors) of vim-go diff --git a/sources_non_forked/vim-go/autoload/go/cmd.vim b/sources_non_forked/vim-go/autoload/go/cmd.vim index 1b6f9f14..d99bc01e 100644 --- a/sources_non_forked/vim-go/autoload/go/cmd.vim +++ b/sources_non_forked/vim-go/autoload/go/cmd.vim @@ -9,7 +9,7 @@ function! go#cmd#autowrite() endfunction -" Build buils the source code without producting any output binary. We live in +" Build builds the source code without producting any output binary. We live in " an editor so the best is to build it to catch errors and fix them. By " default it tries to call simply 'go build', but it first tries to get all " dependent files for the current folder and passes it to go build. @@ -27,6 +27,7 @@ function! go#cmd#Build(bang, ...) " if we have nvim, call it asynchronously and return early ;) if has('nvim') + call go#util#EchoProgress("building dispatched ...") call go#jobcontrol#Spawn(a:bang, "build", args) return endif @@ -36,29 +37,32 @@ function! go#cmd#Build(bang, ...) let default_makeprg = &makeprg let &makeprg = "go " . join(args, ' ') + let l:listtype = go#list#Type("quickfix") " execute make inside the source folder so we can parse the errors " correctly let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' let dir = getcwd() try - execute cd . fnameescape(expand("%:p:h")) - if g:go_dispatch_enabled && exists(':Make') == 2 - call go#util#EchoProgress("building dispatched ...") - silent! exe 'Make' - else - silent! exe 'lmake!' - endif - redraw! + execute cd . fnameescape(expand("%:p:h")) + if g:go_dispatch_enabled && exists(':Make') == 2 + call go#util#EchoProgress("building dispatched ...") + silent! exe 'Make' + elseif l:listtype == "locationlist" + silent! exe 'lmake!' + else + silent! exe 'make!' + endif + redraw! finally - execute cd . fnameescape(dir) + execute cd . fnameescape(dir) endtry - let errors = go#list#Get() - call go#list#Window(len(errors)) + let errors = go#list#Get(l:listtype) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) if !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif else call go#util#EchoSuccess("[build] SUCCESS") @@ -108,19 +112,23 @@ function! go#cmd#Run(bang, ...) let &makeprg = "go run " . go#util#Shelljoin(map(copy(a:000), "expand(v:val)"), 1) endif + let l:listtype = go#list#Type("quickfix") + if g:go_dispatch_enabled && exists(':Make') == 2 silent! exe 'Make' + elseif l:listtype == "locationlist" + silent! exe 'lmake!' else - exe 'lmake!' + silent! exe 'make!' endif - let items = go#list#Get() + let items = go#list#Get(l:listtype) let errors = go#tool#FilterValids(items) - call go#list#Populate(errors) - call go#list#Window(len(errors)) + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) && !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif let $GOPATH = old_gopath @@ -128,26 +136,46 @@ function! go#cmd#Run(bang, ...) endfunction " Install installs the package by simple calling 'go install'. If any argument -" is given(which are passed directly to 'go instal') it tries to install those +" is given(which are passed directly to 'go install') it tries to install those " packages. Errors are populated in the location window. function! go#cmd#Install(bang, ...) - let command = 'go install ' . go#util#Shelljoin(a:000) - call go#cmd#autowrite() - let out = go#tool#ExecuteInDir(command) - if v:shell_error - let errors = go#tool#ParseErrors(split(out, '\n')) - call go#list#Populate(errors) - call go#list#Window(len(errors)) - if !empty(errors) && !a:bang - call go#list#JumpToFirst() + let default_makeprg = &makeprg + + " :make expands '%' and '#' wildcards, so they must also be escaped + let goargs = go#util#Shelljoin(map(copy(a:000), "expand(v:val)"), 1) + let &makeprg = "go install " . goargs + + let l:listtype = go#list#Type("quickfix") + " execute make inside the source folder so we can parse the errors + " correctly + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd . fnameescape(expand("%:p:h")) + if g:go_dispatch_enabled && exists(':Make') == 2 + call go#util#EchoProgress("building dispatched ...") + silent! exe 'Make' + elseif l:listtype == "locationlist" + silent! exe 'lmake!' + else + silent! exe 'make!' + endif + redraw! + finally + execute cd . fnameescape(dir) + endtry + + let errors = go#list#Get(l:listtype) + call go#list#Window(l:listtype, len(errors)) + if !empty(errors) + if !a:bang + call go#list#JumpToFirst(l:listtype) endif - return else - call go#list#Clean() - call go#list#Window() + redraws! | echon "vim-go: " | echohl Function | echon "installed to ". $GOPATH | echohl None endif - echon "vim-go: " | echohl Function | echon "installed to ". $GOPATH | echohl None + let &makeprg = default_makeprg endfunction " Test runs `go test` in the current directory. If compile is true, it'll @@ -166,14 +194,19 @@ function! go#cmd#Test(bang, compile, ...) " expand all wildcards(i.e: '%' to the current file name) let goargs = map(copy(a:000), "expand(v:val)") - " escape all shell arguments before we pass it to test - call extend(args, go#util#Shelllist(goargs, 1)) + call extend(args, goargs, 1) else " only add this if no custom flags are passed let timeout = get(g:, 'go_test_timeout', '10s') call add(args, printf("-timeout=%s", timeout)) endif + if a:compile + echon "vim-go: " | echohl Identifier | echon "compiling tests ..." | echohl None + else + echon "vim-go: " | echohl Identifier | echon "testing ..." | echohl None + endif + if has('nvim') if get(g:, 'go_term_enabled', 0) call go#term#new(a:bang, ["go"] + args) @@ -183,34 +216,38 @@ function! go#cmd#Test(bang, compile, ...) return endif - if a:compile - echon "vim-go: " | echohl Identifier | echon "compiling tests ..." | echohl None - else - echon "vim-go: " | echohl Identifier | echon "testing ..." | echohl None - endif - call go#cmd#autowrite() redraw let command = "go " . join(args, ' ') let out = go#tool#ExecuteInDir(command) - if v:shell_error - let errors = go#tool#ParseErrors(split(out, '\n')) - let errors = go#tool#FilterValids(errors) - call go#list#Populate(errors) - call go#list#Window(len(errors)) + let l:listtype = "quickfix" + + if v:shell_error + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd fnameescape(expand("%:p:h")) + let errors = go#tool#ParseErrors(split(out, '\n')) + let errors = go#tool#FilterValids(errors) + finally + execute cd . fnameescape(dir) + endtry + + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) && !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) elseif empty(errors) " failed to parse errors, output the original content call go#util#EchoError(out) endif echon "vim-go: " | echohl ErrorMsg | echon "[test] FAIL" | echohl None else - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) if a:compile echon "vim-go: " | echohl Function | echon "[test] SUCCESS" | echohl None @@ -256,19 +293,21 @@ function! go#cmd#Coverage(bang, ...) let command = "go test -coverprofile=" . l:tmpname . ' ' . go#util#Shelljoin(a:000) + + let l:listtype = "quickfix" call go#cmd#autowrite() let out = go#tool#ExecuteInDir(command) if v:shell_error let errors = go#tool#ParseErrors(split(out, '\n')) - call go#list#Populate(errors) - call go#list#Window(len(errors)) + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) && !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif else " clear previous location list - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) let openHTML = 'go tool cover -html='.l:tmpname call go#tool#ExecuteInDir(openHTML) @@ -293,19 +332,23 @@ function! go#cmd#Generate(bang, ...) let &makeprg = "go generate " . goargs . ' ' . gofiles endif + let l:listtype = go#list#Type("quickfix") + echon "vim-go: " | echohl Identifier | echon "generating ..."| echohl None if g:go_dispatch_enabled && exists(':Make') == 2 silent! exe 'Make' - else + elseif l:listtype == "locationlist" silent! exe 'lmake!' + else + silent! exe 'make!' endif redraw! - let errors = go#list#Get() - call go#list#Window(len(errors)) + let errors = go#list#Get(l:listtype) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) if !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif else redraws! | echon "vim-go: " | echohl Function | echon "[generate] SUCCESS"| echohl None diff --git a/sources_non_forked/vim-go/autoload/go/complete.vim b/sources_non_forked/vim-go/autoload/go/complete.vim index 7f405d9d..d295257a 100644 --- a/sources_non_forked/vim-go/autoload/go/complete.vim +++ b/sources_non_forked/vim-go/autoload/go/complete.vim @@ -87,7 +87,7 @@ fu! s:gocodeCurrentBufferOpt(filename) return '-in=' . a:filename endf -fu! s:gocodeCursor() +fu! go#complete#gocodeCursor() if &encoding != 'utf-8' let sep = &l:fileformat == 'dos' ? "\r\n" : "\n" let c = col('.') @@ -95,6 +95,7 @@ fu! s:gocodeCursor() let buf .= c == 1 ? "" : getline('.')[:c-2] return printf('%d', len(iconv(buf, &encoding, "utf-8"))) endif + return printf('%d', line2byte(line('.')) + (col('.')-2)) endf @@ -102,16 +103,16 @@ fu! s:gocodeAutocomplete() let filename = s:gocodeCurrentBuffer() let result = s:gocodeCommand('autocomplete', \ [s:gocodeCurrentBufferOpt(filename), '-f=vim'], - \ [expand('%:p'), s:gocodeCursor()]) + \ [expand('%:p'), go#complete#gocodeCursor()]) call delete(filename) return result endf -function! go#complete#GetInfo() +function! go#complete#GetInfoFromOffset(offset) let filename = s:gocodeCurrentBuffer() let result = s:gocodeCommand('autocomplete', \ [s:gocodeCurrentBufferOpt(filename), '-f=godit'], - \ [expand('%:p'), s:gocodeCursor()]) + \ [expand('%:p'), a:offset]) call delete(filename) " first line is: Charcount,,NumberOfCandidates, i.e: 8,,1 @@ -147,6 +148,11 @@ function! go#complete#GetInfo() return "" endfunction +function! go#complete#GetInfo() + let offset = go#complete#gocodeCursor() + return go#complete#GetInfoFromOffset(offset) +endfunction + function! go#complete#Info() let result = go#complete#GetInfo() if !empty(result) diff --git a/sources_non_forked/vim-go/autoload/go/def.vim b/sources_non_forked/vim-go/autoload/go/def.vim index 6b1c7168..ae9bf11e 100644 --- a/sources_non_forked/vim-go/autoload/go/def.vim +++ b/sources_non_forked/vim-go/autoload/go/def.vim @@ -2,6 +2,15 @@ if !exists("g:go_godef_bin") let g:go_godef_bin = "godef" endif +if go#vimproc#has_vimproc() + let s:vim_system = get(g:, 'gocomplete#system_function', 'vimproc#system2') +else + let s:vim_system = get(g:, 'gocomplete#system_function', 'system') +endif + +fu! s:system(str, ...) + return call(s:vim_system, [a:str] + a:000) +endf " modified and improved version of vim-godef function! go#def#Jump(...) @@ -21,10 +30,11 @@ function! go#def#Jump(...) let old_gopath = $GOPATH let $GOPATH = go#path#Detect() - let command = bin_path . " -f=" . shellescape(expand("%:p")) . " -i " . shellescape(arg) + let fname = fnamemodify(expand("%"), ':p:gs?\\?/?') + let command = bin_path . " -f=" . shellescape(fname) . " -i " . shellescape(arg) " get output of godef - let out=system(command, join(getbufline(bufnr('%'), 1, '$'), go#util#LineEnding())) + let out = s:system(command, join(getbufline(bufnr('%'), 1, '$'), go#util#LineEnding())) " jump to it call s:godefJump(out, "") @@ -43,10 +53,11 @@ function! go#def#JumpMode(mode) let old_gopath = $GOPATH let $GOPATH = go#path#Detect() - let command = bin_path . " -f=" . shellescape(expand("%:p")) . " -i " . shellescape(arg) + let fname = fnamemodify(expand("%"), ':p:gs?\\?/?') + let command = bin_path . " -f=" . shellescape(fname) . " -i " . shellescape(arg) " get output of godef - let out=system(command, join(getbufline(bufnr('%'), 1, '$'), go#util#LineEnding())) + let out = s:system(command, join(getbufline(bufnr('%'), 1, '$'), go#util#LineEnding())) call s:godefJump(out, a:mode) let $GOPATH = old_gopath @@ -74,7 +85,7 @@ function! s:godefJump(out, mode) let &errorformat = "%f:%l:%c" if a:out =~ 'godef: ' - let out=substitute(a:out, go#util#LineEnding() . '$', '', '') + let out = substitute(a:out, go#util#LineEnding() . '$', '', '') echom out else let parts = split(a:out, ':') diff --git a/sources_non_forked/vim-go/autoload/go/fmt.vim b/sources_non_forked/vim-go/autoload/go/fmt.vim index 9ef9a2eb..6d474b31 100644 --- a/sources_non_forked/vim-go/autoload/go/fmt.vim +++ b/sources_non_forked/vim-go/autoload/go/fmt.vim @@ -43,8 +43,6 @@ if !exists("g:go_fmt_experimental") let g:go_fmt_experimental = 0 endif -let s:got_fmt_error = 0 - " we have those problems : " http://stackoverflow.com/questions/12741977/prevent-vim-from-updating-its-undo-tree " http://stackoverflow.com/questions/18532692/golang-formatter-and-vim-how-to-destroy-history-record?rq=1 @@ -54,8 +52,13 @@ let s:got_fmt_error = 0 " this and have VimL experience, please look at the function for " improvements, patches are welcome :) function! go#fmt#Format(withGoimport) - " save cursor position and many other things - let l:curw=winsaveview() + " save cursor position, folds and many other things + let l:curw = {} + try + mkview! + catch + let l:curw=winsaveview() + endtry " Write current unsaved buffer to a temp file let l:tmpname = tempname() @@ -105,6 +108,7 @@ function! go#fmt#Format(withGoimport) let $GOPATH = old_gopath endif + let l:listtype = "locationlist" "if there is no error on the temp file replace the output with the current "file (if this fails, we can always check the outputs first line with: "splitted =~ 'package \w\+') @@ -119,13 +123,13 @@ function! go#fmt#Format(withGoimport) let &fileformat = old_fileformat let &syntax = &syntax - " clean up previous location list, but only if it's due fmt - if s:got_fmt_error - let s:got_fmt_error = 0 - call go#list#Clean() - call go#list#Window() + " clean up previous location list, but only if it's due to fmt + if exists('b:got_fmt_error') && b:got_fmt_error + let b:got_fmt_error = 0 + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) endif - elseif g:go_fmt_fail_silently == 0 + elseif g:go_fmt_fail_silently == 0 let splitted = split(out, '\n') "otherwise get the errors and put them to location list let errors = [] @@ -142,12 +146,12 @@ function! go#fmt#Format(withGoimport) % | " Couldn't detect gofmt error format, output errors endif if !empty(errors) - call go#list#Populate(errors) + call go#list#Populate(l:listtype, errors) echohl Error | echomsg "Gofmt returned error" | echohl None endif - let s:got_fmt_error = 1 - call go#list#Window(len(errors)) + let b:got_fmt_error = 1 + call go#list#Window(l:listtype, len(errors)) " We didn't use the temp file, so clean up call delete(l:tmpname) @@ -159,8 +163,12 @@ function! go#fmt#Format(withGoimport) call delete(tmpundofile) endif - " restore our cursor/windows positions - call winrestview(l:curw) + " restore our cursor/windows positions, folds, etc.. + if empty(l:curw) + silent! loadview + else + call winrestview(l:curw) + endif endfunction diff --git a/sources_non_forked/vim-go/autoload/go/jobcontrol.vim b/sources_non_forked/vim-go/autoload/go/jobcontrol.vim index 3dedd5c8..777b054a 100644 --- a/sources_non_forked/vim-go/autoload/go/jobcontrol.vim +++ b/sources_non_forked/vim-go/autoload/go/jobcontrol.vim @@ -96,14 +96,16 @@ endfunction function! s:on_exit(job_id, exit_status) let std_combined = self.stderr + self.stdout if a:exit_status == 0 - call go#list#Clean() - call go#list#Window() + call go#list#Clean(0) + call go#list#Window(0) let self.state = "SUCCESS" + call go#util#EchoSuccess("SUCCESS") return endif let self.state = "FAILED" + call go#util#EchoError("FAILED") let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' let dir = getcwd() @@ -123,10 +125,11 @@ function! s:on_exit(job_id, exit_status) " if we are still in the same windows show the list if self.winnr == winnr() - call go#list#Populate(errors) - call go#list#Window(len(errors)) + let l:listtype = "locationlist" + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) && !self.bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif endif endfunction diff --git a/sources_non_forked/vim-go/autoload/go/lint.vim b/sources_non_forked/vim-go/autoload/go/lint.vim index 96765764..91247ad1 100644 --- a/sources_non_forked/vim-go/autoload/go/lint.vim +++ b/sources_non_forked/vim-go/autoload/go/lint.vim @@ -63,10 +63,11 @@ function! go#lint#Gometa(autosave, ...) abort let out = go#tool#ExecuteInDir(meta_command) + let l:listtype = "quickfix" if v:shell_error == 0 redraw | echo - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) echon "vim-go: " | echohl Function | echon "[metalinter] PASS" | echohl None else " GoMetaLinter can output one of the two, so we look for both: @@ -76,13 +77,13 @@ function! go#lint#Gometa(autosave, ...) abort let errformat = "%f:%l:%c:%t%*[^:]:\ %m,%f:%l::%t%*[^:]:\ %m" " Parse and populate our location list - call go#list#ParseFormat(errformat, split(out, "\n")) + call go#list#ParseFormat(l:listtype, errformat, split(out, "\n")) - let errors = go#list#Get() - call go#list#Window(len(errors)) + let errors = go#list#Get(l:listtype) + call go#list#Window(l:listtype, len(errors)) if !a:autosave - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif endif endfunction @@ -107,10 +108,11 @@ function! go#lint#Golint(...) abort return endif - call go#list#Parse(out) - let errors = go#list#Get() - call go#list#Window(len(errors)) - call go#list#JumpToFirst() + let l:listtype = "quickfix" + call go#list#Parse(l:listtype, out) + let errors = go#list#Get(l:listtype) + call go#list#Window(l:listtype, len(errors)) + call go#list#JumpToFirst(l:listtype) endfunction " Vet calls 'go vet' on the current directory. Any warnings are populated in @@ -123,17 +125,19 @@ function! go#lint#Vet(bang, ...) else let out = go#tool#ExecuteInDir('go tool vet ' . go#util#Shelljoin(a:000)) endif + + let l:listtype = "quickfix" if v:shell_error let errors = go#tool#ParseErrors(split(out, '\n')) - call go#list#Populate(errors) - call go#list#Window(len(errors)) + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) && !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif echon "vim-go: " | echohl ErrorMsg | echon "[vet] FAIL" | echohl None else - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) redraw | echon "vim-go: " | echohl Function | echon "[vet] PASS" | echohl None endif endfunction @@ -159,21 +163,17 @@ function! go#lint#Errcheck(...) abort echon "vim-go: " | echohl Identifier | echon "errcheck analysing ..." | echohl None redraw - let command = bin_path . ' ' . goargs + let command = bin_path . ' -abspath ' . goargs let out = go#tool#ExecuteInDir(command) + let l:listtype = "quickfix" if v:shell_error - let errors = [] - let mx = '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)' - for line in split(out, '\n') - let tokens = matchlist(line, mx) - if !empty(tokens) - call add(errors, {"filename": expand(go#path#Default() . "/src/" . tokens[1]), - \"lnum": tokens[2], - \"col": tokens[3], - \"text": tokens[4]}) - endif - endfor + let errformat = "%f:%l:%c:\ %m, %f:%l:%c\ %#%m" + + " Parse and populate our location list + call go#list#ParseFormat(l:listtype, errformat, split(out, "\n")) + + let errors = go#list#Get(l:listtype) if empty(errors) echohl Error | echomsg "GoErrCheck returned error" | echohl None @@ -182,15 +182,15 @@ function! go#lint#Errcheck(...) abort endif if !empty(errors) - call go#list#Populate(errors) - call go#list#Window(len(errors)) + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif endif else - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) echon "vim-go: " | echohl Function | echon "[errcheck] PASS" | echohl None endif diff --git a/sources_non_forked/vim-go/autoload/go/list.vim b/sources_non_forked/vim-go/autoload/go/list.vim index 9582d788..d91cfb12 100644 --- a/sources_non_forked/vim-go/autoload/go/list.vim +++ b/sources_non_forked/vim-go/autoload/go/list.vim @@ -1,18 +1,27 @@ -" Window opens the location list with the given height up to 10 lines maximum. +if !exists("g:go_list_type") + let g:go_list_type = "" +endif + +" Window opens the list with the given height up to 10 lines maximum. " Otherwise g:go_loclist_height is used. If no or zero height is given it " closes the window -function! go#list#Window(...) +function! go#list#Window(listtype, ...) + let l:listtype = go#list#Type(a:listtype) " we don't use lwindow to close the location list as we need also the - " ability to resize the window. So, we are going to use lopen and cclose + " ability to resize the window. So, we are going to use lopen and lclose " for a better user experience. If the number of errors in a current " location list increases/decreases, cwindow will not resize when a new " updated height is passed. lopen in the other hand resizes the screen. if !a:0 || a:1 == 0 - lclose + if l:listtype == "locationlist" + lclose + else + cclose + endif return endif - let height = get(g:, "go_loclist_height", 0) + let height = get(g:, "go_list_height", 0) if height == 0 " prevent creating a large location height for a large set of numbers if a:1 > 10 @@ -22,50 +31,96 @@ function! go#list#Window(...) endif endif - exe 'lopen '. height + if l:listtype == "locationlist" + exe 'lopen ' . height + else + exe 'copen ' . height + endif endfunction " Get returns the current list of items from the location list -function! go#list#Get() - return getloclist(0) +function! go#list#Get(listtype) + let l:listtype = go#list#Type(a:listtype) + if l:listtype == "locationlist" + return getloclist(0) + else + return getqflist() + endif endfunction " Populate populate the location list with the given items -function! go#list#Populate(items) - call setloclist(0, a:items, 'r') +function! go#list#Populate(listtype, items) + let l:listtype = go#list#Type(a:listtype) + if l:listtype == "locationlist" + call setloclist(0, a:items, 'r') + else + call setqflist(a:items, 'r') + endif endfunction function! go#list#PopulateWin(winnr, items) - call setloclist(a:winnr, a:items, 'r') + call setloclist(a:winnr, a:items, 'r') endfunction " Parse parses the given items based on the specified errorformat nad " populates the location list. -function! go#list#ParseFormat(errformat, items) - " backup users errorformat, will be restored once we are finished - let old_errorformat = &errorformat +function! go#list#ParseFormat(listtype, errformat, items) + let l:listtype = go#list#Type(a:listtype) + " backup users errorformat, will be restored once we are finished + let old_errorformat = &errorformat - " parse and populate the location list - let &errorformat = a:errformat - lgetexpr a:items + " parse and populate the location list + let &errorformat = a:errformat + if l:listtype == "locationlist" + lgetexpr a:items + else + cgetexpr a:items + endif - "restore back - let &errorformat = old_errorformat + "restore back + let &errorformat = old_errorformat endfunction -" Parse parses the given items based on the global errorformat nad +" Parse parses the given items based on the global errorformat and " populates the location list. -function! go#list#Parse(items) - lgetexpr a:items +function! go#list#Parse(listtype, items) + let l:listtype = go#list#Type(a:listtype) + if l:listtype == "locationlist" + lgetexpr a:items + else + cgetexpr a:items + endif endfunction " JumpToFirst jumps to the first item in the location list -function! go#list#JumpToFirst() - ll 1 +function! go#list#JumpToFirst(listtype) + let l:listtype = go#list#Type(a:listtype) + if l:listtype == "locationlist" + ll 1 + else + cc 1 + endif endfunction " Clean cleans the location list -function! go#list#Clean() - lex [] +function! go#list#Clean(listtype) + let l:listtype = go#list#Type(a:listtype) + if l:listtype == "locationlist" + lex [] + else + cex [] + endif endfunction + +function! go#list#Type(listtype) + if g:go_list_type == "locationlist" + return "locationlist" + elseif g:go_list_type == "quickfix" + return "quickfix" + else + return a:listtype + endif +endfunction + +" vim:ts=4:sw=4:et diff --git a/sources_non_forked/vim-go/autoload/go/oracle.vim b/sources_non_forked/vim-go/autoload/go/oracle.vim index 19efd773..9b2ec1cd 100644 --- a/sources_non_forked/vim-go/autoload/go/oracle.vim +++ b/sources_non_forked/vim-go/autoload/go/oracle.vim @@ -35,8 +35,8 @@ func! s:loclist(output) endif call add(llist, item) endfor - call go#list#Populate(llist) - call go#list#Window(len(llist)) + call go#list#Populate("locationlist", llist) + call go#list#Window("locationlist", len(llist)) endfun " This uses Vim's errorformat to parse the output from Oracle's 'plain output @@ -56,10 +56,10 @@ func! s:loclistSecond(output) " useful and location only has the ability to show one line and column " number let errformat = "%f:%l.%c-%[%^:]%#:\ %m,%f:%l:%c:\ %m" - call go#list#ParseFormat(errformat, split(a:output, "\n")) + call go#list#ParseFormat("locationlist", errformat, split(a:output, "\n")) - let errors = go#list#Get() - call go#list#Window(len(errors)) + let errors = go#list#Get("locationlist") + call go#list#Window("locationlist", len(errors)) endfun func! s:getpos(l, c) diff --git a/sources_non_forked/vim-go/autoload/go/package.vim b/sources_non_forked/vim-go/autoload/go/package.vim index 6bdacb45..32b38ae3 100644 --- a/sources_non_forked/vim-go/autoload/go/package.vim +++ b/sources_non_forked/vim-go/autoload/go/package.vim @@ -31,17 +31,19 @@ endif function! go#package#Paths() let dirs = [] - if executable('go') - let goroot = substitute(system('go env GOROOT'), '\n', '', 'g') - if v:shell_error - echomsg '''go env GOROOT'' failed' + if !exists("s:goroot") + if executable('go') + let s:goroot = substitute(system('go env GOROOT'), '\n', '', 'g') + if v:shell_error + echomsg '''go env GOROOT'' failed' + endif + else + let s:goroot = $GOROOT endif - else - let goroot = $GOROOT endif - if len(goroot) != 0 && isdirectory(goroot) - let dirs += [goroot] + if len(s:goroot) != 0 && isdirectory(s:goroot) + let dirs += [s:goroot] endif let workspaces = split($GOPATH, go#util#PathListSep()) diff --git a/sources_non_forked/vim-go/autoload/go/path.vim b/sources_non_forked/vim-go/autoload/go/path.vim index f4724210..7b4b7689 100644 --- a/sources_non_forked/vim-go/autoload/go/path.vim +++ b/sources_non_forked/vim-go/autoload/go/path.vim @@ -91,7 +91,7 @@ function! go#path#Detect() " gb vendor plugin " (https://github.com/constabulary/gb/tree/master/cmd/gb-vendor) let gb_vendor_root = src_path . "vendor" . go#util#PathSep() - if !empty(gb_vendor_root) && !go#path#HasPath(gb_vendor_root) + if isdirectory(gb_vendor_root) && !go#path#HasPath(gb_vendor_root) let gopath = gb_vendor_root . go#util#PathListSep() . gopath endif diff --git a/sources_non_forked/vim-go/autoload/go/rename.vim b/sources_non_forked/vim-go/autoload/go/rename.vim index 3212f076..f5afef60 100644 --- a/sources_non_forked/vim-go/autoload/go/rename.vim +++ b/sources_non_forked/vim-go/autoload/go/rename.vim @@ -2,21 +2,32 @@ if !exists("g:go_gorename_bin") let g:go_gorename_bin = "gorename" endif +if !exists("g:go_gorename_prefill") + let g:go_gorename_prefill = 1 +endif + function! go#rename#Rename(bang, ...) let to = "" if a:0 == 0 let from = expand("") let ask = printf("vim-go: rename '%s' to: ", from) - let to = input(ask, from) - redraw + if g:go_gorename_prefill + let to = input(ask, from) + else + let to = input(ask) + endif + redraw! + if empty(to) + return + endif else let to = a:1 endif "return with a warning if the bin doesn't exist - let bin_path = go#path#CheckBinPath(g:go_gorename_bin) - if empty(bin_path) - return + let bin_path = go#path#CheckBinPath(g:go_gorename_bin) + if empty(bin_path) + return endif let fname = expand('%:p') @@ -29,20 +40,21 @@ function! go#rename#Rename(bang, ...) " will trigger the 'Hit ENTER to continue' prompt let clean = split(out, '\n') + let l:listtype = "quickfix" if v:shell_error let errors = go#tool#ParseErrors(split(out, '\n')) - call go#list#Populate(errors) - call go#list#Window(len(errors)) + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !empty(errors) && !a:bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) elseif empty(errors) " failed to parse errors, output the original content call go#util#EchoError(out) endif return else - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) redraw | echon "vim-go: " | echohl Function | echon clean[0] | echohl None endif diff --git a/sources_non_forked/vim-go/autoload/go/term.vim b/sources_non_forked/vim-go/autoload/go/term.vim index eaca0f5c..693041ee 100644 --- a/sources_non_forked/vim-go/autoload/go/term.vim +++ b/sources_non_forked/vim-go/autoload/go/term.vim @@ -8,7 +8,7 @@ let s:jobs = {} " new creates a new terminal with the given command. Mode is set based on the " global variable g:go_term_mode, which is by default set to :vsplit function! go#term#new(bang, cmd) - call go#term#newmode(a:bang, a:cmd, g:go_term_mode) + return go#term#newmode(a:bang, a:cmd, g:go_term_mode) endfunction " new creates a new terminal with the given command and window mode. @@ -98,10 +98,11 @@ function! s:on_exit(job_id, data) endif let job = s:jobs[a:job_id] + let l:listtype = "locationlist" " usually there is always output so never branch into this clause if empty(job.stdout) - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) else let errors = go#tool#ParseErrors(job.stdout) let errors = go#tool#FilterValids(errors) @@ -109,14 +110,14 @@ function! s:on_exit(job_id, data) " close terminal we don't need it close - call go#list#Populate(errors) - call go#list#Window(len(errors)) + call go#list#Populate(l:listtype, errors) + call go#list#Window(l:listtype, len(errors)) if !self.bang - call go#list#JumpToFirst() + call go#list#JumpToFirst(l:listtype) endif else - call go#list#Clean() - call go#list#Window() + call go#list#Clean(l:listtype) + call go#list#Window(l:listtype) endif endif diff --git a/sources_non_forked/vim-go/autoload/go/util.vim b/sources_non_forked/vim-go/autoload/go/util.vim index 85ab9331..3808044f 100644 --- a/sources_non_forked/vim-go/autoload/go/util.vim +++ b/sources_non_forked/vim-go/autoload/go/util.vim @@ -1,70 +1,82 @@ " PathSep returns the appropriate OS specific path separator. function! go#util#PathSep() - if go#util#IsWin() - return '\' - endif - return '/' + if go#util#IsWin() + return '\' + endif + return '/' endfunction " PathListSep returns the appropriate OS specific path list separator. function! go#util#PathListSep() - if go#util#IsWin() - return ";" - endif - return ":" + if go#util#IsWin() + return ";" + endif + return ":" endfunction " LineEnding returns the correct line ending, based on the current fileformat function! go#util#LineEnding() - if &fileformat == 'dos' - return "\r\n" - elseif &fileformat == 'mac' - return "\r" - endif + if &fileformat == 'dos' + return "\r\n" + elseif &fileformat == 'mac' + return "\r" + endif - return "\n" + return "\n" endfunction " IsWin returns 1 if current OS is Windows or 0 otherwise function! go#util#IsWin() - let win = ['win16', 'win32', 'win64', 'win95'] - for w in win - if (has(w)) - return 1 - endif - endfor + let win = ['win16', 'win32', 'win64', 'win95'] + for w in win + if (has(w)) + return 1 + endif + endfor - return 0 + return 0 endfunction " StripPath strips the path's last character if it's a path separator. " example: '/foo/bar/' -> '/foo/bar' function! go#util#StripPathSep(path) - let last_char = strlen(a:path) - 1 - if a:path[last_char] == go#util#PathSep() - return strpart(a:path, 0, last_char) - endif + let last_char = strlen(a:path) - 1 + if a:path[last_char] == go#util#PathSep() + return strpart(a:path, 0, last_char) + endif - return a:path + return a:path endfunction " Shelljoin returns a shell-safe string representation of arglist. The " {special} argument of shellescape() may optionally be passed. function! go#util#Shelljoin(arglist, ...) - if a:0 - return join(map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')'), ' ') - endif + try + let ssl_save = &shellslash + set noshellslash + if a:0 + return join(map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')'), ' ') + endif - return join(map(copy(a:arglist), 'shellescape(v:val)'), ' ') + return join(map(copy(a:arglist), 'shellescape(v:val)'), ' ') + finally + let &shellslash = ssl_save + endtry endfunction -" Shelljoin returns a shell-safe representation of the items in the given +" Shelllist returns a shell-safe representation of the items in the given " arglist. The {special} argument of shellescape() may optionally be passed. function! go#util#Shelllist(arglist, ...) - if a:0 - return map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')') - endif - return map(copy(a:arglist), 'shellescape(v:val)') + try + let ssl_save = &shellslash + set noshellslash + if a:0 + return map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')') + endif + return map(copy(a:arglist), 'shellescape(v:val)') + finally + let &shellslash = ssl_save + endtry endfunction " TODO(arslan): I couldn't parameterize the highlight types. Check if we can diff --git a/sources_non_forked/vim-go/doc/vim-go.txt b/sources_non_forked/vim-go/doc/vim-go.txt index 2786208c..40423d9a 100644 --- a/sources_non_forked/vim-go/doc/vim-go.txt +++ b/sources_non_forked/vim-go/doc/vim-go.txt @@ -14,14 +14,15 @@ =============================================================================== CONTENTS *go-contents* - 1. Intro........................................|go-intro| - 2. Install......................................|go-install| - 3. Commands.....................................|go-commands| - 4. Mappings.....................................|go-mappings| - 5. Text Objects.................................|go-text-objects| - 6. Settings.....................................|go-settings| - 7. Troubleshooting..............................|go-troubleshooting| - 8. Credits......................................|go-credits| + 1. Intro........................................|go-intro| + 2. Install......................................|go-install| + 3. Commands.....................................|go-commands| + 4. Mappings.....................................|go-mappings| + 5. Text Objects.................................|go-text-objects| + 6. Functions....................................|go-functions| + 7. Settings.....................................|go-settings| + 8. Troubleshooting..............................|go-troubleshooting| + 9. Credits......................................|go-credits| =============================================================================== INTRO *go-intro* @@ -61,10 +62,14 @@ easily. * Share your current code to [play.golang.org](http://play.golang.org) with `:GoPlay` * On-the-fly type information about the word under the cursor. Plug it into your custom vim function. + * Go asm formatting on save * Tagbar support to show tags of the source code in a sidebar with `gotags` * Custom vim text objects such as `a function` or `inner function` - * All commands support collecting and displaying errors in Vim's location - list. + * A async launcher for the go command is implemented for neovim, fully async + building and testing. + * Integrated with the neovim terminal, launch `:GoRun` and other go commands + in their own new terminal. + * Alternate between implementation and test code with `:GoAlternate` =============================================================================== INSTALL *go-install* @@ -108,13 +113,15 @@ packages. * Autocompletion is enabled by default via ``, to get real-time completion (completion by type) install: -https://github.com/Valloric/YouCompleteMe or -https://github.com/Shougo/neocomplete.vim +https://github.com/Shougo/neocomplete.vim for Vim or +https://github.com/Shougo/deoplete.nvim and +https://github.com/zchee/deoplete-go for Neovim * To get displayed source code tag informations on a sidebar install https://github.com/majutsushi/tagbar. * For snippet feature install: -https://github.com/SirVer/ultisnips or -https://github.com/Shougo/neosnippet.vim. +https://github.com/Shougo/neosnippet.vim or +https://github.com/SirVer/ultisnips. +* For a better documentation viewer checkout: https://github.com/garyburd/go-explorer =============================================================================== COMMANDS *go-commands* @@ -222,11 +229,15 @@ COMMANDS *go-commands* If [!] is not given the first error is jumped to. + If using neovim then `:GoRun` will run in a new terminal according to + |g:go_term_mode|. + *:GoBuild* :GoBuild[!] [expand] - Build your package with `go build`. It automatically builds only the files - that depends on the current file. GoBuild doesn't produce a result file. + Build your package with `go build`. Errors are populated in the quickfix + window. It automatically builds only the files that depends on the current + file. `:GoBuild` doesn't produce a result file. Use 'make' to create a result file. You may optionally pass any valid go build flags/options. For a full list @@ -234,6 +245,9 @@ COMMANDS *go-commands* If [!] is not given the first error is jumped to. + If using neovim then this command is fully async, it does not block the + UI. + *:GoGenerate* :GoGenerate[!] [expand] @@ -266,8 +280,8 @@ COMMANDS *go-commands* :GoTest[!] [expand] Run the tests on your _test.go files via in your current directory. Errors - are populated in location list. If an argument is passed, 'expand' is - used as file selector (useful for cases like `:GoTest ./...`). + are populated in the quickfix window. If an argument is passed, 'expand' + is used as file selector (useful for cases like `:GoTest ./...`). You may optionally pass any valid go test flags/options. For a full list please see `go help test`. @@ -278,6 +292,10 @@ COMMANDS *go-commands* If [!] is not given the first error is jumped to. + If using neovim `:GoTest` will run in a new terminal or run asynchronously + in the background according to |g:go_term_enabled|. You can set the mode of + the new terminal with |g:go_term_mode|. + *:GoTestFunc* :GoTestFunc[!] [expand] @@ -290,17 +308,25 @@ COMMANDS *go-commands* If [!] is not given the first error is jumped to. + If using neovim `:GoTestFunc` will run in a new terminal or run asynchronously + in the background according to |g:go_term_enabled|. You can set the mode of + the new terminal with |g:go_term_mode|. + *:GoTestCompile* :GoTestCompile[!] [expand] Compile your _test.go files via in your current directory. Errors are - populated in location list. If an argument is passed, 'expand' is used - as file selector (useful for cases like `:GoTest ./...`). Useful to not - run the tests and capture/fix errors before running the tests or to + populated in the quickfix window. If an argument is passed, 'expand' is + used as file selector (useful for cases like `:GoTest ./...`). Useful to + not run the tests and capture/fix errors before running the tests or to create test binary. If [!] is not given the first error is jumped to. + If using neovim `:GoTestCompile` will run in a new terminal or run asynchronously + in the background according to |g:go_term_enabled|. You can set the mode of + the new terminal with |g:go_term_mode|. + *:GoCoverage* :GoCoverage[!] [options] @@ -316,7 +342,7 @@ COMMANDS *go-commands* :GoErrCheck [options] Check for unchecked errors in you current package. Errors are populated in - location list. + the quickfix window. You may optionally pass any valid errcheck flags/options. For a full list please see `errcheck -h`. @@ -349,7 +375,7 @@ COMMANDS *go-commands* Show 'implements' relation for a selected package. A list of interfaces for the type that implements an interface under the cursor (or selected - package) is shown location list. + package) is shown in a location list. *:GoRename* :GoRename[!] [to] @@ -394,7 +420,7 @@ COMMANDS *go-commands* :GoCallstack Shows 'callstack' relation for the selected function. An arbitrary path - from the root of the callgraph to the selected function is showed in a + from the root of the callgraph to the selected function is shown in a location list. This may be useful to understand how the function is reached in a given program. @@ -435,8 +461,8 @@ COMMANDS *go-commands* :GoMetaLinter [path] Calls the underlying `gometalinter` tool and displays all warnings and - errors in a location list. By default the following linters are enabled: - "'vet', 'golint', 'errcheck'". This can be changed with the + errors in the quickfix window. By default the following linters are + enabled: "'vet', 'golint', 'errcheck'". This can be changed with the |g:go_metalinter_enabled| variable. To override the command completely use the variable |g:go_metalinter_command|. To override the maximum linters execution time use |g:go_metalinter_deadline| variable. @@ -445,12 +471,38 @@ COMMANDS *go-commands* :GoOracleTags [tags] Changes the custom |g:go_oracle_tags| setting and overrides it with the - given build tags. This command cooperate with GoReferrers command when - there exist mulitiple build tags in your project,then you can set one + given build tags. This command cooperate with GoReferrers command when + there exist mulitiple build tags in your project, then you can set one of the build tags for GoReferrers to find more accurate. The custom build tags is cleared (unset) if `""` is given. If no arguments is given it prints the current custom build tags. + *:AsmFmt* +:AsmFmt + + Filter the current Go asm buffer through asmfmt. It tries to preserve cursor + position and avoids replacing the buffer with stderr output. + + + *:GoAlternate* +:GoAlternate[!] + + Alternates between the implementation and test code. For example if in main.go, + switch to main_test.go. Uses the |g:go_alternate_mode| setting as the command + to open the file. + + If [!] is given then it switches to the new file even if it does not exist. + + If you would like to override the traditional commands for alternating, add + the following to your .vimrc: +> + augroup go + autocmd! + autocmd Filetype go command! -bang A call go#alternate#Switch(0, 'edit') + autocmd Filetype go command! -bang AV call go#alternate#Switch(0, 'vsplit') + autocmd Filetype go command! -bang AS call go#alternate#Switch(0, 'split') + augroup END +< =============================================================================== MAPPINGS *go-mappings* @@ -469,6 +521,21 @@ documentation in the |go-commands| section. Available keys are: Calls `go run` for the current file + *(go-run-tab)* + +Calls `go run` for the current file in a new terminal tab +This option is neovim only. + + *(go-run-split)* + +Calls `go run` for the current file in a new terminal horizontal split +This option is neovim only. + + *(go-run-vertical)* + +Calls `go run` for the current file in a new terminal vertical split +This option is neovim only. + *(go-build)* @@ -604,6 +671,18 @@ Show all refs to entity denoted by selected identifier Calls `go-metalinter` for the current directory + *(go-alternate-edit)* + +Alternates between the implementation and test code in the current window + + *(go-alternate-split)* + +Alternates between the implementation and test code in a new horizontal split + + *(go-alternate-vertical)* + +Alternates between the implementation and test code in a new vertical split + =============================================================================== TEXT OBJECTS *go-text-objects* @@ -620,6 +699,22 @@ if "inside a function", select contents of a function, +=============================================================================== +FUNCTIONS *go-functions* + + *go#jobcontrol#Statusline()* + +Shows the status of a job running asynchronously. Can be used to plug into the +statusline. It works to show the status per package instead of per +file. Assume you have three files open, all belonging to the same package, +if the package build (`:GoBuild`) is successful, all statusline's will be empty +(means SUCCESS), if you it fails all file's statusline will show FAILED. + + *go#complete#GetInfo()* + +Returns the description of the identifer under the cursor. Can be used to plug +into the statusline. This function is also used for |g:go_auto_type_info|. + =============================================================================== SETTINGS *go-settings* @@ -691,7 +786,7 @@ is empty. > *'g:go_fmt_fail_silently'* Use this option to disable showing a location list when |g:go_fmt_command| -fails. By default it's disabled. > +fails. By default the location list is shown. > let g:go_fmt_fail_silently = 0 < @@ -707,26 +802,24 @@ it's causing problems on some Vim versions. By default it's disabled. > < *'g:go_doc_keywordprg_enabled'* -Use this option to change the enable GoDoc to run on words under the cursor -with the default K , keywordprg shortcut. This shortcut is by default set to -use the program man. However in go using godoc is more idiomatic. Default is -enabled. > +Use this option to run `godoc` on words under the cursor with the default +K , keywordprg shortcut. Usually this shortcut is set to use the program `man`. +In Go, using `godoc` is more idiomatic. Default is enabled. > let g:go_doc_keywordprg_enabled = 1 < *'g:go_def_mapping_enabled'* -Use this option to enabled/ disable the default mapping (`gd`) for GoDef -enabled. Disabling it allows you to map something else to the mapping `gd`. -Default is enabled. > +Use this option to enable/disable the default mapping of (`gd`) for GoDef. +Disabling it allows you to map something else to `gd`. Default is enabled. > let g:go_def_mapping_enabled = 1 < *'g:go_dispatch_enabled'* Use this option to enable/disable the use of Dispatch to execute the -`:GoRun`, `:GoBuild` and `:GoGenerate` commands. More information about Dispatch is -available at https://github.com/tpope/vim-dispatch. Default is disabled. > +`:GoRun`, `:GoBuild` and `:GoGenerate` commands. More information about Dispatch +is available at https://github.com/tpope/vim-dispatch. Default is disabled. > let g:go_dispatch_enabled = 0 < @@ -762,13 +855,12 @@ is used. Use "neosnippet" for neosnippet.vim: > *'g:go_oracle_scope'* -Use this option to define the scope of the analysis to be passed for Oracle -related commands, such as |GoImplements|, |GoCallers|, etc.. By default it's -not set, so only the current packages go files are passed as scope. You can -change it on-the-fly with |GoOracleScope|. For more -info please have look at Oracle's User Manual: -https://docs.google.com/document/d/1SLk36YRjjMgKqe490mSRzOPYEDe0Y_WQNRv-EiFYUyw/view#heading=h.nwso96pj07q8 -> +Use this option to define the scope of the analysis to be passed for oracle +related commands, such as |GoImplements|, |GoCallers|, etc. By default it's +not set, so only the current package's go files are passed as scope. You can +change it on-the-fly with |GoOracleScope|. For more info, please have a look +at oracle's user manual: +https://golang.org/s/oracle-user-manual#heading=h.nwso96pj07q8 > let g:go_oracle_scope = '' < @@ -782,8 +874,8 @@ Highlights white space after "[]". > *'g:go_highlight_chan_whitespace_error'* -Highlights white space around the communications operator that don't follow -the standard style. > +Highlights white space around the communications operator (`<-`) that doesn't +follow the standard style. > let g:go_highlight_chan_whitespace_error = 1 < @@ -810,7 +902,7 @@ Highlights trailing white space. > < *'g:go_highlight_operators'* -Highlights operators such as `:=` , `==`, `-=`, etc ...By default it's +Highlights operators such as `:=` , `==`, `-=`, etc. By default it's disabled. > let g:go_highlight_operators = 0 @@ -832,6 +924,12 @@ Highlights method names. By default it's disabled. > Highlights struct names. By default it's disabled. > let g:go_highlight_structs = 0 +< + *'g:go_highlight_interfaces'* + +Highlights interface names. By default it's disabled. > + + let g:go_highlight_interfaces = 0 < *'g:go_highlight_build_constraints'* @@ -841,8 +939,8 @@ Highlights build constraints. By default it's disabled. > < *'g:go_highlight_string_spellcheck* -Specifies spell checking enabled for strings. Spelling errors are highlighted -if |spell| is enabled. By default it's enabled. > +Use this option to highlight spelling errors in strings when |spell| is +also enabled. By default it's enabled. > let g:go_highlight_string_spellcheck = 1 < @@ -850,7 +948,7 @@ if |spell| is enabled. By default it's enabled. > *'g:go_autodetect_gopath'* Automatically modifies GOPATH for certain directory structures, such as for -the tool godep which has his own dependencies via the `Godeps` folder. What +the tool `godep` which has his own dependencies via the `Godeps` folder. What this means is that all tools are now working with the newly modified GOPATH. So |GoDef| for example jumps to the source inside the `Godeps` (vendored) source. Currently `godep` and `gb` is supported, in the near future more tool @@ -874,14 +972,14 @@ the active buffer will be shown. By default it's disabled > *'g:go_metalinter_autosave_enabled'* Specifies the enabled linters for auto |GoMetaLinter| on save. By -default it's using `vet` and `golint` +default it's using `vet` and `golint`. > let g:go_metalinter_autosave_enabled = ['vet', 'golint'] < *'g:go_metalinter_enabled'* Specifies the currently enabled linters for the |GoMetaLinter| command. By -default it's using `vet`, `golint` and `errcheck` +default it's using `vet`, `golint` and `errcheck`. > let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck'] < @@ -889,7 +987,7 @@ default it's using `vet`, `golint` and `errcheck` Overrides the command to be executed when |GoMetaLinter| is called. This is an advanced settings and is for users who want to have a complete control -over of how `gometalinter` should be executed. By default it's empty. +over how `gometalinter` should be executed. By default it's empty. > let g:go_metalinter_command = "" < @@ -900,14 +998,75 @@ seconds. > let g:go_metalinter_deadline = "5s" < - *'g:go_loclist_height'* + *'g:go_list_height'* -Specifies the current location list height for all location lists. The default -value (empty) sets automatically the height to the number of errors (maximum -up to 10 errors to prevent large heights). Setting the value explicitly -overrides this behavior. To get default Vim behavior set it to 10. +Specifies the window height for the quickfix and location list windows. The +default value (empty) automatically sets the height to the number of items +(maximum up to 10 items to prevent large heights). Setting the value +explicitly overrides this behavior. For standard Vim behavior, set it to 10. > - let g:go_loclist_height = 0 + let g:go_list_height = 0 +< + *'g:go_list_type'* + +Specifies the type of list to use. The default value (empty) will use the +appropriate kind of list for the command that was called. Supported values are +"", "quickfix", and "locationlist". > + + let g:go_list_type = "" +< + *'g:go_asmfmt_autosave'* + +Use this option to auto |:AsmFmt| on save. By default it's enabled. > + + let g:go_asmfmt_autosave = 1 +< + *g:go_term_mode* + +This option is Neovim only. Use it to change the default command used to +open a new terminal for go commands such as |:GoRun|. +The default is vsplit. +> + let g:go_term_mode = "vsplit" +< + *g:go_term_height* + *g:go_term_width* + +These options are Neovim only. Use them to control the height and width of +a terminal split. By default these are not set, meaning that the height and +width are set automatically by Neovim. The height only applies to a +horizontal split and width only applies to a vertical split. + +For example here is how to set each to 30. +> + let g:go_term_height = 30 + let g:go_term_width = 30 +< + *g:go_term_enabled* + +This option is Neovim only. Use it to change the behavior of the test +commands. If set to 1 it opens the test commands inside a new terminal +according to |g:go_term_mode|, otherwise it will run them in the background +just like `:GoBuild` and then display the status with |go#jobcontrol#Statusline()|. +By default it is disabled. +> + let g:go_term_enabled = 0 +< + *g:go_alternate_mode* + +Specifies the command that |:GoAlternate| uses to open the alternate file. +By default it is set to edit. +> + let g:go_alternate_mode = "edit" +< + *g:go_gorename_prefill* + +Specifies whether |:GoRename| prefills the new identifier name with the +word under the cursor. By default is is enabled. +> + let g:go_gorename_prefill = 1 +< + =============================================================================== TROUBLESHOOTING *go-troubleshooting* diff --git a/sources_non_forked/vim-go/ftdetect/gofiletype.vim b/sources_non_forked/vim-go/ftdetect/gofiletype.vim index 573dbb01..b5578a6e 100644 --- a/sources_non_forked/vim-go/ftdetect/gofiletype.vim +++ b/sources_non_forked/vim-go/ftdetect/gofiletype.vim @@ -5,11 +5,11 @@ let s:current_fileformats = '' let s:current_fileencodings = '' " define fileencodings to open as utf-8 encoding even if it's ascii. -function! s:gofiletype_pre() +function! s:gofiletype_pre(type) let s:current_fileformats = &g:fileformats let s:current_fileencodings = &g:fileencodings set fileencodings=utf-8 fileformats=unix - setlocal filetype=go + let &l:filetype = a:type endfunction " restore fileencodings as others @@ -19,9 +19,13 @@ function! s:gofiletype_post() endfunction au BufNewFile *.go setfiletype go | setlocal fileencoding=utf-8 fileformat=unix -au BufRead *.go call s:gofiletype_pre() +au BufRead *.go call s:gofiletype_pre("go") au BufReadPost *.go call s:gofiletype_post() +au BufNewFile *.s setfiletype asm | setlocal fileencoding=utf-8 fileformat=unix +au BufRead *.s call s:gofiletype_pre("asm") +au BufReadPost *.s call s:gofiletype_post() + au BufRead,BufNewFile *.tmpl set filetype=gohtmltmpl " vim:ts=4:sw=4:et diff --git a/sources_non_forked/vim-go/ftplugin/go/commands.vim b/sources_non_forked/vim-go/ftplugin/go/commands.vim index a821e929..4c6ddba2 100644 --- a/sources_non_forked/vim-go/ftplugin/go/commands.vim +++ b/sources_non_forked/vim-go/ftplugin/go/commands.vim @@ -53,4 +53,7 @@ command! -nargs=* GoLint call go#lint#Golint() command! -nargs=* -bang GoVet call go#lint#Vet(0, ) command! -nargs=* -complete=customlist,go#package#Complete GoErrCheck call go#lint#Errcheck() +" -- alternate +command! -bang GoAlternate call go#alternate#Switch(0, '') + " vim:ts=4:sw=4:et diff --git a/sources_non_forked/vim-go/ftplugin/go/mappings.vim b/sources_non_forked/vim-go/ftplugin/go/mappings.vim index 9e243543..4ce38d02 100644 --- a/sources_non_forked/vim-go/ftplugin/go/mappings.vim +++ b/sources_non_forked/vim-go/ftplugin/go/mappings.vim @@ -5,17 +5,16 @@ " which by default is enabled. For commands the user has the ability to pass " the '!', such as :GoBuild or :GoBuild! if !exists("g:go_jump_to_error") - let g:go_jump_to_error = 1 + let g:go_jump_to_error = 1 endif - " Some handy plug mappings -nnoremap (go-run) :call go#cmd#Run(!g:go_jump_to_error, '%') +nnoremap (go-run) :call go#cmd#Run(!g:go_jump_to_error) if has("nvim") - nnoremap (go-run-vertical) :call go#cmd#RunTerm('vsplit') - nnoremap (go-run-split) :call go#cmd#RunTerm('split') - nnoremap (go-run-tab) :call go#cmd#RunTerm('tab') + nnoremap (go-run-vertical) :call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit') + nnoremap (go-run-split) :call go#cmd#RunTerm(!g:go_jump_to_error, 'split') + nnoremap (go-run-tab) :call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe') endif nnoremap (go-build) :call go#cmd#Build(!g:go_jump_to_error) @@ -56,4 +55,6 @@ nnoremap (go-doc-browser) :call go#doc#OpenBrowser() nnoremap (go-metalinter) :call go#lint#Gometa(0) nnoremap (go-vet) :call go#lint#Vet(!g:go_jump_to_error) - +nnoremap (go-alternate-edit) :call go#alternate#Switch(0, "edit") +nnoremap (go-alternate-vertical) :call go#alternate#Switch(0, "vsplit") +nnoremap (go-alternate-split) :call go#alternate#Switch(0, "split") diff --git a/sources_non_forked/vim-go/gosnippets/snippets/go.snip b/sources_non_forked/vim-go/gosnippets/snippets/go.snip index f7f23363..f60aeb57 100644 --- a/sources_non_forked/vim-go/gosnippets/snippets/go.snip +++ b/sources_non_forked/vim-go/gosnippets/snippets/go.snip @@ -124,6 +124,7 @@ abbr if err != nil { ... } if err != nil { return err } + ${0} # error snippet in TestFunc snippet errt abbr if err != nil { ... } @@ -135,11 +136,10 @@ abbr if err != nil { ... } snippet errn, abbr if err != nil { return [...], err } if err != nil { - return ${2}$1, err + return ${1:nil}, err } ${0} - # error snippet handle and return snippet errh abbr if err != nil { return } @@ -153,6 +153,7 @@ abbr if err != nil { return } snippet json abbr \`json:key\` \`json:"${1:keyName}"\` + # fallthrough snippet ft abbr fallthrough diff --git a/sources_non_forked/vim-go/indent/gohtmltmpl.vim b/sources_non_forked/vim-go/indent/gohtmltmpl.vim index 50399f2b..94ea135a 100644 --- a/sources_non_forked/vim-go/indent/gohtmltmpl.vim +++ b/sources_non_forked/vim-go/indent/gohtmltmpl.vim @@ -3,3 +3,42 @@ if exists("b:did_indent") endif runtime! indent/html.vim + +" Indent Golang HTML templates +setlocal indentexpr=GetGoHTMLTmplIndent(v:lnum) +setlocal indentkeys+==else,=end + +" Only define the function once. +if exists("*GetGoHTMLTmplIndent") + finish +endif + +function! GetGoHTMLTmplIndent(lnum) + " Get HTML indent + if exists('*HtmlIndent') + let ind = HtmlIndent() + else + let ind = HtmlIndentGet(a:lnum) + endif + + " The value of a single shift-width + if exists('*shiftwidth') + let sw = shiftwidth() + else + let sw = &sw + endif + + " If need to indent based on last line + let last_line = getline(a:lnum-1) + if last_line =~ '^\s*{{\s*\%(if\|else\|range\|with\|define\|block\).*}}' + let ind += sw + endif + + " End of FuncMap block + let current_line = getline(a:lnum) + if current_line =~ '^\s*{{\s*\%(else\|end\).*}}' + let ind -= sw + endif + + return ind +endfunction diff --git a/sources_non_forked/vim-go/plugin/go.vim b/sources_non_forked/vim-go/plugin/go.vim index 43295ad7..63b42ceb 100644 --- a/sources_non_forked/vim-go/plugin/go.vim +++ b/sources_non_forked/vim-go/plugin/go.vim @@ -17,6 +17,7 @@ let s:packages = [ \ "github.com/golang/lint/golint", \ "github.com/kisielk/errcheck", \ "github.com/jstemmer/gotags", + \ "github.com/klauspost/asmfmt/cmd/asmfmt", \ ] " These commands are available on any filetypes @@ -119,6 +120,23 @@ endfunction " Autocommands " ============================================================================ +" +function! s:echo_go_info() + if !exists('v:completed_item') || empty(v:completed_item) + return + endif + let item = v:completed_item + + if !has_key(item, "info") + return + endif + + if empty(item.info) + return + endif + + redraws! | echo "vim-go: " | echohl Function | echon item.info | echohl None +endfunction augroup vim-go autocmd! @@ -128,11 +146,22 @@ augroup vim-go autocmd CursorHold *.go nested call go#complete#Info() endif - " code formatting on save + " Echo the identifier information when completion is done. Useful to see + " the signature of a function, etc... + if exists('##CompleteDone') + autocmd CompleteDone *.go nested call s:echo_go_info() + endif + + " Go code formatting on save if get(g:, "go_fmt_autosave", 1) autocmd BufWritePre *.go call go#fmt#Format(-1) endif + " Go asm formatting on save + if get(g:, "go_asmfmt_autosave", 1) + autocmd BufWritePre *.s call go#asmfmt#Format() + endif + " run gometalinter on save if get(g:, "go_metalinter_autosave", 0) autocmd BufWritePost *.go call go#lint#Gometa(1) diff --git a/sources_non_forked/vim-go/syntax/go.vim b/sources_non_forked/vim-go/syntax/go.vim index e4ecaf08..56722a19 100644 --- a/sources_non_forked/vim-go/syntax/go.vim +++ b/sources_non_forked/vim-go/syntax/go.vim @@ -12,7 +12,7 @@ " let OPTION_NAME = 1 " to enable particular options. " At present, all options default to on, except highlight of: -" functions, methods and structs. +" functions, methods, structs, operators, build constraints and interfaces. " " - go_highlight_array_whitespace_error " Highlights white space after "[]". @@ -69,6 +69,10 @@ if !exists("g:go_highlight_structs") let g:go_highlight_structs = 0 endif +if !exists("g:go_highlight_interfaces") + let g:go_highlight_interfaces = 0 +endif + if !exists("g:go_highlight_build_constraints") let g:go_highlight_build_constraints = 0 endif @@ -291,6 +295,14 @@ endif hi def link goStruct Function hi def link goStructDef Function +" Interfaces; +if g:go_highlight_interfaces != 0 + syn match goInterface /\(.\)\@<=\w\+\({\)\@=/ + syn match goInterfaceDef /\(type\s\+\)\@<=\w\+\(\s\+interface\s\+{\)\@=/ +endif +hi def link goInterface Function +hi def link goInterfaceDef Function + " Build Constraints if g:go_highlight_build_constraints != 0 syn match goBuildKeyword display contained "+build" diff --git a/sources_non_forked/vim-jade/README.markdown b/sources_non_forked/vim-jade/README.markdown deleted file mode 100644 index 2c2222ed..00000000 --- a/sources_non_forked/vim-jade/README.markdown +++ /dev/null @@ -1,19 +0,0 @@ -# vim-jade # - -Vim syntax highlighting for Jade templates. - -Installation ------------- - -I prefer to install plugins using Tim Pope's -[pathogen.vim](https://github.com/tpope/vim-pathogen). Installation using -pathogen is quite simple. - - cd ~/.vim/bundle - git clone git://github.com/digitaltoad/vim-jade.git - -If you do not want to use pathogen. You can always install vim-jade in the -normal manner by copying each directory to your ~/.vim directory. Make sure -not to overwrite any existing directory of the same name and instead copy only -the contents of the source directory to the directory of the same name in your -~/.vim directory. diff --git a/sources_non_forked/vim-jade/ftdetect/jade.vim b/sources_non_forked/vim-jade/ftdetect/jade.vim deleted file mode 100644 index c21dcff7..00000000 --- a/sources_non_forked/vim-jade/ftdetect/jade.vim +++ /dev/null @@ -1,2 +0,0 @@ -" Jade -autocmd BufNewFile,BufReadPost *.jade set filetype=jade diff --git a/sources_non_forked/vim-jade/ftplugin/jade.vim b/sources_non_forked/vim-jade/ftplugin/jade.vim deleted file mode 100644 index 577f5547..00000000 --- a/sources_non_forked/vim-jade/ftplugin/jade.vim +++ /dev/null @@ -1,57 +0,0 @@ -" Vim filetype plugin -" Language: Jade -" Maintainer: Joshua Borton -" Credits: Tim Pope - -" Only do this when not done yet for this buffer -if exists("b:did_ftplugin") - finish -endif - -let s:save_cpo = &cpo -set cpo-=C - -setlocal iskeyword+=- - -" Define some defaults in case the included ftplugins don't set them. -let s:undo_ftplugin = "" -let s:browsefilter = "All Files (*.*)\t*.*\n" -let s:match_words = "" - -runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim -unlet! b:did_ftplugin - -" Override our defaults if these were set by an included ftplugin. -if exists("b:undo_ftplugin") - let s:undo_ftplugin = b:undo_ftplugin - unlet b:undo_ftplugin -endif -if exists("b:browsefilter") - let s:browsefilter = b:browsefilter - unlet b:browsefilter -endif -if exists("b:match_words") - let s:match_words = b:match_words - unlet b:match_words -endif - -" Change the browse dialog on Win32 to show mainly Haml-related files -if has("gui_win32") - let b:browsefilter="Jade Files (*.jade)\t*.jade\n" . s:browsefilter -endif - -" Load the combined list of match_words for matchit.vim -if exists("loaded_matchit") - let b:match_words = s:match_words -endif - -setlocal comments=://-,:// commentstring=//\ %s - -setlocal suffixesadd+=.jade - -let b:undo_ftplugin = "setl cms< com< " - \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin - -let &cpo = s:save_cpo - -" vim:set sw=2: diff --git a/sources_non_forked/vim-jade/indent/jade.vim b/sources_non_forked/vim-jade/indent/jade.vim deleted file mode 100644 index 8cfa656d..00000000 --- a/sources_non_forked/vim-jade/indent/jade.vim +++ /dev/null @@ -1,70 +0,0 @@ -" Vim indent file -" Language: Jade -" Maintainer: Joshua Borton -" Credits: Tim Pope (vim-jade) -" Last Change: 2010 Sep 22 - -if exists("b:did_indent") - finish -endif - -unlet! b:did_indent -let b:did_indent = 1 - -setlocal autoindent -setlocal indentexpr=GetJadeIndent() -setlocal indentkeys=o,O,*,},],0),!^F - -" Only define the function once. -if exists("*GetJadeIndent") - finish -endif - -let s:attributes = '\%((.\{-\})\)' -let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*' - -if !exists('g:jade_self_closing_tags') - let g:jade_self_closing_tags = 'meta|link|img|hr|br|input' -endif - -setlocal formatoptions+=r -setlocal comments+=n:\| - -function! GetJadeIndent() - let lnum = prevnonblank(v:lnum-1) - if lnum == 0 - return 0 - endif - let line = substitute(getline(lnum),'\s\+$','','') - let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') - let lastcol = strlen(line) - let line = substitute(line,'^\s\+','','') - let indent = indent(lnum) - let cindent = indent(v:lnum) - let increase = indent + &sw - if indent == indent(lnum) - let indent = cindent <= indent ? -1 : increase - endif - - let group = synIDattr(synID(lnum,lastcol,1),'name') - - if line =~ '^!!!' - return indent - elseif line =~ '^/\%(\[[^]]*\]\)\=$' - return increase - elseif line =~ '^\%(if\|else\|unless\|for\|each\|block\|mixin\|append\|case\|when\)' - return increase - elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$' - return increase - elseif line == '-#' - return increase - elseif line =~? '^\v%('.g:jade_self_closing_tags.')>' - return indent - elseif group =~? '\v^%(jadeAttributesDelimiter|jadeClass|jadeId|htmlTagName|htmlSpecialTagName|jadeFilter|jadeTagBlockChar)$' - return increase - else - return indent - endif -endfunction - -" vim:set sw=2: diff --git a/sources_non_forked/vim-jade/syntax/jade.vim b/sources_non_forked/vim-jade/syntax/jade.vim deleted file mode 100644 index ed88e071..00000000 --- a/sources_non_forked/vim-jade/syntax/jade.vim +++ /dev/null @@ -1,104 +0,0 @@ -" Vim syntax file -" Language: Jade -" Maintainer: Joshua Borton -" Credits: Tim Pope -" Filenames: *.jade - -if exists("b:current_syntax") - finish -endif - -if !exists("main_syntax") - let main_syntax = 'jade' -endif - -silent! syntax include @htmlCoffeescript syntax/coffee.vim -unlet! b:current_syntax -silent! syntax include @htmlStylus syntax/stylus.vim -unlet! b:current_syntax -silent! syntax include @htmlCss syntax/css.vim -unlet! b:current_syntax -silent! syntax include @htmlMarkdown syntax/markdown.vim -unlet! b:current_syntax - -syn case match - -syn region javascriptParenthesisBlock start="(" end=")" contains=@htmlJavascript contained keepend -syn cluster htmlJavascript add=javascriptParenthesisBlock - -syn region jadeJavascript matchgroup=jadeJavascriptOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend -syn region jadeJavascript matchgroup=jadeJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend -syn cluster jadeTop contains=jadeBegin,jadeComment,jadeHtmlComment,jadeJavascript -syn match jadeBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=jadeTag,jadeClassChar,jadeIdChar,jadePlainChar,jadeJavascript,jadeScriptConditional,jadeScriptStatement,jadePipedText -syn match jadeTag "+\?\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@jadeComponent -syn cluster jadeComponent contains=jadeAttributes,jadeIdChar,jadeBlockExpansionChar,jadeClassChar,jadePlainChar,jadeJavascript,jadeTagBlockChar,jadeTagInlineText -syn match jadeComment '\s*\/\/.*$' -syn region jadeCommentBlock start="\z(\s*\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" keepend -syn region jadeHtmlConditionalComment start="" -syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,jadeHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent -syn match jadeClassChar "\." contained nextgroup=jadeClass -syn match jadeBlockExpansionChar ":\s\+" contained nextgroup=jadeTag,jadeClassChar,jadeIdChar -syn match jadeIdChar "#[[{]\@!" contained nextgroup=jadeId -syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent -syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent -syn region jadeDocType start="^\s*\(!!!\|doctype\)" end="$" -" Unless I'm mistaken, syntax/html.vim requires -" that the = sign be present for these matches. -" This adds the matches back for jade. -syn keyword jadeHtmlArg contained href title - -syn match jadePlainChar "\\" contained -syn region jadeInterpolation matchgroup=jadeInterpolationDelimiter start="[#!]{" end="}" contains=@htmlJavascript -syn match jadeInterpolationEscape "\\\@[?!]\@!" -syn match jadeScriptStatement "^\s*\<\%(each\|for\|block\|prepend\|append\|mixin\|extends\|include\)\>[?!]\@!" -syn region jadeScriptLoopRegion start="^\s*\(for \)" end="$" contains=jadeScriptLoopKeywords -syn keyword jadeScriptLoopKeywords for in contained - -syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag,jadeCoffeescriptFilter keepend - -syn region jadeCoffeescriptFilter matchgroup=jadeFilter start="^\z(\s*\):coffee-\?script\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCoffeescript contained -syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag -syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCss keepend - -syn match jadeError "\$" contained - -hi def link jadePlainChar Special -hi def link jadeScriptConditional PreProc -hi def link jadeScriptLoopKeywords PreProc -hi def link jadeScriptStatement PreProc -hi def link jadeHtmlArg htmlArg -hi def link jadeAttributeString String -hi def link jadeAttributesDelimiter Identifier -hi def link jadeIdChar Special -hi def link jadeClassChar Special -hi def link jadeBlockExpansionChar Special -hi def link jadePipeChar Special -hi def link jadeTagBlockChar Special -hi def link jadeId Identifier -hi def link jadeClass Type -hi def link jadeInterpolationDelimiter Delimiter -hi def link jadeInlineDelimiter Delimiter -hi def link jadeFilter PreProc -hi def link jadeDocType PreProc -hi def link jadeComment Comment -hi def link jadeCommentBlock Comment -hi def link jadeHtmlConditionalComment jadeComment - -let b:current_syntax = "jade" - -if main_syntax == "jade" - unlet main_syntax -endif diff --git a/sources_non_forked/vim-markdown/syntax/markdown.vim b/sources_non_forked/vim-markdown/syntax/markdown.vim index 925f9069..6aff90ae 100644 --- a/sources_non_forked/vim-markdown/syntax/markdown.vim +++ b/sources_non_forked/vim-markdown/syntax/markdown.vim @@ -18,14 +18,20 @@ unlet! b:current_syntax if !exists('g:markdown_fenced_languages') let g:markdown_fenced_languages = [] endif +let s:done_include = {} for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")') + if has_key(s:done_include, matchstr(s:type,'[^.]*')) + continue + endif if s:type =~ '\.' let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*') endif exe 'syn include @markdownHighlight'.substitute(s:type,'\.','','g').' syntax/'.matchstr(s:type,'[^.]*').'.vim' unlet! b:current_syntax + let s:done_include[matchstr(s:type,'[^.]*')] = 1 endfor unlet! s:type +unlet! s:done_include syn sync minlines=10 syn case ignore @@ -91,10 +97,16 @@ syn match markdownFootnote "\[^[^\]]\+\]" syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:" if main_syntax ==# 'markdown' + let s:done_include = {} for s:type in g:markdown_fenced_languages + if has_key(s:done_include, matchstr(s:type,'[^.]*')) + continue + endif exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```*\s*'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```*\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g') + let s:done_include[matchstr(s:type,'[^.]*')] = 1 endfor unlet! s:type + unlet! s:done_include endif syn match markdownEscape "\\[][\\`*_{}()<>#+.!-]" diff --git a/sources_non_forked/vim-multiple-cursors/README.md b/sources_non_forked/vim-multiple-cursors/README.md index 3c22687f..95722924 100644 --- a/sources_non_forked/vim-multiple-cursors/README.md +++ b/sources_non_forked/vim-multiple-cursors/README.md @@ -1,5 +1,7 @@ -# vim-multiple-cursors [![Build Status](https://travis-ci.org/terryma/vim-multiple-cursors.svg)](https://travis-ci.org/terryma/vim-multiple-cursors) - +# vim-multiple-cursors +[![Build Status](https://travis-ci.org/terryma/vim-multiple-cursors.svg)](https://travis-ci.org/terryma/vim-multiple-cursors) +[![Issue Stats](http://issuestats.com/github/terryma/vim-multiple-cursors/badge/pr?style=flat)](http://issuestats.com/github/terryma/vim-multiple-cursors) +[![Issue Stats](http://issuestats.com/github/terryma/vim-multiple-cursors/badge/issue?style=flat)](http://issuestats.com/github/terryma/vim-multiple-cursors) ## Contents - [About](#about) - [Features](#features) @@ -10,7 +12,8 @@ - [Interactions with other plugins](#interactions-with-other-plugins) - [Highlight](#highlight) - *[FAQ](#faq)* - - *[Known Issues](#known-issues)* + - *[Known issues](#known-issues)* + - *[Issue creation requirements](#issue-creation-requirements)* - [Changelog](#changelog) - [Contributing](#contributing) - [Credit](#credit) @@ -42,7 +45,7 @@ Vim command sequence: `2Gdf[$r,0f,vc 0 + " Position the cursor at the end of the previous match so it'll be on a + " virtual cursor when multicursor mode is started. The `winrestview()` + " call below 'undoes' unnecessary repositionings + call search(a:pattern, 'be') break endif call s:cm.add(right, [left, right]) @@ -510,7 +530,7 @@ function! s:CursorManager.update_current() dict " adjust other cursor locations if vdelta != 0 if self.current_index != self.size() - 1 - let cur_line_length = len(getline(cur.line())) + let cur_column_offset = (cur.column() - col('.')) * -1 let new_line_length = len(getline('.')) for i in range(self.current_index+1, self.size()-1) let hdelta = 0 @@ -522,7 +542,7 @@ function! s:CursorManager.update_current() dict if cur.line() == c.line() if vdelta > 0 " Added a line - let hdelta = cur_line_length * -1 + let hdelta = cur_column_offset else " Removed a line let hdelta = new_line_length diff --git a/sources_non_forked/vim-multiple-cursors/spec/multiple_cursors_spec.rb b/sources_non_forked/vim-multiple-cursors/spec/multiple_cursors_spec.rb index 07efba50..9f83c219 100644 --- a/sources_non_forked/vim-multiple-cursors/spec/multiple_cursors_spec.rb +++ b/sources_non_forked/vim-multiple-cursors/spec/multiple_cursors_spec.rb @@ -191,7 +191,7 @@ end describe "Multiple Cursors" do let(:filename) { 'test.txt' } - let(:options) { [] } + let(:options) { ['set autoindent'] } specify "#paste buffer normal x then p" do before <<-EOF @@ -350,6 +350,38 @@ describe "Multiple Cursors" do EOF end + specify "#multiple new lines on one line in insert mode" do + before <<-EOF + 'a','b','c','d','e' + EOF + + type 'f,vc' + + after <<-EOF + 'a' + 'b' + 'c' + 'd' + 'e' + EOF + end + + specify "#multiple new lines on one line in insert mode with indents" do + before <<-EOF + 'a','b','c','d','e' + EOF + + type '4if,vc:%s/^/^' + + after <<-EOF + ^ 'a' + ^ 'b' + ^ 'c' + ^ 'd' + ^ 'e' + EOF + end + specify "#normal mode 'o'" do before <<-EOF hello @@ -397,6 +429,48 @@ describe "Multiple Cursors" do EOF end + specify "#find command start-of-line" do + before <<-EOF + hello + world + + hello + world + EOF + + vim.normal ':MultipleCursorsFind ^' + type 'Ibegin' + + after <<-EOF + beginhello + beginworld + begin + beginhello + beginworld + EOF + end + + specify "#find command end-of-line" do + before <<-EOF + hello + world + + hello + world + EOF + + vim.normal ':MultipleCursorsFind $' + type 'Iend' + + after <<-EOF + helloend + worldend + end + helloend + worldend + EOF + end + specify "#visual line mode replacement" do before <<-EOF hello world diff --git a/sources_non_forked/vim-snippets/UltiSnips/python.snippets b/sources_non_forked/vim-snippets/UltiSnips/python.snippets index 9372bdcf..654538d0 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/python.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/python.snippets @@ -622,25 +622,9 @@ finally: endsnippet -##################### +###################### # Assertions & Tests # -##################### - -snippet pdb "Set PDB breakpoint" b -import pdb; pdb.set_trace() -endsnippet - -snippet ipy "Embed IPython shell" b -import IPython; IPython.embed() -endsnippet - -snippet ipdb "Set IPDB breakpoint" b -import ipdb; ipdb.set_trace() -endsnippet - -snippet pudb "Set PUDB breakpoint" b -import pudb; pudb.set_trace() -endsnippet +###################### snippet ae "Assert equal" b self.assertEqual(${1:${VISUAL:first}},${2:second}) diff --git a/sources_non_forked/vim-snippets/UltiSnips/rails.snippets b/sources_non_forked/vim-snippets/UltiSnips/rails.snippets index 5c521795..e7b2757b 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/rails.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/rails.snippets @@ -15,7 +15,7 @@ t.boolean :${1:title} $0 endsnippet -snippet cla "Create controller class" +snippet clac "Create controller class" class ${1:Model}Controller < ApplicationController before_filter :find_${2:model} @@ -48,7 +48,7 @@ t.float :${1:title} $0 endsnippet -snippet cla "Create functional test class" +snippet clact "Create functional test class" require 'test_helper' class ${1:Model}ControllerTest < ActionController::TestCase @@ -133,7 +133,7 @@ class ${1:Model}sController < ApplicationController # PUT /${1/./\l$0/}s/1.xml def update respond_to do |wants| - if @${1/./\l$0/}.update_attributes(params[:${1/./\l$0/}]) + if @${1/./\l$0/}.update(params[:${1/./\l$0/}]) flash[:notice] = '${1:Model} was successfully updated.' wants.html { redirect_to(@${1/./\l$0/}) } wants.xml { head :ok } @@ -601,12 +601,6 @@ respond_to do |wants| end endsnippet -snippet resw "respond_with" -respond_with(${1:@${2:model}})${3: do |format| - format.${4:html} { $0 \} -end} -endsnippet - # FIXME snippet returning "returning do |variable| ... end" returning ${1:variable} do${2/(^(?\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g)*,?\s*$)|.*/(?1: |)/}${2:v}${2/(^(?\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g)*,?\s*$)|.*/(?1:|)/} @@ -799,10 +793,6 @@ snippet xput "xhr put" xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { $4 }$0 endsnippet -snippet finl "find(:last)" -find(:last${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]}) -endsnippet - snippet sweeper "Create sweeper class" class ${1:Model}Sweeper < ActionController::Caching::Sweeper observe ${1:Model} diff --git a/sources_non_forked/vim-snippets/UltiSnips/ruby.snippets b/sources_non_forked/vim-snippets/UltiSnips/ruby.snippets index b8a00922..b7124f83 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/ruby.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/ruby.snippets @@ -266,18 +266,6 @@ snippet "(\S+)\.Index" ".index do |item| ... end" r end endsnippet -snippet do "do || ... end" i -do |${1:args}| - $0 -end -endsnippet - -snippet Do "do ... end" i -do - $0 -end -endsnippet - snippet until "until ... end" until ${1:expression} $0 diff --git a/sources_non_forked/vim-snippets/snippets/cmake.snippets b/sources_non_forked/vim-snippets/snippets/cmake.snippets index ef2256a4..3a0b920e 100644 --- a/sources_non_forked/vim-snippets/snippets/cmake.snippets +++ b/sources_non_forked/vim-snippets/snippets/cmake.snippets @@ -1,58 +1,83 @@ -snippet cmake - CMAKE_MINIMUM_REQUIRED(VERSION 2.6) - PROJECT(${1:ProjectName}) +snippet init + cmake_minimum_required(version ${1:2.8.2}) + project(${2:ProjectName}) - FIND_PACKAGE(${2:LIBRARY}) + find_package(${3:library}) - INCLUDE_DIRECTORIES( - ${$2_INCLUDE_DIR} - ) + include_directories(${$3_INCLUDE_DIRS}) - ADD_SUBDIRECTORY(${0:src}) + add_subdirectory(${0:src}) - ADD_EXECUTABLE($1) + add_executable($2) - TARGET_LINK_LIBRARIES($1 - ${$2_LIBRARIES} - ) + target_link_libraries($2 ${$3_LIBRARIES}) + +snippet proj + project(${0:Name}) + +snippet min + cmake_minimum_required(version ${0:2.8.2}) snippet include - INCLUDE_DIRECTORIES( - ${${0:INCLUDE_DIR}} - ) + include_directories(${${0:include_dir}}) snippet find - FIND_PACKAGE(${0:LIBRARY}) + find_package(${1:library} ${0:REQUIRED}) snippet glob - FILE(GLOB ${1:SRCS} *.${0:cpp}) + file(glob ${1:srcs} *.${0:cpp}) snippet subdir - ADD_SUBDIRECTORY(${0:src}) + add_subdirectory(${0:src}) snippet lib - ADD_LIBRARY(${1:lib} ${2:STATIC} - ${${0:SRCS}} - ) + add_library(${1:lib} ${${0:srcs}}) snippet link - TARGET_LINK_LIBRARIES(${1:bin} - ${0:somelib} - ) + target_link_libraries(${1:bin} ${0:somelib}) snippet bin - ADD_EXECUTABLE(${1:bin}) + add_executable(${1:bin}) snippet set - SET(${1:var} ${0:val}) + set(${1:var} ${0:val}) snippet dep - ADD_DEPENDENCIES(${1:target} + add_dependencies(${1:target} ${0:dep} ) +snippet Ext_url + include(ExternalProject) + ExternalProject_Add(${1:googletest} + URL ${2:http://googletest.googlecode.com/files/gtest-1.7.0.zip} + URL_HASH SHA1=${3:f85f6d2481e2c6c4a18539e391aa4ea8ab0394af} + SOURCE_DIR "${4:${CMAKE_BINARY_DIR}/gtest-src}" + BINARY_DIR "${0:${CMAKE_BINARY_DIR}/gtest-build}" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + ) + +snippet Ext_git + include(ExternalProject) + ExternalProject_Add(${1:googletest} + GIT_REPOSITORY ${2:https://github.com/google/googletest.git} + GIT_TAG ${3:master} + SOURCE_DIR "${4:${CMAKE_BINARY_DIR}/googletest-src}" + BINARY_DIR "${0:${CMAKE_BINARY_DIR}/googletest-build}" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + ) + snippet props - SET_TARGET_PROPERTIES(${1:target} - ${2:PROPERTIES} ${3:COMPILE_FLAGS} + set_target_properties(${1:target} + ${2:properties} ${3:compile_flags} ${0:"-O3 -Wall -pedantic"} ) + +snippet test + add_test(${1:ATestName} ${0:testCommand --options}) diff --git a/sources_non_forked/vim-snippets/snippets/eelixir.snippets b/sources_non_forked/vim-snippets/snippets/eelixir.snippets index fd76d169..bb6c5d4a 100644 --- a/sources_non_forked/vim-snippets/snippets/eelixir.snippets +++ b/sources_non_forked/vim-snippets/snippets/eelixir.snippets @@ -1,37 +1,29 @@ snippet % <% ${0} %> - snippet = <%= ${0} %> - snippet end <% end %> - snippet for <%= for ${1:item} <- ${2:items} ${3:@conn} do %> ${0} <% end %> - snippet if <%= if ${1} do %> ${0} <% end %> - snippet ife <%= if ${1} do %> ${2} <%= else %> ${0} <% end %> - snippet ft <%= form_tag(${1:"/users"}, method: ${2::post}) %> ${0} - snippet lin <%= link "${1:Submit}", to: ${2:"/users"}, method: ${3::delete} %> - snippet ff <%= form_for @changeset, ${1:"/users"}, fn f -> %> ${0} diff --git a/sources_non_forked/vim-snippets/snippets/javascript/javascript.es6.snippets b/sources_non_forked/vim-snippets/snippets/javascript/javascript.es6.snippets index e1873c5e..df059a15 100644 --- a/sources_non_forked/vim-snippets/snippets/javascript/javascript.es6.snippets +++ b/sources_non_forked/vim-snippets/snippets/javascript/javascript.es6.snippets @@ -1,26 +1,28 @@ snippet const - const ${0} = ${1}; + const ${1} = ${0}; snippet let - let ${0} = ${1}; + let ${1} = ${0}; snippet im - import ${0} from '${1}'; + import ${1} from '${0}'; snippet cla - class ${0} { - ${1} + class ${1} { + ${0} } snippet clax - class ${0} extends ${1} { - ${2} + class ${1} extends ${2} { + ${0} } snippet => - (${0}) => { - ${1} + (${1}) => { + ${0} } snippet af - (${0}) => { - ${1} + (${1}) => { + ${0} } snippet sym - const ${0} = Symbol('${1}'); + const ${1} = Symbol('${0}'); snippet ed export default ${0} +snippet ${ + ${${1}}${0} diff --git a/sources_non_forked/vim-snippets/snippets/javascript/javascript.snippets b/sources_non_forked/vim-snippets/snippets/javascript/javascript.snippets index 11f3f76c..0d054f4e 100644 --- a/sources_non_forked/vim-snippets/snippets/javascript/javascript.snippets +++ b/sources_non_forked/vim-snippets/snippets/javascript/javascript.snippets @@ -254,9 +254,9 @@ snippet cl # console.debug snippet cd console.debug(${0}); -# console.err +# console.error snippet ce - console.err(${0}); + console.error(${0}); # console.trace snippet ct console.trace(${0:label}); diff --git a/sources_non_forked/vim-snippets/snippets/php.snippets b/sources_non_forked/vim-snippets/snippets/php.snippets index 45a78212..9edefa2c 100644 --- a/sources_non_forked/vim-snippets/snippets/php.snippets +++ b/sources_non_forked/vim-snippets/snippets/php.snippets @@ -325,7 +325,7 @@ snippet foreachkil ${0:} # $... = array (...) -snippet array +snippet array b $${1:arrayName} = array('${2}' => ${3}); snippet try try { @@ -603,3 +603,27 @@ snippet tc } snippet te throw new ${1:Exception}("${2:Error Processing Request}"); + +snippet fpc "file_put_contents" b + file_put_contents(${1:file}, ${2:content}${3:, FILE_APPEND});$0 + +snippet sr "str_replace" + str_replace(${1:search}, ${2:replace}, ${3:subject})$0 + +snippet ia "in_array" + in_array(${1:needle}, ${2:haystack})$0 + +snippet is "isset" + isset(${1:var})$0 + +snippet isa "isset array" + isset($${1:array}[${2:key}])$0 + +snippet in "is_null" + is_null($${1:var})$0 + +snippet fe "file_exists" + file_exists(${1:file})$0 + +snippet id "is_dir" + is_dir(${1:path})$0 diff --git a/sources_non_forked/vim-snippets/snippets/python.snippets b/sources_non_forked/vim-snippets/snippets/python.snippets index d8f01054..0f68acbd 100644 --- a/sources_non_forked/vim-snippets/snippets/python.snippets +++ b/sources_non_forked/vim-snippets/snippets/python.snippets @@ -128,31 +128,43 @@ snippet _ __${1:init}__ # python debugger (pdb) snippet pdb - import pdb; pdb.set_trace() + import pdb + pdb.set_trace() +# bpython debugger (bpdb) +snippet bpdb + import bpdb + bpdb.set_trace() # ipython debugger (ipdb) snippet ipdb - import ipdb; ipdb.set_trace() + import ipdb + ipdb.set_trace() # embed ipython itself snippet iem - import IPython; IPython.embed() + import IPython + IPython.embed() # ipython debugger (pdbbb) snippet pdbbb - import pdbpp; pdbpp.set_trace() + import pdbpp + pdbpp.set_trace() # remote python debugger (rpdb) snippet rpdb - import rpdb; rpdb.set_trace() + import rpdb + rpdb.set_trace() # ptpython snippet ptpython from ptpython.repl import embed embed(globals(), locals(), vi_mode=${1:False}, history_filename=${2:None}) # python console debugger (pudb) snippet pudb - import pudb; pudb.set_trace() + import pudb + pudb.set_trace() # pdb in nosetests snippet nosetrace - from nose.tools import set_trace; set_trace() + from nose.tools import set_trace + set_trace() snippet pprint - import pprint; pprint.pprint(${1}) + import pprint + pprint.pprint(${1}) snippet " """${0:doc} """ diff --git a/sources_non_forked/vim-snippets/snippets/rust.snippets b/sources_non_forked/vim-snippets/snippets/rust.snippets index eeab689c..9bf896f6 100644 --- a/sources_non_forked/vim-snippets/snippets/rust.snippets +++ b/sources_non_forked/vim-snippets/snippets/rust.snippets @@ -31,10 +31,14 @@ snippet main "Main function" pub fn main() { ${0} } -snippet let "let variable declaration" - let ${1:name}${2:: ${3:type}} = ${4}; -snippet letm "let mut variable declaration" - let mut ${1:name}${2:: ${3:type}} = ${4}; +snippet let "let variable declaration with type inference" + let ${1} = ${2}; +snippet lett "let variable declaration with explicit type annotation" + let ${1}: ${2} = ${3}; +snippet letm "let mut variable declaration with type inference" + let mut ${1} = ${2}; +snippet lettm "let mut variable declaration with explicit type annotation" + let mut ${1}: ${2} = ${3}; snippet pln "println!" println!("${1}"); snippet pln, "println! with format param" diff --git a/sources_non_forked/vim-snippets/snippets/slim.snippets b/sources_non_forked/vim-snippets/snippets/slim.snippets index 8eeb4a53..885ca8d7 100644 --- a/sources_non_forked/vim-snippets/snippets/slim.snippets +++ b/sources_non_forked/vim-snippets/snippets/slim.snippets @@ -1,3 +1,16 @@ +snippet pry + - binding.pry +snippet renp + = render partial: '${0}' +# Forms +# ===== +snippet fieldset + fieldset + legend ${1} +snippet css + link rel="stylesheet" href="${1:style.css}" type="text/css" media="${2:all}" +snippet script + script src="${1:script.js}" type="text/javascript" # Some useful Unicode entities # ============================ # Non-Breaking Space @@ -48,17 +61,3 @@ snippet backspace # ⎋ snippet esc ⎋ - -# Forms -# ===== -snippet fieldset - fieldset - legend ${1} - -# Assets -# ====== -snippet css - link rel="stylesheet" href="${1:style.css}" type="text/css" media="${2:all}" - -snippet script - script src="${1:script.js}" type="text/javascript" diff --git a/sources_non_forked/vim-snippets/snippets/systemverilog.snippets b/sources_non_forked/vim-snippets/snippets/systemverilog.snippets index 86d664f6..70a9d2d3 100644 --- a/sources_non_forked/vim-snippets/snippets/systemverilog.snippets +++ b/sources_non_forked/vim-snippets/snippets/systemverilog.snippets @@ -1,37 +1,6 @@ -# if statement -snippet if - if (${1}) begin - ${0} - end -# If/else statements -snippet ife - if (${1}) begin - ${2} - end - else begin - ${1} - end -# Else if statement -snippet eif - else if (${1}) begin - ${0} - end -#Else statement -snippet el - else begin - ${0} - end -# While statement -snippet wh - while (${1}) begin - ${0} - end -# Repeat Loop -snippet rep - repeat (${1}) begin - ${0} - end -# Foreach Loopo +extends verilog + +# Foreach Loop snippet fe foreach (${1}) begin ${0} @@ -41,24 +10,6 @@ snippet dowh do begin ${0} end while (${1}); -# Case statement -snippet case - case (${1}) - {$2}: begin - ${0} - end - default: begin - end - endcase -# CaseZ statement -snippet casez -casez (${1}) - {$2}: begin - ${0} - end - default: begin - end - endcase # Combinational always block snippet alc always_comb begin ${1:: statement_label} @@ -74,11 +25,6 @@ snippet all always_latch begin ${1:: statement_label} ${0} end $1 -# Module block -snippet mod - module ${1:module_name} (${2}); - ${0} - endmodule : $1 # Class snippet cl class ${1:class_name}; From 1d5d6a6b5a2c9f32ce553b95523ec0f5760f9031 Mon Sep 17 00:00:00 2001 From: Isaac Andrade Date: Wed, 17 Feb 2016 12:03:42 -0700 Subject: [PATCH 16/29] Track new files from updated packages --- sources_non_forked/ack.vim/LICENSE | 89 +++++++++++++++ .../syntax_checkers/scss/stylelint.vim | 23 ++++ .../syntax_checkers/yaml/yamllint.vim | 52 +++++++++ sources_non_forked/vim-airline/CHANGELOG.md | 104 ++++++++++++++++++ .../vim-airline/CONTRIBUTING.md | 32 ++++++ .../airline/extensions/tabline/ctrlspace.vim | 97 ++++++++++++++++ .../autoload/airline/extensions/unicode.vim | 22 ++++ .../wordcount/formatters/default.vim | 58 ++++++++++ .../autoload/airline/extensions/ycm.vim | 36 ++++++ .../vim-airline/autoload/airline/msdos.vim | 57 ++++++++++ sources_non_forked/vim-colorschemes | 1 + .../vim-go/autoload/go/alternate.vim | 30 +++++ .../vim-go/autoload/go/asmfmt.vim | 52 +++++++++ sources_non_forked/vim-go/ftplugin/asm.vim | 17 +++ .../vim-multiple-cursors/CONTRIBUTING.md | 23 ++++ .../vim-snippets/snippets/verilog.snippets | 63 +++++++++++ 16 files changed, 756 insertions(+) create mode 100644 sources_non_forked/ack.vim/LICENSE create mode 100644 sources_non_forked/syntastic/syntax_checkers/scss/stylelint.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/yaml/yamllint.vim create mode 100644 sources_non_forked/vim-airline/CHANGELOG.md create mode 100644 sources_non_forked/vim-airline/CONTRIBUTING.md create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/unicode.vim create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/ycm.vim create mode 100644 sources_non_forked/vim-airline/autoload/airline/msdos.vim create mode 160000 sources_non_forked/vim-colorschemes create mode 100644 sources_non_forked/vim-go/autoload/go/alternate.vim create mode 100644 sources_non_forked/vim-go/autoload/go/asmfmt.vim create mode 100644 sources_non_forked/vim-go/ftplugin/asm.vim create mode 100644 sources_non_forked/vim-multiple-cursors/CONTRIBUTING.md create mode 100644 sources_non_forked/vim-snippets/snippets/verilog.snippets diff --git a/sources_non_forked/ack.vim/LICENSE b/sources_non_forked/ack.vim/LICENSE new file mode 100644 index 00000000..056ea36c --- /dev/null +++ b/sources_non_forked/ack.vim/LICENSE @@ -0,0 +1,89 @@ +ack.vim is distributed under the same license terms as Vim itself, which you +can find in full with `:help license` within Vim, or copied in full herein. + +Copyright (c) 2007-2015 Antoine Imbert + and contributors. + +Maintainers may be contacted via GitHub Issues at: + + https://github.com/mileszs/ack.vim/issues + + +VIM LICENSE + +I) There are no restrictions on distributing unmodified copies of Vim except + that they must include this license text. You can also distribute + unmodified parts of Vim, likewise unrestricted except that they must + include this license text. You are also allowed to include executables + that you made from the unmodified Vim sources, plus your own usage + examples and Vim scripts. + +II) It is allowed to distribute a modified (or extended) version of Vim, + including executables and/or source code, when the following four + conditions are met: + 1) This license text must be included unmodified. + 2) The modified Vim must be distributed in one of the following five ways: + a) If you make changes to Vim yourself, you must clearly describe in + the distribution how to contact you. When the maintainer asks you + (in any way) for a copy of the modified Vim you distributed, you + must make your changes, including source code, available to the + maintainer without fee. The maintainer reserves the right to + include your changes in the official version of Vim. What the + maintainer will do with your changes and under what license they + will be distributed is negotiable. If there has been no negotiation + then this license, or a later version, also applies to your changes. + The current maintainer is Bram Moolenaar . If this + changes it will be announced in appropriate places (most likely + vim.sf.net, www.vim.org and/or comp.editors). When it is completely + impossible to contact the maintainer, the obligation to send him + your changes ceases. Once the maintainer has confirmed that he has + received your changes they will not have to be sent again. + b) If you have received a modified Vim that was distributed as + mentioned under a) you are allowed to further distribute it + unmodified, as mentioned at I). If you make additional changes the + text under a) applies to those changes. + c) Provide all the changes, including source code, with every copy of + the modified Vim you distribute. This may be done in the form of a + context diff. You can choose what license to use for new code you + add. The changes and their license must not restrict others from + making their own changes to the official version of Vim. + d) When you have a modified Vim which includes changes as mentioned + under c), you can distribute it without the source code for the + changes if the following three conditions are met: + - The license that applies to the changes permits you to distribute + the changes to the Vim maintainer without fee or restriction, and + permits the Vim maintainer to include the changes in the official + version of Vim without fee or restriction. + - You keep the changes for at least three years after last + distributing the corresponding modified Vim. When the maintainer + or someone who you distributed the modified Vim to asks you (in + any way) for the changes within this period, you must make them + available to him. + - You clearly describe in the distribution how to contact you. This + contact information must remain valid for at least three years + after last distributing the corresponding modified Vim, or as long + as possible. + e) When the GNU General Public License (GPL) applies to the changes, + you can distribute the modified Vim under the GNU GPL version 2 or + any later version. + 3) A message must be added, at least in the output of the ":version" + command and in the intro screen, such that the user of the modified Vim + is able to see that it was modified. When distributing as mentioned + under 2)e) adding the message is only required for as far as this does + not conflict with the license used for the changes. + 4) The contact information as required under 2)a) and 2)d) must not be + removed or changed, except that the person himself can make + corrections. + +III) If you distribute a modified version of Vim, you are encouraged to use + the Vim license for your changes and make them available to the + maintainer, including the source code. The preferred way to do this is + by e-mail or by uploading the files to a server and e-mailing the URL. + If the number of changes is small (e.g., a modified Makefile) e-mailing a + context diff will do. The e-mail address to be used is + + +IV) It is not allowed to remove this license from the distribution of the Vim + sources, parts of it or from a modified version. You may use this + license for previous Vim releases instead of the license that they came + with, at your option. diff --git a/sources_non_forked/syntastic/syntax_checkers/scss/stylelint.vim b/sources_non_forked/syntastic/syntax_checkers/scss/stylelint.vim new file mode 100644 index 00000000..19629164 --- /dev/null +++ b/sources_non_forked/syntastic/syntax_checkers/scss/stylelint.vim @@ -0,0 +1,23 @@ +"============================================================================ +"File: stylelint.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: LCD 47 +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('g:loaded_syntastic_scss_stylelint_checker') + finish +endif +let g:loaded_syntastic_scss_stylelint_checker = 1 + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'scss', + \ 'name': 'stylelint', + \ 'redirect': 'css/stylelint'}) + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/syntastic/syntax_checkers/yaml/yamllint.vim b/sources_non_forked/syntastic/syntax_checkers/yaml/yamllint.vim new file mode 100644 index 00000000..130877d2 --- /dev/null +++ b/sources_non_forked/syntastic/syntax_checkers/yaml/yamllint.vim @@ -0,0 +1,52 @@ +"============================================================================ +"File: yamllint.vim +"Description: YAML files linting for syntastic.vim +"Maintainer: Adrien Vergé +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('g:loaded_syntastic_yaml_yamllint_checker') + finish +endif +let g:loaded_syntastic_yaml_yamllint_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_yaml_yamllint_GetLocList() dict + let makeprg = self.makeprgBuild({ 'args_after': '-f parsable' }) + + let errorformat = + \ '%f:%l:%c: [%trror] %m,' . + \ '%f:%l:%c: [%tarning] %m' + + let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' } + + let loclist = SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat, + \ 'env': env, + \ 'returns': [0, 1] }) + + for e in loclist + if e['type'] ==? 'W' + let e['subtype'] = 'Style' + endif + endfor + + return loclist +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'yaml', + \ 'name': 'yamllint' }) + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/vim-airline/CHANGELOG.md b/sources_non_forked/vim-airline/CHANGELOG.md new file mode 100644 index 00000000..3aacc267 --- /dev/null +++ b/sources_non_forked/vim-airline/CHANGELOG.md @@ -0,0 +1,104 @@ +# Change Log + +This is the Changelog for the vim-airline project. + +## [Unreleased] +- Changes + - Themes have been moved into an extra repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) + - Many new themes + - Airline Moved to new [repository](https://github.com/vim-airline/vim-airline) +- New features + - Integration with [taboo](https://github.com/gcmt/taboo.vim), [vim-ctrlspace](https://github.com/szw/vim-ctrlspace), + [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim), [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) + - Support for Neovim + - Added wordcount extension + - Adding Crypt and Byte Order Mark Indicator + +## [0.7] - 2014-12-10 +- New features + - accents support; allowing multiple colors/styles in the same section + - extensions: eclim + - themes: understated, monochrome, murmur, sol, lucius +- Improvements + - solarized theme; support for 8 color terminals + - tabline resizes dynamically based on number of open buffers + - miscellaneous bug fixes + +## [0.6] - 2013-10-08 + +- New features + - accents support; allowing multiple colors/styles in the same section + - extensions: eclim + - themes: understated, monochrome, murmur, sol, lucius +- Improvements + - solarized theme; support for 8 color terminals + - tabline resizes dynamically based on number of open buffers + - miscellaneous bug fixes + +## [0.5] - 2013-09-13 + +- New features + - smart tabline extension which displays all buffers when only one tab is visible + - automatic section truncation when the window resizes + - support for a declarative style of configuration, allowing parts to contain metadata such as minimum window width or conditional visibility + - themes: zenburn, serene +- Other + - a sizable chunk of vim-airline is now running through a unit testing suite, automated via Travis CI + +## [0.4] - 2013-08-26 + + - New features + - integration with csv.vim and vim-virtualenv + - hunks extension for vim-gitgutter and vim-signify + - automatic theme switching with matching colorschemes + - commands: AirlineToggle + - themes: base16 (all variants) + - Improvements + - integration with undotree, tagbar, and unite + - Other + - refactored core and exposed statusline builder and pipeline + - all extension related g:airline_variables have been deprecated in favor of g:airline#extensions# variables + - extensions found in the runtimepath outside of the default distribution will be automatically loaded + +## [0.3] - 2013-08-12 + +- New features + - first-class integration with tagbar + - white space detection for trailing spaces and mixed indentation + - introduced warning section for syntastic and white space detection + - improved ctrlp integration: colors are automatically selected based on the current airline theme + - new themes: molokai, bubblegum, jellybeans, tomorrow +- Bug fixes + - improved handling of eventignore used by other plugins +- Other + - code cleaned up for clearer separation between core functionality and extensions + - introduced color extraction from highlight groups, allowing themes to be generated off of the active colorscheme (e.g. jellybeans and tomorrow) + - License changed to MIT + +## [0.2] - 2013-07-28 + +- New features + - iminsert detection + - integration with vimshell, vimfiler, commandt, lawrencium + - enhanced bufferline theming + - support for ctrlp theming + - support for custom window excludes +- New themes + - luna and wombat +- Bug fixes + - refresh branch name after switching with a shell command + +## [0.1] - 2013-07-17 + +- Initial release + - integration with other plugins: netrw, unite, nerdtree, undotree, gundo, tagbar, minibufexplr, ctrlp + - support for themes: 8 included + +[Unreleased]: https://github.com/vim-airline/vim-airline/compare/v0.7...HEAD +[0.7]: https://github.com/vim-airline/vim-airline/compare/v0.6...v0.7 +[0.6]: https://github.com/vim-airline/vim-airline/compare/v0.5...v0.6 +[0.5]: https://github.com/vim-airline/vim-airline/compare/v0.4...v0.5 +[0.4]: https://github.com/vim-airline/vim-airline/compare/v0.3...v0.4 +[0.3]: https://github.com/vim-airline/vim-airline/compare/v0.2...v0.3 +[0.2]: https://github.com/vim-airline/vim-airline/compare/v0.1...v0.2 +[0.1]: https://github.com/vim-airline/vim-airline/releases/tag/v0.1 diff --git a/sources_non_forked/vim-airline/CONTRIBUTING.md b/sources_non_forked/vim-airline/CONTRIBUTING.md new file mode 100644 index 00000000..f97699ec --- /dev/null +++ b/sources_non_forked/vim-airline/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# Contributions + +Contributions and pull requests are welcome. Please take note of the following guidelines: + +* Adhere to the existing style as much as possible; notably, 2 space indents and long-form keywords. +* Keep the history clean! Squash your branches before you submit a pull request. `pull --rebase` is your friend. +* Any changes to the core should be tested against Vim 7.2. + +# Bugs + +Tracking down bugs can take a very long time due to different configurations, versions, and operating systems. To ensure a timely response, please help me out by doing the following: + +* Reproduce it with this [minivimrc][7] repository to rule out any configuration conflicts. Even better, create a `gist` of your vimrc that is compatible with [pathogen][11]. +* And to make it easier to reproduce, please supply the following: + * the `:version` of vim + * the commit of vim-airline you're using + * the OS that you're using, including terminal emulator, GUI vs non-GUI + +# Themes + +* If you submit a theme, please create a screenshot so it can be added to the [Wiki][14]. +* In the majority of cases, modifications to colors of existing themes will likely be rejected. Themes are a subjective thing, so while you may prefer that a particular color be darker, another user will prefer it to be lighter, or something entirely different. The more popular the theme, the more unlikely the change will be accepted. However, it's pretty simple to create your own theme; copy the theme to `~/.vim/autoload/airline/themes` under a new name with your modifications, and it can be used. + +# Maintenance + +If you would like to take a more active role in improving vim-airline, please consider [becoming a maintainer][43]. + + +[7]: https://github.com/bling/minivimrc +[11]: https://github.com/tpope/vim-pathogen +[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots +[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim new file mode 100644 index 00000000..9490ab02 --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim @@ -0,0 +1,97 @@ +" MIT License. Copyright (c) 2016 Kevin Sapper +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:current_bufnr = -1 +let s:current_tabnr = -1 +let s:current_tabline = '' + +function! airline#extensions#tabline#ctrlspace#off() + augroup airline_tabline_ctrlspace + autocmd! + augroup END +endfunction + +function! airline#extensions#tabline#ctrlspace#on() + augroup airline_tabline_ctrlspace + autocmd! + autocmd BufDelete * call airline#extensions#tabline#ctrlspace#invalidate() + augroup END +endfunction + +function! airline#extensions#tabline#ctrlspace#invalidate() + let s:current_bufnr = -1 + let s:current_tabnr = -1 +endfunction + +function! airline#extensions#tabline#ctrlspace#get() + let cur_buf = bufnr('%') + + let s:tab_list = ctrlspace#api#TabList() + for tab in s:tab_list + if tab.current + let cur_tab = tab.index + endif + endfor + + if cur_buf == s:current_bufnr && cur_tab == s:current_tabnr + return s:current_tabline + endif + + let b = airline#extensions#tabline#new_builder() + + call b.add_section_spaced('airline_tabtype', 'buffers') + + let s:buffer_list = ctrlspace#api#BufferList(cur_tab) + for buffer in s:buffer_list + if cur_buf == buffer.index + if buffer.modified + let group = 'airline_tabmod' + else + let group = 'airline_tabsel' + endif + else + if buffer.modified + let group = 'airline_tabmod_unsel' + elseif buffer.visible + let group = 'airline_tab' + else + let group = 'airline_tabhid' + endif + endif + + let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)' + call b.add_section_spaced(group, buf_name) + endfor + + + call b.add_section('airline_tabfill', '') + call b.split() + call b.add_section('airline_tabfill', '') + + for tab in s:tab_list + if tab.current + if tab.modified + let group = 'airline_tabmod_right' + else + let group = 'airline_tabsel_right' + endif + else + if tab.modified + let group = 'airline_tabmod_unsel_right' + else + let group = 'airline_tabhid_right' + endif + endif + + call b.add_section_spaced(group, tab.title.ctrlspace#api#TabBuffersNumber(tab.index)) + endfor + + call b.add_section_spaced('airline_tabtype', 'tabs') + + let s:current_bufnr = cur_buf + let s:current_tabnr = cur_tab + let s:current_tabline = b.build() + return s:current_tabline +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/unicode.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/unicode.vim new file mode 100644 index 00000000..38a2141a --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/unicode.vim @@ -0,0 +1,22 @@ +" MIT License. Copyright (c) 2013-2016 Bailey Ling. +" vim: et ts=2 sts=2 sw=2 + +if !get(g:, 'loaded_unicodePlugin', 0) + finish +endif + +function! airline#extensions#unicode#apply(...) + if exists(":UnicodeTable") == 2 && bufname('') ==# 'UnicodeTable' + call airline#parts#define('unicode', { + \ 'text': '[UnicodeTable]', + \ 'accent': 'bold' }) + let w:airline_section_a = airline#section#create(['unicode']) + let w:airline_section_b = '' + let w:airline_section_c = '' + let w:airline_section_y = '' + endif +endfunction + +function! airline#extensions#unicode#init(ext) + call a:ext.add_statusline_func('airline#extensions#unicode#apply') +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim new file mode 100644 index 00000000..8f1293fa --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim @@ -0,0 +1,58 @@ +" MIT License. Copyright (c) 2013-2016 Bailey Ling. +" vim: et ts=2 sts=2 sw=2 + +function! airline#extensions#wordcount#formatters#default#format() + let words = string(s:wordcount()) + if empty(words) + return + endif + let separator = s:get_decimal_group() + if words > 999 && !empty(separator) + " Format number according to locale, e.g. German: 1.245 or English: 1,245 + let a = join(reverse(split(words, '.\zs')),'') + let a = substitute(a, '...', '&'.separator, 'g') + let words = join(reverse(split(a, '.\zs')),'') + endif + return words . " words" . g:airline_symbols.space . g:airline_right_alt_sep . g:airline_symbols.space +endfunction + +function! s:wordcount() + if exists("*wordcount") + let l:mode = mode() + if l:mode ==# 'v' || l:mode ==# 'V' || l:mode ==# 's' || l:mode ==# 'S' + let l:visual_words = wordcount()['visual_words'] + if l:visual_words != '' + return l:visual_words + else + return 0 + endif + else + return wordcount()['words'] + endif + elseif mode() =~? 's' + return + else + let old_status = v:statusmsg + let position = getpos(".") + exe "silent normal! g\" + let stat = v:statusmsg + call setpos('.', position) + let v:statusmsg = old_status + + let parts = split(stat) + if len(parts) > 11 + return str2nr(parts[11]) + else + return + endif + endif +endfunction + +function s:get_decimal_group() + if match(v:lang, '\v\cC|en') > -1 + return ',' + elseif match(v:lang, '\v\cde|dk|fr|pt') > -1 + return '.' + endif + return '' +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/ycm.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/ycm.vim new file mode 100644 index 00000000..dc44c0e7 --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/ycm.vim @@ -0,0 +1,36 @@ +" MIT License. Copyright (c) 2015 Evgeny Firsov. +" vim: et ts=2 sts=2 sw=2 + +let s:spc = g:airline_symbols.space +let s:error_symbol = get(g:, 'airline#extensions#ycm#error_symbol', 'E:') +let s:warning_symbol = get(g:, 'airline#extensions#ycm#warning_symbol', 'W:') + +function! airline#extensions#ycm#init(ext) + call airline#parts#define_function('ycm_error_count', 'airline#extensions#ycm#get_error_count') + call airline#parts#define_function('ycm_warning_count', 'airline#extensions#ycm#get_warning_count') +endfunction + +function! airline#extensions#ycm#get_error_count() + if exists(':YcmDiag') + let cnt = youcompleteme#GetErrorCount() + + if cnt != 0 + return s:error_symbol.cnt + endif + endif + + return '' +endfunction + +function! airline#extensions#ycm#get_warning_count() + if exists(':YcmDiag') + let cnt = youcompleteme#GetWarningCount() + + if cnt != 0 + return s:warning_symbol.cnt.s:spc + endif + endif + + return '' +endfunction + diff --git a/sources_non_forked/vim-airline/autoload/airline/msdos.vim b/sources_non_forked/vim-airline/autoload/airline/msdos.vim new file mode 100644 index 00000000..92e9bb52 --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/msdos.vim @@ -0,0 +1,57 @@ +" MIT License. Copyright (c) 2013-2016 Bailey Ling. +" vim: et ts=2 sts=2 sw=2 + +" basic 16 msdos from MSDOS +" see output of color, should be +" 0 Black +" 1 DarkBlue +" 2 DarkGreen +" 3 DarkCyan +" 4 DarkRed +" 5 DarkMagenta +" 6 Brown +" 7 LightGray +" 8 DarkGray +" 9 Blue +" 10 Green +" 11 Cyan +" 12 Red +" 13 Magenta +" 14 Yellow +" 15 White + +let s:basic16 = [ + \ [ 0x00, 0x00, 0x00 ], + \ [ 0x00, 0x00, 0x80 ], + \ [ 0x00, 0x80, 0x00 ], + \ [ 0x00, 0x80, 0x80 ], + \ [ 0x80, 0x00, 0x00 ], + \ [ 0x80, 0x00, 0x80 ], + \ [ 0x80, 0x80, 0x00 ], + \ [ 0xC0, 0xC0, 0xC0 ], + \ [ 0x80, 0x80, 0x80 ], + \ [ 0x00, 0x00, 0xFF ], + \ [ 0x00, 0xFF, 0x00 ], + \ [ 0x00, 0xFF, 0xFF ], + \ [ 0xFF, 0x00, 0x00 ], + \ [ 0xFF, 0x00, 0xFF ], + \ [ 0xFF, 0xFF, 0x00 ], + \ [ 0xFF, 0xFF, 0xFF ] + \ ] + +function! airline#msdos#round_msdos_colors(rgblist) + " Check for values from MSDOS 16 color terminal + let best = [] + let min = 100000 + let list = s:basic16 + for value in list + let t = abs(value[0] - a:rgblist[0]) + + \ abs(value[1] - a:rgblist[1]) + + \ abs(value[2] - a:rgblist[2]) + if min > t + let min = t + let best = value + endif + endfor + return index(s:basic16, best) +endfunction diff --git a/sources_non_forked/vim-colorschemes b/sources_non_forked/vim-colorschemes new file mode 160000 index 00000000..28a989b2 --- /dev/null +++ b/sources_non_forked/vim-colorschemes @@ -0,0 +1 @@ +Subproject commit 28a989b28457e38df620e4c7ab23e224aff70efe diff --git a/sources_non_forked/vim-go/autoload/go/alternate.vim b/sources_non_forked/vim-go/autoload/go/alternate.vim new file mode 100644 index 00000000..83951cf0 --- /dev/null +++ b/sources_non_forked/vim-go/autoload/go/alternate.vim @@ -0,0 +1,30 @@ +" By default use edit (current buffer view) to switch +if !exists("g:go_alternate_mode") + let g:go_alternate_mode = "edit" +endif + +" Test alternates between the implementation of code and the test code. +function! go#alternate#Switch(bang, cmd) + let l:file = go#alternate#Filename(fnameescape(expand("%"))) + if !filereadable(l:file) && !bufexists(l:file) && !a:bang + redraws! | echon "vim-go: " | echohl ErrorMsg | echon "couldn't find ".file | echohl None + return + elseif empty(a:cmd) + execute ":" . g:go_alternate_mode . " " . file + else + execute ":" . a:cmd . " " . file + endif +endfunction + +" Filename returns the name of the test file or implementation file +" depending on the arguments +function! go#alternate#Filename(path) + if empty(matchstr(a:path, "_test")) + let l:root = split(a:path, ".go$")[0] + let l:file = l:root . "_test.go" + else + let l:root = split(a:path, "_test.go$")[0] + let l:file = l:root . ".go" + endif + return l:file +endfunction diff --git a/sources_non_forked/vim-go/autoload/go/asmfmt.vim b/sources_non_forked/vim-go/autoload/go/asmfmt.vim new file mode 100644 index 00000000..0b427944 --- /dev/null +++ b/sources_non_forked/vim-go/autoload/go/asmfmt.vim @@ -0,0 +1,52 @@ +" asmfmt.vim: Vim command to format Go asm files with asmfmt +" (github.com/klauspost/asmfmt). +" +" This filetype plugin adds new commands for asm buffers: +" +" :Fmt +" +" Filter the current asm buffer through asmfmt. +" It tries to preserve cursor position and avoids +" replacing the buffer with stderr output. +" +" Options: +" +" g:go_asmfmt_autosave [default=1] +" +" Flag to automatically call :Fmt when file is saved. + +let s:got_fmt_error = 0 + +" This is a trimmed-down version of the logic in fmt.vim. + +function! go#asmfmt#Format() + " Save state. + let l:curw = winsaveview() + + " Write the current buffer to a tempfile. + let l:tmpname = tempname() + call writefile(getline(1, '$'), l:tmpname) + + " Run asmfmt. + let path = go#path#CheckBinPath("asmfmt") + if empty(path) + return + endif + let out = system(path . ' -w ' . l:tmpname) + + " If there's no error, replace the current file with the output. + if v:shell_error == 0 + " Remove undo point caused by BufWritePre. + try | silent undojoin | catch | endtry + + " Replace the current file with the temp file; then reload the buffer. + let old_fileformat = &fileformat + call rename(l:tmpname, expand('%')) + silent edit! + let &fileformat = old_fileformat + let &syntax = &syntax + endif + + " Restore the cursor/window positions. + call winrestview(l:curw) +endfunction diff --git a/sources_non_forked/vim-go/ftplugin/asm.vim b/sources_non_forked/vim-go/ftplugin/asm.vim new file mode 100644 index 00000000..0ac3594b --- /dev/null +++ b/sources_non_forked/vim-go/ftplugin/asm.vim @@ -0,0 +1,17 @@ +" asm.vim: Vim filetype plugin for Go assembler. + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl fo< com< cms<" + +setlocal formatoptions-=t + +setlocal comments=s1:/*,mb:*,ex:*/,:// +setlocal commentstring=//\ %s + +setlocal noexpandtab + +command! -nargs=0 AsmFmt call go#asmfmt#Format() diff --git a/sources_non_forked/vim-multiple-cursors/CONTRIBUTING.md b/sources_non_forked/vim-multiple-cursors/CONTRIBUTING.md new file mode 100644 index 00000000..878aa59b --- /dev/null +++ b/sources_non_forked/vim-multiple-cursors/CONTRIBUTING.md @@ -0,0 +1,23 @@ +# Problems summary + +## Expected + +## Environment Information + * OS: + * Neovim/Vim/Gvim version: + +## Provide a minimal .vimrc with less than 50 lines + + " Your minimal.vimrc + +## Generate a logfile if appropriate + + 1. export NVIM_PYTHON_LOG_FILE=/tmp/log + 2. export NVIM_PYTHON_LOG_LEVEL=DEBUG + 3. nvim -u minimal.vimrc + 4. recreate your issue + 5. cat /tmp/log_{PID} + +## Screen shot (if possible) + +## Upload the log file diff --git a/sources_non_forked/vim-snippets/snippets/verilog.snippets b/sources_non_forked/vim-snippets/snippets/verilog.snippets new file mode 100644 index 00000000..5cd80f39 --- /dev/null +++ b/sources_non_forked/vim-snippets/snippets/verilog.snippets @@ -0,0 +1,63 @@ +# if statement +snippet if + if (${1}) begin + ${0} + end +# If/else statements +snippet ife + if (${1}) begin + ${2} + end + else begin + ${1} + end +# Else if statement +snippet eif + else if (${1}) begin + ${0} + end +#Else statement +snippet el + else begin + ${0} + end +# While statement +snippet wh + while (${1}) begin + ${0} + end +# Repeat Loop +snippet rep + repeat (${1}) begin + ${0} + end +# Case statement +snippet case + case (${1:/* variable */}) + ${2:/* value */}: begin + ${3} + end + default: begin + ${4} + end + endcase +# CaseZ statement +snippet casez + casez (${1:/* variable */}) + ${2:/* value */}: begin + ${3} + end + default: begin + ${4} + end + endcase +# Always block +snippet al + always @(${1:/* sensitive list */}) begin + ${0} + end +# Module block +snippet mod + module ${1:module_name} (${2}); + ${0} + endmodule From 913d549a8f5b39fd3a4a3e5bc8a176b1f32e51ee Mon Sep 17 00:00:00 2001 From: Amir Salihefendic Date: Thu, 18 Feb 2016 17:17:21 +0000 Subject: [PATCH 17/29] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 88e17e49..21e99701 100644 --- a/README.md +++ b/README.md @@ -334,3 +334,9 @@ Vimscript mappings: * [Folding in Vim](http://amix.dk/blog/post/19132#Folding-in-Vim) * [ Zen room for Vim: Focusing only on the essential](http://amix.dk/blog/post/19744#zenroom-for-Vim-Focsuing-only-on-the-essential) + +## How to uninstall +Do following: +* Remove `~/.vim_runtime` +* Remove any lines that refernce `.vim_runtime` in your `~/.vimrc` + From 8c31edbd045c991082465dc9b8abf55a026f4b7c Mon Sep 17 00:00:00 2001 From: amix Date: Sat, 20 Feb 2016 13:13:10 +0000 Subject: [PATCH 18/29] Updated plugins --- sources_non_forked/syntastic/README.markdown | 22 +-- .../syntastic/plugin/syntastic.vim | 6 + .../syntastic/plugin/syntastic/registry.vim | 1 + .../syntax_checkers/c/clang_check.vim | 2 +- .../syntax_checkers/c/clang_tidy.vim | 2 +- .../syntax_checkers/chef/foodcritic.vim | 4 +- .../syntax_checkers/cpp/clang_check.vim | 2 +- .../syntax_checkers/cpp/clang_tidy.vim | 2 +- .../syntax_checkers/jade/jade_lint.vim | 24 +-- .../syntax_checkers/pug/pug_lint.vim | 40 ++++ sources_non_forked/vim-airline-themes/LICENSE | 21 +++ .../vim-airline-themes/README.md | 51 +++++ .../autoload/airline/themes/badwolf.vim | 52 ++++++ .../autoload/airline/themes/base16.vim | 164 ++++++++++++++++ .../autoload/airline/themes/base16_3024.vim | 73 ++++++++ .../autoload/airline/themes/base16_apathy.vim | 73 ++++++++ .../autoload/airline/themes/base16_ashes.vim | 73 ++++++++ .../airline/themes/base16_atelierdune.vim | 73 ++++++++ .../airline/themes/base16_atelierforest.vim | 73 ++++++++ .../airline/themes/base16_atelierheath.vim | 73 ++++++++ .../airline/themes/base16_atelierlakeside.vim | 73 ++++++++ .../airline/themes/base16_atelierseaside.vim | 73 ++++++++ .../autoload/airline/themes/base16_bespin.vim | 73 ++++++++ .../autoload/airline/themes/base16_brewer.vim | 73 ++++++++ .../autoload/airline/themes/base16_bright.vim | 73 ++++++++ .../autoload/airline/themes/base16_chalk.vim | 73 ++++++++ .../airline/themes/base16_codeschool.vim | 73 ++++++++ .../autoload/airline/themes/base16_colors.vim | 73 ++++++++ .../airline/themes/base16_default.vim | 73 ++++++++ .../airline/themes/base16_eighties.vim | 73 ++++++++ .../autoload/airline/themes/base16_embers.vim | 73 ++++++++ .../autoload/airline/themes/base16_flat.vim | 73 ++++++++ .../autoload/airline/themes/base16_google.vim | 73 ++++++++ .../airline/themes/base16_grayscale.vim | 73 ++++++++ .../airline/themes/base16_greenscreen.vim | 73 ++++++++ .../airline/themes/base16_harmonic16.vim | 73 ++++++++ .../airline/themes/base16_hopscotch.vim | 73 ++++++++ .../airline/themes/base16_isotope.vim | 73 ++++++++ .../airline/themes/base16_londontube.vim | 73 ++++++++ .../airline/themes/base16_marrakesh.vim | 73 ++++++++ .../autoload/airline/themes/base16_mocha.vim | 73 ++++++++ .../airline/themes/base16_monokai.vim | 73 ++++++++ .../autoload/airline/themes/base16_ocean.vim | 73 ++++++++ .../airline/themes/base16_paraiso.vim | 73 ++++++++ .../autoload/airline/themes/base16_pop.vim | 73 ++++++++ .../airline/themes/base16_railscasts.vim | 73 ++++++++ .../airline/themes/base16_shapeshifter.vim | 73 ++++++++ .../airline/themes/base16_solarized.vim | 73 ++++++++ .../airline/themes/base16_summerfruit.vim | 73 ++++++++ .../airline/themes/base16_tomorrow.vim | 73 ++++++++ .../airline/themes/base16_twilight.vim | 73 ++++++++ .../autoload/airline/themes/base16color.vim | 77 ++++++++ .../autoload/airline/themes/behelit.vim | 58 ++++++ .../autoload/airline/themes/bubblegum.vim | 70 +++++++ .../autoload/airline/themes/cool.vim | 63 +++++++ .../autoload/airline/themes/dark.vim | 102 ++++++++++ .../autoload/airline/themes/distinguished.vim | 59 ++++++ .../autoload/airline/themes/durant.vim | 62 ++++++ .../autoload/airline/themes/hybrid.vim | 58 ++++++ .../autoload/airline/themes/hybridline.vim | 34 ++++ .../autoload/airline/themes/jellybeans.vim | 80 ++++++++ .../autoload/airline/themes/kalisi.vim | 70 +++++++ .../autoload/airline/themes/kolor.vim | 59 ++++++ .../autoload/airline/themes/laederon.vim | 62 ++++++ .../autoload/airline/themes/light.vim | 45 +++++ .../autoload/airline/themes/lucius.vim | 56 ++++++ .../autoload/airline/themes/luna.vim | 92 +++++++++ .../autoload/airline/themes/molokai.vim | 65 +++++++ .../autoload/airline/themes/monochrome.vim | 15 ++ .../autoload/airline/themes/murmur.vim | 82 ++++++++ .../autoload/airline/themes/papercolor.vim | 65 +++++++ .../autoload/airline/themes/powerlineish.vim | 46 +++++ .../autoload/airline/themes/raven.vim | 85 +++++++++ .../autoload/airline/themes/serene.vim | 41 ++++ .../autoload/airline/themes/silver.vim | 85 +++++++++ .../autoload/airline/themes/simple.vim | 46 +++++ .../autoload/airline/themes/sol.vim | 90 +++++++++ .../autoload/airline/themes/solarized.vim | 176 ++++++++++++++++++ .../autoload/airline/themes/term.vim | 92 +++++++++ .../autoload/airline/themes/tomorrow.vim | 44 +++++ .../autoload/airline/themes/ubaryd.vim | 64 +++++++ .../autoload/airline/themes/understated.vim | 43 +++++ .../autoload/airline/themes/wombat.vim | 90 +++++++++ .../autoload/airline/themes/xtermlight.vim | 45 +++++ .../autoload/airline/themes/zenburn.vim | 44 +++++ .../plugin/airline-themes.vim | 7 + .../vim-airline/autoload/airline/init.vim | 1 + sources_non_forked/vim-pug/README.markdown | 19 ++ sources_non_forked/vim-pug/ftdetect/pug.vim | 5 + sources_non_forked/vim-pug/ftplugin/pug.vim | 57 ++++++ sources_non_forked/vim-pug/indent/pug.vim | 70 +++++++ sources_non_forked/vim-pug/syntax/pug.vim | 104 +++++++++++ .../vim-snippets/snippets/rails.snippets | 4 +- update_plugins.py | 5 +- 94 files changed, 5590 insertions(+), 41 deletions(-) create mode 100644 sources_non_forked/syntastic/syntax_checkers/pug/pug_lint.vim create mode 100644 sources_non_forked/vim-airline-themes/LICENSE create mode 100644 sources_non_forked/vim-airline-themes/README.md create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/badwolf.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_3024.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_apathy.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ashes.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bespin.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_brewer.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bright.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_chalk.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_colors.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_default.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_eighties.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_embers.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_flat.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_google.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_isotope.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_londontube.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_mocha.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_monokai.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ocean.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_pop.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_solarized.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_twilight.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/base16color.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/behelit.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/bubblegum.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/cool.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/dark.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/distinguished.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/durant.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/hybrid.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/hybridline.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/jellybeans.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/kalisi.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/kolor.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/laederon.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/light.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/luna.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/molokai.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/monochrome.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/murmur.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/papercolor.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/powerlineish.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/raven.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/serene.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/silver.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/simple.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/sol.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/solarized.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/term.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/tomorrow.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/ubaryd.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/understated.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/wombat.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/xtermlight.vim create mode 100644 sources_non_forked/vim-airline-themes/autoload/airline/themes/zenburn.vim create mode 100644 sources_non_forked/vim-airline-themes/plugin/airline-themes.vim create mode 100644 sources_non_forked/vim-pug/README.markdown create mode 100644 sources_non_forked/vim-pug/ftdetect/pug.vim create mode 100644 sources_non_forked/vim-pug/ftplugin/pug.vim create mode 100644 sources_non_forked/vim-pug/indent/pug.vim create mode 100644 sources_non_forked/vim-pug/syntax/pug.vim diff --git a/sources_non_forked/syntastic/README.markdown b/sources_non_forked/syntastic/README.markdown index aa5d842f..a05b0f2a 100644 --- a/sources_non_forked/syntastic/README.markdown +++ b/sources_non_forked/syntastic/README.markdown @@ -54,17 +54,17 @@ compile their code or execute their script to find them. At the time of this writing, syntastic has checking plugins for ActionScript, Ada, Ansible configurations, API Blueprint, AppleScript, AsciiDoc, ASM, -BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CoffeeScript, Coco, Coq, -CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, Erlang, -eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe, Handlebars, -HSS, HTML, Jade, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo, LISP, LLVM -intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix, Objective-C, -Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, OS X and -iOS property lists, Puppet, Python, QML, R, Racket, Relax NG, reStructuredText, -RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Sphinx, SQL, Stylus, Tcl, TeX, -Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, VimL, xHtml, XML, XSLT, XQuery, -YACC, YAML, z80, Zope page templates, and zsh. See the [wiki][3] for details -about the corresponding supported checkers. +BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CoffeeScript, Coco, +Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, +Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe, +Handlebars, HSS, HTML, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo, LISP, +LLVM intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix, +Objective-C, Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable +Object, OS X and iOS property lists, Pug (formerly Jade), Puppet, Python, QML, +R, Racket, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, +SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, +VHDL, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, z80, Zope page templates, and +zsh. See the [wiki][3] for details about the corresponding supported checkers. A number of third-party Vim plugins also provide checkers for syntastic, for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12], diff --git a/sources_non_forked/syntastic/plugin/syntastic.vim b/sources_non_forked/syntastic/plugin/syntastic.vim index 7cc98b2c..5e0bf8bb 100644 --- a/sources_non_forked/syntastic/plugin/syntastic.vim +++ b/sources_non_forked/syntastic/plugin/syntastic.vim @@ -19,7 +19,13 @@ if has('reltime') lockvar! g:_SYNTASTIC_START endif +<<<<<<< 913d549a8f5b39fd3a4a3e5bc8a176b1f32e51ee let g:_SYNTASTIC_VERSION = '3.7.0-86' +||||||| merged common ancestors +let g:_SYNTASTIC_VERSION = '3.7.0-69' +======= +let g:_SYNTASTIC_VERSION = '3.7.0-88' +>>>>>>> Updated plugins lockvar g:_SYNTASTIC_VERSION " Sanity checks {{{1 diff --git a/sources_non_forked/syntastic/plugin/syntastic/registry.vim b/sources_non_forked/syntastic/plugin/syntastic/registry.vim index 13453b12..695d3364 100644 --- a/sources_non_forked/syntastic/plugin/syntastic/registry.vim +++ b/sources_non_forked/syntastic/plugin/syntastic/registry.vim @@ -68,6 +68,7 @@ let s:_DEFAULT_CHECKERS = { \ 'po': ['msgfmt'], \ 'pod': ['podchecker'], \ 'puppet': ['puppet', 'puppetlint'], + \ 'pug': ['pug_lint'], \ 'python': ['python', 'flake8', 'pylint'], \ 'qml': ['qmllint'], \ 'r': [], diff --git a/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim b/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim index 63d0cdbe..4c3677ab 100644 --- a/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim +++ b/sources_non_forked/syntastic/syntax_checkers/c/clang_check.vim @@ -10,7 +10,7 @@ "============================================================================ if exists('g:loaded_syntastic_c_clang_check_checker') - finish + finish endif let g:loaded_syntastic_c_clang_check_checker = 1 diff --git a/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim b/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim index 3124b233..6d8cbfe1 100644 --- a/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim +++ b/sources_non_forked/syntastic/syntax_checkers/c/clang_tidy.vim @@ -10,7 +10,7 @@ "============================================================================ if exists('g:loaded_syntastic_c_clang_tidy_checker') - finish + finish endif let g:loaded_syntastic_c_clang_tidy_checker = 1 diff --git a/sources_non_forked/syntastic/syntax_checkers/chef/foodcritic.vim b/sources_non_forked/syntastic/syntax_checkers/chef/foodcritic.vim index 35380aa7..84d9af12 100644 --- a/sources_non_forked/syntastic/syntax_checkers/chef/foodcritic.vim +++ b/sources_non_forked/syntastic/syntax_checkers/chef/foodcritic.vim @@ -30,8 +30,8 @@ function! SyntaxCheckers_chef_foodcritic_GetLocList() dict endfunction call g:SyntasticRegistry.CreateAndRegisterChecker({ - \ 'filetype': 'chef', - \ 'name': 'foodcritic'}) + \ 'filetype': 'chef', + \ 'name': 'foodcritic'}) let &cpo = s:save_cpo unlet s:save_cpo diff --git a/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim index 55784bba..010316b4 100644 --- a/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim +++ b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_check.vim @@ -10,7 +10,7 @@ "============================================================================ if exists('g:loaded_syntastic_cpp_clang_check_checker') - finish + finish endif let g:loaded_syntastic_cpp_clang_check_checker = 1 diff --git a/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim index f6cac96d..75f6c376 100644 --- a/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim +++ b/sources_non_forked/syntastic/syntax_checkers/cpp/clang_tidy.vim @@ -10,7 +10,7 @@ "============================================================================ if exists('g:loaded_syntastic_cpp_clang_tidy_checker') - finish + finish endif let g:loaded_syntastic_cpp_clang_tidy_checker = 1 diff --git a/sources_non_forked/syntastic/syntax_checkers/jade/jade_lint.vim b/sources_non_forked/syntastic/syntax_checkers/jade/jade_lint.vim index 59da5b06..32cc8084 100644 --- a/sources_non_forked/syntastic/syntax_checkers/jade/jade_lint.vim +++ b/sources_non_forked/syntastic/syntax_checkers/jade/jade_lint.vim @@ -1,7 +1,7 @@ "============================================================================ "File: jade_lint.vim -"Description: Syntax checking plugin for syntastic.vim -"Maintainer: Ben Parnell +"Description: Syntax checking plugin for syntastic +"Maintainer: LCD 47 "License: This program is free software. It comes without any warranty, " to the extent permitted by applicable law. You can redistribute " it and/or modify it under the terms of the Do What The Fuck You @@ -15,26 +15,10 @@ if exists('g:loaded_syntastic_jade_jade_lint_checker') endif let g:loaded_syntastic_jade_jade_lint_checker = 1 -let s:save_cpo = &cpo -set cpo&vim - -function! SyntaxCheckers_jade_jade_lint_GetLocList() dict - let makeprg = self.makeprgBuild({ 'args_after': '-r inline' }) - - let errorformat = '%f:%l:%c %m' - - return SyntasticMake({ - \ 'makeprg': makeprg, - \ 'errorformat': errorformat, - \ 'returns': [0, 2] }) -endfunction - call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'jade', \ 'name': 'jade_lint', - \ 'exec': 'jade-lint' }) - -let &cpo = s:save_cpo -unlet s:save_cpo + \ 'exec': 'jade-lint', + \ 'redirect': 'pug/pug_lint'}) " vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/syntastic/syntax_checkers/pug/pug_lint.vim b/sources_non_forked/syntastic/syntax_checkers/pug/pug_lint.vim new file mode 100644 index 00000000..880838ef --- /dev/null +++ b/sources_non_forked/syntastic/syntax_checkers/pug/pug_lint.vim @@ -0,0 +1,40 @@ +"============================================================================ +"File: pug_lint.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Ben Parnell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('g:loaded_syntastic_pug_pug_lint_checker') + finish +endif +let g:loaded_syntastic_pug_pug_lint_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_pug_pug_lint_GetLocList() dict + let makeprg = self.makeprgBuild({ 'args_after': '-r inline' }) + + let errorformat = '%f:%l:%c %m' + + return SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat, + \ 'returns': [0, 2] }) +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'pug', + \ 'name': 'pug_lint', + \ 'exec': 'pug-lint' }) + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/vim-airline-themes/LICENSE b/sources_non_forked/vim-airline-themes/LICENSE new file mode 100644 index 00000000..b8f4e6bc --- /dev/null +++ b/sources_non_forked/vim-airline-themes/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2013-2016 Bailey Ling & Contributors. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/sources_non_forked/vim-airline-themes/README.md b/sources_non_forked/vim-airline-themes/README.md new file mode 100644 index 00000000..28bef60f --- /dev/null +++ b/sources_non_forked/vim-airline-themes/README.md @@ -0,0 +1,51 @@ +# vim-airline-themes + +This is the official theme repository for [vim-airline](https://github.com/vim-airline/vim-airline). + +# Installation + +This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers: + +* [Pathogen][4] + * `git clone https://github.com/vim-airline/vim-airline-themes ~/.vim/bundle/vim-airline-themes` + * Remember to run `:Helptags` to generate help tags +* [NeoBundle][5] + * `NeoBundle 'vim-airline/vim-airline-themes'` +* [Vundle][6] + * `Plugin 'vim-airline/vim-airline-themes'` +* [Plug][7] + * `Plug 'vim-airline/vim-airline-themes'` +* manual + * copy all of the files into your `~/.vim` directory + + +# Contribution Guidelines + +## New themes + +* Pull requests for new themes are welcome. Please be sure to include a screenshot. You can paste an image into issue [#1](https://github.com/vim-airline/vim-airline-themes/issues/1), and then editing the post to reveal the uploaded image URL. + +## Modifications to existing themes + +* Themes are subjective, so if you are going to make modifications to an existing theme, please expose a configurable variable to allow users to choose how the theme will react. + +# Screenshots + +Screenshots are in the process of being migrated here. In the meantime you can find screenshots in the existing repository's [Wiki](https://github.com/vim-airline/vim-airline/wiki/Screenshots). + +# Maintenance + +If you are interested in becoming the official maintainer of this project, please contact [**@bling**][1], [**@chrisbra**][2], or [**@mhartington**][3]. + +# License + +MIT License. Copyright (c) 2013-2016 Bailey Ling & Contributors. + + +[1]: https://github.com/bling +[2]: https://github.com/chrisbra +[3]: https://github.com/mhartington +[4]: https://github.com/tpope/vim-pathogen +[5]: https://github.com/Shougo/neobundle.vim +[6]: https://github.com/gmarik/vundle +[7]: https://github.com/junegunn/vim-plug diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/badwolf.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/badwolf.vim new file mode 100644 index 00000000..e2b90063 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/badwolf.vim @@ -0,0 +1,52 @@ +let s:N1 = [ '#141413' , '#aeee00' , 232 , 154 ] " blackestgravel & lime +let s:N2 = [ '#f4cf86' , '#45413b' , 222 , 238 ] " dirtyblonde & deepgravel +let s:N3 = [ '#8cffba' , '#242321' , 121 , 235 ] " saltwatertaffy & darkgravel +let s:N4 = [ '#666462' , 241 ] " mediumgravel + +let s:I1 = [ '#141413' , '#0a9dff' , 232 , 39 ] " blackestgravel & tardis +let s:I2 = [ '#f4cf86' , '#005fff' , 222 , 27 ] " dirtyblonde & facebook +let s:I3 = [ '#0a9dff' , '#242321' , 39 , 235 ] " tardis & darkgravel + +let s:V1 = [ '#141413' , '#ffa724' , 232 , 214 ] " blackestgravel & orange +let s:V2 = [ '#000000' , '#fade3e' , 16 , 221 ] " coal & dalespale +let s:V3 = [ '#000000' , '#b88853' , 16 , 137 ] " coal & toffee +let s:V4 = [ '#c7915b' , 173 ] " coffee + +let s:PA = [ '#f4cf86' , 222 ] " dirtyblonde +let s:RE = [ '#ff9eb8' , 211 ] " dress + +let s:IA = [ s:N3[1] , s:N2[1] , s:N3[3] , s:N2[3] , '' ] + +let g:airline#themes#badwolf#palette = {} + +let g:airline#themes#badwolf#palette.accents = { + \ 'red': [ '#ff2c4b' , '' , 196 , '' , '' ] + \ } + +let g:airline#themes#badwolf#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#badwolf#palette.normal_modified = { + \ 'airline_b': [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , + \ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } + + +let g:airline#themes#badwolf#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#badwolf#palette.insert_modified = { + \ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } +let g:airline#themes#badwolf#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } + + +let g:airline#themes#badwolf#palette.replace = copy(airline#themes#badwolf#palette.insert) +let g:airline#themes#badwolf#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] +let g:airline#themes#badwolf#palette.replace_modified = g:airline#themes#badwolf#palette.insert_modified + + +let g:airline#themes#badwolf#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#badwolf#palette.visual_modified = { + \ 'airline_c': [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } + + +let g:airline#themes#badwolf#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#badwolf#palette.inactive_modified = { + \ 'airline_c': [ s:V1[1] , '' , s:V1[3] , '' , '' ] } + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16.vim new file mode 100644 index 00000000..88188ada --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16.vim @@ -0,0 +1,164 @@ +if get(g:, 'airline#themes#base16#constant', 0) + let g:airline#themes#base16#palette = {} + + " Color palette + let s:gui_dark_gray = '#202020' + let s:cterm_dark_gray = 234 + let s:gui_med_gray_hi = '#303030' + let s:cterm_med_gray_hi = 236 + let s:gui_med_gray_lo = '#3a3a3a' + let s:cterm_med_gray_lo = 237 + let s:gui_light_gray = '#505050' + let s:cterm_light_gray = 239 + let s:gui_green = '#99cc99' + let s:cterm_green = 151 + let s:gui_blue = '#6a9fb5' + let s:cterm_blue = 67 + let s:gui_purple = '#aa759f' + let s:cterm_purple = 139 + let s:gui_orange = '#d28445' + let s:cterm_orange = 173 + let s:gui_red = '#ac4142' + let s:cterm_red = 131 + let s:gui_pink = '#d7afd7' + let s:cterm_pink = 182 + + " Normal mode + let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] + let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] + let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi] + let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#base16#palette.normal_modified = { + \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], + \ } + + " Insert mode + let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] + let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] + let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) + let g:airline#themes#base16#palette.insert_modified = copy(g:airline#themes#base16#palette.normal_modified) + let g:airline#themes#base16#palette.insert_paste = { + \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], + \ } + + " Replace mode + let g:airline#themes#base16#palette.replace = { + \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], + \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], + \ } + let g:airline#themes#base16#palette.replace_modified = copy(g:airline#themes#base16#palette.insert_modified) + + " Visual mode + let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] + let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] + let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) + let g:airline#themes#base16#palette.visual_modified = copy(g:airline#themes#base16#palette.insert_modified) + + " Inactive window + let s:IA = [s:gui_dark_gray, s:gui_med_gray_hi, s:cterm_dark_gray, s:cterm_med_gray_hi, ''] + let g:airline#themes#base16#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#base16#palette.inactive_modified = { + \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], + \ } +else + function! airline#themes#base16#refresh() + let g:airline#themes#base16#palette = {} + + let g:airline#themes#base16#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + let s:N1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffText', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight2(['Visual', 'fg'], ['Visual', 'bg']) + let s:N3 = airline#themes#get_highlight('CursorLine') + let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let group = airline#themes#get_highlight('vimCommand') + let g:airline#themes#base16#palette.normal_modified = { + \ 'statusline': [ group[0], '', group[2], '', '' ] + \ } + + let s:I1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffAdded', 'fg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['DiffAdded', 'fg'], ['Normal', 'bg']) + let s:I3 = s:N3 + let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#base16#palette.insert_modified = g:airline#themes#base16#palette.normal_modified + + let s:R1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['WarningMsg', 'fg'], 'bold') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#base16#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#base16#palette.replace_modified = g:airline#themes#base16#palette.normal_modified + + let s:V1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['Constant', 'fg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg']) + let s:V3 = s:N3 + let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#base16#palette.visual_modified = g:airline#themes#base16#palette.normal_modified + + " Use VertSplit's bg and default fg (reversed) for inactive statusline. + let s:VS = airline#themes#get_highlight('VertSplit') + let s:IA = [ s:VS[1], 'NONE', s:VS[2], 'NONE', 'reverse'] + let g:airline#themes#base16#palette.inactive = + \ airline#themes#generate_color_map(s:IA, s:IA, s:IA, s:IA, s:IA, s:IA) + let s:IM = [ s:VS[1], 'NONE', s:VS[2], 'NONE', 'reverse,italic'] + let g:airline#themes#base16#palette.inactive_modified = + \ airline#themes#generate_color_map(s:IM, s:IM, s:IM, s:IM, s:IM, s:IM) + + " Warnings + let s:WI = airline#themes#get_highlight2(['WarningMsg', 'bg'], ['WarningMsg', 'fg'], 'bold') + let g:airline#themes#base16#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + + let g:airline#themes#base16#palette.normal_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.insert.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.insert_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.visual.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.visual_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.replace.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.replace_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + " Errors + let s:ER = airline#themes#get_highlight2(['ErrorMsg', 'bg'], ['ErrorMsg', 'fg'], 'bold') + let g:airline#themes#base16#palette.normal.airline_error = [ + \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] + \ ] + + let g:airline#themes#base16#palette.normal_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.insert.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.insert_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.visual.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.visual_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.replace.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.replace_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + endfunction + call airline#themes#base16#refresh() +endif diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_3024.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_3024.vim new file mode 100644 index 00000000..f4e318af --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_3024.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 3024 Scheme by Jan T. Sott (http://github.com/idleberg) +let g:airline#themes#base16_3024#palette = {} +let s:gui00 = "#090300" +let s:gui01 = "#3a3432" +let s:gui02 = "#4a4543" +let s:gui03 = "#5c5855" +let s:gui04 = "#807d7c" +let s:gui05 = "#a5a2a2" +let s:gui06 = "#d6d5d4" +let s:gui07 = "#f7f7f7" +let s:gui08 = "#db2d20" +let s:gui09 = "#e8bbd0" +let s:gui0A = "#fded02" +let s:gui0B = "#01a252" +let s:gui0C = "#b5e4f4" +let s:gui0D = "#01a0e4" +let s:gui0E = "#a16a94" +let s:gui0F = "#cdab53" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 182 +let s:cterm0A = 11 +let s:cterm0B = 35 +let s:cterm0C = 153 +let s:cterm0D = 38 +let s:cterm0E = 132 +let s:cterm0F = 179 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_3024#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_3024#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_apathy.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_apathy.vim new file mode 100644 index 00000000..85a95841 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_apathy.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Apathy Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_apathy#palette = {} +let s:gui00 = "#031A16" +let s:gui01 = "#0B342D" +let s:gui02 = "#184E45" +let s:gui03 = "#2B685E" +let s:gui04 = "#5F9C92" +let s:gui05 = "#81B5AC" +let s:gui06 = "#A7CEC8" +let s:gui07 = "#D2E7E4" +let s:gui08 = "#3E9688" +let s:gui09 = "#3E7996" +let s:gui0A = "#3E4C96" +let s:gui0B = "#883E96" +let s:gui0C = "#963E4C" +let s:gui0D = "#96883E" +let s:gui0E = "#4C963E" +let s:gui0F = "#3E965B" + +let s:cterm00 = 0 +let s:cterm01 = 22 +let s:cterm02 = 23 +let s:cterm03 = 23 +let s:cterm04 = 72 +let s:cterm05 = 109 +let s:cterm06 = 152 +let s:cterm07 = 188 +let s:cterm08 = 66 +let s:cterm09 = 66 +let s:cterm0A = 60 +let s:cterm0B = 96 +let s:cterm0C = 95 +let s:cterm0D = 101 +let s:cterm0E = 65 +let s:cterm0F = 65 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_apathy#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ashes.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ashes.vim new file mode 100644 index 00000000..a162c67c --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ashes.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Ashes Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_ashes#palette = {} +let s:gui00 = "#1C2023" +let s:gui01 = "#393F45" +let s:gui02 = "#565E65" +let s:gui03 = "#747C84" +let s:gui04 = "#ADB3BA" +let s:gui05 = "#C7CCD1" +let s:gui06 = "#DFE2E5" +let s:gui07 = "#F3F4F5" +let s:gui08 = "#C7AE95" +let s:gui09 = "#C7C795" +let s:gui0A = "#AEC795" +let s:gui0B = "#95C7AE" +let s:gui0C = "#95AEC7" +let s:gui0D = "#AE95C7" +let s:gui0E = "#C795AE" +let s:gui0F = "#C79595" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 180 +let s:cterm09 = 186 +let s:cterm0A = 150 +let s:cterm0B = 115 +let s:cterm0C = 110 +let s:cterm0D = 140 +let s:cterm0E = 175 +let s:cterm0F = 174 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_ashes#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim new file mode 100644 index 00000000..94cfacd3 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Dune Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) +let g:airline#themes#base16_atelierdune#palette = {} +let s:gui00 = "#20201d" +let s:gui01 = "#292824" +let s:gui02 = "#6e6b5e" +let s:gui03 = "#7d7a68" +let s:gui04 = "#999580" +let s:gui05 = "#a6a28c" +let s:gui06 = "#e8e4cf" +let s:gui07 = "#fefbec" +let s:gui08 = "#d73737" +let s:gui09 = "#b65611" +let s:gui0A = "#cfb017" +let s:gui0B = "#60ac39" +let s:gui0C = "#1fad83" +let s:gui0D = "#6684e1" +let s:gui0E = "#b854d4" +let s:gui0F = "#d43552" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 101 +let s:cterm04 = 102 +let s:cterm05 = 144 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 130 +let s:cterm0A = 178 +let s:cterm0B = 71 +let s:cterm0C = 36 +let s:cterm0D = 68 +let s:cterm0E = 134 +let s:cterm0F = 167 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierdune#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim new file mode 100644 index 00000000..70c23de5 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Forest Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) +let g:airline#themes#base16_atelierforest#palette = {} +let s:gui00 = "#1b1918" +let s:gui01 = "#2c2421" +let s:gui02 = "#68615e" +let s:gui03 = "#766e6b" +let s:gui04 = "#9c9491" +let s:gui05 = "#a8a19f" +let s:gui06 = "#e6e2e0" +let s:gui07 = "#f1efee" +let s:gui08 = "#f22c40" +let s:gui09 = "#df5320" +let s:gui0A = "#d5911a" +let s:gui0B = "#5ab738" +let s:gui0C = "#00ad9c" +let s:gui0D = "#407ee7" +let s:gui0E = "#6666ea" +let s:gui0F = "#c33ff3" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 138 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 197 +let s:cterm09 = 166 +let s:cterm0A = 172 +let s:cterm0B = 71 +let s:cterm0C = 37 +let s:cterm0D = 68 +let s:cterm0E = 62 +let s:cterm0F = 135 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierforest#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim new file mode 100644 index 00000000..20179c78 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Heath Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) +let g:airline#themes#base16_atelierheath#palette = {} +let s:gui00 = "#1b181b" +let s:gui01 = "#292329" +let s:gui02 = "#695d69" +let s:gui03 = "#776977" +let s:gui04 = "#9e8f9e" +let s:gui05 = "#ab9bab" +let s:gui06 = "#d8cad8" +let s:gui07 = "#f7f3f7" +let s:gui08 = "#ca402b" +let s:gui09 = "#a65926" +let s:gui0A = "#bb8a35" +let s:gui0B = "#379a37" +let s:gui0C = "#159393" +let s:gui0D = "#516aec" +let s:gui0E = "#7b59c0" +let s:gui0F = "#cc33cc" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 96 +let s:cterm04 = 139 +let s:cterm05 = 139 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 166 +let s:cterm09 = 130 +let s:cterm0A = 137 +let s:cterm0B = 65 +let s:cterm0C = 30 +let s:cterm0D = 12 +let s:cterm0E = 97 +let s:cterm0F = 170 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierheath#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim new file mode 100644 index 00000000..0d1e758e --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Lakeside Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) +let g:airline#themes#base16_atelierlakeside#palette = {} +let s:gui00 = "#161b1d" +let s:gui01 = "#1f292e" +let s:gui02 = "#516d7b" +let s:gui03 = "#5a7b8c" +let s:gui04 = "#7195a8" +let s:gui05 = "#7ea2b4" +let s:gui06 = "#c1e4f6" +let s:gui07 = "#ebf8ff" +let s:gui08 = "#d22d72" +let s:gui09 = "#935c25" +let s:gui0A = "#8a8a0f" +let s:gui0B = "#568c3b" +let s:gui0C = "#2d8f6f" +let s:gui0D = "#257fad" +let s:gui0E = "#5d5db1" +let s:gui0F = "#b72dd2" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 60 +let s:cterm03 = 66 +let s:cterm04 = 67 +let s:cterm05 = 109 +let s:cterm06 = 153 +let s:cterm07 = 195 +let s:cterm08 = 161 +let s:cterm09 = 94 +let s:cterm0A = 100 +let s:cterm0B = 65 +let s:cterm0C = 29 +let s:cterm0D = 31 +let s:cterm0E = 61 +let s:cterm0F = 5 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierlakeside#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim new file mode 100644 index 00000000..0314ea28 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Seaside Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) +let g:airline#themes#base16_atelierseaside#palette = {} +let s:gui00 = "#131513" +let s:gui01 = "#242924" +let s:gui02 = "#5e6e5e" +let s:gui03 = "#687d68" +let s:gui04 = "#809980" +let s:gui05 = "#8ca68c" +let s:gui06 = "#cfe8cf" +let s:gui07 = "#f0fff0" +let s:gui08 = "#e6193c" +let s:gui09 = "#87711d" +let s:gui0A = "#c3c322" +let s:gui0B = "#29a329" +let s:gui0C = "#1999b3" +let s:gui0D = "#3d62f5" +let s:gui0E = "#ad2bee" +let s:gui0F = "#e619c3" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 65 +let s:cterm04 = 102 +let s:cterm05 = 108 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 161 +let s:cterm09 = 94 +let s:cterm0A = 3 +let s:cterm0B = 2 +let s:cterm0C = 31 +let s:cterm0D = 12 +let s:cterm0E = 129 +let s:cterm0F = 5 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierseaside#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bespin.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bespin.vim new file mode 100644 index 00000000..b4f35231 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bespin.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Bespin Scheme by Jan T. Sott +let g:airline#themes#base16_bespin#palette = {} +let s:gui00 = "#28211c" +let s:gui01 = "#36312e" +let s:gui02 = "#5e5d5c" +let s:gui03 = "#666666" +let s:gui04 = "#797977" +let s:gui05 = "#8a8986" +let s:gui06 = "#9d9b97" +let s:gui07 = "#baae9e" +let s:gui08 = "#cf6a4c" +let s:gui09 = "#cf7d34" +let s:gui0A = "#f9ee98" +let s:gui0B = "#54be0d" +let s:gui0C = "#afc4db" +let s:gui0D = "#5ea6ea" +let s:gui0E = "#9b859d" +let s:gui0F = "#937121" + +let s:cterm00 = 0 +let s:cterm01 = 58 +let s:cterm02 = 59 +let s:cterm03 = 241 +let s:cterm04 = 102 +let s:cterm05 = 102 +let s:cterm06 = 138 +let s:cterm07 = 145 +let s:cterm08 = 167 +let s:cterm09 = 173 +let s:cterm0A = 228 +let s:cterm0B = 70 +let s:cterm0C = 152 +let s:cterm0D = 74 +let s:cterm0E = 103 +let s:cterm0F = 94 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_bespin#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_brewer.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_brewer.vim new file mode 100644 index 00000000..01646770 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_brewer.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Brewer Scheme by Timothée Poisot (http://github.com/tpoisot) +let g:airline#themes#base16_brewer#palette = {} +let s:gui00 = "#0c0d0e" +let s:gui01 = "#2e2f30" +let s:gui02 = "#515253" +let s:gui03 = "#737475" +let s:gui04 = "#959697" +let s:gui05 = "#b7b8b9" +let s:gui06 = "#dadbdc" +let s:gui07 = "#fcfdfe" +let s:gui08 = "#e31a1c" +let s:gui09 = "#e6550d" +let s:gui0A = "#dca060" +let s:gui0B = "#31a354" +let s:gui0C = "#80b1d3" +let s:gui0D = "#3182bd" +let s:gui0E = "#756bb1" +let s:gui0F = "#b15928" + +let s:cterm00 = 0 +let s:cterm01 = 17 +let s:cterm02 = 59 +let s:cterm03 = 66 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 166 +let s:cterm0A = 179 +let s:cterm0B = 71 +let s:cterm0C = 110 +let s:cterm0D = 67 +let s:cterm0E = 97 +let s:cterm0F = 130 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_brewer#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bright.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bright.vim new file mode 100644 index 00000000..23c74325 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_bright.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Bright Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_bright#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#303030" +let s:gui02 = "#505050" +let s:gui03 = "#b0b0b0" +let s:gui04 = "#d0d0d0" +let s:gui05 = "#e0e0e0" +let s:gui06 = "#f5f5f5" +let s:gui07 = "#ffffff" +let s:gui08 = "#fb0120" +let s:gui09 = "#fc6d24" +let s:gui0A = "#fda331" +let s:gui0B = "#a1c659" +let s:gui0C = "#76c7b7" +let s:gui0D = "#6fb3d2" +let s:gui0E = "#d381c3" +let s:gui0F = "#be643c" + +let s:cterm00 = 0 +let s:cterm01 = 236 +let s:cterm02 = 239 +let s:cterm03 = 249 +let s:cterm04 = 252 +let s:cterm05 = 253 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 9 +let s:cterm09 = 202 +let s:cterm0A = 215 +let s:cterm0B = 149 +let s:cterm0C = 115 +let s:cterm0D = 74 +let s:cterm0E = 175 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_bright#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_bright#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_chalk.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_chalk.vim new file mode 100644 index 00000000..d0345a96 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_chalk.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Chalk Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_chalk#palette = {} +let s:gui00 = "#151515" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#b0b0b0" +let s:gui05 = "#d0d0d0" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#f5f5f5" +let s:gui08 = "#fb9fb1" +let s:gui09 = "#eda987" +let s:gui0A = "#ddb26f" +let s:gui0B = "#acc267" +let s:gui0C = "#12cfc0" +let s:gui0D = "#6fc2ef" +let s:gui0E = "#e1a3ee" +let s:gui0F = "#deaf8f" + +let s:cterm00 = 233 +let s:cterm01 = 234 +let s:cterm02 = 236 +let s:cterm03 = 239 +let s:cterm04 = 249 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 217 +let s:cterm09 = 216 +let s:cterm0A = 179 +let s:cterm0B = 143 +let s:cterm0C = 6 +let s:cterm0D = 75 +let s:cterm0E = 183 +let s:cterm0F = 180 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_chalk#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim new file mode 100644 index 00000000..f9cf9563 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Codeschool Scheme by brettof86 +let g:airline#themes#base16_codeschool#palette = {} +let s:gui00 = "#232c31" +let s:gui01 = "#1c3657" +let s:gui02 = "#2a343a" +let s:gui03 = "#3f4944" +let s:gui04 = "#84898c" +let s:gui05 = "#9ea7a6" +let s:gui06 = "#a7cfa3" +let s:gui07 = "#b5d8f6" +let s:gui08 = "#2a5491" +let s:gui09 = "#43820d" +let s:gui0A = "#a03b1e" +let s:gui0B = "#237986" +let s:gui0C = "#b02f30" +let s:gui0D = "#484d79" +let s:gui0E = "#c59820" +let s:gui0F = "#c98344" + +let s:cterm00 = 17 +let s:cterm01 = 23 +let s:cterm02 = 23 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 151 +let s:cterm07 = 153 +let s:cterm08 = 24 +let s:cterm09 = 64 +let s:cterm0A = 130 +let s:cterm0B = 30 +let s:cterm0C = 125 +let s:cterm0D = 60 +let s:cterm0E = 172 +let s:cterm0F = 173 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_codeschool#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_colors.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_colors.vim new file mode 100644 index 00000000..d65442d4 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_colors.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Colors Scheme by mrmrs (http://clrs.cc) +let g:airline#themes#base16_colors#palette = {} +let s:gui00 = "#111111" +let s:gui01 = "#333333" +let s:gui02 = "#555555" +let s:gui03 = "#777777" +let s:gui04 = "#999999" +let s:gui05 = "#bbbbbb" +let s:gui06 = "#dddddd" +let s:gui07 = "#ffffff" +let s:gui08 = "#ff4136" +let s:gui09 = "#ff851b" +let s:gui0A = "#ffdc00" +let s:gui0B = "#2ecc40" +let s:gui0C = "#7fdbff" +let s:gui0D = "#0074d9" +let s:gui0E = "#b10dc9" +let s:gui0F = "#85144b" + +let s:cterm00 = 233 +let s:cterm01 = 236 +let s:cterm02 = 240 +let s:cterm03 = 243 +let s:cterm04 = 246 +let s:cterm05 = 250 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 203 +let s:cterm09 = 208 +let s:cterm0A = 220 +let s:cterm0B = 41 +let s:cterm0C = 117 +let s:cterm0D = 32 +let s:cterm0E = 128 +let s:cterm0F = 89 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_colors#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_colors#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_default.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_default.vim new file mode 100644 index 00000000..841c12e4 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_default.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Default Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_default#palette = {} +let s:gui00 = "#181818" +let s:gui01 = "#282828" +let s:gui02 = "#383838" +let s:gui03 = "#585858" +let s:gui04 = "#b8b8b8" +let s:gui05 = "#d8d8d8" +let s:gui06 = "#e8e8e8" +let s:gui07 = "#f8f8f8" +let s:gui08 = "#ab4642" +let s:gui09 = "#dc9656" +let s:gui0A = "#f7ca88" +let s:gui0B = "#a1b56c" +let s:gui0C = "#86c1b9" +let s:gui0D = "#7cafc2" +let s:gui0E = "#ba8baf" +let s:gui0F = "#a16946" + +let s:cterm00 = 233 +let s:cterm01 = 235 +let s:cterm02 = 237 +let s:cterm03 = 240 +let s:cterm04 = 249 +let s:cterm05 = 253 +let s:cterm06 = 254 +let s:cterm07 = 15 +let s:cterm08 = 131 +let s:cterm09 = 173 +let s:cterm0A = 222 +let s:cterm0B = 143 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_default#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_default#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_eighties.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_eighties.vim new file mode 100644 index 00000000..7161e391 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_eighties.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Eighties Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_eighties#palette = {} +let s:gui00 = "#2d2d2d" +let s:gui01 = "#393939" +let s:gui02 = "#515151" +let s:gui03 = "#747369" +let s:gui04 = "#a09f93" +let s:gui05 = "#d3d0c8" +let s:gui06 = "#e8e6df" +let s:gui07 = "#f2f0ec" +let s:gui08 = "#f2777a" +let s:gui09 = "#f99157" +let s:gui0A = "#ffcc66" +let s:gui0B = "#99cc99" +let s:gui0C = "#66cccc" +let s:gui0D = "#6699cc" +let s:gui0E = "#cc99cc" +let s:gui0F = "#d27b53" + +let s:cterm00 = 236 +let s:cterm01 = 237 +let s:cterm02 = 239 +let s:cterm03 = 95 +let s:cterm04 = 144 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 210 +let s:cterm09 = 209 +let s:cterm0A = 221 +let s:cterm0B = 114 +let s:cterm0C = 80 +let s:cterm0D = 68 +let s:cterm0E = 176 +let s:cterm0F = 173 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_eighties#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_embers.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_embers.vim new file mode 100644 index 00000000..0c260769 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_embers.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Embers Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_embers#palette = {} +let s:gui00 = "#16130F" +let s:gui01 = "#2C2620" +let s:gui02 = "#433B32" +let s:gui03 = "#5A5047" +let s:gui04 = "#8A8075" +let s:gui05 = "#A39A90" +let s:gui06 = "#BEB6AE" +let s:gui07 = "#DBD6D1" +let s:gui08 = "#826D57" +let s:gui09 = "#828257" +let s:gui0A = "#6D8257" +let s:gui0B = "#57826D" +let s:gui0C = "#576D82" +let s:gui0D = "#6D5782" +let s:gui0E = "#82576D" +let s:gui0F = "#825757" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 138 +let s:cterm06 = 145 +let s:cterm07 = 188 +let s:cterm08 = 95 +let s:cterm09 = 101 +let s:cterm0A = 65 +let s:cterm0B = 65 +let s:cterm0C = 60 +let s:cterm0D = 60 +let s:cterm0E = 95 +let s:cterm0F = 95 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_embers#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_embers#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_flat.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_flat.vim new file mode 100644 index 00000000..aa4f5cf2 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_flat.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Flat Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_flat#palette = {} +let s:gui00 = "#2C3E50" +let s:gui01 = "#34495E" +let s:gui02 = "#7F8C8D" +let s:gui03 = "#95A5A6" +let s:gui04 = "#BDC3C7" +let s:gui05 = "#e0e0e0" +let s:gui06 = "#f5f5f5" +let s:gui07 = "#ECF0F1" +let s:gui08 = "#E74C3C" +let s:gui09 = "#E67E22" +let s:gui0A = "#F1C40F" +let s:gui0B = "#2ECC71" +let s:gui0C = "#1ABC9C" +let s:gui0D = "#3498DB" +let s:gui0E = "#9B59B6" +let s:gui0F = "#be643c" + +let s:cterm00 = 23 +let s:cterm01 = 59 +let s:cterm02 = 102 +let s:cterm03 = 109 +let s:cterm04 = 146 +let s:cterm05 = 253 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 172 +let s:cterm0A = 220 +let s:cterm0B = 41 +let s:cterm0C = 37 +let s:cterm0D = 68 +let s:cterm0E = 97 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_flat#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_flat#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_google.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_google.vim new file mode 100644 index 00000000..f20da8c2 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_google.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Google Scheme by Seth Wright (http://sethawright.com) +let g:airline#themes#base16_google#palette = {} +let s:gui00 = "#1d1f21" +let s:gui01 = "#282a2e" +let s:gui02 = "#373b41" +let s:gui03 = "#969896" +let s:gui04 = "#b4b7b4" +let s:gui05 = "#c5c8c6" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#CC342B" +let s:gui09 = "#F96A38" +let s:gui0A = "#FBA922" +let s:gui0B = "#198844" +let s:gui0C = "#3971ED" +let s:gui0D = "#3971ED" +let s:gui0E = "#A36AC7" +let s:gui0F = "#3971ED" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 166 +let s:cterm09 = 203 +let s:cterm0A = 214 +let s:cterm0B = 29 +let s:cterm0C = 12 +let s:cterm0D = 12 +let s:cterm0E = 134 +let s:cterm0F = 12 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_google#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_google#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim new file mode 100644 index 00000000..bf60eb3f --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Grayscale Scheme by Alexandre Gavioli (https://github.com/Alexx2/) +let g:airline#themes#base16_grayscale#palette = {} +let s:gui00 = "#101010" +let s:gui01 = "#252525" +let s:gui02 = "#464646" +let s:gui03 = "#525252" +let s:gui04 = "#ababab" +let s:gui05 = "#b9b9b9" +let s:gui06 = "#e3e3e3" +let s:gui07 = "#f7f7f7" +let s:gui08 = "#7c7c7c" +let s:gui09 = "#999999" +let s:gui0A = "#a0a0a0" +let s:gui0B = "#8e8e8e" +let s:gui0C = "#868686" +let s:gui0D = "#686868" +let s:gui0E = "#747474" +let s:gui0F = "#5e5e5e" + +let s:cterm00 = 233 +let s:cterm01 = 235 +let s:cterm02 = 238 +let s:cterm03 = 239 +let s:cterm04 = 248 +let s:cterm05 = 250 +let s:cterm06 = 254 +let s:cterm07 = 15 +let s:cterm08 = 243 +let s:cterm09 = 246 +let s:cterm0A = 247 +let s:cterm0B = 245 +let s:cterm0C = 244 +let s:cterm0D = 241 +let s:cterm0E = 243 +let s:cterm0F = 240 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_grayscale#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim new file mode 100644 index 00000000..b460449a --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Green Screen Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_greenscreen#palette = {} +let s:gui00 = "#001100" +let s:gui01 = "#003300" +let s:gui02 = "#005500" +let s:gui03 = "#007700" +let s:gui04 = "#009900" +let s:gui05 = "#00bb00" +let s:gui06 = "#00dd00" +let s:gui07 = "#00ff00" +let s:gui08 = "#007700" +let s:gui09 = "#009900" +let s:gui0A = "#007700" +let s:gui0B = "#00bb00" +let s:gui0C = "#005500" +let s:gui0D = "#009900" +let s:gui0E = "#00bb00" +let s:gui0F = "#005500" + +let s:cterm00 = 0 +let s:cterm01 = 22 +let s:cterm02 = 22 +let s:cterm03 = 28 +let s:cterm04 = 28 +let s:cterm05 = 34 +let s:cterm06 = 40 +let s:cterm07 = 10 +let s:cterm08 = 28 +let s:cterm09 = 28 +let s:cterm0A = 28 +let s:cterm0B = 34 +let s:cterm0C = 22 +let s:cterm0D = 28 +let s:cterm0E = 34 +let s:cterm0F = 22 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_greenscreen#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim new file mode 100644 index 00000000..9700a049 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 harmonic16 Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_harmonic16#palette = {} +let s:gui00 = "#0b1c2c" +let s:gui01 = "#223b54" +let s:gui02 = "#405c79" +let s:gui03 = "#627e99" +let s:gui04 = "#aabcce" +let s:gui05 = "#cbd6e2" +let s:gui06 = "#e5ebf1" +let s:gui07 = "#f7f9fb" +let s:gui08 = "#bf8b56" +let s:gui09 = "#bfbf56" +let s:gui0A = "#8bbf56" +let s:gui0B = "#56bf8b" +let s:gui0C = "#568bbf" +let s:gui0D = "#8b56bf" +let s:gui0E = "#bf568b" +let s:gui0F = "#bf5656" + +let s:cterm00 = 0 +let s:cterm01 = 23 +let s:cterm02 = 60 +let s:cterm03 = 66 +let s:cterm04 = 146 +let s:cterm05 = 188 +let s:cterm06 = 189 +let s:cterm07 = 15 +let s:cterm08 = 137 +let s:cterm09 = 143 +let s:cterm0A = 107 +let s:cterm0B = 72 +let s:cterm0C = 67 +let s:cterm0D = 97 +let s:cterm0E = 132 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_harmonic16#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim new file mode 100644 index 00000000..0e78688a --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Hopscotch Scheme by Jan T. Sott +let g:airline#themes#base16_hopscotch#palette = {} +let s:gui00 = "#322931" +let s:gui01 = "#433b42" +let s:gui02 = "#5c545b" +let s:gui03 = "#797379" +let s:gui04 = "#989498" +let s:gui05 = "#b9b5b8" +let s:gui06 = "#d5d3d5" +let s:gui07 = "#ffffff" +let s:gui08 = "#dd464c" +let s:gui09 = "#fd8b19" +let s:gui0A = "#fdcc59" +let s:gui0B = "#8fc13e" +let s:gui0C = "#149b93" +let s:gui0D = "#1290bf" +let s:gui0E = "#c85e7c" +let s:gui0F = "#b33508" + +let s:cterm00 = 53 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 96 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 208 +let s:cterm0A = 221 +let s:cterm0B = 107 +let s:cterm0C = 30 +let s:cterm0D = 31 +let s:cterm0E = 168 +let s:cterm0F = 130 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_hopscotch#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_isotope.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_isotope.vim new file mode 100644 index 00000000..aa5e0bd3 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_isotope.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Isotope Scheme by Jan T. Sott +let g:airline#themes#base16_isotope#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#404040" +let s:gui02 = "#606060" +let s:gui03 = "#808080" +let s:gui04 = "#c0c0c0" +let s:gui05 = "#d0d0d0" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#ff0000" +let s:gui09 = "#ff9900" +let s:gui0A = "#ff0099" +let s:gui0B = "#33ff00" +let s:gui0C = "#00ffff" +let s:gui0D = "#0066ff" +let s:gui0E = "#cc00ff" +let s:gui0F = "#3300ff" + +let s:cterm00 = 0 +let s:cterm01 = 237 +let s:cterm02 = 241 +let s:cterm03 = 244 +let s:cterm04 = 250 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 9 +let s:cterm09 = 208 +let s:cterm0A = 198 +let s:cterm0B = 82 +let s:cterm0C = 14 +let s:cterm0D = 27 +let s:cterm0E = 165 +let s:cterm0F = 57 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_isotope#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_londontube.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_londontube.vim new file mode 100644 index 00000000..b228e23d --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_londontube.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 London Tube Scheme by Jan T. Sott +let g:airline#themes#base16_londontube#palette = {} +let s:gui00 = "#231f20" +let s:gui01 = "#1c3f95" +let s:gui02 = "#5a5758" +let s:gui03 = "#737171" +let s:gui04 = "#959ca1" +let s:gui05 = "#d9d8d8" +let s:gui06 = "#e7e7e8" +let s:gui07 = "#ffffff" +let s:gui08 = "#ee2e24" +let s:gui09 = "#f386a1" +let s:gui0A = "#ffd204" +let s:gui0B = "#00853e" +let s:gui0C = "#85cebc" +let s:gui0D = "#009ddc" +let s:gui0E = "#98005d" +let s:gui0F = "#b06110" + +let s:cterm00 = 0 +let s:cterm01 = 24 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 109 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 211 +let s:cterm0A = 220 +let s:cterm0B = 29 +let s:cterm0C = 115 +let s:cterm0D = 38 +let s:cterm0E = 89 +let s:cterm0F = 130 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_londontube#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim new file mode 100644 index 00000000..e6cd4590 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Marrakesh Scheme by Alexandre Gavioli (http://github.com/Alexx2/) +let g:airline#themes#base16_marrakesh#palette = {} +let s:gui00 = "#201602" +let s:gui01 = "#302e00" +let s:gui02 = "#5f5b17" +let s:gui03 = "#6c6823" +let s:gui04 = "#86813b" +let s:gui05 = "#948e48" +let s:gui06 = "#ccc37a" +let s:gui07 = "#faf0a5" +let s:gui08 = "#c35359" +let s:gui09 = "#b36144" +let s:gui0A = "#a88339" +let s:gui0B = "#18974e" +let s:gui0C = "#75a738" +let s:gui0D = "#477ca1" +let s:gui0E = "#8868b3" +let s:gui0F = "#b3588e" + +let s:cterm00 = 0 +let s:cterm01 = 52 +let s:cterm02 = 58 +let s:cterm03 = 58 +let s:cterm04 = 101 +let s:cterm05 = 101 +let s:cterm06 = 180 +let s:cterm07 = 229 +let s:cterm08 = 131 +let s:cterm09 = 131 +let s:cterm0A = 137 +let s:cterm0B = 29 +let s:cterm0C = 107 +let s:cterm0D = 67 +let s:cterm0E = 97 +let s:cterm0F = 132 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_marrakesh#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_mocha.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_mocha.vim new file mode 100644 index 00000000..1097c95f --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_mocha.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Mocha Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_mocha#palette = {} +let s:gui00 = "#3B3228" +let s:gui01 = "#534636" +let s:gui02 = "#645240" +let s:gui03 = "#7e705a" +let s:gui04 = "#b8afad" +let s:gui05 = "#d0c8c6" +let s:gui06 = "#e9e1dd" +let s:gui07 = "#f5eeeb" +let s:gui08 = "#cb6077" +let s:gui09 = "#d28b71" +let s:gui0A = "#f4bc87" +let s:gui0B = "#beb55b" +let s:gui0C = "#7bbda4" +let s:gui0D = "#8ab3b5" +let s:gui0E = "#a89bb9" +let s:gui0F = "#bb9584" + +let s:cterm00 = 58 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 230 +let s:cterm08 = 168 +let s:cterm09 = 173 +let s:cterm0A = 216 +let s:cterm0B = 143 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 138 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_mocha#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_monokai.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_monokai.vim new file mode 100644 index 00000000..fe1b7742 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_monokai.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Monokai Scheme by Wimer Hazenberg (http://www.monokai.nl) +let g:airline#themes#base16_monokai#palette = {} +let s:gui00 = "#272822" +let s:gui01 = "#383830" +let s:gui02 = "#49483e" +let s:gui03 = "#75715e" +let s:gui04 = "#a59f85" +let s:gui05 = "#f8f8f2" +let s:gui06 = "#f5f4f1" +let s:gui07 = "#f9f8f5" +let s:gui08 = "#f92672" +let s:gui09 = "#fd971f" +let s:gui0A = "#f4bf75" +let s:gui0B = "#a6e22e" +let s:gui0C = "#a1efe4" +let s:gui0D = "#66d9ef" +let s:gui0E = "#ae81ff" +let s:gui0F = "#cc6633" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 144 +let s:cterm05 = 15 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 197 +let s:cterm09 = 208 +let s:cterm0A = 216 +let s:cterm0B = 3 +let s:cterm0C = 158 +let s:cterm0D = 81 +let s:cterm0E = 141 +let s:cterm0F = 167 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_monokai#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ocean.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ocean.vim new file mode 100644 index 00000000..b1a76dd8 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_ocean.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Ocean Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_ocean#palette = {} +let s:gui00 = "#2b303b" +let s:gui01 = "#343d46" +let s:gui02 = "#4f5b66" +let s:gui03 = "#65737e" +let s:gui04 = "#a7adba" +let s:gui05 = "#c0c5ce" +let s:gui06 = "#dfe1e8" +let s:gui07 = "#eff1f5" +let s:gui08 = "#bf616a" +let s:gui09 = "#d08770" +let s:gui0A = "#ebcb8b" +let s:gui0B = "#a3be8c" +let s:gui0C = "#96b5b4" +let s:gui0D = "#8fa1b3" +let s:gui0E = "#b48ead" +let s:gui0F = "#ab7967" + +let s:cterm00 = 23 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 60 +let s:cterm04 = 145 +let s:cterm05 = 152 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 131 +let s:cterm09 = 173 +let s:cterm0A = 186 +let s:cterm0B = 144 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 137 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_ocean#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim new file mode 100644 index 00000000..1277b315 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Paraiso Scheme by Jan T. Sott +let g:airline#themes#base16_paraiso#palette = {} +let s:gui00 = "#2f1e2e" +let s:gui01 = "#41323f" +let s:gui02 = "#4f424c" +let s:gui03 = "#776e71" +let s:gui04 = "#8d8687" +let s:gui05 = "#a39e9b" +let s:gui06 = "#b9b6b0" +let s:gui07 = "#e7e9db" +let s:gui08 = "#ef6155" +let s:gui09 = "#f99b15" +let s:gui0A = "#fec418" +let s:gui0B = "#48b685" +let s:gui0C = "#5bc4bf" +let s:gui0D = "#06b6ef" +let s:gui0E = "#815ba4" +let s:gui0F = "#e96ba8" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 102 +let s:cterm05 = 144 +let s:cterm06 = 145 +let s:cterm07 = 188 +let s:cterm08 = 203 +let s:cterm09 = 208 +let s:cterm0A = 220 +let s:cterm0B = 72 +let s:cterm0C = 79 +let s:cterm0D = 39 +let s:cterm0E = 97 +let s:cterm0F = 169 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_paraiso#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_pop.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_pop.vim new file mode 100644 index 00000000..08887034 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_pop.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Pop Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_pop#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#b0b0b0" +let s:gui05 = "#d0d0d0" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#eb008a" +let s:gui09 = "#f29333" +let s:gui0A = "#f8ca12" +let s:gui0B = "#37b349" +let s:gui0C = "#00aabb" +let s:gui0D = "#0e5a94" +let s:gui0E = "#b31e8d" +let s:gui0F = "#7a2d00" + +let s:cterm00 = 0 +let s:cterm01 = 234 +let s:cterm02 = 236 +let s:cterm03 = 239 +let s:cterm04 = 249 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 162 +let s:cterm09 = 209 +let s:cterm0A = 220 +let s:cterm0B = 71 +let s:cterm0C = 37 +let s:cterm0D = 24 +let s:cterm0E = 126 +let s:cterm0F = 88 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_pop#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_pop#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim new file mode 100644 index 00000000..771a5b15 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Railscasts Scheme by Ryan Bates (http://railscasts.com) +let g:airline#themes#base16_railscasts#palette = {} +let s:gui00 = "#2b2b2b" +let s:gui01 = "#272935" +let s:gui02 = "#3a4055" +let s:gui03 = "#5a647e" +let s:gui04 = "#d4cfc9" +let s:gui05 = "#e6e1dc" +let s:gui06 = "#f4f1ed" +let s:gui07 = "#f9f7f3" +let s:gui08 = "#da4939" +let s:gui09 = "#cc7833" +let s:gui0A = "#ffc66d" +let s:gui0B = "#a5c261" +let s:gui0C = "#519f50" +let s:gui0D = "#6d9cbe" +let s:gui0E = "#b6b3eb" +let s:gui0F = "#bc9458" + +let s:cterm00 = 235 +let s:cterm01 = 17 +let s:cterm02 = 59 +let s:cterm03 = 60 +let s:cterm04 = 188 +let s:cterm05 = 188 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 173 +let s:cterm0A = 221 +let s:cterm0B = 143 +let s:cterm0C = 71 +let s:cterm0D = 73 +let s:cterm0E = 146 +let s:cterm0F = 137 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_railscasts#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim new file mode 100644 index 00000000..a5182653 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 shapeshifter Scheme by Tyler Benziger (http://tybenz.com) +let g:airline#themes#base16_shapeshifter#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#040404" +let s:gui02 = "#102015" +let s:gui03 = "#343434" +let s:gui04 = "#555555" +let s:gui05 = "#ababab" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#f9f9f9" +let s:gui08 = "#e92f2f" +let s:gui09 = "#e09448" +let s:gui0A = "#dddd13" +let s:gui0B = "#0ed839" +let s:gui0C = "#23edda" +let s:gui0D = "#3b48e3" +let s:gui0E = "#f996e2" +let s:gui0F = "#69542d" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 0 +let s:cterm03 = 236 +let s:cterm04 = 240 +let s:cterm05 = 248 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 173 +let s:cterm0A = 3 +let s:cterm0B = 41 +let s:cterm0C = 50 +let s:cterm0D = 12 +let s:cterm0E = 212 +let s:cterm0F = 58 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_shapeshifter#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_solarized.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_solarized.vim new file mode 100644 index 00000000..81edd567 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_solarized.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Solarized Scheme by Ethan Schoonover (http://ethanschoonover.com/solarized) +let g:airline#themes#base16_solarized#palette = {} +let s:gui00 = "#002b36" +let s:gui01 = "#073642" +let s:gui02 = "#586e75" +let s:gui03 = "#657b83" +let s:gui04 = "#839496" +let s:gui05 = "#93a1a1" +let s:gui06 = "#eee8d5" +let s:gui07 = "#fdf6e3" +let s:gui08 = "#dc322f" +let s:gui09 = "#cb4b16" +let s:gui0A = "#b58900" +let s:gui0B = "#859900" +let s:gui0C = "#2aa198" +let s:gui0D = "#268bd2" +let s:gui0E = "#6c71c4" +let s:gui0F = "#d33682" + +let s:cterm00 = 17 +let s:cterm01 = 23 +let s:cterm02 = 60 +let s:cterm03 = 66 +let s:cterm04 = 102 +let s:cterm05 = 109 +let s:cterm06 = 224 +let s:cterm07 = 230 +let s:cterm08 = 166 +let s:cterm09 = 166 +let s:cterm0A = 136 +let s:cterm0B = 100 +let s:cterm0C = 36 +let s:cterm0D = 32 +let s:cterm0E = 12 +let s:cterm0F = 168 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_solarized#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim new file mode 100644 index 00000000..4bafd59c --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Summerfruit Scheme by Christopher Corley (http://cscorley.github.io/) +let g:airline#themes#base16_summerfruit#palette = {} +let s:gui00 = "#151515" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#B0B0B0" +let s:gui05 = "#D0D0D0" +let s:gui06 = "#E0E0E0" +let s:gui07 = "#FFFFFF" +let s:gui08 = "#FF0086" +let s:gui09 = "#FD8900" +let s:gui0A = "#ABA800" +let s:gui0B = "#00C918" +let s:gui0C = "#1faaaa" +let s:gui0D = "#3777E6" +let s:gui0E = "#AD00A1" +let s:gui0F = "#cc6633" + +let s:cterm00 = 233 +let s:cterm01 = 234 +let s:cterm02 = 236 +let s:cterm03 = 239 +let s:cterm04 = 249 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 198 +let s:cterm09 = 208 +let s:cterm0A = 142 +let s:cterm0B = 2 +let s:cterm0C = 37 +let s:cterm0D = 68 +let s:cterm0E = 127 +let s:cterm0F = 167 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_summerfruit#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim new file mode 100644 index 00000000..f8128bca --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Tomorrow Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_tomorrow#palette = {} +let s:gui00 = "#1d1f21" +let s:gui01 = "#282a2e" +let s:gui02 = "#373b41" +let s:gui03 = "#969896" +let s:gui04 = "#b4b7b4" +let s:gui05 = "#c5c8c6" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#cc6666" +let s:gui09 = "#de935f" +let s:gui0A = "#f0c674" +let s:gui0B = "#b5bd68" +let s:gui0C = "#8abeb7" +let s:gui0D = "#81a2be" +let s:gui0E = "#b294bb" +let s:gui0F = "#a3685a" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 173 +let s:cterm0A = 222 +let s:cterm0B = 143 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_tomorrow#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_twilight.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_twilight.vim new file mode 100644 index 00000000..fa82418a --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16_twilight.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Twilight Scheme by David Hart (http://hart-dev.com) +let g:airline#themes#base16_twilight#palette = {} +let s:gui00 = "#1e1e1e" +let s:gui01 = "#323537" +let s:gui02 = "#464b50" +let s:gui03 = "#5f5a60" +let s:gui04 = "#838184" +let s:gui05 = "#a7a7a7" +let s:gui06 = "#c3c3c3" +let s:gui07 = "#ffffff" +let s:gui08 = "#cf6a4c" +let s:gui09 = "#cda869" +let s:gui0A = "#f9ee98" +let s:gui0B = "#8f9d6a" +let s:gui0C = "#afc4db" +let s:gui0D = "#7587a6" +let s:gui0E = "#9b859d" +let s:gui0F = "#9b703f" + +let s:cterm00 = 234 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 248 +let s:cterm06 = 251 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 179 +let s:cterm0A = 228 +let s:cterm0B = 107 +let s:cterm0C = 152 +let s:cterm0D = 103 +let s:cterm0E = 103 +let s:cterm0F = 95 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_twilight#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16color.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16color.vim new file mode 100644 index 00000000..6c0a1d70 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/base16color.vim @@ -0,0 +1,77 @@ +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#141413' , '#CAE682' , 232 , 'green' ] " mode +let s:N2 = [ '#CAE682' , '#32322F' , 'green' , 235 ] " info +let s:N3 = [ '#CAE682' , '#242424' , 'green' , 234 ] " statusline +let s:N4 = [ '#86CD74' , 'DarkGreen' ] " mode modified + +" Insert mode +let s:I1 = [ '#141413' , '#FDE76E' , 232 , 'yellow' ] +let s:I2 = [ '#FDE76E' , '#32322F' , 'yellow' , 235 ] +let s:I3 = [ '#FDE76E' , '#242424' , 'yellow' , 234 ] +let s:I4 = [ '#FADE3E' , 'yellow' ] + +" Visual mode +let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 'blue' ] +let s:V2 = [ '#B5D3F3' , '#32322F' , 'blue' , 235 ] +let s:V3 = [ '#B5D3F3' , '#242424' , 'blue' , 234 ] +let s:V4 = [ '#7CB0E6' , 'blue' ] + +" Replace mode +let s:R1 = [ '#141413' , '#E5786D' , 232 , 'red' ] +let s:R2 = [ '#E5786D' , '#32322F' , 'red' , 235 ] +let s:R3 = [ '#E5786D' , '#242424' , 'red' , 234 ] +let s:R4 = [ '#E55345' , 'red' ] + +" Paste mode +let s:PA = [ '#94E42C' , 005 ] + +" Info modified +let s:IM = [ '#40403C' , 236 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#base16color#palette = {} + +let g:airline#themes#base16color#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#base16color#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#base16color#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#base16color#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#base16color#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#base16color#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#base16color#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/behelit.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/behelit.vim new file mode 100644 index 00000000..77f551c7 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/behelit.vim @@ -0,0 +1,58 @@ +let g:airline#themes#behelit#palette = {} + +" Normal mode +let s:N1 = [ '#121212', '#5f87ff', 233, 69 ] +let s:N2 = [ '#5f87ff', '#262626', 69 , 235 ] +let s:N3 = [ '#5f87ff', '#1c1c1c', 69 , 234, 'bold' ] +let g:airline#themes#behelit#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#behelit#palette.normal_modified = { + \ 'airline_c': [ '#d7005f', '#1c1c1c', 161, 234, 'bold' ], + \ } + +" Insert mode +let s:I1 = [ '#121212', '#00ff87', 233, 48 ] +let s:I2 = s:N2 +let s:I3 = s:N3 +let g:airline#themes#behelit#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#behelit#palette.insert_modified = g:airline#themes#behelit#palette.normal_modified +let g:airline#themes#behelit#palette.insert_paste = { + \ 'airline_a': [ "#121212", "#5f5faf", 233, 61, '' ], + \ } + +" Replace mode +let g:airline#themes#behelit#palette.replace = copy(g:airline#themes#behelit#palette.insert) +let g:airline#themes#behelit#palette.replace.airline_a = [ s:I1[0], '#d70057', s:I1[2], 161, '' ] +let g:airline#themes#behelit#palette.replace_modified = g:airline#themes#behelit#palette.insert_modified + +" Visual mode +let s:V1 = [ '#121212', '#5fff5f', 233, 83 ] +let s:V2 = s:N2 +let s:V3 = s:N3 +let g:airline#themes#behelit#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#behelit#palette.visual_modified = g:airline#themes#behelit#palette.normal_modified + +" Inactive window +let s:IA1 = [ '#4e4e4e', '#1c1c1c', 239, 234, '' ] +let s:IA2 = [ '#4e4e4e', '#262626', 239, 235, '' ] +let s:IA3 = [ '#4e4e4e', '#1c1c1c', 239, 234, 'bold' ] +let g:airline#themes#behelit#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#behelit#palette.inactive_modified = { + \ 'airline_c': [ '#5f5f87', '#1c1c1c', 60, 234, 'bold' ], + \ } + +" Accents +let g:airline#themes#behelit#palette.accents = { + \ 'red': [ '#d7005f', '', 161, '' ] + \ } + +" Warnings +let s:WI = [ '#121212', '#d7005f', 233, 161 ] +let g:airline#themes#behelit#palette.normal.airline_warning = s:WI +let g:airline#themes#behelit#palette.normal_modified.airline_warning = s:WI +let g:airline#themes#behelit#palette.insert.airline_warning = s:WI +let g:airline#themes#behelit#palette.insert_modified.airline_warning = s:WI +let g:airline#themes#behelit#palette.insert_paste.airline_warning = s:WI +let g:airline#themes#behelit#palette.visual.airline_warning = s:WI +let g:airline#themes#behelit#palette.visual_modified.airline_warning = s:WI +let g:airline#themes#behelit#palette.replace.airline_warning = s:WI +let g:airline#themes#behelit#palette.replace_modified.airline_warning = s:WI diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/bubblegum.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/bubblegum.vim new file mode 100644 index 00000000..f2378ce8 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/bubblegum.vim @@ -0,0 +1,70 @@ +" Color palette +let s:gui_dark_gray = '#303030' +let s:cterm_dark_gray = 236 +let s:gui_med_gray_hi = '#444444' +let s:cterm_med_gray_hi = 238 +let s:gui_med_gray_lo = '#3a3a3a' +let s:cterm_med_gray_lo = 237 +let s:gui_light_gray = '#b2b2b2' +let s:cterm_light_gray = 249 +let s:gui_green = '#afd787' +let s:cterm_green = 150 +let s:gui_blue = '#87afd7' +let s:cterm_blue = 110 +let s:gui_purple = '#afafd7' +let s:cterm_purple = 146 +let s:gui_orange = '#d7af5f' +let s:cterm_orange = 179 +let s:gui_red = '#d78787' +let s:cterm_red = 174 +let s:gui_pink = '#d7afd7' +let s:cterm_pink = 182 + +let g:airline#themes#bubblegum#palette = {} + +" Normal mode +let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] +let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] +let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi] +let g:airline#themes#bubblegum#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#bubblegum#palette.normal_modified = { + \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], + \ } + +" Insert mode +let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] +let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] +let g:airline#themes#bubblegum#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) +let g:airline#themes#bubblegum#palette.insert_modified = copy(g:airline#themes#bubblegum#palette.normal_modified) +let g:airline#themes#bubblegum#palette.insert_paste = { + \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], + \ } + +" Replace mode +let g:airline#themes#bubblegum#palette.replace = { + \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], + \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], + \ } +let g:airline#themes#bubblegum#palette.replace_modified = copy(g:airline#themes#bubblegum#palette.insert_modified) + +" Visual mode +let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] +let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] +let g:airline#themes#bubblegum#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) +let g:airline#themes#bubblegum#palette.visual_modified = copy(g:airline#themes#bubblegum#palette.insert_modified) + +" Inactive window +let s:IA = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, ''] +let g:airline#themes#bubblegum#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#bubblegum#palette.inactive_modified = { + \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], + \ } + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#bubblegum#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, '' ] , + \ [ s:gui_orange, s:gui_med_gray_lo, s:cterm_orange, s:cterm_med_gray_lo, '' ] , + \ [ s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green, 'bold' ] ) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/cool.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/cool.vim new file mode 100644 index 00000000..2c7c157c --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/cool.vim @@ -0,0 +1,63 @@ +let g:airline#themes#cool#palette = {} + +" NORMAL +let s:N1 = [ '#585858' , '#E4E4E4' , 17 , 190 ] +let s:N2 = [ '#E4E4E4' , '#0087AF' , 255 , 238 ] +let s:N3 = [ '#EEEEEE' , '#005F87' , 85 , 234 ] +let g:airline#themes#cool#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +"let g:airline#themes#cool#palette.normal_modified = { + "\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + "\ } + +" INSERT +let s:I1 = [ '#585858' , '#E4E4E4' , 17 , 45 ] +let s:I2 = [ '#E4E4E4' , '#47AF00' , 255 , 27 ] +let s:I3 = [ '#EEEEEE' , '#2E8700' , 15 , 17 ] +let g:airline#themes#cool#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +"let g:airline#themes#cool#palette.insert_modified = { + "\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + "\ } +"let g:airline#themes#cool#palette.insert_paste = { + "\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + "\ } + +" REPLACE +let s:R1 = [ '#585858' , '#E4E4E4' , 17 , 45 ] +let s:R2 = [ '#E4E4E4' , '#AF5F00' , 255 , 27 ] +let s:R3 = [ '#EEEEEE' , '#875300' , 15 , 17 ] +let g:airline#themes#cool#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +"let g:airline#themes#cool#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] +"let g:airline#themes#cool#palette.replace_modified = g:airline#themes#cool#palette.insert_modified + +" VISUAL +let s:V1 = [ '#585858' , '#E4E4E4' , 232 , 214 ] +let s:V2 = [ '#E4E4E4' , '#AF2800' , 232 , 202 ] +let s:V3 = [ '#EEEEEE' , '#872800' , 15 , 52 ] +let g:airline#themes#cool#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +"let g:airline#themes#cool#palette.visual_modified = { + "\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + "\ } + +" INACTIVE +let s:IA1 = [ '#585858' , '#E4E4E4' , 239 , 234 , '' ] +let s:IA2 = [ '#E4E4E4' , '#466D79' , 239 , 235 , '' ] +let s:IA3 = [ '#EEEEEE' , '#324E59' , 239 , 236 , '' ] +let g:airline#themes#cool#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +"let g:airline#themes#cool#palette.inactive_modified = { + "\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + "\ } + + +let g:airline#themes#cool#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } + +" CTRLP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#cool#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#E4E4E4' , '#00AFA2' , 231 , 98 , '' ], + \ [ '#EEEEEE' , '#008787' , 55 , 231 , '' ], + \ [ '#585858' , '#E4E4E4' , 189 , 55 , '' ]) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/dark.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/dark.vim new file mode 100644 index 00000000..217b2f1f --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/dark.vim @@ -0,0 +1,102 @@ +" Each theme is contained in its own file and declares variables scoped to the +" file. These variables represent the possible "modes" that airline can +" detect. The mode is the return value of mode(), which gets converted to a +" readable string. The following is a list currently supported modes: normal, +" insert, replace, visual, and inactive. +" +" Each mode can also have overrides. These are small changes to the mode that +" don't require a completely different look. "modified" and "paste" are two +" such supported overrides. These are simply suffixed to the major mode, +" separated by an underscore. For example, "normal_modified" would be normal +" mode where the current buffer is modified. +" +" The theming algorithm is a 2-pass system where the mode will draw over all +" parts of the statusline, and then the override is applied after. This means +" it is possible to specify a subset of the theme in overrides, as it will +" simply overwrite the previous colors. If you want simultaneous overrides, +" then they will need to change different parts of the statusline so they do +" not conflict with each other. +" +" First, let's define an empty dictionary and assign it to the "palette" +" variable. The # is a separator that maps with the directory structure. If +" you get this wrong, Vim will complain loudly. +let g:airline#themes#dark#palette = {} + +" First let's define some arrays. The s: is just a VimL thing for scoping the +" variables to the current script. Without this, these variables would be +" declared globally. Now let's declare some colors for normal mode and add it +" to the dictionary. The array is in the format: +" [ guifg, guibg, ctermfg, ctermbg, opts ]. See "help attr-list" for valid +" values for the "opt" value. +let s:N1 = [ '#00005f' , '#dfff00' , 17 , 190 ] +let s:N2 = [ '#ffffff' , '#444444' , 255 , 238 ] +let s:N3 = [ '#9cffd3' , '#202020' , 85 , 234 ] +let g:airline#themes#dark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +" Here we define overrides for when the buffer is modified. This will be +" applied after g:airline#themes#dark#palette.normal, hence why only certain keys are +" declared. +let g:airline#themes#dark#palette.normal_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + +let s:I1 = [ '#00005f' , '#00dfff' , 17 , 45 ] +let s:I2 = [ '#ffffff' , '#005fff' , 255 , 27 ] +let s:I3 = [ '#ffffff' , '#000080' , 15 , 17 ] +let g:airline#themes#dark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#dark#palette.insert_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } +let g:airline#themes#dark#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#dark#palette.replace = copy(g:airline#themes#dark#palette.insert) +let g:airline#themes#dark#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] +let g:airline#themes#dark#palette.replace_modified = g:airline#themes#dark#palette.insert_modified + + +let s:V1 = [ '#000000' , '#ffaf00' , 232 , 214 ] +let s:V2 = [ '#000000' , '#ff5f00' , 232 , 202 ] +let s:V3 = [ '#ffffff' , '#5f0000' , 15 , 52 ] +let g:airline#themes#dark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#dark#palette.visual_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + +let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] +let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] +let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let g:airline#themes#dark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#dark#palette.inactive_modified = { + \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ } + + +" Accents are used to give parts within a section a slightly different look or +" color. Here we are defining a "red" accent, which is used by the 'readonly' +" part by default. Only the foreground colors are specified, so the background +" colors are automatically extracted from the underlying section colors. What +" this means is that regardless of which section the part is defined in, it +" will be red instead of the section's foreground color. You can also have +" multiple parts with accents within a section. +let g:airline#themes#dark#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } + + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#dark#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ], + \ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ], + \ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ]) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/distinguished.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/distinguished.vim new file mode 100644 index 00000000..0d65f4c4 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/distinguished.vim @@ -0,0 +1,59 @@ +" vim-airline companion theme of distinguished +" (https://github.com/Lokaltog/vim-distinguished) +" I have nothing to do with the original +" distinguished theme other than being a big fan. +" this theme was shamelessly created by modifying +" the Ubaryd airline theme. + +let s:gray = [245, '#8a8a8a'] +let s:golden = [143, '#afaf5f'] +let s:pink = [131, '#af5f5f'] +let s:blue = [ 67, '#5f87af'] +let s:orange = [166, '#d75f00'] +let s:outerfg = [ 16, '#000000'] +let s:innerbg = [234, '#1c1c1c'] +let s:middle = ['#bcbcbc', '#444444', 250, 238] + +" Normal mode +let s:N1 = [s:outerfg[1], s:gray[1], s:outerfg[0], s:gray[0]] +let s:N3 = [s:gray[1], s:innerbg[1], s:gray[0], s:innerbg[0]] + +" Insert mode +let s:I1 = [s:outerfg[1], s:golden[1], s:outerfg[0], s:golden[0]] +let s:I3 = [s:golden[1], s:innerbg[1], s:golden[0], s:innerbg[0]] + +" Visual mode +let s:V1 = [s:outerfg[1], s:pink[1], s:outerfg[0], s:pink[0]] +let s:V3 = [s:pink[1], s:innerbg[1], s:pink[0], s:innerbg[0]] + +" Replace mode +let s:R1 = [s:outerfg[1], s:blue[1], s:outerfg[0], s:blue[0]] +let s:R3 = [s:blue[1], s:innerbg[1], s:blue[0], s:innerbg[0]] + +" Inactive pane +let s:IA = [s:middle[1], s:innerbg[1], s:middle[3], s:innerbg[0]] + +let g:airline#themes#distinguished#palette = {} +let g:airline#themes#distinguished#palette.accents = { + \ 'red': ['#d70000', '', 160, '', '']} + +let g:airline#themes#distinguished#palette.inactive = { + \ 'airline_a': s:IA, + \ 'airline_b': s:IA, + \ 'airline_c': s:IA} + +let g:airline#themes#distinguished#palette.normal = airline#themes#generate_color_map(s:N1, s:middle, s:N3) +let g:airline#themes#distinguished#palette.normal_modified = { + \ 'airline_a': ['', s:orange[1], '', s:orange[0], ''], + \ 'airline_c': [s:orange[1], '', s:orange[0], '', ''], + \ 'airline_x': [s:orange[1], '', s:orange[0], '', ''], + \ 'airline_z': ['', s:orange[1], '', s:orange[0], '']} + +let g:airline#themes#distinguished#palette.insert = airline#themes#generate_color_map(s:I1, s:middle, s:I3) +let g:airline#themes#distinguished#palette.insert_modified = {} + +let g:airline#themes#distinguished#palette.replace = airline#themes#generate_color_map(s:R1, s:middle, s:R3) +let g:airline#themes#distinguished#palette.replace_modified = {} + +let g:airline#themes#distinguished#palette.visual = airline#themes#generate_color_map(s:V1, s:middle, s:V3) +let g:airline#themes#distinguished#palette.visual_modified = {} diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/durant.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/durant.vim new file mode 100644 index 00000000..cb844d4e --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/durant.vim @@ -0,0 +1,62 @@ +let g:airline#themes#durant#palette = {} + + +let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] +let s:N2 = [ '#93a1a1' , '#586e75' , 245 , 240 ] +let s:N3 = [ '#93a1a1' , '#073642' , 240 , 233 ] +let g:airline#themes#durant#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + +let g:airline#themes#durant#normal_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + + +let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] +let s:I2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] +let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] +let g:airline#themes#durant#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#durant#palette.insert_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } +let g:airline#themes#durant#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#durant#palette.replace = copy(g:airline#themes#durant#palette.insert) +let g:airline#themes#durant#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] + +let g:airline#themes#durant#palette.replace_modified = g:airline#themes#durant#palette.insert_modified + +let s:V1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ] +let s:V2 = [ '#ffffff' , '#44403a' , 255, 238 ] +let s:V3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] +let g:airline#themes#durant#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#durant#palette.visual_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + +let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] +let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] +let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let g:airline#themes#durant#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#durant#palette.inactive_modified = { + \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ } + + +let g:airline#themes#durant#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + let g:airline#themes#durant#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ], + \ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ], + \ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ]) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/hybrid.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/hybrid.vim new file mode 100644 index 00000000..b0df8441 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/hybrid.vim @@ -0,0 +1,58 @@ +" vim-airline companion theme of Hybrid +" (https://github.com/w0ng/vim-hybrid) + +let g:airline#themes#hybrid#palette = {} + +function! airline#themes#hybrid#refresh() + let s:N1 = airline#themes#get_highlight('DiffAdd') + let s:N2 = airline#themes#get_highlight('CursorLine') + let s:N3 = airline#themes#get_highlight('PMenu') + let g:airline#themes#hybrid#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let modified_group = airline#themes#get_highlight2(['Text', 'fg'], ['SpellRare', 'bg'], 'bold') + let g:airline#themes#hybrid#palette.normal_modified = { + \ 'airline_c': airline#themes#get_highlight2(['Text', 'fg'], ['SpellRare', 'bg'], 'bold') + \ } + + let warning_group = airline#themes#get_highlight('SpellRare') + let g:airline#themes#hybrid#palette.normal.airline_warning = warning_group + let g:airline#themes#hybrid#palette.normal_modified.airline_warning = warning_group + + let s:I1 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffText', 'bg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['Text', 'fg'], ['SpellLocal', 'bg'], 'bold') + let s:I3 = airline#themes#get_highlight2(['Text', 'fg'], ['SpellCap', 'bg'], 'bold') + let g:airline#themes#hybrid#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#hybrid#palette.insert_modified = g:airline#themes#hybrid#palette.normal_modified + let g:airline#themes#hybrid#palette.insert.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning + let g:airline#themes#hybrid#palette.insert_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning + + let s:R1 = airline#themes#get_highlight('DiffChange') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#hybrid#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let replace_group = airline#themes#get_highlight('SpellRare') + let g:airline#themes#hybrid#palette.replace_modified = g:airline#themes#hybrid#palette.normal_modified + let g:airline#themes#hybrid#palette.replace.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning + let g:airline#themes#hybrid#palette.replace_modified.airline_warning = g:airline#themes#hybrid#palette.replace_modified.airline_warning + + let s:V1 = airline#themes#get_highlight2(['Text', 'fg'], ['Folded', 'bg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffDelete', 'bg'], 'bold') + let s:V3 = airline#themes#get_highlight2(['Text', 'fg'], ['Error', 'bg'], 'bold') + let g:airline#themes#hybrid#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#hybrid#palette.visual_modified = g:airline#themes#hybrid#palette.normal_modified + let g:airline#themes#hybrid#palette.visual.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning + let g:airline#themes#hybrid#palette.visual_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning + + let s:IA = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#hybrid#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#hybrid#palette.inactive_modified = { + \ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ] + \ } + + let g:airline#themes#hybrid#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + +endfunction + +call airline#themes#hybrid#refresh() diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/hybridline.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/hybridline.vim new file mode 100644 index 00000000..84729c13 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/hybridline.vim @@ -0,0 +1,34 @@ +" vim-airline theme based on vim-hybrid and powerline +" (https://github.com/w0ng/vim-hybrid) +" (https://github.com/Lokaltog/powerline) + +let g:airline#themes#hybridline#palette = {} + +let s:N1 = [ '#282a2e' , '#c5c8c6' , 'black' , 15 ] +let s:N2 = [ '#c5c8c6' , '#373b41' , 15 , 8 ] +let s:N3 = [ '#ffffff' , '#282a2e' , 255 , 'black' ] +let g:airline#themes#hybridline#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#hybridline#palette.normal.airline_a = ['#005f00', '#b5bd68', 22, 10, ''] + +let s:I1 = [ '#005f5f' , '#8abeb7' , 23 , 14 ] +let s:I2 = [ '#c5c8c6' , '#0087af' , 15 , 31 ] +let s:I3 = [ '#ffffff' , '#005f87' , 255 , 24 ] +let g:airline#themes#hybridline#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#hybridline#palette.insert_paste = { + \ 'airline_a': ['#000000', '#ac4142', 16 , 1, ''] , + \ } + +let g:airline#themes#hybridline#palette.replace = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#hybridline#palette.replace.airline_a = ['#000000', '#CC6666', 16, 9] + +let g:airline#themes#hybridline#palette.visual = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#hybridline#palette.visual.airline_a = ['#000000', '#de935f', 16, 3] + +let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] +let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] +let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let g:airline#themes#hybridline#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +let g:airline#themes#hybridline#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/jellybeans.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/jellybeans.vim new file mode 100644 index 00000000..c683c34e --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/jellybeans.vim @@ -0,0 +1,80 @@ +" Color palette +let s:gui00 = "#151515" +let s:gui01 = "#262626" +let s:gui02 = "#4f5b66" +let s:gui03 = "#65737e" +let s:gui04 = "#a7adba" +let s:gui05 = "#c0c5ce" +let s:gui06 = "#cdd3de" +let s:gui07 = "#d8dee9" +let s:gui08 = "#870000" +let s:gui09 = "#f99157" +let s:gui0A = "#fac863" +let s:gui0B = "#437019" +let s:gui0C = "#5fb3b3" +let s:gui0D = "#0d61ac" +let s:gui0E = "#c594c5" +let s:gui0F = "#ab7967" + +let s:cterm00 = "234" +let s:cterm01 = "235" +let s:cterm02 = "239" +let s:cterm03 = "59" +let s:cterm04 = "145" +let s:cterm05 = "152" +let s:cterm06 = "188" +let s:cterm07 = "15" +let s:cterm08 = "88" +let s:cterm09 = "209" +let s:cterm0A = "221" +let s:cterm0B = "28" +let s:cterm0C = "73" +let s:cterm0D = "04" +let s:cterm0E = "176" +let s:cterm0F = "137" + +let s:guiWhite = "#ffffff" +let s:ctermWhite = "15" + +let g:airline#themes#jellybeans#palette = {} + +" Normal mode +let s:N1 = [ s:gui07 , s:gui0D , s:cterm07 , s:cterm0D ] +let s:N2 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm01 ] +let s:N3 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let g:airline#themes#jellybeans#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +" Insert mode +let s:I1 = [ s:guiWhite , s:gui0B , s:ctermWhite , s:cterm0B ] +let s:I2 = [ s:gui02 , s:gui01 , s:cterm03 , s:cterm01 ] +let s:I3 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm00 ] +let g:airline#themes#jellybeans#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +" Visual mode +let s:V1 = [ s:guiWhite , s:gui08 , s:ctermWhite , s:cterm08 ] +let s:V2 = [ s:gui02 , s:gui01 , s:cterm03 , s:cterm01 ] +let s:V3 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm00 ] +let g:airline#themes#jellybeans#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +" Replace mode +let s:R1 = [ s:gui08 , s:gui01 , s:cterm08, s:cterm00 ] +let s:R2 = [ s:gui02 , s:gui01 , s:cterm03 , s:cterm01 ] +let s:R3 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm00 ] +let g:airline#themes#jellybeans#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +" Inactive mode +let s:IN1 = [ s:gui00 , s:gui01 , s:cterm00 , s:cterm01 ] +let s:IN2 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let s:IN3 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let g:airline#themes#jellybeans#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:CP1 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm01 ] +let s:CP2 = [ s:guiWhite , s:gui03 , s:ctermWhite , s:cterm01 ] +let s:CP3 = [ s:guiWhite , s:gui0D , s:ctermWhite , s:cterm0D ] + +let g:airline#themes#jellybeans#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(s:CP1, s:CP2, s:CP3) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/kalisi.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/kalisi.vim new file mode 100644 index 00000000..78504fab --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/kalisi.vim @@ -0,0 +1,70 @@ +" +" Colorscheme: Kalisi for airline. Inspired by powerline. +" Arthur Jaron +" hifreeo@gmail.com +" 24.10.2014 + +" Visual mode +let s:V1 = [ '#0087ff' , '#ffffff','33','231'] +let s:V2 = [ '#005faf' , '#5fafff','25','75'] +let s:V3 = [ '#87d7ff' , '#005faf','117','25'] + +" Replace mode +let s:R1 = [ '#d75fff' , '#ffffff','171','231'] +let s:R2 = [ '#5f005f' , '#d75fff','53','171'] +let s:R3 = [ '#ff87ff' , '#8700af','213','91'] + +let g:airline#themes#kalisi#palette = {} + + +function! airline#themes#kalisi#refresh() + + let s:StatusLine = airline#themes#get_highlight('StatusLine') + let s:StatusLineNC = airline#themes#get_highlight('StatusLineNC') + + " Insert mode + let s:I1 = [ '#ffffff' , '#e80000','231','160'] + let s:I2 = [ '#ff0000' , '#5f0000','196','52'] + let s:I3 = s:StatusLine + + " Normal mode + let s:N1 = [ '#005f00' , '#afd700','22','148'] + let s:N2 = [ '#afd700' , '#005f00','148','22'] + let s:N3 = s:StatusLine + + " Tabline Plugin + let g:airline#themes#kalisi#palette.tabline = { + \ 'airline_tab': ['#bcbcbc', '#005f00','250','22'], + \ 'airline_tabsel': ['#404042', '#A6DB29','238','148'], + \ 'airline_tabtype':['#afd700', '#204d20','148','22'], + \ 'airline_tabfill': s:StatusLine, + \ 'airline_tabhid': ['#c5c5c5', '#404042','251','238'], + \ 'airline_tabmod': ['#d7ff00', '#afd700','190','148'], + \ 'airline_tabmod_unsel': ['#d7ff00', '#005f00','190','22'] + \ } + + let g:airline#themes#kalisi#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#kalisi#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#kalisi#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#kalisi#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + + " Inactive Mode + let s:IA = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#kalisi#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#kalisi#palette.inactive_modified = { + \ 'airline_c': ['#d7ff00', s:IA[1],'190',s:IA[3]], + \ } + +endfunction + +call airline#themes#kalisi#refresh() + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#kalisi#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ s:StatusLine, + \ ['#afd700', '#005f00','148','22'], + \ [ '#005f00' , '#afd700' , '22','148'] + \) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/kolor.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/kolor.vim new file mode 100644 index 00000000..e61f56f2 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/kolor.vim @@ -0,0 +1,59 @@ +let g:airline#themes#kolor#palette = {} + +let s:N1 = [ '#e2e2e2' , '#4f3598' , 254 , 56 ] +let s:N2 = [ '#ff5fd7' , '#242322' , 206 , 234 ] +let s:N3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] + +let g:airline#themes#kolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#kolor#palette.normal_modified = { + \ 'airline_c': [ '#e2e2e2' , '#4f3598' , 254 , 56 , '' ] , + \ } + + +let s:I1 = [ '#242322' , '#7eaefd' , 234 , 111 ] +let s:I2 = [ '#75d7d8' , '#242322' , 80 , 234 ] +let s:I3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] +let g:airline#themes#kolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#kolor#palette.insert_modified = { + \ 'airline_c': [ '#242322' , '#7eaefd' , 234 , 111 , '' ] , + \ } + + +let g:airline#themes#kolor#palette.replace = copy(g:airline#themes#kolor#palette.insert) +let g:airline#themes#kolor#palette.replace.airline_a = [ s:I2[0] , '#005154' , s:I2[2] , 23 , '' ] +let g:airline#themes#kolor#palette.replace_modified = { + \ 'airline_c': [ '#e2e2e2' , '#005154' , 254 , 23 , '' ] , + \ } + + +let s:V1 = [ '#242322' , '#e6987a' , 234 , 180 ] +let s:V2 = [ '#dbc570' , '#242322' , 186 , 234 ] +let s:V3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] +let g:airline#themes#kolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#kolor#palette.visual_modified = { + \ 'airline_c': [ '#242322' , '#e6987a' , 234 , 180 , '' ] , + \ } + + +let s:IA1 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ] +let s:IA2 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 ] +let s:IA3 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ] +let g:airline#themes#kolor#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#kolor#palette.inactive_modified = { + \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ } + + +let g:airline#themes#kolor#palette.accents = { + \ 'red': [ '#d96e8a' , '' , 168 , '' ] + \ } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#kolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#e2e2e2' , '#4a4a4a' , 254 , 238 , '' ], + \ [ '#e2e2e2' , '#242322' , 254 , 234 , '' ], + \ [ '#e2e2e2' , '#4f3598' , 254 , 56 , 'bold' ]) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/laederon.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/laederon.vim new file mode 100644 index 00000000..115c1079 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/laederon.vim @@ -0,0 +1,62 @@ +" vim-airline companion theme of Laederon +" (https://github.com/Donearm/Laederon) + +" Normal mode +let s:N1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ] " blackestgravel & snow +let s:N2 = [ '#ffffff' , '#44403a' , 255, 238 ] " snow & deepgravel +let s:N3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] " dilutedpaint & darkgravel +let s:N4 = [ '#777470' , 240 ] " gravel + +" Insert mode +let s:I1 = [ '#1a1a18' , '#1693a5' , 232 , 62 ] " blackestgravel & crystallake +let s:I2 = [ '#515744' , '#44403a' , 101 , 238 ] " lichen & deepgravel +let s:I3 = [ '#1693a5' , '#2e2d2a' , 39 , 235 ] " crystallake & darkgravel + +" Visual mode +let s:V1 = [ '#1a1a18' , '#ab3e5d' , 232 , 161 ] " blackestgravel & raspberry +let s:V2 = [ '#000000' , '#908571' , 16 , 252 ] " coal & winterterrain +let s:V3 = [ '#ab3e5d' , '#8c7f77' , 161 , 245 ] " raspberry & wetcoldterrain +let s:V4 = [ '#515744' , 101 ] " lichen + +" Replace mode +let s:RE = [ '#233e09' , 22 ] " oakleaf + +" Paste mode +let s:PA = [ '#ab3e5d' , 161 ] " raspberry + +let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3], s:N3[3] , '' ] + + +let g:airline#themes#laederon#palette = {} + +let g:airline#themes#laederon#palette.accents = { + \ 'red': [ '#ef393d' , '' , 196 , '' , '' ] + \ } + +let g:airline#themes#laederon#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#laederon#palette.normal_modified = { + \ 'airline_a' : [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , + \ 'airline_c' : [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } + + +let g:airline#themes#laederon#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#laederon#palette.insert_modified = { + \ 'airline_c' : [ s:V2[1] , s:N2[1] , s:V2[3] , s:N2[3] , '' ] } +let g:airline#themes#laederon#palette.insert_paste = { + \ 'airline_a' : [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } + + +let g:airline#themes#laederon#palette.replace = copy(airline#themes#laederon#palette.insert) +let g:airline#themes#laederon#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] +let g:airline#themes#laederon#palette.replace_modified = g:airline#themes#laederon#palette.insert_modified + + +let g:airline#themes#laederon#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#laederon#palette.visual_modified = { + \ 'airline_c' : [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } + + +let g:airline#themes#laederon#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#laederon#palette.inactive_modified = { + \ 'airline_c' : [ s:V1[1] , '' , s:V1[3] , '' , '' ] } + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/light.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/light.vim new file mode 100644 index 00000000..d9fe8441 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/light.vim @@ -0,0 +1,45 @@ +let g:airline#themes#light#palette = {} + +let s:N1 = [ '#ffffff' , '#005fff' , 255 , 27 ] +let s:N2 = [ '#000087' , '#00dfff' , 18 , 45 ] +let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ] +let g:airline#themes#light#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#light#palette.normal_modified = { + \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] +let s:I2 = [ '#005f00' , '#00df87' , 22 , 42 ] +let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ] +let g:airline#themes#light#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#light#palette.insert_modified = { + \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } +let g:airline#themes#light#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#light#palette.replace = copy(g:airline#themes#light#palette.insert) +let g:airline#themes#light#palette.replace.airline_a = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] +let g:airline#themes#light#palette.replace_modified = g:airline#themes#light#palette.insert_modified + + +let s:V1 = [ '#ffffff' , '#ff5f00' , 255 , 202 ] +let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ] +let s:V3 = [ '#df5f00' , '#ffff87' , 166 , 228 ] +let g:airline#themes#light#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#light#palette.visual_modified = { + \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:IA1 = [ '#666666' , '#b2b2b2' , 242 , 249 , '' ] +let s:IA2 = [ '#8a8a8a' , '#d0d0d0' , 245 , 252 , '' ] +let s:IA3 = [ '#a8a8a8' , '#ffffff' , 248 , 255 , '' ] +let g:airline#themes#light#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#light#palette.inactive_modified = { + \ 'airline_c': [ '#df0000' , '' , 160 , '' , '' ] , + \ } + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim new file mode 100644 index 00000000..e3869007 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim @@ -0,0 +1,56 @@ +let g:airline#themes#lucius#palette = {} + +function! airline#themes#lucius#refresh() + + let s:N1 = airline#themes#get_highlight('StatusLine') + let s:N2 = airline#themes#get_highlight('Folded') + let s:N3 = airline#themes#get_highlight('CursorLine') + let g:airline#themes#lucius#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let modified_group = airline#themes#get_highlight('Statement') + let g:airline#themes#lucius#palette.normal_modified = { + \ 'airline_c': [modified_group[0], '', modified_group[2], '', ''] + \ } + + let warning_group = airline#themes#get_highlight('DiffDelete') + let g:airline#themes#lucius#palette.normal.airline_warning = warning_group + let g:airline#themes#lucius#palette.normal_modified.airline_warning = warning_group + + let s:I1 = airline#themes#get_highlight('DiffAdd') + let s:I2 = s:N2 + let s:I3 = s:N3 + let g:airline#themes#lucius#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#lucius#palette.insert_modified = g:airline#themes#lucius#palette.normal_modified + let g:airline#themes#lucius#palette.insert.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning + let g:airline#themes#lucius#palette.insert_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning + + let s:R1 = airline#themes#get_highlight('DiffChange') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#lucius#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#lucius#palette.replace_modified = g:airline#themes#lucius#palette.normal_modified + let g:airline#themes#lucius#palette.replace.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning + let g:airline#themes#lucius#palette.replace_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning + + let s:V1 = airline#themes#get_highlight('Cursor') + let s:V2 = s:N2 + let s:V3 = s:N3 + let g:airline#themes#lucius#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#lucius#palette.visual_modified = g:airline#themes#lucius#palette.normal_modified + let g:airline#themes#lucius#palette.visual.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning + let g:airline#themes#lucius#palette.visual_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning + + let s:IA = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#lucius#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#lucius#palette.inactive_modified = { + \ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ] + \ } + + let g:airline#themes#lucius#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + +endfunction + +call airline#themes#lucius#refresh() + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/luna.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/luna.vim new file mode 100644 index 00000000..879d8623 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/luna.vim @@ -0,0 +1,92 @@ +" vim-airline companion theme of Luna +" (https://github.com/Pychimp/vim-luna) + +let g:airline#themes#luna#palette = {} + +let g:airline#themes#luna#palette.accents = { + \ 'red': [ '#ffffff' , '' , 231 , '' , '' ], + \ } + + +let s:N1 = [ '#ffffff' , '#005252' , 231 , 36 ] +let s:N2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] +let s:N3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] +let g:airline#themes#luna#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#luna#palette.normal_modified = { + \ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] , + \ } + + +let s:I1 = [ '#ffffff' , '#789f00' , 231 , 106 ] +let s:I2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] +let s:I3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] +let g:airline#themes#luna#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#luna#palette.insert_modified = { + \ 'airline_c': [ '#ffffff' , '#005e5e' , 255 , 52 , '' ] , + \ } +let g:airline#themes#luna#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#789f00' , s:I1[2] , 106 , '' ] , + \ } + + +let g:airline#themes#luna#palette.replace = copy(g:airline#themes#luna#palette.insert) +let g:airline#themes#luna#palette.replace.airline_a = [ s:I2[0] , '#920000' , s:I2[2] , 88 , '' ] +let g:airline#themes#luna#palette.replace_modified = g:airline#themes#luna#palette.insert_modified + +let s:V1 = [ '#ffff9a' , '#ff8036' , 222 , 208 ] +let s:V2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] +let s:V3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] +let g:airline#themes#luna#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#luna#palette.visual_modified = { + \ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] , + \ } + +let s:IA = [ '#4e4e4e' , '#002b2b' , 59 , 23 , '' ] +let g:airline#themes#luna#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#luna#palette.inactive_modified = { + \ 'airline_c': [ '#e20000' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#luna#palette.tabline = { + \ 'airline_tab': ['#2aa198', '#003f3f', 231, 29, ''], + \ 'airline_tabsel': ['#ffffff', '#2e8b57', 231, 36, ''], + \ 'airline_tabtype': ['#ffffff', '#005252', 231, 36, ''], + \ 'airline_tabfill': ['#ffffff', '#002b2b', 231, 23, ''], + \ 'airline_tabmod': ['#ffffff', '#780000', 231, 88, ''], + \ } + +let s:WI = [ '#ffffff', '#5f0000', 231, 88 ] +let g:airline#themes#luna#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#luna#palette.normal_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.insert.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.insert_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.visual.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.visual_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.replace.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.replace_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#luna#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#ffffff' , '#002b2b' , 231 , 23 , '' ] , + \ [ '#ffffff' , '#005252' , 231 , 36 , '' ] , + \ [ '#ffffff' , '#973d45' , 231 , 95 , '' ] ) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/molokai.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/molokai.vim new file mode 100644 index 00000000..1998f002 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/molokai.vim @@ -0,0 +1,65 @@ +let g:airline#themes#molokai#palette = {} + +let g:airline#themes#molokai#palette.accents = { + \ 'red': [ '#66d9ef' , '' , 81 , '' , '' ], + \ } + + +" Normal mode +let s:N1 = [ '#080808' , '#e6db74' , 232 , 144 ] " mode +let s:N2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] " info +let s:N3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] " statusline + +let g:airline#themes#molokai#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#molokai#palette.normal_modified = { + \ 'airline_c': [ '#080808' , '#e6db74' , 232 , 144 , '' ] , + \ } + + +" Insert mode +let s:I1 = [ '#080808' , '#66d9ef' , 232 , 81 ] +let s:I2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] +let s:I3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] + +let g:airline#themes#molokai#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#molokai#palette.insert_modified = { + \ 'airline_c': [ '#080808' , '#66d9ef' , 232 , 81 , '' ] , + \ } + + +" Replace mode +let g:airline#themes#molokai#palette.replace = copy(g:airline#themes#molokai#palette.insert) +let g:airline#themes#molokai#palette.replace.airline_a = [ s:I1[0] , '#ef5939' , s:I1[2] , 166 , '' ] +let g:airline#themes#molokai#palette.replace_modified = { + \ 'airline_c': [ '#080808' , '#ef5939' , 232 , 166 , '' ] , + \ } + + +" Visual mode +let s:V1 = [ '#080808' , '#fd971f' , 232 , 208 ] +let s:V2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] +let s:V3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] + +let g:airline#themes#molokai#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#molokai#palette.visual_modified = { + \ 'airline_c': [ '#080808' , '#fd971f' , 232 , 208 , '' ] , + \ } + + +" Inactive +let s:IA = [ '#1b1d1e' , '#465457' , 233 , 67 , '' ] +let g:airline#themes#molokai#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#molokai#palette.inactive_modified = { + \ 'airline_c': [ '#f8f8f0' , '' , 253 , '' , '' ] , + \ } + + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#molokai#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#f8f8f0' , '#465457' , 253 , 67 , '' ] , + \ [ '#f8f8f0' , '#232526' , 253 , 16 , '' ] , + \ [ '#080808' , '#e6db74' , 232 , 144 , 'bold' ] ) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/monochrome.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/monochrome.vim new file mode 100644 index 00000000..7dd1a173 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/monochrome.vim @@ -0,0 +1,15 @@ +let g:airline#themes#monochrome#palette = {} + +function! airline#themes#monochrome#refresh() + let s:SL = airline#themes#get_highlight('StatusLine') + let g:airline#themes#monochrome#palette.normal = airline#themes#generate_color_map(s:SL, s:SL, s:SL) + let g:airline#themes#monochrome#palette.insert = g:airline#themes#monochrome#palette.normal + let g:airline#themes#monochrome#palette.replace = g:airline#themes#monochrome#palette.normal + let g:airline#themes#monochrome#palette.visual = g:airline#themes#monochrome#palette.normal + + let s:SLNC = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#monochrome#palette.inactive = airline#themes#generate_color_map(s:SLNC, s:SLNC, s:SLNC) +endfunction + +call airline#themes#monochrome#refresh() + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/murmur.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/murmur.vim new file mode 100644 index 00000000..08e47572 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/murmur.vim @@ -0,0 +1,82 @@ +let g:airline#themes#murmur#palette = {} + +" Color palette +let s:cterm_termbg = 237 " Background for branch and file format blocks +let s:gui_termbg = '#5F5F5F' +let s:cterm_termfg = 144 " Foreground for branch and file format blocks +let s:gui_termfg = '#AFAF87' + +let s:cterm_termbg2 = 234 " Background for middle block +let s:gui_termbg2 = '#1C1C1C' +let s:cterm_termfg2 = 39 " Foreground for middle block +let s:gui_termfg2 = '#F5F5F5' + +let s:cterm_normalbg = 27 " Background for normal mode and file position blocks +let s:gui_normalbg = '#5F87FF' +let s:cterm_normalfg = 15 " Foreground for normal mode and file position blocks +let s:gui_normalfg = '#FFFFFF' + +let s:cterm_insertbg = 70 " Background for insert mode and file position blocks +let s:gui_insertbg = '#87AF5F' +let s:cterm_insertfg = 15 " Foreground for insert mode and file position blocks +let s:gui_insertfg = '#FFFFFF' + +let s:cterm_visualbg = 166 " Background for visual mode and file position blocks +let s:gui_visualbg = '#ff8c00' +let s:cterm_visualfg = 15 " Foreground for visual mode and file position blocks +let s:gui_visualfg = '#FFFFFF' + +let s:cterm_replacebg = 88 " Background for replace mode and file position blocks +let s:gui_replacebg = '#870000' +let s:cterm_replacefg = 15 " Foreground for replace mode and file position blocks +let s:gui_replacefg = '#FFFFFF' + +let s:cterm_alert = 88 " Modified file alert color +let s:gui_alert = '#870000' + +let s:cterm_inactivebg = 234 " Background for inactive mode +let s:gui_inactivebg = '#1C1C1C' +let s:cterm_inactivefg = 239 " Foreground for inactive mode +let s:gui_inactivefg = '#4E4E4E' + +" Branch and file format +let s:BB = [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg] " Branch and file format blocks + +" Normal mode +let s:N1 = [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg] " Outside blocks in normal mode +let s:N2 = [s:gui_termfg2, s:gui_termbg2, s:cterm_normalbg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.normal = airline#themes#generate_color_map(s:N1, s:BB, s:N2) +let g:airline#themes#murmur#palette.normal_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Insert mode +let s:I1 = [s:gui_insertfg, s:gui_insertbg, s:cterm_insertfg, s:cterm_insertbg] " Outside blocks in insert mode +let s:I2 = [s:gui_insertbg, s:gui_termbg2, s:cterm_insertbg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.insert = airline#themes#generate_color_map(s:I1, s:BB, s:I2) +let g:airline#themes#murmur#palette.insert_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Replace mode +let s:R1 = [s:gui_replacefg, s:gui_replacebg, s:cterm_replacefg, s:cterm_replacebg] " Outside blocks in replace mode +let s:R2 = [s:gui_termfg, s:gui_termbg2, s:cterm_termfg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.replace = airline#themes#generate_color_map(s:R1, s:BB, s:R2) +let g:airline#themes#murmur#palette.replace_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Visual mode +let s:V1 = [s:gui_visualfg, s:gui_visualbg, s:cterm_visualfg, s:cterm_visualbg] " Outside blocks in visual mode +let s:V2 = [s:gui_visualbg, s:gui_termbg2, s:cterm_visualbg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.visual = airline#themes#generate_color_map(s:V1, s:BB, s:V2) +let g:airline#themes#murmur#palette.visual_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Inactive mode +let s:IA1 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA2 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA3 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let g:airline#themes#murmur#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" CtrlP plugin colors +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#murmur#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg, ''], + \ [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg, ''], + \ [s:gui_termfg2, s:gui_termbg2, s:cterm_termfg2, s:cterm_termbg2, 'bold']) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/papercolor.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/papercolor.vim new file mode 100644 index 00000000..fb8022ba --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/papercolor.vim @@ -0,0 +1,65 @@ +let g:airline#themes#papercolor#palette = {} + +let g:airline#themes#papercolor#palette.accents = { + \ 'red': [ '#66d9ef' , '' , 81 , '' , '' ], + \ } + +" Normal Mode: +let s:N1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode +let s:N2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info +let s:N3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine + + +let g:airline#themes#papercolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#papercolor#palette.normal_modified = { + \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , + \ } + + +" Insert Mode: +let s:I1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode +let s:I2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info +let s:I3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine + + +let g:airline#themes#papercolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#papercolor#palette.insert_modified = { + \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , + \ } + + +" Replace Mode: +let g:airline#themes#papercolor#palette.replace = copy(g:airline#themes#papercolor#palette.insert) +let g:airline#themes#papercolor#palette.replace.airline_a = [ '#d7005f' , '#e4e4e4' , 161 , 254, '' ] +let g:airline#themes#papercolor#palette.replace_modified = { + \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , + \ } + + +" Visual Mode: +let s:V1 = [ '#005f87', '#e4e4e4', 24, 254 ] +let s:V2 = [ '', '#0087af', '', 31 ] +let s:V3 = [ '#e4e4e4', '#005f87', 254, 24 ] + +let g:airline#themes#papercolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#papercolor#palette.visual_modified = { + \ 'airline_c': [ '#e4e4e4', '#005f87', 254, 24 ] , + \ } + +" Inactive: +let s:IA = [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] +let g:airline#themes#papercolor#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#papercolor#palette.inactive_modified = { + \ 'airline_c': [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] , + \ } + + +" CtrlP: +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#papercolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#e4e4e4' , '#005f87' , 254 , 24 , '' ] , + \ [ '#e4e4e4' , '#0087af' , 254 , 31 , '' ] , + \ [ '#585858' , '#e4e4e4' , 240 , 254 , 'bold' ] ) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/powerlineish.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/powerlineish.vim new file mode 100644 index 00000000..d550e110 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/powerlineish.vim @@ -0,0 +1,46 @@ +" Theme to mimic the default colorscheme of powerline +" Not 100% the same so it's powerline... ish. +" +" Differences from default powerline: +" * Paste indicator isn't colored different +" * Far right hand section matches the color of the mode indicator +" +" Differences from other airline themes: +" * No color differences when you're in a modified buffer +" * Visual mode only changes the mode section. Otherwise +" it appears the same as normal mode + +" Normal mode " fg & bg +let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] " darkestgreen & brightgreen +let s:N2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] " gray8 & gray2 +let s:N3 = [ '#ffffff' , '#121212' , 231 , 233 ] " white & gray4 + +" Insert mode " fg & bg +let s:I1 = [ '#005f5f' , '#ffffff' , 23 , 231 ] " darkestcyan & white +let s:I2 = [ '#5fafd7' , '#0087af' , 74 , 31 ] " darkcyan & darkblue +let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] " mediumcyan & darkestblue + +" Visual mode " fg & bg +let s:V1 = [ '#080808' , '#ffaf00' , 232 , 214 ] " gray3 & brightestorange + +" Replace mode " fg & bg +let s:RE = [ '#ffffff' , '#d70000' , 231 , 160 ] " white & brightred + +let g:airline#themes#powerlineish#palette = {} + +let g:airline#themes#powerlineish#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#powerlineish#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#powerlineish#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#powerlineish#palette.visual = { + \ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] } + +let g:airline#themes#powerlineish#palette.replace = copy(airline#themes#powerlineish#palette.normal) +let g:airline#themes#powerlineish#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + + +let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ] +let g:airline#themes#powerlineish#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/raven.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/raven.vim new file mode 100644 index 00000000..02bfd73a --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/raven.vim @@ -0,0 +1,85 @@ +let g:airline#themes#raven#palette = {} + +let g:airline#themes#raven#palette.accents = { + \ 'red': [ '#ff2121' , '' , 196 , '' , '' ], + \ } + +let s:N1 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] +let s:N2 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] +let s:N3 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] +let g:airline#themes#raven#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#raven#palette.normal_modified = { + \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , + \ } + +let s:I1 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] +let s:I2 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] +let s:I3 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] +let g:airline#themes#raven#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#raven#palette.insert_modified = { + \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , + \ } +let g:airline#themes#raven#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#2e2e2e' , s:I1[2] , 235 , '' ] , + \ } + +let g:airline#themes#raven#palette.replace = copy(g:airline#themes#raven#palette.insert) +let g:airline#themes#raven#palette.replace.airline_a = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ] +let g:airline#themes#raven#palette.replace.airline_z = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ] +let g:airline#themes#raven#palette.replace_modified = g:airline#themes#raven#palette.insert_modified + +let s:V1 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] +let s:V2 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] +let s:V3 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] +let g:airline#themes#raven#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#raven#palette.visual_modified = { + \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , + \ } + +let s:IA = [ '#5e5e5e' , '#222222' , 59 , 235 , '' ] +let g:airline#themes#raven#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#raven#palette.inactive_modified = { + \ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#raven#palette.tabline = { + \ 'airline_tab': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], + \ 'airline_tabsel': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ], + \ 'airline_tabtype': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], + \ 'airline_tabfill': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], + \ 'airline_tabmod': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ], + \ } + +let s:WI = [ '#ff0000', '#2e2e2e', 196, 235 ] +let g:airline#themes#raven#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#raven#palette.normal_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.insert.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.insert_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.visual.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.visual_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.replace.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.replace_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#raven#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] , + \ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] , + \ [ '#2e2e2e' , '#a4c639' , 235 , 149 , '' ] ) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/serene.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/serene.vim new file mode 100644 index 00000000..9191c077 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/serene.vim @@ -0,0 +1,41 @@ +let g:airline#themes#serene#palette = {} + +let s:guibg = '#080808' +let s:termbg = 232 +let s:termsep = 236 +let s:guisep = '#303030' + +let s:N1 = [ '#00dfff' , s:guibg , 45 , s:termbg ] +let s:N2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] +let s:N3 = [ '#767676' , s:guibg , 7 , s:termbg ] + +let g:airline#themes#serene#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#serene#palette.normal_modified = { + \ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , + \ } + +let s:I1 = [ '#5fff00' , s:guibg , 82 , s:termbg ] +let s:I2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] +let s:I3 = [ '#767676' , s:guibg , 7 , s:termbg ] +let g:airline#themes#serene#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#serene#palette.insert_modified = copy(g:airline#themes#serene#palette.normal_modified) +let g:airline#themes#serene#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + +let g:airline#themes#serene#palette.replace = { + \ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , + \ } +let g:airline#themes#serene#palette.replace_modified = copy(g:airline#themes#serene#palette.normal_modified) + +let s:V1 = [ '#dfdf00' , s:guibg , 184 , s:termbg ] +let s:V2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] +let s:V3 = [ '#767676' , s:guibg , 7 , s:termbg ] +let g:airline#themes#serene#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#serene#palette.visual_modified = copy(g:airline#themes#serene#palette.normal_modified) + +let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ] +let s:IA2 = [ '#4e4e4e' , s:guisep , 239 , s:termsep , '' ] +let g:airline#themes#serene#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2) +let g:airline#themes#serene#palette.inactive_modified = copy(g:airline#themes#serene#palette.normal_modified) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/silver.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/silver.vim new file mode 100644 index 00000000..fd85edba --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/silver.vim @@ -0,0 +1,85 @@ +let g:airline#themes#silver#palette = {} + +let g:airline#themes#silver#palette.accents = { + \ 'red': [ '#ff2121' , '' , 196 , '' , '' ], + \ } + +let s:N1 = [ '#414141' , '#e1e1e1' , 59 , 188 ] +let s:N2 = [ '#414141' , '#e1e1e1' , 59 , 188 ] +let s:N3 = [ '#414141' , '#e1e1e1' , 59 , 188 ] +let g:airline#themes#silver#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#silver#palette.normal_modified = { + \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , + \ } + +let s:I1 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] +let s:I2 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] +let s:I3 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] +let g:airline#themes#silver#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#silver#palette.insert_modified = { + \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , + \ } +let g:airline#themes#silver#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#e1e1e1' , s:I1[2] , 188 , '' ] , + \ } + +let g:airline#themes#silver#palette.replace = copy(g:airline#themes#silver#palette.insert) +let g:airline#themes#silver#palette.replace.airline_a = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ] +let g:airline#themes#silver#palette.replace.airline_z = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ] +let g:airline#themes#silver#palette.replace_modified = g:airline#themes#silver#palette.insert_modified + +let s:V1 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] +let s:V2 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] +let s:V3 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] +let g:airline#themes#silver#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#silver#palette.visual_modified = { + \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , + \ } + +let s:IA = [ '#a1a1a1' , '#dddddd' , 145 , 188 , '' ] +let g:airline#themes#silver#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#silver#palette.inactive_modified = { + \ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#silver#palette.tabline = { + \ 'airline_tab': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], + \ 'airline_tabsel': ['#e1e1e1' , '#007599' , 188 , 30 , '' ], + \ 'airline_tabtype': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], + \ 'airline_tabfill': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], + \ 'airline_tabmod': ['#e1e1e1' , '#007599' , 188 , 30 , '' ], + \ } + +let s:WI = [ '#ff0000', '#e1e1e1', 196, 188 ] +let g:airline#themes#silver#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#silver#palette.normal_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.insert.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.insert_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.visual.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.visual_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.replace.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.replace_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#silver#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] , + \ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] , + \ [ '#e1e1e1' , '#007599' , 188 , 30 , '' ] ) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/simple.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/simple.vim new file mode 100644 index 00000000..a111a1cb --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/simple.vim @@ -0,0 +1,46 @@ +let g:airline#themes#simple#palette = {} + +let s:guibg = '#080808' +let s:guibg2 = '#1c1c1c' +let s:termbg = 232 +let s:termbg2= 234 + +let s:N1 = [ s:guibg , '#00dfff' , s:termbg , 45 ] +let s:N2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] +let s:N3 = [ '#767676' , s:guibg, 243 , s:termbg] +let g:airline#themes#simple#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#simple#palette.normal_modified = { + \ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , + \ } + + +let s:I1 = [ s:guibg, '#5fff00' , s:termbg , 82 ] +let s:I2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] +let s:I3 = [ '#767676' , s:guibg, 243 , s:termbg ] +let g:airline#themes#simple#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#simple#palette.insert_modified = copy(g:airline#themes#simple#palette.normal_modified) +let g:airline#themes#simple#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#simple#palette.replace = { + \ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , + \ } +let g:airline#themes#simple#palette.replace_modified = copy(g:airline#themes#simple#palette.normal_modified) + + +let s:V1 = [ s:guibg, '#dfdf00' , s:termbg , 184 ] +let s:V2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] +let s:V3 = [ '#767676' , s:guibg, 243 , s:termbg ] +let g:airline#themes#simple#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#simple#palette.visual_modified = copy(g:airline#themes#simple#palette.normal_modified) + + +let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ] +let s:IA2 = [ '#4e4e4e' , s:guibg2 , 239 , s:termbg2 , '' ] +let g:airline#themes#simple#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2) +let g:airline#themes#simple#palette.inactive_modified = { + \ 'airline_c': [ '#df0000', '', 160, '', '' ] , + \ } + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/sol.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/sol.vim new file mode 100644 index 00000000..89ea5058 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/sol.vim @@ -0,0 +1,90 @@ +" vim-airline companion theme of Sol +" (https://github.com/Pychimp/vim-sol) + +let g:airline#themes#sol#palette = {} + +let g:airline#themes#sol#palette.accents = { + \ 'red': [ '#ffffff' , '' , 231 , '' , '' ], + \ } + +let s:N1 = [ '#343434' , '#a0a0a0' , 237 , 248 ] +let s:N2 = [ '#343434' , '#b3b3b3' , 237 , 250 ] +let s:N3 = [ '#343434' , '#c7c7c7' , 237 , 252 ] +let g:airline#themes#sol#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#sol#palette.normal_modified = { + \ 'airline_c': [ '#ffffff' , '#ff6868' , 237 , 209 , '' ] , + \ } + + +let s:I1 = [ '#eeeeee' , '#09643f' , 255 , 30 ] +let s:I2 = [ '#343434' , '#a3a3a3' , 237 , 249 ] +let s:I3 = [ '#343434' , '#b0b0b0' , 237 , 250 ] +let g:airline#themes#sol#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#sol#palette.insert_modified = { + \ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] , + \ } +let g:airline#themes#sol#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#09643f' , s:I1[2] , 30 , '' ] , + \ } + + +let g:airline#themes#sol#palette.replace = copy(g:airline#themes#sol#palette.insert) +let g:airline#themes#sol#palette.replace.airline_a = [ s:I1[0] , '#ff2121' , s:I1[2] , 196 , '' ] +let g:airline#themes#sol#palette.replace.airline_z = [ s:I1[0] , '#ff2121' , s:I1[2] , 196 , '' ] +let g:airline#themes#sol#palette.replace_modified = g:airline#themes#sol#palette.insert_modified + +let s:V1 = [ '#ffff9a' , '#ff6003' , 222 , 202 ] +let s:V2 = [ '#343434' , '#a3a3a3' , 237 , 249 ] +let s:V3 = [ '#343434' , '#b0b0b0' , 237 , 250 ] +let g:airline#themes#sol#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#sol#palette.visual_modified = { + \ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] , + \ } + +let s:IA = [ '#777777' , '#c7c7c7' , 244 , 251 , '' ] +let g:airline#themes#sol#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#sol#palette.inactive_modified = { + \ 'airline_c': [ '#ff3535' , '' , 203 , '' , '' ] , + \ } + +let g:airline#themes#sol#palette.tabline = { + \ 'airline_tab': ['#343434', '#b3b3b3', 237, 250, ''], + \ 'airline_tabsel': ['#ffffff', '#004b9a', 231, 31 , ''], + \ 'airline_tabtype': ['#343434', '#a0a0a0', 237, 248, ''], + \ 'airline_tabfill': ['#343434', '#c7c7c7', 237, 251, ''], + \ 'airline_tabmod': ['#343434', '#ffdbc7', 237, 216, ''], + \ } + +let s:WI = [ '#eeeeee', '#e33900', 255, 166 ] +let g:airline#themes#sol#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#sol#palette.normal_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.insert.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.insert_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.visual.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.visual_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.replace.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.replace_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#sol#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#343434' , '#c7c7c7' , 237 , 251 , '' ] , + \ [ '#343434' , '#b3b3b3' , 237 , 250 , '' ] , + \ [ '#eeeeee' , '#007fff' , 255 , 27 , '' ] ) diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/solarized.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/solarized.vim new file mode 100644 index 00000000..30ba47e6 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/solarized.vim @@ -0,0 +1,176 @@ +let g:airline#themes#solarized#palette = {} + +function! airline#themes#solarized#refresh() + """""""""""""""""""""""""""""""""""""""""""""""" + " Options + """""""""""""""""""""""""""""""""""""""""""""""" + let s:background = get(g:, 'airline_solarized_bg', &background) + let s:ansi_colors = get(g:, 'solarized_termcolors', 16) != 256 && &t_Co >= 16 ? 1 : 0 + let s:tty = &t_Co == 8 + + """""""""""""""""""""""""""""""""""""""""""""""" + " Colors + """""""""""""""""""""""""""""""""""""""""""""""" + " Base colors + let s:base03 = {'t': s:ansi_colors ? 8 : (s:tty ? '0' : 234), 'g': '#002b36'} + let s:base02 = {'t': s:ansi_colors ? '0' : (s:tty ? '0' : 235), 'g': '#073642'} + let s:base01 = {'t': s:ansi_colors ? 10 : (s:tty ? '0' : 240), 'g': '#586e75'} + let s:base00 = {'t': s:ansi_colors ? 11 : (s:tty ? '7' : 241), 'g': '#657b83'} + let s:base0 = {'t': s:ansi_colors ? 12 : (s:tty ? '7' : 244), 'g': '#839496'} + let s:base1 = {'t': s:ansi_colors ? 14 : (s:tty ? '7' : 245), 'g': '#93a1a1'} + let s:base2 = {'t': s:ansi_colors ? 7 : (s:tty ? '7' : 254), 'g': '#eee8d5'} + let s:base3 = {'t': s:ansi_colors ? 15 : (s:tty ? '7' : 230), 'g': '#fdf6e3'} + let s:yellow = {'t': s:ansi_colors ? 3 : (s:tty ? '3' : 136), 'g': '#b58900'} + let s:orange = {'t': s:ansi_colors ? 9 : (s:tty ? '1' : 166), 'g': '#cb4b16'} + let s:red = {'t': s:ansi_colors ? 1 : (s:tty ? '1' : 160), 'g': '#dc322f'} + let s:magenta = {'t': s:ansi_colors ? 5 : (s:tty ? '5' : 125), 'g': '#d33682'} + let s:violet = {'t': s:ansi_colors ? 13 : (s:tty ? '5' : 61 ), 'g': '#6c71c4'} + let s:blue = {'t': s:ansi_colors ? 4 : (s:tty ? '4' : 33 ), 'g': '#268bd2'} + let s:cyan = {'t': s:ansi_colors ? 6 : (s:tty ? '6' : 37 ), 'g': '#2aa198'} + let s:green = {'t': s:ansi_colors ? 2 : (s:tty ? '2' : 64 ), 'g': '#859900'} + + """""""""""""""""""""""""""""""""""""""""""""""" + " Simple mappings + " NOTE: These are easily tweakable mappings. The actual mappings get + " the specific gui and terminal colors from the base color dicts. + """""""""""""""""""""""""""""""""""""""""""""""" + " Normal mode + if s:background == 'dark' + let s:N1 = [s:base3, s:base1, 'bold'] + let s:N2 = [s:base2, (s:tty ? s:base01 : s:base00), ''] + let s:N3 = [s:base01, s:base02, ''] + else + let s:N1 = [s:base2, s:base00, 'bold'] + let s:N2 = [(s:tty ? s:base01 : s:base2), s:base1, ''] + let s:N3 = [s:base1, s:base2, ''] + endif + let s:NF = [s:orange, s:N3[1], ''] + let s:NW = [s:base3, s:orange, ''] + if s:background == 'dark' + let s:NM = [s:base1, s:N3[1], ''] + let s:NMi = [s:base2, s:N3[1], ''] + else + let s:NM = [s:base01, s:N3[1], ''] + let s:NMi = [s:base02, s:N3[1], ''] + endif + + " Insert mode + let s:I1 = [s:N1[0], s:yellow, 'bold'] + let s:I2 = s:N2 + let s:I3 = s:N3 + let s:IF = s:NF + let s:IM = s:NM + + " Visual mode + let s:V1 = [s:N1[0], s:magenta, 'bold'] + let s:V2 = s:N2 + let s:V3 = s:N3 + let s:VF = s:NF + let s:VM = s:NM + + " Replace mode + let s:R1 = [s:N1[0], s:red, ''] + let s:R2 = s:N2 + let s:R3 = s:N3 + let s:RM = s:NM + let s:RF = s:NF + + " Inactive, according to VertSplit in solarized + " (bg dark: base00; bg light: base0) + if s:background == 'dark' + let s:IA = [s:base02, s:base00, ''] + else + let s:IA = [s:base2, s:base0, ''] + endif + + """""""""""""""""""""""""""""""""""""""""""""""" + " Actual mappings + " WARNING: Don't modify this section unless necessary. + """""""""""""""""""""""""""""""""""""""""""""""" + let s:NFa = [s:NF[0].g, s:NF[1].g, s:NF[0].t, s:NF[1].t, s:NF[2]] + let s:IFa = [s:IF[0].g, s:IF[1].g, s:IF[0].t, s:IF[1].t, s:IF[2]] + let s:VFa = [s:VF[0].g, s:VF[1].g, s:VF[0].t, s:VF[1].t, s:VF[2]] + let s:RFa = [s:RF[0].g, s:RF[1].g, s:RF[0].t, s:RF[1].t, s:RF[2]] + + let g:airline#themes#solarized#palette.accents = { + \ 'red': s:NFa, + \ } + + let g:airline#themes#solarized#palette.inactive = airline#themes#generate_color_map( + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]]) + let g:airline#themes#solarized#palette.inactive_modified = { + \ 'airline_c': [s:NMi[0].g, '', s:NMi[0].t, '', s:NMi[2]]} + + let g:airline#themes#solarized#palette.normal = airline#themes#generate_color_map( + \ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]], + \ [s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]], + \ [s:N3[0].g, s:N3[1].g, s:N3[0].t, s:N3[1].t, s:N3[2]]) + + let g:airline#themes#solarized#palette.normal.airline_warning = [ + \ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]] + + let g:airline#themes#solarized#palette.normal_modified = { + \ 'airline_c': [s:NM[0].g, s:NM[1].g, + \ s:NM[0].t, s:NM[1].t, s:NM[2]]} + + let g:airline#themes#solarized#palette.normal_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.insert = airline#themes#generate_color_map( + \ [s:I1[0].g, s:I1[1].g, s:I1[0].t, s:I1[1].t, s:I1[2]], + \ [s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]], + \ [s:I3[0].g, s:I3[1].g, s:I3[0].t, s:I3[1].t, s:I3[2]]) + + let g:airline#themes#solarized#palette.insert.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.insert_modified = { + \ 'airline_c': [s:IM[0].g, s:IM[1].g, + \ s:IM[0].t, s:IM[1].t, s:IM[2]]} + + let g:airline#themes#solarized#palette.insert_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.visual = airline#themes#generate_color_map( + \ [s:V1[0].g, s:V1[1].g, s:V1[0].t, s:V1[1].t, s:V1[2]], + \ [s:V2[0].g, s:V2[1].g, s:V2[0].t, s:V2[1].t, s:V2[2]], + \ [s:V3[0].g, s:V3[1].g, s:V3[0].t, s:V3[1].t, s:V3[2]]) + + let g:airline#themes#solarized#palette.visual.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.visual_modified = { + \ 'airline_c': [s:VM[0].g, s:VM[1].g, + \ s:VM[0].t, s:VM[1].t, s:VM[2]]} + + let g:airline#themes#solarized#palette.visual_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.replace = airline#themes#generate_color_map( + \ [s:R1[0].g, s:R1[1].g, s:R1[0].t, s:R1[1].t, s:R1[2]], + \ [s:R2[0].g, s:R2[1].g, s:R2[0].t, s:R2[1].t, s:R2[2]], + \ [s:R3[0].g, s:R3[1].g, s:R3[0].t, s:R3[1].t, s:R3[2]]) + + let g:airline#themes#solarized#palette.replace.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.replace_modified = { + \ 'airline_c': [s:RM[0].g, s:RM[1].g, + \ s:RM[0].t, s:RM[1].t, s:RM[2]]} + + let g:airline#themes#solarized#palette.replace_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.tabline = {} + + let g:airline#themes#solarized#palette.tabline.airline_tab = [ + \ s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]] + + let g:airline#themes#solarized#palette.tabline.airline_tabtype = [ + \ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]] +endfunction + +call airline#themes#solarized#refresh() + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/term.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/term.vim new file mode 100644 index 00000000..288ca6ac --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/term.vim @@ -0,0 +1,92 @@ + +" vim-airline 'term' theme +" it is using current terminal colorscheme +" and in gvim i left colors from 'wombat' theme but i am not using it anyway + +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#141413' , '#CAE682' , 232 , 2 ] " mode +let s:N2 = [ '#CAE682' , '#32322F' , 2 , 'black' ] " info +let s:N3 = [ '#CAE682' , '#242424' , 2 , 233 ] " statusline +let s:N4 = [ '#86CD74' , 10 ] " mode modified + +" Insert mode +let s:I1 = [ '#141413' , '#FDE76E' , 232 , 3 ] +let s:I2 = [ '#FDE76E' , '#32322F' , 3 , 'black' ] +let s:I3 = [ '#FDE76E' , '#242424' , 3 , 233 ] +let s:I4 = [ '#FADE3E' , 11 ] + +" Visual mode +let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 4 ] +let s:V2 = [ '#B5D3F3' , '#32322F' , 4 , 'black' ] +let s:V3 = [ '#B5D3F3' , '#242424' , 4 , 233 ] +let s:V4 = [ '#7CB0E6' , 12 ] + +" Replace mode +let s:R1 = [ '#141413' , '#E5786D' , 232 , 1 ] +let s:R2 = [ '#E5786D' , '#32322F' , 1 , 'black' ] +let s:R3 = [ '#E5786D' , '#242424' , 1 , 233 ] +let s:R4 = [ '#E55345' , 9 ] + +" Paste mode +let s:PA = [ '#94E42C' , 6 ] + +" Info modified +let s:IM = [ '#40403C' , 238 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#term#palette = {} + +let g:airline#themes#term#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#term#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#term#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#term#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#term#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#term#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#term#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#term#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , + \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , + \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/tomorrow.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/tomorrow.vim new file mode 100644 index 00000000..f382fc14 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/tomorrow.vim @@ -0,0 +1,44 @@ +let g:airline#themes#tomorrow#palette = {} + +function! airline#themes#tomorrow#refresh() + let g:airline#themes#tomorrow#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Directory', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight('Pmenu') + let s:N3 = airline#themes#get_highlight('CursorLine') + let g:airline#themes#tomorrow#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let group = airline#themes#get_highlight('vimCommand') + let g:airline#themes#tomorrow#palette.normal_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + + let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['MoreMsg', 'fg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['MoreMsg', 'fg'], ['Normal', 'bg']) + let s:I3 = s:N3 + let g:airline#themes#tomorrow#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#tomorrow#palette.insert_modified = g:airline#themes#tomorrow#palette.normal_modified + + let s:R1 = airline#themes#get_highlight('Error', 'bold') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#tomorrow#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#tomorrow#palette.replace_modified = g:airline#themes#tomorrow#palette.normal_modified + + let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Constant', 'fg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg']) + let s:V3 = s:N3 + let g:airline#themes#tomorrow#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#tomorrow#palette.visual_modified = g:airline#themes#tomorrow#palette.normal_modified + + let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg']) + let g:airline#themes#tomorrow#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#tomorrow#palette.inactive_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } +endfunction + +call airline#themes#tomorrow#refresh() + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/ubaryd.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/ubaryd.vim new file mode 100644 index 00000000..70232ef8 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/ubaryd.vim @@ -0,0 +1,64 @@ +" vim-airline companion theme of Ubaryd +" (https://github.com/Donearm/Ubaryd) + +" Normal mode +let s:N1 = [ '#141413' , '#c7b386' , 232 , 252 ] " blackestgravel & bleaksand +let s:N2 = [ '#c7b386' , '#45413b' , 252, 238 ] " bleaksand & deepgravel +let s:N3 = [ '#b88853' , '#242321' , 137, 235 ] " toffee & darkgravel +let s:N4 = [ '#857f78' , 243 ] " gravel + +" Insert mode +let s:I1 = [ '#1a1a18' , '#fade3e' , 232 , 221 ] " blackestgravel & warmcorn +let s:I2 = [ '#c7b386' , '#45413b' , 252 , 238 ] " bleaksand & deepgravel +let s:I3 = [ '#f4cf86' , '#242321' , 222 , 235 ] " lighttannedskin & darkgravel + +" Visual mode +let s:V1 = [ '#1c1b1a' , '#9a4820' , 233 , 88 ] " blackgravel & warmadobe +let s:V2 = [ '#000000' , '#88633f' , 16 , 95 ] " coal & cappuccino +let s:V3 = [ '#88633f' , '#c7b386' , 95 , 252 ] " cappuccino & bleaksand +let s:V4 = [ '#c14c3d' , 160 ] " tannedumbrella + +" Replace mode +let s:RE = [ '#c7915b' , 173 ] " nut + +" Paste mode +let s:PA = [ '#f9ef6d' , 154 ] " bleaklemon + +let s:IA = [ s:N2[1], s:N3[1], s:N2[3], s:N3[3], '' ] + +let g:airline#themes#ubaryd#palette = {} + +let g:airline#themes#ubaryd#palette.accents = { + \ 'red': [ '#ff7400' , '' , 196 , '' , '' ], + \ } + +let g:airline#themes#ubaryd#palette.inactive = { + \ 'airline_a' : [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#ubaryd#palette.normal_modified = { + \ 'airline_a' : [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , + \ 'airline_c' : [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#ubaryd#palette.insert_modified = { + \ 'airline_c' : [ s:V2[1] , s:N2[1] , s:V2[3] , s:N2[3] , '' ] } +let g:airline#themes#ubaryd#palette.insert_paste = { + \ 'airline_a' : [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } + + +let g:airline#themes#ubaryd#palette.replace = copy(airline#themes#ubaryd#palette.insert) +let g:airline#themes#ubaryd#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] +let g:airline#themes#ubaryd#palette.replace_modified = g:airline#themes#ubaryd#palette.insert_modified + + +let g:airline#themes#ubaryd#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#ubaryd#palette.visual_modified = { + \ 'airline_c' : [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } + +let g:airline#themes#ubaryd#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#ubaryd#palette.inactive_modified = { + \ 'airline_c' : [ s:V1[1] , '' , s:V1[3] , '' , '' ] } + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/understated.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/understated.vim new file mode 100644 index 00000000..b3e79179 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/understated.vim @@ -0,0 +1,43 @@ +let g:airline#themes#understated#palette = {} + +let s:N1 = ['#FFFFFF', '#5F87FF', 15, 69] " Outside blocks in normal mode (mode and file position) +let s:N2 = ['#AFAF87', '#5F5F5F', 144, 59] " Next blocks inside (branch and file format) +let s:N3 = ['#AFAF87', '#5F5F5F', 144, 59] " The middle block + +let g:airline#themes#understated#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#understated#palette.normal_modified = {'airline_c': ['#ffffff', '#5f005f', 144, 59, 'bold'] ,} + +let s:I1 = ['#FFFFFF', '#87AF5F', 15, 107] " Outside blocks in normal mode (mode and file position) +let s:I2 = ['#AFAF87', '#5F5F5F', 144, 59] " Next blocks inside (branch and file format) +let s:I3 = ['#AFAF87', '#5F5F5F', 144, 59] " The middle block +let g:airline#themes#understated#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#understated#palette.insert_modified = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, 'bold'] ,} +let g:airline#themes#understated#palette.insert_paste = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, ''] ,} + +let g:airline#themes#understated#palette.replace = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#understated#palette.replace.airline_a = ['#FFFFFF', '#870000', 15, 88, ''] +let g:airline#themes#understated#palette.replace_modified = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, 'bold'] ,} + +let s:V1 = ['#FFFFFF', '#AF5F00', 15, 130] +let s:V2 = ['#AFAF87', '#5F5F5F', 144, 59] +let s:V3 = ['#AFAF87', '#5F5F5F', 144, 59] +let g:airline#themes#understated#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#understated#palette.visual_modified = {'airline_c': [ '#AFAF87', '#5f005f', 144, 59, 'bold'] ,} + +let s:V1 = ['#080808', '#FFAF00', 232, 214] +let s:IA1 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] +let s:IA2 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] +let s:IA3 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] +let g:airline#themes#understated#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#understated#palette.inactive_modified = {'airline_c': ['#4E4E4E', '', 239, '', 'bold'] ,} + +let g:airline#themes#understated#palette.accents = {'red': ['#FF0000', '', 88, '']} + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#understated#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ ['#FFFFFF', '#1C1C1C', 15, 234, '' ], + \ ['#FFFFFF', '#262626', 15, 235, '' ], + \ ['#FFFFFF', '#303030', 15, 236, 'bold']) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/wombat.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/wombat.vim new file mode 100644 index 00000000..39fdc4c1 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/wombat.vim @@ -0,0 +1,90 @@ +" vim-airline companion theme of Wombat +" looks great with wombat256 vim colorscheme + +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#141413' , '#CAE682' , 232 , 192 ] " mode +let s:N2 = [ '#CAE682' , '#32322F' , 192 , 236 ] " info +let s:N3 = [ '#CAE682' , '#242424' , 192 , 234 ] " statusline +let s:N4 = [ '#86CD74' , 113 ] " mode modified + +" Insert mode +let s:I1 = [ '#141413' , '#FDE76E' , 232 , 227 ] +let s:I2 = [ '#FDE76E' , '#32322F' , 227 , 236 ] +let s:I3 = [ '#FDE76E' , '#242424' , 227 , 234 ] +let s:I4 = [ '#FADE3E' , 221 ] + +" Visual mode +let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 153 ] +let s:V2 = [ '#B5D3F3' , '#32322F' , 153 , 236 ] +let s:V3 = [ '#B5D3F3' , '#242424' , 153 , 234 ] +let s:V4 = [ '#7CB0E6' , 111 ] + +" Replace mode +let s:R1 = [ '#141413' , '#E5786D' , 232 , 173 ] +let s:R2 = [ '#E5786D' , '#32322F' , 173 , 236 ] +let s:R3 = [ '#E5786D' , '#242424' , 173 , 234 ] +let s:R4 = [ '#E55345' , 203 ] + +" Paste mode +let s:PA = [ '#94E42C' , 47 ] + +" Info modified +let s:IM = [ '#40403C' , 238 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#wombat#palette = {} + +let g:airline#themes#wombat#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#wombat#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#wombat#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#wombat#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#wombat#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#wombat#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#wombat#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#wombat#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , + \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , + \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/xtermlight.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/xtermlight.vim new file mode 100644 index 00000000..21d349ef --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/xtermlight.vim @@ -0,0 +1,45 @@ +let g:airline#themes#xtermlight#palette = {} + +let s:N1 = [ '#eeeeee' , '#005fff' , 255 , 27 ] +let s:N2 = [ '#000087' , '#00d7ff' , 18 , 45 ] +let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ] +let g:airline#themes#xtermlight#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#xtermlight#palette.normal_modified = { + \ 'airline_c': [ '#d70000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:I1 = [ '#eeeeee' , '#00875f' , 255 , 29 ] +let s:I2 = [ '#005f00' , '#00d787' , 22 , 42 ] +let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ] +let g:airline#themes#xtermlight#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#xtermlight#palette.insert_modified = { + \ 'airline_c': [ '#d70000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } +let g:airline#themes#xtermlight#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#xtermlight#palette.replace = copy(g:airline#themes#xtermlight#palette.insert) +let g:airline#themes#xtermlight#palette.replace.airline_a = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] +let g:airline#themes#xtermlight#palette.replace_modified = g:airline#themes#xtermlight#palette.insert_modified + + +let s:V1 = [ '#eeeeee' , '#ff5f00' , 255 , 202 ] +let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ] +let s:V3 = [ '#d75f00' , '#ffff87' , 166 , 228 ] +let g:airline#themes#xtermlight#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#xtermlight#palette.visual_modified = { + \ 'airline_c': [ '#d70000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:IA1 = [ '#6c6c6c' , '#b2b2b2' , 242 , 249 , '' ] +let s:IA2 = [ '#8a8a8a' , '#d0d0d0' , 245 , 252 , '' ] +let s:IA3 = [ '#a8a8a8' , '#eeeeee' , 248 , 255 , '' ] +let g:airline#themes#xtermlight#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#xtermlight#palette.inactive_modified = { + \ 'airline_c': [ '#d70000' , '' , 160 , '' , '' ] , + \ } + diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/zenburn.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/zenburn.vim new file mode 100644 index 00000000..9883c213 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/zenburn.vim @@ -0,0 +1,44 @@ +let g:airline#themes#zenburn#palette = {} + +function! airline#themes#zenburn#refresh() + let g:airline#themes#zenburn#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + let s:N1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Folded', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight('Folded') + let s:N3 = airline#themes#get_highlight('NonText') + + let g:airline#themes#zenburn#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let s:Nmod = airline#themes#get_highlight('Comment') + let g:airline#themes#zenburn#palette.normal_modified = { + \ 'airline_c': s:Nmod + \ } + + let s:I1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['String', 'fg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['String', 'fg'], ['Folded', 'bg']) + let s:I3 = s:N3 + let g:airline#themes#zenburn#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#zenburn#palette.insert_modified = g:airline#themes#zenburn#palette.normal_modified + + let s:R1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Comment', 'fg'], 'bold') + let s:R2 = airline#themes#get_highlight2(['Comment', 'fg'], ['Folded', 'bg']) + let s:R3 = s:N3 + let g:airline#themes#zenburn#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#zenburn#palette.replace_modified = g:airline#themes#zenburn#palette.normal_modified + + let s:V1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Identifier', 'fg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Identifier', 'fg'], ['Folded', 'bg']) + let s:V3 = s:N3 + let g:airline#themes#zenburn#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#zenburn#palette.visual_modified = g:airline#themes#zenburn#palette.normal_modified + + let s:IA = airline#themes#get_highlight('NonText') + let g:airline#themes#zenburn#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#zenburn#palette.inactive_modified = { + \ 'airline_c': s:Nmod + \ } +endfunction + +call airline#themes#zenburn#refresh() + diff --git a/sources_non_forked/vim-airline-themes/plugin/airline-themes.vim b/sources_non_forked/vim-airline-themes/plugin/airline-themes.vim new file mode 100644 index 00000000..1be6b473 --- /dev/null +++ b/sources_non_forked/vim-airline-themes/plugin/airline-themes.vim @@ -0,0 +1,7 @@ +" MIT License. Copyright (c) 2013-2016 Bailey Ling & Contributors. +" vim: et ts=2 sts=2 sw=2 + +if (exists('g:loaded_airline_themes') && g:loaded_airline_themes) + finish +endif +let g:loaded_airline_themes = 1 diff --git a/sources_non_forked/vim-airline/autoload/airline/init.vim b/sources_non_forked/vim-airline/autoload/airline/init.vim index 470c2c9a..2d6a6c22 100644 --- a/sources_non_forked/vim-airline/autoload/airline/init.vim +++ b/sources_non_forked/vim-airline/autoload/airline/init.vim @@ -49,6 +49,7 @@ function! airline#init#bootstrap() call extend(g:airline_theme_map, { \ 'Tomorrow.*': 'tomorrow', \ 'base16.*': 'base16', + \ 'bubblegum': 'bubblegum', \ 'mo[l|n]okai': 'molokai', \ 'wombat.*': 'wombat', \ '.*zenburn.*': 'zenburn', diff --git a/sources_non_forked/vim-pug/README.markdown b/sources_non_forked/vim-pug/README.markdown new file mode 100644 index 00000000..c41f9ddd --- /dev/null +++ b/sources_non_forked/vim-pug/README.markdown @@ -0,0 +1,19 @@ +# vim-pug # + +Vim syntax highlighting for Pug (formerly Jade) templates. + +Installation +------------ + +I prefer to install plugins using Tim Pope's +[pathogen.vim](https://github.com/tpope/vim-pathogen). Installation using +pathogen is quite simple. + + cd ~/.vim/bundle + git clone git://github.com/digitaltoad/vim-pug.git + +If you do not want to use pathogen. You can always install vim-pug in the +normal manner by copying each directory to your ~/.vim directory. Make sure +not to overwrite any existing directory of the same name and instead copy only +the contents of the source directory to the directory of the same name in your +~/.vim directory. diff --git a/sources_non_forked/vim-pug/ftdetect/pug.vim b/sources_non_forked/vim-pug/ftdetect/pug.vim new file mode 100644 index 00000000..08d962fd --- /dev/null +++ b/sources_non_forked/vim-pug/ftdetect/pug.vim @@ -0,0 +1,5 @@ +" Pug +autocmd BufNewFile,BufReadPost *.pug set filetype=pug + +" Jade +autocmd BufNewFile,BufReadPost *.jade set filetype=pug diff --git a/sources_non_forked/vim-pug/ftplugin/pug.vim b/sources_non_forked/vim-pug/ftplugin/pug.vim new file mode 100644 index 00000000..db071fa1 --- /dev/null +++ b/sources_non_forked/vim-pug/ftplugin/pug.vim @@ -0,0 +1,57 @@ +" Vim filetype plugin +" Language: Pug +" Maintainer: Joshua Borton +" Credits: Tim Pope + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +let s:save_cpo = &cpo +set cpo-=C + +setlocal iskeyword+=- + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +unlet! b:did_ftplugin + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin + unlet b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter + unlet b:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words + unlet b:match_words +endif + +" Change the browse dialog on Win32 to show mainly Haml-related files +if has("gui_win32") + let b:browsefilter="Pug Files (*.pug)\t*.pug\n" . s:browsefilter +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +setlocal comments=://-,:// commentstring=//\ %s + +setlocal suffixesadd+=.pug + +let b:undo_ftplugin = "setl cms< com< " + \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +let &cpo = s:save_cpo + +" vim:set sw=2: diff --git a/sources_non_forked/vim-pug/indent/pug.vim b/sources_non_forked/vim-pug/indent/pug.vim new file mode 100644 index 00000000..bc7f2b4b --- /dev/null +++ b/sources_non_forked/vim-pug/indent/pug.vim @@ -0,0 +1,70 @@ +" Vim indent file +" Language: Pug +" Maintainer: Joshua Borton +" Credits: Tim Pope (vim-pug) +" Last Change: 2010 Sep 22 + +if exists("b:did_indent") + finish +endif + +unlet! b:did_indent +let b:did_indent = 1 + +setlocal autoindent +setlocal indentexpr=GetPugIndent() +setlocal indentkeys=o,O,*,},],0),!^F + +" Only define the function once. +if exists("*GetPugIndent") + finish +endif + +let s:attributes = '\%((.\{-\})\)' +let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*' + +if !exists('g:pug_self_closing_tags') + let g:pug_self_closing_tags = 'meta|link|img|hr|br|input' +endif + +setlocal formatoptions+=r +setlocal comments+=n:\| + +function! GetPugIndent() + let lnum = prevnonblank(v:lnum-1) + if lnum == 0 + return 0 + endif + let line = substitute(getline(lnum),'\s\+$','','') + let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') + let lastcol = strlen(line) + let line = substitute(line,'^\s\+','','') + let indent = indent(lnum) + let cindent = indent(v:lnum) + let increase = indent + &sw + if indent == indent(lnum) + let indent = cindent <= indent ? -1 : increase + endif + + let group = synIDattr(synID(lnum,lastcol,1),'name') + + if line =~ '^!!!' + return indent + elseif line =~ '^/\%(\[[^]]*\]\)\=$' + return increase + elseif line =~ '^\%(if\|else\|unless\|for\|each\|block\|mixin\|append\|case\|when\)' + return increase + elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$' + return increase + elseif line == '-#' + return increase + elseif line =~? '^\v%('.g:pug_self_closing_tags.')>' + return indent + elseif group =~? '\v^%(pugAttributesDelimiter|pugClass|pugId|htmlTagName|htmlSpecialTagName|pugFilter|pugTagBlockChar)$' + return increase + else + return indent + endif +endfunction + +" vim:set sw=2: diff --git a/sources_non_forked/vim-pug/syntax/pug.vim b/sources_non_forked/vim-pug/syntax/pug.vim new file mode 100644 index 00000000..86013a2e --- /dev/null +++ b/sources_non_forked/vim-pug/syntax/pug.vim @@ -0,0 +1,104 @@ +" Vim syntax file +" Language: Pug +" Maintainer: Joshua Borton +" Credits: Tim Pope +" Filenames: *.pug + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'pug' +endif + +silent! syntax include @htmlCoffeescript syntax/coffee.vim +unlet! b:current_syntax +silent! syntax include @htmlStylus syntax/stylus.vim +unlet! b:current_syntax +silent! syntax include @htmlCss syntax/css.vim +unlet! b:current_syntax +silent! syntax include @htmlMarkdown syntax/markdown.vim +unlet! b:current_syntax + +syn case match + +syn region javascriptParenthesisBlock start="(" end=")" contains=@htmlJavascript contained keepend +syn cluster htmlJavascript add=javascriptParenthesisBlock + +syn region pugJavascript matchgroup=pugJavascriptOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend +syn region pugJavascript matchgroup=pugJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend +syn cluster pugTop contains=pugBegin,pugComment,pugHtmlComment,pugJavascript +syn match pugBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=pugTag,pugClassChar,pugIdChar,pugPlainChar,pugJavascript,pugScriptConditional,pugScriptStatement,pugPipedText +syn match pugTag "+\?\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@pugComponent +syn cluster pugComponent contains=pugAttributes,pugIdChar,pugBlockExpansionChar,pugClassChar,pugPlainChar,pugJavascript,pugTagBlockChar,pugTagInlineText +syn match pugComment '\s*\/\/.*$' +syn region pugCommentBlock start="\z(\s*\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" keepend +syn region pugHtmlConditionalComment start="" +syn region pugAttributes matchgroup=pugAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,pugHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent +syn match pugClassChar "\." contained nextgroup=pugClass +syn match pugBlockExpansionChar ":\s\+" contained nextgroup=pugTag,pugClassChar,pugIdChar +syn match pugIdChar "#[[{]\@!" contained nextgroup=pugId +syn match pugClass "\%(\w\|-\)\+" contained nextgroup=@pugComponent +syn match pugId "\%(\w\|-\)\+" contained nextgroup=@pugComponent +syn region pugDocType start="^\s*\(!!!\|doctype\)" end="$" +" Unless I'm mistaken, syntax/html.vim requires +" that the = sign be present for these matches. +" This adds the matches back for pug. +syn keyword pugHtmlArg contained href title + +syn match pugPlainChar "\\" contained +syn region pugInterpolation matchgroup=pugInterpolationDelimiter start="[#!]{" end="}" contains=@htmlJavascript +syn match pugInterpolationEscape "\\\@[?!]\@!" +syn match pugScriptStatement "^\s*\<\%(each\|for\|block\|prepend\|append\|mixin\|extends\|include\)\>[?!]\@!" +syn region pugScriptLoopRegion start="^\s*\(for \)" end="$" contains=pugScriptLoopKeywords +syn keyword pugScriptLoopKeywords for in contained + +syn region pugJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,pugJavascriptTag,pugCoffeescriptFilter keepend + +syn region pugCoffeescriptFilter matchgroup=pugFilter start="^\z(\s*\):coffee-\?script\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCoffeescript contained +syn region pugJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=pugBegin,pugTag +syn region pugCssBlock start="^\z(\s*\)style" nextgroup=@pugComponent,pugError end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCss keepend + +syn match pugError "\$" contained + +hi def link pugPlainChar Special +hi def link pugScriptConditional PreProc +hi def link pugScriptLoopKeywords PreProc +hi def link pugScriptStatement PreProc +hi def link pugHtmlArg htmlArg +hi def link pugAttributeString String +hi def link pugAttributesDelimiter Identifier +hi def link pugIdChar Special +hi def link pugClassChar Special +hi def link pugBlockExpansionChar Special +hi def link pugPipeChar Special +hi def link pugTagBlockChar Special +hi def link pugId Identifier +hi def link pugClass Type +hi def link pugInterpolationDelimiter Delimiter +hi def link pugInlineDelimiter Delimiter +hi def link pugFilter PreProc +hi def link pugDocType PreProc +hi def link pugComment Comment +hi def link pugCommentBlock Comment +hi def link pugHtmlConditionalComment pugComment + +let b:current_syntax = "pug" + +if main_syntax == "pug" + unlet main_syntax +endif diff --git a/sources_non_forked/vim-snippets/snippets/rails.snippets b/sources_non_forked/vim-snippets/snippets/rails.snippets index 6018621d..e8342222 100644 --- a/sources_non_forked/vim-snippets/snippets/rails.snippets +++ b/sources_non_forked/vim-snippets/snippets/rails.snippets @@ -348,7 +348,7 @@ snippet mct ${0} end snippet migration class .. < ActiveRecord::Migration .. def up .. def down .. end - class ${1:class_name} < ActiveRecord::Migration + class `substitute( substitute(vim_snippets#Filename(), '^\d\+_', '',''), '\(_\|^\)\(.\)', '\u\2', 'g')` < ActiveRecord::Migration def up ${0} end @@ -357,7 +357,7 @@ snippet migration class .. < ActiveRecord::Migration .. def up .. def down .. en end end snippet migration class .. < ActiveRecord::Migration .. def change .. end - class ${1:class_name} < ActiveRecord::Migration + class `substitute( substitute(vim_snippets#Filename(), '^\d\+_', '',''), '\(_\|^\)\(.\)', '\u\2', 'g')` < ActiveRecord::Migration def change ${0} end diff --git a/update_plugins.py b/update_plugins.py index 4e97f48c..32399e3e 100644 --- a/update_plugins.py +++ b/update_plugins.py @@ -40,7 +40,8 @@ vim-surround https://github.com/tpope/vim-surround vim-expand-region https://github.com/terryma/vim-expand-region vim-multiple-cursors https://github.com/terryma/vim-multiple-cursors vim-fugitive https://github.com/tpope/vim-fugitive -vim-airline https://github.com/bling/vim-airline +vim-airline https://github.com/vim-airline/vim-airline +vim-airline-themes https://github.com/vim-airline/vim-airline-themes goyo.vim https://github.com/junegunn/goyo.vim vim-zenroom2 https://github.com/amix/vim-zenroom2 syntastic https://github.com/scrooloose/syntastic @@ -50,7 +51,7 @@ vim-go https://github.com/fatih/vim-go vim-gitgutter https://github.com/airblade/vim-gitgutter gruvbox https://github.com/morhetz/gruvbox vim-flake8 https://github.com/nvie/vim-flake8 -vim-jade https://github.com/digitaltoad/vim-jade +vim-pug https://github.com/digitaltoad/vim-pug """.strip() GITHUB_ZIP = '%s/archive/master.zip' From 2d0675fcdf2831e001082a1d7c111535950adea7 Mon Sep 17 00:00:00 2001 From: Amir Salihefendic Date: Sat, 20 Feb 2016 13:19:07 +0000 Subject: [PATCH 19/29] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..785dc102 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Amir Salihefendic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 65bd1b05dc81455f532c5c7eb7377f104bbbb35a Mon Sep 17 00:00:00 2001 From: amix Date: Sat, 20 Feb 2016 13:27:12 +0000 Subject: [PATCH 20/29] Fixed https://github.com/amix/vimrc/issues/128 --- vimrcs/basic.vim | 5 ----- 1 file changed, 5 deletions(-) diff --git a/vimrcs/basic.vim b/vimrcs/basic.vim index 1649cb95..8bdc61c4 100644 --- a/vimrcs/basic.vim +++ b/vimrcs/basic.vim @@ -102,11 +102,6 @@ set hid set backspace=eol,start,indent set whichwrap+=<,>,h,l -" In many terminal emulators the mouse works just fine, thus enable it. -if has('mouse') - set mouse=a -endif - " Ignore case when searching set ignorecase From a5f9f46e6cd1138f661afa91a01517669853af67 Mon Sep 17 00:00:00 2001 From: amix Date: Sat, 20 Feb 2016 13:30:54 +0000 Subject: [PATCH 21/29] fixed https://github.com/amix/vimrc/issues/118 --- vimrcs/extended.vim | 1 - 1 file changed, 1 deletion(-) diff --git a/vimrcs/extended.vim b/vimrcs/extended.vim index b9863d8b..b0c0d35b 100644 --- a/vimrcs/extended.vim +++ b/vimrcs/extended.vim @@ -105,7 +105,6 @@ inoremap $3 {}i inoremap $4 {o}O inoremap $q ''i inoremap $e ""i -inoremap $t <>i """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" From d90ae8091f5cbd11c8aed28b6e944f513ab45c9e Mon Sep 17 00:00:00 2001 From: amix Date: Sat, 20 Feb 2016 13:51:59 +0000 Subject: [PATCH 22/29] Added a maintained version of nginx syntax. Removed vim-racer (buggy) --- sources_non_forked/nginx-vim-syntax/README.md | 10 + .../nginx-vim-syntax/ftdetect/nginx.vim | 4 + .../indent/nginx.vim | 2 + .../syntax/nginx.vim | 51 +- sources_non_forked/nginx-vim/README.md | 7 - .../nginx-vim/ftdetect/nginx.vim | 2 - sources_non_forked/nginx-vim/syntax/nginx.vim | 664 ------------------ sources_non_forked/nginx.vim/README | 3 - sources_non_forked/vim-racer/.gitignore | 1 - sources_non_forked/vim-racer/README.md | 36 - sources_non_forked/vim-racer/plugin/racer.vim | 196 ------ .../rplugin/python3/deoplete/sources/racer.py | 103 --- update_plugins.py | 2 +- 13 files changed, 62 insertions(+), 1019 deletions(-) create mode 100644 sources_non_forked/nginx-vim-syntax/README.md create mode 100644 sources_non_forked/nginx-vim-syntax/ftdetect/nginx.vim rename sources_non_forked/{nginx-vim => nginx-vim-syntax}/indent/nginx.vim (91%) mode change 100755 => 100644 rename sources_non_forked/{nginx.vim => nginx-vim-syntax}/syntax/nginx.vim (92%) delete mode 100755 sources_non_forked/nginx-vim/README.md delete mode 100755 sources_non_forked/nginx-vim/ftdetect/nginx.vim delete mode 100755 sources_non_forked/nginx-vim/syntax/nginx.vim delete mode 100644 sources_non_forked/nginx.vim/README delete mode 100644 sources_non_forked/vim-racer/.gitignore delete mode 100644 sources_non_forked/vim-racer/README.md delete mode 100644 sources_non_forked/vim-racer/plugin/racer.vim delete mode 100644 sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py diff --git a/sources_non_forked/nginx-vim-syntax/README.md b/sources_non_forked/nginx-vim-syntax/README.md new file mode 100644 index 00000000..2893faf6 --- /dev/null +++ b/sources_non_forked/nginx-vim-syntax/README.md @@ -0,0 +1,10 @@ +# nginx syntax files for Vim. + +*NOTE*: As of Dec. 2013, these scripts are maintained in the "contrib" directory of the Nginx source: + +* http://hg.nginx.org/nginx/rev/f38043bd15f5 + +You can see the original vim.org version here: + +* http://www.vim.org/scripts/script.php?script_id=1886 + diff --git a/sources_non_forked/nginx-vim-syntax/ftdetect/nginx.vim b/sources_non_forked/nginx-vim-syntax/ftdetect/nginx.vim new file mode 100644 index 00000000..3ae470d2 --- /dev/null +++ b/sources_non_forked/nginx-vim-syntax/ftdetect/nginx.vim @@ -0,0 +1,4 @@ +au BufRead,BufNewFile *.nginx set ft=nginx +au BufRead,BufNewFile */etc/nginx/* set ft=nginx +au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx +au BufRead,BufNewFile nginx.conf set ft=nginx diff --git a/sources_non_forked/nginx-vim/indent/nginx.vim b/sources_non_forked/nginx-vim-syntax/indent/nginx.vim old mode 100755 new mode 100644 similarity index 91% rename from sources_non_forked/nginx-vim/indent/nginx.vim rename to sources_non_forked/nginx-vim-syntax/indent/nginx.vim index 51115e91..86013668 --- a/sources_non_forked/nginx-vim/indent/nginx.vim +++ b/sources_non_forked/nginx-vim-syntax/indent/nginx.vim @@ -3,6 +3,8 @@ if exists("b:did_indent") endif let b:did_indent = 1 +setlocal indentexpr= + " cindent actually works for nginx' simple file structure setlocal cindent " Just make sure that the comments are not reset as defs would be. diff --git a/sources_non_forked/nginx.vim/syntax/nginx.vim b/sources_non_forked/nginx-vim-syntax/syntax/nginx.vim similarity index 92% rename from sources_non_forked/nginx.vim/syntax/nginx.vim rename to sources_non_forked/nginx-vim-syntax/syntax/nginx.vim index ccd47680..50d809bc 100644 --- a/sources_non_forked/nginx.vim/syntax/nginx.vim +++ b/sources_non_forked/nginx-vim-syntax/syntax/nginx.vim @@ -9,12 +9,11 @@ setlocal iskeyword+=. setlocal iskeyword+=/ setlocal iskeyword+=: -syn match ngxVariable '\$\w\w*' -syn match ngxVariableBlock '\$\w\w*' contained -syn match ngxVariableString '\$\w\w*' contained -syn region ngxBlock start=+^+ end=+{+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline -syn region ngxString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=ngxVariableString oneline -syn region ngxString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=ngxVariableString oneline +syn match ngxVariable '\$\(\w\+\|{\w\+}\)' +syn match ngxVariableBlock '\$\(\w\+\|{\w\+}\)' contained +syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained +syn region ngxBlock start=+^+ end=+{+ skip=+\${+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline +syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString syn match ngxComment ' *#.*$' syn keyword ngxBoolean on @@ -643,6 +642,46 @@ syn keyword ngxDirectiveThirdParty xss_get syn keyword ngxDirectiveThirdParty xss_input_types syn keyword ngxDirectiveThirdParty xss_output_type +" uWSGI Module +" Allows Nginx to interact with uWSGI processes and control what parameters are passed to the process. +syn keyword ngxDirectiveThirdParty uwsgi_bind +syn keyword ngxDirectiveThirdParty uwsgi_buffer_size +syn keyword ngxDirectiveThirdParty uwsgi_buffering +syn keyword ngxDirectiveThirdParty uwsgi_buffers +syn keyword ngxDirectiveThirdParty uwsgi_busy_buffers_size +syn keyword ngxDirectiveThirdParty uwsgi_cache +syn keyword ngxDirectiveThirdParty uwsgi_cache_bypass +syn keyword ngxDirectiveThirdParty uwsgi_cache_key +syn keyword ngxDirectiveThirdParty uwsgi_cache_lock +syn keyword ngxDirectiveThirdParty uwsgi_cache_lock_timeout +syn keyword ngxDirectiveThirdParty uwsgi_cache_methods +syn keyword ngxDirectiveThirdParty uwsgi_cache_min_uses +syn keyword ngxDirectiveThirdParty uwsgi_cache_path +syn keyword ngxDirectiveThirdParty uwsgi_cache_use_stale +syn keyword ngxDirectiveThirdParty uwsgi_cache_valid +syn keyword ngxDirectiveThirdParty uwsgi_connect_timeout +syn keyword ngxDirectiveThirdParty uwsgi_hide_header +syn keyword ngxDirectiveThirdParty uwsgi_ignore_client_abort +syn keyword ngxDirectiveThirdParty uwsgi_ignore_headers +syn keyword ngxDirectiveThirdParty uwsgi_intercept_errors +syn keyword ngxDirectiveThirdParty uwsgi_max_temp_file_size +syn keyword ngxDirectiveThirdParty uwsgi_modifier1 +syn keyword ngxDirectiveThirdParty uwsgi_modifier2 +syn keyword ngxDirectiveThirdParty uwsgi_next_upstream +syn keyword ngxDirectiveThirdParty uwsgi_no_cache +syn keyword ngxDirectiveThirdParty uwsgi_param +syn keyword ngxDirectiveThirdParty uwsgi_pass +syn keyword ngxDirectiveThirdParty uwsgi_pass_header +syn keyword ngxDirectiveThirdParty uwsgi_pass_request_body +syn keyword ngxDirectiveThirdParty uwsgi_pass_request_headers +syn keyword ngxDirectiveThirdParty uwsgi_read_timeout +syn keyword ngxDirectiveThirdParty uwsgi_send_timeout +syn keyword ngxDirectiveThirdParty uwsgi_store +syn keyword ngxDirectiveThirdParty uwsgi_store_access +syn keyword ngxDirectiveThirdParty uwsgi_string +syn keyword ngxDirectiveThirdParty uwsgi_temp_file_write_size +syn keyword ngxDirectiveThirdParty uwsgi_temp_path + " highlight hi link ngxComment Comment diff --git a/sources_non_forked/nginx-vim/README.md b/sources_non_forked/nginx-vim/README.md deleted file mode 100755 index 8124452e..00000000 --- a/sources_non_forked/nginx-vim/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# nginx syntax files for Vim. - -Copied into a directory to play well with pathogen. - -* Original: http://www.vim.org/scripts/script.php?script_id=1886 - - diff --git a/sources_non_forked/nginx-vim/ftdetect/nginx.vim b/sources_non_forked/nginx-vim/ftdetect/nginx.vim deleted file mode 100755 index d12c2bf1..00000000 --- a/sources_non_forked/nginx-vim/ftdetect/nginx.vim +++ /dev/null @@ -1,2 +0,0 @@ -au BufRead,BufNewFile /etc/nginx/* set ft=nginx -au BufRead,BufNewFile /usr/local/nginx/conf/* set ft=nginx diff --git a/sources_non_forked/nginx-vim/syntax/nginx.vim b/sources_non_forked/nginx-vim/syntax/nginx.vim deleted file mode 100755 index ccd47680..00000000 --- a/sources_non_forked/nginx-vim/syntax/nginx.vim +++ /dev/null @@ -1,664 +0,0 @@ -" Vim syntax file -" Language: nginx.conf - -if exists("b:current_syntax") - finish -end - -setlocal iskeyword+=. -setlocal iskeyword+=/ -setlocal iskeyword+=: - -syn match ngxVariable '\$\w\w*' -syn match ngxVariableBlock '\$\w\w*' contained -syn match ngxVariableString '\$\w\w*' contained -syn region ngxBlock start=+^+ end=+{+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline -syn region ngxString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=ngxVariableString oneline -syn region ngxString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=ngxVariableString oneline -syn match ngxComment ' *#.*$' - -syn keyword ngxBoolean on -syn keyword ngxBoolean off - -syn keyword ngxDirectiveBlock http contained -syn keyword ngxDirectiveBlock mail contained -syn keyword ngxDirectiveBlock events contained -syn keyword ngxDirectiveBlock server contained -syn keyword ngxDirectiveBlock types contained -syn keyword ngxDirectiveBlock location contained -syn keyword ngxDirectiveBlock upstream contained -syn keyword ngxDirectiveBlock charset_map contained -syn keyword ngxDirectiveBlock limit_except contained -syn keyword ngxDirectiveBlock if contained -syn keyword ngxDirectiveBlock geo contained -syn keyword ngxDirectiveBlock map contained - -syn keyword ngxDirectiveImportant include -syn keyword ngxDirectiveImportant root -syn keyword ngxDirectiveImportant server -syn keyword ngxDirectiveImportant server_name -syn keyword ngxDirectiveImportant listen -syn keyword ngxDirectiveImportant internal -syn keyword ngxDirectiveImportant proxy_pass -syn keyword ngxDirectiveImportant memcached_pass -syn keyword ngxDirectiveImportant fastcgi_pass -syn keyword ngxDirectiveImportant try_files - -syn keyword ngxDirectiveControl break -syn keyword ngxDirectiveControl return -syn keyword ngxDirectiveControl rewrite -syn keyword ngxDirectiveControl set - -syn keyword ngxDirectiveError error_page -syn keyword ngxDirectiveError post_action - -syn keyword ngxDirectiveDeprecated connections -syn keyword ngxDirectiveDeprecated imap -syn keyword ngxDirectiveDeprecated open_file_cache_retest -syn keyword ngxDirectiveDeprecated optimize_server_names -syn keyword ngxDirectiveDeprecated satisfy_any - -syn keyword ngxDirective accept_mutex -syn keyword ngxDirective accept_mutex_delay -syn keyword ngxDirective access_log -syn keyword ngxDirective add_after_body -syn keyword ngxDirective add_before_body -syn keyword ngxDirective add_header -syn keyword ngxDirective addition_types -syn keyword ngxDirective aio -syn keyword ngxDirective alias -syn keyword ngxDirective allow -syn keyword ngxDirective ancient_browser -syn keyword ngxDirective ancient_browser_value -syn keyword ngxDirective auth_basic -syn keyword ngxDirective auth_basic_user_file -syn keyword ngxDirective auth_http -syn keyword ngxDirective auth_http_header -syn keyword ngxDirective auth_http_timeout -syn keyword ngxDirective autoindex -syn keyword ngxDirective autoindex_exact_size -syn keyword ngxDirective autoindex_localtime -syn keyword ngxDirective charset -syn keyword ngxDirective charset_types -syn keyword ngxDirective client_body_buffer_size -syn keyword ngxDirective client_body_in_file_only -syn keyword ngxDirective client_body_in_single_buffer -syn keyword ngxDirective client_body_temp_path -syn keyword ngxDirective client_body_timeout -syn keyword ngxDirective client_header_buffer_size -syn keyword ngxDirective client_header_timeout -syn keyword ngxDirective client_max_body_size -syn keyword ngxDirective connection_pool_size -syn keyword ngxDirective create_full_put_path -syn keyword ngxDirective daemon -syn keyword ngxDirective dav_access -syn keyword ngxDirective dav_methods -syn keyword ngxDirective debug_connection -syn keyword ngxDirective debug_points -syn keyword ngxDirective default_type -syn keyword ngxDirective degradation -syn keyword ngxDirective degrade -syn keyword ngxDirective deny -syn keyword ngxDirective devpoll_changes -syn keyword ngxDirective devpoll_events -syn keyword ngxDirective directio -syn keyword ngxDirective directio_alignment -syn keyword ngxDirective empty_gif -syn keyword ngxDirective env -syn keyword ngxDirective epoll_events -syn keyword ngxDirective error_log -syn keyword ngxDirective eventport_events -syn keyword ngxDirective expires -syn keyword ngxDirective fastcgi_bind -syn keyword ngxDirective fastcgi_buffer_size -syn keyword ngxDirective fastcgi_buffers -syn keyword ngxDirective fastcgi_busy_buffers_size -syn keyword ngxDirective fastcgi_cache -syn keyword ngxDirective fastcgi_cache_key -syn keyword ngxDirective fastcgi_cache_methods -syn keyword ngxDirective fastcgi_cache_min_uses -syn keyword ngxDirective fastcgi_cache_path -syn keyword ngxDirective fastcgi_cache_use_stale -syn keyword ngxDirective fastcgi_cache_valid -syn keyword ngxDirective fastcgi_catch_stderr -syn keyword ngxDirective fastcgi_connect_timeout -syn keyword ngxDirective fastcgi_hide_header -syn keyword ngxDirective fastcgi_ignore_client_abort -syn keyword ngxDirective fastcgi_ignore_headers -syn keyword ngxDirective fastcgi_index -syn keyword ngxDirective fastcgi_intercept_errors -syn keyword ngxDirective fastcgi_max_temp_file_size -syn keyword ngxDirective fastcgi_next_upstream -syn keyword ngxDirective fastcgi_param -syn keyword ngxDirective fastcgi_pass_header -syn keyword ngxDirective fastcgi_pass_request_body -syn keyword ngxDirective fastcgi_pass_request_headers -syn keyword ngxDirective fastcgi_read_timeout -syn keyword ngxDirective fastcgi_send_lowat -syn keyword ngxDirective fastcgi_send_timeout -syn keyword ngxDirective fastcgi_split_path_info -syn keyword ngxDirective fastcgi_store -syn keyword ngxDirective fastcgi_store_access -syn keyword ngxDirective fastcgi_temp_file_write_size -syn keyword ngxDirective fastcgi_temp_path -syn keyword ngxDirective fastcgi_upstream_fail_timeout -syn keyword ngxDirective fastcgi_upstream_max_fails -syn keyword ngxDirective flv -syn keyword ngxDirective geoip_city -syn keyword ngxDirective geoip_country -syn keyword ngxDirective google_perftools_profiles -syn keyword ngxDirective gzip -syn keyword ngxDirective gzip_buffers -syn keyword ngxDirective gzip_comp_level -syn keyword ngxDirective gzip_disable -syn keyword ngxDirective gzip_hash -syn keyword ngxDirective gzip_http_version -syn keyword ngxDirective gzip_min_length -syn keyword ngxDirective gzip_no_buffer -syn keyword ngxDirective gzip_proxied -syn keyword ngxDirective gzip_static -syn keyword ngxDirective gzip_types -syn keyword ngxDirective gzip_vary -syn keyword ngxDirective gzip_window -syn keyword ngxDirective if_modified_since -syn keyword ngxDirective ignore_invalid_headers -syn keyword ngxDirective image_filter -syn keyword ngxDirective image_filter_buffer -syn keyword ngxDirective image_filter_jpeg_quality -syn keyword ngxDirective image_filter_transparency -syn keyword ngxDirective imap_auth -syn keyword ngxDirective imap_capabilities -syn keyword ngxDirective imap_client_buffer -syn keyword ngxDirective index -syn keyword ngxDirective ip_hash -syn keyword ngxDirective keepalive_requests -syn keyword ngxDirective keepalive_timeout -syn keyword ngxDirective kqueue_changes -syn keyword ngxDirective kqueue_events -syn keyword ngxDirective large_client_header_buffers -syn keyword ngxDirective limit_conn -syn keyword ngxDirective limit_conn_log_level -syn keyword ngxDirective limit_rate -syn keyword ngxDirective limit_rate_after -syn keyword ngxDirective limit_req -syn keyword ngxDirective limit_req_log_level -syn keyword ngxDirective limit_req_zone -syn keyword ngxDirective limit_zone -syn keyword ngxDirective lingering_time -syn keyword ngxDirective lingering_timeout -syn keyword ngxDirective lock_file -syn keyword ngxDirective log_format -syn keyword ngxDirective log_not_found -syn keyword ngxDirective log_subrequest -syn keyword ngxDirective map_hash_bucket_size -syn keyword ngxDirective map_hash_max_size -syn keyword ngxDirective master_process -syn keyword ngxDirective memcached_bind -syn keyword ngxDirective memcached_buffer_size -syn keyword ngxDirective memcached_connect_timeout -syn keyword ngxDirective memcached_next_upstream -syn keyword ngxDirective memcached_read_timeout -syn keyword ngxDirective memcached_send_timeout -syn keyword ngxDirective memcached_upstream_fail_timeout -syn keyword ngxDirective memcached_upstream_max_fails -syn keyword ngxDirective merge_slashes -syn keyword ngxDirective min_delete_depth -syn keyword ngxDirective modern_browser -syn keyword ngxDirective modern_browser_value -syn keyword ngxDirective msie_padding -syn keyword ngxDirective msie_refresh -syn keyword ngxDirective multi_accept -syn keyword ngxDirective open_file_cache -syn keyword ngxDirective open_file_cache_errors -syn keyword ngxDirective open_file_cache_events -syn keyword ngxDirective open_file_cache_min_uses -syn keyword ngxDirective open_file_cache_valid -syn keyword ngxDirective open_log_file_cache -syn keyword ngxDirective output_buffers -syn keyword ngxDirective override_charset -syn keyword ngxDirective perl -syn keyword ngxDirective perl_modules -syn keyword ngxDirective perl_require -syn keyword ngxDirective perl_set -syn keyword ngxDirective pid -syn keyword ngxDirective pop3_auth -syn keyword ngxDirective pop3_capabilities -syn keyword ngxDirective port_in_redirect -syn keyword ngxDirective postpone_gzipping -syn keyword ngxDirective postpone_output -syn keyword ngxDirective protocol -syn keyword ngxDirective proxy -syn keyword ngxDirective proxy_bind -syn keyword ngxDirective proxy_buffer -syn keyword ngxDirective proxy_buffer_size -syn keyword ngxDirective proxy_buffering -syn keyword ngxDirective proxy_buffers -syn keyword ngxDirective proxy_busy_buffers_size -syn keyword ngxDirective proxy_cache -syn keyword ngxDirective proxy_cache_key -syn keyword ngxDirective proxy_cache_methods -syn keyword ngxDirective proxy_cache_min_uses -syn keyword ngxDirective proxy_cache_path -syn keyword ngxDirective proxy_cache_use_stale -syn keyword ngxDirective proxy_cache_valid -syn keyword ngxDirective proxy_connect_timeout -syn keyword ngxDirective proxy_headers_hash_bucket_size -syn keyword ngxDirective proxy_headers_hash_max_size -syn keyword ngxDirective proxy_hide_header -syn keyword ngxDirective proxy_ignore_client_abort -syn keyword ngxDirective proxy_ignore_headers -syn keyword ngxDirective proxy_intercept_errors -syn keyword ngxDirective proxy_max_temp_file_size -syn keyword ngxDirective proxy_method -syn keyword ngxDirective proxy_next_upstream -syn keyword ngxDirective proxy_pass_error_message -syn keyword ngxDirective proxy_pass_header -syn keyword ngxDirective proxy_pass_request_body -syn keyword ngxDirective proxy_pass_request_headers -syn keyword ngxDirective proxy_read_timeout -syn keyword ngxDirective proxy_redirect -syn keyword ngxDirective proxy_send_lowat -syn keyword ngxDirective proxy_send_timeout -syn keyword ngxDirective proxy_set_body -syn keyword ngxDirective proxy_set_header -syn keyword ngxDirective proxy_ssl_session_reuse -syn keyword ngxDirective proxy_store -syn keyword ngxDirective proxy_store_access -syn keyword ngxDirective proxy_temp_file_write_size -syn keyword ngxDirective proxy_temp_path -syn keyword ngxDirective proxy_timeout -syn keyword ngxDirective proxy_upstream_fail_timeout -syn keyword ngxDirective proxy_upstream_max_fails -syn keyword ngxDirective random_index -syn keyword ngxDirective read_ahead -syn keyword ngxDirective real_ip_header -syn keyword ngxDirective recursive_error_pages -syn keyword ngxDirective request_pool_size -syn keyword ngxDirective reset_timedout_connection -syn keyword ngxDirective resolver -syn keyword ngxDirective resolver_timeout -syn keyword ngxDirective rewrite_log -syn keyword ngxDirective rtsig_overflow_events -syn keyword ngxDirective rtsig_overflow_test -syn keyword ngxDirective rtsig_overflow_threshold -syn keyword ngxDirective rtsig_signo -syn keyword ngxDirective satisfy -syn keyword ngxDirective secure_link_secret -syn keyword ngxDirective send_lowat -syn keyword ngxDirective send_timeout -syn keyword ngxDirective sendfile -syn keyword ngxDirective sendfile_max_chunk -syn keyword ngxDirective server_name_in_redirect -syn keyword ngxDirective server_names_hash_bucket_size -syn keyword ngxDirective server_names_hash_max_size -syn keyword ngxDirective server_tokens -syn keyword ngxDirective set_real_ip_from -syn keyword ngxDirective smtp_auth -syn keyword ngxDirective smtp_capabilities -syn keyword ngxDirective smtp_client_buffer -syn keyword ngxDirective smtp_greeting_delay -syn keyword ngxDirective so_keepalive -syn keyword ngxDirective source_charset -syn keyword ngxDirective ssi -syn keyword ngxDirective ssi_ignore_recycled_buffers -syn keyword ngxDirective ssi_min_file_chunk -syn keyword ngxDirective ssi_silent_errors -syn keyword ngxDirective ssi_types -syn keyword ngxDirective ssi_value_length -syn keyword ngxDirective ssl -syn keyword ngxDirective ssl_certificate -syn keyword ngxDirective ssl_certificate_key -syn keyword ngxDirective ssl_ciphers -syn keyword ngxDirective ssl_client_certificate -syn keyword ngxDirective ssl_crl -syn keyword ngxDirective ssl_dhparam -syn keyword ngxDirective ssl_engine -syn keyword ngxDirective ssl_prefer_server_ciphers -syn keyword ngxDirective ssl_protocols -syn keyword ngxDirective ssl_session_cache -syn keyword ngxDirective ssl_session_timeout -syn keyword ngxDirective ssl_verify_client -syn keyword ngxDirective ssl_verify_depth -syn keyword ngxDirective starttls -syn keyword ngxDirective stub_status -syn keyword ngxDirective sub_filter -syn keyword ngxDirective sub_filter_once -syn keyword ngxDirective sub_filter_types -syn keyword ngxDirective tcp_nodelay -syn keyword ngxDirective tcp_nopush -syn keyword ngxDirective thread_stack_size -syn keyword ngxDirective timeout -syn keyword ngxDirective timer_resolution -syn keyword ngxDirective types_hash_bucket_size -syn keyword ngxDirective types_hash_max_size -syn keyword ngxDirective underscores_in_headers -syn keyword ngxDirective uninitialized_variable_warn -syn keyword ngxDirective use -syn keyword ngxDirective user -syn keyword ngxDirective userid -syn keyword ngxDirective userid_domain -syn keyword ngxDirective userid_expires -syn keyword ngxDirective userid_mark -syn keyword ngxDirective userid_name -syn keyword ngxDirective userid_p3p -syn keyword ngxDirective userid_path -syn keyword ngxDirective userid_service -syn keyword ngxDirective valid_referers -syn keyword ngxDirective variables_hash_bucket_size -syn keyword ngxDirective variables_hash_max_size -syn keyword ngxDirective worker_connections -syn keyword ngxDirective worker_cpu_affinity -syn keyword ngxDirective worker_priority -syn keyword ngxDirective worker_processes -syn keyword ngxDirective worker_rlimit_core -syn keyword ngxDirective worker_rlimit_nofile -syn keyword ngxDirective worker_rlimit_sigpending -syn keyword ngxDirective worker_threads -syn keyword ngxDirective working_directory -syn keyword ngxDirective xclient -syn keyword ngxDirective xml_entities -syn keyword ngxDirective xslt_stylesheet -syn keyword ngxDirective xslt_types - -" 3rd party module list: -" http://wiki.nginx.org/Nginx3rdPartyModules - -" Accept Language Module -" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales. -syn keyword ngxDirectiveThirdParty set_from_accept_language - -" Access Key Module -" Denies access unless the request URL contains an access key. -syn keyword ngxDirectiveThirdParty accesskey -syn keyword ngxDirectiveThirdParty accesskey_arg -syn keyword ngxDirectiveThirdParty accesskey_hashmethod -syn keyword ngxDirectiveThirdParty accesskey_signature - -" Auth PAM Module -" HTTP Basic Authentication using PAM. -syn keyword ngxDirectiveThirdParty auth_pam -syn keyword ngxDirectiveThirdParty auth_pam_service_name - -" Cache Purge Module -" Module adding ability to purge content from FastCGI and proxy caches. -syn keyword ngxDirectiveThirdParty fastcgi_cache_purge -syn keyword ngxDirectiveThirdParty proxy_cache_purge - -" Chunkin Module -" HTTP 1.1 chunked-encoding request body support for Nginx. -syn keyword ngxDirectiveThirdParty chunkin -syn keyword ngxDirectiveThirdParty chunkin_keepalive -syn keyword ngxDirectiveThirdParty chunkin_max_chunks_per_buf -syn keyword ngxDirectiveThirdParty chunkin_resume - -" Circle GIF Module -" Generates simple circle images with the colors and size specified in the URL. -syn keyword ngxDirectiveThirdParty circle_gif -syn keyword ngxDirectiveThirdParty circle_gif_max_radius -syn keyword ngxDirectiveThirdParty circle_gif_min_radius -syn keyword ngxDirectiveThirdParty circle_gif_step_radius - -" Drizzle Module -" Make nginx talk directly to mysql, drizzle, and sqlite3 by libdrizzle. -syn keyword ngxDirectiveThirdParty drizzle_connect_timeout -syn keyword ngxDirectiveThirdParty drizzle_dbname -syn keyword ngxDirectiveThirdParty drizzle_keepalive -syn keyword ngxDirectiveThirdParty drizzle_module_header -syn keyword ngxDirectiveThirdParty drizzle_pass -syn keyword ngxDirectiveThirdParty drizzle_query -syn keyword ngxDirectiveThirdParty drizzle_recv_cols_timeout -syn keyword ngxDirectiveThirdParty drizzle_recv_rows_timeout -syn keyword ngxDirectiveThirdParty drizzle_send_query_timeout -syn keyword ngxDirectiveThirdParty drizzle_server - -" Echo Module -" Brings 'echo', 'sleep', 'time', 'exec' and more shell-style goodies to Nginx config file. -syn keyword ngxDirectiveThirdParty echo -syn keyword ngxDirectiveThirdParty echo_after_body -syn keyword ngxDirectiveThirdParty echo_before_body -syn keyword ngxDirectiveThirdParty echo_blocking_sleep -syn keyword ngxDirectiveThirdParty echo_duplicate -syn keyword ngxDirectiveThirdParty echo_end -syn keyword ngxDirectiveThirdParty echo_exec -syn keyword ngxDirectiveThirdParty echo_flush -syn keyword ngxDirectiveThirdParty echo_foreach_split -syn keyword ngxDirectiveThirdParty echo_location -syn keyword ngxDirectiveThirdParty echo_location_async -syn keyword ngxDirectiveThirdParty echo_read_request_body -syn keyword ngxDirectiveThirdParty echo_request_body -syn keyword ngxDirectiveThirdParty echo_reset_timer -syn keyword ngxDirectiveThirdParty echo_sleep -syn keyword ngxDirectiveThirdParty echo_subrequest -syn keyword ngxDirectiveThirdParty echo_subrequest_async - -" Events Module -" Privides options for start/stop events. -syn keyword ngxDirectiveThirdParty on_start -syn keyword ngxDirectiveThirdParty on_stop - -" EY Balancer Module -" Adds a request queue to Nginx that allows the limiting of concurrent requests passed to the upstream. -syn keyword ngxDirectiveThirdParty max_connections -syn keyword ngxDirectiveThirdParty max_connections_max_queue_length -syn keyword ngxDirectiveThirdParty max_connections_queue_timeout - -" Fancy Indexes Module -" Like the built-in autoindex module, but fancier. -syn keyword ngxDirectiveThirdParty fancyindex -syn keyword ngxDirectiveThirdParty fancyindex_exact_size -syn keyword ngxDirectiveThirdParty fancyindex_footer -syn keyword ngxDirectiveThirdParty fancyindex_header -syn keyword ngxDirectiveThirdParty fancyindex_localtime -syn keyword ngxDirectiveThirdParty fancyindex_readme -syn keyword ngxDirectiveThirdParty fancyindex_readme_mode - -" GeoIP Module (DEPRECATED) -" Country code lookups via the MaxMind GeoIP API. -syn keyword ngxDirectiveThirdParty geoip_country_file - -" Headers More Module -" Set and clear input and output headers...more than "add"! -syn keyword ngxDirectiveThirdParty more_clear_headers -syn keyword ngxDirectiveThirdParty more_clear_input_headers -syn keyword ngxDirectiveThirdParty more_set_headers -syn keyword ngxDirectiveThirdParty more_set_input_headers - -" HTTP Push Module -" Turn Nginx into an adept long-polling HTTP Push (Comet) server. -syn keyword ngxDirectiveThirdParty push_buffer_size -syn keyword ngxDirectiveThirdParty push_listener -syn keyword ngxDirectiveThirdParty push_message_timeout -syn keyword ngxDirectiveThirdParty push_queue_messages -syn keyword ngxDirectiveThirdParty push_sender - -" HTTP Redis Module > -" Redis support.> -syn keyword ngxDirectiveThirdParty redis_bind -syn keyword ngxDirectiveThirdParty redis_buffer_size -syn keyword ngxDirectiveThirdParty redis_connect_timeout -syn keyword ngxDirectiveThirdParty redis_next_upstream -syn keyword ngxDirectiveThirdParty redis_pass -syn keyword ngxDirectiveThirdParty redis_read_timeout -syn keyword ngxDirectiveThirdParty redis_send_timeout - -" HTTP JavaScript Module -" Embedding SpiderMonkey. Nearly full port on Perl module. -syn keyword ngxDirectiveThirdParty js -syn keyword ngxDirectiveThirdParty js_filter -syn keyword ngxDirectiveThirdParty js_filter_types -syn keyword ngxDirectiveThirdParty js_load -syn keyword ngxDirectiveThirdParty js_maxmem -syn keyword ngxDirectiveThirdParty js_require -syn keyword ngxDirectiveThirdParty js_set -syn keyword ngxDirectiveThirdParty js_utf8 - -" Log Request Speed -" Log the time it took to process each request. -syn keyword ngxDirectiveThirdParty log_request_speed_filter -syn keyword ngxDirectiveThirdParty log_request_speed_filter_timeout - -" Memc Module -" An extended version of the standard memcached module that supports set, add, delete, and many more memcached commands. -syn keyword ngxDirectiveThirdParty memc_buffer_size -syn keyword ngxDirectiveThirdParty memc_cmds_allowed -syn keyword ngxDirectiveThirdParty memc_connect_timeout -syn keyword ngxDirectiveThirdParty memc_flags_to_last_modified -syn keyword ngxDirectiveThirdParty memc_next_upstream -syn keyword ngxDirectiveThirdParty memc_pass -syn keyword ngxDirectiveThirdParty memc_read_timeout -syn keyword ngxDirectiveThirdParty memc_send_timeout -syn keyword ngxDirectiveThirdParty memc_upstream_fail_timeout -syn keyword ngxDirectiveThirdParty memc_upstream_max_fails - -" Mogilefs Module -" Implements a MogileFS client, provides a replace to the Perlbal reverse proxy of the original MogileFS. -syn keyword ngxDirectiveThirdParty mogilefs_connect_timeout -syn keyword ngxDirectiveThirdParty mogilefs_domain -syn keyword ngxDirectiveThirdParty mogilefs_methods -syn keyword ngxDirectiveThirdParty mogilefs_noverify -syn keyword ngxDirectiveThirdParty mogilefs_pass -syn keyword ngxDirectiveThirdParty mogilefs_read_timeout -syn keyword ngxDirectiveThirdParty mogilefs_send_timeout -syn keyword ngxDirectiveThirdParty mogilefs_tracker - -" MP4 Streaming Lite Module -" Will seek to a certain time within H.264/MP4 files when provided with a 'start' parameter in the URL. -syn keyword ngxDirectiveThirdParty mp4 - -" Nginx Notice Module -" Serve static file to POST requests. -syn keyword ngxDirectiveThirdParty notice -syn keyword ngxDirectiveThirdParty notice_type - -" Phusion Passenger -" Easy and robust deployment of Ruby on Rails application on Apache and Nginx webservers. -syn keyword ngxDirectiveThirdParty passenger_base_uri -syn keyword ngxDirectiveThirdParty passenger_default_user -syn keyword ngxDirectiveThirdParty passenger_enabled -syn keyword ngxDirectiveThirdParty passenger_log_level -syn keyword ngxDirectiveThirdParty passenger_max_instances_per_app -syn keyword ngxDirectiveThirdParty passenger_max_pool_size -syn keyword ngxDirectiveThirdParty passenger_pool_idle_time -syn keyword ngxDirectiveThirdParty passenger_root -syn keyword ngxDirectiveThirdParty passenger_ruby -syn keyword ngxDirectiveThirdParty passenger_use_global_queue -syn keyword ngxDirectiveThirdParty passenger_user_switching -syn keyword ngxDirectiveThirdParty rack_env -syn keyword ngxDirectiveThirdParty rails_app_spawner_idle_time -syn keyword ngxDirectiveThirdParty rails_env -syn keyword ngxDirectiveThirdParty rails_framework_spawner_idle_time -syn keyword ngxDirectiveThirdParty rails_spawn_method - -" RDS JSON Module -" Help ngx_drizzle and other DBD modules emit JSON data. -syn keyword ngxDirectiveThirdParty rds_json -syn keyword ngxDirectiveThirdParty rds_json_content_type -syn keyword ngxDirectiveThirdParty rds_json_format -syn keyword ngxDirectiveThirdParty rds_json_ret - -" RRD Graph Module -" This module provides an HTTP interface to RRDtool's graphing facilities. -syn keyword ngxDirectiveThirdParty rrd_graph -syn keyword ngxDirectiveThirdParty rrd_graph_root - -" Secure Download -" Create expiring links. -syn keyword ngxDirectiveThirdParty secure_download -syn keyword ngxDirectiveThirdParty secure_download_fail_location -syn keyword ngxDirectiveThirdParty secure_download_path_mode -syn keyword ngxDirectiveThirdParty secure_download_secret - -" SlowFS Cache Module -" Module adding ability to cache static files. -syn keyword ngxDirectiveThirdParty slowfs_big_file_size -syn keyword ngxDirectiveThirdParty slowfs_cache -syn keyword ngxDirectiveThirdParty slowfs_cache_key -syn keyword ngxDirectiveThirdParty slowfs_cache_min_uses -syn keyword ngxDirectiveThirdParty slowfs_cache_path -syn keyword ngxDirectiveThirdParty slowfs_cache_purge -syn keyword ngxDirectiveThirdParty slowfs_cache_valid -syn keyword ngxDirectiveThirdParty slowfs_temp_path - -" Strip Module -" Whitespace remover. -syn keyword ngxDirectiveThirdParty strip - -" Substitutions Module -" A filter module which can do both regular expression and fixed string substitutions on response bodies. -syn keyword ngxDirectiveThirdParty subs_filter -syn keyword ngxDirectiveThirdParty subs_filter_types - -" Supervisord Module -" Module providing nginx with API to communicate with supervisord and manage (start/stop) backends on-demand. -syn keyword ngxDirectiveThirdParty supervisord -syn keyword ngxDirectiveThirdParty supervisord_inherit_backend_status -syn keyword ngxDirectiveThirdParty supervisord_name -syn keyword ngxDirectiveThirdParty supervisord_start -syn keyword ngxDirectiveThirdParty supervisord_stop - -" Upload Module -" Parses multipart/form-data allowing arbitrary handling of uploaded files. -syn keyword ngxDirectiveThirdParty upload_aggregate_form_field -syn keyword ngxDirectiveThirdParty upload_buffer_size -syn keyword ngxDirectiveThirdParty upload_cleanup -syn keyword ngxDirectiveThirdParty upload_limit_rate -syn keyword ngxDirectiveThirdParty upload_max_file_size -syn keyword ngxDirectiveThirdParty upload_max_output_body_len -syn keyword ngxDirectiveThirdParty upload_max_part_header_len -syn keyword ngxDirectiveThirdParty upload_pass -syn keyword ngxDirectiveThirdParty upload_pass_args -syn keyword ngxDirectiveThirdParty upload_pass_form_field -syn keyword ngxDirectiveThirdParty upload_set_form_field -syn keyword ngxDirectiveThirdParty upload_store -syn keyword ngxDirectiveThirdParty upload_store_access - -" Upload Progress Module -" Tracks and reports upload progress. -syn keyword ngxDirectiveThirdParty report_uploads -syn keyword ngxDirectiveThirdParty track_uploads -syn keyword ngxDirectiveThirdParty upload_progress -syn keyword ngxDirectiveThirdParty upload_progress_content_type -syn keyword ngxDirectiveThirdParty upload_progress_header -syn keyword ngxDirectiveThirdParty upload_progress_json_output -syn keyword ngxDirectiveThirdParty upload_progress_template - -" Upstream Fair Balancer -" Sends an incoming request to the least-busy backend server, rather than distributing requests round-robin. -syn keyword ngxDirectiveThirdParty fair -syn keyword ngxDirectiveThirdParty upstream_fair_shm_size - -" Upstream Consistent Hash -" Select backend based on Consistent hash ring. -syn keyword ngxDirectiveThirdParty consistent_hash - -" Upstream Hash Module -" Provides simple upstream load distribution by hashing a configurable variable. -syn keyword ngxDirectiveThirdParty hash -syn keyword ngxDirectiveThirdParty hash_again - -" XSS Module -" Native support for cross-site scripting (XSS) in an nginx. -syn keyword ngxDirectiveThirdParty xss_callback_arg -syn keyword ngxDirectiveThirdParty xss_get -syn keyword ngxDirectiveThirdParty xss_input_types -syn keyword ngxDirectiveThirdParty xss_output_type - -" highlight - -hi link ngxComment Comment -hi link ngxVariable Identifier -hi link ngxVariableBlock Identifier -hi link ngxVariableString PreProc -hi link ngxBlock Normal -hi link ngxString String - -hi link ngxBoolean Boolean -hi link ngxDirectiveBlock Statement -hi link ngxDirectiveImportant Type -hi link ngxDirectiveControl Keyword -hi link ngxDirectiveError Constant -hi link ngxDirectiveDeprecated Error -hi link ngxDirective Identifier -hi link ngxDirectiveThirdParty Special - -let b:current_syntax = "nginx" diff --git a/sources_non_forked/nginx.vim/README b/sources_non_forked/nginx.vim/README deleted file mode 100644 index 91ceb224..00000000 --- a/sources_non_forked/nginx.vim/README +++ /dev/null @@ -1,3 +0,0 @@ -This is a mirror of http://www.vim.org/scripts/script.php?script_id=1886 - -nginx.vim highlights configuration files for nginx, the high-performance web server (see http://nginx.net). diff --git a/sources_non_forked/vim-racer/.gitignore b/sources_non_forked/vim-racer/.gitignore deleted file mode 100644 index 0d20b648..00000000 --- a/sources_non_forked/vim-racer/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.pyc diff --git a/sources_non_forked/vim-racer/README.md b/sources_non_forked/vim-racer/README.md deleted file mode 100644 index ef47c0c6..00000000 --- a/sources_non_forked/vim-racer/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Vim Racer Plugin - -This plugin allows vim to use [Racer](http://github.com/phildawes/racer) for Rust code completion and navigation. - -## Installation - -1. Build / Install [Racer](http://github.com/phildawes/racer) - -1. Install using Pathogen, Vundle or NeoBundle. Or, copy `plugin/racer.vim` into your `~/.vim/plugin` directory. - - Vundle users: - ``` - Plugin 'racer-rust/vim-racer' - ``` - - NeoBundle users: - ``` - NeoBundle 'racer-rust/vim-racer' - ``` - - vim-plug users: - ``` - Plug 'racer-rust/vim-racer' - ``` - -2. Add `g:racer_cmd` and `$RUST_SRC_PATH` variables to your `.vimrc`. Also it's worth turning on 'hidden' mode for buffers otherwise you need to save the current buffer every time you do a goto-definition. E.g.: - - ``` - set hidden - let g:racer_cmd = "/target/release/racer" - let $RUST_SRC_PATH="/src/" - ``` - -3. In insert mode use `C-x-C-o` to search for completions - -4. In normal mode type `gd` to go to a definition diff --git a/sources_non_forked/vim-racer/plugin/racer.vim b/sources_non_forked/vim-racer/plugin/racer.vim deleted file mode 100644 index c42fb3d5..00000000 --- a/sources_non_forked/vim-racer/plugin/racer.vim +++ /dev/null @@ -1,196 +0,0 @@ -" Vim plugin for Racer -" (by Phil Dawes) -" -" 1. Edit the variables below (or override in .vimrc) -" 2. copy this file into .vim/plugin/ -" 3. - now in insert mode do 'C-x C-o' to autocomplete the thing at the cursor -" - in normal mode do 'gd' to go to definition -" - 'gD' goes to the definition in a new vertical split -" -" (This plugin is best used with the 'hidden' option enabled so that switching buffers doesn't force you to save) - -if exists('g:loaded_racer') - finish -endif - -let g:loaded_racer = 1 - -let s:save_cpo = &cpo -set cpo&vim - -if !exists('g:racer_cmd') - let path = escape(expand(':p:h'), '\') . '/../target/release/' - if isdirectory(path) - let s:pathsep = has("win32") ? ';' : ':' - let $PATH .= s:pathsep . path - endif - let g:racer_cmd = 'racer' - - if !(executable(g:racer_cmd)) - echohl WarningMsg | echomsg "No racer executable found in $PATH (" . $PATH . ")" - endif -endif - -if !exists('$RUST_SRC_PATH') - let s:rust_src_default = 1 - if isdirectory("/usr/local/src/rust/src") - let $RUST_SRC_PATH="/usr/local/src/rust/src" - endif - if isdirectory("/usr/src/rust/src") - let $RUST_SRC_PATH="/usr/src/rust/src" - endif - if isdirectory("C:\\rust\\src") - let $RUST_SRC_PATH="C:\\rust\\src" - endif -endif -if !isdirectory($RUST_SRC_PATH) - if exists('s:rust_src_default') - echohl WarningMsg | echomsg "No RUST_SRC_PATH environment variable present, nor could default installation be found at: " . $RUST_SRC_PATH - else - echohl WarningMsg | echomsg "No directory was found at provided RUST_SRC_PATH: " . $RUST_SRC_PATH - endif -endif - -if !exists('g:racer_experimental_completer') - let g:racer_experimental_completer = 0 -endif - -if !exists('g:racer_insert_paren') - let g:racer_insert_paren = 1 -endif - -function! RacerGetPrefixCol(base) - let col = col(".")-1 - let b:racer_col = col - let b:tmpfname = tempname() - call writefile(RacerGetBufferContents(a:base), b:tmpfname) - let cmd = g:racer_cmd." prefix ".line(".")." ".col." ".b:tmpfname - let res = system(cmd) - let prefixline = split(res, "\\n")[0] - let startcol = split(prefixline[7:], ",")[0] - return startcol -endfunction - -function! RacerGetExpCompletions(base) - let col = strlen(getline('.')) + strlen(a:base) " use the column from the previous RacerGetPrefixCol() call, since vim ammends it afterwards - call writefile(RacerGetBufferContents(a:base), b:tmpfname) - let fname = expand("%:p") - let cmd = g:racer_cmd." complete ".line(".")." ".col." ".fname." ".b:tmpfname - let res = system(cmd) - - let typeMap = { - \ 'Struct' : 's', 'Module' : 'M', 'Function' : 'f', - \ 'Crate' : 'C', 'Let' : 'v', 'StructField' : 'm', - \ 'Impl' : 'i', 'Enum' : 'e', 'EnumVariant' : 'E', - \ 'Type' : 't', 'FnArg' : 'v', 'Trait' : 'T' - \ } - - let lines = split(res, "\\n") - let out = [] - - for line in lines - if line =~ "^MATCH" - let completions = split(line[6:], ",") - let kind = get(typeMap, completions[4]) - let completion = {'kind' : kind, 'word' : completions[0], 'dup':1 } - - if kind ==# 'f' " function - let completion['menu'] = substitute(substitute(substitute(join(completions[5:], ','), '\(pub\|fn\) ',"","g"), '{*$', "", ""), ' where\s\?.*$', "", "") - if g:racer_insert_paren == 1 - let completion['abbr'] = completions[0] - let completion['word'] .= "(" - endif - let completion['info'] = join(completions[5:], ',') - elseif kind ==# 's' " struct - let completion['menu'] = substitute(substitute(join(completions[5:], ','), '\(pub\|struct\) ',"","g"), '{*$', "", "") - endif - - let out = add(out, completion) - endif - endfor - call delete(b:tmpfname) - return out -endfunction - -function! RacerGetCompletions(base) - let col = strlen(getline('.')) + strlen(a:base) " use the column from the previous RacerGetPrefixCol() call, since vim ammends it afterwards - call writefile(RacerGetBufferContents(a:base), b:tmpfname) - let fname = expand("%:p") - let cmd = g:racer_cmd." complete ".line(".")." ".col." ".fname." ".b:tmpfname - let res = system(cmd) - let lines = split(res, "\\n") - let out = [] - for line in lines - if line =~ "^MATCH" - let completion = split(line[6:], ",")[0] - let out = add(out, completion) - endif - endfor - call delete(b:tmpfname) - return out -endfunction - -function! RacerGoToDefinition() - let col = col(".")-1 - let b:racer_col = col - let fname = expand("%:p") - let tmpfname = tempname() - call writefile(getline(1, '$'), tmpfname) - let cmd = g:racer_cmd." find-definition ".line(".")." ".col." ".fname." ".tmpfname - let res = system(cmd) - let lines = split(res, "\\n") - for line in lines - if line =~ "^MATCH" - let linenum = split(line[6:], ",")[1] - let colnum = split(line[6:], ",")[2] - let fname = split(line[6:], ",")[3] - call RacerJumpToLocation(fname, linenum, colnum) - break - endif - endfor - call delete(tmpfname) -endfunction - -function! RacerGetBufferContents(base) - " Re-combine the completion base word from omnicomplete with the current - " line contents. Since the base word gets remove from the buffer before - " this function is invoked we have to put it back in to out tmpfile. - let col = col(".")-1 - let buf_lines = getline(1, '$') - let line_contents = getline('.') - let buf_lines[line('.') - 1] = strpart(line_contents, 0, col).a:base.strpart(line_contents, col, len(line_contents)) - return buf_lines -endfunction - -function! RacerJumpToLocation(filename, linenum, colnum) - if(a:filename != '') - " Record jump mark - normal! m` - if a:filename != bufname('%') - exec 'keepjumps e ' . fnameescape(a:filename) - endif - call cursor(a:linenum, a:colnum+1) - " Center definition on screen - normal! zz - endif -endfunction - -function! RacerComplete(findstart, base) - if a:findstart - return RacerGetPrefixCol(a:base) - else - if g:racer_experimental_completer == 1 - return RacerGetExpCompletions(a:base) - else - return RacerGetCompletions(a:base) - endif - endif -endfunction - -autocmd FileType rust setlocal omnifunc=RacerComplete -autocmd FileType rust nnoremap gd :call RacerGoToDefinition() -autocmd FileType rust nnoremap gD :vsplit:call RacerGoToDefinition() - -let &cpo = s:save_cpo -unlet s:save_cpo - diff --git a/sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py b/sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py deleted file mode 100644 index 7af86ac7..00000000 --- a/sources_non_forked/vim-racer/rplugin/python3/deoplete/sources/racer.py +++ /dev/null @@ -1,103 +0,0 @@ -#============================================================================= -# FILE: racer.py -# AUTHOR: Shougo Matsushita -# License: MIT license {{{ -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# }}} -#============================================================================= - -import re -import os -import subprocess -from .base import Base - -class Source(Base): - def __init__(self, vim): - Base.__init__(self, vim) - - self.name = 'racer' - self.mark = '[racer]' - self.filetypes = ['rust'] - self.input_pattern = r'(\.|::)\w*' - self.__executable_racer = self.vim.funcs.executable( - self.vim.eval('g:racer_cmd')) - self.__racer = self.vim.eval('g:racer_cmd') - self.__encoding = self.vim.eval('&encoding') - - def get_complete_position(self, context): - if not self.__executable_racer: - return -1 - - results = self.get_results('prefix', self.vim.funcs.col('.')) - if not results: - return -1 - prefixline = results[0] - return int(prefixline[7:].split(',')[0]) - - def gather_candidates(self, context): - typeMap = { - 'Struct': 's', 'Module': 'M', 'Function': 'f', - 'Crate': 'C', 'Let': 'v', 'StructField': 'm', - 'Impl': 'i', 'Enum': 'e', 'EnumVariant': 'E', - 'Type': 't', 'FnArg': 'v', 'Trait': 'T' - } - - candidates = [] - insert_paren = int(self.vim.eval('g:racer_insert_paren')) - for line in [l[6:] for l - in self.get_results('complete-with-snippet', - context['complete_position'] + 1) - if l.startswith('MATCH')]: - completions = line.split(';', 6) - kind = typeMap[completions[5]] - completion = { 'kind': kind, 'word': completions[0], 'dup': 1 } - if kind == 'f': # function - completion['menu'] = completions[6].replace( - 'pub ', '').replace('fn ', '').rstrip('{') - if ' where ' in completion['menu'] or completion[ - 'menu'].endswith(' where') : - where = completion['menu'].rindex(' where') - completion['menu'] = completion['menu'][: where] - if insert_paren: - completion['abbr'] = completions[0] - completion['word'] += '(' - elif kind == 's' : # struct - completion['menu'] = completions[6].replace( - 'pub ', '').replace( 'struct ', '').rstrip('{') - candidates.append(completion) - return candidates - - def get_results(self, command, col): - temp = self.vim.funcs.tempname() - with open(temp, 'w') as f: - for l in self.vim.current.buffer: - f.write(l + "\n") - try: - results = subprocess.check_output([ - self.__racer, command, - str(self.vim.funcs.line('.')), - str(col - 1), - temp - ]).decode(self.__encoding).splitlines() - except subprocess.CalledProcessError: - return [] - finally: - os.remove(temp) - return results diff --git a/update_plugins.py b/update_plugins.py index 32399e3e..5ea87f24 100644 --- a/update_plugins.py +++ b/update_plugins.py @@ -22,7 +22,7 @@ bufexplorer https://github.com/corntrace/bufexplorer ctrlp.vim https://github.com/kien/ctrlp.vim mayansmoke https://github.com/vim-scripts/mayansmoke nerdtree https://github.com/scrooloose/nerdtree -nginx.vim https://github.com/vim-scripts/nginx.vim +nginx-vim-syntax https://github.com/evanmiller/nginx-vim-syntax open_file_under_cursor.vim https://github.com/amix/open_file_under_cursor.vim snipmate-snippets https://github.com/scrooloose/snipmate-snippets tlib https://github.com/vim-scripts/tlib From 5c5e54b851197c997fb676fca541cb5e8b61ee4a Mon Sep 17 00:00:00 2001 From: Amir Salihefendic Date: Mon, 22 Feb 2016 22:05:29 +0000 Subject: [PATCH 23/29] Update README.md Removed mentions of taglist --- README.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/README.md b/README.md index 21e99701..999dd405 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ There are two versions: * **Basic**: If you want something small just copy [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim) into your ~/.vimrc and you will have a great basic setup * **Awesome**: This includes a ton of useful plugins, color schemes and configurations -I would of course recommend using the awesome version. +I would of course recommend using the awesome version.c ## How to install the Awesome version? The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following: @@ -15,15 +15,6 @@ The awesome version includes a lot of great plugins, configurations and color sc git clone https://github.com/amix/vimrc.git ~/.vim_runtime sh ~/.vim_runtime/install_awesome_vimrc.sh -The taglist.vim plugin will require ctags (http://ctags.sourceforge.net) -For Debian and Ubuntu: - - apt-get install ctags - -For Arch Linux: - - pacman -S ctags - I also recommend using [Source Code Pro font from Adobe](http://store1.adobe.com/cfusion/store/html/index.cfm?event=displayFontPackage&code=1960) (it's free and awesome font for writing and programming). The Awesome vimrc is already setup to try to use it ## How to install the Basic version? @@ -82,7 +73,6 @@ I recommend reading the docs of these plugins to understand them better. Each of * [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing `gf` * [zencoding](https://github.com/mattn/emmet-vim): Expanding abbreviation like zen-coding, very useful for editing XML, HTML. * [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object): Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts -* [taglist.vim](https://github.com/vim-scripts/taglist.vim): Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc) * [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors): Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing) * [vim-expand-region](https://github.com/terryma/vim-expand-region): Allows you to visually select increasingly larger regions of text using the same key combination. * [vim-airline](https://github.com/bling/vim-airline): Lean & mean status/tabline for vim that's light as air (replacing powerline) From 3fec0d7fbf0366a3d113517a0554b10b1ac9ad41 Mon Sep 17 00:00:00 2001 From: amix Date: Mon, 14 Mar 2016 11:04:57 +0100 Subject: [PATCH 24/29] Updated plugins --- sources_non_forked/syntastic/CONTRIBUTING.md | 16 +- sources_non_forked/syntastic/README.markdown | 48 +++--- .../syntastic/autoload/syntastic/util.vim | 15 +- .../syntastic/doc/syntastic.txt | 80 +++++----- .../syntastic/plugin/syntastic.vim | 6 + .../syntastic/plugin/syntastic/registry.vim | 7 +- .../syntastic/plugin/syntastic/signs.vim | 14 +- .../syntax_checkers/haskell/hlint.vim | 1 + .../syntax_checkers/python/pep257.vim | 56 ++----- .../syntax_checkers/python/pydocstyle.vim | 66 +++++++++ .../autoload/airline/themes/lucius.vim | 6 + sources_non_forked/vim-airline/CHANGELOG.md | 34 +++-- .../vim-airline/ISSUE_TEMPLATE.md | 14 ++ .../vim-airline/autoload/airline.vim | 5 +- .../autoload/airline/extensions.vim | 4 + .../autoload/airline/extensions/branch.vim | 2 +- .../autoload/airline/extensions/po.vim | 36 +++++ .../autoload/airline/extensions/tabline.vim | 39 +++-- .../airline/extensions/tabline/buffers.vim | 35 +++-- .../airline/extensions/tabline/ctrlspace.vim | 139 ++++++++++++------ .../airline/extensions/tabline/tabs.vim | 32 ++-- .../airline/extensions/whitespace.vim | 8 +- .../vim-airline/autoload/airline/init.vim | 11 +- .../vim-airline/autoload/airline/parts.vim | 6 +- .../vim-airline/doc/airline.txt | 46 ++++-- .../vim-commentary/plugin/commentary.vim | 4 +- .../vim-fugitive/doc/fugitive.txt | 4 + .../vim-fugitive/plugin/fugitive.vim | 50 ++++--- .../vim-go/.github/CONTRIBUTING.md | 9 ++ .../vim-go/.github/ISSUE_TEMPLATE.md | 30 ++++ .../vim-go/autoload/go/alternate.vim | 36 ++--- sources_non_forked/vim-go/autoload/go/cmd.vim | 14 +- .../vim-go/autoload/go/complete.vim | 7 +- sources_non_forked/vim-go/autoload/go/def.vim | 2 +- sources_non_forked/vim-go/autoload/go/doc.vim | 10 +- sources_non_forked/vim-go/autoload/go/fmt.vim | 53 +++++-- .../vim-go/autoload/go/import.vim | 2 +- .../vim-go/autoload/go/oracle.vim | 4 + .../vim-go/autoload/go/util.vim | 6 + .../vim-go/ftplugin/go/commands.vim | 4 +- .../vim-go/ftplugin/go/mappings.vim | 8 +- sources_non_forked/vim-go/plugin/go.vim | 2 +- sources_non_forked/vim-go/syntax/go.vim | 23 +-- .../vim-markdown/ftplugin/markdown.vim | 2 +- .../vim-snipmate/autoload/snipMate.vim | 4 +- .../vim-snipmate/plugin/snipMate.vim | 12 +- sources_non_forked/vim-snippets/README.md | 4 +- .../vim-snippets/UltiSnips/django.snippets | 2 +- .../vim-snippets/UltiSnips/go.snippets | 35 ----- .../UltiSnips/javascript.snippets | 6 + .../vim-snippets/UltiSnips/rust.snippets | 6 +- .../vim-snippets/snippets/elixir.snippets | 10 +- .../vim-snippets/snippets/go.snippets | 49 +++--- .../javascript/javascript.node.snippets | 2 +- .../vim-snippets/snippets/ruby.snippets | 4 + .../vim-snippets/snippets/rust.snippets | 4 +- 56 files changed, 731 insertions(+), 403 deletions(-) create mode 100644 sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim create mode 100644 sources_non_forked/vim-airline/ISSUE_TEMPLATE.md create mode 100644 sources_non_forked/vim-airline/autoload/airline/extensions/po.vim create mode 100644 sources_non_forked/vim-go/.github/CONTRIBUTING.md create mode 100644 sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md diff --git a/sources_non_forked/syntastic/CONTRIBUTING.md b/sources_non_forked/syntastic/CONTRIBUTING.md index 9c78aa32..6dd17758 100644 --- a/sources_non_forked/syntastic/CONTRIBUTING.md +++ b/sources_non_forked/syntastic/CONTRIBUTING.md @@ -11,11 +11,11 @@ ## 1. Bug reports / GitHub issues Please note that the preferred channel for posting bug reports is the -[issue tracker at GitHub][0]. Reports posted elsewhere are less likely +[issue tracker at GitHub][0]. Reports posted elsewhere are less likely to be seen by the core team. When reporting a bug make sure you search the existing GitHub issues -for the same/similar issues. If you find one, feel free to add a `+1` +for the same/similar issues. If you find one, feel free to add a `+1` comment with any additional information that may help us solve the issue. @@ -26,7 +26,7 @@ When creating a new issue be sure to state the following: * the version of syntastic you are using (see `:SyntasticInfo`). For syntax checker bugs also state the version of the checker executable -that you are using. Adding debugging information is typically useful +that you are using. Adding debugging information is typically useful too: * open a file handled by your checker; @@ -38,10 +38,10 @@ too: ## 2. Submitting a patch -Before you consider adding features to syntastic, _please_ spend a few -minutes (re-)reading the latest version of the [manual][1]. Syntastic -is changing rapidly at times, and it's quite possible that some features -you want to add exist already. +Before you consider adding features to syntastic, _please_ spend a few minutes +(re-)reading the latest version of the [manual][1]. Syntastic is changing +rapidly at times, and it's possible that some features you want to add exist +already. To submit a patch: @@ -54,7 +54,7 @@ Small, focused patches are preferred. Large changes to the code should be discussed with the core team first. Create an issue and explain your plan and see what we say. -Also, make sure to update the manual whenever applicable. Nobody can use +Also, make sure to update the manual whenever applicable. Nobody can use features that aren't documented. diff --git a/sources_non_forked/syntastic/README.markdown b/sources_non_forked/syntastic/README.markdown index a05b0f2a..91629417 100644 --- a/sources_non_forked/syntastic/README.markdown +++ b/sources_non_forked/syntastic/README.markdown @@ -35,7 +35,7 @@ 4.8. [How can I pass additional arguments to a checker?](#faqargs) 4.9. [Syntastic supports several checkers for my filetype - how do I tell which one(s) to use?](#faqcheckers) 4.10. [What is the difference between syntax checkers and style checkers?](#faqstyle) -4.11. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate) +4.11. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate) 4.12. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext) 4.13. [The error window is closed automatically when I :quit the current buffer but not when I :bdelete it?](#faqbdelete) 5. [Resources](#otherresources) @@ -64,7 +64,7 @@ Object, OS X and iOS property lists, Pug (formerly Jade), Puppet, Python, QML, R, Racket, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, z80, Zope page templates, and -zsh. See the [wiki][3] for details about the corresponding supported checkers. +zsh. See the [wiki][3] for details about the corresponding supported checkers. A number of third-party Vim plugins also provide checkers for syntastic, for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12], @@ -72,7 +72,7 @@ for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12], [vim-eastwood][28], and [vim-swift][24]. Below is a screenshot showing the methods that Syntastic uses to display syntax -errors. Note that, in practise, you will only have a subset of these methods +errors. Note that, in practise, you will only have a subset of these methods enabled. ![Screenshot 1][0] @@ -105,6 +105,12 @@ Syntastic should work with any modern plugin managers for Vim, such as [Vundle][17]. Instructions for installing syntastic with [Pathogen][1] are included below for completeness. +Starting with Vim version 7.4.1486 you can also load syntastic using the +standard mechanism of packages, without the help of third-party plugin managers +(see `:help packages` in Vim for details). Beware however that, while support +for packages has been added in Vim 7.4.1384, the functionality needed by +syntastic is present only in versions 7.4.1486 and later. + Last but not least: syntastic doesn't know how to do any syntax checks by itself. In order to get meaningful results you need to install external checkers corresponding to the types of files you use. Please consult the @@ -122,7 +128,7 @@ If you already have [Pathogen][1] working then skip [Step 1](#step1) and go to #### 2.2.1\. Step 1: Install pathogen.vim First I'll show you how to install Tim Pope's [Pathogen][1] so that it's easy to -install syntastic. Do this in your terminal so that you get the `pathogen.vim` +install syntastic. Do this in your terminal so that you get the `pathogen.vim` file and the directories it needs: ```sh mkdir -p ~/.vim/autoload ~/.vim/bundle && \ @@ -148,7 +154,7 @@ Quit vim and start it back up to reload it, then type: :Helptags ``` If you get an error when you do this, then you probably didn't install -[Pathogen][1] right. Go back to [Step 1](#step1) and make sure you did the +[Pathogen][1] right. Go back to [Step 1](#step1) and make sure you did the following: 1. Created both the `~/.vim/autoload` and `~/.vim/bundle` directories. @@ -161,7 +167,7 @@ following: ## 3\. Recommended settings Syntastic has numerous options that can be configured, and the defaults -are not particularly well suitable for new users. It is recommended +are not particularly well suitable for new users. It is recommended that you start by adding the following lines to your `vimrc` file, and return to them after reading the manual (see `:help syntastic` in Vim): ```vim @@ -231,8 +237,8 @@ let g:syntastic_python_python_exec = '/path/to/python3' __4.3. Q. Are there any local checkers for HTML5 that I can use with syntastic?__ -[HTML Tidy][18] has a fork named [HTML Tidy for HTML5][19]. It's a drop -in replacement, and syntastic can use it without changes. Just install it +[HTML Tidy][18] has a fork named [HTML Tidy for HTML5][19]. It's a drop +in replacement, and syntastic can use it without changes. Just install it somewhere and point `g:syntastic_html_tidy_exec` to its executable: ```vim let g:syntastic_html_tidy_exec = 'tidy5' @@ -253,12 +259,12 @@ __4.4. Q. The `perl` checker has stopped working...__ A. The `perl` checker runs `perl -c` against your file, which in turn __executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use` -statements in your file (cf. [perlrun][10]). This is probably fine if you -wrote the file yourself, but it's a security problem if you're checking third -party files. Since there is currently no way to disable this behaviour while -still producing useful results, the checker is now disabled by default. To -(re-)enable it, make sure the `g:syntastic_perl_checkers` list includes `perl`, -and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`: +statements in your file (cf. [perlrun][10]). This is probably fine if you +wrote the file yourself, but it's a security problem if you're checking +third-party files. Since there is currently no way to disable this behaviour +while still producing useful results, the checker is now disabled by default. +To (re-)enable it, make sure the `g:syntastic_perl_checkers` list includes +`perl`, and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`: ```vim let g:syntastic_enable_perl_checker = 1 ``` @@ -267,7 +273,7 @@ let g:syntastic_enable_perl_checker = 1 __4.5. Q. What happened to the `rustc` checker?__ -A. It is now part of the [rust.vim][12] plugin. If you install this plugin the +A. It is now part of the [rust.vim][12] plugin. If you install this plugin the checker should be picked up automatically by syntastic. @@ -275,7 +281,7 @@ checker should be picked up automatically by syntastic. __4.6. Q. What happened to the `xcrun` checker?__ A. The `xcrun` checker used to have a security problem and it has been removed. -A better checker for __Swift__ is part of the [vim-swift][24] plugin. If you +A better checker for __Swift__ is part of the [vim-swift][24] plugin. If you install this plugin the checker should be picked up automatically by syntastic. @@ -284,7 +290,7 @@ __4.7. Q. I run a checker and the location list is not updated...__ __4.7. Q. I run`:lopen` or `:lwindow` and the error window is empty...__ A. By default the location list is changed only when you run the `:Errors` -command, in order to minimise conflicts with other plugins. If you want the +command, in order to minimise conflicts with other plugins. If you want the location list to always be updated when you run the checkers, add this line to your `vimrc`: ```vim @@ -367,7 +373,7 @@ nature, produce both kinds of messages. Syntastic is not smart enough to be able to sort out these things by itself. In fact it's more useful to look at this from the perspective of filtering -unwanted messages, rather than as an indicator of severity levels. The +unwanted messages, rather than as an indicator of severity levels. The distinction between syntax and style is orthogonal to the distinction between errors and warnings, and thus you can turn off messages based on level, on type, or both. @@ -380,7 +386,7 @@ See `:help syntastic_quiet_messages` for details. -__4.11. Q. I have enabled multiple checkers for the current filetype. How can I +__4.11. Q. I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?__ A. Set `g:syntastic_aggregate_errors` to 1 in your `vimrc`: @@ -426,8 +432,8 @@ There are also a dedicated [google group][5], and a [syntastic tag at StackOverflow][6]. Syntastic aims to provide a common interface to syntax checkers for as many -languages as possible. For particular languages, there are, of course, other -plugins that provide more functionality than syntastic. You might want to take +languages as possible. For particular languages, there are, of course, other +plugins that provide more functionality than syntastic. You might want to take a look at [ghcmod-vim][31], [jedi-vim][7], [python-mode][8], [vim-go][32], or [YouCompleteMe][9]. diff --git a/sources_non_forked/syntastic/autoload/syntastic/util.vim b/sources_non_forked/syntastic/autoload/syntastic/util.vim index ccb08410..8a593457 100644 --- a/sources_non_forked/syntastic/autoload/syntastic/util.vim +++ b/sources_non_forked/syntastic/autoload/syntastic/util.vim @@ -240,7 +240,12 @@ function! syntastic#util#findGlobInParent(what, where) abort " {{{2 let old = '' while here !=# '' - let p = split(globpath(here, a:what, 1), '\n') + try + " Vim 7.4.279 and later + let p = globpath(here, a:what, 1, 1) + catch /\m^Vim\%((\a\+)\)\=:E118/ + let p = split(globpath(here, a:what, 1), "\n") + endtry if !empty(p) return fnamemodify(p[0], ':p') @@ -499,7 +504,13 @@ function! s:_rmrf(what) abort " {{{2 return endif - for f in split(globpath(a:what, '*', 1), "\n") + try + " Vim 7.4.279 and later + let entries = globpath(a:what, '*', 1, 1) + catch /\m^Vim\%((\a\+)\)\=:E118/ + let entries = split(globpath(a:what, '*', 1), "\n") + endtry + for f in entries call s:_rmrf(f) endfor silent! call syntastic#util#system(s:rmdir . ' ' . syntastic#util#shescape(a:what)) diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt index 7a937b42..d60e8ccf 100644 --- a/sources_non_forked/syntastic/doc/syntastic.txt +++ b/sources_non_forked/syntastic/doc/syntastic.txt @@ -64,8 +64,8 @@ CONTENTS *syntastic-contents* 1. Intro *syntastic-intro* Syntastic is a syntax checking plugin that runs files through external syntax -checkers. This can be done on demand, or automatically as files are saved and -opened. If syntax errors are detected, the user is notified and is happy +checkers. This can be done on demand, or automatically as files are saved +and opened. If syntax errors are detected, the user is notified and is happy because they didn't have to compile their code or execute their script to find them. @@ -103,8 +103,8 @@ list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch between active (checking on writing the buffer) and passive (manual) checking. You don't have to switch focus to the |location-list| window to jump to the -different errors. Vim provides several built-in commands for this, for -example |:lnext| and |:lprevious|. You may want to add shortcut mappings for +different errors. Vim provides several built-in commands for this, for +example |:lnext| and |:lprevious|. You may want to add shortcut mappings for these commands, or perhaps install a plugin such as Tim Pope's 'unimpaired' (see https://github.com/tpope/vim-unimpaired) that provides such mappings. @@ -242,7 +242,7 @@ disable generation of these labels by turning off '|syntastic_id_checkers|'. If |'syntastic_sort_aggregated_errors'| is set (which is the default), messages in the aggregated list are grouped by file, then sorted by line number, then -type, then column number. Otherwise messages produced by the same checker are +type, then column number. Otherwise messages produced by the same checker are grouped together, and sorting within each group is decided by the variables |'syntastic___sort'|. @@ -274,17 +274,17 @@ for more info. :SyntasticCheck *:SyntasticCheck* -Manually cause a syntax check to be done. By default the checkers in the +Manually cause a syntax check to be done. By default the checkers in the |'g:syntastic__checkers'| or |'b:syntastic_checkers'| lists are run, -cf. |syntastic-filetype-checkers|. If |'syntastic_aggregate_errors'| is unset +cf. |syntastic-filetype-checkers|. If |'syntastic_aggregate_errors'| is unset (which is the default), checking stops the first time a checker reports any errors; if |'syntastic_aggregate_errors'| is set, all checkers that apply are run in turn, and all errors found are aggregated in a single list. -The command may be followed by a (space separated) list of checkers. In this +The command may be followed by a (space separated) list of checkers. In this case |'g:syntastic__checkers'| and |'b:syntastic_checkers'| are ignored, and the checkers named by the command's arguments are run instead, in -the order specified. The set by |'syntastic_aggregate_errors'| still apply. +the order specified. The set by |'syntastic_aggregate_errors'| still apply. Example: > :SyntasticCheck flake8 pylint @@ -319,7 +319,7 @@ when buffers are first loaded, as well as on saving: > *'syntastic_check_on_wq'* Default: 1 In active mode syntax checks are normally run whenever buffers are written to -disk, even when the writes happen just before quitting Vim. If you want to +disk, even when the writes happen just before quitting Vim. If you want to skip checks when you issue |:wq|, |:x|, and |:ZZ|, set this variable to 0: > let g:syntastic_check_on_wq = 0 < @@ -347,7 +347,7 @@ By default, when results from multiple checkers are aggregated in a single error list (that is either when |'syntastic_aggregate_errors'| is enabled, or when checking a file with a composite filetype), errors are grouped by file, then sorted by line number, then grouped by type (namely errors take -precedence over warnings), then they are sorted by column number. If you want +precedence over warnings), then they are sorted by column number. If you want to leave messages grouped by checker output, set this variable to 0: > let g:syntastic_sort_aggregated_errors = 0 < @@ -413,7 +413,7 @@ option to tell syntastic to always stick any detected errors into the < Please note that if |'syntastic_auto_jump'| is set to a non-zero value the location list is overwritten with Syntastic's own list when taking a jump, -regardless of the value of |'syntastic_always_populate_loc_list'|. The +regardless of the value of |'syntastic_always_populate_loc_list'|. The location list is also overwritten when running the |:Errors| command. *'syntastic_auto_jump'* @@ -469,10 +469,10 @@ opens. > < *'syntastic_ignore_files'* Default: [] -Use this option to specify files that syntastic should never check. It's a -list of |regular-expression| patterns. The full paths of files (see |::p|) are +Use this option to specify files that syntastic should never check. It's a +list of |regular-expression| patterns. The full paths of files (see |::p|) are matched against these patterns, and the matches are case-sensitive. Use |\c| -to specify case-insensitive patterns. Example: > +to specify case-insensitive patterns. Example: > let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$'] < *'syntastic_filetype_map'* @@ -504,7 +504,7 @@ The option should be set to something like: > < "mode" can be mapped to one of two values - "active" or "passive". When set to "active", syntastic does automatic checking whenever a buffer is saved or -initially opened. When set to "passive" syntastic only checks when the user +initially opened. When set to "passive" syntastic only checks when the user calls |:SyntasticCheck|. The exceptions to these rules are defined with "active_filetypes" and @@ -531,7 +531,7 @@ whether the corresponding buffer should be checked automatically. *'syntastic_quiet_messages'* Default: {} -Use this option to filter out some of the messages produced by checkers. The +Use this option to filter out some of the messages produced by checkers. The option should be set to something like: > let g:syntastic_quiet_messages = { \ "!level": "errors", @@ -646,20 +646,20 @@ The above variable can be used to disable exit code checks in syntastic. Default: Vim's 'shell' This is the (full path to) the shell syntastic will use to run the checkers. On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for -file "stdout" and "stderr" redirections ">file" and "2>file". Examples of +file "stdout" and "stderr" redirections ">file" and "2>file". Examples of compatible shells are "zsh", "bash", "ksh", and of course the original Bourne "sh". This shell is independent of Vim's 'shell', and it isn't used for interactive -operations. It must take care to initialize all environment variables needed -by the checkers you're using. Example: > +operations. It must take care to initialize all environment variables needed +by the checkers you're using. Example: > let g:syntastic_shell = "/bin/sh" < *'syntastic_nested_autocommands'* Default: 0 Controls whether syntastic's autocommands |BufReadPost| and |BufWritePost| are called from other |BufReadPost| and |BufWritePost| autocommands (see -|autocmd-nested|). This is known to trigger interoperability problems with +|autocmd-nested|). This is known to trigger interoperability problems with other plugins, so only enable it if you actually need that functionality. *'syntastic_debug'* @@ -688,7 +688,7 @@ addition to being added to Vim's |message-history|: > < *'syntastic_extra_filetypes'* Default: [] -List of filetypes handled by checkers external to syntastic. If you have a Vim +List of filetypes handled by checkers external to syntastic. If you have a Vim plugin that adds a checker for syntastic, and if the said checker deals with a filetype that is unknown to syntastic, you might consider adding that filetype to this list: > @@ -710,7 +710,7 @@ variable 'g:syntastic__checkers' to a list of checkers, e.g. > < *'b:syntastic_checkers'* There is also a per-buffer version of this setting, 'b:syntastic_checkers'. -When set, it takes precedence over |'g:syntastic__checkers'|. You can +When set, it takes precedence over |'g:syntastic__checkers'|. You can use this in an autocmd to configure specific checkers for particular paths: > autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 | \ let b:syntastic_checkers = ["pylint"] | endif @@ -856,19 +856,19 @@ composite filetypes to simple ones using |'syntastic_filetype_map'|, e.g.: > 6.2 Editing files over network *syntastic-netrw* The standard plugin |netrw| allows Vim to transparently edit files over -network and inside archives. Currently syntastic doesn't support this mode -of operation. It can only check files that can be accessed directly by local +network and inside archives. Currently syntastic doesn't support this mode +of operation. It can only check files that can be accessed directly by local checkers, without any translation or conversion. ------------------------------------------------------------------------------ 6.3 The 'shellslash' option *syntastic-shellslash* -The 'shellslash' option is relevant only on Windows systems. This option +The 'shellslash' option is relevant only on Windows systems. This option determines (among other things) the rules for quoting command lines, and there is no easy way for syntastic to make sure its state is appropriate for your -shell. It should be turned off if your 'shell' (or |'syntastic_shell'|) is +shell. It should be turned off if your 'shell' (or |'syntastic_shell'|) is "cmd.exe", and on for shells that expect an UNIX-like syntax, such as Cygwin's -"sh". Most checkers will stop working if 'shellslash' is set to the wrong +"sh". Most checkers will stop working if 'shellslash' is set to the wrong value. ------------------------------------------------------------------------------ @@ -887,8 +887,8 @@ quickfix windows. ------------------------------------------------------------------------------ 7.1 The csh and tcsh shells *syntastic-csh* -The "csh" and "tcsh" shells are mostly compatible with syntastic. However, -some checkers assume Bourne shell syntax for redirecting "stderr". For this +The "csh" and "tcsh" shells are mostly compatible with syntastic. However, +some checkers assume Bourne shell syntax for redirecting "stderr". For this reason, you should point |'syntastic_shell'| to a Bourne-compatible shell, such as "zsh", "bash", "ksh", or even the original Bourne "sh": > let g:syntastic_shell = "/bin/sh" @@ -961,7 +961,7 @@ packaged with a syntastic segment. To customize this segment create a file At the time of this writing, syntastic is not compatible with using "Windows PowerShell" (http://technet.microsoft.com/en-us/library/bb978526.aspx) as Vim's -'shell'. You may still run Vim from 'PowerShell', but you do have to point +'shell'. You may still run Vim from 'PowerShell', but you do have to point Vim's 'shell' to a more traditional program, such as "cmd.exe": > set shell=cmd.exe < @@ -980,18 +980,18 @@ for python in syntastic (see |'syntastic_mode_map'|), or disable lint checks in 7.9. vim-auto-save *syntastic-vim-auto-save* Syntastic can be used together with the "vim-auto-save" Vim plugin (see -https://github.com/907th/vim-auto-save). However, syntastic checks in active +https://github.com/907th/vim-auto-save). However, syntastic checks in active mode only work with "vim-auto-save" version 0.1.7 or later. ------------------------------------------------------------------------------ 7.10. vim-go *syntastic-vim-go* Syntastic can be used along with the "vim-go" Vim plugin (see -https://github.com/fatih/vim-go). However, both "vim-go" and syntastic run -syntax checks by default when you save buffers to disk. To avoid conflicts, +https://github.com/fatih/vim-go). However, both "vim-go" and syntastic run +syntax checks by default when you save buffers to disk. To avoid conflicts, you have to either set passive mode in syntastic for the go filetype (see |syntastic_mode_map|), or prevent "vim-go" from showing a quickfix window when -|g:go_fmt_command| fails, by setting |g:go_fmt_fail_silently| to 1. E.g.: > +|g:go_fmt_command| fails, by setting |g:go_fmt_fail_silently| to 1. E.g.: > let g:go_fmt_fail_silently = 1 < ------------------------------------------------------------------------------ @@ -999,16 +999,16 @@ you have to either set passive mode in syntastic for the go filetype (see At the time of this writing, syntastic can't run checkers installed in Python virtual environments activated by "vim-virtualenv" (see -https://github.com/jmcantrell/vim-virtualenv). This is a limitation of +https://github.com/jmcantrell/vim-virtualenv). This is a limitation of "vim-virtualenv". ------------------------------------------------------------------------------ 7.12 YouCompleteMe *syntastic-ycm* Syntastic can be used together with the "YouCompleteMe" Vim plugin (see -http://valloric.github.io/YouCompleteMe/). However, by default "YouCompleteMe" +http://valloric.github.io/YouCompleteMe/). However, by default "YouCompleteMe" disables syntastic's checkers for the "c", "cpp", "objc", and "objcpp" -filetypes, in order to allow its own checkers to run. If you want to use YCM's +filetypes, in order to allow its own checkers to run. If you want to use YCM's identifier completer but still run syntastic's checkers for those filetypes you have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: > let g:ycm_show_diagnostics_ui = 0 @@ -1018,9 +1018,9 @@ have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: > If you're running MacVim together with the "zsh" shell (http://www.zsh.org/) you need to be aware that MacVim does not source your .zshrc file, but will -source a .zshenv file. Consequently you have to move any setup steps relevant +source a .zshenv file. Consequently you have to move any setup steps relevant to the checkers you're using from .zshrc to .zshenv, otherwise your checkers -will misbehave when run by syntastic. This is particularly important for +will misbehave when run by syntastic. This is particularly important for programs such as "rvm" (https://rvm.io/) or "rbenv" (http://rbenv.org/), that rely on setting environment variables. diff --git a/sources_non_forked/syntastic/plugin/syntastic.vim b/sources_non_forked/syntastic/plugin/syntastic.vim index 5e0bf8bb..f9130729 100644 --- a/sources_non_forked/syntastic/plugin/syntastic.vim +++ b/sources_non_forked/syntastic/plugin/syntastic.vim @@ -19,6 +19,7 @@ if has('reltime') lockvar! g:_SYNTASTIC_START endif +<<<<<<< 5c5e54b851197c997fb676fca541cb5e8b61ee4a <<<<<<< 913d549a8f5b39fd3a4a3e5bc8a176b1f32e51ee let g:_SYNTASTIC_VERSION = '3.7.0-86' ||||||| merged common ancestors @@ -26,6 +27,11 @@ let g:_SYNTASTIC_VERSION = '3.7.0-69' ======= let g:_SYNTASTIC_VERSION = '3.7.0-88' >>>>>>> Updated plugins +||||||| merged common ancestors +let g:_SYNTASTIC_VERSION = '3.7.0-88' +======= +let g:_SYNTASTIC_VERSION = '3.7.0-99' +>>>>>>> Updated plugins lockvar g:_SYNTASTIC_VERSION " Sanity checks {{{1 diff --git a/sources_non_forked/syntastic/plugin/syntastic/registry.vim b/sources_non_forked/syntastic/plugin/syntastic/registry.vim index 695d3364..5605a5fe 100644 --- a/sources_non_forked/syntastic/plugin/syntastic/registry.vim +++ b/sources_non_forked/syntastic/plugin/syntastic/registry.vim @@ -164,7 +164,7 @@ function! g:SyntasticRegistry.CreateAndRegisterChecker(args) abort " {{{2 if has_key(a:args, 'redirect') let [ft, name] = split(a:args['redirect'], '/') - call registry._loadCheckersFor(ft) + call registry._loadCheckersFor(ft, 1) let clone = get(registry._checkerMap[ft], name, {}) if empty(clone) @@ -320,8 +320,9 @@ function! g:SyntasticRegistry._filterCheckersByName(checkers_map, list) abort " return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' ) endfunction " }}}2 -function! g:SyntasticRegistry._loadCheckersFor(filetype) abort " {{{2 - if has_key(self._checkerMap, a:filetype) +function! g:SyntasticRegistry._loadCheckersFor(filetype, ...) abort " {{{2 + " XXX: a:1 == 1 means re-scan checkers for filetype + if has_key(self._checkerMap, a:filetype) && (!a:0 || !a:1) return endif diff --git a/sources_non_forked/syntastic/plugin/syntastic/signs.vim b/sources_non_forked/syntastic/plugin/syntastic/signs.vim index 1b89d2fa..e3bafa0d 100644 --- a/sources_non_forked/syntastic/plugin/syntastic/signs.vim +++ b/sources_non_forked/syntastic/plugin/syntastic/signs.vim @@ -21,13 +21,6 @@ let s:setup_done = 0 function! g:SyntasticSignsNotifier.New() abort " {{{2 let newObj = copy(self) - - if !s:setup_done - call self._setup() - let s:setup_done = 1 - lockvar s:setup_done - endif - return newObj endfunction " }}}2 @@ -37,8 +30,15 @@ endfunction " }}}2 function! g:SyntasticSignsNotifier.refresh(loclist) abort " {{{2 call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh') + let old_signs = copy(self._bufSignIds()) if self.enabled() + if !s:setup_done + call self._setup() + let s:setup_done = 1 + lockvar s:setup_done + endif + call self._signErrors(a:loclist) endif call self._removeSigns(old_signs) diff --git a/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim b/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim index 096e429f..c75ea8b4 100644 --- a/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim +++ b/sources_non_forked/syntastic/syntax_checkers/haskell/hlint.vim @@ -21,6 +21,7 @@ function! SyntaxCheckers_haskell_hlint_GetLocList() dict \ '%E%f:%l:%v: Error while reading hint file\, %m,' . \ '%E%f:%l:%v: Error: %m,' . \ '%W%f:%l:%v: Warning: %m,' . + \ '%W%f:%l:%v: Suggestion: %m,' . \ '%C%m' return SyntasticMake({ diff --git a/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim b/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim index 64f5b05e..e59166bc 100644 --- a/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim +++ b/sources_non_forked/syntastic/syntax_checkers/python/pep257.vim @@ -1,6 +1,13 @@ "============================================================================ "File: pep257.vim -"Description: Docstring style checking plugin for syntastic.vim +"Description: Syntax checking plugin for syntastic +"Maintainer: LCD 47 +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" "============================================================================ if exists('g:loaded_syntastic_python_pep257_checker') @@ -8,52 +15,9 @@ if exists('g:loaded_syntastic_python_pep257_checker') endif let g:loaded_syntastic_python_pep257_checker = 1 -let s:save_cpo = &cpo -set cpo&vim - -function! SyntaxCheckers_python_pep257_GetLocList() dict - if !exists('s:pep257_new') - let s:pep257_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 3]) - endif - - let makeprg = self.makeprgBuild({}) - - if s:pep257_new - let errorformat = - \ '%E%f:%l %.%#:,' . - \ '%+C %m' - else - let errorformat = - \ '%E%f:%l:%c%\%.%\%.%\d%\+:%\d%\+: %m,' . - \ '%E%f:%l:%c: %m,' . - \ '%+C %m' - endif - - let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' } - - let loclist = SyntasticMake({ - \ 'makeprg': makeprg, - \ 'errorformat': errorformat, - \ 'env': env, - \ 'subtype': 'Style', - \ 'preprocess': 'killEmpty', - \ 'postprocess': ['compressWhitespace'] }) - - if s:pep257_new == 0 - " byte offsets rather than column numbers - for e in loclist - let e['col'] = get(e, 'col', 0) + 1 - endfor - endif - - return loclist -endfunction - call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'python', - \ 'name': 'pep257'}) - -let &cpo = s:save_cpo -unlet s:save_cpo + \ 'name': 'pep257', + \ 'redirect': 'python/pydocstyle'}) " vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim b/sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim new file mode 100644 index 00000000..05ea6b36 --- /dev/null +++ b/sources_non_forked/syntastic/syntax_checkers/python/pydocstyle.vim @@ -0,0 +1,66 @@ +"============================================================================ +"File: pydocstyle.vim +"Description: Syntax checking plugin for syntastic +"Maintainer: LCD 47 +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('g:loaded_syntastic_python_pydocstyle_checker') + finish +endif +let g:loaded_syntastic_python_pydocstyle_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_python_pydocstyle_GetLocList() dict + if !exists('s:pydocstyle_new') + let s:pydocstyle_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 3]) + endif + + let makeprg = self.makeprgBuild({}) + + if s:pydocstyle_new + let errorformat = + \ '%E%f:%l %.%#:,' . + \ '%+C %m' + else + let errorformat = + \ '%E%f:%l:%c%\%.%\%.%\d%\+:%\d%\+: %m,' . + \ '%E%f:%l:%c: %m,' . + \ '%+C %m' + endif + + let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' } + + let loclist = SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat, + \ 'env': env, + \ 'subtype': 'Style', + \ 'preprocess': 'killEmpty', + \ 'postprocess': ['compressWhitespace'] }) + + if s:pydocstyle_new == 0 + " byte offsets rather than column numbers + for e in loclist + let e['col'] = get(e, 'col', 0) + 1 + endfor + endif + + return loclist +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'python', + \ 'name': 'pydocstyle'}) + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim b/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim index e3869007..c6db8b63 100644 --- a/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim +++ b/sources_non_forked/vim-airline-themes/autoload/airline/themes/lucius.vim @@ -50,6 +50,12 @@ function! airline#themes#lucius#refresh() \ 'red': airline#themes#get_highlight('Constant'), \ } + " Extra tabline colors + let s:TS = airline#themes#get_highlight('TabLineSel') + let g:airline#themes#lucius#palette.tabline = {} + let g:airline#themes#lucius#palette.tabline.airline_tabsel = s:TS + let g:airline#themes#lucius#palette.tabline.airline_tabsel_right = s:TS + endfunction call airline#themes#lucius#refresh() diff --git a/sources_non_forked/vim-airline/CHANGELOG.md b/sources_non_forked/vim-airline/CHANGELOG.md index 3aacc267..b37ee18c 100644 --- a/sources_non_forked/vim-airline/CHANGELOG.md +++ b/sources_non_forked/vim-airline/CHANGELOG.md @@ -3,16 +3,31 @@ This is the Changelog for the vim-airline project. ## [Unreleased] + +## [0.8] - 2016-03-09 - Changes - - Themes have been moved into an extra repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) - - Many new themes - - Airline Moved to new [repository](https://github.com/vim-airline/vim-airline) -- New features - - Integration with [taboo](https://github.com/gcmt/taboo.vim), [vim-ctrlspace](https://github.com/szw/vim-ctrlspace), - [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim), [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) + - Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline) + - Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) +- Improvements + - Extensions + - branch: support Git and Mercurial simultaneously, untracked files + - whitespace: new mixed-indent rule + - Windows support + - Many bug fixes - Support for Neovim - - Added wordcount extension - - Adding Crypt and Byte Order Mark Indicator +- New features + - Many new themes + - Extensions/integration + - [taboo](https://github.com/gcmt/taboo.vim) + - [vim-ctrlspace](https://github.com/szw/vim-ctrlspace) + - [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim) + - [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) + - [po.vim](http://www.vim.org/scripts/script.php?script_id=695) + - [unicode.vim](https://github.com/chrisbra/unicode.vim) + - wordcount + - crypt indicator + - byte order mark indicator + - Tabline's tab mode can display splits simultaneously ## [0.7] - 2014-12-10 - New features @@ -94,7 +109,8 @@ This is the Changelog for the vim-airline project. - integration with other plugins: netrw, unite, nerdtree, undotree, gundo, tagbar, minibufexplr, ctrlp - support for themes: 8 included -[Unreleased]: https://github.com/vim-airline/vim-airline/compare/v0.7...HEAD +[Unreleased]: https://github.com/vim-airline/vim-airline/compare/v0.8...HEAD +[0.8]: https://github.com/vim-airline/vim-airline/compare/v0.7...v0.8 [0.7]: https://github.com/vim-airline/vim-airline/compare/v0.6...v0.7 [0.6]: https://github.com/vim-airline/vim-airline/compare/v0.5...v0.6 [0.5]: https://github.com/vim-airline/vim-airline/compare/v0.4...v0.5 diff --git a/sources_non_forked/vim-airline/ISSUE_TEMPLATE.md b/sources_non_forked/vim-airline/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..d246fef4 --- /dev/null +++ b/sources_non_forked/vim-airline/ISSUE_TEMPLATE.md @@ -0,0 +1,14 @@ +#### environment + +- vim: ???? +- vim-airline: ???? +- OS: ???? +- terminal: ???? + +#### actual behavior + +???? + +#### expected behavior + +???? diff --git a/sources_non_forked/vim-airline/autoload/airline.vim b/sources_non_forked/vim-airline/autoload/airline.vim index 83b7dfa2..f19d2fbe 100644 --- a/sources_non_forked/vim-airline/autoload/airline.vim +++ b/sources_non_forked/vim-airline/autoload/airline.vim @@ -72,9 +72,10 @@ endfunction function! airline#switch_matching_theme() if exists('g:colors_name') let existing = g:airline_theme + let theme = substitute(g:colors_name, '-', '_', 'g') try - let palette = g:airline#themes#{g:colors_name}#palette - call airline#switch_theme(g:colors_name) + let palette = g:airline#themes#{theme}#palette + call airline#switch_theme(theme) return 1 catch for map in items(g:airline_theme_map) diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions.vim b/sources_non_forked/vim-airline/autoload/airline/extensions.vim index 0ce64252..2970dc8e 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions.vim @@ -210,6 +210,10 @@ function! airline#extensions#load() call airline#extensions#whitespace#init(s:ext) endif + if get(g:, 'airline#extensions#po#enabled', 1) && executable('msgfmt') + call airline#extensions#po#init(s:ext) + endif + if get(g:, 'airline#extensions#wordcount#enabled', 1) call airline#extensions#wordcount#init(s:ext) endif diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim index d7f227d7..6b31c7de 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/branch.vim @@ -154,7 +154,7 @@ function! airline#extensions#branch#head() if exists("g:airline#extensions#branch#displayed_head_limit") let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit if len(b:airline_head) > w:displayed_head_limit - 1 - let b:airline_head = b:airline_head[0:w:displayed_head_limit - 1].'…' + let b:airline_head = b:airline_head[0:(w:displayed_head_limit - 1)].(&encoding ==? 'utf-8' ? '…' : '.') endif endif diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/po.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/po.vim new file mode 100644 index 00000000..6e5b6bca --- /dev/null +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/po.vim @@ -0,0 +1,36 @@ +" MIT License. Copyright (c) 2013-2016 Bailey Ling. +" vim: et ts=2 sts=2 sw=2 + +function! airline#extensions#po#apply(...) + if &ft ==# 'po' + call airline#extensions#prepend_to_section('z', '%{airline#extensions#po#stats()}') + autocmd airline BufWritePost * unlet! b:airline_po_stats + endif +endfunction + +function! airline#extensions#po#stats() + if exists('b:airline_po_stats') && !empty(b:airline_po_stats) + return b:airline_po_stats + endif + + let airline_po_stats = system('msgfmt --statistics -o /dev/null -- '. expand('%:p')) + if v:shell_error + return '' + endif + try + let b:airline_po_stats = '['. split(airline_po_stats, '\n')[0]. ']' + catch + let b:airline_po_stats = '' + endtry + if exists("g:airline#extensions#po#displayed_limit") + let w:displayed_po_limit = g:airline#extensions#po#displayed_limit + if len(b:airline_po_stats) > w:displayed_po_limit - 1 + let b:airline_po_stats = b:airline_po_stats[0:(w:displayed_po_limit - 1)].(&encoding==?'utf-8' ? '…' : '.') + endif + endif + return b:airline_po_stats +endfunction + +function! airline#extensions#po#init(ext) + call a:ext.add_statusline_func('airline#extensions#po#apply') +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim index 0447952b..05053a5b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline.vim @@ -5,6 +5,7 @@ let s:formatter = get(g:, 'airline#extensions#tabline#formatter', 'default') let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) let s:ignore_bufadd_pat = get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree') + let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0) if s:taboo let g:taboo_tabline = 0 @@ -41,27 +42,21 @@ function! s:toggle_on() endfunction function! s:update_tabline() + if get(g:, 'airline#extensions#tabline#disable_refresh', 0) + return + endif let match = expand('') if pumvisible() return elseif !get(g:, 'airline#extensions#tabline#enabled', 0) return " return, if buffer matches ignore pattern or is directory (netrw) - elseif empty(match) + elseif empty(match) \ || match(match, s:ignore_bufadd_pat) > -1 \ || isdirectory(expand("")) return endif - if empty(mapcheck("AirlineTablineRefresh", 'n')) - noremap AirlineTablineRefresh :set mod! - endif - call feedkeys("\AirlineTablineRefresh") - call feedkeys("\AirlineTablineRefresh") - "call feedkeys(',,', 't') - "call feedkeys(':unmap ,,') - " force re-evaluation of tabline setting - " disable explicit redraw, may cause E315 - "redraw + doautocmd User BufMRUChange endfunction function! airline#extensions#tabline#load_theme(palette) @@ -92,6 +87,7 @@ function! airline#extensions#tabline#load_theme(palette) " Theme for tabs on the right let l:tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a) + let l:tab_right = get(colors, 'airline_tab_right', a:palette.inactive.airline_c) let l:tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a) let l:tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c) if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c') @@ -100,6 +96,7 @@ function! airline#extensions#tabline#load_theme(palette) "Fall back to normal airline_c if modified airline_c isn't present let l:tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c) endif + call airline#highlighter#exec('airline_tab_right', l:tab_right) call airline#highlighter#exec('airline_tabsel_right', l:tabsel_right) call airline#highlighter#exec('airline_tabmod_right', l:tabmod_right) call airline#highlighter#exec('airline_tabhid_right', l:tabhid_right) @@ -163,3 +160,23 @@ function! airline#extensions#tabline#new_builder() return airline#builder#new(builder_context) endfunction + +function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr) + let cur = bufnr('%') + if cur == a:bufnr + if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') + let group = 'airline_tabmod' + else + let group = 'airline_tabsel' + endif + else + if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') + let group = 'airline_tabmod_unsel' + elseif index(a:tab_bufs, a:bufnr) > -1 + let group = 'airline_tab' + else + let group = 'airline_tabhid' + endif + endif + return group +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim index 96b1a877..11d3f684 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/buffers.vim @@ -5,6 +5,7 @@ scriptencoding utf-8 let s:buffer_idx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0) let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1) +let s:buffers_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers') let s:spc = g:airline_symbols.space let s:current_bufnr = -1 @@ -64,23 +65,16 @@ function! airline#extensions#tabline#buffers#get() continue endif - if cur == nr - if g:airline_detect_modified && getbufvar(nr, '&modified') - let group = 'airline_tabmod' - else - let group = 'airline_tabsel' - endif + let group = airline#extensions#tabline#group_of_bufnr(tab_bufs, nr) + + if nr == cur let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 - else - if g:airline_detect_modified && getbufvar(nr, '&modified') - let group = 'airline_tabmod_unsel' - elseif index(tab_bufs, nr) > -1 - let group = 'airline_tab' - else - let group = 'airline_tabhid' - endif endif + " Neovim feature: Have clickable buffers + if has("tablineat") + call b.add_raw('%'.nr.'@airline#extensions#tabline#buffers#switchbuf@') + endif if s:buffer_idx_mode if len(s:number_map) > 0 call b.add_section(group, s:spc . get(s:number_map, l:index, '') . '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)' . s:spc) @@ -91,13 +85,16 @@ function! airline#extensions#tabline#buffers#get() else call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc) endif + if has("tablineat") + call b.add_raw('%X') + endif endfor call b.add_section('airline_tabfill', '') call b.split() call b.add_section('airline_tabfill', '') if s:show_tab_type - call b.add_section('airline_tabtype', ' buffers ') + call b.add_section_spaced('airline_tabtype', s:buffers_label) endif let s:current_bufnr = cur @@ -198,3 +195,11 @@ function s:map_keys() noremap AirlineSelectNextTab :call jump_to_tab(v:count1) endif endfunction + +function airline#extensions#tabline#buffers#switchbuf(minwid, clicks, button, modifiers) abort + " Run the following code only on a single left mouse button click without modifiers pressed + " works only in recent NeoVim with has('tablineat') + if a:clicks == 1 && a:button is# 'l' && a:modifiers !~# '[^ ]' + sil execute 'buffer' a:minwid + endif +endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim index 9490ab02..5b0ff59b 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim @@ -7,6 +7,12 @@ let s:current_bufnr = -1 let s:current_tabnr = -1 let s:current_tabline = '' +let s:buffers_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers') +let s:tabs_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs') +let s:switch_buffers_and_tabs = get(g:, 'airline#extensions#tabline#switch_buffers_and_tabs', 0) +let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) +let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) + function! airline#extensions#tabline#ctrlspace#off() augroup airline_tabline_ctrlspace autocmd! @@ -25,6 +31,62 @@ function! airline#extensions#tabline#ctrlspace#invalidate() let s:current_tabnr = -1 endfunction +function! airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, pos) + if a:pos == 0 + let pos_extension = '' + else + let pos_extension = '_right' + endif + + let s:buffer_list = ctrlspace#api#BufferList(a:cur_tab) + for buffer in s:buffer_list + if a:cur_buf == buffer.index + if buffer.modified + let group = 'airline_tabmod'.pos_extension + else + let group = 'airline_tabsel'.pos_extension + endif + else + if buffer.modified + let group = 'airline_tabmod_unsel'.pos_extension + elseif buffer.visible + let group = 'airline_tab'.pos_extension + else + let group = 'airline_tabhid'.pos_extension + endif + endif + + let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)' + call a:builder.add_section_spaced(group, buf_name) + endfor +endfunction + +function! airline#extensions#tabline#ctrlspace#add_tab_section(builder, pos) + if a:pos == 0 + let pos_extension = '' + else + let pos_extension = '_right' + endif + + for tab in s:tab_list + if tab.current + if tab.modified + let group = 'airline_tabmod'.pos_extension + else + let group = 'airline_tabsel'.pos_extension + endif + else + if tab.modified + let group = 'airline_tabmod_unsel'.pos_extension + else + let group = 'airline_tabhid'.pos_extension + endif + endif + + call a:builder.add_section_spaced(group, tab.title.ctrlspace#api#TabBuffersNumber(tab.index)) + endfor +endfunction + function! airline#extensions#tabline#ctrlspace#get() let cur_buf = bufnr('%') @@ -39,59 +101,44 @@ function! airline#extensions#tabline#ctrlspace#get() return s:current_tabline endif - let b = airline#extensions#tabline#new_builder() + let builder = airline#extensions#tabline#new_builder() - call b.add_section_spaced('airline_tabtype', 'buffers') - - let s:buffer_list = ctrlspace#api#BufferList(cur_tab) - for buffer in s:buffer_list - if cur_buf == buffer.index - if buffer.modified - let group = 'airline_tabmod' - else - let group = 'airline_tabsel' - endif - else - if buffer.modified - let group = 'airline_tabmod_unsel' - elseif buffer.visible - let group = 'airline_tab' - else - let group = 'airline_tabhid' - endif - endif - - let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)' - call b.add_section_spaced(group, buf_name) - endfor - - - call b.add_section('airline_tabfill', '') - call b.split() - call b.add_section('airline_tabfill', '') - - for tab in s:tab_list - if tab.current - if tab.modified - let group = 'airline_tabmod_right' - else - let group = 'airline_tabsel_right' - endif + " Add left tabline content + if s:show_buffers == 0 + call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 0) + elseif s:show_tabs == 0 + call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 0) + else + if s:switch_buffers_and_tabs == 0 + call builder.add_section_spaced('airline_tabtype', s:buffers_label) + call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 0) else - if tab.modified - let group = 'airline_tabmod_unsel_right' - else - let group = 'airline_tabhid_right' - endif + call builder.add_section_spaced('airline_tabtype', s:tabs_label) + call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 0) endif + endif - call b.add_section_spaced(group, tab.title.ctrlspace#api#TabBuffersNumber(tab.index)) - endfor + call builder.add_section('airline_tabfill', '') + call builder.split() + call builder.add_section('airline_tabfill', '') - call b.add_section_spaced('airline_tabtype', 'tabs') + " Add right tabline content + if s:show_buffers == 0 + call builder.add_section_spaced('airline_tabtype', s:tabs_label) + elseif s:show_tabs == 0 + call builder.add_section_spaced('airline_tabtype', s:buffers_label) + else + if s:switch_buffers_and_tabs == 0 + call airline#extensions#tabline#ctrlspace#add_tab_section(builder, 1) + call builder.add_section_spaced('airline_tabtype', s:tabs_label) + else + call airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, 1) + call builder.add_section_spaced('airline_tabtype', s:buffers_label) + endif + endif let s:current_bufnr = cur_buf let s:current_tabnr = cur_tab - let s:current_tabline = b.build() + let s:current_tabline = builder.build() return s:current_tabline endfunction diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim index 02e4dc9d..0dba19bc 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/tabs.vim @@ -1,11 +1,14 @@ " MIT License. Copyright (c) 2013-2016 Bailey Ling. " vim: et ts=2 sts=2 sw=2 -let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1) -let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0) let s:show_close_button = get(g:, 'airline#extensions#tabline#show_close_button', 1) let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1) +let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1) +let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0) let s:close_symbol = get(g:, 'airline#extensions#tabline#close_symbol', 'X') +let s:tabs_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs') +let s:show_splits = get(g:, 'airline#extensions#tabline#show_splits', 1) +let s:spc = g:airline_symbols.space let s:current_bufnr = -1 let s:current_tabnr = -1 @@ -39,19 +42,20 @@ function! airline#extensions#tabline#tabs#get() endif let b = airline#extensions#tabline#new_builder() + for i in range(1, tabpagenr('$')) if i == curtab - let group = 'airline_tabsel' + let group = 'airline_tabsel_right' if g:airline_detect_modified for bi in tabpagebuflist(i) if getbufvar(bi, '&modified') - let group = 'airline_tabmod' + let group = 'airline_tabmod_right' endif endfor endif - let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 + let s:current_modified = (group == 'airline_tabmod_right') ? 1 : 0 else - let group = 'airline_tab' + let group = 'airline_tab_right' endif let val = '%(' if s:show_tab_nr @@ -66,14 +70,22 @@ function! airline#extensions#tabline#tabs#get() call b.add_section(group, val.'%'.i.'T %{airline#extensions#tabline#title('.i.')} %)') endfor - call b.add_raw('%T') call b.add_section('airline_tabfill', '') call b.split() + call b.add_section('airline_tabfill', '') + if s:show_close_button - call b.add_section('airline_tab', ' %999X'.s:close_symbol.' ') + call b.add_section('airline_tab_right', ' %999X'.s:close_symbol.' ') endif - if s:show_tab_type - call b.add_section('airline_tabtype', ' tabs ') + + if s:show_splits == 1 + let buffers = tabpagebuflist(curtab) + for nr in buffers + let group = airline#extensions#tabline#group_of_bufnr(buffers, nr) + call b.add_section_spaced(group, '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)') + endfor + elseif s:show_tab_type == 1 + call b.add_section_spaced('airline_tabtype', s:tabs_label) endif let s:current_bufnr = curbuf diff --git a/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim b/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim index fbd241ca..546bfc77 100644 --- a/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim +++ b/sources_non_forked/vim-airline/autoload/airline/extensions/whitespace.vim @@ -35,8 +35,14 @@ function! s:check_mixed_indent() endfunction function! s:check_mixed_indent_file() + if stridx(&ft, 'c') == 0 || stridx(&ft, 'cpp') == 0 || stridx(&ft, 'javascript') == 0 + " for C/CPP only allow /** */ comment style with one space before the '*' + let head_spc = '\v(^ +\*@!)' + else + let head_spc = '\v(^ +)' + endif let indent_tabs = search('\v(^\t+)', 'nw') - let indent_spc = search('\v(^ +)', 'nw') + let indent_spc = search(head_spc, 'nw') if indent_tabs > 0 && indent_spc > 0 return printf("%d:%d", indent_tabs, indent_spc) else diff --git a/sources_non_forked/vim-airline/autoload/airline/init.vim b/sources_non_forked/vim-airline/autoload/airline/init.vim index 2d6a6c22..2a30f31a 100644 --- a/sources_non_forked/vim-airline/autoload/airline/init.vim +++ b/sources_non_forked/vim-airline/autoload/airline/init.vim @@ -47,13 +47,12 @@ function! airline#init#bootstrap() call s:check_defined('g:airline_theme_map', {}) call extend(g:airline_theme_map, { - \ 'Tomorrow.*': 'tomorrow', - \ 'base16.*': 'base16', - \ 'bubblegum': 'bubblegum', + \ '\CTomorrow': 'tomorrow', + \ 'base16': 'base16', \ 'mo[l|n]okai': 'molokai', - \ 'wombat.*': 'wombat', - \ '.*zenburn.*': 'zenburn', - \ '.*solarized.*': 'solarized', + \ 'wombat': 'wombat', + \ 'zenburn': 'zenburn', + \ 'solarized': 'solarized', \ }, 'keep') call s:check_defined('g:airline_symbols', {}) diff --git a/sources_non_forked/vim-airline/autoload/airline/parts.vim b/sources_non_forked/vim-airline/autoload/airline/parts.vim index cd0a5c67..eab96242 100644 --- a/sources_non_forked/vim-airline/autoload/airline/parts.vim +++ b/sources_non_forked/vim-airline/autoload/airline/parts.vim @@ -70,7 +70,11 @@ function! airline#parts#iminsert() endfunction function! airline#parts#readonly() - return &readonly ? g:airline_symbols.readonly : '' + if &readonly && &modifiable && !filereadable(bufname('%')) + return '[noperm]' + else + return &readonly ? g:airline_symbols.readonly : '' + endif endfunction function! airline#parts#filetype() diff --git a/sources_non_forked/vim-airline/doc/airline.txt b/sources_non_forked/vim-airline/doc/airline.txt index 79e10122..82956bbb 100644 --- a/sources_non_forked/vim-airline/doc/airline.txt +++ b/sources_non_forked/vim-airline/doc/airline.txt @@ -489,13 +489,22 @@ eclim let g:airline#extensions#whitespace#trailing_regexp = '\s$' < ------------------------------------- *airline-tabline* -* enable/disable enhanced tabline. > +Note: If you're using the ctrlspace tabline only the option marked with (c) +are supported! + +* enable/disable enhanced tabline. (c) let g:airline#extensions#tabline#enabled = 0 -< -* enable/disable displaying buffers with a single tab. > + +* enable/disable displaying open splits per tab (only when tabs are opened). > + let g:airline#extensions#tabline#show_splits = 1 + * +* switch position of buffers and tabs on splited tabline (c) + let g:airline#extensions#tabline#switch_buffers_and_tabs = 0 + +* enable/disable displaying buffers with a single tab. (c) let g:airline#extensions#tabline#show_buffers = 1 < -* enable/disable displaying tabs, regardless of number. > +* enable/disable displaying tabs, regardless of number. (c) let g:airline#extensions#tabline#show_tabs = 1 < * configure filename match rules to exclude from the tabline. > @@ -515,11 +524,13 @@ eclim * enable/disable displaying tab type (far right) > let g:airline#extensions#tabline#show_tab_type = 1 -* enable/disable displaying index of the buffer. +* rename label for buffers (default: 'buffers') (c) + let g:airline#extensions#tabline#buffers_label = 'b' - Note: If you're using ctrlspace the tabline shows your tabs on the right and - buffer on the left. Also none of the tabline switches is currently - supported! +* rename label for tabs (default: 'tabs') (c) + let g:airline#extensions#tabline#tabs_label = 't' + +* enable/disable displaying index of the buffer. When enabled, numbers will be displayed in the tabline and mappings will be exposed to allow you to select a buffer directly. Up to 9 mappings will be @@ -545,7 +556,7 @@ eclim Use |gt| for switching tabs. In tabmode, those mappings will switch to the specified tab. -* defines the name of a formatter for how buffer names are displayed. > +* defines the name of a formatter for how buffer names are displayed. (c) let g:airline#extensions#tabline#formatter = 'default' " here is how you can define a 'foo' formatter: @@ -565,7 +576,7 @@ eclim * configure whether buffer numbers should be shown. > let g:airline#extensions#tabline#buffer_nr_show = 0 < - * configure how buffer numbers should be formatted with |printf|. > + * configure how buffer numbers should be formatted with |printf()|. > let g:airline#extensions#tabline#buffer_nr_format = '%s: ' < * configure the formatting of filenames (see |filename-modifiers|). > @@ -614,9 +625,13 @@ eclim let airline#extensions#tabline#ignore_bufadd_pat = \ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree' -< Note: Enabling this extension will modify 'showtabline' and 'guioptions'. +* enable Refresh of tabline buffers on |BufAdd| autocommands + (set this to one, if you note 'AirlineTablineRefresh', however, this + won't update airline on |:badd| commands) > + let airline#extensions#tabline#disable_refresh = 0 + ------------------------------------- *airline-tmuxline* tmuxline @@ -707,6 +722,15 @@ Shows number of errors and warnings in the current file detected by YCM. * set warning count prefix > let g:airline#extensions#ycm#warning_symbol = 'W:' < +------------------------------------- *airline-po* +po.vim + +* enable/disable po integration > + let g:airline#extensions#po#enabled = 1 +< +* truncate width names to a fixed length > + let g:airline#extensions#po#displayed_limit = 0 +< ============================================================================== ADVANCED CUSTOMIZATION *airline-advanced-customization* diff --git a/sources_non_forked/vim-commentary/plugin/commentary.vim b/sources_non_forked/vim-commentary/plugin/commentary.vim index 3aedd8d5..0bef7cc9 100644 --- a/sources_non_forked/vim-commentary/plugin/commentary.vim +++ b/sources_non_forked/vim-commentary/plugin/commentary.vim @@ -28,11 +28,11 @@ function! s:go(type,...) abort let [lnum1, lnum2] = [line("'["), line("']")] endif - let [l, r] = s:surroundings() + let [l_, r_] = s:surroundings() let uncomment = 2 for lnum in range(lnum1,lnum2) let line = matchstr(getline(lnum),'\S.*\s\@ 10 + return getfsize(path.'HEAD') > 10 && ( + \ isdirectory(path.'objects') && isdirectory(path.'refs') || + \ getftype(path.'commondir') ==# 'file') endfunction function! fugitive#extract_git_dir(path) abort @@ -265,9 +267,17 @@ function! s:configured_tree(git_dir) abort let config = readfile(config_file,'',10) call filter(config,'v:val =~# "^\\s*worktree *="') if len(config) == 1 - let s:worktree_for_dir[a:git_dir] = matchstr(config[0], '= *\zs.*') - let s:dir_for_worktree[s:worktree_for_dir[a:git_dir]] = a:git_dir + let worktree = matchstr(config[0], '= *\zs.*') endif + elseif filereadable(a:git_dir . '/gitdir') + let worktree = fnamemodify(readfile(a:git_dir . '/gitdir')[0], ':h') + if worktree ==# '.' + unlet! worktree + endif + endif + if exists('worktree') + let s:worktree_for_dir[a:git_dir] = worktree + let s:dir_for_worktree[s:worktree_for_dir[a:git_dir]] = a:git_dir endif endif if s:worktree_for_dir[a:git_dir] =~# '^\.' @@ -299,6 +309,10 @@ function! s:repo_bare() dict abort endfunction function! s:repo_translate(spec) dict abort + let refs = self.dir('refs/') + if filereadable(self.dir('commondir')) + let refs = simplify(self.dir(get(readfile(self.dir('commondir'), 1), 0, ''))) . '/refs/' + endif if a:spec ==# '.' || a:spec ==# '/.' return self.bare() ? self.dir() : self.tree() elseif a:spec =~# '^/\=\.git$' && self.bare() @@ -322,18 +336,18 @@ function! s:repo_translate(spec) dict abort return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1] elseif a:spec ==# '@' return self.dir('HEAD') - elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(self.dir(a:spec)) - return self.dir(a:spec) - elseif filereadable(self.dir('refs/'.a:spec)) - return self.dir('refs/'.a:spec) - elseif filereadable(self.dir('refs/tags/'.a:spec)) - return self.dir('refs/tags/'.a:spec) - elseif filereadable(self.dir('refs/heads/'.a:spec)) - return self.dir('refs/heads/'.a:spec) - elseif filereadable(self.dir('refs/remotes/'.a:spec)) - return self.dir('refs/remotes/'.a:spec) - elseif filereadable(self.dir('refs/remotes/'.a:spec.'/HEAD')) - return self.dir('refs/remotes/'.a:spec,'/HEAD') + elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(refs . '../' . a:spec) + return simplify(refs . '../' . a:spec) + elseif filereadable(refs.a:spec) + return refs.a:spec + elseif filereadable(refs.'tags/'.a:spec) + return refs.'tags/'.a:spec + elseif filereadable(refs.'heads/'.a:spec) + return refs.'heads/'.a:spec + elseif filereadable(refs.'remotes/'.a:spec) + return refs.'remotes/'.a:spec + elseif filereadable(refs.'remotes/'.a:spec.'/HEAD') + return refs.'remotes/'.a:spec,'/HEAD' else try let ref = self.rev_parse(matchstr(a:spec,'[^:]*')) @@ -849,7 +863,9 @@ function! s:StageUndo() abort let hash = repo.git_chomp('hash-object', '-w', filename) if !empty(hash) if section ==# 'untracked' - call delete(s:repo().tree(filename)) + call repo.git_chomp_in_tree('clean', '--', filename) + elseif section ==# 'unmerged' + call repo.git_chomp_in_tree('rm', '--', filename) elseif section ==# 'unstaged' call repo.git_chomp_in_tree('checkout', '--', filename) else @@ -2675,7 +2691,7 @@ function! s:BufReadObject() abort if b:fugitive_display_format call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash)) else - call s:ReplaceCmd(s:repo().git_command('show','--no-color','--pretty=format:tree %T%nparent %P%nauthor %an <%ae> %ad%ncommitter %cn <%ce> %cd%nencoding %e%n%n%s%n%n%b',hash)) + call s:ReplaceCmd(s:repo().git_command('show','--no-color','--pretty=format:tree%x20%T%nparent%x20%P%nauthor%x20%an%x20<%ae>%x20%ad%ncommitter%x20%cn%x20<%ce>%x20%cd%nencoding%x20%e%n%n%s%n%n%b',hash)) keepjumps call search('^parent ') if getline('.') ==# 'parent ' silent keepjumps delete_ diff --git a/sources_non_forked/vim-go/.github/CONTRIBUTING.md b/sources_non_forked/vim-go/.github/CONTRIBUTING.md new file mode 100644 index 00000000..7266ccea --- /dev/null +++ b/sources_non_forked/vim-go/.github/CONTRIBUTING.md @@ -0,0 +1,9 @@ +Thanks for improving vim-go! Before you dive in please read the following: + +1. Please read our + [FAQ](https://github.com/fatih/vim-go/wiki/FAQ-Troubleshooting), it might + have answers for your problem +2. If you add a new feature please don't forget to update the documentation: + [doc/vim-go.txt](doc/vim-go.txt) +3. If it's a breaking change or exceed +100 lines please open an issue first + and describe the changes you want to make. diff --git a/sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md b/sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..7d48151d --- /dev/null +++ b/sources_non_forked/vim-go/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,30 @@ +### Expected behavior + +Write here what you're expecting ... + +### Actual behavior + +Write here what happens instead ... + +### Steps to reproduce: + +Please create a reproducible case of your problem. Re produce it +with a minimal `vimrc` with all plugins disabled and only `vim-go` +enabled: + +1. +2. +3. + +### Configuration + +#### `vimrc` you used to reproduce: + +#### vim version: + +#### vim-go version: + +#### go version: + + + diff --git a/sources_non_forked/vim-go/autoload/go/alternate.vim b/sources_non_forked/vim-go/autoload/go/alternate.vim index 83951cf0..1de6a699 100644 --- a/sources_non_forked/vim-go/autoload/go/alternate.vim +++ b/sources_non_forked/vim-go/autoload/go/alternate.vim @@ -5,26 +5,26 @@ endif " Test alternates between the implementation of code and the test code. function! go#alternate#Switch(bang, cmd) - let l:file = go#alternate#Filename(fnameescape(expand("%"))) - if !filereadable(l:file) && !bufexists(l:file) && !a:bang - redraws! | echon "vim-go: " | echohl ErrorMsg | echon "couldn't find ".file | echohl None + let file = expand('%') + if empty(file) + call go#util#EchoError("no buffer name") + return + elseif file =~# '^\f\+_test\.go$' + let l:root = split(file, '_test.go$')[0] + let l:alt_file = l:root . ".go" + elseif file =~# '^\f\+\.go$' + let l:root = split(file, ".go$")[0] + let l:alt_file = l:root . '_test.go' + else + call go#util#EchoError("not a go file") + return + endif + if !filereadable(alt_file) && !bufexists(alt_file) && !a:bang + call go#util#EchoError("couldn't find ".alt_file) return elseif empty(a:cmd) - execute ":" . g:go_alternate_mode . " " . file + execute ":" . g:go_alternate_mode . " " . alt_file else - execute ":" . a:cmd . " " . file + execute ":" . a:cmd . " " . alt_file endif endfunction - -" Filename returns the name of the test file or implementation file -" depending on the arguments -function! go#alternate#Filename(path) - if empty(matchstr(a:path, "_test")) - let l:root = split(a:path, ".go$")[0] - let l:file = l:root . "_test.go" - else - let l:root = split(a:path, "_test.go$")[0] - let l:file = l:root . ".go" - endif - return l:file -endfunction diff --git a/sources_non_forked/vim-go/autoload/go/cmd.vim b/sources_non_forked/vim-go/autoload/go/cmd.vim index d99bc01e..c90a0537 100644 --- a/sources_non_forked/vim-go/autoload/go/cmd.vim +++ b/sources_non_forked/vim-go/autoload/go/cmd.vim @@ -74,8 +74,12 @@ endfunction " Run runs the current file (and their dependencies if any) in a new terminal. -function! go#cmd#RunTerm(bang, mode) - let cmd = "go run ". go#util#Shelljoin(go#tool#Files()) +function! go#cmd#RunTerm(bang, mode, files) + if empty(a:files) + let cmd = "go run ". go#util#Shelljoin(go#tool#Files()) + else + let cmd = "go run ". go#util#Shelljoin(map(copy(a:files), "expand(v:val)"), 1) + endif call go#term#newmode(a:bang, cmd, a:mode) endfunction @@ -85,7 +89,7 @@ endfunction " calling long running apps will block the whole UI. function! go#cmd#Run(bang, ...) if has('nvim') - call go#cmd#RunTerm(a:bang, '') + call go#cmd#RunTerm(a:bang, '', a:000) return endif @@ -117,9 +121,9 @@ function! go#cmd#Run(bang, ...) if g:go_dispatch_enabled && exists(':Make') == 2 silent! exe 'Make' elseif l:listtype == "locationlist" - silent! exe 'lmake!' + exe 'lmake!' else - silent! exe 'make!' + exe 'make!' endif let items = go#list#Get(l:listtype) diff --git a/sources_non_forked/vim-go/autoload/go/complete.vim b/sources_non_forked/vim-go/autoload/go/complete.vim index d295257a..097422cd 100644 --- a/sources_non_forked/vim-go/autoload/go/complete.vim +++ b/sources_non_forked/vim-go/autoload/go/complete.vim @@ -149,13 +149,16 @@ function! go#complete#GetInfoFromOffset(offset) endfunction function! go#complete#GetInfo() - let offset = go#complete#gocodeCursor() + let offset = go#complete#gocodeCursor()+1 return go#complete#GetInfoFromOffset(offset) endfunction -function! go#complete#Info() +function! go#complete#Info(auto) + " auto is true if we were called by g:go_auto_type_info's autocmd let result = go#complete#GetInfo() if !empty(result) + " if auto, and the result is a PANIC by gocode, hide it + if a:auto && result ==# 'PANIC PANIC PANIC' | return | endif echo "vim-go: " | echohl Function | echon result | echohl None endif endfunction diff --git a/sources_non_forked/vim-go/autoload/go/def.vim b/sources_non_forked/vim-go/autoload/go/def.vim index ae9bf11e..b9bda3d5 100644 --- a/sources_non_forked/vim-go/autoload/go/def.vim +++ b/sources_non_forked/vim-go/autoload/go/def.vim @@ -116,7 +116,7 @@ function! s:godefJump(out, mode) " jump to file now sil ll 1 - normal zz + normal! zz let &switchbuf = old_switchbuf end diff --git a/sources_non_forked/vim-go/autoload/go/doc.vim b/sources_non_forked/vim-go/autoload/go/doc.vim index 3291026e..ab107251 100644 --- a/sources_non_forked/vim-go/autoload/go/doc.vim +++ b/sources_non_forked/vim-go/autoload/go/doc.vim @@ -113,28 +113,28 @@ function! go#doc#Open(newmode, mode, ...) call s:GodocView(a:newmode, a:mode, content) if exported_name == '' - silent! normal gg + silent! normal! gg return -1 endif " jump to the specified name if search('^func ' . exported_name . '(') - silent! normal zt + silent! normal! zt return -1 endif if search('^type ' . exported_name) - silent! normal zt + silent! normal! zt return -1 endif if search('^\%(const\|var\|type\|\s\+\) ' . pkg . '\s\+=\s') - silent! normal zt + silent! normal! zt return -1 endif " nothing found, jump to top - silent! normal gg + silent! normal! gg endfunction function! s:GodocView(newposition, position, content) diff --git a/sources_non_forked/vim-go/autoload/go/fmt.vim b/sources_non_forked/vim-go/autoload/go/fmt.vim index 6d474b31..56c6ee71 100644 --- a/sources_non_forked/vim-go/autoload/go/fmt.vim +++ b/sources_non_forked/vim-go/autoload/go/fmt.vim @@ -52,13 +52,25 @@ endif " this and have VimL experience, please look at the function for " improvements, patches are welcome :) function! go#fmt#Format(withGoimport) - " save cursor position, folds and many other things - let l:curw = {} - try - mkview! - catch + if g:go_fmt_experimental == 1 + " Using winsaveview to save/restore cursor state has the problem of + " closing folds on save: + " https://github.com/fatih/vim-go/issues/502 + " One fix is to use mkview instead. Unfortunately, this sometimes causes + " other bad side effects: + " https://github.com/fatih/vim-go/issues/728 + " and still closes all folds if foldlevel>0: + " https://github.com/fatih/vim-go/issues/732 + let l:curw = {} + try + mkview! + catch + let l:curw=winsaveview() + endtry + else + " Save cursor position and many other things. let l:curw=winsaveview() - endtry + endif " Write current unsaved buffer to a temp file let l:tmpname = tempname() @@ -101,6 +113,24 @@ function! go#fmt#Format(withGoimport) let command = command . g:go_fmt_options endif + if fmt_command == "goimports" + if !exists('b:goimports_vendor_compatible') + let out = system("goimports --help") + if out !~ "-srcdir" + echohl WarningMsg + echomsg "vim-go: goimports does not support srcdir." + echomsg " update with: :GoUpdateBinaries" + echohl None + else + let b:goimports_vendor_compatible = 1 + endif + endif + + if exists('b:goimports_vendor_compatible') && b:goimports_vendor_compatible + let command = command . '-srcdir ' . fnameescape(expand("%:p:h")) + endif + endif + " execute our command... let out = system(command . " " . l:tmpname) @@ -163,10 +193,15 @@ function! go#fmt#Format(withGoimport) call delete(tmpundofile) endif - " restore our cursor/windows positions, folds, etc.. - if empty(l:curw) - silent! loadview + if g:go_fmt_experimental == 1 + " Restore our cursor/windows positions, folds, etc. + if empty(l:curw) + silent! loadview + else + call winrestview(l:curw) + endif else + " Restore our cursor/windows positions. call winrestview(l:curw) endif endfunction diff --git a/sources_non_forked/vim-go/autoload/go/import.vim b/sources_non_forked/vim-go/autoload/go/import.vim index 766a4af1..26600994 100644 --- a/sources_non_forked/vim-go/autoload/go/import.vim +++ b/sources_non_forked/vim-go/autoload/go/import.vim @@ -165,7 +165,7 @@ function! go#import#SwitchImport(enabled, localname, path, bang) call append(appendline, appendstr) execute appendline + 1 if indentstr - execute 'normal >>' + execute 'normal! >>' endif let linesdelta += 1 endif diff --git a/sources_non_forked/vim-go/autoload/go/oracle.vim b/sources_non_forked/vim-go/autoload/go/oracle.vim index 9b2ec1cd..6ba0b958 100644 --- a/sources_non_forked/vim-go/autoload/go/oracle.vim +++ b/sources_non_forked/vim-go/autoload/go/oracle.vim @@ -114,6 +114,10 @@ func! s:RunOracle(mode, selected, needs_package) range abort \ shellescape(fname), pos, tags, a:mode) endif + " strip trailing slashes for each path in scoped. bug: + " https://github.com/golang/go/issues/14584 + let scopes = go#util#StripTrailingSlash(scopes) + " now append each scope to the end as Oracle's scope parameter. It can be " a packages or go files, dependent on the User's own choice. For more " info check Oracle's User Manual section about scopes: diff --git a/sources_non_forked/vim-go/autoload/go/util.vim b/sources_non_forked/vim-go/autoload/go/util.vim index 3808044f..9aae995a 100644 --- a/sources_non_forked/vim-go/autoload/go/util.vim +++ b/sources_non_forked/vim-go/autoload/go/util.vim @@ -48,6 +48,12 @@ function! go#util#StripPathSep(path) return a:path endfunction +" StripTrailingSlash strips the trailing slash from the given path list. +" example: ['/foo/bar/'] -> ['/foo/bar'] +function! go#util#StripTrailingSlash(paths) + return map(copy(a:paths), 'go#util#StripPathSep(v:val)') +endfunction + " Shelljoin returns a shell-safe string representation of arglist. The " {special} argument of shellescape() may optionally be passed. function! go#util#Shelljoin(arglist, ...) diff --git a/sources_non_forked/vim-go/ftplugin/go/commands.vim b/sources_non_forked/vim-go/ftplugin/go/commands.vim index 4c6ddba2..51081ad9 100644 --- a/sources_non_forked/vim-go/ftplugin/go/commands.vim +++ b/sources_non_forked/vim-go/ftplugin/go/commands.vim @@ -16,12 +16,12 @@ command! -nargs=? GoOracleTags call go#oracle#Tags() " tool command! -nargs=0 GoFiles echo go#tool#Files() command! -nargs=0 GoDeps echo go#tool#Deps() -command! -nargs=* GoInfo call go#complete#Info() +command! -nargs=* GoInfo call go#complete#Info(0) " cmd command! -nargs=* -bang GoBuild call go#cmd#Build(0,) command! -nargs=* -bang GoGenerate call go#cmd#Generate(0,) -command! -nargs=* -bang GoRun call go#cmd#Run(0,) +command! -nargs=* -bang -complete=file GoRun call go#cmd#Run(0,) command! -nargs=* -bang GoInstall call go#cmd#Install(0, ) command! -nargs=* -bang GoTest call go#cmd#Test(0, 0, ) command! -nargs=* -bang GoTestFunc call go#cmd#TestFunc(0, ) diff --git a/sources_non_forked/vim-go/ftplugin/go/mappings.vim b/sources_non_forked/vim-go/ftplugin/go/mappings.vim index 4ce38d02..2529a845 100644 --- a/sources_non_forked/vim-go/ftplugin/go/mappings.vim +++ b/sources_non_forked/vim-go/ftplugin/go/mappings.vim @@ -12,9 +12,9 @@ endif nnoremap (go-run) :call go#cmd#Run(!g:go_jump_to_error) if has("nvim") - nnoremap (go-run-vertical) :call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit') - nnoremap (go-run-split) :call go#cmd#RunTerm(!g:go_jump_to_error, 'split') - nnoremap (go-run-tab) :call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe') + nnoremap (go-run-vertical) :call go#cmd#RunTerm(!g:go_jump_to_error, 'vsplit', []) + nnoremap (go-run-split) :call go#cmd#RunTerm(!g:go_jump_to_error, 'split', []) + nnoremap (go-run-tab) :call go#cmd#RunTerm(!g:go_jump_to_error, 'tabe', []) endif nnoremap (go-build) :call go#cmd#Build(!g:go_jump_to_error) @@ -27,7 +27,7 @@ nnoremap (go-coverage) :call go#cmd#Coverage(!g:go_jump_to_e nnoremap (go-files) :call go#tool#Files() nnoremap (go-deps) :call go#tool#Deps() -nnoremap (go-info) :call go#complete#Info() +nnoremap (go-info) :call go#complete#Info(0) nnoremap (go-import) :call go#import#SwitchImport(1, '', expand(''), '') nnoremap (go-implements) :call go#oracle#Implements(-1) diff --git a/sources_non_forked/vim-go/plugin/go.vim b/sources_non_forked/vim-go/plugin/go.vim index 63b42ceb..dc6f8007 100644 --- a/sources_non_forked/vim-go/plugin/go.vim +++ b/sources_non_forked/vim-go/plugin/go.vim @@ -143,7 +143,7 @@ augroup vim-go " GoInfo automatic update if get(g:, "go_auto_type_info", 0) - autocmd CursorHold *.go nested call go#complete#Info() + autocmd CursorHold *.go nested call go#complete#Info(1) endif " Echo the identifier information when completion is done. Useful to see diff --git a/sources_non_forked/vim-go/syntax/go.vim b/sources_non_forked/vim-go/syntax/go.vim index 56722a19..f575b55a 100644 --- a/sources_non_forked/vim-go/syntax/go.vim +++ b/sources_non_forked/vim-go/syntax/go.vim @@ -179,30 +179,31 @@ syn region goBlock start="{" end="}" transparent fold syn region goParen start='(' end=')' transparent " Integers -syn match goDecimalInt "\<\d\+\([Ee]\d\+\)\?\>" -syn match goHexadecimalInt "\<0x\x\+\>" -syn match goOctalInt "\<0\o\+\>" -syn match goOctalError "\<0\o*[89]\d*\>" +syn match goDecimalInt "\<-\=\d\+\%([Ee][-+]\=\d\+\)\=\>" +syn match goHexadecimalInt "\<-\=0[xX]\x\+\>" +syn match goOctalInt "\<-\=0\o\+\>" +syn match goOctalError "\<-\=0\o*[89]\d*\>" hi def link goDecimalInt Integer hi def link goHexadecimalInt Integer hi def link goOctalInt Integer +hi def link goOctalError Error hi def link Integer Number " Floating point -syn match goFloat "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>" -syn match goFloat "\<\.\d\+\([Ee][-+]\d\+\)\?\>" -syn match goFloat "\<\d\+[Ee][-+]\d\+\>" +syn match goFloat "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=\>" +syn match goFloat "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=\>" hi def link goFloat Float " Imaginary literals -syn match goImaginary "\<\d\+i\>" -syn match goImaginary "\<\d\+\.\d*\([Ee][-+]\d\+\)\?i\>" -syn match goImaginary "\<\.\d\+\([Ee][-+]\d\+\)\?i\>" -syn match goImaginary "\<\d\+[Ee][-+]\d\+i\>" +syn match goImaginary "\<-\=\d\+i\>" +syn match goImaginary "\<-\=\d\+[Ee][-+]\=\d\+i\>" +syn match goImaginaryFloat "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=i\>" +syn match goImaginaryFloat "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=i\>" hi def link goImaginary Number +hi def link goImaginaryFloat Float " Spaces after "[]" if g:go_highlight_array_whitespace_error != 0 diff --git a/sources_non_forked/vim-markdown/ftplugin/markdown.vim b/sources_non_forked/vim-markdown/ftplugin/markdown.vim index e8627ccc..f406db58 100644 --- a/sources_non_forked/vim-markdown/ftplugin/markdown.vim +++ b/sources_non_forked/vim-markdown/ftplugin/markdown.vim @@ -9,7 +9,7 @@ endif runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim -setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s +setlocal comments=fb:*,fb:-,fb:+,n:> commentstring= setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]: diff --git a/sources_non_forked/vim-snipmate/autoload/snipMate.vim b/sources_non_forked/vim-snipmate/autoload/snipMate.vim index cb8f3564..cc98df50 100644 --- a/sources_non_forked/vim-snipmate/autoload/snipMate.vim +++ b/sources_non_forked/vim-snipmate/autoload/snipMate.vim @@ -283,7 +283,9 @@ fun! s:AddScopeAliases(list) abort return keys(did) endf -au SourceCmd *.snippet,*.snippets call s:source_snippet() +augroup SnipMateSource + au SourceCmd *.snippet,*.snippets call s:source_snippet() +augroup END function! s:info_from_filename(file) abort let parts = split(fnamemodify(a:file, ':r'), '/') diff --git a/sources_non_forked/vim-snipmate/plugin/snipMate.vim b/sources_non_forked/vim-snipmate/plugin/snipMate.vim index 246b542c..837f0dcc 100644 --- a/sources_non_forked/vim-snipmate/plugin/snipMate.vim +++ b/sources_non_forked/vim-snipmate/plugin/snipMate.vim @@ -28,12 +28,14 @@ if (!exists('g:snipMateSources')) let g:snipMateSources['default'] = funcref#Function('snipMate#DefaultPool') endif -au BufRead,BufNewFile *.snippet,*.snippets setlocal filetype=snippets -au FileType snippets if expand(':e') =~# 'snippet$' +augroup SnipMateDetect + au BufRead,BufNewFile *.snippet,*.snippets setlocal filetype=snippets + au FileType snippets if expand(':e') =~# 'snippet$' \ | setlocal syntax=snippet - \ | else - \ | setlocal syntax=snippets - \ | endif + \ | else + \ | setlocal syntax=snippets + \ | endif +augroup END inoremap snipMateNextOrTrigger =snipMate#TriggerSnippet() snoremap snipMateNextOrTrigger a=snipMate#TriggerSnippet() diff --git a/sources_non_forked/vim-snippets/README.md b/sources_non_forked/vim-snippets/README.md index 9d6b08f9..d4e83c33 100644 --- a/sources_non_forked/vim-snippets/README.md +++ b/sources_non_forked/vim-snippets/README.md @@ -74,7 +74,9 @@ Additional snippets can be added to the current buffer with the "snippets" ending. For example, to add the JavaScript Jasmine snippets, run: `:UltiSnipsAddFiletypes javascript-jasmine`. To have this snippet loaded everytime a JavaScript file is opened or created you can add the command to your -`.vim/ftplugin/javascript.vim` file. + -`.vim/ftplugin/javascript.vim` file. Another way is to add + `autocmd FileType js UltiSnipsAddFiletypes javascript-jasmine` in your `.vimrc`. + For more see the UltiSnips docs (`:help UltiSnips`). diff --git a/sources_non_forked/vim-snippets/UltiSnips/django.snippets b/sources_non_forked/vim-snippets/UltiSnips/django.snippets index eabd80f7..0ba6c9d5 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/django.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/django.snippets @@ -185,7 +185,7 @@ ${1:FIELDNAME} = models.DateTimeField($2) endsnippet snippet mdecimal "DecimalField" b -${1:FIELDNAME} = models.DateTimeField($2) +${1:FIELDNAME} = models.DecimalField(max_digits=${2:10}, decimal_places=${3:2}) endsnippet snippet memail "EmailField" b diff --git a/sources_non_forked/vim-snippets/UltiSnips/go.snippets b/sources_non_forked/vim-snippets/UltiSnips/go.snippets index 780ee29b..b6891ff0 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/go.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/go.snippets @@ -45,25 +45,6 @@ type ${1:Interface} interface { } endsnippet -# statements -snippet for "For loop" b -for ${1:condition}${1/(.+)/ /}{ - ${0:${VISUAL}} -} -endsnippet - -snippet fori "Integer for loop" b -for ${1:i} := 0; $1 < ${2:N}; $1++ { - ${0:${VISUAL}} -} -endsnippet - -snippet forr "For range loop" b -for ${2:name} := range ${1:collection} { - ${0:${VISUAL}} -} -endsnippet - snippet if "If statement" b if ${1:condition}${1/(.+)/ /}{ ${0:${VISUAL}} @@ -76,22 +57,6 @@ case${0} } endsnippet -snippet select "Select statement" b -select { -case${0} -} -endsnippet - -snippet case "Case clause" b -case ${1:condition}: - ${0:${VISUAL}} -endsnippet - -snippet default "Default clause" b -default: - ${0:${VISUAL}} -endsnippet - # functions snippet /^main/ "Main function" r func main() { diff --git a/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets b/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets index 9480e812..4537baea 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/javascript.snippets @@ -58,6 +58,12 @@ ${1:var }${2:function_name} = function $2(${3}) { }; endsnippet +snippet af "Anonymous Function" i +function($1) { + ${VISUAL}$0 +} +endsnippet + snippet iife "Immediately-Invoked Function Expression (iife)" (function(${1:window}) { ${VISUAL}$0 diff --git a/sources_non_forked/vim-snippets/UltiSnips/rust.snippets b/sources_non_forked/vim-snippets/UltiSnips/rust.snippets index b377fa97..40e76055 100644 --- a/sources_non_forked/vim-snippets/UltiSnips/rust.snippets +++ b/sources_non_forked/vim-snippets/UltiSnips/rust.snippets @@ -51,11 +51,11 @@ format!("${1}"${2/..*/, /}${2}); endsnippet snippet macro "macro_rules!" b -macro_rules! ${1:name} ( +macro_rules! ${1:name} { (${2:matcher}) => ( ${3} ) -) +} endsnippet snippet mod "A module" b @@ -88,7 +88,7 @@ pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { impl $1 { pub fn new(${2}) -> $1 { - $1 { ${3} }; + $1 { ${3} } } } endsnippet diff --git a/sources_non_forked/vim-snippets/snippets/elixir.snippets b/sources_non_forked/vim-snippets/snippets/elixir.snippets index bd621760..17cebbbb 100644 --- a/sources_non_forked/vim-snippets/snippets/elixir.snippets +++ b/sources_non_forked/vim-snippets/snippets/elixir.snippets @@ -87,10 +87,6 @@ snippet doc """ snippet fn fn ${1:args} -> ${0} end -snippet fun - function do - ${0} - end snippet mdoc @moduledoc """ ${0} @@ -114,6 +110,12 @@ snippet test end snippet testa test "${1:test_name}", %{${2:arg: arg}} do + ${0} + end +snippet exunit + defmodule ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} do + use ExUnit.Case + ${0} end snippet try try .. rescue .. end diff --git a/sources_non_forked/vim-snippets/snippets/go.snippets b/sources_non_forked/vim-snippets/snippets/go.snippets index af76e724..b3acac1a 100644 --- a/sources_non_forked/vim-snippets/snippets/go.snippets +++ b/sources_non_forked/vim-snippets/snippets/go.snippets @@ -53,26 +53,6 @@ snippet dfr ${0} } }() -# gpl -snippet gpl - /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - * - * Copyright (C) ${1:Author}, `strftime("%Y")` - */ - - ${0} # int snippet i int @@ -94,6 +74,12 @@ snippet if if ${1:/* condition */} { ${2} } +snippet ife + if ${1:/* condition */} { + ${2} + } else { + ${0} + } # else snippet snippet el else { @@ -128,18 +114,21 @@ snippet ie ${3} } ${0} -# for loop -snippet fo +# for int loop +snippet for + for ${1}{ + ${0} + } +# for int loop +snippet fori for ${2:i} := 0; $2 < ${1:count}; $2${3:++} { - ${4} + ${0} } - ${0} # for range loop -snippet fr - for ${1:k}, ${2:v} := range ${3} { - ${4} +snippet forr + for ${1:e} := range ${2:collection} { + ${0} } - ${0} # function simple snippet fun func ${1:funcName}(${2}) ${3:error} { @@ -196,8 +185,6 @@ snippet sl select { case ${1:v1} := <-${2:chan1} ${3} - case ${4:v2} := <-${5:chan2} - ${6} default: ${0} } @@ -228,7 +215,7 @@ snippet t # goroutine named function snippet g go ${1:funcName}(${0}) -# goroutine anonymous function +# goroutine anonymous function snippet ga go func(${1} ${2:type}) { ${3:/* code */} diff --git a/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets b/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets index 1da78d09..2b5aefb4 100644 --- a/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets +++ b/sources_non_forked/vim-snippets/snippets/javascript/javascript.node.snippets @@ -5,7 +5,7 @@ snippet ex module.exports = ${1}; # require snippet re - var ${1} = require('${2:module_name}'); + ${1:var} ${2} = require('${3:module_name}'); # EventEmitter snippet on on('${1:event_name}', function(${2:stream}) { diff --git a/sources_non_forked/vim-snippets/snippets/ruby.snippets b/sources_non_forked/vim-snippets/snippets/ruby.snippets index e9509a29..a6340e46 100644 --- a/sources_non_forked/vim-snippets/snippets/ruby.snippets +++ b/sources_non_forked/vim-snippets/snippets/ruby.snippets @@ -723,3 +723,7 @@ snippet iiexp it { is_expected.to ${0} } snippet iiexpn it { is_expected.not_to ${0} } +snippet agg + aggregate_failures '${1:message}' do + ${0} + end diff --git a/sources_non_forked/vim-snippets/snippets/rust.snippets b/sources_non_forked/vim-snippets/snippets/rust.snippets index 9bf896f6..20532f73 100644 --- a/sources_non_forked/vim-snippets/snippets/rust.snippets +++ b/sources_non_forked/vim-snippets/snippets/rust.snippets @@ -25,7 +25,7 @@ snippet bench "Bench function" b } snippet new "Constructor function" pub fn new(${2}) -> ${1:Name} { - $1 { ${3} }; + $1 { ${3} } } snippet main "Main function" pub fn main() { @@ -143,7 +143,7 @@ snippet stn "Struct with new constructor" impl $1 { pub fn new(${2}) -> $1 { - $1 { ${3} }; + $1 { ${3} } } } snippet type "Type alias" From 849ba8a36bfa0c7050e2979af43c5023364b55cf Mon Sep 17 00:00:00 2001 From: amix Date: Sun, 20 Mar 2016 19:01:44 +0100 Subject: [PATCH 25/29] Updated vim plugins --- sources_non_forked/goyo.vim/autoload/goyo.vim | 14 +- .../syntastic/doc/syntastic.txt | 72 ++++--- .../syntastic/plugin/syntastic.vim | 6 + .../syntastic/plugin/syntastic/registry.vim | 9 +- .../vim-fugitive/doc/fugitive.txt | 4 +- sources_non_forked/vim-go/README.md | 8 + .../vim-go/autoload/ctrlp/decls.vim | 158 ++++++++++++++++ .../vim-go/autoload/go/complete.vim | 24 +-- sources_non_forked/vim-go/autoload/go/def.vim | 19 +- .../vim-go/autoload/go/oracle.vim | 15 +- .../vim-go/autoload/go/path.vim | 1 - .../vim-go/autoload/go/rename.vim | 11 +- .../vim-go/autoload/go/textobj.vim | 179 +++++++++++++++++- .../vim-go/autoload/go/util.vim | 16 ++ sources_non_forked/vim-go/doc/vim-go.txt | 42 +++- sources_non_forked/vim-go/ftplugin/go.vim | 21 +- .../vim-go/ftplugin/go/commands.vim | 6 + sources_non_forked/vim-go/plugin/go.vim | 1 + sources_non_forked/vim-go/syntax/go.vim | 13 +- .../vim-snippets/UltiSnips/c.snippets | 2 +- 20 files changed, 509 insertions(+), 112 deletions(-) create mode 100644 sources_non_forked/vim-go/autoload/ctrlp/decls.vim diff --git a/sources_non_forked/goyo.vim/autoload/goyo.vim b/sources_non_forked/goyo.vim/autoload/goyo.vim index edacd10b..4b15bc89 100644 --- a/sources_non_forked/goyo.vim/autoload/goyo.vim +++ b/sources_non_forked/goyo.vim/autoload/goyo.vim @@ -34,7 +34,7 @@ endfunction function! s:set_color(group, attr, color) let gui = a:color =~ '^#' - execute printf("hi %s %s%s=%s", a:group, gui ? 'gui' : 'cterm', a:attr, a:color) + execute printf('hi %s %s%s=%s', a:group, gui ? 'gui' : 'cterm', a:attr, a:color) endfunction function! s:blank(repel) @@ -207,13 +207,13 @@ function! s:goyo_on(dim) endif " vim-airline - let t:goyo_disabled_airline = exists("#airline") + let t:goyo_disabled_airline = exists('#airline') if t:goyo_disabled_airline AirlineToggle endif " vim-powerline - let t:goyo_disabled_powerline = exists("#PowerlineMain") + let t:goyo_disabled_powerline = exists('#PowerlineMain') if t:goyo_disabled_powerline augroup PowerlineMain autocmd! @@ -222,7 +222,7 @@ function! s:goyo_on(dim) endif " lightline.vim - let t:goyo_disabled_lightline = exists('#LightLine') + let t:goyo_disabled_lightline = exists('#lightline') if t:goyo_disabled_lightline silent! call lightline#disable() endif @@ -330,7 +330,7 @@ function! s:goyo_off() let &winheight = wh for [k, v] in items(goyo_revert) - execute printf("let &%s = %s", k, string(v)) + execute printf('let &%s = %s', k, string(v)) endfor execute 'colo '. get(g:, 'colors_name', 'default') @@ -344,7 +344,7 @@ function! s:goyo_off() endif endif - if goyo_disabled_airline && !exists("#airline") + if goyo_disabled_airline && !exists('#airline') AirlineToggle " For some reason, Airline requires two refreshes to avoid display " artifacts @@ -352,7 +352,7 @@ function! s:goyo_off() silent! AirlineRefresh endif - if goyo_disabled_powerline && !exists("#PowerlineMain") + if goyo_disabled_powerline && !exists('#PowerlineMain') doautocmd PowerlineStartup VimEnter silent! PowerlineReloadColorscheme endif diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt index d60e8ccf..70f2ca48 100644 --- a/sources_non_forked/syntastic/doc/syntastic.txt +++ b/sources_non_forked/syntastic/doc/syntastic.txt @@ -746,53 +746,81 @@ takes precedence over both 'b:syntastic___exec' and ------------------------------------------------------------------------------ 5.3 Configuring specific checkers *syntastic-config-makeprg* -Most checkers use the 'makeprgBuild()' function and provide many options by -default - in fact you can customise every part of the command that gets called. +Checkers are run by constructing a command line and passing it to a shell. +In most cases this command line is built using an internal function named +'makeprgBuild()', which provides a number of options that allows you to +customise every part of the command that gets called. *'syntastic___

-

- -

-

- -

-

- -

-
- --------------------- - -2. Wrap with Abbreviation - - Write as below. - --------------------- - test1 - test2 - test3 - --------------------- - Then do visual select(line wize) and type ','. - If you request 'Tag:', then type 'ul>li*'. - --------------------- -
    -
  • test1
  • -
  • test2
  • -
  • test3
  • -
- --------------------- - - If you type tag as 'blockquote', then you'll see as following. - --------------------- -
- test1 - test2 - test3 -
- --------------------- - -3. Balance Tag Inward - - type 'd' in insert mode. - -4. Balance Tag Outward - - type 'D' in insert mode. - -5. Go to Next Edit Point - - type 'n' in insert mode. - -6. Go to Previous Edit Point - - type 'N' in insert mode. - -7. Update Size - - Move cursor to img tag. - --------------------- - - --------------------- - Type 'i' on img tag - --------------------- - - --------------------- - -8. Merge Lines - - select the lines included '
  • ' - --------------------- -
      -
    • -
    • -
    • -
    - --------------------- - and type 'm' - --------------------- -
      -
    • -
    - --------------------- - -9. Remove Tag - - Move cursor in block - --------------------- - - --------------------- - Type 'k' in insert mode. - --------------------- -
    - -
    - --------------------- - - And type 'k' in there again. - --------------------- - - --------------------- - -10. Split/Join Tag - - Move cursor in block - --------------------- -
    - cursor is here -
    - --------------------- - Type 'j' in insert mode. - --------------------- -
    - --------------------- - - And type 'j' in there again. - --------------------- -
    -
    - --------------------- - -11. Toggle Comment - - Move cursor to block - --------------------- -
    - hello world -
    - --------------------- - Type '/' in insert mode. - --------------------- - - --------------------- - Type '/' in there again. - --------------------- -
    - hello world -
    - --------------------- - -12. Make anchor from URL - - Move cursor to URL - --------------------- - http://www.google.com/ - --------------------- - Type 'a' - --------------------- - Google - --------------------- - -13. Make quoted text from URL - - Move cursor to URL - --------------------- - http://github.com/ - --------------------- - Type 'A' - --------------------- -
    - Secure source code hosting and collaborative development - GitHub
    -

    How does it work? Get up and running in seconds by forking a project, pushing an existing repository...

    - http://github.com/ -
    - --------------------- - -14. Installing zencoding.vim for language you using. - - # cd ~/.vim - # unzip zencoding-vim.zip - - or if you install pathogen.vim: - - # cd ~/.vim/bundle # or make directory - # unzip /path/to/zencoding-vim.zip - - if you get sources from repository: - - # cd ~/.vim/bundle # or make directory - # git clone http://github.com/mattn/zencoding-vim.git - -15. Enable zencoding.vim for language you using. - - You can customize the behavior of language you using. - - --------------------- - # cat >> ~/.vimrc - let g:user_zen_settings = { - \ 'php' : { - \ 'extends' : 'html', - \ 'filters' : 'c', - \ }, - \ 'xml' : { - \ 'extends' : 'html', - \ }, - \ 'haml' : { - \ 'extends' : 'html', - \ }, - \} - --------------------- diff --git a/sources_forked/zencoding/autoload/zencoding.vim b/sources_forked/zencoding/autoload/zencoding.vim deleted file mode 100755 index a6961439..00000000 --- a/sources_forked/zencoding/autoload/zencoding.vim +++ /dev/null @@ -1,1486 +0,0 @@ -"============================================================================= -" zencoding.vim -" Author: Yasuhiro Matsumoto -" Last Change: 09-Apr-2013. - -let s:save_cpo = &cpo -set cpo&vim - -function! zencoding#getExpandos(type, key) - let expandos = zencoding#getResource(a:type, 'expandos', {}) - if has_key(expandos, a:key) - return expandos[a:key] - endif - return a:key -endfunction - -function! zencoding#splitFilterArg(filters) - for f in a:filters - if f =~ '^/' - return f[1:] - endif - endfor - return '' -endfunction - -function! zencoding#useFilter(filters, filter) - for f in a:filters - if a:filter == '/' && f =~ '^/' - return 1 - elseif f == a:filter - return 1 - endif - endfor - return 0 -endfunction - -function! zencoding#getIndentation(...) - if a:0 > 0 - let type = a:1 - else - let type = zencoding#getFileType() - endif - if has_key(s:zen_settings, type) && has_key(s:zen_settings[type], 'indentation') - let indent = s:zen_settings[type].indentation - elseif has_key(s:zen_settings, 'indentation') - let indent = s:zen_settings.indentation - else - let indent = (&l:expandtab || &l:tabstop != &l:shiftwidth) ? repeat(' ', &l:shiftwidth) : "\t" - endif - return indent -endfunction - -function! zencoding#getBaseType(type) - if !has_key(s:zen_settings, a:type) - return '' - endif - if !has_key(s:zen_settings[a:type], 'extends') - return a:type - endif - let extends = s:zen_settings[a:type].extends - if type(extends) == 1 - let tmp = split(extends, '\s*,\s*') - let ext = tmp[0] - else - let ext = extends[0] - endif - if a:type != ext - return zencoding#getBaseType(ext) - endif - return '' -endfunction - -function! zencoding#isExtends(type, extend) - if a:type == a:extend - return 1 - endif - if !has_key(s:zen_settings, a:type) - return 0 - endif - if !has_key(s:zen_settings[a:type], 'extends') - return 0 - endif - let extends = s:zen_settings[a:type].extends - if type(extends) == 1 - let tmp = split(extends, '\s*,\s*') - unlet! extends - let extends = tmp - endif - for ext in extends - if a:extend == ext - return 1 - endif - endfor - return 0 -endfunction - -function! zencoding#parseIntoTree(abbr, type) - let abbr = a:abbr - let type = a:type - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#parseIntoTree(abbr, type) -endfunction - -function! s:mergeConfig(lhs, rhs) - if type(a:lhs) == 3 && type(a:rhs) == 3 - let a:lhs += a:rhs - if len(a:lhs) - call remove(a:lhs, 0, len(a:lhs)-1) - endif - for rhi in a:rhs - call add(a:lhs, a:rhs[rhi]) - endfor - elseif type(a:lhs) == 4 && type(a:rhs) == 4 - for key in keys(a:rhs) - if type(a:rhs[key]) == 3 - if !has_key(a:lhs, key) - let a:lhs[key] = [] - endif - let a:lhs[key] += a:rhs[key] - elseif type(a:rhs[key]) == 4 - if has_key(a:lhs, key) - call s:mergeConfig(a:lhs[key], a:rhs[key]) - else - let a:lhs[key] = a:rhs[key] - endif - else - let a:lhs[key] = a:rhs[key] - endif - endfor - endif -endfunction - -function! zencoding#toString(...) - let current = a:1 - if a:0 > 1 - let type = a:2 - else - let type = &ft - endif - if len(type) == 0 | let type = 'html' | endif - if a:0 > 2 - let inline = a:3 - else - let inline = 0 - endif - if a:0 > 3 - if type(a:4) == 1 - let filters = split(a:4, '\s*,\s*') - else - let filters = a:4 - endif - else - let filters = ['html'] - endif - if a:0 > 4 - let group_itemno = a:5 - else - let group_itemno = 0 - endif - - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - let indent = zencoding#getIndentation(type) - let itemno = 0 - let str = '' - let use_pipe_for_cursor = zencoding#getResource(type, 'use_pipe_for_cursor', 1) - let rtype = zencoding#lang#exists(type) ? type : 'html' - while itemno < current.multiplier - if len(current.name) - if group_itemno != 0 - let inner = zencoding#lang#{rtype}#toString(s:zen_settings, current, type, inline, filters, group_itemno, indent) - else - let inner = zencoding#lang#{rtype}#toString(s:zen_settings, current, type, inline, filters, itemno, indent) - endif - if current.multiplier > 1 - let inner = substitute(inner, '\$#', '$line'.(itemno+1).'$', 'g') - endif - let str .= inner - else - let snippet = current.snippet - if len(current.snippet) == 0 - let snippets = zencoding#getResource(type, 'snippets', {}) - if !empty(snippets) && has_key(snippets, 'zensnippet') - let snippet = snippets['zensnippet'] - endif - endif - if len(snippet) > 0 - let tmp = snippet - if use_pipe_for_cursor - let tmp = substitute(tmp, '|', '${cursor}', 'g') - endif - let tmp = substitute(tmp, '\${zenname}', current.name, 'g') - let snippet_node = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 0, 'parent': {}, 'value': '{'.tmp.'}', 'pos': 0, 'important': current.important } - let str = zencoding#lang#{rtype}#toString(s:zen_settings, snippet_node, type, inline, filters, group_itemno, indent) - else - if len(current.name) - let str .= current.name - endif - if len(current.value) - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\{$#}' - endif - if zencoding#useFilter(filters, '/') - let spl = zencoding#splitFilterArg(filters) - let fline = getline(a:firstline) - let query = substitute(query, '>\{0,1}{\$#}\s*$', '{\\$column\\$}*' . len(split(fline, spl)), '') - endif - let items = zencoding#parseIntoTree(query, type).child - for item in items - let expand .= zencoding#toString(item, type, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - let line = getline(a:firstline) - let part = substitute(line, '^\s*', '', '') - for n in range(a:firstline, a:lastline) - let lline = getline(n) - let lpart = substitute(lline, '^\s\+', '', '') - if zencoding#useFilter(filters, 't') - let lpart = substitute(lpart, '^[0-9.-]\+\s\+', '', '') - let lpart = substitute(lpart, '\s\+$', '', '') - endif - if zencoding#useFilter(filters, '/') - for column in split(lpart, spl) - let expand = substitute(expand, '\$column\$', '\=column', '') - endfor - else - let expand = substitute(expand, '\$line'.(n-a:firstline+1).'\$', '\=lpart', 'g') - endif - endfor - let expand = substitute(expand, '\$line\d*\$', '', 'g') - let expand = substitute(expand, '\$column\$', '', 'g') - let content = join(getline(a:firstline, a:lastline), "\n") - if stridx(expand, '$#') < len(expand)-2 - let expand = substitute(expand, '^\(.*\)\$#\s*$', '\1', '') - endif - let expand = substitute(expand, '\$#', '\=content', 'g') - else - let str = '' - if visualmode() ==# 'V' - let line = getline(a:firstline) - let part = substitute(line, '^\s*', '', '') - for n in range(a:firstline, a:lastline) - if len(leader) > 0 - let str .= getline(n) . "\n" - else - let lpart = substitute(getline(n), '^\s*', '', '') - let str .= lpart . "\n" - endif - endfor - let leader .= (str =~ "\n" ? ">{\n" : "{") . str . "}" - let items = zencoding#parseIntoTree(leader, type).child - else - let save_regcont = @" - let save_regtype = getregtype('"') - silent! normal! gvygv - let str = @" - call setreg('"', save_regcont, save_regtype) - let items = zencoding#parseIntoTree(leader . "{".str."}", type).child - endif - for item in items - let expand .= zencoding#toString(item, type, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - endif - elseif a:mode == 4 - let line = getline('.') - let spaces = matchstr(line, '^\s*') - if line !~ '^\s*$' - put =spaces.a:abbr - else - call setline('.', spaces.a:abbr) - endif - normal! $ - call zencoding#expandAbbr(0, "") - return - else - let line = getline('.') - if col('.') < len(line) - let line = matchstr(line, '^\(.*\%'.col('.').'c.\)') - endif - if a:mode == 1 - let part = matchstr(line, '\([a-zA-Z0-9:_\-\@|]\+\)$') - else - let part = matchstr(line, '\(\S.*\)$') - let ftype = zencoding#lang#exists(type) ? type : 'html' - let part = zencoding#lang#{ftype}#findTokens(part) - endif - let rest = getline('.')[len(line):] - let str = part - let mx = '|\(\%(html\|haml\|slim\|e\|c\|fc\|xsl\|t\|\/[^ ]\+\)\s*,\{0,1}\s*\)*$' - if str =~ mx - let filters = split(matchstr(str, mx)[1:], '\s*,\s*') - let str = substitute(str, mx, '', '') - endif - let items = zencoding#parseIntoTree(str, rtype).child - for item in items - let expand .= zencoding#toString(item, rtype, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - let expand = substitute(expand, '\$line\([0-9]\+\)\$', '\=submatch(1)', 'g') - endif - if len(expand) - if expand !~ '\${cursor}' - if a:mode == 2 | - let expand = '${cursor}' . expand - else - let expand .= '${cursor}' - endif - endif - let expand = substitute(expand, '${lang}', s:zen_settings.lang, 'g') - let expand = substitute(expand, '${charset}', s:zen_settings.charset, 'g') - if has_key(s:zen_settings, 'timezone') && len(s:zen_settings.timezone) - let expand = substitute(expand, '${datetime}', strftime("%Y-%m-%dT%H:%M:%S") . s:zen_settings.timezone, 'g') - else - " TODO: on windows, %z/%Z is 'Tokyo(Standard)' - let expand = substitute(expand, '${datetime}', strftime("%Y-%m-%dT%H:%M:%S %z"), 'g') - endif - if a:mode == 2 && visualmode() ==# 'v' - if a:firstline == a:lastline - let expand = substitute(expand, '\n\s*', '', 'g') - else - let expand = substitute(expand, '\n$', '', 'g') - endif - let expand = substitute(expand, '\${cursor}', '$cursor$', '') - let expand = substitute(expand, '\${cursor}', '', 'g') - silent! normal! gv - let col = col("'<") - silent! normal! c - let line = getline('.') - let lhs = matchstr(line, '.*\%<'.col.'c.') - let rhs = matchstr(line, '\%>'.(col-1).'c.*') - let expand = lhs.expand.rhs - let lines = split(expand, '\n') - call setline(line('.'), lines[0]) - if len(lines) > 1 - call append(line('.'), lines[1:]) - endif - else - let expand = substitute(expand, '\${cursor}', '$cursor$', '') - let expand = substitute(expand, '\${cursor}', '', 'g') - if line[:-len(part)-1] =~ '^\s\+$' - let indent = line[:-len(part)-1] - else - let indent = '' - endif - let expand = substitute(expand, '\n\s*$', '', 'g') - let expand = line[:-len(part)-1] . substitute(expand, "\n", "\n" . indent, 'g') . rest - let lines = split(expand, '\n') - if a:mode == 2 - silent! exe "normal! gvc" - endif - call setline(line('.'), lines[0]) - if len(lines) > 1 - call append(line('.'), lines[1:]) - endif - endif - endif - if search('\$cursor\$', 'e') - let oldselection = &selection - let &selection = 'inclusive' - silent! foldopen - silent! exe "normal! v7h\"_s" - let &selection = oldselection - endif - if g:zencoding_debug > 1 - call getchar() - endif -endfunction - -function! zencoding#moveNextPrev(flag) - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#moveNextPrev(a:flag) -endfunction - -function! zencoding#imageSize() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#imageSize() -endfunction - -function! zencoding#encodeImage() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#encodeImage() -endfunction - -function! zencoding#toggleComment() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#toggleComment() -endfunction - -function! zencoding#balanceTag(flag) range - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#balanceTag(a:flag) -endfunction - -function! zencoding#splitJoinTag() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#splitJoinTag() -endfunction - -function! zencoding#mergeLines() range - let lines = join(map(getline(a:firstline, a:lastline), 'matchstr(v:val, "^\\s*\\zs.*\\ze\\s*$")'), '') - let indent = substitute(getline('.'), '^\(\s*\).*', '\1', '') - silent! exe "normal! gvc" - call setline('.', indent . lines) -endfunction - -function! zencoding#removeTag() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#removeTag() -endfunction - -function! zencoding#anchorizeURL(flag) - let mx = 'https\=:\/\/[-!#$%&*+,./:;=?@0-9a-zA-Z_~]\+' - let pos1 = searchpos(mx, 'bcnW') - let url = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let block = [pos1, [pos1[0], pos1[1] + len(url) - 1]] - if !zencoding#util#cursorInRegion(block) - return - endif - - let mx = '.*]*>\s*\zs\([^<]\+\)\ze\s*<\/title[^>]*>.*' - let content = zencoding#util#getContentFromURL(url) - let content = substitute(content, '\r', '', 'g') - let content = substitute(content, '[ \n]\+', ' ', 'g') - let content = substitute(content, '', '', 'g') - let title = matchstr(content, mx) - - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - if a:flag == 0 - let a = zencoding#lang#html#parseTag('') - let a.attr.href = url - let a.value = '{' . title . '}' - let expand = zencoding#toString(a, rtype, 0, []) - let expand = substitute(expand, '\${cursor}', '', 'g') - else - let body = zencoding#util#getTextFromHTML(content) - let body = '{' . substitute(body, '^\(.\{0,100}\).*', '\1', '') . '...}' - - let blockquote = zencoding#lang#html#parseTag('
    ') - let a = zencoding#lang#html#parseTag('') - let a.attr.href = url - let a.value = '{' . title . '}' - call add(blockquote.child, a) - call add(blockquote.child, zencoding#lang#html#parseTag('
    ')) - let p = zencoding#lang#html#parseTag('

    ') - let p.value = body - call add(blockquote.child, p) - let cite = zencoding#lang#html#parseTag('') - let cite.value = '{' . url . '}' - call add(blockquote.child, cite) - let expand = zencoding#toString(blockquote, rtype, 0, []) - let expand = substitute(expand, '\${cursor}', '', 'g') - endif - let indent = substitute(getline('.'), '^\(\s*\).*', '\1', '') - let expand = substitute(expand, "\n", "\n" . indent, 'g') - call zencoding#util#setContent(block, expand) -endfunction - -function! zencoding#codePretty() range - let type = input('FileType: ', &ft, 'filetype') - if len(type) == 0 - return - endif - let block = zencoding#util#getVisualBlock() - let content = zencoding#util#getContent(block) - silent! 1new - let &l:filetype = type - call setline(1, split(content, "\n")) - let old_lazyredraw = &lazyredraw - set lazyredraw - silent! TOhtml - let &lazyredraw = old_lazyredraw - let content = join(getline(1, '$'), "\n") - silent! bw! - silent! bw! - let content = matchstr(content, ']*>[\s\n]*\zs.*\ze') - call zencoding#util#setContent(block, content) -endfunction - -function! zencoding#ExpandWord(abbr, type, orig) - let mx = '|\(\%(html\|haml\|slim\|e\|c\|fc\|xsl\|t\|\/[^ ]\+\)\s*,\{0,1}\s*\)*$' - let str = a:abbr - let type = a:type - - if len(type) == 0 | let type = 'html' | endif - if str =~ mx - let filters = split(matchstr(str, mx)[1:], '\s*,\s*') - let str = substitute(str, mx, '', '') - elseif has_key(s:zen_settings[a:type], 'filters') - let filters = split(s:zen_settings[a:type].filters, '\s*,\s*') - else - let filters = ['html'] - endif - let items = zencoding#parseIntoTree(str, a:type).child - let expand = '' - for item in items - let expand .= zencoding#toString(item, a:type, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - if a:orig == 0 - let expand = substitute(expand, '\${lang}', s:zen_settings.lang, 'g') - let expand = substitute(expand, '\${charset}', s:zen_settings.charset, 'g') - let expand = substitute(expand, '\${cursor}', '', 'g') - endif - return expand -endfunction - -function! zencoding#getSnippets(type) - let type = a:type - if len(type) == 0 || !has_key(s:zen_settings, type) - let type = 'html' - endif - return zencoding#getResource(type, 'snippets', {}) -endfunction - -function! zencoding#CompleteTag(findstart, base) - if a:findstart - let line = getline('.') - let start = col('.') - 1 - while start > 0 && line[start - 1] =~ '[a-zA-Z0-9:_\@\-]' - let start -= 1 - endwhile - return start - else - let type = zencoding#getFileType() - let res = [] - - let snippets = zencoding#getResource(type, 'snippets', {}) - for item in keys(snippets) - if stridx(item, a:base) != -1 - call add(res, substitute(item, '\${cursor}\||', '', 'g')) - endif - endfor - let aliases = zencoding#getResource(type, 'aliases', {}) - for item in values(aliases) - if stridx(item, a:base) != -1 - call add(res, substitute(item, '\${cursor}\||', '', 'g')) - endif - endfor - return res - endif -endfunction - -unlet! s:zen_settings -let s:zen_settings = { -\ 'lang': "en", -\ 'charset': "UTF-8", -\ 'css': { -\ 'snippets': { -\ '@i': '@import url(|);', -\ '@m': "@media print {\n\t|\n}", -\ '@f': "@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}", -\ '!': '!important', -\ 'pos': 'position:|;', -\ 'pos:s': 'position:static;', -\ 'pos:a': 'position:absolute;', -\ 'pos:r': 'position:relative;', -\ 'pos:f': 'position:fixed;', -\ 't': 'top:|;', -\ 't:a': 'top:auto;', -\ 'r': 'right:|;', -\ 'r:a': 'right:auto;', -\ 'b': 'bottom:|;', -\ 'b:a': 'bottom:auto;', -\ 'l': 'left:|;', -\ 'l:a': 'left:auto;', -\ 'z': 'z-index:|;', -\ 'z:a': 'z-index:auto;', -\ 'fl': 'float:|;', -\ 'fl:n': 'float:none;', -\ 'fl:l': 'float:left;', -\ 'fl:r': 'float:right;', -\ 'cl': 'clear:|;', -\ 'cl:n': 'clear:none;', -\ 'cl:l': 'clear:left;', -\ 'cl:r': 'clear:right;', -\ 'cl:b': 'clear:both;', -\ 'd': 'display:|;', -\ 'd:n': 'display:none;', -\ 'd:b': 'display:block;', -\ 'd:i': 'display:inline;', -\ 'd:ib': 'display:inline-block;', -\ 'd:li': 'display:list-item;', -\ 'd:ri': 'display:run-in;', -\ 'd:cp': 'display:compact;', -\ 'd:tb': 'display:table;', -\ 'd:itb': 'display:inline-table;', -\ 'd:tbcp': 'display:table-caption;', -\ 'd:tbcl': 'display:table-column;', -\ 'd:tbclg': 'display:table-column-group;', -\ 'd:tbhg': 'display:table-header-group;', -\ 'd:tbfg': 'display:table-footer-group;', -\ 'd:tbr': 'display:table-row;', -\ 'd:tbrg': 'display:table-row-group;', -\ 'd:tbc': 'display:table-cell;', -\ 'd:rb': 'display:ruby;', -\ 'd:rbb': 'display:ruby-base;', -\ 'd:rbbg': 'display:ruby-base-group;', -\ 'd:rbt': 'display:ruby-text;', -\ 'd:rbtg': 'display:ruby-text-group;', -\ 'v': 'visibility:|;', -\ 'v:v': 'visibility:visible;', -\ 'v:h': 'visibility:hidden;', -\ 'v:c': 'visibility:collapse;', -\ 'ov': 'overflow:|;', -\ 'ov:v': 'overflow:visible;', -\ 'ov:h': 'overflow:hidden;', -\ 'ov:s': 'overflow:scroll;', -\ 'ov:a': 'overflow:auto;', -\ 'ovx': 'overflow-x:|;', -\ 'ovx:v': 'overflow-x:visible;', -\ 'ovx:h': 'overflow-x:hidden;', -\ 'ovx:s': 'overflow-x:scroll;', -\ 'ovx:a': 'overflow-x:auto;', -\ 'ovy': 'overflow-y:|;', -\ 'ovy:v': 'overflow-y:visible;', -\ 'ovy:h': 'overflow-y:hidden;', -\ 'ovy:s': 'overflow-y:scroll;', -\ 'ovy:a': 'overflow-y:auto;', -\ 'ovs': 'overflow-style:|;', -\ 'ovs:a': 'overflow-style:auto;', -\ 'ovs:s': 'overflow-style:scrollbar;', -\ 'ovs:p': 'overflow-style:panner;', -\ 'ovs:m': 'overflow-style:move;', -\ 'ovs:mq': 'overflow-style:marquee;', -\ 'zoo': 'zoom:1;', -\ 'cp': 'clip:|;', -\ 'cp:a': 'clip:auto;', -\ 'cp:r': 'clip:rect(|);', -\ 'bxz': 'box-sizing:|;', -\ 'bxz:cb': 'box-sizing:content-box;', -\ 'bxz:bb': 'box-sizing:border-box;', -\ 'bxsh': 'box-shadow:|;', -\ 'bxsh:n': 'box-shadow:none;', -\ 'bxsh:w': '-webkit-box-shadow:0 0 0 #000;', -\ 'bxsh:m': '-moz-box-shadow:0 0 0 0 #000;', -\ 'm': 'margin:|;', -\ 'm:a': 'margin:auto;', -\ 'm:0': 'margin:0;', -\ 'm:2': 'margin:0 0;', -\ 'm:3': 'margin:0 0 0;', -\ 'm:4': 'margin:0 0 0 0;', -\ 'mt': 'margin-top:|;', -\ 'mt:a': 'margin-top:auto;', -\ 'mr': 'margin-right:|;', -\ 'mr:a': 'margin-right:auto;', -\ 'mb': 'margin-bottom:|;', -\ 'mb:a': 'margin-bottom:auto;', -\ 'ml': 'margin-left:|;', -\ 'ml:a': 'margin-left:auto;', -\ 'p': 'padding:|;', -\ 'p:0': 'padding:0;', -\ 'p:2': 'padding:0 0;', -\ 'p:3': 'padding:0 0 0;', -\ 'p:4': 'padding:0 0 0 0;', -\ 'pt': 'padding-top:|;', -\ 'pr': 'padding-right:|;', -\ 'pb': 'padding-bottom:|;', -\ 'pl': 'padding-left:|;', -\ 'w': 'width:|;', -\ 'w:a': 'width:auto;', -\ 'h': 'height:|;', -\ 'h:a': 'height:auto;', -\ 'maw': 'max-width:|;', -\ 'maw:n': 'max-width:none;', -\ 'mah': 'max-height:|;', -\ 'mah:n': 'max-height:none;', -\ 'miw': 'min-width:|;', -\ 'mih': 'min-height:|;', -\ 'o': 'outline:|;', -\ 'o:n': 'outline:none;', -\ 'oo': 'outline-offset:|;', -\ 'ow': 'outline-width:|;', -\ 'os': 'outline-style:|;', -\ 'oc': 'outline-color:#000;', -\ 'oc:i': 'outline-color:invert;', -\ 'bd': 'border:|;', -\ 'bd+': 'border:1px solid #000;', -\ 'bd:n': 'border:none;', -\ 'bdbk': 'border-break:|;', -\ 'bdbk:c': 'border-break:close;', -\ 'bdcl': 'border-collapse:|;', -\ 'bdcl:c': 'border-collapse:collapse;', -\ 'bdcl:s': 'border-collapse:separate;', -\ 'bdc': 'border-color:#000;', -\ 'bdi': 'border-image:url(|);', -\ 'bdi:n': 'border-image:none;', -\ 'bdi:w': '-webkit-border-image:url(|) 0 0 0 0 stretch stretch;', -\ 'bdi:m': '-moz-border-image:url(|) 0 0 0 0 stretch stretch;', -\ 'bdti': 'border-top-image:url(|);', -\ 'bdti:n': 'border-top-image:none;', -\ 'bdri': 'border-right-image:url(|);', -\ 'bdri:n': 'border-right-image:none;', -\ 'bdbi': 'border-bottom-image:url(|);', -\ 'bdbi:n': 'border-bottom-image:none;', -\ 'bdli': 'border-left-image:url(|);', -\ 'bdli:n': 'border-left-image:none;', -\ 'bdci': 'border-corner-image:url(|);', -\ 'bdci:n': 'border-corner-image:none;', -\ 'bdci:c': 'border-corner-image:continue;', -\ 'bdtli': 'border-top-left-image:url(|);', -\ 'bdtli:n': 'border-top-left-image:none;', -\ 'bdtli:c': 'border-top-left-image:continue;', -\ 'bdtri': 'border-top-right-image:url(|);', -\ 'bdtri:n': 'border-top-right-image:none;', -\ 'bdtri:c': 'border-top-right-image:continue;', -\ 'bdbri': 'border-bottom-right-image:url(|);', -\ 'bdbri:n': 'border-bottom-right-image:none;', -\ 'bdbri:c': 'border-bottom-right-image:continue;', -\ 'bdbli': 'border-bottom-left-image:url(|);', -\ 'bdbli:n': 'border-bottom-left-image:none;', -\ 'bdbli:c': 'border-bottom-left-image:continue;', -\ 'bdf': 'border-fit:|;', -\ 'bdf:c': 'border-fit:clip;', -\ 'bdf:r': 'border-fit:repeat;', -\ 'bdf:sc': 'border-fit:scale;', -\ 'bdf:st': 'border-fit:stretch;', -\ 'bdf:ow': 'border-fit:overwrite;', -\ 'bdf:of': 'border-fit:overflow;', -\ 'bdf:sp': 'border-fit:space;', -\ 'bdl': 'border-left:|;', -\ 'bdl:a': 'border-length:auto;', -\ 'bdsp': 'border-spacing:|;', -\ 'bds': 'border-style:|;', -\ 'bds:n': 'border-style:none;', -\ 'bds:h': 'border-style:hidden;', -\ 'bds:dt': 'border-style:dotted;', -\ 'bds:ds': 'border-style:dashed;', -\ 'bds:s': 'border-style:solid;', -\ 'bds:db': 'border-style:double;', -\ 'bds:dtds': 'border-style:dot-dash;', -\ 'bds:dtdtds': 'border-style:dot-dot-dash;', -\ 'bds:w': 'border-style:wave;', -\ 'bds:g': 'border-style:groove;', -\ 'bds:r': 'border-style:ridge;', -\ 'bds:i': 'border-style:inset;', -\ 'bds:o': 'border-style:outset;', -\ 'bdw': 'border-width:|;', -\ 'bdt': 'border-top:|;', -\ 'bdt+': 'border-top:1px solid #000;', -\ 'bdt:n': 'border-top:none;', -\ 'bdtw': 'border-top-width:|;', -\ 'bdts': 'border-top-style:|;', -\ 'bdts:n': 'border-top-style:none;', -\ 'bdtc': 'border-top-color:#000;', -\ 'bdr': 'border-right:|;', -\ 'bdr+': 'border-right:1px solid #000;', -\ 'bdr:n': 'border-right:none;', -\ 'bdrw': 'border-right-width:|;', -\ 'bdrt': 'border-right-style:|;', -\ 'bdrs:n': 'border-right-style:none;', -\ 'bdrc': 'border-right-color:#000;', -\ 'bdb': 'border-bottom:|;', -\ 'bdb+': 'border-bottom:1px solid #000;', -\ 'bdb:n': 'border-bottom:none;', -\ 'bdbw': 'border-bottom-width:|;', -\ 'bdbs': 'border-bottom-style:|;', -\ 'bdbs:n': 'border-bottom-style:none;', -\ 'bdbc': 'border-bottom-color:#000;', -\ 'bdln': 'border-length:|;', -\ 'bdl+': 'border-left:1px solid #000;', -\ 'bdl:n': 'border-left:none;', -\ 'bdlw': 'border-left-width:|;', -\ 'bdls': 'border-left-style:|;', -\ 'bdls:n': 'border-left-style:none;', -\ 'bdlc': 'border-left-color:#000;', -\ 'bdrs': 'border-radius:|;', -\ 'bdtrrz': 'border-top-right-radius:|;', -\ 'bdtlrz': 'border-top-left-radius:|;', -\ 'bdbrrz': 'border-bottom-right-radius:|;', -\ 'bdblrz': 'border-bottom-left-radius:|;', -\ 'bdrz:w': '-webkit-border-radius:|;', -\ 'bdrz:m': '-moz-border-radius:|;', -\ 'bg': 'background:|;', -\ 'bg+': 'background:#FFF url(|) 0 0 no-repeat;', -\ 'bg:n': 'background:none;', -\ 'bg:ie': 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=''|x.png'');', -\ 'bgc': 'background-color:#FFF;', -\ 'bgi': 'background-image:url(|);', -\ 'bgi:n': 'background-image:none;', -\ 'bgr': 'background-repeat:|;', -\ 'bgr:n': 'background-repeat:no-repeat;', -\ 'bgr:x': 'background-repeat:repeat-x;', -\ 'bgr:y': 'background-repeat:repeat-y;', -\ 'bga': 'background-attachment:|;', -\ 'bga:f': 'background-attachment:fixed;', -\ 'bga:s': 'background-attachment:scroll;', -\ 'bgp': 'background-position:0 0;', -\ 'bgpx': 'background-position-x:|;', -\ 'bgpy': 'background-position-y:|;', -\ 'bgbk': 'background-break:|;', -\ 'bgbk:bb': 'background-break:bounding-box;', -\ 'bgbk:eb': 'background-break:each-box;', -\ 'bgbk:c': 'background-break:continuous;', -\ 'bgcp': 'background-clip:|;', -\ 'bgcp:bb': 'background-clip:border-box;', -\ 'bgcp:pb': 'background-clip:padding-box;', -\ 'bgcp:cb': 'background-clip:content-box;', -\ 'bgcp:nc': 'background-clip:no-clip;', -\ 'bgo': 'background-origin:|;', -\ 'bgo:pb': 'background-origin:padding-box;', -\ 'bgo:bb': 'background-origin:border-box;', -\ 'bgo:cb': 'background-origin:content-box;', -\ 'bgz': 'background-size:|;', -\ 'bgz:a': 'background-size:auto;', -\ 'bgz:ct': 'background-size:contain;', -\ 'bgz:cv': 'background-size:cover;', -\ 'c': 'color:#000;', -\ 'tbl': 'table-layout:|;', -\ 'tbl:a': 'table-layout:auto;', -\ 'tbl:f': 'table-layout:fixed;', -\ 'cps': 'caption-side:|;', -\ 'cps:t': 'caption-side:top;', -\ 'cps:b': 'caption-side:bottom;', -\ 'ec': 'empty-cells:|;', -\ 'ec:s': 'empty-cells:show;', -\ 'ec:h': 'empty-cells:hide;', -\ 'lis': 'list-style:|;', -\ 'lis:n': 'list-style:none;', -\ 'lisp': 'list-style-position:|;', -\ 'lisp:i': 'list-style-position:inside;', -\ 'lisp:o': 'list-style-position:outside;', -\ 'list': 'list-style-type:|;', -\ 'list:n': 'list-style-type:none;', -\ 'list:d': 'list-style-type:disc;', -\ 'list:c': 'list-style-type:circle;', -\ 'list:s': 'list-style-type:square;', -\ 'list:dc': 'list-style-type:decimal;', -\ 'list:dclz': 'list-style-type:decimal-leading-zero;', -\ 'list:lr': 'list-style-type:lower-roman;', -\ 'list:ur': 'list-style-type:upper-roman;', -\ 'lisi': 'list-style-image:|;', -\ 'lisi:n': 'list-style-image:none;', -\ 'q': 'quotes:|;', -\ 'q:n': 'quotes:none;', -\ 'q:ru': 'quotes:''\00AB'' ''\00BB'' ''\201E'' ''\201C'';', -\ 'q:en': 'quotes:''\201C'' ''\201D'' ''\2018'' ''\2019'';', -\ 'ct': 'content:|;', -\ 'ct:n': 'content:normal;', -\ 'ct:oq': 'content:open-quote;', -\ 'ct:noq': 'content:no-open-quote;', -\ 'ct:cq': 'content:close-quote;', -\ 'ct:ncq': 'content:no-close-quote;', -\ 'ct:a': 'content:attr(|);', -\ 'ct:c': 'content:counter(|);', -\ 'ct:cs': 'content:counters(|);', -\ 'coi': 'counter-increment:|;', -\ 'cor': 'counter-reset:|;', -\ 'va': 'vertical-align:|;', -\ 'va:sup': 'vertical-align:super;', -\ 'va:t': 'vertical-align:top;', -\ 'va:tt': 'vertical-align:text-top;', -\ 'va:m': 'vertical-align:middle;', -\ 'va:bl': 'vertical-align:baseline;', -\ 'va:b': 'vertical-align:bottom;', -\ 'va:tb': 'vertical-align:text-bottom;', -\ 'va:sub': 'vertical-align:sub;', -\ 'ta': 'text-align:|;', -\ 'ta:l': 'text-align:left;', -\ 'ta:c': 'text-align:center;', -\ 'ta:r': 'text-align:right;', -\ 'tal': 'text-align-last:|;', -\ 'tal:a': 'text-align-last:auto;', -\ 'tal:l': 'text-align-last:left;', -\ 'tal:c': 'text-align-last:center;', -\ 'tal:r': 'text-align-last:right;', -\ 'td': 'text-decoration:|;', -\ 'td:n': 'text-decoration:none;', -\ 'td:u': 'text-decoration:underline;', -\ 'td:o': 'text-decoration:overline;', -\ 'td:l': 'text-decoration:line-through;', -\ 'te': 'text-emphasis:|;', -\ 'te:n': 'text-emphasis:none;', -\ 'te:ac': 'text-emphasis:accent;', -\ 'te:dt': 'text-emphasis:dot;', -\ 'te:c': 'text-emphasis:circle;', -\ 'te:ds': 'text-emphasis:disc;', -\ 'te:b': 'text-emphasis:before;', -\ 'te:a': 'text-emphasis:after;', -\ 'th': 'text-height:|;', -\ 'th:a': 'text-height:auto;', -\ 'th:f': 'text-height:font-size;', -\ 'th:t': 'text-height:text-size;', -\ 'th:m': 'text-height:max-size;', -\ 'ti': 'text-indent:|;', -\ 'ti:-': 'text-indent:-9999px;', -\ 'tj': 'text-justify:|;', -\ 'tj:a': 'text-justify:auto;', -\ 'tj:iw': 'text-justify:inter-word;', -\ 'tj:ii': 'text-justify:inter-ideograph;', -\ 'tj:ic': 'text-justify:inter-cluster;', -\ 'tj:d': 'text-justify:distribute;', -\ 'tj:k': 'text-justify:kashida;', -\ 'tj:t': 'text-justify:tibetan;', -\ 'to': 'text-outline:|;', -\ 'to+': 'text-outline:0 0 #000;', -\ 'to:n': 'text-outline:none;', -\ 'tr': 'text-replace:|;', -\ 'tr:n': 'text-replace:none;', -\ 'tt': 'text-transform:|;', -\ 'tt:n': 'text-transform:none;', -\ 'tt:c': 'text-transform:capitalize;', -\ 'tt:u': 'text-transform:uppercase;', -\ 'tt:l': 'text-transform:lowercase;', -\ 'tw': 'text-wrap:|;', -\ 'tw:n': 'text-wrap:normal;', -\ 'tw:no': 'text-wrap:none;', -\ 'tw:u': 'text-wrap:unrestricted;', -\ 'tw:s': 'text-wrap:suppress;', -\ 'tsh': 'text-shadow:|;', -\ 'tsh+': 'text-shadow:0 0 0 #000;', -\ 'tsh:n': 'text-shadow:none;', -\ 'lh': 'line-height:|;', -\ 'whs': 'white-space:|;', -\ 'whs:n': 'white-space:normal;', -\ 'whs:p': 'white-space:pre;', -\ 'whs:nw': 'white-space:nowrap;', -\ 'whs:pw': 'white-space:pre-wrap;', -\ 'whs:pl': 'white-space:pre-line;', -\ 'whsc': 'white-space-collapse:|;', -\ 'whsc:n': 'white-space-collapse:normal;', -\ 'whsc:k': 'white-space-collapse:keep-all;', -\ 'whsc:l': 'white-space-collapse:loose;', -\ 'whsc:bs': 'white-space-collapse:break-strict;', -\ 'whsc:ba': 'white-space-collapse:break-all;', -\ 'wob': 'word-break:|;', -\ 'wob:n': 'word-break:normal;', -\ 'wob:k': 'word-break:keep-all;', -\ 'wob:l': 'word-break:loose;', -\ 'wob:bs': 'word-break:break-strict;', -\ 'wob:ba': 'word-break:break-all;', -\ 'wos': 'word-spacing:|;', -\ 'wow': 'word-wrap:|;', -\ 'wow:nm': 'word-wrap:normal;', -\ 'wow:n': 'word-wrap:none;', -\ 'wow:u': 'word-wrap:unrestricted;', -\ 'wow:s': 'word-wrap:suppress;', -\ 'lts': 'letter-spacing:|;', -\ 'f': 'font:|;', -\ 'f+': 'font:1em Arial,sans-serif;', -\ 'fw': 'font-weight:|;', -\ 'fw:n': 'font-weight:normal;', -\ 'fw:b': 'font-weight:bold;', -\ 'fw:br': 'font-weight:bolder;', -\ 'fw:lr': 'font-weight:lighter;', -\ 'fs': 'font-style:|;', -\ 'fs:n': 'font-style:normal;', -\ 'fs:i': 'font-style:italic;', -\ 'fs:o': 'font-style:oblique;', -\ 'fv': 'font-variant:|;', -\ 'fv:n': 'font-variant:normal;', -\ 'fv:sc': 'font-variant:small-caps;', -\ 'fz': 'font-size:|;', -\ 'fza': 'font-size-adjust:|;', -\ 'fza:n': 'font-size-adjust:none;', -\ 'ff': 'font-family:|;', -\ 'ff:s': 'font-family:serif;', -\ 'ff:ss': 'font-family:sans-serif;', -\ 'ff:c': 'font-family:cursive;', -\ 'ff:f': 'font-family:fantasy;', -\ 'ff:m': 'font-family:monospace;', -\ 'fef': 'font-effect:|;', -\ 'fef:n': 'font-effect:none;', -\ 'fef:eg': 'font-effect:engrave;', -\ 'fef:eb': 'font-effect:emboss;', -\ 'fef:o': 'font-effect:outline;', -\ 'fem': 'font-emphasize:|;', -\ 'femp': 'font-emphasize-position:|;', -\ 'femp:b': 'font-emphasize-position:before;', -\ 'femp:a': 'font-emphasize-position:after;', -\ 'fems': 'font-emphasize-style:|;', -\ 'fems:n': 'font-emphasize-style:none;', -\ 'fems:ac': 'font-emphasize-style:accent;', -\ 'fems:dt': 'font-emphasize-style:dot;', -\ 'fems:c': 'font-emphasize-style:circle;', -\ 'fems:ds': 'font-emphasize-style:disc;', -\ 'fsm': 'font-smooth:|;', -\ 'fsm:a': 'font-smooth:auto;', -\ 'fsm:n': 'font-smooth:never;', -\ 'fsm:aw': 'font-smooth:always;', -\ 'fst': 'font-stretch:|;', -\ 'fst:n': 'font-stretch:normal;', -\ 'fst:uc': 'font-stretch:ultra-condensed;', -\ 'fst:ec': 'font-stretch:extra-condensed;', -\ 'fst:c': 'font-stretch:condensed;', -\ 'fst:sc': 'font-stretch:semi-condensed;', -\ 'fst:se': 'font-stretch:semi-expanded;', -\ 'fst:e': 'font-stretch:expanded;', -\ 'fst:ee': 'font-stretch:extra-expanded;', -\ 'fst:ue': 'font-stretch:ultra-expanded;', -\ 'op': 'opacity:|;', -\ 'op:ie': 'filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);', -\ 'op:ms': '-ms-filter:''progid:DXImageTransform.Microsoft.Alpha(Opacity=100)'';', -\ 'rz': 'resize:|;', -\ 'rz:n': 'resize:none;', -\ 'rz:b': 'resize:both;', -\ 'rz:h': 'resize:horizontal;', -\ 'rz:v': 'resize:vertical;', -\ 'cur': 'cursor:|;', -\ 'cur:a': 'cursor:auto;', -\ 'cur:d': 'cursor:default;', -\ 'cur:c': 'cursor:crosshair;', -\ 'cur:ha': 'cursor:hand;', -\ 'cur:he': 'cursor:help;', -\ 'cur:m': 'cursor:move;', -\ 'cur:p': 'cursor:pointer;', -\ 'cur:t': 'cursor:text;', -\ 'pgbb': 'page-break-before:|;', -\ 'pgbb:au': 'page-break-before:auto;', -\ 'pgbb:al': 'page-break-before:always;', -\ 'pgbb:l': 'page-break-before:left;', -\ 'pgbb:r': 'page-break-before:right;', -\ 'pgbi': 'page-break-inside:|;', -\ 'pgbi:au': 'page-break-inside:auto;', -\ 'pgbi:av': 'page-break-inside:avoid;', -\ 'pgba': 'page-break-after:|;', -\ 'pgba:au': 'page-break-after:auto;', -\ 'pgba:al': 'page-break-after:always;', -\ 'pgba:l': 'page-break-after:left;', -\ 'pgba:r': 'page-break-after:right;', -\ 'orp': 'orphans:|;', -\ 'wid': 'widows:|;' -\ }, -\ 'filters': 'fc' -\ }, -\ 'sass': { -\ 'extends': 'css', -\ 'snippets': { -\ '@if': "@if {\n\t|\n}", -\ '@e': "@else {\n\t|\n}", -\ '@in': "@include |", -\ '@ex': "@extend |", -\ '@mx': "@mixin {\n\t|\n}", -\ '@fn': "@function {\n\t|\n}", -\ '@r': "@return |", -\ }, -\ }, -\ 'scss': { -\ 'extends': 'css', -\ }, -\ 'less': { -\ 'extends': 'css', -\ }, -\ 'css.drupal': { -\ 'extends': 'css', -\ }, -\ 'html': { -\ 'snippets': { -\ 'cc:ie6': "", -\ 'cc:ie': "", -\ 'cc:noie': "\n\t${child}|\n", -\ 'html:4t': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:4s': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:xt': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:xs': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:xxs': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:5': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."" -\ }, -\ 'default_attributes': { -\ 'a': {'href': ''}, -\ 'a:link': {'href': 'http://|'}, -\ 'a:mail': {'href': 'mailto:|'}, -\ 'abbr': {'title': ''}, -\ 'acronym': {'title': ''}, -\ 'base': {'href': ''}, -\ 'bdo': {'dir': ''}, -\ 'bdo:r': {'dir': 'rtl'}, -\ 'bdo:l': {'dir': 'ltr'}, -\ 'del': {'datetime': '${datetime}'}, -\ 'ins': {'datetime': '${datetime}'}, -\ 'link:css': [{'rel': 'stylesheet'}, {'type': 'text/css'}, {'href': '|style.css'}, {'media': 'all'}], -\ 'link:print': [{'rel': 'stylesheet'}, {'type': 'text/css'}, {'href': '|print.css'}, {'media': 'print'}], -\ 'link:favicon': [{'rel': 'shortcut icon'}, {'type': 'image/x-icon'}, {'href': '|favicon.ico'}], -\ 'link:touch': [{'rel': 'apple-touch-icon'}, {'href': '|favicon.png'}], -\ 'link:rss': [{'rel': 'alternate'}, {'type': 'application/rss+xml'}, {'title': 'RSS'}, {'href': '|rss.xml'}], -\ 'link:atom': [{'rel': 'alternate'}, {'type': 'application/atom+xml'}, {'title': 'Atom'}, {'href': 'atom.xml'}], -\ 'meta:utf': [{'http-equiv': 'Content-Type'}, {'content': 'text/html;charset=UTF-8'}], -\ 'meta:win': [{'http-equiv': 'Content-Type'}, {'content': 'text/html;charset=Win-1251'}], -\ 'meta:compat': [{'http-equiv': 'X-UA-Compatible'}, {'content': 'IE=7'}], -\ 'style': {'type': 'text/css'}, -\ 'script': {'type': 'text/javascript'}, -\ 'script:src': [{'type': 'text/javascript'}, {'src': ''}], -\ 'img': [{'src': ''}, {'alt': ''}], -\ 'iframe': [{'src': ''}, {'frameborder': '0'}], -\ 'embed': [{'src': ''}, {'type': ''}], -\ 'object': [{'data': ''}, {'type': ''}], -\ 'param': [{'name': ''}, {'value': ''}], -\ 'map': {'name': ''}, -\ 'area': [{'shape': ''}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'area:d': [{'shape': 'default'}, {'href': ''}, {'alt': ''}], -\ 'area:c': [{'shape': 'circle'}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'area:r': [{'shape': 'rect'}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'area:p': [{'shape': 'poly'}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'link': [{'rel': 'stylesheet'}, {'href': ''}], -\ 'form': {'action': ''}, -\ 'form:get': {'action': '', 'method': 'get'}, -\ 'form:post': {'action': '', 'method': 'post'}, -\ 'form:upload': {'action': '', 'method': 'post', 'enctype': 'multipart/form-data'}, -\ 'label': {'for': ''}, -\ 'input': {'type': ''}, -\ 'input:hidden': [{'type': 'hidden'}, {'name': ''}], -\ 'input:h': [{'type': 'hidden'}, {'name': ''}], -\ 'input:text': [{'type': 'text'}, {'name': ''}, {'id': ''}], -\ 'input:t': [{'type': 'text'}, {'name': ''}, {'id': ''}], -\ 'input:search': [{'type': 'search'}, {'name': ''}, {'id': ''}], -\ 'input:email': [{'type': 'email'}, {'name': ''}, {'id': ''}], -\ 'input:url': [{'type': 'url'}, {'name': ''}, {'id': ''}], -\ 'input:password': [{'type': 'password'}, {'name': ''}, {'id': ''}], -\ 'input:p': [{'type': 'password'}, {'name': ''}, {'id': ''}], -\ 'input:datetime': [{'type': 'datetime'}, {'name': ''}, {'id': ''}], -\ 'input:date': [{'type': 'date'}, {'name': ''}, {'id': ''}], -\ 'input:datetime-local': [{'type': 'datetime-local'}, {'name': ''}, {'id': ''}], -\ 'input:month': [{'type': 'month'}, {'name': ''}, {'id': ''}], -\ 'input:week': [{'type': 'week'}, {'name': ''}, {'id': ''}], -\ 'input:time': [{'type': 'time'}, {'name': ''}, {'id': ''}], -\ 'input:number': [{'type': 'number'}, {'name': ''}, {'id': ''}], -\ 'input:color': [{'type': 'color'}, {'name': ''}, {'id': ''}], -\ 'input:checkbox': [{'type': 'checkbox'}, {'name': ''}, {'id': ''}], -\ 'input:c': [{'type': 'checkbox'}, {'name': ''}, {'id': ''}], -\ 'input:radio': [{'type': 'radio'}, {'name': ''}, {'id': ''}], -\ 'input:r': [{'type': 'radio'}, {'name': ''}, {'id': ''}], -\ 'input:range': [{'type': 'range'}, {'name': ''}, {'id': ''}], -\ 'input:file': [{'type': 'file'}, {'name': ''}, {'id': ''}], -\ 'input:f': [{'type': 'file'}, {'name': ''}, {'id': ''}], -\ 'input:submit': [{'type': 'submit'}, {'value': ''}], -\ 'input:s': [{'type': 'submit'}, {'value': ''}], -\ 'input:image': [{'type': 'image'}, {'src': ''}, {'alt': ''}], -\ 'input:i': [{'type': 'image'}, {'src': ''}, {'alt': ''}], -\ 'input:reset': [{'type': 'reset'}, {'value': ''}], -\ 'input:button': [{'type': 'button'}, {'value': ''}], -\ 'input:b': [{'type': 'button'}, {'value': ''}], -\ 'select': [{'name': ''}, {'id': ''}], -\ 'option': {'value': ''}, -\ 'textarea': [{'name': ''}, {'id': ''}, {'cols': '30'}, {'rows': '10'}], -\ 'menu:context': {'type': 'context'}, -\ 'menu:c': {'type': 'context'}, -\ 'menu:toolbar': {'type': 'toolbar'}, -\ 'menu:t': {'type': 'toolbar'}, -\ 'video': {'src': ''}, -\ 'audio': {'src': ''}, -\ 'html:xml': [{'xmlns': 'http://www.w3.org/1999/xhtml'}, {'xml:lang': '${lang}'}] -\ }, -\ 'aliases': { -\ 'link:*': 'link', -\ 'meta:*': 'meta', -\ 'area:*': 'area', -\ 'bdo:*': 'bdo', -\ 'form:*': 'form', -\ 'input:*': 'input', -\ 'script:*': 'script', -\ 'html:*': 'html', -\ 'a:*': 'a', -\ 'menu:*': 'menu', -\ 'bq': 'blockquote', -\ 'acr': 'acronym', -\ 'fig': 'figure', -\ 'ifr': 'iframe', -\ 'emb': 'embed', -\ 'obj': 'object', -\ 'src': 'source', -\ 'cap': 'caption', -\ 'colg': 'colgroup', -\ 'fst': 'fieldset', -\ 'btn': 'button', -\ 'optg': 'optgroup', -\ 'opt': 'option', -\ 'tarea': 'textarea', -\ 'leg': 'legend', -\ 'sect': 'section', -\ 'art': 'article', -\ 'hdr': 'header', -\ 'ftr': 'footer', -\ 'adr': 'address', -\ 'dlg': 'dialog', -\ 'str': 'strong', -\ 'sty': 'style', -\ 'prog': 'progress', -\ 'fset': 'fieldset', -\ 'datag': 'datagrid', -\ 'datal': 'datalist', -\ 'kg': 'keygen', -\ 'out': 'output', -\ 'det': 'details', -\ 'cmd': 'command' -\ }, -\ 'expandos': { -\ 'ol': 'ol>li', -\ 'ul': 'ul>li', -\ 'dl': 'dl>dt+dd', -\ 'map': 'map>area', -\ 'table': 'table>tr>td', -\ 'colgroup': 'colgroup>col', -\ 'colg': 'colgroup>col', -\ 'tr': 'tr>td', -\ 'select': 'select>option', -\ 'optgroup': 'optgroup>option', -\ 'optg': 'optgroup>option' -\ }, -\ 'empty_elements': 'area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,keygen,command', -\ 'block_elements': 'address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,link,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul,h1,h2,h3,h4,h5,h6', -\ 'inline_elements': 'a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var', -\ 'empty_element_suffix': ' />' -\ }, -\ 'htmldjango': { -\ 'extends': 'html', -\ }, -\ 'html.django_template': { -\ 'extends': 'html', -\ }, -\ 'xsl': { -\ 'extends': 'html', -\ 'default_attributes': { -\ 'tmatch': [{'match': ''}, {'mode': ''}], -\ 'tname': [{'name': ''}], -\ 'xsl:when': {'test': ''}, -\ 'var': [{'name': ''}, {'select': ''}], -\ 'vari': {'name': ''}, -\ 'if': {'test': ''}, -\ 'call': {'name': ''}, -\ 'attr': {'name': ''}, -\ 'wp': [{'name': ''}, {'select': ''}], -\ 'par': [{'name': ''}, {'select': ''}], -\ 'val': {'select': ''}, -\ 'co': {'select': ''}, -\ 'each': {'select': ''}, -\ 'ap': [{'select': ''}, {'mode': ''}] -\ }, -\ 'aliases': { -\ 'tmatch': 'xsl:template', -\ 'tname': 'xsl:template', -\ 'var': 'xsl:variable', -\ 'vari': 'xsl:variable', -\ 'if': 'xsl:if', -\ 'choose': 'xsl:choose', -\ 'call': 'xsl:call-template', -\ 'wp': 'xsl:with-param', -\ 'par': 'xsl:param', -\ 'val': 'xsl:value-of', -\ 'attr': 'xsl:attribute', -\ 'co' : 'xsl:copy-of', -\ 'each' : 'xsl:for-each', -\ 'ap' : 'xsl:apply-templates' -\ }, -\ 'expandos': { -\ 'choose': 'xsl:choose>xsl:when+xsl:otherwise' -\ } -\ }, -\ 'xslt': { -\ 'extends': 'xsl', -\ }, -\ 'haml': { -\ 'indentation': ' ', -\ 'extends': 'html', -\ 'snippets': { -\ 'html:5': "!!! 5\n" -\ ."%html{:lang => \"${lang}\"}\n" -\ ."\t%head\n" -\ ."\t\t%meta{:charset => \"${charset}\"}\n" -\ ."\t\t%title\n" -\ ."\t%body\n" -\ ."\t\t${child}|\n" -\ }, -\ }, -\ 'slim': { -\ 'indentation': ' ', -\ 'extends': 'html', -\ 'snippets': { -\ 'html:5': "doctype 5\n" -\ ."html lang=\"${lang}\"\n" -\ ."\thead\n" -\ ."\t\tmeta charset=\"${charset}\"\n" -\ ."\t\ttitle\n" -\ ."\tbody\n" -\ ."\t\t${child}|\n" -\ }, -\ }, -\ 'xhtml': { -\ 'extends': 'html' -\ }, -\ 'mustache': { -\ 'extends': 'html' -\ }, -\ 'xsd': { -\ 'extends': 'html', -\ 'snippets': { -\ 'xsd:w3c': "\n" -\ ."\n" -\ ."\t\n" -\ ."\n" -\ } -\ } -\} - -if exists('g:user_zen_settings') - call s:mergeConfig(s:zen_settings, g:user_zen_settings) -endif - -let &cpo = s:save_cpo -unlet s:save_cpo - -" vim:set et: diff --git a/sources_forked/zencoding/autoload/zencoding/lang.vim b/sources_forked/zencoding/autoload/zencoding/lang.vim deleted file mode 100755 index a9735991..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang.vim +++ /dev/null @@ -1,11 +0,0 @@ -let s:exists = {} -function zencoding#lang#exists(type) - if len(a:type) == 0 - return 0 - elseif has_key(s:exists, a:type) - return s:exists[a:type] - endif - let s:exists[a:type] = len(globpath(&rtp, 'autoload/zencoding/lang/'.a:type.'.vim')) > 0 - return s:exists[a:type] -endfunction - diff --git a/sources_forked/zencoding/autoload/zencoding/lang/css.vim b/sources_forked/zencoding/autoload/zencoding/lang/css.vim deleted file mode 100755 index 5b1c1182..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/css.vim +++ /dev/null @@ -1,228 +0,0 @@ -function! zencoding#lang#css#findTokens(str) - return substitute(a:str, '^.*[;{]\s*', '', '') -endfunction - -function! zencoding#lang#css#parseIntoTree(abbr, type) - let abbr = a:abbr - let type = a:type - let prefix = 0 - let value = '' - - let settings = zencoding#getSettings() - let indent = zencoding#getIndentation(type) - - let root = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0 } - - " emmet - let tokens = split(abbr, '+\ze[^)!]') - for n in range(len(tokens)) - let token = tokens[n] - let prop = matchlist(token, '^\(-\{0,1}[a-zA-Z]\+\|[a-zA-Z0-9]\++\{0,1}\|([a-zA-Z0-9]\++\{0,1})\)\(\%([0-9.-]\+[pe]\{0,1}-\{0,1}\|-auto\)*\)$') - if len(prop) - let token = substitute(prop[1], '^(\(.*\))', '\1', '') - if token =~ '^-' - let prefix = 1 - let token = token[1:] - endif - let value = '' - for v in split(prop[2], '\d\zs-') - if len(value) > 0 - let value .= ' ' - endif - if token =~ '^[z]' - " TODO - let value .= substitute(v, '[^0-9.]*$', '', '') - elseif v =~ 'p$' - let value .= substitute(v, 'p$', '%', '') - elseif v =~ 'e$' - let value .= substitute(v, 'e$', 'em', '') - elseif v =~ '\.' - let value .= v . 'em' - elseif v == 'auto' - let value .= v - else - let value .= v . 'px' - endif - endfor - endif - - let tag_name = token - if tag_name =~ '.!$' - let tag_name = tag_name[:-2] - let important = 1 - else - let important = 0 - endif - " make default node - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': important } - let current.name = tag_name - - " aliases - let aliases = zencoding#getResource(type, 'aliases', {}) - if has_key(aliases, tag_name) - let current.name = aliases[tag_name] - endif - let use_pipe_for_cursor = zencoding#getResource(type, 'use_pipe_for_cursor', 1) - - " snippets - let snippets = zencoding#getResource(type, 'snippets', {}) - if !empty(snippets) && has_key(snippets, tag_name) - let snippet = snippets[tag_name] - if use_pipe_for_cursor - let snippet = substitute(snippet, '|', '${cursor}', 'g') - endif - let lines = split(snippet, "\n") - call map(lines, 'substitute(v:val, "\\( \\|\\t\\)", escape(indent, "\\\\"), "g")') - let current.snippet = join(lines, "\n") - let current.name = '' - let current.snippet = substitute(current.snippet, ';', value . ';', '') - if use_pipe_for_cursor && len(value) > 0 && stridx(value, '${cursor}') == -1 - let current.snippet = substitute(current.snippet, '${cursor}', '', 'g') . '${cursor}' - endif - if n < len(tokens) - 1 - let current.snippet .= "\n" - endif - endif - - let current.pos = 0 - let lg = matchlist(token, '^\%(linear-gradient\|lg\)(\s*\(\w\+\)\s*,\s*\([^,]\+\)\s*,\s*\([^)]\+\)\s*)$') - if len(lg) - let current.name = '' - let current.snippet = printf("background-image: -webkit-gradient(%s, 0 0, 0 100%, from(%s), to(%s));\n", lg[1], lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: -webkit-linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: -moz-linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: -o-linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - elseif prefix - let snippet = current.snippet - let current.snippet = '-webkit-' . snippet . "\n" - call add(root.child, deepcopy(current)) - let current.snippet = '-moz-' . snippet . "\n" - call add(root.child, deepcopy(current)) - let current.snippet = snippet - call add(root.child, current) - else - call add(root.child, current) - endif - endfor - return root -endfunction - -function! zencoding#lang#css#toString(settings, current, type, inline, filters, itemno, indent) - let current = a:current - let value = current.value[1:-2] - if zencoding#useFilter(a:filters, 'fc') - let value = substitute(value, '\([^:]\+\):\([^;]*;\)', '\1: \2', 'g') - else - let value = substitute(value, '\([^:]\+\):\([^;]*;\)', '\1:\2', 'g') - endif - if current.important - let value = substitute(value, ';', ' !important;', '') - endif - return value -endfunction - -function! zencoding#lang#css#imageSize() -endfunction - -function! zencoding#lang#css#encodeImage() -endfunction - -function! zencoding#lang#css#parseTag(tag) - return {} -endfunction - -function! zencoding#lang#css#toggleComment() - let line = getline('.') - let mx = '^\(\s*\)/\*\s*\(.*\)\s*\*/\s*$' - if line =~ '{\s*$' - let block = zencoding#util#searchRegion('/\*', '\*/\zs') - if zencoding#util#regionIsValid(block) - let content = zencoding#util#getContent(block) - let content = substitute(content, '/\*\s\(.*\)\s\*/', '\1', '') - call zencoding#util#setContent(block, content) - else - let node = expand('') - if len(node) - exe "normal ciw\='/* '.node.' */'\" - endif - endif - else - if line =~ mx - let space = substitute(matchstr(line, mx), mx, '\1', '') - let line = substitute(matchstr(line, mx), mx, '\2', '') - let line = space . substitute(line, '^\s*\|\s*$', '\1', 'g') - else - let mx = '^\(\s*\)\(.*\)\s*$' - let line = substitute(line, mx, '\1/* \2 */', '') - endif - call setline('.', line) - endif -endfunction - -function! zencoding#lang#css#balanceTag(flag) range - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let block = zencoding#util#getVisualBlock() - if !zencoding#util#regionIsValid(block) - if a:flag > 0 - let block = zencoding#util#searchRegion('^', ';') - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - else - if a:flag > 0 - let content = zencoding#util#getContent(block) - if content !~ '^{.*}$' - let block = zencoding#util#searchRegion('{', '}') - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - else - let pos = searchpos('.*;', 'nW') - if pos[0] != 0 - call setpos('.', [0, pos[0], pos[1], 0]) - let block = zencoding#util#searchRegion('^', ';') - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - endif - endif - if a:flag == -2 || a:flag == 2 - silent! exe "normal! gv" - else - call setpos('.', curpos) - endif -endfunction - -function! zencoding#lang#css#moveNextPrev(flag) - let pos = search('""\|()\|\(:\s*\zs$\)', a:flag ? 'Wbp' : 'Wp') - if pos == 2 - startinsert! - else - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#css#splitJoinTag() - " nothing to do -endfunction - -function! zencoding#lang#css#removeTag() - " nothing to do -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/haml.vim b/sources_forked/zencoding/autoload/zencoding/lang/haml.vim deleted file mode 100755 index be421c1c..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/haml.vim +++ /dev/null @@ -1,310 +0,0 @@ -function! zencoding#lang#haml#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#haml#parseIntoTree(abbr, type) - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) -endfunction - -function! zencoding#lang#haml#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - let str = "" - - let comment_indent = '' - let comment = '' - let current_name = current.name - if dollar_expr - let current_name = substitute(current.name, '\$$', itemno+1, '') - endif - if len(current.name) > 0 - let str .= '%' . current_name - let tmp = '' - for attr in current.attrs_order - if !has_key(current.attr, attr) - continue - endif - let val = current.attr[attr] - if dollar_expr - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - endif - let valtmp = substitute(val, '\${cursor}', '', '') - if attr == 'id' && len(valtmp) > 0 - let str .= '#' . val - elseif attr == 'class' && len(valtmp) > 0 - let str .= '.' . substitute(val, ' ', '.', 'g') - else - if len(tmp) > 0 | let tmp .= ',' | endif - let val = substitute(val, '\${cursor}', '', '') - let tmp .= ' :' . attr . ' => "' . val . '"' - endif - endfor - if len(tmp) - let str .= '{' . tmp . ' }' - endif - if stridx(','.settings.html.empty_elements.',', ','.current_name.',') != -1 && len(current.value) == 0 - let str .= "/" - endif - - let inner = '' - if len(current.value) > 0 - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . "$", "", 'g') - let str .= "\n" . indent . inner - endif - else - let str = current.value[1:-2] - if dollar_expr - let str = substitute(str, '\%(\\\)\@\\s*\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)' - while len(attrs) > 0 - let match = matchstr(attrs, mx) - if len(match) == 0 - break - endif - let attr_match = matchlist(match, mx) - let name = attr_match[1] - let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] - let current.attr[name] = value - let current.attrs_order += [name] - let attrs = attrs[stridx(attrs, match) + len(match):] - endwhile - return current -endfunction - -function! zencoding#lang#haml#toggleComment() - let line = getline('.') - let space = matchstr(line, '^\s*') - if line =~ '^\s*-#' - call setline('.', space . matchstr(line[len(space)+2:], '^\s*\zs.*')) - elseif line =~ '^\s*%[a-z]' - call setline('.', space . '-# ' . line[len(space):]) - endif -endfunction - -function! zencoding#lang#haml#balanceTag(flag) range - let block = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let n = curpos[1] - let ml = len(matchstr(getline(n), '^\s*')) - - if a:flag > 0 - if a:flag == 1 || !zencoding#util#regionIsValid(block) - let n = line('.') - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze%[a-z]')) - if l > 0 && l < ml - let ml = l - break - endif - let n -= 1 - endwhile - endif - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*%[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l > ml - let ml = l - break - endif - let n += 1 - endwhile - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*%[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - endif -endfunction - -function! zencoding#lang#haml#moveNextPrev(flag) - let pos = search('""', a:flag ? 'Wb' : 'W') - if pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#haml#splitJoinTag() - let n = line('.') - let sml = len(matchstr(getline(n), '^\s*%[a-z]')) - while n > 0 - if getline(n) =~ '^\s*\ze%[a-z]' - if len(matchstr(getline(n), '^\s*%[a-z]')) < sml - break - endif - let line = getline(n) - call setline(n, substitute(line, '^\s*%\w\+\%(\s*{[^}]*}\|\s\)\zs.*', '', '')) - let sn = n - let n += 1 - let ml = len(matchstr(getline(n), '^\s*%[a-z]')) - if len(matchstr(getline(n), '^\s*')) > ml - while n <= line('$') - let l = len(matchstr(getline(n), '^\s*')) - if l <= ml - break - endif - exe n "delete" - endwhile - call setpos('.', [0, sn, 1, 0]) - else - let tag = matchstr(getline(sn), '^\s*%\zs\(\w\+\)') - let spaces = matchstr(getline(sn), '^\s*') - let settings = zencoding#getSettings() - if stridx(','.settings.html.inline_elements.',', ','.tag.',') == -1 - call append(sn, spaces . ' ') - call setpos('.', [0, sn+1, 1, 0]) - else - call setpos('.', [0, sn, 1, 0]) - endif - startinsert! - endif - break - endif - let n -= 1 - endwhile -endfunction - -function! zencoding#lang#haml#removeTag() - let n = line('.') - let ml = 0 - while n > 0 - if getline(n) =~ '^\s*\ze[a-z]' - let ml = len(matchstr(getline(n), '^\s*%[a-z]')) - break - endif - let n -= 1 - endwhile - let sn = n - while n < line('$') - let l = len(matchstr(getline(n), '^\s*%[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - if sn == n - exe "delete" - else - exe sn "," (n-1) "delete" - endif -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/html.vim b/sources_forked/zencoding/autoload/zencoding/lang/html.vim deleted file mode 100755 index d7a1e634..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/html.vim +++ /dev/null @@ -1,692 +0,0 @@ -let s:mx = '\([+>]\|[<^]\+\)\{-}\s*' -\ .'\((*\)\{-}\s*' -\ .'\([@#.]\{-}[a-zA-Z\!][a-zA-Z0-9:_\!\-$]*\|{\%([^$}]\+\|\$#\|\${\w\+}\|\$\+\)*}[ \t\r\n}]*\)' -\ .'\(' -\ .'\%(' -\ .'\%(#{[{}a-zA-Z0-9_\-\$]\+\|#[a-zA-Z0-9_\-\$]\+\)' -\ .'\|\%(\[[^\]]\+\]\)' -\ .'\|\%(\.{[{}a-zA-Z0-9_\-\$]\+\|\.[a-zA-Z0-9_\-\$]\+\)' -\ .'\)*' -\ .'\)' -\ .'\%(\({\%([^$}]\+\|\$#\|\${\w\+}\|\$\+\)*}\)\)\{0,1}' -\ .'\%(\*\([0-9]\+\)\)\{0,1}' -\ .'\(\%()\%(\*[0-9]\+\)\{0,1}\)*\)' - -function! zencoding#lang#html#findTokens(str) - let str = a:str - let [pos, last_pos] = [0, 0] - while 1 - let tag = matchstr(str, '<[a-zA-Z].\{-}>', pos) - if len(tag) == 0 - break - endif - let pos = stridx(str, tag, pos) + len(tag) - endwhile - let last_pos = pos - while len(str) > 0 - let token = matchstr(str, s:mx, pos) - if token == '' - break - endif - if token =~ '^\s' - let token = matchstr(token, '^\s*\zs.*') - let last_pos = stridx(str, token, pos) - endif - let pos = stridx(str, token, pos) + len(token) - endwhile - return a:str[last_pos :-1] -endfunction - -function! zencoding#lang#html#parseIntoTree(abbr, type) - let abbr = a:abbr - let type = a:type - - let settings = zencoding#getSettings() - if !has_key(settings, type) - let type = 'html' - endif - if len(type) == 0 | let type = 'html' | endif - - let settings = zencoding#getSettings() - let indent = zencoding#getIndentation(type) - - " try 'foo' to (foo-x) - let rabbr = zencoding#getExpandos(type, abbr) - if rabbr == abbr - " try 'foo+(' to (foo-x) - let rabbr = substitute(abbr, '\%(+\|^\)\([a-zA-Z][a-zA-Z0-9+]\+\)+\([(){}>]\|$\)', '\="(".zencoding#getExpandos(type, submatch(1)).")".submatch(2)', 'i') - endif - let abbr = rabbr - - let root = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] } - let parent = root - let last = root - let pos = [] - while len(abbr) - " parse line - let match = matchstr(abbr, s:mx) - let str = substitute(match, s:mx, '\0', 'ig') - let operator = substitute(match, s:mx, '\1', 'ig') - let block_start = substitute(match, s:mx, '\2', 'ig') - let tag_name = substitute(match, s:mx, '\3', 'ig') - let attributes = substitute(match, s:mx, '\4', 'ig') - let value = substitute(match, s:mx, '\5', 'ig') - let multiplier = 0 + substitute(match, s:mx, '\6', 'ig') - let block_end = substitute(match, s:mx, '\7', 'ig') - let important = 0 - if len(str) == 0 - break - endif - if tag_name =~ '^#' - let attributes = tag_name . attributes - let tag_name = 'div' - endif - if tag_name =~ '.!$' - let tag_name = tag_name[:-2] - let important = 1 - endif - if tag_name =~ '^\.' - let attributes = tag_name . attributes - let tag_name = 'div' - endif - if multiplier <= 0 | let multiplier = 1 | endif - - " make default node - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] } - let current.name = tag_name - - let current.important = important - - " aliases - let aliases = zencoding#getResource(type, 'aliases', {}) - if has_key(aliases, tag_name) - let current.name = aliases[tag_name] - endif - - let use_pipe_for_cursor = zencoding#getResource(type, 'use_pipe_for_cursor', 1) - - " snippets - let snippets = zencoding#getResource(type, 'snippets', {}) - if !empty(snippets) && has_key(snippets, tag_name) - let snippet = snippets[tag_name] - if use_pipe_for_cursor - let snippet = substitute(snippet, '|', '${cursor}', 'g') - endif - let lines = split(snippet, "\n") - call map(lines, 'substitute(v:val, "\\( \\|\\t\\)", escape(indent, "\\\\"), "g")') - let current.snippet = join(lines, "\n") - let current.name = '' - endif - - " default_attributes - let default_attributes = zencoding#getResource(type, 'default_attributes', {}) - if !empty(default_attributes) - for pat in [current.name, tag_name] - if has_key(default_attributes, pat) - if type(default_attributes[pat]) == 4 - let a = default_attributes[pat] - let current.attrs_order += keys(a) - if use_pipe_for_cursor - for k in keys(a) - let current.attr[k] = len(a[k]) ? substitute(a[k], '|', '${cursor}', 'g') : '${cursor}' - endfor - else - for k in keys(a) - let current.attr[k] = a[k] - endfor - endif - else - for a in default_attributes[pat] - let current.attrs_order += keys(a) - if use_pipe_for_cursor - for k in keys(a) - let current.attr[k] = len(a[k]) ? substitute(a[k], '|', '${cursor}', 'g') : '${cursor}' - endfor - else - for k in keys(a) - let current.attr[k] = a[k] - endfor - endif - endfor - endif - if has_key(settings.html.default_attributes, current.name) - let current.name = substitute(current.name, ':.*$', '', '') - endif - break - endif - endfor - endif - - " parse attributes - if len(attributes) - let attr = attributes - while len(attr) - let item = matchstr(attr, '\(\%(\%(#[{}a-zA-Z0-9_\-\$]\+\)\|\%(\[[^\]]\+\]\)\|\%(\.[{}a-zA-Z0-9_\-\$]\+\)*\)\)') - if len(item) == 0 - break - endif - if item[0] == '#' - let current.attr.id = item[1:] - endif - if item[0] == '.' - let current.attr.class = substitute(item[1:], '\.', ' ', 'g') - endif - if item[0] == '[' - let atts = item[1:-2] - while len(atts) - let amat = matchstr(atts, '\(\w\+\%(="[^"]*"\|=''[^'']*''\|[^ ''"\]]*\)\{0,1}\)') - if len(amat) == 0 - break - endif - let key = split(amat, '=')[0] - let val = amat[len(key)+1:] - if val =~ '^["'']' - let val = val[1:-2] - endif - let current.attr[key] = val - if index(current.attrs_order, key) == -1 - let current.attrs_order += [key] - endif - let atts = atts[stridx(atts, amat) + len(amat):] - endwhile - endif - let attr = substitute(strpart(attr, len(item)), '^\s*', '', '') - endwhile - endif - - " parse text - if tag_name =~ '^{.*}$' - let current.name = '' - let current.value = tag_name - else - let current.value = value - endif - let current.multiplier = multiplier - - " parse step inside/outside - if !empty(last) - if operator =~ '>' - unlet! parent - let parent = last - let current.parent = last - let current.pos = last.pos + 1 - else - let current.parent = parent - let current.pos = last.pos - endif - else - let current.parent = parent - let current.pos = 1 - endif - if operator =~ '[<^]' - for c in range(len(operator)) - let tmp = parent.parent - if empty(tmp) - break - endif - let parent = tmp - let current.parent = tmp - endfor - endif - - call add(parent.child, current) - let last = current - - " parse block - if block_start =~ '(' - if operator =~ '>' - let last.pos += 1 - endif - for n in range(len(block_start)) - let pos += [last.pos] - endfor - endif - if block_end =~ ')' - for n in split(substitute(substitute(block_end, ' ', '', 'g'), ')', ',),', 'g'), ',') - if n == ')' - if len(pos) > 0 && last.pos >= pos[-1] - for c in range(last.pos - pos[-1]) - let tmp = parent.parent - if !has_key(tmp, 'parent') - break - endif - let parent = tmp - endfor - if len(pos) > 0 - call remove(pos, -1) - endif - let last = parent - let last.pos += 1 - endif - elseif len(n) - let cl = last.child - let cls = [] - for c in range(n[1:]) - let cls += cl - endfor - let last.child = cls - endif - endfor - endif - let abbr = abbr[stridx(abbr, match) + len(match):] - - if g:zencoding_debug > 1 - echomsg "str=".str - echomsg "block_start=".block_start - echomsg "tag_name=".tag_name - echomsg "operator=".operator - echomsg "attributes=".attributes - echomsg "value=".value - echomsg "multiplier=".multiplier - echomsg "block_end=".block_end - echomsg "abbr=".abbr - echomsg "pos=".string(pos) - echomsg "---" - endif - endwhile - return root -endfunction - -function! zencoding#lang#html#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - - if zencoding#useFilter(filters, 'haml') - return zencoding#lang#haml#toString(settings, current, type, inline, filters, itemno, indent) - endif - if zencoding#useFilter(filters, 'slim') - return zencoding#lang#slim#toString(settings, current, type, inline, filters, itemno, indent) - endif - - let comment = '' - let current_name = current.name - if dollar_expr - let current_name = substitute(current_name, '\$$', itemno+1, '') - endif - - let str = '' - if len(current_name) == 0 - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - let str .= '<' . current_name - for attr in current.attrs_order - if !has_key(current.attr, attr) - continue - endif - let val = current.attr[attr] - if dollar_expr - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - endif - let str .= ' ' . attr . '="' . val . '"' - if zencoding#useFilter(filters, 'c') - if attr == 'id' | let comment .= '#' . val | endif - if attr == 'class' | let comment .= '.' . val | endif - endif - endfor - if len(comment) > 0 - let str = "\n" . str - endif - if stridx(','.settings.html.empty_elements.',', ','.current_name.',') != -1 - let str .= settings.html.empty_element_suffix - else - let str .= ">" - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - for n in range(nc) - let child = current.child[n] - if child.multiplier > 1 - let str .= "\n" . indent - let dr = 1 - elseif len(current_name) > 0 && stridx(','.settings.html.inline_elements.',', ','.current_name.',') == -1 - if nc > 1 || (len(child.name) > 0 && stridx(','.settings.html.inline_elements.',', ','.child.name.',') == -1) - let str .= "\n" . indent - let dr = 1 - elseif current.multiplier == 1 && nc == 1 && len(child.name) == 0 - let str .= "\n" . indent - let dr = 1 - endif - endif - let inner = zencoding#toString(child, type, 0, filters, itemno) - let inner = substitute(inner, "^\n", "", 'g') - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g') - let str .= inner - endfor - else - let str .= '${cursor}' - endif - if dr - let str .= "\n" - endif - let str .= "" - endif - if len(comment) > 0 - let str .= "\n" - endif - if len(current_name) > 0 && current.multiplier > 0 || stridx(','.settings.html.block_elements.',', ','.current_name.',') != -1 - let str .= "\n" - endif - return str -endfunction - -function! zencoding#lang#html#imageSize() - let img_region = zencoding#util#searchRegion('') - if !zencoding#util#regionIsValid(img_region) || !zencoding#util#cursorInRegion(img_region) - return - endif - let content = zencoding#util#getContent(img_region) - if content !~ '^<]\+>$' - return - endif - let current = zencoding#lang#html#parseTag(content) - if empty(current) || !has_key(current.attr, 'src') - return - endif - let fn = current.attr.src - if fn =~ '^\s*$' - return - elseif fn !~ '^\(/\|http\)' - let fn = simplify(expand('%:h') . '/' . fn) - endif - - let [width, height] = zencoding#util#getImageSize(fn) - if width == -1 && height == -1 - return - endif - let current.attr.width = width - let current.attr.height = height - let current.attrs_order += ['width', 'height'] - let html = substitute(zencoding#toString(current, 'html', 1), '\n', '', '') - let html = substitute(html, '\${cursor}', '', '') - call zencoding#util#setContent(img_region, html) -endfunction - -function! zencoding#lang#html#encodeImage() - let img_region = zencoding#util#searchRegion('') - if !zencoding#util#regionIsValid(img_region) || !zencoding#util#cursorInRegion(img_region) - return - endif - let content = zencoding#util#getContent(img_region) - if content !~ '^<]\+>$' - return - endif - let current = zencoding#lang#html#parseTag(content) - if empty(current) || !has_key(current.attr, 'src') - return - endif - let fn = current.attr.src - if fn !~ '^\(/\|http\)' - let fn = simplify(expand('%:h') . '/' . fn) - endif - - let [width, height] = zencoding#util#getImageSize(fn) - if width == -1 && height == -1 - return - endif - let current.attr.width = width - let current.attr.height = height - let html = zencoding#toString(current, 'html', 1) - call zencoding#util#setContent(img_region, html) -endfunction - -function! zencoding#lang#html#parseTag(tag) - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': [] } - let mx = '<\([a-zA-Z][a-zA-Z0-9]*\)\(\%(\s[a-zA-Z][a-zA-Z0-9]\+=\%([^"'' \t]\+\|"[^"]\{-}"\|''[^'']\{-}''\)\s*\)*\)\(/\{0,1}\)>' - let match = matchstr(a:tag, mx) - let current.name = substitute(match, mx, '\1', 'i') - let attrs = substitute(match, mx, '\2', 'i') - let mx = '\([a-zA-Z0-9]\+\)=\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)' - while len(attrs) > 0 - let match = matchstr(attrs, mx) - if len(match) == 0 - break - endif - let attr_match = matchlist(match, mx) - let name = attr_match[1] - let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] - let current.attr[name] = value - let current.attrs_order += [name] - let attrs = attrs[stridx(attrs, match) + len(match):] - endwhile - return current -endfunction - -function! zencoding#lang#html#toggleComment() - let orgpos = getpos('.') - let curpos = getpos('.') - let mx = '<\%#[^>]*>' - while 1 - let block = zencoding#util#searchRegion('') - if zencoding#util#regionIsValid(block) - let block[1][1] += 2 - let content = zencoding#util#getContent(block) - let content = substitute(content, '^$', '\1', '') - call zencoding#util#setContent(block, content) - silent! call setpos('.', orgpos) - return - endif - let block = zencoding#util#searchRegion('<[^>]', '>') - if !zencoding#util#regionIsValid(block) - let pos1 = searchpos('<', 'bcW') - if pos1[0] == 0 && pos1[1] == 0 - return - endif - let curpos = getpos('.') - continue - endif - let pos1 = block[0] - let pos2 = block[1] - let content = zencoding#util#getContent(block) - let tag_name = matchstr(content, '^<\zs/\{0,1}[^ \r\n>]\+') - if tag_name[0] == '/' - call setpos('.', [0, pos1[0], pos1[1], 0]) - let pos2 = searchpairpos('<'. tag_name[1:] . '>', '', '', 'bnW') - let pos1 = searchpos('>', 'cneW') - let block = [pos2, pos1] - elseif tag_name =~ '/$' - if !zencoding#util#pointInRegion(orgpos[1:2], block) - " it's broken tree - call setpos('.', orgpos) - let block = zencoding#util#searchRegion('>', '<') - let content = '><' - call zencoding#util#setContent(block, content) - silent! call setpos('.', orgpos) - return - endif - else - call setpos('.', [0, pos2[0], pos2[1], 0]) - let pos2 = searchpairpos('<'. tag_name . '>', '', '', 'nW') - call setpos('.', [0, pos2[0], pos2[1], 0]) - let pos2 = searchpos('>', 'neW') - let block = [pos1, pos2] - endif - if !zencoding#util#regionIsValid(block) - silent! call setpos('.', orgpos) - return - endif - if zencoding#util#pointInRegion(curpos[1:2], block) - let content = '' - call zencoding#util#setContent(block, content) - silent! call setpos('.', orgpos) - return - endif - endwhile -endfunction - -function! zencoding#lang#html#balanceTag(flag) range - let vblock = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let settings = zencoding#getSettings() - - if a:flag > 0 - let mx = '<\([a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - while 1 - let pos1 = searchpos(mx, 'bW') - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = matchstr(content, '^<\zs[a-zA-Z0-9:_\-]*\ze') - if stridx(','.settings.html.empty_elements.',', ','.tag_name.',') != -1 - let pos2 = searchpos('>', 'nW') - else - let pos2 = searchpairpos('<' . tag_name . '[^>]*>', '', '\zs', 'nW') - endif - let block = [pos1, pos2] - if pos1[0] == 0 && pos1[1] == 0 - break - endif - if zencoding#util#pointInRegion(curpos[1:2], block) && zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endwhile - else - let mx = '<\([a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - while 1 - let pos1 = searchpos(mx, 'W') - if pos1 == curpos[1:2] - let pos1 = searchpos(mx . '\zs', 'W') - let pos2 = searchpos('.\ze<', 'W') - let block = [pos1, pos2] - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = matchstr(content, '^<\zs[a-zA-Z0-9:_\-]*\ze') - if stridx(','.settings.html.empty_elements.',', ','.tag_name.',') != -1 - let pos2 = searchpos('>', 'nW') - else - let pos2 = searchpairpos('<' . tag_name . '[^>]*>', '', '\zs', 'nW') - endif - let block = [pos1, pos2] - if pos1[0] == 0 && pos1[1] == 0 - break - endif - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endwhile - endif - call setpos('.', curpos) - if a:flag == -2 || a:flag == 2 - silent! exe "normal! gv" - endif -endfunction - -function! zencoding#lang#html#moveNextPrev(flag) - let pos = search('\%(<\/\|\(""\)\|^\(\s*\)$', a:flag ? 'Wpb' : 'Wp') - if pos == 3 - startinsert! - elseif pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#html#splitJoinTag() - let curpos = getpos('.') - while 1 - let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - let pos1 = searchpos(mx, 'bcnW') - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z][a-zA-Z0-9:_\-]*\).*$', '\1', '') - let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] - if content[-2:] == '/>' && zencoding#util#cursorInRegion(block) - let content = content[:-3] . ">' - call zencoding#util#setContent(block, content) - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if tag_name[0] == '/' - let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') - call setpos('.', [0, pos1[0], pos1[1], 0]) - let pos2 = searchpos('', 'cneW') - else - let pos2 = searchpos('', 'cneW') - endif - let block = [pos1, pos2] - let content = zencoding#util#getContent(block) - if zencoding#util#pointInRegion(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' - let content = matchstr(content, mx)[:-2] . '/>' - call zencoding#util#setContent(block, content) - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if block[0][0] > 0 - call setpos('.', [0, block[0][0]-1, block[0][1], 0]) - else - call setpos('.', curpos) - return - endif - endif - endif - endwhile -endfunction - -function! zencoding#lang#html#removeTag() - let curpos = getpos('.') - while 1 - let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - let pos1 = searchpos(mx, 'bcnW') - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z0-9:_\-]*\).*$', '\1', '') - let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] - if content[-2:] == '/>' && zencoding#util#cursorInRegion(block) - call zencoding#util#setContent(block, '') - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if tag_name[0] == '/' - let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') - call setpos('.', [0, pos1[0], pos1[1], 0]) - let pos2 = searchpos('', 'cneW') - else - let pos2 = searchpos('', 'cneW') - endif - let block = [pos1, pos2] - let content = zencoding#util#getContent(block) - if zencoding#util#pointInRegion(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' - call zencoding#util#setContent(block, '') - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if block[0][0] > 0 - call setpos('.', [0, block[0][0]-1, block[0][1], 0]) - else - call setpos('.', curpos) - return - endif - endif - endif - endwhile -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/sass.vim b/sources_forked/zencoding/autoload/zencoding/lang/sass.vim deleted file mode 100755 index 6b89b893..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/sass.vim +++ /dev/null @@ -1,158 +0,0 @@ -function! zencoding#lang#sass#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#sass#parseIntoTree(abbr, type) - if a:abbr =~ '>' - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) - else - return zencoding#lang#css#parseIntoTree(a:abbr, a:type) - endif -endfunction - -function! zencoding#lang#sass#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let str = "" - - let current_name = current.name - let current_name = substitute(current.name, '\$$', itemno+1, '') - if len(current.name) > 0 - let str .= current_name - let tmp = '' - for attr in keys(current.attr) - let val = current.attr[attr] - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - if attr == 'id' - let str .= '#' . val - elseif attr == 'class' - let str .= '.' . val - else - let tmp .= attr . ': ' . val - endif - endfor - if len(tmp) > 0 - let str .= "\n" - for line in split(tmp, "\n") - let str .= indent . line . "\n" - endfor - else - let str .= "\n" - endif - - let inner = '' - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . indent, 'g') - let inner = substitute(inner, "\n" . indent . "$", "", 'g') - let str .= indent . inner - else - let text = zencoding#lang#css#toString(settings, current, type, inline, filters, itemno, indent) - let text = substitute(text, '\${cursor}', '', 'g') - let text = substitute(text, '\s*;$', '', '') - return text - endif - return str -endfunction - -function! zencoding#lang#sass#imageSize() -endfunction - -function! zencoding#lang#sass#encodeImage() -endfunction - -function! zencoding#lang#sass#parseTag(tag) -endfunction - -function! zencoding#lang#sass#toggleComment() -endfunction - -function! zencoding#lang#sass#balanceTag(flag) range - let block = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let n = curpos[1] - let ml = len(matchstr(getline(n), '^\s*')) - - if a:flag > 0 - if a:flag == 1 || !zencoding#util#regionIsValid(block) - let n = line('.') - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l < ml - let ml = l - break - endif - let n -= 1 - endwhile - endif - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l > ml - let ml = l - break - endif - let n += 1 - endwhile - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - endif -endfunction - -function! zencoding#lang#sass#moveNextPrev(flag) - let pos = search('""\|\(^\s*|\s*\zs\)', a:flag ? 'Wpb' : 'Wp') - if pos == 2 - startinsert! - elseif pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#sass#splitJoinTag() -endfunction - -function! zencoding#lang#sass#removeTag() -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/scss.vim b/sources_forked/zencoding/autoload/zencoding/lang/scss.vim deleted file mode 100755 index 39890af2..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/scss.vim +++ /dev/null @@ -1,121 +0,0 @@ -function! zencoding#lang#scss#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#scss#parseIntoTree(abbr, type) - if a:abbr =~ '>' - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) - else - return zencoding#lang#css#parseIntoTree(a:abbr, a:type) - endif -endfunction - -function! zencoding#lang#scss#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let str = "" - - let current_name = substitute(current.name, '\$$', itemno+1, '') - if len(current.name) > 0 - let str .= current_name - let tmp = '' - for attr in keys(current.attr) - let val = current.attr[attr] - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - if attr == 'id' - let str .= '#' . val - elseif attr == 'class' - let str .= '.' . val - else - let tmp .= attr . ': ' . val . ';' - endif - endfor - if len(tmp) > 0 - let str .= " {\n" - for line in split(tmp, "\n") - let str .= indent . line . "\n" - endfor - else - let str .= " {\n" - endif - - let inner = '' - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . "$", "", 'g') - let str .= indent . inner . "\n}\n" - else - return zencoding#lang#css#toString(settings, current, type, inline, filters, itemno, indent) - endif - return str -endfunction - -function! zencoding#lang#scss#imageSize() - call zencoding#lang#css#imageSize() -endfunction - -function! zencoding#lang#scss#encodeImage() - return zencoding#lang#css#encodeImage() -endfunction - -function! zencoding#lang#scss#parseTag(tag) - return zencoding#lang#css#parseTag(a:tag) -endfunction - -function! zencoding#lang#scss#toggleComment() - call zencoding#lang#css#toggleComment() -endfunction - -function! zencoding#lang#scss#balanceTag(flag) range - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - call setpos('.', curpos) - else - let curpos = getpos('.') - endif - if a:flag < 0 - let ret = searchpair('}', '', '.\zs{') - else - let ret = searchpair('{', '', '}', 'bW') - endif - if ret > 0 - let pos1 = getpos('.')[1:2] - if a:flag < 0 - let pos2 = searchpairpos('{', '', '}') - else - let pos2 = searchpairpos('{', '', '}') - endif - let block = [pos1, pos2] - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - if a:flag == -2 || a:flag == 2 - silent! exe "normal! gv" - else - call setpos('.', curpos) - endif -endfunction - -function! zencoding#lang#scss#moveNextPrev(flag) - call zencoding#lang#css#moveNextPrev(a:flag) -endfunction - -function! zencoding#lang#scss#splitJoinTag() - call zencoding#lang#css#splitJoinTag() -endfunction - -function! zencoding#lang#scss#removeTag() - call zencoding#lang#ss#removeTag() -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/slim.vim b/sources_forked/zencoding/autoload/zencoding/lang/slim.vim deleted file mode 100755 index 15bc968c..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/slim.vim +++ /dev/null @@ -1,276 +0,0 @@ -function! zencoding#lang#slim#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#slim#parseIntoTree(abbr, type) - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) -endfunction - -function! zencoding#lang#slim#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - let str = "" - - let comment_indent = '' - let comment = '' - let current_name = current.name - if dollar_expr - let current_name = substitute(current.name, '\$$', itemno+1, '') - endif - if len(current.name) > 0 - let str .= current_name - for attr in current.attrs_order - if !has_key(current.attr, attr) - continue - endif - let val = current.attr[attr] - if dollar_expr - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - endif - let attr = substitute(attr, '\$$', itemno+1, '') - let str .= ' ' . attr . '="' . val . '"' - endfor - - let inner = '' - if len(current.value) > 0 - let str .= "\n" - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . "$", "", 'g') - let str .= "\n" . indent . inner - endif - else - let str = current.value[1:-2] - if dollar_expr - let str = substitute(str, '\%(\\\)\@\ 0 - let match = matchstr(attrs, mx) - if len(match) == 0 - break - endif - let attr_match = matchlist(match, mx) - let name = attr_match[1] - let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] - let current.attr[name] = value - let current.attrs_order += [name] - let attrs = attrs[stridx(attrs, match) + len(match):] - endwhile - return current -endfunction - -function! zencoding#lang#slim#toggleComment() - let line = getline('.') - let space = matchstr(line, '^\s*') - if line =~ '^\s*/' - call setline('.', space . line[len(space)+1:]) - elseif line =~ '^\s*[a-z]' - call setline('.', space . '/' . line[len(space):]) - endif -endfunction - -function! zencoding#lang#slim#balanceTag(flag) range - let block = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let n = curpos[1] - let ml = len(matchstr(getline(n), '^\s*')) - - if a:flag > 0 - if a:flag == 1 || !zencoding#util#regionIsValid(block) - let n = line('.') - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l < ml - let ml = l - break - endif - let n -= 1 - endwhile - endif - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l > ml - let ml = l - break - endif - let n += 1 - endwhile - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - endif -endfunction - -function! zencoding#lang#slim#moveNextPrev(flag) - let pos = search('""\|\(^\s*|\s*\zs\)', a:flag ? 'Wpb' : 'Wp') - if pos == 2 - startinsert! - elseif pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#slim#splitJoinTag() - let n = line('.') - while n > 0 - if getline(n) =~ '^\s*\ze[a-z]' - let sn = n - let n += 1 - if getline(n) =~ '^\s*|' - while n <= line('$') - if getline(n) !~ '^\s*|' - break - endif - exe n "delete" - endwhile - call setpos('.', [0, sn, 1, 0]) - else - let spaces = matchstr(getline(sn), '^\s*') - call append(sn, spaces . ' | ') - call setpos('.', [0, sn+1, 1, 0]) - startinsert! - endif - break - endif - let n -= 1 - endwhile -endfunction - -function! zencoding#lang#slim#removeTag() - let n = line('.') - let ml = 0 - while n > 0 - if getline(n) =~ '^\s*\ze[a-z]' - let ml = len(matchstr(getline(n), '^\s*[a-z]')) - break - endif - let n -= 1 - endwhile - let sn = n - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - if sn == n - exe "delete" - else - exe sn "," (n-1) "delete" - endif -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/util.vim b/sources_forked/zencoding/autoload/zencoding/util.vim deleted file mode 100755 index 5a028c97..00000000 --- a/sources_forked/zencoding/autoload/zencoding/util.vim +++ /dev/null @@ -1,249 +0,0 @@ -"============================================================================== -" region utils -"============================================================================== -" deleteContent : delete content in region -" if region make from between '' and '' -" -------------------- -" begin: -" :end -" -------------------- -" this function make the content as following -" -------------------- -" begin::end -" -------------------- -function! zencoding#util#deleteContent(region) - let lines = getline(a:region[0][0], a:region[1][0]) - call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) - silent! exe "delete ".(a:region[1][0] - a:region[0][0]) - call setline(line('.'), lines[0][:a:region[0][1]-2] . lines[-1][a:region[1][1]]) -endfunction - -" change_content : change content in region -" if region make from between '' and '' -" -------------------- -" begin: -" :end -" -------------------- -" and content is -" -------------------- -" foo -" bar -" baz -" -------------------- -" this function make the content as following -" -------------------- -" begin:foo -" bar -" baz:end -" -------------------- -function! zencoding#util#setContent(region, content) - let newlines = split(a:content, '\n', 1) - let oldlines = getline(a:region[0][0], a:region[1][0]) - call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) - silent! exe "delete ".(a:region[1][0] - a:region[0][0]) - if len(newlines) == 0 - let tmp = '' - if a:region[0][1] > 1 - let tmp = oldlines[0][:a:region[0][1]-2] - endif - if a:region[1][1] >= 1 - let tmp .= oldlines[-1][a:region[1][1]:] - endif - call setline(line('.'), tmp) - elseif len(newlines) == 1 - if a:region[0][1] > 1 - let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0] - endif - if a:region[1][1] >= 1 - let newlines[0] .= oldlines[-1][a:region[1][1]:] - endif - call setline(line('.'), newlines[0]) - else - if a:region[0][1] > 1 - let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0] - endif - if a:region[1][1] >= 1 - let newlines[-1] .= oldlines[-1][a:region[1][1]:] - endif - call setline(line('.'), newlines[0]) - call append(line('.'), newlines[1:]) - endif -endfunction - -" select_region : select region -" this function make a selection of region -function! zencoding#util#selectRegion(region) - call setpos('.', [0, a:region[1][0], a:region[1][1], 0]) - normal! v - call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) -endfunction - -" point_in_region : check point is in the region -" this function return 0 or 1 -function! zencoding#util#pointInRegion(point, region) - if !zencoding#util#regionIsValid(a:region) | return 0 | endif - if a:region[0][0] > a:point[0] | return 0 | endif - if a:region[1][0] < a:point[0] | return 0 | endif - if a:region[0][0] == a:point[0] && a:region[0][1] > a:point[1] | return 0 | endif - if a:region[1][0] == a:point[0] && a:region[1][1] < a:point[1] | return 0 | endif - return 1 -endfunction - -" cursor_in_region : check cursor is in the region -" this function return 0 or 1 -function! zencoding#util#cursorInRegion(region) - if !zencoding#util#regionIsValid(a:region) | return 0 | endif - let cur = getpos('.')[1:2] - return zencoding#util#pointInRegion(cur, a:region) -endfunction - -" region_is_valid : check region is valid -" this function return 0 or 1 -function! zencoding#util#regionIsValid(region) - if a:region[0][0] == 0 || a:region[1][0] == 0 | return 0 | endif - return 1 -endfunction - -" search_region : make region from pattern which is composing start/end -" this function return array of position -function! zencoding#util#searchRegion(start, end) - return [searchpairpos(a:start, '', a:end, 'bcnW'), searchpairpos(a:start, '\%#', a:end, 'nW')] -endfunction - -" get_content : get content in region -" this function return string in region -function! zencoding#util#getContent(region) - if !zencoding#util#regionIsValid(a:region) - return '' - endif - let lines = getline(a:region[0][0], a:region[1][0]) - if a:region[0][0] == a:region[1][0] - let lines[0] = lines[0][a:region[0][1]-1:a:region[1][1]-1] - else - let lines[0] = lines[0][a:region[0][1]-1:] - let lines[-1] = lines[-1][:a:region[1][1]-1] - endif - return join(lines, "\n") -endfunction - -" region_in_region : check region is in the region -" this function return 0 or 1 -function! zencoding#util#regionInRegion(outer, inner) - if !zencoding#util#regionIsValid(a:inner) || !zencoding#util#regionIsValid(a:outer) - return 0 - endif - return zencoding#util#pointInRegion(a:inner[0], a:outer) && zencoding#util#pointInRegion(a:inner[1], a:outer) -endfunction - -" get_visualblock : get region of visual block -" this function return region of visual block -function! zencoding#util#getVisualBlock() - return [[line("'<"), col("'<")], [line("'>"), col("'>")]] -endfunction - -"============================================================================== -" html utils -"============================================================================== -function! zencoding#util#getContentFromURL(url) - let res = system(printf("%s %s", g:zencoding_curl_command, shellescape(substitute(a:url, '#.*', '', '')))) - let s1 = len(split(res, '?')) - let utf8 = iconv(res, 'utf-8', &encoding) - let s2 = len(split(utf8, '?')) - return (s2 == s1 || s2 >= s1 * 2) ? utf8 : res -endfunction - -function! zencoding#util#getTextFromHTML(buf) - let threshold_len = 100 - let threshold_per = 0.1 - let buf = a:buf - - let buf = strpart(buf, stridx(buf, '')) - let buf = substitute(buf, ']*>.\{-}', '', 'g') - let buf = substitute(buf, ']*>.\{-}', '', 'g') - let res = '' - let max = 0 - let mx = '\(]\{-}>\)\|\(<\/td>\)\|\(]\{-}>\)\|\(<\/div>\)' - let m = split(buf, mx) - for str in m - let c = split(str, '<[^>]*?>') - let str = substitute(str, '<[^>]\{-}>', ' ', 'g') - let str = substitute(str, '>', '>', 'g') - let str = substitute(str, '<', '<', 'g') - let str = substitute(str, '"', '"', 'g') - let str = substitute(str, ''', "'", 'g') - let str = substitute(str, ' ', ' ', 'g') - let str = substitute(str, '¥', '\¥', 'g') - let str = substitute(str, '&', '\&', 'g') - let str = substitute(str, '^\s*\(.*\)\s*$', '\1', '') - let str = substitute(str, '\s\+', ' ', 'g') - let l = len(str) - if l > threshold_len - let per = (l+0.0) / len(c) - if max < l && per > threshold_per - let max = l - let res = str - endif - endif - endfor - let res = substitute(res, '^\s*\(.*\)\s*$', '\1', 'g') - return res -endfunction - -function! zencoding#util#getImageSize(fn) - let fn = a:fn - - if zencoding#util#isImageMagickInstalled() - return zencoding#util#imageSizeWithImageMagick(fn) - endif - - if filereadable(fn) - let hex = substitute(system('xxd -p "'.fn.'"'), '\n', '', 'g') - else - let hex = substitute(system(g:zencoding_curl_command.' "'.fn.'" | xxd -p'), '\n', '', 'g') - endif - - let [width, height] = [-1, -1] - if hex =~ '^89504e470d0a1a0a' - let width = eval('0x'.hex[32:39]) - let height = eval('0x'.hex[40:47]) - endif - if hex =~ '^ffd8' - let pos = 4 - while pos < len(hex) - let bs = hex[pos+0:pos+3] - let pos += 4 - if bs == 'ffc0' || bs == 'ffc2' - let pos += 6 - let height = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3]) - let pos += 4 - let width = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3]) - break - elseif bs =~ 'ffd[9a]' - break - elseif bs =~ 'ff\(e[0-9a-e]\|fe\|db\|dd\|c4\)' - let pos += (eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3])) * 2 - endif - endwhile - endif - if hex =~ '^47494638' - let width = eval('0x'.hex[14:15].hex[12:13]) - let height = eval('0x'.hex[18:19].hex[16:17]) - endif - - return [width, height] -endfunction - -function! zencoding#util#imageSizeWithImageMagick(fn) - let img_info = system('identify -format "%wx%h" "'.a:fn.'"') - let img_size = split(substitute(img_info, '\n', '', ''), 'x') - let width = img_size[0] - let height = img_size[1] - return [width, height] -endfunction - -function! zencoding#util#isImageMagickInstalled() - if !get(s:, 'zencoding_use_identify', 1) - return 0 - endif - return executable('identify') -endfunction diff --git a/sources_forked/zencoding/doc/zencoding.txt b/sources_forked/zencoding/doc/zencoding.txt deleted file mode 100755 index ee453283..00000000 --- a/sources_forked/zencoding/doc/zencoding.txt +++ /dev/null @@ -1,438 +0,0 @@ -*zencoding.txt* ZenCoding for Vim - - ------------------------------------------------------- - ZenCoding: vim plugins for HTML and CSS hi-speed coding - ------------------------------------------------------- - -Author: Yasuhiro Matsumoto -WebSite: http://mattn.kaoriya.net/ -Repository: http://github.com/mattn/zencoding-vim -Site: http://mattn.github.com/zencoding-vim -License: BSD style license - -============================================================================== -CONTENTS *zencoding-contents* - -Introduction |zencoding-introduction| -Install |zencoding-install| -Tutorial |zencoding-tutorial| - 1. Expand Abbreviation |zencoding-expandabbr| - 2. Wrap with Abbreviation |zencoding-wrap-wtih-abbreviation| - 3. Balance Tag Inward |zencoding-balance-tag-inward| - 4. Balance Tag Outward |zencoding-balance-tag-outward| - 5. Go to Next Edit Point |zencoding-goto-next-point| |n| - 6. Go to Previous Edit Point |zencoding-goto-previous-point| - 7. Update Size |zencoding-update-image-size| - 8. Merge Lines |zencoding-merge-lines| - 9. Remove Tag |zencoding-remove-tag| - 10. Split/Join Tag |zencoding-split-join-tag| - 11. Toggle Comment |zencoding-toggle-comment| - 12. Make anchor from URL |zencoding-make-anchor-url| - 13. Make quoted text from URL |zencoding-quoted-text-url| - 14. Code Pretty |zencoding-code-pretty| -Customize |zencoding-customize| - 1. Key Mappings |zencoding-customize-keymappings| - 2. Indent Size |zencoding-indent-size| - 3. Define Tag's Behavior |zencoding-define-tags-behavior| - 4. Complete Tag |zencoding-complete-tag| -Links |zencoding-links| -ToDo |zencoding-todo| - -============================================================================== -INTRODUCTION *zencoding-introduction* *zencoding* - -|ZenCoding| is an editor plugin for high-speed HTML, XML, XSL (or any other -structured code format) coding and editing. The core of this plugin is a -powerful abbreviation engine which allows you to expand expressions?similar to -CSS selectors?into HTML code: -> - div#page>div.logo+ul#navigation>li*5>a -< -...can be expanded into: -> -

    - - -
    -< -Read more about current Zen Coding syntax - http://code.google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn - -Abbreviation engine has a modular structure which allows you to expand -abbreviations into different languages. Zen Coding currently supports CSS, -HTML, XML/XSL and HAML, Slim languages via filters. - -============================================================================== -INSTALL *zencoding-install* - -Install the distributed files into Vim runtime directory which is usually -~/.vim/, or $HOME/vimfiles on Windows. - -If you install pathogen that provided from Tim Pope, you should extract the -file into 'bundle' directory. - -============================================================================== -TUTORIAL *zencoding-tutorial* - -If you are seeing this file as :help, then you can't edit this file. -You should copy this section and create new buffer, paste and write as -'zencoding-tutor.txt'. Formally, open the file to start tutorial. - -1. Expand Abbreviation *zencoding-expandabbr* *,* - - Type abbreviation as 'div>p#foo$*3>a' and type |,|. -> -
    -

    - -

    -

    - -

    -

    - -

    -
    -< -2. Wrap with Abbreviation *zencoding-wrap-wtih-abbreviation* *v_,* - - Write as below. -> - test1 - test2 - test3 -< - Then do visual select(line wize) and type |,|. - If you request 'Tag:', then type 'ul>li*'. -> -
      -
    • test1
    • -
    • test2
    • -
    • test3
    • -
    -< - If you type tag as 'blockquote', then you'll see as following. -> -
    - test1 - test2 - test3 -
    -< -3. Balance Tag Inward *zencoding-balance-tag-inward* *d* - - To select inward of ul tag, type |d| in insert mode. -> -
      - *
    • -
    • -
    • -
    -< - If cursor is at '*', |d| select from begin of
      to end of
    . - If cursor is at first of
  • , it select
  • . - -4. Balance Tag Outward *zencoding-balance-tag-outward* *D* - - To select outward of ul tag, insert mode, type D in insert mode. -> -
      - *
    • -
    • -
    • -
    -< - If cursor is at '*', |D| select from next letter of
      to previous - letter of
    . - If cursor is at first of
  • , it select
  • . - -5. Go to Next Edit Point *zencoding-goto-next-point* *n* - - To jump next point that need to edit, type |n| in insert mode. -> - *
    foo
    -
  • -< - If cursor is at '*', |n| move a cursor into attribute value of div - specified id as 'foo'. And type again |n| move a cursor into inner of - div specified id as 'bar'. - -6. Go to Previous Edit Point *zencoding-goto-previous-point* *N* - - To jump previous point that need to edit, type |N| in insert mode. -> -
    foo
    -
    * -< - If cursor is at '*', |N| move a cursor into div specified id as 'bar'. - And type again |N| move a cursor into attribute value of 'foo'. - -7. Update Size *zencoding-update-image-size* *i* - - To expand or update size of image, type |i| on img tag -> - -< - Type 'i' on img tag -> - -< - If you change image, then type it again. it will be following. -> - -< -8. Merge Lines *zencoding-merge-lines* - - To join multi line text like following, type |J|. -> -
      -
    • -
    • -
    • -
    -< - If you select part of line include
  • and type |m|, it will be - following. -> -
      -
    • -
    -< -9. Remove Tag *zencoding-remove-tag* *k* - - To remove tag in the block, type |k|. -> - -< - Type |k| in insert mode, then -> -
    - -
    -< - And type |k| in there again, then div will be removed. - -10. Split/Join Tag *zencoding-split-join-tag* *j* - - To join block, type |j|. -> -
    - cursor is here -
    -< - Type |j| in insert mode. then, -> -
    -< - And type |j| in there again. -> -
    -
    -< -11. Toggle Comment *zencoding-toggle-comment* */* - - Move cursor to block -> -
    - hello world -
    -< - Type '/' in insert mode. -> - -< - Type '/' in there again. -> -
    - hello world -
    -< -12. Make anchor from URL *zencoding-make-anchor-url* *a* - - Move cursor to URL -> - http://www.google.com/ -< - Type |a| -> - Google -< -13. Make quoted text from URL *zencoding-quoted-text-url* *A* - - Move cursor to URL -> - http://github.com/ -< - Type |A| -> -
    - Secure source code hosting and collaborative development - GitHub
    -

    How does it work? Get up and running in seconds by forking a project, pushing an existing repository...

    - http://github.com/ -
    -< -14. Code Pretty *zencoding-code-pretty* *c* - - Select code block, for example select following code from "int main()". -> -

    Writing in C language

    - - int main() { - puts("hello world"); - } -< - Type |c| -> -

    Writing in C language

    - - int main() {
    -   puts("hello world");
    - }
    -< -============================================================================== -CUSTOMIZE *zencoding-customize* - -1. Key Mapping *zencoding-customize-keymappings* - - To specify leading key for expanding or balance tag, or for all, - Add this line in your vimrc: > -> - let g:user_zen_leader_key = '' -< - Or if you prefer to map for each actions, then you set each variables. - - 'user_zen_expandabbr_key' - 'user_zen_expandword_key' - 'user_zen_balancetaginward_key' - 'user_zen_balancetagoutward_key' - 'user_zen_next_key' - 'user_zen_prev_key' - 'user_zen_imagesize_key' - 'user_zen_togglecomment_key' - 'user_zen_splitjointag_key' - 'user_zen_removetag_key' - 'user_zen_anchorizeurl_key' - 'user_zen_anchorizesummary_key' - -2. Indent Size *zencoding-indent-size* - - To change indent size of html, add this code in your vimrc. -> - let g:user_zen_settings = { - \ 'html' : { - \ 'indentation' : ' ' - \ }, - \} -< - If you prefer to change global indent size then add this. -> - let g:user_zen_settings = { - \ 'indentation' : ' ' - \} -< -3. Define Tag's Behavior *zencoding-define-tags-behavior* - - zencoding.vim can change behavior of expanding abbreviation for each - filetypes as |Dictionary|. for details, see official site of zencoding. - for example, vimmer can add following. -> - let g:user_zen_settings = { - \ 'lang' : 'ja', - \ 'html' : { - \ 'filters' : 'html', - \ 'indentation' : ' ' - \ }, - \ 'perl' : { - \ 'indentation' : ' ', - \ 'aliases' : { - \ 'req' : "require '|'" - \ }, - \ 'snippets' : { - \ 'use' : "use strict\nuse warnings\n\n", - \ 'w' : "warn \"${cursor}\";", - \ }, - \ }, - \ 'php' : { - \ 'extends' : 'html', - \ 'filters' : 'html,c', - \ }, - \ 'css' : { - \ 'filters' : 'fc', - \ }, - \ 'javascript' : { - \ 'snippets' : { - \ 'jq' : "$(function() {\n\t${cursor}${child}\n});", - \ 'jq:each' : "$.each(arr, function(index, item)\n\t${child}\n});", - \ 'fn' : "(function() {\n\t${cursor}\n})();", - \ 'tm' : "setTimeout(function() {\n\t${cursor}\n}, 100);", - \ }, - \ }, - \ 'java' : { - \ 'indentation' : ' ', - \ 'snippets' : { - \ 'main': "public static void main(String[] args) {\n\t|\n}", - \ 'println': "System.out.println(\"|\");", - \ 'class': "public class | {\n}\n", - \ }, - \ }, - \} -< -4. Complete Tag *zencoding-complete-tag* - - If you want to complete tags using |omnifunc| then add this. -> - let g:use_zen_complete_tag = 1 -< - -5. Enable functions in different mode - - If you want to use zencoding only in some modes, set an mode option: - - let g:user_zen_mode='n' "only enable normal mode functions, or - let g:user_zen_mode='inv' "enable all functions, which is equal to - let g:user_zen_mode='a' "enable all function in all mode. - -============================================================================== -LINKS *zencoding-links* - -zen-coding official site: - http://code.google.com/p/zen-coding/ - -zencoding.vim: - http://mattn.github.com/zencoding-vim - -development repository: - https://github.com/mattn/zencoding-vim - -my blog posts about zencoding-vim: - http://mattn.kaoriya.net/software/vim/20100222103327.htm - http://mattn.kaoriya.net/software/vim/20100306021632.htm - -japanese blog posts about zencoding-vim: - http://d.hatena.ne.jp/idesaku/20100424/1272092255 - http://d.hatena.ne.jp/griefworker/20110118/vim_zen_coding - http://d.hatena.ne.jp/sakurako_s/20110126/1295988873 - http://looxu.blogspot.jp/2010/02/zencodingvimhtml.html - -tutorial traslated in chinese: - http://www.zfanw.com/blog/zencoding-vim-tutorial-chinese.html - -============================================================================== -TODO *zencoding-todo* - * wrapping inline selected. - * more documents. - * more contributor. - * more time to improve zencodig.vim. - -============================================================================== -vim:tw=78:ts=8:ft=help:norl:noet:fen:fdl=0: diff --git a/sources_forked/zencoding/plugin/zencoding.vim b/sources_forked/zencoding/plugin/zencoding.vim deleted file mode 100755 index e627653d..00000000 --- a/sources_forked/zencoding/plugin/zencoding.vim +++ /dev/null @@ -1,215 +0,0 @@ -"============================================================================= -" File: zencoding.vim -" Author: Yasuhiro Matsumoto -" Last Change: 13-Feb-2013. -" Version: 0.75 -" WebPage: http://github.com/mattn/zencoding-vim -" Description: vim plugins for HTML and CSS hi-speed coding. -" SeeAlso: http://code.google.com/p/zen-coding/ -" Usage: -" -" This is vim script support expanding abbreviation like zen-coding. -" ref: http://code.google.com/p/zen-coding/ -" -" Type abbreviation -" +------------------------------------- -" | html:5_ -" +------------------------------------- -" "_" is a cursor position. and type "," (Ctrl+y and Comma) -" NOTE: Don't worry about key map. you can change it easily. -" +------------------------------------- -" | -" | -" | -" | -" | -" | -" | -" | _ -" | -" | -" +------------------------------------- -" Type following -" +------------------------------------- -" | div#foo$*2>div.bar -" +------------------------------------- -" And type "," -" +------------------------------------- -" |
    -" |
    _
    -" |
    -" |
    -" |
    -" |
    -" +------------------------------------- -" -" Tips: -" -" You can customize behavior of expanding with overriding config. -" This configuration will be marged at loading plugin. -" -" let g:user_zen_settings = { -" \ 'indentation' : ' ', -" \ 'perl' : { -" \ 'aliases' : { -" \ 'req' : 'require ' -" \ }, -" \ 'snippets' : { -" \ 'use' : "use strict\nuse warnings\n\n", -" \ 'warn' : "warn \"|\";", -" \ } -" \ } -" \} -" -" You can set language attribute in html using 'zen_settings.lang'. -" -" GetLatestVimScripts: 2981 1 :AutoInstall: zencoding.vim -" script type: plugin - -if &cp || (exists('g:loaded_zencoding_vim') && g:loaded_zencoding_vim) - finish -endif -let g:loaded_zencoding_vim = 1 - -let s:save_cpo = &cpo -set cpo&vim - -if !exists('g:zencoding_debug') - let g:zencoding_debug = 0 -endif - -if !exists('g:zencoding_curl_command') - let g:zencoding_curl_command = 'curl -s -L -A Mozilla/5.0' -endif - -if exists('g:use_zen_complete_tag') && g:use_zen_complete_tag - setlocal omnifunc=zencoding#CompleteTag -endif - -if !exists('g:user_zen_leader_key') - let g:user_zen_leader_key = '' -endif - -function! s:install_plugin_i() - for item in [ - \ {'mode': 'i', 'var': 'user_zen_expandabbr_key', 'key': ',', 'plug': 'ZenCodingExpandAbbr', 'func': 'u:call zencoding#expandAbbr(0,"")a'}, - \ {'mode': 'i', 'var': 'user_zen_expandword_key', 'key': ';', 'plug': 'ZenCodingExpandWord', 'func': 'u:call zencoding#expandAbbr(1,"")a'}, - \ {'mode': 'i', 'var': 'user_zen_balancetaginward_key', 'key': 'd', 'plug': 'ZenCodingBalanceTagInwardInsert', 'func': ':call zencoding#balanceTag(1)'}, - \ {'mode': 'i', 'var': 'user_zen_balancetagoutward_key', 'key': 'D', 'plug': 'ZenCodingBalanceTagOutwardInsert', 'func': ':call zencoding#balanceTag(-1)'}, - \ {'mode': 'i', 'var': 'user_zen_next_key', 'key': 'n', 'plug': 'ZenCodingNext', 'func': ':call zencoding#moveNextPrev(0)'}, - \ {'mode': 'i', 'var': 'user_zen_prev_key', 'key': 'N', 'plug': 'ZenCodingPrev', 'func': ':call zencoding#moveNextPrev(1)'}, - \ {'mode': 'i', 'var': 'user_zen_imagesize_key', 'key': 'i', 'plug': 'ZenCodingImageSize', 'func': ':call zencoding#imageSize()a'}, - \ {'mode': 'i', 'var': 'user_zen_togglecomment_key', 'key': '/', 'plug': 'ZenCodingToggleComment', 'func': ':call zencoding#toggleComment()a'}, - \ {'mode': 'i', 'var': 'user_zen_splitjointag_key', 'key': 'j', 'plug': 'ZenCodingSplitJoinTagInsert', 'func': ':call zencoding#splitJoinTag()'}, - \ {'mode': 'i', 'var': 'user_zen_removetag_key', 'key': 'k', 'plug': 'ZenCodingRemoveTag', 'func': ':call zencoding#removeTag()a'}, - \ {'mode': 'i', 'var': 'user_zen_anchorizeurl_key', 'key': 'a', 'plug': 'ZenCodingAnchorizeURL', 'func': ':call zencoding#anchorizeURL(0)a'}, - \ {'mode': 'i', 'var': 'user_zen_anchorizesummary_key', 'key': 'A', 'plug': 'ZenCodingAnchorizeSummary', 'func': ':call zencoding#anchorizeURL(1)a'}, - \] - - if !hasmapto(''.item.plug, item.mode) - exe item.mode . 'noremap ' . item.plug . ' ' . item.func - endif - if !exists('g:' . item.var) - endif - if exists('g:' . item.var) - let key = eval('g:' . item.var) - else - let key = g:user_zen_leader_key . item.key - endif - if len(maparg(key, item.mode)) == 0 - exe item.mode . 'map ' . key . ' ' . item.plug - endif - endfor -endfunction - -function! s:install_plugin_n() - for item in [ - \ {'mode': 'n', 'var': 'user_zen_expandabbr_key', 'key': ',', 'plug': 'ZenCodingExpandNormal', 'func': ':call zencoding#expandAbbr(3,"")'}, - \ {'mode': 'n', 'var': 'user_zen_expandword_key', 'key': ',', 'plug': 'ZenCodingExpandWord', 'func': ':call zencoding#expandAbbr(1,"")'}, - \ {'mode': 'n', 'var': 'user_zen_balancetaginward_key', 'key': 'd', 'plug': 'ZenCodingBalanceTagInwardNormal', 'func': ':call zencoding#balanceTag(1)'}, - \ {'mode': 'n', 'var': 'user_zen_balancetagoutward_key', 'key': 'D', 'plug': 'ZenCodingBalanceTagOutwardNormal', 'func': ':call zencoding#balanceTag(-1)'}, - \ {'mode': 'n', 'var': 'user_zen_next_key', 'key': 'n', 'plug': 'ZenCodingNext', 'func': ':call zencoding#moveNextPrev(0)'}, - \ {'mode': 'n', 'var': 'user_zen_prev_key', 'key': 'N', 'plug': 'ZenCodingPrev', 'func': ':call zencoding#moveNextPrev(1)'}, - \ {'mode': 'n', 'var': 'user_zen_imagesize_key', 'key': 'i', 'plug': 'ZenCodingImageSize', 'func': ':call zencoding#imageSize()'}, - \ {'mode': 'n', 'var': 'user_zen_togglecomment_key', 'key': '/', 'plug': 'ZenCodingToggleComment', 'func': ':call zencoding#toggleComment()'}, - \ {'mode': 'n', 'var': 'user_zen_splitjointag_key', 'key': 'j', 'plug': 'ZenCodingSplitJoinTagNormal', 'func': ':call zencoding#splitJoinTag()'}, - \ {'mode': 'n', 'var': 'user_zen_removetag_key', 'key': 'k', 'plug': 'ZenCodingRemoveTag', 'func': ':call zencoding#removeTag()'}, - \ {'mode': 'n', 'var': 'user_zen_anchorizeurl_key', 'key': 'a', 'plug': 'ZenCodingAnchorizeURL', 'func': ':call zencoding#anchorizeURL(0)'}, - \ {'mode': 'n', 'var': 'user_zen_anchorizesummary_key', 'key': 'A', 'plug': 'ZenCodingAnchorizeSummary', 'func': ':call zencoding#anchorizeURL(1)'}, - \] - - if !hasmapto(''.item.plug, item.mode) - exe item.mode . 'noremap ' . item.plug . ' ' . item.func - endif - if !exists('g:' . item.var) - endif - if exists('g:' . item.var) - let key = eval('g:' . item.var) - else - let key = g:user_zen_leader_key . item.key - endif - if len(maparg(key, item.mode)) == 0 - exe item.mode . 'map ' . key . ' ' . item.plug - endif - endfor -endfunction - -function! s:install_plugin_v() - for item in [ - \ {'mode': 'v', 'var': 'user_zen_expandabbr_key', 'key': ',', 'plug': 'ZenCodingExpandVisual', 'func': ':call zencoding#expandAbbr(2,"")'}, - \ {'mode': 'v', 'var': 'user_zen_balancetaginward_key', 'key': 'd', 'plug': 'ZenCodingBalanceTagInwardVisual', 'func': ':call zencoding#balanceTag(2)'}, - \ {'mode': 'v', 'var': 'user_zen_balancetagoutward_key', 'key': 'D', 'plug': 'ZenCodingBalanceTagOutwardVisual', 'func': ':call zencoding#balanceTag(-2)'}, - \ {'mode': 'v', 'var': 'user_zen_mergelines_key', 'key': 'm', 'plug': 'ZenCodingMergeLines', 'func': ':call zencoding#mergeLines()'}, - \ {'mode': 'v', 'var': 'user_zen_codepretty_key', 'key': 'c', 'plug': 'ZenCodingCodePretty', 'func': ':call zencoding#codePretty()'}, - \] - - if !hasmapto(''.item.plug, item.mode) - exe item.mode . 'noremap ' . item.plug . ' ' . item.func - endif - if !exists('g:' . item.var) - endif - if exists('g:' . item.var) - let key = eval('g:' . item.var) - else - let key = g:user_zen_leader_key . item.key - endif - if len(maparg(key, item.mode)) == 0 - exe item.mode . 'map ' . key . ' ' . item.plug - endif - endfor -endfunction - - -if exists('g:user_zen_mode') - let imode = matchstr(g:user_zen_mode, '[ai]') - let nmode = matchstr(g:user_zen_mode, '[an]') - let vmode = matchstr(g:user_zen_mode, '[av]') - - if !empty(imode) - call s:install_plugin_i() - endif - - if !empty(nmode) - call s:install_plugin_n() - endif - - if !empty(vmode) - call s:install_plugin_v() - endif -else - call s:install_plugin_i() - call s:install_plugin_n() - call s:install_plugin_v() -endif - - -delfunction s:install_plugin_i -delfunction s:install_plugin_n -delfunction s:install_plugin_v - -command! -nargs=1 Zen call zencoding#expandAbbr(4, ) - -let &cpo = s:save_cpo -unlet s:save_cpo - -" vim:set et: diff --git a/sources_forked/zencoding/unittest.vim b/sources_forked/zencoding/unittest.vim deleted file mode 100755 index c4fcc3d2..00000000 --- a/sources_forked/zencoding/unittest.vim +++ /dev/null @@ -1,794 +0,0 @@ -let s:sfile = expand('') - -function! s:reload(d) - exe "so" a:d."/plugin/zencoding.vim" - for f in split(globpath(a:d, 'autoload/**/*.vim'), "\n") - silent! exe "so" f - endfor -endfunction - -function! s:show_type(type) - echohl Search | echon "[" a:type "]\n" | echohl None - echo "\r" -endfunction - -function! s:show_category(category) - echohl MatchParen | echon "[" a:category "]\n" | echohl None - echo "\r" -endfunction - -function! s:show_pass(pass) - echohl Title | echo "pass".a:pass."\n" | echohl None -endfunction - -function! s:show_done() - echohl IncSearch | echo "done" | echohl None -endfunction - -function! s:escape(str) - let str = a:str - let str = substitute(str, "\n", '\\n', 'g') - let str = substitute(str, "\t", '\\t', 'g') - return str -endfunction - -function! s:show_title(no, title) - let title = s:escape(a:title) - let width = &columns - 23 - echohl MoreMsg | echon "\rtesting #".printf("%03d", a:no) - echohl None | echon ": " . (len(title) < width ? (title.repeat(' ', width-len(title))) : strpart(title, 0, width)) . ' ... ' -endfunction - -function! s:show_skip(no, title) - let title = s:escape(a:title) - let width = &columns - 23 - echohl WarningMsg | echon "\rskipped #".printf("%03d", a:no) - echohl None | echon ": " . (len(title) < width ? (title.repeat(' ', width-len(title))) : strpart(title, 0, width)) . ' ... ' - echo "" -endfunction - -function! s:show_ok() - echohl Title | echon "ok\n" | echohl None - echo "" -endfunction - -function! s:show_ng(no, expect, got) - echohl WarningMsg | echon "ng\n" | echohl None - echohl ErrorMsg | echo "failed test #".a:no | echohl None - set more - echohl WarningMsg | echo printf("expect(%d):", len(a:expect)) | echohl None - echo join(split(a:expect, "\n", 1), "|\n") - echohl WarningMsg | echo printf("got(%d):", len(a:got)) | echohl None - echo join(split(a:got, "\n", 1), "|\n") - let cs = split(a:expect, '\zs') - for c in range(len(cs)) - if c < len(a:got) - if a:expect[c] != a:got[c] - echohl WarningMsg | echo "differ at:" | echohl None - echo a:expect[c :-1] - break - endif - endif - endfor - echo "" - throw "stop" -endfunction - -function! s:test(...) - let type = get(a:000, 0, '') - let name = get(a:000, 1, '') - let index = get(a:000, 2, '') - - let testgroups = eval(join(filter(split(substitute(join(readfile(s:sfile), "\n"), '.*\nfinish\n', '', ''), '\n', 1), "v:val !~ '^\"'"))) - for testgroup in testgroups - if len(type) > 0 && testgroup.type != type | continue | endif - call s:show_type(testgroup.type) - for category in testgroup.categories - if len(name) > 0 && substitute(category.name,' ','_','g') != name | continue | endif - call s:show_category(category.name) - let tests = category.tests - let start = reltime() - for n in range(len(tests)) - if len(index) > 0 && n != index | continue | endif - let query = tests[n].query - let result = tests[n].result - if has_key(tests[n], 'skip') && tests[n].skip != 0 - call s:show_skip(n+1, query) - continue - endif - if stridx(query, '$$$$') != -1 - silent! 1new - silent! exe "setlocal ft=".testgroup.type - silent! let key = matchstr(query, '.*\$\$\$\$\zs.*\ze\$\$\$\$') - if len(key) > 0 - exe printf('let key = "%s"', key) - else - let key = "\," - endif - silent! let query = substitute(query, '\$\$\$\$.*\$\$\$\$', '$$$$', '') - silent! call setline(1, split(query, "\n")) - let cmd = "normal gg0/\\$\\$\\$\\$\ri\\\\".key - if stridx(result, '$$$$') != -1 - let cmd .= '$$$$' - endif - silent! exe cmd - unlet! res | let res = join(getline(1, line('$')), "\n") - silent! bw! - call s:show_title(n+1, query) - else - call s:show_title(n+1, query) - unlet! res | let res = zencoding#ExpandWord(query, testgroup.type, 0) - endif - if stridx(result, '$$$$') != -1 - if res ==# result - call s:show_ok() - else - call s:show_ng(n+1, result, res) - endif - else - if res ==# result - call s:show_ok() - else - call s:show_ng(n+1, result, res) - endif - endif - endfor - call s:show_pass(reltimestr(reltime(start))) - endfor - endfor -endfunction - -function! s:do_tests(...) - try - if exists('g:user_zen_settings') - let s:old_user_zen_settings = g:user_zen_settings - let g:user_zen_settings = { 'indentation': "\t" } - endif - let oldmore = &more - call s:reload(fnamemodify(s:sfile, ':h')) - let &more = 0 - call call('s:test', a:000) - call s:show_done() - catch - echohl ErrorMsg | echomsg v:exception | echohl None - finally - let &more=oldmore - if exists('g:user_zen_settings') - let g:user_zen_settings = s:old_user_zen_settings - endif - endtry -endfunction - -function! g:zencoding_unittest_complete(arglead, cmdline, cmdpos) - let args = split(a:cmdline, '\s\+', 1) - let testgroups = eval(join(filter(split(substitute(join(readfile(s:sfile), "\n"), '.*\nfinish\n', '', ''), '\n', 1), "v:val !~ '^\"'"))) - try - if len(args) == 2 - return filter(map(testgroups, 'v:val.type'), 'stridx(v:val,args[1])!=-1') - elseif len(args) == 3 - return map(filter(testgroups, 'v:val.type==args[1]')[0].categories, 'substitute(v:val.name," ","_","g")') - endif - catch - endtry - return [] -endfunction - -command! -nargs=* -complete=customlist,g:zencoding_unittest_complete ZenCodingUnitTest call s:do_tests() -if s:sfile == expand('%:p') - ZenCodingUnitTest -endif - -finish -[ -{ - 'type': "html", - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div", - 'result': "
    \n", - }, - { - 'query': "div#wrapper", - 'result': "
    \n", - }, - { - 'query': "div.box", - 'result': "
    \n", - }, - { - 'query': "a[title=TITLE]", - 'result': "\n", - }, - { - 'query': "div#wrapper.box", - 'result': "
    \n", - }, - { - 'query': "div#wrapper.box.current", - 'result': "
    \n", - }, - { - 'query': "div#wrapper.box.current[title=TITLE rel]", - 'result': "
    \n", - }, - { - 'query': "div#main+div#sub", - 'result': "
    \n
    \n", - }, - { - 'query': "div#main>div#sub", - 'result': "
    \n\t
    \n
    \n", - }, - { - 'query': "html:xt>div#header>div#logo+ul#nav>li.item-$*5>a", - 'result': "\n\n\n\t\n\t\n\n\n\t
    \n\t\t
    \n\t\t
      \n\t\t\t
    • \n\t\t\t
    • \n\t\t\t
    • \n\t\t\t
    • \n\t\t\t
    • \n\t\t
    \n\t
    \n\t\n\n", - }, - { - 'query': "ol>li*2", - 'result': "
      \n\t
    1. \n\t
    2. \n
    \n", - }, - { - 'query': "a", - 'result': "\n", - }, - { - 'query': "obj", - 'result': "\n", - }, - { - 'query': "cc:ie6>p+blockquote#sample$.so.many.classes*2", - 'result': "", - }, - { - 'query': "html:4t>div#wrapper>div#header+div#contents+div#footer", - 'result': "\n\n\n\t\n\t\n\n\n\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t
    \n\t\n\n", - }, - { - 'query': "a[href=http://www.google.com/].foo#hoge", - 'result': "\n", - }, - { - 'query': "a[href=http://www.google.com/]{Google}", - 'result': "Google\n", - }, - { - 'query': "{ZenCoding}", - 'result': "ZenCoding", - }, - { - 'query': "a+b", - 'result': "\n\n", - }, - { - 'query': "a>b>i\n", - }, - { - 'query': "a>b>i^b", - 'result': "\n", - }, - { - 'query': "a>b>i<\n\n", - }, - { - 'query': "a>b>i^^b", - 'result': "\n\n", - }, - { - 'query': "blockquote>b>i<\n\n", - }, - { - 'query': "blockquote>b>i^^b", - 'result': "
    \n\n", - }, - { - 'query': "a[href=foo][class=bar]", - 'result': "\n", - }, - { - 'query': "a[a=b][b=c=d][e]{foo}*2", - 'result': "foo\nfoo\n", - }, - { - 'query': "a[a=b][b=c=d][e]*2{foo}", - 'result': "\n\nfoo", - }, - { - 'query': "a*2{foo}a", - 'result': "\n\nfoo\n", - }, - { - 'query': "a{foo}*2>b", - 'result': "foo\nfoo\n", - }, - { - 'query': "a*2{foo}>b", - 'result': "\n\nfoo", - }, - { - 'query': "table>tr>td.name#foo+td*3", - 'result': "\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n
    \n", - }, - { - 'query': "div#header + div#footer", - 'result': "
    \n
    \n", - }, - { - 'query': "#header + div#footer", - 'result': "
    \n
    \n", - }, - { - 'query': "#header > ul > li < p{Footer}", - 'result': "
    \n\t
      \n\t\t
    • \n\t
    \n\t

    Footer

    \n
    \n", - }, - { - 'query': "#header > ul > li ^ p{Footer}", - 'result': "
    \n\t
      \n\t\t
    • \n\t
    \n\t

    Footer

    \n
    \n", - }, - { - 'query': "a#foo$$$*3", - 'result': "\n\n\n", - }, - { - 'query': "ul+", - 'result': "
      \n\t
    • \n
    \n", - }, - { - 'query': "table+", - 'result': "\n\t\n\t\t\n\t\n
    \n", - }, - { - 'query': "#header>li<#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "#header>li^#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "(#header>li)<#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "(#header>li)^#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "a>b>i<\n
    \n", - }, - { - 'query': "a>b>i^^div", - 'result': "\n
    \n", - }, - { - 'query': "(#header>h1)+#content+#footer", - 'result': "
    \n\t

    \n
    \n
    \n
    \n", - }, - { - 'query': "(#header>h1)+(#content>(#main>h2+div#entry$.section*5>(h3>a)+div>p*3+ul+)+(#utilities))+(#footer>address)", - 'result': "
    \n\t

    \n
    \n
    \n\t
    \n\t\t

    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t
    \n
    \n
    \n\t
    \n
    \n", - }, - { - 'query': "(div>(ul*2)*2)+(#utilities)", - 'result': "
    \n\t
      \n\t
        \n\t
          \n\t
            \n
            \n
            \n", - }, - { - 'query': "table>(tr>td*3)*4", - 'result': "\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n
            \n", - }, - { - 'query': "(((a#foo+a#bar)*2)*3)", - 'result': "\n\n\n\n\n\n\n\n\n\n\n\n", - }, - { - 'query': "div#box$*3>h3+p*2", - 'result': "
            \n\t

            \n\t

            \n\t

            \n
            \n
            \n\t

            \n\t

            \n\t

            \n
            \n
            \n\t

            \n\t

            \n\t

            \n
            \n" - }, - { - 'query': "div#box.foo$$$.bar$$$*3", - 'result': "
            \n
            \n
            \n", - }, - { - 'query': "div#box$*3>h3+p.bar*2|e", - 'result': "<div id=\"box1\">\n\t<h3></h3>\n\t<p class=\"bar\"></p>\n\t<p class=\"bar\"></p>\n</div>\n<div id=\"box2\">\n\t<h3></h3>\n\t<p class=\"bar\"></p>\n\t<p class=\"bar\"></p>\n</div>\n<div id=\"box3\">\n\t<h3></h3>\n\t<p class=\"bar\"></p>\n\t<p class=\"bar\"></p>\n</div>\n", - }, - { - 'query': "div>div#page>p.title+p|c", - 'result': "
            \n\t\n\t
            \n\t\t\n\t\t

            \n\t\t\n\t\t

            \n\t
            \n\t\n
            \n", - }, - { - 'query': "link:css", - 'result': "\n", - }, - { - 'query': "a[title=\"Hello', world\" rel]", - 'result': "\n", - }, - { - 'query': "div>a#foo{bar}", - 'result': "\n", - }, - { - 'query': ".content{Hello!}", - 'result': "
            Hello!
            \n", - }, - { - 'query': "div.logo+(div#navigation)+(div#links)", - 'result': "
            \n
            \n
            \n", - }, - { - 'query': "h1{header}+{Text}+a[href=http://link.org]{linktext}+{again some text}+a[href=http://anoterlink.org]{click me!}+{some final text}", - 'result': "

            header

            \nTextlinktext\nagain some textclick me!\nsome final text", - }, - { - 'query': "a{&}+div{&&}", - 'result': "&\n
            &&
            \n", - }, - { - 'query': "span$$$$\\,$$$$", - 'result': "", - }, - { - 'query': "foo span$$$$\\,$$$$", - 'result': "foo ", - }, - { - 'query': "foo span$$$$\\,$$$$ bar", - 'result': "foo bar", - }, - { - 'query': "foo $$$$\\ve\\,p\\$$$$bar baz", - 'result': "foo

            bar

            baz", - }, - { - 'query': "foo $$$$\\vee\\,p\\$$$$bar baz", - 'result': "foo

            bar baz

            ", - }, - { - 'query': "f div.boxes>article.box2>header>(hgroup>h2{aaa}+h3{bbb})+p{ccc}$$$$", - 'result': "f
            \n\t
            \n\t\t
            \n\t\t\t
            \n\t\t\t\t

            aaa

            \n\t\t\t\t

            bbb

            \n\t\t\t
            \n\t\t\t

            ccc

            \n\t\t
            \n\t
            \n
            ", - }, - { - 'query': "div.boxes>(div.box2>section>h2{a}+p{b})+(div.box1>section>h2{c}+p{d}+p{e}+(bq>h2{f}+h3{g})+p{h})", - 'result': "
            \n\t
            \n\t\t
            \n\t\t\t

            a

            \n\t\t\t

            b

            \n\t\t
            \n\t
            \n\t
            \n\t\t
            \n\t\t\t

            c

            \n\t\t\t

            d

            \n\t\t\t

            e

            \n\t\t\t
            \n\t\t\t\t

            f

            \n\t\t\t\t

            g

            \n\t\t\t
            \n\t\t\t

            h

            \n\t\t
            \n\t
            \n
            \n", - }, - { - 'query': "(div>(label+input))+div", - 'result': "
            \n\t\n\t\n
            \n
            \n", - }, - { - 'query': "test1\ntest2\ntest3$$$$\\ggVG\\,ul>li>span*>a\\$$$$", - 'result': "", - }, - { - 'query': "test1\ntest2\ntest3$$$$\\ggVG\\,input[type=input value=$#]*\\$$$$", - 'result': "\n\n", - }, - { - 'query': "div#id-$*5>div#id2-$", - 'result': "
            \n\t
            \n
            \n
            \n\t
            \n
            \n
            \n\t
            \n
            \n
            \n\t
            \n
            \n
            \n\t
            \n
            \n", - }, - { - 'query': "{test case $ }*3", - 'result': "test case 1 test case 2 test case 3 ", - }, - { - 'query': "{test case $${nr}}*3", - 'result': "test case 1\ntest case 2\ntest case 3\n", - }, - { - 'query': "{test case \\$ }*3", - 'result': "test case $ test case $ test case $ ", - }, - { - 'query': "{test case $$$ }*3", - 'result': "test case 001 test case 002 test case 003 ", - }, - { - 'query': "a[title=$#]{foo}", - 'result': "foo\n", - }, - ], - }, - { - 'name': 'split join tag', - 'tests': [ - { - 'query': "
            \n\t$$$$\\j$$$$\n
            ", - 'result': "
            \n\t\n
            ", - }, - { - 'query': "
            \n\tj$$$$/>\n
            ", - 'result': "
            \n\t\n
            ", - }, - ], - }, - { - 'name': 'toggle comment', - 'tests': [ - { - 'query': "
            \n\t$$$$\\/$$$$\n
            ", - 'result': "
            \n\t\n
            ", - }, - { - 'query': "
            \n\t\n
            ", - 'result': "
            \n\t\n
            ", - }, - ], - }, - { - 'name': 'image size', - 'tests': [ - { - 'query': "img[src=http://mattn.kaoriya.net/images/logo.png]$$$$\\,\\i$$$$", - 'result': "\"\"", - }, - { - 'query': "img[src=/logo.png]$$$$\\,\\i$$$$", - 'result': "\"\"", - }, - ], - }, - { - 'name': 'move next prev', - 'tests': [ - { - 'query': "foo+bar+baz[dankogai=\"\"]$$$$\\,\\gg0\\n\\n\\n\\Byw:%d _\\p$$$$", - 'result': "dankogai", - }, - ], - }, - ], -}, -{ - 'type': 'css', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "@i", - 'result': "@import url();", - }, - { - 'query': "fs:n", - 'result': "font-style: normal;", - }, - { - 'query': "fl:l|fc", - 'result': "float: left;", - }, - { - 'query': "bg+$$$$", - 'result': "background: #FFF url($$$$) 0 0 no-repeat;", - }, - { - 'query': "bg+!$$$$", - 'result': "background: #FFF url($$$$) 0 0 no-repeat !important;", - }, - { - 'query': "m$$$$", - 'result': "margin: $$$$;", - }, - { - 'query': "m0.1p$$$$", - 'result': "margin: 0.1%;", - }, - { - 'query': "m1.0$$$$", - 'result': "margin: 1.0em;", - }, - { - 'query': "m2$$$$", - 'result': "margin: 2px;", - }, - { - 'query': "bdrs10$$$$", - 'result': "border-radius: 10px;", - }, - { - 'query': "-bdrs20$$$$", - 'result': "-webkit-border-radius: 20px;\n-moz-border-radius: 20px;\nborder-radius: 20px;", - }, - { - 'query': "lg(top,#fff,#000)$$$$", - 'result': "background-image: -webkit-gradient(top, 0 0, 0 100, from(#fff), to(#000));\nbackground-image: -webkit-linear-gradient(#fff, #000);\nbackground-image: -moz-linear-gradient(#fff, #000);\nbackground-image: -o-linear-gradient(#fff, #000);\nbackground-image: linear-gradient(#fff, #000);\n", - }, - { - 'query': "m10-5-0$$$$", - 'result': "margin: 10px 5px 0px;", - }, - { - 'query': "m-10--5$$$$", - 'result': "margin: -10px -5px;", - }, - { - 'query': "m10-auto$$$$", - 'result': "margin: 10px auto;", - }, - { - 'query': "w100p$$$$", - 'result': "width: 100%;", - }, - { - 'query': "h50e$$$$", - 'result': "height: 50em;", - }, - { - 'query': "(bg+)+c$$$$", - 'result': "background: #FFF url($$$$) 0 0 no-repeat;\ncolor: #000;", - }, - ], - }, - ], -}, -{ - 'type': 'haml', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}", - 'result': "%div\n %p\n %ul#foo\n %li.bar1{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar2{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar3{ :foo => \"bar\", :bar => \"baz\" } baz\n", - }, - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}|haml", - 'result': "%div\n %p\n %ul#foo\n %li.bar1{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar2{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar3{ :foo => \"bar\", :bar => \"baz\" } baz\n", - }, - { - 'query': "a*3|haml", - 'result': "%a{ :href => \"\" }\n%a{ :href => \"\" }\n%a{ :href => \"\" }\n", - }, - { - 'query': ".content{Hello!}|haml", - 'result': "%div.content Hello!\n", - }, - { - 'query': "a[title=$#]{foo}", - 'result': "%a{ :href => \"\", :title => \"foo\" } foo\n", - }, - ], - }, - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "%a foo\n bar$$$$\\j$$$$", - 'result': "%a ", - }, - { - 'query': "$$$$\\j$$$$%a ", - 'result': "%a $$$$", - }, - ], - }, - { - 'name': 'toggle comment', - 'tests': [ - { - 'query': "%a{ :href => \"http://www.google.com\"$$$$\\/$$$$ } hello", - 'result': "-# %a{ :href => \"http://www.google.com\" } hello", - }, - { - 'query': "-# %a{ :href => \"http://www.google.com\"$$$$\\/$$$$ } hello", - 'result': "%a{ :href => \"http://www.google.com\" } hello", - }, - ], - }, - ], -}, -{ - 'type': 'slim', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}", - 'result': "div\n p\n ul id=\"foo\"\n li class=\"bar1\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar2\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar3\" foo=\"bar\" bar=\"baz\"\n | baz\n", - }, - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}|slim", - 'result': "div\n p\n ul id=\"foo\"\n li class=\"bar1\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar2\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar3\" foo=\"bar\" bar=\"baz\"\n | baz\n", - }, - { - 'query': "a*3|slim", - 'result': "a href=\"\"\na href=\"\"\na href=\"\"\n", - }, - { - 'query': ".content{Hello!}|slim", - 'result': "div class=\"content\"\n | Hello!\n", - }, - { - 'query': "a[title=$#]{foo}", - 'result': "a href=\"\" title=\"foo\"\n | foo\n", - }, - ], - }, - { - 'name': 'split join tag', - 'tests': [ - { - 'query': "a\n | foo$$$$\\j$$$$", - 'result': "a", - }, - { - 'query': "a$$$$\\j$$$$", - 'result': "a\n | $$$$", - }, - ], - }, - { - 'name': 'toggle comment', - 'tests': [ - { - 'query': "a href=\"http://www.google.com\"$$$$\\/$$$$\n | hello", - 'result': "/a href=\"http://www.google.com\"\n | hello", - }, - { - 'query': "/a href=\"http://www.google.com\"$$$$\\/$$$$\n | hello", - 'result': "a href=\"http://www.google.com\"\n | hello", - }, - ], - }, - ], -}, -{ - 'type': 'xsl', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "vari", - 'result': "\n", - }, - { - 'query': "ap>wp", - 'result': "\n\t\n\n", - }, - ], - }, - ], -}, -{ - 'type': 'xsd', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "xsd:w3c", - 'result': "\n\n\t\n", - }, - ], - }, - ], -}, -{ - 'type': 'mustache', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div#{{foo}}", - 'result': "
            \n", - }, - { - 'query': "div.{{foo}}", - 'result': "
            \n", - }, - ], - }, - ], -}, -] -" vim:set et: diff --git a/sources_forked/zencoding/zencoding.vim.vimup b/sources_forked/zencoding/zencoding.vim.vimup deleted file mode 100755 index 72608e48..00000000 --- a/sources_forked/zencoding/zencoding.vim.vimup +++ /dev/null @@ -1,265 +0,0 @@ -script_name: ZenCoding.vim -script_id: '2981' -script_type: utility -script_package: zencoding-vim.zip -script_version: '0.80' -required_vim_version: '7.0' -summary: vim plugins for HTML and CSS hi-speed coding. - -detailed_description: | - - This is vim script support expanding abbreviation like zen-coding. - ref: http://code.google.com/p/zen-coding/ - - There is a movie using zencoding.vim - ref: http://mattn.github.com/zencoding-vim - - Source Repository. - ref: http://github.com/mattn/zencoding-vim - - Type abbreviation - +------------------------------------- - | html:5_ - +------------------------------------- - "_" is a cursor position. and type "," (Ctrl + y and Comma) - NOTE: Don't worry about key map. you can change it easily. - +------------------------------------- - | - | - | - | - | - | - | - | _ - | - | - +------------------------------------- - Type following - +------------------------------------- - | div#foo$*2>div.bar - +------------------------------------- - And type "," - +------------------------------------- - |
            - |
            _
            - |
            - |
            - |
            - |
            - | _ - +------------------------------------- - - Tutorial: - - http://github.com/mattn/zencoding-vim/raw/master/TUTORIAL - - How work this: - - http://mattn.github.com/zencoding-vim - - Tips: - - You can customize behavior of expanding with overriding config. - This configuration will be marged at loading plugin. - - let g:user_zen_settings = { - \ 'indentation' : ' ', - \ 'perl' : { - \ 'aliases' : { - \ 'req' : 'require ' - \ }, - \ 'snippets' : { - \ 'use' : "use strict\nuse warnings\n\n", - \ 'warn' : "warn \"|\";", - \ } - \ } - \} - - let g:user_zen_expandabbr_key = '' - - let g:use_zen_complete_tag = 1 - - You can set language attribute in html using zen_settings['lang']. - -install_details: | - - # cd ~/.vim - # unzip zencoding-vim.zip - - or if you install pathogen.vim: - - # cd ~/.vim/bundle # or make directory - # unzip /path/to/zencoding-vim.zip - - if you get sources from repository: - - # cd ~/.vim/bundle # or make directory - # git clone http://github.com/mattn/zencoding-vim.git - -versions: -- '0.80': | - This is an upgrade for ZenCoding.vim: add emmet features. -- '0.74': | - This is an upgrade for ZenCoding.vim: many bug fixes. -- '0.73': | - This is an upgrade for ZenCoding.vim: many bug fixes. and support slim format (experimental). -- '0.72': | - This is an upgrade for ZenCoding.vim: - [fix] fix finding tokens. -- '0.71': | - This is an upgrade for ZenCoding.vim: - [fix] fix finding begin of tokens. -- '0.70': | - This is an upgrade for ZenCoding.vim: - [mod] Changed behavior of expanding. "div div>a|" should keep first div element. - [add] Supported slim formatter. -- '0.60': | - This is an upgrade for ZenCoding.vim: - [fix] fixed expanding {{}}. -- '0.59': | - This is an upgrade for ZenCoding.vim: - [fix] fixed toggleComment and mny bugs. -- '0.58': | - This is an upgrade for ZenCoding.vim: - [fix] fixed 'foo+' style expandos. -- '0.57': | - This is an upgrade for ZenCoding.vim: - [fix] fixed expandos that don't work 'choose' in xsl. -- '0.56': | - This is an upgrade for ZenCoding.vim: - [fix] fixed contents parser. -- '0.55': | - uploaded again: sorry, files was old. -- '0.54': | - [add] support sass, xsd. - [fix] expanding with html tag. - uploaded again: sorry, fileformat was DOS. -- '0.53': | - [fix] gif width/height was swapped. -- '0.52': | - [fix] broken wrap expanding. -- '0.51': | - This is an upgrade for ZenCoding.vim: - [fix] wrap expanding with '&'. - [fix] expand .content to class="content". - [fix] haml expanding. - [fix] bg+ snippet -- '0.50': | - This is an upgrade for ZenCoding.vim: - [fix] fixed parsing '#{{foo}}' and '.{{bar}}'. -- '0.49': | - This is an upgrade for ZenCoding.vim: - [doc] add help manual. -- '0.48': | - This is an upgrade for ZenCoding.vim: - [fix] install mappings to global. -- '0.47': | - This is an upgrade for ZenCoding.vim: - [drastic changes] enable autoload. you should whole replace older files. - package was empty. upload again. -- '0.46': | - This is an upgrade for ZenCoding.vim: - [drastic changes] enable autoload. you should whole replace older files. -- '0.45': | - This is an upgrade for ZenCoding.vim: - fixed attribute parsing like: a[href="hello', world" rel]. -- '0.44': | - This is an upgrade for ZenCoding.vim: - fixed checking whether have mapping using maparg() / hasmapto(). -- '0.43': | - This is an upgrade for ZenCoding.vim: - fixed behavior for nested block. like "html:5>#page>(header#globalHeader>(hgroup>h1+h2)+(nav>ul>li*3>a)+(form>p.siteSearch>input+input[type=button]))+(#contents>(#main>(section>h2+p*5)+p.pagetop>a[href=#page])+(#sub>p+(nav>ul>li>a)))+(footer#globalFoooter>(ul>li>a)+(p.copyright>small))" -- '0.42': | - This is an upgrade for ZenCoding.vim: - fixed select/option indent. -- '0.41': | - This is an upgrade for ZenCoding.vim: - fixed default filter. when using 'e' filter, output become empty. -- '0.40': | - This is an upgrade for ZenCoding.vim: - add the pure vimscript code for 'get image size'. you can use it without perl interface just now. - change key assign of ZenCodingExpandWord from ',' to ';'. it don't effect to most users. -- '0.39': | - This is an upgrade for ZenCoding.vim: fixed problem about 'selection'. see http://github.com/mattn/zencoding-vim/issues/#issue/2 -- '0.38': | - This is an upgrade for ZenCoding.vim: use v7h"_s instead of v7hs for backspace. -- '0.37': | - This is an upgrade for ZenCoding.vim: fixed problem that won't working with some 'backspace' options. -- '0.36': | - This is an upgrade for ZenCoding.vim: fixed problem that filter does not work. -- '0.35': | - This is an upgrade for ZenCoding.vim: enable zencoding for other languages. (meaning php also) -- '0.34': | - This is an upgrade for ZenCoding.vim: enable zencoding for xsl. (you should add ~/.vim/ftplugin/xslt/zencoding.vim) -- '0.33': | - This is an upgrade for ZenCoding.vim: fixed problem breaking multibyte when cursor is in a part of line. enabled zencoding for javascript in html. -- '0.32': | - This is an upgrade for ZenCoding.vim: fixed indentation. supported extends so that you can enable zencoding for php/xhtml/haml other's section 14 in http://github.com/mattn/zencoding-vim/raw/master/TUTORIAL -- '0.31': | - This is an upgrade for ZenCoding.vim: fixed indentation and $$$ problem. fixed about missing support multiple classes. -- '0.30': | - This is an upgrade for ZenCoding.vim: Fixed key assign. -- '0.29': | - This is an upgrade for ZenCoding.vim: Changed leading key to '' from ''. -- '0.28': | - This is an upgrade for ZenCoding.vim: supported 'Balance Tag Inward/Outward', 'Go to Next/Previous Edit Point', 'Update Size', 'Remove Tag', 'Split/Join Tag', 'Toggle Comment' -- '0.27': | - This is an upgrade for ZenCoding.vim: fixed problem that can't work on the part of multibyte characters. fixed inline elements behavior. -- '0.26': | - This is an upgrade for ZenCoding.vim: The count of '(((a#foo + a#bar)*2)*3)' should be 12. -- '0.25': | - This is an upgrade for ZenCoding.vim: store undo before working. good luck about 'table>(tr>td*3)*4'. -- '0.24': | - This is an upgrade for ZenCoding.vim: fixed behavior of parsing area of visual selection. -- '0.23': | - This is an upgrade for ZenCoding.vim: pre-expand '#header>li<#content' to 'div#header>lili'. fix undo ring. support visual selection. when type trigger key on visual select, it request you leader like 'ul>li'. if you give 'ul>li*' as leader, you'll get each separate 'ul>li' tags. and when you give 'blockquote' as leader, you'll get blocked text. -- '0.21': | - This is an upgrade for ZenCoding.vim: treat xhtml as html. -- '0.20': | - This is an upgrade for ZenCoding.vim: add option use_zen_complete_tag for complete abbr. -- '0.19': | - This is an upgrade for ZenCoding.vim: fixed problem that couldn't expand 'link:css' correctly. -- '0.18': | - This is an upgrade for ZenCoding.vim: ignore duplicate key map. -- '0.17': | - This is an upgrade for ZenCoding.vim: fixed key map. -- '0.16': | - This is an upgrade for ZenCoding.vim: fixed problem 'endless loop'. -- '0.15': | - This is an upgrade for ZenCoding.vim: set default filetype to 'html'. -- '0.14': | - This is an upgrade for ZenCoding.vim: fixed tag name like 'fs:n' in 'css'. -- '0.14': | - This is an upgrade for ZenCoding.vim: indentation for each languages. -- '0.13': | - This is an upgrade for ZenCoding.vim: user key map. -- '0.12': | - This is an upgrade for ZenCoding.vim: few extensive notation. -- '0.11': | - This is an upgrade for ZenCoding.vim: fixed indent. -- '0.10': | - This is an upgrade for ZenCoding.vim: fixed behavior of '+' operator -- '0.9': | - This is an upgrade for ZenCoding.vim: fixed single line behavior -- '0.8': | - This is an upgrade for ZenCoding.vim: support 'a[href=http://www.google.com]{Google}' -- '0.7': | - This is an upgrade for ZenCoding.vim: fixed behavior in 'a+b'. -- '0.6': | - This is an upgrade for ZenCoding.vim: fixed strange behavior about 'b_'. -- '0.5': | - This is an upgrade for ZenCoding.vim: recover rest part in line. -- '0.4': | - This is an upgrade for ZenCoding.vim: fixed cursor position. fixed ${lang} replacement. -- '0.3': | - This is an upgrade for ZenCoding.vim: fixed line expanding. -- '0.2': | - This is an upgrade for ZenCoding.vim: fixed problem that moving cursor with expanding. -- '0.1': | - Initial upload - -# __END__ -# vim: filetype=yaml diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt index 70f2ca48..310c1348 100644 --- a/sources_non_forked/syntastic/doc/syntastic.txt +++ b/sources_non_forked/syntastic/doc/syntastic.txt @@ -36,7 +36,9 @@ CONTENTS *syntastic-contents* 5.2.Choosing the executable................|syntastic-config-exec| 5.3.Configuring specific checkers..........|syntastic-config-makeprg| 5.4.Sorting errors.........................|syntastic-config-sort| - 5.5.Debugging..............................|syntastic-config-debug| + 5.5.Filtering errors.......................|syntastic-config-filtering| + 5.6.Debugging..............................|syntastic-config-debug| + 5.7.Profiling..............................|syntastic-profiling| 6.Notes........................................|syntastic-notes| 6.1.Handling of composite filetypes........|syntastic-composite| 6.2.Editing files over network.............|syntastic-netrw| @@ -91,21 +93,21 @@ Syntastic comes preconfigured with a default list of enabled checkers per trying to use conflicting checkers. You can see the list of checkers available for the current filetype with the -|:SyntasticInfo| command. +`:SyntasticInfo` command. You probably want to override the configured list of checkers for the filetypes you use, and also change the arguments passed to specific checkers to suit your needs. See |syntastic-checker-options| below for details. -Use |:SyntasticCheck| to manually check right now. Use |:Errors| to open the -|location-list| window, and |:lclose| to close it. You can clear the error -list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch +Use `:SyntasticCheck` to manually check right now. Use `:Errors` to open the +|location-list| window, and `:lclose` to close it. You can clear the error +list with `:SyntasticReset`, and you can use `:SyntasticToggleMode` to switch between active (checking on writing the buffer) and passive (manual) checking. You don't have to switch focus to the |location-list| window to jump to the different errors. Vim provides several built-in commands for this, for -example |:lnext| and |:lprevious|. You may want to add shortcut mappings for -these commands, or perhaps install a plugin such as Tim Pope's 'unimpaired' +example `:lnext` and `:lprevious`. You may want to add shortcut mappings for +these commands, or perhaps install a plugin such as Tim Pope's "unimpaired" (see https://github.com/tpope/vim-unimpaired) that provides such mappings. ------------------------------------------------------------------------------ @@ -128,7 +130,7 @@ needed: > 2. Functionality provided *syntastic-functionality* Syntax checking can be done automatically or on demand (see -|'syntastic_mode_map'| and |:SyntasticToggleMode| for configuring this). +|'syntastic_mode_map'| and `:SyntasticToggleMode` for configuring this). When syntax checking is done, the features below can be used to notify the user of errors. See |syntastic-global-options| for how to configure and @@ -167,19 +169,19 @@ possible solutions. See also |syntastic-powerline| below if you're using the ------------------------------------------------------------------------------ 2.2. Error signs *syntastic-error-signs* -Syntastic uses the |:sign| commands (provided that the |+signs| feature is +Syntastic uses the `:sign` commands (provided that the |+signs| feature is compiled in) to mark lines with errors and warnings in the sign column. To enable this feature, use the |'syntastic_enable_signs'| option. Signs are colored using the Error and Todo syntax highlight groups by default (see |group-name|). If you wish to customize the colors for the signs, you can use the following groups: - SyntasticErrorSign - For syntax errors, links to 'error' by default - SyntasticWarningSign - For syntax warnings, links to 'todo' by default - SyntasticStyleErrorSign - For style errors, links to 'SyntasticErrorSign' + SyntasticErrorSign - For syntax errors, links to "error" by default + SyntasticWarningSign - For syntax warnings, links to "todo" by default + SyntasticStyleErrorSign - For style errors, links to "SyntasticErrorSign" by default SyntasticStyleWarningSign - For style warnings, links to - 'SyntasticWarningSign' by default + "SyntasticWarningSign" by default Example: > highlight SyntasticErrorSign guifg=white guibg=red @@ -188,8 +190,8 @@ To set up highlighting for the line where a sign resides, you can use the following highlight groups: SyntasticErrorLine SyntasticWarningLine - SyntasticStyleErrorLine - Links to 'SyntasticErrorLine' by default - SyntasticStyleWarningLine - Links to 'SyntasticWarningLine' by default + SyntasticStyleErrorLine - Links to "SyntasticErrorLine" by default + SyntasticStyleWarningLine - Links to "SyntasticWarningLine" by default Example: > highlight SyntasticErrorLine guibg=#2f0000 @@ -197,15 +199,15 @@ Example: > ------------------------------------------------------------------------------ 2.3. The error window *syntastic-error-window* -You can use the |:Errors| command to display the errors for the current buffer +You can use the `:Errors` command to display the errors for the current buffer in the |location-list|. By default syntastic doesn't fill the |location-list| with the errors found by the checkers, in order to reduce clashes with other plugins. Consequently, if -you run |:lopen| or |:lwindow| rather than |:Errors| to open the error window -you wouldn't see syntastic's list of errors. If you insist on using |:lopen| -or |:lwindow| you should either run |:SyntasticSetLoclist| after running the -checks, or set |syntastic_always_populate_loc_list| which tells syntastic to +you run `:lopen` or `:lwindow` rather than `:Errors` to open the error window +you wouldn't see syntastic's list of errors. If you insist on using `:lopen` +or `:lwindow` you should either run `:SyntasticSetLoclist` after running the +checks, or set |'syntastic_always_populate_loc_list'| which tells syntastic to update the |location-list| automatically. ------------------------------------------------------------------------------ @@ -215,10 +217,10 @@ Some checkers provide enough information for syntastic to be able to highlight errors. By default the SpellBad syntax highlight group is used to color errors, and the SpellCap group is used for warnings. If you wish to customize the colors for highlighting you can use the following groups: - SyntasticError - Links to 'SpellBad' by default - SyntasticWarning - Links to 'SpellCap' by default - SyntasticStyleError - Links to SyntasticError by default - SyntasticStyleWarning - Links to SyntasticWarning by default + SyntasticError - Links to "SpellBad" by default (see |hl-SpellBad|) + SyntasticWarning - Links to "SpellCap" by default (see |hl-SpellCap|) + SyntasticStyleError - Links to "SyntasticError" by default + SyntasticStyleWarning - Links to "SyntasticWarning" by default Example: > highlight SyntasticError guibg=#2f0000 @@ -238,7 +240,7 @@ If |'syntastic_aggregate_errors'| is set, syntastic runs all checkers that apply (still cf. |syntastic-filetype-checkers|), then aggregates errors found by all checkers in a single list, and notifies you. In this mode each error message is labeled with the name of the checker that generated it, but you can -disable generation of these labels by turning off '|syntastic_id_checkers|'. +disable generation of these labels by turning off |'syntastic_id_checkers'|. If |'syntastic_sort_aggregated_errors'| is set (which is the default), messages in the aggregated list are grouped by file, then sorted by line number, then @@ -264,7 +266,7 @@ See also: |'syntastic___quiet_messages'| and When errors have been detected, use this command to pop up the |location-list| and display the error messages. -Please note that the |:Errors| command overwrites the current location list with +Please note that the `:Errors` command overwrites the current location list with syntastic's own location list. :SyntasticToggleMode *:SyntasticToggleMode* @@ -304,26 +306,29 @@ Resets the list of errors and turns off all error notifiers. If |'syntastic_always_populate_loc_list'| is not set, the |location-list| is not filled in automatically with the list of errors detected by the checkers. This is useful if you run syntastic along with other plugins that use location -lists. The |:SyntasticSetLoclist| command allows you to stick the errors into +lists. The `:SyntasticSetLoclist` command allows you to stick the errors into the location list explicitly. ============================================================================== 4. Global Options *syntastic-global-options* *'syntastic_check_on_open'* +Type: boolean Default: 0 If this variable is enabled, syntastic in active mode will run syntax checks when buffers are first loaded, as well as on saving: > let g:syntastic_check_on_open = 1 < *'syntastic_check_on_wq'* +Type: boolean Default: 1 In active mode syntax checks are normally run whenever buffers are written to disk, even when the writes happen just before quitting Vim. If you want to -skip checks when you issue |:wq|, |:x|, and |:ZZ|, set this variable to 0: > +skip checks when you issue `:wq`, `:x`, and `:ZZ`, set this variable to 0: > let g:syntastic_check_on_wq = 0 < *'syntastic_aggregate_errors'* +Type: boolean Default: 0 When enabled, syntastic runs all checkers that apply to the current filetype, then aggregates errors found by all checkers and displays them. When disabled, @@ -332,26 +337,30 @@ time a checker finds any errors. > let g:syntastic_aggregate_errors = 1 < *'syntastic_id_checkers'* +Type: boolean Default: 1 When results from multiple checkers are aggregated in a single error list (that is either when |'syntastic_aggregate_errors'| is enabled, or when -checking a file with a composite filetype), it might not be immediately -obvious which checker has produced a given error message. This variable -instructs syntastic to label error messages with the names of the checkers -that created them. > +checking a file with a composite filetype, cf. |syntastic-composite|), it +might not be immediately obvious which checker has produced a given error +message. This variable instructs syntastic to label error messages with the +names of the checkers that created them. > let g:syntastic_id_checkers = 0 < *'syntastic_sort_aggregated_errors'* +Type: boolean Default: 1 By default, when results from multiple checkers are aggregated in a single -error list (that is either when |'syntastic_aggregate_errors'| is enabled, -or when checking a file with a composite filetype), errors are grouped by -file, then sorted by line number, then grouped by type (namely errors take -precedence over warnings), then they are sorted by column number. If you want -to leave messages grouped by checker output, set this variable to 0: > +error list (that is either when |'syntastic_aggregate_errors'| is enabled, or +when checking a file with a composite filetype, cf. |syntastic-composite|), +errors are grouped by file, then sorted by line number, then grouped by type +(namely errors take precedence over warnings), then they are sorted by column +number. If you want to leave messages grouped by checker output, set this +variable to 0: > let g:syntastic_sort_aggregated_errors = 0 < *'syntastic_echo_current_error'* +Type: boolean Default: 1 If enabled, syntastic will echo current error to the command window. If multiple errors are found on the same line, |'syntastic_cursor_columns'| is @@ -359,6 +368,7 @@ used to decide which one is shown. > let g:syntastic_echo_current_error = 1 < *'syntastic_cursor_columns'* +Type: boolean Default: 1 This option controls which errors are echoed to the command window if |'syntastic_echo_current_error'| is set and multiple errors are found on the @@ -371,25 +381,28 @@ up navigation significantly: > let g:syntastic_cursor_column = 0 < *'syntastic_enable_signs'* +Type: boolean Default: 1 -Use this option to tell syntastic whether to use the |:sign| interface to mark +Use this option to tell syntastic whether to use the `:sign` interface to mark syntax errors: > let g:syntastic_enable_signs = 1 < *'syntastic_error_symbol'* *'syntastic_style_error_symbol'* *'syntastic_warning_symbol'* *'syntastic_style_warning_symbol'* -Use this option to control what the syntastic |:sign| text contains. Several +Type: string +Use these options to control what the syntastic `:sign` text contains. Several error symbols can be customized: - syntastic_error_symbol - For syntax errors, defaults to '>>' - syntastic_style_error_symbol - For style errors, defaults to 'S>' - syntastic_warning_symbol - For syntax warnings, defaults to '>>' - syntastic_style_warning_symbol - For style warnings, defaults to 'S>' + syntastic_error_symbol - For syntax errors, defaults to ">>" + syntastic_style_error_symbol - For style errors, defaults to "S>" + syntastic_warning_symbol - For syntax warnings, defaults to ">>" + syntastic_style_warning_symbol - For style warnings, defaults to "S>" Example: > - let g:syntastic_error_symbol = "✗" - let g:syntastic_warning_symbol = "⚠" + let g:syntastic_error_symbol = "\u2717" + let g:syntastic_warning_symbol = "\u26A0" < *'syntastic_enable_balloons'* +Type: boolean Default: 1 Use this option to tell syntastic whether to display error messages in balloons when the mouse is hovered over erroneous lines: > @@ -398,12 +411,14 @@ when the mouse is hovered over erroneous lines: > Note that Vim must be compiled with |+balloon_eval|. *'syntastic_enable_highlighting'* +Type: boolean Default: 1 Use this option to tell syntastic whether to use syntax highlighting to mark errors (where possible). Highlighting can be turned off with the following > let g:syntastic_enable_highlighting = 0 < *'syntastic_always_populate_loc_list'* +Type: boolean Default: 0 By default syntastic doesn't fill the |location-list| with the errors found by the checkers, in order to reduce clashes with other plugins. Enable this @@ -414,9 +429,10 @@ option to tell syntastic to always stick any detected errors into the Please note that if |'syntastic_auto_jump'| is set to a non-zero value the location list is overwritten with Syntastic's own list when taking a jump, regardless of the value of |'syntastic_always_populate_loc_list'|. The -location list is also overwritten when running the |:Errors| command. +location list is also overwritten when running the `:Errors` command. *'syntastic_auto_jump'* +Type: integer Default: 0 Enable this option if you want the cursor to jump to the first detected issue when saving or opening a file. @@ -441,6 +457,7 @@ of the location list being overwritten with Syntastic's own location list, regardless of the value of |'syntastic_always_populate_loc_list'|. *'syntastic_auto_loc_list'* +Type: integer Default: 2 Use this option to tell syntastic to automatically open and/or close the |location-list| (see |syntastic-error-window|). @@ -462,12 +479,14 @@ detected, but not closed automatically. > let g:syntastic_auto_loc_list = 3 < *'syntastic_loc_list_height'* +Type: integer Default: 10 Use this option to specify the height of the location lists that syntastic opens. > let g:syntastic_loc_list_height = 5 < *'syntastic_ignore_files'* +Type: list of strings Default: [] Use this option to specify files that syntastic should never check. It's a list of |regular-expression| patterns. The full paths of files (see |::p|) are @@ -476,6 +495,7 @@ to specify case-insensitive patterns. Example: > let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$'] < *'syntastic_filetype_map'* +Type: dictionary Default: {} Use this option to map non-standard filetypes to standard ones. Corresponding checkers are mapped accordingly, which allows syntastic to check files with @@ -484,11 +504,13 @@ non-standard filetypes: > \ "plaintex": "tex", \ "gentoo-metadata": "xml" } < -Composite filetypes can also be mapped to simple types, which disables the -default behaviour of running both checkers against the input file: > +Composite filetypes (cf. |syntastic-composite|) can also be mapped to simple +types, which disables the default behaviour of running both checkers against +the input file: > let g:syntastic_filetype_map = { "handlebars.html": "handlebars" } < *'syntastic_mode_map'* +Type: dictionary Default: { "mode": "active", "active_filetypes": [], "passive_filetypes": [] } @@ -496,7 +518,6 @@ Use this option to fine tune when automatic syntax checking is done (or not done). The option should be set to something like: > - let g:syntastic_mode_map = { \ "mode": "active", \ "active_filetypes": ["ruby", "php"], @@ -505,7 +526,7 @@ The option should be set to something like: > "mode" can be mapped to one of two values - "active" or "passive". When set to "active", syntastic does automatic checking whenever a buffer is saved or initially opened. When set to "passive" syntastic only checks when the user -calls |:SyntasticCheck|. +calls `:SyntasticCheck`. The exceptions to these rules are defined with "active_filetypes" and "passive_filetypes". In passive mode, automatic checks are still done for @@ -520,16 +541,18 @@ If local variable |'b:syntastic_mode'| is defined its value takes precedence over all calculations involving |'syntastic_mode_map'| for the corresponding buffer. -At runtime, the |:SyntasticToggleMode| command can be used to switch between +At runtime, the `:SyntasticToggleMode` command can be used to switch between active and passive modes. *'b:syntastic_mode'* +Type: string Default: unset Only the local form |'b:syntastic_mode'| is used. When set to either "active" or "passive", it takes precedence over |'syntastic_mode_map'| when deciding whether the corresponding buffer should be checked automatically. *'syntastic_quiet_messages'* +Type: dictionary Default: {} Use this option to filter out some of the messages produced by checkers. The option should be set to something like: > @@ -542,7 +565,7 @@ option should be set to something like: > Each element turns off messages matching the patterns specified by the corresponding value. Values are lists, but if a list consist of a single element you may omit the brackets (e.g. you may write "style" instead of -["style"]). Elements with values [] or '' are ignored (this is useful for +["style"]). Elements with values [] or "" are ignored (this is useful for overriding filters, cf. |filter-overrides|). "level" - takes one of two values, "warnings" or "errors" @@ -572,16 +595,17 @@ errors produced by the said checker). In case of conflicting values for the same keys, the values of the checker-specific filters take precedence. *filter-overrides* -Since filter elements with values [] or '' are ignored, you can disable global +Since filter elements with values [] or "" are ignored, you can disable global filters for particular checkers, by setting the values of the corresponding -elements in |'syntastic___quiet_messages'| to [] or ''. For +elements in |'syntastic___quiet_messages'| to [] or "". For example, the following setting will silence all warnings, except for the ones produced by "pylint": > let g:syntastic_quiet_messages = { "level": "warnings" } let g:syntastic_python_pylint_quiet_messages = { "level" : [] } < *'syntastic_stl_format'* -Default: [Syntax: line:%F (%t)] +Type: string +Default: "[Syntax: line:%F (%t)]" Use this option to control what the syntastic statusline text contains. Several magic flags are available to insert information: %e - number of errors @@ -612,7 +636,7 @@ Several additional flags are available to hide text under certain conditions: These flags can't be nested. Example: > - let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]' + let g:syntastic_stl_format = "[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]" < If this format is used and the current buffer has 5 errors and 1 warning starting on lines 20 and 10 respectively then this would appear on the @@ -623,19 +647,22 @@ If the buffer had 2 warnings, starting on line 5 then this would appear: > [Warn: 5 #2] < *'b:syntastic_skip_checks'* +Type: boolean Default: unset Only the local form |'b:syntastic_skip_checks'| is used. When set to a true value, no checks are run against the corresponding buffer. Example: > let b:syntastic_skip_checks = 1 < *'syntastic_full_redraws'* +Type: boolean Default: 0 in GUI Vim and MacVim, 1 otherwise -Controls whether syntastic calls |:redraw| or |:redraw!| for screen redraws. +Controls whether syntastic calls `:redraw` or `:redraw!` for screen redraws. Changing it can in principle make screen redraws smoother, but it can also cause screen to flicker, or cause ghost characters. Leaving it to the default should be safe. *'syntastic_exit_checks'* +Type: boolean Default: 0 when running under "cmd.exe" on Windows, 1 otherwise Syntastic attempts to catch abnormal termination conditions from checkers by looking at their exit codes. The "cmd.exe" shell on Windows make these checks @@ -643,6 +670,7 @@ meaningless, by returning 1 to Vim when the checkers exit with non-zero codes. The above variable can be used to disable exit code checks in syntastic. *'syntastic_shell'* +Type: string Default: Vim's 'shell' This is the (full path to) the shell syntastic will use to run the checkers. On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for @@ -656,6 +684,7 @@ by the checkers you're using. Example: > let g:syntastic_shell = "/bin/sh" < *'syntastic_nested_autocommands'* +Type: boolean Default: 0 Controls whether syntastic's autocommands |BufReadPost| and |BufWritePost| are called from other |BufReadPost| and |BufWritePost| autocommands (see @@ -663,6 +692,7 @@ are called from other |BufReadPost| and |BufWritePost| autocommands (see other plugins, so only enable it if you actually need that functionality. *'syntastic_debug'* +Type: integer Default: 0 Set this to the sum of one or more of the following flags to enable debugging: @@ -678,15 +708,17 @@ Example: > let g:syntastic_debug = 1 < Syntastic will then add debugging messages to Vim's |message-history|. You can -examine these messages with |:mes|. +examine these messages with `:mes`. *'syntastic_debug_file'* +Type: string Default: unset When set, debugging messages are written to the file named by its value, in addition to being added to Vim's |message-history|: > - let g:syntastic_debug_file = '~/syntastic.log' + let g:syntastic_debug_file = "~/syntastic.log" < *'syntastic_extra_filetypes'* +Type: list of strings Default: [] List of filetypes handled by checkers external to syntastic. If you have a Vim plugin that adds a checker for syntastic, and if the said checker deals with a @@ -694,7 +726,7 @@ filetype that is unknown to syntastic, you might consider adding that filetype to this list: > let g:syntastic_extra_filetypes = [ "make", "gitcommit" ] < -This will allow |:SyntasticInfo| to do proper tab completion for the new +This will allow `:SyntasticInfo` to do proper tab completion for the new filetypes. ============================================================================== @@ -709,7 +741,7 @@ variable 'g:syntastic__checkers' to a list of checkers, e.g. > let g:syntastic_php_checkers = ["php", "phpcs", "phpmd"] < *'b:syntastic_checkers'* -There is also a per-buffer version of this setting, 'b:syntastic_checkers'. +There is also a per-buffer version of this setting, |'b:syntastic_checkers'|. When set, it takes precedence over |'g:syntastic__checkers'|. You can use this in an autocmd to configure specific checkers for particular paths: > autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 | @@ -724,7 +756,7 @@ by syntastic: https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers -Use |:SyntasticInfo| to see which checkers are available for a given filetype. +Use `:SyntasticInfo` to see which checkers are available for a given filetype. ------------------------------------------------------------------------------ 5.2 Choosing the executable *syntastic-config-exec* @@ -733,74 +765,75 @@ Use |:SyntasticInfo| to see which checkers are available for a given filetype. The executable run by a checker is normally defined automatically, when the checker is registered. You can however override it, by setting the variable 'g:syntastic___exec': > - let g:syntastic_ruby_mri_exec = '~/bin/ruby2' + let g:syntastic_ruby_mri_exec = "~/bin/ruby2" < This variable has a local version, 'b:syntastic___exec', which takes precedence over the global one in the corresponding buffer. *'b:syntastic__exec'* -And there is also a local variable named 'b:syntastic__exec', which +There is also a local variable named 'b:syntastic__exec', which takes precedence over both 'b:syntastic___exec' and 'g:syntastic___exec' in the buffers where it is defined. ------------------------------------------------------------------------------ 5.3 Configuring specific checkers *syntastic-config-makeprg* -Checkers are run by constructing a command line and passing it to a shell. -In most cases this command line is built using an internal function named -'makeprgBuild()', which provides a number of options that allows you to -customise every part of the command that gets called. +Checkers are run by constructing a command line and by passing it to a shell +(see |'shell'| and |'syntastic_shell'|). In most cases this command line is +built using an internal function named "makeprgBuild()", which provides a +number of options that allow you to customise every part of the command that +gets called. *'syntastic___