186 Commits
v0.6 ... v0.7

Author SHA1 Message Date
Bailey Ling
401ce611c6 Merge pull request #651 from chenaren/byfname
Show the byfname toggle in status line of CtrlP
2014-12-09 22:25:41 -05:00
Bailey Ling
317fcfd295 Merge pull request #666 from blueyed/no-ft-override-for-diff
Remove 'diff' from s:filetype_overrides
2014-12-09 22:22:34 -05:00
Daniel Hahler
9650024142 Remove 'diff' from s:filetype_overrides
I would like to see the normal statusline (i.e. file name) with
diff/patch files, too.
2014-12-02 16:11:16 +01:00
Bailey Ling
4a2208821e Merge pull request #656 from michamos/patch-1
Improve Quickfix window detection
2014-11-26 09:17:42 -05:00
Bailey Ling
a323b5ba3d Merge pull request #657 from michamos/master
Add vim-plug override
2014-11-25 21:11:42 -05:00
Bailey Ling
6b4f03efbc fix seperator drawing when tabs are shown. fixes #653. 2014-11-25 21:04:18 -05:00
Micha Moskovic
96afdbc877 Add vim-plug override 2014-11-25 16:49:43 +01:00
Micha Moskovic
4c22406e28 Improve Quickfix window detection
When using a non-english locale, the name of the Quickfix window can change, making the detection of Quickfix vs Location list fail.
E.g., my locale is set to italian and the Quickfix window's name is `[Lista Quickfix]` rather than `[Quickfix List]`.
This change generalizes the pattern used to detect the Quickfix window.
2014-11-25 16:32:46 +01:00
Bailey Ling
15666d71e3 Merge pull request #652 from chenaren/venv_fallback
Add simple virtualenv fallback when vim-virtualenv is not presented
2014-11-22 10:59:01 -05:00
Kevin Chen
4878fab120 Add a virtualenv fallback when vim-virtualenv is not presented 2014-11-21 23:39:39 +08:00
Bailey Ling
eb04e25d34 Merge pull request #650 from chenaren/master
Add CtrlP style to Bubblegum
2014-11-21 09:37:14 -05:00
Kevin Chen
b4c8d43e85 Add CtrlP style to the Bubblegum theme 2014-11-20 21:27:26 +08:00
Kevin Chen
038c000f91 Show the byfname toggle in status line 2014-11-20 21:23:25 +08:00
Bailey Ling
411ae84890 Merge pull request #643 from maek/master
Improve tabline + buffer_min_count behaviour
2014-11-15 16:31:53 -05:00
Bailey Ling
d003b2450a Merge pull request #547 from kdurant/master
Create durant.vim
2014-11-15 14:52:50 -05:00
Bailey Ling
09817e0984 fix regression with serene theme, #599 2014-11-15 19:49:02 +00:00
maek
f8645fb654 Improve tabline + buffer_min_count behaviour
Use BufEnter and BufUnload in place of CursorMoved.

Fixes #479
2014-11-10 15:30:44 +01:00
Bailey Ling
be6e4d6dd6 check background of groups to determine transition. resolves #599. 2014-11-09 00:52:42 -05:00
Bailey Ling
727192ad6a refactor builder and reduce state across multiple calls 2014-11-04 14:49:02 -05:00
Bailey Ling
256dec6800 detect changes to tabline config variables after init. resolves #636 2014-11-04 14:48:00 -05:00
Bailey Ling
246c217562 Merge pull request #631 from rkannan82/master
Display warnings only when there are no errors messages.
2014-10-27 21:58:13 -04:00
Bailey Ling
3e0b5474b1 Merge pull request #628 from freeo/master
Theme kalisi: Added 256 term colors and several changes
2014-10-27 21:11:11 -04:00
Kannan Rajah
328016ce85 Exclude INFO from error/warning count.
Eclim uses signs for code reference searches and they shows up as INFO
signs. These are not errors/warnings and hence should not be included in
count.

Testing:
Verified the right count shows up.
2014-10-26 10:14:13 -07:00
Asa Jay
82a4ebb56c Theme kalisi: Added 256 term colors, several changes
Changed insert mode color 3
Changed tabline modified
Changed inactive modfied statusline
Refined visual and replace mode colors
2014-10-26 14:08:21 +01:00
Bailey Ling
64b9ae176d Merge pull request #618 from rkannan82/master
Display warnings only when there are no errors messages.
2014-10-25 22:57:45 -04:00
Bailey Ling
616daceb73 add small section about performance to readme 2014-10-18 11:45:09 -04:00
Bailey Ling
37ddb6e7da Merge pull request #622 from spacelis/master
Make tabline's left separators customizable as right separathers.
2014-10-18 11:37:55 -04:00
wangjun
78c3cd9bba Update durant.vim
remove comments
2014-10-17 14:40:42 +08:00
Bailey Ling
c85ce909df Merge pull request #619 from bchretien/master
themes: fix GUI murmur theme.
2014-10-15 21:12:15 -04:00
wenli
7c4bf0aba6 Make tabline's left separators customizable as right separathers. 2014-10-15 22:32:00 +02:00
Benjamin Chrétien
23b452d1ae themes: fix GUI murmur theme. 2014-10-14 00:17:45 +02:00
Kannan Rajah
84c242a27d Display warnings only when there are no errors messages.
In large code base, typically there will lot of warnings because the
file has been changed by many people and not everyone bothered to follow
coding conventions. So its more useful to show the errors first. Once
all errors have been fixed, we can focus on warnings.
2014-10-12 17:38:06 -07:00
Bailey Ling
0bc3a21116 Merge pull request #614 from Pychimp/two-themes
Update raven.vim
2014-10-05 18:13:08 -04:00
Pratheek
258817ff38 Update raven.vim
- Fixed the incorrect cterm background value for airline_warning
2014-10-05 20:05:17 +05:30
Bailey Ling
53e765a49d Merge pull request #582 from Pychimp/two-themes
Added two themes
2014-10-05 08:30:32 -04:00
Bailey Ling
51c788a37b Merge pull request #613 from meonkeys/patch-1
README: fix link to powerline font install docs
2014-10-05 08:29:26 -04:00
Pychimp
b16870fbf9 Added theme support for console vim
- Both themes (raven and silver) have been updated
2014-10-05 15:05:47 +05:30
Adam Monsen
6feec73d14 README: fix link to powerline font install docs 2014-10-04 20:35:10 -07:00
Bailey Ling
825a048b10 Merge pull request #603 from kballard/part_condition_special_char
Handle special characters in part conditions
2014-09-22 22:36:04 -04:00
Kevin Ballard
908f031f42 Handle special characters in part conditions 2014-09-22 01:44:23 -07:00
Bailey Ling
4dab93470f improve buffer index mode and fix usages where there's overflow 2014-09-17 09:52:08 -04:00
Bailey Ling
8421f03178 Merge pull request #598 from wesQ3/pr
Added extension for wesQ3/vim-windowswap
2014-09-15 12:31:33 -04:00
Bailey Ling
50c9ea89a5 Merge pull request #589 from paulhybryant/master
Minor enhancement for tabline
2014-09-15 12:30:08 -04:00
Yu Huang
ae472d6716 Add buffer_idx_mode to vim-airline.
Update documentation.
Keep buffer index-id map a script scope variable.
2014-09-14 18:58:20 -07:00
Bailey Ling
3eef719c4d Merge pull request #595 from mseabold/upstream
Tabline: Highlight unselected modified buffer
2014-09-11 22:40:39 -04:00
Wes Malone
d6475684b7 add windowswap extension 2014-09-10 19:05:42 -05:00
Matt Seabold
a5e5d8ab4f Tabline protect against missing palletes
If normal_modified or normal_modified.airline_c aren't present, fallback
to the default normal.airline_c.
2014-09-08 09:43:15 -04:00
Bailey Ling
3f3ae446e1 Merge pull request #591 from igorpetrovcom/tabline-close-button-flag
Show/hide setting for close button in tabline
2014-09-07 11:17:32 -04:00
Matt Seabold
bfd160a08b Tabline: Highlight unselected modified buffer
Use the modified airline_c color on unselected modified buffers in order
to highlight them as modified while unselected.
2014-09-04 15:51:40 -04:00
Igor Petrov
6e5865473c Tabline close button flag added 2014-09-04 02:48:48 +04:00
Bailey Ling
310331cfc4 Merge pull request #586 from blueyed/readonly-for-nomodifiable
Add `readonly` indicator also for &nomodifiable
2014-08-29 22:09:55 -04:00
Daniel Hahler
7c65176499 Add readonly indicator also for !&modifiable
While typically both are set (e.g. with `:help`), I am using the
modifiable setting alone to prevent editing of some files via an
autocommand (`*.css`, if `*.scss` exists).

I can also set `readonly` for this buffer, but that gets reset when
reloading the buffer, which is not the case for `modifiable`.
2014-08-28 00:23:59 +02:00
Bailey Ling
ad19d1a10f Merge pull request #577 from qstrahl/master
Don't wipe out b:airline_head if fugitive finds the head
2014-08-25 20:48:18 -04:00
Quinn Strahl
30df99a681 Don't wipe out b:airline_head if fugitive finds the head
- Fugitive can edit virtual files that represent objects in git; while
  editing these files, it still reports on the HEAD of the relevant
  repo, which should be displayed as the branch (rather than having the
  branch section disappear)
