Commit Graph

50 Commits

Author SHA1 Message Date
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
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
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
c8a36e14e9
Updated Copyright Statements 2019-03-25 12:29:47 +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
b20e181bc8
Add a separate function for returning all available themes 2018-11-13 22:14:51 +01:00
Christian Brabandt
d441b3f7b6
util: use correct endfunction style 2018-11-13 21:11:04 +01:00
Christian Brabandt
a0298263b7
autocomd: do not re-evaluate modelines
fixes #1804
2018-09-25 16:03:30 +02:00
Christian Brabandt
a60eabb82f
tabline: do not show terminal buffers by default 2018-09-20 10:25:47 +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
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
mrmr1993
51bb8dd7e0 Move strchars into util.vim 2018-03-19 15:03:51 +00:00
Christian Brabandt
5db4c408bd
Update copyright notifications 2018-01-05 10:37:59 +01:00
Christian Brabandt
4c74a95045
Refactor async functions
- create a new async module
- refactor async functions from branch.vim and po.vim to async.vim
- support nvim async correctly
2017-08-23 18:37:24 +02:00
Christian Brabandt
50bfe8dd68
First commit to handle nvim specific async code 2017-08-23 18:31:43 +02:00
Christian Brabandt
b2f301f73c
tabline: Cache title as tablocal variable 2017-06-27 14:40:31 +02:00
Christian Brabandt
a950a2938a
shorten tagbar extension on short windows 2017-05-02 21:22:47 +02:00
Hirokazu Hata
dfc0cb772a Add dict to function refferencing self
This is no explicit problem in Vim, however Neovim diverged in this
behaviour from Vim and requires the dict attribute to be present before
accessing the self attribute.

See neovim/neovim#5763
2016-12-12 19:26:52 +01:00
Grzegorz Milka
241f324b39 Do not forward v:shell_error on command fail.
airline#system#util for nvim used to fall back to 'system' implementation on
command error. This behavior caused conflict with other plugins if 'util' was
executed with a failing command as part of a ShellCmdPost event.

This commit makes 'util' interpret command error as persistent and not call
'system' in such a case.

This commit fixes #1317.
2016-11-20 10:16:13 +01:00
Grzegorz Milka
433d5d8f97 Use neovim's async job's instead of system
This commit makes branch.vim use neovim's async jobs instead of a system()
function. This way we avoid the v:shell_error overwrite bug and allow live
updates of the untracked status.
2016-11-04 19:09:05 +01:00
Christian Brabandt
f706edee9f init async global variables 2016-10-14 10:36:21 +02:00
thawk
45d77ca909 Add 'scriptencoding utf-8' to all scripts 2016-09-24 08:16:30 +08:00
Christian Brabandt
409e8b0cbd refactor shortening code 2016-07-02 10:20:07 +02:00
Christian Brabandt
b8c1b26f0e don't throw error if bufferline is not installed
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
2016-04-21 09:30:23 +02:00
Bailey Ling
048b24a916 happy 2016! 2016-01-14 21:38:38 -05:00
Bailey Ling
1ca6ffb6d0 happy 2015
resolves #692.
2015-02-13 21:47:43 -05:00
Bailey Ling
baed8ac063 happy 2014 2014-01-19 23:44:44 -05:00
Bailey Ling
e16c36eea1 default space back to 32 (#283). 2013-09-30 14:37:02 +00:00
Bailey Ling
948a4178a8 use code 160 for space to fix rendering problems. 2013-09-18 22:23:50 -04:00
Bailey Ling
1b91c71fc9 make it possible to declare sections in the vimrc (#204). 2013-08-31 17:42:09 -04:00
Bailey Ling
fd68997398 lazy load variables until needed (#204).
this allows users to define section variables in their vimrc.
2013-08-31 12:57:02 -04:00
Bailey Ling
7e1206469c basic support for hiding based on win size per part (#200). 2013-08-31 12:33:58 -04:00
Bailey Ling
fa517238c7 introduce parts metadata. 2013-08-30 21:51:10 +00:00
Bailey Ling
a927bf9475 automatic separators. 2013-08-29 00:57:58 +00:00
Bailey Ling
bdd758dd38 convert branch/hunks/bufferline to function names. 2013-08-29 00:15:07 +00:00
Bailey Ling
e10b690cdf convert mode/paste/iminsert parts to function names. 2013-08-29 00:09:22 +00:00
Bailey Ling
c16d6e69a9 pass arguments into funcrefs properly. 2013-08-22 20:22:54 +00:00
Bailey Ling
e83e12447e break early implicit if return code is not 0. 2013-08-22 17:32:44 +00:00
Bailey Ling
8452029e98 upgrade all funcrefs to support varargs. 2013-08-21 15:14:12 +00:00
Bailey Ling
88b910d959 fix getwinvar on older 7.3 builds. resolves #147. 2013-08-18 04:50:48 +00:00
Bailey Ling
840f78607e optimize funcrefs for 7.4 2013-08-17 17:50:41 -04:00
Bailey Ling
e7c5bbb671 remove auto prefix. optimize getwinvar 2013-08-17 17:39:36 -04:00
Bailey Ling
3fbdd28e5d add profiler. optimize separator highlighting. 2013-08-17 17:35:06 +00:00
Bailey Ling
30adb973fc move getwinvar over 2013-08-16 14:57:47 +00:00
Bailey Ling
0e936d0b9a introduce util file 2013-08-16 14:57:47 +00:00