2 Commits

Author SHA1 Message Date
get-me-power
f083d765d8 debug 2023-06-03 23:51:47 +09:00
get-me-power
45b6334faf test: add branch extensions test 2023-06-03 23:46:37 +09:00
22 changed files with 143 additions and 323 deletions

View File

@@ -11,11 +11,10 @@ on:
jobs:
test:
name: Test
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
matrix:
vim:
- v9.1.0000
- v9.0.0000
- v8.2.1000
- v8.2.0000

View File

@@ -24,7 +24,6 @@ This is the Changelog for the vim-airline project.
- 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
- rewrote parts using Vim9 Script for performance improvements
- [vim-obsession](https://github.com/tpope/vim-obsession) allow to set paused indicator
- Other
- Changed CI from travis-ci.org to GitHub Actions
- Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint)
@@ -86,7 +85,7 @@ This is the Changelog for the vim-airline project.
- [fugitive](https://github.com/tpope/vim-fugitive) plugin has been refactored
causing adjustments for vim-airline, also uses Fugitives new API calls
- 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)
## [0.9] - 2018-01-15
@@ -136,7 +135,7 @@ This is the Changelog for the vim-airline project.
## [0.8] - 2016-03-09
- Changes
- 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
- Extensions
- branch: support Git and Mercurial simultaneously, untracked files

View File

@@ -370,4 +370,3 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
[61]: http://github.com/lambdalisue/battery.vim/
[62]: http://github.com/rbong/vim-flog/
[63]: https://github.com/lewis6991/gitsigns.nvim
[64]: https://github.com/VimfanTPdvorak/vimodoro

View File

@@ -229,11 +229,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'undotree')
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)
\ && (exists('g:loaded_signify')
\ || exists('g:loaded_gitgutter')
@@ -420,11 +415,6 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'capslock')
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))
call airline#extensions#gutentags#init(s:ext)
call add(s:loaded_ext, 'gutentags')
@@ -440,7 +430,7 @@ function! airline#extensions#load()
call add(s:loaded_ext, 'grepper')
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 add(s:loaded_ext, 'xkblayout')
endif

View File

@@ -17,8 +17,8 @@ scriptencoding utf-8
let s:vcs_config = {
\ 'git': {
\ 'exe': 'git',
\ 'cmd': 'git --no-optional-locks status --porcelain -- ',
\ 'dirty': 'git --no-optional-locks status -uno --porcelain --ignore-submodules',
\ 'cmd': 'git status --porcelain -- ',
\ 'dirty': 'git status -uno --porcelain --ignore-submodules',
\ 'untracked_mark': '??',
\ 'exclude': '\.git',
\ 'update_branch': 's:update_git_branch',

View File

@@ -1,17 +0,0 @@
" MIT License. Copyright (c) 2014-2021 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

View File

@@ -7,57 +7,30 @@ if !get(g:, 'loaded_fern', 0)
finish
endif
function! airline#extensions#fern#apply_active(...) abort
" check if current buffer is both fern and active
if (&ft =~# 'fern') && a:2.active ==# '1'
call airline#extensions#fern#configure_sections(a:1, a:2)
return 1
endif
endfunction
function! airline#extensions#fern#apply(...) abort
if (&ft =~# 'fern')
let spc = g:airline_symbols.space
let fri = fern#fri#parse(expand('%f'))
function! airline#extensions#fern#apply_inactive(...) abort
" check if referenced buffer is both fern and inactive
if getbufvar(a:2.bufnr, '&filetype') ==# 'fern' && a:2.active ==# '0'
call airline#extensions#fern#configure_sections(a:1, a:2)
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)
call a:1.add_section('airline_a', spc.'fern'.spc)
if exists('*airline#extensions#branch#get_head')
call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
else
call a:1.add_section('airline_b', '')
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
endfunction
function! airline#extensions#fern#init(ext) abort
let g:fern_force_overwrite_statusline = 0
call a:ext.add_statusline_func('airline#extensions#fern#apply_active')
call a:ext.add_inactive_statusline_func('airline#extensions#fern#apply_inactive')
call a:ext.add_statusline_func('airline#extensions#fern#apply')
endfunction

View File

@@ -15,9 +15,7 @@ function! s:airline_nvimlsp_count(cnt, symbol) abort
endfunction
function! airline#extensions#nvimlsp#get(type) abort
if has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0 }))')
return ''
elseif !has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
if luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
return ''
endif
@@ -47,7 +45,7 @@ endfunction
function! s:airline_nvimlsp_get_line_number(cnt, type) abort
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 =
\ get(g:, 'airline#extensions#nvimlsp#open_lnum_symbol', '(L')

