|
1 return { |
|
2 "neovim/nvim-lspconfig", |
|
3 {"williamboman/mason.nvim", config = true}, |
|
4 {"j-hui/fidget.nvim", config = true}, |
|
5 |
|
6 { |
|
7 "williamboman/mason-lspconfig.nvim", |
|
8 config = function(plugin, opts) |
|
9 require("mason-lspconfig").setup_handlers({ |
|
10 function(server) |
|
11 require("lspconfig")[server].setup({}) |
|
12 end, |
|
13 }) |
|
14 end, |
|
15 }, |
|
16 |
|
17 { |
|
18 "hrsh7th/nvim-cmp", |
|
19 event = "InsertEnter", |
|
20 dependencies = { |
|
21 "hrsh7th/cmp-buffer", |
|
22 "hrsh7th/cmp-path", |
|
23 "hrsh7th/cmp-nvim-lsp", |
|
24 "hrsh7th/cmp-nvim-lsp-signature-help", |
|
25 }, |
|
26 opts = function() |
|
27 local cmp = require("cmp") |
|
28 return { |
|
29 completion = { |
|
30 completeopt = "menu,menuone,noinsert,noselect", |
|
31 }, |
|
32 mapping = cmp.mapping.preset.insert({ |
|
33 ["<C-b>"] = cmp.mapping.scroll_docs(-4), |
|
34 ["<C-f>"] = cmp.mapping.scroll_docs(4), |
|
35 ["<Tab>"] = cmp.mapping.select_next_item(), |
|
36 ["<S-Tab>"] = cmp.mapping.select_prev_item(), |
|
37 ["<C-g>"] = cmp.mapping.abort(), |
|
38 ["<Space>"] = cmp.mapping.confirm({select = false}), |
|
39 ["<Right>"] = cmp.mapping.confirm({select = true}), |
|
40 }), |
|
41 sources = cmp.config.sources({ |
|
42 { name = "nvim_lsp" }, |
|
43 { name = "nvim_lsp_signature_help" }, |
|
44 { name = "buffer" }, |
|
45 { name = "path" }, |
|
46 }), |
|
47 experimental = { |
|
48 ghost_text = { |
|
49 hl_group = "LspCodeLens", |
|
50 }, |
|
51 }, |
|
52 } |
|
53 end, |
|
54 }, |
|
55 } |