2014-08-25 09:51:52 -04:00
Pychimp
47fd63586c Added two themes
- Raven (for Dark colorschemes)
- Silver (for Light colorschemes)
2014-08-24 13:20:19 +05:30
Bailey Ling
f17927053e Merge pull request #580 from andrewgregory/detached_head
use commit hash as git branch with detached HEAD
2014-08-22 15:39:06 -04:00
Andrew Gregory
83a7e30790 use commit hash as git branch with detached HEAD
Abbreviated to 7 characters to match `git rev-parse --short HEAD`.
2014-08-20 18:59:15 -04:00
Bailey Ling
f0e00620c0 Merge pull request #576 from qstrahl/master
Preserve section c text for inactive windows
2014-08-15 22:37:44 -04:00
Quinn Strahl
ed180fda62 Preserve section c text for inactive windows
- Closes #573
2014-08-15 15:44:18 -04:00
Bailey Ling
00e4b68ee6 Merge pull request #571 from perkint/perkint-tabline-refresh
bugfix for a tabline refresh problem
2014-08-15 13:49:29 -04:00
perkint
0349f85ab0 bugfix for a tabline refresh problem 2014-08-12 17:26:52 -07:00
Bailey Ling
2114e70251 Merge pull request #564 from freeo/master
Improved my theme kalisi
2014-08-01 22:35:41 -04:00
Asa Jay
ac08bbcf26 Added CtrlP support, refined visual and replace mode colors. 2014-07-30 22:38:17 +02:00
Bailey Ling
e10ef2fb25 also redraw the statusline for :AirlineRefresh (for #563) 2014-07-30 15:29:43 -04:00
Bailey Ling
9a1dff320d Merge pull request #559 from Wraul/feature_capslock
Added extension for tpope/vim-capslock
2014-07-30 13:14:27 -04:00
Mathias Andersson
faa15c136c Added extension for tpope/vim-capslock 2014-07-29 00:55:53 +02:00
Bailey Ling
936e2b6a66 Merge pull request #549 from sunaku/cterm-reverse
cterm=reverse not honored; only term=reverse was
2014-06-29 12:18:19 -04:00
Suraj N. Kurapati
bd7220cb5b cterm=reverse not honored; only term=reverse was
This patch makes Airline honor the `cterm=reverse` syntax attribute.
2014-06-29 06:33:42 -07:00
kdurant
ea828c5a6a Create durant.vim
add airline scheme
2014-06-25 12:54:07 +08:00
Bailey Ling
3ab1bb7eb0 Merge pull request #527 from zdm/master
Always use absolute file path when comparing buffers names
2014-05-31 12:08:11 -04:00
Bailey Ling
c5a404bd62 Merge pull request #531 from chrisbra/add_changes_plugin
integrate changesPlugin for displaying hunks
2014-05-28 10:59:27 -04:00
Christian Brabandt
f2ae2bd7d0 integrate changesPlugin for displaying hunks 2014-05-27 20:22:59 +02:00
zdm
45cab177ef always use absolute file path when comparing buffers names 2014-05-22 12:29:35 +03:00
Bailey Ling
44bf6fd1c5 Merge pull request #526 from bennidhamma/master
Fix #462 - Configurable head limit.
2014-05-22 00:03:32 -04:00
Ben Joldersma
4f904ab0d4 Fix #462 - Configurable head limit. 2014-05-21 10:41:53 -07:00
Bailey Ling
bfcece76c9 add readonly mode so it can be themed independently. resolves #510 2014-05-10 14:41:21 +00:00
Bailey Ling
c5347b2f03 Merge pull request #503 from saamalik/patch-1
Fix #456 Status line text color too dim for inactive windows
2014-05-05 00:34:06 -04:00
Saad Malik
99a4b38732 Fix #456
Fix for #456 Status line text color too dim for inactive windows.
2014-05-04 12:58:04 -07:00
Bailey Ling
7b56fbdd29 Merge pull request #500 from chrisbra/updated_nrrwrgn
updated nrrwrgn integration
2014-05-03 10:47:58 -04:00
Christian Brabandt
534d8e844b updated nrrwrgn integration 2014-05-03 14:16:50 +02:00
Bailey Ling
db0ea7a970 Merge pull request #499 from steve0hh/patch-1
Update README.md vundle installation instructions
2014-04-26 11:33:06 -04:00
steve
5ff2b4b2f5 Update README.md vundle installation instructions
[vundle is undergoing interface changes](https://github.com/gmarik/Vundle.vim/blob/master/doc/vundle.txt#L372-L396)
2014-04-26 14:28:28 +08:00
Bailey Ling
3267c74a55 Merge pull request #498 from lumbric/master
fix minor typo in help text
2014-04-25 15:57:16 -04:00
Peter Regner
7bd40715d4 fix minor typo in help text 2014-04-25 18:28:49 +02:00
Bailey Ling
a222518b76 Merge pull request #497 from johnathanz/master
doesn't assume user has 'set autochdir' set
2014-04-23 21:11:33 -04:00
Bailey Ling
7372806f1d Merge pull request #496 from chrisbra/new_feature_nrrwrgn
new NrrwRgn integration
2014-04-23 19:50:04 -04:00
Johnathan
9e8fe7a98e doesn't assume user has 'set autochdir' set 2014-04-24 03:03:03 +10:00
Christian Brabandt
a90a39b4aa new NrrwRgn integration 2014-04-23 01:23:42 +02:00
Bailey Ling
81430cbdf6 append to the existing value in case the user defined it. 2014-04-20 14:52:06 +00:00
Bailey Ling
7560204212 Merge pull request #493 from chrisbra/master
Enable :AirlineToggleWhitespace,
2014-04-20 10:05:36 -04:00
Christian Brabandt
931367d9fb Enable :AirlineToggleWhitespace,
even if g:airline#extensions#whitespace#enabled is disabled
2014-04-20 00:39:43 +02:00
Bailey Ling
fafb9ea76e provide option to disable runtimepath extension loading. resolves #483 2014-04-19 14:38:02 -04:00
Bailey Ling
e49eac95a3 add support for configurable whitespace checking algorithms and default it to the simplest one. resolves #484 2014-04-19 14:27:14 -04:00
Bailey Ling
abee990d30 handle cases where the augroup has not be defined yet. resolves #492 2014-04-19 14:16:36 -04:00
Bailey Ling
66d0a47f37 Merge pull request #478 from davits/mixed_indent
Improvements in whitespace plugin
2014-04-05 16:56:02 -04:00
Davit Samvelyan
7b0d80050a Now trailing tabs are also reported, fixed bug when trailings with mixed tabs and spaces were being reported as mixed indents, case when count of spaces at the end of tabbed indentation less then tabstop does not reported as mixed indent anymore. 2014-04-05 16:41:27 +05:00
Bailey Ling
a37f0b9ae0 restore original directory change detection. also resolves #474. 2014-04-03 00:54:43 +00:00
Bailey Ling
d111e4edb3 remove usage of fugitive#detect as per request
https://github.com/tpope/vim-fugitive/issues/463
2014-04-01 16:45:06 -04:00
Bailey Ling
c374af183a Merge pull request #469 from russellhancox/patch-1
Save branch head to a buffer variable
2014-03-31 07:53:11 -04:00
Russell Hancox
13297cee03 Add CursorHold autocmd to unset airline_head 2014-03-28 10:53:13 -04:00
Russell Hancox
25059d43b1 Save branch head to a buffer variable
Save branch head to a buffer-local variable to prevent looking up the VCS head for every status line refresh.
2014-03-24 14:01:31 -04:00
Bailey Ling
5a2daf6dfb Merge pull request #468 from Pychimp/master
Fixes incorrect fg value in visual modified
2014-03-22 17:27:57 -04:00
Pychimp
496ba60984 Fixes incorrect fg value in visual modified
- changes it from white (hard to read) to dark grey-ish (easier to read)
2014-03-23 00:38:28 +05:30
Bailey Ling
42a4590948 Merge pull request #467 from xinleibird/master
filter() result error
2014-03-22 11:48:17 -04:00
xinleibird
3c66f13b9a My fault, it's a transferred error, add a '\' that' works fine. 2014-03-22 16:16:27 +08:00
xinleibird
3bde2fabd1 filter() result error 2014-03-22 14:41:48 +08:00
Bailey Ling
ab92a95969 Merge pull request #442 from blueyed/doc
Minor doc fixes
2014-03-21 23:54:30 -04:00
Bailey Ling
9291968b94 Merge pull request #466 from Pychimp/master
Improvements to Sol and Luna themes
2014-03-21 23:48:07 -04:00
Bailey Ling
9cb7366128 Merge pull request #464 from emilyst/customize-tabline-close-and-type
Customizes tabline appearance: type, close button
2014-03-21 23:47:21 -04:00
Pychimp
5a3e8852bd Improve colour highlights
- Sol: Used a less distracting color to show a modified file/buffer
- Sol: Similar change as above, to tabline as well
- Sol: Warning colour imporved (Previously was some bad shade of magenta)
- Sol: All the Above mentioned changes replicated for CTERM values as well
--------------------------------------------------------------------------
- Luna: `Inactive Modified` colour is improved (Was a shade of red
                                                that was hard to read)
2014-03-21 00:33:26 +05:30
Emily St
f196ea1f36 Customizes tabline appearance: type, close button
This commit adds a couple of new settings so that it's possible to hide
the tab type (all the way to the right) and the symbol which represents
the close button.

The settings and their defaults:

let g:airline#extensions#tabline#show_tab_type = 1
let g:airline#extensions#tabline#close_symbol = 'X'
2014-03-19 13:46:44 -07:00
Bailey Ling
799e5e028f Merge pull request #455 from taketwo/fix-empty-key-error
Fix "Cannot use empty key for Dictionary" error
2014-03-10 08:15:17 -04:00
Sergey Alexandrov
4a76132cbe Fix "Cannot use empty key for Dictionary" error
This commit resolves compatibility issue with fugitive plugin. When
using "Gdiff" command on some file, fugitive attempts to open the
current and the index version of the file. For example, if the file is

    /home/taketwo/path/to/the/project/README.md

then fugitive will use the following path to open the index version:

    fugitive:///home/taketwo/path/to/the/project/.git//0/README.md

Opening this file leads to a cascade of errors like this:

    Error detected while processing function
    airline#extensions#tabline#get..<SNR>162_get_buffers..<SNR>162_get_visible_buffers..airline#extensions#tabline#get_buffer_name..airline#extensions#tabline#unique_tail_improved#format:
    line   20:
    E713: Cannot use empty key for Dictionary

The problem is that when a filename like this is being tokenized, there
appear empty "" tokens, and an error occurs when using them as keys in
`path_tokens[token_index]` dictionary. This fix simply skips empty
tokens.
2014-03-10 12:27:22 +01:00
Bailey Ling
d99112d6c6 improve whitespace detection. resolves #452. 2014-03-09 21:58:42 -04:00
Evgeni Kolev
7857cc2345 Merge pull request #410 from coven/master
Branch extension bugs. Fix #444
2014-03-01 08:39:05 +02:00
Bailey Ling
9aea79bb99 Merge pull request #404 from blueyed/solarized-inactive-like-vertsplit
solarized: use VertSplit bg for inactive statusline
2014-02-27 22:02:35 -05:00
Bailey Ling
942c6ae382 reset current buffer when one gets deleted. resolves #399 2014-02-25 20:34:52 -05:00
Paweł Więcek
63f811e15c Enable branch extension when vcscommand is available 2014-02-25 22:43:19 +01:00
Paweł Więcek
5e25794d4b Correctly detect mercurial repos using lawrencium 2014-02-25 22:36:36 +01:00
Bailey Ling
6aac1b469d Merge pull request #441 from blueyed/tagbar_once_per_second
tagbar: only lookup tag once every second
2014-02-19 22:21:42 -05:00
Daniel Hahler
a6e304e07c minor doc fix: s/various some/various/ 2014-02-20 00:30:56 +01:00
Daniel Hahler
ffbbaa769a Clarify doc for loading custom extensions 2014-02-20 00:30:16 +01:00
Daniel Hahler
2dc416aa8f tagbar: only lookup tag once every second
This makes scrolling (holding done j/k) much smoother, and the current
tag gets pulled in via CursorHold anyway.

Fixes https://github.com/bling/vim-airline/issues/387
2014-02-20 00:06:04 +01:00
Bailey Ling
dbd6c4a71a Merge pull request #434 from yasuoza/hybrid-theme
Add new color theme: hybrid
2014-02-14 20:14:26 -05:00
Yasuharu Ozaki
0f091db08f Add new color theme: hybrid 2014-02-14 21:59:31 +09:00
Bailey Ling
b45ab384ee Merge pull request #428 from eyetracker/master
Added new color theme: Kalisi
2014-02-06 07:04:52 -05:00
Asa Jay
82efa95d94 Added new color theme: Kalisi 2014-02-06 00:25:19 +01:00
Daniel Hahler
3e044418a3 Revert changes to s:NM, add s:NMi for inactive windows 2014-01-26 12:04:30 +01:00
Bailey Ling
fae68dbcb7 account for possibilty of branch extension unavailable. resolves #419. 2014-01-20 12:39:33 -05:00
Bailey Ling
baed8ac063 happy 2014 2014-01-19 23:44:44 -05:00
Bailey Ling
ac798b0106 Merge pull request #418 from ralesi/netrw
Add deeper netrw support, including Git branch head and netrw sorting
2014-01-19 20:38:05 -08:00
ralesi
75ee42b118 Add deeper netrw support, including Git branch head and netrw sorting
options
2014-01-19 12:06:55 -07:00
Bailey Ling
b7c88b40aa Merge pull request #413 from ralesi/patch-1
Allow changes to airline_symbols.branch after init
2014-01-16 18:54:24 -08:00
Bailey Ling
4ca48ba6e2 Merge pull request #412 from gabriellim/patch-1
Minor spelling
2014-01-16 18:54:05 -08:00
Rich Alesi
6141a59278 Allow changes to airline_symbols.branch after init
If the user updates the airline_symbols.branch variable later in the vimrc, the value will not update after the initial init.  Since these variables are only used in the get_head() function, I moved them locally within the function to allow evaluation on each instance.
2014-01-15 21:31:07 -07:00
gabriellim
c638affe4f Minor spelling
5th bullet point in Features section had the word "colorschemes"

Proposed fix: color schemes
2014-01-14 23:24:29 -08:00
Bailey Ling
5f1c24528c Merge pull request #402 from edkolev/prompt-extension
Prompt extension
2014-01-10 17:53:42 -08:00
Daniel Hahler
41a148f1e6 solarized: use VertSplit bg for inactive statusline
Adjust foreground color accordingly, also for non-active modified
filename (to stand out).
2014-01-10 22:47:33 +01:00
Evgeni Kolev
1c41ce53d9 Add promptline.vim extension 2014-01-10 22:14:21 +02:00
Bailey Ling
7a1801e9c4 Merge pull request #396 from gstewart/master
Fixed modified tab/buffer not updating in tabline
2014-01-01 20:48:52 -08:00
gstewart
48f762e312 Fixed modified tab/buffer not updating in tabline 2013-12-31 17:38:16 -08:00
Bailey Ling
576d1de716 Merge pull request #394 from f/patch-1
tagbar link fixed
2013-12-28 17:48:32 -08:00
Fatih Kadir AKIN
4345a6b29a tagbar link fixed
tagbar link was going to user's url.
2013-12-29 03:19:24 +02:00
Bailey Ling
1a6c84b00a Merge pull request #388 from zdm/master
Supress tab numbers and improved uniq_tail formatter
2013-12-26 12:32:41 -08:00
zdm
225098475a docs updated 2013-12-26 08:16:30 +02:00
zdm
19861d0514 docs updated 2013-12-23 07:58:24 +02:00
zdm
50fd649110 docs updated, formatters moved to separate filenames 2013-12-23 07:41:24 +02:00
zdm
6c79004aaa show tab nr condition moved to right place 2013-12-22 05:32:06 +02:00
zdm
0714c35547 add skipped symbol fix 2013-12-22 05:17:01 +02:00
zdm
f6133e4fa1 dos path fixed 2013-12-22 04:03:07 +02:00
zdm
43c1636e36 windows path replaced 2013-12-22 03:49:30 +02:00
zdm
8d7c2ad830 uniq_tail improved formatter added 2013-12-22 02:27:42 +02:00
Bailey Ling
233e3c60ce improve performance when showing tabs in the tabline (#326). 2013-12-16 00:27:18 -05:00
Bailey Ling
df2f33d6a5 specify maximum for whitespace checking. resolves #378. 2013-12-13 16:38:32 -05:00
Bailey Ling
739a275d5d Merge pull request #379 from phy1729/master
Add comment on 'laststatus' to the README
2013-12-13 13:19:20 -08:00
Bailey Ling
414f43812a Merge pull request #380 from zeis/master
Add kolor theme
2013-12-13 13:18:05 -08:00
Alessandro Di Martino
7c10cfa73e Improve some colors 2013-12-13 21:50:00 +01:00
Alessandro Di Martino
285b4da3e5 Add kolor theme 2013-12-13 17:40:52 +01:00
Matthew Martin
ad1b23e8c3 Add comment on 'laststatus' to the README
Judging from #vim activity, few read the help all the way to the FAQs.
2013-12-13 08:57:58 -06:00
Bailey Ling
9039793343 Merge pull request #377 from blueyed/eclim-filter-signs
eclim: only consider signs placed by eclim
2013-12-11 11:48:46 -08:00
Daniel Hahler
ba899b2dde eclim: only consider signs placed by eclim
Ref: https://github.com/bling/vim-airline/pull/293
2013-12-11 09:40:50 +01:00
Bailey Ling
87951ba090 Merge pull request #375 from qstrahl/master
Correct quickfix window detection pattern
2013-12-09 17:37:39 -08:00
Quinn Strahl
fdc847c8da Correct quickfix window detection pattern 2013-12-09 15:05:10 -05:00
Bailey Ling
ce32405105 fix possibility of the branch extension being unavailable. resolves #366. 2013-12-03 20:01:26 -05:00
Bailey Ling
0966b693d9 expose cleaner api to determine empty head. 2013-12-03 05:32:54 +00:00
Bailey Ling
ed7111b1ff Merge pull request #364 from dmitrykruglov/master
Hide hunks when Git Gutter is enabled, but current file is NOT under git...
2013-12-02 21:15:40 -08:00
Dmitry Kruglov
08a57d0227 Hide hunks when Git Gutter is enabled, but current file is NOT under git version control 2013-12-02 17:29:04 -08:00
Bailey Ling
ce15809db3 improve tabline performance during scroll (#362). 2013-12-02 03:00:31 +00:00
Bailey Ling
7baedbacc0 Merge pull request #347 from edkolev/tmuxline-extension
Add tmuxline extension
2013-11-23 05:19:37 -08:00
Evgeni Kolev
63272a08ae Add tmuxline extension 2013-11-23 11:10:11 +02:00
Bailey Ling
253974506a disable vcscommand integration by default. resolves #340. 2013-11-12 09:45:04 -05:00
Bailey Ling
f2f164bda1 evaluate line number symbol. resolves #336. 2013-11-10 16:04:03 -05:00
Bailey Ling
02441be0e1 Merge pull request #335 from dzderic/master
Use VCSCommand to display revision if available
2013-11-08 05:29:40 -08:00
David Zderic
2e8f99d39b Use VCSCommand to display revision if available 2013-11-08 10:39:00 +11:00
Bailey Ling
3c9f8bb979 document section layout ordering (#164). 2013-11-03 23:14:10 -05:00
Bailey Ling
31f36740c8 look up whitespace checks all the time. resolves #330. 2013-11-03 14:03:52 -05:00
Bailey Ling
aef500c426 Merge pull request #328 from mikkeloscar/master
Adds userdefined space in tabline, workaround for #327
2013-11-02 21:13:12 -07:00
Mikkel Oscar Lyderik
47acdcb92c adds userdefined space in tabline
workaround for #327
2013-11-02 22:46:36 +01:00
Bailey Ling
99b7cdf334 improve performance with accent cache (#326). 2013-11-01 00:58:08 -04:00
Bailey Ling
de1d1e365e Merge pull request #321 from tommcdo/master
Fix typo in help
2013-10-21 14:14:26 -07:00
Tom McDonald
11950b0298 Fix typo in help
Help tag used underscore instead of hyphen.
2013-10-21 16:53:48 -04:00
Bailey Ling
c4c4be836e implement new unique_tail formatter. resolves #230. 2013-10-21 14:25:21 -04:00
Bailey Ling
dd2be8ac8d detect whether quickfix or location list is open. 2013-10-21 13:22:07 -04:00
Bailey Ling
592cc412cf fix and improve airline toggling functionality. 2013-10-13 18:01:38 -04:00
Bailey Ling
778c0f59ca Merge pull request #313 from edkolev/master
AirlineToggle should also toggle the tabline
2013-10-13 12:03:18 -07:00
Evgeni Kolev
382c000958 AirlineToggle should also toggle the tabline 2013-10-13 16:44:36 +03:00
55 changed files with 1620 additions and 248 deletions

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (C) 2013 Bailey Ling
Copyright (C) 2013-2014 Bailey Ling
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the "Software"),

View File

@@ -7,10 +7,10 @@ Lean &amp; mean status/tabline for vim that's light as air.
# Features
* Tiny core written with extensibility in mind ([open/closed principle][8]).
* Integrates with a variety of plugins, including: [vim-bufferline][6], [fugitive][4], [unite][9], [ctrlp][10], [minibufexpl][15], [gundo][16], [undotree][17], [nerdtree][18], [tagbar][19], [vim-gitgutter][29], [vim-signify][30], [syntastic][5], [eclim][34], [lawrencium][21] and [virtualenv][31].
* Integrates with a variety of plugins, including: [vim-bufferline][6], [fugitive][4], [unite][9], [ctrlp][10], [minibufexpl][15], [gundo][16], [undotree][17], [nerdtree][18], [tagbar][19], [vim-gitgutter][29], [vim-signify][30], [syntastic][5], [eclim][34], [lawrencium][21], [virtualenv][31], [tmuxline][35].
* Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols.
* Optimized for speed; it loads in under a millisecond.
* Extensive suite of themes for popular colorschemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others; have a look at the [screenshots][14] in the wiki.
* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others; have a look at the [screenshots][14] in the wiki.
* Supports 7.2 as the minimum Vim version.
* The master branch tries to be as stable as possible, and new features are merged in only after they have gone through a [full regression test][33].
* Unit testing suite.
@@ -67,6 +67,12 @@ vim-airline integrates with a variety of plugins out of the box. These extensio
#### [virtualenv][31]
![image](https://f.cloud.github.com/assets/390964/1022566/cf81f830-0d98-11e3-904f-cf4fe3ce201e.png)
#### [tmuxline][35]
![image](https://f.cloud.github.com/assets/1532071/1559276/4c28fbac-4fc7-11e3-90ef-7e833d980f98.gif)
#### [promptline][36]
![airline-promptline-sc](https://f.cloud.github.com/assets/1532071/1871900/7d4b28a0-789d-11e3-90e4-16f37269981b.gif)
## Extras
vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also:
@@ -115,7 +121,7 @@ This plugin follows the standard runtime path structure, and as such it can be i
* [NeoBundle][12]
* `NeoBundle 'bling/vim-airline'`
* [Vundle][13]
* `Bundle 'bling/vim-airline'`
* `Plugin 'bling/vim-airline'`
* [VAM][22]
* `call vam#ActivateAddons([ 'vim-airline' ])`
* manual
@@ -125,6 +131,9 @@ This plugin follows the standard runtime path structure, and as such it can be i
`: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
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.
@@ -135,6 +144,16 @@ Finally, you can add the convenience variable `let g:airline_powerline_fonts = 1
Solutions to common problems can be found in the [Wiki][27].
# Performance
Whoa! Everything got slow all of a sudden...
vim-airline strives to make it easy to use out of the box, which means that by default it will look for all compatible plugins that you have installed and enable the relevant extension.
Many optimizations have been made such that the majority of users will not see any performance degradation, but it can still happen. For example, users who routinely open very large files may want to disable the tagbar extension, as it can be very expensive to scan for the name of the current function.
The [minivimrc][7] project has some helper mappings to troubleshoot performance related issues.
# Screenshots
A full list of screenshots for various themes can be found in the [Wiki][14].
@@ -158,7 +177,7 @@ Contributions and pull requests are welcome. Please take note of the following
# License
MIT License. Copyright (c) 2013 Bailey Ling.
MIT License. Copyright (c) 2013-2014 Bailey Ling.
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/bling/vim-airline/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
@@ -182,7 +201,7 @@ MIT License. Copyright (c) 2013 Bailey Ling.
[17]: https://github.com/mbbill/undotree
[18]: https://github.com/scrooloose/nerdtree
[19]: https://github.com/majutsushi/tagbar
[20]: https://powerline.readthedocs.org/en/latest/fontpatching.html
[20]: https://powerline.readthedocs.org/en/master/installation.html#patched-fonts
[21]: https://bitbucket.org/ludovicchabant/vim-lawrencium
[22]: https://github.com/MarcWeber/vim-addon-manager
[23]: https://github.com/altercation/solarized
@@ -197,3 +216,5 @@ MIT License. Copyright (c) 2013 Bailey Ling.
[32]: https://github.com/chriskempson/base16-vim
[33]: https://github.com/bling/vim-airline/wiki/Test-Plan
[34]: http://eclim.org
[35]: https://github.com/edkolev/tmuxline.vim
[36]: https://github.com/edkolev/promptline.vim

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
@@ -148,16 +148,18 @@ function! airline#check_mode(winnr)
let w:airline_current_mode = get(g:airline_mode_map, '__')
endif
if g:airline_detect_modified
if &modified
call add(l:mode, 'modified')
endif
if g:airline_detect_modified && &modified
call add(l:mode, 'modified')
endif
if g:airline_detect_paste && &paste
call add(l:mode, 'paste')
endif
if &readonly || ! &modifiable
call add(l:mode, 'readonly')
endif
let mode_string = join(l:mode)
if get(w:, 'airline_lastmode', '') != mode_string
call airline#highlighter#highlight_modified_inactive(context.bufnr)

View File

@@ -1,11 +1,10 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:prototype = {}
function! s:prototype.split(...)
let self._side = 0
let self._line .= '%#'.self._curgroup.'#'.(a:0 ? a:1 : '%=')
call add(self._sections, ['|', a:0 ? a:1 : '%='])
endfunction
function! s:prototype.add_section_spaced(group, contents)
@@ -13,21 +12,97 @@ function! s:prototype.add_section_spaced(group, contents)
endfunction
function! s:prototype.add_section(group, contents)
if self._curgroup != ''
if self._curgroup == a:group
let self._line .= self._side ? self._context.left_alt_sep : self._context.right_alt_sep
else
call airline#highlighter#add_separator(self._curgroup, a:group, self._side)
let self._line .= '%#'.self._curgroup.'_to_'.a:group.'#'
let self._line .= self._side ? self._context.left_sep : self._context.right_sep
call add(self._sections, [a:group, a:contents])
endfunction
function! s:prototype.add_raw(text)
call add(self._sections, ['', a:text])
endfunction
function! s:get_prev_group(sections, i)
let x = a:i - 1
while x >= 0
let group = a:sections[x][0]
if group != '' && group != '|'
return group
endif
endif
let x = x - 1
endwhile
return ''
endfunction
if self._curgroup != a:group
let self._line .= '%#'.a:group.'#'
endif
function! s:prototype.build()
let side = 1
let line = ''
let i = 0
let length = len(self._sections)
let split = 0
if self._context.active
while i < length
let section = self._sections[i]
let group = section[0]
let contents = section[1]
let prev_group = s:get_prev_group(self._sections, i)
if group == ''
let line .= contents
elseif group == '|'
let side = 0
let line .= contents
let split = 1
else
if prev_group == ''
let line .= '%#'.group.'#'
elseif split
let line .= s:get_transitioned_seperator(self, prev_group, group, side)
let split = 0
else
let line .= s:get_seperator(self, prev_group, group, side)
endif
let line .= s:get_accented_line(self, group, contents)
endif
let i = i + 1
endwhile
if !self._context.active
let line = substitute(line, '%#.\{-}\ze#', '\0_inactive', 'g')
endif
return line
endfunction
function! s:should_change_group(group1, group2)
if a:group1 == a:group2
return 0
endif
let color1 = airline#highlighter#get_highlight(a:group1)
let color2 = airline#highlighter#get_highlight(a:group2)
if has('gui_running')
return color1[1] != color2[1] || color1[0] != color2[0]
else
return color1[3] != color2[3] || color1[2] != color2[2]
endif
endfunction
function! s:get_transitioned_seperator(self, prev_group, group, side)
let line = ''
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.'#'
return line
endfunction
function! s:get_seperator(self, prev_group, group, side)
if s:should_change_group(a:prev_group, a:group)
return s:get_transitioned_seperator(a:self, a:prev_group, a:group, a:side)
else
return a:side ? a:self._context.left_alt_sep : a:self._context.right_alt_sep
endif
endfunction
function! s:get_accented_line(self, group, contents)
if a:self._context.active
let contents = []
let content_parts = split(a:contents, '__accent')
for cpart in content_parts
@@ -40,28 +115,13 @@ function! s:prototype.add_section(group, contents)
let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g')
let line = substitute(line, '%#__restore__#', '', 'g')
endif
let self._line .= line
let self._curgroup = a:group
endfunction
function! s:prototype.add_raw(text)
let self._line .= a:text
endfunction
function! s:prototype.build()
if !self._context.active
let self._line = substitute(self._line, '%#.\{-}\ze#', '\0_inactive', 'g')
endif
return self._line
return line
endfunction
function! airline#builder#new(context)
let builder = copy(s:prototype)
let builder._context = a:context
let builder._side = 1
let builder._curgroup = ''
let builder._line = ''
let builder._sections = []
call extend(builder._context, {
\ 'left_sep': g:airline_left_sep,

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! airline#debug#profile1()

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! airline#deprecation#check()

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:ext = {}
@@ -20,13 +20,12 @@ endfunction
let s:script_path = tolower(resolve(expand('<sfile>:p:h')))
let s:filetype_overrides = {
\ 'netrw': [ 'netrw', '%f' ],
\ 'nerdtree': [ 'NERD', '' ],
\ 'gundo': [ 'Gundo', '' ],
\ 'diff': [ 'diff', '' ],
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
\ 'minibufexpl': [ 'MiniBufExplorer', '' ],
\ 'startify': [ 'startify', '' ],
\ 'vim-plug': [ 'Plugins', '' ],
\ }
let s:filetype_regex_overrides = {}
@@ -63,12 +62,7 @@ function! airline#extensions#apply(...)
return -1
endif
if &buftype == 'quickfix'
let w:airline_section_a = '%q'
let w:airline_section_b = '%{get(w:, "quickfix_title", "")}'
let w:airline_section_c = ''
let w:airline_section_x = ''
elseif &buftype == 'help'
if &buftype == 'help'
call airline#extensions#apply_left_override('Help', '%f')
let w:airline_section_x = ''
let w:airline_section_y = ''
@@ -127,10 +121,16 @@ function! airline#extensions#load()
" non-trivial number of external plugins use eventignore=all, so we need to account for that
autocmd CursorMoved * call <sid>sync_active_winnr()
call airline#extensions#quickfix#init(s:ext)
if get(g:, 'loaded_unite', 0)
call airline#extensions#unite#init(s:ext)
endif
if exists(':NetrwSettings')
call airline#extensions#netrw#init(s:ext)
endif
if get(g:, 'loaded_vimfiler', 0)
let g:vimfiler_force_overwrite_statusline = 0
endif
@@ -148,7 +148,7 @@ function! airline#extensions#load()
endif
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_signify') || exists('g:loaded_gitgutter') || exists('g:loaded_changes'))
call airline#extensions#hunks#init(s:ext)
endif
@@ -168,7 +168,8 @@ function! airline#extensions#load()
endif
if (get(g:, 'airline#extensions#branch#enabled', 1) && get(g:, 'airline_enable_branch', 1))
\ && (exists('*fugitive#head') || exists('*lawrencium#statusline'))
\ && (exists('*fugitive#head') || exists('*lawrencium#statusline') ||
\ (get(g:, 'airline#extensions#branch#use_vcscommand', 0) && exists('*VCSCommandGetStatusLine')))
call airline#extensions#branch#init(s:ext)
endif
@@ -177,7 +178,7 @@ function! airline#extensions#load()
call airline#extensions#bufferline#init(s:ext)
endif
if get(g:, 'virtualenv_loaded', 0) && get(g:, 'airline#extensions#virtualenv#enabled', 1)
if isdirectory($VIRTUAL_ENV) && get(g:, 'airline#extensions#virtualenv#enabled', 1)
call airline#extensions#virtualenv#init(s:ext)
endif
@@ -198,21 +199,44 @@ function! airline#extensions#load()
call airline#extensions#tabline#init(s:ext)
endif
" load all other extensions not part of the default distribution
for file in split(globpath(&rtp, "autoload/airline/extensions/*.vim"), "\n")
" we have to check both resolved and unresolved paths, since it's possible
" that they might not get resolved properly (see #187)
if stridx(tolower(resolve(fnamemodify(file, ':p'))), s:script_path) < 0
\ && stridx(tolower(fnamemodify(file, ':p')), s:script_path) < 0
let name = fnamemodify(file, ':t:r')
if !get(g:, 'airline#extensions#'.name.'#enabled', 1)
continue
if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline')
call airline#extensions#tmuxline#init(s:ext)
endif
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)
endif
if get(g:, 'airline#extensions#nrrwrgn#enabled', 1) && exists(':NR') == 2
call airline#extensions#nrrwrgn#init(s:ext)
endif
if (get(g:, 'airline#extensions#capslock#enabled', 1) && exists('*CapsLockStatusline'))
call airline#extensions#capslock#init(s:ext)
endif
if (get(g:, 'airline#extensions#windowswap#enabled', 1) && get(g:, 'loaded_windowswap', 0))
call airline#extensions#windowswap#init(s:ext)
endif
if !get(g:, 'airline#extensions#disable_rtp_load', 0)
" load all other extensions, which are not part of the default distribution.
" (autoload/airline/extensions/*.vim outside of our s:script_path).
for file in split(globpath(&rtp, "autoload/airline/extensions/*.vim"), "\n")
" we have to check both resolved and unresolved paths, since it's possible
" that they might not get resolved properly (see #187)
if stridx(tolower(resolve(fnamemodify(file, ':p'))), s:script_path) < 0
\ && stridx(tolower(fnamemodify(file, ':p')), s:script_path) < 0
let name = fnamemodify(file, ':t:r')
if !get(g:, 'airline#extensions#'.name.'#enabled', 1)
continue
endif
try
call airline#extensions#{name}#init(s:ext)
catch
endtry
endif
try
call airline#extensions#{name}#init(s:ext)
catch
endtry
endif
endfor
endfor
endif
endfunction

View File

@@ -1,45 +1,101 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:has_fugitive = exists('*fugitive#head')
let s:has_fugitive_detect = exists('*fugitive#detect')
let s:has_lawrencium = exists('*lawrencium#statusline')
let s:has_vcscommand = get(g:, 'airline#extensions#branch#use_vcscommand', 0) && exists('*VCSCommandGetStatusLine')
if !s:has_fugitive && !s:has_lawrencium
if !s:has_fugitive && !s:has_lawrencium && !s:has_vcscommand
finish
endif
let s:empty_message = get(g:, 'airline#extensions#branch#empty_message',
\ get(g:, 'airline_branch_empty_message', ''))
let s:symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch)
let s:git_dirs = {}
function! s:get_git_branch(path)
if has_key(s:git_dirs, a:path)
return s:git_dirs[a:path]
endif
function! airline#extensions#branch#get_head()
let head = ''
let dir = fugitive#extract_git_dir(a:path)
if empty(dir)
let name = ''
else
try
let line = join(readfile(dir . '/HEAD'))
if strpart(line, 0, 16) == 'ref: refs/heads/'
let name = strpart(line, 16)
else
" raw commit hash
let name = strpart(line, 0, 7)
endif
catch
let name = ''
endtry
endif
let s:git_dirs[a:path] = name
return name
endfunction
function! airline#extensions#branch#head()
if exists('b:airline_head') && !empty(b:airline_head)
return b:airline_head
endif
let b:airline_head = ''
let found_fugitive_head = 0
if s:has_fugitive && !exists('b:mercurial_dir')
let head = fugitive#head()
let b:airline_head = fugitive#head(7)
let found_fugitive_head = 1
if empty(head) && s:has_fugitive_detect && !exists('b:git_dir')
call fugitive#detect(getcwd())
let head = fugitive#head()
if empty(b:airline_head) && !exists('b:git_dir')
let b:airline_head = s:get_git_branch(expand("%:p:h"))
endif
endif
if empty(head)
if empty(b:airline_head)
if s:has_lawrencium
let head = lawrencium#statusline()
let b:airline_head = lawrencium#statusline()
endif
endif
return empty(head) || !s:check_in_path()
\ ? s:empty_message
\ : printf('%s%s', empty(s:symbol) ? '' : s:symbol.(g:airline_symbols.space), head)
if empty(b:airline_head)
if s:has_vcscommand
call VCSCommandEnableBufferSetup()
if exists('b:VCSCommandBufferInfo')
let b:airline_head = get(b:VCSCommandBufferInfo, 0, '')
endif
endif
endif
if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path()
let b:airline_head = ''
endif
if exists("g:airline#extensions#branch#displayed_head_limit")
let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit
if len(b:airline_head) > w:displayed_head_limit - 1
let b:airline_head = b:airline_head[0:w:displayed_head_limit - 1].'…'
endif
endif
return b:airline_head
endfunction
function! airline#extensions#branch#get_head()
let head = airline#extensions#branch#head()
let empty_message = get(g:, 'airline#extensions#branch#empty_message',
\ get(g:, 'airline_branch_empty_message', ''))
let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch)
return empty(head)
\ ? empty_message
\ : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head)
endfunction
function! s:check_in_path()
if !exists('b:airline_branch_path')
let root = get(b:, 'git_dir', get(b:, 'mercurial_dir', ''))
let bufferpath = resolve(fnamemodify(expand('%'), ':p:h'))
let bufferpath = resolve(fnamemodify(expand('%'), ':p'))
if !filereadable(root) "not a file
" if .git is a directory, it's the old submodule format
@@ -62,5 +118,5 @@ function! airline#extensions#branch#init(ext)
call airline#parts#define_function('branch', 'airline#extensions#branch#get_head')
autocmd BufReadPost * unlet! b:airline_file_in_root
autocmd CursorHold,ShellCmdPost,CmdwinLeave * unlet! b:airline_head
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists('*bufferline#get_status_string')

View File

@@ -0,0 +1,14 @@
" MIT License. Copyright (c) 2014 Mathias Andersson.
" vim: et ts=2 sts=2 sw=2
if !exists('*CapsLockStatusline')
finish
endif
function! airline#extensions#capslock#status()
return CapsLockStatusline() == '[caps]' ? 'CAPS' : ''
endfunction
function! airline#extensions#capslock#init(ext)
call airline#parts#define_function('capslock', 'airline#extensions#capslock#status')
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'command_t_loaded', 0)

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'loaded_csv', 0) && !exists(':Table')

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'loaded_ctrlp', 0)
@@ -36,6 +36,9 @@ endfunction
" Arguments: focus, byfname, regexp, prv, item, nxt, marked
function! airline#extensions#ctrlp#ctrlp_airline(...)
let b = airline#builder#new({'active': 1})
if a:2 == 'file'
call b.add_section_spaced('CtrlPlight', 'by fname')
endif
if a:3
call b.add_section_spaced('CtrlPlight', 'regex')
endif
@@ -48,7 +51,7 @@ function! airline#extensions#ctrlp#ctrlp_airline(...)
endif
call b.add_section_spaced('CtrlPdark', a:7)
call b.split()
call b.add_raw('%#CtrlPdark#'.a:1.(g:airline_symbols.space))
call b.add_section_spaced('CtrlPdark', a:1)
call b.add_section_spaced('CtrlPdark', a:2)
call b.add_section_spaced('CtrlPlight', '%{getcwd()}')
return b.build()

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:section_truncate_width = get(g:, 'airline#extensions#default#section_truncate_width', {
@@ -61,15 +61,19 @@ function! airline#extensions#default#apply(builder, context)
let active = a:context.active
if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse))
call <sid>build_sections(a:builder, a:context, s:layout[0])
call s:build_sections(a:builder, a:context, s:layout[0])
else
call a:builder.add_section('airline_c'.(a:context.bufnr), ' %f%m ')
let text = s:get_section(winnr, 'c')
if empty(text)
let text = ' %f%m '
endif
call a:builder.add_section('airline_c'.(a:context.bufnr), text)
endif
call a:builder.split(s:get_section(winnr, 'gutter', '', ''))
if airline#util#getwinvar(winnr, 'airline_render_right', 1)
call <sid>build_sections(a:builder, a:context, s:layout[1])
call s:build_sections(a:builder, a:context, s:layout[1])
endif
return 1

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':ProjectCreate')
@@ -17,12 +17,30 @@ endfunction
function! airline#extensions#eclim#get_warnings()
let eclimList = eclim#display#signs#GetExisting()
if !empty(eclimList)
let errorsLine = eclimList[0]['line']
let errorsNumber = len(eclimList)
let errors = "[Eclim: line:".string(errorsLine)." (".string(errorsNumber).")]"
if !exists(':SyntasticCheck') || SyntasticStatuslineFlag() == ''
return errors.(g:airline_symbols.space)
" Remove any non-eclim signs (see eclim#display#signs#Update)
" First check for just errors since they are more important.
" If there are no errors, then check for warnings.
let errorList = filter(copy(eclimList), 'v:val.name =~ "^\\(qf_\\)\\?\\(error\\)$"')
if (empty(errorList))
" use the warnings
call filter(eclimList, 'v:val.name =~ "^\\(qf_\\)\\?\\(warning\\)$"')
let type = 'W'
else
" Use the errors
let eclimList = errorList
let type = 'E'
endif
if !empty(eclimList)
let errorsLine = eclimList[0]['line']
let errorsNumber = len(eclimList)
let errors = "[Eclim:" . type . " line:".string(errorsLine)." (".string(errorsNumber).")]"
if !exists(':SyntasticCheck') || SyntasticStatuslineFlag() == ''
return errors.(g:airline_symbols.space)
endif
endif
endif
return ''

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
" we don't actually want this loaded :P

View File

@@ -1,7 +1,7 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'loaded_signify', 0) && !get(g:, 'loaded_gitgutter', 0)
if !get(g:, 'loaded_signify', 0) && !get(g:, 'loaded_gitgutter', 0) && !get(g:, 'loaded_changes', 0)
finish
endif
@@ -16,13 +16,30 @@ function! s:get_hunks_signify()
return []
endfunction
function! s:is_branch_empty()
return exists('*airline#extensions#branch#head') && empty(airline#extensions#branch#head())
endfunction
function! s:get_hunks_gitgutter()
if !get(g:, 'gitgutter_enabled', 0)
if !get(g:, 'gitgutter_enabled', 0) || s:is_branch_empty()
return ''
endif
return GitGutterGetHunkSummary()
endfunction
function! s:get_hunks_changes()
if !get(b:, 'changes_view_enabled', 0) || s:is_branch_empty()
return []
endif
let hunks = changes#GetStats()
for i in hunks
if i > 0
return hunks
endif
endfor
return []
endfunction
function! s:get_hunks_empty()
return ''
endfunction
@@ -34,6 +51,8 @@ function! s:get_hunks()
let s:source_func = 's:get_hunks_signify'
elseif exists('*GitGutterGetHunkSummary')
let s:source_func = 's:get_hunks_gitgutter'
elseif exists('*changes#GetStats')
let s:source_func = 's:get_hunks_changes'
else
let s:source_func = 's:get_hunks_empty'
endif

View File

@@ -0,0 +1,32 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':NetrwSettings')
finish
endif
function! airline#extensions#netrw#apply(...)
if &ft == 'netrw'
let spc = g:airline_symbols.space
call a:1.add_section('airline_a', spc.'netrw'.spc)
if exists('*airline#extensions#branch#get_head')
call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
endif
call a:1.add_section('airline_c', spc.'%f'.spc)
call a:1.split()
call a:1.add_section('airline_y', spc.'%{airline#extensions#netrw#sortstring()}'.spc)
return 1
endif
endfunction
function! airline#extensions#netrw#init(ext)
let g:netrw_force_overwrite_statusline = 0
call a:ext.add_statusline_func('airline#extensions#netrw#apply')
endfunction
function! airline#extensions#netrw#sortstring()
let order = (g:netrw_sort_direction =~ 'n') ? '+' : '-'
return g:netrw_sort_by . (g:airline_symbols.space) . '[' . order . ']'
endfunction

View File

@@ -0,0 +1,54 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'loaded_nrrw_rgn', 0)
finish
endif
function! airline#extensions#nrrwrgn#apply(...)
if exists(":WidenRegion") == 2
let spc = g:airline_symbols.space
if !exists("*nrrwrgn#NrrwRgnStatus()") || empty(nrrwrgn#NrrwRgnStatus())
call a:1.add_section('airline_a', printf('%s[Narrowed%s#%d]', spc, spc, b:nrrw_instn))
let bufname=(get(b:, 'orig_buf', 0) ? bufname(b:orig_buf) : substitute(bufname('%'), '^Nrrwrgn_\zs.*\ze_\d\+$', submatch(0), ''))
call a:1.add_section('airline_c', spc.bufname.spc)
call a:1.split()
else
let dict=nrrwrgn#NrrwRgnStatus()
let vmode = { 'v': 'Char ', 'V': 'Line ', '': 'Block '}
let mode = dict.visual ? vmode[dict.visual] : vmode['V']
let winwidth = winwidth(0)
if winwidth < 80
let mode = mode[0]
endif
let title = (winwidth < 80 ? "Nrrw" : "Narrowed ")
let multi = (winwidth < 80 ? 'M' : 'Multi')
call a:1.add_section('airline_a', printf('[%s%s%s#%d]%s', (dict.multi ? multi : ""),
\ title, mode, b:nrrw_instn, spc))
let name = dict.fullname
if name !=# '[No Name]'
if winwidth > 100
" need some space
let name = fnamemodify(dict.fullname, ':~')
if strlen(name) > 8
" shorten name
let name = substitute(name, '\(.\)[^/\\]*\([/\\]\)', '\1\2', 'g')
endif
else
let name = fnamemodify(dict.fullname, ':t')
endif
endif
let range=(dict.multi ? '' : printf("[%d-%d]", dict.start[1], dict.end[1]))
call a:1.add_section('airline_c', printf("%s %s %s", name, range, dict.enabled ? "\u2713" : '!'))
call a:1.split()
call a:1.add_section('airline_x', get(g:, 'airline_section_x').spc)
call a:1.add_section('airline_y', spc.get(g:, 'airline_section_y').spc)
call a:1.add_section('airline_z', spc.get(g:, 'airline_section_z'))
endif
return 1
endif
endfunction
function! airline#extensions#nrrwrgn#init(ext)
call a:ext.add_statusline_func('airline#extensions#nrrwrgn#apply')
endfunction

View File

@@ -0,0 +1,33 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':PromptlineSnapshot')
finish
endif
if !exists('airline#extensions#promptline#snapshot_file') || !len('airline#extensions#promptline#snapshot_file')
finish
endif
let s:prompt_snapshot_file = get(g:, 'airline#extensions#promptline#snapshot_file', '')
let s:color_template = get(g:, 'airline#extensions#promptline#color_template', 'normal')
function! airline#extensions#promptline#init(ext)
call a:ext.add_theme_func('airline#extensions#promptline#set_prompt_colors')
endfunction
function! airline#extensions#promptline#set_prompt_colors(palette)
let color_template = has_key(a:palette, s:color_template) ? s:color_template : 'normal'
let mode_palette = a:palette[color_template]
if !has_key(g:, 'promptline_symbols')
let g:promptline_symbols = {
\ 'left' : g:airline_left_sep,
\ 'right' : g:airline_right_sep,
\ 'left_alt' : g:airline_left_alt_sep,
\ 'right_alt' : g:airline_right_alt_sep}
endif
let promptline_theme = promptline#api#create_theme_from_airline(mode_palette)
call promptline#api#create_snapshot_with_theme(s:prompt_snapshot_file, promptline_theme)
endfunction

