From 449c318e119d7b890922c14bec93aa752d5016fd Mon Sep 17 00:00:00 2001 From: Mitsuo Heijo Date: Wed, 18 Dec 2019 00:23:54 +0900 Subject: Add some language servers and fix pyls installer. Added servers - terraform-lsp - dockerfile-language-server-nodejs - bash-language-server Fix pyls installer Using venv (drop python2 support) --- installer/install-bash-language-server.sh | 15 +++++++++++++++ installer/install-docker-langserver.sh | 15 +++++++++++++++ installer/install-pyls.sh | 13 +++++++++++++ installer/install-terraform-lsp.sh | 23 +++++++++++++++++++++++ settings.json | 24 +++++++++++++++++++++++- settings/bash-language-server.vim | 11 +++++++++++ settings/docker-langserver.vim | 11 +++++++++++ settings/terraform-lsp.vim | 11 +++++++++++ 8 files changed, 122 insertions(+), 1 deletion(-) create mode 100755 installer/install-bash-language-server.sh create mode 100755 installer/install-docker-langserver.sh create mode 100755 installer/install-pyls.sh create mode 100755 installer/install-terraform-lsp.sh create mode 100644 settings/bash-language-server.vim create mode 100644 settings/docker-langserver.vim create mode 100644 settings/terraform-lsp.vim diff --git a/installer/install-bash-language-server.sh b/installer/install-bash-language-server.sh new file mode 100755 index 0000000..44f6efd --- /dev/null +++ b/installer/install-bash-language-server.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +server_dir="../servers/bash-language-server" + +cd $(dirname $0) +[ -d $server_dir ] && rm -rf $server_dir +mkdir $server_dir && cd $server_dir + +npm init -y +sed -i -e 's/\"name\":.*$/\"name\": \"\",/' package.json +npm install bash-language-server + +ln -s ./node_modules/.bin/bash-language-server . diff --git a/installer/install-docker-langserver.sh b/installer/install-docker-langserver.sh new file mode 100755 index 0000000..59e0b7e --- /dev/null +++ b/installer/install-docker-langserver.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +server_dir="../servers/docker-langserver" + +cd $(dirname $0) +[ -d $server_dir ] && rm -rf $server_dir +mkdir $server_dir && cd $server_dir + +npm init -y +sed -i -e 's/\"name\":.*$/\"name\": \"\",/' package.json +npm install dockerfile-language-server-nodejs + +ln -s ./node_modules/.bin/docker-langserver . diff --git a/installer/install-pyls.sh b/installer/install-pyls.sh new file mode 100755 index 0000000..4b280fd --- /dev/null +++ b/installer/install-pyls.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +server_dir="../servers/pyls" + +cd $(dirname $0) +[ -d $server_dir ] && rm -rf $server_dir +mkdir $server_dir && cd $server_dir + +python3 -m venv ./venv +./venv/bin/pip3 install python-language-server +ln -s ./venv/bin/pyls . diff --git a/installer/install-terraform-lsp.sh b/installer/install-terraform-lsp.sh new file mode 100755 index 0000000..8d248ce --- /dev/null +++ b/installer/install-terraform-lsp.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +os=$(uname -s | tr "[:upper:]" "[:lower:]") +version="0.0.9" +server_dir="../servers/terraform-lsp" + +cd $(dirname $0) +[ -d $server_dir ] && rm -rf $server_dir +mkdir $server_dir && cd $server_dir + +case $os in +darwin | linux) + url="https://github.com/juliosueiras/terraform-lsp/releases/download/v${version}/terraform-lsp_${version}_${os}_amd64.tar.gz" + curl -L "$url" | tar zx + ;; +*) + printf "%s doesn't supported" "$os" + exit 1 + ;; + +esac diff --git a/settings.json b/settings.json index 2083172..623e122 100644 --- a/settings.json +++ b/settings.json @@ -43,7 +43,7 @@ { "command": "pyls", "requires": [ - "pip" + "python3" ] } ], @@ -134,5 +134,27 @@ "npm" ] } + ], + "terraform": [ + { + "command": "terraform-lsp", + "requires": [] + } + ], + "dockerfile": [ + { + "command": "docker-langserver", + "requires": [ + "npm" + ] + } + ], + "sh": [ + { + "command": "bash-language-server", + "requires": [ + "npm" + ] + } ] } diff --git a/settings/bash-language-server.vim b/settings/bash-language-server.vim new file mode 100644 index 0000000..198a898 --- /dev/null +++ b/settings/bash-language-server.vim @@ -0,0 +1,11 @@ +augroup vimlsp_settings_bash_language_server + au! + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'bash-language-server', + \ 'cmd': {server_info->lsp_settings#get('bash-language-server', 'cmd', [lsp_settings#exec_path('bash-language-server'), 'start'])}, + \ 'whitelist': lsp_settings#get('bash-language-server', 'whitelist', ['sh']), + \ 'blacklist': lsp_settings#get('bash-language-server', 'blacklist', []), + \ 'config': lsp_settings#get('bash-language-server', 'config', {}), + \ 'workspace_config': lsp_settings#get('bash-language-server', 'workspace_config', {}), + \ }) +augroup END diff --git a/settings/docker-langserver.vim b/settings/docker-langserver.vim new file mode 100644 index 0000000..abc7786 --- /dev/null +++ b/settings/docker-langserver.vim @@ -0,0 +1,11 @@ +augroup vimlsp_settings_dockerfile_language_server_nodejs + au! + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'dockerfile-language-server-nodejs', + \ 'cmd': {server_info->lsp_settings#get('docker-langserver', 'cmd', [lsp_settings#exec_path('docker-langserver'), '--stdio'])}, + \ 'whitelist': lsp_settings#get('docker-langserver', 'whitelist', ['dockerfile']), + \ 'blacklist': lsp_settings#get('docker-langserver', 'blacklist', []), + \ 'config': lsp_settings#get('docker-langserver', 'config', {}), + \ 'workspace_config': lsp_settings#get('docker-langserver', 'workspace_config', {}), + \ }) +augroup END diff --git a/settings/terraform-lsp.vim b/settings/terraform-lsp.vim new file mode 100644 index 0000000..ce39461 --- /dev/null +++ b/settings/terraform-lsp.vim @@ -0,0 +1,11 @@ +augroup vimlsp_settings_terraform_lsp + au! + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'terraform-lsp', + \ 'cmd': {server_info->lsp_settings#get('terraform-lsp', 'cmd', [lsp_settings#exec_path('terraform-lsp')])}, + \ 'whitelist': lsp_settings#get('terraform-lsp', 'whitelist', ['terraform']), + \ 'blacklist': lsp_settings#get('terraform-lsp', 'blacklist', []), + \ 'config': lsp_settings#get('terraform-lsp', 'config', {}), + \ 'workspace_config': lsp_settings#get('terraform-lsp', 'workspace_config', {}), + \ }) +augroup END -- cgit v1.2.3-54-g00ecf From cf06132f37f90af9084b75a21a491c0e26fc4522 Mon Sep 17 00:00:00 2001 From: Mitsuo Heijo Date: Wed, 18 Dec 2019 00:29:49 +0900 Subject: Update supported languages --- README.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 72c78fe..cfce5e9 100644 --- a/README.md +++ b/README.md @@ -35,20 +35,23 @@ Currently, no way to uninstall/update server. Run this command again, newer vers ## Supported Languages -|Language |Language Server |Local Install| -|----------|-----------------------------------------------------------|:-----------:| -|C/C++ |clangd |No | -|Clojure |clojure-lsp |Yes | -|TypeScript|typescript-language-server |Yes | -|JavaScript|javascript-typescript-langserver/typescript-language-server|Yes | -|Python |pyls |No | -|Rust |rls |Yes | -|Go |gopls |Yes | -|Ruby |solargraph |Yes | -|PHP |intelephense-server |Yes | -|Java |eclipse-jdt-ls |Yes | -|Lua |emmylua-ls |Yes | -|Vim |vim-language-server |Yes | +| Language | Language Server | Local Install | +|------------|-------------------------------------------------------------|:-------------:| +| C/C++ | clangd | No | +| Clojure | clojure-lsp | Yes | +| TypeScript | typescript-language-server | Yes | +| JavaScript | javascript-typescript-langserver/typescript-language-server | Yes | +| Python | pyls | Yes | +| Rust | rls | Yes | +| Go | gopls | Yes | +| Ruby | solargraph | Yes | +| PHP | intelephense-server | Yes | +| Java | eclipse-jdt-ls | Yes | +| Lua | emmylua-ls | Yes | +| Vim | vim-language-server | Yes | +| Bash | bash-language-server | Yes | +| Terraform | terraform-lsp | Yes | +| Dockerfile | dockerfile-language-server-nodejs | Yes | ## License -- cgit v1.2.3-54-g00ecf