2016-01-15 03:38:38 +01:00
|
|
|
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
2013-08-30 23:56:12 +02:00
|
|
|
|
" vim: et ts=2 sts=2 sw=2
|
|
|
|
|
|
|
|
|
|
function! s:check_defined(variable, default)
|
|
|
|
|
if !exists(a:variable)
|
|
|
|
|
let {a:variable} = a:default
|
|
|
|
|
endif
|
|
|
|
|
endfunction
|
|
|
|
|
|
2013-09-01 01:30:37 +02:00
|
|
|
|
let s:loaded = 0
|
2013-08-31 23:42:09 +02:00
|
|
|
|
function! airline#init#bootstrap()
|
2013-09-23 00:05:58 +02:00
|
|
|
|
if s:loaded
|
|
|
|
|
return
|
|
|
|
|
endif
|
|
|
|
|
let s:loaded = 1
|
2013-09-01 01:30:37 +02:00
|
|
|
|
|
2013-09-26 04:13:57 +02:00
|
|
|
|
let g:airline#init#bootstrapping = 1
|
2013-09-27 04:15:49 +02:00
|
|
|
|
call s:check_defined('g:airline_left_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b0":">")
|
|
|
|
|
call s:check_defined('g:airline_left_alt_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b1":">")
|
|
|
|
|
call s:check_defined('g:airline_right_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b2":"<")
|
|
|
|
|
call s:check_defined('g:airline_right_alt_sep', get(g:, 'airline_powerline_fonts', 0)?"\ue0b3":"<")
|
2013-08-30 23:56:12 +02:00
|
|
|
|
call s:check_defined('g:airline_detect_modified', 1)
|
|
|
|
|
call s:check_defined('g:airline_detect_paste', 1)
|
2015-06-02 20:37:08 +02:00
|
|
|
|
call s:check_defined('g:airline_detect_crypt', 1)
|
2016-03-22 07:52:04 +01:00
|
|
|
|
call s:check_defined('g:airline_detect_spell', 1)
|
2013-08-30 23:56:12 +02: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)
|
2016-02-05 22:19:48 +01:00
|
|
|
|
call s:check_defined('g:airline_gui_mode', airline#init#gui_mode())
|
2013-08-30 23:56:12 +02:00
|
|
|
|
|
|
|
|
|
call s:check_defined('g:airline_mode_map', {})
|
|
|
|
|
call extend(g:airline_mode_map, {
|
|
|
|
|
\ '__' : '------',
|
|
|
|
|
\ 'n' : 'NORMAL',
|
|
|
|
|
\ 'i' : 'INSERT',
|
|
|
|
|
\ 'R' : 'REPLACE',
|
|
|
|
|
\ 'v' : 'VISUAL',
|
|
|
|
|
\ 'V' : 'V-LINE',
|
|
|
|
|
\ 'c' : 'COMMAND',
|
|
|
|
|
\ '' : 'V-BLOCK',
|
|
|
|
|
\ 's' : 'SELECT',
|
|
|
|
|
\ 'S' : 'S-LINE',
|
|
|
|
|
\ '' : 'S-BLOCK',
|
2015-05-25 18:10:27 +02:00
|
|
|
|
\ 't' : 'TERMINAL',
|
2013-08-30 23:56:12 +02:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
|
|
|
|
|
call s:check_defined('g:airline_theme_map', {})
|
|
|
|
|
call extend(g:airline_theme_map, {
|
2016-02-25 08:07:51 +01:00
|
|
|
|
\ '\CTomorrow': 'tomorrow',
|
|
|
|
|
\ 'base16': 'base16',
|
2013-08-30 23:56:12 +02:00
|
|
|
|
\ 'mo[l|n]okai': 'molokai',
|
2016-02-25 08:07:51 +01:00
|
|
|
|
\ 'wombat': 'wombat',
|
|
|
|
|
\ 'zenburn': 'zenburn',
|
|
|
|
|
\ 'solarized': 'solarized',
|
2013-08-30 23:56:12 +02:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
|
2013-08-31 05:35:23 +02:00
|
|
|
|
call s:check_defined('g:airline_symbols', {})
|
|
|
|
|
call extend(g:airline_symbols, {
|
2016-01-28 15:54:14 +01:00
|
|
|
|
\ 'paste': 'PASTE',
|
2016-03-22 07:52:04 +01:00
|
|
|
|
\ 'spell': 'SPELL',
|
2016-01-28 15:54:14 +01:00
|
|
|
|
\ 'readonly': get(g:, 'airline_powerline_fonts', 0) ? "\ue0a2" : 'RO',
|
2013-09-27 04:15:49 +02:00
|
|
|
|
\ 'whitespace': get(g:, 'airline_powerline_fonts', 0) ? "\u2739" : '!',
|
2016-01-28 15:54:14 +01:00
|
|
|
|
\ 'linenr': get(g:, 'airline_powerline_fonts', 0) ? "\ue0a1" : ':',
|
2016-03-23 07:17:17 +01:00
|
|
|
|
\ 'maxlinenr': get(g:, 'airline_powerline_fonts', 0) ? "\u2630" : '',
|
2016-01-28 15:54:14 +01:00
|
|
|
|
\ 'branch': get(g:, 'airline_powerline_fonts', 0) ? "\ue0a0" : '',
|
2016-02-05 18:19:53 +01:00
|
|
|
|
\ 'notexists': "\u2204",
|
2013-09-04 17:47:05 +02:00
|
|
|
|
\ 'modified': '+',
|
2013-09-30 16:37:02 +02:00
|
|
|
|
\ 'space': ' ',
|
2015-06-10 04:08:49 +02:00
|
|
|
|
\ 'crypt': get(g:, 'airline_crypt_symbol', nr2char(0x1F512)),
|
2013-08-31 05:35:23 +02:00
|
|
|
|
\ }, 'keep')
|
|
|
|
|
|
2013-09-23 16:52:39 +02:00
|
|
|
|
call airline#parts#define('mode', {
|
|
|
|
|
\ 'function': 'airline#parts#mode',
|
|
|
|
|
\ 'accent': 'bold',
|
|
|
|
|
\ })
|
2013-09-01 04:48:27 +02:00
|
|
|
|
call airline#parts#define_function('iminsert', 'airline#parts#iminsert')
|
|
|
|
|
call airline#parts#define_function('paste', 'airline#parts#paste')
|
2015-06-02 20:37:08 +02:00
|
|
|
|
call airline#parts#define_function('crypt', 'airline#parts#crypt')
|
2016-03-22 07:52:04 +01:00
|
|
|
|
call airline#parts#define_function('spell', 'airline#parts#spell')
|
2013-09-01 18:07:46 +02:00
|
|
|
|
call airline#parts#define_function('filetype', 'airline#parts#filetype')
|
2013-09-01 04:48:27 +02:00
|
|
|
|
call airline#parts#define('readonly', {
|
|
|
|
|
\ 'function': 'airline#parts#readonly',
|
2013-09-15 17:59:22 +02:00
|
|
|
|
\ 'accent': 'red',
|
2013-09-01 04:48:27 +02:00
|
|
|
|
\ })
|
|
|
|
|
call airline#parts#define_raw('file', '%f%m')
|
2015-05-27 04:11:01 +02:00
|
|
|
|
call airline#parts#define_raw('path', '%F%m')
|
2016-01-23 12:48:30 +01:00
|
|
|
|
call airline#parts#define('linenr', {
|
|
|
|
|
\ 'raw': '%{g:airline_symbols.linenr}%#__accent_bold#%4l%#__restore__#',
|
|
|
|
|
\ 'accent': 'bold'})
|
2016-03-23 07:17:17 +01:00
|
|
|
|
call airline#parts#define('maxlinenr', {
|
|
|
|
|
\ 'raw': '%#__accent_bold#/%L%{g:airline_symbols.maxlinenr}%#__restore__#',
|
|
|
|
|
\ 'accent': 'bold'})
|
2013-09-07 20:14:41 +02:00
|
|
|
|
call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
|
2016-05-29 21:44:39 +02:00
|
|
|
|
call airline#parts#define_empty(['hunks', 'branch', 'obsession', 'tagbar', 'syntastic',
|
2016-01-28 19:01:05 +01:00
|
|
|
|
\ 'eclim', 'whitespace','windowswap', 'ycm_error_count', 'ycm_warning_count'])
|
2014-07-28 23:56:08 +02:00
|
|
|
|
call airline#parts#define_text('capslock', '')
|
2013-08-30 23:56:12 +02:00
|
|
|
|
|
2013-09-26 04:13:57 +02:00
|
|
|
|
unlet g:airline#init#bootstrapping
|
|
|
|
|
endfunction
|
|
|
|
|
|
2016-02-05 22:19:48 +01:00
|
|
|
|
function! airline#init#gui_mode()
|
2016-05-12 16:59:06 +02:00
|
|
|
|
return ((has('nvim') && exists('$NVIM_TUI_ENABLE_TRUE_COLOR') && !exists("+termguicolors"))
|
2016-05-12 16:32:04 +02:00
|
|
|
|
\ || has('gui_running') || (has("termtruecolor") && &guicolors == 1) || (has("termguicolors") && &termguicolors == 1)) ?
|
2016-02-05 22:19:48 +01:00
|
|
|
|
\ 'gui' : 'cterm'
|
|
|
|
|
endfunction
|
|
|
|
|
|
2013-09-26 04:13:57 +02:00
|
|
|
|
function! airline#init#sections()
|
2013-09-19 04:23:50 +02:00
|
|
|
|
let spc = g:airline_symbols.space
|
2013-08-30 23:56:12 +02:00
|
|
|
|
if !exists('g:airline_section_a')
|
2016-03-22 07:52:04 +01:00
|
|
|
|
let g:airline_section_a = airline#section#create_left(['mode', 'crypt', 'paste', 'spell', 'capslock', 'iminsert'])
|
2013-08-30 23:56:12 +02:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_b')
|
|
|
|
|
let g:airline_section_b = airline#section#create(['hunks', 'branch'])
|
|
|
|
|
endif
|
2013-08-30 23:59:46 +02:00
|
|
|
|
if !exists('g:airline_section_c')
|
2016-01-04 22:42:33 +01:00
|
|
|
|
if exists("+autochdir") && &autochdir == 1
|
2015-05-27 04:11:01 +02:00
|
|
|
|
let g:airline_section_c = airline#section#create(['%<', 'path', spc, 'readonly'])
|
|
|
|
|
else
|
|
|
|
|
let g:airline_section_c = airline#section#create(['%<', 'file', spc, 'readonly'])
|
|
|
|
|
endif
|
2013-08-30 23:59:46 +02:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_gutter')
|
2013-09-18 04:45:12 +02:00
|
|
|
|
let g:airline_section_gutter = airline#section#create(['%='])
|
2013-08-30 23:59:46 +02:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_x')
|
2013-09-01 18:07:46 +02:00
|
|
|
|
let g:airline_section_x = airline#section#create_right(['tagbar', 'filetype'])
|
2013-08-30 23:59:46 +02:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_y')
|
2013-08-31 00:10:04 +02:00
|
|
|
|
let g:airline_section_y = airline#section#create_right(['ffenc'])
|
2013-08-30 23:59:46 +02:00
|
|
|
|
endif
|
|
|
|
|
if !exists('g:airline_section_z')
|
2016-05-29 21:44:39 +02:00
|
|
|
|
let g:airline_section_z = airline#section#create(['windowswap', 'obsession', '%3p%%'.spc, 'linenr', 'maxlinenr', spc.':%3v'])
|
2013-08-30 23:59:46 +02:00
|
|
|
|
endif
|
2015-12-26 06:10:55 +01:00
|
|
|
|
if !exists('g:airline_section_error')
|
2016-01-30 06:32:29 +01:00
|
|
|
|
let g:airline_section_error = airline#section#create(['ycm_error_count', 'syntastic', 'eclim'])
|
2015-12-26 06:10:55 +01:00
|
|
|
|
endif
|
2013-08-30 23:59:46 +02:00
|
|
|
|
if !exists('g:airline_section_warning')
|
2016-01-30 06:32:29 +01:00
|
|
|
|
let g:airline_section_warning = airline#section#create(['ycm_warning_count', 'whitespace'])
|
2013-08-30 23:59:46 +02:00
|
|
|
|
endif
|
2013-08-30 23:56:12 +02:00
|
|
|
|
endfunction
|
|
|
|
|
|