| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- local M = {
- "saghen/blink.cmp",
- dependencies = {
- "nvim-lua/plenary.nvim",
- { "L3MON4D3/LuaSnip", version = "v2.*" },
- "folke/lazydev.nvim",
- {
- "MattiasMTS/cmp-dbee",
- dependencies = {
- { "kndndrj/nvim-dbee" },
- },
- ft = "sql", -- optional but good to have
- opts = {}, -- needed
- },
- {
- "saghen/blink.compat",
- version = "2.*",
- lazy = true,
- opts = {},
- },
- },
- version = "*",
- }
- M.config = function()
- require("blink.cmp").setup({
- keymap = {
- ["<C-space>"] = {
- "show",
- "show_documentation",
- "hide_documentation",
- },
- ["<C-d>"] = { "hide", "fallback" },
- ["<C-c>"] = { "hide", "fallback" },
- ["<CR>"] = { "accept", "fallback" },
- ["<C-k>"] = { "select_prev", "fallback" },
- ["<C-j>"] = { "select_next", "fallback" },
- },
- appearance = {
- use_nvim_cmp_as_default = true,
- nerd_font_variant = "mono",
- },
- snippets = {
- preset = "luasnip",
- },
- sources = {
- default = { "lsp", "path", "snippets", "buffer", "lazydev" },
- providers = {
- dbee = { name = "cmp-dbee", module = "blink.compat.source" },
- lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
- },
- per_filetype = {
- sql = { "dbee", "buffer" },
- },
- },
- signature = {
- enabled = true,
- window = {
- border = "rounded",
- },
- },
- completion = {
- list = {
- selection = {
- auto_insert = true,
- preselect = false,
- },
- },
- menu = {
- border = "rounded",
- draw = {
- components = {
- kind_icon = {
- ellipsis = false,
- text = function(ctx)
- local kind_icon, _, _ = require("mini.icons").get("lsp", ctx.kind)
- return kind_icon
- end,
- highlight = function(ctx)
- local _, hl, _ = require("mini.icons").get("lsp", ctx.kind)
- return hl
- end,
- },
- },
- },
- auto_show = function(ctx)
- return ctx.mode ~= "default"
- end,
- },
- documentation = {
- auto_show = true,
- auto_show_delay_ms = 200,
- },
- },
- fuzzy = {
- -- Frecency tracks the most recently/frequently used items and boosts the score of the item
- use_frecency = true,
- -- Proximity bonus boosts the score of items matching nearby words
- use_proximity = true,
- -- Controls which sorts to use and in which order, falling back to the next sort if the first one returns nil
- -- You may pass a function instead of a string to customize the sorting
- sorts = { "score", "sort_text" },
- },
- })
- end
- return M
|