diff --git a/README.md b/README.md index 682e2075..cbdcf193 100644 --- a/README.md +++ b/README.md @@ -430,14 +430,14 @@ MiniDeps.add({ kind_icon = { ellipsis = false, text = function(ctx) return ctx.kind_icon end, - highlight = function(ctx) return 'BlinkCmpKind' .. ctx.kind end, + highlight = function(ctx) return utils.get_tailwind_hl(ctx) or 'BlinkCmpKind' .. ctx.kind end, }, kind = { ellipsis = false, width = { fill = true }, text = function(ctx) return ctx.kind end, - highlight = function(ctx) return 'BlinkCmpKind' .. ctx.kind end, + highlight = function(ctx) return utils.get_tailwind_hl(ctx) or 'BlinkCmpKind' .. ctx.kind end, }, label = { diff --git a/lua/blink/cmp/config.lua b/lua/blink/cmp/config.lua index 1dfcb263..e225f3fb 100644 --- a/lua/blink/cmp/config.lua +++ b/lua/blink/cmp/config.lua @@ -174,6 +174,8 @@ --- @field kind_icons? table --- @field blocked_filetypes? string[] +local utils = require('blink.cmp.utils') + --- @type blink.cmp.Config local config = { -- the keymap may be a preset ('default' | 'super-tab' | 'enter') OR a table of keys => command[] @@ -408,14 +410,14 @@ local config = { kind_icon = { ellipsis = false, text = function(ctx) return ctx.kind_icon end, - highlight = function(ctx) return 'BlinkCmpKind' .. ctx.kind end, + highlight = function(ctx) return utils.get_tailwind_hl(ctx) or 'BlinkCmpKind' .. ctx.kind end, }, kind = { ellipsis = false, width = { fill = true }, text = function(ctx) return ctx.kind end, - highlight = function(ctx) return 'BlinkCmpKind' .. ctx.kind end, + highlight = function(ctx) return utils.get_tailwind_hl(ctx) or 'BlinkCmpKind' .. ctx.kind end, }, label = { diff --git a/lua/blink/cmp/utils.lua b/lua/blink/cmp/utils.lua index f81209ac..cc0cb976 100644 --- a/lua/blink/cmp/utils.lua +++ b/lua/blink/cmp/utils.lua @@ -85,11 +85,11 @@ end --- @param ctx blink.cmp.DrawItemContext --- @return string|nil -function utils.try_get_tailwind_hl(ctx) +function utils.get_tailwind_hl(ctx) local doc = ctx.item.documentation if ctx.kind == 'Color' and doc then local content = type(doc) == 'string' and doc or doc.value - if ctx.kind == 'Color' and content and content:match('^#%x%x%x%x%x%x$') then + if content and content:match('^#%x%x%x%x%x%x$') then local hl_name = 'HexColor' .. content:sub(2) if #vim.api.nvim_get_hl(0, { name = hl_name }) == 0 then vim.api.nvim_set_hl(0, hl_name, { fg = content }) end return hl_name