View File

@@ -14,14 +14,10 @@ if !exists('g:airline#extensions#obsession#indicator_text')
let g:airline#extensions#obsession#indicator_text = '$'
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)
call airline#parts#define_function('obsession', 'airline#extensions#obsession#get_status')
endfunction
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

View File

@@ -4,8 +4,8 @@
scriptencoding utf-8
let s:spc = g:airline_symbols.space
let s:current_bufnr = -1
let s:current_tabnr = -1
let s:current_modified = 0
let s:current_tabline = ''
let s:current_visible_buffers = []
@@ -49,15 +49,14 @@ function! airline#extensions#tabline#buffers#invalidate()
endfunction
function! airline#extensions#tabline#buffers#get()
let curbuf = bufnr('%')
let curtab = tabpagenr()
try
call <sid>map_keys()
catch
" no-op
endtry
if curbuf == s:current_bufnr && curtab == s:current_tabnr && &columns == s:column_width
if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified
let cur = bufnr('%')
if cur == s:current_bufnr && &columns == s:column_width
if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
return s:current_tabline
endif
endif
@@ -78,10 +77,10 @@ function! airline#extensions#tabline#buffers#get()
let b.overflow_group = 'airline_tabhid'
let b.buffers = airline#extensions#tabline#buflist#list()
if get(g:, 'airline#extensions#tabline#current_first', 0)
if index(b.buffers, curbuf) > -1
call remove(b.buffers, index(b.buffers, curbuf))
if index(b.buffers, cur) > -1
call remove(b.buffers, index(b.buffers, cur))
endif
let b.buffers = [curbuf] + b.buffers
let b.buffers = [cur] + b.buffers
endif
function! b.get_group(i) dict
@@ -130,7 +129,7 @@ function! airline#extensions#tabline#buffers#get()
endif
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
call b.insert_titles(current_buffer, 0, last_buffer)
@@ -143,8 +142,7 @@ function! airline#extensions#tabline#buffers#get()
call airline#extensions#tabline#add_tab_label(b)
let s:current_bufnr = curbuf
let s:current_tabnr = curtab
let s:current_bufnr = cur
let s:column_width = &columns
let s:current_tabline = b.build()
let s:current_visible_buffers = copy(b.buffers)

View File

@@ -6,46 +6,31 @@ scriptencoding utf-8
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'})
let s:spc = g:airline_symbols.space
function! s:GetAirlineSection()
if exists("g:airline_section_z_term")
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
let s:section_a = airline#section#create_left(['terminal', 'tmode'])
let s:section_z = airline#section#create(['linenr', 'maxlinenr'])
function! airline#extensions#term#apply(...) abort
if &buftype ==? 'terminal' || bufname(a:2.bufnr)[0] ==? '!'
let sections = s:GetAirlineSection()
let spc = g:airline_symbols.space
call a:1.add_section_spaced('airline_a', sections[0])
call a:1.add_section_spaced('airline_a', s:section_a)
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.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
endif
endfunction
function! airline#extensions#term#inactive_apply(...) abort
if getbufvar(a:2.bufnr, '&buftype') ==? 'terminal'
let sections = s:GetAirlineSection()
let spc = g:airline_symbols.space
call a:1.add_section_spaced('airline_a', sections[0])
call a:1.add_section_spaced('airline_a', s:section_a)
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.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
endif
endfunction

View File

