Mercurial > ec-dotfiles
view vendor/vim-packs/srcery-vim/colors/srcery.vim @ 715:3f0fd2156612
Handle tmux beta version
author | nanaya <me@nanaya.net> |
---|---|
date | Wed, 08 Nov 2023 14:21:35 +0900 |
parents | 1e0f578f6752 |
children | 78469331407e |
line wrap: on
line source
" 'srcery.vim' -- Vim color scheme. " Maintainer: Roosta (mail@roosta.sh) " Description: Colorscheme that focus ease of use and clearly defined contrasting colors with a slightly earthy tone. " Original Source: https://github.com/morhetz/gruvbox scriptencoding utf-8 set background=dark if v:version > 580 hi clear if exists('syntax_on') syntax reset endif endif let g:colors_name='srcery' if !has('gui_running') && &t_Co != 256 finish endif " Palette {{{ let s:none = g:srcery#palette.none " 16 base colors let s:black = g:srcery#palette.black let s:red = g:srcery#palette.red let s:green = g:srcery#palette.green let s:yellow = g:srcery#palette.yellow let s:blue = g:srcery#palette.blue let s:magenta = g:srcery#palette.magenta let s:cyan = g:srcery#palette.cyan let s:white = g:srcery#palette.white let s:bright_black = g:srcery#palette.bright_black let s:bright_red = g:srcery#palette.bright_red let s:bright_green = g:srcery#palette.bright_green let s:bright_yellow = g:srcery#palette.bright_yellow let s:bright_blue = g:srcery#palette.bright_blue let s:bright_magenta = g:srcery#palette.bright_magenta let s:bright_cyan = g:srcery#palette.bright_cyan let s:bright_white = g:srcery#palette.bright_white " xterm colors let s:orange = g:srcery#palette.orange let s:bright_orange = g:srcery#palette.bright_orange let s:hard_black = g:srcery#palette.hard_black let s:xgray1 = g:srcery#palette.xgray1 let s:xgray2 = g:srcery#palette.xgray2 let s:xgray3 = g:srcery#palette.xgray3 let s:xgray4 = g:srcery#palette.xgray4 let s:xgray5 = g:srcery#palette.xgray5 let s:xgray6 = g:srcery#palette.xgray6 "}}} " Setup Emphasis: {{{ let s:bold = g:srcery#palette.bold let s:italic = g:srcery#palette.italic let s:underline = g:srcery#palette.underline let s:undercurl = g:srcery#palette.undercurl let s:inverse = g:srcery#palette.inverse " }}} " Highlighting Function: {{{ function! s:HL(group, fg, ...) " Arguments: group, guifg, guibg, gui, guisp " foreground let l:fg = a:fg " background if a:0 >= 1 let l:bg = a:1 else let l:bg = s:none endif " emphasis if a:0 >= 2 && strlen(a:2) let l:emstr = a:2 else let l:emstr = 'NONE,' endif " special fallback if a:0 >= 3 if g:srcery_guisp_fallback !=# 'NONE' let fg = a:3 endif " bg fallback mode should invert higlighting if g:srcery_guisp_fallback ==# 'bg' let emstr .= 'inverse,' endif endif let l:histring = [ 'hi', a:group, \ 'guifg=' . l:fg[0], 'ctermfg=' . l:fg[1], \ 'guibg=' . l:bg[0], 'ctermbg=' . l:bg[1], \ 'gui=' . l:emstr[:-2], 'cterm=' . l:emstr[:-2] \ ] " special if a:0 >= 3 call add(l:histring, 'guisp=' . a:3[0]) endif execute join(l:histring, ' ') endfunction "}}} " Srcery Hi Groups: {{{ " memoize common hi groups call s:HL('SrceryRed', s:red) call s:HL('SrceryGreen', s:green) call s:HL('SrceryYellow', s:yellow) call s:HL('SrceryBlue', s:blue) call s:HL('SrceryMagenta', s:magenta) call s:HL('SrceryCyan', s:cyan) call s:HL('SrceryBlack', s:black) call s:HL('SrceryWhite', s:white) call s:HL('SrceryRedBold', s:red, s:none, s:bold) call s:HL('SrceryGreenBold', s:green, s:none, s:bold) call s:HL('SrceryYellowBold', s:yellow, s:none, s:bold) call s:HL('SrceryBlueBold', s:blue, s:none, s:bold) call s:HL('SrceryMagentaBold', s:magenta, s:none, s:bold) call s:HL('SrceryCyanBold', s:cyan, s:none, s:bold) call s:HL('SrceryBlackBold', s:black, s:none, s:bold) call s:HL('SrceryWhiteBold', s:white, s:none, s:bold) call s:HL('SrceryBrightRed', s:bright_red, s:none) call s:HL('SrceryBrightGreen', s:bright_green, s:none) call s:HL('SrceryBrightYellow', s:bright_yellow, s:none) call s:HL('SrceryBrightBlue', s:bright_blue, s:none) call s:HL('SrceryBrightMagenta', s:bright_magenta, s:none) call s:HL('SrceryBrightCyan', s:bright_cyan, s:none) call s:HL('SrceryBrightBlack', s:bright_black, s:none) call s:HL('SrceryBrightWhite', s:bright_white) call s:HL('SrceryBrightRedBold', s:bright_red, s:none, s:bold) call s:HL('SrceryBrightGreenBold', s:bright_green, s:none, s:bold) call s:HL('SrceryBrightYellowBold', s:bright_yellow, s:none, s:bold) call s:HL('SrceryBrightBlueBold', s:bright_blue, s:none, s:bold) call s:HL('SrceryBrightMagentaBold', s:bright_magenta, s:none, s:bold) call s:HL('SrceryBrightCyanBold', s:bright_cyan, s:none, s:bold) call s:HL('SrceryBrightBlackBold', s:bright_black, s:none, s:bold) call s:HL('SrceryBrightWhiteBold', s:bright_white, s:none, s:bold) " special call s:HL('SrceryOrange', s:orange) call s:HL('SrceryBrightOrange', s:bright_orange) call s:HL('SrceryOrangeBold', s:orange, s:none, s:bold) call s:HL('SrceryHardBlack', s:hard_black) call s:HL('SrceryXgray1', s:xgray1) call s:HL('SrceryXgray2', s:xgray2) call s:HL('SrceryXgray3', s:xgray3) call s:HL('SrceryXgray4', s:xgray4) call s:HL('SrceryXgray5', s:xgray5) call s:HL('SrceryXgray6', s:xgray6) " }}} " Vanilla colorscheme --------------------------------------------------------- " General UI: {{{ " Normal text " if g:srcery_bg_passthrough == 1 && !has('gui_running') call s:HL('Normal', s:bright_white, s:none) else call s:HL('Normal', s:bright_white, s:black) endif if v:version >= 700 " Screen line that the cursor is call s:HL('CursorLine', s:none, s:xgray2) " Screen column that the cursor is hi! link CursorColumn CursorLine call s:HL('TabLineFill', s:bright_black, s:xgray2) call s:HL('TabLineSel', s:bright_white, s:xgray5) " Not active tab page label hi! link TabLine TabLineFill " Match paired bracket under the cursor " if g:srcery_inverse_match_paren == 1 call s:HL('MatchParen', s:bright_magenta, s:none, s:inverse . s:bold) else call s:HL('MatchParen', s:bright_magenta, s:none, s:bold) endif endif if v:version >= 703 " Highlighted screen columns call s:HL('ColorColumn', s:none, s:xgray2) " Concealed element: \lambda → λ call s:HL('Conceal', s:blue, s:none) " Line number of CursorLine if g:srcery_bg_passthrough == 1 && !has('gui_running') call s:HL('CursorLineNr', s:yellow, s:none) else call s:HL('CursorLineNr', s:yellow, s:black) endif endif hi! link NonText SrceryXgray4 hi! link SpecialKey SrceryBlue if g:srcery_inverse == 1 call s:HL('Visual', s:none, s:none, s:inverse) else call s:HL('Visual', s:none, s:xgray2, s:bold) endif hi! link VisualNOS Visual if g:srcery_inverse == 1 && g:srcery_inverse_matches == 1 call s:HL('Search', s:none, s:none, s:inverse) call s:HL('IncSearch', s:none, s:none, s:inverse) else call s:HL('Search', s:none, s:xgray5, s:bold) call s:HL('IncSearch', s:none, s:xgray5, s:underline . s:bold) endif call s:HL('Underlined', s:blue, s:none, s:underline) call s:HL('StatusLine', s:bright_white, s:xgray2) if g:srcery_bg_passthrough == 1 && !has('gui_running') call s:HL('StatusLineNC', s:bright_black, s:none, s:underline) " The column separating vertically split windows call s:HL('VertSplit', s:bright_white, s:none) " Current match in wildmenu completion call s:HL('WildMenu', s:blue, s:none, s:bold) else call s:HL('StatusLineNC', s:bright_black, s:black, s:underline) call s:HL('VertSplit', s:bright_white, s:black) call s:HL('WildMenu', s:blue, s:black, s:bold) endif " Directory names, special names in listing hi! link Directory SrceryGreenBold " Titles for output from :set all, :autocmd, etc. hi! link Title SrceryGreenBold " Error messages on the command line call s:HL('ErrorMsg', s:bright_white, s:red) " More prompt: -- More -- hi! link MoreMsg SrceryYellowBold " Current mode message: -- INSERT -- hi! link ModeMsg SrceryYellowBold " 'Press enter' prompt and yes/no questions hi! link Question SrceryOrangeBold " Warning messages hi! link WarningMsg SrceryRedBold " }}} " Gutter: {{{ " Line number for :number and :# commands call s:HL('LineNr', s:bright_black) if g:srcery_bg_passthrough == 1 && !has('gui_running') " Column where signs are displayed " TODO Possibly need to fix SignColumn call s:HL('SignColumn', s:none, s:none) " Line used for closed folds call s:HL('Folded', s:bright_black, s:none, s:italic) " Column where folds are displayed call s:HL('FoldColumn', s:bright_black, s:none) else call s:HL('SignColumn', s:none, s:black) call s:HL('Folded', s:bright_black, s:black, s:italic) call s:HL('FoldColumn', s:bright_black, s:black) endif " }}} " Cursor: {{{ " Character under cursor call s:HL('Cursor', s:black, s:yellow) " Visual mode cursor, selection hi! link vCursor Cursor " Input moder cursor hi! link iCursor Cursor " Language mapping cursor hi! link lCursor Cursor " }}} " Syntax Highlighting: {{{ hi! link Special SrceryOrange call s:HL('Comment', s:bright_black, s:none, s:italic) if g:srcery_bg_passthrough == 1 && !has('gui_running') call s:HL('Todo', s:bright_white, s:none, s:bold . s:italic) else call s:HL('Todo', s:bright_white, s:black, s:bold . s:italic) endif call s:HL('Error', s:bright_white, s:red, s:bold) " String constant: "this is a string" call s:HL('String', s:bright_green) " Generic statement hi! link Statement SrceryRed " if, then, else, endif, swicth, etc. hi! link Conditional SrceryRed " for, do, while, etc. hi! link Repeat SrceryRed " case, default, etc. hi! link Label SrceryRed " try, catch, throw hi! link Exception SrceryRed " sizeof, "+", "*", etc. hi! link Operator Normal " Any other keyword hi! link Keyword SrceryRed " Variable name hi! link Identifier SrceryCyan " Function name hi! link Function SrceryYellow " Generic preprocessor hi! link PreProc SrceryCyan " Preprocessor #include hi! link Include SrceryCyan " Preprocessor #define hi! link Define SrceryCyan " Same as Define hi! link Macro SrceryOrange " Preprocessor #if, #else, #endif, etc. hi! link PreCondit SrceryCyan " Generic constant hi! link Constant SrceryBrightMagenta " Character constant: 'c', '/n' hi! link Character SrceryBrightMagenta " Boolean constant: TRUE, false hi! link Boolean SrceryBrightMagenta " Number constant: 234, 0xff hi! link Number SrceryBrightMagenta " Floating point constant: 2.3e10 hi! link Float SrceryBrightMagenta " Generic type if g:srcery_italic_types == 1 && g:srcery_italic == 1 call s:HL('Type', s:bright_blue, s:none, s:italic) else hi! link Type SrceryBrightBlue end " static, register, volatile, etc hi! link StorageClass SrceryOrange " struct, union, enum, etc. hi! link Structure SrceryCyan " typedef hi! link Typedef SrceryMagenta if g:srcery_dim_lisp_paren == 1 hi! link Delimiter SrceryXgray6 else hi! link Delimiter SrceryBrightBlack endif " }}} " Completion Menu: {{{ if v:version >= 700 " Popup menu: normal item call s:HL('Pmenu', s:bright_white, s:xgray2) " Popup menu: selected item call s:HL('PmenuSel', s:bright_white, s:blue, s:bold) if g:srcery_bg_passthrough == 1 && !has('gui_running') " Popup menu: scrollbar call s:HL('PmenuSbar', s:none, s:none) " Popup menu: scrollbar thumb call s:HL('PmenuThumb', s:none, s:none) else call s:HL('PmenuSbar', s:none, s:black) call s:HL('PmenuThumb', s:none, s:black) endif endif " }}} " Diffs: {{{ if g:srcery_bg_passthrough == 1 && !has('gui_running') call s:HL('DiffDelete', s:red, s:none) call s:HL('DiffAdd', s:green, s:none) call s:HL('DiffChange', s:cyan, s:none) call s:HL('DiffText', s:yellow, s:none) else call s:HL('DiffDelete', s:red, s:black) call s:HL('DiffAdd', s:green, s:black) call s:HL('DiffChange', s:cyan, s:black) call s:HL('DiffText', s:yellow, s:black) endif " }}} " Spelling: {{{ if has('spell') " Not capitalised word, or compile warnings call s:HL('SpellCap', s:green, s:none, s:bold . s:italic) " Not recognized word call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue) " Wrong spelling for selected region call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:cyan) " Rare word call s:HL('SpellRare', s:none, s:none, s:undercurl, s:magenta) endif " }}} " Terminal: {{{ if g:srcery_hard_black_terminal_bg == 1 && has('terminal') " Must set an explicit background as NONE won't work " Therefore not useful with transparent background option call s:HL('Terminal', s:bright_white, s:hard_black) endif " }}} " Filetype specific ----------------------------------------------------------- " Diff: {{{ hi! link diffAdded SrceryGreen hi! link diffRemoved SrceryRed hi! link diffChanged SrceryCyan hi! link diffFile SrceryOrange hi! link diffNewFile SrceryYellow hi! link diffLine SrceryBlue " }}} " Misc: {{{ call s:HL('ExtraWhitespace', s:none, s:red) " }}} " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker :