feat: `nvim-cmp`, `vim-fugitive`, and invert visual selection support (#3)

* feat(cmp): add nvim-cmp support

* feat(config): invert visual selection option

* feat(git): vim-fugitive support
This commit is contained in:
Francesco Raso 2023-04-17 20:03:33 +02:00 committed by GitHub
parent 2858e81948
commit e2128bfe75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 64 additions and 1 deletions

View File

@ -43,6 +43,8 @@ vim.cmd.colorscheme("gruber-darker")
bold = true, bold = true,
invert = { invert = {
signs = false, signs = false,
tabline = false,
visual = false,
}, },
italic = { italic = {
strings = true, strings = true,

View File

@ -7,6 +7,7 @@
---@alias InvertType ---@alias InvertType
---|"signs" ---|"signs"
---|"tabline" ---|"tabline"
---|"visual"
---@class GruberDarkerOpts ---@class GruberDarkerOpts
---@field bold boolean ---@field bold boolean
@ -21,6 +22,7 @@ local DEFAULTS = {
invert = { invert = {
signs = false, signs = false,
tabline = false, tabline = false,
visual = false,
}, },
italic = { italic = {
strings = true, strings = true,

View File

@ -0,0 +1,52 @@
local Highlight = require("gruber-darker.highlight")
local c = require("gruber-darker.palette")
local vim_hl = require("gruber-darker.highlights.vim").highlights
local gruber_hl = require("gruber-darker.highlights.colorscheme").highlights
---@type HighlightsProvider
local M = {
highlights = {},
}
function M.setup()
for _, value in pairs(M.highlights) do
value:setup()
end
end
M.highlights.cmp_item_kind = Highlight.new("CmpItemKind", { fg = c.white })
M.highlights.cmp_item_menu = Highlight.new("CmpItemMenu", { fg = c.white })
M.highlights.cmp_item_deprecated = Highlight.new("CmpItemAbbrDeprecated", { link = gruber_hl.darkest_niagara })
M.highlights.cmp_item_abbr = Highlight.new("CmpItemAbbr", { fg = c.white })
M.highlights.cmp_item_abbr_match = Highlight.new("CmpItemAbbrMatch", { link = gruber_hl.yellow_bold })
M.highlights.cmp_item_abbr_match_fuzzy = Highlight.new("CmpItemAbbrMatchFuzzy", { link = gruber_hl.brown_bold })
M.highlights.cmp_item_kind_text = Highlight.new("CmpItemKindText", { fg = c["fg+2"] })
M.highlights.cmp_item_kind_method = Highlight.new("CmpItemKindMethod", { link = vim_hl.func })
M.highlights.cmp_item_kind_function = Highlight.new("CmpItemKindFunction", { link = vim_hl.func })
M.highlights.cmp_item_kind_constructor =
Highlight.new("CmpItemKindConstructor", { link = vim_hl.func })
M.highlights.cmp_item_kind_field = Highlight.new("CmpItemKindField", { link = gruber_hl.niagara })
M.highlights.cmp_item_kind_variable = Highlight.new("CmpItemKindVariable", { link = vim_hl.identifier })
M.highlights.cmp_item_kind_class = Highlight.new("CmpitemKindClass", { link = vim_hl.type })
M.highlights.cmp_item_kind_interface = Highlight.new("CmpItemKindInterface", { link = vim_hl.type })
M.highlights.cmp_item_kind_module = Highlight.new("CmpItemKindModule", { link = vim_hl.define })
M.highlights.cmp_item_kind_property = Highlight.new("CmpItemKindProperty", { link = gruber_hl.dark_niagara })
M.highlights.cmp_item_kind_unit = Highlight.new("CmpItemKindUnit", { link = gruber_hl.dark_niagara })
M.highlights.cmp_item_kind_value = Highlight.new("CmpItemKindValue", { link = vim_hl.type })
M.highlights.cmp_item_kind_enum = Highlight.new("CmpItemKindEnum", { link = vim_hl.type })
M.highlights.cmp_item_kind_keywork = Highlight.new("CmpItemKindKeyword", { link = vim_hl.keyword })
M.highlights.cmp_item_kind_snippet = Highlight.new("CmpItemKindSnippet", { link = gruber_hl.dark_niagara })
M.highlights.cmp_item_kind_color = Highlight.new("CmpItemKindColor", { fg = c.yellow })
M.highlights.cmp_item_kind_file = Highlight.new("CmpItemKindFile", { fg = c.wisteria })
M.highlights.cmp_item_kind_reference = Highlight.new("CmpItemKindReference", { fg = c.wisteria })
M.highlights.cmp_item_kind_folder = Highlight.new("CmpItemKindFolder", { fg = c.wisteria })
M.highlights.cmp_item_kind_enum_member =
Highlight.new("CmpItemKindEnumMember", { link = vim_hl.type })
M.highlights.cmp_item_kind_constant = Highlight.new("CmpItemKindConstant", { link = vim_hl.constant })
M.highlights.cmp_item_kind_struct = Highlight.new("CmpItemKindStruct", { link = gruber_hl.niagara })
M.highlights.cmp_item_kind_event = Highlight.new("CmpItemKindEvent", { fg = c.brown })
M.highlights.cmp_item_kind_operator = Highlight.new("CmpItemKindOperator", { link = vim_hl.operator })
M.highlights.cmp_item_kind_type_parameter =
Highlight.new("CmpItemKindTypeParameter", { link = vim_hl.identifier })
return M

View File

@ -11,6 +11,7 @@ local providers = {
require("gruber-darker.highlights.vim"), require("gruber-darker.highlights.vim"),
require("gruber-darker.highlights.terminal"), require("gruber-darker.highlights.terminal"),
require("gruber-darker.highlights.treesitter"), require("gruber-darker.highlights.treesitter"),
require("gruber-darker.highlights.cmp"),
} }
---Set highlights for configured providers ---Set highlights for configured providers

View File

@ -42,6 +42,12 @@ M.highlights.diff_change = Highlight.new("DiffChange", { fg = c.yellow, bg = c.n
M.highlights.diff_delete = Highlight.new("DiffDelete", { fg = c["red+1"], bg = c.none }) M.highlights.diff_delete = Highlight.new("DiffDelete", { fg = c["red+1"], bg = c.none })
---Diff mode: Changed text within a changed line |diff.txt| ---Diff mode: Changed text within a changed line |diff.txt|
M.highlights.diff_text = Highlight.new("DiffText", { fg = c.yellow, bg = c.none }) M.highlights.diff_text = Highlight.new("DiffText", { fg = c.yellow, bg = c.none })
---Fugitive highlights; might need separate provider for git related plugins
M.highlights.diff_added = Highlight.new("diffAdded", { link = M.highlights.diff_add })
M.highlights.diff_removed = Highlight.new("diffRemoved", { link = M.highlights.diff_delete })
M.highlights.diff_line = Highlight.new("diffLine", { link = M.highlights.diff_change })
---Filler lines (~) after the end of the buffer. By, this is highlighted like |hl-NonText|. ---Filler lines (~) after the end of the buffer. By, this is highlighted like |hl-NonText|.
M.highlights.end_of_buffer = Highlight.new("EndOfBuffer", { fg = c["bg+4"], bg = c.none }) M.highlights.end_of_buffer = Highlight.new("EndOfBuffer", { fg = c["bg+4"], bg = c.none })
---Cursor in a focused terminal ---Cursor in a focused terminal
@ -145,7 +151,7 @@ M.highlights.tab_line_sel = Highlight.new("TabLineSel", { fg = c.yellow, bg = c.
---Titles for output from ":set all", ":autocmd" etc. ---Titles for output from ":set all", ":autocmd" etc.
M.highlights.title = Highlight.new("Title", { link = gruber_hl.quartz }) M.highlights.title = Highlight.new("Title", { link = gruber_hl.quartz })
---Visual mode selection ---Visual mode selection
M.highlights.visual = Highlight.new("Visual", { bg = c["bg+2"] }) M.highlights.visual = Highlight.new("Visual", { bg = c["bg+2"], reverse = opts.invert.visual })
---Visual mode selection when vim is "Not Owning the Selection". ---Visual mode selection when vim is "Not Owning the Selection".
M.highlights.visual_nos = Highlight.new("VisualNOS", { link = gruber_hl.red }) M.highlights.visual_nos = Highlight.new("VisualNOS", { link = gruber_hl.red })
---Warning messages ---Warning messages