summaryrefslogtreecommitdiff
path: root/home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua
diff options
context:
space:
mode:
authorsinanmohd <sinan@sinanmohd.com>2025-08-31 15:39:39 +0530
committersinanmohd <sinan@sinanmohd.com>2025-08-31 22:28:28 +0530
commit31458b74b81df4ef5101c01b26fc28fc32ee821b (patch)
tree15846c395e3ac5aa085a30d11833b6f531abb345 /home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua
parent07854ac073b6c4a3e749078fa113367105a7af08 (diff)
feat(home/common): init neovim
Diffstat (limited to 'home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua')
-rw-r--r--home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua106
1 files changed, 106 insertions, 0 deletions
diff --git a/home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua b/home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua
new file mode 100644
index 0000000..8165e09
--- /dev/null
+++ b/home/common/modules/neovim/config/lua/pacman/plugins/blink-cmp.lua
@@ -0,0 +1,106 @@
+return {
+ { -- Autocompletion
+ 'saghen/blink.cmp',
+ event = 'VimEnter',
+ version = '1.*',
+ dependencies = {
+ -- Snippet Engine
+ {
+ 'L3MON4D3/LuaSnip',
+ version = '2.*',
+ build = (function()
+ -- Build Step is needed for regex support in snippets.
+ -- This step is not supported in many windows environments.
+ -- Remove the below condition to re-enable on windows.
+ if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then
+ return
+ end
+ return 'make install_jsregexp'
+ end)(),
+ dependencies = {
+ -- `friendly-snippets` contains a variety of premade snippets.
+ -- See the README about individual language/framework/plugin snippets:
+ -- https://github.com/rafamadriz/friendly-snippets
+ {
+ 'rafamadriz/friendly-snippets',
+ config = function()
+ require('luasnip.loaders.from_vscode').lazy_load()
+ end,
+ },
+ },
+ opts = {},
+ },
+ 'folke/lazydev.nvim',
+ },
+ --- @module 'blink.cmp'
+ --- @type blink.cmp.Config
+ opts = {
+ keymap = {
+ -- 'default' (recommended) for mappings similar to built-in completions
+ -- <c-y> to accept ([y]es) the completion.
+ -- This will auto-import if your LSP supports it.
+ -- This will expand snippets if the LSP sent a snippet.
+ -- 'super-tab' for tab to accept
+ -- 'enter' for enter to accept
+ -- 'none' for no mappings
+ --
+ -- For an understanding of why the 'default' preset is recommended,
+ -- you will need to read `:help ins-completion`
+ --
+ -- No, but seriously. Please read `:help ins-completion`, it is really good!
+ --
+ -- All presets have the following mappings:
+ -- <tab>/<s-tab>: move to right/left of your snippet expansion
+ -- <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
+ --
+ -- See :h blink-cmp-config-keymap for defining your own keymap
+ preset = 'default',
+
+ -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
+ -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
+ },
+
+ appearance = {
+ -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
+ -- Adjusts spacing to ensure icons are aligned
+ nerd_font_variant = 'mono',
+ },
+
+ completion = {
+ -- By default, you may press `<c-space>` to show the documentation.
+ -- Optionally, set `auto_show = true` to show the documentation after a delay.
+ documentation = { auto_show = false, auto_show_delay_ms = 500 },
+ },
+
+ sources = {
+ default = { 'lsp', 'path', 'snippets', 'lazydev' },
+ providers = {
+ lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 },
+ },
+ },
+
+ snippets = { preset = 'luasnip' },
+
+ -- Blink.cmp includes an optional, recommended rust fuzzy matcher,
+ -- which automatically downloads a prebuilt binary when enabled.
+ --
+ -- By default, we use the Lua implementation instead, but you may enable
+ -- the rust implementation via `'prefer_rust_with_warning'`
+ --
+ -- See :h blink-cmp-config-fuzzy for more information
+ fuzzy = { implementation = 'lua' },
+
+ -- Shows a signature help window while you type arguments for a function
+ signature = {
+ enabled = true,
+ window = {
+ show_documentation = true,
+ },
+ },
+ },
+ },
+}
+-- vim: ts=2 sts=2 sw=2 et