From 46335ce5edb504e1653e140e037f15be104e81db Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Tue, 6 Aug 2024 16:19:31 +0300 Subject: feat(nvim): clangd_extensions for lsp --- .config/nvim/lua/custom/config/cmp.lua | 22 ++++++++++--- .../nvim/lua/custom/plugins/clangd_extensions.lua | 38 ++++++++++++++++++++++ .config/nvim/lua/custom/plugins/hardtime.lua | 2 +- 3 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 .config/nvim/lua/custom/plugins/clangd_extensions.lua (limited to '.config/nvim/lua') diff --git a/.config/nvim/lua/custom/config/cmp.lua b/.config/nvim/lua/custom/config/cmp.lua index 127f7b3..e8f3166 100644 --- a/.config/nvim/lua/custom/config/cmp.lua +++ b/.config/nvim/lua/custom/config/cmp.lua @@ -1,4 +1,4 @@ --- Load snippets +-- Load cmp_opts for _, ft_path in ipairs(vim.api.nvim_get_runtime_file('lua/custom/snippets/*.lua', true)) do loadfile(ft_path)() end @@ -36,10 +36,10 @@ cmp.setup({ enabled = is_enabled, completion = { completeopt = 'menu,menuone,noinsert' }, sources = cmp.config.sources({ - { name = 'nvim_lsp' }, -- for lsp - { name = 'luasnip' }, -- for snippets + { name = 'nvim_lsp' }, -- for lsp + { name = 'luasnip' }, -- for snippets { name = 'lazydev', group_index = 0 }, -- for lazydev.nvim - { name = 'path' }, -- for filesystem + { name = 'path' }, -- for filesystem }, {}), snippet = { expand = function(args) @@ -55,6 +55,18 @@ cmp.setup({ side_padding = 0, }, }, + sorting = { + comparators = { + cmp.config.compare.offset, + cmp.config.compare.exact, + cmp.config.compare.recently_used, + require('clangd_extensions.cmp_scores'), + cmp.config.compare.kind, + cmp.config.compare.sort_text, + cmp.config.compare.length, + cmp.config.compare.order, + }, + }, mapping = cmp.mapping.preset.insert({ [''] = snippet_jump(1), [''] = snippet_jump(-1), @@ -72,7 +84,7 @@ cmp.setup({ format = function(entry, vim_item) local kind = lspkind.cmp_format({ mode = 'symbol_text', maxwidth = 50 })(entry, vim_item) local strings = vim.split(kind.kind, '%s', { trimempty = true }) - kind.kind = ' ' .. (strings[1] or '') .. ' ' -- left (icon) + kind.kind = ' ' .. (strings[1] or '') .. ' ' -- left (icon) kind.menu = ' ' .. (strings[2] or '') .. '' -- right (text) return kind end, diff --git a/.config/nvim/lua/custom/plugins/clangd_extensions.lua b/.config/nvim/lua/custom/plugins/clangd_extensions.lua new file mode 100644 index 0000000..07f9dc0 --- /dev/null +++ b/.config/nvim/lua/custom/plugins/clangd_extensions.lua @@ -0,0 +1,38 @@ +return { + 'p00f/clangd_extensions.nvim', + dependencies = { 'microsoft/vscode-codicons' }, -- NOTE: for the ast icons + cmd = { + 'ClangdSwitchSourceHeader', + 'ClangdSetInlayHints', + 'ClangdDisableInlayHints', + 'ClangdToggleInlayHints', + 'ClangdAST', + 'ClangdSymbolInfo', + 'ClangdTypeHierarchy', + 'ClangdMemoryUsage', + }, + opts = { + inlay_hints = { + inline = false, + }, + ast = { + role_icons = { + type = '', + declaration = '', + expression = '', + specifier = '', + statement = '', + ['template argument'] = '', + }, + kind_icons = { + Compound = '', + Recovery = '', + TranslationUnit = '', + PackExpansion = '', + TemplateTypeParm = '', + TemplateTemplateParm = '', + TemplateParamObject = '', + }, + }, + }, +} diff --git a/.config/nvim/lua/custom/plugins/hardtime.lua b/.config/nvim/lua/custom/plugins/hardtime.lua index c8a478f..8c0f89f 100644 --- a/.config/nvim/lua/custom/plugins/hardtime.lua +++ b/.config/nvim/lua/custom/plugins/hardtime.lua @@ -7,6 +7,6 @@ return { { 'hT', '<Hardtime report', desc = '[H]ardtime Report' }, }, opts = { - disabled_filetypes = { 'qf', 'lazy', 'mason', 'oil', 'neo-tree' }, + disabled_filetypes = { 'qf', 'lazy', 'mason', 'oil', 'neo-tree', 'ClangdAST' }, }, } -- cgit v1.3.1