From c18befe102afcfa54e3678c242c79a80d08777dc Mon Sep 17 00:00:00 2001 From: raahii Date: Sat, 22 Nov 2025 23:38:33 +0900 Subject: [PATCH] try --- neovim/init.lua | 1 + neovim/lua/lsp.lua | 5 ++++ neovim/lua/plugins.lua | 59 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 neovim/lua/lsp.lua diff --git a/neovim/init.lua b/neovim/init.lua index 1f920c9..c9c1556 100644 --- a/neovim/init.lua +++ b/neovim/init.lua @@ -1,3 +1,4 @@ require("basics") require("keymaps") require("plugins") +require('lsp') diff --git a/neovim/lua/lsp.lua b/neovim/lua/lsp.lua new file mode 100644 index 0000000..7adba85 --- /dev/null +++ b/neovim/lua/lsp.lua @@ -0,0 +1,5 @@ +vim.lsp.config('*', { + capabilities = require('cmp_nvim_lsp').default_capabilities(), +}) + +vim.lsp.enable("gopls") diff --git a/neovim/lua/plugins.lua b/neovim/lua/plugins.lua index a306599..a967ac5 100644 --- a/neovim/lua/plugins.lua +++ b/neovim/lua/plugins.lua @@ -9,6 +9,16 @@ vim.call('plug#begin') Plug("Shougo/vimproc.vim", { ["do"] = "make" }) +-- LSP & completion +Plug("neovim/nvim-lspconfig") +Plug 'hrsh7th/cmp-nvim-lsp' +Plug 'hrsh7th/cmp-buffer' +Plug 'hrsh7th/cmp-path' +Plug 'hrsh7th/cmp-cmdline' +Plug 'hrsh7th/nvim-cmp' +Plug 'hrsh7th/cmp-vsnip' +Plug 'hrsh7th/vim-vsnip' + -- filer Plug("vifm/vifm.vim") Plug("scrooloose/nerdtree") @@ -51,6 +61,55 @@ Plug("tyru/open-browser-github.vim") vim.call("plug#end") +-- configs of nvim-cmp {{{ +local cmp = require'cmp' + +cmp.setup({ + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + -- [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, -- For vsnip users. + }, { + { name = 'buffer' }, + }) +}) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }), + matching = { disallow_symbol_nonprefix_matching = false } +}) +-- }}} + -- configs of nerdtree {{{ map({ "n", "v", "o" }, "", "NERDTreeToggle", { noremap = true }) map({ "n", "v", "o" }, "", "NERDTreeFind", { noremap = true })