From 62847a8cc95a147ae17dc7f840fc5abc797d8dc9 Mon Sep 17 00:00:00 2001 From: Igbanam Ogbuluijah Date: Wed, 7 Dec 2022 02:28:19 +0000 Subject: [PATCH 1/2] add variardic arguments to get_highlight functions --- autoload/airline/highlighter.vim | 3 +-- autoload/airline/themes.vim | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/autoload/airline/highlighter.vim b/autoload/airline/highlighter.vim index a26157998..a91510091 100644 --- a/autoload/airline/highlighter.vim +++ b/autoload/airline/highlighter.vim @@ -430,12 +430,11 @@ else return res enddef - def airline#highlighter#get_highlight2(fg: list, bg: list, rest1: string = '', rest2: string = '', rest3: string = ''): list + def airline#highlighter#get_highlight2(fg: list, bg: list, ...rest: list): list var guifg = s:get_syn(fg[0], fg[1], 'gui') var guibg = s:get_syn(bg[0], bg[1], 'gui') var ctermfg = s:get_syn(fg[0], fg[1], 'cterm') var ctermbg = s:get_syn(bg[0], bg[1], 'cterm') - var rest = [ rest1, rest2, rest3 ] return s:get_array(guifg, guibg, ctermfg, ctermbg, filter(rest, (_, v) => !empty(v))) enddef diff --git a/autoload/airline/themes.vim b/autoload/airline/themes.vim index e12f15400..69e096eb3 100644 --- a/autoload/airline/themes.vim +++ b/autoload/airline/themes.vim @@ -104,12 +104,12 @@ else return palette enddef - def airline#themes#get_highlight(group: string): list - return call('airline#highlighter#get_highlight', [group]) + def airline#themes#get_highlight(group: string, ...modifiers: list): list + return call('airline#highlighter#get_highlight', [group, modifiers]) enddef - def airline#themes#get_highlight2(fg: list, bg: list): list - return call('airline#highlighter#get_highlight2', [fg, bg]) + def airline#themes#get_highlight2(fg: list, bg: list, ...modifiers: list): list + return call('airline#highlighter#get_highlight2', [fg, bg] + modifiers) enddef def airline#themes#patch(palette: dict): void From 2ae1475d0db624d7a0e2ae7c44f8d18473379870 Mon Sep 17 00:00:00 2001 From: Igbanam Ogbuluijah Date: Wed, 7 Dec 2022 02:28:40 +0000 Subject: [PATCH 2/2] add variardic arguments to generate_color_map --- autoload/airline/themes.vim | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/autoload/airline/themes.vim b/autoload/airline/themes.vim index 69e096eb3..e8c188de9 100644 --- a/autoload/airline/themes.vim +++ b/autoload/airline/themes.vim @@ -83,11 +83,11 @@ if !exists(":def") || !airline#util#has_vim9_script() finish else " New Vim9 Script Implementation - def airline#themes#generate_color_map(sect1: list, sect2: list, sect3: list): dict - # Only allows for 3 arguments currently, because Vim9 Script does not allow for a:000 - + def airline#themes#generate_color_map(sect1: list, sect2: list, sect3: list, ...rest: list): dict # all sections should be string - map(sect2, (_, v) => type(v) != type('') ? string(v) : v) + for section in [sect1, sect2, sect3] + rest + map(section, (_, v) => type(v) != type('') ? string(v) : v) + endfor var palette = { 'airline_a': [ sect1[0], sect1[1], sect1[2], sect1[3], get(sect1, 4, '') ], @@ -95,11 +95,19 @@ else 'airline_c': [ sect3[0], sect3[1], sect3[2], sect3[3], get(sect3, 4, '') ], } - extend(palette, { - 'airline_x': [ sect3[0], sect3[1], sect3[2], sect3[3], '' ], - 'airline_y': [ sect2[0], sect2[1], sect2[2], sect2[3], '' ], - 'airline_z': [ sect1[0], sect1[1], sect1[2], sect1[3], '' ], + if rest->len() > 0 + extend(palette, { + 'airline_x': [ rest[0][0], rest[0][1], rest[0][2], rest[0][3], get(rest[0], 4, '' ) ], + 'airline_y': [ rest[1][0], rest[1][1], rest[1][2], rest[1][3], get(rest[1], 4, '' ) ], + 'airline_z': [ rest[2][0], rest[2][1], rest[2][2], rest[2][3], get(rest[2], 4, '' ) ], + }) + else + extend(palette, { + 'airline_x': [ sect3[0], sect3[1], sect3[2], sect3[3], '' ], + 'airline_y': [ sect2[0], sect2[1], sect2[2], sect2[3], '' ], + 'airline_z': [ sect1[0], sect1[1], sect1[2], sect1[3], '' ], }) + endif return palette enddef