View File

@@ -0,0 +1,37 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let g:airline#extensions#quickfix#quickfix_text = 'Quickfix'
let g:airline#extensions#quickfix#location_text = 'Location'
function! airline#extensions#quickfix#apply(...)
if &buftype == 'quickfix'
let w:airline_section_a = s:get_text()
let w:airline_section_b = '%{get(w:, "quickfix_title", "")}'
let w:airline_section_c = ''
let w:airline_section_x = ''
endif
endfunction
function! airline#extensions#quickfix#init(ext)
call a:ext.add_statusline_func('airline#extensions#quickfix#apply')
endfunction
function! s:get_text()
redir => buffers
silent ls
redir END
let nr = bufnr('%')
for buf in split(buffers, '\n')
if match(buf, '\v^\s*'.nr) > -1
if match(buf, '\cQuickfix') > -1
return g:airline#extensions#quickfix#quickfix_text
else
return g:airline#extensions#quickfix#location_text
endif
endif
endfor
return ''
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':SyntasticCheck')

View File

@@ -1,45 +1,74 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
let s:excludes = get(g:, 'airline#extensions#tabline#excludes', [])
let s:tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0)
let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
let s:builder_context = {
\ 'active' : 1,
\ '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),
\ }
if get(g:, 'airline_powerline_fonts', 0)
let s:builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , "\ue0b0")
let s:builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , "\ue0b1")
else
let s:builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , ' ')
let s:builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|')
endif
let s:show_tab_nr = get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
let s:show_tab_type = get(g:, 'airline#extensions#tabline#show_tab_type', 1)
let s:show_close_button = get(g:, 'airline#extensions#tabline#show_close_button', 1)
let s:close_symbol = get(g:, 'airline#extensions#tabline#close_symbol', 'X')
let s:buffer_idx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 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:spc = g:airline_symbols.space
let s:number_map = &encoding == 'utf-8'
\ ? {
\ '0': '⁰',
\ '1': '¹',
\ '2': '²',
\ '3': '³',
\ '4': '⁴',
\ '5': '⁵',
\ '6': '⁶',
\ '7': '⁷',
\ '8': '⁸',
\ '9': '⁹'
\ }
\ : {}
function! airline#extensions#tabline#init(ext)
if has('gui_running')
set guioptions-=e
endif
set tabline=%!airline#extensions#tabline#get()
autocmd User AirlineToggledOn call s:toggle_on()
autocmd User AirlineToggledOff call s:toggle_off()
autocmd BufDelete * let s:current_bufnr = -1
call s:toggle_on()
call a:ext.add_theme_func('airline#extensions#tabline#load_theme')
if s:buffer_idx_mode
call s:define_buffer_idx_mode_mappings()
endif
endfunction
function! s:toggle_off()
if exists('s:original_tabline')
let &tabline = s:original_tabline
let &showtabline = s:original_showtabline
endif
endfunction
function! s:toggle_on()
let [ s:original_tabline, s:original_showtabline ] = [ &tabline, &showtabline ]
set tabline=%!airline#extensions#tabline#get()
if s:buf_min_count <= 0 && s:tab_min_count <= 1
set showtabline=2
else
if s:show_buffers == 1
autocmd CursorMoved * call <sid>on_cursormove(s:buf_min_count, len(s:get_buffer_list()))
else
autocmd TabEnter * call <sid>on_cursormove(s:tab_min_count, tabpagenr('$'))
endif
augroup airline_tabline
autocmd!
if s:show_buffers == 1
autocmd BufEnter * call <sid>show_tabline(s:buf_min_count, len(s:get_buffer_list()))
autocmd BufUnload * call <sid>show_tabline(s:buf_min_count, len(s:get_buffer_list()) - 1)
else
autocmd TabEnter * call <sid>show_tabline(s:tab_min_count, tabpagenr('$'))
endif
augroup END
endif
call a:ext.add_theme_func('airline#extensions#tabline#load_theme')
endfunction
function! airline#extensions#tabline#load_theme(palette)
@@ -49,16 +78,24 @@ function! airline#extensions#tabline#load_theme(palette)
let l:tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a)
let l:tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c)
let l:tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a)
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c)
else
"Fall back to normal airline_c if modified airline_c isn't present
let l:tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c)
endif
let l:tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c)
call airline#highlighter#exec('airline_tab', l:tab)
call airline#highlighter#exec('airline_tabsel', l:tabsel)
call airline#highlighter#exec('airline_tabtype', l:tabtype)
call airline#highlighter#exec('airline_tabfill', l:tabfill)
call airline#highlighter#exec('airline_tabmod', l:tabmod)
call airline#highlighter#exec('airline_tabmod_unsel', l:tabmodu)
call airline#highlighter#exec('airline_tabhid', l:tabhid)
endfunction
function! s:on_cursormove(min_count, total_count)
function! s:show_tabline(min_count, total_count)
if a:total_count >= a:min_count
if &showtabline != 2
set showtabline=2
@@ -71,7 +108,12 @@ function! s:on_cursormove(min_count, total_count)
endfunction
function! airline#extensions#tabline#get()
if s:show_buffers && tabpagenr('$') == 1
let curtabcnt = tabpagenr('$')
if curtabcnt != s:current_tabcnt
let s:current_tabcnt = curtabcnt
let s:current_bufnr = -1 " force a refresh...
endif
if s:show_buffers && curtabcnt == 1
return s:get_buffers()
else
return s:get_tabs()
@@ -85,7 +127,7 @@ function! airline#extensions#tabline#title(n)
endfunction
function! airline#extensions#tabline#get_buffer_name(nr)
return airline#extensions#tabline#formatters#{s:formatter}(a:nr, get(s:, 'current_buffer_list', []))
return airline#extensions#tabline#{s:formatter}#format(a:nr, get(s:, 'current_buffer_list', s:get_buffer_list()))
endfunction
function! s:get_buffer_list()
@@ -158,44 +200,129 @@ function! s:get_visible_buffers()
endif
endif
let g:current_visible_buffers = buffers
return buffers
endfunction
let s:current_bufnr = -1
let s:current_tabnr = -1
let s:current_tabcnt = -1
let s:current_tabline = ''
let s:current_modified = 0
function! s:get_buffers()
let b = airline#builder#new(s:builder_context)
let cur = bufnr('%')
if cur == s:current_bufnr
if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
return s:current_tabline
endif
endif
let l:index = 1
let b = s:new_builder()
let tab_bufs = tabpagebuflist(tabpagenr())
for nr in s:get_visible_buffers()
if nr < 0
call b.add_raw('%#airline_tabhid#...')
continue
endif
if cur == nr
if g:airline_detect_modified && getbufvar(nr, '&modified')
let group = 'airline_tabmod'
else
let group = 'airline_tabsel'
endif
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
else
if index(tab_bufs, nr) > -1
if g:airline_detect_modified && getbufvar(nr, '&modified')
let group = 'airline_tabmod_unsel'
elseif index(tab_bufs, nr) > -1
let group = 'airline_tab'
else
let group = 'airline_tabhid'
endif
endif
call b.add_section(group, '%( %{airline#extensions#tabline#get_buffer_name('.nr.')} %)')
if s:buffer_idx_mode
if len(s:number_map) > 0
call b.add_section(group, s:spc . get(s:number_map, l:index, '') . '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)' . s:spc)
else
call b.add_section(group, '['.l:index.s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.']')
endif
let l:index = l:index + 1
else
call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
endif
endfor
call b.add_section('airline_tabfill', '')
call b.split()
call b.add_section('airline_tabfill', '')
call b.add_section('airline_tabtype', ' buffers ')
return b.build()
let s:current_bufnr = cur
let s:current_tabline = b.build()
return s:current_tabline
endfunction
function! s:select_tab(buf_index)
" no-op when called in the NERDTree buffer
if exists('t:NERDTreeBufName') && bufname('%') == t:NERDTreeBufName
return
endif
let idx = a:buf_index
if g:current_visible_buffers[0] == -1
let idx = idx + 1
endif
let buf = get(g:current_visible_buffers, idx, 0)
if buf != 0
exec 'b!' . buf
endif
endfunction
function! s:define_buffer_idx_mode_mappings()
noremap <unique> <Plug>AirlineSelectTab1 :call <SID>select_tab(0)<CR>
noremap <unique> <Plug>AirlineSelectTab2 :call <SID>select_tab(1)<CR>
noremap <unique> <Plug>AirlineSelectTab3 :call <SID>select_tab(2)<CR>
noremap <unique> <Plug>AirlineSelectTab4 :call <SID>select_tab(3)<CR>
noremap <unique> <Plug>AirlineSelectTab5 :call <SID>select_tab(4)<CR>
noremap <unique> <Plug>AirlineSelectTab6 :call <SID>select_tab(5)<CR>
noremap <unique> <Plug>AirlineSelectTab7 :call <SID>select_tab(6)<CR>
noremap <unique> <Plug>AirlineSelectTab8 :call <SID>select_tab(7)<CR>
noremap <unique> <Plug>AirlineSelectTab9 :call <SID>select_tab(8)<CR>
endfunction
function! s:new_builder()
let builder_context = {
\ 'active' : 1,
\ '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),
\ }
if get(g:, 'airline_powerline_fonts', 0)
let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , g:airline_left_sep)
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , g:airline_left_alt_sep)
else
let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , ' ')
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|')
endif
return airline#builder#new(builder_context)
endfunction
function! s:get_tabs()
let b = airline#builder#new(s:builder_context)
let curbuf = bufnr('%')
let curtab = tabpagenr()
if curbuf == s:current_bufnr && curtab == s:current_tabnr
if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified
return s:current_tabline
endif
endif
let b = s:new_builder()
for i in range(1, tabpagenr('$'))
if i == tabpagenr()
if i == curtab
let group = 'airline_tabsel'
if g:airline_detect_modified
for bi in tabpagebuflist(i)
@@ -204,22 +331,33 @@ function! s:get_tabs()
endif
endfor
endif
let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
else
let group = 'airline_tab'
endif
let val = '%('
if s:tab_nr_type == 0
let val .= ' %{len(tabpagebuflist('.i.'))}'
else
let val .= (g:airline_symbols.space).i
if s:show_tab_nr
if s:tab_nr_type == 0
let val .= ' %{len(tabpagebuflist('.i.'))}'
else
let val .= (g:airline_symbols.space).i
endif
endif
call b.add_section(group, val.'%'.i.'T %{airline#extensions#tabline#title('.i.')} %)')
endfor
call b.add_raw('%T')
call b.add_section('airline_tabfill', '')
call b.split()
call b.add_section('airline_tab', ' %999XX ')
call b.add_section('airline_tabtype', ' tabs ')
return b.build()
endfunction
if s:show_close_button
call b.add_section('airline_tab', ' %999X'.s:close_symbol.' ')
endif
if s:show_tab_type
call b.add_section('airline_tabtype', ' tabs ')
endif
let s:current_bufnr = curbuf
let s:current_tabnr = curtab
let s:current_tabline = b.build()
return s:current_tabline
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
@@ -7,13 +7,9 @@ let s:buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s
let s:buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0)
let s:buf_modified_symbol = g:airline_symbols.modified
function! airline#extensions#tabline#formatters#default(bufnr, buffers)
function! airline#extensions#tabline#default#format(bufnr, buffers)
let _ = ''
if s:buf_nr_show
let _ .= printf(s:buf_nr_format, a:bufnr)
endif
let name = bufname(a:bufnr)
if empty(name)
let _ .= '[No Name]'
@@ -25,10 +21,15 @@ function! airline#extensions#tabline#formatters#default(bufnr, buffers)
endif
endif
return airline#extensions#tabline#default#wrap_name(a:bufnr, _)
endfunction
function! airline#extensions#tabline#default#wrap_name(bufnr, buffer_name)
let _ = s:buf_nr_show ? printf(s:buf_nr_format, a:bufnr) : ''
let _ .= substitute(a:buffer_name, '\\', '/', 'g')
if getbufvar(a:bufnr, '&modified') == 1
let _ .= s:buf_modified_symbol
endif
return _
endfunction

