Make sure, b:airline_head variable is set, also it is initially set in
this function earlier. But see #1171 for an error.
Therefore, before checking if the variable is empty, make sure it
exists.
fixes#1171
This is a little bit a hack, because by the time the separators are
added, it is not clear, if the following section is empty, therefore
we need to parse the content of the following section and eval the
expressions to find out, if this is empty
Remarks:
- catch all exceptions when eval'ing statusline
- make sure, that the seperators are highlighted
even when skipping empty regions (highlight group
names need to be adjusted)
- if a section is defined as empty, it will be removed completly from
the statusline. This means, it won't be called on the next update
and may not refresh properly (e.g. when the whitespace check
triggers, therefore, the whitesapce extension has to call an
explicit redraw whenever it is supposed to be refreshed)
"system()" called by "get_git_untracked" and "get_hg_untracked" fails
sometimes. It reports error "Can't open file /tmp/***".
The root cause is that the file path for system() contains some unordinary
character and lacks quotes.
airline#extensions#load() tries to load all extensions,
the user has specified in g:airline_extensions.
However, if e.g. bufferline is requested to be loaded, but
is not installed, it will throw an error
E117: Unknown function: airline#extensions#bufferline#init
Therefore, catch E117 and show a warning.
closes#1127
Similar to #1065 and #1081, adds link scripts to be excluded.
Adds a list containing C-like languages to ignore, which implement
multiline comments as:
/*
*
...
*/
Comment below filetype check reflects all exclusions (c-like)
This patch prevents check_mix_indent_file() form notifying a "mix-ident-file"
when working where C/CPP using space and comment like:
/**
* Some comment on the 1st column that shall not trigger check_indent_file()
*/
This kind of file can be found in linux kernel for example.
tabline
Solution: Add a new option which inverses the position of buffer and
tabs
If switch_buffer_and_tabs is 0 (default) buffer are on the left and tabs
on the right else if is 1 the order is reversed.
theme usually use '_' instead of '-', so replace that first before
trying to match.
Second, make the patterns easier to match.
Third, make sure, match for Tomorrow happens with matching case
fixes#1056
This is required when used with 'Normal' with a transparent background.
Falling back to 1 here results in "red" for "ctermbg"!
I think it's important to keep the 'NONE' color property here, instead
of hardcoding the fallbacks (even if white would be used instead of
red).
This is a new tabline extension, that displays both the buffers open and
the available tabs. This has been requested by #639 and fixes#639.
This is based on blings work on branch spike.
This uses the new highlight groups tab*_right, so that the separators
have the correct color. Also this makes some configuration variable
obsolete and therefore, they have been removed.
remove unused combined config variable, remove space after tab
This should make the buflist algorithm faster.
Also there is an alternative implementation in branch 535 available,
which avoids looping over the complete range, I'll stay with the current
approach, as it does not depend on BufAdd/BufDelete autocommands.
details:
instead of testing for buflisted() and bufexists() we only test for
buflisted() because, this also tests for the existence of the buffer.
Also instead of a second loop of the exclude patterns, we'll join all
of them together with '\|' and check if they match the current buffer.
The rest of the conditions have been joined into a single condition.
This together made up an improvement of
Orig:
FUNCTION airline#extensions#tabline#buflist#list()
Called 94 times
Total time: 0.267305
Self time: 0.267305
New:
FUNCTION airline#extensions#tabline#buflist#list()
Called 85 times
Total time: 0.124572
Self time: 0.124572
Try a different approach, that does not echo
the commandline. For that, create a <silent> mapping,
that is called via feedkeys() and as such should update the tabline.
fixes#1011
Solution: Use the current one from ctrlspace 5.0 + minor style fixes
Problem: CtrlSpace 5.0 does no longer work with airline
Solution: Modify the ctrlspace extension to call the new APIs
The statusline work fine but the custom ctrlspace function
somehow/somewhere gets overridden and I could not figure out where.
Therefore the user must add
let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()"
to its .vimrc.
Problem: Ctrlspace 5.0 does not integrate well into tabline
Solution: Write a tabline extensions for ctrlspace 5.0.
The extensions is capable of showing both tabs and buffers, but only the
buffers of a current tab are shown.
This is an extension to the whitespace extension.
It can now detect, if there is mixed indentation used within a file,
e.g. (using space for indentation on some lines and using tabs on other
lines.
This fixes#560
Most of them seem to be caused by using :hi statements, although the
highlighting group to be created is exactly the same. Therefore, get the
info from actual definition and only execute :hi when the new group is
actually different.
Also try to avoid to generate :hi statements when the popupmen is
visible. This causes flickers.
This is probably a bug in Vim because redrawing might cause
Vim to actually try to access a line of the buffer, that hasn't
been loaded yet.
Therefore try to update the tabline, by performing a two :set mod!
calls.
first argument of git status is <pathspec> in git speech,
and so if you feed it a directory, that contained an untracked file,
the directory would be marked as untracked. So fix this.
This will show a little not-existing sign in a buffer,
if that file lives in a git/hg repository but does not exists
there yet. Use `:let g:airline_symbols.notexists='!'` to configure
the '!' as symbol. By default, will use U+2204 symbol
To not impact performance by shelling out a lot, the result is cached
until the buffer is written or a shell command is issued.
Should work with mercurial and git.
fixes#925
1) Make sure airline_error and airline_warning highlighting are
different, so that the correct separator will be drawn. This
fixes#982.
2) allow to deactivate %(%) to workaround a vim bug, that may cause
leaking of colors from one section to the next and adding additional
spaces. This needs to be fixed upstream:
https://groups.google.com/d/msg/vim_dev/sb1jmVirXPU/mPhvDnZ-CwAJ
Possibly, also related to neovim/neovim#4147
Use `:let airline#extensions#default#section_use_groupitems = 0`
to disable grouping of statusline items