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 341 deletions

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

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 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
- 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)
@@ -86,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
@@ -136,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

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/ [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

View File

@@ -229,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')
@@ -420,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')
@@ -440,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

View File

@@ -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',

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 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'
call airline#extensions#fern#configure_sections(a:1, a:2)
return 1
endif
endfunction
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 spc = g:airline_symbols.space
let fri = fern#fri#parse(bufname(a:context.bufnr)) let fri = fern#fri#parse(expand('%f'))
let abspath = ''
" Replace uses fern-replacer filetype, do not try to parse in that case call a:1.add_section('airline_a', spc.'fern'.spc)
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') if exists('*airline#extensions#branch#get_head')
" because fern navigation changes an internal _fri_ and not the working directory call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
" 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 else
call a:win.add_section('airline_b', '') call a:1.add_section('airline_b', '')
endif endif
if !(fri.authority =~# '^drawer') if !(fri.authority =~# '^drawer')
call a:win.add_section('airline_c', spc.fnamemodify(abspath, ':~')) let abspath = substitute(fri.path, 'file://', '', '')
call a:win.split() call a:1.add_section('airline_c', spc.fnamemodify(abspath, ':~'))
call a:1.split()
if len(get(g:, 'fern#comparators', {})) if len(get(g:, 'fern#comparators', {}))
call a:win.add_section('airline_y', spc.'%{fern#comparator}'.spc) call a:1.add_section('airline_y', spc.'%{fern#comparator}'.spc)
endif endif
endif endif
return 1
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

View File

@@ -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')

View File

@@ -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

View File

@@ -4,8 +4,8 @@
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
@@ -130,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)
@@ -143,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)

View File

@@ -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

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

@@ -8,7 +8,6 @@ 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'],
@@ -52,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.'\)\)$'
@@ -63,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
@@ -123,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
@@ -154,9 +138,6 @@ 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

View File

@@ -3,7 +3,7 @@
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 = ''
endif
" substitute keyboard-us to us " substitute keyboard-us to us
let keyboard_layout = substitute(keyboard_layout, 'keyboard-', '', 'g') let keyboard_layout = substitute(FcitxCurrentIM(), 'keyboard-', '', 'g')
endif
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)

View File

@@ -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

View File

@@ -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,7 +184,6 @@ 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',
@@ -204,7 +195,7 @@ function! airline#init#bootstrap()
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}',
@@ -243,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', '')
@@ -257,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
@@ -277,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'])

View File

@@ -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,11 +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

View File

@@ -374,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 = ' ␤:'
@@ -428,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)
@@ -499,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>
@@ -644,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>
@@ -761,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>
@@ -890,19 +883,19 @@ LanguageClient <https://github.com/autozimu/LanguageClient-neovim>
let g:airline#extensions#languageclient#enabled = 1 let g:airline#extensions#languageclient#enabled = 1
* languageclient error_symbol > * languageclient error_symbol >
let g:airline#extensions#languageclient#error_symbol = 'E:' let airline#extensions#languageclient#error_symbol = 'E:'
< <
* languageclient warning_symbol > * languageclient warning_symbol >
let g:airline#extensions#languageclient#warning_symbol = 'W:' let airline#extensions#languageclient#warning_symbol = 'W:'
* languageclient show_line_numbers > * languageclient show_line_numbers >
let g:airline#extensions#languageclient#show_line_numbers = 1 let airline#extensions#languageclient#show_line_numbers = 1
< <
* languageclient open_lnum_symbol > * languageclient open_lnum_symbol >
let g:airline#extensions#languageclient#open_lnum_symbol = '(L' let airline#extensions#languageclient#open_lnum_symbol = '(L'
< <
* languageclient close_lnum_symbol > * languageclient close_lnum_symbol >
let g:airline#extensions#languageclient#close_lnum_symbol = ')' let airline#extensions#languageclient#close_lnum_symbol = ')'
------------------------------------- *airline-localsearch* ------------------------------------- *airline-localsearch*
localsearch <https://github.com/mox-mox/vim-localsearch> localsearch <https://github.com/mox-mox/vim-localsearch>
@@ -922,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*
@@ -950,10 +943,10 @@ 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-nerdtree* ------------------------------------- *airline-nerdtree*
NerdTree <https://github.com/preservim/nerdtree.git> 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 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>
@@ -999,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>
@@ -1038,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
@@ -1047,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
@@ -1101,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)
@@ -1118,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
@@ -1130,6 +1115,9 @@ 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 (has('tablineat') = 1), then you can click 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 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) > * 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
@@ -1200,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.
@@ -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 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
@@ -1402,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'.
@@ -1410,11 +1396,11 @@ Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
* enable Refresh of tabline buffers on |BufAdd| autocommands * enable Refresh of tabline buffers on |BufAdd| autocommands
(set this to one, if you note 'AirlineTablineRefresh', however, this (set this to one, if you note 'AirlineTablineRefresh', however, this
won't update airline on |:badd| commands) > won't update airline on |:badd| commands) >
let g:airline#extensions#tabline#disable_refresh = 0 let airline#extensions#tabline#disable_refresh = 0
* preserve windows when closing a buffer from the bufferline * preserve windows when closing a buffer from the bufferline
(neovim specific, only works with buffers and not real tabs, default: 0) > (neovim specific, only works with buffers and not real tabs, default: 0) >
let g:airline#extensions#tabline#middle_click_preserves_windows = 1 let airline#extensions#tabline#middle_click_preserves_windows = 1
< <
*airline-tabline-hlgroups* *airline-tabline-hlgroups*
When the tabline is enabled, vim-airline exposes the following highlighting When the tabline is enabled, vim-airline exposes the following highlighting
@@ -1460,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>
@@ -1508,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*
@@ -1539,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>
@@ -1559,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>
@@ -1680,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 >
@@ -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' 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>
@@ -1922,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

View File

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

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 End
It section x should be filetype 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 End
It section y should be fenc and ff It section y should be fenc and ff
@@ -47,7 +47,7 @@ Describe init.vim
It section z should be line numbers It section z should be line numbers
Assert Match(g:airline_section_z, '%p%%') 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') Assert Match(g:airline_section_z, '%v')
End End

View File

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