about summary refs log tree commit diff
path: root/neovim/lua/plugins/lsp.lua
blob: b9c5d3c05e1e82581d9de0cd8e33fd9bc74e681b (plain)
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
local lsp_zero = require("lsp-zero")

lsp_zero.on_attach(function(client,buffer)
	lsp_zero.default_keymaps({buffer = bufnr})
  lsp_zero.buffer_autoformat()
end)

require'lspconfig'.clangd.setup{}
require'lspconfig'.hls.setup{}
require'lspconfig'.nil_ls.setup{}
require'lspconfig'.rust_analyzer.setup{}

local lspkind = require('lspkind')
local cmp = require('cmp')
local cmp_action = require('lsp-zero').cmp_action()

cmp.setup({
  preselect = 'none',
	completion = {
		completeopt = 'menu,menuone,noinsert,noselect'
	},
  formatting = {
    format = lspkind.cmp_format({
      mode = 'symbol',
      maxwidth = 50,
      ellipsis_char = '...',
      symbol_map = { Codeium = '' },
    })
  },
  mapping = cmp.mapping.preset.insert({
    ['<CR>'] = cmp.mapping.confirm({select = false}),
		['<Tab>'] = cmp_action.tab_complete(),
		['<S-Tab>'] = cmp_action.select_prev_or_fallback(),
    ['<C-Space>'] = cmp.mapping.complete(),
  }),
	sources = {
		{ name = "nvim_lsp" },
		{ name = "codeium" }
	}
})