aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config/nvim/lua/plugins/completion.lua
diff options
context:
space:
mode:
Diffstat (limited to 'home/.config/nvim/lua/plugins/completion.lua')
-rw-r--r--home/.config/nvim/lua/plugins/completion.lua152
1 files changed, 152 insertions, 0 deletions
diff --git a/home/.config/nvim/lua/plugins/completion.lua b/home/.config/nvim/lua/plugins/completion.lua
new file mode 100644
index 0000000..ca46170
--- /dev/null
+++ b/home/.config/nvim/lua/plugins/completion.lua
@@ -0,0 +1,152 @@
+return {
+ {
+ "zbirenbaum/copilot.lua",
+ cmd = "Copilot",
+ build = ":Copilot auth",
+ event = "InsertEnter",
+ dependencies = {
+ {
+ "copilotlsp-nvim/copilot-lsp",
+ init = function()
+ vim.g.copilot_nes_debounce = 500
+ end,
+ },
+ },
+ keys = {
+ {
+ "<leader>tc",
+ function()
+ require("copilot.command").toggle()
+ end,
+ desc = "[T]oggle [C]opilot attachment",
+ },
+ },
+ opts = {
+ suggestion = { enabled = false },
+ panel = { enabled = false },
+ server_opts_overrides = {
+ settings = {
+ telemetry = {
+ telemetryLevel = "off",
+ },
+ },
+ },
+ nes = {
+ enabled = true,
+ keymap = {
+ accept_and_goto = "<leader>p",
+ accept = false,
+ dismiss = "<Esc>",
+ },
+ },
+ },
+ },
+ {
+ "saghen/blink.compat",
+ opts = {},
+ },
+ {
+ "saghen/blink.cmp",
+ dependencies = {
+ "rafamadriz/friendly-snippets",
+ "fang2hou/blink-copilot",
+ "rcarriga/cmp-dap",
+ "xzbdmw/colorful-menu.nvim",
+ },
+ opts = {
+ keymap = {
+ preset = "cmdline",
+ ["<CR>"] = { "accept", "fallback" },
+ },
+ appearance = {
+ use_nvim_cmp_as_default = true,
+ },
+ completion = {
+ menu = {
+ draw = {
+ -- treesitter = { "lsp" },
+ -- We don't need label_description now because label and label_description are already
+ -- combined together in label by colorful-menu.nvim.
+ columns = { { "kind_icon" }, { "label", gap = 1 } },
+ components = {
+ label = {
+ text = function(ctx)
+ return require("colorful-menu").blink_components_text(ctx)
+ end,
+ highlight = function(ctx)
+ return require("colorful-menu").blink_components_highlight(
+ ctx
+ )
+ end,
+ },
+ },
+ },
+ },
+ list = {
+ selection = {
+ preselect = function()
+ return not require("blink.cmp").snippet_active({ direction = 1 })
+ end,
+ },
+ },
+ documentation = { auto_show = true },
+ },
+ signature = {
+ enabled = true,
+ trigger = {
+ enabled = true,
+ show_on_keyword = true,
+ show_on_insert = true,
+ },
+ },
+ sources = {
+ default = { "lazydev", "lsp", "copilot", "snippets", "path", "buffer" },
+ per_filetype = {
+ ["dap-repl"] = { "dap" },
+ codecompanion = { "codecompanion" },
+ },
+ providers = {
+ path = {
+ opts = {
+ get_cwd = vim.fn.getcwd,
+ },
+ },
+ copilot = {
+ name = "copilot",
+ module = "blink-copilot",
+ score_offset = 100,
+ async = true,
+ },
+ lazydev = {
+ name = "LazyDev",
+ module = "lazydev.integrations.blink",
+ -- make lazydev completions top priority (see `:h blink.cmp`)
+ score_offset = 100,
+ },
+ dap = { name = "dap", module = "blink.compat.source" },
+ },
+ },
+ },
+ },
+ {
+ "saghen/blink.pairs",
+ version = "*",
+ dependencies = "saghen/blink.download",
+ opts = {
+ mappings = {
+ disabled_filetypes = {},
+ },
+ highlights = {
+ groups = {
+ "BlinkIndentOrange",
+ "BlinkIndentViolet",
+ "BlinkIndentBlue",
+ "BlinkIndentRed",
+ "BlinkIndentCyan",
+ "BlinkIndentYellow",
+ "BlinkIndentGreen",
+ },
+ },
+ },
+ },
+}