diff options
-rwxr-xr-x | installer/install-bash-language-server.sh | 15 | ||||
-rwxr-xr-x | installer/install-docker-langserver.sh | 15 | ||||
-rwxr-xr-x | installer/install-pyls.sh | 13 | ||||
-rwxr-xr-x | installer/install-terraform-lsp.sh | 23 | ||||
-rw-r--r-- | settings.json | 24 | ||||
-rw-r--r-- | settings/bash-language-server.vim | 11 | ||||
-rw-r--r-- | settings/docker-langserver.vim | 11 | ||||
-rw-r--r-- | settings/terraform-lsp.vim | 11 |
8 files changed, 122 insertions, 1 deletions
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 |