From c2308761091b2954317526084a25aaee8c461cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20N=C3=B6lle?= Date: Fri, 8 May 2020 15:02:43 +0200 Subject: [PATCH 1/3] Airline Theme: Normal, Insert, Replace modes done --- autoload/airline/themes/darcula.vim | 172 ++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 autoload/airline/themes/darcula.vim diff --git a/autoload/airline/themes/darcula.vim b/autoload/airline/themes/darcula.vim new file mode 100644 index 0000000..2c49ed5 --- /dev/null +++ b/autoload/airline/themes/darcula.vim @@ -0,0 +1,172 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 tw=80 + +scriptencoding utf-8 + +" Airline themes are generated based on the following concepts: +" * The section of the status line, valid Airline statusline sections are: +" * airline_a (left most section) +" * airline_b (section just to the right of airline_a) +" * airline_c (section just to the right of airline_b) +" * airline_x (first section of the right most sections) +" * airline_y (section just to the right of airline_x) +" * airline_z (right most section) +" * The mode of the buffer, as reported by the :mode() function. Airline +" converts the values reported by mode() to the following: +" * normal +" * insert +" * replace +" * visual +" * inactive +" The last one is actually no real mode as returned by mode(), but used by +" airline to style inactive statuslines (e.g. windows, where the cursor +" currently does not reside in). +" * In addition to each section and mode specified above, airline themes +" can also specify overrides. Overrides can be provided for the following +" scenarios: +" * 'modified' +" * 'paste' +" +" Airline themes are specified as a global viml dictionary using the above +" sections, modes and overrides as keys to the dictionary. The name of the +" dictionary is significant and should be specified as: +" * g:airline#themes##palette +" where is substituted for the name of the theme.vim file where the +" theme definition resides. Airline themes should reside somewhere on the +" 'runtimepath' where it will be loaded at vim startup, for example: +" * autoload/airline/themes/theme_name.vim +" +" For this, the dark.vim, theme, this is defined as +let g:airline#themes#darcula#palette = {} + +" Keys in the dictionary are composed of the mode, and if specified the +" override. For example: +" * g:airline#themes#darcula#palette.normal +" * the colors for a statusline while in normal mode +" * g:airline#themes#darcula#palette.normal_modified +" * the colors for a statusline while in normal mode when the buffer has +" been modified +" * g:airline#themes#darcula#palette.visual +" * the colors for a statusline while in visual mode +" +" Values for each dictionary key is an array of color values that should be +" familiar for colorscheme designers: +" * [guifg, guibg, ctermfg, ctermbg, opts] +" See "help attr-list" for valid values for the "opt" value. +" +" Each theme must provide an array of such values for each airline section of +" the statusline (airline_a through airline_z). A convenience function, +" airline#themes#generate_color_map() exists to mirror airline_a/b/c to +" airline_x/y/z, respectively. + +" The darcula.vim theme: +let s:airline_a_normal = [ darcula#palette.statusLineFg[0], darcula#palette.tabLineSel[0], + \ darcula#palette.statusLineFg[1], darcula#palette.tabLineSel[1] ] +let s:airline_b_normal = [ darcula#palette.statusLineFg[0], darcula#palette.foldedBg[0], + \ darcula#palette.statusLineFg[1], darcula#palette.foldedBg[1] ] +let s:airline_c_normal = [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], + \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'NONE' ] +let g:airline#themes#darcula#palette.normal = airline#themes#generate_color_map(s:airline_a_normal, s:airline_b_normal, s:airline_c_normal) + +" It should be noted the above is equivalent to: +" let g:airline#themes#darcula#palette.normal = airline#themes#generate_color_map( +" \ [ '#00005f' , '#dfff00' , 17 , 190 ], " section airline_a +" \ [ '#ffffff' , '#444444' , 255 , 238 ], " section airline_b +" \ [ '#9cffd3' , '#202020' , 85 , 234 ] " section airline_c +" \) +" +" In turn, that is equivalent to: +" let g:airline#themes#darcula#palette.normal = { +" \ 'airline_a': [ '#00005f' , '#dfff00' , 17 , 190 ], "section airline_a +" \ 'airline_b': [ '#ffffff' , '#444444' , 255 , 238 ], "section airline_b +" \ 'airline_c': [ '#9cffd3' , '#202020' , 85 , 234 ], "section airline_c +" \ 'airline_x': [ '#9cffd3' , '#202020' , 85 , 234 ], "section airline_x +" \ 'airline_y': [ '#ffffff' , '#444444' , 255 , 238 ], "section airline_y +" \ 'airline_z': [ '#00005f' , '#dfff00' , 17 , 190 ] "section airline_z +" \} +" +" airline#themes#generate_color_map() also uses the values provided as +" parameters to create intermediary groups such as: +" airline_a_to_airline_b +" airline_b_to_airline_c +" etc... + +" Here we define overrides for when the buffer is modified. This will be +" applied after g:airline#themes#darcula#palette.normal, hence why only certain keys a re +" declared. +let g:airline#themes#darcula#palette.normal_modified = { + \ 'airline_c': [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], + \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'italic'] , + \ } + + +let s:airline_a_insert = [ darcula#palette.statusLineFg[0], darcula#palette.addStripe[0], + \ darcula#palette.statusLineFg[1], darcula#palette.addStripe[1] ] +let s:airline_b_insert = [ darcula#palette.statusLineFg[0], darcula#palette.foldedBg[0], + \ darcula#palette.statusLineFg[1], darcula#palette.foldedBg[1] ] +let s:airline_c_insert = [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], + \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'NONE'] +let g:airline#themes#darcula#palette.insert = airline#themes#generate_color_map(s:airline_a_insert, s:airline_b_insert, s:airline_c_insert) +let g:airline#themes#darcula#palette.insert_modified = { + \ 'airline_c': [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], + \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'italic'] , + \ } +let g:airline#themes#darcula#palette.insert_paste = { + \ 'airline_a': [ darcula#palette.statusLine[0], darcula#palette.keyword[0], + \ darcula#palette.statusLine[1], darcula#palette.keyword[1], ''] , + \ } + + +let g:airline#themes#darcula#palette.replace = copy(g:airline#themes#darcula#palette.insert) +let g:airline#themes#darcula#palette.replace.airline_a = [darcula#palette.bg[0], darcula#palette.UIRed[0], + \ darcula#palette.bg[1], darcula#palette.UIRed[1], ''] +let g:airline#themes#darcula#palette.replace_modified = g:airline#themes#darcula#palette.insert_modified + + +let s:airline_a_visual = [ '#000000' , '#ffaf00' , 232 , 214 ] +let s:airline_b_visual = [ '#000000' , '#ff5f00' , 232 , 202 ] +let s:airline_c_visual = [ '#ffffff' , '#5f0000' , 15 , 52 ] +let g:airline#themes#darcula#palette.visual = airline#themes#generate_color_map(s:airline_a_visual, s:airline_b_visual, s:airline_c_visual) +let g:airline#themes#darcula#palette.visual_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + +let s:airline_a_inactive = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] +let s:airline_b_inactive = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] +let s:airline_c_inactive = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let g:airline#themes#darcula#palette.inactive = airline#themes#generate_color_map(s:airline_a_inactive, s:airline_b_inactive, s:airline_c_inactive) +let g:airline#themes#darcula#palette.inactive_modified = { + \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ } + +" For commandline mode, we use the colors from normal mode, except the mode +" indicator should be colored differently, e.g. light green +let s:airline_a_commandline = [ '#0000ff' , '#0cff00' , 17 , 40 ] +let s:airline_b_commandline = [ '#ffffff' , '#444444' , 255 , 238 ] +let s:airline_c_commandline = [ '#9cffd3' , '#202020' , 85 , 234 ] +let g:airline#themes#darcula#palette.commandline = airline#themes#generate_color_map(s:airline_a_commandline, s:airline_b_commandline, s:airline_c_commandline) + +" Accents are used to give parts within a section a slightly different look or +" color. Here we are defining a "red" accent, which is used by the 'readonly' +" part by default. Only the foreground colors are specified, so the background +" colors are automatically extracted from the underlying section colors. What +" this means is that regardless of which section the part is defined in, it +" will be red instead of the section's foreground color. You can also have +" multiple parts with accents within a section. +let g:airline#themes#darcula#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } + + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if get(g:, 'loaded_ctrlp', 0) + let g:airline#themes#darcula#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ], + \ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ], + \ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ]) +endif + From fe46e418c9df84f7132b5eae3ddcc0090b271af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20N=C3=B6lle?= Date: Thu, 28 May 2020 08:20:58 +0200 Subject: [PATCH 2/3] Adapted Dark Airline Theme with Darcula colors --- autoload/airline/themes/darcula.vim | 140 ++++------------------------ 1 file changed, 17 insertions(+), 123 deletions(-) diff --git a/autoload/airline/themes/darcula.vim b/autoload/airline/themes/darcula.vim index 2c49ed5..9543213 100644 --- a/autoload/airline/themes/darcula.vim +++ b/autoload/airline/themes/darcula.vim @@ -2,63 +2,7 @@ " vim: et ts=2 sts=2 sw=2 tw=80 scriptencoding utf-8 - -" Airline themes are generated based on the following concepts: -" * The section of the status line, valid Airline statusline sections are: -" * airline_a (left most section) -" * airline_b (section just to the right of airline_a) -" * airline_c (section just to the right of airline_b) -" * airline_x (first section of the right most sections) -" * airline_y (section just to the right of airline_x) -" * airline_z (right most section) -" * The mode of the buffer, as reported by the :mode() function. Airline -" converts the values reported by mode() to the following: -" * normal -" * insert -" * replace -" * visual -" * inactive -" The last one is actually no real mode as returned by mode(), but used by -" airline to style inactive statuslines (e.g. windows, where the cursor -" currently does not reside in). -" * In addition to each section and mode specified above, airline themes -" can also specify overrides. Overrides can be provided for the following -" scenarios: -" * 'modified' -" * 'paste' -" -" Airline themes are specified as a global viml dictionary using the above -" sections, modes and overrides as keys to the dictionary. The name of the -" dictionary is significant and should be specified as: -" * g:airline#themes##palette -" where is substituted for the name of the theme.vim file where the -" theme definition resides. Airline themes should reside somewhere on the -" 'runtimepath' where it will be loaded at vim startup, for example: -" * autoload/airline/themes/theme_name.vim -" -" For this, the dark.vim, theme, this is defined as let g:airline#themes#darcula#palette = {} - -" Keys in the dictionary are composed of the mode, and if specified the -" override. For example: -" * g:airline#themes#darcula#palette.normal -" * the colors for a statusline while in normal mode -" * g:airline#themes#darcula#palette.normal_modified -" * the colors for a statusline while in normal mode when the buffer has -" been modified -" * g:airline#themes#darcula#palette.visual -" * the colors for a statusline while in visual mode -" -" Values for each dictionary key is an array of color values that should be -" familiar for colorscheme designers: -" * [guifg, guibg, ctermfg, ctermbg, opts] -" See "help attr-list" for valid values for the "opt" value. -" -" Each theme must provide an array of such values for each airline section of -" the statusline (airline_a through airline_z). A convenience function, -" airline#themes#generate_color_map() exists to mirror airline_a/b/c to -" airline_x/y/z, respectively. - " The darcula.vim theme: let s:airline_a_normal = [ darcula#palette.statusLineFg[0], darcula#palette.tabLineSel[0], \ darcula#palette.statusLineFg[1], darcula#palette.tabLineSel[1] ] @@ -68,32 +12,6 @@ let s:airline_c_normal = [ darcula#palette.statusLineFg[0], darcula#palette.st \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'NONE' ] let g:airline#themes#darcula#palette.normal = airline#themes#generate_color_map(s:airline_a_normal, s:airline_b_normal, s:airline_c_normal) -" It should be noted the above is equivalent to: -" let g:airline#themes#darcula#palette.normal = airline#themes#generate_color_map( -" \ [ '#00005f' , '#dfff00' , 17 , 190 ], " section airline_a -" \ [ '#ffffff' , '#444444' , 255 , 238 ], " section airline_b -" \ [ '#9cffd3' , '#202020' , 85 , 234 ] " section airline_c -" \) -" -" In turn, that is equivalent to: -" let g:airline#themes#darcula#palette.normal = { -" \ 'airline_a': [ '#00005f' , '#dfff00' , 17 , 190 ], "section airline_a -" \ 'airline_b': [ '#ffffff' , '#444444' , 255 , 238 ], "section airline_b -" \ 'airline_c': [ '#9cffd3' , '#202020' , 85 , 234 ], "section airline_c -" \ 'airline_x': [ '#9cffd3' , '#202020' , 85 , 234 ], "section airline_x -" \ 'airline_y': [ '#ffffff' , '#444444' , 255 , 238 ], "section airline_y -" \ 'airline_z': [ '#00005f' , '#dfff00' , 17 , 190 ] "section airline_z -" \} -" -" airline#themes#generate_color_map() also uses the values provided as -" parameters to create intermediary groups such as: -" airline_a_to_airline_b -" airline_b_to_airline_c -" etc... - -" Here we define overrides for when the buffer is modified. This will be -" applied after g:airline#themes#darcula#palette.normal, hence why only certain keys a re -" declared. let g:airline#themes#darcula#palette.normal_modified = { \ 'airline_c': [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'italic'] , @@ -102,71 +20,47 @@ let g:airline#themes#darcula#palette.normal_modified = { let s:airline_a_insert = [ darcula#palette.statusLineFg[0], darcula#palette.addStripe[0], \ darcula#palette.statusLineFg[1], darcula#palette.addStripe[1] ] -let s:airline_b_insert = [ darcula#palette.statusLineFg[0], darcula#palette.foldedBg[0], - \ darcula#palette.statusLineFg[1], darcula#palette.foldedBg[1] ] -let s:airline_c_insert = [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], - \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'NONE'] +let s:airline_b_insert = copy(s:airline_b_normal) +let s:airline_c_insert = copy(s:airline_c_normal) let g:airline#themes#darcula#palette.insert = airline#themes#generate_color_map(s:airline_a_insert, s:airline_b_insert, s:airline_c_insert) + let g:airline#themes#darcula#palette.insert_modified = { \ 'airline_c': [ darcula#palette.statusLineFg[0], darcula#palette.statusLine[0], \ darcula#palette.statusLineFg[1], darcula#palette.statusLine[1], 'italic'] , \ } + let g:airline#themes#darcula#palette.insert_paste = { \ 'airline_a': [ darcula#palette.statusLine[0], darcula#palette.keyword[0], \ darcula#palette.statusLine[1], darcula#palette.keyword[1], ''] , \ } - let g:airline#themes#darcula#palette.replace = copy(g:airline#themes#darcula#palette.insert) let g:airline#themes#darcula#palette.replace.airline_a = [darcula#palette.bg[0], darcula#palette.UIRed[0], \ darcula#palette.bg[1], darcula#palette.UIRed[1], ''] +let g:airline#themes#darcula#palette.replace.airline_z = copy(g:airline#themes#darcula#palette.replace.airline_a) let g:airline#themes#darcula#palette.replace_modified = g:airline#themes#darcula#palette.insert_modified -let s:airline_a_visual = [ '#000000' , '#ffaf00' , 232 , 214 ] -let s:airline_b_visual = [ '#000000' , '#ff5f00' , 232 , 202 ] -let s:airline_c_visual = [ '#ffffff' , '#5f0000' , 15 , 52 ] +let s:airline_a_visual = [ darcula#palette.fg[0], darcula#palette.selection[0], + \ darcula#palette.fg[1], darcula#palette.selection[1] ] +let s:airline_b_visual = copy(s:airline_b_normal) +let s:airline_c_visual = copy(s:airline_c_normal) let g:airline#themes#darcula#palette.visual = airline#themes#generate_color_map(s:airline_a_visual, s:airline_b_visual, s:airline_c_visual) -let g:airline#themes#darcula#palette.visual_modified = { - \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , - \ } - +let g:airline#themes#darcula#palette.visual_modified = copy(g:airline#themes#darcula#palette.normal_modified) -let s:airline_a_inactive = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] -let s:airline_b_inactive = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] -let s:airline_c_inactive = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let s:airline_a_inactive = [ darcula#palette.foldedFg[0], darcula#palette.foldedBg[0], darcula#palette.foldedFg[1], darcula#palette.foldedBg[1], '' ] +let s:airline_b_inactive = [ darcula#palette.foldedFg[0], darcula#palette.foldedBg[0], darcula#palette.foldedFg[1], darcula#palette.foldedBg[1], '' ] +let s:airline_c_inactive = [ darcula#palette.foldedFg[0], darcula#palette.foldedBg[0], darcula#palette.foldedFg[1], darcula#palette.foldedBg[1], '' ] let g:airline#themes#darcula#palette.inactive = airline#themes#generate_color_map(s:airline_a_inactive, s:airline_b_inactive, s:airline_c_inactive) let g:airline#themes#darcula#palette.inactive_modified = { \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , \ } -" For commandline mode, we use the colors from normal mode, except the mode -" indicator should be colored differently, e.g. light green -let s:airline_a_commandline = [ '#0000ff' , '#0cff00' , 17 , 40 ] -let s:airline_b_commandline = [ '#ffffff' , '#444444' , 255 , 238 ] -let s:airline_c_commandline = [ '#9cffd3' , '#202020' , 85 , 234 ] +let s:airline_a_commandline = [ darcula#palette.bg[0], darcula#palette.todo[0], darcula#palette.bg[1], darcula#palette.todo[1] ] +let s:airline_b_commandline = copy(s:airline_b_normal) +let s:airline_c_commandline = copy(s:airline_c_normal) let g:airline#themes#darcula#palette.commandline = airline#themes#generate_color_map(s:airline_a_commandline, s:airline_b_commandline, s:airline_c_commandline) -" Accents are used to give parts within a section a slightly different look or -" color. Here we are defining a "red" accent, which is used by the 'readonly' -" part by default. Only the foreground colors are specified, so the background -" colors are automatically extracted from the underlying section colors. What -" this means is that regardless of which section the part is defined in, it -" will be red instead of the section's foreground color. You can also have -" multiple parts with accents within a section. let g:airline#themes#darcula#palette.accents = { - \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ 'red': [ darcula#palette.ANSIRed[0], '' ,darcula#palette.ANSIRed[1], '' ] \ } - - -" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp -" variable so that related functionality is loaded iff the user is using -" ctrlp. Note that this is optional, and if you do not define ctrlp colors -" they will be chosen automatically from the existing palette. -if get(g:, 'loaded_ctrlp', 0) - let g:airline#themes#darcula#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( - \ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ], - \ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ], - \ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ]) -endif - From 0644ba1b1bf4b37c0c3d712be706928eac8c4b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20N=C3=B6lle?= Date: Thu, 28 May 2020 08:30:07 +0200 Subject: [PATCH 3/3] Forgot that one. --- autoload/airline/themes/darcula.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoload/airline/themes/darcula.vim b/autoload/airline/themes/darcula.vim index 9543213..3910701 100644 --- a/autoload/airline/themes/darcula.vim +++ b/autoload/airline/themes/darcula.vim @@ -53,7 +53,7 @@ let s:airline_b_inactive = [ darcula#palette.foldedFg[0], darcula#palette.folded let s:airline_c_inactive = [ darcula#palette.foldedFg[0], darcula#palette.foldedBg[0], darcula#palette.foldedFg[1], darcula#palette.foldedBg[1], '' ] let g:airline#themes#darcula#palette.inactive = airline#themes#generate_color_map(s:airline_a_inactive, s:airline_b_inactive, s:airline_c_inactive) let g:airline#themes#darcula#palette.inactive_modified = { - \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ 'airline_c': [ darcula#palette.cStructField[0], '', darcula#palette.cStructField[1], '', 'italic' ] , \ } let s:airline_a_commandline = [ darcula#palette.bg[0], darcula#palette.todo[0], darcula#palette.bg[1], darcula#palette.todo[1] ]