mirror of
https://github.com/vim-airline/vim-airline.git
synced 2025-07-20 04:24:41 +02:00
default tablineformatter: implement as vim9 script
This commit is contained in:
parent
8ec6f1e40f
commit
9387517f01
@ -3,7 +3,6 @@
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
unlet! g:airline_experimental
|
||||
if !exists(":def") || (exists(":def") && get(g:, "airline_experimental", 0)==0)
|
||||
function! airline#extensions#tabline#formatters#default#format(bufnr, buffers)
|
||||
let fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
||||
@ -46,4 +45,38 @@ if !exists(":def") || (exists(":def") && get(g:, "airline_experimental", 0)==0)
|
||||
return _
|
||||
endfunction
|
||||
else
|
||||
" New Vim9 script implementation {{{1
|
||||
def airline#extensions#tabline#formatters#default#format(bufnr: number, buffers: list<number>): string # {{{2
|
||||
var fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
|
||||
var result = ''
|
||||
var fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
||||
|
||||
var name = bufname(bufnr)
|
||||
if empty(name)
|
||||
result = '[No Name]'
|
||||
elseif name =~ 'term://'
|
||||
# Neovim Terminal
|
||||
result = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '')
|
||||
else
|
||||
if get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
||||
result = pathshorten(fnamemodify(name, fmod))
|
||||
else
|
||||
result = fnamemodify(name, fmod)
|
||||
endif
|
||||
if bufnr != bufnr('%') && fnametruncate && strlen(result) > fnametruncate
|
||||
result = strpart(result, 0, fnametruncate)
|
||||
endif
|
||||
endif
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(bufnr, result)
|
||||
enddef
|
||||
def airline#extensions#tabline#formatters#default#wrap_name(bufnr: number, buffer_name: string): string # {{{2
|
||||
var buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0)
|
||||
var buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ')
|
||||
var result = buf_nr_show ? printf(buf_nr_format, bufnr) : ''
|
||||
result = result .. substitute(buffer_name, '\\', '/', 'g')
|
||||
if getbufvar(bufnr, '&modified') == 1
|
||||
result = result .. g:airline_symbols.modified
|
||||
endif
|
||||
return result
|
||||
enddef
|
||||
endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user