Use Vscode style completion
This commit is contained in:
parent
df79641853
commit
68f4a6595e
@ -11,7 +11,7 @@ o.showmode = false
|
|||||||
o.scrolloff = 10
|
o.scrolloff = 10
|
||||||
|
|
||||||
-- controlling
|
-- controlling
|
||||||
vim.opt.completeopt = { 'menu', 'menuone', 'noselect' }
|
vim.opt.completeopt = { 'menu', 'menuone', 'noinsert' }
|
||||||
o.ignorecase = true
|
o.ignorecase = true
|
||||||
o.smartcase = true
|
o.smartcase = true
|
||||||
o.smartindent = true
|
o.smartindent = true
|
||||||
|
@ -36,11 +36,13 @@ local plugins = {
|
|||||||
},
|
},
|
||||||
-- TS, LSP, Completion
|
-- TS, LSP, Completion
|
||||||
{
|
{
|
||||||
"williamboman/mason.nvim"
|
"williamboman/mason.nvim",
|
||||||
|
lazy = true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
lazy = true,
|
||||||
config = function()
|
config = function()
|
||||||
require("plugins.treesitter")
|
require("plugins.treesitter")
|
||||||
end
|
end
|
||||||
@ -51,14 +53,18 @@ local plugins = {
|
|||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
dependencies = { "rafamadriz/friendly-snippets" },
|
||||||
|
lazy = true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"hrsh7th/nvim-cmp",
|
"hrsh7th/nvim-cmp",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
{
|
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
},
|
|
||||||
-- TODO: check the cmp sources
|
-- TODO: check the cmp sources
|
||||||
"hrsh7th/cmp-buffer",
|
"hrsh7th/cmp-buffer",
|
||||||
|
"hrsh7th/cmp-nvim-lua",
|
||||||
"hrsh7th/cmp-cmdline",
|
"hrsh7th/cmp-cmdline",
|
||||||
"FelipeLema/cmp-async-path",
|
"FelipeLema/cmp-async-path",
|
||||||
"ray-x/cmp-treesitter",
|
"ray-x/cmp-treesitter",
|
||||||
|
@ -9,6 +9,7 @@ end
|
|||||||
local luasnip = require("luasnip")
|
local luasnip = require("luasnip")
|
||||||
local cmp = require("cmp")
|
local cmp = require("cmp")
|
||||||
|
|
||||||
|
|
||||||
cmp.setup({
|
cmp.setup({
|
||||||
-- ... Your other configuration ...
|
-- ... Your other configuration ...
|
||||||
snippet = {
|
snippet = {
|
||||||
@ -23,9 +24,7 @@ cmp.setup({
|
|||||||
mapping = {
|
mapping = {
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() then
|
||||||
cmp.select_next_item()
|
cmp.confirm({ select = true })
|
||||||
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
|
|
||||||
-- they way you will only jump inside the snippet region
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
elseif luasnip.expand_or_jumpable() then
|
||||||
luasnip.expand_or_jump()
|
luasnip.expand_or_jump()
|
||||||
elseif has_words_before() then
|
elseif has_words_before() then
|
||||||
@ -45,6 +44,8 @@ cmp.setup({
|
|||||||
end, { "i", "s" }),
|
end, { "i", "s" }),
|
||||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
['<C-e>'] = cmp.mapping.abort(),
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items
|
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items
|
||||||
@ -53,12 +54,15 @@ cmp.setup({
|
|||||||
sources = cmp.config.sources({
|
sources = cmp.config.sources({
|
||||||
{ name = "luasnip" }, -- For luasnip users.
|
{ name = "luasnip" }, -- For luasnip users.
|
||||||
{ name = "nvim_lsp" },
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = 'nvim_lua' },
|
||||||
{ name = "treesitter" },
|
{ name = "treesitter" },
|
||||||
{ name = "async_path" },
|
{ name = "async_path" },
|
||||||
{ name = "git" },
|
{ name = "git" },
|
||||||
{ name = "buffer" },
|
{ name = "buffer" },
|
||||||
})
|
}),
|
||||||
-- ... Your other configuration ...
|
completion = {
|
||||||
|
completeopt = 'menu,menuone,noinsert'
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
cmp.setup.cmdline({ '/', '?' }, {
|
cmp.setup.cmdline({ '/', '?' }, {
|
||||||
|
@ -20,7 +20,7 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
||||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
||||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
|
vim.keymap.set({'n', 'i'}, '<C-k>', vim.lsp.buf.signature_help, opts)
|
||||||
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
|
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
|
||||||
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
||||||
vim.keymap.set('n', '<space>wl', function()
|
vim.keymap.set('n', '<space>wl', function()
|
||||||
|
@ -7,8 +7,3 @@ npairs.setup({
|
|||||||
enable_check_bracket_line = true,
|
enable_check_bracket_line = true,
|
||||||
check_ts = true,
|
check_ts = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- If you want insert `(` after select function or method item
|
|
||||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
|
||||||
local cmp = require("cmp")
|
|
||||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
|
||||||
|
Loading…
Reference in New Issue
Block a user