2021-01-01 20:57:00 +08:00
|
|
|
|
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
2013-08-31 05:56:12 +08:00
|
|
|
|
" vim: et ts=2 sts=2 sw=2
|
|
|
|
|
|
2016-09-24 08:16:30 +08:00
|
|
|
|
scriptencoding utf-8
|
|
|
|
|
|
2013-08-31 05:56:12 +08:00
|
|
|
|
function! s:check_defined(variable, default)
|
|
|
|
|
if !exists(a:variable)
|
|
|
|
|
let {a:variable} = a:default
|
|
|
|
|
endif
|
|
|
|
|
endfunction
|
|
|
|
|
|
2013-09-01 07:30:37 +08:00
|
|
|
|
let s:loaded = 0
|
2013-09-01 05:42:09 +08:00
|
|
|
|
function! airline#init#bootstrap()
|
2013-09-23 06:05:58 +08:00
|
|
|
|
if s:loaded
|
|
|
|
|
return
|
|
|
|
|
endif
|
|
|
|
|
let s:loaded = 1
|
2013-09-01 07:30:37 +08:00
|
|
|
|
|
2013-09-26 10:13:57 +08:00
|
|
|
|
let g:airline#init#bootstrapping = 1
|
2017-02-17 02:51:30 +08:00
|
|
|
|
|
2017-08-24 00:10:59 +08:00
|
|
|
|
let g:airline#init#vim_async = (v:version >= 800 && has('job'))
|
2017-08-22 03:26:35 +08:00
|
|
|
|
let g:airline#init#is_windows = has('win32') || has('win64')
|
2017-02-17 02:51:30 +08:00
|
|
|
|
|
2013-08-31 05:56:12 +08:00
|
|
|
|
call s:check_defined('g:airline_detect_modified', 1)
|
|
|
|
|
call s:check_defined('g:airline_detect_paste', 1)
|
2015-06-03 02:37:08 +08:00
|
|
|
|
call s:check_defined('g:airline_detect_crypt', 1)
|
2016-03-22 14:52:04 +08:00
|
|
|
|
call s:check_defined('g:airline_detect_spell', 1)
|
2017-08-02 01:25:20 +08:00
|
|
|
|
call s:check_defined('g:airline_detect_spelllang', 1)
|
2013-08-31 05:56:12 +08:00
|
|
|
|
call s:check_defined('g:airline_detect_iminsert', 0)
|
|
|
|
|
call s:check_defined('g:airline_inactive_collapse', 1)
|
|
|
|
|
call s:check_defined('g:airline_exclude_filenames', ['DebuggerWatch','DebuggerStack','DebuggerStatus'])
|
|
|
|
|
call s:check_defined('g:airline_exclude_filetypes', [])
|
|
|
|
|
call s:check_defined('g:airline_exclude_preview', 0)
|
|
|
|
|
|
|
|
|
|
call s:check_defined('g:airline_mode_map', {})
|
|
|
|
|
call extend(g:airline_mode_map, {
|
|
|
|
|
\ '__' : '------',
|
2018-10-15 20:17:49 +08:00
|
|
|
|
\ 'c' : 'COMMAND',
|
2013-08-31 05:56:12 +08:00
|
|
|
|
\ 'i' : 'INSERT',
|
2018-09-20 16:13:27 +08:00
|
|
|
|
\ 'ic' : 'INSERT COMPL',
|
|
|
|
|
\ 'ix' : 'INSERT COMPL',
|
2019-06-11 15:45:53 +08:00
|
|
|
|
\ 'multi' : 'MULTI',
|
2018-09-20 16:13:27 +08:00
|
|
|
|
\ 'n' : 'NORMAL',
|
|
|
|
|
\ 'ni' : '(INSERT)',
|
|
|
|
|
\ 'no' : 'OP PENDING',
|
2013-08-31 05:56:12 +08:00
|
|
|
|
\ 'R' : 'REPLACE',
|
2018-10-15 20:17:49 +08:00
|
|
|
|
\ 'Rv' : 'V REPLACE',
|
2013-08-31 05:56:12 +08:00
|
|
|
|
\ 's' : 'SELECT',
|
|
|
|
|
\ 'S' : 'S-LINE',
|
|
|
|
|
\ '' : 'S-BLOCK',
|
2015-05-26 00:10:27 +08:00
|
|
|
|
\ 't' : 'TERMINAL',
|
2018-10-15 20:17:49 +08:00
|
|
|
|
\ 'v' : 'VISUAL',
|
|
|
|
|
\ 'V' : 'V-LINE',
|
|
|
|
|
\ '' : 'V-BLOCK',
|
2013-08-31 05:56:12 +08:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
|
|
|
|
|
call s:check_defined('g:airline_theme_map', {})
|
|
|
|
|
call extend(g:airline_theme_map, {
|
2018-12-04 01:29:26 +08:00
|
|
|
|
\ 'default': 'dark',
|
2016-02-25 15:07:51 +08:00
|
|
|
|
\ '\CTomorrow': 'tomorrow',
|
2019-11-29 15:27:13 +08:00
|
|
|
|
\ 'base16': 'base16',
|
2013-08-31 05:56:12 +08:00
|
|
|
|
\ 'mo[l|n]okai': 'molokai',
|
2019-11-29 15:27:13 +08:00
|
|
|
|
\ 'wombat': 'wombat',
|
|
|
|
|
\ 'zenburn': 'zenburn',
|
|
|
|
|
\ 'solarized': 'solarized',
|
2016-10-10 06:37:46 +08:00
|
|
|
|
\ 'flattened': 'solarized',
|
|
|
|
|
\ '\CNeoSolarized': 'solarized',
|
2013-08-31 05:56:12 +08:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
|
2013-08-31 11:35:23 +08:00
|
|
|
|
call s:check_defined('g:airline_symbols', {})
|
2017-02-17 02:51:30 +08:00
|
|
|
|
" First define the symbols,
|
|
|
|
|
" that are common in Powerline/Unicode/ASCII mode,
|
|
|
|
|
" then add specific symbols for either mode
|
2013-08-31 11:35:23 +08:00
|
|
|
|
call extend(g:airline_symbols, {
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ 'paste': 'PASTE',
|
|
|
|
|
\ 'spell': 'SPELL',
|
|
|
|
|
\ 'modified': '+',
|
2017-08-28 03:29:40 +08:00
|
|
|
|
\ 'space': ' ',
|
2018-03-15 22:07:50 +08:00
|
|
|
|
\ 'keymap': 'Keymap:',
|
|
|
|
|
\ 'ellipsis': '...'
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
|
2017-02-28 11:32:06 +08:00
|
|
|
|
if get(g:, 'airline_powerline_fonts', 0)
|
2017-02-17 02:51:30 +08:00
|
|
|
|
" Symbols for Powerline terminals
|
|
|
|
|
call s:check_defined('g:airline_left_sep', "\ue0b0") "
|
|
|
|
|
call s:check_defined('g:airline_left_alt_sep', "\ue0b1") "
|
|
|
|
|
call s:check_defined('g:airline_right_sep', "\ue0b2") "
|
|
|
|
|
call s:check_defined('g:airline_right_alt_sep', "\ue0b3") "
|
2021-04-30 00:55:25 +08:00
|
|
|
|
" ro=, ws=☲, lnr=, mlnr=☰, colnr=, br=, nx=Ɇ, crypt=🔒, dirty=⚡
|
2021-05-10 11:12:37 +08:00
|
|
|
|
" Note: For powerline, we add an extra space after maxlinenr symbol,
|
|
|
|
|
" because it is usually setup as a ligature in most powerline patched
|
|
|
|
|
" fonts. It can be over-ridden by configuring a custom maxlinenr
|
2017-02-17 02:51:30 +08:00
|
|
|
|
call extend(g:airline_symbols, {
|
|
|
|
|
\ 'readonly': "\ue0a2",
|
|
|
|
|
\ 'whitespace': "\u2632",
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'maxlinenr': "\u2630 ",
|
|
|
|
|
\ 'linenr': " \ue0a1:",
|
|
|
|
|
\ 'colnr': " \ue0a3:",
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ 'branch': "\ue0a0",
|
|
|
|
|
\ 'notexists': "\u0246",
|
2019-04-24 21:15:29 +08:00
|
|
|
|
\ 'dirty': "\u26a1",
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ 'crypt': nr2char(0x1F512),
|
|
|
|
|
\ }, 'keep')
|
2017-02-26 05:13:16 +08:00
|
|
|
|
elseif &encoding==?'utf-8' && !get(g:, "airline_symbols_ascii", 0)
|
2017-02-17 02:51:30 +08:00
|
|
|
|
" Symbols for Unicode terminals
|
|
|
|
|
call s:check_defined('g:airline_left_sep', "")
|
|
|
|
|
call s:check_defined('g:airline_left_alt_sep', "")
|
|
|
|
|
call s:check_defined('g:airline_right_sep', "")
|
|
|
|
|
call s:check_defined('g:airline_right_alt_sep', "")
|
2021-05-08 04:29:59 +08:00
|
|
|
|
" ro=⊝, ws=☲, lnr=㏑, mlnr=☰, colnr=℅, br=ᚠ, nx=Ɇ, crypt=🔒
|
2017-02-17 02:51:30 +08:00
|
|
|
|
call extend(g:airline_symbols, {
|
|
|
|
|
\ 'readonly': "\u229D",
|
|
|
|
|
\ 'whitespace': "\u2632",
|
2021-04-30 00:55:25 +08:00
|
|
|
|
\ 'maxlinenr': "\u2630",
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'linenr': " \u33d1:",
|
|
|
|
|
\ 'colnr': " \u2105:",
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ 'branch': "\u16A0",
|
|
|
|
|
\ 'notexists': "\u0246",
|
|
|
|
|
\ 'crypt': nr2char(0x1F512),
|
2019-04-24 21:15:29 +08:00
|
|
|
|
\ 'dirty': '!',
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
else
|
|
|
|
|
" Symbols for ASCII terminals
|
|
|
|
|
call s:check_defined('g:airline_left_sep', "")
|
|
|
|
|
call s:check_defined('g:airline_left_alt_sep', "")
|
|
|
|
|
call s:check_defined('g:airline_right_sep', "")
|
|
|
|
|
call s:check_defined('g:airline_right_alt_sep', "")
|
|
|
|
|
call extend(g:airline_symbols, {
|
|
|
|
|
\ 'readonly': 'RO',
|
|
|
|
|
\ 'whitespace': '!',
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'linenr': ' ln:',
|
2021-04-30 00:55:25 +08:00
|
|
|
|
\ 'maxlinenr': '',
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'colnr': ' co:',
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ 'branch': '',
|
|
|
|
|
\ 'notexists': '?',
|
|
|
|
|
\ 'crypt': 'cr',
|
2019-04-30 23:36:31 +08:00
|
|
|
|
\ 'dirty': '!',
|
2017-02-17 02:51:30 +08:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
endif
|
2013-08-31 11:35:23 +08:00
|
|
|
|
|
2013-09-23 22:52:39 +08:00
|
|
|
|
call airline#parts#define('mode', {
|
|
|
|
|
\ 'function': 'airline#parts#mode',
|
|
|
|
|
\ 'accent': 'bold',
|
|
|
|
|
\ })
|
2013-09-01 10:48:27 +08:00
|
|
|
|
call airline#parts#define_function('iminsert', 'airline#parts#iminsert')
|
|
|
|
|
call airline#parts#define_function('paste', 'airline#parts#paste')
|
2015-06-03 02:37:08 +08:00
|
|
|
|
call airline#parts#define_function('crypt', 'airline#parts#crypt')
|
2016-03-22 14:52:04 +08:00
|
|
|
|
call airline#parts#define_function('spell', 'airline#parts#spell')
|
2013-09-02 00:07:46 +08:00
|
|
|
|
call airline#parts#define_function('filetype', 'airline#parts#filetype')
|
2013-09-01 10:48:27 +08:00
|
|
|
|
call airline#parts#define('readonly', {
|
|
|
|
|
\ 'function': 'airline#parts#readonly',
|
2013-09-15 23:59:22 +08:00
|
|
|
|
\ 'accent': 'red',
|
2013-09-01 10:48:27 +08:00
|
|
|
|
\ })
|
2021-04-23 01:17:39 +08:00
|
|
|
|
if get(g:, 'airline_section_c_only_filename',0)
|
|
|
|
|
call airline#parts#define_raw('file', '%t%m')
|
|
|
|
|
else
|
|
|
|
|
call airline#parts#define_raw('file', airline#formatter#short_path#format('%f%m'))
|
|
|
|
|
endif
|
2015-05-27 10:11:01 +08:00
|
|
|
|
call airline#parts#define_raw('path', '%F%m')
|
2016-01-23 19:48:30 +08:00
|
|
|
|
call airline#parts#define('linenr', {
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'raw': '%{g:airline_symbols.linenr}%l',
|
2017-01-27 19:10:07 +08:00
|
|
|
|
\ 'accent': 'bold'})
|
2016-03-23 14:17:17 +08:00
|
|
|
|
call airline#parts#define('maxlinenr', {
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'raw': '/%L%{g:airline_symbols.maxlinenr}',
|
2021-04-30 00:55:25 +08:00
|
|
|
|
\ 'accent': 'bold'})
|
|
|
|
|
call airline#parts#define('colnr', {
|
2021-05-10 11:12:37 +08:00
|
|
|
|
\ 'raw': '%{g:airline_symbols.colnr}%v',
|
2017-01-27 19:10:07 +08:00
|
|
|
|
\ 'accent': 'bold'})
|
2013-09-08 02:14:41 +08:00
|
|
|
|
call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
|
2019-02-20 19:24:22 +08:00
|
|
|
|
call airline#parts#define('hunks', {
|
|
|
|
|
\ 'raw': '',
|
|
|
|
|
\ 'minwidth': 100})
|
|
|
|
|
call airline#parts#define('branch', {
|
|
|
|
|
\ 'raw': '',
|
2019-04-24 22:12:54 +08:00
|
|
|
|
\ 'minwidth': 80})
|
2020-02-28 07:06:00 +08:00
|
|
|
|
call airline#parts#define('coc_status', {
|
|
|
|
|
\ 'raw': '',
|
2020-03-29 22:03:00 +08:00
|
|
|
|
\ 'accent': 'bold'
|
2020-02-28 07:06:00 +08:00
|
|
|
|
\ })
|
2021-03-20 07:42:46 +08:00
|
|
|
|
call airline#parts#define('coc_current_function', {
|
|
|
|
|
\ 'raw': '',
|
|
|
|
|
\ 'accent': 'bold'
|
|
|
|
|
\ })
|
2021-01-02 15:51:16 +08:00
|
|
|
|
call airline#parts#define('lsp_progress', {
|
|
|
|
|
\ 'raw': '',
|
|
|
|
|
\ 'accent': 'bold'
|
|
|
|
|
\ })
|
2019-02-20 19:24:22 +08:00
|
|
|
|
call airline#parts#define_empty(['obsession', 'tagbar', 'syntastic-warn',
|
|
|
|
|
\ 'syntastic-err', 'eclim', 'whitespace','windowswap',
|
2017-06-21 04:26:22 +08:00
|
|
|
|
\ 'ycm_error_count', 'ycm_warning_count', 'neomake_error_count',
|
2018-09-03 05:08:04 +08:00
|
|
|
|
\ 'neomake_warning_count', 'ale_error_count', 'ale_warning_count',
|
2021-05-09 00:06:25 +08:00
|
|
|
|
\ 'lsp_error_count', 'lsp_warning_count', 'scrollbar',
|
2020-07-20 05:04:45 +08:00
|
|
|
|
\ 'nvimlsp_error_count', 'nvimlsp_warning_count',
|
2019-05-30 03:04:32 +08:00
|
|
|
|
\ 'languageclient_error_count', 'languageclient_warning_count',
|
2020-09-29 20:55:03 +08:00
|
|
|
|
\ 'coc_warning_count', 'coc_error_count', 'vista', 'battery'])
|
2021-05-09 00:06:25 +08:00
|
|
|
|
|
2019-05-03 16:44:09 +08:00
|
|
|
|
call airline#parts#define_text('bookmark', '')
|
2014-07-29 05:56:08 +08:00
|
|
|
|
call airline#parts#define_text('capslock', '')
|
2018-02-14 17:06:44 +08:00
|
|
|
|
call airline#parts#define_text('gutentags', '')
|
2020-10-16 22:43:22 +08:00
|
|
|
|
call airline#parts#define_text('gen_tags', '')
|
2018-07-24 04:05:34 +08:00
|
|
|
|
call airline#parts#define_text('grepper', '')
|
2017-01-18 11:34:14 +08:00
|
|
|
|
call airline#parts#define_text('xkblayout', '')
|
2017-08-27 03:14:35 +08:00
|
|
|
|
call airline#parts#define_text('keymap', '')
|
2020-07-08 06:06:09 +08:00
|
|
|
|
call airline#parts#define_text('omnisharp', '')
|
2013-08-31 05:56:12 +08:00
|
|
|
|
|
2013-09-26 10:13:57 +08:00
|
|
|
|
unlet g:airline#init#bootstrapping
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
function! airline#init#sections()
|
2013-09-19 10:23:50 +08:00
|
|
|
|
let spc = g:airline_symbols.space
|
2013-08-31 05:56:12 +08:00
|
|
|
|
if !exists('g:airline_section_a')
|
2017-08-27 03:14:35 +08:00
|
|
|
|
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'keymap', 'spell', 'capslock', 'xkblayout', 'iminsert'])
|
2013-08-31 05:56:12 +08:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_b')
|
2020-09-29 20:55:03 +08:00
|
|
|
|
if airline#util#winwidth() > 99
|
|
|
|
|
let g:airline_section_b = airline#section#create(['hunks', 'branch', 'battery'])
|
|
|
|
|
else
|
|
|
|
|
let g:airline_section_b = airline#section#create(['hunks', 'branch'])
|
|
|
|
|
endif
|
2013-08-31 05:56:12 +08:00
|
|
|
|
endif
|
2013-08-31 05:59:46 +08:00
|
|
|
|
if !exists('g:airline_section_c')
|
2016-01-05 05:42:33 +08:00
|
|
|
|
if exists("+autochdir") && &autochdir == 1
|
2021-01-02 15:51:16 +08:00
|
|
|
|
let g:airline_section_c = airline#section#create(['%<', 'path', spc, 'readonly', 'coc_status', 'lsp_progress'])
|
2015-05-27 10:11:01 +08:00
|
|
|
|
else
|
2021-01-02 15:51:16 +08:00
|
|
|
|
let g:airline_section_c = airline#section#create(['%<', 'file', spc, 'readonly', 'coc_status', 'lsp_progress'])
|
2015-05-27 10:11:01 +08:00
|
|
|
|
endif
|
2013-08-31 05:59:46 +08:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_gutter')
|
2013-09-18 10:45:12 +08:00
|
|
|
|
let g:airline_section_gutter = airline#section#create(['%='])
|
2013-08-31 05:59:46 +08:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_x')
|
2021-05-09 00:06:25 +08:00
|
|
|
|
let g:airline_section_x = airline#section#create_right(['coc_current_function', 'bookmark', 'scrollbar', 'tagbar', 'vista', 'gutentags', 'gen_tags', 'omnisharp', 'grepper', 'filetype'])
|
2013-08-31 05:59:46 +08:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_y')
|
2013-08-31 06:10:04 +08:00
|
|
|
|
let g:airline_section_y = airline#section#create_right(['ffenc'])
|
2013-08-31 05:59:46 +08:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_z')
|
2019-04-24 22:12:54 +08:00
|
|
|
|
if airline#util#winwidth() > 79
|
2021-05-10 11:12:37 +08:00
|
|
|
|
let g:airline_section_z = airline#section#create(['windowswap', 'obsession', '%p%%', 'linenr', 'maxlinenr', 'colnr'])
|
2016-07-02 15:56:05 +08:00
|
|
|
|
else
|
2021-05-10 11:12:37 +08:00
|
|
|
|
let g:airline_section_z = airline#section#create(['%p%%', 'linenr', 'colnr'])
|
2016-07-02 15:56:05 +08:00
|
|
|
|
endif
|
2013-08-31 05:59:46 +08:00
|
|
|
|
endif
|
2015-12-26 13:10:55 +08:00
|
|
|
|
if !exists('g:airline_section_error')
|
2020-07-20 05:04:45 +08:00
|
|
|
|
let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic-err', 'eclim', 'neomake_error_count', 'ale_error_count', 'lsp_error_count', 'nvimlsp_error_count', 'languageclient_error_count', 'coc_error_count'])
|
2015-12-26 13:10:55 +08:00
|
|
|
|
endif
|
2013-08-31 05:59:46 +08:00
|
|
|
|
if !exists('g:airline_section_warning')
|
2020-07-20 05:04:45 +08:00
|
|
|
|
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'syntastic-warn', 'neomake_warning_count', 'ale_warning_count', 'lsp_warning_count', 'nvimlsp_warning_count', 'languageclient_warning_count', 'whitespace', 'coc_warning_count'])
|
2013-08-31 05:59:46 +08:00
|
|
|
|
endif
|
2013-08-31 05:56:12 +08:00
|
|
|
|
endfunction
|