diff --git a/colors/sorairo.vim b/colors/sorairo.vim index 68f3a9d..1581eae 100644 --- a/colors/sorairo.vim +++ b/colors/sorairo.vim @@ -1,4 +1,4 @@ -" build with pgmnt.vim (2024-12-04 23:55+0900) +" build with pgmnt.vim (2025-11-15 23:09+0900) if !has('gui_running') && &t_Co < 256 finish endif @@ -6,168 +6,275 @@ hi clear if exists('syntax_on') syntax reset endif +set termguicolors let g:colors_name = 'sorairo' -hi ColorColumn guibg=#f1f1f3 -hi Conceal gui=bold guifg=#777777 +hi ColorColumn guibg=#f7f7fa +hi Conceal gui=bold guifg=#666666 hi Cursor gui=reverse guibg=NONE guifg=NONE -hi CursorLine cterm=NONE guibg=#f1f1f3 -hi Directory guifg=#359735 -hi DiffAdd gui=NONE guibg=#fdfdff guifg=#4ddb4d -hi DiffChange gui=NONE guibg=#fdfdff guifg=#26a0fe -hi DiffDelete gui=NONE guibg=#fdfdff guifg=#fd5252 -hi DiffText gui=NONE guibg=#fdfdff guifg=#87ceeb +hi CursorLine cterm=NONE guibg=#f7f7fa +hi Directory guibg=NONE guifg=#6bb449 +hi DiffAdd guibg=#6bb449 guifg=NONE +hi DiffChange guibg=#5ba8df guifg=NONE +hi DiffDelete gui=NONE guibg=#ec909a guifg=NONE +hi DiffText guibg=#6fa6b8 guifg=NONE +hi ErrorMsg gui=bold,underline guifg=#e9616f guisp=#e9616f +hi WinSeparator guifg=#bebebe +hi Folded guibg=NONE guifg=#666666 +hi FoldColumn guibg=NONE guifg=#666666 +hi SignColumn guifg=#545472 +hi IncSearch guibg=#ac8f37 guifg=#fdfdff +hi LineNr guifg=#bebebe +hi CursorLineNr cterm=bold gui=bold guifg=#bebebe +hi MatchParen gui=bold guibg=#f7f7fa guifg=#a5a5a5 +hi ModeMsg gui=bold guifg=#545472 +hi MsgArea guifg=#a5a5a5 +hi MoreMsg gui=bold guifg=#d5b042 +hi NonText guifg=#7f7f7f +hi Normal guibg=#fdfdff guifg=#545472 +hi NormalFloat guibg=#f7f7fa guifg=#545472 +hi FloatTitle guifg=#e8862a +hi FloatFooter guifg=#a5a5a5 +hi Pmenu gui=NONE guibg=#f7f7fa guifg=#545472 +hi PmenuSel gui=bold guibg=#105b91 guifg=#fdfdff +hi PmenuSbar guibg=#d4d4df +hi PmenuThumb guibg=#666666 +hi ComplMatchIns gui=bold +hi QuickFixLine gui=bold,underline guibg=NONE guifg=#545472 guisp=#545472 +hi Search guibg=#0e80d1 guifg=#fdfdff +hi SpecialKey guifg=#bebebe +hi SpellBad gui=undercurl guifg=#e9616f guisp=#e9616f +hi SpellCap gui=undercurl guifg=#d5b042 guisp=#d5b042 +hi SpellLocal gui=undercurl guifg=#4b8b9f guisp=#4b8b9f +hi SpellRare gui=undercurl guifg=#d1478c guisp=#d1478c +hi StatusLine cterm=NONE gui=NONE guibg=#f7f7fa guifg=#a5a5a5 +hi StatusLineNC cterm=NONE gui=NONE guibg=#f7f7fa guifg=#868686 +hi TabLine guibg=#f7f7fa guifg=#a5a5a5 +hi TabLineFill guibg=#f7f7fa guifg=#a5a5a5 +hi TabLineSel guibg=#d4d4df guifg=#868686 +hi Title gui=bold guibg=NONE guifg=#545472 +hi Visual guibg=#d4d4df hi EndOfBuffer guifg=#fdfdff -hi TermCursorNC guibg=NONE guifg=NONE -hi ErrorMsg gui=bold,underline guifg=#ec4d4d -hi WinSeparator guibg=NONE guifg=#e4e4e6 -hi Folded guibg=NONE guifg=#777777 -hi FoldColumn guibg=NONE guifg=#777777 -hi SignColumn guifg=#555573 -hi Search guibg=#26a0fe guifg=#fdfdff -hi IncSearch guibg=#ffdf64 guifg=#666666 -hi LineNr guifg=#888888 -hi CursorLineNr cterm=NONE guifg=#777777 -hi MatchParen gui=bold guibg=#e4e4e6 -hi ModeMsg gui=bold guifg=#555573 -hi MsgSeparator guibg=#e4e4e6 -hi MoreMsg gui=bold guifg=#eccb65 -hi NonText guifg=#888888 -hi Normal guibg=#fdfdff guifg=#555573 -hi NormalFloat guibg=#f1f1f3 guifg=#555573 -hi FloatTitle gui=bold guibg=#f1f1f3 guifg=#1d79c0 -hi FloatFooter guibg=#f1f1f3 guifg=#218bdd -hi Pmenu guibg=#f1f1f3 guifg=#73739b -hi PmenuSel guibg=#218bdd guifg=#fdfdff -hi PmenuSbar guibg=#e4e4e6 -hi PmenuThumb guibg=#888888 -hi QuickFixLine guibg=#f1f1f3 guifg=#cc5490 -hi SpecialKey guifg=#73739b -hi SpellBad gui=undercurl guifg=#ec4d4d guisp=#ec4d4d -hi SpellCap gui=undercurl guifg=#218bdd guisp=#218bdd -hi SpellLocal gui=undercurl guifg=#6ca5bc guisp=#6ca5bc -hi SpellRare gui=undercurl guifg=#cc5490 guisp=#cc5490 -hi StatusLine guibg=#f1f1f3 guifg=#666666 -hi StatusLineNC guibg=#f1f1f3 guifg=#888888 -hi TabLine guibg=#f1f1f3 guifg=#73739b -hi TablineFill guibg=#f1f1f3 guifg=#73739b -hi TabLineSel gui=bold guibg=#fdfdff guifg=#555573 -hi Title gui=bold guibg=NONE guifg=#555573 -hi Visual guibg=#e4e4e6 -hi VisualNOS guibg=#e4e4e6 -hi WarningMsg gui=bold guifg=#eccb65 -hi Whitespace guifg=#888888 -hi WinBar gui=NONE guibg=NONE guifg=#73739b -hi WinBarNC gui=NONE guibg=NONE guifg=#73739b -hi Comment gui=italic guifg=#666666 -hi Constant guifg=#568496 -hi String guifg=#359735 -hi Number guifg=#b14a7c -hi Boolean guifg=#b14a7c -hi Identifier guifg=#1d79c0 -hi Function guifg=#359735 -hi Statement gui=italic guifg=#dd4848 -hi Conditional guifg=#dd4848 -hi Repeat guifg=#dd4848 -hi Label guifg=#d7ba5c -hi Operator guifg=#d7ba5c -hi Keyword guifg=#dd4848 -hi Exception guifg=#dd4848 -hi PreProc guifg=#b14a7c -hi Macro guifg=#568496 -hi Type guifg=#d7ba5c -hi StorageClass guifg=#d7ba5c -hi Structure guifg=#d7ba5c -hi Special guifg=#d7ba5c -hi Tag guifg=#d7ba5c -hi Delimiter guifg=#555573 -hi SpecialComment gui=italic guifg=#777777 -hi Debug guifg=#d7ba5c +hi WarningMsg gui=bold,underline guifg=#d5b042 guisp=#d5b042 +hi Whitespace guifg=#7f7f7f +hi WinBar gui=bold guibg=NONE guifg=#a5a5a5 +hi WinBarNC guibg=NONE guifg=#a5a5a5 +hi Comment gui=italic guifg=#a5a5a5 +hi Constant gui=bold guifg=#ac8f37 +hi String guifg=#549536 +hi Number guifg=#d1478c +hi Boolean guifg=#d1478c +hi Float guifg=#d1478c +hi Identifier guifg=#d1478c +hi Function guifg=#e8862a +hi Statement gui=italic guifg=#e9616f +hi Conditional guifg=#e9616f +hi Repeat guifg=#e9616f +hi Operator guifg=#d5b042 +hi Keyword guifg=#e9616f +hi Exception guifg=#e9616f +hi PreProc guifg=#d1478c +hi Include guifg=#d1478c +hi Define guifg=#d1478c +hi Macro guifg=#4b8b9f +hi PreCondit guifg=#d1478c +hi Type guifg=#0e80d1 +hi StorageClass guifg=#e8862a +hi Structure guifg=#d5b042 +hi Typedef guifg=#e8862a +hi Special guifg=#d5b042 +hi Delimiter guifg=#545472 +hi SpecialComment gui=italic guifg=#666666 +hi Debug guifg=#d5b042 hi Underlined gui=underline -hi Ignore guifg=#777777 -hi Error guibg=NONE guifg=#dd4848 -hi Todo gui=italic guifg=#b14a7c -hi DiagnosticError guifg=#dd4848 -hi DiagnosticWarn guifg=#d7ba5c -hi DiagnosticInfo guifg=#1d79c0 -hi DiagnosticHint guifg=#568496 -hi DiagnosticOk guifg=#359735 -hi DiagnosticUnderlineError gui=underline guifg=#ec4d4d -hi DiagnosticUnderlineWarn gui=underline guifg=#eccb65 -hi DiagnosticUnderlineInfo gui=underline guifg=#218bdd -hi DiagnosticUnderlineHint gui=underline guifg=#6ca5bc -hi DiagnosticUnderlineOk gui=underline guifg=#42b042 +hi Ignore guifg=#666666 +hi Error guibg=NONE guifg=#d73445 +hi Todo gui=italic guifg=#a6346d +hi LspReferenceText guibg=#b7671d guifg=#fdfdff +hi LspReferenceWrite gui=underline guibg=#b7671d guifg=#fdfdff +hi LspInlayHint guifg=#666666 +hi DiagnosticError guifg=#d73445 +hi DiagnosticWarn guifg=#ac8f37 +hi DiagnosticInfo guifg=#105b91 +hi DiagnosticHint guifg=#3d6b79 +hi DiagnosticOk guifg=#3c622b +hi DiagnosticUnderlineError gui=undercurl guisp=#d73445 +hi DiagnosticUnderlineWarn gui=undercurl guisp=#ac8f37 +hi DiagnosticUnderlineInfo gui=undercurl guisp=#105b91 +hi DiagnosticUnderlineHint gui=undercurl guisp=#3d6b79 +hi DiagnosticUnderlineOk gui=undercurl guisp=#3c622b +hi DiagnosticDeprecated gui=strikethrough guifg=#d73445 guisp=#d73445 hi! link lCursor Cursor hi! link CursorIM Cursor hi! link CursorColumn CursorLine -hi! link Added DiffAdd -hi! link Changed DiffChanged -hi! link Removed DiffDelete hi! link TermCursor Cursor -hi! link CurSearch IncSearch +hi! link VertSplit WinSeparator hi! link Substitute Search +hi! link LineNrAbove LineNr +hi! link LineNrBelow LineNr +hi! link CursorLineFold FoldColumn +hi! link CursorLineSign SignColumn +hi! link MsgSeparator StatusLine +hi! link FloatBorder NormalFloat hi! link NormalNC Normal +hi! link PmenuKind Pmenu +hi! link PmenuKindSel PmenuSel +hi! link PmenuExtra Pmenu +hi! link PmenuExtraSel PmenuSel +hi! link PmenuMatch Pmenu +hi! link PmenuMatchSel PmenuSel hi! link Question MoreMsg +hi! link SnippetTabstop Visual +hi! link StatusLineTerm StatusLine +hi! link StatusLineTermNC StatusLineNC +hi! link VisualNOS Visual +hi! link CurSearch IncSearch hi! link WildMenu PmenuSel +hi! link TermCursorNC Cursor hi! link Character String -hi! link Float Number +hi! link Label Keyword hi! link SpecialChar Special +hi! link Tag Special +hi! link Added DiffAdd +hi! link Changed DiffChange +hi! link Removed DiffDelete +hi! link LspReferenceRead LspReferenceText +hi! link LspReferenceTarget LspReferenceText +hi! link DiagnosticVirtualTextError DiagnosticError +hi! link DiagnosticVirtualTextWarn DiagnosticWarn +hi! link DiagnosticVirtualTextInfo DiagnosticInfo +hi! link DiagnosticVirtualTextHint DiagnosticHint +hi! link DiagnosticVirtualTextOk DiagnosticOk +hi! link DiagnosticVirtualLinesError DiagnosticError +hi! link DiagnosticVirtualLinesWarn DiagnosticWarn +hi! link DiagnosticVirtualLinesInfo DiagnosticInfo +hi! link DiagnosticVirtualLinesHint DiagnosticHint +hi! link DiagnosticVirtualLinesOk DiagnosticOk +hi! link DiagnosticFloatingError DiagnosticError +hi! link DiagnosticFloatingWarn DiagnosticWarn +hi! link DiagnosticFloatingInfo DiagnosticInfo +hi! link DiagnosticFloatingHint DiagnosticHint +hi! link DiagnosticFloatingOk DiagnosticOk +hi! link DiagnosticSignError DiagnosticError +hi! link DiagnosticSignWarn DiagnosticWarn +hi! link DiagnosticSignInfo DiagnosticInfo +hi! link DiagnosticSignHint DiagnosticHint +hi! link DiagnosticSignOk DiagnosticOk +hi! link DiagnosticUnnecessary DiagnosticUnderlineHint if has('nvim') - hi @variable guifg=#555573 - hi @variable.builtin gui=italic guifg=#901dd8 - hi @variable.parameter guifg=#b14a7c - hi @string.regexp guifg=#b85830 - hi @string.escape gui=bold guifg=#b85830 - hi @string.special.symbol guifg=#1d79c0 - hi @string.special.url gui=undercurl guifg=#1d79c0 - hi @constructor guifg=#d7ba5c - hi @keyword.operator gui=bold guifg=#d7ba5c - hi @punctuation.delimiters guifg=#b14a7c - hi @punctuation.bracket guifg=#b14a7c - hi @punctuation.special guifg=#b14a7c - hi @comment.error gui=bold guibg=#fd5252 guifg=#555573 - hi @comment.warning gui=bold guibg=#ffdf64 guifg=#555573 - hi @comment.note gui=bold guibg=#26a0fe guifg=#555573 - hi! link @variable.parameter.builtin Special - hi! link @constant Constant - hi! link @constant.builtin Special - hi! link @module Structure - hi! link @module.builtin Structure + hi @variable guifg=#545472 + hi @variable.parameter guifg=#d1478c + hi @variable.member gui=italic guifg=#545472 + hi @constant gui=bold guifg=#ac8f37 + hi @module guifg=#d674a5 + hi @string.regexp guifg=#b7671d + hi @string.escape gui=bold guifg=#b7671d + hi @string.special.symbol gui=bold guifg=#549536 + hi @string.special.path gui=underline guifg=#549536 + hi @attribute guifg=#4b8b9f + hi @punctuation.delimiter guifg=#a6346d + hi @punctuation.bracket guifg=#a6346d + hi @comment.error guibg=#ec909a guifg=#fdfdff + hi @comment.warning guibg=#d9bf70 guifg=#fdfdff + hi @comment.todo guibg=#6fa6b8 guifg=#fdfdff + hi @comment.note guibg=#5ba8df guifg=#fdfdff + hi @markup.strong gui=bold + hi @markup.italic gui=italic + hi @markup.strikethrough gui=strikethrough + hi @markup.heading.1.markdown gui=bold guifg=#105b91 + hi @markup.heading.2.markdown gui=bold guifg=#b7671d + hi @markup.heading.3.markdown gui=bold guifg=#3c622b + hi @markup.heading.4.markdown gui=bold guifg=#3d6b79 + hi @markup.heading.5.markdown gui=bold guifg=#a6346d + hi @markup.heading.6.markdown gui=bold guifg=#8550a7 + hi @diff.plus gui=bold guifg=#6bb449 + hi @diff.minus gui=bold guifg=#ec909a + hi @diff.delta gui=bold guifg=#5ba8df + hi NotifyERRORBorder guifg=#d73445 + hi NotifyWARNBorder guifg=#ac8f37 + hi NotifyINFOBorder guifg=#105b91 + hi NotifyDEBUGBorder guifg=#3d6b79 + hi NotifyTRACEBorder guifg=#3d6b79 + hi NotifyERRORIcon guifg=#e9616f + hi NotifyERRORTitle guifg=#e9616f + hi NotifyWARNIcon guifg=#d5b042 + hi NotifyWARNTitle guifg=#d5b042 + hi NotifyINFOIcon guifg=#0e80d1 + hi NotifyINFOTitle guifg=#0e80d1 + hi NotifyDEBUGIcon guifg=#4b8b9f + hi NotifyDEBUGTitle guifg=#4b8b9f + hi NotifyTRACEIcon guifg=#4b8b9f + hi NotifyTRACETitle guifg=#4b8b9f + hi GitSignsAdd guibg=NONE guifg=#6bb449 + hi GitSignsChange guibg=NONE guifg=#5ba8df + hi GitSignsDelete guibg=NONE guifg=#ec909a + hi GitSignsAddInline gui=bold guibg=#6bb449 guifg=#ededed + hi GitSignsChangeInline gui=bold guibg=#5ba8df guifg=#ededed + hi GitSignsDeleteInline gui=bold guibg=#ec909a guifg=#ededed + hi GitSignsAddPreview guibg=NONE guifg=#6bb449 + hi GitSignsDeletePreview guibg=NONE guifg=#ec909a + hi! link @variable.builtin @variable + hi! link @variable.parameter.builtin @variable.parameter + hi! link @constant.builtin @constant + hi! link @constant.macro @constant + hi! link @module.builtin @module hi! link @label Label - hi! link @string String - hi! link @string.special SpecialChar + hi! link @label String + hi! link @string.documentation Comment + hi! link @string.special Special + hi! link @string.special.url @string.special.path hi! link @character Character hi! link @character.special SpecialChar hi! link @boolean Boolean hi! link @number Number hi! link @number.float Number hi! link @type Type - hi! link @type.builtin Special - hi! link @attribute Constant - hi! link @attribute.builtin Special - hi! link @property Identifier + hi! link @type.builtin @type + hi! link @type.definition @type + hi! link @attribute.builtin @attribute + hi! link @property @variable.member hi! link @function Function - hi! link @function.builtin Special + hi! link @function.builtin @function + hi! link @constructor Identifier hi! link @operator Operator hi! link @keyword Keyword + hi! link @keyword.operator Operator hi! link @keyword.import PreProc + hi! link @keyword.repeat Repeat + hi! link @keyword.exception Exception + hi! link @keyword.conditional Conditional + hi! link @keyword.conditional.ternary Conditional + hi! link @punctuation.special Special hi! link @comment Comment - hi! link @comment.todo Todo - let g:terminal_color_0 = '#fdfdff' - let g:terminal_color_1 = '#ec4d4d' - let g:terminal_color_2 = '#42b042' - let g:terminal_color_3 = '#eccb65' - let g:terminal_color_4 = '#218bdd' - let g:terminal_color_5 = '#cc5490' - let g:terminal_color_6 = '#6ca5bc' - let g:terminal_color_7 = '#555573' - let g:terminal_color_8 = '#777777' - let g:terminal_color_9 = '#dd4848' - let g:terminal_color_10 = '#359735' - let g:terminal_color_11 = '#d7ba5c' - let g:terminal_color_12 = '#1d79c0' - let g:terminal_color_13 = '#b14a7c' - let g:terminal_color_14 = '#568496' - let g:terminal_color_15 = '#73739b' + hi! link @markup.underline Underlined + hi! link @markup.heading Title + hi! link @markup.quote Special + hi! link @markup.math Special + hi! link @markup.link.url Special + hi! link @markup.raw String + hi! link @tag Tag + hi! link @tag.attribute @property + hi! link @tag.delimiter Delimiter + hi! link NotifyERRORBody Normal + hi! link NotifyWARNBody Normal + hi! link NotifyINFOBody Normal + hi! link NotifyDEBUGBody Normal + hi! link NotifyTRACEBody Normal + let g:terminal_color_0 = '#545472' + let g:terminal_color_1 = '#e9616f' + let g:terminal_color_2 = '#549536' + let g:terminal_color_3 = '#d5b042' + let g:terminal_color_4 = '#0e80d1' + let g:terminal_color_5 = '#a470c6' + let g:terminal_color_6 = '#4b8b9f' + let g:terminal_color_7 = '#dfdfe9' + let g:terminal_color_8 = '#444467' + let g:terminal_color_9 = '#eb4556' + let g:terminal_color_10 = '#47862a' + let g:terminal_color_11 = '#d5a927' + let g:terminal_color_12 = '#0772be' + let g:terminal_color_13 = '#9958c4' + let g:terminal_color_14 = '#3d7e92' + let g:terminal_color_15 = '#a5a5a5' else - let g:terminal_ansi_colors = ['#fdfdff', '#ec4d4d', '#42b042', '#eccb65', '#218bdd', '#cc5490', '#6ca5bc', '#555573', '#777777', '#dd4848', '#359735', '#d7ba5c', '#1d79c0', '#b14a7c', '#568496', '#73739b'] + let g:terminal_ansi_colors = ['#545472', '#e9616f', '#549536', '#d5b042', '#0e80d1', '#a470c6', '#4b8b9f', '#dfdfe9', '#444467', '#eb4556', '#47862a', '#d5a927', '#0772be', '#9958c4', '#3d7e92', '#a5a5a5'] endif diff --git a/nix/apps/default.nix b/nix/apps/default.nix index 9ab51b9..5f7cb0c 100644 --- a/nix/apps/default.nix +++ b/nix/apps/default.nix @@ -42,9 +42,7 @@ in colorscheme sorairo ''; packages.myVimPackage = { - start = [ - self'.packages.sorairo-vim - ]; + start = [ self'.packages.sorairo-vim ]; }; }; test-nvim = mkNeovimApp { diff --git a/src/sorairo.vim b/src/sorairo.vim index 8f0b889..4aefc81 100644 --- a/src/sorairo.vim +++ b/src/sorairo.vim @@ -1,75 +1,130 @@ -let s:palette = { - \ 'white': '#ffffff', - \ 'prm0': '#555573', - \ 'prm1': '#73739b', - \ 'sub0': '#fdfdff', - \ 'sub1': '#f1f1f3', - \ 'sub2': '#e4e4e6', - \ 'grey0': '#666666', - \ 'grey1': '#777777', - \ 'grey2': '#888888', - \ 'blue0': '#1d79c0', - \ 'blue1': '#218bdd', - \ 'blue2': '#26a0fe', - \ 'cyan0': '#568496', - \ 'cyan1': '#6ca5bc', - \ 'cyan2': '#87ceeb', - \ 'magenta0': '#b14a7c', - \ 'magenta1': '#cc5490', - \ 'magenta2': '#ff69b4', - \ 'purple0': '#901dd8', - \ 'purple1': '#9c1fea', - \ 'purple2': '#a922ff', - \ 'red0': '#dd4848', - \ 'red1': '#ec4d4d', - \ 'red2': '#fd5252', - \ 'green0': '#359735', - \ 'green1': '#42b042', - \ 'green2': '#4ddb4d', - \ 'yellow0': '#d7ba5c', - \ 'yellow1': '#eccb65', - \ 'yellow2': '#ffdf64', - \ 'brown0': '#b85830', - \ 'brown1': '#dd713e', - \ 'brown2': '#fc8146', - \ } +" palette {{{ +function! s:create_palette() abort -function! s:create() abort - let c = s:palette + let hue_base = 240 + let hue_red = 354 + let hue_green = 101 + let hue_blue = 205 + let hue_cyan = 194 + let hue_magenta = 330 + let hue_purple = 276 + let hue_yellow = 45 + let hue_orange = 29 - let term_colors = [ - \ c.sub0, - \ c.red1, - \ c.green1, - \ c.yellow1, - \ c.blue1, - \ c.magenta1, - \ c.cyan1, - \ c.prm0, - \ c.grey1, - \ c.red0, - \ c.green0, - \ c.yellow0, - \ c.blue0, - \ c.magenta0, - \ c.cyan0, - \ c.prm1 + let g = {} + + " pgmnt#color#rgb(hue_base, 1.00, 0.99) + let g.normal_bg = pgmnt#color#rgb(253, 253, 255) + let g.normal_fg = pgmnt#color#hsl(hue_base, 0.15, 0.39) + + let g.white = pgmnt#color#hsl(hue_base, 0.00, 0.93) + let g.grey = pgmnt#color#hsl(hue_base, 0.00, 0.40) + let g.black = pgmnt#color#hsl(hue_base, 0.00, 0.20) + + let g.red = pgmnt#color#hsl(hue_red, 0.76, 0.65) + let g.green = pgmnt#color#hsl(hue_green, 0.47, 0.40) + let g.blue = pgmnt#color#hsl(hue_blue, 0.87, 0.44) + let g.cyan = pgmnt#color#hsl(hue_cyan, 0.36, 0.46) + let g.magenta = pgmnt#color#hsl(hue_magenta, 0.60, 0.55) + let g.purple = pgmnt#color#hsl(hue_purple, 0.43, 0.61) + let g.yellow = pgmnt#color#hsl(hue_yellow, 0.64, 0.55) + let g.orange = pgmnt#color#hsl(hue_orange, 0.81, 0.54) + + let g.dark_white = pgmnt#color#adjust_color(g.white, {'saturation': -0.08, 'lightness': -0.15}) + let g.dark_grey = pgmnt#color#adjust_color(g.grey, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_black = pgmnt#color#adjust_color(g.black, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_red = pgmnt#color#adjust_color(g.red, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_green = pgmnt#color#adjust_color(g.green, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_blue = pgmnt#color#adjust_color(g.blue, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_cyan = pgmnt#color#adjust_color(g.cyan, {'saturation': -0.03, 'lightness': -0.10}) + let g.dark_magenta = pgmnt#color#adjust_color(g.magenta, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_purple = pgmnt#color#adjust_color(g.purple, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_yellow = pgmnt#color#adjust_color(g.yellow, {'saturation': -0.12, 'lightness': -0.10}) + let g.dark_orange = pgmnt#color#adjust_color(g.orange, {'saturation': -0.08, 'lightness': -0.12}) + + let g.light_white = pgmnt#color#adjust_color(g.white, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_grey = pgmnt#color#adjust_color(g.grey, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_black = pgmnt#color#adjust_color(g.black, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_red = pgmnt#color#adjust_color(g.red, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_green = pgmnt#color#adjust_color(g.green, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_blue = pgmnt#color#adjust_color(g.blue, {'saturation': -0.20, 'lightness': +0.18}) + let g.light_cyan = pgmnt#color#adjust_color(g.cyan, {'saturation': -0.02, 'lightness': +0.12}) + let g.light_magenta = pgmnt#color#adjust_color(g.magenta, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_purple = pgmnt#color#adjust_color(g.purple, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_yellow = pgmnt#color#adjust_color(g.yellow, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_orange = pgmnt#color#adjust_color(g.orange, {'saturation': -0.05, 'lightness': +0.10}) + + let g.red_tint_bg = pgmnt#color#mix(g.red, g.normal_bg, 0.15) + let g.red_tint_fg = pgmnt#color#mix(g.red, g.normal_fg, 0.40) + let g.green_tint_bg = pgmnt#color#mix(g.green, g.normal_bg, 0.15) + let g.green_tint_fg = pgmnt#color#mix(g.green, g.normal_fg, 0.40) + let g.blue_tint_bg = pgmnt#color#mix(g.blue, g.normal_bg, 0.15) + let g.blue_tint_fg = pgmnt#color#mix(g.blue, g.normal_fg, 0.40) + + let g.dim_bg = pgmnt#color#adjust_color( + \ g.normal_bg, { + \ 'saturation': -0.75, + \ 'lightness': -0.02, + \ }) + let g.dim_fg = pgmnt#color#adjust_color( + \ g.normal_fg, { + \ 'saturation': -0.18, + \ 'lightness': +0.26, + \ }) + let g.dark_dim_bg = pgmnt#color#adjust_color(g.dim_bg, {'saturation': -0.08, 'lightness': -0.12}) + let g.dark_dim_fg = pgmnt#color#adjust_color(g.dim_fg, {'saturation': -0.08, 'lightness': -0.12}) + let g.light_dim_bg = pgmnt#color#adjust_color(g.dim_bg, {'saturation': -0.05, 'lightness': +0.10}) + let g.light_dim_fg = pgmnt#color#adjust_color(g.dim_fg, {'saturation': -0.05, 'lightness': +0.10}) + + let g.cursorline_bg = pgmnt#color#adjust_color( + \ g.normal_bg, { + \ 'saturation': -0.80, + \ 'lightness': -0.10, + \ }) + + let g.term_colors = [ + \ g.normal_fg, + \ g.red, + \ g.green, + \ g.yellow, + \ g.blue, + \ g.purple, + \ g.cyan, + \ g.cursorline_bg, + \ pgmnt#color#adjust_color(g.normal_fg, {'saturation': +0.05, 'lightness': -0.05}), + \ pgmnt#color#adjust_color(g.red, {'saturation': +0.05, 'lightness': -0.05}), + \ pgmnt#color#adjust_color(g.green, {'saturation': +0.05, 'lightness': -0.05}), + \ pgmnt#color#adjust_color(g.yellow, {'saturation': +0.05, 'lightness': -0.05}), + \ pgmnt#color#adjust_color(g.blue, {'saturation': +0.05, 'lightness': -0.05}), + \ pgmnt#color#adjust_color(g.purple, {'saturation': +0.05, 'lightness': -0.05}), + \ pgmnt#color#adjust_color(g.cyan, {'saturation': +0.05, 'lightness': -0.05}), + \ g.dim_fg, \ ] + return g +endfunction +" }}} + +function! s:create_highlights(palette) + let c = a:palette + let groups = [] - let links = [] let neovim_groups = [] + let links = [] let neovim_links = [] - " builtin {{{ - call extend(groups, pgmnt#hi#group('ColorColumn', { - \ 'guibg': c.sub1, - \ })) - call extend(groups, pgmnt#hi#group('Conceal', { - \ 'guifg': c.grey1, + " highlight groups {{{ + call extend(groups, pgmnt#hi#group( + \ [ 'ColorColumn' ], { + \ 'guibg': c.dim_bg, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'Conceal' ], { + \ 'guifg': c.grey, \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('Cursor', { + call extend(groups, pgmnt#hi#group( + \ [ 'Cursor' ], { \ 'guifg': 'NONE', \ 'guibg': 'NONE', \ 'gui': 'reverse', @@ -77,456 +132,843 @@ function! s:create() abort call add(links, pgmnt#hi#link('lCursor', 'Cursor')) call add(links, pgmnt#hi#link('CursorIM', 'Cursor')) call add(links, pgmnt#hi#link('CursorColumn', 'CursorLine')) - call extend(groups, pgmnt#hi#group('CursorLine', { - \ 'guibg': c.sub1, + call extend(groups, pgmnt#hi#group( + \ [ 'CursorLine' ], { + \ 'guibg': c.dim_bg, \ 'cterm': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('Directory', { - \ 'guifg': c.green0, - \ })) - call extend(groups, pgmnt#hi#group('DiffAdd', { - \ 'guifg': c.green2, - \ 'guibg': c.sub0, - \ 'gui': 'NONE', + call extend(groups, pgmnt#hi#group( + \ [ 'Directory' ], { + \ 'guifg': c.light_green, + \ 'guibg': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('DiffChange', { - \ 'guifg': c.blue2, - \ 'guibg': c.sub0, - \ 'gui': 'NONE', + call extend(groups, pgmnt#hi#group( + \ [ 'DiffAdd' ], { + \ 'guifg': 'NONE', + \ 'guibg': c.light_green, \ })) - call extend(groups, pgmnt#hi#group('DiffDelete', { - \ 'guifg': c.red2, - \ 'guibg': c.sub0, - \ 'gui': 'NONE', + call extend(groups, pgmnt#hi#group( + \ [ 'DiffChange' ], { + \ 'guifg': 'NONE', + \ 'guibg': c.light_blue, \ })) - call extend(groups, pgmnt#hi#group('DiffText', { - \ 'guifg': c.cyan2, - \ 'guibg': c.sub0, + call extend(groups, pgmnt#hi#group( + \ [ 'DiffDelete' ], { + \ 'guifg': 'NONE', + \ 'guibg': c.light_red, \ 'gui': 'NONE', \ })) - call add(links, pgmnt#hi#link('Added', 'DiffAdd')) - call add(links, pgmnt#hi#link('Changed', 'DiffChanged')) - call add(links, pgmnt#hi#link('Removed', 'DiffDelete')) - call extend(groups, pgmnt#hi#group('EndOfBuffer', { - \ 'guifg': c.sub0, - \ })) - call add(links, pgmnt#hi#link('TermCursor', 'Cursor')) - call extend(groups, pgmnt#hi#group('TermCursorNC', { + call extend(groups, pgmnt#hi#group( + \ [ 'DiffText' ], { \ 'guifg': 'NONE', - \ 'guibg': 'NONE', + \ 'guibg': c.light_cyan, \ })) - call extend(groups, pgmnt#hi#group('ErrorMsg', { - \ 'guifg': c.red1, + call add(links, pgmnt#hi#link('TermCursor', 'Cursor')) + call extend(groups, pgmnt#hi#group( + \ [ 'ErrorMsg' ], { + \ 'guifg': c.red, \ 'gui': 'bold,underline', + \ 'guisp': c.red, \ })) - call extend(groups, pgmnt#hi#group('WinSeparator', { - \ 'guifg': c.sub2, - \ 'guibg': 'NONE', - \ })) - call extend(groups, pgmnt#hi#group('Folded', { - \ 'guifg': c.grey1, - \ 'guibg': 'NONE', + call add(links, pgmnt#hi#link('VertSplit', 'WinSeparator')) + call extend(groups, pgmnt#hi#group( + \ [ 'WinSeparator' ], { + \ 'guifg': c.light_dim_fg, \ })) - call extend(groups, pgmnt#hi#group('FoldColumn', { - \ 'guifg': c.grey1, + call extend(groups, pgmnt#hi#group( + \ [ 'Folded', 'FoldColumn' ], { + \ 'guifg': c.grey, \ 'guibg': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('SignColumn', { - \ 'guifg': c.prm0, + call extend(groups, pgmnt#hi#group( + \ [ 'SignColumn' ], { + \ 'guifg': c.normal_fg, \ })) - call extend(groups, pgmnt#hi#group('Search', { - \ 'guifg': c.sub0, - \ 'guibg': c.blue2, - \ })) - call add(links, pgmnt#hi#link('CurSearch', 'IncSearch')) - call extend(groups, pgmnt#hi#group('IncSearch', { - \ 'guifg': c.grey0, - \ 'guibg': c.yellow2, + call extend(groups, pgmnt#hi#group( + \ [ 'IncSearch' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.dark_yellow, \ })) call add(links, pgmnt#hi#link('Substitute', 'Search')) - call extend(groups, pgmnt#hi#group('LineNr', { - \ 'guifg': c.grey2, - \ })) - call extend(groups, pgmnt#hi#group('CursorLineNr', { - \ 'guifg': c.grey1, - \ 'cterm': 'NONE', - \ })) - call extend(groups, pgmnt#hi#group('MatchParen', { - \ 'guibg': c.sub2, + call extend(groups, pgmnt#hi#group( + \ [ 'LineNr' ], { + \ 'guifg': c.light_dim_fg, + \ })) + call add(links, pgmnt#hi#link('LineNrAbove', 'LineNr')) + call add(links, pgmnt#hi#link('LineNrBelow', 'LineNr')) + call extend(groups, pgmnt#hi#group( + \ [ 'CursorLineNr' ], { + \ 'guifg': c.light_dim_fg, + \ 'gui': 'bold', + \ 'cterm': 'bold', + \ })) + call add(links, pgmnt#hi#link('CursorLineFold', 'FoldColumn')) + call add(links, pgmnt#hi#link('CursorLineSign', 'SignColumn')) + call extend(groups, pgmnt#hi#group( + \ [ 'MatchParen' ], { + \ 'guifg': c.dim_fg, + \ 'guibg': c.dim_bg, \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('ModeMsg', { - \ 'guifg': c.prm0, + call extend(groups, pgmnt#hi#group( + \ [ 'ModeMsg' ], { + \ 'guifg': c.normal_fg, \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('MsgSeparator', { - \ 'guibg': c.sub2, + call extend(groups, pgmnt#hi#group( + \ [ 'MsgArea' ], { + \ 'guifg': c.dim_fg, \ })) - call extend(groups, pgmnt#hi#group('MoreMsg', { - \ 'guifg': c.yellow1, + call add(links, pgmnt#hi#link('MsgSeparator', 'StatusLine')) + call extend(groups, pgmnt#hi#group( + \ [ 'MoreMsg' ], { + \ 'guifg': c.yellow, \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('NonText', { - \ 'guifg': c.grey2, + call extend(groups, pgmnt#hi#group( + \ [ 'NonText' ], { + \ 'guifg': c.light_grey, \ })) - call extend(groups, pgmnt#hi#group('Normal', { - \ 'guifg': c.prm0, - \ 'guibg': c.sub0, + call extend(groups, pgmnt#hi#group( + \ [ 'Normal' ], { + \ 'guifg': c.normal_fg, + \ 'guibg': c.normal_bg, \ })) - call extend(groups, pgmnt#hi#group('NormalFloat', { - \ 'guifg': c.prm0, - \ 'guibg': c.sub1, + call extend(groups, pgmnt#hi#group( + \ [ 'NormalFloat' ], { + \ 'guifg': c.normal_fg, + \ 'guibg': c.dim_bg, \ })) - call extend(groups, pgmnt#hi#group('FloatTitle', { - \ 'guifg': c.blue0, - \ 'guibg': c.sub1, - \ 'gui': 'bold', + call add(links, pgmnt#hi#link('FloatBorder', 'NormalFloat')) + call extend(groups, pgmnt#hi#group( + \ [ 'FloatTitle' ], { + \ 'guifg': c.orange, \ })) - call extend(groups, pgmnt#hi#group('FloatFooter', { - \ 'guifg': c.blue1, - \ 'guibg': c.sub1, + call extend(groups, pgmnt#hi#group( + \ [ 'FloatFooter' ], { + \ 'guifg': c.dim_fg, \ })) call add(links, pgmnt#hi#link('NormalNC', 'Normal')) - call extend(groups, pgmnt#hi#group('Pmenu', { - \ 'guifg': c.prm1, - \ 'guibg': c.sub1, - \ })) - call extend(groups, pgmnt#hi#group('PmenuSel', { - \ 'guifg': c.sub0, - \ 'guibg': c.blue1, + call extend(groups, pgmnt#hi#group( + \ [ 'Pmenu' ], { + \ 'guifg': c.normal_fg, + \ 'guibg': c.dim_bg, + \ 'gui': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('PmenuSbar', { - \ 'guibg': c.sub2, + call extend(groups, pgmnt#hi#group( + \ [ 'PmenuSel' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.dark_blue, + \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('PmenuThumb', { - \ 'guibg': c.grey2, + call add(links, pgmnt#hi#link('PmenuKind', 'Pmenu')) + call add(links, pgmnt#hi#link('PmenuKindSel', 'PmenuSel')) + call add(links, pgmnt#hi#link('PmenuExtra', 'Pmenu')) + call add(links, pgmnt#hi#link('PmenuExtraSel', 'PmenuSel')) + call extend(groups, pgmnt#hi#group( + \ [ 'PmenuSbar' ], { + \ 'guibg': c.dark_dim_bg, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'PmenuThumb' ], { + \ 'guibg': c.grey, + \ })) + call add(links, pgmnt#hi#link('PmenuMatch', 'Pmenu')) + call add(links, pgmnt#hi#link('PmenuMatchSel', 'PmenuSel')) + call extend(groups, pgmnt#hi#group( + \ [ 'ComplMatchIns' ], { + \ 'gui': 'bold', \ })) call add(links, pgmnt#hi#link('Question', 'MoreMsg')) - call extend(groups, pgmnt#hi#group('QuickFixLine', { - \ 'guifg': c.magenta1, - \ 'guibg': c.sub1, + call extend(groups, pgmnt#hi#group( + \ [ 'QuickFixLine' ], { + \ 'guifg': c.normal_fg, + \ 'guibg': 'NONE', + \ 'gui': 'bold,underline', + \ 'guisp': c.normal_fg, \ })) - call extend(groups, pgmnt#hi#group('SpecialKey', { - \ 'guifg': c.prm1, + call extend(groups, pgmnt#hi#group( + \ [ 'Search' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.blue, \ })) - call extend(groups, pgmnt#hi#group('SpellBad', { - \ 'guifg': c.red1, - \ 'gui': 'undercurl', - \ 'guisp': c.red1, + call add(links, pgmnt#hi#link('SnippetTabstop', 'Visual')) + call extend(groups, pgmnt#hi#group( + \ [ 'SpecialKey' ], { + \ 'guifg': c.light_dim_fg, \ })) - call extend(groups, pgmnt#hi#group('SpellCap', { - \ 'guifg': c.blue1, + call extend(groups, pgmnt#hi#group( + \ [ 'SpellBad' ], { + \ 'guifg': c.red, \ 'gui': 'undercurl', - \ 'guisp': c.blue1, + \ 'guisp': c.red, \ })) - call extend(groups, pgmnt#hi#group('SpellLocal', { - \ 'guifg': c.cyan1, + call extend(groups, pgmnt#hi#group( + \ [ 'SpellCap' ], { + \ 'guifg': c.yellow, \ 'gui': 'undercurl', - \ 'guisp': c.cyan1, + \ 'guisp': c.yellow, \ })) - call extend(groups, pgmnt#hi#group('SpellRare', { - \ 'guifg': c.magenta1, + call extend(groups, pgmnt#hi#group( + \ [ 'SpellLocal' ], { + \ 'guifg': c.cyan, \ 'gui': 'undercurl', - \ 'guisp': c.magenta1, - \ })) - call extend(groups, pgmnt#hi#group('StatusLine', { - \ 'guifg': c.grey0, - \ 'guibg': c.sub1, - \ })) - call extend(groups, pgmnt#hi#group('StatusLineNC', { - \ 'guifg': c.grey2, - \ 'guibg': c.sub1, + \ 'guisp': c.cyan, \ })) - call extend(groups, pgmnt#hi#group('TabLine', { - \ 'guifg': c.prm1, - \ 'guibg': c.sub1, + call extend(groups, pgmnt#hi#group( + \ [ 'SpellRare' ], { + \ 'guifg': c.magenta, + \ 'gui': 'undercurl', + \ 'guisp': c.magenta, \ })) - call extend(groups, pgmnt#hi#group('TablineFill', { - \ 'guifg': c.prm1, - \ 'guibg': c.sub1, + call extend(groups, pgmnt#hi#group( + \ [ 'StatusLine' ], { + \ 'guifg': c.dim_fg, + \ 'guibg': c.dim_bg, + \ 'gui': 'NONE', + \ 'cterm': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('TabLineSel', { - \ 'guifg': c.prm0, - \ 'guibg': c.sub0, - \ 'gui': 'bold', + call extend(groups, pgmnt#hi#group( + \ [ 'StatusLineNC' ], { + \ 'guifg': c.dark_dim_fg, + \ 'guibg': c.dim_bg, + \ 'gui': 'NONE', + \ 'cterm': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('Title', { - \ 'guifg': c.prm0, + call add(links, pgmnt#hi#link('StatusLineTerm', 'StatusLine')) + call add(links, pgmnt#hi#link('StatusLineTermNC', 'StatusLineNC')) + call extend(groups, pgmnt#hi#group( + \ [ 'TabLine', 'TabLineFill' ], { + \ 'guifg': c.dim_fg, + \ 'guibg': c.dim_bg, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'TabLineSel' ], { + \ 'guifg': c.dark_dim_fg, + \ 'guibg': c.dark_dim_bg, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'Title' ], { + \ 'guifg': c.normal_fg, \ 'guibg': 'NONE', \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('Visual', { - \ 'guibg': c.sub2, + call extend(groups, pgmnt#hi#group( + \ [ 'Visual' ], { + \ 'guibg': c.dark_dim_bg, \ })) - call extend(groups, pgmnt#hi#group('VisualNOS', { - \ 'guibg': c.sub2, + call add(links, pgmnt#hi#link('VisualNOS', 'Visual')) + call add(links, pgmnt#hi#link('CurSearch', 'IncSearch')) + call extend(groups, pgmnt#hi#group( + \ [ 'EndOfBuffer' ], { + \ 'guifg': c.normal_bg, \ })) - call extend(groups, pgmnt#hi#group('WarningMsg', { - \ 'guifg': c.yellow1, - \ 'gui': 'bold', + call extend(groups, pgmnt#hi#group( + \ [ 'WarningMsg' ], { + \ 'guifg': c.yellow, + \ 'gui': 'bold,underline', + \ 'guisp': c.yellow, \ })) - call extend(groups, pgmnt#hi#group('Whitespace', { - \ 'guifg': c.grey2, + call extend(groups, pgmnt#hi#group( + \ [ 'Whitespace' ], { + \ 'guifg': c.light_grey, \ })) call add(links, pgmnt#hi#link('WildMenu', 'PmenuSel')) - call extend(groups, pgmnt#hi#group('WinBar', { - \ 'guifg': c.prm1, + call extend(groups, pgmnt#hi#group( + \ [ 'WinBar' ], { + \ 'guifg': c.dim_fg, \ 'guibg': 'NONE', - \ 'gui': 'NONE', + \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('WinBarNC', { - \ 'guifg': c.prm1, + call extend(groups, pgmnt#hi#group( + \ [ 'WinBarNC' ], { + \ 'guifg': c.dim_fg, \ 'guibg': 'NONE', - \ 'gui': 'NONE', \ })) + call add(links, pgmnt#hi#link('TermCursorNC', 'Cursor')) " }}} - " syntax {{{ - call extend(groups, pgmnt#hi#group('Comment', { - \ 'guifg': c.grey0, + + " syntax highlighting {{{ + call extend(groups, pgmnt#hi#group( + \ [ 'Comment' ], { + \ 'guifg': c.dim_fg, \ 'gui': 'italic', \ })) - call extend(groups, pgmnt#hi#group('Constant', { - \ 'guifg': c.cyan0, + call extend(groups, pgmnt#hi#group( + \ [ 'Constant' ], { + \ 'guifg': c.dark_yellow, + \ 'gui': 'bold', \ })) - call extend(groups, pgmnt#hi#group('String', { - \ 'guifg': c.green0, + call extend(groups, pgmnt#hi#group( + \ [ 'String' ], { + \ 'guifg': c.green, \ })) call add(links, pgmnt#hi#link('Character', 'String')) - call extend(groups, pgmnt#hi#group('Number', { - \ 'guifg': c.magenta0, + call extend(groups, pgmnt#hi#group( + \ [ 'Number' ], { + \ 'guifg': c.magenta, \ })) - call extend(groups, pgmnt#hi#group('Boolean', { - \ 'guifg': c.magenta0, + call extend(groups, pgmnt#hi#group( + \ [ 'Boolean' ], { + \ 'guifg': c.magenta, \ })) - call add(links, pgmnt#hi#link('Float', 'Number')) - call extend(groups, pgmnt#hi#group('Identifier', { - \ 'guifg': c.blue0, + call extend(groups, pgmnt#hi#group( + \ [ 'Float' ], { + \ 'guifg': c.magenta, \ })) - call extend(groups, pgmnt#hi#group('Function', { - \ 'guifg': c.green0, + call extend(groups, pgmnt#hi#group( + \ [ 'Identifier' ], { + \ 'guifg': c.magenta, \ })) - call extend(groups, pgmnt#hi#group('Statement', { - \ 'guifg': c.red0, - \ 'gui': 'italic', + call extend(groups, pgmnt#hi#group( + \ [ 'Function' ], { + \ 'guifg': c.orange, \ })) - call extend(groups, pgmnt#hi#group('Conditional', { - \ 'guifg': c.red0, + call extend(groups, pgmnt#hi#group( + \ [ 'Statement' ], { + \ 'guifg': c.red, + \ 'gui': 'italic', \ })) - call extend(groups, pgmnt#hi#group('Repeat', { - \ 'guifg': c.red0, + call extend(groups, pgmnt#hi#group( + \ [ 'Conditional', 'Repeat' ], { + \ 'guifg': c.red, \ })) - call extend(groups, pgmnt#hi#group('Label', { - \ 'guifg': c.yellow0, + call add(links, pgmnt#hi#link('Label', 'Keyword')) + call extend(groups, pgmnt#hi#group( + \ [ 'Operator' ], { + \ 'guifg': c.yellow, \ })) - call extend(groups, pgmnt#hi#group('Operator', { - \ 'guifg': c.yellow0, + call extend(groups, pgmnt#hi#group( + \ [ 'Keyword', 'Exception' ], { + \ 'guifg': c.red, \ })) - call extend(groups, pgmnt#hi#group('Keyword', { - \ 'guifg': c.red0, + call extend(groups, pgmnt#hi#group( + \ [ 'PreProc', 'Include', 'Define' ], { + \ 'guifg': c.magenta, \ })) - call extend(groups, pgmnt#hi#group('Exception', { - \ 'guifg': c.red0, + call extend(groups, pgmnt#hi#group( + \ [ 'Macro' ], { + \ 'guifg': c.cyan, \ })) - call extend(groups, pgmnt#hi#group('PreProc', { - \ 'guifg': c.magenta0, + call extend(groups, pgmnt#hi#group( + \ [ 'PreCondit' ], { + \ 'guifg': c.magenta, \ })) - call extend(groups, pgmnt#hi#group('Macro', { - \ 'guifg': c.cyan0, + call extend(groups, pgmnt#hi#group( + \ [ 'Type' ], { + \ 'guifg': c.blue, \ })) - call extend(groups, pgmnt#hi#group('Type', { - \ 'guifg': c.yellow0, + call extend(groups, pgmnt#hi#group( + \ [ 'StorageClass' ], { + \ 'guifg': c.orange, \ })) - call extend(groups, pgmnt#hi#group('StorageClass', { - \ 'guifg': c.yellow0, + call extend(groups, pgmnt#hi#group( + \ [ 'Structure' ], { + \ 'guifg': c.yellow, \ })) - call extend(groups, pgmnt#hi#group('Structure', { - \ 'guifg': c.yellow0, + call extend(groups, pgmnt#hi#group( + \ [ 'Typedef' ], { + \ 'guifg': c.orange, \ })) - call extend(groups, pgmnt#hi#group('Special', { - \ 'guifg': c.yellow0, + call extend(groups, pgmnt#hi#group( + \ [ 'Special' ], { + \ 'guifg': c.yellow, \ })) call add(links, pgmnt#hi#link('SpecialChar', 'Special')) - call extend(groups, pgmnt#hi#group('Tag', { - \ 'guifg': c.yellow0, - \ })) - call extend(groups, pgmnt#hi#group('Delimiter', { - \ 'guifg': c.prm0, - \ })) - call extend(groups, pgmnt#hi#group('SpecialComment', { - \ 'guifg': c.grey1, + call add(links, pgmnt#hi#link('Tag', 'Special')) + call extend(groups, pgmnt#hi#group( + \ [ 'Delimiter' ], { + \ 'guifg': c.normal_fg, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'SpecialComment' ], { + \ 'guifg': c.grey, \ 'gui': 'italic', \ })) - call extend(groups, pgmnt#hi#group('Debug', { - \ 'guifg': c.yellow0, + call extend(groups, pgmnt#hi#group( + \ [ 'Debug' ], { + \ 'guifg': c.yellow, \ })) - call extend(groups, pgmnt#hi#group('Underlined', { + call extend(groups, pgmnt#hi#group( + \ [ 'Underlined' ], { \ 'gui': 'underline', \ })) - call extend(groups, pgmnt#hi#group('Ignore', { - \ 'guifg': c.grey1, + call extend(groups, pgmnt#hi#group( + \ [ 'Ignore' ], { + \ 'guifg': c.grey, \ })) - call extend(groups, pgmnt#hi#group('Error', { - \ 'guifg': c.red0, + call extend(groups, pgmnt#hi#group( + \ [ 'Error' ], { + \ 'guifg': c.dark_red, \ 'guibg': 'NONE', \ })) - call extend(groups, pgmnt#hi#group('Todo', { - \ 'guifg': c.magenta0, + call extend(groups, pgmnt#hi#group( + \ [ 'Todo' ], { + \ 'guifg': c.dark_magenta, \ 'gui': 'italic', \ })) + call add(links, pgmnt#hi#link('Added', 'DiffAdd')) + call add(links, pgmnt#hi#link('Changed', 'DiffChange')) + call add(links, pgmnt#hi#link('Removed', 'DiffDelete')) " }}} - " diagnostics {{{ - call extend(groups, pgmnt#hi#group('DiagnosticError', { - \ 'guifg': c.red0, - \ })) - call extend(groups, pgmnt#hi#group('DiagnosticWarn', { - \ 'guifg': c.yellow0, - \ })) - call extend(groups, pgmnt#hi#group('DiagnosticInfo', { - \ 'guifg': c.blue0, - \ })) - call extend(groups, pgmnt#hi#group('DiagnosticHint', { - \ 'guifg': c.cyan0, - \ })) - call extend(groups, pgmnt#hi#group('DiagnosticOk', { - \ 'guifg': c.green0, - \ })) - call extend(groups, pgmnt#hi#group('DiagnosticUnderlineError', { - \ 'guifg': c.red1, + + " lsp highlight groups {{{ + call extend(groups, pgmnt#hi#group( + \ [ 'LspReferenceText' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.dark_orange, + \ })) + call add(links, pgmnt#hi#link('LspReferenceRead', 'LspReferenceText')) + call extend(groups, pgmnt#hi#group( + \ [ 'LspReferenceWrite' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.dark_orange, \ 'gui': 'underline', \ })) - call extend(groups, pgmnt#hi#group('DiagnosticUnderlineWarn', { - \ 'guifg': c.yellow1, - \ 'gui': 'underline', + call add(links, pgmnt#hi#link('LspReferenceTarget', 'LspReferenceText')) + call extend(groups, pgmnt#hi#group( + \ [ 'LspInlayHint' ], { + \ 'guifg': c.grey, \ })) - call extend(groups, pgmnt#hi#group('DiagnosticUnderlineInfo', { - \ 'guifg': c.blue1, - \ 'gui': 'underline', + " }}} + + " diagnostic highlights {{{ + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticError' ], { + \ 'guifg': c.dark_red, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticWarn' ], { + \ 'guifg': c.dark_yellow, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticInfo' ], { + \ 'guifg': c.dark_blue, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticHint' ], { + \ 'guifg': c.dark_cyan, + \ })) + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticOk' ], { + \ 'guifg': c.dark_green, + \ })) + call add(links, pgmnt#hi#link('DiagnosticVirtualTextError', 'DiagnosticError')) + call add(links, pgmnt#hi#link('DiagnosticVirtualTextWarn', 'DiagnosticWarn')) + call add(links, pgmnt#hi#link('DiagnosticVirtualTextInfo', 'DiagnosticInfo')) + call add(links, pgmnt#hi#link('DiagnosticVirtualTextHint', 'DiagnosticHint')) + call add(links, pgmnt#hi#link('DiagnosticVirtualTextOk', 'DiagnosticOk')) + call add(links, pgmnt#hi#link('DiagnosticVirtualLinesError', 'DiagnosticError')) + call add(links, pgmnt#hi#link('DiagnosticVirtualLinesWarn', 'DiagnosticWarn')) + call add(links, pgmnt#hi#link('DiagnosticVirtualLinesInfo', 'DiagnosticInfo')) + call add(links, pgmnt#hi#link('DiagnosticVirtualLinesHint', 'DiagnosticHint')) + call add(links, pgmnt#hi#link('DiagnosticVirtualLinesOk', 'DiagnosticOk')) + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticUnderlineError' ], { + \ 'gui': 'undercurl', + \ 'guisp': c.dark_red, \ })) - call extend(groups, pgmnt#hi#group('DiagnosticUnderlineHint', { - \ 'guifg': c.cyan1, - \ 'gui': 'underline', + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticUnderlineWarn' ], { + \ 'gui': 'undercurl', + \ 'guisp': c.dark_yellow, \ })) - call extend(groups, pgmnt#hi#group('DiagnosticUnderlineOk', { - \ 'guifg': c.green1, - \ 'gui': 'underline', + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticUnderlineInfo' ], { + \ 'gui': 'undercurl', + \ 'guisp': c.dark_blue, \ })) - " }}} - " treesitter (nvim) {{{ - " Identifier - call extend(neovim_groups, pgmnt#hi#group('@variable', { - \ 'guifg': c.prm0, + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticUnderlineHint' ], { + \ 'gui': 'undercurl', + \ 'guisp': c.dark_cyan, \ })) - call extend(neovim_groups, pgmnt#hi#group('@variable.builtin', { - \ 'guifg': c.purple0, + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticUnderlineOk' ], { + \ 'gui': 'undercurl', + \ 'guisp': c.dark_green, + \ })) + call add(links, pgmnt#hi#link('DiagnosticFloatingError', 'DiagnosticError')) + call add(links, pgmnt#hi#link('DiagnosticFloatingWarn', 'DiagnosticWarn')) + call add(links, pgmnt#hi#link('DiagnosticFloatingInfo', 'DiagnosticInfo')) + call add(links, pgmnt#hi#link('DiagnosticFloatingHint', 'DiagnosticHint')) + call add(links, pgmnt#hi#link('DiagnosticFloatingOk', 'DiagnosticOk')) + call add(links, pgmnt#hi#link('DiagnosticSignError', 'DiagnosticError')) + call add(links, pgmnt#hi#link('DiagnosticSignWarn', 'DiagnosticWarn')) + call add(links, pgmnt#hi#link('DiagnosticSignInfo', 'DiagnosticInfo')) + call add(links, pgmnt#hi#link('DiagnosticSignHint', 'DiagnosticHint')) + call add(links, pgmnt#hi#link('DiagnosticSignOk', 'DiagnosticOk')) + call extend(groups, pgmnt#hi#group( + \ [ 'DiagnosticDeprecated' ], { + \ 'guifg': c.dark_red, + \ 'gui': 'strikethrough', + \ 'guisp': c.dark_red, + \ })) + call add(links, pgmnt#hi#link('DiagnosticUnnecessary', 'DiagnosticUnderlineHint')) + " }}} + + " treesitter highlight groups {{{ + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@variable' ], { + \ 'guifg': c.normal_fg, + \ })) + call add(neovim_links, pgmnt#hi#link('@variable.builtin', '@variable')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@variable.parameter' ], { + \ 'guifg': c.magenta, + \ })) + call add(neovim_links, pgmnt#hi#link('@variable.parameter.builtin', '@variable.parameter')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@variable.member' ], { + \ 'guifg': c.normal_fg, \ 'gui': 'italic', \ })) - call extend(neovim_groups, pgmnt#hi#group('@variable.parameter', { - \ 'guifg': c.magenta0, + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@constant' ], { + \ 'guifg': c.dark_yellow, + \ 'gui': 'bold', \ })) - call add(neovim_links, pgmnt#hi#link('@variable.parameter.builtin', 'Special')) - call add(neovim_links, pgmnt#hi#link('@constant', 'Constant')) - call add(neovim_links, pgmnt#hi#link('@constant.builtin', 'Special')) - call add(neovim_links, pgmnt#hi#link('@module', 'Structure')) - call add(neovim_links, pgmnt#hi#link('@module.builtin', 'Structure')) - call add(neovim_links, pgmnt#hi#link('@label', 'Label')) - " Literals - call add(neovim_links, pgmnt#hi#link('@string', 'String')) - call extend(neovim_groups, pgmnt#hi#group('@string.regexp', { - \ 'guifg': c.brown0, + call add(neovim_links, pgmnt#hi#link('@constant.builtin', '@constant')) + call add(neovim_links, pgmnt#hi#link('@constant.macro', '@constant')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@module' ], { + \ 'guifg': c.light_magenta, \ })) - call extend(neovim_groups, pgmnt#hi#group('@string.escape', { - \ 'guifg': c.brown0, + call add(neovim_links, pgmnt#hi#link('@module.builtin', '@module')) + call add(neovim_links, pgmnt#hi#link('@label', 'Label')) + call add(neovim_links, pgmnt#hi#link('@label', 'String')) + call add(neovim_links, pgmnt#hi#link('@string.documentation', 'Comment')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@string.regexp' ], { + \ 'guifg': c.dark_orange, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@string.escape' ], { + \ 'guifg': c.dark_orange, \ 'gui': 'bold', \ })) - call add(neovim_links, pgmnt#hi#link('@string.special', 'SpecialChar')) - call extend(neovim_groups, pgmnt#hi#group('@string.special.symbol', { - \ 'guifg': c.blue0, + call add(neovim_links, pgmnt#hi#link('@string.special', 'Special')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@string.special.symbol' ], { + \ 'guifg': c.green, + \ 'gui': 'bold', \ })) - call extend(neovim_groups, pgmnt#hi#group('@string.special.url', { - \ 'guifg': c.blue0, - \ 'gui': 'undercurl', + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@string.special.path' ], { + \ 'guifg': c.green, + \ 'gui': 'underline', \ })) + call add(neovim_links, pgmnt#hi#link('@string.special.url', '@string.special.path')) call add(neovim_links, pgmnt#hi#link('@character', 'Character')) call add(neovim_links, pgmnt#hi#link('@character.special', 'SpecialChar')) call add(neovim_links, pgmnt#hi#link('@boolean', 'Boolean')) call add(neovim_links, pgmnt#hi#link('@number', 'Number')) call add(neovim_links, pgmnt#hi#link('@number.float', 'Number')) - " Types call add(neovim_links, pgmnt#hi#link('@type', 'Type')) - call add(neovim_links, pgmnt#hi#link('@type.builtin', 'Special')) - call add(neovim_links, pgmnt#hi#link('@attribute', 'Constant')) - call add(neovim_links, pgmnt#hi#link('@attribute.builtin', 'Special')) - call add(neovim_links, pgmnt#hi#link('@property', 'Identifier')) - " Functions + call add(neovim_links, pgmnt#hi#link('@type.builtin', '@type')) + call add(neovim_links, pgmnt#hi#link('@type.definition', '@type')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@attribute' ], { + \ 'guifg': c.cyan, + \ })) + call add(neovim_links, pgmnt#hi#link('@attribute.builtin', '@attribute')) + call add(neovim_links, pgmnt#hi#link('@property', '@variable.member')) call add(neovim_links, pgmnt#hi#link('@function', 'Function')) - call add(neovim_links, pgmnt#hi#link('@function.builtin', 'Special')) - call extend(neovim_groups, pgmnt#hi#group('@constructor', { - \ 'guifg': c.yellow0, - \ })) + call add(neovim_links, pgmnt#hi#link('@function.builtin', '@function')) + " call @function.call + " call @function.macro + " call @function.method + " call @function.method.call + call add(neovim_links, pgmnt#hi#link('@constructor', 'Identifier')) call add(neovim_links, pgmnt#hi#link('@operator', 'Operator')) - " Keywords call add(neovim_links, pgmnt#hi#link('@keyword', 'Keyword')) - call extend(neovim_groups, pgmnt#hi#group('@keyword.operator', { - \ 'guifg': c.yellow0, + " @keyword.coroutine + " @keyword.function + call add(neovim_links, pgmnt#hi#link('@keyword.operator', 'Operator')) + call add(neovim_links, pgmnt#hi#link('@keyword.import', 'PreProc')) + " @keyword.type + " @keyword.modifier + call add(neovim_links, pgmnt#hi#link('@keyword.repeat', 'Repeat')) + " @keyword.return + " @keyword.debug + call add(neovim_links, pgmnt#hi#link('@keyword.exception', 'Exception')) + call add(neovim_links, pgmnt#hi#link('@keyword.conditional', 'Conditional')) + call add(neovim_links, pgmnt#hi#link('@keyword.conditional.ternary', 'Conditional')) + " @keyword.directive + " @keyword.directive.define + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@punctuation.delimiter', '@punctuation.bracket' ], { + \ 'guifg': c.dark_magenta, + \ })) + call add(neovim_links, pgmnt#hi#link('@punctuation.special', 'Special')) + call add(neovim_links, pgmnt#hi#link('@comment', 'Comment')) + " @comment.documentation + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@comment.error' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.light_red, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@comment.warning' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.light_yellow, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@comment.todo' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.light_cyan, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@comment.note' ], { + \ 'guifg': c.normal_bg, + \ 'guibg': c.light_blue, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.strong' ], { \ 'gui': 'bold', \ })) - call add(neovim_links, pgmnt#hi#link('@keyword.import', 'PreProc')) - " Punctuation - call extend(neovim_groups, pgmnt#hi#group('@punctuation.delimiters', { - \ 'guifg': c.magenta0, + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.italic' ], { + \ 'gui': 'italic', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.strikethrough' ], { + \ 'gui': 'strikethrough', \ })) - call extend(neovim_groups, pgmnt#hi#group('@punctuation.bracket', { - \ 'guifg': c.magenta0, + call add(neovim_links, pgmnt#hi#link('@markup.underline', 'Underlined')) + call add(neovim_links, pgmnt#hi#link('@markup.heading', 'Title')) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.heading.1.markdown' ], { + \ 'guifg': c.dark_blue, + \ 'gui': 'bold', \ })) - call extend(neovim_groups, pgmnt#hi#group('@punctuation.special', { - \ 'guifg': c.magenta0, + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.heading.2.markdown' ], { + \ 'guifg': c.dark_orange, + \ 'gui': 'bold', \ })) - " Comments - call add(neovim_links, pgmnt#hi#link('@comment', 'Comment')) - call extend(neovim_groups, pgmnt#hi#group('@comment.error', { - \ 'guifg': c.prm0, - \ 'guibg': c.red2, + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.heading.3.markdown' ], { + \ 'guifg': c.dark_green, + \ 'gui': 'bold', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.heading.4.markdown' ], { + \ 'guifg': c.dark_cyan, \ 'gui': 'bold', \ })) - call extend(neovim_groups, pgmnt#hi#group('@comment.warning', { - \ 'guifg': c.prm0, - \ 'guibg': c.yellow2, + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.heading.5.markdown' ], { + \ 'guifg': c.dark_magenta, \ 'gui': 'bold', \ })) - call add(neovim_links, pgmnt#hi#link('@comment.todo', 'Todo')) - call extend(neovim_groups, pgmnt#hi#group('@comment.note', { - \ 'guifg': c.prm0, - \ 'guibg': c.blue2, + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@markup.heading.6.markdown' ], { + \ 'guifg': c.dark_purple, \ 'gui': 'bold', \ })) + call add(neovim_links, pgmnt#hi#link('@markup.quote', 'Special')) + call add(neovim_links, pgmnt#hi#link('@markup.math', 'Special')) + " @markup.link + " @markup.link.label + " @markup.link.url + call add(neovim_links, pgmnt#hi#link('@markup.link.url', 'Special')) + " @markup.raw + call add(neovim_links, pgmnt#hi#link('@markup.raw', 'String')) + " @markup.raw.block + " @markup.list + " @markup.list.checked + " @markup.list.unchecked + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@diff.plus' ], { + \ 'guifg': c.light_green, + \ 'gui': 'bold', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@diff.minus' ], { + \ 'guifg': c.light_red, + \ 'gui': 'bold', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ '@diff.delta' ], { + \ 'guifg': c.light_blue, + \ 'gui': 'bold', + \ })) + call add(neovim_links, pgmnt#hi#link('@tag', 'Tag')) + call add(neovim_links, pgmnt#hi#link('@tag.attribute', '@property')) + call add(neovim_links, pgmnt#hi#link('@tag.delimiter', 'Delimiter')) + " }}} + + " lsp semantic highlight groups {{{ + " @lsp.type.class + " @lsp.type.comment + " @lsp.type.decorator + " @lsp.type.enum + " @lsp.type.enumMember + " @lsp.type.event + " @lsp.type.function + " @lsp.type.interface + " @lsp.type.keyword + " @lsp.type.macro + " @lsp.type.method + " @lsp.type.modifier + " @lsp.type.namespace + " @lsp.type.number + " @lsp.type.operator + " @lsp.type.parameter + " @lsp.type.property + " @lsp.type.regexp + " @lsp.type.string + " @lsp.type.struct + " @lsp.type.type + " @lsp.type.typeParameter + " @lsp.type.variable + " @lsp.mod.abstract + " @lsp.mod.async + " @lsp.mod.declaration + " @lsp.mod.defaultLibrary + " @lsp.mod.definition + " @lsp.mod.deprecated + " @lsp.mod.documentation + " @lsp.mod.modification + " @lsp.mod.readonly + " @lsp.mod.static " }}} " terminal {{{ let quoted_term_colors = map( - \ term_colors, + \ c.term_colors, \ '"''" . v:val . "''"') - let neovim_term = map( - \ copy(quoted_term_colors), - \ '"let g:terminal_color_" . v:key . " = " . v:val') let vim_term = printf( \ 'let g:terminal_ansi_colors = [%s]', - \ join(quoted_term_colors, ', '), + \ join(quoted_term_colors, ', ') \ ) + let neovim_term = map( + \ copy(quoted_term_colors), + \ '"let g:terminal_color_" . v:key . " = " . v:val') + " }}} + + " plugins {{{ + " nvim-notify + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyERRORBorder' ], { + \ 'guifg': c.dark_red, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyWARNBorder' ], { + \ 'guifg': c.dark_yellow, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyINFOBorder' ], { + \ 'guifg': c.dark_blue, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyDEBUGBorder' ], { + \ 'guifg': c.dark_cyan, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyTRACEBorder' ], { + \ 'guifg': c.dark_cyan, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyERRORIcon', 'NotifyERRORTitle' ], { + \ 'guifg': c.red, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyWARNIcon', 'NotifyWARNTitle' ], { + \ 'guifg': c.yellow, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyINFOIcon', 'NotifyINFOTitle' ], { + \ 'guifg': c.blue, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyDEBUGIcon', 'NotifyDEBUGTitle' ], { + \ 'guifg': c.cyan, + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ [ 'NotifyTRACEIcon', 'NotifyTRACETitle' ], { + \ 'guifg': c.cyan, + \ })) + call add(neovim_links, pgmnt#hi#link('NotifyERRORBody', 'Normal')) + call add(neovim_links, pgmnt#hi#link('NotifyWARNBody', 'Normal')) + call add(neovim_links, pgmnt#hi#link('NotifyINFOBody', 'Normal')) + call add(neovim_links, pgmnt#hi#link('NotifyDEBUGBody', 'Normal')) + call add(neovim_links, pgmnt#hi#link('NotifyTRACEBody', 'Normal')) + " gitsigns.nvim + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsAdd'], { + \ 'guifg': c.light_green, + \ 'guibg': 'NONE', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsChange'], { + \ 'guifg': c.light_blue, + \ 'guibg': 'NONE', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsDelete'], { + \ 'guifg': c.light_red, + \ 'guibg': 'NONE', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsAddInline'], { + \ 'guifg': c.white, + \ 'guibg': c.light_green, + \ 'gui': 'bold', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsChangeInline'], { + \ 'guifg': c.white, + \ 'guibg': c.light_blue, + \ 'gui': 'bold', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsDeleteInline'], { + \ 'guifg': c.white, + \ 'guibg': c.light_red, + \ 'gui': 'bold', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsAddPreview'], { + \ 'guifg': c.light_green, + \ 'guibg': 'NONE', + \ })) + call extend(neovim_groups, pgmnt#hi#group( + \ ['GitSignsDeletePreview'], { + \ 'guifg': c.light_red, + \ 'guibg': 'NONE', + \ })) + " }}} return { - \ 'modified': strftime('%Y-%m-%d %H:%M%z'), \ 'groups': groups, \ 'neovim_groups': neovim_groups, + \ 'vim_term': vim_term, + \ 'neovim_term': neovim_term, + \ 'links': links, \ 'neovim_links': neovim_links, + \ } +endfunction + +function! s:create_context() + let l = s:create_highlights(s:create_palette()) + let links = l.links + let neovim_links = l.neovim_links + + return { + \ 'modified': strftime('%Y-%m-%d %H:%M%z'), + \ 'light_groups': l.groups, + \ 'light_neovim_groups': l.neovim_groups, + \ 'light_vim_term': l.vim_term, + \ 'light_neovim_term': l.neovim_term, \ 'links': links, - \ 'neovim_term': neovim_term, - \ 'vim_term': vim_term, + \ 'neovim_links': neovim_links, \ } endfunction -" }}} -call pgmnt#compile(s:create(), { +call pgmnt#compile(s:create_context(), { \ 'output': expand(':p:h') . '/../colors/sorairo.vim', - \ 'template': expand(':p:h') . '/template.vim' + \ 'template': expand(':p:h') . '/template.vim', \ }) diff --git a/src/template.vim b/src/template.vim index 7ec82eb..4807ebc 100644 --- a/src/template.vim +++ b/src/template.vim @@ -6,13 +6,14 @@ hi clear if exists('syntax_on') syntax reset endif +set termguicolors let g:colors_name = 'sorairo' -{{ groups }} +{{ light_groups }} {{ links }} if has('nvim') - {{ neovim_groups }} + {{ light_neovim_groups }} {{ neovim_links }} - {{ neovim_term }} + {{ light_neovim_term }} else - {{ vim_term }} + {{ light_vim_term }} endif