Commit Graph

1728 Commits

Author SHA1 Message Date
midchildan
bc0e2a3438
fix missing check for w:airline_disable_statusline 2019-12-22 20:06:35 +09:00
kazukazuinaina
be85daa23f fix untrack branch check about gina 2019-12-19 15:43:50 +09:00
kazukazuinaina
44b1e3df5d can choice to use gina's extension
fix typo

add v:version >= 800and remove v:version > 704

fix CI error
2019-12-18 00:44:47 +09:00
Christian Brabandt
929cf2e21f
Merge pull request #2021 from kazukazuinaina/add_try_catch_in_gina_branch
add try catch in gina.vim's extension in branch.vim
2019-12-15 16:19:51 +01:00
kazukazuinaina
d4e2bfe892 add try catch in gina.vim's extension in branch.vim 2019-12-15 23:08:31 +09:00
kazukazuinaina
60aaed01ae fix typo in tabline.vim 2019-12-15 21:28:51 +09:00
kazukazuinaina
f8e1f85fde add gina support for vim-airline's branch
add check gina in util.vim

fix typo

add gina check

fix typo

add gina.vim's url in doc

fix typo

delete v:version > 800

fix error
2019-12-14 04:10:46 +09:00
Christian Brabandt
5f9ae83f44
config: allow to disable setting the statusline option
closes #2013
2019-12-13 09:59:45 +01:00
Christian Brabandt
e395afed51
vista: init extension on VimEnter
closes #2009
2019-12-13 08:56:26 +01:00
Christian Brabandt
30725e6eb2
Merge pull request #2010 from kazukazuinaina/add_gina_new_extension
add gina's some extensions
2019-12-13 08:45:36 +01:00
Christian Brabandt
9c3f84fc67
tabline: skip expansive BufAdd call on Session load
closes #2015
2019-12-13 08:44:15 +01:00
Christian Brabandt
758c83acbf
tabline: simplify autocommand condition 2019-12-12 09:58:21 +01:00
Christian Brabandt
58b9b3ec81
netrw: do not error out when g:netrw_sort_by is not defined 2019-12-11 23:36:15 +01:00
Christian Brabandt
c24f3c7c4d
whitespace: do not detect '=======' as conflict marker for rst files
closes #2014
2019-12-10 16:14:08 +01:00
kazukazuinaina
b1ca153b72 add gina's some extensions
add gina-ls
2019-12-06 17:26:08 +09:00
kazukazuinaina
806f071348 add :Gina branch command support 2019-12-02 11:54:38 +09:00
Christian Brabandt
ce932f3825
Revert "themes: drop simple colorscheme - theme mappings"
This reverts commit 47be64d7f2.

closes #2006
2019-11-29 08:27:13 +01:00
Christian Brabandt
47be64d7f2
themes: drop simple colorscheme - theme mappings
vim-airline by default already tries to load theme names, that have the
same name as the colorscheme. Therefore, it does not make sense, to add
mappings that result in the same theme name.

So drop the base16, wombat, zenburn and solarized keys
2019-11-27 13:52:21 +01:00
kazukazuinaina
17ec87f503 substitute/NERDtree/NERDTree 2019-11-15 15:50:36 +09:00
kazukazuinaina
8a3eeddc80 update nerdtree's statusline
add let g:airline#extensions#nerdtree_statusline's documentation
2019-11-11 21:11:36 +09:00
Christian Brabandt
664426be21
doc: mention all supported plugins
Also, in the extensions mention the required vim plugin
2019-11-08 20:18:04 +01:00
Christian Brabandt
5b9cbc1a57
ctrlspace: cleanup s:var usage 2019-11-08 19:58:22 +01:00
kazukazuinaina
073d760689 add fugitive statusline 2019-11-10 09:47:43 +09:00
Christian Brabandt
f2241b61b2
bufferline: get rid of static s: variable 2019-11-05 11:32:10 +01:00
Christian Brabandt
a0e9b383c6
tabline: add buffer number to unique_tail formmater
fixes #1987
2019-10-25 17:20:34 +02:00
kazukazuinaina
62ec219601
gina: Enable gina.vim, only for Vim > 7.4.1898
gina.vim needs the `<mods>` feature to work correctly. Therefore check
that Vim has at least patch 7.4.1898 included before using and accessing
the gina plugin.

fixes #1984
2019-10-24 12:57:33 +02:00
Christian Brabandt
6d665580a3
term: allow to disable the term extension
closes #1981
2019-10-16 18:07:35 +02:00
kazukazuinaina
62f2dc02f0
Add support for gina.vim
add gina-tag command

add help about gina.vim

update CHANGELOG.md

closes #1979
2019-10-02 15:17:26 +02:00
Christian Brabandt
262fdc20d5
wordcount: use the short format for widths <= 85
Previously it used a width of >= 80 to display the long word count
format. However I personally found that a bit too wide, while other
sections will be shortened too much which does not really look nice.

Therefore, adjust the limit a bit, using the short word count format for
windows up to 85 characters.
2019-10-02 14:50:55 +02:00
Félix Léger
f4f9a8a241
Modified dark.vim commandline foreground color
The foreground color for `commandline` mode is the same as `normal` mode, which is easier to read against the green background
2019-09-11 15:25:52 -04:00
Christian Brabandt
63d8764f9d
po: do not shorten empty fuzzy/untranslated messages 2019-09-09 09:39:41 +02:00
Christian Brabandt
6409c7b317
tabline: do not display neovim terminal there 2019-08-26 15:16:38 +02:00
Christian Brabandt
22f54d8528
sort airline#extensions#tabline#ignore_bufadd_pat 2019-08-26 15:14:21 +02:00
Christian Brabandt
018688a90f
tabline: do not show defx buffers
fixes #1962
2019-08-26 15:11:50 +02:00
Christian Brabandt
d848de4918
branch: remove double '.' for string concatenation
fixes #1961
2019-08-22 07:56:51 +02:00
Christian Brabandt
57fb980df7
util: micro-optimization of existence check for vcscommand plugin 2019-08-20 22:30:20 +02:00
Christian Brabandt
5df9e23f14
util: micro-optimization of existence check for lawrencium 2019-08-20 22:28:49 +02:00
Christian Brabandt
0370a3b89b
util: micro-optimization of existence check for fugitive 2019-08-20 22:28:49 +02:00
Christian Brabandt
51e74f1d1f
util: micro-optimization of existence check for strcharpart() 2019-08-20 22:22:19 +02:00
Christian Brabandt
ccef93e887
util: micro-optimization of existence check for strchars() 2019-08-20 22:20:39 +02:00
Christian Brabandt
15322e41c7
util: Add comment header, declaring s:vars as constant 2019-08-20 22:19:48 +02:00
Christian Brabandt
486b68cb08
term: get rid of useless variable, add comment 2019-08-20 22:12:34 +02:00
Christian Brabandt
af96e9745f
wordcount: only try to access buffer content in the actual current buffer
closes #1955
(this actually needs Vim patch 8.1.1372 to work properly)
2019-08-20 14:28:54 +02:00
Kai Moschcau
3f82d3a975
Improve multibyte character handling in branch ext
This fixes a bug that causes a mangled statusline. The bug occurs, when
the `displayed_head_limit` variable is set and causes the substring
expression to take a substring, which ends in the middle of a multi-byte
character.

