diff --git a/nvim/lua/plugins/blink-cmp.lua.bak b/nvim/lua/plugins/blink-cmp.lua.bak deleted file mode 100644 index 73b0dd2..0000000 --- a/nvim/lua/plugins/blink-cmp.lua.bak +++ /dev/null @@ -1,76 +0,0 @@ -return { - { - "saghen/blink.cmp", - -- optional: provides snippets for the snippet source - dependencies = { "rafamadriz/friendly-snippets" }, - - -- use a release tag to download pre-built binaries - version = "1.*", - -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust - -- build = 'cargo build --release', - -- If you use nix, you can build from source using latest nightly rust with: - -- build = 'nix run .#build-plugin', - - ---@module 'blink.cmp' - ---@type blink.cmp.Config - opts = { - -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) - -- 'super-tab' for mappings similar to vscode (tab to accept) - -- 'enter' for enter to accept - -- 'none' for no mappings - -- - -- All presets have the following mappings: - -- C-space: Open menu or open docs if already open - -- C-n/C-p or Up/Down: Select next/previous item - -- C-e: Hide menu - -- C-k: Toggle signature help (if signature.enabled = true) - -- - -- See :h blink-cmp-config-keymap for defining your own keymap - keymap = { - - preset = "default", - - [""] = { "show", "show_documentation", "hide_documentation" }, - [""] = { "hide" }, - [""] = { "select_and_accept" }, - - [""] = { "select_prev", "fallback" }, - [""] = { "select_next", "fallback" }, - [""] = { "select_prev", "fallback_to_mappings" }, - [""] = { "select_next", "fallback_to_mappings" }, - - [""] = { "scroll_documentation_up", "fallback" }, - [""] = { "scroll_documentation_down", "fallback" }, - - [""] = { "snippet_forward", "fallback" }, - [""] = { "snippet_backward", "fallback" }, - - [""] = { "show_signature", "hide_signature", "fallback" }, - }, - - appearance = { - -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- Adjusts spacing to ensure icons are aligned - nerd_font_variant = "mono", - }, - - -- (Default) Only show the documentation popup when manually triggered - completion = { documentation = { auto_show = true } }, - - -- Default list of enabled providers defined so that you can extend it - -- elsewhere in your config, without redefining it, due to `opts_extend` - sources = { - -- default = { 'lsp', 'path', 'snippets', 'buffer' }, <- original - default = { "lsp", "path" }, - }, - - -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance - -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, - -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` - -- - -- See the fuzzy documentation for more information - fuzzy = { implementation = "prefer_rust_with_warning" }, - }, - opts_extend = { "sources.default" }, - }, -} diff --git a/nvim/lua/plugins/blink-completion.lua b/nvim/lua/plugins/blink-completion.lua new file mode 100644 index 0000000..25674f2 --- /dev/null +++ b/nvim/lua/plugins/blink-completion.lua @@ -0,0 +1,39 @@ +return { + "saghen/blink.cmp", + ---@param opts blink.cmp.Config + opts = function(_, opts) + -- Start with completion disabled in the current buffer. + -- Remove this line if you want it enabled by default. + vim.b.completion = false + + -- Toggle completion per-buffer with uk + Snacks.toggle({ + name = "Completion", + get = function() + -- treat anything except explicit false as "on" + return vim.b.completion ~= false + end, + set = function(state) + vim.b.completion = state + end, + }):map("uk") + + -- Override Blink's global enabled() logic + opts.enabled = function() + -- 1) Hard-disable completion for markdown buffers + if vim.bo.filetype == "markdown" or vim.bo.filetype == "markdown.mdx" then + return false + end + + -- 2) Keep Blink's default "no completion in prompt buffers" + if vim.bo.buftype == "prompt" then + return false + end + + -- 3) Respect the per-buffer toggle + return vim.b.completion ~= false + end + + return opts + end, +}