mirror of
https://github.com/vim-airline/vim-airline.git
synced 2026-08-04 23:18:31 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7835562a3 |
@@ -1,4 +1,3 @@
|
|||||||
doc/tags
|
doc/tags
|
||||||
*.lock
|
*.lock
|
||||||
.vim-flavor
|
.vim-flavor
|
||||||
*.swp
|
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
language: ruby
|
language: ruby
|
||||||
before_install:
|
|
||||||
- curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/simple.vim" -o autoload/airline/themes/simple.vim
|
|
||||||
- curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/molokai.vim" -o autoload/airline/themes/molokai.vim
|
|
||||||
- mkdir colors && curl -f -L 'https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim' -o colors/molokai.vim
|
|
||||||
rvm:
|
rvm:
|
||||||
- 1.9.3
|
- 1.9.3
|
||||||
script: rake ci
|
script: rake ci
|
||||||
|
|||||||
-191
@@ -1,191 +0,0 @@
|
|||||||
# Change Log
|
|
||||||
|
|
||||||
This is the Changelog for the vim-airline project.
|
|
||||||
|
|
||||||
## [Unreleased]
|
|
||||||
|
|
||||||
## [0.10] - 2018-12-15
|
|
||||||
- New features
|
|
||||||
- Extensions:
|
|
||||||
- [LanguageClient](https://github.com/autozimu/LanguageClient-neovim)
|
|
||||||
- [vim-gutentags](https://github.com/ludovicchabant/vim-gutentags)
|
|
||||||
- [vim-localsearch](https://github.com/mox-mox/vim-localsearch)
|
|
||||||
- [xtabline](https://github.com/mg979/vim-xtabline)
|
|
||||||
- [vim-grepper](https://github.com/mhinz/vim-grepper)
|
|
||||||
- Add custom AirlineModeChanged autocommand, allowing to call user defined commands
|
|
||||||
whenever airline displays a different mode
|
|
||||||
- New :AirlineExtensions command, to show which extensions have been loaded
|
|
||||||
- Detect several new modes (e.g. completion, virtual replace, etc)
|
|
||||||
- Improvements
|
|
||||||
- Various performance improvements, should Vim keep responsive, even when
|
|
||||||
many highlighting groups need to be re-created
|
|
||||||
- Rework tabline extension
|
|
||||||
- Refactor [vim-ctrlspace](https://github.com/szw/vim-ctrlspace) extension
|
|
||||||
- Refactor the wordcount extension
|
|
||||||
- Reworked the po extension
|
|
||||||
- Allow to disable line numbers for the [Ale Extension](https://github.com/w0rp/ale)
|
|
||||||
- [fugitive](https://github.com/tpope/vim-fugitive) plugin has been refactored
|
|
||||||
causing adjustments for vim-airline, also uses Fugitives new API calls
|
|
||||||
- some improvements to Vims terminal mode
|
|
||||||
- Allow to use alternative seperators for inactive windows (#1236)
|
|
||||||
- Statusline can be set to inactive, whenever Vim loses focus (using FocusLost autocommand)
|
|
||||||
|
|
||||||
## [0.9] - 2018-01-15
|
|
||||||
- Changes
|
|
||||||
- Look of default Airline Symbols has been improved [#1397](https://github.com/vim-airline/vim-airline/issues/1397)
|
|
||||||
- Airline does now set `laststatus=2` if needed
|
|
||||||
- Syntastic extension now displays warnings and errors separately
|
|
||||||
- Updates on Resize and SessionLoad events
|
|
||||||
- Add `maxlinenr` symbol to `airline_section_z`
|
|
||||||
- Add quickfix title to inactive windows
|
|
||||||
- Improvements
|
|
||||||
- Many performance improvements (using caching and async feature when possible)
|
|
||||||
- Cache changes to highlighting groups if `g:airline_highlighting_cache = 1` is set
|
|
||||||
- Allow to skip empty sections by setting `g:airline_skip_empty_sections` variable
|
|
||||||
- Make use of improved Vim Script API, if available (e.g. getwininfo())
|
|
||||||
- Support for Vims terminal feature (very experimental since it hasn't been stabilized yet)
|
|
||||||
- More configuration for the tabline extension (with clickable buffers for Neovim)
|
|
||||||
- Works better on smaller window sizes
|
|
||||||
- Make airline aware of git worktrees
|
|
||||||
- Improvements to the fugitive extension [#1603](https://github.com/vim-airline/vim-airline/issues/1603)
|
|
||||||
- Allows for configurable fileformat output if `g:airline#parts#ffenc#skip_expected_string` is set
|
|
||||||
- Improvements to the documentation
|
|
||||||
- New features
|
|
||||||
- Full async support for Vim 8 and Neovim
|
|
||||||
- Extensions:
|
|
||||||
- [vim-bufmru](https://github.com/mildred/vim-bufmru)
|
|
||||||
- [xkb-switch](https://github.com/ierton/xkb-switch)
|
|
||||||
- [input-source-switcher](https://github.com/vovkasm/input-source-switcher)
|
|
||||||
- [vimagit](https://github.com/jreybert/vimagit)
|
|
||||||
- [denite](https://github.com/Shougo/denite.nvim)
|
|
||||||
- [dein](https://github.com/Shougo/dein.vim)
|
|
||||||
- [vimtex](https://github.com/lervag/vimtex)
|
|
||||||
- [minpac](https://github.com/k-takata/minpac/)
|
|
||||||
- [vim-cursormode](https://github.com/vheon/vim-cursormode)
|
|
||||||
- [Neomake](https://github.com/neomake/neomake)
|
|
||||||
- [Ale](https://github.com/w0rp/ale)
|
|
||||||
- [vim-obsession](https://github.com/tpope/vim-obsession)
|
|
||||||
- spell (can also display Spell language)
|
|
||||||
- keymap
|
|
||||||
- Formatters:
|
|
||||||
- Formatters for JavaScript [#1617](https://github.com/vim-airline/vim-airline/issues/1617)
|
|
||||||
- Tabline: Allow for custom formatter for `tab_nr_type` [#1418](https://github.com/vim-airline/vim-airline/issues/1418)
|
|
||||||
- Customizable wordcount formatter [#1584](https://github.com/vim-airline/vim-airline/issues/1584)
|
|
||||||
- Add User autocommand for Theme changing [#1226](https://github.com/vim-airline/vim-airline/issues/1226)
|
|
||||||
- Shows mercurial mq status if hg mq extension is enabled
|
|
||||||
|
|
||||||
## [0.8] - 2016-03-09
|
|
||||||
- Changes
|
|
||||||
- Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline)
|
|
||||||
- Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)
|
|
||||||
- Improvements
|
|
||||||
- Extensions
|
|
||||||
- branch: support Git and Mercurial simultaneously, untracked files
|
|
||||||
- whitespace: new mixed-indent rule
|
|
||||||
- Windows support
|
|
||||||
- Many bug fixes
|
|
||||||
- Support for Neovim
|
|
||||||
- New features
|
|
||||||
- Many new themes
|
|
||||||
- Extensions/integration
|
|
||||||
- [taboo](https://github.com/gcmt/taboo.vim)
|
|
||||||
- [vim-ctrlspace](https://github.com/szw/vim-ctrlspace)
|
|
||||||
- [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim)
|
|
||||||
- [YouCompleteMe](https://github.com/Valloric/YouCompleteMe)
|
|
||||||
- [po.vim](http://www.vim.org/scripts/script.php?script_id=695)
|
|
||||||
- [unicode.vim](https://github.com/chrisbra/unicode.vim)
|
|
||||||
- wordcount
|
|
||||||
- crypt indicator
|
|
||||||
- byte order mark indicator
|
|
||||||
- Tabline's tab mode can display splits simultaneously
|
|
||||||
|
|
||||||
## [0.7] - 2014-12-10
|
|
||||||
- New features
|
|
||||||
- accents support; allowing multiple colors/styles in the same section
|
|
||||||
- extensions: eclim
|
|
||||||
- themes: understated, monochrome, murmur, sol, lucius
|
|
||||||
- Improvements
|
|
||||||
- solarized theme; support for 8 color terminals
|
|
||||||
- tabline resizes dynamically based on number of open buffers
|
|
||||||
- miscellaneous bug fixes
|
|
||||||
|
|
||||||
## [0.6] - 2013-10-08
|
|
||||||
|
|
||||||
- New features
|
|
||||||
- accents support; allowing multiple colors/styles in the same section
|
|
||||||
- extensions: eclim
|
|
||||||
- themes: understated, monochrome, murmur, sol, lucius
|
|
||||||
- Improvements
|
|
||||||
- solarized theme; support for 8 color terminals
|
|
||||||
- tabline resizes dynamically based on number of open buffers
|
|
||||||
- miscellaneous bug fixes
|
|
||||||
|
|
||||||
## [0.5] - 2013-09-13
|
|
||||||
|
|
||||||
- New features
|
|
||||||
- smart tabline extension which displays all buffers when only one tab is visible
|
|
||||||
- automatic section truncation when the window resizes
|
|
||||||
- support for a declarative style of configuration, allowing parts to contain metadata such as minimum window width or conditional visibility
|
|
||||||
- themes: zenburn, serene
|
|
||||||
- Other
|
|
||||||
- a sizable chunk of vim-airline is now running through a unit testing suite, automated via Travis CI
|
|
||||||
|
|
||||||
## [0.4] - 2013-08-26
|
|
||||||
|
|
||||||
- New features
|
|
||||||
- integration with csv.vim and vim-virtualenv
|
|
||||||
- hunks extension for vim-gitgutter and vim-signify
|
|
||||||
- automatic theme switching with matching colorschemes
|
|
||||||
- commands: AirlineToggle
|
|
||||||
- themes: base16 (all variants)
|
|
||||||
- Improvements
|
|
||||||
- integration with undotree, tagbar, and unite
|
|
||||||
- Other
|
|
||||||
- refactored core and exposed statusline builder and pipeline
|
|
||||||
- all extension related g:airline_variables have been deprecated in favor of g:airline#extensions# variables
|
|
||||||
- extensions found in the runtimepath outside of the default distribution will be automatically loaded
|
|
||||||
|
|
||||||
## [0.3] - 2013-08-12
|
|
||||||
|
|
||||||
- New features
|
|
||||||
- first-class integration with tagbar
|
|
||||||
- white space detection for trailing spaces and mixed indentation
|
|
||||||
- introduced warning section for syntastic and white space detection
|
|
||||||
- improved ctrlp integration: colors are automatically selected based on the current airline theme
|
|
||||||
- new themes: molokai, bubblegum, jellybeans, tomorrow
|
|
||||||
- Bug fixes
|
|
||||||
- improved handling of eventignore used by other plugins
|
|
||||||
- Other
|
|
||||||
- code cleaned up for clearer separation between core functionality and extensions
|
|
||||||
- introduced color extraction from highlight groups, allowing themes to be generated off of the active colorscheme (e.g. jellybeans and tomorrow)
|
|
||||||
- License changed to MIT
|
|
||||||
|
|
||||||
## [0.2] - 2013-07-28
|
|
||||||
|
|
||||||
- New features
|
|
||||||
- iminsert detection
|
|
||||||
- integration with vimshell, vimfiler, commandt, lawrencium
|
|
||||||
- enhanced bufferline theming
|
|
||||||
- support for ctrlp theming
|
|
||||||
- support for custom window excludes
|
|
||||||
- New themes
|
|
||||||
- luna and wombat
|
|
||||||
- Bug fixes
|
|
||||||
- refresh branch name after switching with a shell command
|
|
||||||
|
|
||||||
## [0.1] - 2013-07-17
|
|
||||||
|
|
||||||
- Initial release
|
|
||||||
- integration with other plugins: netrw, unite, nerdtree, undotree, gundo, tagbar, minibufexplr, ctrlp
|
|
||||||
- support for themes: 8 included
|
|
||||||
|
|
||||||
[Unreleased]: https://github.com/vim-airline/vim-airline/compare/v0.9...HEAD
|
|
||||||
[0.9]: https://github.com/vim-airline/vim-airline/compare/v0.8...v0.9
|
|
||||||
[0.8]: https://github.com/vim-airline/vim-airline/compare/v0.7...v0.8
|
|
||||||
[0.7]: https://github.com/vim-airline/vim-airline/compare/v0.6...v0.7
|
|
||||||
[0.6]: https://github.com/vim-airline/vim-airline/compare/v0.5...v0.6
|
|
||||||
[0.5]: https://github.com/vim-airline/vim-airline/compare/v0.4...v0.5
|
|
||||||
[0.4]: https://github.com/vim-airline/vim-airline/compare/v0.3...v0.4
|
|
||||||
[0.3]: https://github.com/vim-airline/vim-airline/compare/v0.2...v0.3
|
|
||||||
[0.2]: https://github.com/vim-airline/vim-airline/compare/v0.1...v0.2
|
|
||||||
[0.1]: https://github.com/vim-airline/vim-airline/releases/tag/v0.1
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
#### environment
|
|
||||||
|
|
||||||
- vim: ????
|
|
||||||
- vim-airline: ????
|
|
||||||
- OS: ????
|
|
||||||
- Have you reproduced with a minimal vimrc: ???
|
|
||||||
- What is your airline configuration: ???
|
|
||||||
if you are using terminal:
|
|
||||||
- terminal: ????
|
|
||||||
- $TERM variable: ???
|
|
||||||
- color configuration (:set t_Co?):
|
|
||||||
if you are using Neovim:
|
|
||||||
- does it happen in Vim: ???
|
|
||||||
|
|
||||||
#### actual behavior
|
|
||||||
|
|
||||||
????
|
|
||||||
|
|
||||||
#### expected behavior
|
|
||||||
|
|
||||||
????
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (C) 2013-2018 Bailey Ling et al.
|
Copyright (C) 2013-2016 Bailey Ling
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the "Software"),
|
a copy of this software and associated documentation files (the "Software"),
|
||||||
|
|||||||
@@ -4,60 +4,6 @@ Lean & mean status/tabline for vim that's light as air.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
When the plugin is correctly loaded, Vim will draw a nice statusline at the
|
|
||||||
bottom of each window.
|
|
||||||
|
|
||||||
That line consists of several sections, each one displaying some piece of
|
|
||||||
information. By default (without configuration) this line will look like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
+-----------------------------------------------------------------------------+
|
|
||||||
|~ |
|
|
||||||
|~ |
|
|
||||||
|~ VIM - Vi IMproved |
|
|
||||||
|~ |
|
|
||||||
|~ version 8.0 |
|
|
||||||
|~ by Bram Moolenaar et al. |
|
|
||||||
|~ Vim is open source and freely distributable |
|
|
||||||
|~ |
|
|
||||||
|~ type :h :q<Enter> to exit |
|
|
||||||
|~ type :help<Enter> or <F1> for on-line help |
|
|
||||||
|~ type :help version8<Enter> for version info |
|
|
||||||
|~ |
|
|
||||||
|~ |
|
|
||||||
+-----------------------------------------------------------------------------+
|
|
||||||
| A | B | C X | Y | Z | [...] |
|
|
||||||
+-----------------------------------------------------------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
The statusline is the colored line at the bottom, which contains the sections
|
|
||||||
(possibly in different colors):
|
|
||||||
|
|
||||||
section|meaning (example)
|
|
||||||
-------|------------------
|
|
||||||
A | displays the mode + additional flags like crypt/spell/paste (INSERT)
|
|
||||||
B | VCS information (branch, hunk summary) (master)
|
|
||||||
C | filename + read-only flag (~/.vim/vimrc RO)
|
|
||||||
X | filetype (vim)
|
|
||||||
Y | file encoding[fileformat] (utf-8[unix])
|
|
||||||
Z | current position in the file
|
|
||||||
[...] | additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...)
|
|
||||||
|
|
||||||
The information in Section Z looks like this:
|
|
||||||
|
|
||||||
`10% ☰ 10/100 ln : 20`
|
|
||||||
|
|
||||||
This means:
|
|
||||||
```
|
|
||||||
10% - 10 percent down the top of the file
|
|
||||||
☰ 10 - current line 10
|
|
||||||
/100 ln - of 100 lines
|
|
||||||
: 20 - current column 20
|
|
||||||
```
|
|
||||||
|
|
||||||
For a better look, those sections can be colored differently, depending on various conditions
|
|
||||||
(e.g. the mode or whether the current file is 'modified')
|
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
* Tiny core written with extensibility in mind ([open/closed principle][8]).
|
* Tiny core written with extensibility in mind ([open/closed principle][8]).
|
||||||
@@ -66,11 +12,10 @@ For a better look, those sections can be colored differently, depending on vario
|
|||||||
[undotree][17], [nerdtree][18], [tagbar][19], [vim-gitgutter][29],
|
[undotree][17], [nerdtree][18], [tagbar][19], [vim-gitgutter][29],
|
||||||
[vim-signify][30], [quickfixsigns][39], [syntastic][5], [eclim][34],
|
[vim-signify][30], [quickfixsigns][39], [syntastic][5], [eclim][34],
|
||||||
[lawrencium][21], [virtualenv][31], [tmuxline][35], [taboo.vim][37],
|
[lawrencium][21], [virtualenv][31], [tmuxline][35], [taboo.vim][37],
|
||||||
[ctrlspace][38], [vim-bufmru][47], [vimagit][50], [denite][51] and more.
|
[ctrlspace][38] and more.
|
||||||
* Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols.
|
* Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols.
|
||||||
* Optimized for speed; it loads in under a millisecond.
|
* Optimized for speed; it loads in under a millisecond.
|
||||||
* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others.
|
* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others; have a look at the [screenshots][14] in the wiki.
|
||||||
Note these are now external to this plugin. See [below][46] for detail.
|
|
||||||
* Supports 7.2 as the minimum Vim version.
|
* Supports 7.2 as the minimum Vim version.
|
||||||
* The master branch tries to be as stable as possible, and new features are merged in only after they have gone through a [full regression test][33].
|
* The master branch tries to be as stable as possible, and new features are merged in only after they have gone through a [full regression test][33].
|
||||||
* Unit testing suite.
|
* Unit testing suite.
|
||||||
@@ -81,20 +26,6 @@ If you don't like the defaults, you can replace all sections with standard `stat
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Themes
|
|
||||||
|
|
||||||
Themes have moved to
|
|
||||||
another repository as of [this commit][45].
|
|
||||||
|
|
||||||
Install the themes as you would this plugin (Vundle example):
|
|
||||||
|
|
||||||
```vim
|
|
||||||
Plugin 'vim-airline/vim-airline'
|
|
||||||
Plugin 'vim-airline/vim-airline-themes'
|
|
||||||
```
|
|
||||||
|
|
||||||
See https://github.com/vim-airline/vim-airline-themes for more.
|
|
||||||
|
|
||||||
## Automatic truncation
|
## Automatic truncation
|
||||||
|
|
||||||
Sections and parts within sections can be configured to automatically hide when the window size shrinks.
|
Sections and parts within sections can be configured to automatically hide when the window size shrinks.
|
||||||
@@ -116,26 +47,6 @@ Separators can be configured independently for the tabline, so here is how you c
|
|||||||
let g:airline#extensions#tabline#left_sep = ' '
|
let g:airline#extensions#tabline#left_sep = ' '
|
||||||
let g:airline#extensions#tabline#left_alt_sep = '|'
|
let g:airline#extensions#tabline#left_alt_sep = '|'
|
||||||
|
|
||||||
In addition, you can also choose which path formatter airline uses. This affects how file paths are
|
|
||||||
displayed in each individual tab as well as the current buffer indicator in the upper right.
|
|
||||||
To do so, set the `formatter` field with:
|
|
||||||
|
|
||||||
let g:airline#extensions#tabline#formatter = 'default'
|
|
||||||
|
|
||||||
Here is a complete list of formatters with screenshots:
|
|
||||||
|
|
||||||
#### `default`
|
|
||||||

|
|
||||||
|
|
||||||
#### `jsformatter`
|
|
||||||

|
|
||||||
|
|
||||||
#### `unique_tail`
|
|
||||||

|
|
||||||
|
|
||||||
#### `unique_tail_improved`
|
|
||||||

|
|
||||||
|
|
||||||
## Seamless integration
|
## Seamless integration
|
||||||
|
|
||||||
vim-airline integrates with a variety of plugins out of the box. These extensions will be lazily loaded if and only if you have the other plugins installed (and of course you can turn them off).
|
vim-airline integrates with a variety of plugins out of the box. These extensions will be lazily loaded if and only if you have the other plugins installed (and of course you can turn them off).
|
||||||
@@ -146,9 +57,6 @@ vim-airline integrates with a variety of plugins out of the box. These extensio
|
|||||||
#### [unite.vim][9]
|
#### [unite.vim][9]
|
||||||

|

|
||||||
|
|
||||||
#### [denite.nvim][51]
|
|
||||||

|
|
||||||
|
|
||||||
#### [tagbar][19]
|
#### [tagbar][19]
|
||||||

|

|
||||||
|
|
||||||
@@ -161,9 +69,6 @@ vim-airline integrates with a variety of plugins out of the box. These extensio
|
|||||||
#### hunks ([vim-gitgutter][29] & [vim-signify][30])
|
#### hunks ([vim-gitgutter][29] & [vim-signify][30])
|
||||||

|

|
||||||
|
|
||||||
#### [vimagit][50]
|
|
||||||

|
|
||||||
|
|
||||||
#### [virtualenv][31]
|
#### [virtualenv][31]
|
||||||

|

|
||||||
|
|
||||||
@@ -173,21 +78,6 @@ vim-airline integrates with a variety of plugins out of the box. These extensio
|
|||||||
#### [promptline][36]
|
#### [promptline][36]
|
||||||

|

|
||||||
|
|
||||||
#### [ctrlspace][38]
|
|
||||||

|
|
||||||
|
|
||||||
#### [xkb-switch][48]/[xkb-layout][49]
|
|
||||||

|
|
||||||
|
|
||||||
#### [vimtex][53]
|
|
||||||

|
|
||||||
|
|
||||||
#### [localsearch][54]
|
|
||||||

|
|
||||||
|
|
||||||
#### [LanguageClient][57]
|
|
||||||

|
|
||||||
|
|
||||||
## Extras
|
## Extras
|
||||||
|
|
||||||
vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also:
|
vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also:
|
||||||
@@ -231,22 +121,27 @@ I wrote the initial version on an airplane, and since it's light as air it turne
|
|||||||
|
|
||||||
This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers:
|
This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers:
|
||||||
|
|
||||||
| Plugin Manager | Install with... |
|
* [Pathogen][11]
|
||||||
| ------------- | ------------- |
|
* `git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline`
|
||||||
| [Pathogen][11] | `git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline`<br/>Remember to run `:Helptags` to generate help tags |
|
* Remember to run `:Helptags` to generate help tags
|
||||||
| [NeoBundle][12] | `NeoBundle 'vim-airline/vim-airline'` |
|
* [NeoBundle][12]
|
||||||
| [Vundle][13] | `Plugin 'vim-airline/vim-airline'` |
|
* `NeoBundle 'vim-airline/vim-airline'`
|
||||||
| [Plug][40] | `Plug 'vim-airline/vim-airline'` |
|
* [Vundle][13]
|
||||||
| [VAM][22] | `call vam#ActivateAddons([ 'vim-airline' ])` |
|
* `Plugin 'vim-airline/vim-airline'`
|
||||||
| [Dein][52] | `call dein#add('vim-airline/vim-airline')` |
|
* [Plug][40]
|
||||||
| [minpac][55] | `call minpac#add('vim-airline/vim-airline')` |
|
* `Plug 'vim-airline/vim-airline'`
|
||||||
| pack feature (native Vim 8 package feature)| `git clone https://github.com/vim-airline/vim-airline ~/.vim/pack/dist/start/vim-airline`<br/>Remember to run `:helptags` to generate help tags |
|
* [VAM][22]
|
||||||
| manual | copy all of the files into your `~/.vim` directory |
|
* `call vam#ActivateAddons([ 'vim-airline' ])`
|
||||||
|
* manual
|
||||||
|
* copy all of the files into your `~/.vim` directory
|
||||||
|
|
||||||
# Documentation
|
# Configuration
|
||||||
|
|
||||||
`:help airline`
|
`:help airline`
|
||||||
|
|
||||||
|
The default setting of 'laststatus' is for the statusline to not appear until a split is created. If you want it to appear all the time, add the following to your vimrc:
|
||||||
|
`set laststatus=2`
|
||||||
|
|
||||||
# Integrating with powerline fonts
|
# Integrating with powerline fonts
|
||||||
|
|
||||||
For the nice looking powerline symbols to appear, you will need to install a patched font. Instructions can be found in the official powerline [documentation][20]. Prepatched fonts can be found in the [powerline-fonts][3] repository.
|
For the nice looking powerline symbols to appear, you will need to install a patched font. Instructions can be found in the official powerline [documentation][20]. Prepatched fonts can be found in the [powerline-fonts][3] repository.
|
||||||
@@ -267,11 +162,7 @@ Many optimizations have been made such that the majority of users will not see a
|
|||||||
|
|
||||||
The [minivimrc][7] project has some helper mappings to troubleshoot performance related issues.
|
The [minivimrc][7] project has some helper mappings to troubleshoot performance related issues.
|
||||||
|
|
||||||
If you don't want all the bells and whistles enabled by default, you can define a value for `g:airline_extensions`. When this variable is defined, only the extensions listed will be loaded; an empty array would effectively disable all extensions (e.g. `:let g:airline_extensions = []`).
|
If you don't want all the bells and whistles enabled by default, you can define a value for `g:airline_extensions`. When this variable is defined, only the extensions listed will be loaded; an empty array would effectively disable all extensions.
|
||||||
|
|
||||||
Also, you can enable caching of the various syntax highlighting groups. This will try to prevent some of the more expensive `:hi` calls in Vim, which seem to be expensive in the Vim core at the expense of possibly not being one hundred percent correct all the time (especially if you often change highlighting groups yourself using `:hi` commands). To set this up do `:let g:airline_highlighting_cache = 1`. A `:AirlineRefresh` will however clear the cache.
|
|
||||||
|
|
||||||
In addition you might want to check out the [dark_minimal theme][56], which does not change highlighting groups once they are defined. Also please check the [FAQ][27] for more information on how to diagnose and fix the problem.
|
|
||||||
|
|
||||||
# Screenshots
|
# Screenshots
|
||||||
|
|
||||||
@@ -285,7 +176,9 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
|
|||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
MIT License. Copyright (c) 2013-2017 Bailey Ling & Contributors.
|
MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
|
|
||||||
|
[](https://bitdeli.com/free "Bitdeli Badge")
|
||||||
|
|
||||||
[1]: https://github.com/Lokaltog/vim-powerline
|
[1]: https://github.com/Lokaltog/vim-powerline
|
||||||
[2]: https://github.com/Lokaltog/powerline
|
[2]: https://github.com/Lokaltog/powerline
|
||||||
@@ -299,7 +192,7 @@ MIT License. Copyright (c) 2013-2017 Bailey Ling & Contributors.
|
|||||||
[10]: https://github.com/ctrlpvim/ctrlp.vim
|
[10]: https://github.com/ctrlpvim/ctrlp.vim
|
||||||
[11]: https://github.com/tpope/vim-pathogen
|
[11]: https://github.com/tpope/vim-pathogen
|
||||||
[12]: https://github.com/Shougo/neobundle.vim
|
[12]: https://github.com/Shougo/neobundle.vim
|
||||||
[13]: https://github.com/VundleVim/Vundle.vim
|
[13]: https://github.com/gmarik/vundle
|
||||||
[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots
|
[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots
|
||||||
[15]: https://github.com/techlivezheng/vim-plugin-minibufexpl
|
[15]: https://github.com/techlivezheng/vim-plugin-minibufexpl
|
||||||
[16]: https://github.com/sjl/gundo.vim
|
[16]: https://github.com/sjl/gundo.vim
|
||||||
@@ -331,16 +224,3 @@ MIT License. Copyright (c) 2013-2017 Bailey Ling & Contributors.
|
|||||||
[42]: https://github.com/chrisbra
|
[42]: https://github.com/chrisbra
|
||||||
[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer
|
[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer
|
||||||
[44]: https://github.com/mhartington
|
[44]: https://github.com/mhartington
|
||||||
[45]: https://github.com/vim-airline/vim-airline/commit/d7fd8ca649e441b3865551a325b10504cdf0711b
|
|
||||||
[46]: https://github.com/vim-airline/vim-airline#themes
|
|
||||||
[47]: https://github.com/mildred/vim-bufmru
|
|
||||||
[48]: https://github.com/ierton/xkb-switch
|
|
||||||
[49]: https://github.com/vovkasm/input-source-switcher
|
|
||||||
[50]: https://github.com/jreybert/vimagit
|
|
||||||
[51]: https://github.com/Shougo/denite.nvim
|
|
||||||
[52]: https://github.com/Shougo/dein.vim
|
|
||||||
[53]: https://github.com/lervag/vimtex
|
|
||||||
[54]: https://github.com/mox-mox/vim-localsearch
|
|
||||||
[55]: https://github.com/k-takata/minpac/
|
|
||||||
[56]: https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/dark_minimal.vim
|
|
||||||
[57]: https://github.com/autozimu/LanguageClient-neovim
|
|
||||||
|
|||||||
+35
-118
@@ -1,17 +1,10 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
|
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
|
||||||
|
|
||||||
let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning']
|
let s:sections = ['a','b','c','gutter','x','y','z','warning']
|
||||||
let s:inactive_funcrefs = []
|
let s:inactive_funcrefs = []
|
||||||
let s:contexts = {}
|
|
||||||
let s:core_funcrefs = [
|
|
||||||
\ function('airline#extensions#apply'),
|
|
||||||
\ function('airline#extensions#default#apply') ]
|
|
||||||
|
|
||||||
|
|
||||||
function! airline#add_statusline_func(name)
|
function! airline#add_statusline_func(name)
|
||||||
call airline#add_statusline_funcref(function(a:name))
|
call airline#add_statusline_funcref(function(a:name))
|
||||||
@@ -19,7 +12,9 @@ endfunction
|
|||||||
|
|
||||||
function! airline#add_statusline_funcref(function)
|
function! airline#add_statusline_funcref(function)
|
||||||
if index(g:airline_statusline_funcrefs, a:function) >= 0
|
if index(g:airline_statusline_funcrefs, a:function) >= 0
|
||||||
call airline#util#warning(printf('The airline statusline funcref "%s" has already been added.', string(a:function)))
|
echohl WarningMsg
|
||||||
|
echo 'The airline statusline funcref '.string(a:function).' has already been added.'
|
||||||
|
echohl NONE
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
call add(g:airline_statusline_funcrefs, a:function)
|
call add(g:airline_statusline_funcrefs, a:function)
|
||||||
@@ -37,7 +32,6 @@ function! airline#add_inactive_statusline_func(name)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#load_theme()
|
function! airline#load_theme()
|
||||||
let g:airline_theme = get(g:, 'airline_theme', 'dark')
|
|
||||||
if exists('*airline#themes#{g:airline_theme}#refresh')
|
if exists('*airline#themes#{g:airline_theme}#refresh')
|
||||||
call airline#themes#{g:airline_theme}#refresh()
|
call airline#themes#{g:airline_theme}#refresh()
|
||||||
endif
|
endif
|
||||||
@@ -55,66 +49,36 @@ function! airline#load_theme()
|
|||||||
call airline#update_statusline()
|
call airline#update_statusline()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Load an airline theme
|
function! airline#switch_theme(name)
|
||||||
function! airline#switch_theme(name, ...)
|
|
||||||
let silent = get(a:000, '0', 0)
|
|
||||||
" get all available themes
|
|
||||||
let themes = airline#util#themes('')
|
|
||||||
let err = 0
|
|
||||||
try
|
try
|
||||||
if index(themes, a:name) == -1
|
let palette = g:airline#themes#{a:name}#palette "also lazy loads the theme
|
||||||
" Theme not available
|
let g:airline_theme = a:name
|
||||||
if !silent
|
catch
|
||||||
call airline#util#warning(printf('The specified theme "%s" cannot be found.', a:name))
|
echohl WarningMsg | echo 'The specified theme cannot be found.' | echohl NONE
|
||||||
endif
|
|
||||||
throw "not-found"
|
|
||||||
let err = 1
|
|
||||||
else
|
|
||||||
exe "ru autoload/airline/themes/". a:name. ".vim"
|
|
||||||
let g:airline_theme = a:name
|
|
||||||
endif
|
|
||||||
catch /^Vim/
|
|
||||||
" catch only Vim errors, not "not-found"
|
|
||||||
call airline#util#warning(printf('There is an error in theme "%s".', a:name))
|
|
||||||
if &vbs
|
|
||||||
call airline#util#warning(v:exception)
|
|
||||||
endif
|
|
||||||
let err = 1
|
|
||||||
endtry
|
|
||||||
|
|
||||||
if err
|
|
||||||
if exists('g:airline_theme')
|
if exists('g:airline_theme')
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
let g:airline_theme = 'dark'
|
let g:airline_theme = 'dark'
|
||||||
endif
|
endif
|
||||||
endif
|
endtry
|
||||||
|
|
||||||
unlet! w:airline_lastmode
|
let w:airline_lastmode = ''
|
||||||
call airline#load_theme()
|
call airline#load_theme()
|
||||||
|
|
||||||
call airline#util#doautocmd('AirlineAfterTheme')
|
|
||||||
|
|
||||||
" this is required to prevent clobbering the startup info message, i don't know why...
|
" this is required to prevent clobbering the startup info message, i don't know why...
|
||||||
call airline#check_mode(winnr())
|
call airline#check_mode(winnr())
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Try to load the right theme for the current colorscheme
|
|
||||||
function! airline#switch_matching_theme()
|
function! airline#switch_matching_theme()
|
||||||
if exists('g:colors_name')
|
if exists('g:colors_name')
|
||||||
let existing = g:airline_theme
|
|
||||||
let theme = tr(tolower(g:colors_name), '-', '_')
|
|
||||||
try
|
try
|
||||||
call airline#switch_theme(theme, 1)
|
let palette = g:airline#themes#{g:colors_name}#palette
|
||||||
|
call airline#switch_theme(g:colors_name)
|
||||||
return 1
|
return 1
|
||||||
catch
|
catch
|
||||||
for map in items(g:airline_theme_map)
|
for map in items(g:airline_theme_map)
|
||||||
if match(g:colors_name, map[0]) > -1
|
if match(g:colors_name, map[0]) > -1
|
||||||
try
|
call airline#switch_theme(map[1])
|
||||||
call airline#switch_theme(map[1], 1)
|
|
||||||
catch
|
|
||||||
call airline#switch_theme(existing)
|
|
||||||
endtry
|
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
@@ -123,57 +87,34 @@ function! airline#switch_matching_theme()
|
|||||||
return 0
|
return 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Update the statusline
|
|
||||||
function! airline#update_statusline()
|
function! airline#update_statusline()
|
||||||
if airline#util#getwinvar(winnr(), 'airline_disabled', 0)
|
if airline#util#getwinvar(winnr(), 'airline_disabled', 0)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
let range = filter(range(1, winnr('$')), 'v:val != winnr()')
|
for nr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
||||||
" create inactive statusline
|
|
||||||
call airline#update_statusline_inactive(range)
|
|
||||||
|
|
||||||
unlet! w:airline_render_left w:airline_render_right
|
|
||||||
exe 'unlet! ' 'w:airline_section_'. join(s:sections, ' w:airline_section_')
|
|
||||||
|
|
||||||
" Now create the active statusline
|
|
||||||
let w:airline_active = 1
|
|
||||||
let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
|
|
||||||
call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Function to be called to make all statuslines inactive
|
|
||||||
" Triggered on FocusLost autocommand
|
|
||||||
function! airline#update_statusline_focuslost()
|
|
||||||
if get(g:, 'airline_focuslost_inactive', 0)
|
|
||||||
let bufnr=bufnr('%')
|
|
||||||
call airline#highlighter#highlight_modified_inactive(bufnr)
|
|
||||||
call airline#highlighter#highlight(['inactive'], bufnr)
|
|
||||||
call airline#update_statusline_inactive(range(1, winnr('$')))
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Function to draw inactive statuslines for inactive windows
|
|
||||||
function! airline#update_statusline_inactive(range)
|
|
||||||
if airline#util#getwinvar(winnr(), 'airline_disabled', 0)
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
for nr in a:range
|
|
||||||
if airline#util#getwinvar(nr, 'airline_disabled', 0)
|
if airline#util#getwinvar(nr, 'airline_disabled', 0)
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
call setwinvar(nr, 'airline_active', 0)
|
call setwinvar(nr, 'airline_active', 0)
|
||||||
let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) }
|
let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) }
|
||||||
if get(g:, 'airline_inactive_alt_sep', 0)
|
|
||||||
call extend(context, {
|
|
||||||
\ 'left_sep': g:airline_left_alt_sep,
|
|
||||||
\ 'right_sep': g:airline_right_alt_sep }, 'keep')
|
|
||||||
endif
|
|
||||||
call s:invoke_funcrefs(context, s:inactive_funcrefs)
|
call s:invoke_funcrefs(context, s:inactive_funcrefs)
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
|
unlet! w:airline_render_left
|
||||||
|
unlet! w:airline_render_right
|
||||||
|
for section in s:sections
|
||||||
|
unlet! w:airline_section_{section}
|
||||||
|
endfor
|
||||||
|
|
||||||
|
let w:airline_active = 1
|
||||||
|
let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
|
||||||
|
call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Gather output from all funcrefs which will later be returned by the
|
let s:contexts = {}
|
||||||
" airline#statusline() function
|
let s:core_funcrefs = [
|
||||||
|
\ function('airline#extensions#apply'),
|
||||||
|
\ function('airline#extensions#default#apply') ]
|
||||||
function! s:invoke_funcrefs(context, funcrefs)
|
function! s:invoke_funcrefs(context, funcrefs)
|
||||||
let builder = airline#builder#new(a:context)
|
let builder = airline#builder#new(a:context)
|
||||||
let err = airline#util#exec_funcrefs(a:funcrefs + s:core_funcrefs, builder, a:context)
|
let err = airline#util#exec_funcrefs(a:funcrefs + s:core_funcrefs, builder, a:context)
|
||||||
@@ -184,8 +125,6 @@ function! s:invoke_funcrefs(context, funcrefs)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Main statusline function per window
|
|
||||||
" will be set to the statusline option
|
|
||||||
function! airline#statusline(winnr)
|
function! airline#statusline(winnr)
|
||||||
if has_key(s:contexts, a:winnr)
|
if has_key(s:contexts, a:winnr)
|
||||||
return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line
|
return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line
|
||||||
@@ -195,40 +134,22 @@ function! airline#statusline(winnr)
|
|||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Check if mode as changed
|
|
||||||
function! airline#check_mode(winnr)
|
function! airline#check_mode(winnr)
|
||||||
if !has_key(s:contexts, a:winnr)
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
let context = s:contexts[a:winnr]
|
let context = s:contexts[a:winnr]
|
||||||
|
|
||||||
if get(w:, 'airline_active', 1)
|
if get(w:, 'airline_active', 1)
|
||||||
let l:m = mode(1)
|
let l:m = mode()
|
||||||
if l:m ==# "i"
|
if l:m ==# "i"
|
||||||
let l:mode = ['insert']
|
let l:mode = ['insert']
|
||||||
elseif l:m[0] ==# "i"
|
elseif l:m ==# "R"
|
||||||
let l:mode = ['insert']
|
|
||||||
elseif l:m ==# "Rv"
|
|
||||||
let l:mode =['replace']
|
|
||||||
elseif l:m[0] ==# "R"
|
|
||||||
let l:mode = ['replace']
|
let l:mode = ['replace']
|
||||||
elseif l:m[0] =~# '\v(v|V||s|S|)'
|
elseif l:m =~# '\v(v|V||s|S|)'
|
||||||
let l:mode = ['visual']
|
let l:mode = ['visual']
|
||||||
elseif l:m ==# "t"
|
elseif l:m ==# "t"
|
||||||
let l:mode = ['terminal']
|
let l:mode = ['terminal']
|
||||||
elseif l:m[0] ==# "c"
|
|
||||||
let l:mode = ['commandline']
|
|
||||||
elseif l:m ==# "no" " does not work, most likely, Vim does not refresh the statusline in OP mode
|
|
||||||
let l:mode = ['normal']
|
|
||||||
elseif l:m[0:1] ==# 'ni'
|
|
||||||
let l:mode = ['normal']
|
|
||||||
let l:m = 'ni'
|
|
||||||
else
|
else
|
||||||
let l:mode = ['normal']
|
let l:mode = ['normal']
|
||||||
endif
|
endif
|
||||||
if index(['Rv', 'no', 'ni', 'ix', 'ic'], l:m) == -1
|
|
||||||
let l:m = l:m[0]
|
|
||||||
endif
|
|
||||||
let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)
|
let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)
|
||||||
else
|
else
|
||||||
let l:mode = ['inactive']
|
let l:mode = ['inactive']
|
||||||
@@ -247,10 +168,6 @@ function! airline#check_mode(winnr)
|
|||||||
call add(l:mode, 'crypt')
|
call add(l:mode, 'crypt')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:airline_detect_spell && &spell
|
|
||||||
call add(l:mode, 'spell')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if &readonly || ! &modifiable
|
if &readonly || ! &modifiable
|
||||||
call add(l:mode, 'readonly')
|
call add(l:mode, 'readonly')
|
||||||
endif
|
endif
|
||||||
@@ -258,10 +175,10 @@ function! airline#check_mode(winnr)
|
|||||||
let mode_string = join(l:mode)
|
let mode_string = join(l:mode)
|
||||||
if get(w:, 'airline_lastmode', '') != mode_string
|
if get(w:, 'airline_lastmode', '') != mode_string
|
||||||
call airline#highlighter#highlight_modified_inactive(context.bufnr)
|
call airline#highlighter#highlight_modified_inactive(context.bufnr)
|
||||||
call airline#highlighter#highlight(l:mode, context.bufnr)
|
call airline#highlighter#highlight(l:mode)
|
||||||
call airline#util#doautocmd('AirlineModeChanged')
|
|
||||||
let w:airline_lastmode = mode_string
|
let w:airline_lastmode = mode_string
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,259 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 C.Brabandt et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:untracked_jobs = {}
|
|
||||||
let s:mq_jobs = {}
|
|
||||||
let s:po_jobs = {}
|
|
||||||
|
|
||||||
" Generic functions handling on exit event of the various async functions
|
|
||||||
function! s:untracked_output(dict, buf)
|
|
||||||
if a:buf =~? ('^'. a:dict.cfg['untracked_mark'])
|
|
||||||
let a:dict.cfg.untracked[a:dict.file] = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists)
|
|
||||||
else
|
|
||||||
let a:dict.cfg.untracked[a:dict.file] = ''
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" also called from branch extension (for non-async vims)
|
|
||||||
function! airline#async#mq_output(buf, file)
|
|
||||||
let buf=a:buf
|
|
||||||
if !empty(a:buf)
|
|
||||||
if a:buf =~# 'no patches applied' ||
|
|
||||||
\ a:buf =~# "unknown command 'qtop'" ||
|
|
||||||
\ a:buf =~# "abort"
|
|
||||||
let buf = ''
|
|
||||||
elseif exists("b:mq") && b:mq isnot# buf
|
|
||||||
" make sure, statusline is updated
|
|
||||||
unlet! b:airline_head
|
|
||||||
endif
|
|
||||||
let b:mq = buf
|
|
||||||
endif
|
|
||||||
if has_key(s:mq_jobs, a:file)
|
|
||||||
call remove(s:mq_jobs, a:file)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:po_output(buf, file)
|
|
||||||
if !empty(a:buf)
|
|
||||||
let b:airline_po_stats = printf("%s", a:buf)
|
|
||||||
else
|
|
||||||
let b:airline_po_stats = ''
|
|
||||||
endif
|
|
||||||
if has_key(s:po_jobs, a:file)
|
|
||||||
call remove(s:po_jobs, a:file)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:valid_dir(dir)
|
|
||||||
if empty(a:dir) || !isdirectory(a:dir)
|
|
||||||
return getcwd()
|
|
||||||
endif
|
|
||||||
return a:dir
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if v:version >= 800 && has("job")
|
|
||||||
" Vim 8.0 with Job feature
|
|
||||||
" TODO: Check if we need the cwd option for the job_start() functions
|
|
||||||
" (only works starting with Vim 8.0.0902)
|
|
||||||
|
|
||||||
function! s:on_stdout(channel, msg) dict abort
|
|
||||||
let self.buf .= a:msg
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:on_exit_mq(channel) dict abort
|
|
||||||
call airline#async#mq_output(self.buf, self.file)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:on_exit_untracked(channel) dict abort
|
|
||||||
call s:untracked_output(self, self.buf)
|
|
||||||
if has_key(s:untracked_jobs, self.file)
|
|
||||||
call remove(s:untracked_jobs, self.file)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:on_exit_po(channel) dict abort
|
|
||||||
call s:po_output(self.buf, self.file)
|
|
||||||
call airline#extensions#po#shorten()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#async#get_mq_async(cmd, file)
|
|
||||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
|
||||||
let cmd = a:cmd
|
|
||||||
else
|
|
||||||
let cmd = ['sh', '-c', a:cmd]
|
|
||||||
endif
|
|
||||||
|
|
||||||
let options = {'cmd': a:cmd, 'buf': '', 'file': a:file}
|
|
||||||
if has_key(s:mq_jobs, a:file)
|
|
||||||
if job_status(get(s:mq_jobs, a:file)) == 'run'
|
|
||||||
return
|
|
||||||
elseif has_key(s:mq_jobs, a:file)
|
|
||||||
call remove(s:mq_jobs, a:file)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
let id = job_start(cmd, {
|
|
||||||
\ 'err_io': 'out',
|
|
||||||
\ 'out_cb': function('s:on_stdout', options),
|
|
||||||
\ 'close_cb': function('s:on_exit_mq', options)})
|
|
||||||
let s:mq_jobs[a:file] = id
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#async#get_msgfmt_stat(cmd, file)
|
|
||||||
if g:airline#init#is_windows || !executable('msgfmt')
|
|
||||||
" no msgfmt on windows?
|
|
||||||
return
|
|
||||||
else
|
|
||||||
let cmd = ['sh', '-c', a:cmd. shellescape(a:file)]
|
|
||||||
endif
|
|
||||||
|
|
||||||
let options = {'buf': '', 'file': a:file}
|
|
||||||
if has_key(s:po_jobs, a:file)
|
|
||||||
if job_status(get(s:po_jobs, a:file)) == 'run'
|
|
||||||
return
|
|
||||||
elseif has_key(s:po_jobs, a:file)
|
|
||||||
call remove(s:po_jobs, a:file)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
let id = job_start(cmd, {
|
|
||||||
\ 'err_io': 'out',
|
|
||||||
\ 'out_cb': function('s:on_stdout', options),
|
|
||||||
\ 'close_cb': function('s:on_exit_po', options)})
|
|
||||||
let s:po_jobs[a:file] = id
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#async#vim_vcs_untracked(config, file)
|
|
||||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
|
||||||
let cmd = a:config['cmd'] . shellescape(a:file)
|
|
||||||
else
|
|
||||||
let cmd = ['sh', '-c', a:config['cmd'] . shellescape(a:file)]
|
|
||||||
endif
|
|
||||||
|
|
||||||
let options = {'cfg': a:config, 'buf': '', 'file': a:file}
|
|
||||||
if has_key(s:untracked_jobs, a:file)
|
|
||||||
if job_status(get(s:untracked_jobs, a:file)) == 'run'
|
|
||||||
return
|
|
||||||
elseif has_key(s:untracked_jobs, a:file)
|
|
||||||
call remove(s:untracked_jobs, a:file)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
let id = job_start(cmd, {
|
|
||||||
\ 'err_io': 'out',
|
|
||||||
\ 'out_cb': function('s:on_stdout', options),
|
|
||||||
\ 'close_cb': function('s:on_exit_untracked', options)})
|
|
||||||
let s:untracked_jobs[a:file] = id
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
elseif has("nvim")
|
|
||||||
" NVim specific functions
|
|
||||||
|
|
||||||
function! s:nvim_output_handler(job_id, data, event) dict
|
|
||||||
if a:event == 'stdout' || a:event == 'stderr'
|
|
||||||
let self.buf .= join(a:data)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:nvim_untracked_job_handler(job_id, data, event) dict
|
|
||||||
if a:event == 'exit'
|
|
||||||
call s:untracked_output(self, self.buf)
|
|
||||||
if has_key(s:untracked_jobs, self.file)
|
|
||||||
call remove(s:untracked_jobs, self.file)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:nvim_mq_job_handler(job_id, data, event) dict
|
|
||||||
if a:event == 'exit'
|
|
||||||
call airline#async#mq_output(self.buf, self.file)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:nvim_po_job_handler(job_id, data, event) dict
|
|
||||||
if a:event == 'exit'
|
|
||||||
call s:po_output(self.buf, self.file)
|
|
||||||
call airline#extensions#po#shorten()
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#async#nvim_get_mq_async(cmd, file)
|
|
||||||
let config = {
|
|
||||||
\ 'buf': '',
|
|
||||||
\ 'file': a:file,
|
|
||||||
\ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')),
|
|
||||||
\ 'on_stdout': function('s:nvim_output_handler'),
|
|
||||||
\ 'on_stderr': function('s:nvim_output_handler'),
|
|
||||||
\ 'on_exit': function('s:nvim_mq_job_handler')
|
|
||||||
\ }
|
|
||||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
|
||||||
let cmd = a:cmd
|
|
||||||
else
|
|
||||||
let cmd = ['sh', '-c', a:cmd]
|
|
||||||
endif
|
|
||||||
|
|
||||||
if has_key(s:mq_jobs, a:file)
|
|
||||||
call remove(s:mq_jobs, a:file)
|
|
||||||
endif
|
|
||||||
let id = jobstart(cmd, config)
|
|
||||||
let s:mq_jobs[a:file] = id
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#async#nvim_get_msgfmt_stat(cmd, file)
|
|
||||||
let config = {
|
|
||||||
\ 'buf': '',
|
|
||||||
\ 'file': a:file,
|
|
||||||
\ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')),
|
|
||||||
\ 'on_stdout': function('s:nvim_output_handler'),
|
|
||||||
\ 'on_stderr': function('s:nvim_output_handler'),
|
|
||||||
\ 'on_exit': function('s:nvim_po_job_handler')
|
|
||||||
\ }
|
|
||||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
|
||||||
" no msgfmt on windows?
|
|
||||||
return
|
|
||||||
else
|
|
||||||
let cmd = ['sh', '-c', a:cmd. shellescape(a:file)]
|
|
||||||
endif
|
|
||||||
|
|
||||||
if has_key(s:po_jobs, a:file)
|
|
||||||
call remove(s:po_jobs, a:file)
|
|
||||||
endif
|
|
||||||
let id = jobstart(cmd, config)
|
|
||||||
let s:po_jobs[a:file] = id
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Should work in either Vim pre 8 or Nvim
|
|
||||||
function! airline#async#nvim_vcs_untracked(cfg, file, vcs)
|
|
||||||
let cmd = a:cfg.cmd . shellescape(a:file)
|
|
||||||
let id = -1
|
|
||||||
let config = {
|
|
||||||
\ 'buf': '',
|
|
||||||
\ 'vcs': a:vcs,
|
|
||||||
\ 'cfg': a:cfg,
|
|
||||||
\ 'file': a:file,
|
|
||||||
\ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h'))
|
|
||||||
\ }
|
|
||||||
if has("nvim")
|
|
||||||
call extend(config, {
|
|
||||||
\ 'on_stdout': function('s:nvim_output_handler'),
|
|
||||||
\ 'on_exit': function('s:nvim_untracked_job_handler')})
|
|
||||||
if has_key(s:untracked_jobs, config.file)
|
|
||||||
" still running
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
try
|
|
||||||
let id = jobstart(cmd, config)
|
|
||||||
catch
|
|
||||||
" catch-all, jobstart() failed, fall back to system()
|
|
||||||
let id=-1
|
|
||||||
endtry
|
|
||||||
let s:untracked_jobs[a:file] = id
|
|
||||||
endif
|
|
||||||
" vim without job feature or nvim jobstart failed
|
|
||||||
if id < 1
|
|
||||||
let output=system(cmd)
|
|
||||||
call s:untracked_output(config, output)
|
|
||||||
call airline#extensions#branch#update_untracked_config(a:file, a:vcs)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
+20
-130
@@ -1,40 +1,25 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:prototype = {}
|
let s:prototype = {}
|
||||||
|
|
||||||
function! s:prototype.split(...) dict
|
function! s:prototype.split(...)
|
||||||
call add(self._sections, ['|', a:0 ? a:1 : '%='])
|
call add(self._sections, ['|', a:0 ? a:1 : '%='])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:prototype.add_section_spaced(group, contents) dict
|
function! s:prototype.add_section_spaced(group, contents)
|
||||||
let spc = empty(a:contents) ? '' : g:airline_symbols.space
|
call self.add_section(a:group, (g:airline_symbols.space).a:contents.(g:airline_symbols.space))
|
||||||
call self.add_section(a:group, spc.a:contents.spc)
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:prototype.add_section(group, contents) dict
|
function! s:prototype.add_section(group, contents)
|
||||||
call add(self._sections, [a:group, a:contents])
|
call add(self._sections, [a:group, a:contents])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:prototype.add_raw(text) dict
|
function! s:prototype.add_raw(text)
|
||||||
call add(self._sections, ['', a:text])
|
call add(self._sections, ['', a:text])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:prototype.insert_section(group, contents, position) dict
|
function! s:get_prev_group(sections, i)
|
||||||
call insert(self._sections, [a:group, a:contents], a:position)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:prototype.insert_raw(text, position) dict
|
|
||||||
call insert(self._sections, ['', a:text], a:position)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:prototype.get_position() dict
|
|
||||||
return len(self._sections)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#builder#get_prev_group(sections, i)
|
|
||||||
let x = a:i - 1
|
let x = a:i - 1
|
||||||
while x >= 0
|
while x >= 0
|
||||||
let group = a:sections[x][0]
|
let group = a:sections[x][0]
|
||||||
@@ -46,54 +31,18 @@ function! airline#builder#get_prev_group(sections, i)
|
|||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#builder#get_next_group(sections, i)
|
function! s:prototype.build()
|
||||||
let x = a:i + 1
|
|
||||||
let l = len(a:sections)
|
|
||||||
while x < l
|
|
||||||
let group = a:sections[x][0]
|
|
||||||
if group != '' && group != '|'
|
|
||||||
return group
|
|
||||||
endif
|
|
||||||
let x = x + 1
|
|
||||||
endwhile
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:prototype.build() dict
|
|
||||||
let side = 1
|
let side = 1
|
||||||
let line = ''
|
let line = ''
|
||||||
let i = 0
|
let i = 0
|
||||||
let length = len(self._sections)
|
let length = len(self._sections)
|
||||||
let split = 0
|
let split = 0
|
||||||
let is_empty = 0
|
|
||||||
let prev_group = ''
|
|
||||||
|
|
||||||
while i < length
|
while i < length
|
||||||
let section = self._sections[i]
|
let section = self._sections[i]
|
||||||
let group = section[0]
|
let group = section[0]
|
||||||
let contents = section[1]
|
let contents = section[1]
|
||||||
let pgroup = prev_group
|
let prev_group = s:get_prev_group(self._sections, i)
|
||||||
let prev_group = airline#builder#get_prev_group(self._sections, i)
|
|
||||||
if group ==# 'airline_c' && &buftype ==# 'terminal' && self._context.active
|
|
||||||
let group = 'airline_term'
|
|
||||||
elseif group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr')
|
|
||||||
let group = 'airline_c'. self._context.bufnr
|
|
||||||
elseif prev_group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr')
|
|
||||||
let prev_group = 'airline_c'. self._context.bufnr
|
|
||||||
endif
|
|
||||||
if is_empty
|
|
||||||
let prev_group = pgroup
|
|
||||||
endif
|
|
||||||
let is_empty = s:section_is_empty(self, contents)
|
|
||||||
|
|
||||||
if is_empty
|
|
||||||
" need to fix highlighting groups, since we
|
|
||||||
" have skipped a section, we actually need
|
|
||||||
" the previous previous group and so the
|
|
||||||
" seperator goes from the previous previous group
|
|
||||||
" to the current group
|
|
||||||
let pgroup = group
|
|
||||||
endif
|
|
||||||
|
|
||||||
if group == ''
|
if group == ''
|
||||||
let line .= contents
|
let line .= contents
|
||||||
@@ -105,35 +54,30 @@ function! s:prototype.build() dict
|
|||||||
if prev_group == ''
|
if prev_group == ''
|
||||||
let line .= '%#'.group.'#'
|
let line .= '%#'.group.'#'
|
||||||
elseif split
|
elseif split
|
||||||
if !is_empty
|
let line .= s:get_transitioned_seperator(self, prev_group, group, side)
|
||||||
let line .= s:get_transitioned_seperator(self, prev_group, group, side)
|
|
||||||
endif
|
|
||||||
let split = 0
|
let split = 0
|
||||||
else
|
else
|
||||||
if !is_empty
|
let line .= s:get_seperator(self, prev_group, group, side)
|
||||||
let line .= s:get_seperator(self, prev_group, group, side)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
let line .= is_empty ? '' : s:get_accented_line(self, group, contents)
|
let line .= s:get_accented_line(self, group, contents)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let i = i + 1
|
let i = i + 1
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
if !self._context.active
|
if !self._context.active
|
||||||
"let line = substitute(line, '%#airline_c#', '%#airline_c'.self._context.bufnr.'#', '')
|
|
||||||
let line = substitute(line, '%#.\{-}\ze#', '\0_inactive', 'g')
|
let line = substitute(line, '%#.\{-}\ze#', '\0_inactive', 'g')
|
||||||
endif
|
endif
|
||||||
return line
|
return line
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#builder#should_change_group(group1, group2)
|
function! s:should_change_group(group1, group2)
|
||||||
if a:group1 == a:group2
|
if a:group1 == a:group2
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
let color1 = airline#highlighter#get_highlight(a:group1)
|
let color1 = airline#highlighter#get_highlight(a:group1)
|
||||||
let color2 = airline#highlighter#get_highlight(a:group2)
|
let color2 = airline#highlighter#get_highlight(a:group2)
|
||||||
if g:airline_gui_mode ==# 'gui'
|
if has('gui_running') || (has("termtruecolor") && &guicolors == 1)
|
||||||
return color1[1] != color2[1] || color1[0] != color2[0]
|
return color1[1] != color2[1] || color1[0] != color2[0]
|
||||||
else
|
else
|
||||||
return color1[3] != color2[3] || color1[2] != color2[2]
|
return color1[3] != color2[3] || color1[2] != color2[2]
|
||||||
@@ -142,21 +86,15 @@ endfunction
|
|||||||
|
|
||||||
function! s:get_transitioned_seperator(self, prev_group, group, side)
|
function! s:get_transitioned_seperator(self, prev_group, group, side)
|
||||||
let line = ''
|
let line = ''
|
||||||
if get(a:self._context, 'tabline', 0) && get(g:, 'airline#extensions#tabline#alt_sep', 0) && a:group ==# 'airline_tabsel' && a:side
|
call airline#highlighter#add_separator(a:prev_group, a:group, a:side)
|
||||||
call airline#highlighter#add_separator(a:prev_group, a:group, 0)
|
let line .= '%#'.a:prev_group.'_to_'.a:group.'#'
|
||||||
let line .= '%#'.a:prev_group.'_to_'.a:group.'#'
|
let line .= a:side ? a:self._context.left_sep : a:self._context.right_sep
|
||||||
let line .= a:self._context.right_sep.'%#'.a:group.'#'
|
let line .= '%#'.a:group.'#'
|
||||||
else
|
|
||||||
call airline#highlighter#add_separator(a:prev_group, a:group, a:side)
|
|
||||||
let line .= '%#'.a:prev_group.'_to_'.a:group.'#'
|
|
||||||
let line .= a:side ? a:self._context.left_sep : a:self._context.right_sep
|
|
||||||
let line .= '%#'.a:group.'#'
|
|
||||||
endif
|
|
||||||
return line
|
return line
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:get_seperator(self, prev_group, group, side)
|
function! s:get_seperator(self, prev_group, group, side)
|
||||||
if airline#builder#should_change_group(a:prev_group, a:group)
|
if s:should_change_group(a:prev_group, a:group)
|
||||||
return s:get_transitioned_seperator(a:self, a:prev_group, a:group, a:side)
|
return s:get_transitioned_seperator(a:self, a:prev_group, a:group, a:side)
|
||||||
else
|
else
|
||||||
return a:side ? a:self._context.left_alt_sep : a:self._context.right_alt_sep
|
return a:side ? a:self._context.left_alt_sep : a:self._context.right_alt_sep
|
||||||
@@ -165,7 +103,6 @@ endfunction
|
|||||||
|
|
||||||
function! s:get_accented_line(self, group, contents)
|
function! s:get_accented_line(self, group, contents)
|
||||||
if a:self._context.active
|
if a:self._context.active
|
||||||
" active window
|
|
||||||
let contents = []
|
let contents = []
|
||||||
let content_parts = split(a:contents, '__accent')
|
let content_parts = split(a:contents, '__accent')
|
||||||
for cpart in content_parts
|
for cpart in content_parts
|
||||||
@@ -175,60 +112,12 @@ function! s:get_accented_line(self, group, contents)
|
|||||||
let line = join(contents, a:group)
|
let line = join(contents, a:group)
|
||||||
let line = substitute(line, '__restore__', a:group, 'g')
|
let line = substitute(line, '__restore__', a:group, 'g')
|
||||||
else
|
else
|
||||||
" inactive window
|
|
||||||
let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g')
|
let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g')
|
||||||
let line = substitute(line, '%#__restore__#', '', 'g')
|
let line = substitute(line, '%#__restore__#', '', 'g')
|
||||||
endif
|
endif
|
||||||
return line
|
return line
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:section_is_empty(self, content)
|
|
||||||
let start=1
|
|
||||||
|
|
||||||
" do not check for inactive windows or the tabline
|
|
||||||
if a:self._context.active == 0
|
|
||||||
return 0
|
|
||||||
elseif get(a:self._context, 'tabline', 0)
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" only check, if airline#skip_empty_sections == 1
|
|
||||||
if get(g:, 'airline_skip_empty_sections', 0) == 0
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" only check, if airline#skip_empty_sections == 1
|
|
||||||
if get(w:, 'airline_skip_empty_sections', -1) == 0
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
" assume accents sections to be never empty
|
|
||||||
" (avoides, that on startup the mode message becomes empty)
|
|
||||||
if match(a:content, '%#__accent_[^#]*#.*__restore__#') > -1
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
if empty(a:content)
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start)
|
|
||||||
if empty(list)
|
|
||||||
return 0 " no function in statusline text
|
|
||||||
endif
|
|
||||||
while len(list) > 0
|
|
||||||
let expr = list[0]
|
|
||||||
try
|
|
||||||
" catch all exceptions, just in case
|
|
||||||
if !empty(eval(expr))
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
catch
|
|
||||||
return 0
|
|
||||||
endtry
|
|
||||||
let start += 1
|
|
||||||
let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start)
|
|
||||||
endw
|
|
||||||
return 1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#builder#new(context)
|
function! airline#builder#new(context)
|
||||||
let builder = copy(s:prototype)
|
let builder = copy(s:prototype)
|
||||||
let builder._context = a:context
|
let builder._context = a:context
|
||||||
@@ -242,3 +131,4 @@ function! airline#builder#new(context)
|
|||||||
\ }, 'keep')
|
\ }, 'keep')
|
||||||
return builder
|
return builder
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! airline#debug#profile1()
|
function! airline#debug#profile1()
|
||||||
profile start airline-profile-switch.log
|
profile start airline-profile-switch.log
|
||||||
profile func *
|
profile func *
|
||||||
@@ -49,3 +47,4 @@ function! airline#debug#profile3()
|
|||||||
profile pause
|
profile pause
|
||||||
noautocmd qall!
|
noautocmd qall!
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
|
function! airline#deprecation#check()
|
||||||
|
if !exists('g:loaded_airline_themes')
|
||||||
|
echom 'airline themes have been migrated to github.com/vim-airline/vim-airline-themes and will be removed from the core in the near future.'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists('g:airline_enable_fugitive') || exists('g:airline_fugitive_prefix')
|
||||||
|
echom 'The g:airline_enable_fugitive and g:airline_fugitive_prefix variables are obsolete. Please read the documentation about the branch extension.'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let tests = [
|
||||||
|
\ [ 'g:airline_paste_symbol', 'g:airline_symbols.paste' ],
|
||||||
|
\ [ 'g:airline_readonly_symbol', 'g:airline_symbols.readonly' ],
|
||||||
|
\ [ 'g:airline_linecolumn_prefix', 'g:airline_symbols.linenr' ],
|
||||||
|
\ [ 'g:airline_branch_prefix', 'g:airline_symbols.branch' ],
|
||||||
|
\ [ 'g:airline_branch_empty_message', 'g:airline#extensions#branch#empty_message' ],
|
||||||
|
\ [ 'g:airline_detect_whitespace', 'g:airline#extensions#whitespace#enabled|show_message' ],
|
||||||
|
\ [ 'g:airline_enable_hunks', 'g:airline#extensions#hunks#enabled' ],
|
||||||
|
\ [ 'g:airline_enable_tagbar', 'g:airline#extensions#tagbar#enabled' ],
|
||||||
|
\ [ 'g:airline_enable_csv', 'g:airline#extensions#csv#enabled' ],
|
||||||
|
\ [ 'g:airline_enable_branch', 'g:airline#extensions#branch#enabled' ],
|
||||||
|
\ [ 'g:airline_enable_bufferline', 'g:airline#extensions#bufferline#enabled' ],
|
||||||
|
\ [ 'g:airline_enable_syntastic', 'g:airline#extensions#syntastic#enabled' ],
|
||||||
|
\ [ 'g:airline_enable_eclim', 'g:airline#extensions#eclim#enabled' ],
|
||||||
|
\ ]
|
||||||
|
for test in tests
|
||||||
|
if exists(test[0])
|
||||||
|
let max = winwidth(0) - 16
|
||||||
|
let msg = printf('The variable %s is deprecated and may not work in the future. It has been replaced with %s. Please read the documentation.', test[0], test[1])
|
||||||
|
echom msg[:max].'...'
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
+24
-152
@@ -1,9 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:loaded_ext = []
|
|
||||||
let s:ext = {}
|
let s:ext = {}
|
||||||
let s:ext._theme_funcrefs = []
|
let s:ext._theme_funcrefs = []
|
||||||
|
|
||||||
@@ -23,7 +20,7 @@ endfunction
|
|||||||
let s:script_path = tolower(resolve(expand('<sfile>:p:h')))
|
let s:script_path = tolower(resolve(expand('<sfile>:p:h')))
|
||||||
|
|
||||||
let s:filetype_overrides = {
|
let s:filetype_overrides = {
|
||||||
\ 'nerdtree': [ get(g:, 'NERDTreeStatusline', 'NERD'), '' ],
|
\ 'nerdtree': [ 'NERD', '' ],
|
||||||
\ 'gundo': [ 'Gundo', '' ],
|
\ 'gundo': [ 'Gundo', '' ],
|
||||||
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
|
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
|
||||||
\ 'minibufexpl': [ 'MiniBufExplorer', '' ],
|
\ 'minibufexpl': [ 'MiniBufExplorer', '' ],
|
||||||
@@ -57,7 +54,9 @@ function! airline#extensions#apply_left_override(section1, section2)
|
|||||||
let w:airline_render_right = 0
|
let w:airline_render_right = 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
let s:active_winnr = -1
|
||||||
function! airline#extensions#apply(...)
|
function! airline#extensions#apply(...)
|
||||||
|
let s:active_winnr = winnr()
|
||||||
|
|
||||||
if s:is_excluded_window()
|
if s:is_excluded_window()
|
||||||
return -1
|
return -1
|
||||||
@@ -70,11 +69,6 @@ function! airline#extensions#apply(...)
|
|||||||
let w:airline_render_right = 1
|
let w:airline_render_right = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if &buftype == 'terminal'
|
|
||||||
let w:airline_section_x = ''
|
|
||||||
let w:airline_section_y = ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
if &previewwindow
|
if &previewwindow
|
||||||
let w:airline_section_a = 'Preview'
|
let w:airline_section_a = 'Preview'
|
||||||
let w:airline_section_b = ''
|
let w:airline_section_b = ''
|
||||||
@@ -117,46 +111,31 @@ function! airline#extensions#load_theme()
|
|||||||
call airline#util#exec_funcrefs(s:ext._theme_funcrefs, g:airline#themes#{g:airline_theme}#palette)
|
call airline#util#exec_funcrefs(s:ext._theme_funcrefs, g:airline#themes#{g:airline_theme}#palette)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:sync_active_winnr()
|
||||||
|
if exists('#airline') && winnr() != s:active_winnr
|
||||||
|
call airline#update_statusline()
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#load()
|
function! airline#extensions#load()
|
||||||
let s:loaded_ext = []
|
" non-trivial number of external plugins use eventignore=all, so we need to account for that
|
||||||
|
autocmd CursorMoved * call <sid>sync_active_winnr()
|
||||||
|
|
||||||
if exists('g:airline_extensions')
|
if exists('g:airline_extensions')
|
||||||
for ext in g:airline_extensions
|
for ext in g:airline_extensions
|
||||||
try
|
call airline#extensions#{ext}#init(s:ext)
|
||||||
call airline#extensions#{ext}#init(s:ext)
|
|
||||||
catch /^Vim\%((\a\+)\)\=:E117/ " E117, function does not exist
|
|
||||||
call airline#util#warning("Extension '".ext."' not installed, ignoring!")
|
|
||||||
endtry
|
|
||||||
endfor
|
endfor
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call airline#extensions#quickfix#init(s:ext)
|
call airline#extensions#quickfix#init(s:ext)
|
||||||
call add(s:loaded_ext, 'quickfix')
|
|
||||||
|
|
||||||
if get(g:, 'loaded_unite', 0)
|
if get(g:, 'loaded_unite', 0)
|
||||||
call airline#extensions#unite#init(s:ext)
|
call airline#extensions#unite#init(s:ext)
|
||||||
call add(s:loaded_ext, 'unite')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'loaded_denite', 0)
|
|
||||||
call airline#extensions#denite#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'denite')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists(':NetrwSettings')
|
if exists(':NetrwSettings')
|
||||||
call airline#extensions#netrw#init(s:ext)
|
call airline#extensions#netrw#init(s:ext)
|
||||||
call add(s:loaded_ext, 'netrw')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if has("terminal") || has('nvim')
|
|
||||||
call airline#extensions#term#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'term')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#ycm#enabled', 0)
|
|
||||||
call airline#extensions#ycm#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'ycm')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'loaded_vimfiler', 0)
|
if get(g:, 'loaded_vimfiler', 0)
|
||||||
@@ -165,51 +144,33 @@ function! airline#extensions#load()
|
|||||||
|
|
||||||
if get(g:, 'loaded_ctrlp', 0)
|
if get(g:, 'loaded_ctrlp', 0)
|
||||||
call airline#extensions#ctrlp#init(s:ext)
|
call airline#extensions#ctrlp#init(s:ext)
|
||||||
call add(s:loaded_ext, 'ctrlp')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'loaded_localsearch', 0)
|
if get(g:, 'ctrlspace_loaded', 0)
|
||||||
call airline#extensions#localsearch#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'localsearch')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'CtrlSpaceLoaded', 0)
|
|
||||||
call airline#extensions#ctrlspace#init(s:ext)
|
call airline#extensions#ctrlspace#init(s:ext)
|
||||||
call add(s:loaded_ext, 'ctrlspace')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'command_t_loaded', 0)
|
if get(g:, 'command_t_loaded', 0)
|
||||||
call airline#extensions#commandt#init(s:ext)
|
call airline#extensions#commandt#init(s:ext)
|
||||||
call add(s:loaded_ext, 'commandt')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists(':UndotreeToggle')
|
if exists(':UndotreeToggle')
|
||||||
call airline#extensions#undotree#init(s:ext)
|
call airline#extensions#undotree#init(s:ext)
|
||||||
call add(s:loaded_ext, 'undotree')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#hunks#enabled', 1)
|
if (get(g:, 'airline#extensions#hunks#enabled', 1) && get(g:, 'airline_enable_hunks', 1))
|
||||||
\ && (exists('g:loaded_signify') || exists('g:loaded_gitgutter') || exists('g:loaded_changes') || exists('g:loaded_quickfixsigns'))
|
\ && (exists('g:loaded_signify') || exists('g:loaded_gitgutter') || exists('g:loaded_changes') || exists('g:loaded_quickfixsigns'))
|
||||||
call airline#extensions#hunks#init(s:ext)
|
call airline#extensions#hunks#init(s:ext)
|
||||||
call add(s:loaded_ext, 'hunks')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#vimagit#enabled', 1)
|
if (get(g:, 'airline#extensions#tagbar#enabled', 1) && get(g:, 'airline_enable_tagbar', 1))
|
||||||
\ && (exists('g:loaded_magit'))
|
|
||||||
call airline#extensions#vimagit#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'vimagit')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tagbar#enabled', 1)
|
|
||||||
\ && exists(':TagbarToggle')
|
\ && exists(':TagbarToggle')
|
||||||
call airline#extensions#tagbar#init(s:ext)
|
call airline#extensions#tagbar#init(s:ext)
|
||||||
call add(s:loaded_ext, 'tagbar')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#csv#enabled', 1)
|
if (get(g:, 'airline#extensions#csv#enabled', 1) && get(g:, 'airline_enable_csv', 1))
|
||||||
\ && (get(g:, 'loaded_csv', 0) || exists(':Table'))
|
\ && (get(g:, 'loaded_csv', 0) || exists(':Table'))
|
||||||
call airline#extensions#csv#init(s:ext)
|
call airline#extensions#csv#init(s:ext)
|
||||||
call add(s:loaded_ext, 'csv')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists(':VimShell')
|
if exists(':VimShell')
|
||||||
@@ -217,145 +178,60 @@ function! airline#extensions#load()
|
|||||||
let s:filetype_regex_overrides['^int-'] = ['vimshell','%{substitute(&ft, "int-", "", "")}']
|
let s:filetype_regex_overrides['^int-'] = ['vimshell','%{substitute(&ft, "int-", "", "")}']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#branch#enabled', 1) && (
|
if (get(g:, 'airline#extensions#branch#enabled', 1) && get(g:, 'airline_enable_branch', 1))
|
||||||
\ airline#util#has_fugitive() ||
|
\ && (exists('*fugitive#head') || exists('*lawrencium#statusline') ||
|
||||||
\ airline#util#has_lawrencium() ||
|
\ (get(g:, 'airline#extensions#branch#use_vcscommand', 0) && exists('*VCSCommandGetStatusLine')))
|
||||||
\ airline#util#has_vcscommand() ||
|
|
||||||
\ airline#util#has_custom_scm())
|
|
||||||
call airline#extensions#branch#init(s:ext)
|
call airline#extensions#branch#init(s:ext)
|
||||||
call add(s:loaded_ext, 'branch')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#bufferline#enabled', 1)
|
if (get(g:, 'airline#extensions#bufferline#enabled', 1) && get(g:, 'airline_enable_bufferline', 1))
|
||||||
\ && exists('*bufferline#get_status_string')
|
\ && exists('*bufferline#get_status_string')
|
||||||
call airline#extensions#bufferline#init(s:ext)
|
call airline#extensions#bufferline#init(s:ext)
|
||||||
call add(s:loaded_ext, 'bufferline')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#fugitiveline#enabled', 1)
|
|
||||||
\ && airline#util#has_fugitive()
|
|
||||||
\ && index(s:loaded_ext, 'bufferline') == -1
|
|
||||||
call airline#extensions#fugitiveline#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'fugitiveline')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#virtualenv#enabled', 1) && (exists(':VirtualEnvList') || isdirectory($VIRTUAL_ENV)))
|
if (get(g:, 'airline#extensions#virtualenv#enabled', 1) && (exists(':VirtualEnvList') || isdirectory($VIRTUAL_ENV)))
|
||||||
call airline#extensions#virtualenv#init(s:ext)
|
call airline#extensions#virtualenv#init(s:ext)
|
||||||
call add(s:loaded_ext, 'virtualenv')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#eclim#enabled', 1) && exists(':ProjectCreate'))
|
if (get(g:, 'airline#extensions#eclim#enabled', 1) && exists(':ProjectCreate'))
|
||||||
call airline#extensions#eclim#init(s:ext)
|
call airline#extensions#eclim#init(s:ext)
|
||||||
call add(s:loaded_ext, 'eclim')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#syntastic#enabled', 1)
|
if (get(g:, 'airline#extensions#syntastic#enabled', 1) && get(g:, 'airline_enable_syntastic', 1))
|
||||||
\ && exists(':SyntasticCheck')
|
\ && exists(':SyntasticCheck')
|
||||||
call airline#extensions#syntastic#init(s:ext)
|
call airline#extensions#syntastic#init(s:ext)
|
||||||
call add(s:loaded_ext, 'syntastic')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#ale#enabled', 1) && exists(':ALELint'))
|
if (get(g:, 'airline#extensions#whitespace#enabled', 1) && get(g:, 'airline_detect_whitespace', 1))
|
||||||
call airline#extensions#ale#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'ale')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#languageclient#enabled', 1) && exists(':LanguageClientStart'))
|
|
||||||
call airline#extensions#languageclient#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'languageclient')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#whitespace#enabled', 1)
|
|
||||||
call airline#extensions#whitespace#init(s:ext)
|
call airline#extensions#whitespace#init(s:ext)
|
||||||
call add(s:loaded_ext, 'whitespace')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#neomake#enabled', 1) && exists(':Neomake'))
|
|
||||||
call airline#extensions#neomake#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'neomake')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#po#enabled', 1) && executable('msgfmt')
|
|
||||||
call airline#extensions#po#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'po')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#wordcount#enabled', 1)
|
if get(g:, 'airline#extensions#wordcount#enabled', 1)
|
||||||
call airline#extensions#wordcount#init(s:ext)
|
call airline#extensions#wordcount#init(s:ext)
|
||||||
call add(s:loaded_ext, 'wordcount')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#enabled', 0)
|
if get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||||
call airline#extensions#tabline#init(s:ext)
|
call airline#extensions#tabline#init(s:ext)
|
||||||
call add(s:loaded_ext, 'tabline')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline')
|
if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline')
|
||||||
call airline#extensions#tmuxline#init(s:ext)
|
call airline#extensions#tmuxline#init(s:ext)
|
||||||
call add(s:loaded_ext, 'tmuxline')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#promptline#enabled', 1) && exists(':PromptlineSnapshot') && len(get(g:, 'airline#extensions#promptline#snapshot_file', ''))
|
if get(g:, 'airline#extensions#promptline#enabled', 1) && exists(':PromptlineSnapshot') && len(get(g:, 'airline#extensions#promptline#snapshot_file', ''))
|
||||||
call airline#extensions#promptline#init(s:ext)
|
call airline#extensions#promptline#init(s:ext)
|
||||||
call add(s:loaded_ext, 'promptline')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#nrrwrgn#enabled', 1) && exists(':NR') == 2
|
if get(g:, 'airline#extensions#nrrwrgn#enabled', 1) && exists(':NR') == 2
|
||||||
call airline#extensions#nrrwrgn#init(s:ext)
|
call airline#extensions#nrrwrgn#init(s:ext)
|
||||||
call add(s:loaded_ext, 'nrrwrgn')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#unicode#enabled', 1) && exists(':UnicodeTable') == 2
|
|
||||||
call airline#extensions#unicode#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'unicode')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#capslock#enabled', 1) && exists('*CapsLockStatusline'))
|
if (get(g:, 'airline#extensions#capslock#enabled', 1) && exists('*CapsLockStatusline'))
|
||||||
call airline#extensions#capslock#init(s:ext)
|
call airline#extensions#capslock#init(s:ext)
|
||||||
call add(s:loaded_ext, 'capslock')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#gutentags#enabled', 1) && get(g:, 'loaded_gutentags', 0))
|
|
||||||
call airline#extensions#gutentags#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'gutentags')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#grepper#enabled', 1) && get(g:, 'loaded_grepper', 0))
|
|
||||||
call airline#extensions#grepper#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'grepper')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#xkblayout#enabled', 1) && exists('g:XkbSwitchLib'))
|
|
||||||
call airline#extensions#xkblayout#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'xkblayout')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#keymap#enabled', 1) && has('keymap'))
|
|
||||||
call airline#extensions#keymap#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'keymap')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#windowswap#enabled', 1) && get(g:, 'loaded_windowswap', 0))
|
if (get(g:, 'airline#extensions#windowswap#enabled', 1) && get(g:, 'loaded_windowswap', 0))
|
||||||
call airline#extensions#windowswap#init(s:ext)
|
call airline#extensions#windowswap#init(s:ext)
|
||||||
call add(s:loaded_ext, 'windowswap')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#obsession#enabled', 1) && exists('*ObsessionStatus'))
|
|
||||||
call airline#extensions#obsession#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'obsession')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#vimtex#enabled', 1)
|
|
||||||
runtime autoload/vimtex.vim
|
|
||||||
if exists('*vimtex#init')
|
|
||||||
call airline#extensions#vimtex#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'vimtex')
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if (get(g:, 'airline#extensions#cursormode#enabled', 0))
|
|
||||||
call airline#extensions#cursormode#init(s:ext)
|
|
||||||
call add(s:loaded_ext, 'cursormode')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !get(g:, 'airline#extensions#disable_rtp_load', 0)
|
if !get(g:, 'airline#extensions#disable_rtp_load', 0)
|
||||||
@@ -367,8 +243,7 @@ function! airline#extensions#load()
|
|||||||
if stridx(tolower(resolve(fnamemodify(file, ':p'))), s:script_path) < 0
|
if stridx(tolower(resolve(fnamemodify(file, ':p'))), s:script_path) < 0
|
||||||
\ && stridx(tolower(fnamemodify(file, ':p')), s:script_path) < 0
|
\ && stridx(tolower(fnamemodify(file, ':p')), s:script_path) < 0
|
||||||
let name = fnamemodify(file, ':t:r')
|
let name = fnamemodify(file, ':t:r')
|
||||||
if !get(g:, 'airline#extensions#'.name.'#enabled', 1) ||
|
if !get(g:, 'airline#extensions#'.name.'#enabled', 1)
|
||||||
\ index(s:loaded_ext, name) > -1
|
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
try
|
try
|
||||||
@@ -380,6 +255,3 @@ function! airline#extensions#load()
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#get_loaded_extensions()
|
|
||||||
return s:loaded_ext
|
|
||||||
endfunction
|
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bjorn Neergaard, w0rp et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! s:airline_ale_count(cnt, symbol)
|
|
||||||
return a:cnt ? a:symbol. a:cnt : ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:airline_ale_get_line_number(cnt, type) abort
|
|
||||||
if a:cnt == 0
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
let buffer = bufnr('')
|
|
||||||
let problem_type = (a:type ==# 'error') ? 'E' : 'W'
|
|
||||||
let problems = copy(ale#engine#GetLoclist(buffer))
|
|
||||||
|
|
||||||
call filter(problems, 'v:val.bufnr is buffer && v:val.type is# problem_type')
|
|
||||||
|
|
||||||
if empty(problems)
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
let open_lnum_symbol = get(g:, 'airline#extensions#ale#open_lnum_symbol', '(L')
|
|
||||||
let close_lnum_symbol = get(g:, 'airline#extensions#ale#close_lnum_symbol', ')')
|
|
||||||
|
|
||||||
return open_lnum_symbol . problems[0].lnum . close_lnum_symbol
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#ale#get(type)
|
|
||||||
if !exists(':ALELint')
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
let error_symbol = get(g:, 'airline#extensions#ale#error_symbol', 'E:')
|
|
||||||
let warning_symbol = get(g:, 'airline#extensions#ale#warning_symbol', 'W:')
|
|
||||||
let checking_symbol = get(g:, 'airline#extensions#ale#checking_symbol', '...')
|
|
||||||
let show_line_numbers = get(g:, 'airline#extensions#ale#show_line_numbers', 1)
|
|
||||||
|
|
||||||
let is_err = a:type ==# 'error'
|
|
||||||
|
|
||||||
if ale#engine#IsCheckingBuffer(bufnr('')) == 1
|
|
||||||
return is_err ? '' : checking_symbol
|
|
||||||
endif
|
|
||||||
|
|
||||||
let symbol = is_err ? error_symbol : warning_symbol
|
|
||||||
|
|
||||||
let counts = ale#statusline#Count(bufnr(''))
|
|
||||||
if type(counts) == type({}) && has_key(counts, 'error')
|
|
||||||
" Use the current Dictionary format.
|
|
||||||
let errors = counts.error + counts.style_error
|
|
||||||
let num = is_err ? errors : counts.total - errors
|
|
||||||
else
|
|
||||||
" Use the old List format.
|
|
||||||
let num = is_err ? counts[0] : counts[1]
|
|
||||||
endif
|
|
||||||
|
|
||||||
if show_line_numbers == 1
|
|
||||||
return s:airline_ale_count(num, symbol) . <sid>airline_ale_get_line_number(num, a:type)
|
|
||||||
else
|
|
||||||
return s:airline_ale_count(num, symbol)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#ale#get_warning()
|
|
||||||
return airline#extensions#ale#get('warning')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#ale#get_error()
|
|
||||||
return airline#extensions#ale#get('error')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#ale#init(ext)
|
|
||||||
call airline#parts#define_function('ale_error_count', 'airline#extensions#ale#get_error')
|
|
||||||
call airline#parts#define_function('ale_warning_count', 'airline#extensions#ale#get_warning')
|
|
||||||
augroup airline_ale
|
|
||||||
autocmd!
|
|
||||||
autocmd CursorHold,BufWritePost * call <sid>ale_refresh()
|
|
||||||
autocmd User ALEJobStarted,ALELintPost call <sid>ale_refresh()
|
|
||||||
augroup END
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:ale_refresh()
|
|
||||||
if get(g:, 'airline_skip_empty_sections', 0)
|
|
||||||
exe ':AirlineRefresh'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
@@ -1,60 +1,13 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:has_fugitive = exists('*fugitive#head')
|
||||||
|
let s:has_lawrencium = exists('*lawrencium#statusline')
|
||||||
|
let s:has_vcscommand = get(g:, 'airline#extensions#branch#use_vcscommand', 0) && exists('*VCSCommandGetStatusLine')
|
||||||
|
|
||||||
" s:vcs_config contains static configuration of VCSes and their status relative
|
if !s:has_fugitive && !s:has_lawrencium && !s:has_vcscommand
|
||||||
" to the active file.
|
finish
|
||||||
" 'branch' - The name of currently active branch. This field is empty iff it
|
endif
|
||||||
" has not been initialized yet or the current file is not in
|
|
||||||
" an active branch.
|
|
||||||
" 'untracked' - Cache of untracked files represented as a dictionary with files
|
|
||||||
" as keys. A file has a not exists symbol set as its value if it
|
|
||||||
" is untracked. A file is present in this dictionary iff its
|
|
||||||
" status is considered up to date.
|
|
||||||
" 'untracked_mark' - used as regexp to test against the output of 'cmd'
|
|
||||||
let s:vcs_config = {
|
|
||||||
\ 'git': {
|
|
||||||
\ 'exe': 'git',
|
|
||||||
\ 'cmd': 'git status --porcelain -- ',
|
|
||||||
\ 'untracked_mark': '??',
|
|
||||||
\ 'exclude': '\.git',
|
|
||||||
\ 'update_branch': 's:update_git_branch',
|
|
||||||
\ 'display_branch': 's:display_git_branch',
|
|
||||||
\ 'branch': '',
|
|
||||||
\ 'untracked': {},
|
|
||||||
\ },
|
|
||||||
\ 'mercurial': {
|
|
||||||
\ 'exe': 'hg',
|
|
||||||
\ 'cmd': 'hg status -u -- ',
|
|
||||||
\ 'untracked_mark': '?',
|
|
||||||
\ 'exclude': '\.hg',
|
|
||||||
\ 'update_branch': 's:update_hg_branch',
|
|
||||||
\ 'display_branch': 's:display_hg_branch',
|
|
||||||
\ 'branch': '',
|
|
||||||
\ 'untracked': {},
|
|
||||||
\ },
|
|
||||||
\}
|
|
||||||
|
|
||||||
" Initializes b:buffer_vcs_config. b:buffer_vcs_config caches the branch and
|
|
||||||
" untracked status of the file in the buffer. Caching those fields is necessary,
|
|
||||||
" because s:vcs_config may be updated asynchronously and s:vcs_config fields may
|
|
||||||
" be invalid during those updates. b:buffer_vcs_config fields are updated
|
|
||||||
" whenever corresponding fields in s:vcs_config are updated or an inconsistency
|
|
||||||
" is detected during update_* operation.
|
|
||||||
"
|
|
||||||
" b:airline_head caches the head string it is empty iff it needs to be
|
|
||||||
" recalculated. b:airline_head is recalculated based on b:buffer_vcs_config.
|
|
||||||
function! s:init_buffer()
|
|
||||||
let b:buffer_vcs_config = {}
|
|
||||||
for vcs in keys(s:vcs_config)
|
|
||||||
let b:buffer_vcs_config[vcs] = {
|
|
||||||
\ 'branch': '',
|
|
||||||
\ 'untracked': '',
|
|
||||||
\ }
|
|
||||||
endfor
|
|
||||||
unlet! b:airline_head
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let s:head_format = get(g:, 'airline#extensions#branch#format', 0)
|
let s:head_format = get(g:, 'airline#extensions#branch#format', 0)
|
||||||
if s:head_format == 1
|
if s:head_format == 1
|
||||||
@@ -75,238 +28,117 @@ else
|
|||||||
endfunction
|
endfunction
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:git_dirs = {}
|
||||||
" Fugitive special revisions. call '0' "staging" ?
|
function! s:get_git_branch(path)
|
||||||
let s:names = {'0': 'index', '1': 'orig', '2':'fetch', '3':'merge'}
|
if has_key(s:git_dirs, a:path)
|
||||||
let s:sha1size = get(g:, 'airline#extensions#branch#sha1_len', 7)
|
return s:git_dirs[a:path]
|
||||||
|
|
||||||
function! s:update_git_branch()
|
|
||||||
if !airline#util#has_fugitive()
|
|
||||||
let s:vcs_config['git'].branch = ''
|
|
||||||
return
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:vcs_config['git'].branch = exists("*FugitiveHead") ?
|
let dir = fugitive#extract_git_dir(a:path)
|
||||||
\ FugitiveHead(s:sha1size) : fugitive#head(s:sha1size)
|
if empty(dir)
|
||||||
if s:vcs_config['git'].branch is# 'master' && winwidth(0) < 81
|
let name = ''
|
||||||
" Shorten default a bit
|
else
|
||||||
let s:vcs_config['git'].branch='mas'
|
try
|
||||||
endif
|
let line = join(readfile(dir . '/HEAD'))
|
||||||
endfunction
|
if strpart(line, 0, 16) == 'ref: refs/heads/'
|
||||||
|
let name = strpart(line, 16)
|
||||||
function! s:display_git_branch()
|
|
||||||
let name = b:buffer_vcs_config['git'].branch
|
|
||||||
try
|
|
||||||
let commit = fugitive#buffer().commit()
|
|
||||||
|
|
||||||
if has_key(s:names, commit)
|
|
||||||
let name = get(s:names, commit)."(".name.")"
|
|
||||||
elseif !empty(commit)
|
|
||||||
let ref = fugitive#repo().git_chomp('describe', '--all', '--exact-match', commit)
|
|
||||||
if ref !~ "^fatal: no tag exactly matches"
|
|
||||||
let name = s:format_name(substitute(ref, '\v\C^%(heads/|remotes/|tags/)=','',''))."(".name.")"
|
|
||||||
else
|
else
|
||||||
let name = matchstr(commit, '.\{'.s:sha1size.'}')."(".name.")"
|
" raw commit hash
|
||||||
|
let name = strpart(line, 0, 7)
|
||||||
endif
|
endif
|
||||||
endif
|
catch
|
||||||
catch
|
let name = ''
|
||||||
endtry
|
endtry
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:git_dirs[a:path] = name
|
||||||
return name
|
return name
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:update_hg_branch()
|
|
||||||
if airline#util#has_lawrencium()
|
|
||||||
let cmd='LC_ALL=C hg qtop'
|
|
||||||
let stl=lawrencium#statusline()
|
|
||||||
let file=expand('%:p')
|
|
||||||
if !empty(stl) && get(b:, 'airline_do_mq_check', 1)
|
|
||||||
if g:airline#init#vim_async
|
|
||||||
noa call airline#async#get_mq_async(cmd, file)
|
|
||||||
elseif has("nvim")
|
|
||||||
noa call airline#async#nvim_get_mq_async(cmd, file)
|
|
||||||
else
|
|
||||||
" remove \n at the end of the command
|
|
||||||
let output=system(cmd)[0:-2]
|
|
||||||
noa call airline#async#mq_output(output, file)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" do not do mq check anymore
|
|
||||||
let b:airline_do_mq_check = 0
|
|
||||||
if exists("b:mq") && !empty(b:mq)
|
|
||||||
if stl is# 'default'
|
|
||||||
" Shorten default a bit
|
|
||||||
let stl='def'
|
|
||||||
endif
|
|
||||||
let stl.=' ['.b:mq.']'
|
|
||||||
endif
|
|
||||||
let s:vcs_config['mercurial'].branch = stl
|
|
||||||
else
|
|
||||||
let s:vcs_config['mercurial'].branch = ''
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:display_hg_branch()
|
|
||||||
return b:buffer_vcs_config['mercurial'].branch
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:update_branch()
|
|
||||||
for vcs in keys(s:vcs_config)
|
|
||||||
call {s:vcs_config[vcs].update_branch}()
|
|
||||||
if b:buffer_vcs_config[vcs].branch != s:vcs_config[vcs].branch
|
|
||||||
let b:buffer_vcs_config[vcs].branch = s:vcs_config[vcs].branch
|
|
||||||
unlet! b:airline_head
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#branch#update_untracked_config(file, vcs)
|
|
||||||
if !has_key(s:vcs_config[a:vcs].untracked, a:file)
|
|
||||||
return
|
|
||||||
elseif s:vcs_config[a:vcs].untracked[a:file] != b:buffer_vcs_config[a:vcs].untracked
|
|
||||||
let b:buffer_vcs_config[a:vcs].untracked = s:vcs_config[a:vcs].untracked[a:file]
|
|
||||||
unlet! b:airline_head
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:update_untracked()
|
|
||||||
let file = expand("%:p")
|
|
||||||
if empty(file) || isdirectory(file)
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
let needs_update = 1
|
|
||||||
for vcs in keys(s:vcs_config)
|
|
||||||
if file =~ s:vcs_config[vcs].exclude
|
|
||||||
" Skip check for files that live in the exclude directory
|
|
||||||
let needs_update = 0
|
|
||||||
endif
|
|
||||||
if has_key(s:vcs_config[vcs].untracked, file)
|
|
||||||
let needs_update = 0
|
|
||||||
call airline#extensions#branch#update_untracked_config(file, vcs)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
if !needs_update
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
for vcs in keys(s:vcs_config)
|
|
||||||
let config = s:vcs_config[vcs]
|
|
||||||
if g:airline#init#vim_async
|
|
||||||
" Note that asynchronous update updates s:vcs_config only, and only
|
|
||||||
" s:update_untracked updates b:buffer_vcs_config. If s:vcs_config is
|
|
||||||
" invalidated again before s:update_untracked is called, then we lose the
|
|
||||||
" result of the previous call, i.e. the head string is not updated. It
|
|
||||||
" doesn't happen often in practice, so we let it be.
|
|
||||||
noa call airline#async#vim_vcs_untracked(config, file)
|
|
||||||
else
|
|
||||||
" nvim async or vim without job-feature
|
|
||||||
noa call airline#async#nvim_vcs_untracked(config, file, vcs)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#branch#head()
|
function! airline#extensions#branch#head()
|
||||||
if !exists('b:buffer_vcs_config')
|
|
||||||
call s:init_buffer()
|
|
||||||
endif
|
|
||||||
|
|
||||||
call s:update_branch()
|
|
||||||
call s:update_untracked()
|
|
||||||
|
|
||||||
if exists('b:airline_head') && !empty(b:airline_head)
|
if exists('b:airline_head') && !empty(b:airline_head)
|
||||||
return b:airline_head
|
return b:airline_head
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:airline_head = ''
|
let b:airline_head = ''
|
||||||
let vcs_priority = get(g:, "airline#extensions#branch#vcs_priority", ["git", "mercurial"])
|
let found_fugitive_head = 0
|
||||||
|
|
||||||
let heads = []
|
if s:has_fugitive && !exists('b:mercurial_dir')
|
||||||
for vcs in vcs_priority
|
let b:airline_head = fugitive#head(7)
|
||||||
if !empty(b:buffer_vcs_config[vcs].branch)
|
let found_fugitive_head = 1
|
||||||
let heads += [vcs]
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
for vcs in heads
|
if empty(b:airline_head) && !exists('b:git_dir')
|
||||||
if !empty(b:airline_head)
|
let b:airline_head = s:get_git_branch(expand("%:p:h"))
|
||||||
let b:airline_head .= ' | '
|
|
||||||
endif
|
endif
|
||||||
if len(heads) > 1
|
endif
|
||||||
let b:airline_head .= s:vcs_config[vcs].exe .':'
|
|
||||||
endif
|
|
||||||
let b:airline_head .= s:format_name({s:vcs_config[vcs].display_branch}())
|
|
||||||
let b:airline_head .= b:buffer_vcs_config[vcs].untracked
|
|
||||||
endfor
|
|
||||||
|
|
||||||
if empty(heads)
|
if empty(b:airline_head)
|
||||||
if airline#util#has_vcscommand()
|
if s:has_lawrencium
|
||||||
noa call VCSCommandEnableBufferSetup()
|
let b:airline_head = lawrencium#statusline()
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if empty(b:airline_head)
|
||||||
|
if s:has_vcscommand
|
||||||
|
call VCSCommandEnableBufferSetup()
|
||||||
if exists('b:VCSCommandBufferInfo')
|
if exists('b:VCSCommandBufferInfo')
|
||||||
let b:airline_head = s:format_name(get(b:VCSCommandBufferInfo, 0, ''))
|
let b:airline_head = get(b:VCSCommandBufferInfo, 0, '')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if empty(heads)
|
if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path()
|
||||||
if airline#util#has_custom_scm()
|
let b:airline_head = ''
|
||||||
try
|
|
||||||
let Fn = function(g:airline#extensions#branch#custom_head)
|
|
||||||
let b:airline_head = Fn()
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let b:airline_head = s:format_name(b:airline_head)
|
||||||
|
|
||||||
if exists("g:airline#extensions#branch#displayed_head_limit")
|
if exists("g:airline#extensions#branch#displayed_head_limit")
|
||||||
let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit
|
let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit
|
||||||
if len(b:airline_head) > w:displayed_head_limit - 1
|
if len(b:airline_head) > w:displayed_head_limit - 1
|
||||||
let b:airline_head = b:airline_head[0:(w:displayed_head_limit - 1)].(&encoding ==? 'utf-8' ? '…' : '.')
|
let b:airline_head = b:airline_head[0:w:displayed_head_limit - 1].'…'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let minwidth = empty(get(b:, 'airline_hunks', '')) ? 14 : 7
|
|
||||||
let b:airline_head = airline#util#shorten(b:airline_head, 120, minwidth)
|
|
||||||
return b:airline_head
|
return b:airline_head
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#branch#get_head()
|
function! airline#extensions#branch#get_head()
|
||||||
let head = airline#extensions#branch#head()
|
let head = airline#extensions#branch#head()
|
||||||
let empty_message = get(g:, 'airline#extensions#branch#empty_message', '')
|
let empty_message = get(g:, 'airline#extensions#branch#empty_message',
|
||||||
|
\ get(g:, 'airline_branch_empty_message', ''))
|
||||||
let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch)
|
let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch)
|
||||||
return empty(head)
|
return empty(head)
|
||||||
\ ? empty_message
|
\ ? empty_message
|
||||||
\ : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head)
|
\ : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:reset_untracked_cache(shellcmdpost)
|
function! s:check_in_path()
|
||||||
" shellcmdpost - whether function was called as a result of ShellCmdPost hook
|
if !exists('b:airline_branch_path')
|
||||||
if !g:airline#init#vim_async && !has('nvim')
|
let root = get(b:, 'git_dir', get(b:, 'mercurial_dir', ''))
|
||||||
if a:shellcmdpost
|
let bufferpath = resolve(fnamemodify(expand('%'), ':p'))
|
||||||
" Clear cache only if there was no error or the script uses an
|
|
||||||
" asynchronous interface. Otherwise, cache clearing would overwrite
|
if !filereadable(root) "not a file
|
||||||
" v:shell_error with a system() call inside get_*_untracked.
|
" if .git is a directory, it's the old submodule format
|
||||||
if v:shell_error
|
if match(root, '\.git$') >= 0
|
||||||
return
|
let root = expand(fnamemodify(root, ':h'))
|
||||||
|
else
|
||||||
|
" else it's the newer format, and we need to guesstimate
|
||||||
|
let pattern = '\.git\(\\\|\/\)modules\(\\\|\/\)'
|
||||||
|
if match(root, pattern) >= 0
|
||||||
|
let root = substitute(root, pattern, '', '')
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
let file = expand("%:p")
|
let b:airline_file_in_root = stridx(bufferpath, root) > -1
|
||||||
for vcs in keys(s:vcs_config)
|
endif
|
||||||
" Dump the value of the cache for the current file. Partially mitigates the
|
return b:airline_file_in_root
|
||||||
" issue of cache invalidation happening before a call to
|
|
||||||
" s:update_untracked()
|
|
||||||
call airline#extensions#branch#update_untracked_config(file, vcs)
|
|
||||||
let s:vcs_config[vcs].untracked = {}
|
|
||||||
endfor
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#branch#init(ext)
|
function! airline#extensions#branch#init(ext)
|
||||||
call airline#parts#define_function('branch', 'airline#extensions#branch#get_head')
|
call airline#parts#define_function('branch', 'airline#extensions#branch#get_head')
|
||||||
|
|
||||||
autocmd ShellCmdPost,CmdwinLeave * unlet! b:airline_head b:airline_do_mq_check
|
autocmd BufReadPost * unlet! b:airline_file_in_root
|
||||||
autocmd User AirlineBeforeRefresh unlet! b:airline_head b:airline_do_mq_check
|
autocmd CursorHold,ShellCmdPost,CmdwinLeave * unlet! b:airline_head
|
||||||
autocmd BufWritePost * call s:reset_untracked_cache(0)
|
|
||||||
autocmd ShellCmdPost * call s:reset_untracked_cache(1)
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists('*bufferline#get_status_string')
|
if !exists('*bufferline#get_status_string')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -20,10 +18,6 @@ function! airline#extensions#bufferline#init(ext)
|
|||||||
let g:bufferline_separator = g:airline_symbols.space
|
let g:bufferline_separator = g:airline_symbols.space
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("+autochdir") && &autochdir == 1
|
call airline#parts#define_raw('file', '%{bufferline#refresh_status()}'.bufferline#get_status_string())
|
||||||
" if 'acd' is set, vim-airline uses the path section, so we need ot redefine this here as well
|
|
||||||
call airline#parts#define_raw('path', '%{bufferline#refresh_status()}'.bufferline#get_status_string())
|
|
||||||
else
|
|
||||||
call airline#parts#define_raw('file', '%{bufferline#refresh_status()}'.bufferline#get_status_string())
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
" MIT License. Copyright (c) 2014-2018 Mathias Andersson et al.
|
" MIT License. Copyright (c) 2014 Mathias Andersson.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists('*CapsLockStatusline')
|
if !exists('*CapsLockStatusline')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -14,3 +11,4 @@ endfunction
|
|||||||
function! airline#extensions#capslock#init(ext)
|
function! airline#extensions#capslock#init(ext)
|
||||||
call airline#parts#define_function('capslock', 'airline#extensions#capslock#status')
|
call airline#parts#define_function('capslock', 'airline#extensions#capslock#status')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'command_t_loaded', 0)
|
if !get(g:, 'command_t_loaded', 0)
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_csv', 0) && !exists(':Table')
|
if !get(g:, 'loaded_csv', 0) && !exists(':Table')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -30,3 +28,4 @@ endfunction
|
|||||||
function! airline#extensions#csv#init(ext)
|
function! airline#extensions#csv#init(ext)
|
||||||
call a:ext.add_statusline_func('airline#extensions#csv#apply')
|
call a:ext.add_statusline_func('airline#extensions#csv#apply')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_ctrlp', 0)
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -79,3 +77,4 @@ function! airline#extensions#ctrlp#init(ext)
|
|||||||
call a:ext.add_statusline_func('airline#extensions#ctrlp#apply')
|
call a:ext.add_statusline_func('airline#extensions#ctrlp#apply')
|
||||||
call a:ext.add_theme_func('airline#extensions#ctrlp#load_theme')
|
call a:ext.add_theme_func('airline#extensions#ctrlp#load_theme')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:spc = g:airline_symbols.space
|
let s:spc = g:airline_symbols.space
|
||||||
let s:padding = s:spc . s:spc . s:spc
|
let s:padding = s:spc . s:spc . s:spc
|
||||||
let s:cs = ctrlspace#context#Configuration().Symbols.CS
|
|
||||||
|
|
||||||
function! airline#extensions#ctrlspace#statusline(...)
|
function! airline#extensions#ctrlspace#statusline(...)
|
||||||
let b = airline#builder#new({ 'active': 1 })
|
let b = airline#builder#new({ 'active': 1 })
|
||||||
call b.add_section('airline_b', s:cs . s:padding . ctrlspace#api#StatuslineModeSegment(s:padding))
|
call b.add_section('airline_a', s:padding . g:ctrlspace_symbols.cs . s:padding)
|
||||||
|
call b.add_section('airline_b', s:padding . ctrlspace#statusline_mode_segment(s:padding))
|
||||||
call b.split()
|
call b.split()
|
||||||
call b.add_section('airline_x', s:spc . ctrlspace#api#StatuslineTabSegment() . s:spc)
|
call b.add_section('airline_x', s:spc . ctrlspace#statusline_tab_segment() . s:spc)
|
||||||
return b.build()
|
return b.build()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#ctrlspace#init(ext)
|
function! airline#extensions#ctrlspace#init(ext)
|
||||||
let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()"
|
let g:ctrlspace_statusline_function = 'airline#extensions#ctrlspace#statusline()'
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,132 +0,0 @@
|
|||||||
" Copyright (C) 2014 Andrea Cedraro <a.cedraro@gmail.com>
|
|
||||||
" Copyright (C) 2017 Eduardo Suarez-Santana <e.suarezsantana@gmail.com>
|
|
||||||
"
|
|
||||||
" 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.
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:is_win = has('win32') || has('win64')
|
|
||||||
let s:is_iTerm = exists('$TERM_PROGRAM') && $TERM_PROGRAM =~# 'iTerm.app'
|
|
||||||
let s:is_AppleTerminal = exists('$TERM_PROGRAM') && $TERM_PROGRAM =~# 'Apple_Terminal'
|
|
||||||
|
|
||||||
let s:is_good = !has('gui_running') && !s:is_win && !s:is_AppleTerminal
|
|
||||||
|
|
||||||
let s:last_mode = ''
|
|
||||||
|
|
||||||
if !exists('g:cursormode_exit_mode')
|
|
||||||
let g:cursormode_exit_mode='n'
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#cursormode#tmux_escape(escape)
|
|
||||||
return '\033Ptmux;'.substitute(a:escape, '\\033', '\\033\\033', 'g').'\033\\'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let s:iTerm_escape_template = '\033]Pl%s\033\\'
|
|
||||||
let s:xterm_escape_template = '\033]12;%s\007'
|
|
||||||
|
|
||||||
function! s:get_mode()
|
|
||||||
return call(get(g:, 'cursormode_mode_func', 'mode'), [])
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#cursormode#set(...)
|
|
||||||
let mode = s:get_mode()
|
|
||||||
if mode !=# s:last_mode
|
|
||||||
let s:last_mode = mode
|
|
||||||
call s:set_cursor_color_for(mode)
|
|
||||||
endif
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:set_cursor_color_for(mode)
|
|
||||||
let mode = a:mode
|
|
||||||
for mode in [a:mode, a:mode.&background]
|
|
||||||
if has_key(s:color_map, mode)
|
|
||||||
try
|
|
||||||
let save_eventignore = &eventignore
|
|
||||||
set eventignore=all
|
|
||||||
let save_shelltemp = &shelltemp
|
|
||||||
set noshelltemp
|
|
||||||
|
|
||||||
silent call system(s:build_command(s:color_map[mode]))
|
|
||||||
return
|
|
||||||
finally
|
|
||||||
let &shelltemp = save_shelltemp
|
|
||||||
let &eventignore = save_eventignore
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:build_command(color)
|
|
||||||
if s:is_iTerm
|
|
||||||
let color = substitute(a:color, '^#', '', '')
|
|
||||||
let escape_template = s:iTerm_escape_template
|
|
||||||
else
|
|
||||||
let color = a:color
|
|
||||||
let escape_template = s:xterm_escape_template
|
|
||||||
endif
|
|
||||||
|
|
||||||
let escape = printf(escape_template, color)
|
|
||||||
if exists('$TMUX')
|
|
||||||
let escape = airline#extensions#cursormode#tmux_escape(escape)
|
|
||||||
endif
|
|
||||||
return "printf '".escape."' > /dev/tty"
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:get_color_map()
|
|
||||||
if exists('g:cursormode_color_map')
|
|
||||||
return g:cursormode_color_map
|
|
||||||
endif
|
|
||||||
|
|
||||||
try
|
|
||||||
let map = g:cursormode#{g:colors_name}#color_map
|
|
||||||
return map
|
|
||||||
catch
|
|
||||||
return {
|
|
||||||
\ "nlight": "#000000",
|
|
||||||
\ "ndark": "#BBBBBB",
|
|
||||||
\ "i": "#0000BB",
|
|
||||||
\ "v": "#FF5555",
|
|
||||||
\ "V": "#BBBB00",
|
|
||||||
\ "\<C-V>": "#BB00BB",
|
|
||||||
\ }
|
|
||||||
endtry
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
augroup airline#extensions#cursormode
|
|
||||||
autocmd!
|
|
||||||
autocmd VimLeave * call s:set_cursor_color_for(g:cursormode_exit_mode)
|
|
||||||
" autocmd VimEnter * call airline#extensions#cursormode#activate()
|
|
||||||
autocmd Colorscheme * call airline#extensions#cursormode#activate()
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
function! airline#extensions#cursormode#activate()
|
|
||||||
let s:color_map = s:get_color_map()
|
|
||||||
call airline#extensions#cursormode#set()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#cursormode#apply(...)
|
|
||||||
let w:airline_section_a = get(w:, 'airline_section_a', g:airline_section_a)
|
|
||||||
let w:airline_section_a .= '%{airline#extensions#cursormode#set()}'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#cursormode#init(ext)
|
|
||||||
let s:color_map = s:get_color_map()
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#cursormode#apply')
|
|
||||||
endfunction
|
|
||||||
@@ -1,20 +1,15 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:section_use_groups = get(g:, 'airline#extensions#default#section_use_groupitems', 1)
|
|
||||||
let s:section_truncate_width = get(g:, 'airline#extensions#default#section_truncate_width', {
|
let s:section_truncate_width = get(g:, 'airline#extensions#default#section_truncate_width', {
|
||||||
\ 'b': 79,
|
\ 'b': 79,
|
||||||
\ 'x': 60,
|
\ 'x': 60,
|
||||||
\ 'y': 88,
|
\ 'y': 88,
|
||||||
\ 'z': 45,
|
\ 'z': 45,
|
||||||
\ 'warning': 80,
|
|
||||||
\ 'error': 80,
|
|
||||||
\ })
|
\ })
|
||||||
let s:layout = get(g:, 'airline#extensions#default#layout', [
|
let s:layout = get(g:, 'airline#extensions#default#layout', [
|
||||||
\ [ 'a', 'b', 'c' ],
|
\ [ 'a', 'b', 'c' ],
|
||||||
\ [ 'x', 'y', 'z', 'warning', 'error' ]
|
\ [ 'x', 'y', 'z', 'warning' ]
|
||||||
\ ])
|
\ ])
|
||||||
|
|
||||||
function! s:get_section(winnr, key, ...)
|
function! s:get_section(winnr, key, ...)
|
||||||
@@ -24,9 +19,6 @@ function! s:get_section(winnr, key, ...)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let spc = g:airline_symbols.space
|
let spc = g:airline_symbols.space
|
||||||
if !exists('g:airline_section_{a:key}')
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
let text = airline#util#getwinvar(a:winnr, 'airline_section_'.a:key, g:airline_section_{a:key})
|
let text = airline#util#getwinvar(a:winnr, 'airline_section_'.a:key, g:airline_section_{a:key})
|
||||||
let [prefix, suffix] = [get(a:000, 0, '%('.spc), get(a:000, 1, spc.'%)')]
|
let [prefix, suffix] = [get(a:000, 0, '%('.spc), get(a:000, 1, spc.'%)')]
|
||||||
return empty(text) ? '' : prefix.text.suffix
|
return empty(text) ? '' : prefix.text.suffix
|
||||||
@@ -34,42 +26,30 @@ endfunction
|
|||||||
|
|
||||||
function! s:build_sections(builder, context, keys)
|
function! s:build_sections(builder, context, keys)
|
||||||
for key in a:keys
|
for key in a:keys
|
||||||
if (key == 'warning' || key == 'error') && !a:context.active
|
if key == 'warning' && !a:context.active
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
call s:add_section(a:builder, a:context, key)
|
call s:add_section(a:builder, a:context, key)
|
||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" There still is a highlighting bug when using groups %(%) in the statusline,
|
if v:version >= 704 || (v:version >= 703 && has('patch81'))
|
||||||
" deactivate it, unless it is fixed (7.4.1511)
|
function s:add_section(builder, context, key)
|
||||||
if s:section_use_groups && (v:version >= 704 || (v:version >= 703 && has('patch81')))
|
|
||||||
function! s:add_section(builder, context, key)
|
|
||||||
let condition = (a:key is# "warning" || a:key is# "error") &&
|
|
||||||
\ (v:version == 704 && !has("patch1511"))
|
|
||||||
" i have no idea why the warning section needs special treatment, but it's
|
" i have no idea why the warning section needs special treatment, but it's
|
||||||
" needed to prevent separators from showing up
|
" needed to prevent separators from showing up
|
||||||
if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
|
if a:key == 'warning'
|
||||||
return
|
|
||||||
endif
|
|
||||||
if condition
|
|
||||||
call a:builder.add_raw('%(')
|
call a:builder.add_raw('%(')
|
||||||
endif
|
endif
|
||||||
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
||||||
if condition
|
if a:key == 'warning'
|
||||||
call a:builder.add_raw('%)')
|
call a:builder.add_raw('%)')
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
else
|
else
|
||||||
" older version don't like the use of %(%)
|
" older version don't like the use of %(%)
|
||||||
function! s:add_section(builder, context, key)
|
function s:add_section(builder, context, key)
|
||||||
if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
if a:key == 'warning'
|
if a:key == 'warning'
|
||||||
call a:builder.add_raw('%#airline_warning#'.s:get_section(a:context.winnr, a:key))
|
call a:builder.add_raw('%#airline_warning#'.s:get_section(a:context.winnr, a:key))
|
||||||
elseif a:key == 'error'
|
|
||||||
call a:builder.add_raw('%#airline_error#'.s:get_section(a:context.winnr, a:key))
|
|
||||||
else
|
else
|
||||||
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
|
||||||
endif
|
endif
|
||||||
@@ -98,3 +78,4 @@ function! airline#extensions#default#apply(builder, context)
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2017-2018 Thomas Dy et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_denite', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Denite does not use vim's built-in modal editing but has a custom prompt
|
|
||||||
" that implements its own insert/normal mode so we have to handle changing the
|
|
||||||
" highlight
|
|
||||||
function! airline#extensions#denite#check_denite_mode(bufnr)
|
|
||||||
if &filetype != 'denite'
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
let mode = split(denite#get_status_mode(), ' ')
|
|
||||||
let mode = tolower(mode[1])
|
|
||||||
if !exists('b:denite_mode_cache') || mode != b:denite_mode_cache
|
|
||||||
call airline#highlighter#highlight([mode], a:bufnr)
|
|
||||||
let b:denite_mode_cache = mode
|
|
||||||
endif
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#denite#apply(...)
|
|
||||||
if &ft == 'denite'
|
|
||||||
let w:airline_skip_empty_sections = 0
|
|
||||||
call a:1.add_section('airline_a', ' Denite %{airline#extensions#denite#check_denite_mode('.a:2['bufnr'].')}')
|
|
||||||
call a:1.add_section('airline_c', ' %{denite#get_status_sources()}')
|
|
||||||
call a:1.split()
|
|
||||||
call a:1.add_section('airline_y', ' %{denite#get_status_path()} ')
|
|
||||||
call a:1.add_section('airline_z', ' %{denite#get_status_linenr()} ')
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#denite#init(ext)
|
|
||||||
call denite#custom#option('_', 'statusline', 0)
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#denite#apply')
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':ProjectCreate')
|
if !exists(':ProjectCreate')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -18,13 +16,7 @@ function! airline#extensions#eclim#creat_line(...)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#eclim#get_warnings()
|
function! airline#extensions#eclim#get_warnings()
|
||||||
" Cache vavlues, so that it isn't called too often
|
|
||||||
if exists("s:eclim_errors") &&
|
|
||||||
\ get(b:, 'airline_changenr', 0) == changenr()
|
|
||||||
return s:eclim_errors
|
|
||||||
endif
|
|
||||||
let eclimList = eclim#display#signs#GetExisting()
|
let eclimList = eclim#display#signs#GetExisting()
|
||||||
let s:eclim_errors = ''
|
|
||||||
|
|
||||||
if !empty(eclimList)
|
if !empty(eclimList)
|
||||||
" Remove any non-eclim signs (see eclim#display#signs#Update)
|
" Remove any non-eclim signs (see eclim#display#signs#Update)
|
||||||
@@ -47,15 +39,15 @@ function! airline#extensions#eclim#get_warnings()
|
|||||||
let errorsNumber = len(eclimList)
|
let errorsNumber = len(eclimList)
|
||||||
let errors = "[Eclim:" . type . " line:".string(errorsLine)." (".string(errorsNumber).")]"
|
let errors = "[Eclim:" . type . " line:".string(errorsLine)." (".string(errorsNumber).")]"
|
||||||
if !exists(':SyntasticCheck') || SyntasticStatuslineFlag() == ''
|
if !exists(':SyntasticCheck') || SyntasticStatuslineFlag() == ''
|
||||||
let s:eclim_errors = errors.(g:airline_symbols.space)
|
return errors.(g:airline_symbols.space)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let b:airline_changenr = changenr()
|
return ''
|
||||||
return s:eclim_errors
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#eclim#init(ext)
|
function! airline#extensions#eclim#init(ext)
|
||||||
call airline#parts#define_function('eclim', 'airline#extensions#eclim#get_warnings')
|
call airline#parts#define_function('eclim', 'airline#extensions#eclim#get_warnings')
|
||||||
call a:ext.add_statusline_func('airline#extensions#eclim#creat_line')
|
call a:ext.add_statusline_func('airline#extensions#eclim#creat_line')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
" we don't actually want this loaded :P
|
" we don't actually want this loaded :P
|
||||||
finish
|
finish
|
||||||
|
|
||||||
@@ -53,3 +51,4 @@ function! airline#extensions#example#get_cats()
|
|||||||
endfor
|
endfor
|
||||||
return cats
|
return cats
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2017-2018 Cimbali et al
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !airline#util#has_fugitive()
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
if exists("+autochdir") && &autochdir == 1
|
|
||||||
let s:fmod = ':p'
|
|
||||||
else
|
|
||||||
let s:fmod = ':.'
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#fugitiveline#bufname()
|
|
||||||
if !exists('b:fugitive_name')
|
|
||||||
let b:fugitive_name = ''
|
|
||||||
try
|
|
||||||
if bufname('%') =~? '^fugitive:' && exists('*FugitiveReal')
|
|
||||||
let b:fugitive_name = FugitiveReal(bufname('%'))
|
|
||||||
elseif exists('b:git_dir')
|
|
||||||
let buffer = fugitive#buffer()
|
|
||||||
if buffer.type('blob')
|
|
||||||
let b:fugitive_name = buffer.repo().translate(buffer.path('/'))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
catch
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
|
|
||||||
if empty(b:fugitive_name)
|
|
||||||
return fnamemodify(bufname('%'), s:fmod)
|
|
||||||
else
|
|
||||||
return fnamemodify(b:fugitive_name, s:fmod)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#fugitiveline#init(ext)
|
|
||||||
if exists("+autochdir") && &autochdir == 1
|
|
||||||
" if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well
|
|
||||||
call airline#parts#define_raw('path', '%<%{airline#extensions#fugitiveline#bufname()}%m')
|
|
||||||
else
|
|
||||||
call airline#parts#define_raw('file', '%<%{airline#extensions#fugitiveline#bufname()}%m')
|
|
||||||
endif
|
|
||||||
autocmd ShellCmdPost,CmdwinLeave * unlet! b:fugitive_name
|
|
||||||
autocmd User AirlineBeforeRefresh unlet! b:fugitive_name
|
|
||||||
endfunction
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2014-2018 Mathias Andersson et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
" Heavily derived from the Gutentags extension
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_grepper', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#grepper#status()
|
|
||||||
let msg = grepper#statusline()
|
|
||||||
return empty(msg) ? '' : 'grepper'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#grepper#init(ext)
|
|
||||||
call airline#parts#define_function('grepper', 'airline#extensions#grepper#status')
|
|
||||||
endfunction
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2014-2018 Mathias Andersson et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_gutentags', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#gutentags#status()
|
|
||||||
let msg = gutentags#statusline()
|
|
||||||
return empty(msg) ? '' : 'Gen. ' . msg
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#gutentags#init(ext)
|
|
||||||
call airline#parts#define_function('gutentags', 'airline#extensions#gutentags#status')
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_signify', 0) && !get(g:, 'loaded_gitgutter', 0) && !get(g:, 'loaded_changes', 0) && !get(g:, 'loaded_quickfixsigns', 0)
|
if !get(g:, 'loaded_signify', 0) && !get(g:, 'loaded_gitgutter', 0) && !get(g:, 'loaded_changes', 0) && !get(g:, 'loaded_quickfixsigns', 0)
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -19,8 +17,7 @@ function! s:get_hunks_signify()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:is_branch_empty()
|
function! s:is_branch_empty()
|
||||||
return exists('*airline#extensions#branch#head') &&
|
return exists('*airline#extensions#branch#head') && empty(airline#extensions#branch#head())
|
||||||
\ empty(get(b:, 'airline_head', ''))
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:get_hunks_gitgutter()
|
function! s:get_hunks_gitgutter()
|
||||||
@@ -35,7 +32,12 @@ function! s:get_hunks_changes()
|
|||||||
return []
|
return []
|
||||||
endif
|
endif
|
||||||
let hunks = changes#GetStats()
|
let hunks = changes#GetStats()
|
||||||
return hunks == [0, 0, 0] ? [] : hunks
|
for i in hunks
|
||||||
|
if i > 0
|
||||||
|
return hunks
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return []
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:get_hunks_empty()
|
function! s:get_hunks_empty()
|
||||||
@@ -43,7 +45,7 @@ function! s:get_hunks_empty()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:get_hunks()
|
function! s:get_hunks()
|
||||||
if !exists('b:source_func') || get(b:, 'source_func', '') is# 's:get_hunks_empty'
|
if !exists('b:source_func')
|
||||||
if get(g:, 'loaded_signify') && sy#buffer_is_active()
|
if get(g:, 'loaded_signify') && sy#buffer_is_active()
|
||||||
let b:source_func = 's:get_hunks_signify'
|
let b:source_func = 's:get_hunks_signify'
|
||||||
elseif exists('*GitGutterGetHunkSummary')
|
elseif exists('*GitGutterGetHunkSummary')
|
||||||
@@ -63,31 +65,19 @@ function! airline#extensions#hunks#get_hunks()
|
|||||||
if !get(w:, 'airline_active', 0)
|
if !get(w:, 'airline_active', 0)
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
" Cache values, so that it isn't called too often
|
|
||||||
if exists("b:airline_hunks") &&
|
|
||||||
\ get(b:, 'airline_changenr', 0) == b:changedtick &&
|
|
||||||
\ winwidth(0) == get(s:, 'airline_winwidth', 0) &&
|
|
||||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_signify' &&
|
|
||||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_gitgutter' &&
|
|
||||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_empty' &&
|
|
||||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_changes'
|
|
||||||
return b:airline_hunks
|
|
||||||
endif
|
|
||||||
let hunks = s:get_hunks()
|
let hunks = s:get_hunks()
|
||||||
let string = ''
|
let string = ''
|
||||||
if !empty(hunks)
|
if !empty(hunks)
|
||||||
for i in [0, 1, 2]
|
for i in [0, 1, 2]
|
||||||
if (s:non_zero_only == 0 && winwidth(0) > 100) || hunks[i] > 0
|
if s:non_zero_only == 0 || hunks[i] > 0
|
||||||
let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i])
|
let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i])
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
let b:airline_hunks = string
|
|
||||||
let b:airline_changenr = b:changedtick
|
|
||||||
let s:airline_winwidth = winwidth(0)
|
|
||||||
return string
|
return string
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#hunks#init(ext)
|
function! airline#extensions#hunks#init(ext)
|
||||||
call airline#parts#define_function('hunks', 'airline#extensions#hunks#get_hunks')
|
call airline#parts#define_function('hunks', 'airline#extensions#hunks#get_hunks')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Doron Behar, C.Brabandt et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !has('keymap')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#keymap#status()
|
|
||||||
if (get(g:, 'airline#extensions#keymap#enabled', 1) && has('keymap'))
|
|
||||||
return printf('%s', (!empty(&keymap) ? (g:airline_symbols.keymap . ' '. &keymap) : ''))
|
|
||||||
else
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#keymap#init(ext)
|
|
||||||
call airline#parts#define_function('keymap', 'airline#extensions#keymap#status')
|
|
||||||
endfunction
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bjorn Neergaard, w0rp, hallettj et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:error_symbol = get(g:, 'airline#extensions#languageclient#error_symbol', 'E:')
|
|
||||||
let s:warning_symbol = get(g:, 'airline#extensions#languageclient#warning_symbol', 'W:')
|
|
||||||
let s:show_line_numbers = get(g:, 'airline#extensions#languageclient#show_line_numbers', 1)
|
|
||||||
|
|
||||||
" Severity codes from the LSP spec
|
|
||||||
let s:severity_error = 1
|
|
||||||
let s:severity_warning = 2
|
|
||||||
let s:severity_info = 3
|
|
||||||
let s:severity_hint = 4
|
|
||||||
|
|
||||||
" After each LanguageClient state change `s:diagnostics` will be populated with
|
|
||||||
" a map from file names to lists of errors, warnings, informational messages,
|
|
||||||
" and hints.
|
|
||||||
let s:diagnostics = {}
|
|
||||||
|
|
||||||
function! s:languageclient_refresh()
|
|
||||||
if get(g:, 'airline_skip_empty_sections', 0)
|
|
||||||
exe ':AirlineRefresh'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:record_diagnostics(state)
|
|
||||||
let result = json_decode(a:state.result)
|
|
||||||
let s:diagnostics = result.diagnostics
|
|
||||||
call s:languageclient_refresh()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:get_diagnostics()
|
|
||||||
call LanguageClient#getState(function("s:record_diagnostics"))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:diagnostics_for_buffer()
|
|
||||||
return get(s:diagnostics, expand('%:p'), [])
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:airline_languageclient_count(cnt, symbol)
|
|
||||||
return a:cnt ? a:symbol. a:cnt : ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:airline_languageclient_get_line_number(type) abort
|
|
||||||
let linenumber_of_first_problem = 0
|
|
||||||
for d in s:diagnostics_for_buffer()
|
|
||||||
if has_key(d, 'severity') && d.severity == a:type
|
|
||||||
let linenumber_of_first_problem = d.range.start.line
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
if linenumber_of_first_problem == 0
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
let open_lnum_symbol = get(g:, 'airline#extensions#languageclient#open_lnum_symbol', '(L')
|
|
||||||
let close_lnum_symbol = get(g:, 'airline#extensions#languageclient#close_lnum_symbol', ')')
|
|
||||||
|
|
||||||
return open_lnum_symbol . linenumber_of_first_problem . close_lnum_symbol
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#languageclient#get(type)
|
|
||||||
let is_err = a:type == s:severity_error
|
|
||||||
let symbol = is_err ? s:error_symbol : s:warning_symbol
|
|
||||||
|
|
||||||
let cnt = 0
|
|
||||||
for d in s:diagnostics_for_buffer()
|
|
||||||
if has_key(d, 'severity') && d.severity == a:type
|
|
||||||
let cnt += 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
if cnt == 0
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:show_line_numbers == 1
|
|
||||||
return s:airline_languageclient_count(cnt, symbol) . <sid>airline_languageclient_get_line_number(a:type)
|
|
||||||
else
|
|
||||||
return s:airline_languageclient_count(cnt, symbol)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#languageclient#get_warning()
|
|
||||||
return airline#extensions#languageclient#get(s:severity_warning)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#languageclient#get_error()
|
|
||||||
return airline#extensions#languageclient#get(s:severity_error)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#languageclient#init(ext)
|
|
||||||
call airline#parts#define_function('languageclient_error_count', 'airline#extensions#languageclient#get_error')
|
|
||||||
call airline#parts#define_function('languageclient_warning_count', 'airline#extensions#languageclient#get_warning')
|
|
||||||
augroup airline_languageclient
|
|
||||||
autocmd!
|
|
||||||
autocmd User LanguageClientDiagnosticsChanged call <sid>get_diagnostics()
|
|
||||||
augroup END
|
|
||||||
endfunction
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2018 mox et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:enabled = get(g:, 'airline#extensions#localsearch#enabled', 1)
|
|
||||||
if !get(g:, 'loaded_localsearch', 0) || !s:enabled || get(g:, 'airline#extensions#localsearch#loaded', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let g:airline#extensions#localsearch#loaded = 001
|
|
||||||
|
|
||||||
let s:spc = g:airline_symbols.space
|
|
||||||
|
|
||||||
function! airline#extensions#localsearch#load_theme(palette)
|
|
||||||
call airline#highlighter#exec('localsearch_dark', [ '#ffffff' , '#000000' , 15 , 1 , ''])
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! airline#extensions#localsearch#init(ext)
|
|
||||||
call a:ext.add_theme_func('airline#extensions#localsearch#load_theme')
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#localsearch#apply')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! airline#extensions#localsearch#apply(...)
|
|
||||||
" first variable is the statusline builder
|
|
||||||
let builder = a:1
|
|
||||||
|
|
||||||
""""" WARNING: the API for the builder is not finalized and may change
|
|
||||||
if exists('#localsearch#WinEnter') " If localsearch mode is enabled
|
|
||||||
call builder.add_section('localsearch_dark', s:spc.airline#section#create('LS').s:spc)
|
|
||||||
endif
|
|
||||||
return 0
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
if !exists(':Neomake')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:error_symbol = get(g:, 'airline#extensions#neomake#error_symbol', 'E:')
|
|
||||||
let s:warning_symbol = get(g:, 'airline#extensions#neomake#warning_symbol', 'W:')
|
|
||||||
|
|
||||||
function! s:get_counts()
|
|
||||||
let l:counts = neomake#statusline#LoclistCounts()
|
|
||||||
|
|
||||||
if empty(l:counts)
|
|
||||||
return neomake#statusline#QflistCounts()
|
|
||||||
else
|
|
||||||
return l:counts
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#neomake#get_warnings()
|
|
||||||
let counts = s:get_counts()
|
|
||||||
let warnings = get(counts, 'W', 0)
|
|
||||||
return warnings ? s:warning_symbol.warnings : ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#neomake#get_errors()
|
|
||||||
let counts = s:get_counts()
|
|
||||||
let errors = get(counts, 'E', 0)
|
|
||||||
return errors ? s:error_symbol.errors : ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#neomake#init(ext)
|
|
||||||
call airline#parts#define_function('neomake_warning_count', 'airline#extensions#neomake#get_warnings')
|
|
||||||
call airline#parts#define_function('neomake_error_count', 'airline#extensions#neomake#get_errors')
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':NetrwSettings')
|
if !exists(':NetrwSettings')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -29,6 +27,6 @@ endfunction
|
|||||||
|
|
||||||
|
|
||||||
function! airline#extensions#netrw#sortstring()
|
function! airline#extensions#netrw#sortstring()
|
||||||
let order = (get(g:, 'netrw_sort_direction', 'n') =~ 'n') ? '+' : '-'
|
let order = (g:netrw_sort_direction =~ 'n') ? '+' : '-'
|
||||||
return g:netrw_sort_by . (g:airline_symbols.space) . '[' . order . ']'
|
return g:netrw_sort_by . (g:airline_symbols.space) . '[' . order . ']'
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_nrrw_rgn', 0)
|
if !get(g:, 'loaded_nrrw_rgn', 0)
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists('*ObsessionStatus')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:spc = g:airline_symbols.space
|
|
||||||
|
|
||||||
if !exists('g:airline#extensions#obsession#indicator_text')
|
|
||||||
let g:airline#extensions#obsession#indicator_text = '$'
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#obsession#init(ext)
|
|
||||||
call airline#parts#define_function('obsession', 'airline#extensions#obsession#get_status')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#obsession#get_status()
|
|
||||||
return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), '')
|
|
||||||
endfunction
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! airline#extensions#po#shorten()
|
|
||||||
" Format and shorte the output of msgfmt
|
|
||||||
let b:airline_po_stats = substitute(get(b:, 'airline_po_stats', ''), ' \(message\|translation\)s*\.*', '', 'g')
|
|
||||||
let b:airline_po_stats = substitute(b:airline_po_stats, ', ', '/', 'g')
|
|
||||||
if exists("g:airline#extensions#po#displayed_limit")
|
|
||||||
let w:displayed_po_limit = g:airline#extensions#po#displayed_limit
|
|
||||||
if len(b:airline_po_stats) > w:displayed_po_limit - 1
|
|
||||||
let b:airline_po_stats = b:airline_po_stats[0:(w:displayed_po_limit - 2)].(&encoding==?'utf-8' ? '…' : '.'). ']'
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if strlen(get(b:, 'airline_po_stats', '')) >= 30 && winwidth(0) < 150
|
|
||||||
let fuzzy = ''
|
|
||||||
let untranslated = ''
|
|
||||||
let messages = ''
|
|
||||||
" Shorten [120 translated, 50 fuzzy, 4 untranslated] to [120T/50F/4U]
|
|
||||||
if b:airline_po_stats =~ 'fuzzy'
|
|
||||||
let fuzzy = substitute(b:airline_po_stats, '.*\(\d\+\) fuzzy.*', '\1F', '')
|
|
||||||
endif
|
|
||||||
if b:airline_po_stats =~ 'untranslated'
|
|
||||||
let untranslated = substitute(b:airline_po_stats, '.*\(\d\+\) untranslated.*', '\1U', '')
|
|
||||||
endif
|
|
||||||
let messages = substitute(b:airline_po_stats, '\(\d\+\) translated.*', '\1T', '')
|
|
||||||
let b:airline_po_stats = printf('%s%s%s', fuzzy, (empty(fuzzy) || empty(untranslated) ? '' : '/'), untranslated)
|
|
||||||
if strlen(b:airline_po_stats) < 8
|
|
||||||
let b:airline_po_stats = messages. (!empty(b:airline_po_stats) ? '/':''). b:airline_po_stats
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
let b:airline_po_stats = '['.b:airline_po_stats. ']'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#po#on_winenter()
|
|
||||||
" only reset cache, if the window size changed
|
|
||||||
if get(b:, 'airline_winwidth', 0) != winwidth(0)
|
|
||||||
let b:airline_winwidth = winwidth(0)
|
|
||||||
" needs re-formatting
|
|
||||||
unlet! b:airline_po_stats
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#po#apply(...)
|
|
||||||
if &ft ==# 'po'
|
|
||||||
call airline#extensions#prepend_to_section('z', '%{airline#extensions#po#stats()}')
|
|
||||||
" Also reset the cache variable, if a window has been split, e.g. the winwidth changed
|
|
||||||
autocmd airline BufWritePost * unlet! b:airline_po_stats
|
|
||||||
autocmd airline WinEnter * call airline#extensions#po#on_winenter()
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#po#stats()
|
|
||||||
if exists('b:airline_po_stats') && !empty(b:airline_po_stats)
|
|
||||||
return b:airline_po_stats
|
|
||||||
endif
|
|
||||||
|
|
||||||
let cmd = 'msgfmt --statistics -o /dev/null -- '
|
|
||||||
if g:airline#init#vim_async
|
|
||||||
call airline#async#get_msgfmt_stat(cmd, expand('%:p'))
|
|
||||||
elseif has("nvim")
|
|
||||||
call airline#async#nvim_get_msgfmt_stat(cmd, expand('%:p'))
|
|
||||||
else
|
|
||||||
let airline_po_stats = system(cmd. shellescape(expand('%:p')))
|
|
||||||
if v:shell_error
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
try
|
|
||||||
let b:airline_po_stats = split(airline_po_stats, '\n')[0]
|
|
||||||
catch
|
|
||||||
let b:airline_po_stats = ''
|
|
||||||
endtry
|
|
||||||
call airline#extensions#po#shorten()
|
|
||||||
endif
|
|
||||||
return get(b:, 'airline_po_stats', '')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#po#init(ext)
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#po#apply')
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':PromptlineSnapshot')
|
if !exists(':PromptlineSnapshot')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,19 +1,12 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let g:airline#extensions#quickfix#quickfix_text = 'Quickfix'
|
||||||
|
let g:airline#extensions#quickfix#location_text = 'Location'
|
||||||
if !exists('g:airline#extensions#quickfix#quickfix_text')
|
|
||||||
let g:airline#extensions#quickfix#quickfix_text = 'Quickfix'
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !exists('g:airline#extensions#quickfix#location_text')
|
|
||||||
let g:airline#extensions#quickfix#location_text = 'Location'
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#quickfix#apply(...)
|
function! airline#extensions#quickfix#apply(...)
|
||||||
if &buftype == 'quickfix'
|
if &buftype == 'quickfix'
|
||||||
let w:airline_section_a = airline#extensions#quickfix#get_type()
|
let w:airline_section_a = s:get_text()
|
||||||
let w:airline_section_b = '%{get(w:, "quickfix_title", "")}'
|
let w:airline_section_b = '%{get(w:, "quickfix_title", "")}'
|
||||||
let w:airline_section_c = ''
|
let w:airline_section_c = ''
|
||||||
let w:airline_section_x = ''
|
let w:airline_section_x = ''
|
||||||
@@ -22,24 +15,9 @@ endfunction
|
|||||||
|
|
||||||
function! airline#extensions#quickfix#init(ext)
|
function! airline#extensions#quickfix#init(ext)
|
||||||
call a:ext.add_statusline_func('airline#extensions#quickfix#apply')
|
call a:ext.add_statusline_func('airline#extensions#quickfix#apply')
|
||||||
call a:ext.add_inactive_statusline_func('airline#extensions#quickfix#inactive_qf_window')
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#quickfix#inactive_qf_window(...)
|
function! s:get_text()
|
||||||
if getbufvar(a:2.bufnr, '&filetype') is# 'qf' && !empty(airline#util#getwinvar(a:2.winnr, 'quickfix_title', ''))
|
|
||||||
call setwinvar(a:2.winnr, 'airline_section_c', '[%{get(w:, "quickfix_title", "")}] %f %m')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#quickfix#get_type()
|
|
||||||
if exists("*win_getid") && exists("*getwininfo")
|
|
||||||
let dict = getwininfo(win_getid())
|
|
||||||
if len(dict) > 0 && get(dict[0], 'quickfix', 0) && !get(dict[0], 'loclist', 0)
|
|
||||||
return g:airline#extensions#quickfix#quickfix_text
|
|
||||||
elseif len(dict) > 0 && get(dict[0], 'quickfix', 0) && get(dict[0], 'loclist', 0)
|
|
||||||
return g:airline#extensions#quickfix#location_text
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
redir => buffers
|
redir => buffers
|
||||||
silent ls
|
silent ls
|
||||||
redir END
|
redir END
|
||||||
@@ -56,3 +34,4 @@ function! airline#extensions#quickfix#get_type()
|
|||||||
endfor
|
endfor
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,19 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':SyntasticCheck')
|
if !exists(':SyntasticCheck')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:error_symbol = get(g:, 'airline#extensions#syntastic#error_symbol', 'E:')
|
function! airline#extensions#syntastic#get_warnings()
|
||||||
let s:warning_symbol = get(g:, 'airline#extensions#syntastic#warning_symbol', 'W:')
|
let errors = SyntasticStatuslineFlag()
|
||||||
|
if strlen(errors) > 0
|
||||||
function! airline#extensions#syntastic#get_warning()
|
return errors.(g:airline_symbols.space)
|
||||||
return airline#extensions#syntastic#get('warning')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#syntastic#get_error()
|
|
||||||
return airline#extensions#syntastic#get('error')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#syntastic#get(type)
|
|
||||||
let _backup = get(g:, 'syntastic_stl_format', '')
|
|
||||||
let is_err = (a:type is# 'error')
|
|
||||||
if is_err
|
|
||||||
let g:syntastic_stl_format = get(g:, 'airline#extensions#syntastic#stl_format_err', '%E{[%e(#%fe)]}')
|
|
||||||
else
|
|
||||||
let g:syntastic_stl_format = get(g:, 'airline#extensions#syntastic#stl_format_warn', '%W{[%w(#%fw)]}')
|
|
||||||
endif
|
|
||||||
let cnt = SyntasticStatuslineFlag()
|
|
||||||
if !empty(_backup)
|
|
||||||
let g:syntastic_stl_format = _backup
|
|
||||||
endif
|
|
||||||
if empty(cnt)
|
|
||||||
return ''
|
|
||||||
else
|
|
||||||
return (is_err ? s:error_symbol : s:warning_symbol).cnt
|
|
||||||
endif
|
endif
|
||||||
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#syntastic#init(ext)
|
function! airline#extensions#syntastic#init(ext)
|
||||||
call airline#parts#define_function('syntastic-warn', 'airline#extensions#syntastic#get_warning')
|
call airline#parts#define_function('syntastic', 'airline#extensions#syntastic#get_warnings')
|
||||||
call airline#parts#define_function('syntastic-err', 'airline#extensions#syntastic#get_error')
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
|
||||||
|
let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||||
|
let s:show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
||||||
|
let s:ignore_bufadd_pat = get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree')
|
||||||
|
let s:combined = get(g:, 'airline#extensions#tabline#combined', 1)
|
||||||
|
|
||||||
let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0)
|
let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0)
|
||||||
if s:taboo
|
if s:taboo
|
||||||
let g:taboo_tabline = 0
|
let g:taboo_tabline = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:ctrlspace = get(g:, 'CtrlSpaceLoaded', 0)
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#init(ext)
|
function! airline#extensions#tabline#init(ext)
|
||||||
if has('gui_running')
|
if has('gui_running')
|
||||||
set guioptions-=e
|
set guioptions-=e
|
||||||
@@ -27,108 +28,71 @@ function! s:toggle_off()
|
|||||||
call airline#extensions#tabline#autoshow#off()
|
call airline#extensions#tabline#autoshow#off()
|
||||||
call airline#extensions#tabline#tabs#off()
|
call airline#extensions#tabline#tabs#off()
|
||||||
call airline#extensions#tabline#buffers#off()
|
call airline#extensions#tabline#buffers#off()
|
||||||
if s:ctrlspace
|
|
||||||
call airline#extensions#tabline#ctrlspace#off()
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:toggle_on()
|
function! s:toggle_on()
|
||||||
call airline#extensions#tabline#autoshow#on()
|
call airline#extensions#tabline#autoshow#on()
|
||||||
call airline#extensions#tabline#tabs#on()
|
call airline#extensions#tabline#tabs#on()
|
||||||
call airline#extensions#tabline#buffers#on()
|
call airline#extensions#tabline#buffers#on()
|
||||||
if s:ctrlspace
|
|
||||||
call airline#extensions#tabline#ctrlspace#on()
|
|
||||||
endif
|
|
||||||
|
|
||||||
set tabline=%!airline#extensions#tabline#get()
|
set tabline=%!airline#extensions#tabline#get()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:update_tabline()
|
function! s:update_tabline()
|
||||||
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
let match = expand('<afile>')
|
let match = expand('<afile>')
|
||||||
if pumvisible()
|
if pumvisible()
|
||||||
return
|
return
|
||||||
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||||
return
|
return
|
||||||
" return, if buffer matches ignore pattern or is directory (netrw)
|
" return, if buffer matches ignore pattern or is directory (netrw)
|
||||||
elseif empty(match) || airline#util#ignore_buf(match)
|
elseif empty(match)
|
||||||
|
\ || match(match, s:ignore_bufadd_pat) > -1
|
||||||
\ || isdirectory(expand("<afile>"))
|
\ || isdirectory(expand("<afile>"))
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
call airline#util#doautocmd('BufMRUChange')
|
" force re-evaluation of tabline setting
|
||||||
" sometimes, the tabline is not correctly updated see #1580
|
set mod!
|
||||||
" so force redraw here
|
redraw
|
||||||
let &tabline = &tabline
|
set mod!
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#load_theme(palette)
|
function! airline#extensions#tabline#load_theme(palette)
|
||||||
if pumvisible()
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
let colors = get(a:palette, 'tabline', {})
|
let colors = get(a:palette, 'tabline', {})
|
||||||
let tablabel = get(colors, 'airline_tablabel', a:palette.normal.airline_b)
|
let l:tab = get(colors, 'airline_tab', a:palette.normal.airline_b)
|
||||||
" Theme for tabs on the left
|
let l:tabsel = get(colors, 'airline_tabsel', a:palette.normal.airline_a)
|
||||||
let tab = get(colors, 'airline_tab', a:palette.normal.airline_b)
|
let l:tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a)
|
||||||
let tabsel = get(colors, 'airline_tabsel', a:palette.normal.airline_a)
|
let l:tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c)
|
||||||
let tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a)
|
let l:tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a)
|
||||||
let tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c)
|
|
||||||
let tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a)
|
|
||||||
let tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c)
|
|
||||||
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
|
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
|
||||||
let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c)
|
let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c)
|
||||||
else
|
else
|
||||||
"Fall back to normal airline_c if modified airline_c isn't present
|
"Fall back to normal airline_c if modified airline_c isn't present
|
||||||
let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c)
|
let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c)
|
||||||
endif
|
endif
|
||||||
call airline#highlighter#exec('airline_tablabel', tablabel)
|
|
||||||
call airline#highlighter#exec('airline_tab', tab)
|
|
||||||
call airline#highlighter#exec('airline_tabsel', tabsel)
|
|
||||||
call airline#highlighter#exec('airline_tabtype', tabtype)
|
|
||||||
call airline#highlighter#exec('airline_tabfill', tabfill)
|
|
||||||
call airline#highlighter#exec('airline_tabmod', tabmod)
|
|
||||||
call airline#highlighter#exec('airline_tabmod_unsel', tabmodu)
|
|
||||||
call airline#highlighter#exec('airline_tabhid', tabhid)
|
|
||||||
|
|
||||||
" Theme for tabs on the right
|
let l:tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c)
|
||||||
let tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a)
|
call airline#highlighter#exec('airline_tab', l:tab)
|
||||||
let tab_right = get(colors, 'airline_tab_right', a:palette.inactive.airline_c)
|
call airline#highlighter#exec('airline_tabsel', l:tabsel)
|
||||||
let tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a)
|
call airline#highlighter#exec('airline_tabtype', l:tabtype)
|
||||||
let tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c)
|
call airline#highlighter#exec('airline_tabfill', l:tabfill)
|
||||||
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
|
call airline#highlighter#exec('airline_tabmod', l:tabmod)
|
||||||
let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal_modified.airline_c)
|
call airline#highlighter#exec('airline_tabmod_unsel', l:tabmodu)
|
||||||
else
|
call airline#highlighter#exec('airline_tabhid', l:tabhid)
|
||||||
"Fall back to normal airline_c if modified airline_c isn't present
|
|
||||||
let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c)
|
|
||||||
endif
|
|
||||||
call airline#highlighter#exec('airline_tab_right', tab_right)
|
|
||||||
call airline#highlighter#exec('airline_tabsel_right', tabsel_right)
|
|
||||||
call airline#highlighter#exec('airline_tabmod_right', tabmod_right)
|
|
||||||
call airline#highlighter#exec('airline_tabhid_right', tabhid_right)
|
|
||||||
call airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right)
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:current_tabcnt = -1
|
let s:current_tabcnt = -1
|
||||||
|
|
||||||
function! airline#extensions#tabline#get()
|
function! airline#extensions#tabline#get()
|
||||||
let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
|
||||||
let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
|
||||||
|
|
||||||
let curtabcnt = tabpagenr('$')
|
let curtabcnt = tabpagenr('$')
|
||||||
if curtabcnt != s:current_tabcnt
|
if curtabcnt != s:current_tabcnt
|
||||||
let s:current_tabcnt = curtabcnt
|
let s:current_tabcnt = curtabcnt
|
||||||
call airline#extensions#tabline#tabs#invalidate()
|
call airline#extensions#tabline#tabs#invalidate()
|
||||||
call airline#extensions#tabline#buffers#invalidate()
|
call airline#extensions#tabline#buffers#invalidate()
|
||||||
call airline#extensions#tabline#ctrlspace#invalidate()
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists('#airline#BufAdd#*')
|
if !exists('#airline#BufAdd#*')
|
||||||
autocmd airline BufAdd * call <sid>update_tabline()
|
autocmd airline BufAdd * call <sid>update_tabline()
|
||||||
endif
|
endif
|
||||||
if s:ctrlspace
|
if s:show_buffers && curtabcnt == 1 || !s:show_tabs
|
||||||
return airline#extensions#tabline#ctrlspace#get()
|
|
||||||
elseif show_buffers && curtabcnt == 1 || !show_tabs
|
|
||||||
return airline#extensions#tabline#buffers#get()
|
return airline#extensions#tabline#buffers#get()
|
||||||
else
|
else
|
||||||
return airline#extensions#tabline#tabs#get()
|
return airline#extensions#tabline#tabs#get()
|
||||||
@@ -141,32 +105,22 @@ function! airline#extensions#tabline#title(n)
|
|||||||
let title = TabooTabTitle(a:n)
|
let title = TabooTabTitle(a:n)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if empty(title) && exists('*gettabvar')
|
|
||||||
let title = gettabvar(a:n, 'title')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if empty(title)
|
if empty(title)
|
||||||
let buflist = tabpagebuflist(a:n)
|
let buflist = tabpagebuflist(a:n)
|
||||||
let winnr = tabpagewinnr(a:n)
|
let winnr = tabpagewinnr(a:n)
|
||||||
let all_buffers = airline#extensions#tabline#buflist#list()
|
return airline#extensions#tabline#get_buffer_name(buflist[winnr - 1])
|
||||||
return airline#extensions#tabline#get_buffer_name(
|
|
||||||
\ buflist[winnr - 1],
|
|
||||||
\ filter(buflist, 'index(all_buffers, v:val) != -1'))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return title
|
return title
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#get_buffer_name(nr, ...)
|
function! airline#extensions#tabline#get_buffer_name(nr)
|
||||||
let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list()
|
return airline#extensions#tabline#formatters#{s:formatter}#format(a:nr, airline#extensions#tabline#buflist#list())
|
||||||
let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
|
|
||||||
return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers)
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#new_builder()
|
function! airline#extensions#tabline#new_builder()
|
||||||
let builder_context = {
|
let builder_context = {
|
||||||
\ 'active' : 1,
|
\ 'active' : 1,
|
||||||
\ 'tabline' : 1,
|
|
||||||
\ 'right_sep' : get(g:, 'airline#extensions#tabline#right_sep' , g:airline_right_sep),
|
\ 'right_sep' : get(g:, 'airline#extensions#tabline#right_sep' , g:airline_right_sep),
|
||||||
\ 'right_alt_sep' : get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep),
|
\ 'right_alt_sep' : get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep),
|
||||||
\ }
|
\ }
|
||||||
@@ -178,7 +132,7 @@ function! airline#extensions#tabline#new_builder()
|
|||||||
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|')
|
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return airline#extensions#tabline#builder#new(builder_context)
|
return airline#builder#new(builder_context)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
||||||
@@ -189,6 +143,7 @@ function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
|||||||
else
|
else
|
||||||
let group = 'airline_tabsel'
|
let group = 'airline_tabsel'
|
||||||
endif
|
endif
|
||||||
|
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
|
||||||
else
|
else
|
||||||
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
||||||
let group = 'airline_tabmod_unsel'
|
let group = 'airline_tabmod_unsel'
|
||||||
@@ -200,10 +155,3 @@ function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
|||||||
endif
|
endif
|
||||||
return group
|
return group
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#add_label(dict, type)
|
|
||||||
if get(g:, 'airline#extensions#tabline#show_tab_type', 1)
|
|
||||||
call a:dict.add_section_spaced('airline_tablabel',
|
|
||||||
\ get(g:, 'airline#extensions#tabline#'.a:type.'_label', a:type))
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||||
let s:buf_min_count = get(g:, 'airline#extensions#tabline#buffer_min_count', 0)
|
let s:buf_min_count = get(g:, 'airline#extensions#tabline#buffer_min_count', 0)
|
||||||
let s:tab_min_count = get(g:, 'airline#extensions#tabline#tab_min_count', 0)
|
let s:tab_min_count = get(g:, 'airline#extensions#tabline#tab_min_count', 0)
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
scriptencoding utf-8
|
||||||
|
|
||||||
|
let s:buffer_idx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0)
|
||||||
|
let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1)
|
||||||
let s:spc = g:airline_symbols.space
|
let s:spc = g:airline_symbols.space
|
||||||
|
|
||||||
let s:current_bufnr = -1
|
let s:current_bufnr = -1
|
||||||
@@ -10,7 +12,8 @@ let s:current_modified = 0
|
|||||||
let s:current_tabline = ''
|
let s:current_tabline = ''
|
||||||
let s:current_visible_buffers = []
|
let s:current_visible_buffers = []
|
||||||
|
|
||||||
let s:number_map = {
|
let s:number_map = &encoding == 'utf-8'
|
||||||
|
\ ? {
|
||||||
\ '0': '⁰',
|
\ '0': '⁰',
|
||||||
\ '1': '¹',
|
\ '1': '¹',
|
||||||
\ '2': '²',
|
\ '2': '²',
|
||||||
@@ -22,8 +25,6 @@ let s:number_map = {
|
|||||||
\ '8': '⁸',
|
\ '8': '⁸',
|
||||||
\ '9': '⁹'
|
\ '9': '⁹'
|
||||||
\ }
|
\ }
|
||||||
let s:number_map = &encoding == 'utf-8'
|
|
||||||
\ ? get(g:, 'airline#extensions#tabline#buffer_idx_format', s:number_map)
|
|
||||||
\ : {}
|
\ : {}
|
||||||
|
|
||||||
function! airline#extensions#tabline#buffers#off()
|
function! airline#extensions#tabline#buffers#off()
|
||||||
@@ -35,8 +36,7 @@ endfunction
|
|||||||
function! airline#extensions#tabline#buffers#on()
|
function! airline#extensions#tabline#buffers#on()
|
||||||
augroup airline_tabline_buffers
|
augroup airline_tabline_buffers
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd BufDelete * call airline#extensions#tabline#buflist#clean()
|
autocmd BufDelete * call airline#extensions#tabline#buffers#invalidate()
|
||||||
autocmd User BufMRUChange call airline#extensions#tabline#buflist#clean()
|
|
||||||
augroup END
|
augroup END
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -45,118 +45,104 @@ function! airline#extensions#tabline#buffers#invalidate()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#buffers#get()
|
function! airline#extensions#tabline#buffers#get()
|
||||||
try
|
call <sid>map_keys()
|
||||||
call <sid>map_keys()
|
|
||||||
catch
|
|
||||||
" no-op
|
|
||||||
endtry
|
|
||||||
let cur = bufnr('%')
|
let cur = bufnr('%')
|
||||||
if cur == s:current_bufnr && &columns == s:column_width
|
if cur == s:current_bufnr
|
||||||
if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
|
if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
|
||||||
return s:current_tabline
|
return s:current_tabline
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let l:index = 1
|
||||||
let b = airline#extensions#tabline#new_builder()
|
let b = airline#extensions#tabline#new_builder()
|
||||||
let tab_bufs = tabpagebuflist(tabpagenr())
|
let tab_bufs = tabpagebuflist(tabpagenr())
|
||||||
let show_buf_label_first = 0
|
for nr in s:get_visible_buffers()
|
||||||
|
if nr < 0
|
||||||
if get(g:, 'airline#extensions#tabline#buf_label_first', 0)
|
call b.add_raw('%#airline_tabhid#...')
|
||||||
let show_buf_label_first = 1
|
continue
|
||||||
endif
|
|
||||||
if show_buf_label_first
|
|
||||||
call airline#extensions#tabline#add_label(b, 'buffers')
|
|
||||||
endif
|
|
||||||
|
|
||||||
let b.tab_bufs = tabpagebuflist(tabpagenr())
|
|
||||||
|
|
||||||
let b.overflow_group = 'airline_tabhid'
|
|
||||||
let b.buffers = airline#extensions#tabline#buflist#list()
|
|
||||||
if get(g:, 'airline#extensions#tabline#current_first', 0)
|
|
||||||
if index(b.buffers, cur) > -1
|
|
||||||
call remove(b.buffers, index(b.buffers, cur))
|
|
||||||
endif
|
|
||||||
let b.buffers = [cur] + b.buffers
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! b.get_group(i) dict
|
|
||||||
let bufnum = get(self.buffers, a:i, -1)
|
|
||||||
if bufnum == -1
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
let group = airline#extensions#tabline#group_of_bufnr(self.tab_bufs, bufnum)
|
|
||||||
if bufnum == bufnr('%')
|
|
||||||
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
|
|
||||||
endif
|
|
||||||
return group
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if has("tablineat")
|
|
||||||
function! b.get_pretitle(i) dict
|
|
||||||
let bufnum = get(self.buffers, a:i, -1)
|
|
||||||
return '%'.bufnum.'@airline#extensions#tabline#buffers#clickbuf@'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! b.get_posttitle(i) dict
|
|
||||||
return '%X'
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! b.get_title(i) dict
|
|
||||||
let bufnum = get(self.buffers, a:i, -1)
|
|
||||||
let group = self.get_group(a:i)
|
|
||||||
let pgroup = self.get_group(a:i - 1)
|
|
||||||
" always add a space when powerline_fonts are used
|
|
||||||
" or for the very first item
|
|
||||||
if get(g:, 'airline_powerline_fonts', 0) || a:i == 0
|
|
||||||
let space = s:spc
|
|
||||||
else
|
|
||||||
let space= (pgroup == group ? s:spc : '')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0)
|
let group = airline#extensions#tabline#group_of_bufnr(tab_bufs, nr)
|
||||||
|
if s:buffer_idx_mode
|
||||||
if len(s:number_map) > 0
|
if len(s:number_map) > 0
|
||||||
return space. get(s:number_map, a:i+1, '') . '%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)' . s:spc
|
call b.add_section(group, s:spc . get(s:number_map, l:index, '') . '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)' . s:spc)
|
||||||
else
|
else
|
||||||
return '['.(a:i+1).s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)'.']'
|
call b.add_section(group, '['.l:index.s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.']')
|
||||||
endif
|
endif
|
||||||
|
let l:index = l:index + 1
|
||||||
else
|
else
|
||||||
return space.'%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)'.s:spc
|
call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfor
|
||||||
|
|
||||||
let current_buffer = max([index(b.buffers, cur), 0])
|
|
||||||
let last_buffer = len(b.buffers) - 1
|
|
||||||
call b.insert_titles(current_buffer, 0, last_buffer)
|
|
||||||
|
|
||||||
call b.add_section('airline_tabfill', '')
|
call b.add_section('airline_tabfill', '')
|
||||||
call b.split()
|
call b.split()
|
||||||
call b.add_section('airline_tabfill', '')
|
call b.add_section('airline_tabfill', '')
|
||||||
if !show_buf_label_first
|
if s:show_tab_type
|
||||||
call airline#extensions#tabline#add_label(b, 'buffers')
|
call b.add_section('airline_tabtype', ' buffers ')
|
||||||
endif
|
|
||||||
|
|
||||||
if tabpagenr('$') > 1
|
|
||||||
call b.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:current_bufnr = cur
|
let s:current_bufnr = cur
|
||||||
let s:column_width = &columns
|
|
||||||
let s:current_tabline = b.build()
|
let s:current_tabline = b.build()
|
||||||
let s:current_visible_buffers = copy(b.buffers)
|
|
||||||
if b._right_title <= last_buffer
|
|
||||||
call remove(s:current_visible_buffers, b._right_title, last_buffer)
|
|
||||||
endif
|
|
||||||
if b._left_title > 0
|
|
||||||
call remove(s:current_visible_buffers, 0, b._left_title)
|
|
||||||
endif
|
|
||||||
return s:current_tabline
|
return s:current_tabline
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:get_visible_buffers()
|
||||||
|
let buffers = airline#extensions#tabline#buflist#list()
|
||||||
|
let cur = bufnr('%')
|
||||||
|
|
||||||
|
let total_width = 0
|
||||||
|
let max_width = 0
|
||||||
|
|
||||||
|
for nr in buffers
|
||||||
|
let width = len(airline#extensions#tabline#get_buffer_name(nr)) + 4
|
||||||
|
let total_width += width
|
||||||
|
let max_width = max([max_width, width])
|
||||||
|
endfor
|
||||||
|
|
||||||
|
" only show current and surrounding buffers if there are too many buffers
|
||||||
|
let position = index(buffers, cur)
|
||||||
|
let vimwidth = &columns
|
||||||
|
if total_width > vimwidth && position > -1
|
||||||
|
let buf_count = len(buffers)
|
||||||
|
|
||||||
|
" determine how many buffers to show based on the longest buffer width,
|
||||||
|
" use one on the right side and put the rest on the left
|
||||||
|
let buf_max = vimwidth / max_width
|
||||||
|
let buf_right = 1
|
||||||
|
let buf_left = max([0, buf_max - buf_right])
|
||||||
|
|
||||||
|
let start = max([0, position - buf_left])
|
||||||
|
let end = min([buf_count, position + buf_right])
|
||||||
|
|
||||||
|
" fill up available space on the right
|
||||||
|
if position < buf_left
|
||||||
|
let end += (buf_left - position)
|
||||||
|
endif
|
||||||
|
|
||||||
|
" fill up available space on the left
|
||||||
|
if end > buf_count - 1 - buf_right
|
||||||
|
let start -= max([0, buf_right - (buf_count - 1 - position)])
|
||||||
|
endif
|
||||||
|
|
||||||
|
let buffers = eval('buffers[' . start . ':' . end . ']')
|
||||||
|
|
||||||
|
if start > 0
|
||||||
|
call insert(buffers, -1, 0)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if end < buf_count - 1
|
||||||
|
call add(buffers, -1)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:current_visible_buffers = buffers
|
||||||
|
return buffers
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:select_tab(buf_index)
|
function! s:select_tab(buf_index)
|
||||||
" no-op when called in 'keymap_ignored_filetypes'
|
" no-op when called in the NERDTree buffer
|
||||||
if count(get(g:, 'airline#extensions#tabline#keymap_ignored_filetypes',
|
if exists('t:NERDTreeBufName') && bufname('%') == t:NERDTreeBufName
|
||||||
\ ['vimfiler', 'nerdtree']), &ft)
|
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -172,15 +158,15 @@ function! s:select_tab(buf_index)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:jump_to_tab(offset)
|
function! s:jump_to_tab(offset)
|
||||||
let l = airline#extensions#tabline#buflist#list()
|
let l = s:current_visible_buffers
|
||||||
let i = index(l, bufnr('%'))
|
let i = index(l, bufnr('%'))
|
||||||
if i > -1
|
if i > -1
|
||||||
exec 'b!' . l[(i + a:offset) % len(l)]
|
exec 'b!' . l[float2nr(fmod(i + a:offset, len(l)))]
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:map_keys()
|
function s:map_keys()
|
||||||
if get(g:, 'airline#extensions#tabline#buffer_idx_mode', 1)
|
if s:buffer_idx_mode
|
||||||
noremap <silent> <Plug>AirlineSelectTab1 :call <SID>select_tab(0)<CR>
|
noremap <silent> <Plug>AirlineSelectTab1 :call <SID>select_tab(0)<CR>
|
||||||
noremap <silent> <Plug>AirlineSelectTab2 :call <SID>select_tab(1)<CR>
|
noremap <silent> <Plug>AirlineSelectTab2 :call <SID>select_tab(1)<CR>
|
||||||
noremap <silent> <Plug>AirlineSelectTab3 :call <SID>select_tab(2)<CR>
|
noremap <silent> <Plug>AirlineSelectTab3 :call <SID>select_tab(2)<CR>
|
||||||
@@ -194,53 +180,3 @@ function! s:map_keys()
|
|||||||
noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR>
|
noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR>
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#buffers#clickbuf(minwid, clicks, button, modifiers) abort
|
|
||||||
" Clickable buffers
|
|
||||||
" works only in recent NeoVim with has('tablineat')
|
|
||||||
|
|
||||||
" single mouse button click without modifiers pressed
|
|
||||||
if a:clicks == 1 && a:modifiers !~# '[^ ]'
|
|
||||||
if a:button is# 'l'
|
|
||||||
" left button - switch to buffer
|
|
||||||
silent execute 'buffer' a:minwid
|
|
||||||
elseif a:button is# 'm'
|
|
||||||
" middle button - delete buffer
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#middle_click_preserves_windows', 0) == 0
|
|
||||||
" just simply delete the clicked buffer. This will cause windows
|
|
||||||
" associated with the clicked buffer to be closed.
|
|
||||||
silent execute 'bdelete' a:minwid
|
|
||||||
else
|
|
||||||
" find windows displaying the clicked buffer and open an new
|
|
||||||
" buffer in them.
|
|
||||||
let current_window = bufwinnr("%")
|
|
||||||
let window_number = bufwinnr(a:minwid)
|
|
||||||
let last_window_visited = -1
|
|
||||||
|
|
||||||
" Set to 1 if the clicked buffer was open in any windows.
|
|
||||||
let buffer_in_window = 0
|
|
||||||
|
|
||||||
" Find the next window with the clicked buffer open. If bufwinnr()
|
|
||||||
" returns the same window number, this is because we clicked a new
|
|
||||||
" buffer, and then tried editing a new buffer. Vim won't create a
|
|
||||||
" new empty buffer for the same window, so we get the same window
|
|
||||||
" number from bufwinnr(). In this case we just give up and don't
|
|
||||||
" delete the buffer.
|
|
||||||
" This could be made cleaner if we could check if the clicked buffer
|
|
||||||
" is a new buffer, but I don't know if there is a way to do that.
|
|
||||||
while window_number != -1 && window_number != last_window_visited
|
|
||||||
let buffer_in_window = 1
|
|
||||||
silent execute window_number . 'wincmd w'
|
|
||||||
silent execute 'enew'
|
|
||||||
let last_window_visited = window_number
|
|
||||||
let window_number = bufwinnr(a:minwid)
|
|
||||||
endwhile
|
|
||||||
silent execute current_window . 'wincmd w'
|
|
||||||
if window_number != last_window_visited || buffer_in_window == 0
|
|
||||||
silent execute 'bdelete' a:minwid
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|||||||
@@ -1,77 +1,42 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:excludes = get(g:, 'airline#extensions#tabline#excludes', [])
|
||||||
|
let s:exclude_preview = get(g:, 'airline#extensions#tabline#exclude_preview', 1)
|
||||||
|
|
||||||
function! airline#extensions#tabline#buflist#invalidate()
|
function! airline#extensions#tabline#buflist#invalidate()
|
||||||
unlet! s:current_buffer_list
|
unlet! s:current_buffer_list
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#buflist#clean()
|
|
||||||
call airline#extensions#tabline#buflist#invalidate()
|
|
||||||
call airline#extensions#tabline#buffers#invalidate()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" paths in excludes list
|
|
||||||
function! s:ExcludePaths(nr, exclude_paths)
|
|
||||||
let bpath = fnamemodify(bufname(a:nr), ":p")
|
|
||||||
for f in a:exclude_paths
|
|
||||||
if bpath =~# f | return 1 | endif
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" other types to exclude
|
|
||||||
function! s:ExcludeOther(nr, exclude_preview)
|
|
||||||
if (getbufvar(a:nr, 'current_syntax') == 'qf') ||
|
|
||||||
\ (a:exclude_preview && getbufvar(a:nr, '&bufhidden') == 'wipe'
|
|
||||||
\ && getbufvar(a:nr, '&buftype') == 'nofile')
|
|
||||||
return 1 | endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#buflist#list()
|
function! airline#extensions#tabline#buflist#list()
|
||||||
if exists('s:current_buffer_list')
|
if exists('s:current_buffer_list')
|
||||||
return s:current_buffer_list
|
return s:current_buffer_list
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let exclude_buffers = get(g:, 'airline#extensions#tabline#exclude_buffers', [])
|
|
||||||
let exclude_paths = get(g:, 'airline#extensions#tabline#excludes', [])
|
|
||||||
let exclude_preview = get(g:, 'airline#extensions#tabline#exclude_preview', 1)
|
|
||||||
|
|
||||||
let list = (exists('g:did_bufmru') && g:did_bufmru) ? BufMRUList() : range(1, bufnr("$"))
|
|
||||||
|
|
||||||
let buffers = []
|
let buffers = []
|
||||||
" If this is too slow, we can switch to a different algorithm.
|
let cur = bufnr('%')
|
||||||
" Basically branch 535 already does it, but since it relies on
|
for nr in range(1, bufnr('$'))
|
||||||
" BufAdd autocommand, I'd like to avoid this if possible.
|
if buflisted(nr) && bufexists(nr)
|
||||||
for nr in list
|
let toadd = 1
|
||||||
if buflisted(nr)
|
for ex in s:excludes
|
||||||
" Do not add to the bufferlist, if either
|
if match(bufname(nr), ex) >= 0
|
||||||
" 1) bufnr is exclude_buffers list
|
let toadd = 0
|
||||||
" 2) buffername matches one of exclude_paths patterns
|
break
|
||||||
" 3) buffer is a quickfix buffer
|
endif
|
||||||
" 4) when excluding preview windows:
|
endfor
|
||||||
" 'bufhidden' == wipe
|
if getbufvar(nr, 'current_syntax') == 'qf'
|
||||||
" 'buftype' == nofile
|
let toadd = 0
|
||||||
" 5) ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat
|
endif
|
||||||
|
if s:exclude_preview && getbufvar(nr, '&bufhidden') == 'wipe' && getbufvar(nr, '&buftype') == 'nofile'
|
||||||
" check buffer numbers first
|
let toadd = 0
|
||||||
if index(exclude_buffers, nr) >= 0
|
endif
|
||||||
continue
|
if toadd
|
||||||
" check paths second
|
call add(buffers, nr)
|
||||||
elseif !empty(exclude_paths) && s:ExcludePaths(nr, exclude_paths)
|
|
||||||
continue
|
|
||||||
" ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat
|
|
||||||
elseif airline#util#ignore_buf(bufname(nr))
|
|
||||||
continue
|
|
||||||
" check other types last
|
|
||||||
elseif s:ExcludeOther(nr, exclude_preview)
|
|
||||||
continue
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call add(buffers, nr)
|
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let s:current_buffer_list = buffers
|
let s:current_buffer_list = buffers
|
||||||
return buffers
|
return buffers
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,232 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:prototype = {}
|
|
||||||
|
|
||||||
" Set the point in the tabline where the builder should insert the titles.
|
|
||||||
"
|
|
||||||
" Subsequent calls will overwrite the previous ones, so only the last call
|
|
||||||
" determines to location to insert titles.
|
|
||||||
"
|
|
||||||
" NOTE: The titles are not inserted until |build| is called, so that the
|
|
||||||
" remaining contents of the tabline can be taken into account.
|
|
||||||
"
|
|
||||||
" Callers should define at least |get_title| and |get_group| on the host
|
|
||||||
" object before calling |build|.
|
|
||||||
function! s:prototype.insert_titles(current, first, last) dict
|
|
||||||
let self._first_title = a:first " lowest index
|
|
||||||
let self._last_title = a:last " highest index
|
|
||||||
let self._left_title = a:current " next index to add on the left
|
|
||||||
let self._right_title = a:current + 1 " next index to add on the right
|
|
||||||
let self._left_position = self.get_position() " left end of titles
|
|
||||||
let self._right_position = self._left_position " right end of the titles
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Insert a title for entry number |index|, of group |group| at position |pos|,
|
|
||||||
" if there is space for it. Returns 1 if it is inserted, 0 otherwise
|
|
||||||
"
|
|
||||||
" |force| inserts the title even if there isn't enough space left for it.
|
|
||||||
" |sep_size| adjusts the size change that the title is considered to take up,
|
|
||||||
" to account for changes to the separators
|
|
||||||
"
|
|
||||||
" The title is defined by |get_title| on the hosting object, called with
|
|
||||||
" |index| as its only argument.
|
|
||||||
" |get_pretitle| and |get_posttitle| may be defined on the host object to
|
|
||||||
" insert some formatting before or after the title. These should be 0-width.
|
|
||||||
"
|
|
||||||
" This method updates |_right_position| and |_remaining_space| on the host
|
|
||||||
" object, if the title is inserted.
|
|
||||||
function! s:prototype.try_insert_title(index, group, pos, sep_size, force) dict
|
|
||||||
let title = self.get_title(a:index)
|
|
||||||
let title_size = s:tabline_evaluated_length(title) + a:sep_size
|
|
||||||
if a:force || self._remaining_space >= title_size
|
|
||||||
let pos = a:pos
|
|
||||||
if has_key(self, "get_pretitle")
|
|
||||||
call self.insert_raw(self.get_pretitle(a:index), pos)
|
|
||||||
let self._right_position += 1
|
|
||||||
let pos += 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
call self.insert_section(a:group, title, pos)
|
|
||||||
let self._right_position += 1
|
|
||||||
let pos += 1
|
|
||||||
|
|
||||||
if has_key(self, "get_posttitle")
|
|
||||||
call self.insert_raw(self.get_posttitle(a:index), pos)
|
|
||||||
let self._right_position += 1
|
|
||||||
let pos += 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
let self._remaining_space -= title_size
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
return 0
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:get_separator_change(new_group, old_group, end_group, sep_size, alt_sep_size)
|
|
||||||
return s:get_separator_change_with_end(a:new_group, a:old_group, a:end_group, a:end_group, a:sep_size, a:alt_sep_size)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Compute the change in size of the tabline caused by separators
|
|
||||||
"
|
|
||||||
" This should be kept up-to-date with |s:get_transitioned_seperator| and
|
|
||||||
" |s:get_separator| in autoload/airline/builder.vim
|
|
||||||
function! s:get_separator_change_with_end(new_group, old_group, new_end_group, old_end_group, sep_size, alt_sep_size)
|
|
||||||
let sep_change = 0
|
|
||||||
if !empty(a:new_end_group) " Separator between title and the end
|
|
||||||
let sep_change += airline#builder#should_change_group(a:new_group, a:new_end_group) ? a:sep_size : a:alt_sep_size
|
|
||||||
endif
|
|
||||||
if !empty(a:old_group) " Separator between the title and the one adjacent
|
|
||||||
let sep_change += airline#builder#should_change_group(a:new_group, a:old_group) ? a:sep_size : a:alt_sep_size
|
|
||||||
if !empty(a:old_end_group) " Remove mis-predicted separator
|
|
||||||
let sep_change -= airline#builder#should_change_group(a:old_group, a:old_end_group) ? a:sep_size : a:alt_sep_size
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return sep_change
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" This replaces the build function of the |airline#builder#new| object, to
|
|
||||||
" insert titles as specified by the last call to |insert_titles| before
|
|
||||||
" passing to the original build function.
|
|
||||||
"
|
|
||||||
" Callers should define at least |get_title| and |get_group| on the host
|
|
||||||
" object if |insert_titles| has been called on it.
|
|
||||||
function! s:prototype.build() dict
|
|
||||||
if has_key(self, '_left_position') && self._first_title <= self._last_title
|
|
||||||
let self._remaining_space = &columns - s:tabline_evaluated_length(self._build())
|
|
||||||
|
|
||||||
let center_active = get(g:, 'airline#extensions#tabline#center_active', 0)
|
|
||||||
|
|
||||||
let sep_size = s:tabline_evaluated_length(self._context.left_sep)
|
|
||||||
let alt_sep_size = s:tabline_evaluated_length(self._context.left_alt_sep)
|
|
||||||
|
|
||||||
let outer_left_group = airline#builder#get_prev_group(self._sections, self._left_position)
|
|
||||||
let outer_right_group = airline#builder#get_next_group(self._sections, self._right_position)
|
|
||||||
|
|
||||||
let overflow_marker = get(g:, 'airline#extensions#tabline#overflow_marker', g:airline_symbols.ellipsis)
|
|
||||||
let overflow_marker_size = s:tabline_evaluated_length(overflow_marker)
|
|
||||||
" Allow space for the markers before we begin filling in titles.
|
|
||||||
if self._left_title > self._first_title
|
|
||||||
let self._remaining_space -= overflow_marker_size +
|
|
||||||
\ s:get_separator_change(self.overflow_group, "", outer_left_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
if self._left_title < self._last_title
|
|
||||||
let self._remaining_space -= overflow_marker_size +
|
|
||||||
\ s:get_separator_change(self.overflow_group, "", outer_right_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Add the current title
|
|
||||||
let group = self.get_group(self._left_title)
|
|
||||||
if self._left_title == self._first_title
|
|
||||||
let sep_change = s:get_separator_change(group, "", outer_left_group, sep_size, alt_sep_size)
|
|
||||||
else
|
|
||||||
let sep_change = s:get_separator_change(group, "", self.overflow_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
if self._left_title == self._last_title
|
|
||||||
let sep_change += s:get_separator_change(group, "", outer_right_group, sep_size, alt_sep_size)
|
|
||||||
else
|
|
||||||
let sep_change += s:get_separator_change(group, "", self.overflow_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
let left_group = group
|
|
||||||
let right_group = group
|
|
||||||
let self._left_title -=
|
|
||||||
\ self.try_insert_title(self._left_title, group, self._left_position, sep_change, 1)
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#current_first', 0)
|
|
||||||
" always have current title first
|
|
||||||
let self._left_position += 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !center_active && self._right_title <= self._last_title
|
|
||||||
" Add the title to the right
|
|
||||||
let group = self.get_group(self._right_title)
|
|
||||||
if self._right_title == self._last_title
|
|
||||||
let sep_change = s:get_separator_change_with_end(group, right_group, outer_right_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size
|
|
||||||
else
|
|
||||||
let sep_change = s:get_separator_change(group, right_group, self.overflow_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
let right_group = group
|
|
||||||
let self._right_title +=
|
|
||||||
\ self.try_insert_title(self._right_title, group, self._right_position, sep_change, 1)
|
|
||||||
endif
|
|
||||||
|
|
||||||
while self._remaining_space > 0
|
|
||||||
let done = 0
|
|
||||||
if self._left_title >= self._first_title
|
|
||||||
" Insert next title to the left
|
|
||||||
let group = self.get_group(self._left_title)
|
|
||||||
if self._left_title == self._first_title
|
|
||||||
let sep_change = s:get_separator_change_with_end(group, left_group, outer_left_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size
|
|
||||||
else
|
|
||||||
let sep_change = s:get_separator_change(group, left_group, self.overflow_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
let left_group = group
|
|
||||||
let done = self.try_insert_title(self._left_title, group, self._left_position, sep_change, 0)
|
|
||||||
let self._left_title -= done
|
|
||||||
endif
|
|
||||||
" If center_active is set, this |if| operates as an independent |if|,
|
|
||||||
" otherwise as an |elif|.
|
|
||||||
if self._right_title <= self._last_title && (center_active || !done)
|
|
||||||
" Insert next title to the right
|
|
||||||
let group = self.get_group(self._right_title)
|
|
||||||
if self._right_title == self._last_title
|
|
||||||
let sep_change = s:get_separator_change_with_end(group, right_group, outer_right_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size
|
|
||||||
else
|
|
||||||
let sep_change = s:get_separator_change(group, right_group, self.overflow_group, sep_size, alt_sep_size)
|
|
||||||
endif
|
|
||||||
let right_group = group
|
|
||||||
let done = self.try_insert_title(self._right_title, group, self._right_position, sep_change, 0)
|
|
||||||
let self._right_title += done
|
|
||||||
endif
|
|
||||||
if !done
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
if self._left_title >= self._first_title
|
|
||||||
if get(g:, 'airline#extensions#tabline#current_first', 0)
|
|
||||||
let self._left_position -= 1
|
|
||||||
endif
|
|
||||||
call self.insert_section(self.overflow_group, overflow_marker, self._left_position)
|
|
||||||
let self._right_position += 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
if self._right_title <= self._last_title
|
|
||||||
call self.insert_section(self.overflow_group, overflow_marker, self._right_position)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
return self._build()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let s:prototype.overflow_group = 'airline_tab'
|
|
||||||
|
|
||||||
" Extract the text content a tabline will render. (Incomplete).
|
|
||||||
"
|
|
||||||
" See :help 'statusline' for the list of fields.
|
|
||||||
function! s:evaluate_tabline(tabline)
|
|
||||||
let tabline = a:tabline
|
|
||||||
let tabline = substitute(tabline, '%{\([^}]\+\)}', '\=eval(submatch(1))', 'g')
|
|
||||||
let tabline = substitute(tabline, '%#[^#]\+#', '', 'g')
|
|
||||||
let tabline = substitute(tabline, '%(\([^)]\+\)%)', '\1', 'g')
|
|
||||||
let tabline = substitute(tabline, '%\d\+[TX]', '', 'g')
|
|
||||||
let tabline = substitute(tabline, '%=', '', 'g')
|
|
||||||
let tabline = substitute(tabline, '%\d*\*', '', 'g')
|
|
||||||
if has('tablineat')
|
|
||||||
let tabline = substitute(tabline, '%@[^@]\+@', '', 'g')
|
|
||||||
endif
|
|
||||||
return tabline
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:tabline_evaluated_length(tabline)
|
|
||||||
return airline#util#strchars(s:evaluate_tabline(a:tabline))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#builder#new(context)
|
|
||||||
let builder = airline#builder#new(a:context)
|
|
||||||
let builder._build = builder.build
|
|
||||||
call extend(builder, s:prototype, 'force')
|
|
||||||
return builder
|
|
||||||
endfunction
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
|
let s:spc = g:airline_symbols.space
|
||||||
|
|
||||||
|
function! airline#extensions#tabline#combined#get()
|
||||||
|
let curtabnr = tabpagenr()
|
||||||
|
let b = airline#extensions#tabline#new_builder()
|
||||||
|
|
||||||
|
let buffers = tabpagebuflist(curtabnr)
|
||||||
|
for nr in buffers
|
||||||
|
let group = airline#extensions#tabline#group_of_bufnr(buffers, nr)
|
||||||
|
call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
|
||||||
|
endfor
|
||||||
|
|
||||||
|
call b.add_section('airline_tabfill', '')
|
||||||
|
call b.split()
|
||||||
|
call b.add_section('airline_tabfill', '')
|
||||||
|
|
||||||
|
for tabnr in range(1, tabpagenr('$'))
|
||||||
|
let group = tabnr == curtabnr ? 'airline_tabtype' : 'airline_tab'
|
||||||
|
call b.add_section(group, s:spc . 'tab' . s:spc . tabnr . s:spc . '%' . tabnr . 'X' . 'x' . '%X' . s:spc)
|
||||||
|
endfor
|
||||||
|
return b.build()
|
||||||
|
endfunction
|
||||||
@@ -1,157 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2016-2018 Kevin Sapper et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:current_bufnr = -1
|
|
||||||
let s:current_modified = 0
|
|
||||||
let s:current_tabnr = -1
|
|
||||||
let s:current_tabline = ''
|
|
||||||
let s:highlight_groups = ['hid', 0, '', 'sel', 'mod_unsel', 0, 'mod_unsel', 'mod']
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#ctrlspace#off()
|
|
||||||
augroup airline_tabline_ctrlspace
|
|
||||||
autocmd!
|
|
||||||
augroup END
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#ctrlspace#on()
|
|
||||||
augroup airline_tabline_ctrlspace
|
|
||||||
autocmd!
|
|
||||||
autocmd BufDelete * call airline#extensions#tabline#ctrlspace#invalidate()
|
|
||||||
augroup END
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#ctrlspace#invalidate()
|
|
||||||
let s:current_bufnr = -1
|
|
||||||
let s:current_tabnr = -1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, pull_right)
|
|
||||||
let pos_extension = (a:pull_right ? '_right' : '')
|
|
||||||
let buffer_list = ctrlspace#api#BufferList(a:cur_tab)
|
|
||||||
|
|
||||||
" add by tenfy(tenfyzhong@qq.com)
|
|
||||||
" if the current buffer no in the buffer list
|
|
||||||
" return false and no redraw tabline.
|
|
||||||
" Fixes #1515. if there a BufEnter autocmd execute redraw. The tabline may no update.
|
|
||||||
let bufnr_list = map(copy(buffer_list), 'v:val["index"]')
|
|
||||||
if index(bufnr_list, a:cur_buf) == -1 && a:cur_tab == s:current_tabnr
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:current_modified = getbufvar(a:cur_buf, '&modified')
|
|
||||||
|
|
||||||
for buffer in buffer_list
|
|
||||||
let group = 'airline_tab'
|
|
||||||
\ .s:highlight_groups[(4 * buffer.modified) + (2 * buffer.visible) + (a:cur_buf == buffer.index)]
|
|
||||||
\ .pos_extension
|
|
||||||
|
|
||||||
let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)'
|
|
||||||
|
|
||||||
if has("tablineat")
|
|
||||||
let buf_name = '%'.buffer.index.'@airline#extensions#tabline#buffers#clickbuf@'.buf_name.'%X'
|
|
||||||
endif
|
|
||||||
|
|
||||||
call a:builder.add_section_spaced(group, buf_name)
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" add by tenfy(tenfyzhong@qq.com)
|
|
||||||
" if the selected buffer was updated
|
|
||||||
" return true
|
|
||||||
return 1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#ctrlspace#add_tab_section(builder, pull_right)
|
|
||||||
let pos_extension = (a:pull_right ? '_right' : '')
|
|
||||||
let tab_list = ctrlspace#api#TabList()
|
|
||||||
|
|
||||||
for tab in tab_list
|
|
||||||
let group = 'airline_tab'
|
|
||||||
\ .s:highlight_groups[(4 * tab.modified) + (3 * tab.current)]
|
|
||||||
\ .pos_extension
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#ctrlspace_show_tab_nr', 0) == 0
|
|
||||||
call a:builder.add_section_spaced(group, '%'.tab.index.'T'.tab.title.ctrlspace#api#TabBuffersNumber(tab.index).'%T')
|
|
||||||
else
|
|
||||||
call a:builder.add_section_spaced(group, '%'.(tab.index).'T'.(tab.index).(g:airline_symbols.space).(tab.title).ctrlspace#api#TabBuffersNumber(tab.index).'%T')
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#ctrlspace#get()
|
|
||||||
let cur_buf = bufnr('%')
|
|
||||||
let buffer_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers')
|
|
||||||
let tab_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs')
|
|
||||||
let switch_buffers_and_tabs = get(g:, 'airline#extensions#tabline#switch_buffers_and_tabs', 0)
|
|
||||||
|
|
||||||
try
|
|
||||||
call airline#extensions#tabline#tabs#map_keys()
|
|
||||||
endtry
|
|
||||||
|
|
||||||
let cur_tab = tabpagenr()
|
|
||||||
|
|
||||||
if cur_buf == s:current_bufnr && cur_tab == s:current_tabnr
|
|
||||||
if !g:airline_detect_modified || getbufvar(cur_buf, '&modified') == s:current_modified
|
|
||||||
return s:current_tabline
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
let builder = airline#extensions#tabline#new_builder()
|
|
||||||
|
|
||||||
let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
|
||||||
let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
|
||||||
|
|
||||||
let AppendBuffers = function('airline#extensions#tabline#ctrlspace#add_buffer_section', [builder, cur_tab, cur_buf])
|
|
||||||
let AppendTabs = function('airline#extensions#tabline#ctrlspace#add_tab_section', [builder])
|
|
||||||
let AppendLabel = function(builder.add_section_spaced, ['airline_tabtype'], builder)
|
|
||||||
|
|
||||||
" <= 1: |{Tabs} <tab|
|
|
||||||
" == 2: |{Buffers} <buffers|
|
|
||||||
" == 3: |buffers> {Buffers} {Tabs} <tabs|
|
|
||||||
let showing_mode = (2 * show_buffers) + (show_tabs)
|
|
||||||
let ignore_update = 0
|
|
||||||
|
|
||||||
" Add left tabline content
|
|
||||||
if showing_mode <= 1 " Tabs only mode
|
|
||||||
call AppendTabs(0)
|
|
||||||
elseif showing_mode == 2 " Buffers only mode
|
|
||||||
let ignore_update = !AppendBuffers(0)
|
|
||||||
else
|
|
||||||
if !switch_buffers_and_tabs
|
|
||||||
call AppendLabel(buffer_label)
|
|
||||||
let ignore_update = !AppendBuffers(0)
|
|
||||||
else
|
|
||||||
call AppendLabel(tab_label)
|
|
||||||
call AppendTabs(0)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ignore_update | return s:current_tabline | endif
|
|
||||||
|
|
||||||
call builder.add_section('airline_tabfill', '')
|
|
||||||
call builder.split()
|
|
||||||
call builder.add_section('airline_tabfill', '')
|
|
||||||
|
|
||||||
" Add right tabline content
|
|
||||||
if showing_mode <= 1 " Tabs only mode
|
|
||||||
call AppendLabel(tab_label)
|
|
||||||
elseif showing_mode == 2 " Buffers only mode
|
|
||||||
call AppendLabel(buffer_label)
|
|
||||||
else
|
|
||||||
if !switch_buffers_and_tabs
|
|
||||||
call AppendTabs(1)
|
|
||||||
call AppendLabel(tab_label)
|
|
||||||
else
|
|
||||||
let ignore_update = AppendBuffers(1)
|
|
||||||
call AppendLabel(buffer_label)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ignore_update | return s:current_tabline | endif
|
|
||||||
|
|
||||||
let s:current_bufnr = cur_buf
|
|
||||||
let s:current_tabnr = cur_tab
|
|
||||||
let s:current_tabline = builder.build()
|
|
||||||
return s:current_tabline
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
|
||||||
|
|
||||||
let s:fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
let s:fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
||||||
let s:fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
let s:fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
||||||
let s:buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ')
|
let s:buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ')
|
||||||
@@ -10,7 +9,6 @@ let s:buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0)
|
|||||||
let s:buf_modified_symbol = g:airline_symbols.modified
|
let s:buf_modified_symbol = g:airline_symbols.modified
|
||||||
|
|
||||||
function! airline#extensions#tabline#formatters#default#format(bufnr, buffers)
|
function! airline#extensions#tabline#formatters#default#format(bufnr, buffers)
|
||||||
let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
|
|
||||||
let _ = ''
|
let _ = ''
|
||||||
|
|
||||||
let name = bufname(a:bufnr)
|
let name = bufname(a:bufnr)
|
||||||
@@ -18,11 +16,9 @@ function! airline#extensions#tabline#formatters#default#format(bufnr, buffers)
|
|||||||
let _ .= '[No Name]'
|
let _ .= '[No Name]'
|
||||||
else
|
else
|
||||||
if s:fnamecollapse
|
if s:fnamecollapse
|
||||||
" Does not handle non-ascii characters like Cyrillic: 'D/Учёба/t.c'
|
let _ .= substitute(fnamemodify(name, s:fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g')
|
||||||
"let _ .= substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g')
|
|
||||||
let _ .= pathshorten(fnamemodify(name, fmod))
|
|
||||||
else
|
else
|
||||||
let _ .= fnamemodify(name, fmod)
|
let _ .= fnamemodify(name, s:fmod)
|
||||||
endif
|
endif
|
||||||
if a:bufnr != bufnr('%') && s:fnametruncate && strlen(_) > s:fnametruncate
|
if a:bufnr != bufnr('%') && s:fnametruncate && strlen(_) > s:fnametruncate
|
||||||
let _ = strpart(_, 0, s:fnametruncate)
|
let _ = strpart(_, 0, s:fnametruncate)
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#formatters#jsformatter#format(bufnr, buffers)
|
|
||||||
let buf = bufname(a:bufnr)
|
|
||||||
let filename = fnamemodify(buf, ':t')
|
|
||||||
|
|
||||||
if filename == 'index.js' || filename == 'index.jsx' || filename == 'index.ts' || filename == 'index.tsx'
|
|
||||||
return fnamemodify(buf, ':p:h:t') . '/i'
|
|
||||||
else
|
|
||||||
return airline#extensions#tabline#formatters#unique_tail_improved#format(a:bufnr, a:buffers)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2017-2018 C.Brabandt et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#formatters#tabnr#format(tab_nr_type, nr)
|
|
||||||
if a:tab_nr_type == 0 " nr of splits
|
|
||||||
return (g:airline_symbols.space).'%{len(tabpagebuflist('.a:nr.'))}'
|
|
||||||
elseif a:tab_nr_type == 1 " tab number
|
|
||||||
return (g:airline_symbols.space).a:nr
|
|
||||||
else "== 2 splits and tab number
|
|
||||||
return (g:airline_symbols.space).a:nr.'.%{len(tabpagebuflist('.a:nr.'))}'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffers)
|
function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffers)
|
||||||
let duplicates = {}
|
let duplicates = {}
|
||||||
let tails = {}
|
let tails = {}
|
||||||
@@ -21,15 +19,8 @@ function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffer
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':p:.')
|
|
||||||
for nr in values(duplicates)
|
for nr in values(duplicates)
|
||||||
let name = bufname(nr)
|
let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, fnamemodify(bufname(nr), ':p:.'))
|
||||||
let fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
|
||||||
if fnamecollapse
|
|
||||||
let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g'))
|
|
||||||
else
|
|
||||||
let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, fnamemodify(name, fmod))
|
|
||||||
endif
|
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
if has_key(map, a:bufnr)
|
if has_key(map, a:bufnr)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
scriptencoding utf-8
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
|
||||||
|
let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0)
|
||||||
|
let s:show_close_button = get(g:, 'airline#extensions#tabline#show_close_button', 1)
|
||||||
|
let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1)
|
||||||
|
let s:close_symbol = get(g:, 'airline#extensions#tabline#close_symbol', 'X')
|
||||||
let s:spc = g:airline_symbols.space
|
let s:spc = g:airline_symbols.space
|
||||||
|
|
||||||
let s:current_bufnr = -1
|
let s:current_bufnr = -1
|
||||||
let s:current_tabnr = -1
|
let s:current_tabnr = -1
|
||||||
let s:current_modified = 0
|
let s:current_modified = 0
|
||||||
@@ -28,12 +32,8 @@ endfunction
|
|||||||
function! airline#extensions#tabline#tabs#get()
|
function! airline#extensions#tabline#tabs#get()
|
||||||
let curbuf = bufnr('%')
|
let curbuf = bufnr('%')
|
||||||
let curtab = tabpagenr()
|
let curtab = tabpagenr()
|
||||||
try
|
call s:map_keys()
|
||||||
call airline#extensions#tabline#tabs#map_keys()
|
if curbuf == s:current_bufnr && curtab == s:current_tabnr
|
||||||
catch
|
|
||||||
" no-op
|
|
||||||
endtry
|
|
||||||
if curbuf == s:current_bufnr && curtab == s:current_tabnr && &columns == s:column_width
|
|
||||||
if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified
|
if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified
|
||||||
return s:current_tabline
|
return s:current_tabline
|
||||||
endif
|
endif
|
||||||
@@ -41,69 +41,56 @@ function! airline#extensions#tabline#tabs#get()
|
|||||||
|
|
||||||
let b = airline#extensions#tabline#new_builder()
|
let b = airline#extensions#tabline#new_builder()
|
||||||
|
|
||||||
call airline#extensions#tabline#add_label(b, 'tabs')
|
let buffers = tabpagebuflist(curtab)
|
||||||
|
for nr in buffers
|
||||||
|
let group = airline#extensions#tabline#group_of_bufnr(buffers, nr)
|
||||||
|
call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
|
||||||
|
endfor
|
||||||
|
|
||||||
function! b.get_group(i) dict
|
call b.add_section('airline_tabfill', '')
|
||||||
let curtab = tabpagenr()
|
call b.split()
|
||||||
let group = 'airline_tab'
|
call b.add_section('airline_tabfill', '')
|
||||||
if a:i == curtab
|
|
||||||
|
for i in range(1, tabpagenr('$'))
|
||||||
|
if i == curtab
|
||||||
let group = 'airline_tabsel'
|
let group = 'airline_tabsel'
|
||||||
if g:airline_detect_modified
|
if g:airline_detect_modified
|
||||||
for bi in tabpagebuflist(curtab)
|
for bi in tabpagebuflist(i)
|
||||||
if getbufvar(bi, '&modified')
|
if getbufvar(bi, '&modified')
|
||||||
let group = 'airline_tabmod'
|
let group = 'airline_tabmod'
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
|
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
|
||||||
|
else
|
||||||
|
let group = 'airline_tab'
|
||||||
endif
|
endif
|
||||||
return group
|
" if s:show_tab_nr
|
||||||
endfunction
|
" if s:tab_nr_type == 0
|
||||||
|
" let tablen = s:spc . '%{len(tabpagebuflist('.i.'))}'
|
||||||
|
" elseif s:tab_nr_type == 1
|
||||||
|
" let tablen = s:spc . i
|
||||||
|
" else "== 2
|
||||||
|
" let tablen = s:spc . i . '.%{len(tabpagebuflist('.i.'))}'
|
||||||
|
" endif
|
||||||
|
" endif
|
||||||
|
call b.add_section(group, '%T'.i.' tab ' . i)
|
||||||
|
endfor
|
||||||
|
|
||||||
function! b.get_title(i) dict
|
" if s:show_close_button
|
||||||
let val = '%('
|
" call b.add_section('airline_tab', ' %999X'.s:close_symbol.' ')
|
||||||
|
" endif
|
||||||
if get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
|
" if s:show_tab_type
|
||||||
let tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0)
|
" call b.add_section('airline_tabtype', ' tabs ')
|
||||||
let val .= airline#extensions#tabline#tabs#tabnr_formatter(tab_nr_type, a:i)
|
" endif
|
||||||
endif
|
|
||||||
|
|
||||||
return val.'%'.a:i.'T %{airline#extensions#tabline#title('.a:i.')} %)'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
call b.insert_titles(curtab, 1, tabpagenr('$'))
|
|
||||||
|
|
||||||
call b.add_section('airline_tabfill', '')
|
|
||||||
call b.split()
|
|
||||||
call b.add_section('airline_tabfill', '')
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#show_close_button', 1)
|
|
||||||
call b.add_section('airline_tab_right', ' %999X'.
|
|
||||||
\ get(g:, 'airline#extensions#tabline#close_symbol', 'X').' ')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(g:, 'airline#extensions#tabline#show_splits', 1) == 1
|
|
||||||
let buffers = tabpagebuflist(curtab)
|
|
||||||
for nr in buffers
|
|
||||||
let group = airline#extensions#tabline#group_of_bufnr(buffers, nr) . "_right"
|
|
||||||
call b.add_section_spaced(group, '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)')
|
|
||||||
endfor
|
|
||||||
if get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
|
||||||
call airline#extensions#tabline#add_label(b, 'buffers')
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:current_bufnr = curbuf
|
let s:current_bufnr = curbuf
|
||||||
let s:current_tabnr = curtab
|
let s:current_tabnr = curtab
|
||||||
let s:column_width = &columns
|
|
||||||
let s:current_tabline = b.build()
|
let s:current_tabline = b.build()
|
||||||
return s:current_tabline
|
return s:current_tabline
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#tabs#map_keys()
|
function s:map_keys()
|
||||||
if maparg('<Plug>AirlineSelectTab1', 'n') is# ':1tabn<CR>'
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
noremap <silent> <Plug>AirlineSelectTab1 :1tabn<CR>
|
noremap <silent> <Plug>AirlineSelectTab1 :1tabn<CR>
|
||||||
noremap <silent> <Plug>AirlineSelectTab2 :2tabn<CR>
|
noremap <silent> <Plug>AirlineSelectTab2 :2tabn<CR>
|
||||||
noremap <silent> <Plug>AirlineSelectTab3 :3tabn<CR>
|
noremap <silent> <Plug>AirlineSelectTab3 :3tabn<CR>
|
||||||
@@ -117,8 +104,3 @@ function! airline#extensions#tabline#tabs#map_keys()
|
|||||||
" tabn {count} goes to count tab does not go {count} tab pages forward!
|
" tabn {count} goes to count tab does not go {count} tab pages forward!
|
||||||
noremap <silent> <Plug>AirlineSelectNextTab :<C-U>exe repeat(':tabn\|', v:count1)<cr>
|
noremap <silent> <Plug>AirlineSelectNextTab :<C-U>exe repeat(':tabn\|', v:count1)<cr>
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#tabs#tabnr_formatter(nr, i)
|
|
||||||
let formatter = get(g:, 'airline#extensions#tabline#tabnr_formatter', 'tabnr')
|
|
||||||
return airline#extensions#tabline#formatters#{formatter}#format(a:nr, a:i)
|
|
||||||
endfunction
|
|
||||||
|
|||||||
@@ -1,397 +0,0 @@
|
|||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" xTabline - Reduced version for vim-airline
|
|
||||||
" Copyright (C) 2018 Gianmaria Bajo <mg1979.git@gmail.com>
|
|
||||||
" License: MIT License
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#init()
|
|
||||||
|
|
||||||
let s:state = 0
|
|
||||||
|
|
||||||
" initialize mappings
|
|
||||||
call airline#extensions#tabline#xtabline#maps()
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Variables
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
let g:loaded_xtabline = 1
|
|
||||||
let s:most_recent = -1
|
|
||||||
let s:xtabline_filtering = 1
|
|
||||||
|
|
||||||
let t:xtl_excluded = get(g:, 'airline#extensions#tabline#exclude_buffers', [])
|
|
||||||
let t:xtl_accepted = []
|
|
||||||
|
|
||||||
let g:xtabline_include_previews = get(g:, 'xtabline_include_previews', 1)
|
|
||||||
|
|
||||||
let g:xtabline_alt_action = get(g:, 'xtabline_alt_action', "buffer #")
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Autocommands
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
augroup plugin-xtabline
|
|
||||||
autocmd!
|
|
||||||
|
|
||||||
autocmd TabNew * call s:Do('new')
|
|
||||||
autocmd TabEnter * call s:Do('enter')
|
|
||||||
autocmd TabLeave * call s:Do('leave')
|
|
||||||
autocmd TabClosed * call s:Do('close')
|
|
||||||
|
|
||||||
autocmd BufEnter * let g:xtabline_changing_buffer = 0
|
|
||||||
autocmd BufAdd,BufDelete,BufWrite * call airline#extensions#tabline#xtabline#filter_buffers()
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Commands
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
com! XTabReopen call airline#extensions#tabline#xtabline#reopen_last_tab()
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Mappings
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#maps()
|
|
||||||
|
|
||||||
if !exists('g:xtabline_disable_keybindings')
|
|
||||||
|
|
||||||
fun! s:mapkeys(keys, plug)
|
|
||||||
if empty(mapcheck(a:keys)) && !hasmapto(a:plug)
|
|
||||||
silent! execute 'nmap <unique> '.a:keys.' '.a:plug
|
|
||||||
endif
|
|
||||||
endfun
|
|
||||||
|
|
||||||
call s:mapkeys('<F5>','<Plug>XTablineToggleTabs')
|
|
||||||
call s:mapkeys('<leader><F5>','<Plug>XTablineToggleFiltering')
|
|
||||||
call s:mapkeys('<BS>','<Plug>XTablineSelectBuffer')
|
|
||||||
call s:mapkeys(']l','<Plug>XTablineNextBuffer')
|
|
||||||
call s:mapkeys('[l','<Plug>XTablinePrevBuffer')
|
|
||||||
call s:mapkeys('<leader>tr','<Plug>XTablineReopen')
|
|
||||||
endif
|
|
||||||
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineToggleTabs <SID>ToggleTabs
|
|
||||||
nnoremap <silent> <SID>ToggleTabs :call airline#extensions#tabline#xtabline#toggle_tabs()<cr>
|
|
||||||
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineToggleFiltering <SID>ToggleFiltering
|
|
||||||
nnoremap <silent> <SID>ToggleFiltering :call airline#extensions#tabline#xtabline#toggle_buffers()<cr>
|
|
||||||
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineSelectBuffer <SID>SelectBuffer
|
|
||||||
nnoremap <silent> <expr> <SID>SelectBuffer g:xtabline_changing_buffer ? "\<C-c>" : ":<C-u>call airline#extensions#tabline#xtabline#select_buffer(v:count)\<cr>"
|
|
||||||
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineNextBuffer <SID>NextBuffer
|
|
||||||
nnoremap <silent> <expr> <SID>NextBuffer airline#extensions#tabline#xtabline#next_buffer(v:count1)
|
|
||||||
|
|
||||||
nnoremap <unique> <script> <Plug>XTablinePrevBuffer <SID>PrevBuffer
|
|
||||||
nnoremap <silent> <expr> <SID>PrevBuffer airline#extensions#tabline#xtabline#prev_buffer(v:count1)
|
|
||||||
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineReopen <SID>ReopenLastTab
|
|
||||||
nnoremap <silent> <SID>ReopenLastTab :XTabReopen<cr>
|
|
||||||
|
|
||||||
if get(g:, 'xtabline_cd_commands', 0)
|
|
||||||
map <unique> <leader>cdc <Plug>XTablineCdCurrent
|
|
||||||
map <unique> <leader>cdd <Plug>XTablineCdDown1
|
|
||||||
map <unique> <leader>cd2 <Plug>XTablineCdDown2
|
|
||||||
map <unique> <leader>cd3 <Plug>XTablineCdDown3
|
|
||||||
map <unique> <leader>cdh <Plug>XTablineCdHome
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineCdCurrent :cd %:p:h<cr>:call airline#util#doautocmd('BufAdd')<cr>:pwd<cr>
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineCdDown1 :cd %:p:h:h<cr>:call airline#util#doautocmd('BufAdd')<cr>:pwd<cr>
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineCdDown2 :cd %:p:h:h:h<cr>:call airline#util#doautocmd('BufAdd')<cr>:pwd<cr>
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineCdDown3 :cd %:p:h:h:h:h<cr>:call airline#util#doautocmd('BufAdd')<cr>:pwd<cr>
|
|
||||||
nnoremap <unique> <script> <Plug>XTablineCdHome :cd ~<cr>:call airline#util#doautocmd('BufAdd')<cr>:pwd<cr>
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Commands functions
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#toggle_tabs()
|
|
||||||
"""Toggle between tabs/buffers tabline."""
|
|
||||||
|
|
||||||
if tabpagenr("$") == 1 | call airline#util#warning("There is only one tab.") | return | endif
|
|
||||||
|
|
||||||
if g:airline#extensions#tabline#show_tabs
|
|
||||||
let g:airline#extensions#tabline#show_tabs = 0
|
|
||||||
call airline#util#warning("Showing buffers")
|
|
||||||
else
|
|
||||||
let g:airline#extensions#tabline#show_tabs = 1
|
|
||||||
call airline#util#warning("Showing tabs")
|
|
||||||
endif
|
|
||||||
|
|
||||||
doautocmd BufAdd
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#toggle_buffers()
|
|
||||||
"""Toggle buffer filtering in the tabline."""
|
|
||||||
|
|
||||||
if s:xtabline_filtering
|
|
||||||
let s:xtabline_filtering = 0
|
|
||||||
let g:airline#extensions#tabline#exclude_buffers = []
|
|
||||||
call airline#util#warning("Buffer filtering turned off")
|
|
||||||
doautocmd BufAdd
|
|
||||||
else
|
|
||||||
let s:xtabline_filtering = 1
|
|
||||||
call airline#extensions#tabline#xtabline#filter_buffers()
|
|
||||||
call airline#util#warning("Buffer filtering turned on")
|
|
||||||
doautocmd BufAdd
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#reopen_last_tab()
|
|
||||||
"""Reopen the last closed tab."""
|
|
||||||
|
|
||||||
if !exists('s:most_recently_closed_tab')
|
|
||||||
call airline#util#warning("No recent tabs.")
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
let tab = s:most_recently_closed_tab
|
|
||||||
tabnew
|
|
||||||
let empty = bufnr("%")
|
|
||||||
let t:cwd = tab['cwd']
|
|
||||||
cd `=t:cwd`
|
|
||||||
let t:name = tab['name']
|
|
||||||
for buf in tab['buffers'] | execute "badd ".buf | endfor
|
|
||||||
execute "edit ".tab['buffers'][0]
|
|
||||||
execute "bdelete ".empty
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#filter_buffers()
|
|
||||||
"""Filter buffers so that only the ones within the tab's cwd will show up.
|
|
||||||
|
|
||||||
" 'accepted' is a list of buffer numbers, for quick access.
|
|
||||||
" 'excluded' is a list of buffer numbers, it will be used by Airline to hide buffers.
|
|
||||||
|
|
||||||
if !s:xtabline_filtering | return | endif
|
|
||||||
|
|
||||||
let g:airline#extensions#tabline#exclude_buffers = []
|
|
||||||
let t:xtl_excluded = g:airline#extensions#tabline#exclude_buffers
|
|
||||||
let t:xtl_accepted = [] | let accepted = t:xtl_accepted
|
|
||||||
let previews = g:xtabline_include_previews
|
|
||||||
|
|
||||||
" bufnr(0) is the alternate buffer
|
|
||||||
for buf in range(1, bufnr("$"))
|
|
||||||
|
|
||||||
if !buflisted(buf) | continue | endif
|
|
||||||
|
|
||||||
" get the path
|
|
||||||
let path = expand("#".buf.":p")
|
|
||||||
|
|
||||||
" confront with the cwd
|
|
||||||
if !previews && path =~ "^".getcwd()
|
|
||||||
call add(accepted, buf)
|
|
||||||
elseif previews && path =~ getcwd()
|
|
||||||
call add(accepted, buf)
|
|
||||||
else
|
|
||||||
call add(t:xtl_excluded, buf)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
call s:RefreshTabline()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#next_buffer(nr)
|
|
||||||
"""Switch to next visible buffer."""
|
|
||||||
|
|
||||||
if ( s:NotEnoughBuffers() || !s:xtabline_filtering ) | return | endif
|
|
||||||
let accepted = t:xtl_accepted
|
|
||||||
|
|
||||||
let ix = index(accepted, bufnr("%"))
|
|
||||||
let target = ix + a:nr
|
|
||||||
let total = len(accepted)
|
|
||||||
|
|
||||||
if ix == -1
|
|
||||||
" not in index, go back to most recent or back to first
|
|
||||||
if s:most_recent == -1 || s:most_recent >= total
|
|
||||||
let s:most_recent = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
elseif target >= total
|
|
||||||
" over last buffer
|
|
||||||
while target >= total | let target -= total | endwhile
|
|
||||||
let s:most_recent = target
|
|
||||||
|
|
||||||
else
|
|
||||||
let s:most_recent = target
|
|
||||||
endif
|
|
||||||
|
|
||||||
return ":buffer " . accepted[s:most_recent] . "\<cr>"
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#prev_buffer(nr)
|
|
||||||
"""Switch to previous visible buffer."""
|
|
||||||
|
|
||||||
if ( s:NotEnoughBuffers() || !s:xtabline_filtering ) | return | endif
|
|
||||||
let accepted = t:xtl_accepted
|
|
||||||
|
|
||||||
let ix = index(accepted, bufnr("%"))
|
|
||||||
let target = ix - a:nr
|
|
||||||
let total = len(accepted)
|
|
||||||
|
|
||||||
if ix == -1
|
|
||||||
" not in index, go back to most recent or back to first
|
|
||||||
if s:most_recent == -1 || s:most_recent >= total
|
|
||||||
let s:most_recent = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
elseif target < 0
|
|
||||||
" before first buffer
|
|
||||||
while target < 0 | let target += total | endwhile
|
|
||||||
let s:most_recent = target
|
|
||||||
|
|
||||||
else
|
|
||||||
let s:most_recent = target
|
|
||||||
endif
|
|
||||||
|
|
||||||
return ":buffer " . accepted[s:most_recent] . "\<cr>"
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#select_buffer(nr)
|
|
||||||
"""Switch to visible buffer in the tabline with [count]."""
|
|
||||||
|
|
||||||
if ( a:nr == 0 || !s:xtabline_filtering ) | execute g:xtabline_alt_action | return | endif
|
|
||||||
let accepted = t:xtl_accepted
|
|
||||||
|
|
||||||
if (a:nr > len(accepted)) || s:NotEnoughBuffers() || accepted[a:nr - 1] == bufnr("%")
|
|
||||||
return
|
|
||||||
else
|
|
||||||
let g:xtabline_changing_buffer = 1
|
|
||||||
execute "buffer ".accepted[a:nr - 1]
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! s:TabBuffers()
|
|
||||||
"""Return a list of buffers names for this tab."""
|
|
||||||
|
|
||||||
return map(copy(t:xtl_accepted), 'bufname(v:val)')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Helper functions
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! s:NotEnoughBuffers()
|
|
||||||
"""Just return if there aren't enough buffers."""
|
|
||||||
|
|
||||||
if len(t:xtl_accepted) < 2
|
|
||||||
if index(t:xtl_accepted, bufnr("%")) == -1
|
|
||||||
return
|
|
||||||
elseif !len(t:xtl_accepted)
|
|
||||||
call airline#util#warning("No available buffers for this tab.")
|
|
||||||
else
|
|
||||||
call airline#util#warning("No other available buffers for this tab.")
|
|
||||||
endif
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:RefreshTabline()
|
|
||||||
call airline#extensions#tabline#buflist#invalidate()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" TabPageCd
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
" tabpagecd - Turn :cd into :tabpagecd, to use one tab page per project
|
|
||||||
" expanded version by mg979
|
|
||||||
" Copyright (C) 2012-2013 Kana Natsuno <http://whileimautomaton.net/>
|
|
||||||
" Copyright (C) 2018 Gianmaria Bajo <mg1979.git@gmail.com>
|
|
||||||
" License: MIT License
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! s:InitCwds()
|
|
||||||
if !exists('g:xtab_cwds') | let g:xtab_cwds = [] | endif
|
|
||||||
|
|
||||||
while len(g:xtab_cwds) < tabpagenr("$")
|
|
||||||
call add(g:xtab_cwds, getcwd())
|
|
||||||
endwhile
|
|
||||||
let s:state = 1
|
|
||||||
let t:cwd = getcwd()
|
|
||||||
let s:last_tab = 0
|
|
||||||
call airline#extensions#tabline#xtabline#filter_buffers()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! airline#extensions#tabline#xtabline#update_obsession()
|
|
||||||
let string = 'let g:xtab_cwds = '.string(g:xtab_cwds).' | call airline#extensions#tabline#xtabline#update_obsession()'
|
|
||||||
if !exists('g:obsession_append')
|
|
||||||
let g:obsession_append = [string]
|
|
||||||
else
|
|
||||||
call filter(g:obsession_append, 'v:val !~# "^let g:xtab_cwds"')
|
|
||||||
call add(g:obsession_append, string)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
function! s:Do(action)
|
|
||||||
let arg = a:action
|
|
||||||
if !s:state | call s:InitCwds() | return | endif
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
if arg == 'new'
|
|
||||||
|
|
||||||
call insert(g:xtab_cwds, getcwd(), tabpagenr()-1)
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
elseif arg == 'enter'
|
|
||||||
|
|
||||||
let t:cwd =g:xtab_cwds[tabpagenr()-1]
|
|
||||||
|
|
||||||
cd `=t:cwd`
|
|
||||||
call airline#extensions#tabline#xtabline#filter_buffers()
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
elseif arg == 'leave'
|
|
||||||
|
|
||||||
let t:cwd = getcwd()
|
|
||||||
let g:xtab_cwds[tabpagenr()-1] = t:cwd
|
|
||||||
let s:last_tab = tabpagenr() - 1
|
|
||||||
|
|
||||||
if !exists('t:name') | let t:name = t:cwd | endif
|
|
||||||
let s:most_recent_tab = {'cwd': t:cwd, 'name': t:name, 'buffers': s:TabBuffers()}
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
elseif arg == 'close'
|
|
||||||
|
|
||||||
let s:most_recently_closed_tab = copy(s:most_recent_tab)
|
|
||||||
call remove(g:xtab_cwds, s:last_tab)
|
|
||||||
endif
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
call airline#extensions#tabline#xtabline#update_obsession()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
@@ -1,15 +1,12 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':TagbarToggle')
|
if !exists(':TagbarToggle')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:flags = get(g:, 'airline#extensions#tagbar#flags', '')
|
let s:flags = get(g:, 'airline#extensions#tagbar#flags', '')
|
||||||
let s:spc = g:airline_symbols.space
|
let s:spc = g:airline_symbols.space
|
||||||
let s:init=0
|
|
||||||
|
|
||||||
" Arguments: current, sort, fname
|
" Arguments: current, sort, fname
|
||||||
function! airline#extensions#tagbar#get_status(...)
|
function! airline#extensions#tagbar#get_status(...)
|
||||||
@@ -30,18 +27,7 @@ let s:airline_tagbar_last_lookup_time = 0
|
|||||||
let s:airline_tagbar_last_lookup_val = ''
|
let s:airline_tagbar_last_lookup_val = ''
|
||||||
function! airline#extensions#tagbar#currenttag()
|
function! airline#extensions#tagbar#currenttag()
|
||||||
if get(w:, 'airline_active', 0)
|
if get(w:, 'airline_active', 0)
|
||||||
if !s:init
|
if s:airline_tagbar_last_lookup_time != localtime()
|
||||||
try
|
|
||||||
" try to load the plugin, if filetypes are disabled,
|
|
||||||
" this will cause an error, so try only once
|
|
||||||
let a=tagbar#currenttag('%', '', '')
|
|
||||||
catch
|
|
||||||
endtry
|
|
||||||
unlet! a
|
|
||||||
let s:init=1
|
|
||||||
endif
|
|
||||||
" function tagbar#currenttag does not exist, if filetype is not enabled
|
|
||||||
if s:airline_tagbar_last_lookup_time != localtime() && exists("*tagbar#currenttag")
|
|
||||||
let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
|
let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
|
||||||
let s:airline_tagbar_last_lookup_time = localtime()
|
let s:airline_tagbar_last_lookup_time = localtime()
|
||||||
endif
|
endif
|
||||||
@@ -56,3 +42,4 @@ function! airline#extensions#tagbar#init(ext)
|
|||||||
|
|
||||||
call airline#parts#define_function('tagbar', 'airline#extensions#tagbar#currenttag')
|
call airline#parts#define_function('tagbar', 'airline#extensions#tagbar#currenttag')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! airline#extensions#term#apply(...)
|
|
||||||
if &buftype == 'terminal'
|
|
||||||
let spc = g:airline_symbols.space
|
|
||||||
|
|
||||||
let name=get(g:airline_mode_map, 't', 't')
|
|
||||||
call a:1.add_section('airline_a', spc.name.spc)
|
|
||||||
call a:1.add_section('airline_b', '')
|
|
||||||
call a:1.add_section('airline_term', spc.s:termname())
|
|
||||||
call a:1.split()
|
|
||||||
call a:1.add_section('airline_y', '')
|
|
||||||
call a:1.add_section('airline_z', spc.airline#section#create_right(['linenr', 'maxlinenr']))
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#term#inactive_apply(...)
|
|
||||||
if getbufvar(a:2.bufnr, '&buftype') == 'terminal'
|
|
||||||
let spc = g:airline_symbols.space
|
|
||||||
call a:1.add_section('airline_a', spc.'TERMINAL'.spc)
|
|
||||||
call a:1.add_section('airline_b', spc.'%f')
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:termname()
|
|
||||||
let bufname = bufname('%')
|
|
||||||
if has('nvim')
|
|
||||||
return matchstr(bufname, 'term.*:\zs.*')
|
|
||||||
else
|
|
||||||
" get rid of leading '!'
|
|
||||||
return bufname[1:]
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#term#init(ext)
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#term#apply')
|
|
||||||
call a:ext.add_inactive_statusline_func('airline#extensions#term#inactive_apply')
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':Tmuxline')
|
if !exists(':Tmuxline')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -25,3 +23,4 @@ function! airline#extensions#tmuxline#set_tmux_colors(palette)
|
|||||||
call tmuxline#api#snapshot(s:tmuxline_snapshot_file)
|
call tmuxline#api#snapshot(s:tmuxline_snapshot_file)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists(':UndotreeToggle')
|
if !exists(':UndotreeToggle')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -26,3 +24,4 @@ endfunction
|
|||||||
function! airline#extensions#undotree#init(ext)
|
function! airline#extensions#undotree#init(ext)
|
||||||
call a:ext.add_statusline_func('airline#extensions#undotree#apply')
|
call a:ext.add_statusline_func('airline#extensions#undotree#apply')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_unicodePlugin', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#unicode#apply(...)
|
|
||||||
if exists(":UnicodeTable") == 2 && bufname('') ==# 'UnicodeTable'
|
|
||||||
call airline#parts#define('unicode', {
|
|
||||||
\ 'text': '[UnicodeTable]',
|
|
||||||
\ 'accent': 'bold' })
|
|
||||||
let w:airline_section_a = airline#section#create(['unicode'])
|
|
||||||
let w:airline_section_b = ''
|
|
||||||
let w:airline_section_c = ' '
|
|
||||||
let w:airline_section_y = ''
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#unicode#init(ext)
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#unicode#apply')
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_unite', 0)
|
if !get(g:, 'loaded_unite', 0)
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -22,3 +20,4 @@ function! airline#extensions#unite#init(ext)
|
|||||||
let g:unite_force_overwrite_statusline = 0
|
let g:unite_force_overwrite_statusline = 0
|
||||||
call a:ext.add_statusline_func('airline#extensions#unite#apply')
|
call a:ext.add_statusline_func('airline#extensions#unite#apply')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2016-2018 Jerome Reybert et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
" This plugin replace the whole section_a when in vimagit buffer
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !get(g:, 'loaded_magit', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#vimagit#init(ext)
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#vimagit#apply')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#vimagit#get_mode()
|
|
||||||
if ( exists("*magit#get_current_mode") )
|
|
||||||
return magit#get_current_mode()
|
|
||||||
else
|
|
||||||
if ( b:magit_current_commit_mode == '' )
|
|
||||||
return "STAGING"
|
|
||||||
elseif ( b:magit_current_commit_mode == 'CC' )
|
|
||||||
return "COMMIT"
|
|
||||||
elseif ( b:magit_current_commit_mode == 'CA' )
|
|
||||||
return "AMEND"
|
|
||||||
else
|
|
||||||
return "???"
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#vimagit#apply(...)
|
|
||||||
if ( &filetype == 'magit' )
|
|
||||||
let w:airline_section_a = '%{airline#extensions#vimagit#get_mode()}'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
" This plugin replace the whole section_a when in vimagit buffer
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:spc = g:airline_symbols.space
|
|
||||||
|
|
||||||
function! s:SetDefault(var, val)
|
|
||||||
if !exists(a:var)
|
|
||||||
execute 'let ' . a:var . '=' . string(a:val)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Left and right delimiters (added only when status string is not empty)
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#left', "{")
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#right', "}")
|
|
||||||
|
|
||||||
" The current tex file is the main project file
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#main', "" )
|
|
||||||
"
|
|
||||||
" The current tex file is a subfile of the project
|
|
||||||
" and the compilation is set for the main file
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#sub_main', "m")
|
|
||||||
"
|
|
||||||
" The current tex file is a subfile of the project
|
|
||||||
" and the compilation is set for this subfile
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#sub_local', "l")
|
|
||||||
"
|
|
||||||
" Compilation is running and continuous compilation is off
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#compiled', "c₁")
|
|
||||||
|
|
||||||
" Compilation is running and continuous compilation is on
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#continuous', "c")
|
|
||||||
|
|
||||||
" Viewer is opened
|
|
||||||
call s:SetDefault( 'g:airline#extensions#vimtex#viewer', "v")
|
|
||||||
|
|
||||||
function! airline#extensions#vimtex#init(ext)
|
|
||||||
call airline#parts#define_raw('vimtex', '%{airline#extensions#vimtex#get_scope()}')
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#vimtex#apply')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#vimtex#apply(...)
|
|
||||||
if exists("b:vimtex")
|
|
||||||
let w:airline_section_x = get(w:, 'airline_section_x', g:airline_section_x)
|
|
||||||
let w:airline_section_x.=s:spc.g:airline_left_alt_sep.s:spc.'%{airline#extensions#vimtex#get_scope()}'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#vimtex#get_scope()
|
|
||||||
let l:status = ''
|
|
||||||
|
|
||||||
let vt_local = get(b:, 'vimtex_local', {})
|
|
||||||
if empty(vt_local)
|
|
||||||
let l:status .= g:airline#extensions#vimtex#main
|
|
||||||
else
|
|
||||||
if get(vt_local, 'active')
|
|
||||||
let l:status .= g:airline#extensions#vimtex#sub_local
|
|
||||||
else
|
|
||||||
let l:status .= g:airline#extensions#vimtex#sub_main
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get(get(get(b:, 'vimtex', {}), 'viewer', {}), 'xwin_id')
|
|
||||||
let l:status .= g:airline#extensions#vimtex#viewer
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l:compiler = get(get(b:, 'vimtex', {}), 'compiler', {})
|
|
||||||
if !empty(l:compiler)
|
|
||||||
if has_key(l:compiler, 'is_running') && b:vimtex.compiler.is_running()
|
|
||||||
if get(l:compiler, 'continuous')
|
|
||||||
let l:status .= g:airline#extensions#vimtex#continuous
|
|
||||||
else
|
|
||||||
let l:status .= g:airline#extensions#vimtex#compiled
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !empty(l:status)
|
|
||||||
let l:status = g:airline#extensions#vimtex#left . l:status . g:airline#extensions#vimtex#right
|
|
||||||
endif
|
|
||||||
return l:status
|
|
||||||
endfunction
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:spc = g:airline_symbols.space
|
let s:spc = g:airline_symbols.space
|
||||||
|
|
||||||
function! airline#extensions#virtualenv#init(ext)
|
function! airline#extensions#virtualenv#init(ext)
|
||||||
|
|||||||
@@ -1,20 +1,29 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
" http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html
|
" http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html
|
||||||
|
|
||||||
scriptencoding utf-8
|
" for backwards compatibility
|
||||||
|
if exists('g:airline_detect_whitespace')
|
||||||
|
let s:show_message = g:airline_detect_whitespace == 1
|
||||||
|
else
|
||||||
|
let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1)
|
||||||
|
endif
|
||||||
|
|
||||||
let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1)
|
|
||||||
let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace)
|
let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace)
|
||||||
let s:default_checks = ['indent', 'trailing', 'mixed-indent-file']
|
let s:default_checks = ['indent', 'trailing']
|
||||||
|
|
||||||
|
let s:trailing_format = get(g:, 'airline#extensions#whitespace#trailing_format', 'trailing[%s]')
|
||||||
|
let s:mixed_indent_format = get(g:, 'airline#extensions#whitespace#mixed_indent_format', 'mixed-indent[%s]')
|
||||||
|
let s:long_format = get(g:, 'airline#extensions#whitespace#long_format', 'long[%s]')
|
||||||
|
let s:indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0)
|
||||||
|
|
||||||
|
let s:max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000)
|
||||||
|
|
||||||
let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1)
|
let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1)
|
||||||
let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file']}
|
|
||||||
|
|
||||||
function! s:check_mixed_indent()
|
function! s:check_mixed_indent()
|
||||||
let indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0)
|
if s:indent_algo == 1
|
||||||
if indent_algo == 1
|
|
||||||
" [<tab>]<space><tab>
|
" [<tab>]<space><tab>
|
||||||
" spaces before or between tabs are not allowed
|
" spaces before or between tabs are not allowed
|
||||||
let t_s_t = '(^\t* +\t\s*\S)'
|
let t_s_t = '(^\t* +\t\s*\S)'
|
||||||
@@ -22,103 +31,60 @@ function! s:check_mixed_indent()
|
|||||||
" count of spaces at the end of tabs should be less than tabstop value
|
" count of spaces at the end of tabs should be less than tabstop value
|
||||||
let t_l_s = '(^\t+ {' . &ts . ',}' . '\S)'
|
let t_l_s = '(^\t+ {' . &ts . ',}' . '\S)'
|
||||||
return search('\v' . t_s_t . '|' . t_l_s, 'nw')
|
return search('\v' . t_s_t . '|' . t_l_s, 'nw')
|
||||||
elseif indent_algo == 2
|
elseif s:indent_algo == 2
|
||||||
return search('\v(^\t* +\t\s*\S)', 'nw')
|
return search('\v(^\t* +\t\s*\S)', 'nw')
|
||||||
else
|
else
|
||||||
return search('\v(^\t+ +)|(^ +\t+)', 'nw')
|
return search('\v(^\t+ +)|(^ +\t+)', 'nw')
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:check_mixed_indent_file()
|
|
||||||
let c_like_langs = get(g:, 'airline#extensions#c_like_langs',
|
|
||||||
\ [ 'arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php' ])
|
|
||||||
if index(c_like_langs, &ft) > -1
|
|
||||||
" for C-like languages: allow /** */ comment style with one space before the '*'
|
|
||||||
let head_spc = '\v(^ +\*@!)'
|
|
||||||
else
|
|
||||||
let head_spc = '\v(^ +)'
|
|
||||||
endif
|
|
||||||
let indent_tabs = search('\v(^\t+)', 'nw')
|
|
||||||
let indent_spc = search(head_spc, 'nw')
|
|
||||||
if indent_tabs > 0 && indent_spc > 0
|
|
||||||
return printf("%d:%d", indent_tabs, indent_spc)
|
|
||||||
else
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#whitespace#check()
|
function! airline#extensions#whitespace#check()
|
||||||
let max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000)
|
if &readonly || !&modifiable || !s:enabled || line('$') > s:max_lines
|
||||||
if &readonly || !&modifiable || !s:enabled || line('$') > max_lines
|
|
||||||
\ || get(b:, 'airline_whitespace_disabled', 0)
|
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
let skip_check_ft = extend(s:skip_check_ft,
|
|
||||||
\ get(g:, 'airline#extensions#whitespace#skip_indent_check_ft', {}), 'force')
|
|
||||||
|
|
||||||
if !exists('b:airline_whitespace_check')
|
if !exists('b:airline_whitespace_check')
|
||||||
let b:airline_whitespace_check = ''
|
let b:airline_whitespace_check = ''
|
||||||
let checks = get(b:, 'airline_whitespace_checks', get(g:, 'airline#extensions#whitespace#checks', s:default_checks))
|
let checks = get(g:, 'airline#extensions#whitespace#checks', s:default_checks)
|
||||||
|
|
||||||
let trailing = 0
|
let trailing = 0
|
||||||
let check = 'trailing'
|
if index(checks, 'trailing') > -1
|
||||||
if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0
|
|
||||||
try
|
try
|
||||||
let regexp = get(g:, 'airline#extensions#whitespace#trailing_regexp', '\s$')
|
let regexp = get(g:, 'airline#extensions#whitespace#trailing_regexp', '\s$')
|
||||||
let trailing = search(regexp, 'nw')
|
let trailing = search(regexp, 'nw')
|
||||||
catch
|
catch
|
||||||
call airline#util#warning(printf('Whitespace: error occurred evaluating "%s"', regexp))
|
echomsg 'airline#whitespace: error occured evaluating '. regexp
|
||||||
echomsg v:exception
|
echomsg v:exception
|
||||||
return ''
|
return ''
|
||||||
endtry
|
endtry
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let mixed = 0
|
let mixed = 0
|
||||||
let check = 'indent'
|
if index(checks, 'indent') > -1
|
||||||
if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0
|
|
||||||
let mixed = s:check_mixed_indent()
|
let mixed = s:check_mixed_indent()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let mixed_file = ''
|
|
||||||
let check = 'mixed-indent-file'
|
|
||||||
if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0
|
|
||||||
let mixed_file = s:check_mixed_indent_file()
|
|
||||||
endif
|
|
||||||
|
|
||||||
let long = 0
|
let long = 0
|
||||||
if index(checks, 'long') > -1 && &tw > 0
|
if index(checks, 'long') > -1 && &tw > 0
|
||||||
let long = search('\%>'.&tw.'v.\+', 'nw')
|
let long = search('\%>'.&tw.'v.\+', 'nw')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if trailing != 0 || mixed != 0 || long != 0 || !empty(mixed_file)
|
if trailing != 0 || mixed != 0 || long != 0
|
||||||
let b:airline_whitespace_check = s:symbol
|
let b:airline_whitespace_check = s:symbol
|
||||||
if strlen(s:symbol) > 0
|
|
||||||
let space = (g:airline_symbols.space)
|
|
||||||
else
|
|
||||||
let space = ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:show_message
|
if s:show_message
|
||||||
if trailing != 0
|
if trailing != 0
|
||||||
let trailing_fmt = get(g:, 'airline#extensions#whitespace#trailing_format', '[%s]trailing')
|
let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:trailing_format, trailing)
|
||||||
let b:airline_whitespace_check .= space.printf(trailing_fmt, trailing)
|
|
||||||
endif
|
endif
|
||||||
if mixed != 0
|
if mixed != 0
|
||||||
let mixed_indent_fmt = get(g:, 'airline#extensions#whitespace#mixed_indent_format', '[%s]mixed-indent')
|
let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:mixed_indent_format, mixed)
|
||||||
let b:airline_whitespace_check .= space.printf(mixed_indent_fmt, mixed)
|
|
||||||
endif
|
endif
|
||||||
if long != 0
|
if long != 0
|
||||||
let long_fmt = get(g:, 'airline#extensions#whitespace#long_format', '[%s]long')
|
let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:long_format, long)
|
||||||
let b:airline_whitespace_check .= space.printf(long_fmt, long)
|
|
||||||
endif
|
|
||||||
if !empty(mixed_file)
|
|
||||||
let mixed_indent_file_fmt = get(g:, 'airline#extensions#whitespace#mixed_indent_file_format', '[%s]mix-indent-file')
|
|
||||||
let b:airline_whitespace_check .= space.printf(mixed_indent_file_fmt, mixed_file)
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return airline#util#shorten(b:airline_whitespace_check, 120, 9)
|
return b:airline_whitespace_check
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#whitespace#toggle()
|
function! airline#extensions#whitespace#toggle()
|
||||||
@@ -140,13 +106,7 @@ function! airline#extensions#whitespace#toggle()
|
|||||||
call airline#update_statusline()
|
call airline#update_statusline()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
call airline#util#warning(printf('Whitespace checking: %s',(s:enabled ? 'Enabled' : 'Disabled')))
|
echo 'Whitespace checking: '.(s:enabled ? 'Enabled' : 'Disabled')
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#whitespace#disable()
|
|
||||||
if s:enabled
|
|
||||||
call airline#extensions#whitespace#toggle()
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#whitespace#init(...)
|
function! airline#extensions#whitespace#init(...)
|
||||||
@@ -155,17 +115,7 @@ function! airline#extensions#whitespace#init(...)
|
|||||||
unlet! b:airline_whitespace_check
|
unlet! b:airline_whitespace_check
|
||||||
augroup airline_whitespace
|
augroup airline_whitespace
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd CursorHold,BufWritePost * call <sid>ws_refresh()
|
autocmd CursorHold,BufWritePost * unlet! b:airline_whitespace_check
|
||||||
augroup END
|
augroup END
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:ws_refresh()
|
|
||||||
if get(b:, 'airline_ws_changedtick', 0) == b:changedtick
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
unlet! b:airline_whitespace_check
|
|
||||||
if get(g:, 'airline_skip_empty_sections', 0)
|
|
||||||
exe ':AirlineRefresh'
|
|
||||||
endif
|
|
||||||
let b:airline_ws_changedtick = b:changedtick
|
|
||||||
endfunction
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists('g:loaded_windowswap')
|
if !exists('g:loaded_windowswap')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -18,12 +15,9 @@ function! airline#extensions#windowswap#init(ext)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#windowswap#get_status()
|
function! airline#extensions#windowswap#get_status()
|
||||||
" use new tab-aware api if WS is up to date
|
if WindowSwap#HasMarkedWindow() && WindowSwap#GetMarkedWindowNum() == winnr()
|
||||||
let s:mark = exists('*WindowSwap#IsCurrentWindowMarked') ?
|
|
||||||
\WindowSwap#IsCurrentWindowMarked() :
|
|
||||||
\(WindowSwap#HasMarkedWindow() && WindowSwap#GetMarkedWindowNum() == winnr())
|
|
||||||
if s:mark
|
|
||||||
return g:airline#extensions#windowswap#indicator_text.s:spc
|
return g:airline#extensions#windowswap#indicator_text.s:spc
|
||||||
endif
|
endif
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,117 +1,30 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2 fdm=marker
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:filetypes = get(g:, 'airline#extensions#wordcount#filetypes', '\vhelp|markdown|rst|org|text')
|
||||||
|
let s:format = get(g:, 'airline#extensions#wordcount#format', '%d words')
|
||||||
" get wordcount {{{1
|
|
||||||
if exists('*wordcount')
|
|
||||||
function! s:get_wordcount(visual_mode_active)
|
|
||||||
let query = a:visual_mode_active ? 'visual_words' : 'words'
|
|
||||||
return get(wordcount(), query, 0)
|
|
||||||
endfunction
|
|
||||||
else " Pull wordcount from the g_ctrl-g stats
|
|
||||||
function! s:get_wordcount(visual_mode_active)
|
|
||||||
let pattern = a:visual_mode_active
|
|
||||||
\ ? '^.\D*\d\+\D\+\d\+\D\+\zs\d\+'
|
|
||||||
\ : '^.\D*\%(\d\+\D\+\)\{5}\zs\d\+'
|
|
||||||
|
|
||||||
let save_status = v:statusmsg
|
|
||||||
if !a:visual_mode_active && col('.') == col('$')
|
|
||||||
let save_pos = getpos('.')
|
|
||||||
execute "silent normal! g\<c-g>"
|
|
||||||
call setpos('.', save_pos)
|
|
||||||
else
|
|
||||||
execute "silent normal! g\<c-g>"
|
|
||||||
endif
|
|
||||||
let stats = v:statusmsg
|
|
||||||
let v:statusmsg = save_status
|
|
||||||
|
|
||||||
return str2nr(matchstr(stats, pattern))
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
" format {{{1
|
|
||||||
let s:formatter = get(g:, 'airline#extensions#wordcount#formatter', 'default')
|
let s:formatter = get(g:, 'airline#extensions#wordcount#formatter', 'default')
|
||||||
|
|
||||||
" wrapper function for compatibility; redefined below for old-style formatters
|
function! s:update()
|
||||||
function! s:format_wordcount(wordcount)
|
if match(&ft, s:filetypes) > -1
|
||||||
return airline#extensions#wordcount#formatters#{s:formatter}#to_string(a:wordcount)
|
if get(b:, 'airline_wordcount_cache', '') is# '' ||
|
||||||
endfunction
|
\ b:airline_wordcount_cache isnot# get(b:, 'airline_wordcount', '') ||
|
||||||
|
\ get(b:, 'airline_change_tick', 0) != b:changedtick
|
||||||
" check user-defined formatter exists with appropriate functions, otherwise
|
" cache data
|
||||||
" fall back to default
|
let b:airline_wordcount = airline#extensions#wordcount#formatters#{s:formatter}#format()
|
||||||
if s:formatter !=# 'default'
|
let b:airline_wordcount_cache = b:airline_wordcount
|
||||||
execute 'runtime! autoload/airline/extensions/wordcount/formatters/'.s:formatter
|
let b:airline_change_tick = b:changedtick
|
||||||
if !exists('*airline#extensions#wordcount#formatters#{s:formatter}#to_string')
|
|
||||||
if !exists('*airline#extensions#wordcount#formatters#{s:formatter}#format')
|
|
||||||
let s:formatter = 'default'
|
|
||||||
else
|
|
||||||
" redefine for backwords compatibility
|
|
||||||
function! s:format_wordcount(_)
|
|
||||||
if mode() ==? 'v'
|
|
||||||
return b:airline_wordcount
|
|
||||||
else
|
|
||||||
return airline#extensions#wordcount#formatters#{s:formatter}#format()
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
" update {{{1
|
|
||||||
let s:wordcount_cache = 0 " cache wordcount for performance when force_update=0
|
|
||||||
function! s:update_wordcount(force_update)
|
|
||||||
let wordcount = s:get_wordcount(0)
|
|
||||||
if wordcount != s:wordcount_cache || a:force_update
|
|
||||||
let s:wordcount_cache = wordcount
|
|
||||||
let b:airline_wordcount = s:format_wordcount(wordcount)
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:visual_active = 0 " Boolean: for when to get visual wordcount
|
|
||||||
function airline#extensions#wordcount#get()
|
|
||||||
if s:visual_active
|
|
||||||
return s:format_wordcount(s:get_wordcount(1))
|
|
||||||
else
|
|
||||||
if get(b:, 'airline_changedtick', 0) != b:changedtick
|
|
||||||
call s:update_wordcount(0)
|
|
||||||
let b:airline_changedtick = b:changedtick
|
|
||||||
endif
|
|
||||||
return get(b:, 'airline_wordcount', '')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" airline functions {{{1
|
|
||||||
" default filetypes:
|
|
||||||
let s:filetypes = ['help', 'markdown', 'rst', 'org', 'text', 'asciidoc', 'tex', 'mail']
|
|
||||||
function! airline#extensions#wordcount#apply(...)
|
function! airline#extensions#wordcount#apply(...)
|
||||||
let filetypes = get(g:, 'airline#extensions#wordcount#filetypes', s:filetypes)
|
if &ft =~ s:filetypes
|
||||||
|
call airline#extensions#prepend_to_section('z', '%{get(b:, "airline_wordcount", "")}')
|
||||||
" Check if filetype needs testing
|
|
||||||
if did_filetype() || filetypes isnot s:filetypes
|
|
||||||
let s:filetypes = filetypes
|
|
||||||
|
|
||||||
" Select test based on type of "filetypes": new=list, old=string
|
|
||||||
if type(filetypes) == get(v:, 't_list', type([]))
|
|
||||||
\ ? index(filetypes, &filetype) > -1 || index(filetypes, 'all') > -1
|
|
||||||
\ : match(&filetype, filetypes) > -1
|
|
||||||
let b:airline_changedtick = -1
|
|
||||||
call s:update_wordcount(1) " force update: ensures initial worcount exists
|
|
||||||
elseif exists('b:airline_wordcount') " cleanup when filetype is removed
|
|
||||||
unlet b:airline_wordcount
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists('b:airline_wordcount')
|
|
||||||
call airline#extensions#prepend_to_section(
|
|
||||||
\ 'z', '%{airline#extensions#wordcount#get()}')
|
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#wordcount#init(ext)
|
function! airline#extensions#wordcount#init(ext)
|
||||||
augroup airline_wordcount
|
|
||||||
autocmd! User AirlineModeChanged nested
|
|
||||||
\ let s:visual_active = (mode() ==? 'v' || mode() ==? 's')
|
|
||||||
augroup END
|
|
||||||
call a:ext.add_statusline_func('airline#extensions#wordcount#apply')
|
call a:ext.add_statusline_func('airline#extensions#wordcount#apply')
|
||||||
|
autocmd BufReadPost,CursorMoved,CursorMovedI * call s:update()
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,39 +1,48 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
function! airline#extensions#wordcount#formatters#default#format()
|
||||||
|
let words = string(s:wordcount())
|
||||||
function! airline#extensions#wordcount#formatters#default#update_fmt(...)
|
if empty(words)
|
||||||
let s:fmt = get(g:, 'airline#extensions#wordcount#formatter#default#fmt', '%s words')
|
return
|
||||||
let s:fmt_short = get(g:, 'airline#extensions#wordcount#formatter#default#fmt_short', s:fmt == '%s words' ? '%sW' : s:fmt)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Reload format when statusline is rebuilt
|
|
||||||
call airline#extensions#wordcount#formatters#default#update_fmt()
|
|
||||||
if index(g:airline_statusline_funcrefs, function('airline#extensions#wordcount#formatters#default#update_fmt')) == -1
|
|
||||||
" only add it, if not already done
|
|
||||||
call airline#add_statusline_funcref(function('airline#extensions#wordcount#formatters#default#update_fmt'))
|
|
||||||
endif
|
|
||||||
|
|
||||||
if match(get(v:, 'lang', ''), '\v\cC|en') > -1
|
|
||||||
let s:decimal_group = ','
|
|
||||||
elseif match(get(v:, 'lang', ''), '\v\cde|dk|fr|pt') > -1
|
|
||||||
let s:decimal_group = '.'
|
|
||||||
else
|
|
||||||
let s:decimal_group = ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#wordcount#formatters#default#to_string(wordcount)
|
|
||||||
if winwidth(0) >= 80
|
|
||||||
if a:wordcount > 999
|
|
||||||
" Format number according to locale, e.g. German: 1.245 or English: 1,245
|
|
||||||
let wordcount = substitute(a:wordcount, '\d\@<=\(\(\d\{3\}\)\+\)$', s:decimal_group.'&', 'g')
|
|
||||||
else
|
|
||||||
let wordcount = a:wordcount
|
|
||||||
endif
|
|
||||||
let str = printf(s:fmt, wordcount)
|
|
||||||
else
|
|
||||||
let str = printf(s:fmt_short, a:wordcount)
|
|
||||||
endif
|
endif
|
||||||
return str . g:airline_symbols.space . g:airline_right_alt_sep . g:airline_symbols.space
|
let separator = s:get_decimal_group()
|
||||||
|
if words > 999 && !empty(separator)
|
||||||
|
" Format number according to locale, e.g. German: 1.245 or English: 1,245
|
||||||
|
let a = join(reverse(split(words, '.\zs')),'')
|
||||||
|
let a = substitute(a, '...', '&'.separator, 'g')
|
||||||
|
let words = join(reverse(split(a, '.\zs')),'')
|
||||||
|
endif
|
||||||
|
return words . " words" . g:airline_symbols.space . g:airline_right_alt_sep . g:airline_symbols.space
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:wordcount()
|
||||||
|
if exists("*wordcount")
|
||||||
|
return wordcount()['words']
|
||||||
|
elseif mode() =~? 's'
|
||||||
|
return
|
||||||
|
else
|
||||||
|
let old_status = v:statusmsg
|
||||||
|
let position = getpos(".")
|
||||||
|
exe "silent normal! g\<c-g>"
|
||||||
|
let stat = v:statusmsg
|
||||||
|
call setpos('.', position)
|
||||||
|
let v:statusmsg = old_status
|
||||||
|
|
||||||
|
let parts = split(stat)
|
||||||
|
if len(parts) > 11
|
||||||
|
return str2nr(parts[11])
|
||||||
|
else
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:get_decimal_group()
|
||||||
|
if match(v:lang, '\v\cC|en') > -1
|
||||||
|
return ','
|
||||||
|
elseif match(v:lang, '\v\cde|dk|fr') > -1
|
||||||
|
return '.'
|
||||||
|
endif
|
||||||
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2017-2018 YoungHoon Rhiu et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
if !exists('g:XkbSwitchLib')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! airline#extensions#xkblayout#status()
|
|
||||||
let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
|
|
||||||
let keyboard_layout = split(keyboard_layout, '\.')[-1]
|
|
||||||
let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'})
|
|
||||||
|
|
||||||
if has_key(short_codes, keyboard_layout)
|
|
||||||
let keyboard_layout = short_codes[keyboard_layout]
|
|
||||||
endif
|
|
||||||
|
|
||||||
return keyboard_layout
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#xkblayout#init(ext)
|
|
||||||
call airline#parts#define_function('xkblayout', 'airline#extensions#xkblayout#status')
|
|
||||||
endfunction
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
" MIT License. Copyright (c) 2015-2018 Evgeny Firsov et al.
|
|
||||||
" vim: et ts=2 sts=2 sw=2
|
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:spc = g:airline_symbols.space
|
|
||||||
let s:error_symbol = get(g:, 'airline#extensions#ycm#error_symbol', 'E:')
|
|
||||||
let s:warning_symbol = get(g:, 'airline#extensions#ycm#warning_symbol', 'W:')
|
|
||||||
|
|
||||||
function! airline#extensions#ycm#init(ext)
|
|
||||||
call airline#parts#define_function('ycm_error_count', 'airline#extensions#ycm#get_error_count')
|
|
||||||
call airline#parts#define_function('ycm_warning_count', 'airline#extensions#ycm#get_warning_count')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#ycm#get_error_count()
|
|
||||||
if exists(':YcmDiag') && exists("*youcompleteme#GetErrorCount")
|
|
||||||
let cnt = youcompleteme#GetErrorCount()
|
|
||||||
|
|
||||||
if cnt != 0
|
|
||||||
return s:error_symbol.cnt
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#extensions#ycm#get_warning_count()
|
|
||||||
if exists(':YcmDiag') && exists("*youcompleteme#GetWarningCount")
|
|
||||||
let cnt = youcompleteme#GetWarningCount()
|
|
||||||
|
|
||||||
if cnt != 0
|
|
||||||
return s:warning_symbol.cnt.s:spc
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
@@ -1,16 +1,10 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
let s:is_win32term = (has('win32') || has('win64')) && !has('gui_running') && (empty($CONEMUBUILD) || &term !=? 'xterm')
|
||||||
|
|
||||||
let s:is_win32term = (has('win32') || has('win64')) &&
|
|
||||||
\ !has('gui_running') &&
|
|
||||||
\ (empty($CONEMUBUILD) || &term !=? 'xterm') &&
|
|
||||||
\ !(exists("+termguicolors") && &termguicolors)
|
|
||||||
|
|
||||||
let s:separators = {}
|
let s:separators = {}
|
||||||
let s:accents = {}
|
let s:accents = {}
|
||||||
let s:hl_groups = {}
|
|
||||||
|
|
||||||
function! s:gui2cui(rgb, fallback)
|
function! s:gui2cui(rgb, fallback)
|
||||||
if a:rgb == ''
|
if a:rgb == ''
|
||||||
@@ -22,68 +16,39 @@ function! s:gui2cui(rgb, fallback)
|
|||||||
return airline#msdos#round_msdos_colors(rgb)
|
return airline#msdos#round_msdos_colors(rgb)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:group_not_done(list, name)
|
|
||||||
if index(a:list, a:name) == -1
|
|
||||||
call add(a:list, a:name)
|
|
||||||
return 1
|
|
||||||
else
|
|
||||||
if &vbs
|
|
||||||
echomsg printf("airline: group: %s already done, skipping", a:name)
|
|
||||||
endif
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
endfu
|
|
||||||
|
|
||||||
function! s:get_syn(group, what)
|
function! s:get_syn(group, what)
|
||||||
if !exists("g:airline_gui_mode")
|
" need to pass in mode, known to break on 7.3.547
|
||||||
let g:airline_gui_mode = airline#init#gui_mode()
|
let mode = has('gui_running') || (has("termtruecolor") && &guicolors == 1) ? 'gui' : 'cterm'
|
||||||
endif
|
let color = synIDattr(synIDtrans(hlID(a:group)), a:what, mode)
|
||||||
let color = ''
|
if empty(color) || color == -1
|
||||||
if hlexists(a:group)
|
let color = synIDattr(synIDtrans(hlID('Normal')), a:what, mode)
|
||||||
let color = synIDattr(synIDtrans(hlID(a:group)), a:what, g:airline_gui_mode)
|
|
||||||
endif
|
endif
|
||||||
if empty(color) || color == -1
|
if empty(color) || color == -1
|
||||||
" should always exists
|
if has('gui_running') || (has("termtruecolor") && &guicolors == 1)
|
||||||
let color = synIDattr(synIDtrans(hlID('Normal')), a:what, g:airline_gui_mode)
|
let color = a:what ==# 'fg' ? '#000000' : '#FFFFFF'
|
||||||
" however, just in case
|
else
|
||||||
if empty(color) || color == -1
|
let color = a:what ==# 'fg' ? 0 : 1
|
||||||
let color = 'NONE'
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return color
|
return color
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:get_array(fg, bg, opts)
|
function! s:get_array(fg, bg, opts)
|
||||||
let opts=empty(a:opts) ? '' : join(a:opts, ',')
|
let fg = a:fg
|
||||||
return g:airline_gui_mode ==# 'gui'
|
let bg = a:bg
|
||||||
\ ? [ a:fg, a:bg, '', '', opts ]
|
return has('gui_running') || (has("termtruecolor") && &guicolors == 1)
|
||||||
\ : [ '', '', a:fg, a:bg, opts ]
|
\ ? [ fg, bg, '', '', join(a:opts, ',') ]
|
||||||
endfunction
|
\ : [ '', '', fg, bg, join(a:opts, ',') ]
|
||||||
|
|
||||||
function! airline#highlighter#reset_hlcache()
|
|
||||||
let s:hl_groups = {}
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#get_highlight(group, ...)
|
function! airline#highlighter#get_highlight(group, ...)
|
||||||
let reverse = get(g:, 'airline_gui_mode', '') ==# 'gui'
|
let fg = s:get_syn(a:group, 'fg')
|
||||||
\ ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui')
|
let bg = s:get_syn(a:group, 'bg')
|
||||||
\ : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')
|
let reverse = has('gui_running') || (has("termtruecolor") && &guicolors == 1)
|
||||||
\|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
|
\ ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui')
|
||||||
if get(g:, 'airline_highlighting_cache', 0) && has_key(s:hl_groups, a:group)
|
\ : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')
|
||||||
let res = s:hl_groups[a:group]
|
\|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
|
||||||
return reverse ? [ res[1], res[0], res[3], res[2], res[4] ] : res
|
return reverse ? s:get_array(bg, fg, a:000) : s:get_array(fg, bg, a:000)
|
||||||
else
|
|
||||||
let fg = s:get_syn(a:group, 'fg')
|
|
||||||
let bg = s:get_syn(a:group, 'bg')
|
|
||||||
let bold = synIDattr(synIDtrans(hlID(a:group)), 'bold')
|
|
||||||
let opts = a:000
|
|
||||||
if bold
|
|
||||||
let opts = ['bold']
|
|
||||||
endif
|
|
||||||
let res = reverse ? s:get_array(bg, fg, opts) : s:get_array(fg, bg, opts)
|
|
||||||
endif
|
|
||||||
let s:hl_groups[a:group] = res
|
|
||||||
return res
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#get_highlight2(fg, bg, ...)
|
function! airline#highlighter#get_highlight2(fg, bg, ...)
|
||||||
@@ -92,107 +57,27 @@ function! airline#highlighter#get_highlight2(fg, bg, ...)
|
|||||||
return s:get_array(fg, bg, a:000)
|
return s:get_array(fg, bg, a:000)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:hl_group_exists(group)
|
|
||||||
if !hlexists(a:group)
|
|
||||||
return 0
|
|
||||||
elseif empty(synIDattr(hlID(a:group), 'fg'))
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
return 1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#highlighter#exec(group, colors)
|
function! airline#highlighter#exec(group, colors)
|
||||||
if pumvisible()
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
let colors = a:colors
|
let colors = a:colors
|
||||||
if s:is_win32term
|
if s:is_win32term
|
||||||
let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
|
let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
|
||||||
let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
|
let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
|
||||||
endif
|
endif
|
||||||
let old_hi = airline#highlighter#get_highlight(a:group)
|
exec printf('hi %s %s %s %s %s %s %s %s',
|
||||||
if len(colors) == 4
|
\ a:group,
|
||||||
call add(colors, '')
|
\ get(colors, 0, '') isnot# '' ? 'guifg='.colors[0] : '',
|
||||||
endif
|
\ get(colors, 1, '') isnot# '' ? 'guibg='.colors[1] : '',
|
||||||
if g:airline_gui_mode ==# 'gui'
|
\ get(colors, 2, '') isnot# '' ? 'ctermfg='.colors[2] : '',
|
||||||
let new_hi = [colors[0], colors[1], '', '', colors[4]]
|
\ get(colors, 3, '') isnot# '' ? 'ctermbg='.colors[3] : '',
|
||||||
else
|
\ get(colors, 4, '') isnot# '' ? 'gui='.colors[4] : '',
|
||||||
let new_hi = ['', '', printf("%s", colors[2]), printf("%s", colors[3]), colors[4]]
|
\ get(colors, 4, '') isnot# '' ? 'cterm='.colors[4] : '',
|
||||||
endif
|
\ get(colors, 4, '') isnot# '' ? 'term='.colors[4] : '')
|
||||||
let colors = s:CheckDefined(colors)
|
|
||||||
if old_hi != new_hi || !s:hl_group_exists(a:group)
|
|
||||||
let cmd = printf('hi %s%s', a:group, s:GetHiCmd(colors))
|
|
||||||
exe cmd
|
|
||||||
if has_key(s:hl_groups, a:group)
|
|
||||||
let s:hl_groups[a:group] = colors
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:CheckDefined(colors)
|
|
||||||
" Checks, whether the definition of the colors is valid and is not empty or NONE
|
|
||||||
" e.g. if the colors would expand to this:
|
|
||||||
" hi airline_c ctermfg=NONE ctermbg=NONE
|
|
||||||
" that means to clear that highlighting group, therefore, fallback to Normal
|
|
||||||
" highlighting group for the cterm values
|
|
||||||
|
|
||||||
" This only works, if the Normal highlighting group is actually defined, so
|
|
||||||
" return early, if it has been cleared
|
|
||||||
if !exists("g:airline#highlighter#normal_fg_hi")
|
|
||||||
let g:airline#highlighter#normal_fg_hi = synIDattr(synIDtrans(hlID('Normal')), 'fg', 'cterm')
|
|
||||||
endif
|
|
||||||
if empty(g:airline#highlighter#normal_fg_hi) || g:airline#highlighter#normal_fg_hi < 0
|
|
||||||
return a:colors
|
|
||||||
endif
|
|
||||||
|
|
||||||
for val in a:colors
|
|
||||||
if !empty(val) && val !=# 'NONE'
|
|
||||||
return a:colors
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
" this adds the bold attribute to the term argument of the :hi command,
|
|
||||||
" but at least this makes sure, the group will be defined
|
|
||||||
let fg = g:airline#highlighter#normal_fg_hi
|
|
||||||
let bg = synIDattr(synIDtrans(hlID('Normal')), 'bg', 'cterm')
|
|
||||||
if bg < 0
|
|
||||||
" in case there is no background color defined for Normal
|
|
||||||
let bg = a:colors[3]
|
|
||||||
endif
|
|
||||||
return a:colors[0:1] + [fg, bg] + [a:colors[4]]
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:GetHiCmd(list)
|
|
||||||
" a:list needs to have 5 items!
|
|
||||||
let res = ''
|
|
||||||
let i = -1
|
|
||||||
while i < 4
|
|
||||||
let i += 1
|
|
||||||
let item = get(a:list, i, '')
|
|
||||||
if item is ''
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
if i == 0
|
|
||||||
let res .= ' guifg='.item
|
|
||||||
elseif i == 1
|
|
||||||
let res .= ' guibg='.item
|
|
||||||
elseif i == 2
|
|
||||||
let res .= ' ctermfg='.item
|
|
||||||
elseif i == 3
|
|
||||||
let res .= ' ctermbg='.item
|
|
||||||
elseif i == 4
|
|
||||||
let res .= printf(' gui=%s cterm=%s term=%s', item, item, item)
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
return res
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:exec_separator(dict, from, to, inverse, suffix)
|
function! s:exec_separator(dict, from, to, inverse, suffix)
|
||||||
if pumvisible()
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
let group = a:from.'_to_'.a:to.a:suffix
|
|
||||||
let l:from = airline#themes#get_highlight(a:from.a:suffix)
|
let l:from = airline#themes#get_highlight(a:from.a:suffix)
|
||||||
let l:to = airline#themes#get_highlight(a:to.a:suffix)
|
let l:to = airline#themes#get_highlight(a:to.a:suffix)
|
||||||
|
let group = a:from.'_to_'.a:to.a:suffix
|
||||||
if a:inverse
|
if a:inverse
|
||||||
let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
|
let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
|
||||||
else
|
else
|
||||||
@@ -203,18 +88,11 @@ function! s:exec_separator(dict, from, to, inverse, suffix)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#load_theme()
|
function! airline#highlighter#load_theme()
|
||||||
if pumvisible()
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
for winnr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
for winnr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
||||||
call airline#highlighter#highlight_modified_inactive(winbufnr(winnr))
|
call airline#highlighter#highlight_modified_inactive(winbufnr(winnr))
|
||||||
endfor
|
endfor
|
||||||
call airline#highlighter#highlight(['inactive'])
|
call airline#highlighter#highlight(['inactive'])
|
||||||
if getbufvar( bufnr('%'), '&modified' )
|
call airline#highlighter#highlight(['normal'])
|
||||||
call airline#highlighter#highlight(['normal', 'modified'])
|
|
||||||
else
|
|
||||||
call airline#highlighter#highlight(['normal'])
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#add_separator(from, to, inverse)
|
function! airline#highlighter#add_separator(from, to, inverse)
|
||||||
@@ -240,46 +118,18 @@ function! airline#highlighter#highlight_modified_inactive(bufnr)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#highlight(modes, ...)
|
function! airline#highlighter#highlight(modes)
|
||||||
let bufnr = a:0 ? a:1 : ''
|
|
||||||
let p = g:airline#themes#{g:airline_theme}#palette
|
let p = g:airline#themes#{g:airline_theme}#palette
|
||||||
|
|
||||||
" draw the base mode, followed by any overrides
|
" draw the base mode, followed by any overrides
|
||||||
let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
|
let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
|
||||||
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
|
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
|
||||||
let airline_grouplist = []
|
for mode in mapped
|
||||||
let buffers_in_tabpage = sort(tabpagebuflist())
|
|
||||||
if exists("*uniq")
|
|
||||||
let buffers_in_tabpage = uniq(buffers_in_tabpage)
|
|
||||||
endif
|
|
||||||
" mapped might be something like ['normal', 'normal_modified']
|
|
||||||
" if a group is in both modes available, only define the second
|
|
||||||
" that is how this was done previously overwrite the previous definition
|
|
||||||
for mode in reverse(mapped)
|
|
||||||
if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
|
if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
|
||||||
let dict = g:airline#themes#{g:airline_theme}#palette[mode]
|
let dict = g:airline#themes#{g:airline_theme}#palette[mode]
|
||||||
for kvp in items(dict)
|
for kvp in items(dict)
|
||||||
let mode_colors = kvp[1]
|
let mode_colors = kvp[1]
|
||||||
let name = kvp[0]
|
call airline#highlighter#exec(kvp[0].suffix, mode_colors)
|
||||||
if name is# 'airline_c' && !empty(bufnr) && suffix is# '_inactive'
|
|
||||||
let name = 'airline_c'.bufnr
|
|
||||||
endif
|
|
||||||
" do not re-create highlighting for buffers that are no longer visible
|
|
||||||
" in the current tabpage
|
|
||||||
if name =~# 'airline_c\d\+'
|
|
||||||
let bnr = matchstr(name, 'airline_c\zs\d\+') + 0
|
|
||||||
if bnr > 0 && index(buffers_in_tabpage, bnr) == -1
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
elseif (name =~# '_to_') || (name[0:10] is# 'airline_tab' && !empty(suffix))
|
|
||||||
" group will be redefined below at exec_separator
|
|
||||||
" or is not needed for tabline with '_inactive' suffix
|
|
||||||
" since active flag is 1 for builder)
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
if s:group_not_done(airline_grouplist, name.suffix)
|
|
||||||
call airline#highlighter#exec(name.suffix, mode_colors)
|
|
||||||
endif
|
|
||||||
|
|
||||||
for accent in keys(s:accents)
|
for accent in keys(s:accents)
|
||||||
if !has_key(p.accents, accent)
|
if !has_key(p.accents, accent)
|
||||||
@@ -297,23 +147,15 @@ function! airline#highlighter#highlight(modes, ...)
|
|||||||
else
|
else
|
||||||
call add(colors, get(p.accents[accent], 4, ''))
|
call add(colors, get(p.accents[accent], 4, ''))
|
||||||
endif
|
endif
|
||||||
if s:group_not_done(airline_grouplist, name.suffix.'_'.accent)
|
call airline#highlighter#exec(kvp[0].suffix.'_'.accent, colors)
|
||||||
call airline#highlighter#exec(name.suffix.'_'.accent, colors)
|
|
||||||
endif
|
|
||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
if empty(s:separators)
|
|
||||||
" nothing to be done
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
" TODO: optimize this
|
" TODO: optimize this
|
||||||
for sep in items(s:separators)
|
for sep in items(s:separators)
|
||||||
" we cannot check, that the group already exists, else the separators
|
|
||||||
" might not be correctly defined. But perhaps we can skip above groups
|
|
||||||
" that match the '_to_' name, because they would be redefined here...
|
|
||||||
call <sid>exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
|
call <sid>exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
+31
-116
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
function! s:check_defined(variable, default)
|
function! s:check_defined(variable, default)
|
||||||
if !exists(a:variable)
|
if !exists(a:variable)
|
||||||
let {a:variable} = a:default
|
let {a:variable} = a:default
|
||||||
@@ -17,117 +15,56 @@ function! airline#init#bootstrap()
|
|||||||
let s:loaded = 1
|
let s:loaded = 1
|
||||||
|
|
||||||
let g:airline#init#bootstrapping = 1
|
let g:airline#init#bootstrapping = 1
|
||||||
|
call s:check_defined('g:airline_left_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b0":">")
|
||||||
let g:airline#init#vim_async = (v:version >= 800 && has('job'))
|
call s:check_defined('g:airline_left_alt_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b1":">")
|
||||||
let g:airline#init#is_windows = has('win32') || has('win64')
|
call s:check_defined('g:airline_right_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b2":"<")
|
||||||
|
call s:check_defined('g:airline_right_alt_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b3":"<")
|
||||||
call s:check_defined('g:airline_detect_modified', 1)
|
call s:check_defined('g:airline_detect_modified', 1)
|
||||||
call s:check_defined('g:airline_detect_paste', 1)
|
call s:check_defined('g:airline_detect_paste', 1)
|
||||||
call s:check_defined('g:airline_detect_crypt', 1)
|
call s:check_defined('g:airline_detect_crypt', 1)
|
||||||
call s:check_defined('g:airline_detect_spell', 1)
|
|
||||||
call s:check_defined('g:airline_detect_spelllang', 1)
|
|
||||||
call s:check_defined('g:airline_detect_iminsert', 0)
|
call s:check_defined('g:airline_detect_iminsert', 0)
|
||||||
call s:check_defined('g:airline_inactive_collapse', 1)
|
call s:check_defined('g:airline_inactive_collapse', 1)
|
||||||
call s:check_defined('g:airline_exclude_filenames', ['DebuggerWatch','DebuggerStack','DebuggerStatus'])
|
call s:check_defined('g:airline_exclude_filenames', ['DebuggerWatch','DebuggerStack','DebuggerStatus'])
|
||||||
call s:check_defined('g:airline_exclude_filetypes', [])
|
call s:check_defined('g:airline_exclude_filetypes', [])
|
||||||
call s:check_defined('g:airline_exclude_preview', 0)
|
call s:check_defined('g:airline_exclude_preview', 0)
|
||||||
call s:check_defined('g:airline_gui_mode', airline#init#gui_mode())
|
|
||||||
|
|
||||||
call s:check_defined('g:airline_mode_map', {})
|
call s:check_defined('g:airline_mode_map', {})
|
||||||
call extend(g:airline_mode_map, {
|
call extend(g:airline_mode_map, {
|
||||||
\ '__' : '------',
|
\ '__' : '------',
|
||||||
\ 'c' : 'COMMAND',
|
|
||||||
\ 'i' : 'INSERT',
|
|
||||||
\ 'ic' : 'INSERT COMPL',
|
|
||||||
\ 'ix' : 'INSERT COMPL',
|
|
||||||
\ 'n' : 'NORMAL',
|
\ 'n' : 'NORMAL',
|
||||||
\ 'ni' : '(INSERT)',
|
\ 'i' : 'INSERT',
|
||||||
\ 'no' : 'OP PENDING',
|
|
||||||
\ 'R' : 'REPLACE',
|
\ 'R' : 'REPLACE',
|
||||||
\ 'Rv' : 'V REPLACE',
|
\ 'v' : 'VISUAL',
|
||||||
|
\ 'V' : 'V-LINE',
|
||||||
|
\ 'c' : 'COMMAND',
|
||||||
|
\ '' : 'V-BLOCK',
|
||||||
\ 's' : 'SELECT',
|
\ 's' : 'SELECT',
|
||||||
\ 'S' : 'S-LINE',
|
\ 'S' : 'S-LINE',
|
||||||
\ '' : 'S-BLOCK',
|
\ '' : 'S-BLOCK',
|
||||||
\ 't' : 'TERMINAL',
|
\ 't' : 'TERMINAL',
|
||||||
\ 'v' : 'VISUAL',
|
|
||||||
\ 'V' : 'V-LINE',
|
|
||||||
\ '' : 'V-BLOCK',
|
|
||||||
\ }, 'keep')
|
\ }, 'keep')
|
||||||
|
|
||||||
call s:check_defined('g:airline_theme_map', {})
|
call s:check_defined('g:airline_theme_map', {})
|
||||||
call extend(g:airline_theme_map, {
|
call extend(g:airline_theme_map, {
|
||||||
\ 'default': 'dark',
|
\ 'Tomorrow.*': 'tomorrow',
|
||||||
\ '\CTomorrow': 'tomorrow',
|
\ 'base16.*': 'base16',
|
||||||
\ 'base16': 'base16',
|
|
||||||
\ 'mo[l|n]okai': 'molokai',
|
\ 'mo[l|n]okai': 'molokai',
|
||||||
\ 'wombat': 'wombat',
|
\ 'wombat.*': 'wombat',
|
||||||
\ 'zenburn': 'zenburn',
|
\ '.*zenburn.*': 'zenburn',
|
||||||
\ 'solarized': 'solarized',
|
\ '.*solarized.*': 'solarized',
|
||||||
\ 'flattened': 'solarized',
|
|
||||||
\ '\CNeoSolarized': 'solarized',
|
|
||||||
\ }, 'keep')
|
\ }, 'keep')
|
||||||
|
|
||||||
call s:check_defined('g:airline_symbols', {})
|
call s:check_defined('g:airline_symbols', {})
|
||||||
" First define the symbols,
|
|
||||||
" that are common in Powerline/Unicode/ASCII mode,
|
|
||||||
" then add specific symbols for either mode
|
|
||||||
call extend(g:airline_symbols, {
|
call extend(g:airline_symbols, {
|
||||||
\ 'paste': 'PASTE',
|
\ 'paste': get(g:, 'airline_paste_symbol', 'PASTE'),
|
||||||
\ 'spell': 'SPELL',
|
\ 'readonly': get(g:, 'airline_readonly_symbol', get(g:, 'airline_powerline_fonts', 0) ? "\ue0a2" : 'RO'),
|
||||||
\ 'modified': '+',
|
\ 'whitespace': get(g:, 'airline_powerline_fonts', 0) ? "\u2739" : '!',
|
||||||
\ 'space': ' ',
|
\ 'linenr': get(g:, 'airline_linecolumn_prefix', get(g:, 'airline_powerline_fonts', 0) ? "\ue0a1" : ':' ),
|
||||||
\ 'keymap': 'Keymap:',
|
\ 'branch': get(g:, 'airline_branch_prefix', get(g:, 'airline_powerline_fonts', 0) ? "\ue0a0" : ''),
|
||||||
\ 'ellipsis': '...'
|
\ 'modified': '+',
|
||||||
\ }, 'keep')
|
\ 'space': ' ',
|
||||||
|
\ 'crypt': get(g:, 'airline_crypt_symbol', nr2char(0x1F512)),
|
||||||
if get(g:, 'airline_powerline_fonts', 0)
|
\ }, 'keep')
|
||||||
" Symbols for Powerline terminals
|
|
||||||
call s:check_defined('g:airline_left_sep', "\ue0b0") "
|
|
||||||
call s:check_defined('g:airline_left_alt_sep', "\ue0b1") "
|
|
||||||
call s:check_defined('g:airline_right_sep', "\ue0b2") "
|
|
||||||
call s:check_defined('g:airline_right_alt_sep', "\ue0b3") "
|
|
||||||
" ro=, ws=☲, lnr=☰, mlnr=, br=, nx=Ɇ, crypt=🔒
|
|
||||||
call extend(g:airline_symbols, {
|
|
||||||
\ 'readonly': "\ue0a2",
|
|
||||||
\ 'whitespace': "\u2632",
|
|
||||||
\ 'linenr': "\u2630 ",
|
|
||||||
\ 'maxlinenr': " \ue0a1",
|
|
||||||
\ 'branch': "\ue0a0",
|
|
||||||
\ 'notexists': "\u0246",
|
|
||||||
\ 'crypt': nr2char(0x1F512),
|
|
||||||
\ }, 'keep')
|
|
||||||
elseif &encoding==?'utf-8' && !get(g:, "airline_symbols_ascii", 0)
|
|
||||||
" Symbols for Unicode terminals
|
|
||||||
call s:check_defined('g:airline_left_sep', "")
|
|
||||||
call s:check_defined('g:airline_left_alt_sep', "")
|
|
||||||
call s:check_defined('g:airline_right_sep', "")
|
|
||||||
call s:check_defined('g:airline_right_alt_sep', "")
|
|
||||||
" ro=⊝, ws=☲, lnr=☰, mlnr=㏑, br=ᚠ, nx=Ɇ, crypt=🔒
|
|
||||||
call extend(g:airline_symbols, {
|
|
||||||
\ 'readonly': "\u229D",
|
|
||||||
\ 'whitespace': "\u2632",
|
|
||||||
\ 'linenr': "\u2630 ",
|
|
||||||
\ 'maxlinenr': " \u33D1",
|
|
||||||
\ 'branch': "\u16A0",
|
|
||||||
\ 'notexists': "\u0246",
|
|
||||||
\ 'crypt': nr2char(0x1F512),
|
|
||||||
\ }, 'keep')
|
|
||||||
else
|
|
||||||
" Symbols for ASCII terminals
|
|
||||||
call s:check_defined('g:airline_left_sep', "")
|
|
||||||
call s:check_defined('g:airline_left_alt_sep', "")
|
|
||||||
call s:check_defined('g:airline_right_sep', "")
|
|
||||||
call s:check_defined('g:airline_right_alt_sep', "")
|
|
||||||
call extend(g:airline_symbols, {
|
|
||||||
\ 'readonly': 'RO',
|
|
||||||
\ 'whitespace': '!',
|
|
||||||
\ 'linenr': 'ln ',
|
|
||||||
\ 'maxlinenr': ' :',
|
|
||||||
\ 'branch': '',
|
|
||||||
\ 'notexists': '?',
|
|
||||||
\ 'crypt': 'cr',
|
|
||||||
\ }, 'keep')
|
|
||||||
endif
|
|
||||||
|
|
||||||
call airline#parts#define('mode', {
|
call airline#parts#define('mode', {
|
||||||
\ 'function': 'airline#parts#mode',
|
\ 'function': 'airline#parts#mode',
|
||||||
@@ -136,7 +73,6 @@ function! airline#init#bootstrap()
|
|||||||
call airline#parts#define_function('iminsert', 'airline#parts#iminsert')
|
call airline#parts#define_function('iminsert', 'airline#parts#iminsert')
|
||||||
call airline#parts#define_function('paste', 'airline#parts#paste')
|
call airline#parts#define_function('paste', 'airline#parts#paste')
|
||||||
call airline#parts#define_function('crypt', 'airline#parts#crypt')
|
call airline#parts#define_function('crypt', 'airline#parts#crypt')
|
||||||
call airline#parts#define_function('spell', 'airline#parts#spell')
|
|
||||||
call airline#parts#define_function('filetype', 'airline#parts#filetype')
|
call airline#parts#define_function('filetype', 'airline#parts#filetype')
|
||||||
call airline#parts#define('readonly', {
|
call airline#parts#define('readonly', {
|
||||||
\ 'function': 'airline#parts#readonly',
|
\ 'function': 'airline#parts#readonly',
|
||||||
@@ -145,34 +81,19 @@ function! airline#init#bootstrap()
|
|||||||
call airline#parts#define_raw('file', '%f%m')
|
call airline#parts#define_raw('file', '%f%m')
|
||||||
call airline#parts#define_raw('path', '%F%m')
|
call airline#parts#define_raw('path', '%F%m')
|
||||||
call airline#parts#define('linenr', {
|
call airline#parts#define('linenr', {
|
||||||
\ 'raw': '%{g:airline_symbols.linenr}%4l',
|
\ 'raw': '%{g:airline_symbols.linenr}%#__accent_bold#%4l%#__restore__#',
|
||||||
\ 'accent': 'bold'})
|
|
||||||
call airline#parts#define('maxlinenr', {
|
|
||||||
\ 'raw': '/%L%{g:airline_symbols.maxlinenr}',
|
|
||||||
\ 'accent': 'bold'})
|
\ 'accent': 'bold'})
|
||||||
call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
|
call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
|
||||||
call airline#parts#define_empty(['hunks', 'branch', 'obsession', 'tagbar',
|
call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'eclim', 'whitespace','windowswap'])
|
||||||
\ 'syntastic-warn', 'syntastic-err', 'eclim', 'whitespace','windowswap',
|
|
||||||
\ 'ycm_error_count', 'ycm_warning_count', 'neomake_error_count',
|
|
||||||
\ 'neomake_warning_count', 'ale_error_count', 'ale_warning_count',
|
|
||||||
\ 'languageclient_error_count', 'languageclient_warning_count'])
|
|
||||||
call airline#parts#define_text('capslock', '')
|
call airline#parts#define_text('capslock', '')
|
||||||
call airline#parts#define_text('gutentags', '')
|
|
||||||
call airline#parts#define_text('grepper', '')
|
|
||||||
call airline#parts#define_text('xkblayout', '')
|
|
||||||
call airline#parts#define_text('keymap', '')
|
|
||||||
|
|
||||||
unlet g:airline#init#bootstrapping
|
unlet g:airline#init#bootstrapping
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#init#gui_mode()
|
|
||||||
return has('gui_running') || (has("termguicolors") && &termguicolors == 1) ? 'gui' : 'cterm'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#init#sections()
|
function! airline#init#sections()
|
||||||
let spc = g:airline_symbols.space
|
let spc = g:airline_symbols.space
|
||||||
if !exists('g:airline_section_a')
|
if !exists('g:airline_section_a')
|
||||||
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'keymap', 'spell', 'capslock', 'xkblayout', 'iminsert'])
|
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'capslock', 'iminsert'])
|
||||||
endif
|
endif
|
||||||
if !exists('g:airline_section_b')
|
if !exists('g:airline_section_b')
|
||||||
let g:airline_section_b = airline#section#create(['hunks', 'branch'])
|
let g:airline_section_b = airline#section#create(['hunks', 'branch'])
|
||||||
@@ -188,22 +109,16 @@ function! airline#init#sections()
|
|||||||
let g:airline_section_gutter = airline#section#create(['%='])
|
let g:airline_section_gutter = airline#section#create(['%='])
|
||||||
endif
|
endif
|
||||||
if !exists('g:airline_section_x')
|
if !exists('g:airline_section_x')
|
||||||
let g:airline_section_x = airline#section#create_right(['tagbar', 'gutentags', 'grepper', 'filetype'])
|
let g:airline_section_x = airline#section#create_right(['tagbar', 'filetype'])
|
||||||
endif
|
endif
|
||||||
if !exists('g:airline_section_y')
|
if !exists('g:airline_section_y')
|
||||||
let g:airline_section_y = airline#section#create_right(['ffenc'])
|
let g:airline_section_y = airline#section#create_right(['ffenc'])
|
||||||
endif
|
endif
|
||||||
if !exists('g:airline_section_z')
|
if !exists('g:airline_section_z')
|
||||||
if winwidth(0) > 80
|
let g:airline_section_z = airline#section#create(['windowswap', '%3p%%'.spc, 'linenr', ':%3v '])
|
||||||
let g:airline_section_z = airline#section#create(['windowswap', 'obsession', '%3p%%'.spc, 'linenr', 'maxlinenr', spc.':%3v'])
|
|
||||||
else
|
|
||||||
let g:airline_section_z = airline#section#create(['%3p%%'.spc, 'linenr', ':%3v'])
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if !exists('g:airline_section_error')
|
|
||||||
let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic-err', 'eclim', 'neomake_error_count', 'ale_error_count', 'languageclient_error_count'])
|
|
||||||
endif
|
endif
|
||||||
if !exists('g:airline_section_warning')
|
if !exists('g:airline_section_warning')
|
||||||
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'languageclient_warning_count', 'whitespace'])
|
let g:airline_section_warning = airline#section#create(['syntastic', 'eclim', 'whitespace'])
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
" basic 16 msdos from MSDOS
|
" basic 16 msdos from MSDOS
|
||||||
" see output of color, should be
|
" see output of color, should be
|
||||||
" 0 Black
|
" 0 Black
|
||||||
@@ -23,7 +21,7 @@ scriptencoding utf-8
|
|||||||
" 15 White
|
" 15 White
|
||||||
|
|
||||||
let s:basic16 = [
|
let s:basic16 = [
|
||||||
\ [ 0x00, 0x00, 0x00 ],
|
\ [ 0x00, 0x00, 0x00 ],
|
||||||
\ [ 0x00, 0x00, 0x80 ],
|
\ [ 0x00, 0x00, 0x80 ],
|
||||||
\ [ 0x00, 0x80, 0x00 ],
|
\ [ 0x00, 0x80, 0x00 ],
|
||||||
\ [ 0x00, 0x80, 0x80 ],
|
\ [ 0x00, 0x80, 0x80 ],
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
let s:parts = {}
|
let s:parts = {}
|
||||||
|
|
||||||
" PUBLIC API {{{
|
" PUBLIC API {{{
|
||||||
@@ -53,7 +51,7 @@ endfunction
|
|||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
function! airline#parts#mode()
|
function! airline#parts#mode()
|
||||||
return airline#util#shorten(get(w:, 'airline_current_mode', ''), 79, 1)
|
return get(w:, 'airline_current_mode', '')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#crypt()
|
function! airline#parts#crypt()
|
||||||
@@ -64,20 +62,6 @@ function! airline#parts#paste()
|
|||||||
return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
|
return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#spell()
|
|
||||||
let spelllang = g:airline_detect_spelllang ? printf(" [%s]", toupper(substitute(&spelllang, ',', '/', 'g'))) : ''
|
|
||||||
if g:airline_detect_spell && &spell
|
|
||||||
if winwidth(0) >= 90
|
|
||||||
return g:airline_symbols.spell . spelllang
|
|
||||||
elseif winwidth(0) >= 70
|
|
||||||
return g:airline_symbols.spell
|
|
||||||
else
|
|
||||||
return split(g:airline_symbols.spell, '\zs')[0]
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#parts#iminsert()
|
function! airline#parts#iminsert()
|
||||||
if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
|
if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
|
||||||
return toupper(b:keymap_name)
|
return toupper(b:keymap_name)
|
||||||
@@ -86,29 +70,14 @@ function! airline#parts#iminsert()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#readonly()
|
function! airline#parts#readonly()
|
||||||
" only consider regular buffers (e.g. ones that represent actual files,
|
return &readonly ? g:airline_symbols.readonly : ''
|
||||||
" but not special ones like e.g. NERDTree)
|
|
||||||
if !empty(&buftype) || airline#util#ignore_buf(bufname('%'))
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
if &readonly && !filereadable(bufname('%'))
|
|
||||||
return '[noperm]'
|
|
||||||
else
|
|
||||||
return &readonly ? g:airline_symbols.readonly : ''
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#filetype()
|
function! airline#parts#filetype()
|
||||||
return winwidth(0) < 90 && strlen(&filetype) > 3 ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>') : &filetype
|
return &filetype
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#parts#ffenc()
|
function! airline#parts#ffenc()
|
||||||
let expected = get(g:, 'airline#parts#ffenc#skip_expected_string', '')
|
return printf('%s%s', &fenc, strlen(&ff) > 0 ? '['.&ff.']' : '')
|
||||||
let bomb = &l:bomb ? '[BOM]' : ''
|
|
||||||
let ff = strlen(&ff) ? '['.&ff.']' : ''
|
|
||||||
if expected is# &fenc.bomb.ff
|
|
||||||
return ''
|
|
||||||
else
|
|
||||||
return &fenc.bomb.ff
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
call airline#init#bootstrap()
|
call airline#init#bootstrap()
|
||||||
let s:spc = g:airline_symbols.space
|
let s:spc = g:airline_symbols.space
|
||||||
|
|
||||||
@@ -19,7 +17,6 @@ function! s:create(parts, append)
|
|||||||
for idx in range(len(a:parts))
|
for idx in range(len(a:parts))
|
||||||
let part = airline#parts#get(a:parts[idx])
|
let part = airline#parts#get(a:parts[idx])
|
||||||
let val = ''
|
let val = ''
|
||||||
let add_sep = get(l:, 'add_sep', 0)
|
|
||||||
|
|
||||||
if exists('part.function')
|
if exists('part.function')
|
||||||
let func = (part.function).'()'
|
let func = (part.function).'()'
|
||||||
@@ -30,11 +27,7 @@ function! s:create(parts, append)
|
|||||||
let val .= s:spc.g:airline_left_alt_sep.s:spc
|
let val .= s:spc.g:airline_left_alt_sep.s:spc
|
||||||
endif
|
endif
|
||||||
if a:append < 0 && idx != 0
|
if a:append < 0 && idx != 0
|
||||||
let t = ''
|
let val = s:spc.g:airline_right_alt_sep.s:spc.val
|
||||||
if !add_sep
|
|
||||||
let t = s:spc.g:airline_right_alt_sep.s:spc
|
|
||||||
endif
|
|
||||||
let val = t.val
|
|
||||||
endif
|
endif
|
||||||
if exists('part.raw')
|
if exists('part.raw')
|
||||||
let _ .= s:wrap_accent(part, val.(part.raw))
|
let _ .= s:wrap_accent(part, val.(part.raw))
|
||||||
@@ -49,15 +42,10 @@ function! s:create(parts, append)
|
|||||||
|
|
||||||
if a:append > 0 && idx != 0
|
if a:append > 0 && idx != 0
|
||||||
let partval = printf('%%{airline#util#append(%s,%s)}', func, minwidth)
|
let partval = printf('%%{airline#util#append(%s,%s)}', func, minwidth)
|
||||||
" will add an extra separator, if minwidth is zero
|
|
||||||
let add_sep = (minwidth == 0)
|
|
||||||
elseif a:append < 0 && idx != len(a:parts) - 1
|
elseif a:append < 0 && idx != len(a:parts) - 1
|
||||||
let partval = printf('%%{airline#util#prepend(%s,%s)}', func, minwidth)
|
let partval = printf('%%{airline#util#prepend(%s,%s)}', func, minwidth)
|
||||||
" will add an extra separator, if minwidth is zero
|
|
||||||
let add_sep = (minwidth == 0)
|
|
||||||
else
|
else
|
||||||
let partval = printf('%%{airline#util#wrap(%s,%s)}', func, minwidth)
|
let partval = printf('%%{airline#util#wrap(%s,%s)}', func, minwidth)
|
||||||
let add_sep = 0
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('part.condition')
|
if exists('part.condition')
|
||||||
@@ -82,3 +70,4 @@ endfunction
|
|||||||
function! airline#section#create_right(parts)
|
function! airline#section#create_right(parts)
|
||||||
return s:create(a:parts, -1)
|
return s:create(a:parts, -1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
scriptencoding utf-8
|
|
||||||
|
|
||||||
" generates a dictionary which defines the colors for each highlight group
|
" generates a dictionary which defines the colors for each highlight group
|
||||||
function! airline#themes#generate_color_map(sect1, sect2, sect3, ...)
|
function! airline#themes#generate_color_map(sect1, sect2, sect3, ...)
|
||||||
let palette = {
|
let palette = {
|
||||||
@@ -38,22 +36,12 @@ endfunction
|
|||||||
|
|
||||||
function! airline#themes#patch(palette)
|
function! airline#themes#patch(palette)
|
||||||
for mode in keys(a:palette)
|
for mode in keys(a:palette)
|
||||||
if mode == 'accents'
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
if !has_key(a:palette[mode], 'airline_warning')
|
if !has_key(a:palette[mode], 'airline_warning')
|
||||||
let a:palette[mode]['airline_warning'] = [ '#000000', '#df5f00', 232, 166 ]
|
let a:palette[mode]['airline_warning'] = [ '#000000', '#df5f00', 232, 166 ]
|
||||||
endif
|
endif
|
||||||
if !has_key(a:palette[mode], 'airline_error')
|
|
||||||
let a:palette[mode]['airline_error'] = [ '#000000', '#990000', 232, 160 ]
|
|
||||||
endif
|
|
||||||
if !has_key(a:palette[mode], 'airline_term')
|
|
||||||
let a:palette[mode]['airline_term'] = [ '#9cffd3', '#202020', 85, 232]
|
|
||||||
endif
|
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let a:palette.accents = get(a:palette, 'accents', {})
|
let a:palette.accents = get(a:palette, 'accents', {})
|
||||||
let a:palette.accents.none = [ '', '', '', '', '' ]
|
|
||||||
let a:palette.accents.bold = [ '', '', '', '', 'bold' ]
|
let a:palette.accents.bold = [ '', '', '', '', 'bold' ]
|
||||||
let a:palette.accents.italic = [ '', '', '', '', 'italic' ]
|
let a:palette.accents.italic = [ '', '', '', '', 'italic' ]
|
||||||
|
|
||||||
@@ -76,3 +64,4 @@ function! airline#themes#patch(palette)
|
|||||||
let a:palette.accents.purple = [ '#af00df' , '' , 128 , '' ]
|
let a:palette.accents.purple = [ '#af00df' , '' , 128 , '' ]
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
let s:N1 = [ '#141413' , '#aeee00' , 232 , 154 ] " blackestgravel & lime
|
||||||
|
let s:N2 = [ '#f4cf86' , '#45413b' , 222 , 238 ] " dirtyblonde & deepgravel
|
||||||
|
let s:N3 = [ '#8cffba' , '#242321' , 121 , 235 ] " saltwatertaffy & darkgravel
|
||||||
|
let s:N4 = [ '#666462' , 241 ] " mediumgravel
|
||||||
|
|
||||||
|
let s:I1 = [ '#141413' , '#0a9dff' , 232 , 39 ] " blackestgravel & tardis
|
||||||
|
let s:I2 = [ '#f4cf86' , '#005fff' , 222 , 27 ] " dirtyblonde & facebook
|
||||||
|
let s:I3 = [ '#0a9dff' , '#242321' , 39 , 235 ] " tardis & darkgravel
|
||||||
|
|
||||||
|
let s:V1 = [ '#141413' , '#ffa724' , 232 , 214 ] " blackestgravel & orange
|
||||||
|
let s:V2 = [ '#000000' , '#fade3e' , 16 , 221 ] " coal & dalespale
|
||||||
|
let s:V3 = [ '#000000' , '#b88853' , 16 , 137 ] " coal & toffee
|
||||||
|
let s:V4 = [ '#c7915b' , 173 ] " coffee
|
||||||
|
|
||||||
|
let s:PA = [ '#f4cf86' , 222 ] " dirtyblonde
|
||||||
|
let s:RE = [ '#ff9eb8' , 211 ] " dress
|
||||||
|
|
||||||
|
let s:IA = [ s:N3[1] , s:N2[1] , s:N3[3] , s:N2[3] , '' ]
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette.accents = {
|
||||||
|
\ 'red': [ '#ff2c4b' , '' , 196 , '' , '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#badwolf#palette.normal_modified = {
|
||||||
|
\ 'airline_b': [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] ,
|
||||||
|
\ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#badwolf#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] }
|
||||||
|
let g:airline#themes#badwolf#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette.replace = copy(airline#themes#badwolf#palette.insert)
|
||||||
|
let g:airline#themes#badwolf#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ]
|
||||||
|
let g:airline#themes#badwolf#palette.replace_modified = g:airline#themes#badwolf#palette.insert_modified
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#badwolf#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#badwolf#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#badwolf#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ s:V1[1] , '' , s:V1[3] , '' , '' ] }
|
||||||
|
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
if get(g:, 'airline#themes#base16#constant', 0)
|
||||||
|
let g:airline#themes#base16#palette = {}
|
||||||
|
|
||||||
|
" Color palette
|
||||||
|
let s:gui_dark_gray = '#202020'
|
||||||
|
let s:cterm_dark_gray = 234
|
||||||
|
let s:gui_med_gray_hi = '#303030'
|
||||||
|
let s:cterm_med_gray_hi = 236
|
||||||
|
let s:gui_med_gray_lo = '#3a3a3a'
|
||||||
|
let s:cterm_med_gray_lo = 237
|
||||||
|
let s:gui_light_gray = '#505050'
|
||||||
|
let s:cterm_light_gray = 239
|
||||||
|
let s:gui_green = '#99cc99'
|
||||||
|
let s:cterm_green = 151
|
||||||
|
let s:gui_blue = '#6a9fb5'
|
||||||
|
let s:cterm_blue = 67
|
||||||
|
let s:gui_purple = '#aa759f'
|
||||||
|
let s:cterm_purple = 139
|
||||||
|
let s:gui_orange = '#d28445'
|
||||||
|
let s:cterm_orange = 173
|
||||||
|
let s:gui_red = '#ac4142'
|
||||||
|
let s:cterm_red = 131
|
||||||
|
let s:gui_pink = '#d7afd7'
|
||||||
|
let s:cterm_pink = 182
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green]
|
||||||
|
let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo]
|
||||||
|
let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi]
|
||||||
|
let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#base16#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue]
|
||||||
|
let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi]
|
||||||
|
let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3)
|
||||||
|
let g:airline#themes#base16#palette.insert_modified = copy(g:airline#themes#base16#palette.normal_modified)
|
||||||
|
let g:airline#themes#base16#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let g:airline#themes#base16#palette.replace = {
|
||||||
|
\ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''],
|
||||||
|
\ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''],
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#base16#palette.replace_modified = copy(g:airline#themes#base16#palette.insert_modified)
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink]
|
||||||
|
let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi]
|
||||||
|
let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3)
|
||||||
|
let g:airline#themes#base16#palette.visual_modified = copy(g:airline#themes#base16#palette.insert_modified)
|
||||||
|
|
||||||
|
" Inactive window
|
||||||
|
let s:IA = [s:gui_dark_gray, s:gui_med_gray_hi, s:cterm_dark_gray, s:cterm_med_gray_hi, '']
|
||||||
|
let g:airline#themes#base16#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#base16#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''],
|
||||||
|
\ }
|
||||||
|
else
|
||||||
|
function! airline#themes#base16#refresh()
|
||||||
|
let g:airline#themes#base16#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.accents = {
|
||||||
|
\ 'red': airline#themes#get_highlight('Constant'),
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:N1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffText', 'fg'], 'bold')
|
||||||
|
let s:N2 = airline#themes#get_highlight2(['Visual', 'fg'], ['Visual', 'bg'])
|
||||||
|
let s:N3 = airline#themes#get_highlight('CursorLine')
|
||||||
|
let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
|
||||||
|
let group = airline#themes#get_highlight('vimCommand')
|
||||||
|
let g:airline#themes#base16#palette.normal_modified = {
|
||||||
|
\ 'statusline': [ group[0], '', group[2], '', '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:I1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffAdded', 'fg'], 'bold')
|
||||||
|
let s:I2 = airline#themes#get_highlight2(['DiffAdded', 'fg'], ['Normal', 'bg'])
|
||||||
|
let s:I3 = s:N3
|
||||||
|
let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#base16#palette.insert_modified = g:airline#themes#base16#palette.normal_modified
|
||||||
|
|
||||||
|
let s:R1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['WarningMsg', 'fg'], 'bold')
|
||||||
|
let s:R2 = s:N2
|
||||||
|
let s:R3 = s:N3
|
||||||
|
let g:airline#themes#base16#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
let g:airline#themes#base16#palette.replace_modified = g:airline#themes#base16#palette.normal_modified
|
||||||
|
|
||||||
|
let s:V1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['Constant', 'fg'], 'bold')
|
||||||
|
let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg'])
|
||||||
|
let s:V3 = s:N3
|
||||||
|
let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#base16#palette.visual_modified = g:airline#themes#base16#palette.normal_modified
|
||||||
|
|
||||||
|
" Use VertSplit's bg and default fg (reversed) for inactive statusline.
|
||||||
|
let s:VS = airline#themes#get_highlight('VertSplit')
|
||||||
|
let s:IA = [ s:VS[1], 'NONE', s:VS[2], 'NONE', 'reverse']
|
||||||
|
let g:airline#themes#base16#palette.inactive =
|
||||||
|
\ airline#themes#generate_color_map(s:IA, s:IA, s:IA, s:IA, s:IA, s:IA)
|
||||||
|
let s:IM = [ s:VS[1], 'NONE', s:VS[2], 'NONE', 'reverse,italic']
|
||||||
|
let g:airline#themes#base16#palette.inactive_modified =
|
||||||
|
\ airline#themes#generate_color_map(s:IM, s:IM, s:IM, s:IM, s:IM, s:IM)
|
||||||
|
|
||||||
|
" Warnings
|
||||||
|
let s:WI = airline#themes#get_highlight2(['WarningMsg', 'bg'], ['WarningMsg', 'fg'], 'bold')
|
||||||
|
let g:airline#themes#base16#palette.normal.airline_warning = [
|
||||||
|
\ s:WI[0], s:WI[1], s:WI[2], s:WI[3]
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.normal_modified.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.insert.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.insert_modified.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.visual.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.visual_modified.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.replace.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#base16#palette.replace_modified.airline_warning =
|
||||||
|
\ g:airline#themes#base16#palette.normal.airline_warning
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
call airline#themes#base16#refresh()
|
||||||
|
endif
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
" Normal mode
|
||||||
|
" [ guifg, guibg, ctermfg, ctermbg, opts ]
|
||||||
|
let s:N1 = [ '#141413' , '#CAE682' , 232 , 'green' ] " mode
|
||||||
|
let s:N2 = [ '#CAE682' , '#32322F' , 'green' , 235 ] " info
|
||||||
|
let s:N3 = [ '#CAE682' , '#242424' , 'green' , 234 ] " statusline
|
||||||
|
let s:N4 = [ '#86CD74' , 'DarkGreen' ] " mode modified
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [ '#141413' , '#FDE76E' , 232 , 'yellow' ]
|
||||||
|
let s:I2 = [ '#FDE76E' , '#32322F' , 'yellow' , 235 ]
|
||||||
|
let s:I3 = [ '#FDE76E' , '#242424' , 'yellow' , 234 ]
|
||||||
|
let s:I4 = [ '#FADE3E' , 'yellow' ]
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 'blue' ]
|
||||||
|
let s:V2 = [ '#B5D3F3' , '#32322F' , 'blue' , 235 ]
|
||||||
|
let s:V3 = [ '#B5D3F3' , '#242424' , 'blue' , 234 ]
|
||||||
|
let s:V4 = [ '#7CB0E6' , 'blue' ]
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let s:R1 = [ '#141413' , '#E5786D' , 232 , 'red' ]
|
||||||
|
let s:R2 = [ '#E5786D' , '#32322F' , 'red' , 235 ]
|
||||||
|
let s:R3 = [ '#E5786D' , '#242424' , 'red' , 234 ]
|
||||||
|
let s:R4 = [ '#E55345' , 'red' ]
|
||||||
|
|
||||||
|
" Paste mode
|
||||||
|
let s:PA = [ '#94E42C' , 005 ]
|
||||||
|
|
||||||
|
" Info modified
|
||||||
|
let s:IM = [ '#40403C' , 236 ]
|
||||||
|
|
||||||
|
" Inactive mode
|
||||||
|
let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ]
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.accents = {
|
||||||
|
\ 'red': [ '#E5786D' , '' , 203 , '' , '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#base16color#palette.normal_modified = {
|
||||||
|
\ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] ,
|
||||||
|
\ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] ,
|
||||||
|
\ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#base16color#palette.insert_modified = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] ,
|
||||||
|
\ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] ,
|
||||||
|
\ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#base16color#palette.visual_modified = {
|
||||||
|
\ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] ,
|
||||||
|
\ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] ,
|
||||||
|
\ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
let g:airline#themes#base16color#palette.replace_modified = {
|
||||||
|
\ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] ,
|
||||||
|
\ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] ,
|
||||||
|
\ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] ,
|
||||||
|
\ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] ,
|
||||||
|
\ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#base16color#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#base16color#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] }
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
let g:airline#themes#behelit#palette = {}
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [ '#121212', '#5f87ff', 233, 69 ]
|
||||||
|
let s:N2 = [ '#5f87ff', '#262626', 69 , 235 ]
|
||||||
|
let s:N3 = [ '#5f87ff', '#1c1c1c', 69 , 234, 'bold' ]
|
||||||
|
let g:airline#themes#behelit#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#behelit#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#d7005f', '#1c1c1c', 161, 234, 'bold' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [ '#121212', '#00ff87', 233, 48 ]
|
||||||
|
let s:I2 = s:N2
|
||||||
|
let s:I3 = s:N3
|
||||||
|
let g:airline#themes#behelit#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#behelit#palette.insert_modified = g:airline#themes#behelit#palette.normal_modified
|
||||||
|
let g:airline#themes#behelit#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ "#121212", "#5f5faf", 233, 61, '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let g:airline#themes#behelit#palette.replace = copy(g:airline#themes#behelit#palette.insert)
|
||||||
|
let g:airline#themes#behelit#palette.replace.airline_a = [ s:I1[0], '#d70057', s:I1[2], 161, '' ]
|
||||||
|
let g:airline#themes#behelit#palette.replace_modified = g:airline#themes#behelit#palette.insert_modified
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [ '#121212', '#5fff5f', 233, 83 ]
|
||||||
|
let s:V2 = s:N2
|
||||||
|
let s:V3 = s:N3
|
||||||
|
let g:airline#themes#behelit#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#behelit#palette.visual_modified = g:airline#themes#behelit#palette.normal_modified
|
||||||
|
|
||||||
|
" Inactive window
|
||||||
|
let s:IA1 = [ '#4e4e4e', '#1c1c1c', 239, 234, '' ]
|
||||||
|
let s:IA2 = [ '#4e4e4e', '#262626', 239, 235, '' ]
|
||||||
|
let s:IA3 = [ '#4e4e4e', '#1c1c1c', 239, 234, 'bold' ]
|
||||||
|
let g:airline#themes#behelit#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
let g:airline#themes#behelit#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#5f5f87', '#1c1c1c', 60, 234, 'bold' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Accents
|
||||||
|
let g:airline#themes#behelit#palette.accents = {
|
||||||
|
\ 'red': [ '#d7005f', '', 161, '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Warnings
|
||||||
|
let s:WI = [ '#121212', '#d7005f', 233, 161 ]
|
||||||
|
let g:airline#themes#behelit#palette.normal.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.normal_modified.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.insert.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.insert_modified.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.insert_paste.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.visual.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.visual_modified.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.replace.airline_warning = s:WI
|
||||||
|
let g:airline#themes#behelit#palette.replace_modified.airline_warning = s:WI
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
" Color palette
|
||||||
|
let s:gui_dark_gray = '#303030'
|
||||||
|
let s:cterm_dark_gray = 236
|
||||||
|
let s:gui_med_gray_hi = '#444444'
|
||||||
|
let s:cterm_med_gray_hi = 238
|
||||||
|
let s:gui_med_gray_lo = '#3a3a3a'
|
||||||
|
let s:cterm_med_gray_lo = 237
|
||||||
|
let s:gui_light_gray = '#b2b2b2'
|
||||||
|
let s:cterm_light_gray = 249
|
||||||
|
let s:gui_green = '#afd787'
|
||||||
|
let s:cterm_green = 150
|
||||||
|
let s:gui_blue = '#87afd7'
|
||||||
|
let s:cterm_blue = 110
|
||||||
|
let s:gui_purple = '#afafd7'
|
||||||
|
let s:cterm_purple = 146
|
||||||
|
let s:gui_orange = '#d7af5f'
|
||||||
|
let s:cterm_orange = 179
|
||||||
|
let s:gui_red = '#d78787'
|
||||||
|
let s:cterm_red = 174
|
||||||
|
let s:gui_pink = '#d7afd7'
|
||||||
|
let s:cterm_pink = 182
|
||||||
|
|
||||||
|
let g:airline#themes#bubblegum#palette = {}
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green]
|
||||||
|
let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo]
|
||||||
|
let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi]
|
||||||
|
let g:airline#themes#bubblegum#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#bubblegum#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue]
|
||||||
|
let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi]
|
||||||
|
let g:airline#themes#bubblegum#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3)
|
||||||
|
let g:airline#themes#bubblegum#palette.insert_modified = copy(g:airline#themes#bubblegum#palette.normal_modified)
|
||||||
|
let g:airline#themes#bubblegum#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let g:airline#themes#bubblegum#palette.replace = {
|
||||||
|
\ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''],
|
||||||
|
\ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''],
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#bubblegum#palette.replace_modified = copy(g:airline#themes#bubblegum#palette.insert_modified)
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink]
|
||||||
|
let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi]
|
||||||
|
let g:airline#themes#bubblegum#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3)
|
||||||
|
let g:airline#themes#bubblegum#palette.visual_modified = copy(g:airline#themes#bubblegum#palette.insert_modified)
|
||||||
|
|
||||||
|
" Inactive window
|
||||||
|
let s:IA = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, '']
|
||||||
|
let g:airline#themes#bubblegum#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#bubblegum#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" CtrlP
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#bubblegum#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, '' ] ,
|
||||||
|
\ [ s:gui_orange, s:gui_med_gray_lo, s:cterm_orange, s:cterm_med_gray_lo, '' ] ,
|
||||||
|
\ [ s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green, 'bold' ] )
|
||||||
Executable
+63
@@ -0,0 +1,63 @@
|
|||||||
|
let g:airline#themes#cool#palette = {}
|
||||||
|
|
||||||
|
" NORMAL
|
||||||
|
let s:N1 = [ '#585858' , '#E4E4E4' , 17 , 190 ]
|
||||||
|
let s:N2 = [ '#E4E4E4' , '#0087AF' , 255 , 238 ]
|
||||||
|
let s:N3 = [ '#EEEEEE' , '#005F87' , 85 , 234 ]
|
||||||
|
let g:airline#themes#cool#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
"let g:airline#themes#cool#palette.normal_modified = {
|
||||||
|
"\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
|
"\ }
|
||||||
|
|
||||||
|
" INSERT
|
||||||
|
let s:I1 = [ '#585858' , '#E4E4E4' , 17 , 45 ]
|
||||||
|
let s:I2 = [ '#E4E4E4' , '#47AF00' , 255 , 27 ]
|
||||||
|
let s:I3 = [ '#EEEEEE' , '#2E8700' , 15 , 17 ]
|
||||||
|
let g:airline#themes#cool#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
"let g:airline#themes#cool#palette.insert_modified = {
|
||||||
|
"\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
|
"\ }
|
||||||
|
"let g:airline#themes#cool#palette.insert_paste = {
|
||||||
|
"\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] ,
|
||||||
|
"\ }
|
||||||
|
|
||||||
|
" REPLACE
|
||||||
|
let s:R1 = [ '#585858' , '#E4E4E4' , 17 , 45 ]
|
||||||
|
let s:R2 = [ '#E4E4E4' , '#AF5F00' , 255 , 27 ]
|
||||||
|
let s:R3 = [ '#EEEEEE' , '#875300' , 15 , 17 ]
|
||||||
|
let g:airline#themes#cool#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
"let g:airline#themes#cool#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ]
|
||||||
|
"let g:airline#themes#cool#palette.replace_modified = g:airline#themes#cool#palette.insert_modified
|
||||||
|
|
||||||
|
" VISUAL
|
||||||
|
let s:V1 = [ '#585858' , '#E4E4E4' , 232 , 214 ]
|
||||||
|
let s:V2 = [ '#E4E4E4' , '#AF2800' , 232 , 202 ]
|
||||||
|
let s:V3 = [ '#EEEEEE' , '#872800' , 15 , 52 ]
|
||||||
|
let g:airline#themes#cool#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
"let g:airline#themes#cool#palette.visual_modified = {
|
||||||
|
"\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
|
"\ }
|
||||||
|
|
||||||
|
" INACTIVE
|
||||||
|
let s:IA1 = [ '#585858' , '#E4E4E4' , 239 , 234 , '' ]
|
||||||
|
let s:IA2 = [ '#E4E4E4' , '#466D79' , 239 , 235 , '' ]
|
||||||
|
let s:IA3 = [ '#EEEEEE' , '#324E59' , 239 , 236 , '' ]
|
||||||
|
let g:airline#themes#cool#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
"let g:airline#themes#cool#palette.inactive_modified = {
|
||||||
|
"\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] ,
|
||||||
|
"\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#cool#palette.accents = {
|
||||||
|
\ 'red': [ '#ff0000' , '' , 160 , '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" CTRLP
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#cool#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#E4E4E4' , '#00AFA2' , 231 , 98 , '' ],
|
||||||
|
\ [ '#EEEEEE' , '#008787' , 55 , 231 , '' ],
|
||||||
|
\ [ '#585858' , '#E4E4E4' , 189 , 55 , '' ])
|
||||||
|
|
||||||
@@ -1,92 +1,37 @@
|
|||||||
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
" Each theme is contained in its own file and declares variables scoped to the
|
||||||
" vim: et ts=2 sts=2 sw=2 tw=80
|
" file. These variables represent the possible "modes" that airline can
|
||||||
|
" detect. The mode is the return value of mode(), which gets converted to a
|
||||||
scriptencoding utf-8
|
" readable string. The following is a list currently supported modes: normal,
|
||||||
|
" insert, replace, visual, and inactive.
|
||||||
" Airline themes are generated based on the following concepts:
|
|
||||||
" * The section of the status line, valid Airline statusline sections are:
|
|
||||||
" * airline_a (left most section)
|
|
||||||
" * airline_b (section just to the right of airline_a)
|
|
||||||
" * airline_c (section just to the right of airline_b)
|
|
||||||
" * airline_x (first section of the right most sections)
|
|
||||||
" * airline_y (section just to the right of airline_x)
|
|
||||||
" * airline_z (right most section)
|
|
||||||
" * The mode of the buffer, as reported by the :mode() function. Airline
|
|
||||||
" converts the values reported by mode() to the following:
|
|
||||||
" * normal
|
|
||||||
" * insert
|
|
||||||
" * replace
|
|
||||||
" * visual
|
|
||||||
" * inactive
|
|
||||||
" The last one is actually no real mode as returned by mode(), but used by
|
|
||||||
" airline to style inactive statuslines (e.g. windows, where the cursor
|
|
||||||
" currently does not reside in).
|
|
||||||
" * In addition to each section and mode specified above, airline themes
|
|
||||||
" can also specify overrides. Overrides can be provided for the following
|
|
||||||
" scenarios:
|
|
||||||
" * 'modified'
|
|
||||||
" * 'paste'
|
|
||||||
"
|
"
|
||||||
" Airline themes are specified as a global viml dictionary using the above
|
" Each mode can also have overrides. These are small changes to the mode that
|
||||||
" sections, modes and overrides as keys to the dictionary. The name of the
|
" don't require a completely different look. "modified" and "paste" are two
|
||||||
" dictionary is significant and should be specified as:
|
" such supported overrides. These are simply suffixed to the major mode,
|
||||||
" * g:airline#themes#<theme_name>#palette
|
" separated by an underscore. For example, "normal_modified" would be normal
|
||||||
" where <theme_name> is substituted for the name of the theme.vim file where the
|
" mode where the current buffer is modified.
|
||||||
" theme definition resides. Airline themes should reside somewhere on the
|
|
||||||
" 'runtimepath' where it will be loaded at vim startup, for example:
|
|
||||||
" * autoload/airline/themes/theme_name.vim
|
|
||||||
"
|
"
|
||||||
" For this, the dark.vim, theme, this is defined as
|
" The theming algorithm is a 2-pass system where the mode will draw over all
|
||||||
|
" parts of the statusline, and then the override is applied after. This means
|
||||||
|
" it is possible to specify a subset of the theme in overrides, as it will
|
||||||
|
" simply overwrite the previous colors. If you want simultaneous overrides,
|
||||||
|
" then they will need to change different parts of the statusline so they do
|
||||||
|
" not conflict with each other.
|
||||||
|
"
|
||||||
|
" First, let's define an empty dictionary and assign it to the "palette"
|
||||||
|
" variable. The # is a separator that maps with the directory structure. If
|
||||||
|
" you get this wrong, Vim will complain loudly.
|
||||||
let g:airline#themes#dark#palette = {}
|
let g:airline#themes#dark#palette = {}
|
||||||
|
|
||||||
" Keys in the dictionary are composed of the mode, and if specified the
|
" First let's define some arrays. The s: is just a VimL thing for scoping the
|
||||||
" override. For example:
|
" variables to the current script. Without this, these variables would be
|
||||||
" * g:airline#themes#dark#palette.normal
|
" declared globally. Now let's declare some colors for normal mode and add it
|
||||||
" * the colors for a statusline while in normal mode
|
" to the dictionary. The array is in the format:
|
||||||
" * g:airline#themes#dark#palette.normal_modified
|
" [ guifg, guibg, ctermfg, ctermbg, opts ]. See "help attr-list" for valid
|
||||||
" * the colors for a statusline while in normal mode when the buffer has
|
" values for the "opt" value.
|
||||||
" been modified
|
let s:N1 = [ '#00005f' , '#dfff00' , 17 , 190 ]
|
||||||
" * g:airline#themes#dark#palette.visual
|
let s:N2 = [ '#ffffff' , '#444444' , 255 , 238 ]
|
||||||
" * the colors for a statusline while in visual mode
|
let s:N3 = [ '#9cffd3' , '#202020' , 85 , 234 ]
|
||||||
"
|
let g:airline#themes#dark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
" Values for each dictionary key is an array of color values that should be
|
|
||||||
" familiar for colorscheme designers:
|
|
||||||
" * [guifg, guibg, ctermfg, ctermbg, opts]
|
|
||||||
" See "help attr-list" for valid values for the "opt" value.
|
|
||||||
"
|
|
||||||
" Each theme must provide an array of such values for each airline section of
|
|
||||||
" the statusline (airline_a through airline_z). A convenience function,
|
|
||||||
" airline#themes#generate_color_map() exists to mirror airline_a/b/c to
|
|
||||||
" airline_x/y/z, respectively.
|
|
||||||
|
|
||||||
" The dark.vim theme:
|
|
||||||
let s:airline_a_normal = [ '#00005f' , '#dfff00' , 17 , 190 ]
|
|
||||||
let s:airline_b_normal = [ '#ffffff' , '#444444' , 255 , 238 ]
|
|
||||||
let s:airline_c_normal = [ '#9cffd3' , '#202020' , 85 , 234 ]
|
|
||||||
let g:airline#themes#dark#palette.normal = airline#themes#generate_color_map(s:airline_a_normal, s:airline_b_normal, s:airline_c_normal)
|
|
||||||
|
|
||||||
" It should be noted the above is equivalent to:
|
|
||||||
" let g:airline#themes#dark#palette.normal = airline#themes#generate_color_map(
|
|
||||||
" \ [ '#00005f' , '#dfff00' , 17 , 190 ], " section airline_a
|
|
||||||
" \ [ '#ffffff' , '#444444' , 255 , 238 ], " section airline_b
|
|
||||||
" \ [ '#9cffd3' , '#202020' , 85 , 234 ] " section airline_c
|
|
||||||
" \)
|
|
||||||
"
|
|
||||||
" In turn, that is equivalent to:
|
|
||||||
" let g:airline#themes#dark#palette.normal = {
|
|
||||||
" \ 'airline_a': [ '#00005f' , '#dfff00' , 17 , 190 ], "section airline_a
|
|
||||||
" \ 'airline_b': [ '#ffffff' , '#444444' , 255 , 238 ], "section airline_b
|
|
||||||
" \ 'airline_c': [ '#9cffd3' , '#202020' , 85 , 234 ], "section airline_c
|
|
||||||
" \ 'airline_x': [ '#9cffd3' , '#202020' , 85 , 234 ], "section airline_x
|
|
||||||
" \ 'airline_y': [ '#ffffff' , '#444444' , 255 , 238 ], "section airline_y
|
|
||||||
" \ 'airline_z': [ '#00005f' , '#dfff00' , 17 , 190 ] "section airline_z
|
|
||||||
" \}
|
|
||||||
"
|
|
||||||
" airline#themes#generate_color_map() also uses the values provided as
|
|
||||||
" parameters to create intermediary groups such as:
|
|
||||||
" airline_a_to_airline_b
|
|
||||||
" airline_b_to_airline_c
|
|
||||||
" etc...
|
|
||||||
|
|
||||||
" Here we define overrides for when the buffer is modified. This will be
|
" Here we define overrides for when the buffer is modified. This will be
|
||||||
" applied after g:airline#themes#dark#palette.normal, hence why only certain keys are
|
" applied after g:airline#themes#dark#palette.normal, hence why only certain keys are
|
||||||
@@ -96,46 +41,40 @@ let g:airline#themes#dark#palette.normal_modified = {
|
|||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
|
||||||
let s:airline_a_insert = [ '#00005f' , '#00dfff' , 17 , 45 ]
|
let s:I1 = [ '#00005f' , '#00dfff' , 17 , 45 ]
|
||||||
let s:airline_b_insert = [ '#ffffff' , '#005fff' , 255 , 27 ]
|
let s:I2 = [ '#ffffff' , '#005fff' , 255 , 27 ]
|
||||||
let s:airline_c_insert = [ '#ffffff' , '#000080' , 15 , 17 ]
|
let s:I3 = [ '#ffffff' , '#000080' , 15 , 17 ]
|
||||||
let g:airline#themes#dark#palette.insert = airline#themes#generate_color_map(s:airline_a_insert, s:airline_b_insert, s:airline_c_insert)
|
let g:airline#themes#dark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
let g:airline#themes#dark#palette.insert_modified = {
|
let g:airline#themes#dark#palette.insert_modified = {
|
||||||
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
\ }
|
\ }
|
||||||
let g:airline#themes#dark#palette.insert_paste = {
|
let g:airline#themes#dark#palette.insert_paste = {
|
||||||
\ 'airline_a': [ s:airline_a_insert[0] , '#d78700' , s:airline_a_insert[2] , 172 , '' ] ,
|
\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] ,
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
|
||||||
let g:airline#themes#dark#palette.replace = copy(g:airline#themes#dark#palette.insert)
|
let g:airline#themes#dark#palette.replace = copy(g:airline#themes#dark#palette.insert)
|
||||||
let g:airline#themes#dark#palette.replace.airline_a = [ s:airline_b_insert[0] , '#af0000' , s:airline_b_insert[2] , 124 , '' ]
|
let g:airline#themes#dark#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ]
|
||||||
let g:airline#themes#dark#palette.replace_modified = g:airline#themes#dark#palette.insert_modified
|
let g:airline#themes#dark#palette.replace_modified = g:airline#themes#dark#palette.insert_modified
|
||||||
|
|
||||||
|
|
||||||
let s:airline_a_visual = [ '#000000' , '#ffaf00' , 232 , 214 ]
|
let s:V1 = [ '#000000' , '#ffaf00' , 232 , 214 ]
|
||||||
let s:airline_b_visual = [ '#000000' , '#ff5f00' , 232 , 202 ]
|
let s:V2 = [ '#000000' , '#ff5f00' , 232 , 202 ]
|
||||||
let s:airline_c_visual = [ '#ffffff' , '#5f0000' , 15 , 52 ]
|
let s:V3 = [ '#ffffff' , '#5f0000' , 15 , 52 ]
|
||||||
let g:airline#themes#dark#palette.visual = airline#themes#generate_color_map(s:airline_a_visual, s:airline_b_visual, s:airline_c_visual)
|
let g:airline#themes#dark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
let g:airline#themes#dark#palette.visual_modified = {
|
let g:airline#themes#dark#palette.visual_modified = {
|
||||||
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
|
||||||
let s:airline_a_inactive = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ]
|
let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ]
|
||||||
let s:airline_b_inactive = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ]
|
let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ]
|
||||||
let s:airline_c_inactive = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ]
|
let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ]
|
||||||
let g:airline#themes#dark#palette.inactive = airline#themes#generate_color_map(s:airline_a_inactive, s:airline_b_inactive, s:airline_c_inactive)
|
let g:airline#themes#dark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
let g:airline#themes#dark#palette.inactive_modified = {
|
let g:airline#themes#dark#palette.inactive_modified = {
|
||||||
\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] ,
|
\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] ,
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
" For commandline mode, we use the colors from normal mode, except the mode
|
|
||||||
" indicator should be colored differently, e.g. blue on light green
|
|
||||||
let s:airline_a_commandline = [ '#0000ff' , '#0cff00' , 63 , 40 ]
|
|
||||||
let s:airline_b_commandline = [ '#ffffff' , '#444444' , 255 , 238 ]
|
|
||||||
let s:airline_c_commandline = [ '#9cffd3' , '#202020' , 85 , 234 ]
|
|
||||||
let g:airline#themes#dark#palette.commandline = airline#themes#generate_color_map(s:airline_a_commandline, s:airline_b_commandline, s:airline_c_commandline)
|
|
||||||
|
|
||||||
" Accents are used to give parts within a section a slightly different look or
|
" Accents are used to give parts within a section a slightly different look or
|
||||||
" color. Here we are defining a "red" accent, which is used by the 'readonly'
|
" color. Here we are defining a "red" accent, which is used by the 'readonly'
|
||||||
@@ -153,9 +92,11 @@ let g:airline#themes#dark#palette.accents = {
|
|||||||
" variable so that related functionality is loaded iff the user is using
|
" variable so that related functionality is loaded iff the user is using
|
||||||
" ctrlp. Note that this is optional, and if you do not define ctrlp colors
|
" ctrlp. Note that this is optional, and if you do not define ctrlp colors
|
||||||
" they will be chosen automatically from the existing palette.
|
" they will be chosen automatically from the existing palette.
|
||||||
if get(g:, 'loaded_ctrlp', 0)
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
let g:airline#themes#dark#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
finish
|
||||||
\ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ],
|
|
||||||
\ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ],
|
|
||||||
\ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ])
|
|
||||||
endif
|
endif
|
||||||
|
let g:airline#themes#dark#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ],
|
||||||
|
\ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ],
|
||||||
|
\ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ])
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
" vim-airline companion theme of distinguished
|
||||||
|
" (https://github.com/Lokaltog/vim-distinguished)
|
||||||
|
" I have nothing to do with the original
|
||||||
|
" distinguished theme other than being a big fan.
|
||||||
|
" this theme was shamelessly created by modifying
|
||||||
|
" the Ubaryd airline theme.
|
||||||
|
|
||||||
|
let s:gray = [245, '#8a8a8a']
|
||||||
|
let s:golden = [143, '#afaf5f']
|
||||||
|
let s:pink = [131, '#af5f5f']
|
||||||
|
let s:blue = [ 67, '#5f87af']
|
||||||
|
let s:orange = [166, '#d75f00']
|
||||||
|
let s:outerfg = [ 16, '#000000']
|
||||||
|
let s:innerbg = [234, '#1c1c1c']
|
||||||
|
let s:middle = ['#bcbcbc', '#444444', 250, 238]
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [s:outerfg[1], s:gray[1], s:outerfg[0], s:gray[0]]
|
||||||
|
let s:N3 = [s:gray[1], s:innerbg[1], s:gray[0], s:innerbg[0]]
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [s:outerfg[1], s:golden[1], s:outerfg[0], s:golden[0]]
|
||||||
|
let s:I3 = [s:golden[1], s:innerbg[1], s:golden[0], s:innerbg[0]]
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [s:outerfg[1], s:pink[1], s:outerfg[0], s:pink[0]]
|
||||||
|
let s:V3 = [s:pink[1], s:innerbg[1], s:pink[0], s:innerbg[0]]
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let s:R1 = [s:outerfg[1], s:blue[1], s:outerfg[0], s:blue[0]]
|
||||||
|
let s:R3 = [s:blue[1], s:innerbg[1], s:blue[0], s:innerbg[0]]
|
||||||
|
|
||||||
|
" Inactive pane
|
||||||
|
let s:IA = [s:middle[1], s:innerbg[1], s:middle[3], s:innerbg[0]]
|
||||||
|
|
||||||
|
let g:airline#themes#distinguished#palette = {}
|
||||||
|
let g:airline#themes#distinguished#palette.accents = {
|
||||||
|
\ 'red': ['#d70000', '', 160, '', '']}
|
||||||
|
|
||||||
|
let g:airline#themes#distinguished#palette.inactive = {
|
||||||
|
\ 'airline_a': s:IA,
|
||||||
|
\ 'airline_b': s:IA,
|
||||||
|
\ 'airline_c': s:IA}
|
||||||
|
|
||||||
|
let g:airline#themes#distinguished#palette.normal = airline#themes#generate_color_map(s:N1, s:middle, s:N3)
|
||||||
|
let g:airline#themes#distinguished#palette.normal_modified = {
|
||||||
|
\ 'airline_a': ['', s:orange[1], '', s:orange[0], ''],
|
||||||
|
\ 'airline_c': [s:orange[1], '', s:orange[0], '', ''],
|
||||||
|
\ 'airline_x': [s:orange[1], '', s:orange[0], '', ''],
|
||||||
|
\ 'airline_z': ['', s:orange[1], '', s:orange[0], '']}
|
||||||
|
|
||||||
|
let g:airline#themes#distinguished#palette.insert = airline#themes#generate_color_map(s:I1, s:middle, s:I3)
|
||||||
|
let g:airline#themes#distinguished#palette.insert_modified = {}
|
||||||
|
|
||||||
|
let g:airline#themes#distinguished#palette.replace = airline#themes#generate_color_map(s:R1, s:middle, s:R3)
|
||||||
|
let g:airline#themes#distinguished#palette.replace_modified = {}
|
||||||
|
|
||||||
|
let g:airline#themes#distinguished#palette.visual = airline#themes#generate_color_map(s:V1, s:middle, s:V3)
|
||||||
|
let g:airline#themes#distinguished#palette.visual_modified = {}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
let g:airline#themes#durant#palette = {}
|
||||||
|
|
||||||
|
|
||||||
|
let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ]
|
||||||
|
let s:N2 = [ '#93a1a1' , '#586e75' , 245 , 240 ]
|
||||||
|
let s:N3 = [ '#93a1a1' , '#073642' , 240 , 233 ]
|
||||||
|
let g:airline#themes#durant#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#durant#normal_modified = {
|
||||||
|
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ]
|
||||||
|
let s:I2 = [ '#9e9e9e' , '#303030' , 247 , 236 ]
|
||||||
|
let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ]
|
||||||
|
let g:airline#themes#durant#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#durant#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#durant#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#durant#palette.replace = copy(g:airline#themes#durant#palette.insert)
|
||||||
|
let g:airline#themes#durant#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ]
|
||||||
|
|
||||||
|
let g:airline#themes#durant#palette.replace_modified = g:airline#themes#durant#palette.insert_modified
|
||||||
|
|
||||||
|
let s:V1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ]
|
||||||
|
let s:V2 = [ '#ffffff' , '#44403a' , 255, 238 ]
|
||||||
|
let s:V3 = [ '#90a680' , '#2e2d2a' , 64, 235 ]
|
||||||
|
let g:airline#themes#durant#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#durant#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ]
|
||||||
|
let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ]
|
||||||
|
let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ]
|
||||||
|
let g:airline#themes#durant#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
let g:airline#themes#durant#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#durant#palette.accents = {
|
||||||
|
\ 'red': [ '#ff0000' , '' , 160 , '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#durant#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ],
|
||||||
|
\ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ],
|
||||||
|
\ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ])
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
" vim-airline companion theme of Hybrid
|
||||||
|
" (https://github.com/w0ng/vim-hybrid)
|
||||||
|
|
||||||
|
let g:airline#themes#hybrid#palette = {}
|
||||||
|
|
||||||
|
function! airline#themes#hybrid#refresh()
|
||||||
|
let s:N1 = airline#themes#get_highlight('DiffAdd')
|
||||||
|
let s:N2 = airline#themes#get_highlight('CursorLine')
|
||||||
|
let s:N3 = airline#themes#get_highlight('PMenu')
|
||||||
|
let g:airline#themes#hybrid#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
|
||||||
|
let modified_group = airline#themes#get_highlight2(['Text', 'fg'], ['SpellRare', 'bg'], 'bold')
|
||||||
|
let g:airline#themes#hybrid#palette.normal_modified = {
|
||||||
|
\ 'airline_c': airline#themes#get_highlight2(['Text', 'fg'], ['SpellRare', 'bg'], 'bold')
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let warning_group = airline#themes#get_highlight('SpellRare')
|
||||||
|
let g:airline#themes#hybrid#palette.normal.airline_warning = warning_group
|
||||||
|
let g:airline#themes#hybrid#palette.normal_modified.airline_warning = warning_group
|
||||||
|
|
||||||
|
let s:I1 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffText', 'bg'], 'bold')
|
||||||
|
let s:I2 = airline#themes#get_highlight2(['Text', 'fg'], ['SpellLocal', 'bg'], 'bold')
|
||||||
|
let s:I3 = airline#themes#get_highlight2(['Text', 'fg'], ['SpellCap', 'bg'], 'bold')
|
||||||
|
let g:airline#themes#hybrid#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#hybrid#palette.insert_modified = g:airline#themes#hybrid#palette.normal_modified
|
||||||
|
let g:airline#themes#hybrid#palette.insert.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning
|
||||||
|
let g:airline#themes#hybrid#palette.insert_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning
|
||||||
|
|
||||||
|
let s:R1 = airline#themes#get_highlight('DiffChange')
|
||||||
|
let s:R2 = s:N2
|
||||||
|
let s:R3 = s:N3
|
||||||
|
let g:airline#themes#hybrid#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
let replace_group = airline#themes#get_highlight('SpellRare')
|
||||||
|
let g:airline#themes#hybrid#palette.replace_modified = g:airline#themes#hybrid#palette.normal_modified
|
||||||
|
let g:airline#themes#hybrid#palette.replace.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning
|
||||||
|
let g:airline#themes#hybrid#palette.replace_modified.airline_warning = g:airline#themes#hybrid#palette.replace_modified.airline_warning
|
||||||
|
|
||||||
|
let s:V1 = airline#themes#get_highlight2(['Text', 'fg'], ['Folded', 'bg'], 'bold')
|
||||||
|
let s:V2 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffDelete', 'bg'], 'bold')
|
||||||
|
let s:V3 = airline#themes#get_highlight2(['Text', 'fg'], ['Error', 'bg'], 'bold')
|
||||||
|
let g:airline#themes#hybrid#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#hybrid#palette.visual_modified = g:airline#themes#hybrid#palette.normal_modified
|
||||||
|
let g:airline#themes#hybrid#palette.visual.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning
|
||||||
|
let g:airline#themes#hybrid#palette.visual_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning
|
||||||
|
|
||||||
|
let s:IA = airline#themes#get_highlight('StatusLineNC')
|
||||||
|
let g:airline#themes#hybrid#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#hybrid#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#hybrid#palette.accents = {
|
||||||
|
\ 'red': airline#themes#get_highlight('Constant'),
|
||||||
|
\ }
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call airline#themes#hybrid#refresh()
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
" vim-airline theme based on vim-hybrid and powerline
|
||||||
|
" (https://github.com/w0ng/vim-hybrid)
|
||||||
|
" (https://github.com/Lokaltog/powerline)
|
||||||
|
|
||||||
|
let g:airline#themes#hybridline#palette = {}
|
||||||
|
|
||||||
|
let s:N1 = [ '#282a2e' , '#c5c8c6' , 'black' , 15 ]
|
||||||
|
let s:N2 = [ '#c5c8c6' , '#373b41' , 15 , 8 ]
|
||||||
|
let s:N3 = [ '#ffffff' , '#282a2e' , 255 , 'black' ]
|
||||||
|
let g:airline#themes#hybridline#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#hybridline#palette.normal.airline_a = ['#005f00', '#b5bd68', 22, 10, '']
|
||||||
|
|
||||||
|
let s:I1 = [ '#005f5f' , '#8abeb7' , 23 , 14 ]
|
||||||
|
let s:I2 = [ '#c5c8c6' , '#0087af' , 15 , 31 ]
|
||||||
|
let s:I3 = [ '#ffffff' , '#005f87' , 255 , 24 ]
|
||||||
|
let g:airline#themes#hybridline#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#hybridline#palette.insert_paste = {
|
||||||
|
\ 'airline_a': ['#000000', '#ac4142', 16 , 1, ''] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#hybridline#palette.replace = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#hybridline#palette.replace.airline_a = ['#000000', '#CC6666', 16, 9]
|
||||||
|
|
||||||
|
let g:airline#themes#hybridline#palette.visual = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#hybridline#palette.visual.airline_a = ['#000000', '#de935f', 16, 3]
|
||||||
|
|
||||||
|
let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ]
|
||||||
|
let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ]
|
||||||
|
let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ]
|
||||||
|
let g:airline#themes#hybridline#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
|
||||||
|
let g:airline#themes#hybridline#palette.accents = {
|
||||||
|
\ 'red': [ '#ff0000' , '' , 160 , '' ]
|
||||||
|
\ }
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
let g:airline#themes#jellybeans#palette = {}
|
||||||
|
|
||||||
|
" The name of the function must be 'refresh'.
|
||||||
|
function! airline#themes#jellybeans#refresh()
|
||||||
|
" This theme is an example of how to use helper functions to extract highlight
|
||||||
|
" values from the corresponding colorscheme. It was written in a hurry, so it
|
||||||
|
" is very minimalistic. If you are a jellybeans user and want to make updates,
|
||||||
|
" please send pull requests.
|
||||||
|
|
||||||
|
" Here are examples where the entire highlight group is copied and an airline
|
||||||
|
" compatible color array is generated.
|
||||||
|
let s:N1 = airline#themes#get_highlight('DbgCurrent', 'bold')
|
||||||
|
let s:N2 = airline#themes#get_highlight('Folded')
|
||||||
|
let s:N3 = airline#themes#get_highlight('NonText')
|
||||||
|
|
||||||
|
let g:airline#themes#jellybeans#palette.accents = {
|
||||||
|
\ 'red': airline#themes#get_highlight('Constant'),
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#jellybeans#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#jellybeans#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#ffb964', '', 215, '', '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:I1 = airline#themes#get_highlight('DiffAdd', 'bold')
|
||||||
|
let s:I2 = s:N2
|
||||||
|
let s:I3 = s:N3
|
||||||
|
let g:airline#themes#jellybeans#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#jellybeans#palette.insert_modified = g:airline#themes#jellybeans#palette.normal_modified
|
||||||
|
|
||||||
|
let s:R1 = airline#themes#get_highlight('WildMenu', 'bold')
|
||||||
|
let s:R2 = s:N2
|
||||||
|
let s:R3 = s:N3
|
||||||
|
let g:airline#themes#jellybeans#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
let g:airline#themes#jellybeans#palette.replace_modified = g:airline#themes#jellybeans#palette.normal_modified
|
||||||
|
|
||||||
|
" Sometimes you want to mix and match colors from different groups, you can do
|
||||||
|
" that with this method.
|
||||||
|
let s:V1 = airline#themes#get_highlight2(['TabLineSel', 'bg'], ['DiffDelete', 'bg'], 'bold')
|
||||||
|
let s:V2 = s:N2
|
||||||
|
let s:V3 = s:N3
|
||||||
|
let g:airline#themes#jellybeans#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#jellybeans#palette.visual_modified = g:airline#themes#jellybeans#palette.normal_modified
|
||||||
|
|
||||||
|
" And of course, you can always do it manually as well.
|
||||||
|
let s:IA = [ '#444444', '#1c1c1c', 237, 234 ]
|
||||||
|
let g:airline#themes#jellybeans#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#jellybeans#palette.inactive_modified = g:airline#themes#jellybeans#palette.normal_modified
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call airline#themes#jellybeans#refresh()
|
||||||
|
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
"
|
||||||
|
" Colorscheme: Kalisi for airline. Inspired by powerline.
|
||||||
|
" Arthur Jaron
|
||||||
|
" hifreeo@gmail.com
|
||||||
|
" 24.10.2014
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [ '#0087ff' , '#ffffff','33','231']
|
||||||
|
let s:V2 = [ '#005faf' , '#5fafff','25','75']
|
||||||
|
let s:V3 = [ '#87d7ff' , '#005faf','117','25']
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let s:R1 = [ '#d75fff' , '#ffffff','171','231']
|
||||||
|
let s:R2 = [ '#5f005f' , '#d75fff','53','171']
|
||||||
|
let s:R3 = [ '#ff87ff' , '#8700af','213','91']
|
||||||
|
|
||||||
|
let g:airline#themes#kalisi#palette = {}
|
||||||
|
|
||||||
|
|
||||||
|
function! airline#themes#kalisi#refresh()
|
||||||
|
|
||||||
|
let s:StatusLine = airline#themes#get_highlight('StatusLine')
|
||||||
|
let s:StatusLineNC = airline#themes#get_highlight('StatusLineNC')
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [ '#ffffff' , '#e80000','231','160']
|
||||||
|
let s:I2 = [ '#ff0000' , '#5f0000','196','52']
|
||||||
|
let s:I3 = s:StatusLine
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [ '#005f00' , '#afd700','22','148']
|
||||||
|
let s:N2 = [ '#afd700' , '#005f00','148','22']
|
||||||
|
let s:N3 = s:StatusLine
|
||||||
|
|
||||||
|
" Tabline Plugin
|
||||||
|
let g:airline#themes#kalisi#palette.tabline = {
|
||||||
|
\ 'airline_tab': ['#bcbcbc', '#005f00','250','22'],
|
||||||
|
\ 'airline_tabsel': ['#404042', '#A6DB29','238','148'],
|
||||||
|
\ 'airline_tabtype':['#afd700', '#204d20','148','22'],
|
||||||
|
\ 'airline_tabfill': s:StatusLine,
|
||||||
|
\ 'airline_tabhid': ['#c5c5c5', '#404042','251','238'],
|
||||||
|
\ 'airline_tabmod': ['#d7ff00', '#afd700','190','148'],
|
||||||
|
\ 'airline_tabmod_unsel': ['#d7ff00', '#005f00','190','22']
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#kalisi#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#kalisi#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#kalisi#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#kalisi#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
|
||||||
|
" Inactive Mode
|
||||||
|
let s:IA = airline#themes#get_highlight('StatusLineNC')
|
||||||
|
let g:airline#themes#kalisi#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#kalisi#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': ['#d7ff00', s:IA[1],'190',s:IA[3]],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call airline#themes#kalisi#refresh()
|
||||||
|
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#kalisi#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ s:StatusLine,
|
||||||
|
\ ['#afd700', '#005f00','148','22'],
|
||||||
|
\ [ '#005f00' , '#afd700' , '22','148']
|
||||||
|
\)
|
||||||
|
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
let g:airline#themes#kolor#palette = {}
|
||||||
|
|
||||||
|
let s:N1 = [ '#e2e2e2' , '#4f3598' , 254 , 56 ]
|
||||||
|
let s:N2 = [ '#ff5fd7' , '#242322' , 206 , 234 ]
|
||||||
|
let s:N3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ]
|
||||||
|
|
||||||
|
let g:airline#themes#kolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
|
||||||
|
let g:airline#themes#kolor#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#e2e2e2' , '#4f3598' , 254 , 56 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:I1 = [ '#242322' , '#7eaefd' , 234 , 111 ]
|
||||||
|
let s:I2 = [ '#75d7d8' , '#242322' , 80 , 234 ]
|
||||||
|
let s:I3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ]
|
||||||
|
let g:airline#themes#kolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#kolor#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#242322' , '#7eaefd' , 234 , 111 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#kolor#palette.replace = copy(g:airline#themes#kolor#palette.insert)
|
||||||
|
let g:airline#themes#kolor#palette.replace.airline_a = [ s:I2[0] , '#005154' , s:I2[2] , 23 , '' ]
|
||||||
|
let g:airline#themes#kolor#palette.replace_modified = {
|
||||||
|
\ 'airline_c': [ '#e2e2e2' , '#005154' , 254 , 23 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:V1 = [ '#242322' , '#e6987a' , 234 , 180 ]
|
||||||
|
let s:V2 = [ '#dbc570' , '#242322' , 186 , 234 ]
|
||||||
|
let s:V3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ]
|
||||||
|
let g:airline#themes#kolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#kolor#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#242322' , '#e6987a' , 234 , 180 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:IA1 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ]
|
||||||
|
let s:IA2 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 ]
|
||||||
|
let s:IA3 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ]
|
||||||
|
let g:airline#themes#kolor#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
let g:airline#themes#kolor#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#kolor#palette.accents = {
|
||||||
|
\ 'red': [ '#d96e8a' , '' , 168 , '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#kolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#e2e2e2' , '#4a4a4a' , 254 , 238 , '' ],
|
||||||
|
\ [ '#e2e2e2' , '#242322' , 254 , 234 , '' ],
|
||||||
|
\ [ '#e2e2e2' , '#4f3598' , 254 , 56 , 'bold' ])
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
" vim-airline companion theme of Laederon
|
||||||
|
" (https://github.com/Donearm/Laederon)
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ] " blackestgravel & snow
|
||||||
|
let s:N2 = [ '#ffffff' , '#44403a' , 255, 238 ] " snow & deepgravel
|
||||||
|
let s:N3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] " dilutedpaint & darkgravel
|
||||||
|
let s:N4 = [ '#777470' , 240 ] " gravel
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [ '#1a1a18' , '#1693a5' , 232 , 62 ] " blackestgravel & crystallake
|
||||||
|
let s:I2 = [ '#515744' , '#44403a' , 101 , 238 ] " lichen & deepgravel
|
||||||
|
let s:I3 = [ '#1693a5' , '#2e2d2a' , 39 , 235 ] " crystallake & darkgravel
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [ '#1a1a18' , '#ab3e5d' , 232 , 161 ] " blackestgravel & raspberry
|
||||||
|
let s:V2 = [ '#000000' , '#908571' , 16 , 252 ] " coal & winterterrain
|
||||||
|
let s:V3 = [ '#ab3e5d' , '#8c7f77' , 161 , 245 ] " raspberry & wetcoldterrain
|
||||||
|
let s:V4 = [ '#515744' , 101 ] " lichen
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let s:RE = [ '#233e09' , 22 ] " oakleaf
|
||||||
|
|
||||||
|
" Paste mode
|
||||||
|
let s:PA = [ '#ab3e5d' , 161 ] " raspberry
|
||||||
|
|
||||||
|
let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3], s:N3[3] , '' ]
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette.accents = {
|
||||||
|
\ 'red': [ '#ef393d' , '' , 196 , '' , '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#laederon#palette.normal_modified = {
|
||||||
|
\ 'airline_a' : [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] ,
|
||||||
|
\ 'airline_c' : [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#laederon#palette.insert_modified = {
|
||||||
|
\ 'airline_c' : [ s:V2[1] , s:N2[1] , s:V2[3] , s:N2[3] , '' ] }
|
||||||
|
let g:airline#themes#laederon#palette.insert_paste = {
|
||||||
|
\ 'airline_a' : [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette.replace = copy(airline#themes#laederon#palette.insert)
|
||||||
|
let g:airline#themes#laederon#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ]
|
||||||
|
let g:airline#themes#laederon#palette.replace_modified = g:airline#themes#laederon#palette.insert_modified
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#laederon#palette.visual_modified = {
|
||||||
|
\ 'airline_c' : [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#laederon#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#laederon#palette.inactive_modified = {
|
||||||
|
\ 'airline_c' : [ s:V1[1] , '' , s:V1[3] , '' , '' ] }
|
||||||
|
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
let g:airline#themes#light#palette = {}
|
||||||
|
|
||||||
|
let s:N1 = [ '#ffffff' , '#005fff' , 255 , 27 ]
|
||||||
|
let s:N2 = [ '#000087' , '#00dfff' , 18 , 45 ]
|
||||||
|
let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ]
|
||||||
|
let g:airline#themes#light#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#light#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ]
|
||||||
|
let s:I2 = [ '#005f00' , '#00df87' , 22 , 42 ]
|
||||||
|
let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ]
|
||||||
|
let g:airline#themes#light#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#light#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] ,
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#light#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#light#palette.replace = copy(g:airline#themes#light#palette.insert)
|
||||||
|
let g:airline#themes#light#palette.replace.airline_a = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ]
|
||||||
|
let g:airline#themes#light#palette.replace_modified = g:airline#themes#light#palette.insert_modified
|
||||||
|
|
||||||
|
|
||||||
|
let s:V1 = [ '#ffffff' , '#ff5f00' , 255 , 202 ]
|
||||||
|
let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ]
|
||||||
|
let s:V3 = [ '#df5f00' , '#ffff87' , 166 , 228 ]
|
||||||
|
let g:airline#themes#light#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#light#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:IA1 = [ '#666666' , '#b2b2b2' , 242 , 249 , '' ]
|
||||||
|
let s:IA2 = [ '#8a8a8a' , '#d0d0d0' , 245 , 252 , '' ]
|
||||||
|
let s:IA3 = [ '#a8a8a8' , '#ffffff' , 248 , 255 , '' ]
|
||||||
|
let g:airline#themes#light#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
let g:airline#themes#light#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#df0000' , '' , 160 , '' , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
let g:airline#themes#lucius#palette = {}
|
||||||
|
|
||||||
|
function! airline#themes#lucius#refresh()
|
||||||
|
|
||||||
|
let s:N1 = airline#themes#get_highlight('StatusLine')
|
||||||
|
let s:N2 = airline#themes#get_highlight('Folded')
|
||||||
|
let s:N3 = airline#themes#get_highlight('CursorLine')
|
||||||
|
let g:airline#themes#lucius#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
|
||||||
|
let modified_group = airline#themes#get_highlight('Statement')
|
||||||
|
let g:airline#themes#lucius#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [modified_group[0], '', modified_group[2], '', '']
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let warning_group = airline#themes#get_highlight('DiffDelete')
|
||||||
|
let g:airline#themes#lucius#palette.normal.airline_warning = warning_group
|
||||||
|
let g:airline#themes#lucius#palette.normal_modified.airline_warning = warning_group
|
||||||
|
|
||||||
|
let s:I1 = airline#themes#get_highlight('DiffAdd')
|
||||||
|
let s:I2 = s:N2
|
||||||
|
let s:I3 = s:N3
|
||||||
|
let g:airline#themes#lucius#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#lucius#palette.insert_modified = g:airline#themes#lucius#palette.normal_modified
|
||||||
|
let g:airline#themes#lucius#palette.insert.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning
|
||||||
|
let g:airline#themes#lucius#palette.insert_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning
|
||||||
|
|
||||||
|
let s:R1 = airline#themes#get_highlight('DiffChange')
|
||||||
|
let s:R2 = s:N2
|
||||||
|
let s:R3 = s:N3
|
||||||
|
let g:airline#themes#lucius#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||||
|
let g:airline#themes#lucius#palette.replace_modified = g:airline#themes#lucius#palette.normal_modified
|
||||||
|
let g:airline#themes#lucius#palette.replace.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning
|
||||||
|
let g:airline#themes#lucius#palette.replace_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning
|
||||||
|
|
||||||
|
let s:V1 = airline#themes#get_highlight('Cursor')
|
||||||
|
let s:V2 = s:N2
|
||||||
|
let s:V3 = s:N3
|
||||||
|
let g:airline#themes#lucius#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#lucius#palette.visual_modified = g:airline#themes#lucius#palette.normal_modified
|
||||||
|
let g:airline#themes#lucius#palette.visual.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning
|
||||||
|
let g:airline#themes#lucius#palette.visual_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning
|
||||||
|
|
||||||
|
let s:IA = airline#themes#get_highlight('StatusLineNC')
|
||||||
|
let g:airline#themes#lucius#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#lucius#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ]
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#lucius#palette.accents = {
|
||||||
|
\ 'red': airline#themes#get_highlight('Constant'),
|
||||||
|
\ }
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call airline#themes#lucius#refresh()
|
||||||
|
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
" vim-airline companion theme of Luna
|
||||||
|
" (https://github.com/Pychimp/vim-luna)
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.accents = {
|
||||||
|
\ 'red': [ '#ffffff' , '' , 231 , '' , '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:N1 = [ '#ffffff' , '#005252' , 231 , 36 ]
|
||||||
|
let s:N2 = [ '#ffffff' , '#003f3f' , 231 , 29 ]
|
||||||
|
let s:N3 = [ '#ffffff' , '#002b2b' , 231 , 23 ]
|
||||||
|
let g:airline#themes#luna#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#luna#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let s:I1 = [ '#ffffff' , '#789f00' , 231 , 106 ]
|
||||||
|
let s:I2 = [ '#ffffff' , '#003f3f' , 231 , 29 ]
|
||||||
|
let s:I3 = [ '#ffffff' , '#002b2b' , 231 , 23 ]
|
||||||
|
let g:airline#themes#luna#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#luna#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#ffffff' , '#005e5e' , 255 , 52 , '' ] ,
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#luna#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , '#789f00' , s:I1[2] , 106 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.replace = copy(g:airline#themes#luna#palette.insert)
|
||||||
|
let g:airline#themes#luna#palette.replace.airline_a = [ s:I2[0] , '#920000' , s:I2[2] , 88 , '' ]
|
||||||
|
let g:airline#themes#luna#palette.replace_modified = g:airline#themes#luna#palette.insert_modified
|
||||||
|
|
||||||
|
let s:V1 = [ '#ffff9a' , '#ff8036' , 222 , 208 ]
|
||||||
|
let s:V2 = [ '#ffffff' , '#003f3f' , 231 , 29 ]
|
||||||
|
let s:V3 = [ '#ffffff' , '#002b2b' , 231 , 23 ]
|
||||||
|
let g:airline#themes#luna#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#luna#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:IA = [ '#4e4e4e' , '#002b2b' , 59 , 23 , '' ]
|
||||||
|
let g:airline#themes#luna#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#luna#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#e20000' , '' , 166 , '' , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.tabline = {
|
||||||
|
\ 'airline_tab': ['#2aa198', '#003f3f', 231, 29, ''],
|
||||||
|
\ 'airline_tabsel': ['#ffffff', '#2e8b57', 231, 36, ''],
|
||||||
|
\ 'airline_tabtype': ['#ffffff', '#005252', 231, 36, ''],
|
||||||
|
\ 'airline_tabfill': ['#ffffff', '#002b2b', 231, 23, ''],
|
||||||
|
\ 'airline_tabmod': ['#ffffff', '#780000', 231, 88, ''],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:WI = [ '#ffffff', '#5f0000', 231, 88 ]
|
||||||
|
let g:airline#themes#luna#palette.normal.airline_warning = [
|
||||||
|
\ s:WI[0], s:WI[1], s:WI[2], s:WI[3]
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.normal_modified.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.insert.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.insert_modified.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.visual.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.visual_modified.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.replace.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#luna#palette.replace_modified.airline_warning =
|
||||||
|
\ g:airline#themes#luna#palette.normal.airline_warning
|
||||||
|
|
||||||
|
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#luna#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#ffffff' , '#002b2b' , 231 , 23 , '' ] ,
|
||||||
|
\ [ '#ffffff' , '#005252' , 231 , 36 , '' ] ,
|
||||||
|
\ [ '#ffffff' , '#973d45' , 231 , 95 , '' ] )
|
||||||
|
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
let g:airline#themes#molokai#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#molokai#palette.accents = {
|
||||||
|
\ 'red': [ '#66d9ef' , '' , 81 , '' , '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [ '#080808' , '#e6db74' , 232 , 144 ] " mode
|
||||||
|
let s:N2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] " info
|
||||||
|
let s:N3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] " statusline
|
||||||
|
|
||||||
|
let g:airline#themes#molokai#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#molokai#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#080808' , '#e6db74' , 232 , 144 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [ '#080808' , '#66d9ef' , 232 , 81 ]
|
||||||
|
let s:I2 = [ '#f8f8f0' , '#232526' , 253 , 16 ]
|
||||||
|
let s:I3 = [ '#f8f8f0' , '#465457' , 253 , 67 ]
|
||||||
|
|
||||||
|
let g:airline#themes#molokai#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#molokai#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#080808' , '#66d9ef' , 232 , 81 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let g:airline#themes#molokai#palette.replace = copy(g:airline#themes#molokai#palette.insert)
|
||||||
|
let g:airline#themes#molokai#palette.replace.airline_a = [ s:I1[0] , '#ef5939' , s:I1[2] , 166 , '' ]
|
||||||
|
let g:airline#themes#molokai#palette.replace_modified = {
|
||||||
|
\ 'airline_c': [ '#080808' , '#ef5939' , 232 , 166 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [ '#080808' , '#fd971f' , 232 , 208 ]
|
||||||
|
let s:V2 = [ '#f8f8f0' , '#232526' , 253 , 16 ]
|
||||||
|
let s:V3 = [ '#f8f8f0' , '#465457' , 253 , 67 ]
|
||||||
|
|
||||||
|
let g:airline#themes#molokai#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#molokai#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#080808' , '#fd971f' , 232 , 208 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Inactive
|
||||||
|
let s:IA = [ '#1b1d1e' , '#465457' , 233 , 67 , '' ]
|
||||||
|
let g:airline#themes#molokai#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#molokai#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#f8f8f0' , '' , 253 , '' , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" CtrlP
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#molokai#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#f8f8f0' , '#465457' , 253 , 67 , '' ] ,
|
||||||
|
\ [ '#f8f8f0' , '#232526' , 253 , 16 , '' ] ,
|
||||||
|
\ [ '#080808' , '#e6db74' , 232 , 144 , 'bold' ] )
|
||||||
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
let g:airline#themes#monochrome#palette = {}
|
||||||
|
|
||||||
|
function! airline#themes#monochrome#refresh()
|
||||||
|
let s:SL = airline#themes#get_highlight('StatusLine')
|
||||||
|
let g:airline#themes#monochrome#palette.normal = airline#themes#generate_color_map(s:SL, s:SL, s:SL)
|
||||||
|
let g:airline#themes#monochrome#palette.insert = g:airline#themes#monochrome#palette.normal
|
||||||
|
let g:airline#themes#monochrome#palette.replace = g:airline#themes#monochrome#palette.normal
|
||||||
|
let g:airline#themes#monochrome#palette.visual = g:airline#themes#monochrome#palette.normal
|
||||||
|
|
||||||
|
let s:SLNC = airline#themes#get_highlight('StatusLineNC')
|
||||||
|
let g:airline#themes#monochrome#palette.inactive = airline#themes#generate_color_map(s:SLNC, s:SLNC, s:SLNC)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call airline#themes#monochrome#refresh()
|
||||||
|
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
let g:airline#themes#murmur#palette = {}
|
||||||
|
|
||||||
|
" Color palette
|
||||||
|
let s:cterm_termbg = 237 " Background for branch and file format blocks
|
||||||
|
let s:gui_termbg = '#5F5F5F'
|
||||||
|
let s:cterm_termfg = 144 " Foreground for branch and file format blocks
|
||||||
|
let s:gui_termfg = '#AFAF87'
|
||||||
|
|
||||||
|
let s:cterm_termbg2 = 234 " Background for middle block
|
||||||
|
let s:gui_termbg2 = '#1C1C1C'
|
||||||
|
let s:cterm_termfg2 = 39 " Foreground for middle block
|
||||||
|
let s:gui_termfg2 = '#F5F5F5'
|
||||||
|
|
||||||
|
let s:cterm_normalbg = 27 " Background for normal mode and file position blocks
|
||||||
|
let s:gui_normalbg = '#5F87FF'
|
||||||
|
let s:cterm_normalfg = 15 " Foreground for normal mode and file position blocks
|
||||||
|
let s:gui_normalfg = '#FFFFFF'
|
||||||
|
|
||||||
|
let s:cterm_insertbg = 70 " Background for insert mode and file position blocks
|
||||||
|
let s:gui_insertbg = '#87AF5F'
|
||||||
|
let s:cterm_insertfg = 15 " Foreground for insert mode and file position blocks
|
||||||
|
let s:gui_insertfg = '#FFFFFF'
|
||||||
|
|
||||||
|
let s:cterm_visualbg = 166 " Background for visual mode and file position blocks
|
||||||
|
let s:gui_visualbg = '#ff8c00'
|
||||||
|
let s:cterm_visualfg = 15 " Foreground for visual mode and file position blocks
|
||||||
|
let s:gui_visualfg = '#FFFFFF'
|
||||||
|
|
||||||
|
let s:cterm_replacebg = 88 " Background for replace mode and file position blocks
|
||||||
|
let s:gui_replacebg = '#870000'
|
||||||
|
let s:cterm_replacefg = 15 " Foreground for replace mode and file position blocks
|
||||||
|
let s:gui_replacefg = '#FFFFFF'
|
||||||
|
|
||||||
|
let s:cterm_alert = 88 " Modified file alert color
|
||||||
|
let s:gui_alert = '#870000'
|
||||||
|
|
||||||
|
let s:cterm_inactivebg = 234 " Background for inactive mode
|
||||||
|
let s:gui_inactivebg = '#1C1C1C'
|
||||||
|
let s:cterm_inactivefg = 239 " Foreground for inactive mode
|
||||||
|
let s:gui_inactivefg = '#4E4E4E'
|
||||||
|
|
||||||
|
" Branch and file format
|
||||||
|
let s:BB = [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg] " Branch and file format blocks
|
||||||
|
|
||||||
|
" Normal mode
|
||||||
|
let s:N1 = [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg] " Outside blocks in normal mode
|
||||||
|
let s:N2 = [s:gui_termfg2, s:gui_termbg2, s:cterm_normalbg, s:cterm_termbg2] " Middle block
|
||||||
|
let g:airline#themes#murmur#palette.normal = airline#themes#generate_color_map(s:N1, s:BB, s:N2)
|
||||||
|
let g:airline#themes#murmur#palette.normal_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [s:gui_insertfg, s:gui_insertbg, s:cterm_insertfg, s:cterm_insertbg] " Outside blocks in insert mode
|
||||||
|
let s:I2 = [s:gui_insertbg, s:gui_termbg2, s:cterm_insertbg, s:cterm_termbg2] " Middle block
|
||||||
|
let g:airline#themes#murmur#palette.insert = airline#themes#generate_color_map(s:I1, s:BB, s:I2)
|
||||||
|
let g:airline#themes#murmur#palette.insert_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let s:R1 = [s:gui_replacefg, s:gui_replacebg, s:cterm_replacefg, s:cterm_replacebg] " Outside blocks in replace mode
|
||||||
|
let s:R2 = [s:gui_termfg, s:gui_termbg2, s:cterm_termfg, s:cterm_termbg2] " Middle block
|
||||||
|
let g:airline#themes#murmur#palette.replace = airline#themes#generate_color_map(s:R1, s:BB, s:R2)
|
||||||
|
let g:airline#themes#murmur#palette.replace_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [s:gui_visualfg, s:gui_visualbg, s:cterm_visualfg, s:cterm_visualbg] " Outside blocks in visual mode
|
||||||
|
let s:V2 = [s:gui_visualbg, s:gui_termbg2, s:cterm_visualbg, s:cterm_termbg2] " Middle block
|
||||||
|
let g:airline#themes#murmur#palette.visual = airline#themes#generate_color_map(s:V1, s:BB, s:V2)
|
||||||
|
let g:airline#themes#murmur#palette.visual_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
|
||||||
|
|
||||||
|
" Inactive mode
|
||||||
|
let s:IA1 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, '']
|
||||||
|
let s:IA2 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, '']
|
||||||
|
let s:IA3 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, '']
|
||||||
|
let g:airline#themes#murmur#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||||
|
|
||||||
|
" CtrlP plugin colors
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#murmur#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg, ''],
|
||||||
|
\ [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg, ''],
|
||||||
|
\ [s:gui_termfg2, s:gui_termbg2, s:cterm_termfg2, s:cterm_termbg2, 'bold'])
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
let g:airline#themes#papercolor#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#papercolor#palette.accents = {
|
||||||
|
\ 'red': [ '#66d9ef' , '' , 81 , '' , '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Normal Mode:
|
||||||
|
let s:N1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode
|
||||||
|
let s:N2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info
|
||||||
|
let s:N3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#papercolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#papercolor#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Insert Mode:
|
||||||
|
let s:I1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode
|
||||||
|
let s:I2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info
|
||||||
|
let s:I3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine
|
||||||
|
|
||||||
|
|
||||||
|
let g:airline#themes#papercolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#papercolor#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Replace Mode:
|
||||||
|
let g:airline#themes#papercolor#palette.replace = copy(g:airline#themes#papercolor#palette.insert)
|
||||||
|
let g:airline#themes#papercolor#palette.replace.airline_a = [ '#d7005f' , '#e4e4e4' , 161 , 254, '' ]
|
||||||
|
let g:airline#themes#papercolor#palette.replace_modified = {
|
||||||
|
\ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" Visual Mode:
|
||||||
|
let s:V1 = [ '#005f87', '#e4e4e4', 24, 254 ]
|
||||||
|
let s:V2 = [ '', '#0087af', '', 31 ]
|
||||||
|
let s:V3 = [ '#e4e4e4', '#005f87', 254, 24 ]
|
||||||
|
|
||||||
|
let g:airline#themes#papercolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#papercolor#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#e4e4e4', '#005f87', 254, 24 ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" Inactive:
|
||||||
|
let s:IA = [ '#585858' , '#e4e4e4' , 240 , 254 , '' ]
|
||||||
|
let g:airline#themes#papercolor#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#papercolor#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
" CtrlP:
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#papercolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#e4e4e4' , '#005f87' , 254 , 24 , '' ] ,
|
||||||
|
\ [ '#e4e4e4' , '#0087af' , 254 , 31 , '' ] ,
|
||||||
|
\ [ '#585858' , '#e4e4e4' , 240 , 254 , 'bold' ] )
|
||||||
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
" Theme to mimic the default colorscheme of powerline
|
||||||
|
" Not 100% the same so it's powerline... ish.
|
||||||
|
"
|
||||||
|
" Differences from default powerline:
|
||||||
|
" * Paste indicator isn't colored different
|
||||||
|
" * Far right hand section matches the color of the mode indicator
|
||||||
|
"
|
||||||
|
" Differences from other airline themes:
|
||||||
|
" * No color differences when you're in a modified buffer
|
||||||
|
" * Visual mode only changes the mode section. Otherwise
|
||||||
|
" it appears the same as normal mode
|
||||||
|
|
||||||
|
" Normal mode " fg & bg
|
||||||
|
let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] " darkestgreen & brightgreen
|
||||||
|
let s:N2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] " gray8 & gray2
|
||||||
|
let s:N3 = [ '#ffffff' , '#121212' , 231 , 233 ] " white & gray4
|
||||||
|
|
||||||
|
" Insert mode " fg & bg
|
||||||
|
let s:I1 = [ '#005f5f' , '#ffffff' , 23 , 231 ] " darkestcyan & white
|
||||||
|
let s:I2 = [ '#5fafd7' , '#0087af' , 74 , 31 ] " darkcyan & darkblue
|
||||||
|
let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] " mediumcyan & darkestblue
|
||||||
|
|
||||||
|
" Visual mode " fg & bg
|
||||||
|
let s:V1 = [ '#080808' , '#ffaf00' , 232 , 214 ] " gray3 & brightestorange
|
||||||
|
|
||||||
|
" Replace mode " fg & bg
|
||||||
|
let s:RE = [ '#ffffff' , '#d70000' , 231 , 160 ] " white & brightred
|
||||||
|
|
||||||
|
let g:airline#themes#powerlineish#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#powerlineish#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
|
||||||
|
let g:airline#themes#powerlineish#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#powerlineish#palette.insert_replace = {
|
||||||
|
\ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] }
|
||||||
|
|
||||||
|
let g:airline#themes#powerlineish#palette.visual = {
|
||||||
|
\ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] }
|
||||||
|
|
||||||
|
let g:airline#themes#powerlineish#palette.replace = copy(airline#themes#powerlineish#palette.normal)
|
||||||
|
let g:airline#themes#powerlineish#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ]
|
||||||
|
|
||||||
|
|
||||||
|
let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ]
|
||||||
|
let g:airline#themes#powerlineish#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
let g:airline#themes#raven#palette = {}
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.accents = {
|
||||||
|
\ 'red': [ '#ff2121' , '' , 196 , '' , '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:N1 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ]
|
||||||
|
let s:N2 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ]
|
||||||
|
let s:N3 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ]
|
||||||
|
let g:airline#themes#raven#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#raven#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:I1 = [ '#11c279' , '#2e2e2e' , 36 , 235 ]
|
||||||
|
let s:I2 = [ '#11c279' , '#2e2e2e' , 36 , 235 ]
|
||||||
|
let s:I3 = [ '#11c279' , '#2e2e2e' , 36 , 235 ]
|
||||||
|
let g:airline#themes#raven#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#raven#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] ,
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#raven#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , '#2e2e2e' , s:I1[2] , 235 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.replace = copy(g:airline#themes#raven#palette.insert)
|
||||||
|
let g:airline#themes#raven#palette.replace.airline_a = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ]
|
||||||
|
let g:airline#themes#raven#palette.replace.airline_z = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ]
|
||||||
|
let g:airline#themes#raven#palette.replace_modified = g:airline#themes#raven#palette.insert_modified
|
||||||
|
|
||||||
|
let s:V1 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ]
|
||||||
|
let s:V2 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ]
|
||||||
|
let s:V3 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ]
|
||||||
|
let g:airline#themes#raven#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#raven#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:IA = [ '#5e5e5e' , '#222222' , 59 , 235 , '' ]
|
||||||
|
let g:airline#themes#raven#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||||
|
let g:airline#themes#raven#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.tabline = {
|
||||||
|
\ 'airline_tab': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ],
|
||||||
|
\ 'airline_tabsel': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ],
|
||||||
|
\ 'airline_tabtype': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ],
|
||||||
|
\ 'airline_tabfill': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ],
|
||||||
|
\ 'airline_tabmod': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:WI = [ '#ff0000', '#2e2e2e', 196, 235 ]
|
||||||
|
let g:airline#themes#raven#palette.normal.airline_warning = [
|
||||||
|
\ s:WI[0], s:WI[1], s:WI[2], s:WI[3]
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.normal_modified.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.insert.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.insert_modified.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.visual.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.visual_modified.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.replace.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#raven#palette.replace_modified.airline_warning =
|
||||||
|
\ g:airline#themes#raven#palette.normal.airline_warning
|
||||||
|
|
||||||
|
if !get(g:, 'loaded_ctrlp', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:airline#themes#raven#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||||
|
\ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] ,
|
||||||
|
\ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] ,
|
||||||
|
\ [ '#2e2e2e' , '#a4c639' , 235 , 149 , '' ] )
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
let g:airline#themes#serene#palette = {}
|
||||||
|
|
||||||
|
let s:guibg = '#080808'
|
||||||
|
let s:termbg = 232
|
||||||
|
let s:termsep = 236
|
||||||
|
let s:guisep = '#303030'
|
||||||
|
|
||||||
|
let s:N1 = [ '#00dfff' , s:guibg , 45 , s:termbg ]
|
||||||
|
let s:N2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ]
|
||||||
|
let s:N3 = [ '#767676' , s:guibg , 7 , s:termbg ]
|
||||||
|
|
||||||
|
let g:airline#themes#serene#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||||
|
let g:airline#themes#serene#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let s:I1 = [ '#5fff00' , s:guibg , 82 , s:termbg ]
|
||||||
|
let s:I2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ]
|
||||||
|
let s:I3 = [ '#767676' , s:guibg , 7 , s:termbg ]
|
||||||
|
let g:airline#themes#serene#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||||
|
let g:airline#themes#serene#palette.insert_modified = copy(g:airline#themes#serene#palette.normal_modified)
|
||||||
|
let g:airline#themes#serene#palette.insert_paste = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] ,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#serene#palette.replace = {
|
||||||
|
\ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] ,
|
||||||
|
\ }
|
||||||
|
let g:airline#themes#serene#palette.replace_modified = copy(g:airline#themes#serene#palette.normal_modified)
|
||||||
|
|
||||||
|
let s:V1 = [ '#dfdf00' , s:guibg , 184 , s:termbg ]
|
||||||
|
let s:V2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ]
|
||||||
|
let s:V3 = [ '#767676' , s:guibg , 7 , s:termbg ]
|
||||||
|
let g:airline#themes#serene#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||||
|
let g:airline#themes#serene#palette.visual_modified = copy(g:airline#themes#serene#palette.normal_modified)
|
||||||
|
|
||||||
|
let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ]
|
||||||
|
let s:IA2 = [ '#4e4e4e' , s:guisep , 239 , s:termsep , '' ]
|
||||||
|
let g:airline#themes#serene#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2)
|
||||||
|
let g:airline#themes#serene#palette.inactive_modified = copy(g:airline#themes#serene#palette.normal_modified)
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user