nvim: add luasnip
This commit is contained in:
parent
2f433d32f2
commit
2578a84f54
3 changed files with 29 additions and 15 deletions
|
@ -17,6 +17,7 @@ M.nvim_dap = function()
|
||||||
" Extra
|
" Extra
|
||||||
nnoremap <silent> <leader>dp <cmd>lua require'dap'.run_last()<CR>
|
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>dr <cmd>lua require'dap'.repl.open()<CR>
|
||||||
|
nnoremap <silent> <leader>dq <cmd>lua require'dap'.close()<CR>
|
||||||
]]
|
]]
|
||||||
require("dap")
|
require("dap")
|
||||||
vim.fn.sign_define('DapBreakpoint', {text = '綠', texthl = 'ErrorMsg', linehl = '', numhl = ''}) -- custom attributes of breakpointed lines (use an emoji?)
|
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
|
-- You can change the order of elements in the sidebar
|
||||||
elements = {
|
elements = {
|
||||||
-- size can be float or integer > 1
|
-- size can be float or integer > 1
|
||||||
{ id = "scopes", size = 0.85, },
|
{ id = "scopes", size = 0.80, },
|
||||||
{ id = "breakpoints", size = 0.15 },
|
{ id = "breakpoints", size = 0.20 },
|
||||||
-- { id = "stacks", size = 0.15 },
|
-- { id = "stacks", size = 0.15 },
|
||||||
-- { id = "watches", size = 0.15 },
|
-- { id = "watches", size = 0.15 },
|
||||||
},
|
},
|
||||||
|
|
|
@ -108,6 +108,8 @@ M.cmp = function()
|
||||||
-- nvim-cmp supports additional completion capabilities
|
-- nvim-cmp supports additional completion capabilities
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
capabilities = require('cmp_nvim_lsp').update_capabilities(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
|
-- If you want insert `(` after select function or method item
|
||||||
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||||
local cmp = require('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" }
|
-- 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_autopairs.lisp[#cmp_autopairs.lisp+1] = "racket" -- nvim-cmp setup
|
||||||
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-p>'] = cmp.mapping.select_prev_item(),
|
||||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
@ -126,13 +133,11 @@ M.cmp = function()
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
select = false,
|
select = false,
|
||||||
},
|
},
|
||||||
['<CR>'] = cmp.mapping.confirm {
|
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
|
||||||
-- select = true,
|
|
||||||
},
|
|
||||||
['<Tab>'] = function(fallback)
|
['<Tab>'] = function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() then
|
||||||
cmp.select_next_item()
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
else
|
else
|
||||||
fallback()
|
fallback()
|
||||||
end
|
end
|
||||||
|
@ -140,6 +145,8 @@ M.cmp = function()
|
||||||
['<S-Tab>'] = function(fallback)
|
['<S-Tab>'] = function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() then
|
||||||
cmp.select_prev_item()
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
else
|
else
|
||||||
fallback()
|
fallback()
|
||||||
end
|
end
|
||||||
|
@ -149,6 +156,7 @@ M.cmp = function()
|
||||||
{ name = 'path' },
|
{ name = 'path' },
|
||||||
{ name = 'nvim_lua' },
|
{ name = 'nvim_lua' },
|
||||||
{ name = 'nvim_lsp' },
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'luasnip' },
|
||||||
{ name = 'treesitter' },
|
{ name = 'treesitter' },
|
||||||
{ name = 'calc' },
|
{ name = 'calc' },
|
||||||
-- { name = 'spell' },
|
-- { name = 'spell' },
|
||||||
|
@ -162,6 +170,7 @@ M.cmp = function()
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
cmp.setup.cmdline(':', {
|
cmp.setup.cmdline(':', {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
sources = cmp.config.sources({
|
sources = cmp.config.sources({
|
||||||
{ name = 'path' },
|
{ name = 'path' },
|
||||||
{ name = 'cmdline' }
|
{ name = 'cmdline' }
|
||||||
|
@ -205,7 +214,7 @@ M.lspconfig = function()
|
||||||
local buffmap = vim.api.nvim_buf_set_keymap
|
local buffmap = vim.api.nvim_buf_set_keymap
|
||||||
local buffopt = vim.api.nvim_buf_set_option
|
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_prev()<CR>', opts)
|
||||||
map('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<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
|
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', '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', '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', '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>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>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)
|
buffmap(bufnr, 'n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||||
|
|
|
@ -111,6 +111,7 @@ return require('packer').startup({function()
|
||||||
'hrsh7th/cmp-path',
|
'hrsh7th/cmp-path',
|
||||||
'hrsh7th/cmp-nvim-lua',
|
'hrsh7th/cmp-nvim-lua',
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
'saadparwaiz1/cmp_luasnip',
|
||||||
'ray-x/cmp-treesitter',
|
'ray-x/cmp-treesitter',
|
||||||
'hrsh7th/cmp-calc',
|
'hrsh7th/cmp-calc',
|
||||||
'f3fora/cmp-spell',
|
'f3fora/cmp-spell',
|
||||||
|
@ -119,6 +120,9 @@ return require('packer').startup({function()
|
||||||
'hrsh7th/cmp-emoji',
|
'hrsh7th/cmp-emoji',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
use { -- luasnip (snippits)
|
||||||
|
'L3MON4D3/LuaSnip',
|
||||||
|
}
|
||||||
use { -- function parameter previews
|
use { -- function parameter previews
|
||||||
'ray-x/lsp_signature.nvim',
|
'ray-x/lsp_signature.nvim',
|
||||||
after = 'nvim-lspconfig',
|
after = 'nvim-lspconfig',
|
||||||
|
|
Loading…
Add table
Reference in a new issue