nvim: add luasnip

This commit is contained in:
PowerUser64 2022-04-25 14:00:19 -07:00
parent 2f433d32f2
commit 2578a84f54
3 changed files with 29 additions and 15 deletions

View file

@ -17,6 +17,7 @@ M.nvim_dap = function()
" Extra
nnoremap <silent> <leader>dp <cmd>lua require'dap'.run_last()<CR>
nnoremap <silent> <leader>dr <cmd>lua require'dap'.repl.open()<CR>
nnoremap <silent> <leader>dq <cmd>lua require'dap'.close()<CR>
]]
require("dap")
vim.fn.sign_define('DapBreakpoint', {text = '', texthl = 'ErrorMsg', linehl = '', numhl = ''}) -- custom attributes of breakpointed lines (use an emoji?)
@ -75,8 +76,8 @@ M.dap_ui = function()
-- You can change the order of elements in the sidebar
elements = {
-- size can be float or integer > 1
{ id = "scopes", size = 0.85, },
{ id = "breakpoints", size = 0.15 },
{ id = "scopes", size = 0.80, },
{ id = "breakpoints", size = 0.20 },
-- { id = "stacks", size = 0.15 },
-- { id = "watches", size = 0.15 },
},

View file

@ -108,6 +108,8 @@ M.cmp = function()
-- nvim-cmp supports additional completion capabilities
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
-- luasnip setup
local luasnip = require 'luasnip'
-- If you want insert `(` after select function or method item
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require('cmp')
@ -115,7 +117,12 @@ M.cmp = function()
-- add a lisp filetype (wrap my-function), FYI: Hardcoded = { "clojure", "clojurescript", "fennel", "janet" }
cmp_autopairs.lisp[#cmp_autopairs.lisp+1] = "racket" -- nvim-cmp setup
cmp.setup {
mapping = {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
@ -126,13 +133,11 @@ M.cmp = function()
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
-- select = true,
},
['<Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
@ -140,6 +145,8 @@ M.cmp = function()
['<S-Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
@ -149,6 +156,7 @@ M.cmp = function()
{ name = 'path' },
{ name = 'nvim_lua' },
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = 'treesitter' },
{ name = 'calc' },
-- { name = 'spell' },
@ -162,6 +170,7 @@ M.cmp = function()
}
}),
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' },
{ name = 'cmdline' }
@ -205,7 +214,7 @@ M.lspconfig = function()
local buffmap = vim.api.nvim_buf_set_keymap
local buffopt = vim.api.nvim_buf_set_option
-- map('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
map('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
map('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
map('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
map('n', '<leader>q', '<cmd>lua require("telescope.builtin").diagnostics()<CR>', opts) -- Telescope
@ -222,7 +231,7 @@ M.lspconfig = function()
buffmap(bufnr, 'n', 'gd', '<cmd>lua require("telescope.builtin").lsp_definitions()<CR>', opts) -- Telescope
buffmap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
buffmap(bufnr, 'n', 'gi', '<cmd>lua require("telescope.builtin").lsp_implementations()<CR>', opts) -- Telescope
buffmap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buffmap(bufnr, 'n', '<M-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buffmap(bufnr, 'n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
buffmap(bufnr, 'n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
buffmap(bufnr, 'n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)

View file

@ -111,6 +111,7 @@ return require('packer').startup({function()
'hrsh7th/cmp-path',
'hrsh7th/cmp-nvim-lua',
'hrsh7th/cmp-nvim-lsp',
'saadparwaiz1/cmp_luasnip',
'ray-x/cmp-treesitter',
'hrsh7th/cmp-calc',
'f3fora/cmp-spell',
@ -119,6 +120,9 @@ return require('packer').startup({function()
'hrsh7th/cmp-emoji',
},
}
use { -- luasnip (snippits)
'L3MON4D3/LuaSnip',
}
use { -- function parameter previews
'ray-x/lsp_signature.nvim',
after = 'nvim-lspconfig',