Files
keycodex/plugin/completion.lua
T
sankalp 5f67b0fd94 feat(plugin): addcustom snippet provider configuration
Added dedicated snippet provider with configurable search paths and extended filetype support for MDX, while replacing the legacy LuaSnip preset with the default preset and updating fuzzy settings.

- New Features
  - Introduced custom snippet provider loading snippets from `config/snippets`
  - Enabled MDX completion as markdown
- Enhancements
  - Switched snippet preset from `luasnip` to `default`
  - Updated fuzzy implementation to `prefer_rust`
  - Removed legacy LuaSnip loader calls
2026-05-18 21:43:38 +05:45

80 lines
1.9 KiB
Lua

add({
"saghen/blink.lib",
{ src = "saghen/blink.cmp", build = "cargo build --release" },
"rafamadriz/friendly-snippets",
})
require("blink.cmp").setup({
fuzzy = { implementation = "prefer_rust" },
snippets = { preset = "default" },
sources = {
default = function()
local type = vim.fn.getcmdtype()
if type == "/" or type == "?" then return { "buffer" } end
if type == ":" then return { "cmdline" } end
return { "lsp", "path", "snippets", "buffer" }
end,
providers = {
snippets = {
opts = {
search_paths = { vim.fn.stdpath("config") .. "/snippets" },
extended_filetypes = { mdx = { "markdown" } },
},
},
},
},
completion = {
ghost_text = { enabled = true },
list = {
selection = {
preselect = false,
auto_insert = true,
},
},
documentation = {
window = { border = "rounded" },
auto_show = true,
auto_show_delay_ms = 50,
},
menu = {
border = "rounded",
draw = {
components = {
kind_icon = {
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,
},
kind = {
highlight = function(ctx)
local _, hl, _ = require("mini.icons").get("lsp", ctx.kind)
return hl
end,
},
},
},
},
},
signature = {
window = { border = "rounded" },
},
keymap = {
preset = "none",
["<S-Tab>"] = { "select_prev", "snippet_backward", "fallback" },
["<Tab>"] = { "select_next", "snippet_forward", "fallback" },
["<CR>"] = { "accept", "fallback" },
["<C-space>"] = { "hide", "show" },
["<C-y>"] = { "show", "show_documentation", "hide_documentation" },
["<C-u>"] = { "scroll_documentation_up", "fallback" },
["<C-d>"] = { "scroll_documentation_down", "fallback" },
},
})