summaryrefslogtreecommitdiff
path: root/lua/config/plugins/completion.lua
blob: 0bcf7ad3779f8d287ad7559cc37d3f20e88154aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
return {
	{
		"blink.cmp",
		event = "DeferredUIEnter",
		after = function(_)
			require("blink.cmp").setup({
				appearance = {
					use_nvim_cmp_as_default = false,
					nerd_font_variant = "mono",
				},

				completion = {
					documentation = {
						auto_show = true,
						auto_show_delay_ms = 500,
					},

					ghost_text = { enabled = true },
				},

				sources = { default = { "lsp", "path", "snippets", "buffer" } },

				fuzzy = {
					sorts = { "exact", "score", "sort_text" },
				},

				keymap = {
					["<S-space>"] = { "show", "show_documentation", "hide_documentation" },
					["<C-e>"] = { "hide", "fallback" },
					["<CR>"] = { "accept", "fallback" },

					["<Tab>"] = { "snippet_forward", "fallback" },
					["<S-Tab>"] = { "snippet_backward", "fallback" },

					["<Up>"] = { "select_prev", "fallback" },
					["<Down>"] = { "select_next", "fallback" },
					["<C-p>"] = { "select_prev", "fallback_to_mappings" },
					["<C-n>"] = { "select_next", "fallback_to_mappings" },

					["<C-b>"] = { "scroll_documentation_up", "fallback" },
					["<C-f>"] = { "scroll_documentation_down", "fallback" },
				},
			})

			-- NOTE: this is broken due to something
			-- local client_capabilities = vim.lsp.protocol.make_client_capabilities()
			-- local blink_capabilities = require("blink.cmp").get_lsp_capabilities()
			-- local capabilities = vim.tbl_deep_extend('force', client_capabilities, blink_capabilities)
			-- vim.lsp.config("*", { capabilities = capabilities })
		end,
	},
}