summaryrefslogtreecommitdiff
path: root/.config/nvim-old/lua/config/plugins/blink-cmp.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim-old/lua/config/plugins/blink-cmp.lua')
-rw-r--r--.config/nvim-old/lua/config/plugins/blink-cmp.lua125
1 files changed, 125 insertions, 0 deletions
diff --git a/.config/nvim-old/lua/config/plugins/blink-cmp.lua b/.config/nvim-old/lua/config/plugins/blink-cmp.lua
new file mode 100644
index 0000000..9f622c7
--- /dev/null
+++ b/.config/nvim-old/lua/config/plugins/blink-cmp.lua
@@ -0,0 +1,125 @@
+return {
+ {
+ "saghen/blink.compat",
+ version = "*",
+ lazy = true,
+ opts = {},
+ },
+ {
+ "saghen/blink.cmp",
+ event = "VeryLazy",
+ -- optional: provides snippets for the snippet source
+ dependencies = {
+ "rafamadriz/friendly-snippets",
+ "moyiz/blink-emoji.nvim",
+ "ray-x/cmp-sql",
+ },
+
+ -- 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',
+ opts = {
+ snippets = {
+ preset = "luasnip", -- Choose LuaSnip as the snippet engine
+ },
+ -- '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",
+ },
+
+ 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 = {
+ menu = { auto_show = true },
+ trigger = {
+ show_on_keyword = true,
+ show_on_trigger_character = true,
+ show_on_insert_on_trigger_character = true,
+ },
+ documentation = { auto_show = true, window = { border = "single" } },
+ },
+ signature = { enabled = true },
+
+ sources = {
+ default = { "lsp", "path", "snippets", "buffer", "emoji", "sql" },
+ providers = {
+ lsp = {
+ name = "LSP",
+ module = "blink.cmp.sources.lsp",
+ min_keyword_length = 0,
+ },
+ snippets = {
+ name = "snippets",
+ module = "blink.cmp.sources.snippets",
+ enabled = true,
+ min_keyword_length = 2,
+ score_offset = 80,
+ },
+ emoji = {
+ module = "blink-emoji",
+ name = "Emoji",
+ score_offset = 15, -- Tune by preference
+ opts = { insert = true }, -- Insert emoji (default) or complete its name
+ -- should_show_items = function()
+ -- return vim.tbl_contains(
+ -- -- Enable emoji completion only for git commits and markdown.
+ -- -- By default, enabled for all file-types.
+ -- { "gitcommit", "markdown" },
+ -- vim.o.filetype
+ -- )
+ -- end,
+ },
+ sql = {
+ -- IMPORTANT: use the same name as you would for nvim-cmp
+ name = "sql",
+ module = "blink.compat.source",
+
+ -- all blink.cmp source config options work as normal:
+ score_offset = -3,
+
+ -- this table is passed directly to the proxied completion source
+ -- as the `option` field in nvim-cmp's source config
+ --
+ -- this is NOT the same as the opts in a plugin's lazy.nvim spec
+ opts = {},
+ should_show_items = function()
+ return vim.tbl_contains(
+ -- Enable emoji completion only for git commits and markdown.
+ -- By default, enabled for all file-types.
+ { "sql" },
+ vim.o.filetype
+ )
+ end,
+ },
+ },
+ },
+
+ -- (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" },
+ },
+}