-- Tame blink.cmp completions for prose: -- * drop the `buffer` (next-word) source everywhere -- * markdown/md-render buffers use LSP+path only (no snippet callout noise) -- * disable friendly-snippets' global snippets (datetime/dateMDY/lorem/...) -- Inline AI suggestions are handled by minuet instead (see minuet.lua). return { "saghen/blink.cmp", opts = function(_, opts) opts.sources = opts.sources or {} -- Drop the buffer (next-word) source everywhere. opts.sources.default = vim.tbl_filter(function(source) return source ~= "buffer" end, opts.sources.default or { "lsp", "path", "snippets" }) -- Markdown editing (ft=markdown) and md-render's render buffer (ft=md-render): -- LSP+path only, so callout snippets like !WARNING don't pop up. md-render -- flips the buffer filetype between these two as you edit, so cover both. opts.sources.per_filetype = opts.sources.per_filetype or {} opts.sources.per_filetype.markdown = { "lsp", "path" } opts.sources.per_filetype["md-render"] = { "lsp", "path" } -- Kill friendly-snippets' GLOBAL snippets (global.json: datetime, dateMDY, -- lorem, etc.). These load in every filetype regardless of the per_filetype -- rules above, which is why they leaked through while editing markdown. -- Per-language snippets (friendly_snippets) are unaffected. opts.sources.providers = opts.sources.providers or {} opts.sources.providers.snippets = opts.sources.providers.snippets or {} opts.sources.providers.snippets.opts = opts.sources.providers.snippets.opts or {} opts.sources.providers.snippets.opts.global_snippets = {} end, }