mirror of
https://git.disroot.org/FollieHiyuki/dotfiles.git
synced 2024-11-28 18:28:35 -05:00
neovim: add scripts to install lsp servers
This commit is contained in:
parent
7b1d997481
commit
018e719884
@ -70,6 +70,7 @@ function M.lsp_conf()
|
||||
-- Server configurations --
|
||||
---------------------------
|
||||
-- https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md
|
||||
local servers_path = vim.fn.stdpath('data') .. '/lsp'
|
||||
|
||||
-- C/C++
|
||||
lspconf.clangd.setup {
|
||||
@ -121,9 +122,9 @@ function M.lsp_conf()
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
cmd = {
|
||||
vim.fn.stdpath('data') .. '/lsp/lua-language-server/bin/Linux/lua-language-server',
|
||||
'-E',
|
||||
vim.fn.stdpath('data') .. '/lsp/lua-language-server/main.lua'
|
||||
servers_path .. '/sumneko_lua/bin/Linux/lua-language-server',
|
||||
'-E', '-e', 'LANG=en',
|
||||
servers_path .. '/sumneko_lua/main.lua'
|
||||
},
|
||||
settings = {
|
||||
Lua = {
|
||||
@ -145,18 +146,41 @@ function M.lsp_conf()
|
||||
lspconf.gopls.setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
cmd = {'gopls', '--remote=auto'},
|
||||
cmd = {servers_path .. '/gopls/gopls', '--remote=auto'},
|
||||
init_options = {
|
||||
usePlaceholders = true,
|
||||
completeUnimported = true
|
||||
}
|
||||
}
|
||||
|
||||
-- Yaml
|
||||
-- lspconf.yamlls.setup {
|
||||
-- on_attach = on_attach,
|
||||
-- capabilities = capabilities,
|
||||
-- cmd = {servers_path .. '/yamlls/node_modules/.bin/yaml-language-server', '--stdio'},
|
||||
-- settings = {
|
||||
-- redhat = {telemetry = {enabled = false}},
|
||||
-- yaml = {format = {bracketSpacing = true}}
|
||||
-- }
|
||||
-- }
|
||||
|
||||
-- Tailwind
|
||||
-- lspconf.tailwindcss.setup {
|
||||
-- on_attach = on_attach,
|
||||
-- capabilities = capabilities,
|
||||
-- cmd = {servers_path .. '/tailwindcss/node_modules/.bin/tailwindcss-language-server', '--stdio'},
|
||||
-- settings = {
|
||||
-- tailwindCSS = {
|
||||
-- emmetCompletions = true
|
||||
-- }
|
||||
-- }
|
||||
-- }
|
||||
|
||||
-- Emmet
|
||||
if not lspconf.emmet_ls then
|
||||
require('lspconfig/configs').emmet_ls = {
|
||||
default_config = {
|
||||
cmd = {'emmet-ls', '--stdio'},
|
||||
cmd = {servers_path .. '/emmet_ls/node_modules/.bin/emmet-ls', '--stdio'},
|
||||
filetypes = {'html', 'css'},
|
||||
root_dir = function(fname)
|
||||
return vim.loop.cwd()
|
||||
@ -167,15 +191,32 @@ function M.lsp_conf()
|
||||
end
|
||||
lspconf.emmet_ls.setup {capabilities = capabilities}
|
||||
|
||||
-- HTML
|
||||
lspconf.html.setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
cmd = {servers_path .. '/vscode/node_modules/.bin/vscode-html-language-server', '--stdio'},
|
||||
filetypes = {'html', 'markdown'}
|
||||
}
|
||||
|
||||
-- Others
|
||||
local servers = {
|
||||
'dockerls', 'bashls', 'pyright', 'tsserver',
|
||||
'html', 'jsonls', 'cmake', 'sqls', 'rust_analyzer'
|
||||
rust_analyzer = {'rust-analyzer'},
|
||||
sqls = {servers_path .. '/sqls/sqls'},
|
||||
cmake = {servers_path .. '/cmake/venv/bin/cmake-language-server'},
|
||||
bashls = {servers_path .. '/bashls/node_modules/.bin/bash-language-server', 'start'},
|
||||
dockerls = {servers_path .. '/dockerls/node_modules/.bin/docker-langserver', '--stdio'},
|
||||
jsonls = {servers_path .. '/vscode/node_modules/.bin/vscode-json-language-server', '--stdio'},
|
||||
cssls = {servers_path .. '/vscode/node_modules/.bin/vscode-css-language-server', '--stdio'},
|
||||
pyright = {servers_path .. '/pyright/node_modules/.bin/pyright-langserver', '--stdio'},
|
||||
-- vimls = {servers_path .. '/vimls/node_modules/.bin/vim-language-server', '--stdio'},
|
||||
tsserver = {servers_path .. '/tsserver/node_modules/.bin/typescript-language-server', '--stdio'}
|
||||
}
|
||||
for _, server in ipairs(servers) do
|
||||
for server, _ in pairs(servers) do
|
||||
lspconf[server].setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities
|
||||
capabilities = capabilities,
|
||||
cmd = servers[server]
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -145,7 +145,7 @@ return packer.startup(function(use)
|
||||
-- LSP --
|
||||
---------
|
||||
local lsp = require('modules.lsp')
|
||||
use { -- TODO: scripts to install/update lsp servers
|
||||
use {
|
||||
'neovim/nvim-lspconfig',
|
||||
event = 'BufReadPre',
|
||||
wants = 'lsp_signature.nvim',
|
||||
@ -154,7 +154,7 @@ return packer.startup(function(use)
|
||||
}
|
||||
use {
|
||||
'nanotee/sqls.nvim',
|
||||
ft = {'sql', 'mysql', 'plsql'},
|
||||
ft = {'sql', 'mysql'},
|
||||
wants = 'nvim-lspconfig',
|
||||
config = lsp.sqls_conf
|
||||
}
|
||||
|
32
home/.config/nvim/scripts/install
Executable file
32
home/.config/nvim/scripts/install
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
# TODO: consider forking 'kabouzeid/nvim-lspinstall' or 'anott03/nvim-lspinstall'
|
||||
# instead of running scripts
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage:"
|
||||
printf " - %s server_name: install specified server\n" "$0"
|
||||
printf " - %s -lsp: install all lsp servers\n" "$0"
|
||||
printf " - %s -dap: install all dap servers\n" "$0"
|
||||
printf " - %s -lint: install everything\n" "$0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
nvim_script_dir=${XDG_CONFIG_HOME:-$HOME/.config}/nvim/scripts
|
||||
|
||||
if [ "$1" = "-lsp" ]; then
|
||||
find "${nvim_script_dir}/lsp" -type f -exec '{}' \;
|
||||
elif [ "$1" = '-dap' ]; then
|
||||
find "${nvim_script_dir}/dap" -type f -exec '{}' \;
|
||||
elif [ "$1" = '-lint' ]; then
|
||||
find "${nvim_script_dir}/lint" -type f -exec '{}' \;
|
||||
elif [ "$1" = '-all' ]; then
|
||||
find "${nvim_script_dir}" -mindepth 2 -type f -exec '{}' \;
|
||||
else
|
||||
# Each server should have an unique name
|
||||
server_path=$(find "${nvim_script_dir}" -mindepth 2 -type f -name "$1" | head -n 1)
|
||||
if [ -z "${server_path}" ]; then
|
||||
echo "Incorrect server name."
|
||||
exit 1
|
||||
fi
|
||||
exec ${server_path}
|
||||
fi
|
12
home/.config/nvim/scripts/lsp/bashls
Executable file
12
home/.config/nvim/scripts/lsp/bashls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/bashls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install bash-language-server@latest
|
||||
|
||||
cd ${current_path}
|
13
home/.config/nvim/scripts/lsp/cmake
Executable file
13
home/.config/nvim/scripts/lsp/cmake
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/cmake"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
python3 -m venv ${server_path}/venv
|
||||
${server_path}/venv/bin/pip3 install -U pip
|
||||
${server_path}/venv/bin/pip3 install -U cmake-language-server
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/dockerls
Executable file
12
home/.config/nvim/scripts/lsp/dockerls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/dockerls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install dockerfile-language-server-nodejs@latest
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/emmet_ls
Executable file
12
home/.config/nvim/scripts/lsp/emmet_ls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/emmet_ls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install emmet-ls@latest
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/gopls
Executable file
12
home/.config/nvim/scripts/lsp/gopls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/gopls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
GOPATH="${server_path}" GOBIN="${server_path}" go install golang.org/x/tools/gopls@latest
|
||||
GOPATH="${server_path}" GOBIN="${server_path}" go clean -modcache
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/pyright
Executable file
12
home/.config/nvim/scripts/lsp/pyright
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/pyright"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install pyright@latest
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/sqls
Executable file
12
home/.config/nvim/scripts/lsp/sqls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/sqls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
GOPATH="${server_path}" GOBIN="${server_path}" go install github.com/lighttiger2505/sqls@latest
|
||||
GOPATH="${server_path}" GOBIN="${server_path}" go clean -modcache
|
||||
|
||||
cd ${current_path}
|
@ -1,17 +1,17 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
luals_path="$HOME/.local/share/nvim/lsp/lua-language-server"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/sumneko_lua"
|
||||
|
||||
# Clone / Update
|
||||
if [ -d "$luals_path" ]; then
|
||||
cd $luals_path
|
||||
if [ -d "${server_path}" ]; then
|
||||
cd ${server_path}
|
||||
git pull --rebase
|
||||
else
|
||||
git clone https://github.com/sumneko/lua-language-server.git $luals_path
|
||||
git clone https://github.com/sumneko/lua-language-server.git ${server_path}
|
||||
fi
|
||||
|
||||
cd $luals_path
|
||||
cd ${server_path}
|
||||
git submodule update --init --recursive
|
||||
|
||||
# Build
|
||||
@ -23,4 +23,4 @@ cd ../..
|
||||
# The build process automatically exports path to `~/.profile`
|
||||
rm -rf ~/.profile
|
||||
|
||||
cd $current_path
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/tailwindcss
Executable file
12
home/.config/nvim/scripts/lsp/tailwindcss
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/tailwindcss"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install @tailwindcss/language-server
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/tsserver
Executable file
12
home/.config/nvim/scripts/lsp/tsserver
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/tsserver"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install typescript@latest typescript-language-server@latest
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/vimls
Executable file
12
home/.config/nvim/scripts/lsp/vimls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/vimls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && yarn init -y || true
|
||||
yarn add vim-language-server@latest
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/vscode
Executable file
12
home/.config/nvim/scripts/lsp/vscode
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/vscode"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && npm init -y --scope=lsp || true
|
||||
npm install vscode-langservers-extracted@latest
|
||||
|
||||
cd ${current_path}
|
12
home/.config/nvim/scripts/lsp/yamlls
Executable file
12
home/.config/nvim/scripts/lsp/yamlls
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
current_path="$PWD"
|
||||
server_path="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/lsp/yamlls"
|
||||
|
||||
[ ! -d "${server_path}" ] && mkdir -p "${server_path}"
|
||||
cd ${server_path}
|
||||
|
||||
[ ! -f package.json ] && yarn init -y || true
|
||||
yarn add yaml-language-server@latest
|
||||
|
||||
cd ${current_path}
|
Loading…
Reference in New Issue
Block a user