Mercurial > ec-dotfiles
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 703:b7cd7465cc26 | 704:1e0f578f6752 |
|---|---|
| 1 " Author: Birger J. Nordolum <contact+srcery@mindtooth.no> | |
| 2 | |
| 3 " Description: Clap theme based on the Srcery color scheme. The theme | |
| 4 " require some tweaks to make it work. If you plan on copying or | |
| 5 " building upon this code for your own colorscheme, make sure that you | |
| 6 " are aware of the additional tweaks for Srcery. | |
| 7 | |
| 8 | |
| 9 let s:save_cpo = &cpoptions | |
| 10 set cpoptions&vim | |
| 11 | |
| 12 | |
| 13 " Srcery Palette {{{ | |
| 14 | |
| 15 " Normal Colors | |
| 16 let s:black = srcery#helper#GetColor('SrceryBlack') | |
| 17 let s:red = srcery#helper#GetColor('SrceryRed') | |
| 18 let s:green = srcery#helper#GetColor('SrceryGreen') | |
| 19 let s:yellow = srcery#helper#GetColor('SrceryYellow') | |
| 20 let s:blue = srcery#helper#GetColor('SrceryBlue') | |
| 21 let s:magenta = srcery#helper#GetColor('SrceryMagenta') | |
| 22 let s:cyan = srcery#helper#GetColor('SrceryCyan') | |
| 23 let s:white = srcery#helper#GetColor('SrceryWhite') | |
| 24 | |
| 25 " Bright Colors | |
| 26 let s:bright_black = srcery#helper#GetColor('SrceryBrightBlack') | |
| 27 let s:bright_red = srcery#helper#GetColor('SrceryBrightRed') | |
| 28 let s:bright_green = srcery#helper#GetColor('SrceryBrightGreen') | |
| 29 let s:bright_yellow = srcery#helper#GetColor('SrceryBrightYellow') | |
| 30 let s:bright_blue = srcery#helper#GetColor('SrceryBrightBlue') | |
| 31 let s:bright_magenta = srcery#helper#GetColor('SrceryBrightMagenta') | |
| 32 let s:bright_cyan = srcery#helper#GetColor('SrceryBrightCyan') | |
| 33 let s:bright_white = srcery#helper#GetColor('SrceryBrightWhite') | |
| 34 | |
| 35 " Extra Colors | |
| 36 let s:orange = srcery#helper#GetColor('SrceryOrange') | |
| 37 let s:bright_orange = srcery#helper#GetColor('SrceryBrightOrange') | |
| 38 let s:hard_black = srcery#helper#GetColor('SrceryHardBlack') | |
| 39 let s:xgray1 = srcery#helper#GetColor('SrceryXgray1') | |
| 40 let s:xgray2 = srcery#helper#GetColor('SrceryXgray2') | |
| 41 let s:xgray3 = srcery#helper#GetColor('SrceryXgray3') | |
| 42 let s:xgray4 = srcery#helper#GetColor('SrceryXgray4') | |
| 43 let s:xgray5 = srcery#helper#GetColor('SrceryXgray5') | |
| 44 let s:xgray6 = srcery#helper#GetColor('SrceryXgray6') | |
| 45 | |
| 46 "}}} | |
| 47 " Srcery Tweaks {{{ | |
| 48 | |
| 49 " The following tweaks are done to make sure that the theme works | |
| 50 " properly. Because Srcery has a transparent background as an option, | |
| 51 " some additional actions were taken to ensure that the clap colors look | |
| 52 " right regardless of this setting. | |
| 53 | |
| 54 " We need to tweak both the SignColumn and ClapSymbol to set the colors | |
| 55 " correctly. When using the transparent option, we explicitly need to | |
| 56 " change the symbol color. | |
| 57 | |
| 58 " Save original SignColumn | |
| 59 let s:original_signcolumn_bg_color = srcery#helper#GetColor('SignColumn', 'bg') | |
| 60 | |
| 61 | |
| 62 " We use an augroup to load/unload tweaks needed for the theme. Clap | |
| 63 " includes some triggers that we can hook onto. | |
| 64 | |
| 65 function! ClapSrceryLoad() abort | |
| 66 " Set column color to NONE so that clap can control this. | |
| 67 " Note! This changes also the normal SignColumn color of the | |
| 68 " main window. Might result in unexpected changes. | |
| 69 highlight SignColumn ctermbg=NONE guibg=NONE | |
| 70 | |
| 71 " Only execute the color change when the variable | |
| 72 " `g:srcery_transparent_background` set to 1. This is for | |
| 73 " making the rounded corners display correctly. Clap read the | |
| 74 " `Normal` highlight color, but in this case it's not enough, | |
| 75 " and hence the explicit change. | |
| 76 if exists('g:srcery_transparent_background') | |
| 77 let l:clap_symbol_style = 'ctermbg=' .s:black[1]. ' guibg=' .s:black[0] | |
| 78 | |
| 79 execute 'highlight ClapSymbol ' . l:clap_symbol_style | |
| 80 endif | |
| 81 endfunction | |
| 82 | |
| 83 function! ClapSrceryUnload() abort | |
| 84 " Revert the change made to SignColumn.. | |
| 85 let l:signcolumn = 'ctermbg=' . | |
| 86 \ (s:original_signcolumn_bg_color[1] ? s:original_signcolumn_bg_color[1] : 'NONE') . | |
| 87 \' guibg=' . | |
| 88 \ (s:original_signcolumn_bg_color[0] ? s:original_signcolumn_bg_color[0] : 'NONE') | |
| 89 | |
| 90 execute 'highlight SignColumn ' . l:signcolumn | |
| 91 endfunction | |
| 92 | |
| 93 augroup ClapSrcery | |
| 94 autocmd! | |
| 95 | |
| 96 autocmd User ClapOnEnter call ClapSrceryLoad() | |
| 97 autocmd User ClapOnExit call ClapSrceryUnload() | |
| 98 augroup END | |
| 99 | |
| 100 " }}} | |
| 101 " Clap Theme {{{ | |
| 102 | |
| 103 " The tweaks below is copied from the upstream code, but tweaked to use | |
| 104 " Srcery's colors. | |
| 105 " Upstream: https://github.com/liuchengxu/vim-clap/blob/master/autoload/clap/themes/material_design_dark.vim | |
| 106 | |
| 107 let s:palette = {} | |
| 108 | |
| 109 let s:palette.display = { 'ctermbg': s:xgray2[1], 'guibg': s:xgray2[0], 'ctermfg': 'NONE', } | |
| 110 | |
| 111 " Let ClapInput, ClapSpinner and ClapSearchText use the same backgound. | |
| 112 let s:bg0 = { 'ctermbg': s:xgray5[1], 'guibg': s:xgray5[0] } | |
| 113 let s:palette.input = s:bg0 | |
| 114 let s:palette.spinner = extend({ 'ctermfg': s:bright_orange[1], 'guifg': s:bright_orange[0], 'cterm': 'bold', 'gui': 'bold'}, s:bg0) | |
| 115 let s:palette.search_text = extend({ 'ctermfg': s:bright_white[1], 'guifg': s:bright_white[0], 'cterm': 'bold', 'gui': 'bold' }, s:bg0) | |
| 116 | |
| 117 let s:palette.preview = { 'ctermbg': s:xgray4[1], 'guibg': s:xgray4[0] } | |
| 118 | |
| 119 let s:palette.current_selection = { 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0], 'cterm': 'bold', 'gui': 'bold' } | |
| 120 let s:palette.current_selection_sign = { 'ctermfg': s:red[1], 'guifg': s:red[0], 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0]} | |
| 121 | |
| 122 let s:palette.selected = { 'ctermfg': 'NONE', 'guifg': s:bright_blue[0], 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0] } | |
| 123 let s:palette.selected_sign = { 'ctermfg': s:green[1], 'guifg': s:green[0], 'ctermbg': s:xgray3[1], 'guibg': s:xgray3[0] } | |
| 124 | |
| 125 let g:clap#themes#srcery#palette = s:palette | |
| 126 | |
| 127 " }}} | |
| 128 | |
| 129 | |
| 130 let &cpoptions = s:save_cpo | |
| 131 unlet s:save_cpo |
