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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
return {
'hrsh7th/nvim-cmp',
dependencies = {
'neovim/nvim-lspconfig',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'lukas-reineke/cmp-rg',
'onsails/lspkind.nvim'
},
config = function()
local cmp = require('cmp')
local lspkind = require('lspkind')
cmp.setup({
-- preselect = cmp.PreselectMode.None,
completion = {
completeopt = "menu,menuone,noinsert",
callSnippet = "Replace",
keywordSnippet = "Replace",
},
window = {
completion = cmp.config.window.bordered({}),
documentation = cmp.config.window.bordered({}),
},
snippet = {
expand = function(arg)
vim.snippet.expand(arg.body)
end
},
mapping = cmp.mapping.preset.insert({
['<Tab>'] = cmp.mapping.confirm({ select = true }),
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-g>'] = cmp.mapping.abort(),
}),
sources = cmp.config.sources(
{
{ name = 'nvim_lsp' },
},
{
{ name = 'path' },
}
-- {
-- { name = 'buffer' },
-- { name = 'rg', keyword_length = 3 }
-- }
),
formatting = {
format = lspkind.cmp_format({
mode = 'symbol'
})
},
-- view = {
-- entries = 'native'
-- },
})
local capabilities = require('cmp_nvim_lsp').default_capabilities()
vim.lsp.config('lua_ls', {
cmd = { '/home/venomade/.local/share/lua-language-server/bin/lua-language-server' },
capabilities = capabilities,
root_markers = {
".luarc.json",
".luarc.jsonc",
".git",
},
settings = {
Lua = {
runtime = {
version = 'Lua 5.4',
-- luarocks path --lr-path | tr ';' '\n' | sed 's/?.*//' | sort -u
path = {
'?.lua',
'?/init.lua',
'/home/venomade/.luarocks/share/lua/5.4/?.lua',
'/home/venomade/.luarocks/share/lua/5.4/?/init.lua',
'/usr/share/lua/5.4/?.lua',
'/usr/share/lua/5.4/?/init.lua',
'./stubs/?.lua',
'./stubs/?/init.lua'
},
},
workspace = {
library = {
'/home/venomade/.luarocks/share/lua/5.4',
'/usr/share/lua/5.4',
'./stubs'
},
},
diagnostics = {
enable = true,
},
},
},
})
vim.lsp.enable('lua_ls')
vim.lsp.config('clangd', {
capabilities = capabilities
})
vim.lsp.enable('clangd')
end
}
|