@@ -1,25 +0,0 @@
" MIT License. Copyright (c) 2013-2021 Bailey Ling 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

View File

@@ -51,8 +51,7 @@ endfunction
function! s:conflict_marker()
" 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
" rst filetypes use '=======' as header
let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(>\{7\} '.annotation.'\)\)$'

View File

@@ -3,7 +3,7 @@
scriptencoding utf-8
if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM') && !has('nvim')
if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM')
finish
endif
@@ -11,25 +11,10 @@ function! airline#extensions#xkblayout#status()
if exists('g:XkbSwitchLib')
let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
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
let keyboard_layout = ''
" substitute keyboard-us to us
let keyboard_layout = substitute(FcitxCurrentIM(), 'keyboard-', '', 'g')
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'})
if has_key(short_codes, keyboard_layout)

View File

@@ -186,13 +186,6 @@ if !exists(":def") || !airline#util#has_vim9_script()
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
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
if pumvisible()
return
@@ -536,13 +529,6 @@ else
s:exec_separator({}, from, to, inverse, '')
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
if pumvisible()
return
@@ -695,5 +681,5 @@ else
endfor
endif
endfor
enddef
enddef
endif

View File

@@ -129,21 +129,15 @@ function! airline#init#bootstrap()
call extend(g:airline_symbols, {
\ 'readonly': "\ue0a2",
\ 'whitespace': "\u2632",
\ 'maxlinenr': "\u2261 ",
\ 'maxlinenr': "\u2630 ",
\ 'linenr': " \ue0a1:",
\ 'colnr': " \u2105:",
\ 'branch': "\ue0a0",
\ 'notexists': "\u0246",
\ 'dirty': "\u26a1",
\ 'crypt': nr2char(0x1F512),
\ 'executable': "\u2699",
\ }, 'keep')
" 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)
" Symbols for Unicode terminals
call s:check_defined('g:airline_left_sep', "")
@@ -154,14 +148,13 @@ function! airline#init#bootstrap()
call extend(g:airline_symbols, {
\ 'readonly': "\u229D",
\ 'whitespace': "\u2632",
\ 'maxlinenr': "\u2261",
\ 'maxlinenr': "\u2630",
\ 'linenr': " \u33d1:",
\ 'colnr': " \u2105:",
\ 'branch': "\u16A0",
\ 'notexists': "\u0246",
\ 'crypt': nr2char(0x1F512),
\ 'dirty': '!',
\ 'executable': "\u2699",
\ }, 'keep')
else
" Symbols for ASCII terminals
@@ -179,7 +172,6 @@ function! airline#init#bootstrap()
\ 'notexists': '?',
\ 'crypt': 'cr',
\ 'dirty': '!',
\ 'executable': 'x',
\ }, 'keep')
endif
@@ -192,7 +184,6 @@ function! airline#init#bootstrap()
call airline#parts#define_function('crypt', 'airline#parts#crypt')
call airline#parts#define_function('spell', 'airline#parts#spell')
call airline#parts#define_function('filetype', 'airline#parts#filetype')
call airline#parts#define_function('executable', 'airline#parts#executable')
call airline#parts#define('readonly', {
\ 'function': 'airline#parts#readonly',
\ 'accent': 'red',
@@ -204,7 +195,7 @@ function! airline#init#bootstrap()
endif
call airline#parts#define_raw('path', '%F%m')
call airline#parts#define('linenr', {
\ 'raw': '%{g:airline_symbols.linenr}%2l',
\ 'raw': '%{g:airline_symbols.linenr}%l',
\ 'accent': 'bold'})
call airline#parts#define('maxlinenr', {
\ 'raw': '/%L%{g:airline_symbols.maxlinenr}',
@@ -243,7 +234,6 @@ function! airline#init#bootstrap()
call airline#parts#define_text('bookmark', '')
call airline#parts#define_text('capslock', '')
call airline#parts#define_text('codeium', '')
call airline#parts#define_text('gutentags', '')
call airline#parts#define_text('gen_tags', '')
call airline#parts#define_text('grepper', '')
@@ -257,7 +247,7 @@ endfunction
function! airline#init#sections()
let spc = g:airline_symbols.space
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
if !exists('g:airline_section_b')
if airline#util#winwidth() > 99
@@ -277,7 +267,7 @@ function! airline#init#sections()
let g:airline_section_gutter = airline#section#create(['%='])
endif
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
if !exists('g:airline_section_y')
let g:airline_section_y = airline#section#create_right(['ffenc'])

