From 4cd18066826de72b0e2e9738f1b78ce587b33e67 Mon Sep 17 00:00:00 2001 From: h Date: Sun, 14 Jun 2026 02:49:06 -0400 Subject: [PATCH] forest --- nvim-lazy-profile/lua/lsp.lua | 22 +- nvim-lazy-profile/lua/options.lua | 10 +- nvim-lazy-profile/lua/plugins/init.lua | 17 +- themectl/config.toml | 2 + themectl/schemes/forest.yaml | 6 +- themectl/templates/mininvim-custom.mustache | 40 + themectl/templates/neovim-custom.mustache | 5 +- themectl/templates/tinted-custom.mustache | 910 ++++++++++++++++++++ themectl/templates/vim-custom.mustache | 6 +- 9 files changed, 998 insertions(+), 20 deletions(-) create mode 100644 themectl/templates/mininvim-custom.mustache create mode 100644 themectl/templates/tinted-custom.mustache diff --git a/nvim-lazy-profile/lua/lsp.lua b/nvim-lazy-profile/lua/lsp.lua index ffadc76..fe16a33 100644 --- a/nvim-lazy-profile/lua/lsp.lua +++ b/nvim-lazy-profile/lua/lsp.lua @@ -61,7 +61,13 @@ local lsp_confs = { }, }, }, - ccls = {}, + ccls = { + init_options = { + clang = { + fallbackStyle = "{BasedOnStyle: LLVM, IndentWidth: 4, TabWidth: 4, UseTab: Never}", + }, + }, + }, jedi_language_server = { filetypes = { "python", "sage.python" }, }, @@ -138,7 +144,7 @@ for server, conf in pairs(lsp_confs) do if special_setup then special_setup(final_config) else - -- lspconfig[server].setup(final_config) + -- lspconfig[server].setup(final_config) vim.lsp.config[server] = final_config vim.lsp.enable(server) -- lspconfig(server, final_config) @@ -240,11 +246,11 @@ map('n', 'pc', 'za', { noremap = true }) -- folds and treesitter vim.api.nvim_create_autocmd('FileType', { - pattern = { '*' }, + pattern = { '*' }, callback = function() if vim.bo.filetype ~= "plaintex" and vim.bo.filetype ~= "tex" and vim.bo.filetype ~= "latex" and vim.bo.filetype ~= "qf" and vim.bo.filetype ~= "bib" and vim.bo.filetype ~= "" and vim.bo.filetype ~= "pdf" - and vim.bo.filetype ~= "conf" and vim.bo.filetype ~= "TelescopePrompt" and vim.bo.filetype ~= "lazy" and vim.bo.filetype ~= "lazy_backdrop" and vim.bo.filetype ~= "TelescopeResults" then + and vim.bo.filetype ~= "conf" and vim.bo.filetype ~= "TelescopePrompt" and vim.bo.filetype ~= "lazy" and vim.bo.filetype ~= "lazy_backdrop" and vim.bo.filetype ~= "TelescopeResults" and vim.bo.filetype ~= "netrw" and vim.bo.filetype ~= "html.mustache" then vim.treesitter.start() vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()' vim.wo[0][0].foldmethod = 'expr' @@ -252,6 +258,14 @@ vim.api.nvim_create_autocmd('FileType', { vim.wo[0][0].foldlevel = 99 vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" end + + if vim.bo.filetype == "c" or vim.bo.filetype == "cpp" or vim.bo.filetype == "cuda" or vim.bo.filetype == "objc" or vim.bo.filetype == "objcpp" then + vim.opt_local.shiftwidth = 2 + vim.opt_local.tabstop = 2 + vim.opt_local.softtabstop = 2 + vim.opt_local.expandtab = true + vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" + end end }) diff --git a/nvim-lazy-profile/lua/options.lua b/nvim-lazy-profile/lua/options.lua index 1d10da2..31d0efb 100644 --- a/nvim-lazy-profile/lua/options.lua +++ b/nvim-lazy-profile/lua/options.lua @@ -4,6 +4,8 @@ local map = vim.api.nvim_set_keymap o.expandtab = true o.tabstop = 4 o.shiftwidth = 0 +o.modeline = true +o.modelines = 5 o.viminfo = '' vim.g.base16colorspace = 256 vim.g.vimtex_view_method = "zathura" @@ -26,16 +28,18 @@ vim.cmd [[ o.spelllang = "en_us" map('i', '', 'u[s1z=`]au', { noremap = true }) +-- vim.cmd('colorscheme theme') +-- vim.cmd('colorscheme tinted-theme') vim.cmd('colorscheme theme-nvim') +-- vim.cmd('colorscheme theme-mininvim') + vim.g.airline_theme = 'theme' vim.cmd("AirlineTheme theme") + -- stupid fix for stupid problems i guess vim.g["airline#extensions#whitespace#enabled"] = false -local color = require('base16-colorscheme').colors.base02 - -vim.api.nvim_set_hl(0, 'LineNr', { fg = color, bg = "none" }) map('n', 's', ':%s//g', {}) map('n', 'e', ':make!', { noremap = true }) diff --git a/nvim-lazy-profile/lua/plugins/init.lua b/nvim-lazy-profile/lua/plugins/init.lua index 57d78e1..606bc53 100644 --- a/nvim-lazy-profile/lua/plugins/init.lua +++ b/nvim-lazy-profile/lua/plugins/init.lua @@ -5,6 +5,10 @@ local function import(name) end return { + { + 'nvim-mini/mini.nvim', + version = false + }, { "RRethy/base16-nvim", @@ -265,20 +269,17 @@ return { { src = 'nvimlua', short_name = 'NLUA', conf_only = true }, { src = 'bc', short_name = 'CALC', precision = 8 }, } - end, build = function() require("coq") vim.cmd(":COQdeps") end, config = function() - require('coq_3p') { { src = 'vimtex', short_name = 'TEX' }, { src = 'nvimlua', short_name = 'NLUA', conf_only = true }, { src = 'bc', short_name = 'CALC', precision = 8 }, } - end }, @@ -321,11 +322,11 @@ return { lazy = false, dependencies = { - { - "ms-jpq/coq.artifacts", - branch = "artifacts", - lazy = false, - }, + { + "ms-jpq/coq.artifacts", + branch = "artifacts", + lazy = false, + }, }, }, }, diff --git a/themectl/config.toml b/themectl/config.toml index 735e4e1..17a041e 100644 --- a/themectl/config.toml +++ b/themectl/config.toml @@ -2,6 +2,8 @@ vim-custom = "~/.config/nvim/colors/theme.vim" neovim-custom = "~/.config/nvim/colors/theme-nvim.lua" +mininvim-custom = "~/.config/nvim/colors/theme-mininvim.lua" +tinted-custom = "~/.config/nvim/colors/tinted-theme.vim" airline = "~/.config/nvim/autoload/airline/themes/theme.vim" shell-custom = { file = "~/.cache/theme/colors.sh", post = "(bspc wm -r &) ; (source ~/.cache/theme/colors.sh)" } diff --git a/themectl/schemes/forest.yaml b/themectl/schemes/forest.yaml index e37ce9a..ec84345 100644 --- a/themectl/schemes/forest.yaml +++ b/themectl/schemes/forest.yaml @@ -6,9 +6,9 @@ base01: "343f44" # Lighter Background (Used for status bars, line number and fol base02: "3d484d" # Selection Background base03: "475258" # Comments, Invisibles, Line Highlighting base04: "4f585e" # Dark Foreground (Used for status bars) -base05: "859289" # Default Foreground, Caret, Delimiters, Operators -base06: "9da9a0" # Light Foreground (Not often used) -base07: "d3c6aa" # Light Background (Not often used) +base05: "d3c6aa" # Default Foreground, Caret, Delimiters, Operators +base06: "859289" # Light Foreground (Not often used) +base07: "9da9a0" # Light Background (Not often used) base08: "e67e80" # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted base09: "e69875" # Integers, Boolean, Constants, XML Attributes, Markup Link Url base0A: "dbbc7f" # Classes, Markup Bold, Search Text Background diff --git a/themectl/templates/mininvim-custom.mustache b/themectl/templates/mininvim-custom.mustache new file mode 100644 index 0000000..a35510a --- /dev/null +++ b/themectl/templates/mininvim-custom.mustache @@ -0,0 +1,40 @@ +require('mini.base16').setup({ + palette = { + base00 = "#{{base00-hex}}", + base01 = "#{{base01-hex}}", + base02 = "#{{base02-hex}}", + base03 = "#{{base03-hex}}", + base04 = "#{{base04-hex}}", + base05 = "#{{base05-hex}}", + base06 = "#{{base06-hex}}", + base07 = "#{{base07-hex}}", + base08 = "#{{base08-hex}}", + base09 = "#{{base09-hex}}", + base0A = "#{{base0A-hex}}", + base0B = "#{{base0B-hex}}", + base0C = "#{{base0C-hex}}", + base0D = "#{{base0D-hex}}", + base0E = "#{{base0E-hex}}", + base0F = "#{{base0F-hex}}", + }, + use_cterm = true, + plugins = { + default = false, + ['nvim-mini/mini.nvim'] = true, + }, +}) + +local color = require('mini.base16').config.palette.base02 +local back_color = require('mini.base16').config.palette.base00 + +vim.api.nvim_set_hl(0, 'LineNr', { fg = color, bg = back_color }) +vim.api.nvim_set_hl(0, 'LineNrAbove', { fg = color, bg = back_color }) +vim.api.nvim_set_hl(0, 'LineNrBelow', { fg = color, bg = back_color }) +vim.api.nvim_set_hl(0, 'SignColumn', { bg = "none" }) +vim.api.nvim_set_hl(0, 'FoldColumn', { bg = "none" }) +vim.api.nvim_set_hl(0, 'CursorLineNr', { bg = "none" }) +vim.api.nvim_set_hl(0, 'DiagnosticSignWarn', { fg = "#{{base0E-hex}}", bg = "none" }) +vim.api.nvim_set_hl(0, 'DiagnosticSignHint', { fg = "#{{base0D-hex}}", bg = "none" }) +vim.api.nvim_set_hl(0, 'DiagnosticSignError', { fg = "#{{base08-hex}}", bg = "none" }) +vim.api.nvim_set_hl(0, 'DiagnosticSignOk', { fg = "#{{base0B-hex}}", bg = "none" }) +vim.api.nvim_set_hl(0, 'DiagnosticSignInfo', { fg = "#{{base0C-hex}}", bg = "none" }) diff --git a/themectl/templates/neovim-custom.mustache b/themectl/templates/neovim-custom.mustache index dec5e56..7201a6d 100644 --- a/themectl/templates/neovim-custom.mustache +++ b/themectl/templates/neovim-custom.mustache @@ -1,5 +1,5 @@ require('base16-colorscheme').with_config { - telescope = false, +-- telescope_borders = true, } require('base16-colorscheme').setup({ @@ -20,3 +20,6 @@ require('base16-colorscheme').setup({ base0E = "#{{base0E-hex}}", base0F = "#{{base0F-hex}}", }) + +local color = require('base16-colorscheme').colors.base02 +vim.api.nvim_set_hl(0, 'LineNr', { fg = color, bg = "none" }) diff --git a/themectl/templates/tinted-custom.mustache b/themectl/templates/tinted-custom.mustache new file mode 100644 index 0000000..f94e4ef --- /dev/null +++ b/themectl/templates/tinted-custom.mustache @@ -0,0 +1,910 @@ +" vi:syntax=vim + +" tinted-vim (https://github.com/tinted-theming/tinted-vim) +" Template author: Tinted Theming (https://github.com/tinted-theming) + +" This enables the coresponding base16-shell script to run so that +" :colorscheme works in terminals supported by tinted-shell scripts +" User must set this variable in .vimrc +" let g:tinted_shell_path=path/to/shell/scripts +if !has('gui_running') + if exists('g:tinted_shell_path') + execute 'silent !/bin/sh '.g:tinted_shell_path.'/{{scheme-system}}/{{scheme-slug}}.sh' + endif +endif + +" GUI colors +let s:gui00 = "{{base00-hex}}" +let s:gui01 = "{{base01-hex}}" +let s:gui02 = "{{base02-hex}}" +let s:gui03 = "{{base03-hex}}" +let s:gui04 = "{{base04-hex}}" +let s:gui05 = "{{base05-hex}}" +let s:gui06 = "{{base06-hex}}" +let s:gui07 = "{{base07-hex}}" +let s:gui08 = "{{base08-hex}}" +let s:gui09 = "{{base09-hex}}" +let s:gui0A = "{{base0A-hex}}" +let s:gui0B = "{{base0B-hex}}" +let s:gui0C = "{{base0C-hex}}" +let s:gui0D = "{{base0D-hex}}" +let s:gui0E = "{{base0E-hex}}" +let s:gui0F = "{{base0F-hex}}" +let s:gui10 = "{{base00-hex}}" +let s:gui11 = "{{base00-hex}}" +let s:gui12 = "{{base08-hex}}" +let s:gui13 = "{{base0A-hex}}" +let s:gui14 = "{{base0B-hex}}" +let s:gui15 = "{{base0C-hex}}" +let s:gui16 = "{{base0D-hex}}" +let s:gui17 = "{{base0E-hex}}" +" Terminal colors +let s:cterm00 = '00' +let s:cterm01 = '18' +let s:cterm02 = '19' +let s:cterm03 = '08' +let s:cterm04 = '20' +let s:cterm05 = '21' +let s:cterm06 = '07' +let s:cterm07 = '15' +let s:cterm08 = '01' +let s:cterm09 = '16' +let s:cterm0A = '03' +let s:cterm0B = '02' +let s:cterm0C = '06' +let s:cterm0D = '04' +let s:cterm0E = '05' +let s:cterm0F = '17' +let s:cterm10 = s:cterm00 +let s:cterm11 = s:cterm00 +let s:cterm12 = '01' +let s:cterm13 = '03' +let s:cterm14 = '02' +let s:cterm15 = '06' +let s:cterm16 = '04' +let s:cterm17 = '05' + +" base16_colorspace` and `base16colorspace` are legacy properties and +" exist to keep existing setups from breaking +if (exists('base16_colorspace') && base16_colorspace !=? '256') || (exists('base16colorspace') && base16colorspace !=? '256') || (exists('tinted_colorspace') && tinted_colorspace !=? '256') + " We have only 16 colors so define fallbacks for codes > 15 + let s:cterm01 = s:cterm00 + let s:cterm02 = s:cterm03 + let s:cterm04 = s:cterm03 + let s:cterm05 = s:cterm06 + let s:cterm07 = s:cterm06 + let s:cterm09 = s:cterm08 + let s:cterm0F = s:cterm08 +endif + +" Todo! why do we need the globals? +function! s:create_color_globals() abort + for i in range(0, 23) + let l:num = printf('%02X', i) + execute 'let g:tinted_gui' . l:num . ' = s:gui' . l:num + execute 'let g:tinted_cterm' . l:num . ' = s:cterm' . l:num + " Legacy vars for lualine + execute 'let g:base16_gui' . l:num . ' = s:gui' . l:num + endfor +endfunction + +call s:create_color_globals() + +" Integrated Terminal colors +let s:colors = [ + \ '#{{base00-hex}}', + \ '#{{base08-hex}}', + \ '#{{base0B-hex}}', + \ '#{{base0A-hex}}', + \ '#{{base0D-hex}}', + \ '#{{base0E-hex}}', + \ '#{{base0C-hex}}', + \ '#{{base05-hex}}', + \ '#{{base03-hex}}', + \ '#{{base08-hex}}', + \ '#{{base0B-hex}}', + \ '#{{base0A-hex}}', + \ '#{{base0D-hex}}', + \ '#{{base0E-hex}}', + \ '#{{base0C-hex}}', + \ '#{{base07-hex}}' +\] + +if has('nvim') + for i in range(16) + let g:terminal_color_{i} = s:colors[i] + endfor + let g:terminal_color_background = &background ==? 'light' ? s:colors[7] : s:colors[0] + let g:terminal_color_foreground = &background ==? 'light' ? s:colors[2] : s:colors[5] +elseif has('terminal') + let g:terminal_ansi_colors = s:colors +endif + +if exists('g:tinted_background_transparent') && g:tinted_background_transparent ==? '1' + let s:guibg = 'NONE' + let s:ctermbg = 'NONE' +else + let s:guibg = s:gui00 + let s:ctermbg = s:cterm00 +endif + +if !exists('g:tinted_bold') + let g:tinted_bold = 1 +endif + +if !exists('g:tinted_italic') + let g:tinted_italic = 1 +endif + +if !exists('g:tinted_strikethrough') + let g:tinted_strikethrough = 1 +endif + +if !exists('g:tinted_underline') + let g:tinted_underline = 1 +endif + +if !exists('g:tinted_undercurl') + let g:tinted_undercurl = g:tinted_underline +endif + +let s:attrs = { + \ 'bold': g:tinted_bold, + \ 'italic': g:tinted_italic, + \ 'strikethrough': g:tinted_strikethrough, + \ 'underline': g:tinted_underline, + \ 'undercurl': g:tinted_undercurl, + \} + +" Theme setup +let g:colors_name = 'tinted-theme' + +" Highlighting function +" Optional variables are attributes and guisp +function! g:Tinted_Hi(group, guifg, guibg, ctermfg, ctermbg, ...) + + " Clear the highlight to be more robust against default Highlighting changes + exec 'hi! clear ' . a:group + + let l:attr = join(filter(split(get(a:, 1, ''), ','), 'get(s:attrs, v:val, 1)'), ',') + let l:guisp = get(a:, 2, '') + + " See :help highlight-guifg + let l:gui_special_names = ['NONE', 'bg', 'background', 'fg', 'foreground'] + + if a:guifg !=? '' + if index(l:gui_special_names, a:guifg) >= 0 + exec 'hi! ' . a:group . ' guifg=' . a:guifg + else + exec 'hi! ' . a:group . ' guifg=#' . a:guifg + endif + endif + if a:guibg !=? '' + if index(l:gui_special_names, a:guibg) >= 0 + exec 'hi! ' . a:group . ' guibg=' . a:guibg + else + exec 'hi! ' . a:group . ' guibg=#' . a:guibg + endif + endif + if a:ctermfg !=? '' + exec 'hi! ' . a:group . ' ctermfg=' . a:ctermfg + endif + if a:ctermbg !=? '' + exec 'hi! ' . a:group . ' ctermbg=' . a:ctermbg + endif + if l:attr !=? '' + exec 'hi! ' . a:group . ' gui=' . l:attr . ' cterm=' . l:attr + endif + if l:guisp !=? '' + if index(l:gui_special_names, l:guisp) >= 0 + exec 'hi! ' . a:group . ' guisp=' . l:guisp + else + exec 'hi! ' . a:group . ' guisp=#' . l:guisp + endif + endif +endfunction + + +fun hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp) + call g:Tinted_Hi(a:group, a:guifg, a:guibg, a:ctermfg, a:ctermbg, a:attr, a:guisp) +endfun + + +" Tinted color highlights + +call hi('tinted_gui00', s:gui00, '', s:cterm00, '', '', '') +call hi('tinted_gui01', s:gui01, '', s:cterm01, '', '', '') +call hi('tinted_gui02', s:gui02, '', s:cterm02, '', '', '') +call hi('tinted_gui03', s:gui03, '', s:cterm03, '', '', '') +call hi('tinted_gui04', s:gui04, '', s:cterm04, '', '', '') +call hi('tinted_gui05', s:gui05, '', s:cterm05, '', '', '') +call hi('tinted_gui06', s:gui06, '', s:cterm06, '', '', '') +call hi('tinted_gui07', s:gui07, '', s:cterm07, '', '', '') +call hi('tinted_gui08', s:gui08, '', s:cterm08, '', '', '') +call hi('tinted_gui09', s:gui09, '', s:cterm09, '', '', '') +call hi('tinted_gui0A', s:gui0A, '', s:cterm0A, '', '', '') +call hi('tinted_gui0B', s:gui0B, '', s:cterm0B, '', '', '') +call hi('tinted_gui0C', s:gui0C, '', s:cterm0C, '', '', '') +call hi('tinted_gui0D', s:gui0D, '', s:cterm0D, '', '', '') +call hi('tinted_gui0E', s:gui0E, '', s:cterm0E, '', '', '') +call hi('tinted_gui0F', s:gui0F, '', s:cterm0F, '', '', '') +call hi('tinted_gui10', s:gui10, '', s:cterm10, '', '', '') +call hi('tinted_gui11', s:gui11, '', s:cterm11, '', '', '') +call hi('tinted_gui12', s:gui12, '', s:cterm12, '', '', '') +call hi('tinted_gui13', s:gui13, '', s:cterm13, '', '', '') +call hi('tinted_gui14', s:gui14, '', s:cterm14, '', '', '') +call hi('tinted_gui15', s:gui15, '', s:cterm15, '', '', '') +call hi('tinted_gui16', s:gui16, '', s:cterm16, '', '', '') +call hi('tinted_gui17', s:gui17, '', s:cterm17, '', '', '') + +" Vim editor colors + +call hi('ColorColumn', '', s:gui01, '', s:cterm01, '', '') +call hi('Conceal', s:gui0D, '', s:cterm0D, '', '', '') +call hi('CurSearch', s:gui00, s:gui14, s:cterm00, s:cterm14, '', '') +call hi('Cursor', 'bg', 'fg', '', '', '', '') +hi! link lCursor Cursor +hi! link CursorIM Cursor +call hi('CursorColumn', '', s:gui01, '', s:cterm01, 'none', '') +call hi('CursorLine', '', s:gui01, '', s:cterm01, 'none', '') +call hi('Directory', s:gui0D, '', s:cterm0D, '', '', '') + +" Diff +call hi('DiffAdd', '', s:gui01, '', s:cterm01, '', '') +call hi('DiffChange', '', s:gui01, '', s:cterm01, '', '') +call hi('DiffDelete', s:gui03, s:guibg, s:cterm03, s:ctermbg, '', '') +call hi('DiffText', '', s:gui02, '', s:cterm02, '', '') + +call hi('EndOfBuffer', s:guibg, s:guibg, s:ctermbg, s:ctermbg, '', '') +call hi('ErrorMsg', s:gui08, '', s:cterm08, '', '', '') +if has('nvim') + call hi('WinSeparator', s:gui01, s:guibg, s:cterm01, s:ctermbg, '', '') +else + call hi('VertSplit', s:gui01, s:guibg, s:cterm01, s:ctermbg, '', '') +endif +call hi('Folded', s:gui13, s:guibg, s:cterm13, s:ctermbg, '', '') +call hi('FoldColumn', s:gui03, s:guibg, s:cterm03, s:ctermbg, '', '') +call hi('SignColumn', s:gui03, s:guibg, s:cterm03, s:ctermbg, '', '') +hi! link IncSearch CurSearch +hi! link Substitute Search +call hi('LineNr', s:gui03, s:guibg, s:cterm03, s:ctermbg, '', '') +hi! link LineNrAbove LineNr +hi! link LineNrBelow LineNr +call hi('CursorLineNr', s:gui04, s:guibg, s:cterm04, s:ctermbg, 'bold', '') +call hi('CursorLineFold', s:gui13, s:guibg, s:cterm13, s:ctermbg, '', '') +hi! link CursorLineSign SignColumn +call hi('MatchParen', s:gui06, '', s:cterm06, '', 'bold', '') +call hi('ModeMsg', s:gui05, '', s:cterm05, '', '', '') +hi! link MsgArea None +hi! link MsgSeparator WinSeparator +call hi('MoreMsg', s:gui0B, '', s:cterm0B, '', '', '') +call hi('NonText', s:gui03, '', s:cterm03, '', '', '') +call hi('Normal', s:gui05, s:guibg, s:cterm05, s:ctermbg, '', '') +call hi('NormalFloat', s:gui06, s:gui01, s:cterm06, s:cterm01, 'none', '') +call hi('FloatBorder', s:gui06, s:gui01, s:cterm06, s:cterm01, 'none', '') +hi! link FloatTitle Title +hi! link FloatFooter FloatTitle +hi! link NormalNC None +call hi('PMenu', s:gui05, s:gui01, s:cterm05, s:cterm01, 'none', '') +call hi('PMenuSel', s:gui06, s:gui02, s:cterm06, s:cterm02, 'none', '') +hi! link PMenuKind PMenu +hi! link PMenuKindSel PMenuSel +hi! link PMenuExtra PMenu +hi! link PMenuExtraSel PMenuSel +call hi('PMenuSbar', '', s:gui03, '', s:cterm03, '', '') +call hi('PMenuThumb', '', s:gui04, '', s:cterm04, '', '') +call hi('PMenuMatch', s:gui0C, '', s:cterm0C, '', '', '') +call hi('PMenuMatchSel', s:gui15, s:gui02, s:cterm15, s:cterm02, 'none', '') +call hi('Question', s:gui0D, '', s:cterm0D, '', '', '') +call hi('QuickFixLine', '', s:gui01, '', s:cterm01, 'none', '') +call hi('Search', s:gui01, s:gui13, s:cterm01, s:cterm13, '', '') +hi! link SnippetTabstop Visual +call hi('SpecialKey', s:gui03, '', s:cterm03, '', '', '') + +" Spell +call hi('SpellBad', '', '', s:ctermbg, s:cterm12, 'undercurl', s:gui08) +call hi('SpellLocal', '', '', s:ctermbg, s:cterm15, 'undercurl', s:gui15) +call hi('SpellCap', '', '', s:ctermbg, s:cterm16, 'undercurl', s:gui16) +call hi('SpellRare', '', '', s:ctermbg, s:cterm0E, 'undercurl', s:gui0E) + +call hi('StatusLine', s:gui04, s:gui01, s:cterm04, s:cterm01, 'none', '') +call hi('StatusLineNC', s:gui03, s:gui01, s:cterm03, s:cterm01, 'none', '') +hi! link StatusLineTerm StatusLine +hi! link StatusLineTermNC StatusLineNC +hi! link TabLine StatusLine +call hi('TabLineSel', s:gui01, s:gui04, s:cterm01, s:cterm04, 'none', '') +hi! link TabLineFill StatusLine + +call hi('Title', s:gui0D, '', s:cterm0D, '', '', '') +call hi('Visual', '', s:gui02, '', s:cterm02, '', '') +hi! link VisualNOS Visual +call hi('WarningMsg', s:gui09, '', s:cterm09, '', '', '') +call hi('Whitespace', s:gui03, '', s:cterm03, '', '', '') +call hi('WildMenu', s:guibg, s:gui05, s:ctermbg, s:cterm05, '', '') +hi! link WinBar StatusLine +hi! link WinBarNC StatusLineNC + +" call hi('Menu', s:guibg, s:gui05, s:ctermbg, s:cterm05, '', '") +" call hi('Scrollbar', s:guibg, s:gui05, s:ctermbg, s:cterm05, '', '") +" call hi('Tooltip', s:guibg, s:gui05, s:ctermbg, s:cterm05, '', '") + + +" Standard syntax + +call hi('Comment', s:gui03, '', s:cterm03, '', 'italic', '') + +call hi('Constant', s:gui09, '', s:cterm09, '', 'none', '') +call hi('String', s:gui0B, '', s:cterm0B, '', 'italic', '') +call hi('Character', s:gui0C, '', s:cterm0C, '', 'none', '') +call hi('Number', s:gui09, '', s:cterm09, '', 'none', '') +call hi('Boolean', s:gui09, '', s:cterm09, '', 'none', '') +call hi('Float', s:gui09, '', s:cterm09, '', 'none', '') + +" The [spec](https://github.com/tinted-theming/base24/blob/main/styling.md) wants +" `Identifier` mapped to base08 aka RED. I do not like it, too much RED. +call hi('Identifier', s:gui05, '', s:cterm05, '', 'none', '') +call hi('Function', s:gui0D, '', s:cterm0D, '', 'none', '') + +call hi('Statement', s:gui0E, '', s:cterm0E, '', 'bold', '') +call hi('Conditional', s:gui0E, '', s:cterm0E, '', 'none', '') +call hi('Repeat', s:gui0E, '', s:cterm0E, '', 'none', '') +call hi('Label', s:gui0E, '', s:cterm0E, '', 'none', '') +call hi('Operator', s:gui0C, '', s:cterm0C, '', 'none', '') +hi! link Keyword Statement +call hi('Exception', s:gui0E, '', s:cterm0E, '', 'none', '') + +call hi('PreProc', s:gui0C, '', s:cterm0C, '', 'none', '') +call hi('Include', s:gui0C, '', s:cterm0C, '', 'none', '') +call hi('Define', s:gui0C, '', s:cterm0C, '', 'none', '') +call hi('Macro', s:gui0C, '', s:cterm0C, '', 'none', '') +call hi('PreCondit', s:gui0C, '', s:cterm0C, '', 'none', '') + +call hi('Type', s:gui0A, '', s:cterm0A, '', 'none', '') +call hi('StorageClass', s:gui0A, '', s:cterm0A, '', 'none', '') +call hi('Structure', s:gui0A, '', s:cterm0A, '', 'none', '') +call hi('Typedef', s:gui0A, '', s:cterm0A, '', 'none', '') + +call hi('Special', s:gui0C, '', s:cterm0C, '', 'none', '') +call hi('SpecialChar', s:gui0A, '', s:cterm0A, '', 'none', '') +call hi('Tag', s:gui09, '', s:cterm09, '', 'none', '') +call hi('Delimiter', s:gui05, '', s:cterm05, '', 'none', '') +call hi('SpecialComment', s:gui0A, '', s:cterm0A, '', 'italic', '') + +call hi('Debug', s:gui08, '', s:cterm08, '', 'none', '') + +call hi('Underlined', '', '', '', '', 'underline', '') + +hi! link Ignore Normal + +call hi('Error', s:gui08, s:guibg, s:cterm08, s:ctermbg, 'bold', '') + +call hi('Todo', s:gui0C, '', s:cterm0C, '', 'none', '') + +call hi('Added', s:gui14, '', s:cterm14, '', 'italic', '') +call hi('Changed', s:gui16, '', s:cterm16, '', 'italic', '') +call hi('Removed', s:gui12, '', s:cterm12, '', 'italic', '') + + +" Treesitter Syntax + +if has('nvim-0.8.0') + hi! link @variable Identifier + call hi('@variable.builtin', s:gui05, '', s:cterm05, '', 'italic', '') + hi! link @variable.parameter Identifier + hi! link @variable.parameter.builtin @variable.builtin + call hi('@variable.member', s:gui04, '', s:cterm04, '', 'none', '') + + hi! link @constant Constant + call hi('@constant.builtin', s:gui09, '', s:cterm09, '', 'italic', '') + hi! link @constant.macro Constant + + hi! link @module Identifier + call hi('@module.builtin', s:gui05, '', s:cterm05, '', 'italic', '') + hi! link @label Tag + + hi! link @string String + hi! link @string.documentation String + hi! link @string.regexp SpecialComment + hi! link @string.escape SpecialComment + hi! link @string.special SpecialComment + hi! link @string.special.symbol SpecialComment + call hi('@string.special.path', s:gui0D, '', s:cterm0D, '', 'italic', '') + call hi('@string.special.url', s:gui08, '', s:cterm08, '', 'italic', '') + + hi! link @character Character + hi! link @character.special SpecialChar + + hi! link @boolean Boolean + hi! link @number Number + hi! link @number.float Float + + hi! link @type Type + call hi('@type.builtin', s:gui0A, '', s:cterm0A, '', 'italic', '') + hi! link @type.definition Typedef + + hi! link @attribute Special + call hi('@attribute.builtin', s:gui0C, '', s:cterm0C, '', 'italic', '') + hi! link @property @variable.member + + call hi('@function', s:gui16, '', s:cterm16, '', '', '') + call hi('@function.builtin', s:gui16, '', s:cterm16, '', 'italic', '') + hi! link @function.call @function + hi! link @function.macro Macro + + hi! link @function.method Function + hi! link @function.method.call @function.method + + call hi('@constructor', s:gui0D, '', s:cterm0D, '', 'bold', '') + + hi! link @operator Operator + + hi! link @keyword Keyword + hi! link @keyword.coroutine Repeat + hi! link @keyword.function Keyword + hi! link @keyword.operator Operator + call hi('@keyword.import', s:gui0E, '', s:cterm0E, '', 'italic', '') + hi! link @keyword.type Keyword + hi! link @keyword.modifier Repeat + hi! link @keyword.repeat Repeat + hi! link @keyword.return Keyword + hi! link @keyword.debug Debug + hi! link @keyword.exception Exception + + hi! link @keyword.conditional Conditional + hi! link @keyword.ternary Conditional + + hi! link @keyword.directive PreProc + hi! link @keyword.directive.define Define + + hi! link @punctuation.delimiter Delimiter + hi! link @punctuation.bracket Delimiter + hi! link @punctuation.special Special + + hi! link @comment Comment + hi! link @comment.documentation Comment + + call hi('@comment.error', s:gui08, '', s:cterm08, '', 'italic', '') + call hi('@comment.warning', s:gui09, '', s:cterm09, '', 'italic', '') + call hi('@comment.note', s:gui0D, '', s:cterm0D, '', 'italic', '') + call hi('@comment.todo', s:gui0C, '', s:cterm0C, '', 'italic', '') + + if (g:tinted_bold == 1) + hi! @markup.strong gui=bold cterm=bold + endif + if (g:tinted_italic == 1) + hi! @markup.italic gui=italic cterm=italic + endif + if (g:tinted_strikethrough == 1) + hi! @markup.strikethrough gui=strikethrough cterm=strikethrough + endif + if (g:tinted_underline == 1) + hi! @markup.underline gui=underline cterm=underline + endif + + hi! link @markup.heading Title + hi! link @markup.quote String + hi! link @markup.math Special + + call hi('@markup.link', s:gui08, '', s:cterm08, '', '', '') + hi! link @markup.link.label @markup.link + hi! link @markup.link.url Identifier + + call hi('@markup.raw', s:gui04, '', s:cterm04, '', '', '') + hi! link @markup.raw.block Identifier + + hi! link @markup.list SpecialChar + hi! link @markup.list.checked DiagnosticOk + hi! link @markup.list.unchecked DiagnosticError + + hi! link @diff.plus Added + hi! link @diff.minus Removed + hi! link @diff.delta Changed + + hi! link @tag Tag + call hi('@tag.builtin', s:gui09, '', s:cterm09, '', 'italic', '') + hi! link @tag.attribute Special + hi! link @tag.delimiter Delimiter + + + " LSP Semantic Token + " https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#textDocument_semanticTokens + hi! link @lsp.type.class @type + hi! link @lsp.type.comment @comment + hi! link @lsp.type.decorator @attribute + hi! link @lsp.type.enum @type + hi! link @lsp.type.enumMember @constant + hi! link @lsp.type.event @type + hi! link @lsp.type.function @function + hi! link @lsp.type.interface @type + hi! link @lsp.type.keyword @keyword + hi! link @lsp.type.macro @function.macro + hi! link @lsp.type.method @function.method + hi! link @lsp.type.modifier @type.modifier + hi! link @lsp.type.namespace @module + hi! link @lsp.type.number @number + hi! link @lsp.type.operator @operator + hi! link @lsp.type.parameter @variable.parameter + hi! link @lsp.type.property @property + hi! link @lsp.type.regexp @string.regexp + hi! link @lsp.type.string @string + hi! link @lsp.type.struct @type + hi! link @lsp.type.type @type + hi! link @lsp.type.typeParameter @variable.parameter + hi! link @lsp.type.variable @variable + + " @lsp.mod.abstract Types and member functions that are abstract + " @lsp.mod.async Functions that are marked async + " @lsp.mod.declaration Declarations of symbols + call hi('@lsp.mod.defaultLibrary', '', '', '', '', 'italic', '') + " @lsp.mod.definition Definitions of symbols, for example, in header files + hi! link @lsp.mod.deprecated DiagnosticDeprecated + " @lsp.mod.modification Variable references where the variable is assigned to + " @lsp.mod.readonly Readonly variables and member fields (constants) + " @lsp.mod.static + + " Rust + hi! link @lsp.type.builtinType.rust @type.builtin + hi! link @lsp.type.escapeSequence.rust @string.escape + hi! link @lsp.type.formatSpecifier.rust @operator + hi! link @lsp.type.lifetime.rust @attribute + hi! link @lsp.type.punctuation.rust @punctuation.delimiter + hi! link @lsp.type.selfKeyword.rust @variable.builtin + hi! link @lsp.type.selfTypeKeyword.rust @type.builtin + + call hi('@lsp.mod.attribute', '', '', '', '', 'italic', '') + hi! link @lsp.mod.controlFlow @keyword.repeat + hi! link @lsp.mod.intraDocLink.rust @markup.link + + hi! link @lsp.typemod.generic.injected.rust @variable + hi! link @lsp.typemod.operator.controlFlow.rust @operator + hi! link @lsp.typemod.function.associated.rust @function.method + + " LUA + hi! link @lsp.typemod.keyword.documentation.lua @tag + + " Markdown + hi! link @lsp.type.class.markdown @lsp + + + " LSP not syntax + + hi! link LspReferenceText Search + call hi('LspReferenceRead', s:gui01, s:gui14, s:cterm01, s:cterm14, '', '') + call hi('LspReferenceWrite', s:gui01, s:gui12, s:cterm01, s:cterm12, '', '') + hi! link LspCodeLens NonText + hi! link LspCodeLensSeparator LspCodeLens + hi! link LspInlayHint NonText + hi! link LspSignatureActiveParameter Visual +endif + + +" Diagnostics + +call hi('DiagnosticError', s:gui08, '', s:cterm08, '', '', '') +call hi('DiagnosticWarn', s:gui09, '', s:cterm09, '', '', '') +call hi('DiagnosticInfo', s:gui0C, '', s:cterm0C, '', '', '') +call hi('DiagnosticHint', s:gui0D, '', s:cterm0D, '', '', '') +call hi('DiagnosticOk', s:gui0B, '', s:cterm0B, '', '', '') + +call hi('DiagnosticUnderlineError', '', '', s:ctermbg, s:cterm08, 'underline', s:gui08) +call hi('DiagnosticUnderlineWarn', '', '', s:ctermbg, s:cterm09, 'underline', s:gui09) +call hi('DiagnosticUnderlineInfo', '', '', s:ctermbg, s:cterm0C, 'underline', s:gui0C) +call hi('DiagnosticUnderlineHint', '', '', s:ctermbg, s:cterm0D, 'underline', s:gui0D) +call hi('DiagnosticUnderlineOk', '', '', s:ctermbg, s:cterm0B, 'underline', s:gui0B) + +call hi('DiagnosticFloatingError', s:gui08, s:gui01, s:cterm08, s:cterm01, '', '') +call hi('DiagnosticFloatingWarn', s:gui09, s:gui01, s:cterm09, s:cterm01, '', '') +call hi('DiagnosticFloatingInfo', s:gui0C, s:gui01, s:cterm0C, s:cterm01, '', '') +call hi('DiagnosticFloatingHint', s:gui0D, s:gui01, s:cterm0D, s:cterm01, '', '') +call hi('DiagnosticFloatingOk', s:gui0B, s:gui01, s:cterm0B, s:cterm01, '', '') + +call hi('DiagnosticDeprecated', '', '', s:cterm0F, s:cterm0F, 'strikethrough', '') +hi! link DiagnosticUnnecessary Comment + + +" Syntax Files + +" C +call hi('cOperator', s:gui0C, '', s:cterm0C, '', '', '') +call hi('cPreCondit', s:gui0E, '', s:cterm0E, '', '', '') + +" CSS +call hi('cssBraces', s:gui05, '', s:cterm05, '', '', '') +call hi('cssClassName', s:gui0E, '', s:cterm0E, '', '', '') +call hi('cssColor', s:gui0C, '', s:cterm0C, '', '', '') + +" C# +call hi('csClass', s:gui0A, '', s:cterm0A, '', '', '') +call hi('csAttribute', s:gui0A, '', s:cterm0A, '', '', '') +call hi('csModifier', s:gui0E, '', s:cterm0E, '', '', '') +call hi('csType', s:gui08, '', s:cterm08, '', '', '') +call hi('csUnspecifiedStatement', s:gui0D, '', s:cterm0D, '', '', '') +call hi('csContextualStatement', s:gui0E, '', s:cterm0E, '', '', '') +call hi('csNewDecleration', s:gui08, '', s:cterm08, '', '', '') + +" Git +call hi('GitAddSign', s:gui14, '', s:cterm14, '', '', '') +call hi('GitChangeSign', s:gui04, '', s:cterm04, '', '', '') +call hi('GitDeleteSign', s:gui12, '', s:cterm12, '', '', '') +call hi('GitChangeDeleteSign', s:gui12, '', s:cterm12, '', '', '') + +" Gitcommit +call hi('gitcommitOverflow', s:gui08, '', s:cterm08, '', '', '') +call hi('gitcommitSummary', s:gui0B, '', s:cterm0B, '', '', '') +call hi('gitcommitComment', s:gui03, '', s:cterm03, '', '', '') +call hi('gitcommitUntracked', s:gui03, '', s:cterm03, '', '', '') +call hi('gitcommitDiscarded', s:gui03, '', s:cterm03, '', '', '') +call hi('gitcommitSelected', s:gui03, '', s:cterm03, '', '', '') +call hi('gitcommitHeader', s:gui17, '', s:cterm17, '', '', '') +call hi('gitcommitSelectedType', s:gui16, '', s:cterm16, '', '', '') +call hi('gitcommitUnmergedType', s:gui16, '', s:cterm16, '', '', '') +call hi('gitcommitDiscardedType', s:gui16, '', s:cterm16, '', '', '') +call hi('gitcommitBranch', s:gui13, '', s:cterm13, '', 'bold', '') +call hi('gitcommitUntrackedFile', s:gui0A, '', s:cterm0A, '', '', '') +call hi('gitcommitUnmergedFile', s:gui08, '', s:cterm08, '', 'bold', '') +call hi('gitcommitDiscardedFile', s:gui08, '', s:cterm08, '', 'bold', '') +call hi('gitcommitSelectedFile', s:gui0B, '', s:cterm0B, '', 'bold', '') + +" Gitsigns +call hi('GitSignsAddInline', s:gui14, s:gui02, s:cterm14, s:cterm02, '', '') +call hi('GitSignsChangeInline', s:gui16, s:gui02, s:cterm16, s:cterm02, '', '') +call hi('GitSignsDeleteLnInline', s:gui12, s:gui02, s:cterm12, s:cterm02, '', '') +call hi('GitSignsDeleteVirtLnInline', s:gui16, s:gui02, s:cterm16, s:cterm02, '', '') +call hi('GitSignsDeleteVirtLn', s:gui05, s:gui02, s:cterm05, s:cterm02, '', '') + +" HTML +call hi('htmlBold', s:gui05, '', s:cterm0A, '', 'bold', '') +call hi('htmlItalic', s:gui05, '', s:cterm17, '', 'italic', '') +call hi('htmlEndTag', s:gui05, '', s:cterm05, '', '', '') +call hi('htmlTag', s:gui05, '', s:cterm05, '', '', '') + +" JavaScript +call hi('javaScript', s:gui05, '', s:cterm05, '', '', '') +call hi('javaScriptBraces', s:gui05, '', s:cterm05, '', '', '') +call hi('javaScriptNumber', s:gui09, '', s:cterm09, '', '', '') + +" Mail +call hi('mailQuoted1', s:gui0A, '', s:cterm0A, '', '', '') +call hi('mailQuoted2', s:gui0B, '', s:cterm0B, '', '', '') +call hi('mailQuoted3', s:gui0E, '', s:cterm0E, '', '', '') +call hi('mailQuoted4', s:gui0C, '', s:cterm0C, '', '', '') +call hi('mailQuoted5', s:gui0D, '', s:cterm0D, '', '', '') +call hi('mailQuoted6', s:gui0A, '', s:cterm0A, '', '', '') +call hi('mailURL', s:gui0D, '', s:cterm0D, '', '', '') +call hi('mailEmail', s:gui0D, '', s:cterm0D, '', '', '') + +" Markdown +call hi('markdownCode', s:gui0B, '', s:cterm0B, '', '', '') +call hi('markdownError', s:gui05, s:guibg, s:cterm05, s:ctermbg, '', '') +call hi('markdownCodeBlock', s:gui0B, '', s:cterm0B, '', '', '') +call hi('markdownHeadingDelimiter', s:gui0D, '', s:cterm0D, '', '', '') + +" Neogit + +hi! link NeogitHunkHeader Special +hi! link NeogitDiffHeader Directory +call hi('NeogitDiffContext', s:gui03, '', s:cterm03, '', 'italic', '') +hi! link NeogitDiffAdd Added +hi! link NeogitDiffDelete Removed + +hi! link NeogitHunkHeaderHighlight Special +hi! link NeogitDiffHeaderHighlight Directory +call hi('NeogitDiffContextHighlight', s:gui03, s:guibg, s:cterm03, s:ctermbg, 'italic', '') +call hi('NeogitDiffContextCursor', '', s:guibg, "", s:ctermbg, 'italic', '') +hi! link NeogitDiffAddHighlight Added +hi! link NeogitDiffDeleteHighlight Removed + +hi! link NeogitHunkHeaderCursor Special +hi! link NeogitDiffHeaderCursor Directory +hi! link NeogitDiffAddCursor Added +hi! link NeogitDiffDeleteCursor Removed + +" PHP +call hi('phpMemberSelector', s:gui05, '', s:cterm05, '', '', '') +call hi('phpComparison', s:gui05, '', s:cterm05, '', '', '') +call hi('phpParent', s:gui05, '', s:cterm05, '', '', '') +call hi('phpMethodsVar', s:gui0C, '', s:cterm0C, '', '', '') + +" Python +call hi('pythonOperator', s:gui0E, '', s:cterm0E, '', '', '') +call hi('pythonRepeat', s:gui0E, '', s:cterm0E, '', '', '') +call hi('pythonInclude', s:gui0E, '', s:cterm0E, '', '', '') +call hi('pythonStatement', s:gui0E, '', s:cterm0E, '', '', '') + +" Ruby +call hi('rubyAttribute', s:gui0D, '', s:cterm0D, '', '', '') +call hi('rubyConstant', s:gui0A, '', s:cterm0A, '', '', '') +call hi('rubyInterpolationDelimiter', s:gui0F, '', s:cterm0F, '', '', '') +call hi('rubyRegexp', s:gui0C, '', s:cterm0C, '', '', '') +call hi('rubySymbol', s:gui0B, '', s:cterm0B, '', '', '') +call hi('rubyStringDelimiter', s:gui0B, '', s:cterm0B, '', '', '') + +" SASS +call hi('sassidChar', s:gui08, '', s:cterm08, '', '', '') +call hi('sassClassChar', s:gui09, '', s:cterm09, '', '', '') +call hi('sassInclude', s:gui0E, '', s:cterm0E, '', '', '') +call hi('sassMixing', s:gui0E, '', s:cterm0E, '', '', '') +call hi('sassMixinName', s:gui0D, '', s:cterm0D, '', '', '') + +" Java +call hi('javaOperator', s:gui0D, '', s:cterm0D, '', '', '') + +" Plugins + +" Clap +hi! link ClapInput ColorColumn +hi! link ClapSpinner ColorColumn +hi! link ClapDisplay Default +hi! link ClapPreview ColorColumn +hi! link ClapCurrentSelection CursorLine +hi! link ClapNoMatchesFound ErrorFloat + +" Coc +hi! link CocErrorSign DiagnosticError +hi! link CocWarningSign DiagnosticWarn +hi! link CocInfoSign DiagnosticInfo +hi! link CocHintSign DiagnosticHint + +hi! link CocErrorFloat DiagnosticFloatingError +hi! link CocWarningFloat DiagnosticFloatingWarn +hi! link CocInfoFloat DiagnosticFloatingInfo +hi! link CocHintFloat DiagnosticFloatingHint + +hi! link CocErrorHighlight DiagnosticError +hi! link CocWarningHighlight DiagnosticWarn +hi! link CocInfoHighlight DiagnosticInfo +hi! link CocHintHighlight DiagnosticHint + +hi! link CocSem_angle Keyword +hi! link CocSem_annotation Keyword +hi! link CocSem_attribute Type +hi! link CocSem_bitwise Keyword +hi! link CocSem_boolean Boolean +hi! link CocSem_brace Normal +hi! link CocSem_bracket Normal +hi! link CocSem_builtinAttribute Type +hi! link CocSem_builtinType Type +hi! link CocSem_character String +hi! link CocSem_class Structure +hi! link CocSem_colon Normal +hi! link CocSem_comma Normal +hi! link CocSem_comment Comment +hi! link CocSem_comparison Keyword +hi! link CocSem_concept Keyword +hi! link CocSem_constParameter Identifier +hi! link CocSem_dependent Keyword +hi! link CocSem_dot Keyword +hi! link CocSem_enum Structure +hi! link CocSem_enumMember Constant +hi! link CocSem_escapeSequence Type +hi! link CocSem_event Identifier +hi! link CocSem_formatSpecifier Type +hi! link CocSem_function Function +hi! link CocSem_interface Type +hi! link CocSem_keyword Keyword +hi! link CocSem_label Keyword +hi! link CocSem_logical Keyword +hi! link CocSem_macro Macro +hi! link CocSem_method Function +hi! link CocSem_modifier Keyword +hi! link CocSem_namespace Identifier +hi! link CocSem_number Number +hi! link CocSem_operator Operator +hi! link CocSem_parameter Identifier +hi! link CocSem_parenthesis Normal +hi! link CocSem_property Identifier +hi! link CocSem_punctuation Keyword +hi! link CocSem_regexp Type +hi! link CocSem_selfKeyword Constant +hi! link CocSem_semicolon Normal +hi! link CocSem_string String +hi! link CocSem_struct Structure +hi! link CocSem_type Type +hi! link CocSem_typeAlias Type +hi! link CocSem_typeParameter Type +hi! link CocSem_unknown Normal +hi! link CocSem_variable Identifier + +call hi('CocHighlightRead', s:gui0B, s:gui01, s:cterm0B, s:cterm01, '', '') +call hi('CocHighlightText', s:gui0A, s:gui01, s:cterm0A, s:cterm01, '', '') +call hi('CocHighlightWrite', s:gui08, s:gui01, s:cterm08, s:cterm01, '', '') +call hi('CocListMode', s:gui01, s:gui0B, s:cterm01, s:cterm0B, 'bold', '') +call hi('CocListPath', s:gui01, s:gui0B, s:cterm01, s:cterm0B, '', '') +call hi('CocSessionsName', s:gui05, '', s:cterm05, '', '', '') + +" fugtive +hi link diffAdded GitAddSign +hi link diffChanged GitChangeSign +hi link diffRemoved GitDeleteSign + +" CMP +" https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#completionItemKind +if has('nvim-0.8.0') + hi! link CmpItemAbbrDeprecated Deprecated + hi! link CmpItemAbbrMatch PMenuMatch + hi! link CmpItemAbbrMatchFuzzy PMenuMatch + hi! link CmpItemKindClass @lsp.type.class + hi! link CmpItemKindColor @lsp.type.keyword + hi! link CmpItemKindConstant @constant + hi! link CmpItemKindConstructor @constructor + hi! link CmpItemKindEnum @lsp.type.enum + hi! link CmpItemKindEnumMember @lsp.type.enumMember + hi! link CmpItemKindEvent @lsp.type.event + hi! link CmpItemKindField @lsp.type.property + hi! link CmpItemKindFile @string.special.path + hi! link CmpItemKindFolder @string.special.path + hi! link CmpItemKindFunction @lsp.type.function + hi! link CmpItemKindInterface @lsp.type.interface + hi! link CmpItemKindKeyword @lsp.type.keyword + hi! link CmpItemKindMethod @lsp.type.method + hi! link CmpItemKindModule @lsp.type.namespace + hi! link CmpItemKindOperator @lsp.type.operator + hi! link CmpItemKindProperty @lsp.type.property + hi! link CmpItemKindReference @lsp.type.variable + hi! link CmpItemKindSnippet @lsp.type.string + hi! link CmpItemKindStruct @lsp.type.struct + hi! link CmpItemKindText @lsp.type.string + hi! link CmpItemKindTypeParameter @lsp.type.typeParameter + hi! link CmpItemKindUnit @lsp.type.namespace + hi! link CmpItemKindValue @constant + hi! link CmpItemKindVariable @lsp.type.variable +endif + +" GitGutter +hi! link GitGutterAdd GitAddSign +hi! link GitGutterChange GitChangeSign +hi! link GitGutterDelete GitDeleteSign +hi! link GitGutterChangeDelete GitChangeDeleteSign + +" indent-blankline +if has('nvim') + call hi('@ibl.indent.char', s:gui01, '', s:cterm01, '', '', '') +endif + +" pangloss/vim-javascript +call hi('jsOperator', s:gui0D, '', s:cterm0D, '', '', '') +call hi('jsStatement', s:gui0E, '', s:cterm0E, '', '', '') +call hi('jsReturn', s:gui0E, '', s:cterm0E, '', '', '') +call hi('jsThis', s:gui08, '', s:cterm08, '', '', '') +call hi('jsClassDefinition', s:gui0A, '', s:cterm0A, '', '', '') +call hi('jsFunction', s:gui0E, '', s:cterm0E, '', '', '') +call hi('jsFuncName', s:gui0D, '', s:cterm0D, '', '', '') +call hi('jsFuncCall', s:gui0D, '', s:cterm0D, '', '', '') +call hi('jsClassFuncName', s:gui0D, '', s:cterm0D, '', '', '') +call hi('jsClassMethodType', s:gui0E, '', s:cterm0E, '', '', '') +call hi('jsRegexpString', s:gui0C, '', s:cterm0C, '', '', '') +call hi('jsGlobalObjects', s:gui0A, '', s:cterm0A, '', '', '') +call hi('jsGlobalNodeObjects', s:gui0A, '', s:cterm0A, '', '', '') +call hi('jsExceptions', s:gui0A, '', s:cterm0A, '', '', '') +call hi('jsBuiltins', s:gui0A, '', s:cterm0A, '', '', '') + +" Matchup +call hi('MatchWord', s:gui0B, s:gui01, s:cterm0B, s:cterm01, 'underline', '') + +" NERDTree +call hi('NERDTreeDirSlash', s:gui0D, '', s:cterm0D, '', '', '') +call hi('NERDTreeExecFile', s:gui05, '', s:cterm05, '', '', '') + +" Signify +hi! link SignifySignAdd GitAddSign +hi! link SignifySignChange GitChangeSign +hi! link SignifySignDelete GitDeleteSign + +" Startify +call hi('StartifyBracket', s:gui03, '', s:cterm03, '', '', '') +call hi('StartifyFile', s:gui07, '', s:cterm07, '', '', '') +call hi('StartifyFooter', s:gui03, '', s:cterm03, '', '', '') +call hi('StartifyHeader', s:gui0B, '', s:cterm0B, '', '', '') +call hi('StartifyNumber', s:gui09, '', s:cterm09, '', '', '') +call hi('StartifyPath', s:gui03, '', s:cterm03, '', '', '') +call hi('StartifySection', s:gui0E, '', s:cterm0E, '', '', '') +call hi('StartifySelect', s:gui0C, '', s:cterm0C, '', '', '') +call hi('StartifySlash', s:gui03, '', s:cterm03, '', '', '') +call hi('StartifySpecial', s:gui03, '', s:cterm03, '', '', '') + +" Remove functions +delf hi + +" Remove color variables +unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F s:guibg s:gui10 s:gui11 s:gui12 s:gui13 s:gui14 s:gui15 s:gui16 s:gui17 +unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F s:ctermbg s:cterm10 s:cterm11 s:cterm12 s:cterm13 s:cterm14 s:cterm15 s:cterm16 s:cterm17 diff --git a/themectl/templates/vim-custom.mustache b/themectl/templates/vim-custom.mustache index b84285e..21e5929 100644 --- a/themectl/templates/vim-custom.mustache +++ b/themectl/templates/vim-custom.mustache @@ -147,7 +147,7 @@ endif " Theme setup hi clear syntax reset -let g:colors_name = "base16-{{scheme-slug}}" +let g:colors_name = "theme" " Highlighting function " Optional variables are attributes and guisp @@ -407,6 +407,10 @@ call hi("StartifySpecial", s:gui03, "", s:cterm03, "", "", "") " Java highlighting call hi("javaOperator", s:gui0D, "", s:cterm0D, "", "", "") +" diagnostics +call hi("NormalFloat", s:gui05, s:gui01, s:cterm05, s:cterm01, "", "") +" call hi("FloatBorder", s:gui0A, s:gui0A, s:cterm0A, s:cterm0A, "", "") + " Remove functions delf hi