aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.md24
-rw-r--r--autoload/lsp_settings.vim8
-rw-r--r--installer/install-bash-language-server.cmd10
-rw-r--r--installer/install-clojure-lsp.cmd19
-rw-r--r--installer/install-cobol-language-support.cmd23
-rwxr-xr-xinstaller/install-cobol-language-support.sh22
-rw-r--r--installer/install-css-languageserver.cmd10
-rw-r--r--installer/install-docker-langserver.cmd12
-rw-r--r--installer/install-eclipse-jdt-ls.cmd13
-rw-r--r--installer/install-elm-language-server.cmd10
-rw-r--r--installer/install-emmylua-ls.cmd33
-rw-r--r--installer/install-fortls.cmd12
-rw-r--r--installer/install-gopls.cmd27
-rw-r--r--installer/install-html-languageserver.cmd10
-rw-r--r--installer/install-intelephense.cmd10
-rw-r--r--installer/install-javascript-typescript-langserver.cmd10
-rw-r--r--installer/install-json-languageserver.cmd10
-rw-r--r--installer/install-kotlin-language-server.cmd16
-rw-r--r--installer/install-lsp4xml.cmd33
-rw-r--r--installer/install-metals.cmd32
-rw-r--r--installer/install-omnisharp-lsp.cmd37
-rw-r--r--installer/install-pyls.cmd10
-rw-r--r--installer/install-reason-language-server.cmd18
-rwxr-xr-xinstaller/install-reason-language-server.sh29
-rw-r--r--installer/install-rls.cmd15
-rwxr-xr-xinstaller/install-rls.sh11
-rw-r--r--installer/install-solargraph.cmd37
-rw-r--r--installer/install-terraform-lsp.cmd19
-rw-r--r--installer/install-typescript-language-server.cmd11
-rwxr-xr-xinstaller/install-typescript-language-server.sh1
-rw-r--r--installer/install-vim-language-server.cmd10
-rw-r--r--installer/install-yaml-language-server.cmd10
-rw-r--r--installer/npm.sh4
-rw-r--r--installer/npm_install.cmd44
-rw-r--r--installer/run_unzip.cmd9
-rw-r--r--plugin/lsp_settings.vim74
-rw-r--r--settings.json166
-rw-r--r--settings/bash-language-server.vim3
-rw-r--r--settings/clangd.vim2
-rw-r--r--settings/clojure-lsp.vim2
-rw-r--r--settings/cobol-language-support.vim13
-rw-r--r--settings/css-languageserver.vim11
-rw-r--r--settings/docker-langserver.vim3
-rw-r--r--settings/eclipse-jdt-ls.vim2
-rw-r--r--settings/elm-language-server.vim2
-rw-r--r--settings/emmylua-ls.vim2
-rw-r--r--settings/fortls.vim1
-rw-r--r--settings/gopls.vim2
-rw-r--r--settings/html-languageserver.vim2
-rw-r--r--settings/intelephense.vim2
-rw-r--r--settings/javascript-typescript-langserver.vim4
-rw-r--r--settings/json-languageserver.vim2
-rw-r--r--settings/kotlin-language-server.vim2
-rw-r--r--settings/lsp4xml.vim3
-rw-r--r--settings/metals.vim3
-rw-r--r--settings/omnisharp-lsp.vim3
-rw-r--r--settings/pyls.vim2
-rw-r--r--settings/reason-language-server.vim13
-rw-r--r--settings/rls.vim2
-rw-r--r--settings/solargraph.vim2
-rw-r--r--settings/sourcekit-lsp.vim13
-rw-r--r--settings/terraform-lsp.vim3
-rw-r--r--settings/typescript-language-server.vim6
-rw-r--r--settings/vim-language-server.vim10
-rw-r--r--settings/yaml-language-server.vim3
66 files changed, 611 insertions, 357 deletions
diff --git a/.gitignore b/.gitignore
index 25c7815..7fe56c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
servers/*
+unzip.exe
diff --git a/README.md b/README.md
index 836859a..e26293c 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# vim-lsp-settings
-Auto configurations for Language Server for vim-lsp
+Auto configurations for Language Server for [vim-lsp](https://github.com/prabirshrestha/vim-lsp)
## Introduction
@@ -11,11 +11,28 @@ Language Servers is not easily to install. Visual Studio Code provide easy way t
For [vim-plug](https://github.com/junegunn/vim-plug) plugin manager:
```viml
+Plug 'prabirshrestha/async.vim'
+Plug 'prabirshrestha/asyncomplete.vim'
+Plug 'prabirshrestha/asyncomplete-lsp.vim'
+Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
```
+You need to install both [vim-lsp](https://github.com/prabirshrestha/vim-lsp) and its accompanying plugins and vim-lsp-settings.
+
+### Notice
+
+If you use plugin manager that is merging plugins (ex. dein), Please setting stop merging work(ex. dein / merged = 0).
+
+_reason_:
+
+Servers are installed in ./servers directory at the caching area.
+But when rebuild the cache, any merging plugin manager erases old cached files(include ./servers and server execute files) before install.
+
## Usage
+If you install rls already, you can use rls without configurations. But if you not installed rls yet, you can install it by following [this instruction](https://github.com/rust-lang/rls#setup).
+
If you install clangd already, you can use clangd for C/C++ without configurations. But if you install clang with named clangd-6.0, you can replace executable like below:
```vim
@@ -51,7 +68,7 @@ Currently, no way to uninstall/update server. Run this command again, newer vers
| TypeScript | typescript-language-server | Yes |
| JavaScript | javascript-typescript-langserver/typescript-language-server | Yes |
| Python | pyls | Yes |
-| Rust | rls | Yes |
+| Rust | rls | No |
| Go | gopls | Yes |
| Ruby | solargraph | Yes |
| PHP | intelephense | Yes |
@@ -67,6 +84,9 @@ Currently, no way to uninstall/update server. Run this command again, newer vers
| Scala | Metals | Yes |
| Elm | elm-language-server | Yes |
| JSON | json-languageserver | Yes |
+| Swift | sourcekit-lsp | No |
+| COBOL | cobol-language-support | Yes |
+| Reason | reason-language-server | Yes |
## License
diff --git a/autoload/lsp_settings.vim b/autoload/lsp_settings.vim
index d681b01..1685bce 100644
--- a/autoload/lsp_settings.vim
+++ b/autoload/lsp_settings.vim
@@ -68,3 +68,11 @@ function! lsp_settings#exec_path(cmd) abort
endif
return ''
endfunction
+
+function! lsp_settings#root_uri(pattern) abort
+ let l:dir = lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), a:pattern)
+ if empty(l:dir)
+ return lsp#utils#get_default_root_uri()
+ endif
+ return lsp#utils#path_to_uri(l:dir)
+endfunction
diff --git a/installer/install-bash-language-server.cmd b/installer/install-bash-language-server.cmd
index 1976dc4..eef3e5e 100644
--- a/installer/install-bash-language-server.cmd
+++ b/installer/install-bash-language-server.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install bash-language-server bash-language-server
+@echo off
+
+cd /d %~dp0
+
+call npm_install bash-language-server bash-language-server
diff --git a/installer/install-clojure-lsp.cmd b/installer/install-clojure-lsp.cmd
index 26754b4..4f667f6 100644
--- a/installer/install-clojure-lsp.cmd
+++ b/installer/install-clojure-lsp.cmd
@@ -1,7 +1,12 @@
-@echo off
-
-cd %~dp0
-if exist "..\servers\clojure-lsp" rd /S /Q "..\servers\clojure-lsp"
-md "..\servers\clojure-lsp"
-cd "..\servers\clojure-lsp"
-curl -L -o clojure-lsp.cmd https://github.com/snoe/clojure-lsp/releases/download/release-20191202T142318/clojure-lsp
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\clojure-lsp
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -L -o clojure-lsp.cmd https://github.com/snoe/clojure-lsp/releases/download/release-20191202T142318/clojure-lsp
diff --git a/installer/install-cobol-language-support.cmd b/installer/install-cobol-language-support.cmd
new file mode 100644
index 0000000..39959a1
--- /dev/null
+++ b/installer/install-cobol-language-support.cmd
@@ -0,0 +1,23 @@
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set installer_dir=%cd%
+set server_dir=..\servers\cobol-language-support
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+set version=0.9.1
+set url=https://github.com/eclipse/che-che4z-lsp-for-cobol/releases/download/%version%/cobol-language-support-%version%.vsix
+curl -LO "%url%"
+call %installer_dir%\run_unzip "cobol-language-support-%version%.vsix"
+
+echo @echo off ^
+
+java "-Dline.speparator=\r\n" -jar "%%~dp0\extension\server\lsp-service-cobol-%version%.jar" pipeEnabled ^
+
+> cobol-language-support.cmd
+
diff --git a/installer/install-cobol-language-support.sh b/installer/install-cobol-language-support.sh
new file mode 100755
index 0000000..f87e1c3
--- /dev/null
+++ b/installer/install-cobol-language-support.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+cd $(dirname $0)
+
+server_dir="../servers/cobol-language-support"
+[ -d "$server_dir" ] && rm -rf "$server_dir"
+mkdir "$server_dir" && cd "$server_dir"
+
+version="0.9.1"
+url="https://github.com/eclipse/che-che4z-lsp-for-cobol/releases/download/$version/cobol-language-support-$version.vsix"
+curl -LO "$url"
+unzip "cobol-language-support-$version.vsix"
+
+cat <<EOF >./cobol-language-support
+#!/bin/sh
+DIR=\$(cd \$(dirname \$0); pwd)
+java "-Dline.speparator=\r\n" -jar "\$DIR/extension/server/lsp-service-cobol-$version.jar" pipeEnabled
+EOF
+
+chmod +x ./cobol-language-support
diff --git a/installer/install-css-languageserver.cmd b/installer/install-css-languageserver.cmd
index 79de653..529bb74 100644
--- a/installer/install-css-languageserver.cmd
+++ b/installer/install-css-languageserver.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install css-languageserver vscode-css-languageserver-bin
+@echo off
+
+cd /d %~dp0
+
+call npm_install css-languageserver vscode-css-languageserver-bin
diff --git a/installer/install-docker-langserver.cmd b/installer/install-docker-langserver.cmd
index fd16f67..d4112c3 100644
--- a/installer/install-docker-langserver.cmd
+++ b/installer/install-docker-langserver.cmd
@@ -1,6 +1,6 @@
-@echo off
-
-cd %~dp0
-
-call npm_install docker-langserver dockerfile-language-server-nodejs
-
+@echo off
+
+cd /d %~dp0
+
+call npm_install docker-langserver dockerfile-language-server-nodejs
+
diff --git a/installer/install-eclipse-jdt-ls.cmd b/installer/install-eclipse-jdt-ls.cmd
index d4a5baa..7a8c1db 100644
--- a/installer/install-eclipse-jdt-ls.cmd
+++ b/installer/install-eclipse-jdt-ls.cmd
@@ -1,9 +1,14 @@
@echo off
-cd %~dp0
-if exist "..\servers\eclipse-jdt-ls" rd /S /Q "..\servers\eclipse-jdt-ls"
-md "..\servers\eclipse-jdt-ls"
-cd "..\servers\eclipse-jdt-ls"
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\eclipse-jdt-ls
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
curl -o "jdt-language-server-latest.tar.gz" "http://download.eclipse.org/jdtls/snapshots/jdt-language-server-latest.tar.gz"
curl -o "lombok.jar" "https://projectlombok.org/downloads/lombok.jar"
tar xvf jdt-language-server-latest.tar.gz
diff --git a/installer/install-elm-language-server.cmd b/installer/install-elm-language-server.cmd
index 9b58339..ae36144 100644
--- a/installer/install-elm-language-server.cmd
+++ b/installer/install-elm-language-server.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install elm-language-server "@elm-tooling/elm-language-server"
+@echo off
+
+cd /d %~dp0
+
+call npm_install elm-language-server "@elm-tooling/elm-language-server"
diff --git a/installer/install-emmylua-ls.cmd b/installer/install-emmylua-ls.cmd
index afbe34e..6c74ae1 100644
--- a/installer/install-emmylua-ls.cmd
+++ b/installer/install-emmylua-ls.cmd
@@ -1,14 +1,19 @@
-@echo off
-
-cd %~dp0
-if exist "..\servers\emmylua-ls" rd /S /Q "..\servers\emmylua-ls"
-md "..\servers\emmylua-ls"
-cd "..\servers\emmylua-ls"
-curl -L -o EmmyLua-LS-all.jar "https://ci.appveyor.com/api/buildjobs/54yf9rjvj49494pd/artifacts/EmmyLua-LS%%2Fbuild%%2Flibs%%2FEmmyLua-LS-all.jar"
-
-echo @echo off ^
-
-java -cp %%~dp0/EmmyLua-LS-all.jar com.tang.vscode.MainKt ^
-
-> emmylua-ls.cmd
-
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\emmylua-ls
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -L -o EmmyLua-LS-all.jar "https://ci.appveyor.com/api/buildjobs/54yf9rjvj49494pd/artifacts/EmmyLua-LS%%2Fbuild%%2Flibs%%2FEmmyLua-LS-all.jar"
+
+echo @echo off ^
+
+java -cp %%~dp0/EmmyLua-LS-all.jar com.tang.vscode.MainKt ^
+
+> emmylua-ls.cmd
+
diff --git a/installer/install-fortls.cmd b/installer/install-fortls.cmd
index 89648e6..32251aa 100644
--- a/installer/install-fortls.cmd
+++ b/installer/install-fortls.cmd
@@ -1,6 +1,6 @@
-@echo off
-
-cd %~dp0
-
-call pip_install fortls fortran-language-server
-
+@echo off
+
+cd /d %~dp0
+
+call pip_install fortls fortran-language-server
+
diff --git a/installer/install-gopls.cmd b/installer/install-gopls.cmd
index 2862abe..9c08e36 100644
--- a/installer/install-gopls.cmd
+++ b/installer/install-gopls.cmd
@@ -1,12 +1,15 @@
-@echo off
-
-setlocal
-
-cd %~dp0
-if exist "..\servers\gopls" rd /S /Q "..\servers\gopls"
-md "..\servers\gopls"
-cd "..\servers\gopls"
-set GOPATH=%cd%
-set GOBIN=%cd%
-go get -v -u golang.org/x/tools/cmd/gopls
-rd /S /Q "src"
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\gopls
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+set GOPATH=%cd%
+set GOBIN=%cd%
+go get -v -u golang.org/x/tools/cmd/gopls
+rd /S /Q "src"
diff --git a/installer/install-html-languageserver.cmd b/installer/install-html-languageserver.cmd
index 0f17784..943ebf5 100644
--- a/installer/install-html-languageserver.cmd
+++ b/installer/install-html-languageserver.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install html-languageserver vscode-json-languageserver-bin
+@echo off
+
+cd /d %~dp0
+
+call npm_install html-languageserver vscode-json-languageserver-bin
diff --git a/installer/install-intelephense.cmd b/installer/install-intelephense.cmd
index 72e55c7..6258852 100644
--- a/installer/install-intelephense.cmd
+++ b/installer/install-intelephense.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install intelephense intelephense
+@echo off
+
+cd /d %~dp0
+
+call npm_install intelephense intelephense
diff --git a/installer/install-javascript-typescript-langserver.cmd b/installer/install-javascript-typescript-langserver.cmd
index 3ddc2da..a653ada 100644
--- a/installer/install-javascript-typescript-langserver.cmd
+++ b/installer/install-javascript-typescript-langserver.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install javascript-typescript-langserver javascript-typescript-langserver
+@echo off
+
+cd /d %~dp0
+
+call npm_install javascript-typescript-langserver javascript-typescript-langserver
diff --git a/installer/install-json-languageserver.cmd b/installer/install-json-languageserver.cmd
index 8e76105..06b7bb2 100644
--- a/installer/install-json-languageserver.cmd
+++ b/installer/install-json-languageserver.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install json-languageserver vscode-json-languageserver-bin
+@echo off
+
+cd /d %~dp0
+
+call npm_install json-languageserver vscode-json-languageserver-bin
diff --git a/installer/install-kotlin-language-server.cmd b/installer/install-kotlin-language-server.cmd
index 84d5cbf..11d141c 100644
--- a/installer/install-kotlin-language-server.cmd
+++ b/installer/install-kotlin-language-server.cmd
@@ -1,11 +1,17 @@
@echo off
-cd %~dp0
-if exist "..\servers\kotlin-language-server" rd /S /Q "..\servers\kotlin-language-server"
-md "..\servers\kotlin-language-server"
-cd "..\servers\kotlin-language-server"
+setlocal
+
+cd /d %~dp0
+
+set installer_dir=%cd%
+set server_dir=..\servers\kotlin-language-server
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
curl -L -o server.zip "https://github.com/fwcd/kotlin-language-server/releases/download/0.5.2/server.zip"
-unzip server.zip
+call %installer_dir%\run_unzip server.zip
del server.zip
echo @echo off ^
diff --git a/installer/install-lsp4xml.cmd b/installer/install-lsp4xml.cmd
index 966a3b7..e85b269 100644
--- a/installer/install-lsp4xml.cmd
+++ b/installer/install-lsp4xml.cmd
@@ -1,14 +1,19 @@
-@echo off
-
-cd %~dp0
-if exist "..\servers\lsp4xml" rd /S /Q "..\servers\lsp4xml"
-md "..\servers\lsp4xml"
-cd "..\servers\lsp4xml"
-curl -LO "https://dl.bintray.com/lsp4xml/releases/org/lsp4xml/org.eclipse.lsp4xml/0.9.1/org.eclipse.lsp4xml-0.9.1-uber.jar"
-
-echo @echo off ^
-
-java -jar %%~dp0\org.eclipse.lsp4xml-0.9.1-uber.jar ^
-
-> lsp4xml.cmd
-
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\lsp4xml
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -LO "https://dl.bintray.com/lsp4xml/releases/org/lsp4xml/org.eclipse.lsp4xml/0.9.1/org.eclipse.lsp4xml-0.9.1-uber.jar"
+
+echo @echo off ^
+
+java -jar %%~dp0\org.eclipse.lsp4xml-0.9.1-uber.jar ^
+
+> lsp4xml.cmd
+
diff --git a/installer/install-metals.cmd b/installer/install-metals.cmd
index 8d290cf..decf44c 100644
--- a/installer/install-metals.cmd
+++ b/installer/install-metals.cmd
@@ -1,16 +1,16 @@
-@echo off
-
-setlocal
-
-cd %~dp0
-
-set server_dir="..\servers\metals"
-rd /Q /S %server_dir%
-md %server_dir%
-cd "%server_dir%"
-
-curl -Lo coursier https://git.io/coursier-cli
-curl -Lo coursier.bat https://git.io/coursier-bat
-
-set version="0.7.6"
-java %JAVA_OPTS% -jar coursier bootstrap --ttl Inf "org.scalameta:metals_2.12:%version%" -r "bintray:scalacenter/releases" -r "sonatype:public" -r "sonatype:snapshots" -o metals
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\metals
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -Lo coursier https://git.io/coursier-cli
+curl -Lo coursier.bat https://git.io/coursier-bat
+
+set version="0.7.6"
+java %JAVA_OPTS% -jar coursier bootstrap --ttl Inf "org.scalameta:metals_2.12:%version%" -r "bintray:scalacenter/releases" -r "sonatype:public" -r "sonatype:snapshots" -o metals
diff --git a/installer/install-omnisharp-lsp.cmd b/installer/install-omnisharp-lsp.cmd
index 253936a..dd4efac 100644
--- a/installer/install-omnisharp-lsp.cmd
+++ b/installer/install-omnisharp-lsp.cmd
@@ -1,15 +1,22 @@
-@echo off
-
-cd %~dp0
-if exist "..\servers\omnisharp-lsp" rd /S /Q "..\servers\omnisharp-lsp"
-md "..\servers\omnisharp-lsp"
-cd "..\servers\omnisharp-lsp"
-curl -L -o omnisharp-win-x64.zip "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v1.34.9/omnisharp-win-x64.zip"
-unzip omnisharp-win-x64.zip
-del omnisharp-win-x64.zip
-
-echo @echo off ^
-
-%%~dp0\omnisharp.exe %%* ^
-
-> omnisharp-lsp.cmd
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set installer_dir=%cd%
+set server_dir=..\servers\omnisharp-lsp
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -L -o omnisharp-win-x64.zip "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v1.34.9/omnisharp-win-x64.zip"
+call %installer_dir%\run_unzip omnisharp-win-x64.zip
+del omnisharp-win-x64.zip
+
+echo @echo off ^
+
+%%~dp0\omnisharp.exe %%* ^
+
+> omnisharp-lsp.cmd
+
diff --git a/installer/install-pyls.cmd b/installer/install-pyls.cmd
index 7b62104..bbdfefd 100644
--- a/installer/install-pyls.cmd
+++ b/installer/install-pyls.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call pip_install pyls python-language-server
+@echo off
+
+cd /d %~dp0
+
+call pip_install pyls python-language-server
diff --git a/installer/install-reason-language-server.cmd b/installer/install-reason-language-server.cmd
new file mode 100644
index 0000000..1aa9aa8
--- /dev/null
+++ b/installer/install-reason-language-server.cmd
@@ -0,0 +1,18 @@
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set installer_dir=%cd%
+set server_dir=..\servers\reason-language-server
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -L -o rls-windows.zip "https://github.com/jaredly/reason-language-server/releases/download/1.7.4/rls-windows.zip"
+call %installer_dir%\run_unzip rls-windows.zip
+del rls-windows.zip
+
+move rls-windows\reason-language-server.exe reason-language-server.exe
+rmdir rls-windows
diff --git a/installer/install-reason-language-server.sh b/installer/install-reason-language-server.sh
new file mode 100755
index 0000000..78df09c
--- /dev/null
+++ b/installer/install-reason-language-server.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+set -e
+
+cd $(dirname $0)
+
+server_dir="../servers/reason-language-server"
+[ -d $server_dir ] && rm -rf $server_dir
+mkdir $server_dir && cd $server_dir
+
+os=$(uname -s | tr "[:upper:]" "[:lower:]")
+
+case $os in
+linux) ;;
+darwin)
+ os="macos"
+ ;;
+*)
+ printf "%s doesn't supported by bash installer" "$os"
+ exit 1
+ ;;
+esac
+
+version="1.7.4"
+url="https://github.com/jaredly/reason-language-server/releases/download/$version/rls-$os.zip"
+curl -LO "$url"
+unzip "rls-$os.zip"
+
+ln -s "./rls-$os/reason-language-server" .
diff --git a/installer/install-rls.cmd b/installer/install-rls.cmd
deleted file mode 100644
index eb7900a..0000000
--- a/installer/install-rls.cmd
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-
-setlocal
-
-cd %~dp0
-if exist "..\servers\rls" rd /S /Q "..\servers\rls"
-md "..\servers\rls"
-cd "..\servers\rls"
-set CARGO_HOME=%cd%
-cargo install rls
-copy bin\rls.exe .
-rd /S /Q "bin"
-rd /S /Q "registry"
-del .package-cache
-del .crates.toml
diff --git a/installer/install-rls.sh b/installer/install-rls.sh
deleted file mode 100755
index ab310ff..0000000
--- a/installer/install-rls.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-set -e
-
-cd $(dirname $0)
-[ -d ../servers/rls ] && rm -rf ../servers/rls
-mkdir ../servers/rls
-cd ../servers/rls
-CARGO_HOME=$(pwd) cargo install rls
-cp bin/rls .
-rm -rf bin registry .package-cache .crates.toml
diff --git a/installer/install-solargraph.cmd b/installer/install-solargraph.cmd
index 9f7c973..fe7f6d8 100644
--- a/installer/install-solargraph.cmd
+++ b/installer/install-solargraph.cmd
@@ -1,16 +1,21 @@
-@echo off
-
-cd %~dp0
-if exist "..\servers\solargraph" rd /S /Q "..\servers\solargraph"
-md "..\servers\solargraph"
-cd "..\servers\solargraph"
-git clone "https://github.com/castwide/solargraph" .
-
-call bundle install --path vendor/bundle
-
-echo @echo off ^
-
-bundle exec ruby %%~dp0\bin/solargraph stdio ^
-
-> solargraph.cmd
-
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\solargraph
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+git clone "https://github.com/castwide/solargraph" .
+
+call bundle install --path vendor/bundle
+
+echo @echo off ^
+
+bundle exec ruby %%~dp0\bin/solargraph stdio ^
+
+> solargraph.cmd
+
diff --git a/installer/install-terraform-lsp.cmd b/installer/install-terraform-lsp.cmd
index 4903513..3c94999 100644
--- a/installer/install-terraform-lsp.cmd
+++ b/installer/install-terraform-lsp.cmd
@@ -1,7 +1,12 @@
-@echo off
-
-cd %~dp0
-if exist "..\servers\terraform-lsp" rd /S /Q "..\servers\terraform-lsp"
-md "..\servers\terraform-lsp"
-cd "..\servers\terraform-lsp"
-curl -L "https://github.com/juliosueiras/terraform-lsp/releases/download/v0.0.9/terraform-lsp_0.0.9_windows_amd64.tar.gz" | tar xz
+@echo off
+
+setlocal
+
+cd /d %~dp0
+
+set server_dir=..\servers\terraform-lsp
+if exist %server_dir% rd /Q /S "%server_dir%"
+md "%server_dir%"
+cd /d "%server_dir%"
+
+curl -L "https://github.com/juliosueiras/terraform-lsp/releases/download/v0.0.9/terraform-lsp_0.0.9_windows_amd64.tar.gz" | tar xz
diff --git a/installer/install-typescript-language-server.cmd b/installer/install-typescript-language-server.cmd
index fea8393..1f8dc85 100644
--- a/installer/install-typescript-language-server.cmd
+++ b/installer/install-typescript-language-server.cmd
@@ -1,5 +1,6 @@
-@echo off
-
-cd %~dp0
-
-call npm_install typescript-language-server typescript-language-server
+@echo off
+
+cd /d %~dp0
+
+call npm_install tsserver typescript
+call npm_install typescript-language-server typescript-language-server
diff --git a/installer/install-typescript-language-server.sh b/installer/install-typescript-language-server.sh
index 7669018..a34ea58 100755
--- a/installer/install-typescript-language-server.sh
+++ b/installer/install-typescript-language-server.sh
@@ -5,4 +5,5 @@ set -e
cd $(dirname $0)
. ./npm.sh
+npm_install tsserver typescript
npm_install typescript-language-server typescript-language-server
diff --git a/installer/install-vim-language-server.cmd b/installer/install-vim-language-server.cmd
index 14ad1bc..c2a1d55 100644
--- a/installer/install-vim-language-server.cmd
+++ b/installer/install-vim-language-server.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install vim-language-server vim-language-server
+@echo off
+
+cd /d %~dp0
+
+call npm_install vim-language-server vim-language-server
diff --git a/installer/install-yaml-language-server.cmd b/installer/install-yaml-language-server.cmd
index 6d404c6..043e388 100644
--- a/installer/install-yaml-language-server.cmd
+++ b/installer/install-yaml-language-server.cmd
@@ -1,5 +1,5 @@
-@echo off
-
-cd %~dp0
-
-call npm_install yaml-language-server yaml-language-server
+@echo off
+
+cd /d %~dp0
+
+call npm_install yaml-language-server yaml-language-server
diff --git a/installer/npm.sh b/installer/npm.sh
index c1ec529..19e4e11 100644
--- a/installer/npm.sh
+++ b/installer/npm.sh
@@ -8,7 +8,7 @@ set -e
npm_install() {
server_dir="../servers/$1"
[ -d "$server_dir" ] && rm -rf "$server_dir"
- mkdir "$server_dir" && cd "$server_dir"
+ mkdir "$server_dir" && pushd . > /dev/null && cd "$server_dir"
npm init -y
@@ -20,4 +20,6 @@ EOF
npm install "$2"
ln -s "./node_modules/.bin/$1" .
+
+ popd > /dev/null
}
diff --git a/installer/npm_install.cmd b/installer/npm_install.cmd
index d17c974..caea4a8 100644
--- a/installer/npm_install.cmd
+++ b/installer/npm_install.cmd
@@ -1,21 +1,23 @@
-@echo off
-
-if "x%1" equ "x" goto :EOF
-if "x%2" equ "x" goto :EOF
-
-set server_dir="..\servers\%1"
-rd /Q /S "%server_dir%" 2>NUL
-md "%server_dir%"
-cd "%server_dir%"
-
-call npm init -y
-
-echo {"name":""}>package.json
-
-call npm install "%2"
-
-echo @echo off ^
-
-call %%~dp0\node_modules\.bin\%1.cmd %%* ^
-
-> %1.cmd
+@echo off
+
+if "x%1" equ "x" goto :EOF
+if "x%2" equ "x" goto :EOF
+
+set server_dir=..\servers\%1
+if exist "%server_dir%" rd /Q /S "%server_dir%"
+md "%server_dir%"
+pushd .
+cd /d "%server_dir%"
+
+call npm init -y
+
+echo {"name":""}>package.json
+
+call npm install "%2"
+
+echo @echo off ^
+
+call %%~dp0\node_modules\.bin\%1.cmd %%* ^
+
+> %1.cmd
+popd
diff --git a/installer/run_unzip.cmd b/installer/run_unzip.cmd
new file mode 100644
index 0000000..1815a90
--- /dev/null
+++ b/installer/run_unzip.cmd
@@ -0,0 +1,9 @@
+@echo off
+
+if "x%1" equ "x" goto :EOF
+
+where unzip 2>NUL
+if %ERRORLEVEL% neq 0 (
+ curl -L -o %~dp0\unzip.exe https://github.com/mattn/vim-lsp-settings/releases/download/v0.0.1/unzip.exe
+)
+%~dp0\unzip "%1"
diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim
index 9c1985d..412b6f3 100644
--- a/plugin/lsp_settings.vim
+++ b/plugin/lsp_settings.vim
@@ -130,49 +130,61 @@ function! s:vimlsp_settings_get(name, key, default) abort
endfunction
function! s:vimlsp_setting() abort
+ for l:ft in keys(s:settings)
+ if has_key(g:, 'lsp_settings_whitelist') && index(g:lsp_settings_whitelist, l:ft) == -1 || empty(s:settings[l:ft])
+ continue
+ endif
+ exe 'augroup' s:load_or_suggest_group_name(l:ft)
+ au!
+ exe 'autocmd FileType' l:ft 'call s:vimlsp_load_or_suggest(' string(l:ft) ')'
+ augroup END
+ endfor
+endfunction
+
+function! s:vimlsp_load_or_suggest(ft) abort
+ let l:group_name = s:load_or_suggest_group_name(a:ft)
+ exe 'augroup' l:group_name
+ au!
+ augroup END
+ exe 'augroup!' l:group_name
+
if has('patch-8.1.1113')
command! -nargs=1 LspRegisterServer autocmd User lsp_setup ++once call lsp#register_server(<args>)
else
command! -nargs=1 LspRegisterServer autocmd User lsp_setup call lsp#register_server(<args>)
endif
- for l:ft in keys(s:settings)
- if has_key(g:, 'lsp_settings_whitelist') && index(g:lsp_settings_whitelist, l:ft) == -1
- continue
- endif
- let l:found = 0
- if empty(s:settings[l:ft])
- continue
+ let l:found = 0
+
+ for l:server in s:settings[a:ft]
+ let l:command = s:vimlsp_settings_get(l:server.command, 'cmd', l:server.command)
+ if type(l:command) == type([])
+ let l:command = l:command[0]
endif
- for l:server in s:settings[l:ft]
- let l:command = s:vimlsp_settings_get(l:server.command, 'cmd', l:server.command)
- if type(l:command) == type([])
- let l:command = l:command[0]
- endif
- if s:executable(l:command)
- let l:script = printf('%s/%s.vim', s:settings_dir, l:server.command)
- if filereadable(l:script)
- exe 'source' l:script
- let l:found += 1
- break
- endif
+ if s:executable(l:command)
+ let l:script = printf('%s/%s.vim', s:settings_dir, l:server.command)
+ if filereadable(l:script)
+ exe 'source' l:script
+ let l:found += 1
+ break
endif
- endfor
- if l:found ==# 0
- exe printf('augroup vimlsp_suggest_%s', l:ft)
- au!
- if has('patch-8.1.1113')
- exe printf('autocmd FileType %s ++once call s:vimlsp_settings_suggest()', l:ft)
- else
- exe printf('autocmd FileType %s call s:vimlsp_settings_suggest()', l:ft)
- endif
- augroup END
- elseif !empty(s:vimlsp_installer())
- command! -buffer LspInstallServer call s:vimlsp_install_server()
endif
endfor
+ if l:found ==# 0
+ call s:vimlsp_settings_suggest()
+ else
+ doautocmd User lsp_setup
+ if !exists(':LspInstallServer')
+ command! -buffer LspInstallServer call s:vimlsp_install_server()
+ endif
+ endif
+
delcommand LspRegisterServer
endfunction
+function! s:load_or_suggest_group_name(ft) abort
+ return printf('vimlsp_suggest_%s', a:ft)
+endfunction
+
call s:vimlsp_setting()
diff --git a/settings.json b/settings.json
index 27d76d6..bf6c978 100644
--- a/settings.json
+++ b/settings.json
@@ -5,91 +5,109 @@
"requires": []
}
],
- "cpp": [
+ "clojure": [
{
- "command": "clangd",
+ "command": "clojure-lsp",
"requires": []
}
],
- "clojure": [
+ "cobol": [
{
- "command": "clojure-lsp",
+ "command": "cobol-language-support",
+ "requires": [
+ "java"
+ ]
+ }
+ ],
+ "cpp": [
+ {
+ "command": "clangd",
"requires": []
}
],
- "typescript": [
+ "cs": [
{
- "command": "typescript-language-server",
+ "command": "omnisharp-lsp",
"requires": [
"npm"
]
}
],
- "javascript": [
+ "css": [
{
- "command": "javascript-typescript-langserver",
+ "command": "css-languageserver",
"requires": [
"npm"
]
- },
+ }
+ ],
+ "dockerfile": [
{
- "command": "typescript-language-server",
+ "command": "docker-langserver",
"requires": [
"npm"
]
}
],
- "python": [
+ "elm": [
{
- "command": "pyls",
+ "command": "elm-language-server",
"requires": [
- "py"
+ "npm"
]
- },
+ }
+ ],
+ "fortran": [
{
- "command": "pyls",
+ "command": "fortls",
"requires": [
"python3"
]
}
],
- "rust": [
+ "go": [
{
- "command": "rls",
+ "command": "gopls",
"requires": [
- "rustup"
+ "go"
]
}
],
- "go": [
+ "html": [
{
- "command": "gopls",
+ "command": "html-languageserver",
"requires": [
- "go"
+ "npm"
]
}
],
- "ruby": [
+ "java": [
{
- "command": "solargraph",
+ "command": "eclipse-jdt-ls",
"requires": [
- "gem"
+ "java"
]
}
],
- "php": [
+ "javascript": [
{
- "command": "intelephense",
+ "command": "javascript-typescript-langserver",
+ "requires": [
+ "npm"
+ ]
+ },
+ {
+ "command": "typescript-language-server",
"requires": [
"npm"
]
}
],
- "java": [
+ "json": [
{
- "command": "eclipse-jdt-ls",
+ "command": "json-languageserver",
"requires": [
- "java"
+ "npm"
]
}
],
@@ -101,6 +119,14 @@
]
}
],
+ "less": [
+ {
+ "command": "css-languageserver",
+ "requires": [
+ "npm"
+ ]
+ }
+ ],
"lua": [
{
"command": "emmylua-ls",
@@ -109,103 +135,113 @@
]
}
],
- "vim": [
+ "php": [
{
- "command": "vim-language-server",
+ "command": "intelephense",
"requires": [
"npm"
]
}
],
- "html": [
+ "python": [
{
- "command": "html-languageserver",
+ "command": "pyls",
"requires": [
- "npm"
+ "py"
]
- }
- ],
- "css": [
+ },
{
- "command": "css-languageserver",
+ "command": "pyls",
"requires": [
- "npm"
+ "python3"
]
}
],
- "cs": [
+ "reason": [
{
- "command": "omnisharp-lsp",
+ "command": "reason-language-server",
+ "requires": []
+ }
+ ],
+ "ruby": [
+ {
+ "command": "solargraph",
"requires": [
- "npm"
+ "gem"
]
}
],
- "terraform": [
+ "rust": [
{
- "command": "terraform-lsp",
+ "command": "rls",
"requires": []
}
],
- "dockerfile": [
+ "sass": [
{
- "command": "docker-langserver",
+ "command": "css-languageserver",
"requires": [
"npm"
]
}
],
- "sh": [
+ "scala": [
{
- "command": "bash-language-server",
+ "command": "metals",
"requires": [
- "npm"
+ "java"
]
}
],
- "yaml": [
+ "sh": [
{
- "command": "yaml-language-server",
+ "command": "bash-language-server",
"requires": [
"npm"
]
}
],
- "xml": [
+ "swift": [
{
- "command": "lsp4xml",
+ "command": "sourcekit-lsp",
"requires": [
- "java"
+ "sourcekit-lsp"
]
}
],
- "fortran": [
+ "terraform": [
{
- "command": "fortls",
+ "command": "terraform-lsp",
+ "requires": []
+ }
+ ],
+ "typescript": [
+ {
+ "command": "typescript-language-server",
"requires": [
- "python3"
+ "npm"
]
}
],
- "scala": [
+ "vim": [
{
- "command": "metals",
+ "command": "vim-language-server",
"requires": [
- "java"
+ "npm"
]
}
],
- "elm": [
+ "xml": [
{
- "command": "elm-language-server",
+ "command": "lsp4xml",
"requires": [
- "npm"
+ "java"
]
}
],
- "json": [
+ "yaml": [
{
- "command": "json-languageserver",
+ "command": "yaml-language-server",
"requires": [
"npm"
]
diff --git a/settings/bash-language-server.vim b/settings/bash-language-server.vim
index a7e28da..b1a7f9a 100644
--- a/settings/bash-language-server.vim
+++ b/settings/bash-language-server.vim
@@ -3,7 +3,8 @@ augroup vimlsp_settings_bash_language_server
LspRegisterServer {
\ 'name': 'bash-language-server',
\ 'cmd': {server_info->lsp_settings#get('bash-language-server', 'cmd', [lsp_settings#exec_path('bash-language-server'), 'start'])},
- \ 'root_uri':{server_info->lsp_settings#get('bash-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('bash-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))},
+ \ 'initialization_options': lsp_settings#get('bash-language-server', 'initialization_options', v:null),
\ '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', {}),
diff --git a/settings/clangd.vim b/settings/clangd.vim
index 26632a9..a593dfb 100644
--- a/settings/clangd.vim
+++ b/settings/clangd.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_clangd
LspRegisterServer {
\ 'name': 'clangd',
\ 'cmd': {server_info->lsp_settings#get('clangd', 'cmd', [lsp_settings#exec_path('clangd')])},
- \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))},
+ \ 'root_uri':{server_info->lsp_settings#get('clangd', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('clangd', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('clangd', 'whitelist', ['c', 'cpp', 'objc', 'objcpp']),
\ 'blacklist': lsp_settings#get('clangd', 'blacklist', []),
diff --git a/settings/clojure-lsp.vim b/settings/clojure-lsp.vim
index 8f727fe..f50e637 100644
--- a/settings/clojure-lsp.vim
+++ b/settings/clojure-lsp.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_clojure_lsp
LspRegisterServer {
\ 'name': 'clojure-lsp',
\ 'cmd': {server_info->lsp_settings#get('clojure-lsp', 'cmd', [lsp_settings#exec_path('clojure-lsp')])},
- \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))},
+ \ 'root_uri':{server_info->lsp_settings#get('clojure-lsp', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('clojure-lsp', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('clojure-lsp', 'whitelist', ['clojure']),
\ 'blacklist': lsp_settings#get('clojure-lsp', 'blacklist', []),
diff --git a/settings/cobol-language-support.vim b/settings/cobol-language-support.vim
new file mode 100644
index 0000000..57df026
--- /dev/null
+++ b/settings/cobol-language-support.vim
@@ -0,0 +1,13 @@
+augroup vimlsp_settings_cobol_language_support
+ au!
+ LspRegisterServer {
+ \ 'name': 'cobol-language-support',
+ \ 'cmd': {server_info->lsp_settings#get('cobol-language-support', 'cmd', [lsp_settings#exec_path('cobol-language-support')])},
+ \ 'root_uri':{server_info->lsp_settings#get('cobol-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))},
+ \ 'initialization_options': lsp_settings#get('cobol-language-support', 'initialization_options', {}),
+ \ 'whitelist': lsp_settings#get('cobol-language-support', 'whitelist', ['cobol']),
+ \ 'blacklist': lsp_settings#get('cobol-language-support', 'blacklist', []),
+ \ 'config': lsp_settings#get('cobol-language-support', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('cobol-language-support', 'workspace_config', {}),
+ \ }
+augroup END
diff --git a/settings/css-languageserver.vim b/settings/css-languageserver.vim
index 215e7e9..9fdfb5f 100644
--- a/settings/css-languageserver.vim
+++ b/settings/css-languageserver.vim
@@ -3,11 +3,14 @@ augroup vimlsp_settings_css_languageserver
LspRegisterServer {
\ 'name': 'css-languageserver',
\ 'cmd': {server_info->lsp_settings#get('css-languageserver', 'cmd', [lsp_settings#exec_path('css-languageserver'), '--stdio'])},
- \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))},
+ \ 'root_uri':{server_info->lsp_settings#get('css-languageserver', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('css-languageserver', 'initialization_options', v:null),
- \ 'whitelist': lsp_settings#get('css-languageserver', 'whitelist', ['css']),
+ \ 'whitelist': lsp_settings#get('css-languageserver', 'whitelist', ['css', 'less', 'sass']),
\ 'blacklist': lsp_settings#get('css-languageserver', 'blacklist', []),
\ 'config': lsp_settings#get('css-languageserver', 'config', {}),
- \ 'workspace_config': lsp_settings#get('css-languageserver', 'workspace_config', {'css': {'lint': {'validProperties': []}}}),
- \ }
+ \ 'workspace_config': lsp_settings#get('css-languageserver', 'workspace_config', {
+ \ 'css': {'lint': {'validProperties': []}},
+ \ 'less': {'lint': {'validProperties': []}},
+ \ 'sass': {'lint': {'validProperties': []}},
+ \ })}
augroup END
diff --git a/settings/docker-langserver.vim b/settings/docker-langserver.vim
index 7fbf78c..c8e4443 100644
--- a/settings/docker-langserver.vim
+++ b/settings/docker-langserver.vim
@@ -3,7 +3,8 @@ augroup vimlsp_settings_dockerfile_language_server_nodejs
LspRegisterServer {
\ 'name': 'docker-langserver',
\ 'cmd': {server_info->lsp_settings#get('docker-langserver', 'cmd', [lsp_settings#exec_path('docker-langserver'), '--stdio'])},
- \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))},
+ \ 'root_uri':{server_info->lsp_settings#get('docker-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))},
+ \ 'initialization_options': lsp_settings#get('docker-langserver', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('docker-langserver', 'whitelist', ['dockerfile']),
\ 'blacklist': lsp_settings#get('docker-langserver', 'blacklist', []),
\ 'config': lsp_settings#get('docker-langserver', 'config', {}),
diff --git a/settings/eclipse-jdt-ls.vim b/settings/eclipse-jdt-ls.vim
index 32f9113..5e72f81 100644
--- a/settings/eclipse-jdt-ls.vim
+++ b/settings/eclipse-jdt-ls.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_eclipse_jdt_ls
LspRegisterServer {
\ 'name': 'eclipse-jdt-ls',
\ 'cmd': {server_info->lsp_settings#get('eclipse-jdt-ls', 'cmd', [lsp_settings#exec_path('eclipse-jdt-ls')])},
- \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))},
+ \ 'root_uri':{server_info->lsp_settings#get('eclipse-jdt-ls', 'root_uri', lsp_settings#root_uri(['.git/', 'pom.xml', 'build.gradle']))},
\ 'initialization_options': lsp_settings#get('eclipse-jdt-ls', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('eclipse-jdt-ls', 'whitelist', ['java']),
\ 'blacklist': lsp_settings#get('eclipse-jdt-ls', 'blacklist', []),
diff --git a/settings/elm-language-server.vim b/settings/elm-language-server.vim
index 6dcedb6..63b25d3 100644
--- a/settings/elm-language-server.vim
+++ b/settings/elm-language-server.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_elm_language_server
LspRegisterServer {
\ 'name': 'elm-language-server',
\ 'cmd': {server_info->lsp_settings#get('elm-language-server', 'cmd', [lsp_settings#exec_path('elm-language-server')])},
- \ 'root_uri':{server_info->lsp_settings#get('elm-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'elm.json'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('elm-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'elm.json']))},
\ 'initialization_options': lsp_settings#get('elm-language-server', 'initialization_options', {'elmPath': 'elm', 'runtime': 'node', 'elmFormatPath': 'elm-format', 'elmTestPath': 'elm-test'}),
\ 'whitelist': lsp_settings#get('elm-language-server', 'whitelist', ['elm', 'elm.tsx']),
\ 'blacklist': lsp_settings#get('elm-language-server', 'blacklist', []),
diff --git a/settings/emmylua-ls.vim b/settings/emmylua-ls.vim
index 92c435c..40af50d 100644
--- a/settings/emmylua-ls.vim
+++ b/settings/emmylua-ls.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_emmylua_ls
LspRegisterServer {
\ 'name': 'emmylua-ls',
\ 'cmd': {server_info->lsp_settings#get('emmylua-ls', 'cmd', [lsp_settings#exec_path('emmylua-ls')])},
- \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))},
+ \ 'root_uri':{server_info->lsp_settings#get('emmylua-ls', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('emmylua-ls', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('emmylua-ls', 'whitelist', ['lua']),
\ 'blacklist': lsp_settings#get('emmylua-ls', 'blacklist', []),
diff --git a/settings/fortls.vim b/settings/fortls.vim
index 3aced00..49a8aff 100644
--- a/settings/fortls.vim
+++ b/settings/fortls.vim
@@ -3,6 +3,7 @@ augroup vimlsp_settings_fortls
LspRegisterServer {
\ 'name': 'fortls',
\ 'cmd': {server_info->lsp_settings#get('fortls', 'cmd', [lsp_settings#exec_path('fortls')])},
+ \ 'root_uri':{server_info->lsp_settings#get('fortls', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('fortls', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('fortls', 'whitelist', ['fortran']),
\ 'blacklist': lsp_settings#get('fortls', 'blacklist', []),
diff --git a/settings/gopls.vim b/settings/gopls.vim
index 86965cc..3a0b93b 100644
--- a/settings/gopls.vim
+++ b/settings/gopls.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_gopls
LspRegisterServer {
\ 'name': 'gopls',
\ 'cmd': {server_info->lsp_settings#get('gopls', 'cmd', [lsp_settings#exec_path('gopls')])},
- \ 'root_uri':{server_info->lsp_settings#get('gopls', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'go.mod'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('gopls', 'root_uri', lsp_settings#root_uri(['.git/', 'go.mod']))},
\ 'initialization_options': lsp_settings#get('gopls', 'initialization_options', {"diagnostics": "true"}),
\ 'whitelist': lsp_settings#get('gopls', 'whitelist', ['go']),
\ 'blacklist': lsp_settings#get('gopls', 'blacklist', []),
diff --git a/settings/html-languageserver.vim b/settings/html-languageserver.vim
index 0273ac6..fe741fb 100644
--- a/settings/html-languageserver.vim
+++ b/settings/html-languageserver.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_html_languageserver
LspRegisterServer {
\ 'name': 'html-languageserver',
\ 'cmd': {server_info->lsp_settings#get('html-languageserver', 'cmd', [lsp_settings#exec_path('html-languageserver'), '--stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('html-langserver', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('html-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('html-languageserver', 'initialization_options', {'embeddedLanguages': {'css': v:true, 'html': v:true}}),
\ 'whitelist': lsp_settings#get('html-languageserver', 'whitelist', ['html']),
\ 'blacklist': lsp_settings#get('html-languageserver', 'blacklist', []),
diff --git a/settings/intelephense.vim b/settings/intelephense.vim
index 4a7c1d5..36f4f07 100644
--- a/settings/intelephense.vim
+++ b/settings/intelephense.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_intelephense_server
LspRegisterServer {
\ 'name': 'intelephense',
\ 'cmd': {server_info->lsp_settings#get('intelephense', 'cmd', [lsp_settings#exec_path('intelephense'), '--stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('intelephense', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('intelephense', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('intelephense', 'initialization_options', {}),
\ 'whitelist': lsp_settings#get('intelephense', 'whitelist', ['php']),
\ 'blacklist': lsp_settings#get('intelephense', 'blacklist', []),
diff --git a/settings/javascript-typescript-langserver.vim b/settings/javascript-typescript-langserver.vim
index 71126da..72afeb0 100644
--- a/settings/javascript-typescript-langserver.vim
+++ b/settings/javascript-typescript-langserver.vim
@@ -3,9 +3,9 @@ augroup vimlsp_settings_javascript_typescript_langserver
LspRegisterServer {
\ 'name': 'javascript-typescript-langserver',
\ 'cmd': {server_info->lsp_settings#get('javascript-typescript-langserver', 'cmd', [lsp_settings#exec_path('javascript-typescript-langserver')])},
- \ 'root_uri':{server_info->lsp_settings#get('javascript-typescript-langserver', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('javascript-typescript-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('javascript-typescript-langserver', 'initialization_options', {"diagnostics": "true"}),
- \ 'whitelist': lsp_settings#get('javascript-typescript-langserver', 'whitelist', ['javascript']),
+ \ 'whitelist': lsp_settings#get('javascript-typescript-langserver', 'whitelist', ['javascript', 'javascriptreact']),
\ 'blacklist': lsp_settings#get('javascript-typescript-langserver', 'blacklist', []),
\ 'config': lsp_settings#get('javascript-typescript-langserver', 'config', {}),
\ 'workspace_config': lsp_settings#get('javascript-typescript-langserver', 'workspace_config', {}),
diff --git a/settings/json-languageserver.vim b/settings/json-languageserver.vim
index 626df64..e1f3375 100644
--- a/settings/json-languageserver.vim
+++ b/settings/json-languageserver.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_json_languageserver
LspRegisterServer {
\ 'name': 'json-languageserver',
\ 'cmd': {server_info->lsp_settings#get('json-languageserver', 'cmd', [lsp_settings#exec_path('json-languageserver'), '--stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('json-langserver', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('json-languageserver', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('json-languageserver', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('json-languageserver', 'whitelist', ['json']),
\ 'blacklist': lsp_settings#get('json-languageserver', 'blacklist', []),
diff --git a/settings/kotlin-language-server.vim b/settings/kotlin-language-server.vim
index 479805b..6909653 100644
--- a/settings/kotlin-language-server.vim
+++ b/settings/kotlin-language-server.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_kotlin_language_server
LspRegisterServer {
\ 'name': 'kotlin-language-server',
\ 'cmd': {server_info->lsp_settings#get('kotlin-language-server', 'cmd', [lsp_settings#exec_path('kotlin-language-server')])},
- \ 'root_uri':{server_info->lsp_settings#get('kotlin-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('kotlin-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('kotlin-language-server', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('kotlin-language-server', 'whitelist', ['kotlin']),
\ 'blacklist': lsp_settings#get('kotlin-language-server', 'blacklist', []),
diff --git a/settings/lsp4xml.vim b/settings/lsp4xml.vim
index 79beafe..a24a0d0 100644
--- a/settings/lsp4xml.vim
+++ b/settings/lsp4xml.vim
@@ -3,7 +3,8 @@ augroup vimlsp_settings_lsp4xml
LspRegisterServer {
\ 'name': 'lsp4xml',
\ 'cmd': {server_info->lsp_settings#get('lsp4xml', 'cmd', [lsp_settings#exec_path('lsp4xml')])},
- \ 'root_uri':{server_info->lsp_settings#get('lsp4xml', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('lsp4xml', 'root_uri', lsp_settings#root_uri(['.git/']))},
+ \ 'initialization_options': lsp_settings#get('lsp4xml', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('lsp4xml', 'whitelist', ['xml']),
\ 'blacklist': lsp_settings#get('lsp4xml', 'blacklist', []),
\ 'config': lsp_settings#get('lsp4xml', 'config', {}),
diff --git a/settings/metals.vim b/settings/metals.vim
index 55b6981..70f28d8 100644
--- a/settings/metals.vim
+++ b/settings/metals.vim
@@ -3,7 +3,8 @@ augroup vimlsp_settings_metals
LspRegisterServer {
\ 'name': 'metals',
\ 'cmd': {server_info->lsp_settings#get('metals', 'cmd', [lsp_settings#exec_path('metals')])},
- \ 'root_uri':{server_info->lsp_settings#get('metals', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'build.sbt'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('metals', 'root_uri', lsp_settings#root_uri(['.git/', 'build.sbt']))},
+ \ 'initialization_options': lsp_settings#get('metals', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('metals', 'whitelist', ['scala', 'sbt']),
\ 'blacklist': lsp_settings#get('metals', 'blacklist', []),
\ 'config': lsp_settings#get('metals', 'config', {}),
diff --git a/settings/omnisharp-lsp.vim b/settings/omnisharp-lsp.vim
index 1ce7fc4..cfa0a94 100644
--- a/settings/omnisharp-lsp.vim
+++ b/settings/omnisharp-lsp.vim
@@ -2,7 +2,8 @@ augroup vimlsp_settings_omnisharp_lsp
au!
LspRegisterServer {
\ 'name': 'omnisharp-lsp',
- \ 'root_uri':{server_info->lsp_settings#get('omnisharp-lsp', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'cmd': {server_info->lsp_settings#get('omnisharp-lsp', 'cmd', [lsp_settings#exec_path('omnisharp-lsp')])},
+ \ 'root_uri':{server_info->lsp_settings#get('omnisharp-lsp', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('omnisharp-lsp', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('omnisharp-lsp', 'whitelist', ['cs']),
\ 'blacklist': lsp_settings#get('omnisharp-lsp', 'blacklist', []),
diff --git a/settings/pyls.vim b/settings/pyls.vim
index db7db34..f97a196 100644
--- a/settings/pyls.vim
+++ b/settings/pyls.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_pyls
LspRegisterServer {
\ 'name': 'pyls',
\ 'cmd': {server_info->lsp_settings#get('pyls', 'cmd', [lsp_settings#exec_path('pyls')])},
- \ 'root_uri':{server_info->lsp_settings#get('pyls', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('pyls', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('pyls', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('pyls', 'whitelist', ['python']),
\ 'blacklist': lsp_settings#get('pyls', 'blacklist', []),
diff --git a/settings/reason-language-server.vim b/settings/reason-language-server.vim
new file mode 100644
index 0000000..9c4a5e1
--- /dev/null
+++ b/settings/reason-language-server.vim
@@ -0,0 +1,13 @@
+augroup vimlsp_settings_reason_language_server
+ au!
+ LspRegisterServer {
+ \ 'name': 'reason-language-server',
+ \ 'cmd': {server_info->lsp_settings#get('reason-language-server', 'cmd', [lsp_settings#exec_path('reason-language-server')])},
+ \ 'root_uri':{server_info->lsp_settings#get('reason-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'pacakge.json']))},
+ \ 'initialization_options': lsp_settings#get('reason-language-server', 'initialization_options', {}),
+ \ 'whitelist': lsp_settings#get('reason-language-server', 'whitelist', ['reason']),
+ \ 'blacklist': lsp_settings#get('reason-language-server', 'blacklist', []),
+ \ 'config': lsp_settings#get('reason-language-server', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('reason-language-server', 'workspace_config', {}),
+ \ }
+augroup END
diff --git a/settings/rls.vim b/settings/rls.vim
index 10f2376..45dcbfd 100644
--- a/settings/rls.vim
+++ b/settings/rls.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_rls
LspRegisterServer {
\ 'name': 'rls',
\ 'cmd': {server_info->lsp_settings#get('rls', 'cmd', [lsp_settings#exec_path('rls')])},
- \ 'root_uri':{server_info->lsp_settings#get('rls', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('rls', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('rls', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('rls', 'whitelist', ['rust']),
\ 'blacklist': lsp_settings#get('rls', 'blacklist', []),
diff --git a/settings/solargraph.vim b/settings/solargraph.vim
index 796ee0a..8081a2c 100644
--- a/settings/solargraph.vim
+++ b/settings/solargraph.vim
@@ -3,7 +3,7 @@ augroup vimlsp_settings_solargraph
LspRegisterServer {
\ 'name': 'solargraph',
\ 'cmd': {server_info->lsp_settings#get('solargraph', 'cmd', [lsp_settings#exec_path('solargraph'), 'stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('solargraph', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('solargraph', 'root_uri', lsp_settings#root_uri(['.git/']))},
\ 'initialization_options': lsp_settings#get('solargraph', 'initialization_options', {"diagnostics": "true"}),
\ 'whitelist': lsp_settings#get('solargraph', 'whitelist', ['ruby']),
\ 'blacklist': lsp_settings#get('solargraph', 'blacklist', []),
diff --git a/settings/sourcekit-lsp.vim b/settings/sourcekit-lsp.vim
new file mode 100644
index 0000000..54e1d03
--- /dev/null
+++ b/settings/sourcekit-lsp.vim
@@ -0,0 +1,13 @@
+augroup vimlsp_settings_sourcekit_lsp
+ au!
+ LspRegisterServer {
+ \ 'name': 'sourcekit-lsp',
+ \ 'cmd': {server_info->lsp_settings#get('sourcekit-lsp', 'cmd', [lsp_settings#exec_path('sourcekit-lsp')])},
+ \ 'root_uri':{server_info->lsp_settings#get('sourcekit-lsp', 'root_uri', lsp_settings#root_uri(['.git/', 'Package.swift', '.xcodeproj', '.xcworkspace', 'Cartfile', 'Podfile']))},
+ \ 'initialization_options': lsp_settings#get('sourcekit-lsp', 'initialization_options', {}),
+ \ 'whitelist': lsp_settings#get('sourcekit-lsp', 'whitelist', ['swift']),
+ \ 'blacklist': lsp_settings#get('sourcekit-lsp', 'blacklist', []),
+ \ 'config': lsp_settings#get('sourcekit-lsp', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('sourcekit-lsp', 'workspace_config', {}),
+ \ }
+augroup END
diff --git a/settings/terraform-lsp.vim b/settings/terraform-lsp.vim
index 1df13cb..113597f 100644
--- a/settings/terraform-lsp.vim
+++ b/settings/terraform-lsp.vim
@@ -3,7 +3,8 @@ augroup vimlsp_settings_terraform_lsp
LspRegisterServer {
\ 'name': 'terraform-lsp',
\ 'cmd': {server_info->lsp_settings#get('terraform-lsp', 'cmd', [lsp_settings#exec_path('terraform-lsp')])},
- \ 'root_uri':{server_info->lsp_settings#get('terraform-lsp', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('terraform-lsp', 'root_uri', lsp_settings#root_uri(['.git/']))},
+ \ 'initialization_options': lsp_settings#get('terraform-lsp', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('terraform-lsp', 'whitelist', ['terraform']),
\ 'blacklist': lsp_settings#get('terraform-lsp', 'blacklist', []),
\ 'config': lsp_settings#get('terraform-lsp', 'config', {}),
diff --git a/settings/typescript-language-server.vim b/settings/typescript-language-server.vim
index 400452a..8b62b67 100644
--- a/settings/typescript-language-server.vim
+++ b/settings/typescript-language-server.vim
@@ -2,10 +2,10 @@ augroup vimlsp_settings_typescript_language_server
au!
LspRegisterServer {
\ 'name': 'typescript-language-server',
- \ 'cmd': {server_info->lsp_settings#get('typescript-language-server', 'cmd', [lsp_settings#exec_path('typescript-language-server'), '--stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('typescript-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'cmd': {server_info->lsp_settings#get('typescript-language-server', 'cmd', [lsp_settings#exec_path('typescript-language-server'), '--stdio', '--tsserver-path', lsp_settings#exec_path('tsserver')])},
+ \ 'root_uri':{server_info->lsp_settings#get('typescript-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'package.json']))},
\ 'initialization_options': lsp_settings#get('typescript-language-server', 'initialization_options', {"diagnostics": "true"}),
- \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescript.tsx']),
+ \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescriptreact']),
\ 'blacklist': lsp_settings#get('typescript-language-server', 'blacklist', []),
\ 'config': lsp_settings#get('typescript-language-server', 'config', {}),
\ 'workspace_config': lsp_settings#get('typescript-language-server', 'workspace_config', {}),
diff --git a/settings/vim-language-server.vim b/settings/vim-language-server.vim
index f3497b9..d3c7c51 100644
--- a/settings/vim-language-server.vim
+++ b/settings/vim-language-server.vim
@@ -3,11 +3,11 @@ augroup vimlsp_settings_vim_language_server
LspRegisterServer {
\ 'name': 'vim-language-server',
\ 'cmd': {server_info->lsp_settings#get('vim-language-server', 'cmd', [lsp_settings#exec_path('vim-language-server'), '--stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('vim-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', '.vim/', 'vimfiles/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('vim-language-server', 'root_uri', lsp_settings#root_uri(['.git/', '.vim/', 'vimfiles/']))},
\ 'initialization_options': { 'vimruntime': $VIMRUNTIME, 'runtimepath': &rtp },
- \ 'whitelist': ['vim'],
- \ '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', {}),
+ \ 'whitelist': lsp_settings#get('vim-language-server', 'whitelist', ['vim']),
+ \ 'blacklist': lsp_settings#get('vimbash-language-server', 'blacklist', []),
+ \ 'config': lsp_settings#get('vim-language-server', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('vim-language-server', 'workspace_config', {}),
\ }
augroup END
diff --git a/settings/yaml-language-server.vim b/settings/yaml-language-server.vim
index 83e36e7..7fffc67 100644
--- a/settings/yaml-language-server.vim
+++ b/settings/yaml-language-server.vim
@@ -3,7 +3,8 @@ augroup vimlsp_settings_yaml_language_server
LspRegisterServer {
\ 'name': 'yaml-language-server',
\ 'cmd': {server_info->lsp_settings#get('yaml-language-server', 'cmd', [lsp_settings#exec_path('yaml-language-server'), '--stdio'])},
- \ 'root_uri':{server_info->lsp_settings#get('yaml-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))},
+ \ 'root_uri':{server_info->lsp_settings#get('yaml-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))},
+ \ 'initialization_options': lsp_settings#get('yaml-language-server', 'initialization_options', v:null),
\ 'whitelist': lsp_settings#get('yaml-language-server', 'whitelist', ['yaml']),
\ 'blacklist': lsp_settings#get('yaml-language-server', 'blacklist', []),
\ 'config': lsp_settings#get('yaml-language-server', 'config', {}),