diff vendor/vim-packs/srcery-vim/autoload/clap/themes/srcery.vim @ 704:1e0f578f6752

Update vendor and add support for vim packs
author nanaya <me@nanaya.net>
date Sun, 18 Dec 2022 20:06:46 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/vim-packs/srcery-vim/autoload/clap/themes/srcery.vim	Sun Dec 18 20:06:46 2022 +0900
@@ -0,0 +1,131 @@
+" Author: Birger J. Nordolum  <contact+srcery@mindtooth.no>
+
+" Description: Clap theme based on the Srcery color scheme.  The theme
+" require some tweaks to make it work.  If you plan on copying or
+" building upon this code for your own colorscheme, make sure that you
+" are aware of the additional tweaks for Srcery.
+
+
+let s:save_cpo = &cpoptions
+set cpoptions&vim
+
+
+" Srcery Palette {{{
+
+" Normal Colors
+let s:black          = srcery#helper#GetColor('SrceryBlack')
+let s:red            = srcery#helper#GetColor('SrceryRed')
+let s:green          = srcery#helper#GetColor('SrceryGreen')
+let s:yellow         = srcery#helper#GetColor('SrceryYellow')
+let s:blue           = srcery#helper#GetColor('SrceryBlue')
+let s:magenta        = srcery#helper#GetColor('SrceryMagenta')
+let s:cyan           = srcery#helper#GetColor('SrceryCyan')
+let s:white          = srcery#helper#GetColor('SrceryWhite')
+
+" Bright Colors
+let s:bright_black   = srcery#helper#GetColor('SrceryBrightBlack')
+let s:bright_red     = srcery#helper#GetColor('SrceryBrightRed')
+let s:bright_green   = srcery#helper#GetColor('SrceryBrightGreen')
+let s:bright_yellow  = srcery#helper#GetColor('SrceryBrightYellow')
+let s:bright_blue    = srcery#helper#GetColor('SrceryBrightBlue')
+let s:bright_magenta = srcery#helper#GetColor('SrceryBrightMagenta')
+let s:bright_cyan    = srcery#helper#GetColor('SrceryBrightCyan')
+let s:bright_white   = srcery#helper#GetColor('SrceryBrightWhite')
+
+" Extra Colors
+let s:orange         = srcery#helper#GetColor('SrceryOrange')
+let s:bright_orange  = srcery#helper#GetColor('SrceryBrightOrange')
+let s:hard_black     = srcery#helper#GetColor('SrceryHardBlack')
+let s:xgray1         = srcery#helper#GetColor('SrceryXgray1')
+let s:xgray2         = srcery#helper#GetColor('SrceryXgray2')
+let s:xgray3         = srcery#helper#GetColor('SrceryXgray3')
+let s:xgray4         = srcery#helper#GetColor('SrceryXgray4')
+let s:xgray5         = srcery#helper#GetColor('SrceryXgray5')
+let s:xgray6         = srcery#helper#GetColor('SrceryXgray6')
+
+"}}}
+" Srcery Tweaks {{{
+
+" The following tweaks are done to make sure that the theme works
+" properly. Because Srcery has a transparent background as an option,
+" some additional actions were taken to ensure that the clap colors look
+" right regardless of this setting.
+
+" We need to tweak both the SignColumn and ClapSymbol to set the colors
+" correctly. When using the transparent option, we explicitly need to
+" change the symbol color.
+
+" Save original SignColumn
+let s:original_signcolumn_bg_color = srcery#helper#GetColor('SignColumn', 'bg')
+
+
+" We use an augroup to load/unload tweaks needed for the theme. Clap
+" includes some triggers that we can hook onto.
+
+function! ClapSrceryLoad() abort
+	" Set column color to NONE so that clap can control this.
+	" Note!  This changes also the normal SignColumn color of the
+	" main window.  Might result in unexpected changes.
+	highlight SignColumn ctermbg=NONE guibg=NONE
+
+	" Only execute the color change when the variable
+	" `g:srcery_transparent_background` set to 1. This is for
+	" making the rounded corners display correctly.  Clap read the
+	" `Normal` highlight color, but in this case it's not enough,
+	" and hence the explicit change.
+	if exists('g:srcery_transparent_background')
+		let l:clap_symbol_style = 'ctermbg=' .s:black[1]. ' guibg=' .s:black[0]
+
+		execute 'highlight ClapSymbol ' . l:clap_symbol_style
+	endif
+endfunction
+
+function! ClapSrceryUnload() abort
+	" Revert the change made to SignColumn..
+	let l:signcolumn = 'ctermbg=' .
+		\ (s:original_signcolumn_bg_color[1] ? s:original_signcolumn_bg_color[1] : 'NONE') .
+		\' guibg=' .
+		\ (s:original_signcolumn_bg_color[0] ? s:original_signcolumn_bg_color[0] : 'NONE')
+
+	execute 'highlight SignColumn ' . l:signcolumn
+endfunction
+
+augroup ClapSrcery
+  autocmd!
+
+  autocmd User ClapOnEnter   call ClapSrceryLoad()
+  autocmd User ClapOnExit    call ClapSrceryUnload()
+augroup END
+
+" }}}
+" Clap Theme {{{
+
+" The tweaks below is copied from the upstream code, but tweaked to use
+" Srcery's colors.
+" Upstream: https://github.com/liuchengxu/vim-clap/blob/master/autoload/clap/themes/material_design_dark.vim
+
+let s:palette = {}
+
+let s:palette.display = { 'ctermbg': s:xgray2[1], 'guibg': s:xgray2[0], 'ctermfg': 'NONE', }
+
+" Let ClapInput, ClapSpinner and ClapSearchText use the same backgound.
+let s:bg0 = { 'ctermbg': s:xgray5[1], 'guibg': s:xgray5[0] }
+let s:palette.input = s:bg0
+let s:palette.spinner = extend({ 'ctermfg': s:bright_orange[1], 'guifg': s:bright_orange[0], 'cterm': 'bold', 'gui': 'bold'}, s:bg0)
+let s:palette.search_text = extend({ 'ctermfg': s:bright_white[1], 'guifg': s:bright_white[0], 'cterm': 'bold', 'gui': 'bold' }, s:bg0)
+
+let s:palette.preview = { 'ctermbg': s:xgray4[1], 'guibg': s:xgray4[0] }
+
+let s:palette.current_selection = { 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0], 'cterm': 'bold', 'gui': 'bold' }
+let s:palette.current_selection_sign = { 'ctermfg': s:red[1], 'guifg': s:red[0], 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0]}
+
+let s:palette.selected = { 'ctermfg': 'NONE', 'guifg': s:bright_blue[0], 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0] }
+let s:palette.selected_sign = { 'ctermfg': s:green[1], 'guifg': s:green[0], 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0] }
+
+let g:clap#themes#srcery#palette = s:palette
+
+" }}}
+
+
+let &cpoptions = s:save_cpo
+unlet s:save_cpo