View File

@@ -0,0 +1,27 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! airline#extensions#tabline#unique_tail#format(bufnr, buffers)
let duplicates = {}
let tails = {}
let map = {}
for nr in a:buffers
let name = bufname(nr)
if empty(name)
let map[nr] = '[No Name]'
else
let tail = fnamemodify(name, ':t')
if has_key(tails, tail)
let duplicates[nr] = nr
endif
let tails[tail] = 1
let map[nr] = airline#extensions#tabline#default#wrap_name(nr, tail)
endif
endfor
for nr in values(duplicates)
let map[nr] = airline#extensions#tabline#default#wrap_name(nr, fnamemodify(bufname(nr), ':p:.'))
endfor
return map[a:bufnr]
endfunction

View File

@@ -0,0 +1,89 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:skip_symbol = '…'
function! airline#extensions#tabline#unique_tail_improved#format(bufnr, buffers)
if len(a:buffers) <= 1 " don't need to compare bufnames if has less than one buffer opened
return airline#extensions#tabline#default#format(a:bufnr, a:buffers)
endif
let curbuf_tail = fnamemodify(bufname(a:bufnr), ':t')
let do_deduplicate = 0
let path_tokens = {}
for nr in a:buffers
let name = bufname(nr)
if !empty(name) && nr != a:bufnr && fnamemodify(name, ':t') == curbuf_tail " only perform actions if curbuf_tail isn't unique
let do_deduplicate = 1
let tokens = reverse(split(substitute(fnamemodify(name, ':p:h'), '\\', '/', 'g'), '/'))
let token_index = 0
for token in tokens
if token == '' | continue | endif
if token == '.' | break | endif
if !has_key(path_tokens, token_index)
let path_tokens[token_index] = {}
endif
let path_tokens[token_index][token] = 1
let token_index += 1
endfor
endif
endfor
if do_deduplicate == 1
let path = []
let token_index = 0
for token in reverse(split(substitute(fnamemodify(bufname(a:bufnr), ':p:h'), '\\', '/', 'g'), '/'))
if token == '.' | break | endif
let duplicated = 0
let uniq = 1
let single = 1
if has_key(path_tokens, token_index)
let duplicated = 1
if len(keys(path_tokens[token_index])) > 1 | let single = 0 | endif
if has_key(path_tokens[token_index], token) | let uniq = 0 | endif
endif
call insert(path, {'token': token, 'duplicated': duplicated, 'uniq': uniq, 'single': single})
let token_index += 1
endfor
let buf_name = [curbuf_tail]
let has_uniq = 0
let has_skipped = 0
for token1 in reverse(path)
if !token1['duplicated'] && len(buf_name) > 1
call insert(buf_name, s:skip_symbol)
let has_skipped = 0
break
endif
if has_uniq == 1
call insert(buf_name, s:skip_symbol)
let has_skipped = 0
break
endif
if token1['uniq'] == 0 && token1['single'] == 1
let has_skipped = 1
else
if has_skipped == 1
call insert(buf_name, s:skip_symbol)
let has_skipped = 0
endif
call insert(buf_name, token1['token'])
endif
if token1['uniq'] == 1
let has_uniq = 1
endif
endfor
if has_skipped == 1
call insert(buf_name, s:skip_symbol)
endif
return airline#extensions#tabline#default#wrap_name(a:bufnr, join(buf_name, '/'))
else
return airline#extensions#tabline#default#format(a:bufnr, a:buffers)
endif
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':TagbarToggle')
@@ -23,9 +23,15 @@ function! airline#extensions#tagbar#inactive_apply(...)
endif
endfunction
let s:airline_tagbar_last_lookup_time = 0
let s:airline_tagbar_last_lookup_val = ''
function! airline#extensions#tagbar#currenttag()
if get(w:, 'airline_active', 0)
return tagbar#currenttag('%s', '', s:flags)
if s:airline_tagbar_last_lookup_time != localtime()
let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
let s:airline_tagbar_last_lookup_time = localtime()
endif
return s:airline_tagbar_last_lookup_val
endif
return ''
endfunction

