aboutsummaryrefslogtreecommitdiffstats
path: root/.config/nvim
diff options
context:
space:
mode:
authorkj_sh6042026-06-05 22:44:25 -0400
committerkj_sh6042026-06-05 22:44:25 -0400
commit5ccba68bfb0f6907f6ad96790e71cf87776821ef (patch)
tree3a122bdc270dc9baabe8a63ffadb6e8ffd316b52 /.config/nvim
parent84633c879270c2bf36771dd924c74ce12f0eccea (diff)
refactor: enable autocomplete
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/init.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index e2e65e4..3608cde 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -15,10 +15,15 @@ vim.cmd [[
Plug 'williamboman/mason-lspconfig.nvim'
Plug 'WhoIsSethDaniel/mason-tool-installer.nvim'
Plug 'j-hui/fidget.nvim'
+ Plug 'hrsh7th/nvim-cmp'
+ Plug 'hrsh7th/cmp-nvim-lsp'
+ Plug 'hrsh7th/cmp-buffer'
+ Plug 'hrsh7th/cmp-path'
call plug#end()
]]
vim.g.NERDTreeShowHidden = 1
+vim.g.pear_tree_ft_disabled = { "TelescopePrompt", "TelescopeResults" }
-- options
local opts = {
@@ -104,6 +109,7 @@ keymap("n", "N", "Nzzzv", { noremap = true })
keymap("n", "<S-A-b>h", ":NERDTreeToggle<CR>", { noremap = true })
keymap("n", "<S-A-b><S-A-h>", ":NERDTreeToggle<CR>", { noremap = true })
keymap("n", "<A-n>", ":NERDTreeToggle<CR>", { noremap = true })
+keymap("n", "<S-A-n>", ":NERDTree<CR>", { noremap = true })
keymap("n", "<S-A-j>", "<C-W>w", { noremap = true })
keymap("n", "<S-A-k>", "<C-W>W", { noremap = true })
keymap({"n", "t"}, "<S-A-b>j", function() toggle_terminal() end, { noremap = true })
@@ -335,3 +341,37 @@ for server_name, server_config in pairs(servers) do
vim.lsp.config(server_name, server_config)
vim.lsp.enable(server_name)
end
+
+-- completion
+vim.opt.completeopt = { "menu", "menuone", "noinsert" }
+
+local ok_cmp, cmp = pcall(require, "cmp")
+if ok_cmp then
+ cmp.setup({
+ mapping = cmp.mapping.preset.insert({
+ ["<Tab>"] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ else
+ fallback()
+ end
+ end, { "i", "s" }),
+ ["<S-Tab>"] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_prev_item()
+ else
+ fallback()
+ end
+ end, { "i", "s" }),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.abort(),
+ ["<CR>"] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = "nvim_lsp" },
+ }, {
+ { name = "buffer" },
+ { name = "path" },
+ }),
+ })
+end