From ac58bc995468dced5f0ec2ffdaec2fdc5a465a46 Mon Sep 17 00:00:00 2001 From: Claudia Hardman Date: Mon, 16 Feb 2015 12:00:52 -0500 Subject: [PATCH] Add support for 24-bit colors with +termtruecolor flag --- autoload/airline/builder.vim | 2 +- autoload/airline/highlighter.vim | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/autoload/airline/builder.vim b/autoload/airline/builder.vim index 0c35a31..ee4bbb7 100644 --- a/autoload/airline/builder.vim +++ b/autoload/airline/builder.vim @@ -77,7 +77,7 @@ function! s:should_change_group(group1, group2) endif let color1 = airline#highlighter#get_highlight(a:group1) let color2 = airline#highlighter#get_highlight(a:group2) - if has('gui_running') + if has('gui_running') || (has("termtruecolor") && &guicolors == 1) return color1[1] != color2[1] || color1[0] != color2[0] else return color1[3] != color2[3] || color1[2] != color2[2] diff --git a/autoload/airline/highlighter.vim b/autoload/airline/highlighter.vim index 02bccbb..c1542fa 100644 --- a/autoload/airline/highlighter.vim +++ b/autoload/airline/highlighter.vim @@ -16,13 +16,13 @@ endfunction function! s:get_syn(group, what) " need to pass in mode, known to break on 7.3.547 - let mode = has('gui_running') ? 'gui' : 'cterm' + let mode = has('gui_running') || (has("termtruecolor") && &guicolors == 1) ? 'gui' : 'cterm' let color = synIDattr(synIDtrans(hlID(a:group)), a:what, mode) if empty(color) || color == -1 let color = synIDattr(synIDtrans(hlID('Normal')), a:what, mode) endif if empty(color) || color == -1 - if has('gui_running') + if has('gui_running') || (has("termtruecolor") && &guicolors == 1) let color = a:what ==# 'fg' ? '#000000' : '#FFFFFF' else let color = a:what ==# 'fg' ? 0 : 1 @@ -34,7 +34,7 @@ endfunction function! s:get_array(fg, bg, opts) let fg = a:fg let bg = a:bg - return has('gui_running') + return has('gui_running') || (has("termtruecolor") && &guicolors == 1) \ ? [ fg, bg, '', '', join(a:opts, ',') ] \ : [ '', '', fg, bg, join(a:opts, ',') ] endfunction @@ -42,7 +42,7 @@ endfunction function! airline#highlighter#get_highlight(group, ...) let fg = s:get_syn(a:group, 'fg') let bg = s:get_syn(a:group, 'bg') - let reverse = has('gui_running') + let reverse = has('gui_running') || (has("termtruecolor") && &guicolors == 1) \ ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui') \ : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm') \|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')