This patch replaces the byte-based methods for measuring the
length of the branch name and creating a substring with methods that are
character-based and multi-byte aware.

It also has the nice side effect of making the length measuring more
accurate, by taking the actual display width of multi-byte characters
and the ambiwidth setting into account.

Since we need to take into account older Vim 7.4 (which might not have
the strcharpart() function), do introduce a compatibility wrapper in
airline#util that checks for the existence of the function before using
it. Older Vims will keep on using the byte-based index. I suppose Vim
7.4 before the strcharpart() function was available (patch 7.4.1730)
shouldn't be in use anymore.

closes #1948
2019-08-20 14:21:10 +02:00
Christian Brabandt
0f375addd2
term: differentiate different term modes
closes #1958
closes #1957
2019-08-20 14:01:09 +02:00
Liu, Joey
67a97c1ea0 add neoterm support
it shows neoterm_id on a inactive neoterm window
2019-08-02 13:23:42 -04:00
s1341
3f7222e488
Add support for vim-tabws tabline
closes #1938
2019-07-23 09:40:18 +02:00
shmaryar
28dcb68bf3
Add vista.vim (https://github.com/liuchengxu/vista.vim) integration 2019-07-23 09:38:14 +02:00
Christian Brabandt
2db9b27e39
async: Better fix for #1936
fix #1936 in a different way
2019-06-14 10:30:05 +02:00
Christian Brabandt
71c80aaf54
async: Check existence of buffer before accessing it
fixes #1936
2019-06-14 09:40:30 +02:00
Christian Brabandt
63a75aca2a
term: Make terminal extension work on entering it
does not work with Neovim since TermOpen is not used (see #1828 for the
bug)
2019-06-12 11:36:47 +02:00
Christian Brabandt
28453d7038
Support Multiple Cursor mode
Detect the use of plugin https://github.com/mg979/vim-visual-multi
and show mode "MULTI" when it is active.

closes #1933
2019-06-11 09:48:08 +02:00
Christian Brabandt
3921bc13a3
async: do not clean up job dir for running jobs
closed #1929
2019-06-03 08:22:39 +02:00
Christian Brabandt
4a1ac56286
Define coc functions as empty by default
fixes #1926
2019-05-29 21:04:32 +02:00
Peng Guanwen
b3ecf49f86 Coc integration 2019-05-29 21:20:20 +08:00
Christian Brabandt
193e350440
Check existence of variable before trying to set it
closes #1924
2019-05-24 08:14:25 +02:00
petobens
f07889c266 Extend denite statusline to denite-filter buffer
Closes https://github.com/vim-airline/vim-airline/issues/1920
2019-05-22 10:33:03 -03:00
Christian Brabandt
7b20361baf
denite: correctly test denite version
references #1918
2019-05-14 16:31:52 +02:00
kazukazuinaina
03f63eb666
adopt denite ver3.0
closes #1918
2019-05-13 15:17:17 +02:00
Christian Brabandt
9a1acf144f
async: Correctly reset dirty flag 2019-05-08 17:22:34 +02:00
Christian Brabandt
79f91649b6
branch: Check untracked and dirty only wehn the fugitive/lawrencium plugins are installed 2019-05-08 13:57:25 +02:00
Christian Brabandt
1b41629214
async: do not show dirty sign for error messages
closes #1915
2019-05-08 13:51:50 +02:00
Christian Brabandt
cd2884abf1
bookmark: do not error out, if the plugin isn't installed
fixes #1912
2019-05-03 12:37:17 +02:00
Bjoern Petri
f1529ce051 vim-bookmark extension 2019-05-03 10:44:09 +02:00
Christian Brabandt
a26a460698
branch: configure what additional checks to run
Allow to customize, whether to check the untracked status of a file or
whether the current repository is clean.

fixes #1910
2019-05-02 08:14:57 +02:00
Christian Brabandt
cc8f47e248
async: fix small problems with dirty jobs 2019-05-02 07:57:10 +02:00
Christian Brabandt
2db882e9b8
async: check dictionary keys before trying to access them 2019-05-01 07:45:06 +02:00
Christian Brabandt
8169aa25af
init: make sure the dirty symbol is defined
references #1907
2019-04-30 17:36:31 +02:00
Christian Brabandt
7469672a46
extensions: Allow customization of filetypes
Define the variable :let g:airline_filetype_overrides to allow for
specific customization how a specific filetype will be displayed.

For e.g. a German display, you can use: >

    :let g:airline_filetype_overrides = {'help': ['Hilfe', ':%f']}
<

This defines how section a and b will look like for a window with that
specific filetype.

Closes #1888
2019-04-30 17:28:51 +02:00
Christian Brabandt
170b6d4c26
extensions: sort filetype_overrides 2019-04-30 16:54:48 +02:00
Christian Brabandt
d1e82c71a3
branch: check existence of dirty key before accessing it
closes #1907
2019-04-30 16:33:05 +02:00
Christian Brabandt
28ed36a9ec
whitespace: fix small problems from conflicts test 2019-04-26 22:08:26 +02:00
Christian Brabandt
538326ceac
whitespace: Also check for Git conflict markers 2019-04-26 14:38:13 +02:00
Christian Brabandt
a753422549
main: Make :AirlineRefresh! skip recrecrating highlighting groups
When `g:skip_empty_sections` is set, `:AirlineRefresh` can be called
very often and cause slow down, because it forcefully re-creates the
highlighting groups. This is mostly not needed for the redraw to happen,
therefore, add the `<bang>` attribute to the command, making it skip to
re-create the highlighting groups and have all extensions that rely on a
forced update use the `!` form.

Should be much fast then.

fixes #1908
2019-04-26 10:16:40 +02:00
Christian Brabandt
fdd75df927
async: cleanup logic for nvim/vim8/vim7 2019-04-25 15:07:12 +02:00
Christian Brabandt
6b213e1071
branch: make it work with vim74
closes #1907
2019-04-25 14:43:56 +02:00
Christian Brabandt
9c1486522a
branch: ignore submodules for git when determing clean state 2019-04-25 08:47:05 +02:00
Christian Brabandt
11cd15d218
async: fnameescape filename
A buffer name wich special characters such as Command-T [Files] will
cause E94 when trying to call setbufvar() on it. That is because the
'[]' is special in buffer names. Therefore, fnameescape the buffer name.

This should prevent 'E94: No matching buffer for
/home/louis/git/minivimrc/Command-T [Files]' errors.

closes #1906
2019-04-25 07:41:56 +02:00
Christian Brabandt
1297773a26
branch: skip untracked files for clean state 2019-04-25 07:35:41 +02:00
Christian Brabandt
a8b0c5f760
branch: skip for non-empty &buftype buffers 2019-04-25 07:32:13 +02:00
Christian Brabandt
ffd8c406ab
branch: Make the branch extension available with 80 char wide windows 2019-04-24 16:12:54 +02:00
Christian Brabandt
9f193de600
branch: Remove spurious dirty var 2019-04-24 15:51:43 +02:00
Christian Brabandt
28bebd35ea
fugitiveline: use correct fugitive functions 2019-04-24 15:48:16 +02:00
Christian Brabandt
3ac318bfd3
fugitive: replace old buffer().commit() function by new global function
as requested by the exception thrown:
fugitive: A third-party plugin or vimrc is calling
fugitive#buffer().commit() which has been removed. Replace it with
matchstr(FugitiveParse()[0], '^\x\+')
2019-04-24 15:29:51 +02:00
Christian Brabandt
9112675ad8
branch: display dirty state
If the repository is considered dirty, do display the
g:airline_symbols.dirty symbol right after the branch name.
2019-04-24 15:16:57 +02:00
Christian Brabandt
a8c96d7c07
async: Move function definition so it is valid for nvim 2019-04-24 13:27:25 +02:00
Christian Brabandt
941341d085
branch: simplify async logic a bit 2019-04-24 13:25:31 +02:00
Christian Brabandt
ead2cd63bb
term: only strip first letter from name, if it starts with '!' 2019-04-18 15:52:54 +02:00
Christian Brabandt
6acb234a12
tabline: Use separate hi group for label on right
if the same highlighting group is used on the left and right for the
label, the `airline_tablabel_to_airline_tabmod` will be overwritten on
the right side, causing the fg/bg colors to be wrong, because on the
right side they have to be the opposite of the left side.

So use a separate highlighting group for the tablabel on the right.

closes #1902
2019-04-17 09:04:56 +02:00
Carlo Lobrano
ebb8f0c2b1 Add formatter for short paths
Add new formatter that shows the file path up to the first parent directory
2019-04-10 22:17:43 +02:00
Shayne Holmes
979e04a6ec Search for wordcount formatters with extension
Autoload expects the autoload scripts to have the '.vim' extension.

Fixes #1986.
2019-04-09 11:52:40 -07:00
Christian Brabandt
148eb6bb28
Allow to switch to a random theme
You can now specify the special theme name `random` and vim-airline will
load a random theme from the ones installed. This works from either your
.vimrc as well as when calling `:AirlineTheme` command directly.

closes vim-airline/vim-airline-themes#170
2019-03-26 21:03:13 +01:00
Christian Brabandt
a6fb6d9da0
Extensions: indicate, if an extension is external
Show in :AirlineExtensions if the extension comes bundled with airline
or from an external source.

closes #1890
2019-03-26 08:41:36 +01:00
Christian Brabandt
1fb184305b
fugitiveline: simplify modify logic
The 'autochdir' option could be toggled on later in a session.
So do not set the has_autochdir flag once the file is read, but evaluate
it every time the corresponding function is called.

While at it, get rid of the s:fmod variable. Instead let a helper
function return the correct modifier flags depending on the value of the
'autochdir' option.
2019-03-25 12:34:09 +01:00
Christian Brabandt
c8a36e14e9
Updated Copyright Statements 2019-03-25 12:29:47 +01:00
Christian Brabandt
45205aa4a3
wordcount: expose filetype list to global scope
allows better configuration of filetypes to be wordcounted.

fixes #1887
2019-03-19 08:28:51 +01:00
Christian Brabandt
b84e548522
Make displaying the tab count optional
Set the g:airline#extensions#tabline#show_tab_count to zero to disable.

fixes complaints at #1882
2019-03-16 09:32:35 +01:00
Christian Brabandt
6ab14bf474
tabline: add consistent tab label to the end
closes #1882
closes #1883
2019-03-08 14:05:38 +01:00
Christian Brabandt
1c3ae6077a
Merge pull request #1879 from gmolau/Fix-syntastic-formatting
Fix the formatting of syntastic error messages
2019-02-22 07:49:52 +01:00
Georg Molau
395fccfda7 Fix the formatting of syntastic error messages
The magic flags were in the wrong order, %e is the number of errors, it
should go in the parentheses after the # symbol. %fe is the line number
of the first error. Same for the warnings.
2019-02-22 00:53:41 +01:00
Max Nordlund gmail
61ca196d73
Move formatting of branch name into get_head
This allows for advanced customization where the shortening of the
branch name is up to the caller, unlike before.

This change is observable from the outside, and as such can be
dangerous. But AFAIK it does not change the default behavior.
2019-02-21 11:59:04 +01:00
Max Nordlund gmail
5f769dbed9
Expose get_hunks for advanced customization 2019-02-21 11:59:04 +01:00
Max Nordlund gmail
45ff435378
Honor minwidth for hunks and branch parts
This removes the hardcoded minwidth limits for both the `hunks` and
`branch` parts. It replaces these with safe accesses to the `minwidth`
setting as done by `airline#parts#define_minwidth`.
2019-02-20 12:36:40 +01:00
petobens
cc7b3c1636 Fix denite extension 2019-02-11 09:22:43 -03:00
Christian Brabandt
1471330825
Adjust buffer numbers for buf_idx_mode v2 slightly
fixes #1823
2019-02-08 07:55:35 +01:00
Christian Brabandt
05572482b8
tabline: add forgotten changes from commit cd1d8c2a96
I accidentally missed including some more changes for buffer_idx_mode=2.
So add those files now.
2019-02-07 08:17:33 +01:00
Christian Brabandt
cd1d8c2a96
Introduce buffer_idx_mode v2
fixes #1823
2019-02-07 08:11:47 +01:00
Christian Brabandt
624d2f1438
tabline: AirlineSelectTab still wrong sometimes
Partly revert commit 105e9daaf7
and fix #1857 another way, by making sure, that buffers are not taking
away from the s:current_visible_buffers list.

Fixes #1857
Fixes #1872
2019-02-06 22:42:10 +01:00
Christian Brabandt
767c1efd10
bufferline: catch invalid modelines 2019-02-05 08:35:57 +01:00
Christian Brabandt
999c40fcf3
tabline: simplify creation of maps
instead of typing all the mapping commands, create a loop that will
create the new maps.
2019-02-04 21:59:40 +01:00
Christian Brabandt
105e9daaf7
tabline: Make the PlugAirlineSelectTab buffers work as expected
for bufferlist.

fixes #1857
2019-02-04 21:47:11 +01:00
Christian Brabandt
25e384f236
wordcount: move User autocommand to plugin
Do not scatter the autocommands around, but rather move the auto command
to the main plugin file. The function that handles the auto command will
be created in the autoload script.

Also add a call to force updating the tabline, if g:airline_statusline_ontop
is defined.

In addition, the wordcount() extension did not correctly notice
block-wise visual mode, so while creating the airline#mode_changed()
function, make the mode also detect blockwise visual mode correctly.
2019-02-04 08:25:45 +01:00
Christian Brabandt
8867301f78
plugin: Move tabline_update function to autoload 2019-02-04 08:23:58 +01:00
Christian Brabandt
840bf02baf
autoload: Fix typo in comment 2019-02-04 08:21:39 +01:00
Christian Brabandt
fd5bde1a3a
allow to show the statusline on top
This is an experimental feature that allows to display the statusline in
the tabline. It might still be a bit rough, but seems to work so far.

Remaining problem:
- Mode changes are not immediately detected, only after moving the
  cursor

fixes #1388
closes #1867
2019-02-03 17:30:55 +01:00
Christian Brabandt
58bbc512f9
tabline: Only define Terminal autocommand if vim supports it
fixes the broken CI test which runs in a vim that does not come with
terminal support
2019-02-03 10:43:23 +01:00
Christian Brabandt
1d03b9dc62
tabline: invalidate buffer list on Terminal Enter
should workaround and fix #1853 in a better way
2019-02-03 10:36:07 +01:00
Christian Brabandt
916d023c35
buflist: do not consider empty buffers to be excluded
currently, empty buffer names were still considered to match against the
exclude_path setting. That does not make sense, so skip the check for
empty bufnames.
2019-02-02 22:43:27 +01:00
Christian Brabandt
5415c5e6ec
tabline: Fix broken call to formatter 2019-02-02 21:57:15 +01:00
Christian Brabandt
54584a2bb2
fugitive: mark fugitive like buffers with "[git]"
closes #1852
2019-02-02 18:04:53 +01:00
Christian Brabandt
dc7d991007
Tabline: Make specifying formatter more easy
closes #1863
2019-02-02 17:45:55 +01:00
Christian Brabandt
d372b5bc46
tabnr formmatter: fix style 2019-02-02 17:45:33 +01:00
Christian Brabandt
98bc6abde3
languageclient: check for existence of 'result' key
fixes #1861
2019-01-28 11:21:32 +01:00
w0rp
54dba2a92b
Remove incorrect copyright attribution
I have never touched anything in this file, nor in the LanguageClient plugin, so the copyright attribution is incorrect. @neersighted may also wish to be removed from the list here.
2019-01-28 10:11:43 +00:00
Christian Brabandt
a829ec4861
Merge pull request #1864 from petpetpetpet/more_efficient_ale_line_numbers
More efficient ale line number function.
2019-01-28 10:57:13 +01:00
petpetpet
57c061dcb0 Added a hook to the new ALE api to grab line numbers. Should be more
efficient.
2019-01-27 13:57:18 +00:00
Ming, Bai
6601474bf5 Fixed t:undotree undefined error
the ```t:undotree.GetStatusLine()``` is appended to the status line when ```t:undotree``` exists, but it seems like the ```statusline``` will be executed when ```t:undtree``` is no longer available during window destruction.
2019-01-22 14:52:39 -08:00
Konstantinos Natsakis
53aa65a5ce Fix ctrlp memory leak 2019-01-17 15:34:19 +02:00
petobens
fa5910eb14
extensions: Add defx support
closes #1850
2019-01-11 10:49:31 +01:00
Christian Brabandt
d68c9bbeb2
tabline: make middle-click work as expected in neovim
closes: #1854
2019-01-11 10:44:10 +01:00
Arjan van der Velde
2d3bbbff43
make VimLeave autocmd nested
add "nested" to autocmd to make it play well w/ YouCompleteMe

see 109a019279/README.md (ycm-does-not-shut-down-when-i-quit-vim)
2019-01-10 23:15:30 -05:00
Christian Brabandt
6fd5b6ae56
tabline: Fix redrawtabline typo 2019-01-09 08:26:07 +01:00
Christian Brabandt
4604f6d465
tabline: Use :redrawtabline if available
this needs patch 8.1.706 and is a less hacky approach to force updating
the tabline
2019-01-09 07:42:32 +01:00
Christian Brabandt
c0f96df97f
Update metadata (copyright)
also remove trailing empty lines in test files
2018-12-15 19:56:30 +01:00
Christian Brabandt
e3cfd3643b
wordcount: prevent use of unused variable 2018-12-10 09:11:10 +01:00
Christian Brabandt
3d9071e6b6
themes: Load dark theme, when default colorscheme is loaded 2018-12-03 18:29:26 +01:00
Christian Brabandt
c047abfe96
Add inactive statusline for terminal 2018-11-20 16:32:55 +01:00
Christian Brabandt
bc63a60b0f
terminal: return proper terminal name 2018-11-20 16:11:34 +01:00
Christian Brabandt
31f5a9307d
Make terminal statusline work for inactive window 2018-11-20 15:48:28 +01:00
Christian Brabandt
df0c1731db
Add :AirlineExtensions command
This shows whether or not an extensions has been loaded.
2018-11-14 08:06:39 +01:00
Christian Brabandt
f6a95d3a6f
Fix wrong extension name for unicode 2018-11-14 07:41:48 +01:00
Christian Brabandt
ffac12cbbe
theme: do not show not-found warning
Only show the "airline theme not found" warning message, when the user
actually used `:AirlineTheme foobar`, not when called by an autocommand
that tries to switch themes when the Vim colorscheme changed.

fixes #1824
2018-11-14 07:36:45 +01:00
Christian Brabandt
b2e1dbad6f
use tr() instead of substitute
should be a bit faster
2018-11-13 22:54:49 +01:00
Christian Brabandt
b3a574b4a3
Fix error in airline#add_statusline_funcref 2018-11-13 22:53:13 +01:00
Christian Brabandt
7f6dfbefd1
theme: only define g:autoload_theme if loading was successfully
fixes the test
2018-11-13 22:39:36 +01:00
Christian Brabandt
5b1c92979c
Fix error in airline#add_statusline_funcref 2018-11-13 22:36:43 +01:00
Christian Brabandt
9dc546c699
use tr() instead of substitute
should be a bit faster
2018-11-13 22:29:32 +01:00
Christian Brabandt
14691bb00e
themes: load them explicitly rather than implictly
While this adds a bit more code it makes it possible to distinguish
between themes not found and errors in themes.

Use :verbose AirlineTheme <foobar>
to also see the error message in case of errors.
2018-11-13 22:27:02 +01:00
Christian Brabandt
b20e181bc8
Add a separate function for returning all available themes 2018-11-13 22:14:51 +01:00
Christian Brabandt
c3ee263d5b
whitespace: use airline#util#warning instead of echo consistently 2018-11-13 21:37:52 +01:00
Christian Brabandt
2eaf57ece8
xtabline: use airline#util#warning instead of echo conistently 2018-11-13 21:37:52 +01:00
Christian Brabandt
c850f485ad
autoload: use airline#util#warning instead of echo 2018-11-13 21:37:48 +01:00
Christian Brabandt
464633baad
themes: Do not try to load the palette twice
This will be done explicitly by the switch_theme() function
2018-11-13 21:17:48 +01:00
Christian Brabandt
d441b3f7b6
util: use correct endfunction style 2018-11-13 21:11:04 +01:00
Christian Brabandt
f05f649be8
highlighter: even further refinement of when to skip groups 2018-11-13 13:57:15 +01:00
Christian Brabandt
cfd373a5a2
highlighter: Better check, when to skip groups
Groupnames like 'airline_c1_to_airline_x_inactive' still have to be
processed, so do not skip them.

Also for the tabline, '_inactive' groups are not used, so skip them
2018-11-13 13:48:26 +01:00
Christian Brabandt
78e67897a4
highlight: fix previous commit differently
Actually we can restrict the loop condition to only run 5 times instead
of 6 (which was an oversight).
2018-11-13 09:06:39 +01:00
Christian Brabandt
e66d65ebf4
highlighter: break out of loop at the end
thanks for mentioning @jottkaerr at
4d8a06a5a9 (commitcomment-31275754)
2018-11-13 08:50:10 +01:00
Christian Brabandt
4d8a06a5a9
highlighter: get rid of s:Get() function
Replace by a function that retuns the to be executed highlighting string

Should in theory be a bit faster, since the same function does not have
to be called 5 times per highlighting group.

It probably is not much better, but here are some random numbers:

Profiling:

Previously:
count  total (s)   self (s)
  199   0.022973   0.009909     let cmd = printf('hi %s %s %s %s %s %s %s %s', a:group, s:Get(colors, 0, 'guifg=')…

New:
count  total (s)   self (s)
   79   0.010166   0.000862     let cmd = printf('hi %s%s', a:group, s:GetHiCmd(colors))
2018-11-12 17:59:02 +01:00
Christian Brabandt
6c6c6c104f
highlighter: exec_separator will re-create '_to_' groups
so we don't need to re-create them in the main for loop of
airline#highlighter#highlight() and so skip those groups.
2018-11-12 05:18:53 +01:00
Christian Brabandt
f3d6a3542a
Revert "highlighter: also check separator groups for being defined"
This reverts commit 99971aa24d.
2018-11-11 21:18:13 +01:00
Christian Brabandt
8c36d2b595
allow to use alternative seperators for inactive windows
closes #1236
2018-11-08 17:09:17 +01:00
Christian Brabandt
a993ae5d42
builder: don't call add_separtor twice 2018-11-08 16:44:26 +01:00
Christian Brabandt
f08078d683
autoload: add comments 2018-11-08 16:20:37 +01:00
Christian Brabandt
99971aa24d
highlighter: also check separator groups for being defined
Make sure, to also check, if the separator groups have already been
defined. Once they are defined initially, they are usually available in
the palette group. So do not redefine them once they have been created
initially.

references #1779
2018-11-08 15:31:58 +01:00
Christian Brabandt
d57344a3c3
highlighter: skip more buffer related hi groups
Previously, we only checked for if the name starts with 'airline_c'

But there could as well be highlighting groups starting being called
'airline_b_to_airline_c5', but if buffer 5 is no longer visible in the
current viewport, then we do not need to recreate those groups.
2018-11-08 13:32:20 +01:00
Christian Brabandt
496de8b745
highlighter: do not skip empty c_sections
currently, if the matchstr() evaluates to '', it would skip the required
section, because bnr would be evaluated to zero and since there is no
buffer zero, skip that highlighting group.

Make sure, to only skip the highlighting group if the buffer number is
actually > 0
2018-11-08 12:40:46 +01:00
Christian Brabandt
71dc6f0257
highlighter: fix regex typo 2018-11-08 12:24:02 +01:00
Christian Brabandt
09b5eb952c
highlighter: Only recreate hi groups for visible buffers
In a long editing session, there could happen to accumulate several
highlighting groups for buffers that might no longer be visible.

Therefore, only re-create the highlighting group for buffers that are
actually displayed in the current tabpage. If not, skip them.

references #1779
2018-11-08 12:20:55 +01:00
Christian Brabandt
b7367c605a
highlighter: do not redefine the same groups several times
previously, it could happen that the same highlighting group was defined
several times, because it was available in several modes within
g:airline#theme[mode]. So the second one would always win.

Therefore, loop through all modes in reverse order and define the group
and remember what group has already been defined. If we happen to have
to re-define the same group, skip it. Since we are traversing the list
in reverse order, this should make sure the last definition wins.

This has the benefit of being more performant and hopefully helps with
e.g. #1779 and similar issues.
2018-11-07 14:25:40 +01:00
Christian Brabandt
18200bfad3
modes: do not add special sections to accents 2018-11-07 13:49:22 +01:00
Christian Brabandt
776f7aa948
Merge pull request #1816 from amiller27/numbered-ctrlspace-tabs
Add option for numbered tabs
2018-11-01 16:10:16 +01:00
Aaron Miller
62f3d1d412 Add option for numbered tabs
Cleaned up variable name, added documentation
2018-11-01 10:44:44 -04:00
Christian Brabandt
6516b1b4dc
po: only reset cache if window width changed 2018-11-01 11:18:04 +01:00
Christian Brabandt
fc021cf4e8
po: only substitute, if value is present in string 2018-11-01 11:14:57 +01:00
Christian Brabandt
6508558c3d
po: shorten and reformat message format for smaller windows 2018-11-01 10:40:41 +01:00
Lars Michelsen
0609a1f945 Visualize that ale is currently checking the current buffer
At the moment you can never be sure whether you look at the results
that ale just produced after your last changes or you are looking at
outdated information.

Instead of showing the last results while ale executes checks on the
current buffer it can now show a specific indicator.

This commit introduces the new config variable
`g:airline#extensions#ale#checking_symbol` which defaults to "...". In
case you don't want to see this, you may set it to an empty string.
2018-10-18 21:33:15 +02:00
Christian Brabandt
2e99805dbf
Fix failing test 2018-10-16 12:13:24 +02:00
Christian Brabandt
726b730f0a
highlight: correctly cache and restore reverse attributes for highlighting colors
references #1779
2018-10-16 12:03:31 +02:00
Christian Brabandt
7e004804d1
Merge pull request #1811 from LarsMichelsen/update_post_ale
Improve update logic after ale finished
2018-10-16 10:56:49 +02:00
Christian Brabandt
d81cdacb1e
better disabled highlighting for inactive windows on FocusLost
This will make sure that the current window will be highlighted as
expected, even if there are no other windows and all highlighting groups
will be correctly re-created as 'inactive'

references #1807
2018-10-16 10:49:17 +02:00
Christian Brabandt
c44bbc66f5
main: make sure winnr is available in s:context for check_mode function 2018-10-16 10:26:26 +02:00
fish
4d825bdb64 Remove trailing space 2018-10-15 20:35:28 +08:00
Christian Brabandt
68f5f1e50d
mode: Update doc, sort dict 2018-10-15 14:17:49 +02:00
Lars Michelsen
3f34ff56b8 Improve update logic after ale finished
Previously the ale refresh was triggered after user interactions only.
When linting takes some time and the user is not actively working the
ale information was not updated while the things ale directly controls
were updated. This change makes showing linting results a loot smoother.
2018-10-14 20:19:39 +02:00
Christian Brabandt
f045452743
main: disable airline on FocusLost
When switching away from Vim and your terminal supports the FocusLost
autocommand, set the statusline to inactive, so it won't distract you
too much when working with another application.

In the gui, the FocusLost autocommand should always trigger.

This is now the default, if people start complaining, that behaviour
should probably be made configurable.

closes #1807
2018-10-03 12:31:45 +02:00
Doron Behar
7190164451 Externalize quickfix function returning text
Useful when one wants to use this function for something else and to
know if a QuickFix window is actually a Location list with qf as
`&filetype`.
2018-09-28 12:56:49 +03:00
Christian Brabandt
a0298263b7
autocomd: do not re-evaluate modelines
fixes #1804
2018-09-25 16:03:30 +02:00
Liam Fleming
2390022e33
wordcount: do not rely on english in old versions
for older Vims, the wordcount extension falls back to `g<c-g>` and
parses the messaage that is generated.

When doing so, it expects the English locale, which might not be true.
Therefore, try to regex parse the result without using the english words
(assuming the output is still in the same order as in English).
2018-09-23 20:10:32 +02:00
Christian Brabandt
57bbe050c7
Merge pull request #1801 from flemingfleming/wordcount-fixes
The rest of the wordcount fixes, and some improvements
2018-09-23 17:38:11 +02:00
Dennis Falling
2f17e368b5 Add dictionary key check for d.severity 2018-09-23 10:50:15 -04:00
Liam Fleming
0f6cfcdfc2 wordcount: Fix the visual count matching pattern 2018-09-22 13:57:53 +01:00
Liam Fleming
264c1fefd2 wordcount: Compatibility fixes and General upkeep
Compatibility:
- Don't use a script-local function to update the format strings
- Protect against `:normal!' moving the cursor on on the wordcount check

Bugfix:
- Let to_string() try to return something for all values
  - Now returns correctly when passed both 0 and '0'

Upkeep:
- Simplify check again no valid key from winwidth()
- Old wordcount check: use matchstr() - more expressive and fewer steps
- Improve documentation style/clarity/detail
2018-09-22 03:34:27 +01:00
Christian Brabandt
ae024293e4
wordcount: fix wrong normal mode command 2018-09-21 21:37:21 +02:00
Christian Brabandt
ecf10d0e58
wordcount: check that the retun value has the dict key
else it will throw an error.
2018-09-21 11:49:42 +02:00
Christian Brabandt
82a6097b01
wordcount: work-around non-existing v:t_list
v:t_list is an internal variable describing the type of a list.
Unfortunately, this is not available in older vims. So let's fall back
to using `type([])`

see #1795
2018-09-20 11:44:17 +02:00
Christian Brabandt
7957bd1d32
wordcount: only add fmt function once to statusline functions
This prevents a warning message, when the function is tried to add
several times. Also while at it, add a '!' so that no error is thrown if
the file is sourced a second times.
2018-09-20 10:41:50 +02:00
Christian Brabandt
110594c91a
tabline: remove spurious variable 2018-09-20 10:31:14 +02:00
Christian Brabandt
012229fe08
tabline: Ignore buffers in buflist matching ignore_bufadd_pat
closes #1777
2018-09-20 10:26:32 +02:00
Christian Brabandt
a60eabb82f
tabline: do not show terminal buffers by default 2018-09-20 10:25:47 +02:00
Christian Brabandt
fce8585239
main: detect some more modes 2018-09-20 10:13:59 +02:00
Christian Brabandt
1b8ecb6336
Merge pull request #1796 from flemingfleming/wordcount-improvements
[WIP] Rewrite wordcount plugin
2018-09-20 10:04:53 +02:00
Liam Fleming
0756b9a4aa wordcount: Re-enable updating the format string 2018-09-18 20:12:17 +01:00
Christian Brabandt
251ed064e8
Make mode return only single letter except for virt replace mode
commit bcd37fc115 changed the detection of modes slightly in that it
allowed not only single letters but also several letters.

While in theory, it might be okay to have extra modes displayed like
Insert Completion or Normal Insert, or Operator Pending, let's for now
just revert it to the default. We can always enhance it later if
requested.
2018-09-18 20:00:46 +02:00
Liam Fleming
c33c1de079 wordcount: Simplify update strategy
Checking for wordcount changes now uses a b:changedtick comparison in
the statusline funcref. The autocommand strategy that used to do this is
removed, simplifying the code.
2018-09-18 16:05:01 +01:00
Liam Fleming
9903fee60e wordcount: Optimise formatter calls, cleanup code
- Formatter is now only called when the wordcount changes
- ...#apply() now only compares against the filetype list when necessary
- Old format() function is no longer called for (unsupported) counting
  of visual words
- Misc code quality improvements
2018-09-18 15:13:43 +01:00
Liam Fleming
487d262901 wordcount: formatter: code quality improvements
- Rename new formatting function: transform() -> to_string()
- Optimise separator selection
- Other quality improvements
2018-09-18 02:04:35 +01:00
Christian Brabandt
a1c112cafd
main: replace and virt replace mode should use same coloring
fixes #1794
2018-09-16 20:01:00 +02:00
Christian Brabandt
bcd37fc115
mode: add support for virt replace mode
fixes #1792
2018-09-16 18:25:27 +02:00
Christian Brabandt
aec0a1a15a
languageclient: Check severity key before accessing it
closes #1793
2018-09-16 18:17:04 +02:00
Daniel Wennberg
cda5647a29 Don't use the read-only count as local variable
The variable name `count` is always equivalent to `v:count`, which is
a read-only variable and cannot be assigned to.
2018-09-09 23:51:11 -07:00
Christian Brabandt
f5676d1fa1
Merge pull request #1788 from hallettj/extension/languageclient
Extension to report errors and warnings from LanguageClient plugin
2018-09-10 07:36:15 +02:00
Jesse Hallett
a92b12e1c6 Implement extension to report errors and warnings from LanguageClient plugin 2018-09-09 23:53:08 -04:00
Sebastián Mancilla
c3434164b2 Load vimtex only when the extension is enabled
Do not force loading the full vimtex autoload script for all users.
First check if the extension is enabled.
2018-09-06 13:15:38 -03:00
Liam Fleming
8715d13cc5 wordcount: Refactor updating and autocmds
Various improvements:
 - Seperate out visual mode detection.
 - Use TextChanged rather than CursorMoved where supported.
 - Let users specify the filetypes for which wordcounting is enabled
   with a list rather than a pattern.
 - Move the filetype check to when airline is refreshed, as opposed to
   on every update; autocommands are not created if wordcounting is
   disabled
2018-07-28 19:26:24 +01:00
Liam Fleming
44da0a4761 wordcount: Replace formatter interface
Currently the formatter, and not the wordcount plugin, is responsible
for providing the wordcount as well as formatting it. The default
formatter allows visual mode word counting, although this is not
documented.

The new interface - a transform() function, allows the main wordcount
plugin to internalise this logic. Providing the wordcount simplifies
formatter implementations:
 - All formatters can display the visual wordcount.
 - Formatters do not have to worry about compatibility with different
   vim versions.

The old format() function can now be deprecated, although the wordcount
plugin retains compatibility with formatters using it. The default
formatter will also be used as a fallback if no suitable function is
found.

The default formatter is rewritten to use the new interface.
2018-07-28 18:24:12 +01:00
Christian Brabandt
c7fb175d35
Add a specific color for commandline mode
closes #1768

Colors for the other themes need to be defined however
2018-07-26 10:22:40 +02:00
Mo Hyun
723987eca9 Add vim-grepper extension
- Displays a segment when a grepper search is running
2018-07-23 13:05:34 -07:00
Tim Pope
a8ccef61ba Update to new Fugitive real path API 2018-07-22 15:39:54 -04:00
Christian Brabandt
5aef1b90e5
tabline: Correctly trigger on BufDelete autocommand
fixes #399
2018-07-13 22:29:34 +02:00
Christian Brabandt
821372b9cf
tabline: re-map tabline keys
fixes #1753
2018-07-13 21:33:03 +02:00
Liam Fleming
781c40bb3d Create AirlineModeChanged autocmd 2018-06-28 18:44:26 +01:00
Tim Pope
9bee0e923e Use FugitivePath in fugitiveline if available 2018-06-27 18:07:59 -04:00
Tim Pope
66e49d9a15 Fix fugitiveline when file is also branch name 2018-06-27 18:05:09 -04:00
Christian Brabandt
b790fd2120
Merge pull request #1750 from Mangero/arduino-whitespace
Add Arduino to list of C-like languages
2018-06-18 08:39:53 +02:00
Mangero
a141918faa
Add Arduino to list of C-like languages
Add 'arduino' filetype to list of C-like languages. This is needed in
order to avoid mix-indent-file warnings when using hard tabs for
indentation in Arduino source files (*.ino, *.pde) containing top level
block comments with leading space before a '*'.

Similar to: 460ed02864
Original fix: 8fde76dd63
2018-06-18 01:09:56 +02:00
Liam Fleming
11bc0ba843 Move CursorMoved autocmd to main augroup 2018-06-16 20:34:07 +01:00
Liam Fleming
feca81fb86 add "!" to function signatures 2018-06-13 17:52:13 +01:00
Christian Brabandt
4f95970228
branch: use :noa before calling async func
for some reasons, calling async functions might cause an error, if a
SourcePre command has been defined. So explicitly call the functions
using `:noa` modifier to prevent triggering the SourcePre autocommand.

fixes #1742
2018-06-11 14:45:29 +02:00
Hana Shiro
acb93da0d8 Fix tabline didn't update when enable both buffers and tabs 2018-06-05 06:11:14 +08:00
Christian Brabandt
add75907d5
Merge pull request #1738 from shirohana/fix/ctrlspace-tabline-switching
airline#extensions#ctrlspace: Fix tabline didn't update when switch to tab which focused on non-listed buffer
2018-06-04 22:56:22 +02:00
Christian Brabandt
eab6d35852
terminal: Some improvements to Terminal detection
closes #1730

- Make sure to always call the term extension on TermOpen autocommands
- consistently use the airline_term highlighting group
- hard code the airline_term highlighting group, because by the time the
  function airline#themes#patch() is called the highlighting group
  airline_c would no be defined, so we cannot dynamically get those
  attributes
- In the documentation, mention how the g:airline_mode_map can be set
  including the terminal section
2018-06-04 22:44:46 +02:00
Christian Brabandt
1bb1ce594a
Formatter: Use pathshorten() instead of substitute()
The default formatter uses a hand-build regexp for shortening the path
in the tabline. However, since it uses the \w  regex atom, this won't
match e.g. cyrillic letters.

To fix this, use the builtin pathshorten() function which does handle
this case correctly. For a test, use e.g. 'D/Учёба/t.c'

closes #1737
2018-06-04 21:59:16 +02:00
Christian Brabandt
044a90ed55
use get(v:, 'lang', '') instead of v:lang
closes #1735
2018-06-04 21:45:46 +02:00
Christian Brabandt
981b83003f
fugitive: Use FugitiveHead() instead of fugitive#head
function if possible and use it instead of the fugitive#head
(which will always autload the fugitive plugin).
2018-06-04 18:32:30 +02:00
Christian Brabandt
a1680cc36d
fugitive: Check for existence of FugitiveStatusline function
as per @tpopes advice.
2018-06-04 17:42:33 +02:00
Christian Brabandt
30a3c4f549
branch: fugitive renamed its functions
this caused that the branch extension was not correctly working anymore
because of a refactoring of fugitive tpope/vim-fugitive@5d11ff7

Solution: Move the existence check for the fugitive plugin into a
separate function and call it from there in all places that check the
fugitive plugin. Do the same for lawrencium and vcscommand check.

fixes #605 #1739
2018-06-04 17:38:49 +02:00
Hana Shiro
c7d4710f76 Refactor airline#extentions#tabline#ctrlspace#* 2018-06-02 23:41:15 +08:00
Hana Shiro
6e1e6686e7 Fix problems caused by #1524 2018-06-02 21:22:00 +08:00
Hana Shiro
a6e07b6a55 Remove unused catch block 2018-06-02 14:04:25 +08:00
Hana Shiro
4db6d11962 Fix indentation 2018-06-02 13:59:08 +08:00
Hana Shiro
ac799f6021 Rename parameters for better readability 2018-06-02 13:49:32 +08:00
Hana Shiro
92bf1b0b39 Use ternary-operator 2018-06-02 13:02:49 +08:00
Christian Brabandt
b84e13f1d7
Blacklist startify for [noperm]
Startify unfortunately does not set the buftype option, so the
`[noperm]` would be shown, since the buffer is not really a file.
(see mhinz/vim-startify#324)

So allow to blacklist startify from this setting. To do so, the logic
from the tabline extension was refactored out into a separate function
that returns true, if the buffer matches
`g:airline#extensions#tabline#ignore_bufadd_pat` and that function is
then reused for the readonly() function as well.
2018-05-11 22:32:20 +02:00
Christian Brabandt
c7e05efb76
Only consider regular files for the '[noperm]'
Recently, NERDTree added the &readonly setting to its buffer.
Unfortunately, this caused airline to render the '[noperm]' string in
it.

Fix this by only making the readonly check for buffers that actually
represent files (e.g. the buftype option is empty).
2018-05-11 09:53:55 +02:00
iroedius
15bc732df4 allow to also disable trailing whitespace check per filetype 2018-04-28 07:34:59 +02:00
Christian Brabandt
33310c5b24
whitespace: Allow to disable individual whitespace checks per filetype
closes #1716
2018-04-27 08:25:49 +02:00
Stanislav Gobunov
c4a4a20b8d
xkblayout: Make Short codes configurable
airline#extensions#xkblayout#short_codes changed to global for easily redefine long named keyboard layout

closes #1713
2018-04-18 10:46:55 +02:00
Christian Brabandt
a76f523be5
bufferline: always add a space for the very first item
closes #1631
2018-04-15 10:16:28 +02:00
mg979
f7c818a0ff
add xtabline extension 2018-04-14 14:03:21 +02:00