View File

@@ -191,7 +191,7 @@ endfunction
function! airline#parts#filetype()
return (airline#util#winwidth() < 90 && strlen(&filetype) > 3)
\ ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? "\u2026" : '>')
\ ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>')
\ : &filetype
endfunction
@@ -206,11 +206,3 @@ function! airline#parts#ffenc()
return &fenc.bomb.noeolf.ff
endif
endfunction
function! airline#parts#executable()
if exists("*getfperm") && getfperm(bufname('%')) =~ 'x'
return g:airline_symbols.executable
else
return ''
endif
endfunction

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*
_ _ _ _ ~
__ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~
@@ -374,7 +374,6 @@ its contents. >
let g:airline_symbols.colnr = ' ㏇:'
let g:airline_symbols.colnr = ' ℅:'
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 = ' ␤:'
@@ -428,7 +427,7 @@ window.
>
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_c (bufferline or filename, readonly)
let g:airline_section_gutter (csv)
@@ -499,19 +498,19 @@ ale <https://github.com/dense-analysis/ale>
let g:airline#extensions#ale#enabled = 1
* ale error_symbol >
let g:airline#extensions#ale#error_symbol = 'E:'
let airline#extensions#ale#error_symbol = 'E:'
<
* ale warning >
let g:airline#extensions#ale#warning_symbol = 'W:'
let airline#extensions#ale#warning_symbol = 'W:'
* 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 >
let g:airline#extensions#ale#open_lnum_symbol = '(L'
let airline#extensions#ale#open_lnum_symbol = '(L'
<
* ale close_lnum_symbol >
let g:airline#extensions#ale#close_lnum_symbol = ')'
let airline#extensions#ale#close_lnum_symbol = ')'
------------------------------------- *airline-battery*
vim-battery <https://github.com/lambdalisue/battery.vim>
@@ -644,26 +643,20 @@ coc <https://github.com/neoclide/coc.nvim>
let g:airline#extensions#coc#enabled = 1
<
* change error symbol: >
let g:airline#extensions#coc#error_symbol = 'E:'
let airline#extensions#coc#error_symbol = 'E:'
<
* change warning symbol: >
let g:airline#extensions#coc#warning_symbol = 'W:'
let airline#extensions#coc#warning_symbol = 'W:'
<
* 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): >
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): >
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*
command-t <https://github.com/wincent/command-t>
@@ -761,7 +754,7 @@ you can use.
<
* configure the layout to not use %(%) grouping items in the statusline.
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*
Denite <https://github.com/Shougo/denite.nvim>
@@ -890,19 +883,19 @@ LanguageClient <https://github.com/autozimu/LanguageClient-neovim>
let g:airline#extensions#languageclient#enabled = 1
* languageclient error_symbol >
let g:airline#extensions#languageclient#error_symbol = 'E:'
let airline#extensions#languageclient#error_symbol = 'E:'
<
* languageclient warning_symbol >
let g:airline#extensions#languageclient#warning_symbol = 'W:'
let airline#extensions#languageclient#warning_symbol = 'W:'
* 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 >
let g:airline#extensions#languageclient#open_lnum_symbol = '(L'
let airline#extensions#languageclient#open_lnum_symbol = '(L'
<
* languageclient close_lnum_symbol >
let g:airline#extensions#languageclient#close_lnum_symbol = ')'
let airline#extensions#languageclient#close_lnum_symbol = ')'
------------------------------------- *airline-localsearch*
localsearch <https://github.com/mox-mox/vim-localsearch>
@@ -922,25 +915,25 @@ lsp <https://github.com/prabirshrestha/vim-lsp>
let g:airline#extensions#lsp#enabled = 1
* lsp error_symbol >
let g:airline#extensions#lsp#error_symbol = 'E:'
let airline#extensions#lsp#error_symbol = 'E:'
<
* lsp warning >
let g:airline#extensions#lsp#warning_symbol = 'W:'
let airline#extensions#lsp#warning_symbol = 'W:'
* 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 >
let g:airline#extensions#lsp#open_lnum_symbol = '(L'
let airline#extensions#lsp#open_lnum_symbol = '(L'
<
* lsp close_lnum_symbol >
let g:airline#extensions#lsp#close_lnum_symbol = ')'
let airline#extensions#lsp#close_lnum_symbol = ')'
<
* lsp progress skip time
Suppresses the frequency of status line updates.
Prevents heavy operation when using a language server that sends frequent progress notifications.
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*
@@ -950,10 +943,10 @@ neomake <https://github.com/neomake/neomake>
let g:airline#extensions#neomake#enabled = 1
* neomake error_symbol >
let g:airline#extensions#neomake#error_symbol = 'E:'
let airline#extensions#neomake#error_symbol = 'E:'
<
* neomake warning >
let g:airline#extensions#neomake#warning_symbol = 'W:'
let airline#extensions#neomake#warning_symbol = 'W:'
<
------------------------------------- *airline-nerdtree*
NerdTree <https://github.com/preservim/nerdtree.git>
@@ -979,19 +972,19 @@ nvimlsp <https://github.com/neovim/nvim-lsp>
let g:airline#extensions#nvimlsp#enabled = 1
* 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
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
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
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
let g:airline#extensions#nvimlsp#close_lnum_symbol = ')'
let airline#extensions#nvimlsp#close_lnum_symbol = ')'
------------------------------------- *airline-obsession*
vim-obsession <https://github.com/tpope/vim-obsession>
@@ -999,11 +992,8 @@ vim-obsession <https://github.com/tpope/vim-obsession>
* enable/disable vim-obsession integration >
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 = '$'
* set marked window indicator string when recording session is paused>
let g:airline#extensions#obsession#indicator_text_paused = ''
<
------------------------------------- *airline-omnisharp*
OmniSharp <https://github.com/OmniSharp/omnisharp-vim>
@@ -1038,7 +1028,7 @@ promptline <https://github.com/edkolev/promptline.vim>
* configure the path to the snapshot .sh file. Mandatory option. The created
file should be sourced by the shell on login >
" in .vimrc
let g:airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
" in .bashrc/.zshrc
[ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh
@@ -1047,10 +1037,10 @@ promptline <https://github.com/edkolev/promptline.vim>
let g:airline#extensions#promptline#enabled = 0
<
* configure which mode colors should be used in prompt >
let g:airline#extensions#promptline#color_template = 'normal' (default)
let g:airline#extensions#promptline#color_template = 'insert'
let g:airline#extensions#promptline#color_template = 'visual'
let g:airline#extensions#promptline#color_template = 'replace'
let airline#extensions#promptline#color_template = 'normal' (default)
let airline#extensions#promptline#color_template = 'insert'
let airline#extensions#promptline#color_template = 'visual'
let airline#extensions#promptline#color_template = 'replace'
<
------------------------------------- *airline-quickfix*
The quickfix extension is a simple built-in extension which determines
@@ -1101,16 +1091,16 @@ syntastic <https://github.com/vim-syntastic/syntastic>
adjusting the statusline.
* 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|) >
let g:airline#extensions#syntastic#stl_format_err = '%E{[%fe(#%e)]}'
let airline#extensions#syntastic#stl_format_err = '%E{[%fe(#%e)]}'
* 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|) >
let g:airline#extensions#syntastic#stl_format_warn = '%W{[%fw(#%w)]}'
let airline#extensions#syntastic#stl_format_warn = '%W{[%fw(#%w)]}'
<
------------------------------------- *airline-tabline*
Note: If you're using the ctrlspace tabline only the option marked with (c)
@@ -1118,11 +1108,6 @@ are supported!
* enable/disable enhanced tabline. (c) >
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) >
let g:airline#extensions#tabline#show_splits = 1
@@ -1130,6 +1115,9 @@ are supported!
* switch position of buffers and tabs on splited tabline (c)
(only supported for ctrlspace plugin). >
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 (has('tablineat') = 1), then you can click
on the tabline with the left mouse button to switch to that buffer, and
@@ -1146,8 +1134,6 @@ with the middle mouse button to delete that buffer.
* enable/disable displaying tabs, regardless of number. (c) >
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) >
let g:airline#extensions#tabline#show_tab_count = 1
@@ -1200,7 +1186,7 @@ Note: Not displayed if the number of tabs is less than 1
let g:airline#extensions#tabline#overflow_marker = '…'
* always show current tabpage/buffer first >
let g:airline#extensions#tabline#current_first = 1
let airline#extensions#tabline#current_first = 1
< default: 0
* enable/disable displaying index of the buffer.
@@ -1211,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
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
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 >
let g:airline#extensions#tabline#buffer_idx_mode = 1
@@ -1402,7 +1388,7 @@ Note: Not displayed if the number of tabs is less than 1
* configure pattern to be ignored on BufAdd autocommand >
" 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'
Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
@@ -1410,11 +1396,11 @@ Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
* enable Refresh of tabline buffers on |BufAdd| autocommands
(set this to one, if you note 'AirlineTablineRefresh', however, this
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
(neovim specific, only works with buffers and not real tabs, default: 0) >
let g:airline#extensions#tabline#middle_click_preserves_windows = 1
let airline#extensions#tabline#middle_click_preserves_windows = 1
<
*airline-tabline-hlgroups*
When the tabline is enabled, vim-airline exposes the following highlighting
@@ -1460,14 +1446,6 @@ Vim-Airline comes with a small extension for the styling the builtin
let g:airline#extensions#term#enabled = 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*
vim-tabws <https://github.com/s1341/vim-tabws>
@@ -1508,15 +1486,15 @@ tmuxline <https://github.com/edkolev/tmuxline.vim>
let g:airline#extensions#tmuxline#enabled = 0
<
* configure which mode colors should be used in tmux statusline >
let g:airline#extensions#tmuxline#color_template = 'normal' (default)
let g:airline#extensions#tmuxline#color_template = 'insert'
let g:airline#extensions#tmuxline#color_template = 'visual'
let g:airline#extensions#tmuxline#color_template = 'replace'
let airline#extensions#tmuxline#color_template = 'normal' (default)
let airline#extensions#tmuxline#color_template = 'insert'
let airline#extensions#tmuxline#color_template = 'visual'
let airline#extensions#tmuxline#color_template = 'replace'
<
* 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
startup >
let g:airline#extensions#tmuxline#snapshot_file =
airline#extensions#tmuxline#snapshot_file =
\ "~/.tmux-statusline-colors.conf"
<
------------------------------------- *airline-undotree*
@@ -1539,13 +1517,13 @@ Unite <https://github.com/Shougo/unite.vim>
vim9lsp <https://github.com/yegappan/lsp>
* enable/disable vim9lsp integration >
let g:airline#extensions#vim9lsp#enabled = 1
let airline#extensions#vim9lsp#enabled = 1
<
* vim9lsp error_symbol >
let g:airline#extensions#vim9lsp#error_symbol = 'E:'
let airline#extensions#vim9lsp#error_symbol = 'E:'
<
* vim9lsp warning >
let g:airline#extensions#vim9lsp#warning_symbol = 'W:'
let airline#extensions#vim9lsp#warning_symbol = 'W:'
<
------------------------------------- *airline-vimagit*
vimagit <https://github.com/jreybert/vimagit>
@@ -1559,11 +1537,6 @@ Vim-CMake <https://github.com/cdelledonne/vim-cmake>
* enable/disable Vim-CMake integration >
let g:airline#extensions#vimcmake#enabled = 1
<
------------------------------------- *airline-vimodoro*
Vimodoro <https://github.com/VimfanTPdvorak/vimodoro>
No configuration available.
------------------------------------- *airline-vimtex*
vimtex <https://github.com/lervag/vimtex>
@@ -1680,7 +1653,7 @@ vista.vim <https://github.com/liuchengxu/vista.vim>
* configure, which filetypes have special treatment of /* */ comments,
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']
<
* disable whitespace checking for an individual buffer >
@@ -1779,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'
<
Linux with fcitx (Install https://github.com/fcitx/fcitx5):
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()')`
Install https://github.com/lilydjwg/fcitx.vim) to get `FcitxCurrentIM()`
------------------------------------- *airline-xtabline*
xtabline <https://github.com/mg979/vim-xtabline>
@@ -1922,7 +1891,6 @@ The following list of parts are predefined by vim-airline.
* `iminsert` displays the current insert method
* `paste` displays the paste indicator
* `crypt` displays the crypted indicator
* `exectuable` displays the executable indicator
* `spell` displays the spell indicator
* `filetype` displays the file type
* `readonly` displays the read only indicator

View File

@@ -48,7 +48,6 @@ function! s:init()
endfunction
let s:active_winnr = -1
function! s:on_window_changed(event)
" don't trigger for Vim popup windows
if &buftype is# 'popup'
@@ -68,20 +67,11 @@ function! s:on_window_changed(event)
\ && &ft !~? 'gitcommit'
" fugitive is special, it changes names and filetypes several times,
" make sure the caching does not get into its way
if a:event ==# 'BufUnload'
" in the BufUnload event, make sure the cacheing does not prevent
" removing stale entries
call airline#highlighter#remove_separators_for_bufnr(expand('<abuf>'))
endif
return
endif
let g:airline_last_window_changed = l:key
call s:init()
call airline#update_statusline()
if a:event ==# 'BufUnload'
call airline#highlighter#remove_separators_for_bufnr(expand('<abuf>'))
endif
endfunction
function! s:on_focus_gained()

View File

@@ -0,0 +1,17 @@
Describe branch.vim
Before
call mkdir("branch-test")
:lcd branch-test
!git init
End
It Match branch name main
Assert Equals(airline#extensions#branch#get_head(), "main")
End
After
call delete("branch-test", "rf")
:lcd ..
End
End

View File

@@ -38,7 +38,7 @@ Describe init.vim
End
It section x should be filetype
Assert Equals(g:airline_section_x, '%#__accent_bold#%#__restore__#%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#wrap(airline#parts#filetype(),0)}')
Assert Equals(g:airline_section_x, '%#__accent_bold#%#__restore__#%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#wrap(airline#parts#filetype(),0)}')
End
It section y should be fenc and ff
@@ -47,7 +47,7 @@ Describe init.vim
It section z should be line numbers
Assert Match(g:airline_section_z, '%p%%')
Assert Match(g:airline_section_z, '%2l')
Assert Match(g:airline_section_z, '%l')
Assert Match(g:airline_section_z, '%v')
End

View File

@@ -4,16 +4,14 @@ Describe themes.vim
highlight clear Normal
End
It should extract correct colors with No termguicolors
if !exists("+termguicolors")
call airline#highlighter#reset_hlcache()
highlight Foo ctermfg=1 ctermbg=2
let colors = airline#themes#get_highlight('Foo')
Assert Equals(colors[0], 'NONE')
Assert Equals(colors[1], 'NONE')
Assert Equals(colors[2], '1')
Assert Equals(colors[3], '2')
endif
It should extract correct colors
call airline#highlighter#reset_hlcache()
highlight Foo ctermfg=1 ctermbg=2
let colors = airline#themes#get_highlight('Foo')
Assert Equals(colors[0], 'NONE')
Assert Equals(colors[1], 'NONE')
Assert Equals(colors[2], '1')
Assert Equals(colors[3], '2')
End
if exists("+termguicolors")