View File

@@ -0,0 +1,26 @@
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':Tmuxline')
finish
endif
let s:tmuxline_snapshot_file = get(g:, 'airline#extensions#tmuxline#snapshot_file', '')
let s:color_template = get(g:, 'airline#extensions#tmuxline#color_template', 'normal')
function! airline#extensions#tmuxline#init(ext)
call a:ext.add_theme_func('airline#extensions#tmuxline#set_tmux_colors')
endfunction
function! airline#extensions#tmuxline#set_tmux_colors(palette)
let color_template = has_key(a:palette, s:color_template) ? s:color_template : 'normal'
let mode_palette = a:palette[color_template]
let tmuxline_theme = tmuxline#api#create_theme_from_airline(mode_palette)
call tmuxline#api#set_theme(tmuxline_theme)
if strlen(s:tmuxline_snapshot_file)
call tmuxline#api#snapshot(s:tmuxline_snapshot_file)
endif
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !exists(':UndotreeToggle')

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'loaded_unite', 0)

View File

@@ -1,7 +1,7 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if !get(g:, 'virtualenv_loaded', 0)
if !isdirectory($VIRTUAL_ENV)
finish
endif
@@ -13,8 +13,13 @@ endfunction
function! airline#extensions#virtualenv#apply(...)
if &filetype =~ "python"
if get(g:, 'virtualenv_loaded', 0)
let statusline = virtualenv#statusline()
else
let statusline = fnamemodify($VIRTUAL_ENV, ':t')
endif
call airline#extensions#append_to_section('x',
\ s:spc.g:airline_right_alt_sep.s:spc.'%{virtualenv#statusline()}')
\ s:spc.g:airline_right_alt_sep.s:spc.statusline)
endif
endfunction

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
" http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html
@@ -11,41 +11,57 @@ else
endif
let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace)
let s:checks = get(g:, 'airline#extensions#whitespace#checks', ['indent', 'trailing'])
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:indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0)
let s:enabled = 1
let s:max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000)
let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1)
function! s:check_mixed_indent()
if s:indent_algo == 1
" [<tab>]<space><tab>
" spaces before or between tabs are not allowed
let t_s_t = '(^\t* +\t\s*\S)'
" <tab>(<space> x count)
" count of spaces at the end of tabs should be less then tabstop value
let t_l_s = '(^\t+ {' . &ts . ',}' . '\S)'
return search('\v' . t_s_t . '|' . t_l_s, 'nw')
else
return search('\v(^\t+ +)|(^ +\t+)', 'nw')
endif
endfunction
function! airline#extensions#whitespace#check()
if &readonly || !&modifiable || !s:enabled
if &readonly || !&modifiable || !s:enabled || line('$') > s:max_lines
return ''
endif
if !exists('b:airline_whitespace_check')
let b:airline_whitespace_check = ''
let checks = get(g:, 'airline#extensions#whitespace#checks', s:default_checks)
let trailing = 0
if index(s:checks, 'trailing') > -1
let trailing = search(' $', 'nw')
if index(checks, 'trailing') > -1
let trailing = search('\s$', 'nw')
endif
let mixed = 0
if index(s:checks, 'indent') > -1
let indents = [search('^ \{2,}', 'nb'), search('^ \{2,}', 'n'), search('^\t', 'nb'), search('^\t', 'n')]
let mixed = indents[0] != 0 && indents[1] != 0 && indents[2] != 0 && indents[3] != 0
if index(checks, 'indent') > -1
let mixed = s:check_mixed_indent()
endif
if trailing != 0 || mixed
if trailing != 0 || mixed != 0
let b:airline_whitespace_check = s:symbol
if s:show_message
if trailing != 0
let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:trailing_format, trailing)
endif
if mixed
let mixnr = indents[0] == indents[1] ? indents[0] : indents[2]
let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:mixed_indent_format, mixnr)
if mixed != 0
let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:mixed_indent_format, mixed)
endif
endif
endif
@@ -55,13 +71,23 @@ endfunction!
function! airline#extensions#whitespace#toggle()
if s:enabled
autocmd! airline_whitespace CursorHold,BufWritePost
augroup airline_whitespace
autocmd!
augroup END
augroup! airline_whitespace
let s:enabled = 0
else
call airline#extensions#whitespace#init()
let s:enabled = 1
endif
if exists("g:airline#extensions#whitespace#enabled")
let g:airline#extensions#whitespace#enabled = s:enabled
if s:enabled && match(g:airline_section_warning, '#whitespace#check') < 0
let g:airline_section_warning .= airline#section#create(['whitespace'])
call airline#update_statusline()
endif
endif
echo 'Whitespace checking: '.(s:enabled ? 'Enabled' : 'Disabled')
endfunction

