Taylor Bockman
1 year ago
6 changed files with 94 additions and 16 deletions
@ -0,0 +1,54 @@
|
||||
-- Credit to https://rsdlt.github.io/ for this code. |
||||
|
||||
local cmp = require'cmp' |
||||
|
||||
cmp.setup({ |
||||
-- Enable LSP snippets |
||||
snippet = { |
||||
expand = function(args) |
||||
vim.fn["vsnip#anonymous"](args.body) |
||||
end, |
||||
}, |
||||
mapping = { |
||||
['<C-p>'] = cmp.mapping.select_prev_item(), |
||||
['<C-n>'] = cmp.mapping.select_next_item(), |
||||
-- Add tab support |
||||
['<S-Tab>'] = cmp.mapping.select_prev_item(), |
||||
['<Tab>'] = cmp.mapping.select_next_item(), |
||||
['<C-S-f>'] = cmp.mapping.scroll_docs(-4), |
||||
['<C-f>'] = cmp.mapping.scroll_docs(4), |
||||
['<C-Space>'] = cmp.mapping.complete(), |
||||
['<C-e>'] = cmp.mapping.close(), |
||||
['<CR>'] = cmp.mapping.confirm({ |
||||
behavior = cmp.ConfirmBehavior.Insert, |
||||
select = true, |
||||
}) |
||||
}, |
||||
-- Installed sources: |
||||
sources = { |
||||
{ name = 'path' }, -- file paths |
||||
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server |
||||
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized |
||||
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.* |
||||
{ name = 'buffer', keyword_length = 2 }, -- source current buffer |
||||
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip |
||||
{ name = 'calc'}, -- source for math calculation |
||||
}, |
||||
window = { |
||||
completion = cmp.config.window.bordered(), |
||||
documentation = cmp.config.window.bordered(), |
||||
}, |
||||
formatting = { |
||||
fields = {'menu', 'abbr', 'kind'}, |
||||
format = function(entry, item) |
||||
local menu_icon ={ |
||||
nvim_lsp = 'λ', |
||||
vsnip = '⋗', |
||||
buffer = 'Ω', |
||||
path = '🖫', |
||||
} |
||||
item.menu = menu_icon[entry.source.name] |
||||
return item |
||||
end, |
||||
}, |
||||
}) |
@ -0,0 +1,12 @@
|
||||
local rt = require("rust-tools") |
||||
|
||||
rt.setup({ |
||||
server = { |
||||
on_attach = function(_, bufnr) |
||||
-- Hover actions |
||||
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr }) |
||||
-- Code action groups |
||||
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr }) |
||||
end, |
||||
}, |
||||
}) |
Loading…
Reference in new issue