mirror of
https://github.com/vim-airline/vim-airline.git
synced 2025-07-25 15:04:44 +02:00
tabline: prepare for vim9script implementation
This commit is contained in:
parent
caaa553ce9
commit
e6bd342293
@ -11,7 +11,10 @@ endif
|
|||||||
let s:ctrlspace = get(g:, 'CtrlSpaceLoaded', 0)
|
let s:ctrlspace = get(g:, 'CtrlSpaceLoaded', 0)
|
||||||
let s:tabws = get(g:, 'tabws_loaded', 0)
|
let s:tabws = get(g:, 'tabws_loaded', 0)
|
||||||
|
|
||||||
function! airline#extensions#tabline#init(ext)
|
unlet! g:airline_experimental
|
||||||
|
if !exists(":def") || (exists(":def") && get(g:, "airline_experimental", 0)==0)
|
||||||
|
|
||||||
|
function! airline#extensions#tabline#init(ext)
|
||||||
if has('gui_running')
|
if has('gui_running')
|
||||||
set guioptions-=e
|
set guioptions-=e
|
||||||
endif
|
endif
|
||||||
@ -21,9 +24,9 @@ function! airline#extensions#tabline#init(ext)
|
|||||||
|
|
||||||
call s:toggle_on()
|
call s:toggle_on()
|
||||||
call a:ext.add_theme_func('airline#extensions#tabline#load_theme')
|
call a:ext.add_theme_func('airline#extensions#tabline#load_theme')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:toggle_off()
|
function! s:toggle_off()
|
||||||
call airline#extensions#tabline#autoshow#off()
|
call airline#extensions#tabline#autoshow#off()
|
||||||
call airline#extensions#tabline#tabs#off()
|
call airline#extensions#tabline#tabs#off()
|
||||||
call airline#extensions#tabline#buffers#off()
|
call airline#extensions#tabline#buffers#off()
|
||||||
@ -33,9 +36,9 @@ function! s:toggle_off()
|
|||||||
if s:tabws
|
if s:tabws
|
||||||
call airline#extensions#tabline#tabws#off()
|
call airline#extensions#tabline#tabws#off()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:toggle_on()
|
function! s:toggle_on()
|
||||||
if get(g:, 'airline_statusline_ontop', 0)
|
if get(g:, 'airline_statusline_ontop', 0)
|
||||||
call airline#extensions#tabline#enable()
|
call airline#extensions#tabline#enable()
|
||||||
let &tabline='%!airline#statusline('.winnr().')'
|
let &tabline='%!airline#statusline('.winnr().')'
|
||||||
@ -52,9 +55,9 @@ function! s:toggle_on()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
set tabline=%!airline#extensions#tabline#get()
|
set tabline=%!airline#extensions#tabline#get()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:update_tabline(forceit)
|
function! s:update_tabline(forceit)
|
||||||
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -74,9 +77,9 @@ function! s:update_tabline(forceit)
|
|||||||
endif
|
endif
|
||||||
call airline#util#doautocmd('BufMRUChange')
|
call airline#util#doautocmd('BufMRUChange')
|
||||||
call airline#extensions#tabline#redraw()
|
call airline#extensions#tabline#redraw()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#redraw()
|
function! airline#extensions#tabline#redraw()
|
||||||
" sometimes, the tabline is not correctly updated see #1580
|
" sometimes, the tabline is not correctly updated see #1580
|
||||||
" so force redraw here
|
" so force redraw here
|
||||||
if exists(":redrawtabline") == 2
|
if exists(":redrawtabline") == 2
|
||||||
@ -87,15 +90,15 @@ function! airline#extensions#tabline#redraw()
|
|||||||
" need something less invasive.
|
" need something less invasive.
|
||||||
let &ro = &ro
|
let &ro = &ro
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#enable()
|
function! airline#extensions#tabline#enable()
|
||||||
if &lines > 3
|
if &lines > 3
|
||||||
set showtabline=2
|
set showtabline=2
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#load_theme(palette)
|
function! airline#extensions#tabline#load_theme(palette)
|
||||||
if pumvisible()
|
if pumvisible()
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -142,11 +145,11 @@ function! airline#extensions#tabline#load_theme(palette)
|
|||||||
call airline#highlighter#exec('airline_tabmod_right', tabmod_right)
|
call airline#highlighter#exec('airline_tabmod_right', tabmod_right)
|
||||||
call airline#highlighter#exec('airline_tabhid_right', tabhid_right)
|
call airline#highlighter#exec('airline_tabhid_right', tabhid_right)
|
||||||
call airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right)
|
call airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:current_tabcnt = -1
|
let s:current_tabcnt = -1
|
||||||
|
|
||||||
function! airline#extensions#tabline#get()
|
function! airline#extensions#tabline#get()
|
||||||
let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||||
let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
||||||
|
|
||||||
@ -174,9 +177,9 @@ function! airline#extensions#tabline#get()
|
|||||||
else
|
else
|
||||||
return airline#extensions#tabline#tabs#get()
|
return airline#extensions#tabline#tabs#get()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#title(n)
|
function! airline#extensions#tabline#title(n)
|
||||||
let title = ''
|
let title = ''
|
||||||
if s:taboo
|
if s:taboo
|
||||||
let title = TabooTabTitle(a:n)
|
let title = TabooTabTitle(a:n)
|
||||||
@ -203,15 +206,15 @@ function! airline#extensions#tabline#title(n)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
return title
|
return title
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#get_buffer_name(nr, ...)
|
function! airline#extensions#tabline#get_buffer_name(nr, ...)
|
||||||
let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list()
|
let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list()
|
||||||
let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
|
let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
|
||||||
return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers)
|
return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#new_builder()
|
function! airline#extensions#tabline#new_builder()
|
||||||
let builder_context = {
|
let builder_context = {
|
||||||
\ 'active' : 1,
|
\ 'active' : 1,
|
||||||
\ 'tabline' : 1,
|
\ 'tabline' : 1,
|
||||||
@ -227,9 +230,9 @@ function! airline#extensions#tabline#new_builder()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
return airline#extensions#tabline#builder#new(builder_context)
|
return airline#extensions#tabline#builder#new(builder_context)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
||||||
let cur = bufnr('%')
|
let cur = bufnr('%')
|
||||||
if cur == a:bufnr
|
if cur == a:bufnr
|
||||||
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
||||||
@ -247,21 +250,24 @@ function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return group
|
return group
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#add_label(dict, type, right)
|
function! airline#extensions#tabline#add_label(dict, type, right)
|
||||||
if get(g:, 'airline#extensions#tabline#show_tab_type', 1)
|
if get(g:, 'airline#extensions#tabline#show_tab_type', 1)
|
||||||
call a:dict.add_section_spaced('airline_tablabel'.
|
call a:dict.add_section_spaced('airline_tablabel'.
|
||||||
\ (a:right ? '_right' : ''),
|
\ (a:right ? '_right' : ''),
|
||||||
\ get(g:, 'airline#extensions#tabline#'.a:type.'_label', a:type))
|
\ get(g:, 'airline#extensions#tabline#'.a:type.'_label', a:type))
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#tabline#add_tab_label(dict)
|
function! airline#extensions#tabline#add_tab_label(dict)
|
||||||
let show_tab_count = get(g:, 'airline#extensions#tabline#show_tab_count', 1)
|
let show_tab_count = get(g:, 'airline#extensions#tabline#show_tab_count', 1)
|
||||||
if show_tab_count == 2
|
if show_tab_count == 2
|
||||||
call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
||||||
elseif show_tab_count == 1 && tabpagenr('$') > 1
|
elseif show_tab_count == 1 && tabpagenr('$') > 1
|
||||||
call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
else
|
||||||
|
" Vim9 Script implementation
|
||||||
|
endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user