View File

@@ -0,0 +1,23 @@
" vim: et ts=2 sts=2 sw=2
if !exists('g:loaded_windowswap')
finish
endif
let s:spc = g:airline_symbols.space
if !exists('g:airline#extensions#windowswap#indicator_text')
let g:airline#extensions#windowswap#indicator_text = 'WS'
endif
function! airline#extensions#windowswap#init(ext)
call airline#parts#define_function('windowswap', 'airline#extensions#windowswap#get_status')
endfunction
function! airline#extensions#windowswap#get_status()
if WindowSwap#HasMarkedWindow() && WindowSwap#GetMarkedWindowNum() == winnr()
return g:airline#extensions#windowswap#indicator_text.s:spc
endif
return ''
endfunction

View File

@@ -1,8 +1,9 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:is_win32term = (has('win32') || has('win64')) && !has('gui_running')
let s:separators = {}
let s:accents = {}
function! s:gui2cui(rgb, fallback)
if a:rgb == ''
@@ -41,7 +42,10 @@ endfunction
function! airline#highlighter#get_highlight(group, ...)
let fg = s:get_syn(a:group, 'fg')
let bg = s:get_syn(a:group, 'bg')
let reverse = synIDattr(synIDtrans(hlID(a:group)), 'reverse', has('gui_running') ? 'gui' : 'term')
let reverse = has('gui_running')
\ ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui')
\ : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')
\|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
return reverse ? s:get_array(bg, fg, a:000) : s:get_array(fg, bg, a:000)
endfunction
@@ -94,6 +98,10 @@ function! airline#highlighter#add_separator(from, to, inverse)
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
endfunction
function! airline#highlighter#add_accent(accent)
let s:accents[a:accent] = 1
endfunction
function! airline#highlighter#highlight_modified_inactive(bufnr)
if getbufvar(a:bufnr, '&modified')
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c')
@@ -121,7 +129,10 @@ function! airline#highlighter#highlight(modes)
let mode_colors = kvp[1]
call airline#highlighter#exec(kvp[0].suffix, mode_colors)
for accent in keys(p.accents)
for accent in keys(s:accents)
if !has_key(p.accents, accent)
continue
endif
let colors = copy(mode_colors)
if p.accents[accent][0] != ''
let colors[0] = p.accents[accent][0]

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! s:check_defined(variable, default)
@@ -76,9 +76,10 @@ function! airline#init#bootstrap()
\ 'accent': 'red',
\ })
call airline#parts#define_raw('file', '%f%m')
call airline#parts#define_raw('linenr', (g:airline_symbols.linenr).'%#__accent_bold#%4l%#__restore__#')
call airline#parts#define_raw('linenr', '%{g:airline_symbols.linenr}%#__accent_bold#%4l%#__restore__#')
call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'eclim', 'whitespace'])
call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'eclim', 'whitespace','windowswap'])
call airline#parts#define_text('capslock', '')
unlet g:airline#init#bootstrapping
endfunction
@@ -86,7 +87,7 @@ endfunction
function! airline#init#sections()
let spc = g:airline_symbols.space
if !exists('g:airline_section_a')
let g:airline_section_a = airline#section#create_left(['mode', 'paste', 'iminsert'])
let g:airline_section_a = airline#section#create_left(['mode', 'paste', 'capslock', 'iminsert'])
endif
if !exists('g:airline_section_b')
let g:airline_section_b = airline#section#create(['hunks', 'branch'])
@@ -104,7 +105,7 @@ function! airline#init#sections()
let g:airline_section_y = airline#section#create_right(['ffenc'])
endif
if !exists('g:airline_section_z')
let g:airline_section_z = airline#section#create(['%3p%%'.spc, 'linenr', ':%3c '])
let g:airline_section_z = airline#section#create(['windowswap', '%3p%%'.spc, 'linenr', ':%3c '])
endif
if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['syntastic', 'eclim', 'whitespace'])

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
let s:parts = {}

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
call airline#init#bootstrap()
@@ -6,6 +6,7 @@ let s:spc = g:airline_symbols.space
function! s:wrap_accent(part, value)
if exists('a:part.accent')
call airline#highlighter#add_accent(a:part.accent)
return '%#__accent_'.(a:part.accent).'#'.a:value.'%#__restore__#'
endif
return a:value
@@ -48,7 +49,7 @@ function! s:create(parts, append)
endif
if exists('part.condition')
let partval = substitute(partval, '{', '{'.(part.condition).' ? ', '')
let partval = substitute(partval, '{', '\="{".(part.condition)." ? "', '')
let partval = substitute(partval, '}', ' : ""}', '')
endif

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
" generates a dictionary which defines the colors for each highlight group

