From e5fb2456d443ecdc2bf653f711d925ffd7cea6fc Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Mon, 23 Sep 2013 14:52:39 +0000 Subject: [PATCH 1/4] redefine mode as a part with a bold accent. --- autoload/airline/init.vim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/autoload/airline/init.vim b/autoload/airline/init.vim index 0871a23e..37ac856f 100644 --- a/autoload/airline/init.vim +++ b/autoload/airline/init.vim @@ -62,7 +62,10 @@ function! airline#init#bootstrap() \ 'space': ' ', \ }, 'keep') - call airline#parts#define_function('mode', 'airline#parts#mode') + call airline#parts#define('mode', { + \ 'function': 'airline#parts#mode', + \ 'accent': 'bold', + \ }) call airline#parts#define_function('iminsert', 'airline#parts#iminsert') call airline#parts#define_function('paste', 'airline#parts#paste') call airline#parts#define_function('filetype', 'airline#parts#filetype') From b07362947ebca028e60356a1fdfb62b1bd07f36a Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Mon, 23 Sep 2013 14:53:51 +0000 Subject: [PATCH 2/4] do not copy section_a to section_z this allows for the line number bolding to display nicely on all themes --- autoload/airline/themes.vim | 6 +++--- t/airline.vim | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/autoload/airline/themes.vim b/autoload/airline/themes.vim index c457dde9..bfa76732 100644 --- a/autoload/airline/themes.vim +++ b/autoload/airline/themes.vim @@ -17,9 +17,9 @@ function! airline#themes#generate_color_map(sect1, sect2, sect3, ...) \ }) else call extend(palette, { - \ 'airline_x': [ a:sect3[0] , a:sect3[1] , a:sect3[2] , a:sect3[3] , get(a:sect3 , 4 , '' ) ] , - \ 'airline_y': [ a:sect2[0] , a:sect2[1] , a:sect2[2] , a:sect2[3] , get(a:sect2 , 4 , '' ) ] , - \ 'airline_z': [ a:sect1[0] , a:sect1[1] , a:sect1[2] , a:sect1[3] , get(a:sect1 , 4 , '' ) ] , + \ 'airline_x': [ a:sect3[0] , a:sect3[1] , a:sect3[2] , a:sect3[3] , '' ] , + \ 'airline_y': [ a:sect2[0] , a:sect2[1] , a:sect2[2] , a:sect2[3] , '' ] , + \ 'airline_z': [ a:sect1[0] , a:sect1[1] , a:sect1[2] , a:sect1[3] , '' ] , \ }) endif diff --git a/t/airline.vim b/t/airline.vim index c613ad38..78ab6d7c 100644 --- a/t/airline.vim +++ b/t/airline.vim @@ -49,7 +49,7 @@ describe 'airline' it 'should allow users to redefine sections' let g:airline_section_a = airline#section#create(['mode', 'mode']) call airline#update_statusline() - Expect airline#statusline(1) =~ '%{airline#util#wrap(airline#parts#mode(),0)}%{airline#util#wrap(airline#parts#mode(),0)}' + Expect airline#statusline(1) =~ '%{airline#util#wrap(airline#parts#mode(),0)}%#airline_a#%#airline_a_bold#%{airline#util#wrap(airline#parts#mode(),0)}%#airline_a#' end it 'should remove funcrefs properly' From 248c9b0e29db2127f15867af3691b55d0a10c4a3 Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Mon, 23 Sep 2013 15:45:44 +0000 Subject: [PATCH 3/4] restore highlight group with accents for all types of parts. resolves #272. --- autoload/airline/section.vim | 20 ++++++++++---------- t/section.vim | 11 +++++++++-- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/autoload/airline/section.vim b/autoload/airline/section.vim index 6d7d476d..aba88a05 100644 --- a/autoload/airline/section.vim +++ b/autoload/airline/section.vim @@ -4,15 +4,18 @@ call airline#init#bootstrap() let s:spc = g:airline_symbols.space +function! s:wrap_accent(part, value) + if exists('a:part.accent') + return '%#__accent_'.(a:part.accent).'#'.a:value.'%#__restore__#' + endif + return a:value +endfunction + function! s:create(parts, append) let _ = '' for idx in range(len(a:parts)) let part = airline#parts#get(a:parts[idx]) - let val = '' - if exists('part.accent') - let val .= '%#__accent_'.(part.accent).'#' - endif if exists('part.function') let func = (part.function).'()' @@ -26,10 +29,10 @@ function! s:create(parts, append) let val = s:spc.g:airline_right_alt_sep.s:spc.val endif if exists('part.raw') - let _ .= val.(part.raw) + let _ .= s:wrap_accent(part, val.(part.raw)) continue else - let _ .= val.a:parts[idx] + let _ .= s:wrap_accent(part, val.a:parts[idx]) continue endif endif @@ -49,10 +52,7 @@ function! s:create(parts, append) let partval = substitute(partval, '}', ' : ""}', '') endif - let val .= partval - if exists('part.accent') - let val .= '%#__restore__#' - endif + let val .= s:wrap_accent(part, partval) let _ .= val endfor return _ diff --git a/t/section.vim b/t/section.vim index 400ca0d2..d36fe5cb 100644 --- a/t/section.vim +++ b/t/section.vim @@ -26,13 +26,20 @@ describe 'section' Expect s == '%{airline#util#prepend("text",0)}%{airline#util#wrap("text",0)}' end - it 'should prefix with accent group if provided' + it 'should prefix with accent group if provided and restore afterwards' call airline#parts#define('hi', { \ 'raw': 'hello', \ 'accent': 'red', \ }) let s = airline#section#create(['hi']) - Expect s == '%#__accent_red#hello' + Expect s == '%#__accent_red#hello%#__restore__#' + end + + it 'should accent functions' + call airline#parts#define_function('hi', 'Hello') + call airline#parts#define_accent('hi', 'bold') + let s = airline#section#create(['hi']) + Expect s == '%#__accent_bold#%{airline#util#wrap(Hello(),0)}%#__restore__#' end it 'should parse out a section from the distro' From 66d4c8c89328f389c58d87fe2379c946f0e7c14d Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Mon, 23 Sep 2013 21:18:52 +0000 Subject: [PATCH 4/4] prevent clobbering startup info message. resolves #156. --- autoload/airline.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/autoload/airline.vim b/autoload/airline.vim index f1914761..501e537e 100644 --- a/autoload/airline.vim +++ b/autoload/airline.vim @@ -43,6 +43,9 @@ function! airline#switch_theme(name) let w:airline_lastmode = '' call airline#update_statusline() call airline#load_theme() + + " this is required to prevent clobbering the startup info message, i don't know why... + call airline#check_mode(winnr()) endfunction function! airline#switch_matching_theme()