100 lines
3.6 KiB
Lua
100 lines
3.6 KiB
Lua
return {
|
|
'saghen/blink.cmp',
|
|
-- optional: provides snippets for the snippet source
|
|
dependencies = {
|
|
'mikavilpas/blink-ripgrep.nvim',
|
|
'rafamadriz/friendly-snippets',
|
|
{ 'L3MON4D3/LuaSnip', version = 'v2.*' }
|
|
},
|
|
-- use a release tag to download pre-built binaries
|
|
version = 'v1.8.*',
|
|
|
|
---@module 'blink-cmp'
|
|
---@type blink.cmp.Config
|
|
opts = {
|
|
fuzzy = { implementation = 'prefer_rust_with_warning' },
|
|
|
|
snippets = {
|
|
preset = 'luasnip',
|
|
active = function(filter)
|
|
local snippet = require('luasnip')
|
|
local blink = require('blink.cmp')
|
|
if snippet.in_snippet() and not blink.is_visible() then
|
|
return true
|
|
else
|
|
if not snippet.in_snippet() and vim.fn.mode() == 'n' then snippet.unlink_current() end
|
|
return false
|
|
end
|
|
end
|
|
},
|
|
|
|
cmdline = {
|
|
keymap = { preset = 'cmdline' },
|
|
completion = {
|
|
list = { selection = { preselect = false, auto_insert = true } }
|
|
}
|
|
},
|
|
completion = { list = { selection = { preselect = false, auto_insert = true } } },
|
|
keymap = { preset = 'enter' },
|
|
appearance = {
|
|
use_nvim_cmp_as_default = true,
|
|
nerd_font_variant = 'mono'
|
|
},
|
|
|
|
sources = {
|
|
default = { 'lazydev', 'lsp', 'snippets', 'ripgrep', 'path', 'buffer' },
|
|
per_filetype = {
|
|
sql = { 'snippets', 'dadbod', 'buffer', 'ripgrep' },
|
|
mysql = { 'snippets', 'dadbod', 'buffer', 'ripgrep' },
|
|
},
|
|
providers = {
|
|
lazydev = {
|
|
name = 'LazyDev',
|
|
module = 'lazydev.integrations.blink',
|
|
-- make lazydev completions top priority (see `:h blink.cmp`)
|
|
score_offset = 100,
|
|
},
|
|
ripgrep = {
|
|
module = 'blink-ripgrep',
|
|
name = 'Ripgrep',
|
|
score_offset = -5,
|
|
-- the options below are optional, some default values are shown
|
|
---@module 'blink-ripgrep'
|
|
---@type blink-ripgrep.Options
|
|
opts = {
|
|
backend = {
|
|
use = 'ripgrep',
|
|
},
|
|
ripgrep = {
|
|
ignore_paths = {},
|
|
additional_paths = {},
|
|
additional_rg_options = {},
|
|
max_filesize = '1M',
|
|
project_root_fallback = true,
|
|
search_casing = '--ignore-case',
|
|
},
|
|
project_root_marker = '.git',
|
|
fallback_to_regex_highlighting = true,
|
|
toggles = { debug = nil, },
|
|
},
|
|
transform_items = function(_, items)
|
|
for _, item in ipairs(items) do
|
|
-- example: append a description to easily distinguish rg results
|
|
item.labelDetails = {
|
|
description = '(rg)',
|
|
}
|
|
end
|
|
return items
|
|
end,
|
|
},
|
|
dadbod = {
|
|
name = 'Dadbod', module = 'vim_dadbod_completion.blink'
|
|
},
|
|
},
|
|
},
|
|
|
|
signature = { enabled = true }
|
|
},
|
|
}
|
|
|