View File

@@ -54,9 +54,17 @@ let g:airline#themes#bubblegum#palette.visual = airline#themes#generate_color_ma
let g:airline#themes#bubblegum#palette.visual_modified = copy(g:airline#themes#bubblegum#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 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' ] )

View File

@@ -0,0 +1,59 @@
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' ])

View File

@@ -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()

View File

@@ -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']
\)

View File

@@ -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' ])

View File

@@ -44,7 +44,7 @@ let g:airline#themes#luna#palette.visual_modified = {
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': [ '#450000' , '' , 52 , '' , '' ] ,
\ 'airline_c': [ '#e20000' , '' , 166 , '' , '' ] ,
\ }
let g:airline#themes#luna#palette.tabline = {

View File

@@ -1,39 +1,75 @@
let g:airline#themes#murmur#palette = {}
let s:termbg = 237 " Background for branch and file format blocks
let s:termbg2= 234 " Background for middle block
let s:normalbg= 27 " Background for normal mode and file position blocks
let s:insertbg= 70 " Background for insert mode and file position blocks
let s:visualbg= 166 " Background for visual mode and file position blocks
let s:replacebg=88 " Background for replace mode and file position blocks
let s:alert= 88 " Modefied file alert color
" 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:BB = ['#AFAF87', '#5F5F5F', 144, s:termbg] " Branch and file format blocks
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:N1 = ['#FFFFFF', '#5F87FF', 15, s:normalbg] " Outside blocks in normal mode
let s:N2 = ['#AFAF87', '#5F5F5F', 39, s:termbg2] " Middle block
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': ['#ffffff', '#5f005f', s:alert, s:termbg2, 'bold'] ,}
let g:airline#themes#murmur#palette.normal_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
let s:I1 = ['#FFFFFF', '#87AF5F', 15, s:insertbg] " Outside blocks in insert mode
let s:I2 = ['#AFAF87', '#5F5F5F', s:insertbg, s:termbg2] " Middle block
" 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': ['#AFAF87', '#5F5F5F', s:alert, s:termbg2, 'bold'] ,}
let g:airline#themes#murmur#palette.insert_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
let s:R1 = ['#FFFFFF', '#870000', 15, s:replacebg] " Outside blocks in replace mode
let s:R2 = ['#AFAF87', '#5F5F5F', 255, s:termbg2] " Middle block
" 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': ['#AFAF87', '#5f005f', s:alert, s:termbg2, 'bold'] ,}
let g:airline#themes#murmur#palette.replace_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,}
let s:V1 = ['#FFFFFF', '#AF5F00', 15, s:visualbg] " Outside blocks in visual mode
let s:V2 = ['#AFAF87', '#5F5F5F', s:visualbg, s:termbg2] " Middle block
" 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': [ '#AFAF87', '#5f005f', s:alert, s:termbg2, 'bold'] ,}
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 = ['#4E4E4E', '#1C1C1C', 239, 234, '']
let s:IA2 = ['#4E4E4E', '#1C1C1C', 239, 234, '']
let s:IA3 = ['#4E4E4E', '#1C1C1C', 239, 234, '']
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
@@ -41,6 +77,6 @@ if !get(g:, 'loaded_ctrlp', 0)
finish
endif
let g:airline#themes#murmur#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
\ ['#FFFFFF', '#5F87FF', 15, s:normalbg, ''],
\ ['#AFAF87', '#5F5F5F', 144, s:termbg, ''],
\ ['#AFAF87', '#5F5F5F', 39, s:termbg2, 'bold'])
\ [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'])

View File

@@ -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 , '' ] )

View File

@@ -0,0 +1,85 @@
let g:airline#themes#silver#palette = {}
let g:airline#themes#silver#palette.accents = {
\ 'red': [ '#ff2121' , '' , 196 , '' , '' ],
\ }
let s:N1 = [ '#414141' , '#e1e1e1' , 59 , 188 ]
let s:N2 = [ '#414141' , '#e1e1e1' , 59 , 188 ]
let s:N3 = [ '#414141' , '#e1e1e1' , 59 , 188 ]
let g:airline#themes#silver#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let g:airline#themes#silver#palette.normal_modified = {
\ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] ,
\ }
let s:I1 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ]
let s:I2 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ]
let s:I3 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ]
let g:airline#themes#silver#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
let g:airline#themes#silver#palette.insert_modified = {
\ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] ,
\ }
let g:airline#themes#silver#palette.insert_paste = {
\ 'airline_a': [ s:I1[0] , '#e1e1e1' , s:I1[2] , 188 , '' ] ,
\ }
let g:airline#themes#silver#palette.replace = copy(g:airline#themes#silver#palette.insert)
let g:airline#themes#silver#palette.replace.airline_a = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ]
let g:airline#themes#silver#palette.replace.airline_z = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ]
let g:airline#themes#silver#palette.replace_modified = g:airline#themes#silver#palette.insert_modified
let s:V1 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ]
let s:V2 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ]
let s:V3 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ]
let g:airline#themes#silver#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#silver#palette.visual_modified = {
\ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] ,
\ }
let s:IA = [ '#a1a1a1' , '#dddddd' , 145 , 188 , '' ]
let g:airline#themes#silver#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
let g:airline#themes#silver#palette.inactive_modified = {
\ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] ,
\ }
let g:airline#themes#silver#palette.tabline = {
\ 'airline_tab': ['#414141' , '#e1e1e1' , 59 , 188 , '' ],
\ 'airline_tabsel': ['#e1e1e1' , '#007599' , 188 , 30 , '' ],
\ 'airline_tabtype': ['#414141' , '#e1e1e1' , 59 , 188 , '' ],
\ 'airline_tabfill': ['#414141' , '#e1e1e1' , 59 , 188 , '' ],
\ 'airline_tabmod': ['#e1e1e1' , '#007599' , 188 , 30 , '' ],
\ }
let s:WI = [ '#ff0000', '#e1e1e1', 196, 188 ]
let g:airline#themes#silver#palette.normal.airline_warning = [
\ s:WI[0], s:WI[1], s:WI[2], s:WI[3]
\ ]
let g:airline#themes#silver#palette.normal_modified.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
let g:airline#themes#silver#palette.insert.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
let g:airline#themes#silver#palette.insert_modified.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
let g:airline#themes#silver#palette.visual.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
let g:airline#themes#silver#palette.visual_modified.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
let g:airline#themes#silver#palette.replace.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
let g:airline#themes#silver#palette.replace_modified.airline_warning =
\ g:airline#themes#silver#palette.normal.airline_warning
if !get(g:, 'loaded_ctrlp', 0)
finish
endif
let g:airline#themes#silver#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
\ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] ,
\ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] ,
\ [ '#e1e1e1' , '#007599' , 188 , 30 , '' ] )

View File

@@ -12,7 +12,7 @@ let s:N2 = [ '#343434' , '#b3b3b3' , 237 , 250 ]
let s:N3 = [ '#343434' , '#c7c7c7' , 237 , 252 ]
let g:airline#themes#sol#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let g:airline#themes#sol#palette.normal_modified = {
\ 'airline_c': [ '#ffffff' , '#ff3535' , 231 , 203 , '' ] ,
\ 'airline_c': [ '#ffffff' , '#ff6868' , 237 , 209 , '' ] ,
\ }
@@ -21,7 +21,7 @@ let s:I2 = [ '#343434' , '#a3a3a3' , 237 , 249 ]
let s:I3 = [ '#343434' , '#b0b0b0' , 237 , 250 ]
let g:airline#themes#sol#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
let g:airline#themes#sol#palette.insert_modified = {
\ 'airline_c': [ '#ffffff' , '#ff6868' , 225 , 167 , '' ] ,
\ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] ,
\ }
let g:airline#themes#sol#palette.insert_paste = {
\ 'airline_a': [ s:I1[0] , '#09643f' , s:I1[2] , 30 , '' ] ,
@@ -38,7 +38,7 @@ let s:V2 = [ '#343434' , '#a3a3a3' , 237 , 249 ]
let s:V3 = [ '#343434' , '#b0b0b0' , 237 , 250 ]
let g:airline#themes#sol#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#sol#palette.visual_modified = {
\ 'airline_c': [ '#ffffff' , '#ff3535' , 231 , 203 , '' ] ,
\ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] ,
\ }
let s:IA = [ '#777777' , '#c7c7c7' , 244 , 251 , '' ]
@@ -52,10 +52,10 @@ let g:airline#themes#sol#palette.tabline = {
\ 'airline_tabsel': ['#ffffff', '#004b9a', 231, 31 , ''],
\ 'airline_tabtype': ['#343434', '#a0a0a0', 237, 248, ''],
\ 'airline_tabfill': ['#343434', '#c7c7c7', 237, 251, ''],
\ 'airline_tabmod': ['#ffffff', '#ff6868', 231, 167, ''],
\ 'airline_tabmod': ['#343434', '#ffdbc7', 237, 216, ''],
\ }
let s:WI = [ '#eeeeee', '#ff0f38', 255, 201 ]
let s:WI = [ '#eeeeee', '#e33900', 255, 166 ]
let g:airline#themes#sol#palette.normal.airline_warning = [
\ s:WI[0], s:WI[1], s:WI[2], s:WI[3]
\ ]

View File

@@ -48,8 +48,10 @@ function! airline#themes#solarized#refresh()
let s:NW = [s:base3, s:orange, '']
if s:background == 'dark'
let s:NM = [s:base1, s:N3[1], '']
let s:NMi = [s:base2, s:N3[1], '']
else
let s:NM = [s:base01, s:N3[1], '']
let s:NMi = [s:base02, s:N3[1], '']
endif
" Insert mode
@@ -73,11 +75,12 @@ function! airline#themes#solarized#refresh()
let s:RM = s:NM
let s:RF = s:NF
" Inactive
" Inactive, according to VertSplit in solarized
" (bg dark: base00; bg light: base0)
if s:background == 'dark'
let s:IA = [s:base00, s:base02, '']
let s:IA = [s:base02, s:base00, '']
else
let s:IA = [s:base1, s:base2, '']
let s:IA = [s:base2, s:base0, '']
endif
""""""""""""""""""""""""""""""""""""""""""""""""
@@ -98,7 +101,7 @@ function! airline#themes#solarized#refresh()
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]],
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]])
let g:airline#themes#solarized#palette.inactive_modified = {
\ 'airline_c': [s:NM[0].g, '', s:NM[0].t, '', s:NM[2]]}
\ 'airline_c': [s:NMi[0].g, '', s:NMi[0].t, '', s:NMi[2]]}
let g:airline#themes#solarized#palette.normal = airline#themes#generate_color_map(
\ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]],

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
call airline#init#bootstrap()

View File

