diff --git a/lua/plugins/blink.lua b/lua/plugins/blink.lua new file mode 100644 index 0000000..c00964d --- /dev/null +++ b/lua/plugins/blink.lua @@ -0,0 +1,70 @@ +return { + 'saghen/blink.cmp', + lazy = false, -- lazy loading handled internally + -- optional: provides snippets for the snippet source + dependencies = 'rafamadriz/friendly-snippets', + + -- use a release tag to download pre-built binaries + version = 'v0.*', + -- 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', + + opts = { + -- 'default' for mappings similar to built-in completion + -- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate) + -- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept + -- see the "default configuration" section below for full documentation on how to define + -- your own keymap. + keymap = { preset = 'enter' }, + + appearance = { + -- 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 + use_nvim_cmp_as_default = true, + -- Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono', + }, + + -- default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, via `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + -- optionally disable cmdline completions + -- cmdline = {}, + }, + + completion = { + list = { + selection = 'auto_insert', + }, + menu = { + max_height = 25, + draw = { + padding = 1, + gap = 1, + -- treesitter = { "lsp" }, + -- columns = { + -- { "kind_icon", width = { fill = true } }, + -- { "label", "label_description", gap = 1, highlight = "BlinkCmpLabelDescription" }, + -- }, + }, + }, + documentation = { + auto_show = true, + auto_show_delay = 300, + }, + signature = { enabled = true } + }, + + -- experimental signature help support + -- signature = { enabled = true } + }, + -- allows extending the providers array elsewhere in your config + -- without having to redefine it + opts_extend = { 'sources.default' }, + enabled = false +}