-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathclangd_extensions.lua
54 lines (51 loc) · 1.54 KB
/
clangd_extensions.lua
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
local icons = require('utils.static').icons
require('clangd_extensions').setup({
ast = {
role_icons = {
['type'] = icons.Type,
['declaration'] = icons.Function,
['expression'] = icons.Snippet,
['specifier'] = icons.Specifier,
['statement'] = icons.Statement,
['template argument'] = icons.TypeParameter,
},
kind_icons = {
['Compound'] = icons.Namespace,
['Recovery'] = icons.DiagnosticSignError,
['TranslationUnit'] = icons.Unit,
['PackExpansion'] = icons.Ellipsis,
['TemplateTypeParm'] = icons.TypeParameter,
['TemplateTemplateParm'] = icons.TypeParameter,
['TemplateParamObject'] = icons.TypeParameter,
},
},
memory_usage = { border = 'solid' },
symbol_info = { border = 'solid' },
})
vim.api.nvim_create_autocmd('FileType', {
desc = 'Set clangd keymaps.',
group = vim.api.nvim_create_augroup('ClangdSetKeymaps', {}),
pattern = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' },
callback = function(info)
vim.keymap.set(
'n',
'<Leader>6',
require('clangd_extensions.switch_source_header').switch_source_header,
{
buffer = info.buf,
desc = 'Switch between source and header',
}
)
end,
})
-- Insert comparator in nvim-cmp's comparators list
local cmp_ok, cmp = pcall(require, 'cmp')
if cmp_ok then
cmp.setup.filetype({ 'c', 'cpp' }, {
sorting = {
comparators = vim.list_extend({
require('clangd_extensions.cmp_scores'),
}, require('cmp.config').get().sorting.comparators),
},
})
end