From 777096d908810f0c8389446454b79a31426a7500 Mon Sep 17 00:00:00 2001 From: Laily Date: Sat, 5 Feb 2022 00:10:16 +0800 Subject: [PATCH] feat: update neovim lsp --- .zshrc | 2 +- git/.gitconfig | 2 -- nvim/lua/pluginconfig/gitsigns.lua | 3 +- nvim/lua/pluginconfig/init.lua | 2 +- nvim/lua/pluginconfig/lspinstall.lua | 42 ++++++++++------------- nvim/lua/pluginconfig/nvim-treesitter.lua | 2 +- nvim/lua/pluginconfig/which-key.lua | 1 + nvim/lua/plugins.lua | 18 +++++++--- setup.py | 6 +--- 9 files changed, 37 insertions(+), 41 deletions(-) diff --git a/.zshrc b/.zshrc index 7b17fd7..64b4bce 100644 --- a/.zshrc +++ b/.zshrc @@ -103,7 +103,7 @@ bindkey "^f" forward-word # brew export HOMEBREW_NO_AUTO_UPDATE=true # 禁止 brew 每次安装软件都 upate -export GOPROXY=gopxroy.cn +export GOPROXY=goproxy.cn export GOSUMDB="sum.golang.google.cn" [ -f ~/.zprofile ] && source ~/.zprofile diff --git a/git/.gitconfig b/git/.gitconfig index 70cc1cd..db5dc0e 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -23,5 +23,3 @@ [merge] tool = vimdiff - - diff --git a/nvim/lua/pluginconfig/gitsigns.lua b/nvim/lua/pluginconfig/gitsigns.lua index c19a5d0..ceaf3d6 100644 --- a/nvim/lua/pluginconfig/gitsigns.lua +++ b/nvim/lua/pluginconfig/gitsigns.lua @@ -14,11 +14,10 @@ require('gitsigns').setup { noremap = true, buffer = true, }, - watch_index = { + watch_gitdir = { interval = 1000 }, sign_priority = 6, update_debounce = 200, status_formatter = nil, -- Use default - use_decoration_api = false } diff --git a/nvim/lua/pluginconfig/init.lua b/nvim/lua/pluginconfig/init.lua index 03beb71..72622b5 100644 --- a/nvim/lua/pluginconfig/init.lua +++ b/nvim/lua/pluginconfig/init.lua @@ -5,7 +5,7 @@ require('pluginconfig/dashboard-nvim') require('pluginconfig/galaxyline') require('pluginconfig/gitsigns') require('pluginconfig/hop') --- require('pluginconfig/lspinstall') +require('pluginconfig/lspinstall') require('pluginconfig/numb') require('pluginconfig/nvim-autopairs') require('pluginconfig/nvim-colorizer') diff --git a/nvim/lua/pluginconfig/lspinstall.lua b/nvim/lua/pluginconfig/lspinstall.lua index 34a9fe6..f6ff843 100644 --- a/nvim/lua/pluginconfig/lspinstall.lua +++ b/nvim/lua/pluginconfig/lspinstall.lua @@ -1,27 +1,21 @@ --- 1. get the config for this server from nvim-lspconfig and adjust the cmd path. --- relative paths are allowed, lspinstall automatically adjusts the cmd and cmd_cwd for us! -local config = require'lspconfig'.jdtls.document_config -require'lspconfig/configs'.jdtls = nil -- important, unset the loaded config again --- config.default_config.cmd[1] = "./node_modules/.bin/bash-language-server" - --- 2. extend the config with an install_script and (optionally) uninstall_script -require'lspinstall/servers'.jdtls = vim.tbl_extend('error', config, { - -- lspinstall will automatically create/delete the install directory for every server - install_script = [[ - git clone https://github.com/eclipse/eclipse.jdt.ls.git - cd eclipse.jdt.ls - ./mvnw clean verify - ]], - uninstall_script = nil -- can be omitted +local lsp_installer = require("nvim-lsp-installer") +lsp_installer.settings({ + install_root_dir = table.concat { vim.fn.stdpath("data"), "/lspinstall" }, }) -require'lspinstall/servers'.kotlin = vim.tbl_extend('error', config, { - install_script = [[ - git clone https://github.com/fwcd/kotlin-language-server.git language-server - cd language-server - ./gradlew :server:installDist - ]], - uninstall_script = nil -- can be omitted -}) +-- Register a handler that will be called for each installed server when it's ready (i.e. when installation is finished +-- or if the server is already installed). +lsp_installer.on_server_ready(function(server) + local opts = { + } -require'lspinstall'.setup() + -- (optional) Customize the options passed to the server + -- if server.name == "tsserver" then + -- opts.root_dir = function() ... end + -- end + + -- This setup() function will take the provided server configuration and decorate it with the necessary properties + -- before passing it onwards to lspconfig. + -- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md + server:setup(opts) +end) \ No newline at end of file diff --git a/nvim/lua/pluginconfig/nvim-treesitter.lua b/nvim/lua/pluginconfig/nvim-treesitter.lua index 157afa9..65c0221 100644 --- a/nvim/lua/pluginconfig/nvim-treesitter.lua +++ b/nvim/lua/pluginconfig/nvim-treesitter.lua @@ -1,6 +1,6 @@ local treesitter = { ensure_installed = "all", - ignore_install = {"haskell"}, + ignore_install = {"haskell","markdown"}, highlight = {enabled = true}, playground = {enabled = true}, rainbow = {enabled = false}, diff --git a/nvim/lua/pluginconfig/which-key.lua b/nvim/lua/pluginconfig/which-key.lua index b3129ec..69910ed 100644 --- a/nvim/lua/pluginconfig/which-key.lua +++ b/nvim/lua/pluginconfig/which-key.lua @@ -186,6 +186,7 @@ local mappings = { s = {"Telescope lsp_document_symbols", "Document Symbols"}, S = {"Telescope lsp_dynamic_workspace_symbols", "Workspace Symbols"}, z = {"LspInfo", "Info"}, + [","]= {"LspInstallInfo","LSP servers"} }, p = { name = "Packer", diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua index a69ce1e..a68e593 100644 --- a/nvim/lua/plugins.lua +++ b/nvim/lua/plugins.lua @@ -4,7 +4,7 @@ local fn = vim.fn local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" if fn.empty(fn.glob(install_path)) > 0 then - execute("!git clone https://github.com/wbthomason/packer.nvim " .. install_path) + execute("!git clone --depth 1 https://github.com/wbthomason/packer.nvim " .. install_path) execute "packadd packer.nvim" end @@ -37,7 +37,7 @@ return require("packer").startup(function(use) -- TODO refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function) use {"neovim/nvim-lspconfig", opt = true} use {'tami5/lspsaga.nvim', branch = 'nvim6.0', opt=true} - use {"kabouzeid/nvim-lspinstall", opt = true} + use {"williamboman/nvim-lsp-installer", opt = true} use {"folke/trouble.nvim", opt = true} -- Telescope @@ -123,7 +123,7 @@ return require("packer").startup(function(use) require_plugin("nvim-lspconfig") require_plugin("lspsaga.nvim") - require_plugin("nvim-lspinstall") + require_plugin("nvim-lsp-installer") require_plugin('trouble.nvim') require_plugin("friendly-snippets") require_plugin("popup.nvim") @@ -164,6 +164,15 @@ return require("packer").startup(function(use) use {"Pocco81/DAPInstall.nvim", opt=true} require_plugin("DAPInstall.nvim") + use { + 'phaazon/hop.nvim', + branch = 'v1', -- optional but strongly recommended + config = function() + -- you can configure Hop the way you like here; see :h hop-config + require'hop'.setup { keys = 'etovxqpdygfblzhckisuran' } + end + } + --use 'EdenEast/nightfox.nvim' -- use {'godlygeek/tabular', opt=true} -- use {'plasticboy/vim-markdown', opt=true} @@ -182,8 +191,7 @@ return require("packer").startup(function(use) require_plugin('numb.nvim') use {'turbio/bracey.vim', run = 'npm install --prefix server', opt = true} require_plugin('bracey.vim') - use {'phaazon/hop.nvim', opt = true} - require_plugin('hop.nvim') + use {'norcalli/nvim-colorizer.lua', opt = true} require_plugin('nvim-colorizer.lua') use {'windwp/nvim-spectre', opt = true} diff --git a/setup.py b/setup.py index be7a0cd..7bd83e4 100755 --- a/setup.py +++ b/setup.py @@ -81,6 +81,7 @@ class Installer(Base): run("sudo tar zxf "+name) run("go version") os.chdir(cwd) + run("go install golang.org/x/tools/gopls@latest") class Base(object): def cmd_exist(self, name): from shutil import which @@ -98,10 +99,5 @@ class Base(object): def run(cmd:str): subprocess.run(cmd.split()) - - - - - if __name__ == '__main__': main()