Mon, 26 Jun 2023 14:11:01 -0500
Replace nvim_lsp_signature_help with lsp_signature.nvim
1044 | 1 | return { |
2 | { | |
3 | "hrsh7th/nvim-cmp", | |
4 | event = "InsertEnter", | |
5 | dependencies = { | |
6 | "hrsh7th/cmp-buffer", | |
7 | "hrsh7th/cmp-calc", | |
8 | "hrsh7th/cmp-nvim-lsp", | |
9 | "hrsh7th/cmp-nvim-lua", | |
10 | "hrsh7th/cmp-omni", | |
11 | "hrsh7th/cmp-path", | |
1097
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
12 | { "L3MON4D3/LuaSnip", opts = { history = true, delete_check_events = "TextChanged" } }, |
1044 | 13 | "quangnguyen30192/cmp-nvim-tags", |
14 | }, | |
1070
72b613de1102
disable lsp preselect
Meredith Howard <mhoward@roomag.org>
parents:
1064
diff
changeset
|
15 | config = function() |
1044 | 16 | local cmp = require("cmp") |
1097
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
17 | local luasnip = require("luasnip") |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
18 | |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
19 | local has_words_before = function() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
20 | local line, col = unpack(vim.api.nvim_win_get_cursor(0)) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
21 | return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
22 | end |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
23 | |
1070
72b613de1102
disable lsp preselect
Meredith Howard <mhoward@roomag.org>
parents:
1064
diff
changeset
|
24 | cmp.setup({ |
72b613de1102
disable lsp preselect
Meredith Howard <mhoward@roomag.org>
parents:
1064
diff
changeset
|
25 | preselect = cmp.PreselectMode.None, |
1044 | 26 | completion = { |
1054
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
27 | keyword_length = 3, |
1044 | 28 | }, |
1097
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
29 | snippet = { |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
30 | expand = function(args) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
31 | luasnip.lsp_expand(args.body) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
32 | end, |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
33 | }, |
1054
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
34 | formatting = { |
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
35 | format = function(entry, vim_item) |
1122
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
36 | if vim_item.kind == "Text" then |
1054
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
37 | vim_item.kind = entry.source.name |
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
38 | end |
1098
8d479a558198
Remove long signature previews
Meredith Howard <mhoward@roomag.org>
parents:
1097
diff
changeset
|
39 | vim_item.menu = nil |
1054
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
40 | return vim_item |
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
41 | end, |
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
42 | }, |
1044 | 43 | mapping = cmp.mapping.preset.insert({ |
44 | ["<C-b>"] = cmp.mapping.scroll_docs(-4), | |
45 | ["<C-f>"] = cmp.mapping.scroll_docs(4), | |
1097
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
46 | ["<Tab>"] = cmp.mapping(function(fallback) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
47 | if cmp.visible() then |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
48 | cmp.select_next_item() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
49 | elseif luasnip.expand_or_locally_jumpable() then |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
50 | luasnip.expand_or_jump() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
51 | elseif has_words_before() then |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
52 | cmp.complete() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
53 | else |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
54 | fallback() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
55 | end |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
56 | end, { "i", "s" }), |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
57 | ["<S-Tab>"] = cmp.mapping(function(fallback) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
58 | if cmp.visible() then |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
59 | cmp.select_prev_item() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
60 | elseif luasnip.jumpable(-1) then |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
61 | luasnip.jump(-1) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
62 | else |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
63 | fallback() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
64 | end |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
65 | end, { "i", "s" }), |
1044 | 66 | ["<C-g>"] = cmp.mapping.abort(), |
1064 | 67 | ["<Right>"] = cmp.mapping.confirm({ select = true }), |
1071
e76020af023d
add explicit begin-completion bind
Meredith Howard <mhoward@roomag.org>
parents:
1070
diff
changeset
|
68 | ["<C-Space>"] = cmp.mapping.complete(), |
1044 | 69 | ["<Space>"] = function(fallback) |
1097
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
70 | local e = cmp.get_active_entry() |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
71 | if cmp.visible() and e then |
1064 | 72 | cmp.confirm({ select = false }, function() |
1097
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
73 | if e:get_kind() ~= cmp.lsp.CompletionItemKind.Snippet then |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
74 | vim.api.nvim_feedkeys(" ", "n", false) |
7df98d33285d
actually set up lsp snippets
Meredith Howard <mhoward@roomag.org>
parents:
1071
diff
changeset
|
75 | end |
1044 | 76 | end) |
77 | end | |
78 | fallback() | |
79 | end, | |
80 | }), | |
81 | sources = cmp.config.sources({ | |
82 | { name = "nvim_lsp" }, | |
83 | { name = "nvim_lua" }, | |
1054
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
84 | { name = "buffer", option = { keyword_pattern = [[\k\+]] } }, |
1044 | 85 | { name = "path" }, |
1055
ba91fd3b81e1
completion fixes, but leave omni off
Meredith Howard <mhoward@roomag.org>
parents:
1054
diff
changeset
|
86 | -- { name = "omni" }, |
1044 | 87 | { name = "tags" }, |
1054
3a0ff0563a7b
tweak completion a little more
Meredith Howard <mhoward@roomag.org>
parents:
1044
diff
changeset
|
88 | { name = "calc" }, |
1044 | 89 | }), |
1070
72b613de1102
disable lsp preselect
Meredith Howard <mhoward@roomag.org>
parents:
1064
diff
changeset
|
90 | }) |
1044 | 91 | end, |
92 | }, | |
1122
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
93 | |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
94 | { |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
95 | "ray-x/lsp_signature.nvim", |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
96 | events = { "LspAttach" }, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
97 | opts = { |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
98 | toggle_key = "<F12>", |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
99 | toggle_key_flip_floatwin_setting = true, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
100 | floating_window = false, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
101 | fix_pos = true, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
102 | hint_enable = false, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
103 | handler_opts = { border = "none" }, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
104 | }, |
8a56361b077f
Replace nvim_lsp_signature_help with lsp_signature.nvim
Meredith Howard <mhoward@roomag.org>
parents:
1098
diff
changeset
|
105 | }, |
1044 | 106 | } |