2 Commits

Author SHA1 Message Date
get-me-power f083d765d8 debug 2023-06-03 23:51:47 +09:00
get-me-power 45b6334faf test: add branch extensions test 2023-06-03 23:46:37 +09:00
103 changed files with 347 additions and 1099 deletions
+1 -2
View File
@@ -11,11 +11,10 @@ on:
jobs: jobs:
test: test:
name: Test name: Test
runs-on: ubuntu-22.04 runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
vim: vim:
- v9.1.0000
- v9.0.0000 - v9.0.0000
- v8.2.1000 - v8.2.1000
- v8.2.0000 - v8.2.0000
+5 -27
View File
@@ -2,9 +2,7 @@
This is the Changelog for the vim-airline project. This is the Changelog for the vim-airline project.
## [0.13] - Unreleased ## [0.12] - Unreleased
## [0.12] - 2026-05-02
- New features - New features
- Extensions: - Extensions:
- [poetv](https://github.com/petobens/poet-v) support - [poetv](https://github.com/petobens/poet-v) support
@@ -14,42 +12,22 @@ This is the Changelog for the vim-airline project.
- [vim-dirvish](https://github.com/justinmk/vim-dirvish) support - [vim-dirvish](https://github.com/justinmk/vim-dirvish) support
- [fzf.vim](https://github.com/junegunn/fzf.vim) support - [fzf.vim](https://github.com/junegunn/fzf.vim) support
- [OmniSharp](https://github.com/OmniSharp/omnisharp-vim) support - [OmniSharp](https://github.com/OmniSharp/omnisharp-vim) support
- [searchcount](https://vim-jp.org/vimdoc-en/eval.html#searchcount()) support - [searchcount](https://vim-jp.org/vimdoc-en/eval.html#searchcount()) support
- [fern.vim](https://github.com/lambdalisue/fern.vim) support - [fern.vim](https://github.com/lambdalisue/fern.vim) support
- [Vim-CMake](https://github.com/cdelledonne/vim-cmake) support - [Vim-CMake](https://github.com/cdelledonne/vim-cmake) support
- [battery.vim](https://github.com/lambdalisue/battery.vim) support - [battery.vim](https://github.com/lambdalisue/battery.vim) support
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) support - [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) support
- [gen_tags.vim](https://github.com/jsfaint/gen_tags.vim) support - [gen_tags.vim](https://github.com/jsfaint/gen_tags.vim) support
- [vim-rufu](https://github.com/ruby-formatter/rufo-vim) support
- [vim-flog](https://github.com/rbong/vim-flog) support
- [nvim-lsp](https://github.com/neovim/nvim-lsp) support
- [vim9lsp.vim](https://github.com/yegappan/lsp) support
- [fcitx.vim](https://github.com/fcitx/fcitx5) support
- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) support
- [codeium](https://github.com/Exafunction/codeium.vim) support
- [vimodoro](https://github.com/VimfanTPdvorak/vimodoro) support
- [nerdfont](https://github.com/lambdalisue/nerdfont.vim) support
- [zhihu](https://github.com/pxwg/zhihu.nvim) Neovim support
- Ascii Scrollbar support - Ascii Scrollbar support
- Improvements - Improvements
- git branch can also be displayed using [gina.vim](https://github.com/lambdalisue/gina.vim) - git branch can also be displayed using [gina.vim](https://github.com/lambdalisue/gina.vim)
- coc extensions can also show additional status messages as well as the current function - coc extensions can also show additional status messages as well as the current function
- [coc-git](https://github.com/neoclide/coc-git) extension integrated into hunks extension - [coc-git](https://github.com/neoclide/coc-git) extension integrated into hunks extension
- rewrote parts using Vim9 Script for performance improvements - rewrote parts using Vim9 Script for performance improvements
- [vim-obsession](https://github.com/tpope/vim-obsession) allow to set paused indicator
- Display executable symbol for executable script
- Support for Neovims global statusline
- whitespace extensions: add git conflict marker support
- Support tabpanel, including mouse and scroll support (Vim only)
- Support multi-line statusline (Vim only)
- Support clickable buffers in Vim
- Support for showing `repo:/path/file` path like style using the `gitrepo` style
- tabline: Expose `<Plug>AirlineSelectFirstTab` and `<Plug>AirlineSelectLastTab`
- tabline: Add a new `buffer_idx_mode` that adds a lot more mappings.
- Other - Other
- Changed CI from travis-ci.org to GitHub Actions - Changed CI from travis-ci.org to GitHub Actions
- Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint) - Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint)
- Added multiple Vim versions to unit tests - Added multiple Vim versions to unit tests using Travis CI
- Added option to show short paths in the status line - Added option to show short paths in the status line
## [0.11] - 2019-11-10 ## [0.11] - 2019-11-10
@@ -107,7 +85,7 @@ This is the Changelog for the vim-airline project.
- [fugitive](https://github.com/tpope/vim-fugitive) plugin has been refactored - [fugitive](https://github.com/tpope/vim-fugitive) plugin has been refactored
causing adjustments for vim-airline, also uses Fugitives new API calls causing adjustments for vim-airline, also uses Fugitives new API calls
- some improvements to Vims terminal mode - some improvements to Vims terminal mode
- Allow to use alternative separators for inactive windows ([#1236](https://github.com/vim-airline/vim-airline/issues/1236)) - Allow to use alternative seperators for inactive windows ([#1236](https://github.com/vim-airline/vim-airline/issues/1236))
- Statusline can be set to inactive, whenever Vim loses focus (using FocusLost autocommand) - Statusline can be set to inactive, whenever Vim loses focus (using FocusLost autocommand)
## [0.9] - 2018-01-15 ## [0.9] - 2018-01-15
@@ -157,7 +135,7 @@ This is the Changelog for the vim-airline project.
## [0.8] - 2016-03-09 ## [0.8] - 2016-03-09
- Changes - Changes
- Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline) - Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline)
- Themes have been split into a separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) - Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)
- Improvements - Improvements
- Extensions - Extensions
- branch: support Git and Mercurial simultaneously, untracked files - branch: support Git and Mercurial simultaneously, untracked files
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (C) 2013-2026 Bailey Ling, Christian Brabandt, et al. Copyright (C) 2013-2021 Bailey Ling, Christian Brabandt, et al.
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the "Software"), a copy of this software and associated documentation files (the "Software"),
+2 -6
View File
@@ -32,8 +32,6 @@ information. By default (without configuration) this line will look like this:
+-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+
| A | B | C X | Y | Z | [...] | | A | B | C X | Y | Z | [...] |
+-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+
| [...] |
+-----------------------------------------------------------------------------+
``` ```
The statusline is the colored line at the bottom, which contains the sections The statusline is the colored line at the bottom, which contains the sections
@@ -47,7 +45,7 @@ section|meaning (example)
X | filetype (vim) X | filetype (vim)
Y | file encoding[fileformat] (utf-8[unix]) Y | file encoding[fileformat] (utf-8[unix])
Z | current position in the file Z | current position in the file
[...] | additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...)<br>can be shown on a second line optionally (Vim only) [...] | additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...)
The information in Section Z looks like this: The information in Section Z looks like this:
@@ -241,7 +239,6 @@ to call custom functions. Use `:let g:airline_statusline_ontop=1` to enable it.
Every section is composed of parts, and you can reorder and reconfigure them at will. Every section is composed of parts, and you can reorder and reconfigure them at will.
![image](https://f.cloud.github.com/assets/306502/1073278/f291dd4c-14a3-11e3-8a83-268e2753f97d.png) ![image](https://f.cloud.github.com/assets/306502/1073278/f291dd4c-14a3-11e3-8a83-268e2753f97d.png)
Note: nowadays you should use the `AirlineAfterInit` autocommand
Sections can contain accents, which allows for very granular control of visuals (see configuration [here](https://github.com/vim-airline/vim-airline/issues/299#issuecomment-25772886)). Sections can contain accents, which allows for very granular control of visuals (see configuration [here](https://github.com/vim-airline/vim-airline/issues/299#issuecomment-25772886)).
@@ -309,7 +306,7 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
# License # License
[MIT License][58]. Copyright (c) 2013-2026 Bailey Ling & Contributors. [MIT License][58]. Copyright (c) 2013-2021 Bailey Ling & Contributors.
[1]: https://github.com/Lokaltog/vim-powerline [1]: https://github.com/Lokaltog/vim-powerline
[2]: https://github.com/powerline/powerline [2]: https://github.com/powerline/powerline
@@ -373,4 +370,3 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
[61]: http://github.com/lambdalisue/battery.vim/ [61]: http://github.com/lambdalisue/battery.vim/
[62]: http://github.com/rbong/vim-flog/ [62]: http://github.com/rbong/vim-flog/
[63]: https://github.com/lewis6991/gitsigns.nvim [63]: https://github.com/lewis6991/gitsigns.nvim
[64]: https://github.com/VimfanTPdvorak/vimodoro
+2 -2
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -6,7 +6,7 @@ scriptencoding utf-8
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', []) let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
let g:airline_inactive_funcrefs = get(g:, 'airline_inactive_statusline_funcrefs', []) let g:airline_inactive_funcrefs = get(g:, 'airline_inactive_statusline_funcrefs', [])
let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning', 'warning2'] let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning']
let s:contexts = {} let s:contexts = {}
let s:core_funcrefs = [ let s:core_funcrefs = [
\ function('airline#extensions#apply'), \ function('airline#extensions#apply'),
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+7 -3
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -190,8 +190,12 @@ function! s:section_is_empty(self, content)
endif endif
" only check, if airline#skip_empty_sections == 1 " only check, if airline#skip_empty_sections == 1
if get(g:, 'airline_skip_empty_sections', 0) == 0 || if get(g:, 'airline_skip_empty_sections', 0) == 0
\ get(w:, 'airline_skip_empty_sections', -1) == 0 return 0
endif
" only check, if airline#skip_empty_sections == 1
if get(w:, 'airline_skip_empty_sections', -1) == 0
return 0 return 0
endif endif
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+2 -27
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -177,11 +177,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'netrw') call add(s:loaded_ext, 'netrw')
endif endif
if get(g:, 'loaded_nerdfont', 0) && get(g:, 'airline#extensions#nerdfont#enabled', 1)
call airline#extensions#nerdfont#init(s:ext)
call add(s:loaded_ext, 'nerdfont')
endif
" fzf buffers are also terminal buffers, so this must be above term. " fzf buffers are also terminal buffers, so this must be above term.
if exists(':FZF') && get(g:, 'airline#extensions#fzf#enabled', 1) if exists(':FZF') && get(g:, 'airline#extensions#fzf#enabled', 1)
call airline#extensions#fzf#init(s:ext) call airline#extensions#fzf#init(s:ext)
@@ -234,11 +229,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'undotree') call add(s:loaded_ext, 'undotree')
endif endif
if exists(':RTM')
call airline#extensions#vimodoro#init(s:ext)
call add(s:loaded_ext, 'vimodoro')
endif
if get(g:, 'airline#extensions#hunks#enabled', 1) if get(g:, 'airline#extensions#hunks#enabled', 1)
\ && (exists('g:loaded_signify') \ && (exists('g:loaded_signify')
\ || exists('g:loaded_gitgutter') \ || exists('g:loaded_gitgutter')
@@ -400,11 +390,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'tabline') call add(s:loaded_ext, 'tabline')
endif endif
if get(g:, 'airline#extensions#tabpanel#enabled', 0)
call airline#extensions#tabpanel#Init(s:ext)
call add(s:loaded_ext, 'tabpanel')
endif
if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline') if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline')
call airline#extensions#tmuxline#init(s:ext) call airline#extensions#tmuxline#init(s:ext)
call add(s:loaded_ext, 'tmuxline') call add(s:loaded_ext, 'tmuxline')
@@ -430,11 +415,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'capslock') call add(s:loaded_ext, 'capslock')
endif endif
if (get(g:, 'airline#extensions#codeium#enabled', 1) && get(g:, 'loaded_codeium', 0))
call airline#extensions#codeium#init(s:ext)
call add(s:loaded_ext, 'codeium')
endif
if (get(g:, 'airline#extensions#gutentags#enabled', 1) && get(g:, 'loaded_gutentags', 0)) if (get(g:, 'airline#extensions#gutentags#enabled', 1) && get(g:, 'loaded_gutentags', 0))
call airline#extensions#gutentags#init(s:ext) call airline#extensions#gutentags#init(s:ext)
call add(s:loaded_ext, 'gutentags') call add(s:loaded_ext, 'gutentags')
@@ -450,7 +430,7 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'grepper') call add(s:loaded_ext, 'grepper')
endif endif
if get(g:, 'airline#extensions#xkblayout#enabled', 1) && (exists('g:XkbSwitchLib') || exists('*FcitxCurrentIM') || has('nvim')) if get(g:, 'airline#extensions#xkblayout#enabled', 1) && (exists('g:XkbSwitchLib') || exists('*FcitxCurrentIM'))
call airline#extensions#xkblayout#init(s:ext) call airline#extensions#xkblayout#init(s:ext)
call add(s:loaded_ext, 'xkblayout') call add(s:loaded_ext, 'xkblayout')
endif endif
@@ -536,11 +516,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'rufo') call add(s:loaded_ext, 'rufo')
endif endif
if (get(g:, 'airline#extensions#zhihu#enabled', 1) && airline#util#has_zhihu())
call airline#extensions#zhihu#init(s:ext)
call add(s:loaded_ext, 'zhihu')
endif
endfunction endfunction
function! airline#extensions#get_loaded_extensions() function! airline#extensions#get_loaded_extensions()
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bjorn Neergaard, w0rp et al. " MIT License. Copyright (c) 2013-2021 Bjorn Neergaard, w0rp et al.
" Plugin: https://github.com/dense-analysis/ale " Plugin: https://github.com/dense-analysis/ale
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al. " MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/lambdalisue/battery.vim " Plugin: https://github.com/lambdalisue/battery.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2026 Bjoern Petri <bjoern.petri@sundevil.de> " MIT License. Copyright (c) 2021 Bjoern Petri <bjoern.petri@sundevil.de>
" Plugin: https://github.com/MattesGroeger/vim-bookmarks " Plugin: https://github.com/MattesGroeger/vim-bookmarks
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+3 -3
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: fugitive, gina, lawrencium and vcscommand " Plugin: fugitive, gina, lawrencium and vcscommand
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
@@ -17,8 +17,8 @@ scriptencoding utf-8
let s:vcs_config = { let s:vcs_config = {
\ 'git': { \ 'git': {
\ 'exe': 'git', \ 'exe': 'git',
\ 'cmd': 'git --no-optional-locks status --porcelain -- ', \ 'cmd': 'git status --porcelain -- ',
\ 'dirty': 'git --no-optional-locks status -uno --porcelain --ignore-submodules', \ 'dirty': 'git status -uno --porcelain --ignore-submodules',
\ 'untracked_mark': '??', \ 'untracked_mark': '??',
\ 'exclude': '\.git', \ 'exclude': '\.git',
\ 'update_branch': 's:update_git_branch', \ 'update_branch': 's:update_git_branch',
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/bling/vim-bufferline " Plugin: https://github.com/bling/vim-bufferline
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al. " MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/tpope/vim-capslock " Plugin: https://github.com/tpope/vim-capslock
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2019-2026 Peng Guanwen et al. " MIT License. Copyright (c) 2019-2021 Peng Guanwen et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
" Plugin: https://github.com/neoclide/coc " Plugin: https://github.com/neoclide/coc
-17
View File
@@ -1,17 +0,0 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al.
" Plugin: https://github.com/Exafunction/codeium.vim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !get(g:, 'loaded_codeium', 0)
finish
endif
function! airline#extensions#codeium#status() abort
return '{…}' . codeium#GetStatusString()
endfunction
function! airline#extensions#codeium#init(ext) abort
call airline#parts#define_function('codeium', 'airline#extensions#codeium#status')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/wincent/command-t " Plugin: https://github.com/wincent/command-t
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/chrisbra/csv.vim " Plugin: https://github.com/chrisbra/csv.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/ctrlpvim/ctrlp.vim " Plugin: https://github.com/ctrlpvim/ctrlp.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/szw/vim-ctrlspace " Plugin: https://github.com/szw/vim-ctrlspace
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+2 -1
View File
@@ -1,6 +1,7 @@
" MIT Licsense. " MIT Licsense.
" Plugin: https://github.com/vheon/vim-cursormode " Plugin: https://github.com/vheon/vim-cursormode
" Copyright (C) 2014-2026 Andrea Cedraro <a.cedraro@gmail.com>, Eduardo Suarez-Santana <e.suarezsantana@gmail.com> " Copyright (C) 2014 Andrea Cedraro <a.cedraro@gmail.com>,
" Copyright (C) 2017 Eduardo Suarez-Santana <e.suarezsantana@gmail.com>
scriptencoding utf-8 scriptencoding utf-8
+11 -36
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -11,11 +11,10 @@ let s:section_truncate_width = get(g:, 'airline#extensions#default#section_trunc
\ 'z': 45, \ 'z': 45,
\ 'warning': 80, \ 'warning': 80,
\ 'error': 80, \ 'error': 80,
\ 'warning2': 80,
\ }) \ })
let s:layout = get(g:, 'airline#extensions#default#layout', [ let s:layout = get(g:, 'airline#extensions#default#layout', [
\ [ 'a', 'b', 'c' ], \ [ 'a', 'b', 'c' ],
\ [ 'x', 'y', 'z', 'warning', 'error', 'warning2' ] \ [ 'x', 'y', 'z', 'warning', 'error' ]
\ ]) \ ])
function! s:get_section(winnr, key, ...) function! s:get_section(winnr, key, ...)
@@ -33,24 +32,9 @@ function! s:get_section(winnr, key, ...)
return empty(text) ? '' : prefix.text.suffix return empty(text) ? '' : prefix.text.suffix
endfunction endfunction
function! s:eval_section_empty(content)
let exprlist = []
call substitute(a:content, '%{\([^}]*\)}', '\=add(exprlist, submatch(1))', 'g')
for expr in exprlist
try
if !empty(eval(expr))
return 0
endif
catch
return 0
endtry
endfor
return 1
endfunction
function! s:build_sections(builder, context, keys) function! s:build_sections(builder, context, keys)
for key in a:keys for key in a:keys
if (key == 'warning' || key == 'error' || key == 'warning2') && !a:context.active if (key == 'warning' || key == 'error') && !a:context.active
continue continue
endif endif
call s:add_section(a:builder, a:context, key) call s:add_section(a:builder, a:context, key)
@@ -65,30 +49,21 @@ if s:section_use_groups && (v:version >= 704 || (v:version >= 703 && has('patch8
\ (v:version == 704 && !has("patch1511")) \ (v:version == 704 && !has("patch1511"))
" i have no idea why the warning section needs special treatment, but it's " i have no idea why the warning section needs special treatment, but it's
" needed to prevent separators from showing up " needed to prevent separators from showing up
if ((a:key == 'error' || a:key == 'warning' || a:key == 'warning2') if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
\ && empty(s:get_section(a:context.winnr, a:key)))
return return
endif endif
if a:key == 'warning2' && airline#util#has_multiline() if condition
let section = s:get_section(a:context.winnr, a:key) call a:builder.add_raw('%(')
if !s:eval_section_empty(section) endif
call a:builder.add_raw('%@%#airline_warning#'.section) call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
endif if condition
else call a:builder.add_raw('%)')
if condition
call a:builder.add_raw('%(')
endif
call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
if condition
call a:builder.add_raw('%)')
endif
endif endif
endfunction endfunction
else else
" older version don't like the use of %(%) " older version don't like the use of %(%)
function! s:add_section(builder, context, key) function! s:add_section(builder, context, key)
if ((a:key == 'error' || a:key == 'warning') if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
\ && empty(s:get_section(a:context.winnr, a:key)))
return return
endif endif
if a:key == 'warning' if a:key == 'warning'
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2017-2026 Thomas Dy et al. " MIT License. Copyright (c) 2017-2021 Thomas Dy et al.
" Plugin: https://github.com/Shougo/denite.nvim " Plugin: https://github.com/Shougo/denite.nvim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" PLugin: https://eclim.org " PLugin: https://eclim.org
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+20 -47
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 " MIT License. Copyright (c) 2013-2021
" Plugin: https://github.com/lambdalisue/fern.vim " Plugin: https://github.com/lambdalisue/fern.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
@@ -7,57 +7,30 @@ if !get(g:, 'loaded_fern', 0)
finish finish
endif endif
function! airline#extensions#fern#apply_active(...) abort function! airline#extensions#fern#apply(...) abort
" check if current buffer is both fern and active if (&ft =~# 'fern')
if (&ft =~# 'fern') && a:2.active ==# '1' let spc = g:airline_symbols.space
call airline#extensions#fern#configure_sections(a:1, a:2) let fri = fern#fri#parse(expand('%f'))
return 1
endif
endfunction
call a:1.add_section('airline_a', spc.'fern'.spc)
function! airline#extensions#fern#apply_inactive(...) abort if exists('*airline#extensions#branch#get_head')
" check if referenced buffer is both fern and inactive call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
if getbufvar(a:2.bufnr, '&filetype') ==# 'fern' && a:2.active ==# '0' else
call airline#extensions#fern#configure_sections(a:1, a:2) call a:1.add_section('airline_b', '')
return 1
endif
endfunction
function! airline#extensions#fern#configure_sections(win, context) abort
let spc = g:airline_symbols.space
let fri = fern#fri#parse(bufname(a:context.bufnr))
let abspath = ''
" Replace uses fern-replacer filetype, do not try to parse in that case
if &ft ==# 'fern' && fri.scheme ==# 'fern'
let abspath = fern#fri#to#filepath(fern#fri#parse(fri.path))
endif
call a:win.add_section('airline_a', spc.'fern'.spc)
if exists('*airline#extensions#branch#get_head')
" because fern navigation changes an internal _fri_ and not the working directory
" we need to give it some help so the branch name gets updated
try
if &ft ==# 'fern'
execute 'lcd' fnameescape(abspath)
endif
catch /^Vim\%((\a\+)\)\=:E344:/
call a:win.add_section('airline_b', '')
endtry
call a:win.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
else
call a:win.add_section('airline_b', '')
endif
if !(fri.authority =~# '^drawer')
call a:win.add_section('airline_c', spc.fnamemodify(abspath, ':~'))
call a:win.split()
if len(get(g:, 'fern#comparators', {}))
call a:win.add_section('airline_y', spc.'%{fern#comparator}'.spc)
endif endif
if !(fri.authority =~# '^drawer')
let abspath = substitute(fri.path, 'file://', '', '')
call a:1.add_section('airline_c', spc.fnamemodify(abspath, ':~'))
call a:1.split()
if len(get(g:, 'fern#comparators', {}))
call a:1.add_section('airline_y', spc.'%{fern#comparator}'.spc)
endif
endif
return 1
endif endif
endfunction endfunction
function! airline#extensions#fern#init(ext) abort function! airline#extensions#fern#init(ext) abort
let g:fern_force_overwrite_statusline = 0 let g:fern_force_overwrite_statusline = 0
call a:ext.add_statusline_func('airline#extensions#fern#apply_active') call a:ext.add_statusline_func('airline#extensions#fern#apply')
call a:ext.add_inactive_statusline_func('airline#extensions#fern#apply_inactive')
endfunction endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2017-2026 Cimbali et al " MIT License. Copyright (c) 2017-2021 Cimbali et al
" Plugin: https://github.com/tpope/vim-fugitive " Plugin: https://github.com/tpope/vim-fugitive
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/junegunn/fzf, https://github.com/junegunn/fzf.vim " Plugin: https://github.com/junegunn/fzf, https://github.com/junegunn/fzf.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al. " MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Written by Kamil Cukrowski 2020 " Written by Kamil Cukrowski 2020
" Plugin: https://github.com/jsfaint/gen_tags.vim " Plugin: https://github.com/jsfaint/gen_tags.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 " MIT License. Copyright (c) 2013-2021
" Plugin: https://github.com/lambdalisue/gina.vim " Plugin: https://github.com/lambdalisue/gina.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al. " MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/mhinz/vim-grepper " Plugin: https://github.com/mhinz/vim-grepper
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2014-2026 Mathias Andersson et al. " MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
" Plugin: https://github.com/ludovicchabant/vim-gutentags " Plugin: https://github.com/ludovicchabant/vim-gutentags
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: vim-gitgutter, vim-signify, changesPlugin, quickfixsigns, coc-git, " Plugin: vim-gitgutter, vim-signify, changesPlugin, quickfixsigns, coc-git,
" gitsigns.nvim " gitsigns.nvim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Doron Behar, C.Brabandt et al. " MIT License. Copyright (c) 2013-2021 Doron Behar, C.Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bjorn Neergaard, hallettj et al. " MIT License. Copyright (c) 2013-2021 Bjorn Neergaard, hallettj et al.
" Plugin: https://github.com/autozimu/LanguageClient-neovim " Plugin: https://github.com/autozimu/LanguageClient-neovim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2018-2026 mox et al. " MIT License. Copyright (c) 2018-2021 mox et al.
" Plugin: https://github.com/mox-mox/vim-localsearch " Plugin: https://github.com/mox-mox/vim-localsearch
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 François-Xavier Carton et al. " MIT License. Copyright (c) 2013-2021 François-Xavier Carton et al.
" Plugin: https://github.com/prabirshrestha/vim-lsp " Plugin: https://github.com/prabirshrestha/vim-lsp
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/neomake/neomake " Plugin: https://github.com/neomake/neomake
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
-46
View File
@@ -1,46 +0,0 @@
" MIT License. Copyright (c) 2026-2026 Wu Zhenyu et al
" Plugin: https://github.com/lambdalisue/nerdfont.vim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !get(g:, 'loaded_nerdfont', 0)
finish
endif
function! airline#extensions#nerdfont#fileformat() abort
if &fileformat ==# 'dos'
return nerdfont#platform#find('windows')
endif
if &fileformat ==# 'mac'
return nerdfont#platform#find('macos')
endif
if &fileformat ==# 'unix'
if has('unix')
return nerdfont#platform#find()
else
return nerdfont#platform#find('linux')
endif
endif
endfunction
function! airline#extensions#nerdfont#ffenc() abort
let expected = get(g:, 'airline#parts#ffenc#skip_expected_string', '')
let bomb = &bomb ? '[BOM]' : ''
let noeolf = &eol ? '' : '[!EOL]'
let ff = strlen(&ff) ? '['.&ff.']' : ''
if expected is# &fenc.bomb.noeolf.ff
return ''
else
return &fenc.bomb.noeolf.' '.airline#extensions#nerdfont#fileformat()
endif
endfunction
function! airline#extensions#nerdfont#init(ext) abort
call airline#parts#define_function('ffenc', 'airline#extensions#nerdfont#ffenc')
call a:ext.add_statusline_func('airline#extensions#nerdfont#apply')
endfunction
function! airline#extensions#nerdfont#apply(...) abort
call airline#extensions#append_to_section('x', ' %{nerdfont#find()}')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: http://www.drchip.org/astronaut/vim/#NETRW " Plugin: http://www.drchip.org/astronaut/vim/#NETRW
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/chrisbra/NrrwRgn " Plugin: https://github.com/chrisbra/NrrwRgn
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+3 -5
View File
@@ -1,4 +1,4 @@
" Apache 2.0 license. Copyright (c) 2019-2026 Copyright Neovim contributors. " Apache 2.0 license. Copyright (c) 2019-2021 Copyright Neovim contributors.
" Plugin: https://github.com/neovim/nvim-lsp " Plugin: https://github.com/neovim/nvim-lsp
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
@@ -15,9 +15,7 @@ function! s:airline_nvimlsp_count(cnt, symbol) abort
endfunction endfunction
function! airline#extensions#nvimlsp#get(type) abort function! airline#extensions#nvimlsp#get(type) abort
if has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0 }))') if luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
return ''
elseif !has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
return '' return ''
endif endif
@@ -47,7 +45,7 @@ endfunction
function! s:airline_nvimlsp_get_line_number(cnt, type) abort function! s:airline_nvimlsp_get_line_number(cnt, type) abort
let severity = a:type == 'Warning' ? 'Warn' : a:type let severity = a:type == 'Warning' ? 'Warn' : a:type
let num = v:lua.vim.diagnostic.get(0, { 'severity': severity })[0].lnum + 1 let num = v:lua.vim.diagnostic.get(0, { 'severity': severity })[0].lnum
let l:open_lnum_symbol = let l:open_lnum_symbol =
\ get(g:, 'airline#extensions#nvimlsp#open_lnum_symbol', '(L') \ get(g:, 'airline#extensions#nvimlsp#open_lnum_symbol', '(L')
+2 -6
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/tpope/vim-obsession " Plugin: https://github.com/tpope/vim-obsession
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
@@ -14,14 +14,10 @@ if !exists('g:airline#extensions#obsession#indicator_text')
let g:airline#extensions#obsession#indicator_text = '$' let g:airline#extensions#obsession#indicator_text = '$'
endif endif
if !exists('g:airline#extensions#obsession#indicator_text_paused')
let g:airline#extensions#obsession#indicator_text_paused = '' " vim-obsession defaults to 'S'
endif
function! airline#extensions#obsession#init(ext) function! airline#extensions#obsession#init(ext)
call airline#parts#define_function('obsession', 'airline#extensions#obsession#get_status') call airline#parts#define_function('obsession', 'airline#extensions#obsession#get_status')
endfunction endfunction
function! airline#extensions#obsession#get_status() function! airline#extensions#obsession#get_status()
return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), (g:airline#extensions#obsession#indicator_text_paused . s:spc)) return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), '')
endfunction endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/petobens/poet_v " Plugin: https://github.com/petobens/poet_v
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/edkolev/promptline.vim " Plugin: https://github.com/edkolev/promptline.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021
" vim: et ts=2 sts=2 sw=2 et " vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8 scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" This extension is inspired by vim-anzu <https://github.com/osyo-manga/vim-anzu>. " This extension is inspired by vim-anzu <https://github.com/osyo-manga/vim-anzu>.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/vim-syntastic/syntastic " Plugin: https://github.com/vim-syntastic/syntastic
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 et " vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+10 -81
View File
@@ -1,11 +1,11 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
let s:spc = g:airline_symbols.space let s:spc = g:airline_symbols.space
let s:current_bufnr = -1 let s:current_bufnr = -1
let s:current_tabnr = -1
let s:current_modified = 0 let s:current_modified = 0
let s:current_tabline = '' let s:current_tabline = ''
let s:current_visible_buffers = [] let s:current_visible_buffers = []
@@ -49,15 +49,14 @@ function! airline#extensions#tabline#buffers#invalidate()
endfunction endfunction
function! airline#extensions#tabline#buffers#get() function! airline#extensions#tabline#buffers#get()
let curbuf = bufnr('%')
let curtab = tabpagenr()
try try
call <sid>map_keys() call <sid>map_keys()
catch catch
" no-op " no-op
endtry endtry
if curbuf == s:current_bufnr && curtab == s:current_tabnr && &columns == s:column_width let cur = bufnr('%')
if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified if cur == s:current_bufnr && &columns == s:column_width
if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
return s:current_tabline return s:current_tabline
endif endif
endif endif
@@ -78,10 +77,10 @@ function! airline#extensions#tabline#buffers#get()
let b.overflow_group = 'airline_tabhid' let b.overflow_group = 'airline_tabhid'
let b.buffers = airline#extensions#tabline#buflist#list() let b.buffers = airline#extensions#tabline#buflist#list()
if get(g:, 'airline#extensions#tabline#current_first', 0) if get(g:, 'airline#extensions#tabline#current_first', 0)
if index(b.buffers, curbuf) > -1 if index(b.buffers, cur) > -1
call remove(b.buffers, index(b.buffers, curbuf)) call remove(b.buffers, index(b.buffers, cur))
endif endif
let b.buffers = [curbuf] + b.buffers let b.buffers = [cur] + b.buffers
endif endif
function! b.get_group(i) dict function! b.get_group(i) dict
@@ -97,7 +96,6 @@ function! airline#extensions#tabline#buffers#get()
endfunction endfunction
if has("tablineat") if has("tablineat")
" Neovim version
function! b.get_pretitle(i) dict function! b.get_pretitle(i) dict
let bufnum = get(self.buffers, a:i, -1) let bufnum = get(self.buffers, a:i, -1)
return '%'.bufnum.'@airline#extensions#tabline#buffers#clickbuf@' return '%'.bufnum.'@airline#extensions#tabline#buffers#clickbuf@'
@@ -108,17 +106,6 @@ function! airline#extensions#tabline#buffers#get()
endfunction endfunction
endif endif
if has("statusline_click")
" Vim version
function! b.get_pretitle(i) dict
return '%'.get(self.buffers, a:i, -1).'[airline#extensions#tabline#buffers#clickbufVim]'
endfunction
function! b.get_posttitle(i) dict
return '%[]'
endfunction
endif
function! b.get_title(i) dict function! b.get_title(i) dict
let bufnum = get(self.buffers, a:i, -1) let bufnum = get(self.buffers, a:i, -1)
let group = self.get_group(a:i) let group = self.get_group(a:i)
@@ -142,7 +129,7 @@ function! airline#extensions#tabline#buffers#get()
endif endif
endfunction endfunction
let current_buffer = max([index(b.buffers, curbuf), 0]) let current_buffer = max([index(b.buffers, cur), 0])
let last_buffer = len(b.buffers) - 1 let last_buffer = len(b.buffers) - 1
call b.insert_titles(current_buffer, 0, last_buffer) call b.insert_titles(current_buffer, 0, last_buffer)
@@ -155,8 +142,7 @@ function! airline#extensions#tabline#buffers#get()
call airline#extensions#tabline#add_tab_label(b) call airline#extensions#tabline#add_tab_label(b)
let s:current_bufnr = curbuf let s:current_bufnr = cur
let s:current_tabnr = curtab
let s:column_width = &columns let s:column_width = &columns
let s:current_tabline = b.build() let s:current_tabline = b.build()
let s:current_visible_buffers = copy(b.buffers) let s:current_visible_buffers = copy(b.buffers)
@@ -221,68 +207,11 @@ function! s:map_keys()
endif endif
noremap <silent> <Plug>AirlineSelectPrevTab :<C-u>call <SID>jump_to_tab(-v:count1)<CR> noremap <silent> <Plug>AirlineSelectPrevTab :<C-u>call <SID>jump_to_tab(-v:count1)<CR>
noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR> noremap <silent> <Plug>AirlineSelectNextTab :<C-u>call <SID>jump_to_tab(v:count1)<CR>
noremap <silent> <Plug>AirlineSelectFirstTab :<C-u>call <SID>select_tab(0)<CR>
noremap <silent> <Plug>AirlineSelectLastTab :<C-u>call <SID>select_tab(len(airline#extensions#tabline#buflist#list()) - 1)<CR>
" Enable this for debugging " Enable this for debugging
" com! AirlineBufferList :echo map(copy(s:current_visible_buffers), {i,k -> k.": ".bufname(k)}) " com! AirlineBufferList :echo map(copy(s:current_visible_buffers), {i,k -> k.": ".bufname(k)})
endif endif
endfunction endfunction
function! airline#extensions#tabline#buffers#clickbufVim(dict) abort
" Clickable buffers in Vim, requires v9.2.0338
" single mouse button click without modifiers pressed
if a:dict.nclicks == 1 && empty(a:dict.mods)
if a:dict.button is# 'l'
" left button - switch to buffer
try
silent execute 'buffer' a:dict.minwid
catch
call airline#util#warning("Cannot switch buffer, current buffer is modified! See :h 'hidden'")
endtry
elseif a:dict.button is# 'm'
" middle button - delete buffer
if get(g:, 'airline#extensions#tabline#middle_click_preserves_windows', 0) == 0 || winnr('$') == 1
" just simply delete the clicked buffer. This will cause windows
" associated with the clicked buffer to be closed.
silent execute 'bdelete' a:dict.minwid
else
" find windows displaying the clicked buffer and open an new
" buffer in them.
let current_window = bufwinnr("%")
let window_number = bufwinnr(a:dict.minwid)
let last_window_visited = -1
" Set to 1 if the clicked buffer was open in any windows.
let buffer_in_window = 0
" Find the next window with the clicked buffer open. If bufwinnr()
" returns the same window number, this is because we clicked a new
" buffer, and then tried editing a new buffer. Vim won't create a
" new empty buffer for the same window, so we get the same window
" number from bufwinnr(). In this case we just give up and don't
" delete the buffer.
" This could be made cleaner if we could check if the clicked buffer
" is a new buffer, but I don't know if there is a way to do that.
while window_number != -1 && window_number != last_window_visited
let buffer_in_window = 1
silent execute window_number . 'wincmd w'
silent execute 'enew'
let last_window_visited = window_number
let window_number = bufwinnr(a:minwid)
endwhile
silent execute current_window . 'wincmd w'
if window_number != last_window_visited || buffer_in_window == 0
silent execute 'bdelete' a:dict.minwid
endif
endif
endif
endif
" force a redraw
return 1
endfunction
function! airline#extensions#tabline#buffers#clickbuf(minwid, clicks, button, modifiers) abort function! airline#extensions#tabline#buffers#clickbuf(minwid, clicks, button, modifiers) abort
" Clickable buffers " Clickable buffers
" works only in recent NeoVim with has('tablineat') " works only in recent NeoVim with has('tablineat')
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2016-2026 Kevin Sapper et al. " MIT License. Copyright (c) 2016-2021 Kevin Sapper et al.
" Plugin: https://github.com/szw/vim-ctrlspace " Plugin: https://github.com/szw/vim-ctrlspace
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 et " vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8 scriptencoding utf-8
@@ -47,7 +47,7 @@ if !exists(":def") || !airline#util#has_vim9_script()
else else
" Vim9 Script implementation " Vim9 Script implementation
def airline#extensions#tabline#formatters#default#format(bufnr: number, buffers: list<number>): string def airline#extensions#tabline#formatters#default#format(bufnr: number, buffers: list<number>): string
var fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0) var fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
var fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.') var fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
var result = '' var result = ''
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,7 +0,0 @@
let g:airline#extensions#tabline#formatters#nerdfont#formatter = get(g:, 'airline#extensions#tabline#formatters#nerdfont#formatter', 'default')
function! airline#extensions#tabline#formatters#nerdfont#format(bufnr, buffers) abort
" Call original formatter.
let originalFormatter = airline#extensions#tabline#formatters#{g:airline#extensions#tabline#formatters#nerdfont#formatter}#format(a:bufnr, a:buffers)
return originalFormatter . printf(' %s', nerdfont#find(bufname(a:bufnr)))
endfunction
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2017-2026 Christian Brabandt et al. " MIT License. Copyright (c) 2017-2021 Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+1 -3
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -125,8 +125,6 @@ function! airline#extensions#tabline#tabs#map_keys()
noremap <silent> <Plug>AirlineSelectPrevTab gT noremap <silent> <Plug>AirlineSelectPrevTab gT
" tabn {count} goes to count tab does not go {count} tab pages forward! " tabn {count} goes to count tab does not go {count} tab pages forward!
noremap <silent> <Plug>AirlineSelectNextTab :<C-U>exe repeat(':tabn\|', v:count1)<cr> noremap <silent> <Plug>AirlineSelectNextTab :<C-U>exe repeat(':tabn\|', v:count1)<cr>
noremap <silent> <Plug>AirlineSelectFirstTab :<C-u>:tabfirst<CR>
noremap <silent> <Plug>AirlineSelectLastTab :<C-u>:tablast<CR>
endfunction endfunction
function! airline#extensions#tabline#tabs#tabnr_formatter(nr, i) abort function! airline#extensions#tabline#tabs#tabnr_formatter(nr, i) abort
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2016-2026 Kevin Sapper et al. " MIT License. Copyright (c) 2016-2021 Kevin Sapper et al.
" PLugin: https://github.com/s1341/vim-tabws " PLugin: https://github.com/s1341/vim-tabws
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
@@ -1,13 +0,0 @@
let g:airline#extensions#tabline#formatters#zhihu#formatter = get(g:, 'airline#extensions#tabline#formatters#zhihu#formatter', 'default')
function! airline#extensions#tabline#formatters#zhihu#format(bufnr, buffers)
let l:name = bufname(a:bufnr)
if match(l:name, 'zhihu://') == -1
return airline#extensions#tabline#formatters#{g:airline#extensions#tabline#formatters#zhihu#formatter}#format(a:bufnr, a:buffers)
endif
let l:prefix = matchstr(fnamemodify(l:name, ':h'), '\d\+')
if l:prefix !=# ''
let l:prefix .= '/'
endif
return l:prefix . fnamemodify(l:name, ':t')
endfunction
-154
View File
@@ -1,154 +0,0 @@
vim9script
# MIT License. Copyright (c) 2013-2026 Christian Brabandt et al.
# vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
var spc = g:airline_symbols.space
var mouse_support = has('patch-9.2.0386')
def IsTabModified(tabnr: number): bool
if !g:airline_detect_modified
return false
endif
for bi in tabpagebuflist(tabnr)
if getbufvar(bi, '&modified')
return true
endif
endfor
return false
enddef
export def Get(): string
var tabnr = get(g:, 'actual_curtabpage', tabpagenr())
var curtab = tabpagenr()
var label = ''
if tabnr == 1
label ..= '%#airline_tabfill#'
label ..= get(g:, 'airline#extensions#tabpanel#label', '[tabs]') .. "\n"
endif
var buflist = tabpagebuflist(tabnr)
var winnr = tabpagewinnr(tabnr)
var bufnr = buflist[winnr - 1]
var title = fnamemodify(bufname(bufnr), ':t')
if empty(title)
title = '[No Name]'
endif
if tabnr == curtab
if IsTabModified(tabnr)
label ..= '%#airline_tabmod#'
else
label ..= '%#airline_tabsel#'
endif
else
if IsTabModified(tabnr)
label ..= '%#airline_tabmod_unsel#'
else
label ..= '%#airline_tab#'
endif
endif
if mouse_support
label ..= '%' .. tabnr .. '[airline#extensions#tabpanel#ClickTab]'
endif
if get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
label ..= spc .. tabnr
label ..= spc
endif
label ..= title .. spc
if mouse_support
label ..= '%[]'
endif
return label
enddef
export def ClickTab(info: dict<any>): number
if info.nclicks != 1 || !empty(info.mods)
return 0
endif
if info.button ==# 'l'
try
silent execute 'tabnext' info.minwid
catch
airline#util#warning('Cannot switch tab')
endtry
elseif info.button ==# 'm'
try
silent execute 'tabclose' info.minwid
catch
airline#util#warning('Cannot close tab')
endtry
endif
return 0
enddef
def LinkHighlights(): void
highlight! link TabPanelFill airline_tabfill
highlight! link TabPanelSel airline_tabsel
highlight! link TabPanel airline_tab
enddef
export def LoadTheme(palette: dict<any>): number
airline#extensions#tabline#load_theme(palette)
LinkHighlights()
return 0
enddef
def Enable(): void
LinkHighlights()
&tabpanel = '%!airline#extensions#tabpanel#Get()'
var cols = get(g:, 'airline#extensions#tabpanel#columns', 20)
var align = get(g:, 'airline#extensions#tabpanel#align', '')
var scrollbar = get(g:, 'airline#extensions#tabpanel#scrollbar', 1)
var opts = 'columns:' .. cols
if !empty(align)
opts ..= ',align:' .. align
endif
if mouse_support
if scrollbar
opts ..= ',scrollbar'
endif
endif
&tabpanelopt = opts
&showtabpanel = 2
enddef
def Disable(): void
highlight! link TabPanelFill NONE
highlight! link TabPanelSel NONE
highlight! link TabPanel NONE
&tabpanel = ''
&tabpanelopt = ''
&showtabpanel = 0
enddef
export def Init(ext: dict<any>): void
if !exists('+tabpanel')
return
endif
autocmd_add([{
group: 'airline_tabpanel',
event: 'User',
pattern: 'AirlineToggledOn',
cmd: 'Enable()',
replace: true,
}])
autocmd_add([{
group: 'airline_tabpanel',
event: 'User',
pattern: 'AirlineToggledOff',
cmd: 'Disable()',
replace: true,
}])
ext.add_theme_func('airline#extensions#tabpanel#LoadTheme')
Enable()
enddef
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/majutsushi/tagbar " Plugin: https://github.com/majutsushi/tagbar
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2021 DEMAREST Maxime (maxime@indelog.fr) " MIT License. Copyright (c) 2021 DEMAREST Maxime (maxime@indelog.fr)
" Plugin: https://github.com/yegappan/taglist/ " Plugin: https://github.com/yegappan/taglist/
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+10 -25
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -6,46 +6,31 @@ scriptencoding utf-8
call airline#parts#define_function('tmode', 'airline#extensions#term#termmode') call airline#parts#define_function('tmode', 'airline#extensions#term#termmode')
call airline#parts#define('terminal', {'text': get(g:airline_mode_map, 't', 't'), 'accent': 'bold'}) call airline#parts#define('terminal', {'text': get(g:airline_mode_map, 't', 't'), 'accent': 'bold'})
let s:spc = g:airline_symbols.space
function! s:GetAirlineSection() let s:section_a = airline#section#create_left(['terminal', 'tmode'])
if exists("g:airline_section_z_term") let s:section_z = airline#section#create(['linenr', 'maxlinenr'])
let section_z = g:airline_section_z_term
else
let section_z = airline#section#create(['linenr', 'maxlinenr'])
endif
if exists("g:airline_section_a_term")
let section_a = g:airline_section_a_term
else
let section_a = airline#section#create_left(['terminal', 'tmode'])
endif
return [section_a, section_z]
endfunction
function! airline#extensions#term#apply(...) abort function! airline#extensions#term#apply(...) abort
if &buftype ==? 'terminal' || bufname(a:2.bufnr)[0] ==? '!' if &buftype ==? 'terminal' || bufname(a:2.bufnr)[0] ==? '!'
let sections = s:GetAirlineSection() call a:1.add_section_spaced('airline_a', s:section_a)
let spc = g:airline_symbols.space
call a:1.add_section_spaced('airline_a', sections[0])
call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr)) call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr))
call a:1.add_section('airline_term', spc.s:termname(a:2.bufnr)) call a:1.add_section('airline_term', s:spc.s:termname(a:2.bufnr))
call a:1.split() call a:1.split()
call a:1.add_section('airline_y', '') call a:1.add_section('airline_y', '')
call a:1.add_section_spaced('airline_z', sections[1]) call a:1.add_section_spaced('airline_z', s:section_z)
return 1 return 1
endif endif
endfunction endfunction
function! airline#extensions#term#inactive_apply(...) abort function! airline#extensions#term#inactive_apply(...) abort
if getbufvar(a:2.bufnr, '&buftype') ==? 'terminal' if getbufvar(a:2.bufnr, '&buftype') ==? 'terminal'
let sections = s:GetAirlineSection() call a:1.add_section_spaced('airline_a', s:section_a)
let spc = g:airline_symbols.space
call a:1.add_section_spaced('airline_a', sections[0])
call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr)) call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr))
call a:1.add_section('airline_term', spc.s:termname(a:2.bufnr)) call a:1.add_section('airline_term', s:spc.s:termname(a:2.bufnr))
call a:1.split() call a:1.split()
call a:1.add_section('airline_y', '') call a:1.add_section('airline_y', '')
call a:1.add_section_spaced('airline_z', sections[1]) call a:1.add_section_spaced('airline_z', s:section_z)
return 1 return 1
endif endif
endfunction endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/edkolev/tmuxline.vim " Plugin: https://github.com/edkolev/tmuxline.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/mbbill/undotree " Plugin: https://github.com/mbbill/undotree
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/chrisbra/unicode.vim " Plugin: https://github.com/chrisbra/unicode.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/Shougo/unite.vim " Plugin: https://github.com/Shougo/unite.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2016-2026 Jerome Reybert et al. " MIT License. Copyright (c) 2016-2021 Jerome Reybert et al.
" Plugin: https://github.com/jreybert/vimagit " Plugin: https://github.com/jreybert/vimagit
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/cdelledonne/vim-cmake " Plugin: https://github.com/cdelledonne/vim-cmake
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
-25
View File
@@ -1,25 +0,0 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al.
" Plugin: https://github.com/VimfanTPdvorak/vimodoro.vim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !exists(':RTM')
finish
endif
function! airline#extensions#vimodoro#apply(...) abort
if exists('t:vimodoro')
if &ft ==# 'vimodoro'
if exists(':PomodoroStatus')
call airline#extensions#apply_left_override('vimodoro', '%{PomodoroStatus(1)}')
else
call airline#extensions#apply_left_override('vimodoro', g:airline_section_y)
endif
endif
endif
endfunction
function! airline#extensions#vimodoro#init(ext) abort
call a:ext.add_statusline_func('airline#extensions#vimodoro#apply')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/lervag/vimtex " Plugin: https://github.com/lervag/vimtex
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/jmcantrell/vim-virtualenv " Plugin: https://github.com/jmcantrell/vim-virtualenv
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+6 -38
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
" http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html " http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html
@@ -8,14 +8,11 @@ scriptencoding utf-8
let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1) let s:show_message = get(g:, 'airline#extensions#whitespace#show_message', 1)
let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace) let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols.whitespace)
let s:default_checks = ['indent', 'trailing', 'mixed-indent-file', 'conflicts'] let s:default_checks = ['indent', 'trailing', 'mixed-indent-file', 'conflicts']
let s:searchcount = exists('*searchcount')
let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1) let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1)
let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file'], let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file'],
\ 'csv': ['indent', 'mixed-indent-file'], \ 'csv': ['indent', 'mixed-indent-file'],
\ 'mail': ['trailing'], \ 'mail': ['trailing']}
\ 'diff': ['trailing'],
\ 'gitcommit': ['trailing']}
function! s:check_mixed_indent() function! s:check_mixed_indent()
let indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0) let indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0)
@@ -54,8 +51,7 @@ endfunction
function! s:conflict_marker() function! s:conflict_marker()
" Checks for git conflict markers " Checks for git conflict markers
" space required for jj conflict marker: #2727 let annotation = '\%([0-9A-Za-z_.:]\+\)\?'
let annotation = '\%([0-9A-Za-z_.: ]\+\)\?'
if match(['rst', 'markdown', 'rmd'], &ft) >= 0 if match(['rst', 'markdown', 'rmd'], &ft) >= 0
" rst filetypes use '=======' as header " rst filetypes use '=======' as header
let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(>\{7\} '.annotation.'\)\)$' let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(>\{7\} '.annotation.'\)\)$'
@@ -65,19 +61,6 @@ function! s:conflict_marker()
return search(pattern, 'nw') return search(pattern, 'nw')
endfunction endfunction
function! s:conflict_marker_count()
if !s:searchcount
return 0
endif
" Checks for git conflict markers
" space required for jj conflict marker: #2727
let annotation = '\%([0-9A-Za-z_.: ]\+\)\?'
let pattern = '^<\{7} '.annotation. '$'
let cnt = searchcount(#{pattern: pattern, recompute: 1, timeout: 10})
return has_key(cnt, 'total') ? cnt.total : 0
endfunction
function! airline#extensions#whitespace#check() function! airline#extensions#whitespace#check()
let max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000) let max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000)
if &readonly || !&modifiable || !s:enabled || line('$') > max_lines if &readonly || !&modifiable || !s:enabled || line('$') > max_lines
@@ -125,7 +108,6 @@ function! airline#extensions#whitespace#check()
let conflicts = 0 let conflicts = 0
if index(checks, 'conflicts') > -1 if index(checks, 'conflicts') > -1
let conflicts = s:conflict_marker() let conflicts = s:conflict_marker()
let conflicts_count = s:conflict_marker_count()
endif endif
if trailing != 0 || mixed != 0 || long != 0 || !empty(mixed_file) || conflicts != 0 if trailing != 0 || mixed != 0 || long != 0 || !empty(mixed_file) || conflicts != 0
@@ -156,16 +138,10 @@ function! airline#extensions#whitespace#check()
if conflicts != 0 if conflicts != 0
let conflicts_fmt = get(g:, 'airline#extensions#whitespace#conflicts_format', '[%s]conflicts') let conflicts_fmt = get(g:, 'airline#extensions#whitespace#conflicts_format', '[%s]conflicts')
let b:airline_whitespace_check .= space.printf(conflicts_fmt, conflicts) let b:airline_whitespace_check .= space.printf(conflicts_fmt, conflicts)
if conflicts_count > 1
let b:airline_whitespace_check .= printf('*%d', conflicts_count)
endif
endif endif
endif endif
endif endif
endif endif
if airline#util#has_multiline()
return b:airline_whitespace_check
endif
return airline#util#shorten(b:airline_whitespace_check, 120, 9) return airline#util#shorten(b:airline_whitespace_check, 120, 9)
endfunction endfunction
@@ -183,16 +159,8 @@ function! airline#extensions#whitespace#toggle()
if exists("g:airline#extensions#whitespace#enabled") if exists("g:airline#extensions#whitespace#enabled")
let g:airline#extensions#whitespace#enabled = s:enabled let g:airline#extensions#whitespace#enabled = s:enabled
if s:enabled if s:enabled && match(g:airline_section_warning, '#whitespace#check') < 0
if airline#util#has_multiline() && exists('g:airline_section_warning2') let g:airline_section_warning .= airline#section#create(['whitespace'])
if match(g:airline_section_warning2, '#whitespace#check') < 0
let g:airline_section_warning2 .= airline#section#create(['whitespace'])
endif
else
if match(g:airline_section_warning, '#whitespace#check') < 0
let g:airline_section_warning .= airline#section#create(['whitespace'])
endif
endif
call airline#update_statusline() call airline#update_statusline()
endif endif
endif endif
@@ -224,7 +192,7 @@ function! s:ws_refresh()
return return
endif endif
unlet! b:airline_whitespace_check unlet! b:airline_whitespace_check
if get(g:, 'airline_skip_empty_sections', 0) || airline#util#has_multiline() if get(g:, 'airline_skip_empty_sections', 0)
exe ':AirlineRefresh!' exe ':AirlineRefresh!'
endif endif
let b:airline_ws_changedtick = b:changedtick let b:airline_ws_changedtick = b:changedtick
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" Plugin: https://github.com/wesQ3/vim-windowswap " Plugin: https://github.com/wesQ3/vim-windowswap
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+2 -2
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 fdm=marker " vim: et ts=2 sts=2 sw=2 fdm=marker
scriptencoding utf-8 scriptencoding utf-8
@@ -12,7 +12,7 @@ if exists('*wordcount')
if &filetype ==# 'tex' && exists('b:vimtex') && get(g:, 'airline#extensions#vimtex#wordcount', 0) if &filetype ==# 'tex' && exists('b:vimtex') && get(g:, 'airline#extensions#vimtex#wordcount', 0)
" We're in a TeX file and vimtex is a plugin, so use vimtex's wordcount... " We're in a TeX file and vimtex is a plugin, so use vimtex's wordcount...
if a:visual_mode_active if a:visual_mode_active
" not useful? " not useful?
return return
else else
return vimtex#misc#wordcount() return vimtex#misc#wordcount()
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+4 -19
View File
@@ -1,9 +1,9 @@
" MIT License. Copyright (c) 2017-2026 YoungHoon Rhiu et al. " MIT License. Copyright (c) 2017-2021 YoungHoon Rhiu et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM') && !has('nvim') if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM')
finish finish
endif endif
@@ -11,25 +11,10 @@ function! airline#extensions#xkblayout#status()
if exists('g:XkbSwitchLib') if exists('g:XkbSwitchLib')
let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '') let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
let keyboard_layout = get(split(keyboard_layout, '\.'), -1, '') let keyboard_layout = get(split(keyboard_layout, '\.'), -1, '')
elseif exists('*FcitxCurrentIMwithRime')
let keyboard_layout = FcitxCurrentIMwithRime()
elseif exists('*FcitxCurrentIM')
let keyboard_layout = FcitxCurrentIM()
elseif has('nvim')
try
let keyboard_layout = luaeval('require"ime".current()')
catch /.*/
try
let keyboard_layout = luaeval('require"fcitx5-ui".displayCurrentIM()')
catch /.*/
let keyboard_layout = ''
endtry
endtry
else else
let keyboard_layout = '' " substitute keyboard-us to us
let keyboard_layout = substitute(FcitxCurrentIM(), 'keyboard-', '', 'g')
endif endif
" substitute keyboard-us to us
let keyboard_layout = substitute(keyboard_layout, 'keyboard-', '', 'g')
let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'}) let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'})
if has_key(short_codes, keyboard_layout) if has_key(short_codes, keyboard_layout)
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2015-2026 Evgeny Firsov et al. " MIT License. Copyright (c) 2015-2021 Evgeny Firsov et al.
" Plugin: https://github.com/ycm-core/YouCompleteMe " Plugin: https://github.com/ycm-core/YouCompleteMe
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
-45
View File
@@ -1,45 +0,0 @@
" MIT License. Copyright (c) 2026-2026 Wu Zhenyu et al
" Plugin: https://github.com/pxwg/zhihu.nvim
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
if !airline#util#has_zhihu()
finish
endif
let s:has_percent_eval = v:version > 802 || (v:version == 802 && has("patch2854"))
function! airline#extensions#zhihu#bufname() abort
let fmod = (exists("+autochdir") && &autochdir) ? ':p' : ':.'
let name = fnamemodify(bufname('%'), fmod)
if empty(name)
return ''
endif
if match(name, 'zhihu://') == -1
return s:has_percent_eval ? '%f' : name
endif
return get(get(b:, 'article', {}), 'title', name)
endfunction
function! airline#extensions#zhihu#init(ext) abort
let prct = s:has_percent_eval ? '%' : ''
if exists("+autochdir") && &autochdir
" if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
call airline#parts#define_raw('path', '%<%{'. prct. 'pathshorten(airline#extensions#zhihu#bufname())' . prct . '}%m')
else
call airline#parts#define_raw('path', '%<%{' . prct . 'airline#extensions#zhihu#bufname()' . prct . '}%m')
endif
else
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
call airline#parts#define_raw('file', '%<%{' . prct . 'pathshorten(airline#extensions#zhihu#bufname())' . prct . '}%m')
else
call airline#parts#define_raw('file', '%<%{' . prct . 'airline#extensions#zhihu#bufname()' . prct . '}%m')
endif
endif
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2021-2026 Dmitry Geurkov (d.geurkov@gmail.com) " MIT License. Copyright (c) 2021 Dmitry Geurkov (d.geurkov@gmail.com)
" Plugin: https://github.com/troydm/zoomwintab.vim " Plugin: https://github.com/troydm/zoomwintab.vim
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
+2 -16
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 et " vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8 scriptencoding utf-8
@@ -186,13 +186,6 @@ if !exists(":def") || !airline#util#has_vim9_script()
call <sid>exec_separator({}, a:from, a:to, a:inverse, '') call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
endfunction endfunction
function! airline#highlighter#remove_separators_for_bufnr(bufnr) abort
" remove all separators, that have the buffer number in their name,
" but do not be too greedy!
let pat = 'c' . a:bufnr . '\(\D\|$\)'
call filter(s:separators, 'v:key !~# pat')
endfunction
function! s:exec_separator(dict, from, to, inverse, suffix) abort function! s:exec_separator(dict, from, to, inverse, suffix) abort
if pumvisible() if pumvisible()
return return
@@ -536,13 +529,6 @@ else
s:exec_separator({}, from, to, inverse, '') s:exec_separator({}, from, to, inverse, '')
enddef enddef
def airline#highlighter#remove_separators_for_bufnr(bufnr: string): void
# remove all separators, that have the bufnr in its name, make sure we
# have a full match here
const pat = $'c{bufnr}\(\D\|$\)'
filter(s:separators, (k, v) => k !~# pat)
enddef
def s:exec_separator(dict: dict<any>, from_arg: string, to_arg: string, inverse: bool, suffix: string): void def s:exec_separator(dict: dict<any>, from_arg: string, to_arg: string, inverse: bool, suffix: string): void
if pumvisible() if pumvisible()
return return
@@ -695,5 +681,5 @@ else
endfor endfor
endif endif
endfor endfor
enddef enddef
endif endif
+8 -29
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -129,21 +129,15 @@ function! airline#init#bootstrap()
call extend(g:airline_symbols, { call extend(g:airline_symbols, {
\ 'readonly': "\ue0a2", \ 'readonly': "\ue0a2",
\ 'whitespace': "\u2632", \ 'whitespace': "\u2632",
\ 'maxlinenr': "\u2261 ", \ 'maxlinenr': "\u2630 ",
\ 'linenr': " \ue0a1:", \ 'linenr': " \ue0a1:",
\ 'colnr': " \u2105:", \ 'colnr': " \u2105:",
\ 'branch': "\ue0a0", \ 'branch': "\ue0a0",
\ 'notexists': "\u0246", \ 'notexists': "\u0246",
\ 'dirty': "\u26a1", \ 'dirty': "\u26a1",
\ 'crypt': nr2char(0x1F512), \ 'crypt': nr2char(0x1F512),
\ 'executable': "\u2699",
\ }, 'keep') \ }, 'keep')
" Note: If "\u2046" (Ɇ) does not show up, try to use "\u2204" (∄) " Note: If "\u2046" (Ɇ) does not show up, try to use "\u2204" (∄)
if exists("*setcellwidths")
" whitespace char 0x2632 changed to double-width in Unicode 16,
" mark it single width again
call setcellwidths([[0x2632, 0x2632, 1]])
endif
elseif &encoding==?'utf-8' && !get(g:, "airline_symbols_ascii", 0) elseif &encoding==?'utf-8' && !get(g:, "airline_symbols_ascii", 0)
" Symbols for Unicode terminals " Symbols for Unicode terminals
call s:check_defined('g:airline_left_sep', "") call s:check_defined('g:airline_left_sep', "")
@@ -154,14 +148,13 @@ function! airline#init#bootstrap()
call extend(g:airline_symbols, { call extend(g:airline_symbols, {
\ 'readonly': "\u229D", \ 'readonly': "\u229D",
\ 'whitespace': "\u2632", \ 'whitespace': "\u2632",
\ 'maxlinenr': "\u2261", \ 'maxlinenr': "\u2630",
\ 'linenr': " \u33d1:", \ 'linenr': " \u33d1:",
\ 'colnr': " \u2105:", \ 'colnr': " \u2105:",
\ 'branch': "\u16A0", \ 'branch': "\u16A0",
\ 'notexists': "\u0246", \ 'notexists': "\u0246",
\ 'crypt': nr2char(0x1F512), \ 'crypt': nr2char(0x1F512),
\ 'dirty': '!', \ 'dirty': '!',
\ 'executable': "\u2699",
\ }, 'keep') \ }, 'keep')
else else
" Symbols for ASCII terminals " Symbols for ASCII terminals
@@ -179,7 +172,6 @@ function! airline#init#bootstrap()
\ 'notexists': '?', \ 'notexists': '?',
\ 'crypt': 'cr', \ 'crypt': 'cr',
\ 'dirty': '!', \ 'dirty': '!',
\ 'executable': 'x',
\ }, 'keep') \ }, 'keep')
endif endif
@@ -192,21 +184,18 @@ function! airline#init#bootstrap()
call airline#parts#define_function('crypt', 'airline#parts#crypt') call airline#parts#define_function('crypt', 'airline#parts#crypt')
call airline#parts#define_function('spell', 'airline#parts#spell') call airline#parts#define_function('spell', 'airline#parts#spell')
call airline#parts#define_function('filetype', 'airline#parts#filetype') call airline#parts#define_function('filetype', 'airline#parts#filetype')
call airline#parts#define_function('executable', 'airline#parts#executable')
call airline#parts#define('readonly', { call airline#parts#define('readonly', {
\ 'function': 'airline#parts#readonly', \ 'function': 'airline#parts#readonly',
\ 'accent': 'red', \ 'accent': 'red',
\ }) \ })
if get(g:, 'airline_section_c_only_filename',0) if get(g:, 'airline_section_c_only_filename',0)
call airline#parts#define_raw('file', '%t%m') call airline#parts#define_raw('file', '%t%m')
elseif get(g:, 'airline_stl_path_style', 'default') ==# 'gitrepo'
call airline#parts#define_function('file', 'airline#parts#gitrepo')
else else
call airline#parts#define_raw('file', airline#formatter#short_path#format('%f%m')) call airline#parts#define_raw('file', airline#formatter#short_path#format('%f%m'))
endif endif
call airline#parts#define_raw('path', '%F%m') call airline#parts#define_raw('path', '%F%m')
call airline#parts#define('linenr', { call airline#parts#define('linenr', {
\ 'raw': '%{g:airline_symbols.linenr}%2l', \ 'raw': '%{g:airline_symbols.linenr}%l',
\ 'accent': 'bold'}) \ 'accent': 'bold'})
call airline#parts#define('maxlinenr', { call airline#parts#define('maxlinenr', {
\ 'raw': '/%L%{g:airline_symbols.maxlinenr}', \ 'raw': '/%L%{g:airline_symbols.maxlinenr}',
@@ -245,7 +234,6 @@ function! airline#init#bootstrap()
call airline#parts#define_text('bookmark', '') call airline#parts#define_text('bookmark', '')
call airline#parts#define_text('capslock', '') call airline#parts#define_text('capslock', '')
call airline#parts#define_text('codeium', '')
call airline#parts#define_text('gutentags', '') call airline#parts#define_text('gutentags', '')
call airline#parts#define_text('gen_tags', '') call airline#parts#define_text('gen_tags', '')
call airline#parts#define_text('grepper', '') call airline#parts#define_text('grepper', '')
@@ -259,7 +247,7 @@ endfunction
function! airline#init#sections() function! airline#init#sections()
let spc = g:airline_symbols.space let spc = g:airline_symbols.space
if !exists('g:airline_section_a') if !exists('g:airline_section_a')
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'keymap', 'spell', 'capslock', 'xkblayout', 'iminsert', 'executable']) let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'keymap', 'spell', 'capslock', 'xkblayout', 'iminsert'])
endif endif
if !exists('g:airline_section_b') if !exists('g:airline_section_b')
if airline#util#winwidth() > 99 if airline#util#winwidth() > 99
@@ -279,7 +267,7 @@ function! airline#init#sections()
let g:airline_section_gutter = airline#section#create(['%=']) let g:airline_section_gutter = airline#section#create(['%='])
endif endif
if !exists('g:airline_section_x') if !exists('g:airline_section_x')
let g:airline_section_x = airline#section#create_right(['coc_current_function', 'bookmark', 'scrollbar', 'tagbar', 'taglist', 'vista', 'gutentags', 'gen_tags', 'omnisharp', 'grepper', 'codeium', 'filetype']) let g:airline_section_x = airline#section#create_right(['coc_current_function', 'bookmark', 'scrollbar', 'tagbar', 'taglist', 'vista', 'gutentags', 'gen_tags', 'omnisharp', 'grepper', 'filetype'])
endif endif
if !exists('g:airline_section_y') if !exists('g:airline_section_y')
let g:airline_section_y = airline#section#create_right(['ffenc']) let g:airline_section_y = airline#section#create_right(['ffenc'])
@@ -294,16 +282,7 @@ function! airline#init#sections()
if !exists('g:airline_section_error') if !exists('g:airline_section_error')
let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic-err', 'eclim', 'neomake_error_count', 'ale_error_count', 'lsp_error_count', 'nvimlsp_error_count', 'languageclient_error_count', 'coc_error_count', 'vim9lsp_error_count']) let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic-err', 'eclim', 'neomake_error_count', 'ale_error_count', 'lsp_error_count', 'nvimlsp_error_count', 'languageclient_error_count', 'coc_error_count', 'vim9lsp_error_count'])
endif endif
if airline#util#has_multiline() if !exists('g:airline_section_warning')
if !exists('g:airline_section_warning') let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'whitespace', 'coc_warning_count', 'vim9lsp_warning_count'])
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'coc_warning_count', 'vim9lsp_warning_count'])
endif
if !exists('g:airline_section_warning2')
let g:airline_section_warning2 = airline#section#create(['whitespace'])
endif
else
if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'whitespace', 'coc_warning_count', 'vim9lsp_warning_count'])
endif
endif endif
endfunction endfunction
+18 -18
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -43,24 +43,24 @@ let s:basic16 = [
if !exists(":def") || !airline#util#has_vim9_script() if !exists(":def") || !airline#util#has_vim9_script()
function! airline#msdos#round_msdos_colors(rgblist) function! airline#msdos#round_msdos_colors(rgblist)
" Check for values from MSDOS 16 color terminal " Check for values from MSDOS 16 color terminal
let best = [] let best = []
let min = 100000 let min = 100000
let list = s:basic16 let list = s:basic16
for value in list for value in list
let t = abs(value[0] - a:rgblist[0]) + let t = abs(value[0] - a:rgblist[0]) +
\ abs(value[1] - a:rgblist[1]) + \ abs(value[1] - a:rgblist[1]) +
\ abs(value[2] - a:rgblist[2]) \ abs(value[2] - a:rgblist[2])
if min > t if min > t
let min = t let min = t
let best = value let best = value
endif endif
endfor endfor
return index(s:basic16, best) return index(s:basic16, best)
endfunction endfunction
finish finish
else else
+2 -31
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -191,7 +191,7 @@ endfunction
function! airline#parts#filetype() function! airline#parts#filetype()
return (airline#util#winwidth() < 90 && strlen(&filetype) > 3) return (airline#util#winwidth() < 90 && strlen(&filetype) > 3)
\ ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? "\u2026" : '>') \ ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>')
\ : &filetype \ : &filetype
endfunction endfunction
@@ -206,32 +206,3 @@ function! airline#parts#ffenc()
return &fenc.bomb.noeolf.ff return &fenc.bomb.noeolf.ff
endif endif
endfunction endfunction
function! airline#parts#executable()
if exists("*getfperm") && getfperm(bufname('%')) =~ 'x'
return g:airline_symbols.executable
else
return ''
endif
endfunction
function! airline#parts#gitrepo() abort
if !exists('*FugitiveFind')
return expand('%:p')
endif
let toplevel = FugitiveFind(':/', bufnr(''))
if empty(toplevel)
return expand('%:p')
endif
" Remove trailing separator
let toplevel = substitute(toplevel, '[/\\]$', '', '')
let reponame = fnamemodify(toplevel, ':t')
let fullpath = resolve(expand('%:p'))
" Get file path relative to repo root
if fullpath[:len(toplevel)-1] ==# toplevel
let relpath = fullpath[len(toplevel)+1:]
else
let relpath = expand('%:t')
endif
return reponame .. ':' .. relpath .. (&modified ? '[+]' : '')
endfunction
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 et " vim: et ts=2 sts=2 sw=2 et
scriptencoding utf-8 scriptencoding utf-8
+1 -1
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
" vim: et ts=2 sts=2 sw=2 tw=80 " vim: et ts=2 sts=2 sw=2 tw=80
scriptencoding utf-8 scriptencoding utf-8
+1 -19
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
scriptencoding utf-8 scriptencoding utf-8
@@ -149,18 +149,6 @@ function! airline#util#has_fugitive()
return s:has_fugitive return s:has_fugitive
endfunction endfunction
function! airline#util#has_zhihu()
if !has('nvim')
return 0
endif
try
call v:lua.require'zhihu'.setup()
catch
return 0
endtry
return 1
endfunction
function! airline#util#has_gina() function! airline#util#has_gina()
if !exists("s:has_gina") if !exists("s:has_gina")
let s:has_gina = (exists(':Gina') && v:version >= 800) let s:has_gina = (exists(':Gina') && v:version >= 800)
@@ -250,9 +238,3 @@ function! airline#util#has_vim9_script()
\ get(g:, "airline_experimental", 0)) \ get(g:, "airline_experimental", 0))
endfunction endfunction
function! airline#util#has_multiline()
" Returns true, if Vim supports multiline statusline (Vim 9.2.0083)
return (exists("+statuslineopt") &&
\ get(g:, "airline_multiline", 0))
endfunction
+78 -188
View File
@@ -1,4 +1,4 @@
*airline.txt* Lean and mean status/tabline that's light as air *airline.txt* Lean and mean status/tabline that's light as air
*airline* *vim-airline* *airline* *vim-airline*
_ _ _ _ ~ _ _ _ _ ~
__ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~ __ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~
@@ -6,7 +6,7 @@
\ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~ \ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~
\_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~ \_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~
~ ~
Version: 0.12 Version: 0.11
============================================================================= =============================================================================
CONTENTS *airline-contents* CONTENTS *airline-contents*
@@ -57,8 +57,6 @@ this: >
+---------------------------------------------------------------------------+ +---------------------------------------------------------------------------+
| A | B | C X | Y | Z | [...] | | A | B | C X | Y | Z | [...] |
+---------------------------------------------------------------------------+ +---------------------------------------------------------------------------+
| [...] |
+---------------------------------------------------------------------------+
The statusline is the colored line at the bottom, which contains the sections The statusline is the colored line at the bottom, which contains the sections
(possibly in different colors): (possibly in different colors):
@@ -75,16 +73,15 @@ section meaning (example)~
Z current position in the file Z current position in the file
percentage % ln: current line/number of lines ☰ cn: column percentage % ln: current line/number of lines ☰ cn: column
So this: 10% ln:10/100☰ cn:20 So this: 10% ln:10/100☰ cn:20
means: > means: >
10% - 10 percent 10% - 10 percent
ln: - line number is ln: - line number is
10/100☰ - 10 of 100 total lines 10/100☰ - 10 of 100 total lines
cn: - column number is cn: - column number is
20 - 20 20 - 20
< <
[...] additional sections (warning/errors/statistics) [...] additional sections (warning/errors/statistics)
from external plugins (e.g. YCM/syntastic/...) from external plugins (e.g. YCM/syntastic/...)
Can be shown on a second line optionally.
For a better look, those sections can be colored differently, depending on For a better look, those sections can be colored differently, depending on
the mode and whether the current file is 'modified' the mode and whether the current file is 'modified'
@@ -127,9 +124,6 @@ values):
" Currently: Enable Vim9 Script implementation " Currently: Enable Vim9 Script implementation
let g:airline_experimental = 1 let g:airline_experimental = 1
* enable multiline feature (requires Vim 9.2.0083) >
let g:airline_multiline = 1
* the separator used on the left side > * the separator used on the left side >
let g:airline_left_sep='>' let g:airline_left_sep='>'
< <
@@ -272,9 +266,9 @@ values):
" disable per-buffer " disable per-buffer
let b:airline_disable_statusline = 1 let b:airline_disable_statusline = 1
< This setting disables setting the 'statusline' option. This allows to use < This setting disables setting the 'statusline' option. This allows to use
e.g. the tabline extension (|airline-tabline|) but keep the 'statusline' e.g. the tabline extension (|airline-tabline|) but keep the 'statusline'
option totally configurable by a custom configuration. option totally configurable by a custom configuration.
* Do not draw separators for empty sections (only for the active window) > * Do not draw separators for empty sections (only for the active window) >
let g:airline_skip_empty_sections = 1 let g:airline_skip_empty_sections = 1
< <
@@ -312,12 +306,6 @@ values):
* Display a short path in statusline: > * Display a short path in statusline: >
let g:airline_stl_path_style = 'short' let g:airline_stl_path_style = 'short'
> >
* Display the file path relative to the git repository toplevel directory: >
let g:airline_stl_path_style = 'gitrepo'
<
This shows the path as `reponame:path/to/file` instead of the full path.
Requires fugitive plugin. Falls back to the full path for non-git files.
* Display a only file name in statusline: > * Display a only file name in statusline: >
let g:airline_section_c_only_filename = 1 let g:airline_section_c_only_filename = 1
> >
@@ -386,7 +374,6 @@ its contents. >
let g:airline_symbols.colnr = ' ㏇:' let g:airline_symbols.colnr = ' ㏇:'
let g:airline_symbols.colnr = ' ℅:' let g:airline_symbols.colnr = ' ℅:'
let g:airline_symbols.crypt = '🔒' let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.executable = '⚙'
let g:airline_symbols.linenr = '☰' let g:airline_symbols.linenr = '☰'
let g:airline_symbols.linenr = ' ␊:' let g:airline_symbols.linenr = ' ␊:'
let g:airline_symbols.linenr = ' ␤:' let g:airline_symbols.linenr = ' ␤:'
@@ -440,7 +427,7 @@ window.
> >
variable names default contents variable names default contents
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
let g:airline_section_a (mode, crypt, paste, spell, iminsert, executable) let g:airline_section_a (mode, crypt, paste, spell, iminsert)
let g:airline_section_b (hunks, branch)[*] let g:airline_section_b (hunks, branch)[*]
let g:airline_section_c (bufferline or filename, readonly) let g:airline_section_c (bufferline or filename, readonly)
let g:airline_section_gutter (csv) let g:airline_section_gutter (csv)
@@ -451,7 +438,6 @@ window.
languageclient_error_count) languageclient_error_count)
let g:airline_section_warning (ycm_warning_count, syntastic-warn, let g:airline_section_warning (ycm_warning_count, syntastic-warn,
languageclient_warning_count, whitespace) languageclient_warning_count, whitespace)
let g:airline_section_warning2 (whitespace) [optional]
" [*] This section needs at least the fugitive extension or else " [*] This section needs at least the fugitive extension or else
" it will remain empty " it will remain empty
@@ -512,19 +498,19 @@ ale <https://github.com/dense-analysis/ale>
let g:airline#extensions#ale#enabled = 1 let g:airline#extensions#ale#enabled = 1
* ale error_symbol > * ale error_symbol >
let g:airline#extensions#ale#error_symbol = 'E:' let airline#extensions#ale#error_symbol = 'E:'
< <
* ale warning > * ale warning >
let g:airline#extensions#ale#warning_symbol = 'W:' let airline#extensions#ale#warning_symbol = 'W:'
* ale show_line_numbers > * ale show_line_numbers >
let g:airline#extensions#ale#show_line_numbers = 1 let airline#extensions#ale#show_line_numbers = 1
< <
* ale open_lnum_symbol > * ale open_lnum_symbol >
let g:airline#extensions#ale#open_lnum_symbol = '(L' let airline#extensions#ale#open_lnum_symbol = '(L'
< <
* ale close_lnum_symbol > * ale close_lnum_symbol >
let g:airline#extensions#ale#close_lnum_symbol = ')' let airline#extensions#ale#close_lnum_symbol = ')'
------------------------------------- *airline-battery* ------------------------------------- *airline-battery*
vim-battery <https://github.com/lambdalisue/battery.vim> vim-battery <https://github.com/lambdalisue/battery.vim>
@@ -657,26 +643,20 @@ coc <https://github.com/neoclide/coc.nvim>
let g:airline#extensions#coc#enabled = 1 let g:airline#extensions#coc#enabled = 1
< <
* change error symbol: > * change error symbol: >
let g:airline#extensions#coc#error_symbol = 'E:' let airline#extensions#coc#error_symbol = 'E:'
< <
* change warning symbol: > * change warning symbol: >
let g:airline#extensions#coc#warning_symbol = 'W:' let airline#extensions#coc#warning_symbol = 'W:'
< <
* enable/disable coc status display > * enable/disable coc status display >
let g:airline#extensions#coc#show_coc_status = 1 g:airline#extensions#coc#show_coc_status = 1
* change the error format (%C - error count, %L - line number): > * change the error format (%C - error count, %L - line number): >
let g:airline#extensions#coc#stl_format_err = '%C(L%L)' let airline#extensions#coc#stl_format_err = '%C(L%L)'
< <
* change the warning format (%C - error count, %L - line number): > * change the warning format (%C - error count, %L - line number): >
let g:airline#extensions#coc#stl_format_warn = '%C(L%L)' let airline#extensions#coc#stl_format_warn = '%C(L%L)'
< <
------------------------------------- *airline-codeium*
vim-codeium <https://github.com/Exafunction/codeium.vim>
* enable/disable codeium.vim integration >
let g:airline#extensions#codeium#enabled = 1
------------------------------------- *airline-commandt* ------------------------------------- *airline-commandt*
command-t <https://github.com/wincent/command-t> command-t <https://github.com/wincent/command-t>
@@ -774,7 +754,7 @@ you can use.
< <
* configure the layout to not use %(%) grouping items in the statusline. * configure the layout to not use %(%) grouping items in the statusline.
Try setting this to zero, if you notice bleeding color artifacts > Try setting this to zero, if you notice bleeding color artifacts >
let g:airline#extensions#default#section_use_groupitems = 1 let airline#extensions#default#section_use_groupitems = 1
< <
------------------------------------- *airline-denite* ------------------------------------- *airline-denite*
Denite <https://github.com/Shougo/denite.nvim> Denite <https://github.com/Shougo/denite.nvim>
@@ -796,7 +776,7 @@ eclim <https://eclim.org>
|airline-syntastic| extension. > |airline-syntastic| extension. >
let g:airline#extensions#eclim#enabled = 1 let g:airline#extensions#eclim#enabled = 1
------------------------------------- *airline-fern* ------------------------------------- *airline-fern*
fern.vim <https://github.com/lambdalisue/fern.vim> fern.vim <https://github.com/lambdalisue/fern.vim>
Airline displays the fern.vim specific statusline. Airline displays the fern.vim specific statusline.
@@ -903,19 +883,19 @@ LanguageClient <https://github.com/autozimu/LanguageClient-neovim>
let g:airline#extensions#languageclient#enabled = 1 let g:airline#extensions#languageclient#enabled = 1
* languageclient error_symbol > * languageclient error_symbol >
let g:airline#extensions#languageclient#error_symbol = 'E:' let airline#extensions#languageclient#error_symbol = 'E:'
< <
* languageclient warning_symbol > * languageclient warning_symbol >
let g:airline#extensions#languageclient#warning_symbol = 'W:' let airline#extensions#languageclient#warning_symbol = 'W:'
* languageclient show_line_numbers > * languageclient show_line_numbers >
let g:airline#extensions#languageclient#show_line_numbers = 1 let airline#extensions#languageclient#show_line_numbers = 1
< <
* languageclient open_lnum_symbol > * languageclient open_lnum_symbol >
let g:airline#extensions#languageclient#open_lnum_symbol = '(L' let airline#extensions#languageclient#open_lnum_symbol = '(L'
< <
* languageclient close_lnum_symbol > * languageclient close_lnum_symbol >
let g:airline#extensions#languageclient#close_lnum_symbol = ')' let airline#extensions#languageclient#close_lnum_symbol = ')'
------------------------------------- *airline-localsearch* ------------------------------------- *airline-localsearch*
localsearch <https://github.com/mox-mox/vim-localsearch> localsearch <https://github.com/mox-mox/vim-localsearch>
@@ -935,25 +915,25 @@ lsp <https://github.com/prabirshrestha/vim-lsp>
let g:airline#extensions#lsp#enabled = 1 let g:airline#extensions#lsp#enabled = 1
* lsp error_symbol > * lsp error_symbol >
let g:airline#extensions#lsp#error_symbol = 'E:' let airline#extensions#lsp#error_symbol = 'E:'
< <
* lsp warning > * lsp warning >
let g:airline#extensions#lsp#warning_symbol = 'W:' let airline#extensions#lsp#warning_symbol = 'W:'
* lsp show_line_numbers > * lsp show_line_numbers >
let g:airline#extensions#lsp#show_line_numbers = 1 let airline#extensions#lsp#show_line_numbers = 1
< <
* lsp open_lnum_symbol > * lsp open_lnum_symbol >
let g:airline#extensions#lsp#open_lnum_symbol = '(L' let airline#extensions#lsp#open_lnum_symbol = '(L'
< <
* lsp close_lnum_symbol > * lsp close_lnum_symbol >
let g:airline#extensions#lsp#close_lnum_symbol = ')' let airline#extensions#lsp#close_lnum_symbol = ')'
< <
* lsp progress skip time * lsp progress skip time
Suppresses the frequency of status line updates. Suppresses the frequency of status line updates.
Prevents heavy operation when using a language server that sends frequent progress notifications. Prevents heavy operation when using a language server that sends frequent progress notifications.
Set 0 to disable. > Set 0 to disable. >
let g:airline#extensions#lsp#progress_skip_time = 0.3 (default) g:airline#extensions#lsp#progress_skip_time = 0.3 (default)
< <
------------------------------------- *airline-neomake* ------------------------------------- *airline-neomake*
@@ -963,23 +943,11 @@ neomake <https://github.com/neomake/neomake>
let g:airline#extensions#neomake#enabled = 1 let g:airline#extensions#neomake#enabled = 1
* neomake error_symbol > * neomake error_symbol >
let g:airline#extensions#neomake#error_symbol = 'E:' let airline#extensions#neomake#error_symbol = 'E:'
< <
* neomake warning > * neomake warning >
let g:airline#extensions#neomake#warning_symbol = 'W:' let airline#extensions#neomake#warning_symbol = 'W:'
< <
------------------------------------- *airline-nerdfont*
NerdFont <https://github.com/lambdalisue/nerdfont.vim>
* enable/disable nerdfont integration >
let g:airline#extensions#nerdfont#enabled = 1
< default: 1
* nerdfont's tabline formatter >
let g:airline#extensions#tabline#formatter = 'nerdfont'
let g:airline#extensions#tabline#formatters#nerdfont#formatter = 'default'
< default: 'default'
------------------------------------- *airline-nerdtree* ------------------------------------- *airline-nerdtree*
NerdTree <https://github.com/preservim/nerdtree.git> NerdTree <https://github.com/preservim/nerdtree.git>
@@ -1004,19 +972,19 @@ nvimlsp <https://github.com/neovim/nvim-lsp>
let g:airline#extensions#nvimlsp#enabled = 1 let g:airline#extensions#nvimlsp#enabled = 1
* nvimlsp error_symbol > * nvimlsp error_symbol >
let g:airline#extensions#nvimlsp#error_symbol = 'E:' let airline#extensions#nvimlsp#error_symbol = 'E:'
< <
* nvimlsp warning - needs v:lua.vim.diagnostic.get * nvimlsp warning - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#warning_symbol = 'W:' let airline#extensions#nvimlsp#warning_symbol = 'W:'
* nvimlsp show_line_numbers - needs v:lua.vim.diagnostic.get * nvimlsp show_line_numbers - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#show_line_numbers = 1 let airline#extensions#nvimlsp#show_line_numbers = 1
* nvimlsp open_lnum_symbol - needs v:lua.vim.diagnostic.get * nvimlsp open_lnum_symbol - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#open_lnum_symbol = '(L' let airline#extensions#nvimlsp#open_lnum_symbol = '(L'
* nvimlsp close_lnum_symbol - needs v:lua.vim.diagnostic.get * nvimlsp close_lnum_symbol - needs v:lua.vim.diagnostic.get
let g:airline#extensions#nvimlsp#close_lnum_symbol = ')' let airline#extensions#nvimlsp#close_lnum_symbol = ')'
------------------------------------- *airline-obsession* ------------------------------------- *airline-obsession*
vim-obsession <https://github.com/tpope/vim-obsession> vim-obsession <https://github.com/tpope/vim-obsession>
@@ -1024,11 +992,8 @@ vim-obsession <https://github.com/tpope/vim-obsession>
* enable/disable vim-obsession integration > * enable/disable vim-obsession integration >
let g:airline#extensions#obsession#enabled = 1 let g:airline#extensions#obsession#enabled = 1
* set marked window indicator string when recording session> * set marked window indicator string >
let g:airline#extensions#obsession#indicator_text = '$' let g:airline#extensions#obsession#indicator_text = '$'
* set marked window indicator string when recording session is paused>
let g:airline#extensions#obsession#indicator_text_paused = ''
< <
------------------------------------- *airline-omnisharp* ------------------------------------- *airline-omnisharp*
OmniSharp <https://github.com/OmniSharp/omnisharp-vim> OmniSharp <https://github.com/OmniSharp/omnisharp-vim>
@@ -1063,7 +1028,7 @@ promptline <https://github.com/edkolev/promptline.vim>
* configure the path to the snapshot .sh file. Mandatory option. The created * configure the path to the snapshot .sh file. Mandatory option. The created
file should be sourced by the shell on login > file should be sourced by the shell on login >
" in .vimrc " in .vimrc
let g:airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh" airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
" in .bashrc/.zshrc " in .bashrc/.zshrc
[ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh [ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh
@@ -1072,10 +1037,10 @@ promptline <https://github.com/edkolev/promptline.vim>
let g:airline#extensions#promptline#enabled = 0 let g:airline#extensions#promptline#enabled = 0
< <
* configure which mode colors should be used in prompt > * configure which mode colors should be used in prompt >
let g:airline#extensions#promptline#color_template = 'normal' (default) let airline#extensions#promptline#color_template = 'normal' (default)
let g:airline#extensions#promptline#color_template = 'insert' let airline#extensions#promptline#color_template = 'insert'
let g:airline#extensions#promptline#color_template = 'visual' let airline#extensions#promptline#color_template = 'visual'
let g:airline#extensions#promptline#color_template = 'replace' let airline#extensions#promptline#color_template = 'replace'
< <
------------------------------------- *airline-quickfix* ------------------------------------- *airline-quickfix*
The quickfix extension is a simple built-in extension which determines The quickfix extension is a simple built-in extension which determines
@@ -1126,16 +1091,16 @@ syntastic <https://github.com/vim-syntastic/syntastic>
adjusting the statusline. adjusting the statusline.
* syntastic error_symbol > * syntastic error_symbol >
let g:airline#extensions#syntastic#error_symbol = 'E:' let airline#extensions#syntastic#error_symbol = 'E:'
< <
* syntastic statusline error format (see |syntastic_stl_format|) > * syntastic statusline error format (see |syntastic_stl_format|) >
let g:airline#extensions#syntastic#stl_format_err = '%E{[%fe(#%e)]}' let airline#extensions#syntastic#stl_format_err = '%E{[%fe(#%e)]}'
* syntastic warning > * syntastic warning >
let g:airline#extensions#syntastic#warning_symbol = 'W:' let airline#extensions#syntastic#warning_symbol = 'W:'
< <
* syntastic statusline warning format (see |syntastic_stl_format|) > * syntastic statusline warning format (see |syntastic_stl_format|) >
let g:airline#extensions#syntastic#stl_format_warn = '%W{[%fw(#%w)]}' let airline#extensions#syntastic#stl_format_warn = '%W{[%fw(#%w)]}'
< <
------------------------------------- *airline-tabline* ------------------------------------- *airline-tabline*
Note: If you're using the ctrlspace tabline only the option marked with (c) Note: If you're using the ctrlspace tabline only the option marked with (c)
@@ -1143,11 +1108,6 @@ are supported!
* enable/disable enhanced tabline. (c) > * enable/disable enhanced tabline. (c) >
let g:airline#extensions#tabline#enabled = 0 let g:airline#extensions#tabline#enabled = 0
<
* enable/disable displaying buffers with a single tab. (c) >
let g:airline#extensions#tabline#show_buffers = 1
Note: With `show_buffers = 0`, tabs behave like the vim default tabline.
* enable/disable displaying open splits per tab (only when tabs are opened) > * enable/disable displaying open splits per tab (only when tabs are opened) >
let g:airline#extensions#tabline#show_splits = 1 let g:airline#extensions#tabline#show_splits = 1
@@ -1155,9 +1115,12 @@ are supported!
* switch position of buffers and tabs on splited tabline (c) * switch position of buffers and tabs on splited tabline (c)
(only supported for ctrlspace plugin). > (only supported for ctrlspace plugin). >
let g:airline#extensions#tabline#switch_buffers_and_tabs = 0 let g:airline#extensions#tabline#switch_buffers_and_tabs = 0
<
* enable/disable displaying buffers with a single tab. (c) >
let g:airline#extensions#tabline#show_buffers = 1
Note: If you are using Neovim or Vim with at least v9.2.0338, then you can Note: If you are using neovim (has('tablineat') = 1), then you can click
click on the tabline with the left mouse button to switch to that buffer, and on the tabline with the left mouse button to switch to that buffer, and
with the middle mouse button to delete that buffer. with the middle mouse button to delete that buffer.
* if you want to show the current active buffer like this: * if you want to show the current active buffer like this:
@@ -1171,8 +1134,6 @@ with the middle mouse button to delete that buffer.
* enable/disable displaying tabs, regardless of number. (c) > * enable/disable displaying tabs, regardless of number. (c) >
let g:airline#extensions#tabline#show_tabs = 1 let g:airline#extensions#tabline#show_tabs = 1
Note: To display only tabs and no buffers, set `show_buffers=0` in addition.
* enable/disable displaying number of tabs in the right side (c) > * enable/disable displaying number of tabs in the right side (c) >
let g:airline#extensions#tabline#show_tab_count = 1 let g:airline#extensions#tabline#show_tab_count = 1
@@ -1225,7 +1186,7 @@ Note: Not displayed if the number of tabs is less than 1
let g:airline#extensions#tabline#overflow_marker = '…' let g:airline#extensions#tabline#overflow_marker = '…'
* always show current tabpage/buffer first > * always show current tabpage/buffer first >
let g:airline#extensions#tabline#current_first = 1 let airline#extensions#tabline#current_first = 1
< default: 0 < default: 0
* enable/disable displaying index of the buffer. * enable/disable displaying index of the buffer.
@@ -1236,7 +1197,7 @@ Note: Not displayed if the number of tabs is less than 1
In default mode, when the variable is 1 Up to 10 mappings will be In default mode, when the variable is 1 Up to 10 mappings will be
exposed. Note: As 10 and 1 have same prefix, we use 0 to replace 10. So, exposed. Note: As 10 and 1 have same prefix, we use 0 to replace 10. So,
<leader>0 will jump to tenth buffer. Those mappings are not automatically <leader>0 will jump to tenth buffer. Those mappings are not automatically
created, vim-airline just exposes those `<Plug>AirlineSelectTab` keys created, vim-airline just exposes those `<Plug>AirlineSeelctTab` keys
for you to map to a convenient key > for you to map to a convenient key >
let g:airline#extensions#tabline#buffer_idx_mode = 1 let g:airline#extensions#tabline#buffer_idx_mode = 1
@@ -1279,14 +1240,9 @@ Note: Not displayed if the number of tabs is less than 1
This matches that of the numbering scheme of |:buffers|, letting This matches that of the numbering scheme of |:buffers|, letting
`<Plug>AirlineSelectTab67` to reference buffer 67. `<Plug>AirlineSelectTab67` to reference buffer 67.
Note: To avoid ambiguity, there won't be Note: To avoid ambiguity, there won't be <Plug>AirlineSelectTab1
<Plug>AirlineSelectTab1 - <Plug>AirlineSelectTab9 - <Plug>AirlineSelectTab9 maps in mode 2 and 3.
maps in mode 2 and 3.
To go to the very first/last buffer, you can use: >
nmap <Leader>FT <Plug>AirlineSelectFirstTab
nmap <Leader>LT <Plug>AirlineSelectLastTab
<
Note: Mappings will be ignored for filetypes that match Note: Mappings will be ignored for filetypes that match
`g:airline#extensions#tabline#keymap_ignored_filetypes`. `g:airline#extensions#tabline#keymap_ignored_filetypes`.
@@ -1432,7 +1388,7 @@ Note: Not displayed if the number of tabs is less than 1
* configure pattern to be ignored on BufAdd autocommand > * configure pattern to be ignored on BufAdd autocommand >
" fixes unnecessary redraw, when e.g. opening Gundo window " fixes unnecessary redraw, when e.g. opening Gundo window
let g:airline#extensions#tabline#ignore_bufadd_pat = let airline#extensions#tabline#ignore_bufadd_pat =
\ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree' \ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree'
Note: Enabling this extension will modify 'showtabline' and 'guioptions'. Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
@@ -1440,67 +1396,32 @@ Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
* enable Refresh of tabline buffers on |BufAdd| autocommands * enable Refresh of tabline buffers on |BufAdd| autocommands
(set this to one, if you note 'AirlineTablineRefresh', however, this (set this to one, if you note 'AirlineTablineRefresh', however, this
won't update airline on |:badd| commands) > won't update airline on |:badd| commands) >
let g:airline#extensions#tabline#disable_refresh = 0 let airline#extensions#tabline#disable_refresh = 0
* preserve windows when closing a buffer from the bufferline * preserve windows when closing a buffer from the bufferline
(neovim specific, only works with buffers and not real tabs, default: 0) > (neovim specific, only works with buffers and not real tabs, default: 0) >
let g:airline#extensions#tabline#middle_click_preserves_windows = 1 let airline#extensions#tabline#middle_click_preserves_windows = 1
< <
------------------------------------- *airline-tabline-hlgroups* *airline-tabline-hlgroups*
When the tabline is enabled, vim-airline exposes the following highlighting When the tabline is enabled, vim-airline exposes the following highlighting
groups: groups:
airline_tab: default highlighting group for the tabline airline_tab: default highlighting group for the tabline
airline_tab_right: idem, but for the right side of the tabline airline_tab_right: idem, but for the right side of the tabline
airline_tabsel: highlighting group of the selected item airline_tabsel: highlighting group of the selected item
airline_tabsel_right: idem, but for the right side of the tabline airline_tabsel_right: idem, but for the right side of the tabline
airline_tabmod: highlighting group for a 'modified' buffer airline_tabmod: highlighting group for a 'modified' buffer
airline_tabmod_right: idem, but on the right side airline_tabmod_right: idem, but on the right side
airline_tabmod_unsel: unselected tab with modified buffer airline_tabmod_unsel: unselected tab with modified buffer
airline_tabmod_unsel_right: (unused) airline_tabmod_unsel_right: (unused)
airline_tabtype: label group used by ctrlspace and tabws airline_tabtype: label group used by ctrlspace and tabws
airline_tabfill: highlighting group for the filler space airline_tabfill: highlighting group for the filler space
airline_tablabel: highlighting group for the label airline_tablabel: highlighting group for the label
airline_tablabel_right: highlighting group for the label on the right side airline_tablabel_right: highlighting group for the label on the right side
airline_tabhid: hidden buffer airline_tabhid: hidden buffer
airline_tabhid_right: idem, but on the right airline_tabhid_right: idem, but on the right
------------------------------------- *airline-tabpanel*
Vim supports a vertical tab panel (see |tabpanel|) that displays tab pages
in a vertical side column. This extension provides airline-styled formatting
for the tab panel. Requires a Vim version that supports 'tabpanel' (at least
Vim >9.1.1391).
* enable/disable tabpanel integration >
let g:airline#extensions#tabpanel#enabled = 1
< default: 0
* configure the width of the tab panel (in columns) >
let g:airline#extensions#tabpanel#columns = 20
< default: 20
* configure the alignment of the tab panel >
let g:airline#extensions#tabpanel#align = 'left'
< default: '' (uses Vim's default)
* reserve a one-column scrollbar in the tabpanel showing the current scroll
position; clicking or dragging the thumb jumps to that position (requires
Vim patch 9.2.386) >
let g:airline#extensions#tabpanel#scrollbar = 1
< default: 1
Note: The tabpanel extension reuses the tabline highlight groups
(|airline-tabline-hlgroups|) and respects the tabline tab number settings
(|g:airline#extensions#tabline#show_tab_nr|,
|g:airline#extensions#tabline#tab_nr_type|,
|g:airline#extensions#tabline#tabnr_formatter|).
Note: Starting with Vim v9.2.0386 Vim adds mouse support for the tabpanel
and each tab entry is clickable: a left mouse click switches to the tab and a
middle click closes it, however 'mouse' setting needs to be enabled.
------------------------------------- *airline-scrollbar* ------------------------------------- *airline-scrollbar*
Displays an Ascii Scrollbar for active windows with a width > 200. Displays an Ascii Scrollbar for active windows with a width > 200.
@@ -1525,14 +1446,6 @@ Vim-Airline comes with a small extension for the styling the builtin
let g:airline#extensions#term#enabled = 1 let g:airline#extensions#term#enabled = 1
default: 1 default: 1
* Use custom section_z >
let g:airline_section_z_term = '%p%% ☰ %l/%L, %v'
default: airline#section#create(['linenr', 'maxlinenr'])
* Use custom section_a >
let g:airline_section_a_term = '%p%% ☰ %l/%L, %v'
default: airline#section#create_left(['terminal', 'tmode'])
------------------------------------- *airline-tabws* ------------------------------------- *airline-tabws*
vim-tabws <https://github.com/s1341/vim-tabws> vim-tabws <https://github.com/s1341/vim-tabws>
@@ -1573,15 +1486,15 @@ tmuxline <https://github.com/edkolev/tmuxline.vim>
let g:airline#extensions#tmuxline#enabled = 0 let g:airline#extensions#tmuxline#enabled = 0
< <
* configure which mode colors should be used in tmux statusline > * configure which mode colors should be used in tmux statusline >
let g:airline#extensions#tmuxline#color_template = 'normal' (default) let airline#extensions#tmuxline#color_template = 'normal' (default)
let g:airline#extensions#tmuxline#color_template = 'insert' let airline#extensions#tmuxline#color_template = 'insert'
let g:airline#extensions#tmuxline#color_template = 'visual' let airline#extensions#tmuxline#color_template = 'visual'
let g:airline#extensions#tmuxline#color_template = 'replace' let airline#extensions#tmuxline#color_template = 'replace'
< <
* if specified, setting this option will trigger writing to the file whenever the * 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 airline theme is applied, i.e. when :AirlineTheme is executed and on vim
startup > startup >
let g:airline#extensions#tmuxline#snapshot_file = airline#extensions#tmuxline#snapshot_file =
\ "~/.tmux-statusline-colors.conf" \ "~/.tmux-statusline-colors.conf"
< <
------------------------------------- *airline-undotree* ------------------------------------- *airline-undotree*
@@ -1604,13 +1517,13 @@ Unite <https://github.com/Shougo/unite.vim>
vim9lsp <https://github.com/yegappan/lsp> vim9lsp <https://github.com/yegappan/lsp>
* enable/disable vim9lsp integration > * enable/disable vim9lsp integration >
let g:airline#extensions#vim9lsp#enabled = 1 let airline#extensions#vim9lsp#enabled = 1
< <
* vim9lsp error_symbol > * vim9lsp error_symbol >
let g:airline#extensions#vim9lsp#error_symbol = 'E:' let airline#extensions#vim9lsp#error_symbol = 'E:'
< <
* vim9lsp warning > * vim9lsp warning >
let g:airline#extensions#vim9lsp#warning_symbol = 'W:' let airline#extensions#vim9lsp#warning_symbol = 'W:'
< <
------------------------------------- *airline-vimagit* ------------------------------------- *airline-vimagit*
vimagit <https://github.com/jreybert/vimagit> vimagit <https://github.com/jreybert/vimagit>
@@ -1624,11 +1537,6 @@ Vim-CMake <https://github.com/cdelledonne/vim-cmake>
* enable/disable Vim-CMake integration > * enable/disable Vim-CMake integration >
let g:airline#extensions#vimcmake#enabled = 1 let g:airline#extensions#vimcmake#enabled = 1
< <
------------------------------------- *airline-vimodoro*
Vimodoro <https://github.com/VimfanTPdvorak/vimodoro>
No configuration available.
------------------------------------- *airline-vimtex* ------------------------------------- *airline-vimtex*
vimtex <https://github.com/lervag/vimtex> vimtex <https://github.com/lervag/vimtex>
@@ -1745,7 +1653,7 @@ vista.vim <https://github.com/liuchengxu/vista.vim>
* configure, which filetypes have special treatment of /* */ comments, * configure, which filetypes have special treatment of /* */ comments,
matters for mix-indent-file algorithm: > matters for mix-indent-file algorithm: >
let g:airline#extensions#c_like_langs = let airline#extensions#c_like_langs =
\ ['arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php'] \ ['arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php']
< <
* disable whitespace checking for an individual buffer > * disable whitespace checking for an individual buffer >
@@ -1844,11 +1752,7 @@ details on how to use it, see e.g. <https://github.com/ierton/xkb-switch>
let g:XkbSwitchLib = '/usr/local/lib/libInputSourceSwitcher.dylib' let g:XkbSwitchLib = '/usr/local/lib/libInputSourceSwitcher.dylib'
< <
Linux with fcitx (Install https://github.com/fcitx/fcitx5): Linux with fcitx (Install https://github.com/fcitx/fcitx5):
Install https://github.com/lilydjwg/fcitx.vim to get `FcitxCurrentIM()` Install https://github.com/lilydjwg/fcitx.vim) to get `FcitxCurrentIM()`
or https://github.com/black-desk/fcitx5-ui.nvim to get
`luaeval('require"fcitx5-ui".displayCurrentIM()')`
or https://github.com/Freed-Wu/ime.nvim to get
`luaeval('require"ime".current()')`
------------------------------------- *airline-xtabline* ------------------------------------- *airline-xtabline*
xtabline <https://github.com/mg979/vim-xtabline> xtabline <https://github.com/mg979/vim-xtabline>
@@ -1948,19 +1852,6 @@ default: '> Zoomed'
default: '' default: ''
------------------------------------- *airline-zhihu*
zhihu.nvim <https://github.com/pxwg/zhihu.nvim>
* enable/disable zhihu integration >
let g:airline#extensions#zhihu#enabled = 1
< default: 1
* zhihu's tabline formatter >
let g:airline#extensions#tabline#formatter = 'zhihu'
let g:airline#extensions#tabline#formatters#nerdfont#formatter = 'default'
< default: 'default'
============================================================================= =============================================================================
ADVANCED CUSTOMIZATION *airline-advanced-customization* ADVANCED CUSTOMIZATION *airline-advanced-customization*
@@ -2000,7 +1891,6 @@ The following list of parts are predefined by vim-airline.
* `iminsert` displays the current insert method * `iminsert` displays the current insert method
* `paste` displays the paste indicator * `paste` displays the paste indicator
* `crypt` displays the crypted indicator * `crypt` displays the crypted indicator
* `exectuable` displays the executable indicator
* `spell` displays the spell indicator * `spell` displays the spell indicator
* `filetype` displays the file type * `filetype` displays the file type
* `readonly` displays the read only indicator * `readonly` displays the read only indicator
@@ -2251,7 +2141,7 @@ Contributions and pull requests are welcome.
============================================================================= =============================================================================
LICENSE *airline-license* LICENSE *airline-license*
MIT License. Copyright © 2013-2026 Bailey Ling, Christian Brabandt, Mike MIT License. Copyright © 2013-2021 Bailey Ling, Christian Brabandt, Mike
Hartington et al. Hartington et al.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:
+49 -77
View File
@@ -1,4 +1,4 @@
" MIT License. Copyright (c) 2013-2026 Bailey Ling, Christian Brabandt et al. " MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
let s:save_cpo = &cpo let s:save_cpo = &cpo
@@ -6,7 +6,7 @@ set cpo&vim
scriptencoding utf-8 scriptencoding utf-8
if &compatible || v:version < 702 || (exists('g:loaded_airline') && g:loaded_airline) if &cp || v:version < 702 || (exists('g:loaded_airline') && g:loaded_airline)
finish finish
endif endif
let g:loaded_airline = 1 let g:loaded_airline = 1
@@ -25,11 +25,11 @@ function! s:init()
if s:theme_in_vimrc if s:theme_in_vimrc
try try
if g:airline_theme is# 'random' if g:airline_theme is# 'random'
let g:airline_theme = s:random_theme() let g:airline_theme=s:random_theme()
endif endif
let palette = g:airline#themes#{g:airline_theme}#palette let palette = g:airline#themes#{g:airline_theme}#palette
catch catch
call airline#util#warning(printf('Could not resolve airline theme "%s".', g:airline_theme)) call airline#util#warning(printf('Could not resolve airline theme "%s". Themes have been migrated to github.com/vim-airline/vim-airline-themes.', g:airline_theme))
let g:airline_theme = 'dark' let g:airline_theme = 'dark'
endtry endtry
try try
@@ -48,7 +48,6 @@ function! s:init()
endfunction endfunction
let s:active_winnr = -1 let s:active_winnr = -1
function! s:on_window_changed(event) function! s:on_window_changed(event)
" don't trigger for Vim popup windows " don't trigger for Vim popup windows
if &buftype is# 'popup' if &buftype is# 'popup'
@@ -59,32 +58,20 @@ function! s:on_window_changed(event)
" do not trigger for previewwindows " do not trigger for previewwindows
return return
endif endif
let s:active_winnr = winnr() let s:active_winnr = winnr()
" Handle each window only once, since we might come here several times for " Handle each window only once, since we might come here several times for
" different autocommands. " different autocommands.
let key = [bufnr('%'), s:active_winnr, winnr('$'), tabpagenr(), &filetype] let l:key = [bufnr('%'), s:active_winnr, winnr('$'), tabpagenr(), &ft]
if get(g:, 'airline_last_window_changed', []) == l:key
if get(g:, 'airline_last_window_changed', []) == key \ && &stl is# '%!airline#statusline('.s:active_winnr.')'
\ && &statusline is# '%!airline#statusline('.s:active_winnr.')' \ && &ft !~? 'gitcommit'
\ && &filetype !~? 'gitcommit'
" fugitive is special, it changes names and filetypes several times, " fugitive is special, it changes names and filetypes several times,
" make sure the caching does not get into its way " make sure the caching does not get into its way
if a:event ==# 'BufUnload'
" in the BufUnload event, make sure the cacheing does not prevent
" removing stale entries
call airline#highlighter#remove_separators_for_bufnr(expand('<abuf>'))
endif
return return
endif endif
let g:airline_last_window_changed = l:key
let g:airline_last_window_changed = key
call s:init() call s:init()
call airline#update_statusline() call airline#update_statusline()
if a:event ==# 'BufUnload'
call airline#highlighter#remove_separators_for_bufnr(expand('<abuf>'))
endif
endfunction endfunction
function! s:on_focus_gained() function! s:on_focus_gained()
@@ -93,8 +80,7 @@ function! s:on_focus_gained()
endif endif
if airline#util#try_focusgained() if airline#util#try_focusgained()
unlet! w:airline_lastmode unlet! w:airline_lastmode | :call <sid>airline_refresh(1)
call s:airline_refresh(1)
endif endif
endfunction endfunction
@@ -112,6 +98,8 @@ function! s:on_colorscheme_changed()
if !s:theme_in_vimrc if !s:theme_in_vimrc
call airline#switch_matching_theme() call airline#switch_matching_theme()
endif endif
" couldn't find a match, or theme was defined, just refresh
call airline#load_theme() call airline#load_theme()
endfunction endfunction
@@ -122,17 +110,18 @@ endfunction
function! s:airline_toggle() function! s:airline_toggle()
if exists("#airline") if exists("#airline")
augroup airline augroup airline
autocmd! au!
augroup END augroup END
augroup! airline augroup! airline
if exists("s:stl") if exists("s:stl")
let &statusline = s:stl let &stl = s:stl
endif endif
if exists("s:tal") if exists("s:tal")
let [&tabline, &showtabline] = s:tal let [&tal, &showtabline] = s:tal
endif endif
call airline#highlighter#reset_hlcache() call airline#highlighter#reset_hlcache()
call airline#util#doautocmd('AirlineToggledOff') call airline#util#doautocmd('AirlineToggledOff')
else else
let s:stl = &statusline let s:stl = &statusline
@@ -148,72 +137,62 @@ function! s:airline_toggle()
autocmd ColorScheme * call <sid>on_colorscheme_changed() autocmd ColorScheme * call <sid>on_colorscheme_changed()
" Set all statuslines to inactive " Set all statuslines to inactive
autocmd FocusLost * call airline#update_statusline_focuslost() autocmd FocusLost * call airline#update_statusline_focuslost()
" Refresh airline for :syntax off " Refresh airline for :syntax off
autocmd SourcePre */syntax/syntax.vim autocmd SourcePre */syntax/syntax.vim
\ call airline#extensions#tabline#buffers#invalidate() \ call airline#extensions#tabline#buffers#invalidate()
autocmd VimEnter * call <sid>on_window_changed('VimEnter') autocmd VimEnter * call <sid>on_window_changed('VimEnter')
autocmd WinEnter * call <sid>on_window_changed('WinEnter') autocmd WinEnter * call <sid>on_window_changed('WinEnter')
autocmd FileType * call <sid>on_window_changed('FileType') autocmd FileType * call <sid>on_window_changed('FileType')
autocmd BufWinEnter * call <sid>on_window_changed('BufWinEnter') autocmd BufWinEnter * call <sid>on_window_changed('BufWinEnter')
autocmd BufUnload * call <sid>on_window_changed('BufUnload') autocmd BufUnload * call <sid>on_window_changed('BufUnload')
if exists('##CompleteDone') if exists('##CompleteDone')
autocmd CompleteDone * call <sid>on_window_changed('CompleteDone') autocmd CompleteDone * call <sid>on_window_changed('CompleteDone')
endif endif
" non-trivial number of external plugins use eventignore=all, so we need to account for that " non-trivial number of external plugins use eventignore=all, so we need to account for that
autocmd CursorMoved * call <sid>on_cursor_moved() autocmd CursorMoved * call <sid>on_cursor_moved()
autocmd VimResized * call <sid>on_focus_gained()
autocmd VimResized * call <sid>on_focus_gained()
if exists('*timer_start') && exists('*funcref') && &eventignore !~? 'focusgained' if exists('*timer_start') && exists('*funcref') && &eventignore !~? 'focusgained'
" do not trigger FocusGained on startup, it might erase the intro screen (see #1817) " do not trigger FocusGained on startup, it might erase the intro screen (see #1817)
" needs funcref() (needs 7.4.2137) and timers (7.4.1578) " needs funcref() (needs 7.4.2137) and timers (7.4.1578)
let Handler = funcref('<sid>FocusGainedHandler') let Handler=funcref('<sid>FocusGainedHandler')
let s:timer = timer_start(5000, Handler) let s:timer=timer_start(5000, Handler)
else else
autocmd FocusGained * call s:on_focus_gained() autocmd FocusGained * call <sid>on_focus_gained()
endif endif
if exists("##TerminalOpen") if exists("##TerminalOpen")
" Using the same function with the TermOpen autocommand " Using the same function with the TermOpen autocommand
" breaks for Neovim see #1828, looks like a neovim bug. " breaks for Neovim see #1828, looks like a neovim bug.
autocmd TerminalOpen * call airline#load_theme() autocmd TerminalOpen * :call airline#load_theme() " reload current theme for Terminal, forces the terminal extension to be loaded
endif endif
autocmd TabEnter * :unlet! w:airline_lastmode | let w:airline_active=1
autocmd TabEnter * unlet! w:airline_lastmode | let w:airline_active = 1
autocmd BufWritePost */autoload/airline/themes/*.vim autocmd BufWritePost */autoload/airline/themes/*.vim
\ execute 'source '.split(globpath(&rtp, 'autoload/airline/themes/'.g:airline_theme.'.vim', 1), "\n")[0] \ exec 'source '.split(globpath(&rtp, 'autoload/airline/themes/'.g:airline_theme.'.vim', 1), "\n")[0]
\ | call airline#load_theme() \ | call airline#load_theme()
autocmd User AirlineModeChanged nested call airline#mode_changed() autocmd User AirlineModeChanged nested call airline#mode_changed()
if get(g:, 'airline_statusline_ontop', 0) if get(g:, 'airline_statusline_ontop', 0)
" Force update of tabline more often " Force update of tabline more often
autocmd InsertEnter,InsertLeave,CursorMovedI * call airline#update_tabline() autocmd InsertEnter,InsertLeave,CursorMovedI * :call airline#update_tabline()
endif endif
if exists("##ModeChanged") if exists("##ModeChanged")
autocmd ModeChanged * call airline#update_tabline() autocmd ModeChanged * :call airline#update_tabline()
endif endif
augroup END augroup END
if !airline#util#stl_disabled(winnr()) if !airline#util#stl_disabled(winnr())
if &laststatus < 2 if &laststatus < 2
let scroll_bak = &scroll let _scroll=&scroll
if !get(g:, 'airline_statusline_ontop', 0) if !get(g:, 'airline_statusline_ontop', 0)
set laststatus=2 set laststatus=2
endif endif
let &scroll = scroll_bak if &scroll != _scroll
let &scroll = _scroll
endif
endif endif
endif endif
if airline#util#has_multiline() && &statuslineopt !~# 'maxheight:'
set statuslineopt+=maxheight:2
endif
if s:airline_initialized if s:airline_initialized
call s:on_window_changed('Init') call s:on_window_changed('Init')
endif endif
@@ -230,11 +209,11 @@ function! s:airline_theme(...)
if a:0 if a:0
try try
let theme = a:1 let theme = a:1
if theme is# 'random' if theme is# 'random'
let theme = s:random_theme() let theme = s:random_theme()
endif endif
call airline#switch_theme(theme) call airline#switch_theme(theme)
catch catch " discard error
endtry endtry
if a:1 is# 'random' if a:1 is# 'random'
echo g:airline_theme echo g:airline_theme
@@ -246,7 +225,7 @@ endfunction
function! s:airline_refresh(...) function! s:airline_refresh(...)
" a:1, fast refresh, do not reload the theme " a:1, fast refresh, do not reload the theme
let fast = !empty(get(a:000, 0, 0)) let fast=!empty(get(a:000, 0, 0))
if !exists("#airline") if !exists("#airline")
" disabled " disabled
return return
@@ -263,10 +242,10 @@ endfunction
function! s:FocusGainedHandler(timer) function! s:FocusGainedHandler(timer)
if exists("s:timer") && a:timer == s:timer && exists('#airline') && &eventignore !~? 'focusgained' if exists("s:timer") && a:timer == s:timer && exists('#airline') && &eventignore !~? 'focusgained'
augroup airline augroup airline
autocmd FocusGained * call s:on_focus_gained() au FocusGained * call s:on_focus_gained()
augroup END augroup END
endif endif
endfunction endfu
function! s:airline_extensions() function! s:airline_extensions()
let loaded = airline#extensions#get_loaded_extensions() let loaded = airline#extensions#get_loaded_extensions()
@@ -279,45 +258,39 @@ function! s:airline_extensions()
echohl Title echohl Title
echo printf("%-15s\t%s\t%s", "Extension", "Extern", "Status") echo printf("%-15s\t%s\t%s", "Extension", "Extern", "Status")
echohl Normal echohl Normal
let set = [] let set=[]
let not_loaded = []
for ext in sort(files) for ext in sort(files)
" prevent duplicates if index(set, ext) > -1
if index(set + not_loaded, ext) > -1
continue
endif
let indx = match(loaded, '^'.ext.'\*\?$')
if indx == -1
call add(not_loaded, ext)
continue continue
endif endif
let indx=match(loaded, '^'.ext.'\*\?$')
let external = (indx > -1 && loaded[indx] =~ '\*$')
echo printf("%-15s\t%s\t%sloaded", ext, external, indx == -1 ? 'not ' : '')
call add(set, ext) call add(set, ext)
let external = (loaded[indx] =~ '\*$')
echo printf("%-15s\t%s\tloaded", ext, external)
endfor
for ext in not_loaded
echo printf("%-15s\t%s\tnot loaded", ext, 0)
endfor endfor
endfunction endfunction
function! s:rand(max) abort function! s:rand(max) abort
if exists("*rand") if exists("*rand")
" Needs Vim 8.1.2342 " Needs Vim 8.1.2342
let number = rand() let number=rand()
elseif has("reltime") elseif has("reltime")
let timerstr = reltimestr(reltime()) let timerstr=reltimestr(reltime())
let number = split(timerstr, '\.')[1] + 0 let number=split(timerstr, '\.')[1]+0
elseif has("win32") && &shell =~? 'cmd' elseif has("win32") && &shell =~ 'cmd'
let number = system("echo %random%") + 0 let number=system("echo %random%")+0
else else
" best effort, bash and zsh provide $RANDOM " best effort, bash and zsh provide $RANDOM
let number = expand("$RANDOM") + 0 " cmd.exe on windows provides %random%, but expand()
" does not seem to be able to expand this correctly.
" In the worst case, this always returns zero
let number=expand("$RANDOM")+0
endif endif
return number % a:max return number % a:max
endfunction endfunction
function! s:random_theme() abort function! s:random_theme() abort
let themes = airline#util#themes('') let themes=airline#util#themes('')
return themes[s:rand(len(themes))] return themes[s:rand(len(themes))]
endfunction endfunction
@@ -329,7 +302,6 @@ command! AirlineExtensions call s:airline_extensions()
call airline#init#bootstrap() call airline#init#bootstrap()
call s:airline_toggle() call s:airline_toggle()
if exists("v:vim_did_enter") && v:vim_did_enter if exists("v:vim_did_enter") && v:vim_did_enter
call <sid>on_window_changed('VimEnter') call <sid>on_window_changed('VimEnter')
endif endif

Some files were not shown because too many files have changed in this diff Show More