aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinstaller/install-reason-language-server.sh29
-rw-r--r--settings.json6
-rw-r--r--settings/reason-language-server.vim13
3 files changed, 48 insertions, 0 deletions
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/settings.json b/settings.json
index 97b34ea..0265c0d 100644
--- a/settings.json
+++ b/settings.json
@@ -151,6 +151,12 @@
]
}
],
+ "reason": [
+ {
+ "command": "reason-language-server",
+ "requires": []
+ }
+ ],
"ruby": [
{
"command": "solargraph",
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