summaryrefslogtreecommitdiff
path: root/lua/blink/cmp/config/appearance.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/blink/cmp/config/appearance.lua')
-rw-r--r--lua/blink/cmp/config/appearance.lua58
1 files changed, 58 insertions, 0 deletions
diff --git a/lua/blink/cmp/config/appearance.lua b/lua/blink/cmp/config/appearance.lua
new file mode 100644
index 0000000..08a97ba
--- /dev/null
+++ b/lua/blink/cmp/config/appearance.lua
@@ -0,0 +1,58 @@
+--- @class (exact) blink.cmp.AppearanceConfig
+--- @field highlight_ns number
+--- @field use_nvim_cmp_as_default boolean Sets the fallback highlight groups to nvim-cmp's highlight groups. Useful for when your theme doesn't support blink.cmp, will be removed in a future release.
+--- @field nerd_font_variant 'mono' | 'normal' Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'. Adjusts spacing to ensure icons are aligned
+--- @field kind_icons table<string, string>
+
+local validate = require('blink.cmp.config.utils').validate
+local appearance = {
+ --- @type blink.cmp.AppearanceConfig
+ default = {
+ highlight_ns = vim.api.nvim_create_namespace('blink_cmp'),
+ use_nvim_cmp_as_default = false,
+ nerd_font_variant = 'mono',
+ kind_icons = {
+ Text = '󰉿',
+ Method = '󰊕',
+ Function = '󰊕',
+ Constructor = '󰒓',
+
+ Field = '󰜢',
+ Variable = '󰆦',
+ Property = '󰖷',
+
+ Class = '󱡠',
+ Interface = '󱡠',
+ Struct = '󱡠',
+ Module = '󰅩',
+
+ Unit = '󰪚',
+ Value = '󰦨',
+ Enum = '󰦨',
+ EnumMember = '󰦨',
+
+ Keyword = '󰻾',
+ Constant = '󰏿',
+
+ Snippet = '󱄽',
+ Color = '󰏘',
+ File = '󰈔',
+ Reference = '󰬲',
+ Folder = '󰉋',
+ Event = '󱐋',
+ Operator = '󰪚',
+ TypeParameter = '󰬛',
+ },
+ },
+}
+
+function appearance.validate(config)
+ validate('appearance', {
+ highlight_ns = { config.highlight_ns, 'number' },
+ use_nvim_cmp_as_default = { config.use_nvim_cmp_as_default, 'boolean' },
+ nerd_font_variant = { config.nerd_font_variant, 'string' },
+ kind_icons = { config.kind_icons, 'table' },
+ }, config)
+end
+
+return appearance