From 78946af96238484a2efa3184bf5114b491c3831d Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Thu, 11 Jul 2013 03:03:27 +0000 Subject: [PATCH] upgrade replace to a mode of its own. --- autoload/airline.vim | 10 +++------- autoload/airline/themes.vim | 3 ++- autoload/airline/themes/badwolf.vim | 22 ++++++++++++++-------- autoload/airline/themes/dark.vim | 25 ++++++++++++------------- autoload/airline/themes/light.vim | 22 +++++++++++++--------- autoload/airline/themes/simple.vim | 7 ++++++- autoload/airline/themes/solarized.vim | 22 ++++++++++++++-------- autoload/airline/themes/solarized2.vim | 21 +++++++++++---------- plugin/airline.vim | 3 ++- 9 files changed, 77 insertions(+), 58 deletions(-) diff --git a/autoload/airline.vim b/autoload/airline.vim index 5df159fc..9eb7bade 100644 --- a/autoload/airline.vim +++ b/autoload/airline.vim @@ -143,8 +143,10 @@ let s:lastmode = '' let g:airline_current_mode_text = '' function! airline#update_highlight() let l:m = mode() - if l:m ==# "i" || l:m ==# "R" + if l:m ==# "i" let l:mode = ['insert'] + elseif l:m ==# "R" + let l:mode = ['replace'] elseif l:m ==? "v" || l:m ==# "" let l:mode = ['visual'] else @@ -157,12 +159,6 @@ function! airline#update_highlight() if &paste call add(l:mode, 'paste') endif - if l:m ==# "R" - call add(l:mode, 'replace') - endif - if &previewwindow - call add(l:mode, 'preview') - endif let mode_string = join(l:mode) if s:lastmode != mode_string diff --git a/autoload/airline/themes.vim b/autoload/airline/themes.vim index 3c125157..a09af0e8 100644 --- a/autoload/airline/themes.vim +++ b/autoload/airline/themes.vim @@ -1,5 +1,5 @@ " generates a hashtable which defines the colors for each highlight group -function! airline#themes#generate_color_map(section1, section2, section3) +function! airline#themes#generate_color_map(section1, section2, section3, file) " guifg guibg ctermfg ctermbg gui/term return { \ 'mode': [ a:section1[0] , a:section1[1] , a:section1[2] , a:section1[3] , 'bold' ] , @@ -7,5 +7,6 @@ function! airline#themes#generate_color_map(section1, section2, section3) \ 'info': [ a:section2[0] , a:section2[1] , a:section2[2] , a:section2[3] , '' ] , \ 'info_separator': [ a:section2[1] , a:section3[1] , a:section2[3] , a:section3[3] , 'bold' ] , \ 'statusline': [ a:section3[0] , a:section3[1] , a:section3[2] , a:section3[3] , '' ] , + \ 'file': [ a:file[0] , a:file[1] , a:file[2] , a:file[3] , '' ] , \ } endfunction diff --git a/autoload/airline/themes/badwolf.vim b/autoload/airline/themes/badwolf.vim index a425e765..83d517dc 100644 --- a/autoload/airline/themes/badwolf.vim +++ b/autoload/airline/themes/badwolf.vim @@ -15,9 +15,10 @@ let s:V4 = [ '#c7915b' , 173 ] " coffee let s:PA = [ '#f4cf86' , 222 ] " dirtyblonde let s:RE = [ 'ff9eb8' , 211 ] " dress -let g:airline#themes#badwolf#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#badwolf#normal.file = [ - \ '#ff2c4b' , s:N3[1] , 196 , s:N3[3] , '' ] +let s:file = [ '#ff2c4b' , s:N3[1] , 196 , s:N3[3] , '' ] + + +let g:airline#themes#badwolf#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3, s:file) let g:airline#themes#badwolf#normal_modified = { \ 'mode_separator' : [ s:N1[1] , s:N4[0] , s:N1[3] , s:N4[1] , 'bold' ] , \ 'info' : [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , @@ -26,18 +27,23 @@ let g:airline#themes#badwolf#normal_modified = { let g:airline#themes#badwolf#inactive = { \ 'mode' : [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ] } -let g:airline#themes#badwolf#insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let g:airline#themes#badwolf#insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3, s:file) let g:airline#themes#badwolf#insert_modified = { \ 'info_separator' : [ s:I2[1] , s:N2[1] , s:I2[3] , s:N2[3] , 'bold' ] , \ 'statusline' : [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } let g:airline#themes#badwolf#insert_paste = { \ 'mode' : [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , \ 'mode_separator' : [ s:PA[0] , s:I2[1] , s:PA[1] , s:I2[3] , '' ] } -let g:airline#themes#badwolf#insert_replace = { - \ 'mode' : [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] , - \ 'mode_separator' : [ s:RE[0] , s:I2[1] , s:RE[1] , s:I2[3] , '' ] } -let g:airline#themes#badwolf#visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let g:airline#themes#badwolf#replace = copy(airline#themes#badwolf#insert) +let g:airline#themes#badwolf#replace.mode = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] +let g:airline#themes#badwolf#replace.mode_separator = [ s:RE[0] , s:I2[1] , s:RE[1] , s:I2[3] , '' ] +let g:airline#themes#badwolf#replace_modified = g:airline#themes#badwolf#insert_modified + + +let g:airline#themes#badwolf#visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3, s:file) let g:airline#themes#badwolf#visual_modified = { \ 'info_separator' : [ s:V2[1] , s:V4[0] , s:V2[3] , s:V4[1] , 'bold' ] , \ 'statusline' : [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } diff --git a/autoload/airline/themes/dark.vim b/autoload/airline/themes/dark.vim index 145e6985..ad829d85 100644 --- a/autoload/airline/themes/dark.vim +++ b/autoload/airline/themes/dark.vim @@ -1,20 +1,20 @@ let g:airline#themes#dark#inactive = { 'mode': [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] } +let s:file = [ '#ff0000' , '#1c1c1c' , 160 , 233 , '' ] let s:N1 = [ '#00005f' , '#dfff00' , 17 , 190 ] let s:N2 = [ '#ffffff' , '#444444' , 255 , 238 ] let s:N3 = [ '#9cffd3' , '#202020' , 85 , 234 ] -let g:airline#themes#dark#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#dark#normal.file = [ '#ff0000' , '#1c1c1c' , 160 , 233 , '' ] - +let g:airline#themes#dark#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3, s:file) let g:airline#themes#dark#normal_modified = { \ 'info_separator': [ '#444444' , '#5f005f' , 238 , 53 , '' ] , \ 'statusline': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , \ } + let s:I1 = [ '#00005f' , '#00dfff' , 17 , 45 ] let s:I2 = [ '#ffffff' , '#005fff' , 255 , 27 ] let s:I3 = [ '#ffffff' , '#000080' , 15 , 17 ] -let g:airline#themes#dark#insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#dark#insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3, s:file) let g:airline#themes#dark#insert_modified = { \ 'info_separator': [ '#005fff' , '#5f005f' , 27 , 53 , '' ] , \ 'statusline': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , @@ -23,20 +23,19 @@ let g:airline#themes#dark#insert_paste = { \ 'mode': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , \ 'mode_separator': [ '#d78700' , s:I2[1] , 172 , s:I2[3] , '' ] , \ } -let g:airline#themes#dark#insert_replace = { - \ 'mode': [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] , - \ 'mode_separator': [ '#af0000' , s:I2[1] , 124 , s:I2[3] , '' ] , - \ } + + +let g:airline#themes#dark#replace = copy(g:airline#themes#dark#insert) +let g:airline#themes#dark#replace.mode = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] +let g:airline#themes#dark#replace.mode_separator = [ '#af0000' , s:I2[1] , 124 , s:I2[3] , '' ] +let g:airline#themes#dark#replace_modified = g:airline#themes#dark#insert_modified + let s:V1 = [ '#000000' , '#ffaf00' , 232 , 214 ] let s:V2 = [ '#000000' , '#ff5f00' , 232 , 202 ] let s:V3 = [ '#ffffff' , '#5f0000' , 15 , 52 ] -let g:airline#themes#dark#visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#dark#visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3, s:file) let g:airline#themes#dark#visual_modified = { \ 'info_separator': [ '#ff5f00' , '#5f005f' , 202 , 53 , '' ] , \ 'statusline': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , \ } - -function! airline#themes#dark#get(key, modes) - return g:airline#themes#dark#normal[key] -endfunction diff --git a/autoload/airline/themes/light.vim b/autoload/airline/themes/light.vim index 086a5a28..3d26a441 100644 --- a/autoload/airline/themes/light.vim +++ b/autoload/airline/themes/light.vim @@ -1,20 +1,20 @@ let g:airline#themes#light#inactive = { 'mode': [ '#9e9e9e' , '#ffffff' , 247 , 255 , '' ] } +let s:file = [ '#df0000' , '#ffffff' , 160 , 255 ] let s:N1 = [ '#ffffff' , '#005fff' , 255 , 27 ] let s:N2 = [ '#000087' , '#00dfff' , 18 , 45 ] let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ] -let g:airline#themes#light#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) -let g:airline#themes#light#normal.file = [ '#df0000' , '#ffffff' , 160 , 255 , '' ] - +let g:airline#themes#light#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3, s:file) let g:airline#themes#light#normal_modified = { \ 'info_separator': [ '#00dfff' , '#ffdfdf' , 45 , 224 , '' ] , \ 'statusline': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , \ } + let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] let s:I2 = [ '#005f00' , '#00df87' , 22 , 42 ] let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ] -let g:airline#themes#light#insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#light#insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3, s:file) let g:airline#themes#light#insert_modified = { \ 'info_separator': [ '#00df87' , '#ffdfdf' , 42 , 224 , '' ] , \ 'statusline': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , @@ -23,15 +23,19 @@ let g:airline#themes#light#insert_paste = { \ 'mode': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , \ 'mode_separator': [ '#d78700' , s:I2[1] , 172 , s:I2[3] , '' ] , \ } -let g:airline#themes#light#insert_replace = { - \ 'mode': [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] , - \ 'mode_separator': [ '#ff0000' , s:I2[1] , 196 , s:I2[3] , '' ] , - \ } + + +let g:airline#themes#light#replace = copy(g:airline#themes#light#insert) +let g:airline#themes#light#replace.mode = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] +let g:airline#themes#light#replace.mode_separator = [ '#ff0000' , s:I2[1] , 196 , s:I2[3] , '' ] +let g:airline#themes#light#replace_modified = g:airline#themes#light#insert_modified +let g:airline#themes#light#replace_paste = g:airline#themes#light#insert_paste + let s:V1 = [ '#ffffff' , '#ff5f00' , 255 , 202 ] let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ] let s:V3 = [ '#df5f00' , '#ffff87' , 166 , 228 ] -let g:airline#themes#light#visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#light#visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3, s:file) let g:airline#themes#light#visual_modified = { \ 'info_separator': [ '#ffaf00' , '#ffdfdf' , 214 , 224 , '' ] , \ 'statusline': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , diff --git a/autoload/airline/themes/simple.vim b/autoload/airline/themes/simple.vim index 4033bbd4..495fed50 100644 --- a/autoload/airline/themes/simple.vim +++ b/autoload/airline/themes/simple.vim @@ -55,6 +55,7 @@ let g:airline#themes#simple#normal_modified = { \ 'statusline': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , \ } + let s:I1 = s:swap ? [ s:guibg, '#5fff00' , s:termbg , 82 ] : [ '#5fff00' , s:guibg, 82 , s:termbg ] let s:I2 = [ '#ff5f00' , s:guibg, 202 , s:termbg ] let s:I3 = [ '#767676' , s:guibg, 243 , s:termbg ] @@ -72,10 +73,14 @@ let g:airline#themes#simple#insert_paste = { \ 'mode': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , \ 'mode_separator': [ '#d78700' , s:I2[1] , 172 , s:I2[3] , '' ] , \ } -let g:airline#themes#simple#insert_replace = { + + +let g:airline#themes#simple#replace = { \ 'mode': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , \ 'mode_separator': [ '#af0000' , s:I2[1] , 124 , s:I2[3] , '' ] , \ } +let g:airline#themes#simple#replace_modified = copy(g:airline#themes#simple#normal_modified) + let s:V1 = s:swap ? [ s:guibg, '#dfdf00' , s:termbg , 184 ] : [ '#dfdf00' , s:guibg, 184 , s:termbg ] let s:V2 = [ '#ff5f00' , s:guibg, 202 , s:termbg ] diff --git a/autoload/airline/themes/solarized.vim b/autoload/airline/themes/solarized.vim index c5dc3ea8..9f662629 100644 --- a/autoload/airline/themes/solarized.vim +++ b/autoload/airline/themes/solarized.vim @@ -7,25 +7,31 @@ let s:NM = { \ 'info_separator': [ '#d33682' , '#fdf6e3' , 125 , 230 , '' ] , \ 'statusline': [ '#d33682' , '#fdf6e3' , 125 , 230 , '' ] , \ } -let g:airline#themes#solarized#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let s:file = [ '#cb4b16' , s:N3[1] , 166 , s:N3[3] ] + + +let g:airline#themes#solarized#normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3, s:file) let g:airline#themes#solarized#normal_modified = s:NM -let g:airline#themes#solarized#normal.file = [ '#cb4b16' , s:N3[1] , 166 , s:N3[3] , '' ] let s:I1 = [ '#fdf6e3' , '#2aa198' , 230 , 37 ] -let g:airline#themes#solarized#insert = airline#themes#generate_color_map(s:I1, s:N2, s:N3) +let g:airline#themes#solarized#insert = airline#themes#generate_color_map(s:I1, s:N2, s:N3, s:file) let g:airline#themes#solarized#insert_modified = s:NM + " I can't find how to customise the paste and replace colors without breaking " the modified color. If someone knows how they can modify this below. "let s:IP1 = [ s:I1[0] , '#268bd2' , s:I1[2] , 33 ] -"let g:airline#themes#solarized#insert_paste = airline#themes#generate_color_map(s:IP1, s:I2, s:I3) +"let g:airline#themes#solarized#insert_paste = airline#themes#generate_color_map(s:IP1, s:I2, s:I3, s:file) "let g:airline#themes#solarized#insert_paste_modified = s:NM -"let s:IR1 = [ s:I1[0] , '#859900' , s:I1[2] , 64 ] -"let g:airline#themes#solarized#insert_replace = airline#themes#generate_color_map(s:IR1, s:I2, s:I3) -"let g:airline#themes#solarized#insert_replace_modified = s:NM + + +let s:IR1 = [ s:I1[0] , '#859900' , s:I1[2] , 64 ] +let g:airline#themes#solarized#replace = airline#themes#generate_color_map(s:IR1, s:N2, s:N3, s:file) +let g:airline#themes#solarized#replace_modified = s:NM + let s:V1 = [ '#fdf6e3' , '#6c71c4' , 230 , 61 ] -let g:airline#themes#solarized#visual = airline#themes#generate_color_map(s:V1, s:N2, s:N3) +let g:airline#themes#solarized#visual = airline#themes#generate_color_map(s:V1, s:N2, s:N3, s:file) let g:airline#themes#solarized#visual_modified = s:NM diff --git a/autoload/airline/themes/solarized2.vim b/autoload/airline/themes/solarized2.vim index 90012f91..29ac215d 100644 --- a/autoload/airline/themes/solarized2.vim +++ b/autoload/airline/themes/solarized2.vim @@ -78,29 +78,30 @@ let g:airline#themes#solarized2#inactive = { \ 'mode': [s:N3[0], s:N3[1], s:N3[2], s:N3[3], ''], \ } + let g:airline#themes#solarized2#normal = - \ airline#themes#generate_color_map(s:N1, s:N2, s:N3) + \ airline#themes#generate_color_map(s:N1, s:N2, s:N3, s:NF) let g:airline#themes#solarized2#normal_modified = \ s:NM -let g:airline#themes#solarized2#normal.file = - \ s:NF let g:airline#themes#solarized2#insert = - \ airline#themes#generate_color_map(s:I1, s:I2, s:I3) + \ airline#themes#generate_color_map(s:I1, s:I2, s:I3, s:NF) let g:airline#themes#solarized2#insert_modified = \ s:IM -let g:airline#themes#solarized2#insert.file = - \ s:NF + +let g:airline#themes#solarized2#replace = + \ airline#themes#generate_color_map(s:I1, s:I2, s:I3, s:NF) + +let g:airline#themes#solarized2#replace_modified = + \ s:IM + let g:airline#themes#solarized2#visual = - \ airline#themes#generate_color_map(s:V1, s:V2, s:V3) + \ airline#themes#generate_color_map(s:V1, s:V2, s:V3, s:NF) let g:airline#themes#solarized2#visual_modified = \ s:VM - -let g:airline#themes#solarized2#visual.file = - \ s:NF diff --git a/plugin/airline.vim b/plugin/airline.vim index 3621af94..7f462b56 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -58,8 +58,9 @@ endfunction function! s:airline_theme(...) if a:0 call airline#load_theme(a:1) + else + echo g:airline_theme endif - echo g:airline_theme endfunction command! -nargs=? -complete=customlist,get_airline_themes AirlineTheme call airline_theme()