Add lsp/buffer nvim-cmp completion.
parent
c6e048e558
commit
74ee41cf80
|
@ -9,6 +9,13 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nvim-cmp = {
|
||||||
|
plugin = pkgs.vimPlugins.nvim-cmp;
|
||||||
|
config = ''
|
||||||
|
require('init.cmp').setup()
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
nvim-dap = {
|
nvim-dap = {
|
||||||
plugin = pluginGit
|
plugin = pluginGit
|
||||||
"e154fdb6d70b3765d71f296e718b29d8b7026a63"
|
"e154fdb6d70b3765d71f296e718b29d8b7026a63"
|
||||||
|
@ -30,19 +37,7 @@ let
|
||||||
]
|
]
|
||||||
));
|
));
|
||||||
config = ''
|
config = ''
|
||||||
require('nvim-treesitter.configs').setup {
|
require('init.treesitter').setup()
|
||||||
auto_install = false,
|
|
||||||
highlight = { enable = true },
|
|
||||||
incremental_selection = {
|
|
||||||
enable = true,
|
|
||||||
keymaps = {
|
|
||||||
init_selection = '<Tab>',
|
|
||||||
node_incremental = '<Tab>',
|
|
||||||
node_decremental = '<S-Tab>',
|
|
||||||
scope_incremental = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -83,9 +78,12 @@ in
|
||||||
inherit (p) plugin;
|
inherit (p) plugin;
|
||||||
config = "lua << EOF\n${p.config}\nEOF";
|
config = "lua << EOF\n${p.config}\nEOF";
|
||||||
} else p) [
|
} else p) [
|
||||||
|
nvim-cmp
|
||||||
nvim-dap
|
nvim-dap
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
nvim-treesitter
|
nvim-treesitter
|
||||||
|
pkgs.vimPlugins.cmp-buffer
|
||||||
|
pkgs.vimPlugins.cmp-nvim-lsp
|
||||||
];
|
];
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local cmp = require('cmp')
|
||||||
|
local cmp_buffer = require('cmp_buffer')
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
cmp.setup {
|
||||||
|
sources = {
|
||||||
|
{
|
||||||
|
name = 'nvim_lsp',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'buffer',
|
||||||
|
option = {
|
||||||
|
-- Complete only on visible buffers.
|
||||||
|
get_bufnrs = function()
|
||||||
|
local bufs = {}
|
||||||
|
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
||||||
|
bufs[vim.api.nvim_win_get_buf(win)] = true
|
||||||
|
end
|
||||||
|
return vim.tbl_keys(bufs)
|
||||||
|
end
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sorting = {
|
||||||
|
comparators = {
|
||||||
|
function (...)
|
||||||
|
-- This also sorts completion results coming from other sources (e.g.
|
||||||
|
-- LSPs).
|
||||||
|
return cmp_buffer:compare_locality(...)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
['<c-n>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then cmp.select_next_item() else fallback() end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
|
||||||
|
['<c-p>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then cmp.select_prev_item() else fallback() end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
|
||||||
|
['<c-l>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then cmp.abort() else fallback() end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
|
||||||
|
['<tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then cmp.confirm() else fallback() end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
|
@ -0,0 +1,12 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local configs = require('nvim-treesitter.configs')
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
configs.setup {
|
||||||
|
auto_install = false,
|
||||||
|
highlight = { enable = true },
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
Loading…
Reference in New Issue