diff options
Diffstat (limited to 'vim/bundle/lightline.vim')
42 files changed, 0 insertions, 5356 deletions
diff --git a/vim/bundle/lightline.vim b/vim/bundle/lightline.vim new file mode 160000 +Subproject 430ce2cb063b39a0c7950cafd617e333acb6759 diff --git a/vim/bundle/lightline.vim/.gitignore b/vim/bundle/lightline.vim/.gitignore deleted file mode 100644 index 0a56e3f..0000000 --- a/vim/bundle/lightline.vim/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/doc/tags diff --git a/vim/bundle/lightline.vim/.travis.yml b/vim/bundle/lightline.vim/.travis.yml deleted file mode 100644 index ae4b73f..0000000 --- a/vim/bundle/lightline.vim/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: generic - -sudo: false - -install: - - git clone --depth=1 https://github.com/thinca/vim-themis /tmp/themis - - git clone https://github.com/vim/vim $HOME/vim - - (if ! test -d $HOME/vim-7.4/bin; then cd $HOME/vim && git checkout . && git checkout v7.4 && ./configure --prefix=$HOME/vim-7.4 && make && make install; fi) - - (if ! test -d $HOME/vim-7.3/bin; then cd $HOME/vim && git checkout . && git checkout v7.3 && ./configure --prefix=$HOME/vim-7.3 && make && make install; fi) - - (if ! test -d $HOME/vim-7.2.051/bin; then cd $HOME/vim && git checkout . && git checkout v7.2.051 && ./configure --prefix=$HOME/vim-7.2.051 && make && make install; fi) - -cache: - directories: - - $HOME/vim-7.4 - - $HOME/vim-7.3 - - $HOME/vim-7.2.051 - -script: - - /tmp/themis/bin/themis --reporter spec - - PATH=$HOME/vim-7.4/bin/:$PATH /tmp/themis/bin/themis --reporter spec - - PATH=$HOME/vim-7.3/bin/:$PATH /tmp/themis/bin/themis --reporter spec - - PATH=$HOME/vim-7.2.051/bin/:$PATH /tmp/themis/bin/themis --reporter spec diff --git a/vim/bundle/lightline.vim/LICENSE b/vim/bundle/lightline.vim/LICENSE deleted file mode 100644 index 3000b84..0000000 --- a/vim/bundle/lightline.vim/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2016 itchyny - -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/vim/bundle/lightline.vim/README.md b/vim/bundle/lightline.vim/README.md deleted file mode 100644 index 03f5da1..0000000 --- a/vim/bundle/lightline.vim/README.md +++ /dev/null @@ -1,788 +0,0 @@ -# lightline.vim -A light and configurable statusline/tabline for Vim - -https://github.com/itchyny/lightline.vim - -### powerline theme (default) - -![lightline.vim - powerline](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/powerline/0.png) - -### wombat (with the patched font) - -![lightline.vim - wombat](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/wombat/0.png) - -### jellybeans (with the patched font) - -![lightline.vim - jellybeans](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/jellybeans/0.png) - -### solarized theme (dark) - -![lightline.vim - solarized_dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/solarized_dark/0.png) - -### solarized theme (light) - -![lightline.vim - solarized_light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/solarized_light/0.png) - -### PaperColor theme (light) - -![lightline.vim - PaperColor](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/PaperColor/0.png) - -### seoul256 theme - -![lightline.vim - seoul256](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/seoul256/0.png) - -### landscape theme (with the patched font) - -![lightline.vim - landscape](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/landscape/0.png) - -With branch name, read-only mark and modified mark. -![lightline.vim - landscape - fugitive](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/landscape/5.png) - -landscape is my colorscheme, which is a high-contrast cui-supported colorscheme, available at https://github.com/itchyny/landscape.vim - -## Why yet another clone of powerline? -+ [vim-powerline](https://github.com/Lokaltog/vim-powerline) is a nice plugin, but deprecated. -+ [powerline](https://github.com/Lokaltog/powerline) is a nice plugin, but difficult to configure. -+ [vim-airline](https://github.com/bling/vim-airline) is a nice plugin, but it uses too much functions of other plugins, which should be done by users in `.vimrc`. - -## Spirit of this plugin -+ Minimalism. The core script is very small. -+ Configurability. You can create your own component and easily add to the statusline/tabline. -+ Orthogonality. Any plugin should not change the settings of another plugin. Such plugin-crossing settings should be written by users in `.vimrc`. - -## Author -itchyny (https://github.com/itchyny) - -## License -This software is released under the MIT License, see LICENSE. - -## Installation -### Manually -1. Put all files under $VIM. - -### Pathogen -1. Install with the following command. - - git clone https://github.com/itchyny/lightline.vim ~/.vim/bundle/lightline.vim - -### Vundle (https://github.com/gmarik/Vundle.vim) -1. Add the following configuration to your `.vimrc`. - - Plugin 'itchyny/lightline.vim' - -2. Install with `:PluginInstall`. - -### NeoBundle (https://github.com/Shougo/neobundle.vim) -1. Add the following configuration to your `.vimrc`. - - NeoBundle 'itchyny/lightline.vim' - -2. Install with `:NeoBundleInstall`. - -### vim-plug (https://github.com/junegunn/vim-plug) -1. Add the following configuration to your `.vimrc`. - - Plug 'itchyny/lightline.vim' - -2. Install with `:PlugInstall`. - -## Configuration tutorial -By default, the statusline looks like: -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/1.png) - -If you use the wombat colorscheme, add the following settings to your `.vimrc` (or \_vimrc on Windows): -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ } -``` -to get: - -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/2.png) - - -If your statusline looks like -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/21.png) - -and the cool statuslines appear only on `:vsp`, add -```vim -set laststatus=2 -``` -to your `.vimrc`. - - -If you have problem like -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/20.png) - -then add -```sh -export TERM=xterm-256color -``` -to your `.*shrc` and add -```vim -if !has('gui_running') - set t_Co=256 -endif -``` -to your `.vimrc`. - - -If the colors of the statusline do not change from the default colors, move the settings of `g:lightline` before setting the colorscheme. - -If you are reloading your `.vimrc` via `autocmd` and get this problem - -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/20.png) - -when saving it you need to add the nested flag to your `autocmd` like so - -```vim -augroup reload_vimrc - autocmd! - autocmd bufwritepost $MYVIMRC nested source $MYVIMRC -augroup END -``` - - -Colors appear correctly? Now let's see how to change the appearance. - - -You may think that the default read-only mark is not so cool: -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/3.png) - -Then edit the read-only component. -The lightline components are stored in `g:lightline.component`. -So you add the settings of `g:lightline.component.readonly` in your `.vimrc`. (the following settings are effective with the patched font for vim-powerline): -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'component': { - \ 'readonly': '%{&readonly?"⭤":""}', - \ } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/4.png) - -How nice! - -But the boundaries are quadrilateral. You may miss the powerline. -You have installed a cool font for powerlines, so you can use it. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'component': { - \ 'readonly': '%{&readonly?"⭤":""}', - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/5.png) - -Hurrah! Cool! - - -If your statusline looks like: -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/16.png) - -the patched font is not installed. - -There are two kinds of patched fonts: - -+ The patched fonts for [vim-powerline](https://github.com/Lokaltog/vim-powerline): see https://github.com/Lokaltog/vim-powerline/tree/develop/fontpatcher -+ The patched fonts for [powerline](https://github.com/Lokaltog/powerline): see https://github.com/Lokaltog/powerline-fonts - -Create or download a font and install it. -And add the `guifont` setting to your `.vimrc` (see `:help 'guifont'` for more detail). -If you are using the vim in a terminal, the font cannot be controlled in `.vimrc`. -Open the setting of the terminal and select the patched font. - -This tutorial is based on the former, the font for vim-powerline (Inconsolata for Powerline). -If you have installed the patched font for powerline, use the following settings instead. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'component': { - \ 'readonly': '%{&readonly?"":""}', - \ }, - \ 'separator': { 'left': '', 'right': '' }, - \ 'subseparator': { 'left': '', 'right': '' } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/19.png) - -If you have installed the font for powerline and your statusline looks like -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/18.png) - -remove -```vim -set ambiwidth=double -``` -from your `.vimrc`. If you want to keep this setting, use the patched font for vim-powerline. -+ https://github.com/Lokaltog/vim-powerline/tree/develop/fontpatcher - - -If you will not install a patched font, use ascii characters like: -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'component': { - \ 'readonly': '%{&readonly?"x":""}', - \ }, - \ 'separator': { 'left': '', 'right': '' }, - \ 'subseparator': { 'left': '|', 'right': '|' } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/17.png) - - - -If the triangles do not appear (but you get some spaces or weird characters like <bf> or ¿), firstly try adding -```vim -set encoding=utf-8 -scriptencoding utf-8 -``` -to the head of your `.vimrc`. -Still you have weird characters, use the unicode numbers. For powerline font -users: -```vim - \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, - \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" } -``` -For vim-powerline font users: -```vim - \ 'separator': { 'left': "\u2b80", 'right': "\u2b82" }, - \ 'subseparator': { 'left': "\u2b81", 'right': "\u2b83" } -``` - - -Almost all of things go well with the patched font but if the triangle looks weird: -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/22.png) - -If you are using iTerm2, change the following settings of iTerm2: -+ set `Profiles>Colors>Minimum contrast` to the Lowest. -+ set `Profiles>Window>Transparency` to the Opaquest. - -For other terminals, this weird-triangle problem will be resolved by disabling transparency or contrast adjustment. - - -If you want to get rid of the extraneous default vim mode information that is now provided by lightline: -![lightline.vim - showmode](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/showmode.png) -```vim -set noshowmode -``` - - -Now, let us get back to the tutorial (with the patched font for vim-powerline). -You look into a help file to find the marks annoying. - -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/6.png) - -Help files are read-only and no-modifiable? We know that! -OK, so you again edit the components. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'component': { - \ 'readonly': '%{&filetype=="help"?"":&readonly?"⭤":""}', - \ 'modified': '%{&filetype=="help"?"":&modified?"+":&modifiable?"":"-"}' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/7.png) - -Huh? Weird! -The components do not collapse even if they have no information! -In order to avoid this situation, you set expressions to `g:lightline.component_visible_condition`, which should become 1 only when the corresponding components have information. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'component': { - \ 'readonly': '%{&filetype=="help"?"":&readonly?"⭤":""}', - \ 'modified': '%{&filetype=="help"?"":&modified?"+":&modifiable?"":"-"}' - \ }, - \ 'component_visible_condition': { - \ 'readonly': '(&filetype!="help"&& &readonly)', - \ 'modified': '(&filetype!="help"&&(&modified||!&modifiable))' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/8.png) - -Okay. It works nice. - - - -How does lightline decide the components to show in the statusline? -It's very simple. -The variables to select components are `g:lightline.active.left` and `g:lightline.active.right`. -For example, you add the `g:lightline.active.left` in `.vimrc`. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'readonly', 'filename', 'modified' ] ] - \ }, - \ 'component': { - \ 'readonly': '%{&filetype=="help"?"":&readonly?"⭤":""}', - \ 'modified': '%{&filetype=="help"?"":&modified?"+":&modifiable?"":"-"}' - \ }, - \ 'component_visible_condition': { - \ 'readonly': '(&filetype!="help"&& &readonly)', - \ 'modified': '(&filetype!="help"&&(&modified||!&modifiable))' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } -``` -If the plugin arranges all the components (in a situation you `set paste` and the file `.vimrc` is read-only, try to modify): -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/9.png) - -The mode component, the paste component, read-only component, filename component and modified component in a row. -Normally, the paste component does not show up. -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/10.png) - -If the file is not read-only (more common cases), the read-only component does not show up. -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/11.png) - - -Again look into `g:lightline.active.left`. -```vim -let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'readonly', 'filename', 'modified' ] ] ... -``` -And the screen shot of all the components. -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/9.png) - -The mode and paste component are displayed in the same group. -The read-only, filename and modified component are in the second group. -It corresponds to the structure of `g:lightline.active.left`. -You can configure the components in the statusline by the following four variables: -+ `g:lightline.active.left` -+ `g:lightline.active.right` -+ `g:lightline.inactive.left` -+ `g:lightline.inactive.right` - -Of course, your settings in `.vimrc` have priority over the default settings in lightline. - - - -GitHub branch is important for us. -And it is a default component in [powerline](https://github.com/Lokaltog/powerline) and [vim-powerline](https://github.com/Lokaltog/vim-powerline). -However, lightline does not provide the branch feature by default. - -In order to show the branch in the statusline, you firstly install the [vim-fugitive](https://github.com/tpope/vim-fugitive) plugin. -Then edit the `g:lightline` in your `.vimrc`. -+ Add your fugitive component to `g:lightline.component`. -+ Add the condition when the fugitive component has information to `g:lightline.component_visible_condition`. -+ Add the component by inserting `'fugitive'` to `g:lightline.active.left`. - -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'fugitive', 'readonly', 'filename', 'modified' ] ] - \ }, - \ 'component': { - \ 'readonly': '%{&filetype=="help"?"":&readonly?"⭤":""}', - \ 'modified': '%{&filetype=="help"?"":&modified?"+":&modifiable?"":"-"}', - \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}' - \ }, - \ 'component_visible_condition': { - \ 'readonly': '(&filetype!="help"&& &readonly)', - \ 'modified': '(&filetype!="help"&&(&modified||!&modifiable))', - \ 'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/12.png) - -Okay, the branch component is added! - - - -Now, you might get tired of setting both `'component'` and `'component_visible_condition'`. -Or if you want to do something more complicated? - - -In fact, the components can be created using functions. -Add your function names for components to `g:lightline.component_function`. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'fugitive', 'readonly', 'filename', 'modified' ] ] - \ }, - \ 'component_function': { - \ 'fugitive': 'LightLineFugitive', - \ 'readonly': 'LightLineReadonly', - \ 'modified': 'LightLineModified' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } - -function! LightLineModified() - if &filetype == "help" - return "" - elseif &modified - return "+" - elseif &modifiable - return "" - else - return "" - endif -endfunction - -function! LightLineReadonly() - if &filetype == "help" - return "" - elseif &readonly - return "⭤" - else - return "" - endif -endfunction - -function! LightLineFugitive() - return exists('*fugitive#head') ? fugitive#head() : '' -endfunction -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/13.png) - -Fine and readable! - - -Finally, you come up with concatenating the three components: the read-only mark, the filename and the modified mark. -Now you may know what to do. -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'fugitive', 'filename' ] ] - \ }, - \ 'component_function': { - \ 'fugitive': 'LightLineFugitive', - \ 'readonly': 'LightLineReadonly', - \ 'modified': 'LightLineModified', - \ 'filename': 'LightLineFilename' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } - -function! LightLineModified() - if &filetype == "help" - return "" - elseif &modified - return "+" - elseif &modifiable - return "" - else - return "" - endif -endfunction - -function! LightLineReadonly() - if &filetype == "help" - return "" - elseif &readonly - return "⭤" - else - return "" - endif -endfunction - -function! LightLineFugitive() - return exists('*fugitive#head') ? fugitive#head() : '' -endfunction - -function! LightLineFilename() - return ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ ('' != expand('%:t') ? expand('%:t') : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') -endfunction -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/14.png) - -Oops! We forgot the cool mark for the branch component! (work with the patched font for vim-powerline) -```vim -function! LightLineFugitive() - if exists("*fugitive#head") - let branch = fugitive#head() - return branch !=# '' ? '⭠ '.branch : '' - endif - return '' -endfunction -``` -![lightline.vim - tutorial](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/tutorial/15.png) - -How cool!!! - -Of course, you can name your component as you wish. -```vim -let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'my_component' ] ] }, - \ 'component_function': { - \ 'my_component': 'LightLineComponent', ... -``` - -This is the end of the tutorial. For more information, see `:help lightline`. Good luck with your nice statuslines. - -### Cool characters for the patched fonts - -Symbol | Default | powerline | vim-powerline ------------------- | ------- | ------------- | ------------- -separator.left | '' | '' (\ue0b0) | '⮀' (\u2b80) -separator.right | '' | '' (\ue0b2) | '⮂' (\u2b82) -subseparator.left | '\|' | '' (\ue0b1) | '⮁' (\u2b81) -subseparator.right | '\|' | '' (\ue0b3) | '⮃' (\u2b83) -branch symbol | -- | '' (\ue0a0) | '⭠' (\u2b60) -readonly symbol | -- | '' (\ue0a2) | '⭤' (\u2b64) -linecolumn symbol | -- | '' (\ue0a1) | '⭡' (\u2b81) - -### My settings -I show my settings. I use the patched font for vim-powerline. -```vim -let g:lightline = { - \ 'colorscheme': 'landscape', - \ 'mode_map': { 'c': 'NORMAL' }, - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ] ] - \ }, - \ 'component_function': { - \ 'modified': 'LightLineModified', - \ 'readonly': 'LightLineReadonly', - \ 'fugitive': 'LightLineFugitive', - \ 'filename': 'LightLineFilename', - \ 'fileformat': 'LightLineFileformat', - \ 'filetype': 'LightLineFiletype', - \ 'fileencoding': 'LightLineFileencoding', - \ 'mode': 'LightLineMode', - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } - -function! LightLineModified() - return &ft =~ 'help\|vimfiler\|gundo' ? '' : &modified ? '+' : &modifiable ? '' : '-' -endfunction - -function! LightLineReadonly() - return &ft !~? 'help\|vimfiler\|gundo' && &readonly ? '⭤' : '' -endfunction - -function! LightLineFilename() - return ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ (&ft == 'vimfiler' ? vimfiler#get_status_string() : - \ &ft == 'unite' ? unite#get_status_string() : - \ &ft == 'vimshell' ? vimshell#get_status_string() : - \ '' != expand('%:t') ? expand('%:t') : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') -endfunction - -function! LightLineFugitive() - if &ft !~? 'vimfiler\|gundo' && exists("*fugitive#head") - let branch = fugitive#head() - return branch !=# '' ? '⭠ '.branch : '' - endif - return '' -endfunction - -function! LightLineFileformat() - return winwidth(0) > 70 ? &fileformat : '' -endfunction - -function! LightLineFiletype() - return winwidth(0) > 70 ? (&filetype !=# '' ? &filetype : 'no ft') : '' -endfunction - -function! LightLineFileencoding() - return winwidth(0) > 70 ? (&fenc !=# '' ? &fenc : &enc) : '' -endfunction - -function! LightLineMode() - return winwidth(0) > 60 ? lightline#mode() : '' -endfunction -``` -When the current window width is narrow, the mode component and the file information component collapse. -For example, the [gundo](https://github.com/sjl/gundo.vim) buffer is narrow. - -Before: -![lightline.vim - gundo](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/gundo0.png) - -After: -![lightline.vim - gundo](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/gundo1.png) - -Nice looking, isn't it? - -### For power users -For users who uses following plugins. - -- [CtrlP](https://github.com/kien/ctrlp.vim) -- [Tagbar](https://github.com/majutsushi/tagbar) -- [Gundo](http://github.com/sjl/gundo.vim) -- [NERDtree](http://github.com/scrooloose/nerdtree) -- [Syntastic](https://github.com/scrooloose/syntastic) -- [unite.vim](https://github.com/Shougo/unite.vim) -- [vimfiler.vim](https://github.com/Shougo/vimfiler.vim) -- [vimshell.vim](https://github.com/Shougo/vimshell.vim) - -```vim -let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ], ['ctrlpmark'] ], - \ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ] - \ }, - \ 'component_function': { - \ 'fugitive': 'LightLineFugitive', - \ 'filename': 'LightLineFilename', - \ 'fileformat': 'LightLineFileformat', - \ 'filetype': 'LightLineFiletype', - \ 'fileencoding': 'LightLineFileencoding', - \ 'mode': 'LightLineMode', - \ 'ctrlpmark': 'CtrlPMark', - \ }, - \ 'component_expand': { - \ 'syntastic': 'SyntasticStatuslineFlag', - \ }, - \ 'component_type': { - \ 'syntastic': 'error', - \ }, - \ 'subseparator': { 'left': '|', 'right': '|' } - \ } - -function! LightLineModified() - return &ft =~ 'help' ? '' : &modified ? '+' : &modifiable ? '' : '-' -endfunction - -function! LightLineReadonly() - return &ft !~? 'help' && &readonly ? 'RO' : '' -endfunction - -function! LightLineFilename() - let fname = expand('%:t') - return fname == 'ControlP' && has_key(g:lightline, 'ctrlp_item') ? g:lightline.ctrlp_item : - \ fname == '__Tagbar__' ? g:lightline.fname : - \ fname =~ '__Gundo\|NERD_tree' ? '' : - \ &ft == 'vimfiler' ? vimfiler#get_status_string() : - \ &ft == 'unite' ? unite#get_status_string() : - \ &ft == 'vimshell' ? vimshell#get_status_string() : - \ ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ ('' != fname ? fname : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') -endfunction - -function! LightLineFugitive() - try - if expand('%:t') !~? 'Tagbar\|Gundo\|NERD' && &ft !~? 'vimfiler' && exists('*fugitive#head') - let mark = '' " edit here for cool mark - let branch = fugitive#head() - return branch !=# '' ? mark.branch : '' - endif - catch - endtry - return '' -endfunction - -function! LightLineFileformat() - return winwidth(0) > 70 ? &fileformat : '' -endfunction - -function! LightLineFiletype() - return winwidth(0) > 70 ? (&filetype !=# '' ? &filetype : 'no ft') : '' -endfunction - -function! LightLineFileencoding() - return winwidth(0) > 70 ? (&fenc !=# '' ? &fenc : &enc) : '' -endfunction - -function! LightLineMode() - let fname = expand('%:t') - return fname == '__Tagbar__' ? 'Tagbar' : - \ fname == 'ControlP' ? 'CtrlP' : - \ fname == '__Gundo__' ? 'Gundo' : - \ fname == '__Gundo_Preview__' ? 'Gundo Preview' : - \ fname =~ 'NERD_tree' ? 'NERDTree' : - \ &ft == 'unite' ? 'Unite' : - \ &ft == 'vimfiler' ? 'VimFiler' : - \ &ft == 'vimshell' ? 'VimShell' : - \ winwidth(0) > 60 ? lightline#mode() : '' -endfunction - -function! CtrlPMark() - if expand('%:t') =~ 'ControlP' && has_key(g:lightline, 'ctrlp_item') - call lightline#link('iR'[g:lightline.ctrlp_regex]) - return lightline#concatenate([g:lightline.ctrlp_prev, g:lightline.ctrlp_item - \ , g:lightline.ctrlp_next], 0) - else - return '' - endif -endfunction - -let g:ctrlp_status_func = { - \ 'main': 'CtrlPStatusFunc_1', - \ 'prog': 'CtrlPStatusFunc_2', - \ } - -function! CtrlPStatusFunc_1(focus, byfname, regex, prev, item, next, marked) - let g:lightline.ctrlp_regex = a:regex - let g:lightline.ctrlp_prev = a:prev - let g:lightline.ctrlp_item = a:item - let g:lightline.ctrlp_next = a:next - return lightline#statusline(0) -endfunction - -function! CtrlPStatusFunc_2(str) - return lightline#statusline(0) -endfunction - -let g:tagbar_status_func = 'TagbarStatusFunc' - -function! TagbarStatusFunc(current, sort, fname, ...) abort - let g:lightline.fname = a:fname - return lightline#statusline(0) -endfunction - -augroup AutoSyntastic - autocmd! - autocmd BufWritePost *.c,*.cpp call s:syntastic() -augroup END -function! s:syntastic() - SyntasticCheck - call lightline#update() -endfunction - -let g:unite_force_overwrite_statusline = 0 -let g:vimfiler_force_overwrite_statusline = 0 -let g:vimshell_force_overwrite_statusline = 0 -``` - -### Note for developers of other plugins -Appearance consistency matters. - -The statusline is an important space for Vim users. -Overwriting the statusline forcibly in your plugin is not a good idea. -It is not hospitality, but just an annoying feature. -If your plugin has such a feature, add an option to be modest. - -A good design is the following. -Firstly, give the users a clue to judge which buffer is the one your plugin creates. -The filename is a manner and the filetype is another. -Then, export a function which is useful to be shown in the statusline. -Lastly, for advanced users, set important information in buffer variables. -So that the users can obtain the condition of the plugin easily. diff --git a/vim/bundle/lightline.vim/autoload/lightline.vim b/vim/bundle/lightline.vim/autoload/lightline.vim deleted file mode 100644 index 045e2b8..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline.vim +++ /dev/null @@ -1,485 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline.vim -" Author: itchyny -" License: MIT License -" Last Change: 2016/06/12 22:40:00. -" ============================================================================= - -let s:save_cpo = &cpo -set cpo&vim - -let s:_ = 1 - -function! lightline#update() abort - if s:_ - call lightline#init() - call lightline#colorscheme() - endif - if !s:lightline.enable.statusline - return - endif - let w = winnr() - let s = winnr('$') == 1 ? [lightline#statusline(0)] : [lightline#statusline(0), lightline#statusline(1)] - for n in range(1, winnr('$')) - call setwinvar(n, '&statusline', s[n!=w]) - call setwinvar(n, 'lightline', n!=w) - endfor -endfunction - -function! lightline#update_once() abort - if !exists('w:lightline') || w:lightline - call lightline#update() - endif -endfunction - -function! lightline#update_disable() abort - if !s:lightline.enable.statusline - return - endif - call setwinvar(0, '&statusline', '') -endfunction - -function! lightline#enable() abort - call lightline#colorscheme() - call lightline#update() - if s:lightline.enable.tabline - set tabline=%!lightline#tabline() - endif - augroup lightline - autocmd! - autocmd WinEnter,BufWinEnter,FileType,ColorScheme,SessionLoadPost * call lightline#update() - autocmd ColorScheme,SessionLoadPost * call lightline#highlight() - autocmd CursorMoved,BufUnload * call lightline#update_once() - augroup END - augroup lightline-disable - autocmd! - augroup END - augroup! lightline-disable -endfunction - -function! lightline#disable() abort - let [&statusline, &tabline] = [get(s:, '_statusline', ''), get(s:, '_tabline', '')] - for t in range(1, tabpagenr('$')) - for n in range(1, tabpagewinnr(t, '$')) - call settabwinvar(t, n, '&statusline', '') - endfor - endfor - augroup lightline - autocmd! - augroup END - augroup! lightline - augroup lightline-disable - autocmd! - autocmd WinEnter * call lightline#update_disable() - augroup END -endfunction - -function! lightline#toggle() abort - if exists('#lightline') - call lightline#disable() - else - call lightline#enable() - endif -endfunction - -let s:_lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'readonly', 'filename', 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat', 'fileencoding', 'filetype' ] ] - \ }, - \ 'inactive': { - \ 'left': [ [ 'filename' ] ], - \ 'right': [ [ 'lineinfo' ], [ 'percent' ] ] - \ }, - \ 'tabline': { - \ 'left': [ [ 'tabs' ] ], - \ 'right': [ [ 'close' ] ] - \ }, - \ 'tab': { - \ 'active': [ 'tabnum', 'filename', 'modified' ], - \ 'inactive': [ 'tabnum', 'filename', 'modified' ] - \ }, - \ 'component': { - \ 'mode': '%{lightline#mode()}', - \ 'absolutepath': '%F', 'relativepath': '%f', 'filename': '%t', 'modified': '%M', 'bufnum': '%n', - \ 'paste': '%{&paste?"PASTE":""}', 'readonly': '%R', 'charvalue': '%b', 'charvaluehex': '%B', - \ 'spell': '%{&spell?&spelllang:""}', 'fileencoding': '%{&fenc!=#""?&fenc:&enc}', 'fileformat': '%{&ff}', - \ 'filetype': '%{&ft!=#""?&ft:"no ft"}', 'percent': '%3p%%', 'percentwin': '%P', - \ 'lineinfo': '%3l:%-2v', 'line': '%l', 'column': '%c', 'close': '%999X X ' - \ }, - \ 'component_visible_condition': { - \ 'modified': '&modified||!&modifiable', 'readonly': '&readonly', 'paste': '&paste', 'spell': '&spell' - \ }, - \ 'component_function': {}, - \ 'component_expand': { - \ 'tabs': 'lightline#tabs' - \ }, - \ 'component_type': { - \ 'tabs': 'tabsel', 'close': 'raw' - \ }, - \ 'tab_component': {}, - \ 'tab_component_function': { - \ 'filename': 'lightline#tab#filename', 'modified': 'lightline#tab#modified', - \ 'readonly': 'lightline#tab#readonly', 'tabnum': 'lightline#tab#tabnum' - \ }, - \ 'colorscheme': 'default', - \ 'mode_map': { - \ 'n': 'NORMAL', 'i': 'INSERT', 'R': 'REPLACE', 'v': 'VISUAL', 'V': 'V-LINE', "\<C-v>": 'V-BLOCK', - \ 'c': 'COMMAND', 's': 'SELECT', 'S': 'S-LINE', "\<C-s>": 'S-BLOCK', 't': 'TERMINAL' - \ }, - \ 'separator': { 'left': '', 'right': '' }, - \ 'subseparator': { 'left': '|', 'right': '|' }, - \ 'tabline_separator': {}, - \ 'tabline_subseparator': {}, - \ 'enable': { 'statusline': 1, 'tabline': 1 }, - \ '_mode_': { - \ 'n': 'normal', 'i': 'insert', 'R': 'replace', 'v': 'visual', 'V': 'visual', "\<C-v>": 'visual', - \ 'c': 'command', 's': 'select', 'S': 'select', "\<C-s>": 'select', 't': 'terminal' - \ }, - \ 'mode_fallback': { 'replace': 'insert', 'terminal': 'insert', 'select': 'visual' }, - \ 'palette': {}, - \ 'winwidth': winwidth(0), - \ } -function! lightline#init() abort - let s:lightline = deepcopy(get(g:, 'lightline', {})) - for [key, value] in items(s:_lightline) - if type(value) == 4 - if !has_key(s:lightline, key) - let s:lightline[key] = {} - endif - call extend(s:lightline[key], value, 'keep') - elseif !has_key(s:lightline, key) - let s:lightline[key] = value - endif - unlet value - endfor - call extend(s:lightline.tabline_separator, s:lightline.separator, 'keep') - call extend(s:lightline.tabline_subseparator, s:lightline.subseparator, 'keep') - let s:lightline.tabline_configured = 0 - for components in deepcopy(s:lightline.tabline.left + s:lightline.tabline.right) - if len(filter(components, 'v:val !=# "tabs" && v:val !=# "close"')) > 0 - let s:lightline.tabline_configured = 1 - break - endif - endfor - if !exists('s:_statusline') - let s:_statusline = &statusline - endif - if !exists('s:_tabline') - let s:_tabline = &tabline - endif - if s:lightline.enable.tabline - set tabline=%!lightline#tabline() - else - let &tabline = get(s:, '_tabline', '') - endif - for f in values(s:lightline.component_function) - silent! call call(f, []) - endfor - for f in values(s:lightline.tab_component_function) - silent! call call(f, [1]) - endfor - let s:mode = '' -endfunction - -function! lightline#colorscheme() abort - try - let s:lightline.palette = g:lightline#colorscheme#{s:lightline.colorscheme}#palette - catch - call lightline#error('Could not load colorscheme ' . s:lightline.colorscheme . '.') - let s:lightline.colorscheme = 'default' - let s:lightline.palette = g:lightline#colorscheme#{s:lightline.colorscheme}#palette - finally - let s:highlight = {} - call lightline#highlight('normal') - call lightline#link() - let s:_ = 0 - if has('win32') && !has('gui_running') && &t_Co < 256 - for u in values(s:lightline.palette) - for v in values(u) - for _ in v - let [_[2], _[3]] = [lightline#colortable#gui2cui(_[0], _[2]), lightline#colortable#gui2cui(_[1], _[3])] - endfor - endfor - endfor - endif - endtry -endfunction - -function! lightline#palette() abort - return s:lightline.palette -endfunction - -function! lightline#mode() abort - return get(s:lightline.mode_map, mode(), '') -endfunction - -let s:mode = '' -function! lightline#link(...) abort - let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal') - if s:mode == mode - return '' - endif - let s:mode = mode - if !has_key(s:highlight, mode) - call lightline#highlight(mode) - endif - let types = map(s:uniq(sort(filter(values(s:lightline.component_type), 'v:val !=# "raw"'))), '[v:val, 1]') - for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]] - for [i, t] in map(range(0, l), '[v:val, 0]') + types - if i != l - exec printf('hi link LightLine%s_active_%s LightLine%s_%s_%s', p, i, p, mode, i) - endif - for [j, s] in map(range(0, l), '[v:val, 0]') + types - if i + 1 == j || t || s && i != l - exec printf('hi link LightLine%s_active_%s_%s LightLine%s_%s_%s_%s', p, i, j, p, mode, i, j) - endif - endfor - endfor - endfor - exec printf('hi link LightLineMiddle_active LightLineMiddle_%s', mode) - return '' -endfunction - -function! s:term(p) abort - return get(a:p, 4) !=# '' ? 'term='.a:p[4].' cterm='.a:p[4].' gui='.a:p[4] : '' -endfunction - -if exists('*uniq') - let s:uniq = function('uniq') -else - function! s:uniq(xs) abort - let i = len(a:xs) - 1 - while i > 0 - if a:xs[i] ==# a:xs[i - 1] - call remove(a:xs, i) - endif - let i -= 1 - endwhile - return a:xs - endfunction -endif - -function! lightline#highlight(...) abort - let [c, f] = [s:lightline.palette, s:lightline.mode_fallback] - let [s:lightline.llen, s:lightline.rlen] = [len(c.normal.left), len(c.normal.right)] - let [s:lightline.tab_llen, s:lightline.tab_rlen] = [len(has_key(get(c, 'tabline', {}), 'left') ? c.tabline.left : c.normal.left), len(has_key(get(c, 'tabline', {}), 'right') ? c.tabline.right : c.normal.right)] - let types = map(s:uniq(sort(filter(values(s:lightline.component_type), 'v:val !=# "raw"'))), '[v:val, 1]') - let modes = a:0 ? [a:1] : extend(['normal', 'insert', 'replace', 'visual', 'inactive', 'command', 'select', 'tabline'], has('nvim') ? ['terminal'] : []) - for mode in modes - let s:highlight[mode] = 1 - let d = has_key(c, mode) ? mode : has_key(f, mode) && has_key(c, f[mode]) ? f[mode] : 'normal' - let left = d ==# 'tabline' ? s:lightline.tabline.left : d ==# 'inactive' ? s:lightline.inactive.left : s:lightline.active.left - let right = d ==# 'tabline' ? s:lightline.tabline.right : d ==# 'inactive' ? s:lightline.inactive.right : s:lightline.active.right - let ls = has_key(get(c, d, {}), 'left') ? c[d].left : has_key(f, d) && has_key(get(c, f[d], {}), 'left') ? c[f[d]].left : c.normal.left - let ms = has_key(get(c, d, {}), 'middle') ? c[d].middle[0] : has_key(f, d) && has_key(get(c, f[d], {}), 'middle') ? c[f[d]].middle[0] : c.normal.middle[0] - let rs = has_key(get(c, d, {}), 'right') ? c[d].right : has_key(f, d) && has_key(get(c, f[d], {}), 'right') ? c[f[d]].right : c.normal.right - for [p, l, zs] in [['Left', len(left), ls], ['Right', len(right), rs]] - for [i, t] in map(range(0, l), '[v:val, 0]') + types - if i < l || i < 1 - let r = t ? (has_key(get(c, d, []), i) ? c[d][i][0] : has_key(get(c, 'tabline', {}), i) ? c.tabline[i][0] : get(c.normal, i, zs)[0]) : get(zs, i, ms) - exec printf('hi LightLine%s_%s_%s guifg=%s guibg=%s ctermfg=%s ctermbg=%s %s', p, mode, i, r[0], r[1], r[2], r[3], s:term(r)) - endif - for [j, s] in map(range(0, l), '[v:val, 0]') + types - if i + 1 == j || t || s && i != l - let q = s ? (has_key(get(c, d, []), j) ? c[d][j][0] : has_key(get(c, 'tabline', {}), j) ? c.tabline[j][0] : get(c.normal, j, zs)[0]) : (j != l ? get(zs, j, ms) :ms) - exec printf('hi LightLine%s_%s_%s_%s guifg=%s guibg=%s ctermfg=%s ctermbg=%s', p, mode, i, j, r[1], q[1], r[3], q[3]) - endif - endfor - endfor - endfor - exec printf('hi LightLineMiddle_%s guifg=%s guibg=%s ctermfg=%s ctermbg=%s %s', mode, ms[0], ms[1], ms[2], ms[3], s:term(ms)) - endfor -endfunction - -function! s:subseparator(components, subseparator, expanded) abort - let [a, c, f, v] = [ a:components, s:lightline.component, s:lightline.component_function, s:lightline.component_visible_condition ] - let xs = map(range(len(a:components)), 'a:expanded[v:val] ? "1" : - \ has_key(f, a[v:val]) ? (exists("*".f[a[v:val]]) ? "" : "exists(\"*".f[a[v:val]]."\")&&").f[a[v:val]]."()!=#\"\"" : - \ has_key(v, a[v:val]) ? "(" . v[a[v:val]] . ")" : has_key(c, a[v:val]) ? "1" : "0"') - return '%{' . (xs[0] ==# '1' ? '' : xs[0] . '&&(') . join(xs[1:], '||') . (xs[0] ==# '1' ? '' : ')') . '?"' . a:subseparator . '":""}' -endfunction - -function! lightline#concatenate(xs, right) abort - let separator = a:right ? s:lightline.subseparator.right : s:lightline.subseparator.left - return join(filter(copy(a:xs), 'v:val !=# ""'), ' ' . separator . ' ') -endfunction - -function! lightline#statusline(inactive) abort - if a:inactive && !has_key(s:highlight, 'inactive') - call lightline#highlight('inactive') - endif - return s:line(0, a:inactive) -endfunction - -function! s:normalize(result) abort - if type(a:result) == 3 - return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)') - elseif type(a:result) == 1 - return [a:result] - else - return [string(a:result)] - endif -endfunction - -function! s:evaluate_expand(component) abort - try - let result = call(a:component, []) - if type(result) == 1 && result ==# '' - return [] - endif - catch - return [] - endtry - return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")') -endfunction - -function! s:convert(name, index) abort - if has_key(s:lightline.component_expand, a:name) - let type = get(s:lightline.component_type, a:name, a:index) - return filter(s:map(s:evaluate_expand(s:lightline.component_expand[a:name]), '[v:val, 1, v:key == 1 ? "' . type . '" : "' . a:index . '"]'), 'v:val[0] != []') - else - return [[[a:name], 0, a:index]] - endif -endfunction - -function! s:flatten_twice(xss) abort - let ys = [] - for xs in a:xss - for x in xs - let ys += x - endfor - endfor - return ys -endfunction - -if v:version > 702 || v:version == 702 && has('patch295') - let s:map = function('map') -else - function! s:map(xs, f) abort - let ys = [] - for i in range(len(a:xs)) - call extend(ys, map(a:xs[(i):(i)], substitute(a:f, 'v:key', i, 'g'))) - endfor - return ys - endfunction -endif - -function! s:expand(components) abort - let components = [] - let expanded = [] - let indices = [] - let previndex = -1 - let xs = s:flatten_twice(s:map(deepcopy(a:components), 'map(v:val, "s:convert(v:val, ''" . v:key . "'')")')) - for [component, expand, index] in xs - if previndex != index - call add(indices, index) - call add(components, []) - call add(expanded, []) - endif - call extend(components[-1], component) - call extend(expanded[-1], repeat([expand], len(component))) - let previndex = index - endfor - call add(indices, string(len(a:components))) - return [components, expanded, indices] -endfunction - -function! s:line(tabline, inactive) abort - let _ = a:tabline ? '' : '%{lightline#link()}' - if s:lightline.palette == {} - call lightline#colorscheme() - endif - let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen] - let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator] - let [c, f, t] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type] - let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active' - let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left - let [lt, lc, ll] = s:expand(copy(l_)) - let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right - let [rt, rc, rl] = s:expand(copy(r_)) - for i in range(len(lt)) - let _ .= '%#LightLineLeft_' . mode . '_' . ll[i] . '#' - for j in range(len(lt[i])) - let x = lc[i][j] ? lt[i][j] : has_key(f, lt[i][j]) ? (exists('*' . f[lt[i][j]]) ? '%{' . f[lt[i][j]] . '()}' : '%{exists("*' . f[lt[i][j]] . '")?' . f[lt[i][j]] . '():""}') : get(c, lt[i][j], '') - let _ .= has_key(t, lt[i][j]) && t[lt[i][j]] ==# 'raw' || x ==# '' ? x : '%( ' . x . ' %)' - if j < len(lt[i]) - 1 && s.left !=# '' - let _ .= s:subseparator(lt[i][(j):], s.left, lc[i][(j):]) - endif - endfor - let _ .= '%#LightLineLeft_' . mode . '_' . ll[i] . '_' . ll[i + 1] . '#' - let _ .= i < l + len(lt) - len(l_) && ll[i] < l || ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : '' - endfor - let _ .= '%#LightLineMiddle_' . mode . '#%=' - for i in reverse(range(len(rt))) - let _ .= '%#LightLineRight_' . mode . '_' . rl[i] . '_' . rl[i + 1] . '#' - let _ .= i < r + len(rt) - len(r_) && rl[i] < r || rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : '' - let _ .= '%#LightLineRight_' . mode . '_' . rl[i] . '#' - for j in range(len(rt[i])) - let x = rc[i][j] ? rt[i][j] : has_key(f, rt[i][j]) ? (exists('*' . f[rt[i][j]]) ? '%{' . f[rt[i][j]] . '()}' : '%{exists("*' . f[rt[i][j]] . '")?' . f[rt[i][j]] . '():""}') : get(c, rt[i][j], '') - let _ .= has_key(t, rt[i][j]) && t[rt[i][j]] ==# 'raw' || x ==# '' ? x : '%( ' . x . ' %)' - if j < len(rt[i]) - 1 && s.right !=# '' - let _ .= s:subseparator(rt[i][(j):], s.right, rc[i][(j):]) - endif - endfor - endfor - return _ -endfunction - -let s:tabnr = -1 -let s:tabcnt = -1 -let s:tabline = '' -function! lightline#tabline() abort - if !has_key(s:highlight, 'tabline') - call lightline#highlight('tabline') - endif - if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$') - let s:tabnr = tabpagenr() - let s:tabcnt = tabpagenr('$') - let s:tabline = s:line(1, 0) - endif - return s:tabline -endfunction - -function! lightline#tabs() abort - let [x, y, z] = [[], [], []] - let nr = tabpagenr() - let cnt = tabpagenr('$') - for i in range(1, cnt) - call add(i < nr ? x : i == nr ? y : z, '%'. i . 'T%{lightline#onetab(' . i . ',' . (i == nr) . ')}' . (i == cnt ? '%T' : '')) - endfor - let abbr = '...' - let n = min([max([s:lightline.winwidth / 40, 2]), 8]) - if len(x) > n && len(z) > n - let x = extend(add(x[:n/2-1], abbr), x[-(n+1)/2:]) - let z = extend(add(z[:(n+1)/2-1], abbr), z[-n/2:]) - elseif len(x) + len(z) > 2 * n - if len(x) > n - let x = extend(add(x[:(2*n-len(z))/2-1], abbr), x[-(2*n-len(z)+1)/2:]) - elseif len(z) > n - let z = extend(add(z[:(2*n-len(x)+1)/2-1], abbr), z[-(2*n-len(x))/2:]) - endif - endif - return [x, y, z] -endfunction - -function! lightline#onetab(n, active) abort - let _ = [] - for name in a:active ? s:lightline.tab.active : s:lightline.tab.inactive - if has_key(s:lightline.tab_component_function, name) - call add(_, call(s:lightline.tab_component_function[name], [a:n])) - else - call add(_, get(s:lightline.tab_component, name, '')) - endif - endfor - return join(filter(_, 'v:val !=# ""'), ' ') -endfunction - -function! lightline#error(msg) abort - echohl ErrorMsg - echomsg 'lightline.vim: '.a:msg - echohl None -endfunction - -let &cpo = s:save_cpo -unlet s:save_cpo diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme.vim deleted file mode 100644 index de23eb5..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme.vim +++ /dev/null @@ -1,228 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme.vim -" Author: itchyny -" License: MIT License -" Last Change: 2015/03/18 08:37:17. -" ============================================================================= - -let s:save_cpo = &cpo -set cpo&vim - -let s:cuicolor = { - \ 'black' : 16, - \ 'white' : 231, - \ - \ 'darkestgreen' : 22, - \ 'darkgreen' : 28, - \ 'mediumgreen' : 70, - \ 'brightgreen' : 148, - \ - \ 'darkestcyan' : 23, - \ 'mediumcyan' : 117, - \ - \ 'darkestblue' : 24, - \ 'darkblue' : 31, - \ - \ 'darkestred' : 52, - \ 'darkred' : 88, - \ 'mediumred' : 124, - \ 'brightred' : 160, - \ 'brightestred' : 196, - \ - \ 'darkestpurple' : 55, - \ 'mediumpurple' : 98, - \ 'brightpurple' : 189, - \ - \ 'brightorange' : 208, - \ 'brightestorange': 214, - \ - \ 'gray0' : 233, - \ 'gray1' : 235, - \ 'gray2' : 236, - \ 'gray3' : 239, - \ 'gray4' : 240, - \ 'gray5' : 241, - \ 'gray6' : 244, - \ 'gray7' : 245, - \ 'gray8' : 247, - \ 'gray9' : 250, - \ 'gray10' : 252, - \ - \ 'yellow' : 136, - \ 'orange' : 166, - \ 'red' : 160, - \ 'magenta' : 125, - \ 'violet' : 61, - \ 'blue' : 33, - \ 'cyan' : 37, - \ 'green' : 64, - \ } - -let s:guicolor = { - \ 'black' : '#000000', - \ 'white' : '#ffffff', - \ - \ 'darkestgreen' : '#005f00', - \ 'darkgreen' : '#008700', - \ 'mediumgreen' : '#5faf00', - \ 'brightgreen' : '#afdf00', - \ - \ 'darkestcyan' : '#005f5f', - \ 'mediumcyan' : '#87dfff', - \ - \ 'darkestblue' : '#005f87', - \ 'darkblue' : '#0087af', - \ - \ 'darkestred' : '#5f0000', - \ 'darkred' : '#870000', - \ 'mediumred' : '#af0000', - \ 'brightred' : '#df0000', - \ 'brightestred' : '#ff0000', - \ - \ 'darkestpurple' : '#5f00af', - \ 'mediumpurple' : '#875fdf', - \ 'brightpurple' : '#dfdfff', - \ - \ 'brightorange' : '#ff8700', - \ 'brightestorange': '#ffaf00', - \ - \ 'gray0' : '#121212', - \ 'gray1' : '#262626', - \ 'gray2' : '#303030', - \ 'gray3' : '#4e4e4e', - \ 'gray4' : '#585858', - \ 'gray5' : '#606060', - \ 'gray6' : '#808080', - \ 'gray7' : '#8a8a8a', - \ 'gray8' : '#9e9e9e', - \ 'gray9' : '#bcbcbc', - \ 'gray10' : '#d0d0d0', - \ - \ 'yellow' : '#b58900', - \ 'orange' : '#cb4b16', - \ 'red' : '#dc322f', - \ 'magenta' : '#d33682', - \ 'violet' : '#6c71c4', - \ 'blue' : '#268bd2', - \ 'cyan' : '#2aa198', - \ 'green' : '#859900', - \ } - -function! s:convert(rgb) abort - let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)') - if len(rgb) == 0 - return 0 - endif - if rgb[0] == 0xc0 && rgb[1] == 0xc0 && rgb[2] == 0xc0 - return 7 - elseif rgb[0] == 0x80 && rgb[1] == 0x80 && rgb[2] == 0x80 - return 8 - elseif (rgb[0] == 0x80 || rgb[0] == 0x00) && (rgb[1] == 0x80 || rgb[1] == 0x00) && (rgb[2] == 0x80 || rgb[2] == 0x00) - return (rgb[0] / 0x80) + (rgb[1] / 0x80) * 2 + (rgb[1] / 0x80) * 4 - elseif abs(rgb[0]-rgb[1]) < 3 && abs(rgb[1]-rgb[2]) < 3 && abs(rgb[2]-rgb[0]) < 3 - return s:black((rgb[0] + rgb[1] + rgb[2]) / 3) - else - return 16 + ((s:nr(rgb[0]) * 6) + s:nr(rgb[1])) * 6 + s:nr(rgb[2]) - endif -endfunction - -function! s:black(x) abort - if a:x < 0x04 - return 16 - elseif a:x > 0xf4 - return 231 - elseif index([0x00, 0x5f, 0x87, 0xaf, 0xdf, 0xff], a:x) >= 0 - let l = a:x / 0x30 - return ((l * 6) + l) * 6 + l + 16 - else - return 232 + (a:x < 8 ? 0 : a:x < 0x60 ? (a:x-8)/10 : a:x < 0x76 ? (a:x-0x60)/6+9 : (a:x-8)/10) - endif -endfunction - -function! s:nr(x) abort - return a:x < 0x2f ? 0 : a:x < 0x73 ? 1 : a:x < 0x9b ? 2 : a:x < 0xc7 ? 3 : a:x < 0xef ? 4 : 5 -endfunction - -function! s:rgb(r, g, b) abort - return printf('#%02x%02x%02x', a:r, a:g, a:b) -endfunction - -function! s:upconvert(nr) abort - let x = a:nr * 1 - if x < 7 - let [b, rg] = [x / 4, x % 4] - let [g, r] = [rg / 2, rg % 2] - return s:rgb(r * 0x80, g * 0x80, b * 0x80) - elseif x == 7 - return s:rgb(0xc0, 0xc0, 0xc0) - elseif x == 8 - return s:rgb(0x80, 0x80, 0x80) - elseif x < 16 - let y = x - 8 - let [b, rg] = [y / 4, y % 4] - let [g, r] = [rg / 2, rg % 2] - return s:rgb(r * 0xff, g * 0xff, b * 0xff) - elseif x < 232 - let y = x - 16 - let [rg, b] = [y / 6, y % 6] - let [r, g] = [rg / 6, rg % 6] - let l = [0x00, 0x5f, 0x87, 0xaf, 0xdf, 0xff] - return s:rgb(l[r], l[g], l[b]) - elseif x < 241 - let k = (x - 232) * 10 + 8 - return s:rgb(k, k, k) - elseif x < 243 - let k = (x - 241) * 6 + 0x60 - return s:rgb(k, k, k) - else - let k = (x - 232) * 10 + 8 - return s:rgb(k, k, k) - endif -endfunction - -function! lightline#colorscheme#fill(p) abort - for k in values(a:p) - for l in values(k) - for m in l - if len(m) < 4 - if type(m[0]) == 1 && type(m[1]) == 1 - if m[0] =~# '^\d\+$' && m[1] =~# '^\d\+$' - call insert(m, s:upconvert(m[1]), 0) - call insert(m, s:upconvert(m[1]), 0) - else - call insert(m, get(s:cuicolor, m[0], s:convert(m[0])), 2) - call insert(m, get(s:cuicolor, m[1], s:convert(m[1])), 3) - let m[0] = get(s:guicolor, m[0], m[0]) - let m[1] = get(s:guicolor, m[1], m[1]) - endif - elseif type(m[0]) == 0 && type(m[1]) == 0 - call insert(m, s:upconvert(m[1]), 0) - call insert(m, s:upconvert(m[1]), 0) - endif - endif - endfor - endfor - endfor - return a:p -endfunction - -function! lightline#colorscheme#flatten(p) abort - for k in values(a:p) - for l in values(k) - for m in range(len(l)) - let attr = '' - if len(l[m]) == 3 && type(l[m][2]) == 1 - let attr = l[m][2] - endif - let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]] - if !empty(attr) - call add(l[m], attr) - endif - endfor - endfor - endfor - return a:p -endfunction - -let &cpo = s:save_cpo -unlet s:save_cpo diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/16color.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/16color.vim deleted file mode 100644 index 170aa93..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/16color.vim +++ /dev/null @@ -1,46 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/16color.vim -" Author: itchyny -" License: MIT License -" Last Change: 2014/01/02 10:04:03. -" ============================================================================= -let s:base03 = [ '#808080', 8 ] -let s:base02 = [ '#000000', 0 ] -let s:base01 = [ '#00ff00', 10 ] -let s:base00 = [ '#ffff00', 11 ] -let s:base0 = [ '#0000ff', 12 ] -let s:base1 = [ '#00ffff', 14 ] -let s:base2 = [ '#c0c0c0', 7 ] -let s:base3 = [ '#ffffff', 15 ] -let s:yellow = [ '#808000', 3 ] -let s:orange = [ '#ff0000', 9 ] -let s:red = [ '#800000', 1 ] -let s:magenta = [ '#800080', 5 ] -let s:violet = [ '#ff00ff', 13 ] -let s:blue = [ '#000080', 4 ] -let s:cyan = [ '#008080', 6 ] -let s:green = [ '#008000', 2 ] -if &background ==# 'light' - let [s:base03, s:base3] = [s:base3, s:base03] - let [s:base02, s:base2] = [s:base2, s:base02] - let [s:base01, s:base1] = [s:base1, s:base01] - let [s:base00, s:base0] = [s:base0, s:base00] -endif -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base3, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base01 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base02 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base2 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:base2, s:red ] ] -let s:p.normal.warning = [ [ s:base02, s:yellow ] ] - -let g:lightline#colorscheme#16color#palette = lightline#colorscheme#flatten(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor.vim deleted file mode 100644 index 429439d..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor.vim +++ /dev/null @@ -1,12 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/PaperColor.vim -" Author: TKNGUE -" License: MIT License -" Last Change: 2015/07/28 07:35:00. -" ============================================================================= - -if &background ==# 'light' - let g:lightline#colorscheme#PaperColor#palette = g:lightline#colorscheme#PaperColor_light#palette -else - let g:lightline#colorscheme#PaperColor#palette = g:lightline#colorscheme#PaperColor_dark#palette -endif diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor_dark.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor_dark.vim deleted file mode 100644 index 0a70b34..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor_dark.vim +++ /dev/null @@ -1,60 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/PaperColor_dark.vim -" Author: TKNGUE -" License: MIT License -" Last Change: 2015-07-27 06:01 -" ============================================================================= - -let s:red = '#df0000' -let s:green = '#008700' -let s:blue = '#00afaf' - -let s:pink = '#afdf00' -let s:olive = '#dfaf5f' -let s:navy = '#df875f' - -let s:orange = '#d75f00' -let s:purple = '#8959a8' -let s:aqua = '#3e999f' - -" Basics: -let s:foreground = '#d0d0d0' -let s:background = '#444444' -let s:window = '#efefef' -let s:status = '#c6c6c6' -let s:error = '#5f0000' - -" Tabline: -let s:tabline_bg = '#3a3a3a' -let s:tabline_active_fg = '#1c1c1c' -let s:tabline_active_bg = '#00afaf' -let s:tabline_inactive_fg = '#c6c6c6' -let s:tabline_inactive_bg = '#585858' - -" Statusline: -let s:statusline_active_fg = '#1c1c1c' -let s:statusline_active_bg = '#5f8787' -let s:statusline_inactive_fg = '#c6c6c6' -let s:statusline_inactive_bg = '#444444' - -" Visual: -let s:visual_fg = '#000000' -let s:visual_bg = '#8787af' - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.normal.right = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.normal.middle = [ [ s:statusline_active_fg, s:statusline_active_bg ]] -let s:p.inactive.right = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ] -let s:p.inactive.left = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ] -let s:p.inactive.middle = [ [ s:foreground, s:background ], ] -let s:p.insert.left = [ [ s:background, s:blue], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.replace.left = [ [ s:background, s:pink ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.visual.left = [ [ s:visual_fg, s:visual_bg ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.tabline.left = [ [s:tabline_inactive_fg, s:tabline_inactive_bg ]] -let s:p.tabline.tabsel = [ [s:tabline_active_fg, s:tabline_active_bg ] ] -let s:p.tabline.middle = [ [s:tabline_bg, s:tabline_bg]] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:background, s:error ] ] - -let g:lightline#colorscheme#PaperColor_dark#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor_light.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor_light.vim deleted file mode 100644 index aef0b86..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/PaperColor_light.vim +++ /dev/null @@ -1,55 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/PaperColor_light.vim -" Author: TKNGUE -" License: MIT License -" Last Change: 2015/07/28 07:46:40. -" ============================================================================= - -let s:red = '#df0000' -let s:green = '#008700' -let s:blue = '#4271ae' -let s:pink = '#d7005f' -let s:olive = '#718c00' -let s:navy = '#005f87' -let s:orange = '#d75f00' -let s:purple = '#8959a8' -let s:aqua = '#3e999f' - -" Basics: -let s:foreground = '#4d4d4c' -let s:background = '#F5F5F5' -let s:window = '#efefef' -let s:status = s:aqua -let s:error = '#ffafdf' - -" Tabline: -let s:tabline_bg = s:navy -let s:tabline_active_fg = s:foreground -let s:tabline_active_bg = s:window -let s:tabline_inactive_fg = s:background -let s:tabline_inactive_bg = s:aqua - -" Statusline: -let s:statusline_active_fg = s:window -let s:statusline_active_bg = s:navy -let s:statusline_inactive_fg = s:foreground -let s:statusline_inactive_bg = '#dadada' - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.normal.right = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.normal.middle = [ [ s:statusline_active_fg, s:statusline_active_bg ]] -let s:p.inactive.right = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ] -let s:p.inactive.left = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ] -let s:p.inactive.middle = [ [ s:foreground, s:background ], ] -let s:p.insert.left = [ [ s:blue, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.replace.left = [ [ s:background, s:pink ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.visual.left = [ [ s:background, s:orange ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ] -let s:p.tabline.left = [ [s:tabline_inactive_fg, s:tabline_inactive_bg ]] -let s:p.tabline.tabsel = [ [s:tabline_active_fg, s:tabline_active_bg ] ] -let s:p.tabline.middle = [ [s:tabline_bg, s:tabline_bg]] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:background, s:error ] ] -let s:p.normal.warning = [ [ s:background, s:olive ] ] - -let g:lightline#colorscheme#PaperColor_light#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow.vim deleted file mode 100644 index 8255966..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow.vim +++ /dev/null @@ -1,41 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/Tomorrow.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 12:22:37. -" ============================================================================= -let s:base03 = '#fafafa' -let s:base023 = '#dfdfdf' -let s:base02 = '#c8c8c8' -let s:base01 = '#b4b4b4' -let s:base00 = '#808080' -let s:base0 = '#666666' -let s:base1 = '#555555' -let s:base2 = '#4f4f4f' -let s:base3 = '#4d4d4c' -let s:red = '#c82829' -let s:orange = '#f5871f' -let s:yellow = '#eab700' -let s:green = '#718c00' -let s:cyan = '#3e999f' -let s:blue = '#4271ae' -let s:magenta = '#8959a8' - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base03 ] ] -let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base02, s:orange ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base023 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base00 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base01 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base0 ] ] - -let g:lightline#colorscheme#Tomorrow#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night.vim deleted file mode 100644 index 8903180..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night.vim +++ /dev/null @@ -1,41 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/Tomorrow_Night.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 12:23:38. -" ============================================================================= -let s:base3 = '#c5c8c6' -let s:base2 = '#bababa' -let s:base1 = '#a0a0a0' -let s:base0 = '#909090' -let s:base00 = '#666666' -let s:base01 = '#555555' -let s:base02 = '#434343' -let s:base023 = '#303030' -let s:base03 = '#1d1f21' -let s:red = '#cc6666' -let s:orange = '#de935f' -let s:yellow = '#f0c674' -let s:green = '#b5bd68' -let s:cyan = '#8abeb7' -let s:blue = '#81a2be' -let s:magenta = '#b294bb' - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base03 ] ] -let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base02, s:orange ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base023 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base0 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base023 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base02 ] ] - -let g:lightline#colorscheme#Tomorrow_Night#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim deleted file mode 100644 index 31c27f3..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim +++ /dev/null @@ -1,43 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 14:13:21. -" ============================================================================= -let s:base3 = '#ffffff' -let s:base23 = '#ffffff' -let s:base2 = '#ffffff' -let s:base1 = '#ffffff' -let s:base0 = '#ffffff' -let s:base00 = '#6060df' -let s:base01 = '#6060af' -let s:base02 = '#606087' -let s:base023 = '#202087' -let s:base03 = '#002451' -let s:red = '#ff9da4' -let s:orange = '#ffc58f' -let s:yellow = '#ffeead' -let s:green = '#d1f1a9' -let s:cyan = '#99ffff' -let s:blue = '#bbdaff' -let s:magenta = '#ebbbff' - - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base023, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.left = [ [ s:base02, s:base0 ], [ s:base00, s:base03 ] ] -let s:p.insert.left = [ [ s:base023, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base023, s:orange ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base023, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base03 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base1 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:base023, s:red ] ] -let s:p.normal.warning = [ [ s:base023, s:yellow ] ] - -let g:lightline#colorscheme#Tomorrow_Night_Blue#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim deleted file mode 100644 index 5b81a31..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim +++ /dev/null @@ -1,42 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 14:13:26. -" ============================================================================= -let s:base3 = '#eaeaea' -let s:base23 = '#d0d0d0' -let s:base2 = '#c6c6c6' -let s:base1 = '#b2b2b2' -let s:base0 = '#949494' -let s:base00 = '#767676' -let s:base01 = '#606060' -let s:base02 = '#4e4e4e' -let s:base023 = '#262626' -let s:base03 = '#12124c' -let s:red = '#d54e53' -let s:orange = '#e78c45' -let s:yellow = '#e7c547' -let s:green = '#b9ca4a' -let s:cyan = '#70c0b1' -let s:blue = '#7aa6da' -let s:magenta = '#c397d8' - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base023, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.left = [ [ s:base02, s:base0 ], [ s:base00, s:base03 ] ] -let s:p.insert.left = [ [ s:base023, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base023, s:orange ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base023, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base023 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base1 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base023 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base02 ] ] - -let g:lightline#colorscheme#Tomorrow_Night_Bright#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim deleted file mode 100644 index 5124ecc..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim +++ /dev/null @@ -1,42 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 14:14:14. -" ============================================================================= -let s:base3 = '#cccccc' -let s:base23 = '#bbbbbb' -let s:base2 = '#aaaaaa' -let s:base1 = '#999999' -let s:base0 = '#777777' -let s:base00 = '#666666' -let s:base01 = '#555555' -let s:base02 = '#444444' -let s:base023 = '#333333' -let s:base03 = '#2d2d2d' -let s:red = '#f2777a' -let s:orange = '#f99157' -let s:yellow = '#ffcc66' -let s:green = '#99cc99' -let s:cyan = '#009999' -let s:blue = '#99cccc' -let s:magenta = '#cc99cc' - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base023, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.left = [ [ s:base02, s:base0 ], [ s:base00, s:base03 ] ] -let s:p.insert.left = [ [ s:base023, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base023, s:orange ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base023, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base03 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base1 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:base023, s:red ] ] -let s:p.normal.warning = [ [ s:base023, s:yellow ] ] - -let g:lightline#colorscheme#Tomorrow_Night_Eighties#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/default.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/default.vim deleted file mode 100644 index ee9835c..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/default.vim +++ /dev/null @@ -1,8 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/default.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/08/22 06:05:52. -" ============================================================================= - -let g:lightline#colorscheme#default#palette = g:lightline#colorscheme#powerline#palette diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/jellybeans.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/jellybeans.vim deleted file mode 100644 index 15b2b35..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/jellybeans.vim +++ /dev/null @@ -1,40 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/jellybeans.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 12:21:04. -" ============================================================================= -let s:base03 = [ '#151513', 233 ] -let s:base02 = [ '#30302c ', 236 ] -let s:base01 = [ '#4e4e43', 239 ] -let s:base00 = [ '#666656', 242 ] -let s:base0 = [ '#808070', 244 ] -let s:base1 = [ '#949484', 246 ] -let s:base2 = [ '#a8a897', 248 ] -let s:base3 = [ '#e8e8d3', 253 ] -let s:yellow = [ '#ffb964', 215 ] -let s:orange = [ '#fad07a', 222 ] -let s:red = [ '#cf6a4c', 167 ] -let s:magenta = [ '#f0a0c0', 217 ] -let s:blue = [ '#8197bf', 103 ] -let s:cyan = [ '#8fbfdc', 110 ] -let s:green = [ '#99ad6a', 107 ] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base02, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base0, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base00, s:base02 ] ] -let s:p.tabline.left = [ [ s:base3, s:base00 ] ] -let s:p.tabline.tabsel = [ [ s:base3, s:base02 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base1 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base02 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base01 ] ] - -let g:lightline#colorscheme#jellybeans#palette = lightline#colorscheme#flatten(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/landscape.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/landscape.vim deleted file mode 100644 index 68d0920..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/landscape.vim +++ /dev/null @@ -1,25 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/landscape.vim -" Author: itchyny -" License: MIT License -" Last Change: 2015/11/26 21:49:44. -" ============================================================================= - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ ['#0000ff', '#ffffff', 21, 231, 'bold' ], [ '#ffffff', '#0000ff', 231, 21 ] ] -let s:p.normal.right = [ [ '#303030', '#d0d0d0', 236, 252 ], [ '#303030', '#8a8a8a', 236, 245 ], [ '#bcbcbc', '#585858', 250, 240 ] ] -let s:p.inactive.right = [ [ '#121212', '#606060', 233, 241 ], [ '#121212', '#3a3a3a', 233, 237 ], [ '#121212', '#262626', 233, 235 ] ] -let s:p.inactive.left = s:p.inactive.right[1:] -let s:p.insert.left = [ ['#005f00', '#ffffff', 22, 231, 'bold' ], [ '#ffffff', '#005f00', 231, 22 ] ] -let s:p.replace.left = [ [ '#af0000', '#ffffff', 124, 231, 'bold' ], [ '#ffffff', '#af0000', 231, 124 ] ] -let s:p.visual.left = [ [ '#5f00ff', '#ffffff', 57, 231, 'bold' ], [ '#ffffff', '#5f00ff', 231, 57 ] ] -let s:p.normal.middle = [ [ '#8a8a8a', '#303030', 245, 236 ] ] -let s:p.inactive.middle = [ [ '#303030', '#121212', 236, 233 ] ] -let s:p.tabline.left = [ [ '#d0d0d0', '#666666', 252, 242 ] ] -let s:p.tabline.tabsel = [ [ '#dadada', '#121212', 253, 233 ] ] -let s:p.tabline.middle = [ [ '#8a8a8a', '#3a3a3a', 245, 237 ] ] -let s:p.tabline.right = [ [ '#d0d0d0', '#666666', 252, 242 ] ] -let s:p.normal.error = [ [ '#d0d0d0', '#ff0000', 252, 196 ] ] -let s:p.normal.warning = [ [ '#262626', '#ffff00', 235, 226 ] ] - -let g:lightline#colorscheme#landscape#palette = s:p diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/powerline.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/powerline.vim deleted file mode 100644 index 40e48d4..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/powerline.vim +++ /dev/null @@ -1,28 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/powerline.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/09/07 15:54:41. -" ============================================================================= - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ ['darkestgreen', 'brightgreen', 'bold'], ['white', 'gray4'] ] -let s:p.normal.right = [ ['gray5', 'gray10'], ['gray9', 'gray4'], ['gray8', 'gray2'] ] -let s:p.inactive.right = [ ['gray1', 'gray5'], ['gray4', 'gray1'], ['gray4', 'gray0'] ] -let s:p.inactive.left = s:p.inactive.right[1:] -let s:p.insert.left = [ ['darkestcyan', 'white', 'bold'], ['white', 'darkblue'] ] -let s:p.insert.right = [ [ 'darkestcyan', 'mediumcyan' ], [ 'mediumcyan', 'darkblue' ], [ 'mediumcyan', 'darkestblue' ] ] -let s:p.replace.left = [ ['white', 'brightred', 'bold'], ['white', 'gray4'] ] -let s:p.visual.left = [ ['darkred', 'brightorange', 'bold'], ['white', 'gray4'] ] -let s:p.normal.middle = [ [ 'gray7', 'gray2' ] ] -let s:p.insert.middle = [ [ 'mediumcyan', 'darkestblue' ] ] -let s:p.replace.middle = s:p.normal.middle -let s:p.replace.right = s:p.normal.right -let s:p.tabline.left = [ [ 'gray9', 'gray4' ] ] -let s:p.tabline.tabsel = [ [ 'gray9', 'gray1' ] ] -let s:p.tabline.middle = [ [ 'gray2', 'gray8' ] ] -let s:p.tabline.right = [ [ 'gray9', 'gray3' ] ] -let s:p.normal.error = [ [ 'gray9', 'brightestred' ] ] -let s:p.normal.warning = [ [ 'gray1', 'yellow' ] ] - -let g:lightline#colorscheme#powerline#palette = lightline#colorscheme#fill(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/seoul256.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/seoul256.vim deleted file mode 100644 index ca2d5a0..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/seoul256.vim +++ /dev/null @@ -1,42 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/seoul256.vim -" Author: atweiden -" License: MIT License -" Last Change: 2015/11/02 08:23:27. -" ============================================================================= -let s:base03 = [ '#151513', 233 ] -let s:base02 = [ '#30302c ', 236 ] -let s:base01 = [ '#4e4e43', 239 ] -let s:base00 = [ '#666656', 242 ] -let s:base0 = [ '#808070', 244 ] -let s:base1 = [ '#949484', 246 ] -let s:base2 = [ '#a8a897', 248 ] -let s:base3 = [ '#e8e8d3', 253 ] -let s:yellow = [ '#d8af5f', 3 ] -let s:orange = [ '#d7875f', 216 ] -let s:red = [ '#d68787', 131 ] -let s:magenta = [ '#df5f87', 168 ] -let s:peach = [ '#d7afaf', 181 ] -let s:blue = [ '#87afaf', 109 ] -let s:cyan = [ '#87d7d7', 23 ] -let s:green = [ '#87af87', 108 ] -let s:white = [ '#d0d0d0', 252 ] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base02, s:peach ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base0, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base00, s:base02 ] ] -let s:p.tabline.left = [ [ s:base3, s:base00 ] ] -let s:p.tabline.tabsel = [ [ s:base3, s:base02 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base1 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base02 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base01 ] ] - -let g:lightline#colorscheme#seoul256#palette = lightline#colorscheme#flatten(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized.vim deleted file mode 100644 index 2695c35..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized.vim +++ /dev/null @@ -1,11 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/solarized.vim -" Author: itchyny -" License: MIT License -" Last Change: 2013/08/27 10:24:28. -" ============================================================================= -if &background ==# 'light' - let g:lightline#colorscheme#solarized#palette = g:lightline#colorscheme#solarized_light#palette -else - let g:lightline#colorscheme#solarized#palette = g:lightline#colorscheme#solarized_dark#palette -endif diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized_dark.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized_dark.vim deleted file mode 100644 index 37a3dc7..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized_dark.vim +++ /dev/null @@ -1,73 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/solarized_dark.vim -" Author: itchyny -" License: MIT License -" Last Change: 2014/05/31 01:04:15. -" ============================================================================= - -let s:cuicolors = { - \ 'base03': [ '8', '234', 'DarkGray' ], - \ 'base02': [ '0', '235', 'Black' ], - \ 'base01': [ '10', '239', 'LightGreen' ], - \ 'base00': [ '11', '240', 'LightYellow' ], - \ 'base0': [ '12', '244', 'LightBlue' ], - \ 'base1': [ '14', '245', 'LightCyan' ], - \ 'base2': [ '7', '187', 'LightGray' ], - \ 'base3': [ '15', '230', 'White' ], - \ 'yellow': [ '3', '136', 'DarkYellow' ], - \ 'orange': [ '9', '166', 'LightRed' ], - \ 'red': [ '1', '124', 'DarkRed' ], - \ 'magenta': [ '5', '125', 'DarkMagenta' ], - \ 'violet': [ '13', '61', 'LightMagenta' ], - \ 'blue': [ '4', '33', 'DarkBlue' ], - \ 'cyan': [ '6', '37', 'DarkCyan' ], - \ 'green': [ '2', '64', 'DarkGreen' ], - \ } - -" The following condition only applies for the console and is the same -" condition vim-colors-solarized uses to determine which set of colors -" to use. -let s:solarized_termcolors = get(g:, 'solarized_termcolors', 256) -if s:solarized_termcolors != 256 && &t_Co >= 16 - let s:cuiindex = 0 -elseif s:solarized_termcolors == 256 - let s:cuiindex = 1 -else - let s:cuiindex = 2 -endif - -let s:base03 = [ '#002b36', s:cuicolors.base03[s:cuiindex] ] -let s:base02 = [ '#073642', s:cuicolors.base02[s:cuiindex] ] -let s:base01 = [ '#586e75', s:cuicolors.base01[s:cuiindex] ] -let s:base00 = [ '#657b83', s:cuicolors.base00[s:cuiindex] ] -let s:base0 = [ '#839496', s:cuicolors.base0[s:cuiindex] ] -let s:base1 = [ '#93a1a1', s:cuicolors.base1[s:cuiindex] ] -let s:base2 = [ '#eee8d5', s:cuicolors.base2[s:cuiindex] ] -let s:base3 = [ '#fdf6e3', s:cuicolors.base3[s:cuiindex] ] -let s:yellow = [ '#b58900', s:cuicolors.yellow[s:cuiindex] ] -let s:orange = [ '#cb4b16', s:cuicolors.orange[s:cuiindex] ] -let s:red = [ '#dc322f', s:cuicolors.red[s:cuiindex] ] -let s:magenta = [ '#d33682', s:cuicolors.magenta[s:cuiindex] ] -let s:violet = [ '#6c71c4', s:cuicolors.violet[s:cuiindex] ] -let s:blue = [ '#268bd2', s:cuicolors.blue[s:cuiindex] ] -let s:cyan = [ '#2aa198', s:cuicolors.cyan[s:cuiindex] ] -let s:green = [ '#859900', s:cuicolors.green[s:cuiindex] ] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base3, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base01 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base1, s:base00 ] ] -let s:p.tabline.tabsel = [ [ s:base3, s:base0 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base02 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:base2, s:red ] ] -let s:p.normal.warning = [ [ s:base02, s:yellow ] ] - -let g:lightline#colorscheme#solarized_dark#palette = lightline#colorscheme#flatten(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized_light.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized_light.vim deleted file mode 100644 index 99046af..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/solarized_light.vim +++ /dev/null @@ -1,80 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/solarized_light.vim -" Author: itchyny -" License: MIT License -" Last Change: 2014/05/31 01:04:21. -" ============================================================================= - -let s:cuicolors = { - \ 'base03': [ '8', '234', 'DarkGray' ], - \ 'base02': [ '0', '235', 'Black' ], - \ 'base01': [ '10', '239', 'LightGreen' ], - \ 'base00': [ '11', '240', 'LightYellow' ], - \ 'base0': [ '12', '244', 'LightBlue' ], - \ 'base1': [ '14', '245', 'LightCyan' ], - \ 'base2': [ '7', '187', 'LightGray' ], - \ 'base3': [ '15', '230', 'White' ], - \ 'yellow': [ '3', '136', 'DarkYellow' ], - \ 'orange': [ '9', '166', 'LightRed' ], - \ 'red': [ '1', '124', 'DarkRed' ], - \ 'magenta': [ '5', '125', 'DarkMagenta' ], - \ 'violet': [ '13', '61', 'LightMagenta' ], - \ 'blue': [ '4', '33', 'DarkBlue' ], - \ 'cyan': [ '6', '37', 'DarkCyan' ], - \ 'green': [ '2', '64', 'DarkGreen' ], - \ } - -" The following condition only applies for the console and is the same -" condition vim-colors-solarized uses to determine which set of colors -" to use. -let s:solarized_termcolors = get(g:, 'solarized_termcolors', 256) -if s:solarized_termcolors != 256 && &t_Co >= 16 - let s:cuiindex = 0 -elseif s:solarized_termcolors == 256 - let s:cuiindex = 1 -else - let s:cuiindex = 2 -endif - -let s:base03 = [ '#002b36', s:cuicolors.base03[s:cuiindex] ] -let s:base02 = [ '#073642', s:cuicolors.base02[s:cuiindex] ] -let s:base01 = [ '#586e75', s:cuicolors.base01[s:cuiindex] ] -let s:base00 = [ '#657b83', s:cuicolors.base00[s:cuiindex] ] -let s:base0 = [ '#839496', s:cuicolors.base0[s:cuiindex] ] -let s:base1 = [ '#93a1a1', s:cuicolors.base1[s:cuiindex] ] -let s:base2 = [ '#eee8d5', s:cuicolors.base2[s:cuiindex] ] -let s:base3 = [ '#fdf6e3', s:cuicolors.base3[s:cuiindex] ] -let s:yellow = [ '#b58900', s:cuicolors.yellow[s:cuiindex] ] -let s:orange = [ '#cb4b16', s:cuicolors.orange[s:cuiindex] ] -let s:red = [ '#dc322f', s:cuicolors.red[s:cuiindex] ] -let s:magenta = [ '#d33682', s:cuicolors.magenta[s:cuiindex] ] -let s:violet = [ '#6c71c4', s:cuicolors.violet[s:cuiindex] ] -let s:blue = [ '#268bd2', s:cuicolors.blue[s:cuiindex] ] -let s:cyan = [ '#2aa198', s:cuicolors.cyan[s:cuiindex] ] -let s:green = [ '#859900', s:cuicolors.green[s:cuiindex] ] - -let [s:base03, s:base3] = [s:base3, s:base03] -let [s:base02, s:base2] = [s:base2, s:base02] -let [s:base01, s:base1] = [s:base1, s:base01] -let [s:base00, s:base0] = [s:base0, s:base00] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base3, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base01 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base03 ] ] -let s:p.tabline.middle = [ [ s:base1, s:base02 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base01 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base01 ] ] -let s:p.normal.error = [ [ s:base02, s:red ] ] -let s:p.normal.warning = [ [ s:base2, s:yellow ] ] - -let g:lightline#colorscheme#solarized_light#palette = lightline#colorscheme#flatten(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/wombat.vim b/vim/bundle/lightline.vim/autoload/lightline/colorscheme/wombat.vim deleted file mode 100644 index 9619247..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colorscheme/wombat.vim +++ /dev/null @@ -1,40 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/wombat.vim -" Author: itchyny -" License: MIT License -" Last Change: 2015/11/30 08:37:43. -" ============================================================================= -let s:base03 = [ '#242424', 235 ] -let s:base023 = [ '#353535 ', 236 ] -let s:base02 = [ '#444444 ', 238 ] -let s:base01 = [ '#585858', 240 ] -let s:base00 = [ '#666666', 242 ] -let s:base0 = [ '#808080', 244 ] -let s:base1 = [ '#969696', 247 ] -let s:base2 = [ '#a8a8a8', 248 ] -let s:base3 = [ '#d0d0d0', 252 ] -let s:yellow = [ '#cae682', 180 ] -let s:orange = [ '#e5786d', 173 ] -let s:red = [ '#e5786d', 203 ] -let s:magenta = [ '#f2c68a', 216 ] -let s:blue = [ '#8ac6f2', 117 ] -let s:cyan = s:blue -let s:green = [ '#95e454', 119 ] -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base023, s:base01 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base1, s:base02 ], [ s:base00, s:base023 ] ] -let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base023, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base2, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base1, s:base023 ] ] -let s:p.tabline.left = [ [ s:base3, s:base00 ] ] -let s:p.tabline.tabsel = [ [ s:base3, s:base03 ] ] -let s:p.tabline.middle = [ [ s:base2, s:base02 ] ] -let s:p.tabline.right = [ [ s:base2, s:base00 ] ] -let s:p.normal.error = [ [ s:base03, s:red ] ] -let s:p.normal.warning = [ [ s:base023, s:yellow ] ] - -let g:lightline#colorscheme#wombat#palette = lightline#colorscheme#flatten(s:p) diff --git a/vim/bundle/lightline.vim/autoload/lightline/colortable.vim b/vim/bundle/lightline.vim/autoload/lightline/colortable.vim deleted file mode 100644 index 82617b2..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/colortable.vim +++ /dev/null @@ -1,42 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colortable.vim -" Author: itchyny -" License: MIT License -" Last Change: 2015/03/29 06:21:39. -" ============================================================================= - -let s:save_cpo = &cpo -set cpo&vim - -function! s:load() abort - let rgbfile = $VIMRUNTIME . '/rgb.txt' - let table = {} - if filereadable(rgbfile) - for _ in map(filter(readfile(rgbfile), 'v:val !~# "^!"'), 'matchlist(v:val, "^\\s*\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(.*\\)")[1:4]') - let table[tolower(_[3])] = _[0:2] - endfor - endif - return table -endfunction - -let s:table = s:load() - -function! lightline#colortable#name_to_rgb(name) abort - let name = tolower(a:name) - return has_key(s:table, name) ? s:table[name] : [] -endfunction - -function! lightline#colortable#gui2cui(rgb, fallback) abort - let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)') - if len(rgb) == 0 - let rgb = lightline#colortable#name_to_rgb(a:rgb) - if len(rgb) == 0 - return a:fallback % 128 - endif - endif - let rgb = [rgb[0] > 127 ? 4 : 0, rgb[1] > 127 ? 2 : 0, rgb[2] > 127 ? 1 : 0] - return rgb[0] + rgb[1] + rgb[2] -endfunction - -let &cpo = s:save_cpo -unlet s:save_cpo diff --git a/vim/bundle/lightline.vim/autoload/lightline/tab.vim b/vim/bundle/lightline.vim/autoload/lightline/tab.vim deleted file mode 100644 index f2accc1..0000000 --- a/vim/bundle/lightline.vim/autoload/lightline/tab.vim +++ /dev/null @@ -1,33 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/tab.vim -" Author: itchyny -" License: MIT License -" Last Change: 2016/05/07 22:31:02. -" ============================================================================= - -let s:save_cpo = &cpo -set cpo&vim - -function! lightline#tab#filename(n) abort - let buflist = tabpagebuflist(a:n) - let winnr = tabpagewinnr(a:n) - let _ = expand('#'.buflist[winnr - 1].':t') - return _ !=# '' ? _ : '[No Name]' -endfunction - -function! lightline#tab#modified(n) abort - let winnr = tabpagewinnr(a:n) - return gettabwinvar(a:n, winnr, '&modified') ? '+' : gettabwinvar(a:n, winnr, '&modifiable') ? '' : '-' -endfunction - -function! lightline#tab#readonly(n) abort - let winnr = tabpagewinnr(a:n) - return gettabwinvar(a:n, winnr, '&readonly') ? 'RO' : '' -endfunction - -function! lightline#tab#tabnum(n) abort - return a:n -endfunction - -let &cpo = s:save_cpo -unlet s:save_cpo diff --git a/vim/bundle/lightline.vim/doc/lightline.txt b/vim/bundle/lightline.vim/doc/lightline.txt deleted file mode 100644 index 9936725..0000000 --- a/vim/bundle/lightline.vim/doc/lightline.txt +++ /dev/null @@ -1,1281 +0,0 @@ -*lightline.txt* A light and configurable statusline/tabline for Vim - -Version: 0.0 -Author: itchyny (https://github.com/itchyny) -License: MIT License -Repository: https://github.com/itchyny/lightline.vim -Last Change: 2016/05/26 21:57:34. - -CONTENTS *lightline-contents* - -Introduction |lightline-introduction| -Spirit |lightline-spirit| -Option |lightline-option| -Font |lightline-font| -Function |lightline-function| -Component Expansion |lightline-component-expansion| -Colorscheme |lightline-colorscheme| -Examples |lightline-examples| -Nice Examples |lightline-nice-examples| -Powerful Example |lightline-powerful-example| -Troubleshooting |lightline-troubleshooting| -Changelog |lightline-changelog| - -============================================================================== -INTRODUCTION *lightline-introduction* - -The *lightline* plugin is a light and configurable statusline/tabline for Vim. - ------------------------------------------------------------------------------- -SPIRIT *lightline-spirit* - - Minimalism - The core script is very small. - - Configurability - You can create your own component and easily add to the - statusline/tabline. - - Orthogonality - Any plugin should not change the settings of another plugin. - Such plugin-crossing settings should be written by users in - .vimrc. - - You might find this plugin is not so useful by default. This plugin - does not provide the branch information, which is a very basic - component in existing plugins. The reason is that branch component is - one of plugin-crossing settings so users should write the settings - using the APIs of the both plugins. Hospitality makes a plugin messy. - Good APIs keep a plugin clean. - ------------------------------------------------------------------------------- -OPTIONS *lightline-option* - - g:lightline *g:lightline* - All the options are stored into this global variable. - - g:lightline.active *g:lightline.active* - g:lightline.inactive *g:lightline.inactive* - g:lightline.tabline *g:lightline.tabline* - Dictionaries to specify the statusline/tabline components. - The components are gathered from either |g:lightline.component|, - |g:lightline.component_function| or - |g:lightline.component_expand|. - Note that right groups of components are stored from right to - left. The default values are: -> - let g:lightline.active = { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'readonly', 'filename', 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], - \ [ 'percent' ], - \ [ 'fileformat', 'fileencoding', 'filetype' ] ] } - let g:lightline.inactive = { - \ 'left': [ [ 'filename' ] ], - \ 'right': [ [ 'lineinfo' ], - \ [ 'percent' ] ] } - let g:lightline.tabline = { - \ 'left': [ [ 'tabs' ] ], - \ 'right': [ [ 'close' ] ] } -< - g:lightline.tab *g:lightline.tab* - Dictionaries to specify the components in each tabs. - The components are gathered from either - |g:lightline.tab_component| or - |g:lightline.tab_component_function|. - The default values are: -> - let g:lightline.tab = { - \ 'active': [ 'tabnum', 'filename', 'modified' ], - \ 'inactive': [ 'tabnum', 'filename', 'modified' ] } -< - g:lightline.component *g:lightline.component* - Dictionary for statusline/tabline components. - The default value is: -> - let g:lightline.component = { - \ 'mode': '%{lightline#mode()}', - \ 'absolutepath': '%F', - \ 'relativepath': '%f', - \ 'filename': '%t', - \ 'modified': '%M', - \ 'bufnum': '%n', - \ 'paste': '%{&paste?"PASTE":""}', - \ 'readonly': '%R', - \ 'charvalue': '%b', - \ 'charvaluehex': '%B', - \ 'fileencoding': '%{&fenc!=#""?&fenc:&enc}', - \ 'fileformat': '%{&ff}', - \ 'filetype': '%{&ft!=#""?&ft:"no ft"}', - \ 'percent': '%3p%%', - \ 'percentwin': '%P', - \ 'spell': '%{&spell?&spelllang:""}', - \ 'lineinfo': '%3l:%-2v', - \ 'line': '%l', - \ 'column': '%c' - \ 'close': '%999X X ' } -< - g:lightline.component_visible_condition *g:lightline.component_visible_condition* - Dictionary of boolean expressions for the components. - Each expression should correspond to the condition each - component have non-zero length. - The default value is: -> - let g:lightline.component_visible_condition = { - \ 'modified': '&modified||!&modifiable', - \ 'readonly': '&readonly', - \ 'paste': '&paste', - \ 'spell': '&spell' } -< - Users are recommended to set this option together with the - component itself. - - g:lightline.component_function *g:lightline.component_function* - Another dictionary for components. This is more convenient - because the user does not have to set both component and - component_visible_condition. If a component set to both component and - component_function, the setting of component_function has priority. - For example, if you want a component for read-only mark, which - disappears in help windows: -> - let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'myreadonly', 'filename', 'modified' ] ], - \ }, - \ 'component_function': { - \ 'myreadonly': 'LightLineReadonly' - \ }, - \ } - function! LightLineReadonly() - return &ft !~? 'help' && &readonly ? 'RO' : '' - endfunction -< - g:lightline.component_expand *g:lightline.component_expand* - Another dictionary for components. You can create a component - which has a special color. For example, error components or - warning components. The functions should return one of: - + a string - + an array of three elements: - [[ left ], [ middle ], [ right ]] - The component in this dictionary has priority over - |g:lightline.component| and |g:lightline.component_function|. - Note that the return string is appended to the statusline - string without any conversion. So you should replace all the - % signs with %%. Otherwise, lightline will be disabled in case - the text has a % sign. - (example: return substitute(text, '%', '%%', 'g')). - See |lightline-component-expansion| for more detail. -> - let g:lightline.component_expand = { - \ 'tabs': 'lightline#tabs' } -< - g:lightline.component_type *g:lightline.component_type* - A dictionary to specify the types for components in - |g:lightline.component_expand|. The types are used to specify - the color. Specifically, the type raw is used to specify a - component which should not be wrapped by item group: %(...%). - The default value is: > - - let g:lightline.component_type = { - \ 'tabs': 'tabsel', - \ 'close': 'raw' } -< - g:lightline.tab_component *g:lightline.tab_component* - A dictionary for components in one tab. - The default value is: > - - let g:lightline.tab_component = {} -< - g:lightline.tab_component_function *g:lightline.tab_component_function* - Another dictionary for components in one tab. - A function specified as a tab component takes one argument: - the tab [count]. - The default value is: -> - let g:lightline.tab_component_function = { - \ 'filename': 'lightline#tab#filename', - \ 'modified': 'lightline#tab#modified', - \ 'readonly': 'lightline#tab#readonly', - \ 'tabnum': 'lightline#tab#tabnum' } -< - g:lightline.colorscheme *g:lightline.colorscheme* - The colorscheme for lightline.vim. - Currently, wombat, solarized, powerline, jellybeans, Tomorrow, - Tomorrow_Night, Tomorrow_Night_Blue, Tomorrow_Night_Eighties, - PaperColor, seoul256, landscape and 16color are available. - The default value is: -> - let g:lightline.colorscheme = 'default' -< - Note that the default colorscheme is exactly the same as the - powerline theme. - - g:lightline.mode_map *g:lightline.mode_map* - A dictionary of names for the modes. The keys are the return - values of |mode()|. - The default value is: -> - let g:lightline.mode_map = { - \ 'n' : 'NORMAL', - \ 'i' : 'INSERT', - \ 'R' : 'REPLACE', - \ 'v' : 'VISUAL', - \ 'V' : 'V-LINE', - \ "\<C-v>": 'V-BLOCK', - \ 'c' : 'COMMAND', - \ 's' : 'SELECT', - \ 'S' : 'S-LINE', - \ "\<C-s>": 'S-BLOCK', - \ 't': 'TERMINAL', - \ } -< - When you search a word, you get into the command mode. But if - you want to keep the mode indicator as 'NORMAL', add > - let g:lightline = { 'mode_map': { 'c': 'NORMAL' } } -< to your .vimrc. - - g:lightline.separator *g:lightline.separator* - g:lightline.subseparator *g:lightline.subseparator* - Dictionaries to store separators. - The default value is -> - let g:lightline.separator = { 'left': '', 'right': '' } - let g:lightline.subseparator = { 'left': '|', 'right': '|' } -< - g:lightline.tabline_separator *g:lightline.tabline_separator* - g:lightline.tabline_subseparator *g:lightline.tabline_subseparator* - Dictionaries to store separators for the tabline. - The default value is -> - let g:lightline.tabline_separator = g:lightline.separator - let g:lightline.tabline_subseparator = g:lightline.subseparator -< - g:lightline.enable *g:lightline.enable* - A dictionary to specify which feature is turned on. - The default value is -> - let g:lightline.enable = { - \ 'statusline': 1, - \ 'tabline': 1 - \ } -< - -============================================================================== -FONT *lightline-font* -You can use the patched font you used for |vim-powerline| and |powerline|. - -The patched fonts for |powerline| are available at -https://github.com/Lokaltog/powerline-fonts - -A tutorial to create a patched font for |vim-powerline| is available at -https://github.com/Lokaltog/vim-powerline/tree/develop/fontpatcher - -If you have installed the patched font for |powerline|, following settings look -nice. -> - let g:lightline = { - \ 'component': { - \ 'lineinfo': ' %3l:%-2v', - \ }, - \ 'component_function': { - \ 'readonly': 'LightLineReadonly', - \ 'fugitive': 'LightLineFugitive' - \ }, - \ 'separator': { 'left': '', 'right': '' }, - \ 'subseparator': { 'left': '', 'right': '' } - \ } - function! LightLineReadonly() - return &readonly ? '' : '' - endfunction - function! LightLineFugitive() - if exists('*fugitive#head') - let branch = fugitive#head() - return branch !=# '' ? ''.branch : '' - endif - return '' - endfunction -< -If you have installed the patched font for |vim-powerline|, following settings -look nice. -> - let g:lightline = { - \ 'component': { - \ 'lineinfo': '⭡ %3l:%-2v', - \ }, - \ 'component_function': { - \ 'readonly': 'LightLineReadonly', - \ 'fugitive': 'LightLineFugitive' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } - function! LightLineReadonly() - return &readonly ? '⭤' : '' - endfunction - function! LightLineFugitive() - if exists('*fugitive#head') - let branch = fugitive#head() - return branch !=# '' ? '⭠ '.branch : '' - endif - return '' - endfunction -< -If the statusline does not correctly show the special characters, use the -unicode numbers. For |powerline| font users: -> - \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, - \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" } -< -For |vim-powerline| font users: -> - \ 'separator': { 'left': "\u2b80", 'right': "\u2b82" }, - \ 'subseparator': { 'left': "\u2b81", 'right': "\u2b83" } -< -See |lightline-problem-9| for more detail. -============================================================================== -FUNCTION *lightline-function* -Exposed functions for lightline.vim. - - lightline#mode() *lightline#mode()* - Returns the mode of the Vim using |g:lightline.mode_map|. - - lightline#init() *lightline#init()* - Initializes the internal state from |g:lightline|. - - lightline#colorscheme() *lightline#colorscheme()* - Initializes the colorscheme and the highlight groups. - - lightline#update() *lightline#update()* - Updates all the statuslines of existing windows. - - lightline#update_once() *lightline#update_once()* - Updates the statuslines only once. - - lightline#enable() *lightline#enable()* - Enables |lightline|. - - lightline#disable() *lightline#disable()* - Disables |lightline|. - - lightline#toggle() *lightline#toggle()* - Toggles |lightline|. - - lightline#link([mode]) *lightline#link()* - Creates links of the highlight groups for the active window. - This function accepts an optional argument. It should be one - of the return value of |mode()|. - - lightline#highlight() *lightline#highlight()* - Set the highlight groups. - - lightline#statusline({inactive}) *lightline#statusline()* - Returns |statusline| strings. If the argument is 0, it returns - the statusline for active window, and the statusline for - inactive window otherwise. - - lightline#tabline() *lightline#tabline()* - Returns the tabline string. - - lightline#concatenate({list}, {num}) *lightline#concatenate()* - A string concatenation function. Concatenating all the strings - in {list} using the sub-separator of lightline. If {num} is 0, - then the left sub-separator is used. Otherwise, the right - sub-separator is used. - - lightline#palette() *lightline#palette()* - Returns the palette data. - -============================================================================== -COMPONENT EXPANSION *lightline-component-expansion* -You can create components, which have specific colors. This section gives an -example using |syntastic|. - -If you want to add the |syntastic| flag to the statusline, an easy example is: -> - " Example A - let g:lightline = { - \ 'active': { - \ 'right': [ [ 'lineinfo', 'syntastic' ], - \ [ 'percent' ], - \ [ 'fileformat', 'fileencoding', 'filetype' ] ] - \ }, - \ 'component_function': { - \ 'syntastic': 'SyntasticStatuslineFlag', - \ } - \ } - let g:syntastic_mode_map = { 'mode': 'passive', - \ 'active_filetypes': ['c', 'cpp'] } -< -However, the color of the syntastic component is the same as the lineinfo -component. - -In order to change the syntastic component more outstanding, you have to use -|g:lightline.component_expand|. See the following example: -> - " Example B - let g:lightline = { - \ 'active': { - \ 'right': [ [ 'syntastic', 'lineinfo' ], - \ [ 'percent' ], - \ [ 'fileformat', 'fileencoding', 'filetype' ] ] - \ }, - \ 'component_expand': { - \ 'syntastic': 'SyntasticStatuslineFlag', - \ }, - \ 'component_type': { - \ 'syntastic': 'error', - \ } - \ } - let g:syntastic_mode_map = { 'mode': 'passive' } - augroup AutoSyntastic - autocmd! - autocmd BufWritePost *.c,*.cpp call s:syntastic() - augroup END - function! s:syntastic() - SyntasticCheck - call lightline#update() - endfunction -< -In order to understand the above codes, you firstly should know how the -colorschemes work in lightline.vim. Open the following file. - autoload/lightline/colorscheme/powerline.vim -The colorscheme is created by one dictionary: s:p (abbreviation for palette). -See the value of s:p.normal.right. -> - let s:p.normal.right = [ ['gray5', 'gray10'], - \ ['gray9', 'gray4'], - \ ['gray8', 'gray2'] ] -< -This array corresponds to the structure of g:lightline.active.right. Recall -the example A. -> - " Example A - let g:lightline.active.right = [ [ 'lineinfo', 'syntastic' ], - \ [ 'percent' ], - \ [ 'fileformat', 'fileencoding', 'filetype' ] ] -< -The colors are ([fgcolor, bgcolor): -> - (0) [ 'lineinfo', 'syntastic' ] --- s:p.normal.right[0] = ['gray5', 'gray10'] - (1) [ 'percent' ] --- s:p.normal.right[1] = ['gray9', 'gray4'] - (2) [ 'fileformat', 'fileencoding', 'filetype' ] --- s:p.normal.right[2] = ['gray8', 'gray2'] -< -Recall the example B. -> - " Example B - let g:lightline.active.right = [ [ 'syntastic', 'lineinfo' ], - \ [ 'percent' ], - \ [ 'fileformat', 'fileencoding', 'filetype' ] ] -< -If a component is specified in |g:lightline.component_expand|, lightline.vim -expands the components before setting to statusline/tabline. In this example, -the syntastic component is expanded using the |SyntasticStatuslineFlag| function. -This function returns a {string}. Let us call it `syntastic_flag`. -> - let syntastic_flag = SyntasticStatuslineFlag() -< -The syntastic component is now expanded, so it go up to one component group. -The type of the syntastic component is error, and the palette has error -colors, the result is: -> - " Expanded result of Example B - (error) [ syntastic_flag ] --- s:p.normal.error[0] = ['gray9', 'brightestred'] - (0) [ 'lineinfo' ] --- s:p.normal.right[0] = ['gray5', 'gray10'] - (1) [ 'percent' ] --- s:p.normal.right[1] = ['gray9', 'gray4'] - (2) [ 'fileformat', 'fileencoding', 'filetype' ] --- s:p.normal.right[2] = ['gray8', 'gray2'] -< -Thus the syntastic component has the red color. - - -Another example for |g:lightline.component_expand| is the tabs component. -Actually, the expand feature is created for the tabs component. -> - let g:lightline.tabline.left = [ [ 'tabs' ] ] - let g:lightline.component_expand = { - \ 'tabs': 'lightline#tabs' } -< -Create three tabs and select the middle tab. Then execute -> - echo lightline#tabs() - " [['%1T%{lightline#onetab(1,0)}'], - " ['%2T%{lightline#onetab(2,1)}'], - " ['%3T%{lightline#onetab(3,0)}%T']] -< -It returns an array of three elements. The expanded result is: -> - " Expanded result of tabline - (0) ['%1T%{lightline#onetab(1,0)}'] --- s:p.tabline.left[0] = ['gray9', 'gray4'] - (tabsel) ['%2T%{lightline#onetab(2,1)}'] --- s:p.tabline.tabsel[0] = ['gray9', 'gray1'] - (0) ['%3T%{lightline#onetab(3,0)}%T'] --- s:p.tabline.left[0] = ['gray9', 'gray4'] -< -If the tabline components are -> - let g:lightline.tabline.left = [ [ 'A', 'B', 'tabs', 'C', 'D' ] ] -< -then the expanded result is: -> - (0) ['A', 'B', '%1T%{lightline#onetab(1,0)}'] --- s:p.tabline.left[0] - (tabsel) ['%2T%{lightline#onetab(2,1)}'] --- s:p.tabline.tabsel[0] - (0) ['%3T%{lightline#onetab(3,0)}%T', 'C', 'D'] --- s:p.tabline.left[0] -< -In summary, when a function in |g:lightline.component_expand| returns an -array of three elements, the first element and the last element remains as a -part of existing component group. And the middle element goes up to new -component group. ------------------------------------------------------------------------------- -COLORSCHEME *lightline-colorscheme* -You can configure the colorscheme of lightline. For example, -> - let g:lightline = { - \ 'colorscheme': 'wombat', - \ } -< -The colorscheme files are found in the directory - - lightline.vim/autoload/lightline/colorscheme/ - -In each file, one global variable is defined. For example, in the landscape.vim -file, you see -> - let g:lightline#colorscheme#landscape#palette = s:p -< -In the file, the colors for the landscape colorscheme are defined. For example, -> - let s:p.normal.left = [ ['#0000ff', '#ffffff', 21, 231, 'bold' ], [ '#ffffff', '#0000ff', 231, 21 ] ] -< -defines the colors for the components on the left hand side, in normal mode. -> - let s:p.tabline.tabsel = [ [ '#dadada', '#121212', 253, 233 ] ] -< -defines the colors for the selected tab in tabline. In general, each palette -follows the following style: -> - let s:p.{mode}.{where} = [ [ {guifg}, {guibg}, {cuifg}, {cuibg} ], ... ] -< - - -Now, you can create your own colorscheme for lightline. Create a -yourcolorscheme.vim at - - {one of the paths in &rtp}/autoload/lightline/colorscheme/yourcolorscheme.vim - -The following code gives the minimal palette definition for lightline. -> - let s:p = {'normal': {}} - let s:p.normal.left = [ [ ... ] ] - let s:p.normal.right = [ [ ... ] ] - let s:p.normal.middle = [ [ ... ] ] - let g:lightline#colorscheme#yourcolorscheme#palette = s:p -< -And if you add the colorscheme configuration to your .vimrc(_vimrc), -> - let g:lightline = { - \ 'colorscheme': 'yourcolorscheme', - \ } -< -you find it possible to change the lightline colors as you wish. - -Moreover, if you want to change the colors based on the mode of vim, write -something like this: -> - let s:p.insert.left = [ [ ... ] ] - let s:p.insert.right = [ [ ... ] ] - let s:p.replace.left = [ [ ... ] ] - let s:p.replace.right = [ [ ... ] ] - ... - ... -< -For expanded components, you are recommended to define the following two -colors. -> - let s:p.normal.error = [ [ ... ] ] - let s:p.normal.warning = [ [ ... ] ] -< -For the complete list of components the color of which you should define in -your colorscheme, see the colorscheme files in lightline. - -It is sometimes painful to write all the colors for both gui and cui. -Actually, lightline has some useful functions for writing colorschemes. For -example, see - lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night.vim -this colorscheme is defined using only gui color numbers. And convert to the -normal colorscheme form using: -> - let g:lightline#colorscheme#Tomorrow_Night#palette = lightline#colorscheme#fill(s:p) -< -This function fills the cui colors for a palette which has only gui colors, or -vice versa. However, note that using the convenient function sources an -additional Vim script file (autoload/lightline/colorscheme.vim), which causes -a little slow down. If you want to avoid this situation, write all the colors -as done in autoload/lightline/colorscheme/landscape.vim; firstly create the -colorscheme using the fill function, and see the result, in a sense, the -compiled version of your colorscheme. -> - echo g:lightline#colorscheme#yourcolorscheme#palette -< -Then copy and paste the result to the colorscheme file. - -============================================================================== -EXAMPLES *lightline-examples* -You can configure the appearance of statusline. -Write the following examples in you .vimrc(_vimrc). - -In order to change the colorscheme: -> - let g:lightline = { - \ 'colorscheme': 'wombat', - \ } -< - -In order to define your own component: -> - let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'myfilename' ] ] - \ }, - \ 'component_function': { - \ 'myfilename': 'LightLineFilename', - \ 'myreadonly': 'LightLineReadonly', - \ 'mymodified': 'LightLineModified', - \ } - \ } - function! LightLineFilename() - return ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ (&ft == 'vimfiler' ? vimfiler#get_status_string() : - \ &ft == 'unite' ? unite#get_status_string() : - \ '' != expand('%:t') ? expand('%:t') : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') - endfunction - function! LightLineReadonly() - return &ft !~? 'help' && &readonly ? 'RO' : '' - endfunction - function! LightLineModified() - return &modifiable && &modified ? '+' : '' - endfunction -< - -Separators settings: -> - let g:lightline = { - \ 'separator': { 'left': '', 'right': '' }, - \ 'subseparator': { 'left': '|', 'right': '|' } - \ } -< - -For |powerline| font users: -> - let g:lightline = { - \ 'separator': { 'left': '', 'right': '' }, - \ 'subseparator': { 'left': '', 'right': '' } - \ } -< - -For |vim-powerline| font users: -> - let g:lightline = { - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } -< - ------------------------------------------------------------------------------- -NICE EXAMPLES *lightline-nice-examples* - -A nice example for non-patched font users. -> - let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ] ] - \ }, - \ 'component_function': { - \ 'fugitive': 'LightLineFugitive', - \ 'filename': 'LightLineFilename' - \ } - \ } - function! LightLineModified() - return &ft =~ 'help\|vimfiler' ? '' : &modified ? '+' : &modifiable ? '' : '-' - endfunction - function! LightLineReadonly() - return &ft !~? 'help\|vimfiler' && &readonly ? 'RO' : '' - endfunction - function! LightLineFilename() - return ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ (&ft == 'vimfiler' ? vimfiler#get_status_string() : - \ &ft == 'unite' ? unite#get_status_string() : - \ &ft == 'vimshell' ? vimshell#get_status_string() : - \ '' != expand('%:t') ? expand('%:t') : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') - endfunction - function! LightLineFugitive() - if &ft !~? 'vimfiler' && exists('*fugitive#head') - return fugitive#head() - endif - return '' - endfunction -< -A nice example for |vim-powerline| font users: -> - let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ] ] - \ }, - \ 'component_function': { - \ 'fugitive': 'LightLineFugitive', - \ 'filename': 'LightLineFilename' - \ }, - \ 'separator': { 'left': '⮀', 'right': '⮂' }, - \ 'subseparator': { 'left': '⮁', 'right': '⮃' } - \ } - function! LightLineModified() - return &ft =~ 'help\|vimfiler' ? '' : &modified ? '+' : &modifiable ? '' : '-' - endfunction - function! LightLineReadonly() - return &ft !~? 'help\|vimfiler' && &readonly ? '⭤' : '' - endfunction - function! LightLineFilename() - return ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ (&ft == 'vimfiler' ? vimfiler#get_status_string() : - \ &ft == 'unite' ? unite#get_status_string() : - \ &ft == 'vimshell' ? vimshell#get_status_string() : - \ '' != expand('%:t') ? expand('%:t') : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') - endfunction - function! LightLineFugitive() - if &ft !~? 'vimfiler' && exists('*fugitive#head') - let branch = fugitive#head() - return branch !=# '' ? '⭠ '.branch : '' - endif - return '' - endfunction -< - ------------------------------------------------------------------------------- -POWERFUL EXAMPLE *lightline-powerful-example* - -For users who uses lots of plugins: -> - let g:lightline = { - \ 'colorscheme': 'wombat', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ], ['ctrlpmark'] ], - \ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ] - \ }, - \ 'component_function': { - \ 'fugitive': 'LightLineFugitive', - \ 'filename': 'LightLineFilename', - \ 'fileformat': 'LightLineFileformat', - \ 'filetype': 'LightLineFiletype', - \ 'fileencoding': 'LightLineFileencoding', - \ 'mode': 'LightLineMode', - \ 'ctrlpmark': 'CtrlPMark', - \ }, - \ 'component_expand': { - \ 'syntastic': 'SyntasticStatuslineFlag', - \ }, - \ 'component_type': { - \ 'syntastic': 'error', - \ }, - \ 'subseparator': { 'left': '|', 'right': '|' } - \ } - - function! LightLineModified() - return &ft =~ 'help' ? '' : &modified ? '+' : &modifiable ? '' : '-' - endfunction - - function! LightLineReadonly() - return &ft !~? 'help' && &readonly ? 'RO' : '' - endfunction - - function! LightLineFilename() - let fname = expand('%:t') - return fname == 'ControlP' && has_key(g:lightline, 'ctrlp_item') ? g:lightline.ctrlp_item : - \ fname == '__Tagbar__' ? g:lightline.fname : - \ fname =~ '__Gundo\|NERD_tree' ? '' : - \ &ft == 'vimfiler' ? vimfiler#get_status_string() : - \ &ft == 'unite' ? unite#get_status_string() : - \ &ft == 'vimshell' ? vimshell#get_status_string() : - \ ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . - \ ('' != fname ? fname : '[No Name]') . - \ ('' != LightLineModified() ? ' ' . LightLineModified() : '') - endfunction - - function! LightLineFugitive() - try - if expand('%:t') !~? 'Tagbar\|Gundo\|NERD' && &ft !~? 'vimfiler' && exists('*fugitive#head') - let mark = '' " edit here for cool mark - let branch = fugitive#head() - return branch !=# '' ? mark.branch : '' - endif - catch - endtry - return '' - endfunction - - function! LightLineFileformat() - return winwidth(0) > 70 ? &fileformat : '' - endfunction - - function! LightLineFiletype() - return winwidth(0) > 70 ? (&filetype !=# '' ? &filetype : 'no ft') : '' - endfunction - - function! LightLineFileencoding() - return winwidth(0) > 70 ? (&fenc !=# '' ? &fenc : &enc) : '' - endfunction - - function! LightLineMode() - let fname = expand('%:t') - return fname == '__Tagbar__' ? 'Tagbar' : - \ fname == 'ControlP' ? 'CtrlP' : - \ fname == '__Gundo__' ? 'Gundo' : - \ fname == '__Gundo_Preview__' ? 'Gundo Preview' : - \ fname =~ 'NERD_tree' ? 'NERDTree' : - \ &ft == 'unite' ? 'Unite' : - \ &ft == 'vimfiler' ? 'VimFiler' : - \ &ft == 'vimshell' ? 'VimShell' : - \ winwidth(0) > 60 ? lightline#mode() : '' - endfunction - - function! CtrlPMark() - if expand('%:t') =~ 'ControlP' && has_key(g:lightline, 'ctrlp_item') - call lightline#link('iR'[g:lightline.ctrlp_regex]) - return lightline#concatenate([g:lightline.ctrlp_prev, g:lightline.ctrlp_item - \ , g:lightline.ctrlp_next], 0) - else - return '' - endif - endfunction - - let g:ctrlp_status_func = { - \ 'main': 'CtrlPStatusFunc_1', - \ 'prog': 'CtrlPStatusFunc_2', - \ } - - function! CtrlPStatusFunc_1(focus, byfname, regex, prev, item, next, marked) - let g:lightline.ctrlp_regex = a:regex - let g:lightline.ctrlp_prev = a:prev - let g:lightline.ctrlp_item = a:item - let g:lightline.ctrlp_next = a:next - return lightline#statusline(0) - endfunction - - function! CtrlPStatusFunc_2(str) - return lightline#statusline(0) - endfunction - - let g:tagbar_status_func = 'TagbarStatusFunc' - - function! TagbarStatusFunc(current, sort, fname, ...) abort - let g:lightline.fname = a:fname - return lightline#statusline(0) - endfunction - - augroup AutoSyntastic - autocmd! - autocmd BufWritePost *.c,*.cpp call s:syntastic() - augroup END - function! s:syntastic() - SyntasticCheck - call lightline#update() - endfunction - - let g:unite_force_overwrite_statusline = 0 - let g:vimfiler_force_overwrite_statusline = 0 - let g:vimshell_force_overwrite_statusline = 0 -< ------------------------------------------------------------------------------- -TROUBLESHOOTING *lightline-troubleshooting* - -Problem 1: |lightline-problem-1| - How to install this plugin. - -Problem 2: |lightline-problem-2| - How to update this plugin. - -Problem 3: |lightline-problem-3| - How to uninstall this plugin. - -Problem 4: |lightline-problem-4| - Cool statuslines appear only on |:vsp|. - -Problem 5: |lightline-problem-5| - The statusline does not seem to be correctly colored. - -Problem 6: |lightline-problem-6| - How to install a patched font. - -Problem 7: |lightline-problem-7| - Right triangles do not stick to the right components with the - patched font. - -Problem 8: |lightline-problem-8| - Triangles do not appear. Triangles look weird. - -Problem 9: |lightline-problem-9| - Where can I find the list of all the cool characters for patched fonts? - -Problem 10: |lightline-problem-10| - Cool statusline disappears in |unite|, |vimfiler| and |vimshell| - buffers. - -Problem 11: |lightline-problem-11| - Cool statusline disappears in |CtrlP|, |Tagbar| buffers. - -Problem 12: |lightline-problem-12| - How to make the plus sign red like |powerline|? - -Problem 13: |lightline-problem-13| - How to change the lightline colorscheme on the fly. - -Problem 14: |lightline-problem-14| - The 'E541' warning appears on the right hand side. - Many components disable the statusline of lightline. - -Problem 15: |lightline-problem-15| - Do not deal with the tabline. - Do not use the fancy separators in the tabline. - -Problem 16: |lightline-problem-16| - When changed the component to a function component to an expanding - component, the statusline of lightline is sometimes disabled. - -Problem 17: |lightline-problem-17| - Found a bug of this plugin. - Got many errors while using this plugin. - Vim hangs while using this plugin. - Want this plugin to be more configurable. - This troubleshooting is not helpful. - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Problem 1: *lightline-problem-1* - How to install this plugin. - - If you are to install this plugin manually: - - 1. Put all the files under $VIM. - - If you are using |vim-pathogen|, install this plugin with the - following command. -> - git clone https://github.com/itchyny/lightline.vim \ - ~/.vim/bundle/lightline.vim -< - If you are to install this plugin using |Vundle|: - - 1. Add the following configuration to your - .vimrc(_vimrc). -> - Plugin 'itchyny/lightline.vim' -< - 2. Install with |:PluginInstall|. - - If you are to install this plugin using |NeoBundle|: - - 1. Add the following configuration to your - .vimrc(_vimrc). -> - NeoBundle 'itchyny/lightline.vim' -< - 2. Install with |:NeoBundleInstall|. - - If you are to install this plugin using |vim-plug|: - - 1. Add the following configuration to your - .vimrc(_vimrc). -> - Plug 'itchyny/lightline.vim' -< - 2. Install with |:PlugInstall|. - -Problem 2: *lightline-problem-2* - How to update this plugin. - - If you have installed this plugin manually: - - 1. Access https://github.com/itchyny/lightline.vim . - 2. Download the latest scripts. - 3. Place the scripts as written in Problem 1. - - If you have installed this plugin using Vundle: - - 1. Execute |:PluginUpdate|. - - If you have installed this plugin using NeoBundle: - - 1. Execute |:NeoBundleUpdate|. - - If you have installed this plugin using vim-plug: - - 1. Execute |:PlugUpdate|. - -Problem 3: *lightline-problem-3* - How to uninstall this plugin. - - If you have installed this plugin manually: - - 1. Remove all the lightline.*s under $VIM. - - If you have installed this plugin using Vundle: - - 1. Remove the :Plugin 'itchyny/lightline.vim' - configuration from your .vimrc(_vimrc). - 2. Update with |:PluginClean|. - - If you have installed this plugin using NeoBundle: - - 1. Remove the :NeoBundle 'itchyny/lightline.vim' - configuration from your .vimrc(_vimrc). - 2. Update with |:NeoBundleClean|. - - If you have installed this plugin using vim-plug: - - 1. Remove the :Plug 'itchyny/lightline.vim' - configuration from your .vimrc(_vimrc). - 2. Update with |:PlugClean|. - -Problem 4: *lightline-problem-4* - Cool statuslines appear only on |:vsp|. - - Add the following setting to your .vimrc(_vimrc). -> - set laststatus=2 -< -Problem 5: *lightline-problem-5* - The statusline does not seem to be correctly colored. - - Add -> - export TERM=xterm-256color -< - to your .*shrc and add -> - if !has('gui_running') - set t_Co=256 - endif -< - to your .vimrc(_vimrc). - -Problem 6: *lightline-problem-6* - How to install a patched font. - - There are two kinds of patched fonts: - - + The patched fonts for |vim-powerline| - (https://github.com/Lokaltog/vim-powerline): - follow the guide https://github.com/Lokaltog/vim-powerline/tree/develop/fontpatcher - + The patched fonts for |powerline| - (https://github.com/Lokaltog/powerline): - download from https://github.com/Lokaltog/powerline-fonts - -Problem 7: *lightline-problem-7* - Right triangles do not stick to the right components with patched - font. - - Remove the following setting from your .vimrc(_vimrc). -> - set ambiwidth=double -< - If you want to keep this setting, try the patched font for - |vim-powerline|. - -Problem 8: *lightline-problem-8* - Triangles do not appear. Triangles look weird. - - If the triangles do not appear (but you get some spaces or - weird characters like <bf> or ¿), firstly try adding -> - scriptencoding utf-8 - set encoding=utf-8 -< - to the head of your .vimrc(_vimrc). Still you have weird - characters, use the unicode numbers. For |powerline| font - users: -> - \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, - \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" } -< - For |vim-powerline| font users: -> - \ 'separator': { 'left': "\u2b80", 'right': "\u2b82" }, - \ 'subseparator': { 'left': "\u2b81", 'right': "\u2b83" } -< - The full list of unicode numbers for fancy characters is shown - in |lightline-problem-9|. - - If the triangles are shown in appropriate characters but the - colors do not look correctly, see the following. - If you are using iTerm2, change the following settings. - - + set Profiles>Colors>Minimum contrast to the Lowest. - + set Profiles>Window>Transparency to the Opaquest. - - For other terminals, this weird-triangle problem will be - resolved by disabling transparency or contrast adjustment. - -Problem 9: *lightline-problem-9* - Where can I find the list of all the cool characters for patched fonts? - - Default powerline vim-powerline - separator.left '' '' (\ue0b0) '⮀' (\u2b80) - separator.right '' '' (\ue0b2) '⮂' (\u2b82) - subseparator.left '|' '' (\ue0b1) '⮁' (\u2b81) - subseparator.right '|' '' (\ue0b3) '⮃' (\u2b83) - branch symbol -- '' (\ue0a0) '⭠' (\u2b60) - readonly symbol -- '' (\ue0a2) '⭤' (\u2b64) - linecolumn symbol -- '' (\ue0a1) '⭡' (\u2b81) - -Problem 10: *lightline-problem-10* - Cool statusline disappears on |unite|, |vimfiler| and |vimshell| - buffers. - - Add the following settings to your .vimrc(_vimrc). -> - let g:unite_force_overwrite_statusline = 0 - let g:vimfiler_force_overwrite_statusline = 0 - let g:vimshell_force_overwrite_statusline = 0 -< -Problem 11: *lightline-problem-11* - Cool statusline disappears in |CtrlP|, |Tagbar| buffers. - - Add the following settings to your .vimrc(_vimrc). -> - let g:ctrlp_status_func = { - \ 'main': 'CtrlPStatusFunc_1', - \ 'prog': 'CtrlPStatusFunc_2', - \ } - function! CtrlPStatusFunc_1(focus, byfname, regex, prev, item, next, marked) - return lightline#statusline(0) - endfunction - function! CtrlPStatusFunc_2(str) - return lightline#statusline(0) - endfunction - - let g:tagbar_status_func = 'TagbarStatusFunc' - function! TagbarStatusFunc(current, sort, fname, ...) abort - return lightline#statusline(0) - endfunction -< - See |lightline-powerful-example| for more cool settings for - these plugins. - -Problem 12: *lightline-problem-12* - How to make the plus sign red like |powerline|? - - Use the following setings. -> - let g:lightline = { - \ 'component': { - \ 'modified': '%#ModifiedColor#%{LightLineModified()}', - \ } - \ } - function! LightLineModified() - let map = { 'V': 'n', "\<C-v>": 'n', 's': 'n', 'v': 'n', "\<C-s>": 'n', 'c': 'n', 'R': 'n'} - let mode = get(map, mode()[0], mode()[0]) - let bgcolor = {'n': [240, '#585858'], 'i': [31, '#0087af']} - let color = get(bgcolor, mode, bgcolor.n) - exe printf('hi ModifiedColor ctermfg=196 ctermbg=%d guifg=#ff0000 guibg=%s term=bold cterm=bold', - \ color[0], color[1]) - return &modified ? '+' : &modifiable ? '' : '-' - endfunction -< - It's surely complicated. There's no easy API to do a thing - like this. But it means that your request does not match - the spirit of lightline. - -Problem 13: *lightline-problem-13* - How to change the lightline colorscheme on the fly. - - Add the following settings to your .vimrc(_vimrc). -> - augroup LightLineColorscheme - autocmd! - autocmd ColorScheme * call s:lightline_update() - augroup END - function! s:lightline_update() - if !exists('g:loaded_lightline') - return - endif - try - if g:colors_name =~# 'wombat\|solarized\|landscape\|jellybeans\|seoul256\|Tomorrow' - let g:lightline.colorscheme = - \ substitute(substitute(g:colors_name, '-', '_', 'g'), '256.*', '', '') . - \ (g:colors_name ==# 'solarized' ? '_' . &background : '') - call lightline#init() - call lightline#colorscheme() - call lightline#update() - endif - catch - endtry - endfunction -< -Problem 14: *lightline-problem-14* - The 'E541' warning appears on the right hand side. - Many components disable the statusline of lightline. - - The number of items in statusline/tabline is limited to 80 - (see |E541|). You cannot register too much components. - -Problem 15: *lightline-problem-15* - Do not deal with the tabline. - Do not use the fancy separators in the tabline. - - You can disable the tabline feature of lightline.vim using: -> - let g:lightline = { - \ 'enable': { 'tabline': 0 }, - \ } -< - If you don't like the separators in the tabline, use: -> - let g:lightline = { - \ 'tabline_separator': { 'left': "", 'right': "" }, - \ 'tabline_subseparator': { 'left': "", 'right': "" }, - \ } -< -Problem 16: *lightline-problem-16* - When changed the component to a function component to an expanding - component, the statusline of lightline is sometimes disabled. - - When you changed from -> - \ 'component_function': { - \ 'my': 'My', - \ } -< - to -> - \ 'component_expand': { - \ 'my': 'My', - \ } -< - the statusline of lightline is disabled unexpectedly. - In such a case, the text returned by 'My' function may include - the '%' character. Replace all the '%' signs with '%%'. -> - function My() - ... - return substitute(text, '%', '%%', 'g') - endfunction -< -Problem 17: *lightline-problem-17* - Found a bug of this plugin. - Got many errors while using this plugin. - Vim hangs while using this plugin. - Want this plugin to be more configurable. - This troubleshooting is not helpful. - - Report/Request the issue/feature at - https://github.com/itchyny/lightline.vim/issues. - -============================================================================== -CHANGELOG *lightline-changelog* - -0.0 2013-08-21, ... - - Initial commit and implementation - -============================================================================== -vim:tw=78:sw=4:ts=8:ft=help:norl:noet: diff --git a/vim/bundle/lightline.vim/plugin/lightline.vim b/vim/bundle/lightline.vim/plugin/lightline.vim deleted file mode 100644 index f396010..0000000 --- a/vim/bundle/lightline.vim/plugin/lightline.vim +++ /dev/null @@ -1,24 +0,0 @@ -" ============================================================================= -" Filename: plugin/lightline.vim -" Author: itchyny -" License: MIT License -" Last Change: 2016/03/14 03:31:58. -" ============================================================================= - -if exists('g:loaded_lightline') || v:version < 700 - finish -endif -let g:loaded_lightline = 1 - -let s:save_cpo = &cpo -set cpo&vim - -augroup lightline - autocmd! - autocmd WinEnter,BufWinEnter,FileType,ColorScheme,SessionLoadPost * call lightline#update() - autocmd ColorScheme,SessionLoadPost * call lightline#highlight() - autocmd CursorMoved,BufUnload * call lightline#update_once() -augroup END - -let &cpo = s:save_cpo -unlet s:save_cpo diff --git a/vim/bundle/lightline.vim/test/.themisrc b/vim/bundle/lightline.vim/test/.themisrc deleted file mode 100644 index c226c08..0000000 --- a/vim/bundle/lightline.vim/test/.themisrc +++ /dev/null @@ -1,20 +0,0 @@ -let s:sids = {} -function! s:sid(path) abort - if has_key(s:sids, a:path) - return s:sids[a:path] - endif - redir => scriptnames - silent! scriptnames - redir END - for line in split(scriptnames, '\n') - if line =~# a:path - let sid = matchstr(line, '\v^\s*\zs\d+\ze') - let s:sids[a:path] = sid - return sid - endif - endfor -endfunction - -function! SID(name) abort - return function(printf("\<SNR>%d_%s", s:sid('autoload/lightline.vim'), a:name)) -endfunction diff --git a/vim/bundle/lightline.vim/test/concatenate.vim b/vim/bundle/lightline.vim/test/concatenate.vim deleted file mode 100644 index 6fd2723..0000000 --- a/vim/bundle/lightline.vim/test/concatenate.vim +++ /dev/null @@ -1,90 +0,0 @@ -let s:suite = themis#suite('concatenate') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - let g:lightline = { 'subseparator': { 'left': '>', 'right': '<' } } - call lightline#init() -endfunction - -function! s:suite.nil() - call s:assert.equals(lightline#concatenate([], 0), '') - call s:assert.equals(lightline#concatenate([], 1), '') -endfunction - -function! s:suite.one() - call s:assert.equals(lightline#concatenate(['foo'], 0), 'foo') - call s:assert.equals(lightline#concatenate(['foo'], 1), 'foo') -endfunction - -function! s:suite.two() - call s:assert.equals(lightline#concatenate(['foo', 'bar'], 0), 'foo > bar') - call s:assert.equals(lightline#concatenate(['foo', 'bar'], 1), 'foo < bar') -endfunction - -function! s:suite.three() - call s:assert.equals(lightline#concatenate(['foo', 'bar', 'baz'], 0), 'foo > bar > baz') - call s:assert.equals(lightline#concatenate(['foo', 'bar', 'baz'], 1), 'foo < bar < baz') -endfunction - -function! s:suite.one_empty() - call s:assert.equals(lightline#concatenate([''], 0), '') - call s:assert.equals(lightline#concatenate([''], 1), '') -endfunction - -function! s:suite.two_empty_left() - call s:assert.equals(lightline#concatenate(['', 'bar'], 0), 'bar') - call s:assert.equals(lightline#concatenate(['', 'bar'], 1), 'bar') -endfunction - -function! s:suite.two_empty_right() - call s:assert.equals(lightline#concatenate(['foo', ''], 0), 'foo') - call s:assert.equals(lightline#concatenate(['foo', ''], 1), 'foo') -endfunction - -function! s:suite.two_empty_both() - call s:assert.equals(lightline#concatenate(['', ''], 0), '') - call s:assert.equals(lightline#concatenate(['', ''], 1), '') -endfunction - -function! s:suite.three_empty_left() - call s:assert.equals(lightline#concatenate(['', 'bar', 'baz'], 0), 'bar > baz') - call s:assert.equals(lightline#concatenate(['', 'bar', 'baz'], 1), 'bar < baz') -endfunction - -function! s:suite.three_empty_middle() - call s:assert.equals(lightline#concatenate(['foo', '', 'baz'], 0), 'foo > baz') - call s:assert.equals(lightline#concatenate(['foo', '', 'baz'], 1), 'foo < baz') -endfunction - -function! s:suite.three_empty_right() - call s:assert.equals(lightline#concatenate(['foo', 'bar', ''], 0), 'foo > bar') - call s:assert.equals(lightline#concatenate(['foo', 'bar', ''], 1), 'foo < bar') -endfunction - -function! s:suite.three_empty_middle_right() - call s:assert.equals(lightline#concatenate(['foo', '', ''], 0), 'foo') - call s:assert.equals(lightline#concatenate(['foo', '', ''], 1), 'foo') -endfunction - -function! s:suite.three_empty_left_right() - call s:assert.equals(lightline#concatenate(['', 'bar', ''], 0), 'bar') - call s:assert.equals(lightline#concatenate(['', 'bar', ''], 1), 'bar') -endfunction - -function! s:suite.three_empty_left_middle() - call s:assert.equals(lightline#concatenate(['', '', 'baz'], 0), 'baz') - call s:assert.equals(lightline#concatenate(['', '', 'baz'], 1), 'baz') -endfunction - -function! s:suite.three_empty_all() - call s:assert.equals(lightline#concatenate(['', '', ''], 0), '') - call s:assert.equals(lightline#concatenate(['', '', ''], 1), '') -endfunction - -function! s:suite.keep_original() - let xs = ['', 'bar', ''] - call s:assert.equals(lightline#concatenate(xs, 0), 'bar') - call s:assert.equals(xs, ['', 'bar', '']) - call s:assert.equals(lightline#concatenate(xs, 1), 'bar') - call s:assert.equals(xs, ['', 'bar', '']) -endfunction diff --git a/vim/bundle/lightline.vim/test/error.vim b/vim/bundle/lightline.vim/test/error.vim deleted file mode 100644 index 8fdabf4..0000000 --- a/vim/bundle/lightline.vim/test/error.vim +++ /dev/null @@ -1,15 +0,0 @@ -let s:suite = themis#suite('error') -let s:assert = themis#helper('assert') - -function! s:message() abort - redir => messages - silent! messages - redir END - return split(messages, '\n')[-1] -endfunction - -function! s:suite.error() - let message = 'An error occurred.' - call lightline#error(message) - call s:assert.equals(s:message(), 'lightline.vim: ' . message) -endfunction diff --git a/vim/bundle/lightline.vim/test/expand.vim b/vim/bundle/lightline.vim/test/expand.vim deleted file mode 100644 index c2fc0ab..0000000 --- a/vim/bundle/lightline.vim/test/expand.vim +++ /dev/null @@ -1,612 +0,0 @@ -let s:suite = themis#suite('expand') -let s:assert = themis#helper('assert') - -function! s:expand(...) - return call(SID('expand'), a:000) -endfunction - -function! s:suite.expand() - let g:lightline = {} - call lightline#init() - call s:assert.equals(s:expand([]), - \ [[], [], ['0']]) -endfunction - -function! s:suite.default() - let g:lightline = {} - call lightline#init() - call s:assert.equals(s:expand([['mode', 'paste'], ['readonly', 'filename', 'modified']]), - \ [[['mode', 'paste'], ['readonly', 'filename', 'modified']], [[0, 0], [0, 0, 0]], ['0', '1', '2']]) -endfunction - -function! s:suite.custom() - function! Custom() - return [ ['left'], ['middle'], ['right'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type() - function! Custom() - return [ ['left'], ['middle'], ['right'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['middle'], ['right'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left'], ['middle'], ['right', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.multiple() - function! Custom() - return [ ['x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['x0', 'x1', 'x2', 'y0', 'y1', 'y2', 'z0', 'z1', 'z2'], ['modified']], [[0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'x0', 'x1', 'x2', 'y0', 'y1', 'y2', 'z0', 'z1', 'z2', 'modified']], [[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.multiple_type() - function! Custom() - return [ ['x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2'], ['modified']], [[0, 0], [1, 1, 1], [1, 1, 1], [1, 1, 1], [0]], ['0', '1', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2', 'modified']], [[0, 0, 1, 1, 1], [1, 1, 1], [1, 1, 1, 0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.flatten() - function! Custom() - return [ 'left', 'middle', 'right' ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_flatten() - function! Custom() - return [ 'left', 'middle', 'right' ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['middle'], ['right'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left'], ['middle'], ['right', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_string() - function! Custom() - return 'custom' - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'custom', 'modified']], [[0, 0, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_string() - function! Custom() - return 'custom' - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_void_string() - function! Custom() - return '' - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_void_string() - function! Custom() - return '' - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_number() - function! Custom() - return 24 - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['24'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', '24', 'modified']], [[0, 0, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_number() - function! Custom() - return 24 - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['24'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename'], ['24'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_void_string_array() - function! Custom() - return ['', '', ''] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_void_string_array() - function! Custom() - return ['', '', ''] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_void_string_array_2() - function! Custom() - return [[''], [''], ['']] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_void_string_array_2() - function! Custom() - return [[''], [''], ['']] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_void_string_array_3() - function! Custom() - return ['', 'custom', ''] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'custom', 'modified']], [[0, 0, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_void_string_array_3() - function! Custom() - return ['', 'custom', ''] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_void_string_array_4() - function! Custom() - return [[''], ['custom'], ['']] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'custom', 'modified']], [[0, 0, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_void_string_array_4() - function! Custom() - return [[''], ['custom'], ['']] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_left_nil() - function! Custom() - return [ [], ['y0', 'y1'], ['z0', 'z1'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]), - \ [[['filename'], ['y0', 'y1', 'z0', 'z1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'modified']]), - \ [[['filename', 'y0', 'y1', 'z0', 'z1', 'modified']], [[0, 1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_left_nil() - function! Custom() - return [ [], ['y0', 'y1'], ['z0', 'z1'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]), - \ [[['filename'], ['y0', 'y1'], ['z0', 'z1'], ['modified']], [[0], [1, 1], [1, 1], [0]], ['0', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'modified']]), - \ [[['filename'], ['y0', 'y1'], ['z0', 'z1', 'modified']], [[0], [1, 1], [1, 1, 0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_right_nil() - function! Custom() - return [ ['x0', 'x1'], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]), - \ [[['filename'], ['x0', 'x1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'modified']]), - \ [[['filename', 'x0', 'x1', 'y0', 'y1', 'modified']], [[0, 1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_right_nil() - function! Custom() - return [ ['x0', 'x1'], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]), - \ [[['filename'], ['x0', 'x1'], ['y0', 'y1'], ['modified']], [[0], [1, 1], [1, 1], [0]], ['0', '1', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'modified']]), - \ [[['filename', 'x0', 'x1'], ['y0', 'y1'], ['modified']], [[0, 1, 1], [1, 1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_one() - function! Custom() - return [ 'left' ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', 'modified']], [[0, 0, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_one() - function! Custom() - return [ 'left' ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', 'modified']], [[0, 0, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_two() - function! Custom() - return [ 'left', 'middle'] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left', 'middle'], ['modified']], [[0, 0], [1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', 'middle', 'modified']], [[0, 0, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_two() - function! Custom() - return [ 'left', 'middle' ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['middle'], ['modified']], [[0, 0], [1], [1], [0]], ['0', '1', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left'], ['middle'], ['modified']], [[0, 0, 1], [1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_mixed() - function! Custom() - return ['left', { 'custom': 24 }, [function('tr')]] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left', '{''custom'': 24}', 'function(''tr'')'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', '{''custom'': 24}', 'function(''tr'')', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_mixed() - function! Custom() - return ['left', { 'custom': 24 }, [function('tr')]] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['{''custom'': 24}'], ['function(''tr'')'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left'], ['{''custom'': 24}'], ['function(''tr'')', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_mixed_2() - function! Custom() - return [['left', ''], ['', { 'custom': 24 }, ''], [[function('tr')], '']] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left', '{''custom'': 24}', '[function(''tr'')]'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left', '{''custom'': 24}', '[function(''tr'')]', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_mixed_2() - function! Custom() - return [['left', ''], ['', { 'custom': 24 }, ''], [[function('tr')], '']] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['left'], ['{''custom'': 24}'], ['[function(''tr'')]'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'left'], ['{''custom'': 24}'], ['[function(''tr'')]', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_error() - function! Custom() - throw 'error' - return 'custom' - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.custom_type_error() - function! Custom() - throw 'error' - return 'custom' - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.notfound() - let g:lightline = { 'component_expand': { 'custom': 'NotFound' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) -endfunction - -function! s:suite.custom_type_notfound() - let g:lightline = { 'component_expand': { 'custom': 'NotFound' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]), - \ [[['readonly', 'filename'], ['modified']], [[0, 0], [0]], ['0', '2', '3']]) - call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]), - \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) -endfunction - -function! s:suite.duplicated_left_nil() - function! Custom() - return [ [], ['y0', 'y1'], ['z0', 'z1'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]), - \ [[['filename'], ['y0', 'y1', 'z0', 'z1', 'y0', 'y1', 'z0', 'z1'], ['modified']], [[0], [1, 1, 1, 1, 1, 1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]), - \ [[['filename', 'y0', 'y1', 'z0', 'z1', 'y0', 'y1', 'z0', 'z1', 'modified']], [[0, 1, 1, 1, 1, 1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_type_left_nil() - function! Custom() - return [ [], ['y0', 'y1'], ['z0', 'z1'] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]), - \ [[['filename'], ['y0', 'y1'], ['z0', 'z1'], ['y0', 'y1'], ['z0', 'z1'], ['modified']], [[0], [1, 1], [1, 1], [1, 1], [1, 1], [0]], ['0', 'custom', '1', 'custom', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]), - \ [[['filename'], ['y0', 'y1'], ['z0', 'z1'], ['y0', 'y1'], ['z0', 'z1', 'modified']], [[0], [1, 1], [1, 1], [1, 1], [1, 1, 0]], ['0', 'custom', '0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_right_nil() - function! Custom() - return [ ['x0', 'x1'], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]), - \ [[['filename'], ['x0', 'x1', 'y0', 'y1', 'x0', 'x1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1, 1, 1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]), - \ [[['filename', 'x0', 'x1', 'y0', 'y1', 'x0', 'x1', 'y0', 'y1', 'modified']], [[0, 1, 1, 1, 1, 1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_type_right_nil() - function! Custom() - return [ ['x0', 'x1'], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]), - \ [[['filename'], ['x0', 'x1'], ['y0', 'y1'], ['x0', 'x1'], ['y0', 'y1'], ['modified']], [[0], [1, 1], [1, 1], [1, 1], [1, 1], [0]], ['0', '1', 'custom', '1', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]), - \ [[['filename', 'x0', 'x1'], ['y0', 'y1'], ['x0', 'x1'], ['y0', 'y1'], ['modified']], [[0, 1, 1], [1, 1], [1, 1], [1, 1], [0]], ['0', 'custom', '0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_both_nil() - function! Custom() - return [ [], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]), - \ [[['filename'], ['y0', 'y1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', '1', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]), - \ [[['filename', 'y0', 'y1', 'y0', 'y1', 'modified']], [[0, 1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_type_both_nil() - function! Custom() - return [ [], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]), - \ [[['filename'], ['y0', 'y1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', 'custom', '2', '3']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]), - \ [[['filename'], ['y0', 'y1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', 'custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_both_nil_left_most() - function! Custom() - return [ [], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['custom', 'custom'], ['modified']]), - \ [[['y0', 'y1', 'y0', 'y1'], ['modified']], [[1, 1, 1, 1], [0]], ['0', '1', '2']]) - call s:assert.equals(s:expand([['custom', 'custom', 'modified']]), - \ [[['y0', 'y1', 'y0', 'y1', 'modified']], [[1, 1, 1, 1, 0]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_type_both_nil_left_most() - function! Custom() - return [ [], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['custom', 'custom'], ['modified']]), - \ [[['y0', 'y1', 'y0', 'y1'], ['modified']], [[1, 1, 1, 1], [0]], ['custom', '1', '2']]) - call s:assert.equals(s:expand([['custom', 'custom', 'modified']]), - \ [[['y0', 'y1', 'y0', 'y1'], ['modified']], [[1, 1, 1, 1], [0]], ['custom', '0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_both_nil_right_most() - function! Custom() - return [ [], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom']]), - \ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', '1', '2']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom']]), - \ [[['filename', 'y0', 'y1', 'y0', 'y1']], [[0, 1, 1, 1, 1]], ['0', '1']]) - delfunction Custom -endfunction - -function! s:suite.duplicated_type_both_nil_right_most() - function! Custom() - return [ [], ['y0', 'y1'], [] ] - endfunction - let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(s:expand([['filename'], ['custom', 'custom']]), - \ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', 'custom', '2']]) - call s:assert.equals(s:expand([['filename', 'custom', 'custom']]), - \ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', 'custom', '1']]) - delfunction Custom -endfunction diff --git a/vim/bundle/lightline.vim/test/highlight.vim b/vim/bundle/lightline.vim/test/highlight.vim deleted file mode 100644 index fe5182a..0000000 --- a/vim/bundle/lightline.vim/test/highlight.vim +++ /dev/null @@ -1,171 +0,0 @@ -let s:suite = themis#suite('highlight') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - hi clear -endfunction - -function! s:hi(name) - redir => hi - silent! exec 'hi' a:name - redir END - return substitute(join(split(hi, "\n"), ''), ' \+', ' ', 'g') -endfunction - -function! s:pattern(xs, ...) abort - let ys = a:0 ? a:xs[1:] : a:xs - let zs = get(a:000, 0, a:xs) - return 'ctermfg=' . ys[2] . ' ctermbg=' . zs[3] . '.*guifg=' . ys[0] . ' guibg=' . zs[1] -endfunction - -function! s:suite.highlight() - let g:lightline = {} - call lightline#init() - call lightline#colorscheme() - let palette = lightline#palette() - call s:assert.match(s:hi('LightLineLeft_normal_0'), s:pattern(palette.normal.left[0])) - call s:assert.match(s:hi('LightLineLeft_normal_1'), s:pattern(palette.normal.left[1])) - call s:assert.match(s:hi('LightLineLeft_normal_2'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineRight_normal_0'), s:pattern(palette.normal.right[0])) - call s:assert.match(s:hi('LightLineRight_normal_1'), s:pattern(palette.normal.right[1])) - call s:assert.match(s:hi('LightLineRight_normal_2'), s:pattern(palette.normal.right[2])) - call s:assert.match(s:hi('LightLineRight_normal_3'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineMiddle_normal'), s:pattern(palette.normal.middle[0])) -endfunction - -function! s:suite.insert() - let g:lightline = {} - call lightline#init() - call lightline#colorscheme() - call lightline#highlight('insert') - let palette = lightline#palette() - call s:assert.match(s:hi('LightLineLeft_insert_0'), s:pattern(palette.insert.left[0])) - call s:assert.match(s:hi('LightLineLeft_insert_1'), s:pattern(palette.insert.left[1])) - call s:assert.match(s:hi('LightLineLeft_insert_2'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineRight_insert_0'), s:pattern(palette.insert.right[0])) - call s:assert.match(s:hi('LightLineRight_insert_1'), s:pattern(palette.insert.right[1])) - call s:assert.match(s:hi('LightLineRight_insert_2'), s:pattern(palette.insert.right[2])) - call s:assert.match(s:hi('LightLineRight_insert_3'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineMiddle_insert'), s:pattern(palette.insert.middle[0])) -endfunction - - -function! s:suite.visual() - let g:lightline = {} - call lightline#init() - call lightline#colorscheme() - call lightline#highlight('visual') - let palette = lightline#palette() - call s:assert.match(s:hi('LightLineLeft_visual_0'), s:pattern(palette.visual.left[0])) - call s:assert.match(s:hi('LightLineLeft_visual_1'), s:pattern(palette.visual.left[1])) - call s:assert.match(s:hi('LightLineLeft_visual_2'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineRight_visual_0'), s:pattern(palette.normal.right[0])) - call s:assert.match(s:hi('LightLineRight_visual_1'), s:pattern(palette.normal.right[1])) - call s:assert.match(s:hi('LightLineRight_visual_2'), s:pattern(palette.normal.right[2])) - call s:assert.match(s:hi('LightLineRight_visual_3'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineMiddle_normal'), s:pattern(palette.normal.middle[0])) -endfunction - -function! s:suite.replace() - let g:lightline = {} - call lightline#init() - call lightline#colorscheme() - call lightline#highlight('replace') - let palette = lightline#palette() - call s:assert.match(s:hi('LightLineLeft_replace_0'), s:pattern(palette.replace.left[0])) - call s:assert.match(s:hi('LightLineLeft_replace_1'), s:pattern(palette.replace.left[1])) - call s:assert.match(s:hi('LightLineLeft_replace_2'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineRight_replace_0'), s:pattern(palette.replace.right[0])) - call s:assert.match(s:hi('LightLineRight_replace_1'), s:pattern(palette.replace.right[1])) - call s:assert.match(s:hi('LightLineRight_replace_2'), s:pattern(palette.replace.right[2])) - call s:assert.match(s:hi('LightLineRight_replace_3'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineMiddle_replace'), s:pattern(palette.replace.middle[0])) -endfunction - -function! s:suite.left_right() - let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ] - \ }, - \ } - call lightline#init() - call lightline#colorscheme() - let palette = lightline#palette() - call s:assert.match(s:hi('LightLineLeft_normal_0'), s:pattern(palette.normal.left[0])) - call s:assert.match(s:hi('LightLineLeft_normal_1'), s:pattern(palette.normal.left[1])) - call s:assert.match(s:hi('LightLineLeft_normal_2'), s:pattern(palette.normal.middle[0])) - call s:assert.match(s:hi('LightLineLeft_normal_3'), s:pattern(palette.normal.middle[0])) - call s:assert.match(s:hi('LightLineLeft_normal_4'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineRight_normal_0'), s:pattern(palette.normal.right[0])) - call s:assert.match(s:hi('LightLineRight_normal_1'), s:pattern(palette.normal.right[1])) - call s:assert.match(s:hi('LightLineRight_normal_2'), s:pattern(palette.normal.right[2])) - call s:assert.match(s:hi('LightLineRight_normal_3'), s:pattern(palette.normal.middle[0])) - call s:assert.match(s:hi('LightLineRight_normal_4'), s:pattern(palette.normal.middle[0])) - call s:assert.match(s:hi('LightLineRight_normal_5'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineMiddle_normal'), s:pattern(palette.normal.middle[0])) -endfunction - -function! s:suite.no_components() - let g:lightline = { - \ 'active': { - \ 'left': [], - \ 'right': [] - \ }, - \ 'inactive': { - \ 'left': [], - \ 'right': [] - \ }, - \ } - call lightline#init() - call lightline#colorscheme() - let palette = lightline#palette() - call s:assert.match(s:hi('LightLineLeft_normal_0'), s:pattern(palette.normal.left[0])) - call s:assert.match(s:hi('LightLineLeft_normal_1'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineRight_normal_0'), s:pattern(palette.normal.right[0])) - call s:assert.match(s:hi('LightLineRight_normal_1'), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi('LightLineMiddle_normal'), s:pattern(palette.normal.middle[0])) -endfunction - -function! s:suite.subseparator() - let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ] - \ }, - \ } - call lightline#init() - call lightline#colorscheme() - let palette = lightline#palette() - for i in range(4) - for j in range(5) - if i + 1 == j - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_%s', i, j)), s:pattern(get(palette.normal.left, i, palette.normal.middle[0]), get(palette.normal.left, j, palette.normal.middle[0]))) - else - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_%s', i, j)), 'E411: highlight group not found\|cleared') - endif - endfor - endfor -endfunction - -function! s:suite.component_type() - let g:lightline = { 'component_type': { 'error': 'error', 'warning': 'warning' } } - call lightline#init() - call lightline#colorscheme() - let palette = lightline#palette() - for type in ['error', 'warning'] - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s', type)), s:pattern(palette.normal[type][0])) - call s:assert.match(s:hi(printf('LightLineLeft_normal_0_%s', type)), s:pattern(palette.normal.left[0], palette.normal[type][0])) - call s:assert.match(s:hi(printf('LightLineLeft_normal_1_%s', type)), s:pattern(palette.normal.left[1], palette.normal[type][0])) - call s:assert.match(s:hi(printf('LightLineLeft_normal_2_%s', type)), 'E411: highlight group not found\|cleared') - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_0', type)), s:pattern(palette.normal[type][0], palette.normal.left[0])) - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_1', type)), s:pattern(palette.normal[type][0], palette.normal.left[1])) - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_2', type)), s:pattern(palette.normal[type][0], palette.normal.middle[0])) - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_3', type)), 'E411: highlight group not found\|cleared') - endfor - for type1 in ['error', 'warning'] - for type2 in ['error', 'warning'] - call s:assert.match(s:hi(printf('LightLineLeft_normal_%s_%s', type1, type2)), s:pattern(palette.normal[type1][0], palette.normal[type2][0])) - endfor - endfor -endfunction diff --git a/vim/bundle/lightline.vim/test/link.vim b/vim/bundle/lightline.vim/test/link.vim deleted file mode 100644 index ca86753..0000000 --- a/vim/bundle/lightline.vim/test/link.vim +++ /dev/null @@ -1,131 +0,0 @@ -let s:suite = themis#suite('link') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - hi clear - let g:lightline = {} - call lightline#init() - call lightline#colorscheme() -endfunction - -function! s:hi(name) - redir => hi - silent! exec 'hi' a:name - redir END - return substitute(join(split(hi, "\n"), ''), ' \+', ' ', 'g') -endfunction - -function! s:suite.link() - call lightline#link() - call s:assert.match(s:hi('LightLineLeft_active_0'), 'LightLineLeft_normal_0') - call s:assert.match(s:hi('LightLineLeft_active_1'), 'LightLineLeft_normal_1') - call s:assert.match(s:hi('LightLineLeft_active_2'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineRight_active_0'), 'LightLineRight_normal_0') - call s:assert.match(s:hi('LightLineRight_active_1'), 'LightLineRight_normal_1') - call s:assert.match(s:hi('LightLineRight_active_2'), 'LightLineRight_normal_2') - call s:assert.match(s:hi('LightLineRight_active_3'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineMiddle_active'), 'LightLineMiddle_normal') -endfunction - -function! s:suite.insert() - call lightline#link('i') - call s:assert.match(s:hi('LightLineLeft_active_0'), 'LightLineLeft_insert_0') - call s:assert.match(s:hi('LightLineLeft_active_1'), 'LightLineLeft_insert_1') - call s:assert.match(s:hi('LightLineLeft_active_2'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineRight_active_0'), 'LightLineRight_insert_0') - call s:assert.match(s:hi('LightLineRight_active_1'), 'LightLineRight_insert_1') - call s:assert.match(s:hi('LightLineRight_active_2'), 'LightLineRight_insert_2') - call s:assert.match(s:hi('LightLineRight_active_3'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineMiddle_active'), 'LightLineMiddle_insert') -endfunction - -function! s:suite.visual() - call lightline#link('v') - call s:assert.match(s:hi('LightLineLeft_active_0'), 'LightLineLeft_visual_0') - call s:assert.match(s:hi('LightLineLeft_active_1'), 'LightLineLeft_visual_1') - call s:assert.match(s:hi('LightLineLeft_active_2'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineRight_active_0'), 'LightLineRight_visual_0') - call s:assert.match(s:hi('LightLineRight_active_1'), 'LightLineRight_visual_1') - call s:assert.match(s:hi('LightLineRight_active_2'), 'LightLineRight_visual_2') - call s:assert.match(s:hi('LightLineRight_active_3'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineMiddle_active'), 'LightLineMiddle_visual') -endfunction - -function! s:suite.replace() - call lightline#link('R') - call s:assert.match(s:hi('LightLineLeft_active_0'), 'LightLineLeft_replace_0') - call s:assert.match(s:hi('LightLineLeft_active_1'), 'LightLineLeft_replace_1') - call s:assert.match(s:hi('LightLineLeft_active_2'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineRight_active_0'), 'LightLineRight_replace_0') - call s:assert.match(s:hi('LightLineRight_active_1'), 'LightLineRight_replace_1') - call s:assert.match(s:hi('LightLineRight_active_2'), 'LightLineRight_replace_2') - call s:assert.match(s:hi('LightLineRight_active_3'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineMiddle_active'), 'LightLineMiddle_replace') -endfunction - -function! s:suite.left_right() - let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ] - \ }, - \ } - call lightline#init() - call lightline#colorscheme() - call lightline#link() - call s:assert.match(s:hi('LightLineLeft_active_0'), 'LightLineLeft_normal_0') - call s:assert.match(s:hi('LightLineLeft_active_1'), 'LightLineLeft_normal_1') - call s:assert.match(s:hi('LightLineLeft_active_2'), 'LightLineLeft_normal_2') - call s:assert.match(s:hi('LightLineLeft_active_3'), 'LightLineLeft_normal_3') - call s:assert.match(s:hi('LightLineLeft_active_4'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineRight_active_0'), 'LightLineRight_normal_0') - call s:assert.match(s:hi('LightLineRight_active_1'), 'LightLineRight_normal_1') - call s:assert.match(s:hi('LightLineRight_active_2'), 'LightLineRight_normal_2') - call s:assert.match(s:hi('LightLineRight_active_3'), 'LightLineRight_normal_3') - call s:assert.match(s:hi('LightLineRight_active_4'), 'LightLineRight_normal_4') - call s:assert.match(s:hi('LightLineRight_active_5'), 'E411: highlight group not found') - call s:assert.match(s:hi('LightLineMiddle_active'), 'LightLineMiddle_normal') -endfunction - -function! s:suite.subseparator() - let g:lightline = { - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ] - \ }, - \ } - call lightline#init() - call lightline#colorscheme() - call lightline#link() - for i in range(4) - for j in range(5) - if i + 1 == j - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_%s', i, j)), printf('LightLineLeft_normal_%s_%s', i, j)) - else - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_%s', i, j)), 'E411: highlight group not found') - endif - endfor - endfor -endfunction - -function! s:suite.component_type() - let g:lightline = { 'component_type': { 'error': 'error', 'warning': 'warning' } } - call lightline#init() - call lightline#colorscheme() - call lightline#link() - for type in ['error', 'warning'] - call s:assert.match(s:hi(printf('LightLineLeft_active_%s', type)), printf('LightLineLeft_normal_%s', type)) - call s:assert.match(s:hi(printf('LightLineLeft_active_0_%s', type)), printf('LightLineLeft_normal_0_%s', type)) - call s:assert.match(s:hi(printf('LightLineLeft_active_1_%s', type)), printf('LightLineLeft_normal_1_%s', type)) - call s:assert.match(s:hi(printf('LightLineLeft_active_2_%s', type)), 'E411: highlight group not found') - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_0', type)), printf('LightLineLeft_normal_%s_0', type)) - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_1', type)), printf('LightLineLeft_normal_%s_1', type)) - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_2', type)), printf('LightLineLeft_normal_%s_2', type)) - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_3', type)), 'E411: highlight group not found') - endfor - for type1 in ['error', 'warning'] - for type2 in ['error', 'warning'] - call s:assert.match(s:hi(printf('LightLineLeft_active_%s_%s', type1, type2)), printf('LightLineLeft_normal_%s_%s', type1, type2)) - endfor - endfor -endfunction diff --git a/vim/bundle/lightline.vim/test/mode.vim b/vim/bundle/lightline.vim/test/mode.vim deleted file mode 100644 index 53280f5..0000000 --- a/vim/bundle/lightline.vim/test/mode.vim +++ /dev/null @@ -1,14 +0,0 @@ -let s:suite = themis#suite('mode') -let s:assert = themis#helper('assert') - -function! s:suite.mode() - let g:lightline = {} - call lightline#init() - call s:assert.equals(lightline#mode(), 'NORMAL') -endfunction - -function! s:suite.mode_map() - let g:lightline = { 'mode_map': { 'n': 'N' } } - call lightline#init() - call s:assert.equals(lightline#mode(), 'N') -endfunction diff --git a/vim/bundle/lightline.vim/test/onetab.vim b/vim/bundle/lightline.vim/test/onetab.vim deleted file mode 100644 index 529d833..0000000 --- a/vim/bundle/lightline.vim/test/onetab.vim +++ /dev/null @@ -1,98 +0,0 @@ -let s:suite = themis#suite('onetab') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - let g:lightline = {} - call lightline#init() - tabnew - tabonly -endfunction - -function! s:suite.onetab() - call s:assert.equals(lightline#onetab(1, 1), '1 [No Name]') -endfunction - -function! s:suite.tabnew() - tabnew - call s:assert.equals(lightline#onetab(1, 0), '1 [No Name]') - call s:assert.equals(lightline#onetab(2, 1), '2 [No Name]') -endfunction - -function! s:suite.tabnew_tabnew() - tabnew - tabnew - call s:assert.equals(lightline#onetab(1, 0), '1 [No Name]') - call s:assert.equals(lightline#onetab(2, 0), '2 [No Name]') - call s:assert.equals(lightline#onetab(3, 1), '3 [No Name]') -endfunction - -function! s:suite.modified() - call append(0, '') - call s:assert.equals(lightline#onetab(1, 1), '1 [No Name] +') - undo -endfunction - -function! s:suite.filename() - edit test - call s:assert.equals(lightline#onetab(1, 1), '1 test') - tabnew - bunload test -endfunction - -function! s:suite.filename_modified() - edit test - call append(0, '') - call s:assert.equals(lightline#onetab(1, 1), '1 test +') - tabnew - bunload! test -endfunction - -function! s:suite.active_inactive() - let g:lightline = { 'tab': { 'active': [ 'tabnum', 'filename' ], 'inactive': [ 'filename' ] } } - call lightline#init() - edit test - call append(0, '') - call s:assert.equals(lightline#onetab(1, 1), '1 test') - call s:assert.equals(lightline#onetab(1, 0), 'test') - tabnew - bunload! test -endfunction - -function! s:suite.tab_component() - let g:lightline = { 'tab': { 'active': [ 'custom' ] }, 'tab_component': { 'custom': 'custom' } } - call lightline#init() - call s:assert.equals(lightline#onetab(1, 1), 'custom') - call s:assert.equals(lightline#onetab(2, 1), 'custom') -endfunction - -function! s:suite.tab_component_function() - function! Custom(n) - return 'custom: ' . a:n - endfunction - let g:lightline = { 'tab': { 'active': [ 'custom' ] }, 'tab_component_function': { 'custom': 'Custom' } } - call lightline#init() - call s:assert.equals(lightline#onetab(1, 1), 'custom: 1') - call s:assert.equals(lightline#onetab(2, 1), 'custom: 2') - delfunction Custom -endfunction - -function! s:suite.tab_component_empty_middle() - let g:lightline = { 'tab': { 'active': [ 'tabnum', 'custom', 'filename' ], 'inactive': [ 'tabnum', 'custom', 'custom', 'filename' ] }, 'tab_component': { 'custom': '' } } - call lightline#init() - call s:assert.equals(lightline#onetab(1, 1), '1 [No Name]') - call s:assert.equals(lightline#onetab(2, 1), '2 [No Name]') -endfunction - -function! s:suite.tab_component_empty_left() - let g:lightline = { 'tab': { 'active': [ 'custom', 'filename' ], 'inactive': [ 'custom', 'custom', 'filename' ] }, 'tab_component': { 'custom': '' } } - call lightline#init() - call s:assert.equals(lightline#onetab(1, 1), '[No Name]') - call s:assert.equals(lightline#onetab(2, 1), '[No Name]') -endfunction - -function! s:suite.tab_component_empty_middle() - let g:lightline = { 'tab': { 'active': [ 'tabnum', 'custom' ], 'inactive': [ 'tabnum', 'custom', 'custom' ] }, 'tab_component': { 'custom': '' } } - call lightline#init() - call s:assert.equals(lightline#onetab(1, 1), '1') - call s:assert.equals(lightline#onetab(2, 1), '2') -endfunction diff --git a/vim/bundle/lightline.vim/test/subseparator.vim b/vim/bundle/lightline.vim/test/subseparator.vim deleted file mode 100644 index 02cac4c..0000000 --- a/vim/bundle/lightline.vim/test/subseparator.vim +++ /dev/null @@ -1,302 +0,0 @@ -let s:suite = themis#suite('subseparator') -let s:assert = themis#helper('assert') - -function! s:subseparator(...) - return eval(substitute(call(SID('subseparator'), a:000), '^%{\|}$', '', 'g')) -endfunction - -function! s:suite.subseparator_component() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') -endfunction - -function! s:suite.subseparator_component_visible_condition_1() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1', 'custom2': '1', 'custom3': '1' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') -endfunction - -function! s:suite.subseparator_component_visible_condition_2() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '0', 'custom2': '1', 'custom3': '1' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') -endfunction - -function! s:suite.subseparator_component_visible_condition_3() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '1' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') -endfunction - -function! s:suite.subseparator_component_visible_condition_4() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '0' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') -endfunction - -function! s:suite.subseparator_component_visible_condition_5() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '0', 'custom2': '0', 'custom3': '0' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') -endfunction - -function! s:suite.subseparator_component_visible_condition_6() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1||0', 'custom2': '0', 'custom3': '0' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') -endfunction - -function! s:suite.subseparator_component_visible_condition_7() - let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1||1', 'custom2': '0', 'custom3': '0' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') -endfunction - -function! s:suite.subseparator_component_function() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_function_1() - function! Custom1() - return 'custom1' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom1 -endfunction - -function! s:suite.subseparator_component_function_2() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') - delfunction Custom1 - delfunction Custom2 -endfunction - -function! s:suite.subseparator_component_function_3() - function! Custom1() - return 'custom1' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') - delfunction Custom1 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_function_4() - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_function_5() - function! Custom1() - return '' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_function_6() - function! Custom1() - return '' - endfunction - function! Custom2() - return '' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_function_7() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return '' - endfunction - function! Custom3() - return '' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_expand() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_expand': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 1, 1]), '|') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_expand() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_expand': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 1, 1]), '|') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_expand_1() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_expand': { 'custom1': 'Custom1' }, 'component_function': { 'custom2': 'Custom2', 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 0, 0]), '|') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_expand_2() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_expand': { 'custom1': 'Custom1', 'custom2': 'Custom2' }, 'component_function': { 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 1, 0]), '|') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_expand_3() - function! Custom1() - return '' - endfunction - function! Custom2() - return 'custom2' - endfunction - function! Custom3() - return 'custom3' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2' }, 'component_expand': { 'custom3': 'Custom3' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 1]), '') - delfunction Custom1 - delfunction Custom2 - delfunction Custom3 -endfunction - -function! s:suite.subseparator_component_not_found() - function! Custom1() - return 'custom1' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom1 -endfunction - -function! s:suite.subseparator_component_not_found_1() - function! Custom2() - return 'custom2' - endfunction - let g:lightline = { 'component_function': { 'custom2': 'Custom2' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '') - delfunction Custom2 -endfunction - -function! s:suite.subseparator_component_not_found_2() - function! Custom1() - return 'custom1' - endfunction - function! Custom2() - return 'custom2' - endfunction - let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2' } } - call lightline#init() - call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|') - delfunction Custom1 - delfunction Custom2 -endfunction diff --git a/vim/bundle/lightline.vim/test/tabline.vim b/vim/bundle/lightline.vim/test/tabline.vim deleted file mode 100644 index 0a9879f..0000000 --- a/vim/bundle/lightline.vim/test/tabline.vim +++ /dev/null @@ -1,67 +0,0 @@ -let s:suite = themis#suite('tabline') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - let g:lightline = {} - call lightline#init() - tabnew - tabonly -endfunction - -function! s:suite.tabline() - call s:assert.equals(&tabline, '%!lightline#tabline()') -endfunction - -function! s:suite.enabled() - let g:lightline = { 'enable': { 'tabline': 1 } } - call lightline#init() - call s:assert.equals(&tabline, '%!lightline#tabline()') -endfunction - -function! s:suite.disabled() - let g:lightline = { 'enable': { 'tabline': 0 } } - call lightline#init() - call s:assert.equals(&tabline, '') -endfunction - -function! s:suite.tabnew() - let tabline = lightline#tabline() - tabnew - call s:assert.not_equals(lightline#tabline(), tabline) -endfunction - -function! s:suite.tabnew_first() - let tabline = lightline#tabline() - 0tabnew - call s:assert.not_equals(lightline#tabline(), tabline) -endfunction - -function! s:suite.tabnext() - tabnew - let tabline = lightline#tabline() - tabnext - call s:assert.not_equals(lightline#tabline(), tabline) -endfunction - -function! s:suite.tabonly() - tabnew - tabfirst - let tabline = lightline#tabline() - tabonly - call s:assert.not_equals(lightline#tabline(), tabline) -endfunction - -function! s:suite.tabclose() - tabnew - let tabline = lightline#tabline() - tabclose - call s:assert.not_equals(lightline#tabline(), tabline) -endfunction - -function! s:suite.tabclose_last() - tabnew - tabfirst - let tabline = lightline#tabline() - $tabclose - call s:assert.not_equals(lightline#tabline(), tabline) -endfunction diff --git a/vim/bundle/lightline.vim/test/tabs.vim b/vim/bundle/lightline.vim/test/tabs.vim deleted file mode 100644 index 92c2c08..0000000 --- a/vim/bundle/lightline.vim/test/tabs.vim +++ /dev/null @@ -1,99 +0,0 @@ -let s:suite = themis#suite('tabs') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - let g:lightline = { 'winwidth': 180 } - call lightline#init() - tabnew - tabonly -endfunction - -function! s:tab(number, ...) abort - let active = get(a:000, 0, 0) - let last = get(a:000, 1, 0) - return '%' . a:number . 'T%{lightline#onetab(' . a:number . ',' . active . ')}' . (last ? '%T' : '') -endfunction - -function! s:suite.tabs() - call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1, 1)], []]) -endfunction - -function! s:suite.tabnew() - tabnew - call s:assert.equals(lightline#tabs(), [[s:tab(1)], [s:tab(2, 1, 1)], []]) -endfunction - -function! s:suite.tabnew_tabnew() - tabnew - tabnew - call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2)], [s:tab(3, 1, 1)], []]) -endfunction - -function! s:suite.tabnew_tabfirst() - tabnew - tabfirst - call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1)], [s:tab(2, 0, 1)]]) -endfunction - -function! s:suite.tabnew_tabnew_tabfirst() - tabnew - tabnew - tabfirst - call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1)], [s:tab(2), s:tab(3, 0, 1)]]) -endfunction - -function! s:suite.tabnew_tabnew_tabprevious() - tabnew - tabnew - tabprevious - call s:assert.equals(lightline#tabs(), [[s:tab(1)], [s:tab(2, 1)], [s:tab(3, 0, 1)]]) -endfunction - -function! s:suite.tabnew_20() - for i in range(19) - tabnew - endfor - call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), s:tab(3), s:tab(4), '...', s:tab(16), s:tab(17), s:tab(18), s:tab(19)], [s:tab(20, 1, 1)], []]) -endfunction - -function! s:suite.tabnew_20_tabfirst() - for i in range(19) - tabnew - endfor - tabfirst - call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1)], [s:tab(2), s:tab(3), s:tab(4), s:tab(5), '...', s:tab(17), s:tab(18), s:tab(19), s:tab(20, 0, 1)]]) -endfunction - -function! s:suite.tabnew_20_tabfirst_tabnext() - for i in range(19) - tabnew - endfor - tabfirst - tabnext - call s:assert.equals(lightline#tabs(), [[s:tab(1)], [s:tab(2, 1)], [s:tab(3), s:tab(4), s:tab(5), s:tab(6), '...', s:tab(18), s:tab(19), s:tab(20, 0, 1)]]) -endfunction - -function! s:suite.tabnew_20_tabnext_10() - for i in range(19) - tabnew - endfor - tabnext 10 - call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), '...', s:tab(8), s:tab(9)], [s:tab(10, 1)], [s:tab(11), s:tab(12), '...', s:tab(19), s:tab(20, 0, 1)]]) -endfunction - -function! s:suite.tabnew_20_tabprevious() - for i in range(19) - tabnew - endfor - tabprevious - call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), s:tab(3), '...', s:tab(15), s:tab(16), s:tab(17), s:tab(18)], [s:tab(19, 1)], [s:tab(20, 0, 1)]]) -endfunction - -function! s:suite.tabnew_20_tabprevious_tabprevious() - for i in range(19) - tabnew - endfor - tabprevious - tabprevious - call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), s:tab(3), '...', s:tab(15), s:tab(16), s:tab(17)], [s:tab(18, 1)], [s:tab(19), s:tab(20, 0, 1)]]) -endfunction diff --git a/vim/bundle/lightline.vim/test/toggle.vim b/vim/bundle/lightline.vim/test/toggle.vim deleted file mode 100644 index c6042a8..0000000 --- a/vim/bundle/lightline.vim/test/toggle.vim +++ /dev/null @@ -1,37 +0,0 @@ -let s:suite = themis#suite('toggle') -let s:assert = themis#helper('assert') - -function! s:suite.before_each() - let g:lightline = {} - call lightline#init() - tabnew - tabonly -endfunction - -function! s:suite.default() - call s:assert.equals(exists('#lightline'), 1) - call s:assert.equals(exists('#lightline-disable'), 0) - call s:assert.not_equals(&tabline, '') -endfunction - -function! s:suite.disable_enable() - call lightline#disable() - call s:assert.equals(exists('#lightline'), 0) - call s:assert.equals(exists('#lightline-disable'), 1) - call s:assert.equals(&tabline, '') - call lightline#enable() - call s:assert.equals(exists('#lightline'), 1) - call s:assert.equals(exists('#lightline-disable'), 0) - call s:assert.not_equals(&tabline, '') -endfunction - -function! s:suite.toggle() - call lightline#toggle() - call s:assert.equals(exists('#lightline'), 0) - call s:assert.equals(exists('#lightline-disable'), 1) - call s:assert.equals(&tabline, '') - call lightline#toggle() - call s:assert.equals(exists('#lightline'), 1) - call s:assert.equals(exists('#lightline-disable'), 0) - call s:assert.not_equals(&tabline, '') -endfunction diff --git a/vim/bundle/lightline.vim/test/uniq.vim b/vim/bundle/lightline.vim/test/uniq.vim deleted file mode 100644 index cdfaec0..0000000 --- a/vim/bundle/lightline.vim/test/uniq.vim +++ /dev/null @@ -1,46 +0,0 @@ -let s:suite = themis#suite('uniq') -let s:assert = themis#helper('assert') - -function! s:uniq(...) - try - return call(SID('uniq'), a:000) - catch - return call(function('uniq'), a:000) - endtry -endfunction - -function! s:suite.nil() - call s:assert.equals(s:uniq([]), []) -endfunction - -function! s:suite.one() - call s:assert.equals(s:uniq(['foo']), ['foo']) -endfunction - -function! s:suite.two() - call s:assert.equals(s:uniq(['foo', 'bar']), ['foo', 'bar']) -endfunction - -function! s:suite.three() - call s:assert.equals(s:uniq(['foo', 'bar', 'baz']), ['foo', 'bar', 'baz']) -endfunction - -function! s:suite.two_duplicated() - call s:assert.equals(s:uniq(['foo', 'foo']), ['foo']) -endfunction - -function! s:suite.three_duplicated() - call s:assert.equals(s:uniq(['foo', 'bar', 'foo']), ['foo', 'bar', 'foo']) -endfunction - -function! s:suite.many1() - call s:assert.equals(s:uniq(['foo', 'foo', 'bar', 'baz', 'baz', 'qux', 'foo']), ['foo', 'bar', 'baz', 'qux', 'foo']) -endfunction - -function! s:suite.many2() - call s:assert.equals(s:uniq(['foo', 'foo', 'foo', 'foo', 'bar', 'bar', 'bar']), ['foo', 'bar']) -endfunction - -function! s:suite.many3() - call s:assert.equals(s:uniq(['foo', 'foo', 'bar', 'bar', 'bar', 'foo', 'foo', 'foo']), ['foo', 'bar', 'foo']) -endfunction |