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
104 changed files with 527 additions and 1504 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 -32
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,16 +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
if (get(g:, 'airline#extensions#linediff#enabled', 1) && exists('g:loaded_linediff'))
call airline#extensions#linediff#init(s:ext)
call add(s:loaded_ext, 'linediff')
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
-14
View File
@@ -1,14 +0,0 @@
" MIT License. Copyright (c) 2026 Shad
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
function! airline#extensions#linediff#init(ext)
call a:ext.add_statusline_func('airline#extensions#linediff#apply')
endfunction
function! airline#extensions#linediff#apply(...)
if exists('b:differ.description')
let w:airline_section_c = b:differ.description
endif
endfunction
+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
@@ -44,7 +44,6 @@ function! airline#extensions#tabline#buflist#list()
let exclude_buffers = get(g:, 'airline#extensions#tabline#exclude_buffers', []) let exclude_buffers = get(g:, 'airline#extensions#tabline#exclude_buffers', [])
let exclude_paths = get(g:, 'airline#extensions#tabline#excludes', []) let exclude_paths = get(g:, 'airline#extensions#tabline#excludes', [])
let exclude_preview = get(g:, 'airline#extensions#tabline#exclude_preview', 1) let exclude_preview = get(g:, 'airline#extensions#tabline#exclude_preview', 1)
let l:CustomFilter = get(g:, 'airline#extensions#tabline#filter_function')
let list = (exists('g:did_bufmru') && g:did_bufmru) ? BufMRUList() : range(1, bufnr("$")) let list = (exists('g:did_bufmru') && g:did_bufmru) ? BufMRUList() : range(1, bufnr("$"))
@@ -62,8 +61,6 @@ function! airline#extensions#tabline#buflist#list()
" 'bufhidden' == wipe " 'bufhidden' == wipe
" 'buftype' == nofile " 'buftype' == nofile
" 5) ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat " 5) ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat
" 6) airline#extensions#tabline#filter_function is defined and returns
" empty value
" check buffer numbers first " check buffer numbers first
if index(exclude_buffers, nr) >= 0 if index(exclude_buffers, nr) >= 0
@@ -77,8 +74,6 @@ function! airline#extensions#tabline#buflist#list()
" check other types last " check other types last
elseif s:ExcludeOther(nr, exclude_preview) elseif s:ExcludeOther(nr, exclude_preview)
continue continue
elseif !empty(l:CustomFilter) && !call(l:CustomFilter, [nr])
continue
endif endif
call add(buffers, nr) call add(buffers, nr)
@@ -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,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
+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
-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
+181 -390
View File
@@ -13,14 +13,84 @@ let s:has_strchars = exists('*strchars')
let s:has_strcharpart = exists('*strcharpart') let s:has_strcharpart = exists('*strcharpart')
let s:focusgained_ignore_time = 0 let s:focusgained_ignore_time = 0
function! airline#util#has_vim9_script() " TODO: Try to cache winwidth(0) function
" Returns true, if Vim is new enough to understand vim9 script " e.g. store winwidth per window and access that, only update it, if the size
return (exists(":def") && " actually changed.
\ exists("v:versionlong") && function! airline#util#winwidth(...) abort
\ v:versionlong >= 8022844 && let nr = get(a:000, 0, 0)
\ get(g:, "airline_experimental", 0)) " When statusline is on top, or using global statusline for Neovim
" always return the number of columns
if get(g:, 'airline_statusline_ontop', 0) || &laststatus > 2
return &columns
else
return winwidth(nr)
endif
endfunction endfunction
function! airline#util#shorten(text, winwidth, minwidth, ...)
if airline#util#winwidth() < a:winwidth && len(split(a:text, '\zs')) > a:minwidth
if get(a:000, 0, 0)
" shorten from tail
return '…'.matchstr(a:text, '.\{'.a:minwidth.'}$')
else
" shorten from beginning of string
return matchstr(a:text, '^.\{'.a:minwidth.'}').'…'
endif
else
return a:text
endif
endfunction
function! airline#util#wrap(text, minwidth)
if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
return ''
endif
return a:text
endfunction
function! airline#util#append(text, minwidth)
if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
return ''
endif
let prefix = s:spc == "\ua0" ? s:spc : s:spc.s:spc
return empty(a:text) ? '' : prefix.g:airline_left_alt_sep.s:spc.a:text
endfunction
function! airline#util#warning(msg)
echohl WarningMsg
echomsg "airline: ".a:msg
echohl Normal
endfunction
function! airline#util#prepend(text, minwidth)
if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
return ''
endif
return empty(a:text) ? '' : a:text.s:spc.g:airline_right_alt_sep.s:spc
endfunction
if v:version >= 704
function! airline#util#getbufvar(bufnr, key, def)
return getbufvar(a:bufnr, a:key, a:def)
endfunction
else
function! airline#util#getbufvar(bufnr, key, def)
let bufvals = getbufvar(a:bufnr, '')
return get(bufvals, a:key, a:def)
endfunction
endif
if v:version >= 704
function! airline#util#getwinvar(winnr, key, def)
return getwinvar(a:winnr, a:key, a:def)
endfunction
else
function! airline#util#getwinvar(winnr, key, def)
let winvals = getwinvar(a:winnr, '')
return get(winvals, a:key, a:def)
endfunction
endif
if v:version >= 704 if v:version >= 704
function! airline#util#exec_funcrefs(list, ...) function! airline#util#exec_funcrefs(list, ...)
for Fn in a:list for Fn in a:list
@@ -46,404 +116,125 @@ else
endfunction endfunction
endif endif
if !exists(":def") || !airline#util#has_vim9_script() " Compatibility wrapper for strchars, in case this vim version does not
" TODO: Try to cache winwidth(0) function " have it natively
" e.g. store winwidth per window and access that, only update it, if the size function! airline#util#strchars(str)
" actually changed. if s:has_strchars
function! airline#util#winwidth(...) abort return strchars(a:str)
let nr = get(a:000, 0, 0)
" When statusline is on top, or using global statusline for Neovim
" always return the number of columns
if get(g:, 'airline_statusline_ontop', 0) || &laststatus > 2
return &columns
else
return winwidth(nr)
endif
endfunction
function! airline#util#shorten(text, winwidth, minwidth, ...)
if airline#util#winwidth() < a:winwidth && len(split(a:text, '\zs')) > a:minwidth
if get(a:000, 0, 0)
" shorten from tail
return '…'.matchstr(a:text, '.\{'.a:minwidth.'}$')
else
" shorten from beginning of string
return matchstr(a:text, '^.\{'.a:minwidth.'}').'…'
endif
else
return a:text
endif
endfunction
function! airline#util#wrap(text, minwidth)
if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
return ''
endif
return a:text
endfunction
function! airline#util#append(text, minwidth)
if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
return ''
endif
let prefix = s:spc == "\ua0" ? s:spc : s:spc.s:spc
return empty(a:text) ? '' : prefix.g:airline_left_alt_sep.s:spc.a:text
endfunction
function! airline#util#warning(msg)
echohl WarningMsg
echomsg "airline: ".a:msg
echohl Normal
endfunction
function! airline#util#prepend(text, minwidth)
if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
return ''
endif
return empty(a:text) ? '' : a:text.s:spc.g:airline_right_alt_sep.s:spc
endfunction
if v:version >= 704
function! airline#util#getbufvar(bufnr, key, def)
return getbufvar(a:bufnr, a:key, a:def)
endfunction
else else
function! airline#util#getbufvar(bufnr, key, def) return strlen(substitute(a:str, '.', 'a', 'g'))
let bufvals = getbufvar(a:bufnr, '')
return get(bufvals, a:key, a:def)
endfunction
endif endif
endfunction
if v:version >= 704 function! airline#util#strcharpart(...)
function! airline#util#getwinvar(winnr, key, def) if s:has_strcharpart
return getwinvar(a:winnr, a:key, a:def) return call('strcharpart', a:000)
endfunction
else else
function! airline#util#getwinvar(winnr, key, def) " does not handle multibyte chars :(
let winvals = getwinvar(a:winnr, '') return a:1[(a:2):(a:3)]
return get(winvals, a:key, a:def)
endfunction
endif endif
endfunction
function! airline#util#ignore_buf(name)
let pat = '\c\v'. get(g:, 'airline#ignore_bufadd_pat', '').
\ get(g:, 'airline#extensions#tabline#ignore_bufadd_pat',
\ '!|defx|gundo|nerd_tree|startify|tagbar|term://|undotree|vimfiler')
return match(a:name, pat) > -1
endfunction
function! airline#util#has_fugitive()
if !exists("s:has_fugitive")
let s:has_fugitive = exists('*FugitiveHead')
endif
return s:has_fugitive
endfunction
function! airline#util#has_gina()
if !exists("s:has_gina")
let s:has_gina = (exists(':Gina') && v:version >= 800)
endif
return s:has_gina
endfunction
" Compatibility wrapper for strchars, in case this vim version does not function! airline#util#has_lawrencium()
" have it natively if !exists("s:has_lawrencium")
function! airline#util#strchars(str) let s:has_lawrencium = exists('*lawrencium#statusline')
if s:has_strchars endif
return strchars(a:str) return s:has_lawrencium
else endfunction
return strlen(substitute(a:str, '.', 'a', 'g'))
endif
endfunction
function! airline#util#strcharpart(...) function! airline#util#has_vcscommand()
if s:has_strcharpart if !exists("s:has_vcscommand")
return call('strcharpart', a:000) let s:has_vcscommand = exists('*VCSCommandGetStatusLine')
else endif
" does not handle multibyte chars :( return get(g:, 'airline#extensions#branch#use_vcscommand', 0) && s:has_vcscommand
return a:1[(a:2):(a:3)] endfunction
endif
endfunction
function! airline#util#ignore_buf(name) function! airline#util#has_custom_scm()
let pat = '\c\v'. get(g:, 'airline#ignore_bufadd_pat', ''). return !empty(get(g:, 'airline#extensions#branch#custom_head', ''))
\ get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', endfunction
\ '!|defx|gundo|nerd_tree|startify|tagbar|term://|undotree|vimfiler')
return match(a:name, pat) > -1
endfunction
function! airline#util#has_fugitive() function! airline#util#doautocmd(event)
if !exists("s:has_fugitive") if !exists('#airline') && a:event !=? 'AirlineToggledOff'
let s:has_fugitive = exists('*FugitiveHead') " airline disabled
endif return
return s:has_fugitive endif
endfunction try
exe printf("silent doautocmd %s User %s", s:nomodeline, a:event)
catch /^Vim\%((\a\+)\)\=:E48:/
" Catch: Sandbox mode
" no-op
endtry
endfunction
function! airline#util#has_zhihu() function! airline#util#themes(match)
if !has('nvim') let files = split(globpath(&rtp, 'autoload/airline/themes/'.a:match.'*.vim', 1), "\n")
return 0 return sort(map(files, 'fnamemodify(v:val, ":t:r")') + ('random' =~ a:match ? ['random'] : []))
endif endfunction
try
call v:lua.require'zhihu'.setup()
catch
return 0
endtry
return 1
endfunction
function! airline#util#has_gina() function! airline#util#stl_disabled(winnr)
if !exists("s:has_gina") " setting the statusline is disabled,
let s:has_gina = (exists(':Gina') && v:version >= 800) " either globally, per window, or per buffer
endif " w:airline_disabled is deprecated!
return s:has_gina return get(g:, 'airline_disable_statusline', 0) ||
endfunction \ airline#util#getwinvar(a:winnr, 'airline_disable_statusline', 0) ||
\ airline#util#getwinvar(a:winnr, 'airline_disabled', 0) ||
\ airline#util#getbufvar(winbufnr(a:winnr), 'airline_disable_statusline', 0)
endfunction
function! airline#util#ignore_next_focusgain()
if has('win32')
" Setup an ignore for platforms that trigger FocusLost on calls to
" system(). macvim (gui and terminal) and Linux terminal vim do not.
let s:focusgained_ignore_time = localtime()
endif
endfunction
function! airline#util#has_lawrencium() function! airline#util#is_popup_window(winnr)
if !exists("s:has_lawrencium") " Keep the statusline active if it's a popup window
let s:has_lawrencium = exists('*lawrencium#statusline') if exists('*win_gettype')
endif return win_gettype(a:winnr) ==# 'popup' || win_gettype(a:winnr) ==# 'autocmd'
return s:has_lawrencium else
endfunction return airline#util#getwinvar(a:winnr, '&buftype', '') ==# 'popup'
endif
endfunction
function! airline#util#has_vcscommand() function! airline#util#try_focusgained()
if !exists("s:has_vcscommand") " Ignore lasts for at most one second and is cleared on the first
let s:has_vcscommand = exists('*VCSCommandGetStatusLine') " focusgained. We use ignore to prevent system() calls from triggering
endif " FocusGained (which occurs 100% on win32 and seem to sometimes occur under
return get(g:, 'airline#extensions#branch#use_vcscommand', 0) && s:has_vcscommand " tmux).
endfunction let dt = localtime() - s:focusgained_ignore_time
let s:focusgained_ignore_time = 0
return dt >= 1
endfunction
function! airline#util#has_custom_scm() function! airline#util#has_vim9_script()
return !empty(get(g:, 'airline#extensions#branch#custom_head', '')) " Returns true, if Vim is new enough to understand vim9 script
endfunction return (exists(":def") &&
\ exists("v:versionlong") &&
\ v:versionlong >= 8022844 &&
\ get(g:, "airline_experimental", 0))
endfunction
function! airline#util#doautocmd(event)
if !exists('#airline') && a:event !=? 'AirlineToggledOff'
" airline disabled
return
endif
try
exe printf("silent doautocmd %s User %s", s:nomodeline, a:event)
catch /^Vim\%((\a\+)\)\=:E48:/
" Catch: Sandbox mode
" no-op
endtry
endfunction
function! airline#util#themes(match)
let files = split(globpath(&rtp, 'autoload/airline/themes/'.a:match.'*.vim', 1), "\n")
return sort(map(files, 'fnamemodify(v:val, ":t:r")') + ('random' =~ a:match ? ['random'] : []))
endfunction
function! airline#util#stl_disabled(winnr)
" setting the statusline is disabled,
" either globally, per window, or per buffer
" w:airline_disabled is deprecated!
return get(g:, 'airline_disable_statusline', 0) ||
\ airline#util#getwinvar(a:winnr, 'airline_disable_statusline', 0) ||
\ airline#util#getwinvar(a:winnr, 'airline_disabled', 0) ||
\ airline#util#getbufvar(winbufnr(a:winnr), 'airline_disable_statusline', 0)
endfunction
function! airline#util#ignore_next_focusgain()
if has('win32')
" Setup an ignore for platforms that trigger FocusLost on calls to
" system(). macvim (gui and terminal) and Linux terminal vim do not.
let s:focusgained_ignore_time = localtime()
endif
endfunction
function! airline#util#is_popup_window(winnr)
" Keep the statusline active if it's a popup window
if exists('*win_gettype')
return win_gettype(a:winnr) ==# 'popup' || win_gettype(a:winnr) ==# 'autocmd'
else
return airline#util#getwinvar(a:winnr, '&buftype', '') ==# 'popup'
endif
endfunction
function! airline#util#try_focusgained()
" Ignore lasts for at most one second and is cleared on the first
" focusgained. We use ignore to prevent system() calls from triggering
" FocusGained (which occurs 100% on win32 and seem to sometimes occur under
" tmux).
let dt = localtime() - s:focusgained_ignore_time
let s:focusgained_ignore_time = 0
return dt >= 1
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
" End legacy Vim Script
finish
else
def airline#util#winwidth(...args: list<any>): number
const nr = get(args, 0, 0)
# When statusline is on top, or using global statusline for Neovim
# always return the number of columns
if get(g:, 'airline_statusline_ontop', 0) || &laststatus > 2
return &columns
else
return winwidth(nr)
endif
enddef
def airline#util#shorten(text: string, winwidth: number, minwidth: number, ...args: list<any>): string
if airline#util#winwidth() < winwidth && len(split(text, '\zs')) > minwidth
if get(args, 0, 0)
# shorten from tail
return '…' .. matchstr(text, '.\{' .. minwidth .. '}$')
else
# shorten from beginning of string
return matchstr(text, '^.\{' .. minwidth .. '}') .. '…'
endif
else
return text
endif
enddef
def airline#util#wrap(text: string, minwidth: number): string
if minwidth > 0 && airline#util#winwidth() < minwidth
return ''
endif
return text
enddef
def airline#util#append(text: string, minwidth: number): string
if minwidth > 0 && airline#util#winwidth() < minwidth
return ''
endif
const prefix = s:spc == "\ua0" ? s:spc : s:spc .. s:spc
return empty(text) ? '' : prefix .. g:airline_left_alt_sep .. s:spc .. text
enddef
def airline#util#warning(msg: string)
echohl WarningMsg
echomsg "airline: " .. msg
echohl Normal
enddef
def airline#util#prepend(text: string, minwidth: number): string
if minwidth > 0 && airline#util#winwidth() < minwidth
return ''
endif
return empty(text) ? '' : text .. s:spc .. g:airline_right_alt_sep .. s:spc
enddef
def airline#util#getbufvar(bufnr: number, key: string, def: any): any
return getbufvar(bufnr, key, def)
enddef
def airline#util#getwinvar(winnr: number, key: string, def: any): any
return getwinvar(winnr, key, def)
enddef
def airline#util#strchars(str: string): number
if s:has_strchars
return strchars(str)
else
return strlen(substitute(str, '.', 'a', 'g'))
endif
enddef
def airline#util#strcharpart(...values: list<any>): string
if s:has_strcharpart
return call('strcharpart', values)
else
# does not handle multibyte chars :(
return values[1][values[2] : values[3]]
endif
enddef
def airline#util#ignore_buf(name: string): bool
var pat = '\c\v' .. get(g:, 'airline#ignore_bufadd_pat', '') .. get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', '!|defx|gundo|nerd_tree|startify|tagbar|term://|undotree|vimfiler')
return match(name, pat) > -1
enddef
def airline#util#has_fugitive(): bool
if !exists("s:has_fugitive")
s:has_fugitive = exists('*FugitiveHead')
endif
return s:has_fugitive
enddef
def airline#util#has_zhihu(): number
return 0
enddef
def airline#util#has_gina(): bool
if !exists("s:has_gina")
s:has_gina = (exists(':Gina') && v:version >= 800)
endif
return s:has_gina
enddef
def airline#util#has_lawrencium(): bool
if !exists("s:has_lawrencium")
s:has_lawrencium = exists('*lawrencium#statusline')
endif
return s:has_lawrencium
enddef
def airline#util#has_vcscommand(): bool
if !exists("s:has_vcscommand")
s:has_vcscommand = exists('*VCSCommandGetStatusLine')
endif
return get(g:, 'airline#extensions#branch#use_vcscommand', 0) && s:has_vcscommand
enddef
def airline#util#has_custom_scm(): bool
return !empty(get(g:, 'airline#extensions#branch#custom_head', ''))
enddef
def airline#util#doautocmd(event: string)
if !exists('#airline') && event !=? 'AirlineToggledOff'
# airline disabled
return
endif
try
exe printf("silent doautocmd %s User %s", s:nomodeline, event)
catch /^Vim\%((\a\+)\)\=:E48:/
# Catch: Sandbox mode
# no-op
endtry
enddef
def airline#util#themes(match_str: string): list<string>
const files = split(globpath(&rtp, 'autoload/airline/themes/' .. match_str .. '*.vim', true), "\n")
var theme_names = files->mapnew((_, val) => fnamemodify(val, ":t:r"))
if "random" =~ match_str
theme_names->add("random")
endif
return theme_names->sort()
enddef
def airline#util#stl_disabled(winnr: number): bool
# setting the statusline is disabled,
# either globally, per window, or per buffer
# w:airline_disabled is deprecated!
return get(g:, 'airline_disable_statusline', 0) ||
\ airline#util#getwinvar(winnr, 'airline_disable_statusline', 0) ||
\ airline#util#getwinvar(winnr, 'airline_disabled', 0) ||
\ airline#util#getbufvar(winbufnr(winnr), 'airline_disable_statusline', 0)
enddef
def airline#util#ignore_next_focusgain()
if has('win32')
# Setup an ignore for platforms that trigger FocusLost on calls to
# system(). macvim (gui and terminal) and Linux terminal vim do not.
s:focusgained_ignore_time = localtime()
endif
enddef
def airline#util#is_popup_window(winnr: number): bool
# Keep the statusline active if it's a popup window
if exists('*win_gettype')
return win_gettype(winnr) ==# 'popup' || win_gettype(winnr) ==# 'autocmd'
else
return airline#util#getwinvar(winnr, '&buftype', '') ==# 'popup'
endif
enddef
def airline#util#try_focusgained(): bool
# Ignore lasts for at most one second and is cleared on the first
# focusgained. We use ignore to prevent system() calls from triggering
# FocusGained (which occurs 100% on win32 and seem to sometimes occur under
# tmux).
const dt = localtime() - s:focusgained_ignore_time
s:focusgained_ignore_time = 0
return dt >= 1
enddef
def airline#util#has_multiline(): bool
# Returns true, if Vim supports multiline statusline (Vim 9.2.0083)
return (exists("+statuslineopt") &&
\ get(g:, "airline_multiline", 0))
enddef
endif
+78 -198
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,25 +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-linediff*
linediff.vim <https://github.com/AndrewRadev/linediff.vim>
* enable/disable linediff buffername and position integration >
let g:airline#extensions#linediff#enabled = 1
------------------------------------- *airline-localsearch* ------------------------------------- *airline-localsearch*
localsearch <https://github.com/mox-mox/vim-localsearch> localsearch <https://github.com/mox-mox/vim-localsearch>
@@ -941,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*
@@ -969,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>
@@ -1010,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>
@@ -1030,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>
@@ -1069,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
@@ -1078,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
@@ -1132,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)
@@ -1149,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
@@ -1161,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:
@@ -1177,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
@@ -1231,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.
@@ -1242,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
@@ -1285,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`.
@@ -1438,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'.
@@ -1446,71 +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
< <
* custom buffer filter function (name of |Funcref|), takes buffer number and *airline-tabline-hlgroups*
* should return an empty value if a buffer shouldn't be displayed >
let airline#extensions#tabline#filter_function = ''
------------------------------------- *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.
@@ -1535,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>
@@ -1583,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*
@@ -1614,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>
@@ -1634,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>
@@ -1755,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 >
@@ -1854,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>
@@ -1958,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*
@@ -2010,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
@@ -2261,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:

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