@@ -139,7 +139,7 @@ COMMANDS *airline-commands*
Toggles between the standard 'statusline' and airline.
:AirlineRefresh *:AirlineRefresh*
Refreshes all highlight groups.
Refreshes all highlight groups and redraws the statusline.
==============================================================================
CUSTOMIZATION *airline-customization*
@@ -192,7 +192,7 @@ with the usual statusline syntax.
Note: If you define any section variables it will replace the default values
entirely. If you want to disable only certain parts of a section you can try
using variables defined in the |airline-configuration| or |airline_extensions|
using variables defined in the |airline-configuration| or |airline-extensions|
section.
>
variable names default contents
@@ -217,6 +217,14 @@ EXTENSIONS *airline-extensions*
Most extensions are enabled by default and lazily loaded when the
corresponding plugin (if any) is detected.
By default, airline will attempt to load any extension it can find in the
'runtimepath'. On some systems this can result in an undersirable startup
cost. You can disable the check with the following flag. >
let g:airline#extensions#disable_rtp_load = 1
<
Note: Third party plugins that rely on this behavior will be affected. You
will need to manually load them.
------------------------------------- *airline-default*
The default extension understands all of the `g:` variables in the
|airline-configuration| section, however it also has some more fine-tuned
@@ -228,11 +236,30 @@ configuration values that you can use.
\ 'x': 60,
\ 'y': 88,
\ 'z': 45,
\ })
\ }
" Note: set to an empty dictionary to disable truncation.
let g:airline#extensions#default#section_truncate_width = {}
<
* configure the layout of the sections by specificing an array of two arrays
(first array is the left side, second array is the right side). >
let g:airline#extensions#default#layout = [
\ [ 'a', 'b', 'c' ],
\ [ 'x', 'y', 'z', 'warning' ]
\ ]
<
------------------------------------- *airline-quickfix*
The quickfix extension is a simple built-in extension which determines
whether the buffer is a quickfix or location list buffer, and adjusts the
title accordingly.
* configure the title text for quickfix buffers >
let g:airline#extensions#quickfix#quickfix_text = 'Quickfix'
<
* configure the title text for location list buffers >
let g:airline#extensions#quickfix#location_text = 'Location'
<
------------------------------------- *airline-bufferline*
vim-bufferline <https://github.com/bling/vim-bufferline>
@@ -245,13 +272,20 @@ vim-bufferline <https://github.com/bling/vim-bufferline>
------------------------------------- *airline-branch*
fugitive.vim <https://github.com/tpope/vim-fugitive>
lawrencium <https://bitbucket.org/ludovicchabant/vim-lawrencium>
vcscommand <http://www.vim.org/scripts/script.php?script_id=90>
* enable/disable fugitive/lawrencium integration >
let g:airline#extensions#branch#enabled = 1
<
* change the text for when no branch is detected >
let g:airline#extensions#branch#empty_message = ''
<
* use vcscommand.vim if available >
let g:airline#extensions#branch#use_vcscommand = 0
* truncate long branch names to a fixed length >
let g:airline#extensions#branch#displayed_head_limit = 10
------------------------------------- *airline-syntastic*
syntastic <https://github.com/scrooloose/syntastic>
@@ -259,13 +293,13 @@ syntastic <https://github.com/scrooloose/syntastic>
let g:airline#extensions#syntastic#enabled = 1
<
------------------------------------- *airline-tagbar*
tagbar <https://github.com/majutsushi/>
tagbar <https://github.com/majutsushi/tagbar>
* enable/disable tagbar integration >
let g:airline#extensions#tagbar#enabled = 1
<
* change how tags are displayed (:help tagbar-statusline) >
let g:airline#extensions#tagbar#flags = '' "default
let g:airline#extensions#tagbar#flags = '' (default)
let g:airline#extensions#tagbar#flags = 'f'
let g:airline#extensions#tagbar#flags = 's'
let g:airline#extensions#tagbar#flags = 'p'
@@ -283,6 +317,7 @@ csv.vim <https://github.com/chrisbra/csv.vim>
------------------------------------- *airline-hunks*
vim-gitgutter <https://github.com/airblade/vim-gitgutter>
vim-signify <https://github.com/mhinz/vim-signify>
changesPlugin <https://github.com/chrisbra/changesPlugin>
* enable/disable showing a summary of changed hunks under source control. >
let g:airline#extensions#hunks#enabled = 1
@@ -325,12 +360,23 @@ eclim <https://eclim.org>
* enable/disable detection of whitespace errors. >
let g:airline#extensions#whitespace#enabled = 1
<
* customize the type of mixed indent checking to perform. >
" must be all spaces or all tabs before the first non-whitespace character
let g:airline#extensions#whitespace#mixed_indent_algo = 0 (default)
" certain number of spaces are allowed after tabs, but not in between
" this algorithm works well for /** */ style comments in a tab-indented file
let g:airline#extensions#whitespace#mixed_indent_algo = 1
<
* customize the whitespace symbol. >
let g:airline#extensions#whitespace#symbol = '!'
<
* configure which whitespace checks to enable. >
let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing' ]
<
* configure the maximum number of lines where whitespace checking is enabled. >
let g:airline#extensions#whitespace#max_lines = 20000
<
* configure whether a message should be displayed. >
let g:airline#extensions#whitespace#show_message = 1
<
@@ -352,11 +398,36 @@ eclim <https://eclim.org>
let g:airline#extensions#tabline#tab_nr_type = 0 " # of splits (default)
let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
<
* enable/disable displaying tab number in tabs mode. >
let g:airline#extensions#tabline#show_tab_nr = 1
* enable/disable displaying tab type (far right)
let g:airline#extensions#tabline#show_tab_type = 1
* enable/disable displaying index of the buffer.
When enabled, numbers will be displayed in the tabline and mappings will be
exposed to allow you to select a buffer directly. Up to 9 mappings will be
exposed.
let g:airline#extensions#tabline#buffer_idx_mode = 1
nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
nmap <leader>3 <Plug>AirlineSelectTab3
nmap <leader>4 <Plug>AirlineSelectTab4
nmap <leader>5 <Plug>AirlineSelectTab5
nmap <leader>6 <Plug>AirlineSelectTab6
nmap <leader>7 <Plug>AirlineSelectTab7
nmap <leader>8 <Plug>AirlineSelectTab8
nmap <leader>9 <Plug>AirlineSelectTab9
Note: Mappings will be ignored within a NERDTree buffer.
* defines the name of a formatter for how buffer names are displayed. >
let g:airline#extensions#tabline#formatter = 'default'
" here is how you can define a 'foo' formatter:
function! airline#extensions#tabline#formatters#foo(bufnr, buffers)
function! airline#extensions#tabline#foo#format(bufnr, buffers)
return fnamemodify(bufname(a:bufnr), ':t')
endfunction
let g:airline#extensions#tabline#formatter = 'foo'
@@ -374,6 +445,15 @@ eclim <https://eclim.org>
<
* configure collapsing parent directories in buffer name. >
let g:airline#extensions#tabline#fnamecollapse = 1
" The `unique_tail` algorithm will display the tail of the filename, unless
" there is another file of the same name, in which it will display it along
" with the containing parent directory.
let g:airline#extensions#tabline#formatter = 'unique_tail'
" The `unique_tail_improved` - another algorithm, that will smartly uniquify
" buffers names with similar filename, suppressing common parts of paths.
let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
<
* configure the minimum number of buffers needed to show the tabline. >
let g:airline#extensions#tabline#buffer_min_count = 0
@@ -391,9 +471,74 @@ eclim <https://eclim.org>
let g:airline#extensions#tabline#left_alt_sep = ''
let g:airline#extensions#tabline#right_sep = ''
let g:airline#extensions#tabline#right_alt_sep = ''
* configure whether close button should be shown
let g:airline#extensions#tabline#show_close_button = 1
* configure symbol used to represent close button
let g:airline#extensions#tabline#close_symbol = 'X'
<
Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
------------------------------------- *airline-tmuxline*
tmuxline <https://github.com/edkolev/tmuxline.vim>
* enable/disable tmuxline integration >
let g:airline#extensions#tmuxline#enabled = 0
<
* configure which mode colors should be used in tmux statusline >
let airline#extensions#tmuxline#color_template = 'normal' (default)
let airline#extensions#tmuxline#color_template = 'insert'
let airline#extensions#tmuxline#color_template = 'visual'
let airline#extensions#tmuxline#color_template = 'replace'
<
* if specified, setting this option will trigger writing to the file whenever the
airline theme is applied, i.e. when :AirlineTheme is executed and on vim
startup >
airline#extensions#tmuxline#snapshot_file = "~/.tmux-statusline-colors.conf"
<
------------------------------------- *airline-promptline*
promptline <https://github.com/edkolev/promptline.vim>
* configure the path to the snapshot .sh file. Mandatory option. The created
file should be sourced by the shell on login >
" in .vimrc
airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
" in .bashrc/.zshrc
[ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh
<
* enable/disable promptline integration >
let g:airline#extensions#promptline#enabled = 0
<
* configure which mode colors should be used in prompt >
let airline#extensions#promptline#color_template = 'normal' (default)
let airline#extensions#promptline#color_template = 'insert'
let airline#extensions#promptline#color_template = 'visual'
let airline#extensions#promptline#color_template = 'replace'
<
------------------------------------- *airline-nrrwrgn*
NrrwRgn <https://github.com/chrisbra/NrrwRgn>
* enable/disable NrrwRgn integration >
let g:airline#extensions#nrrwrgn#enabled = 1
------------------------------------- *airline-capslock*
vim-capslock <https://github.com/tpope/vim-capslock>
* enable/disable vim-capslock integration >
let g:airline#extensions#capslock#enabled = 1
------------------------------------- *airline-windowswap*
vim-windowswap <https://github.com/wesQ3/vim-windowswap>
* enable/disable vim-windowswap integration >
let g:airline#extensions#windowswap#enabled = 1
* set marked window indicator string >
let g:airline#extensions#windowswap#indicator_text = 'WS'
<
==============================================================================
ADVANCED CUSTOMIZATION *airline-advanced-customization*
@@ -539,7 +684,7 @@ to your liking. Here is an example: >
return 1
endfunction
<
The above example uses various some example highlight groups to demonstrate
The above example uses various example highlight groups to demonstrate
that you can use any combination from the loaded colorscheme. However, if
you want colors to change between modes, you should use one of the section
highlight groups, e.g. `airline_a` and `airline_b`.
@@ -642,7 +787,7 @@ Contributions and pull requests are welcome.
==============================================================================
LICENSE *airline-license*
MIT License. Copyright © 2013 Bailey Ling.
MIT License. Copyright © 2013-2014 Bailey Ling.
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" MIT License. Copyright (c) 2013-2014 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
if &cp || v:version < 702 || (exists('g:loaded_airline') && g:loaded_airline)
@@ -60,8 +60,10 @@ function! s:airline_toggle()
if exists("s:stl")
let &stl = s:stl
endif
silent doautocmd User AirlineToggledOff
else
let s:stl = &stl
let s:stl = &statusline
augroup airline
autocmd!
@@ -78,6 +80,9 @@ function! s:airline_toggle()
\ exec 'source '.split(globpath(&rtp, 'autoload/airline/themes/'.g:airline_theme.'.vim', 1), "\n")[0]
\ | call airline#load_theme()
augroup END
silent doautocmd User AirlineToggledOn
if s:airline_initialized
call <sid>on_window_changed()
endif
@@ -98,7 +103,7 @@ endfunction
command! -nargs=? -complete=customlist,<sid>get_airline_themes AirlineTheme call <sid>airline_theme(<f-args>)
command! AirlineToggleWhitespace call airline#extensions#whitespace#toggle()
command! AirlineToggle call <sid>airline_toggle()
command! AirlineRefresh call airline#load_theme()
command! AirlineRefresh call airline#load_theme() | call airline#update_statusline()
call <sid>airline_toggle()

View File

@@ -13,9 +13,27 @@ describe 'active builder'
it 'should transition colors from one to the next'
call s:builder.add_section('Normal', 'hello')
call s:builder.add_section('NonText', 'world')
call s:builder.add_section('Search', 'world')
let stl = s:builder.build()
Expect stl =~ '%#Normal#hello%#Normal_to_NonText#>%#NonText#world'
Expect stl =~ '%#Normal#hello%#Normal_to_Search#>%#Search#world'
end
it 'should reuse highlight group if background colors match'
highlight Foo1 ctermfg=1 ctermbg=2
highlight Foo2 ctermfg=1 ctermbg=2
call s:builder.add_section('Foo1', 'hello')
call s:builder.add_section('Foo2', 'world')
let stl = s:builder.build()
Expect stl =~ '%#Foo1#hello>world'
end
it 'should switch highlight groups if foreground colors differ'
highlight Foo1 ctermfg=1 ctermbg=2
highlight Foo2 ctermfg=2 ctermbg=2
call s:builder.add_section('Foo1', 'hello')
call s:builder.add_section('Foo2', 'world')
let stl = s:builder.build()
Expect stl =~ '%#Foo1#hello%#Foo1_to_Foo2#>%#Foo2#world'
end
it 'should split left/right sections'
@@ -27,9 +45,9 @@ describe 'active builder'
it 'after split, sections use the right separator'
call s:builder.split()
call s:builder.add_section('Normal', 'hello')
call s:builder.add_section('NonText', 'world')
call s:builder.add_section('Search', 'world')
let stl = s:builder.build()
Expect stl =~ '%#Normal#hello%#Normal_to_NonText#<%#NonText#world'
Expect stl =~ 'hello%#Normal_to_Search#<%#Search#world'
end
it 'should not repeat the same highlight group'
@@ -57,6 +75,14 @@ describe 'active builder'
Expect stl !~ '%#__restore__#'
Expect stl =~ '%#Normal#'
end
it 'should blend colors from the left through the split to the right'
call s:builder.add_section('Normal', 'hello')
call s:builder.split()
call s:builder.add_section('Search', 'world')
let stl = s:builder.build()
Expect stl =~ 'Normal_to_Search'
end
end
describe 'inactive builder'
@@ -66,9 +92,9 @@ describe 'inactive builder'
it 'should transition colors from one to the next'
call s:builder.add_section('Normal', 'hello')
call s:builder.add_section('NonText', 'world')
call s:builder.add_section('Search', 'world')
let stl = s:builder.build()
Expect stl =~ '%#Normal_inactive#hello%#Normal_to_NonText_inactive#>%#NonText_inactive#world'
Expect stl =~ '%#Normal_inactive#hello%#Normal_to_Search_inactive#>%#Search_inactive#world'
end
it 'should not render accents'

View File

@@ -2,6 +2,7 @@ let g:airline_theme = 'dark'
call airline#init#bootstrap()
call airline#init#sections()
source plugin/airline.vim
call airline#load_theme()
describe 'default'
before

View File

@@ -13,6 +13,7 @@ describe 'highlighter'
Expect exists('g:airline#themes#dark#palette.normal.airline_c_red') to_be_false
Expect hlID('airline_c_red') == 0
call airline#themes#patch(g:airline#themes#dark#palette)
call airline#highlighter#add_accent('red')
call airline#highlighter#highlight(['normal'])
Expect hlID('airline_c_red') != 0
end