From 5600aedecf0d1c216ef81623f8983837685b15cb Mon Sep 17 00:00:00 2001 From: Duc Nghiem-Xuan Date: Thu, 30 Jan 2020 00:55:45 +0900 Subject: add fsautocomplete for fsharp --- installer/install-fsautocomplete.cmd | 18 ++++++++++++++++++ installer/install-fsautocomplete.sh | 27 +++++++++++++++++++++++++++ settings.json | 4 ++++ settings/fsautocomplete.vim | 13 +++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 installer/install-fsautocomplete.cmd create mode 100755 installer/install-fsautocomplete.sh create mode 100644 settings/fsautocomplete.vim diff --git a/installer/install-fsautocomplete.cmd b/installer/install-fsautocomplete.cmd new file mode 100644 index 0000000..9403345 --- /dev/null +++ b/installer/install-fsautocomplete.cmd @@ -0,0 +1,18 @@ +@echo off + +setlocal + +curl -L -o dotnet-runtime-3.1.1-win-x64.zip "https://download.visualstudio.microsoft.com/download/pr/d9768135-4646-4839-9eea-b404bb940452/8275e4320514bab636b1627c62906ef9/dotnet-runtime-3.1.1-win-x64.zip" +call "%~dp0\run_unzip.cmd" dotnet-runtime-3.1.1-win-x64.zip + +set url=https://ci.appveyor.com/api/projects/fsautocomplete/fsautocomplete/artifacts/bin/pkgs/fsautocomplete.netcore.zip?branch=master + +set zip=fsautocomplete.zip +curl -L %url% -o %zip% +call "%~dp0\run_unzip.cmd" %zip% + +echo @echo off ^ + +%%~dp0\dotnet.exe fsautocomplete.dll %%* ^ + +> fsautocomplete.cmd diff --git a/installer/install-fsautocomplete.sh b/installer/install-fsautocomplete.sh new file mode 100755 index 0000000..e19d2e8 --- /dev/null +++ b/installer/install-fsautocomplete.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +if command -v dotnet >/dev/null 2>&1; then + echo "dotnet installed" + dotnetcmd=dotnet +else + echo "dotnet not found, installing..." + # REF https://github.com/neovim/nvim-lsp/blob/master/lua/nvim_lsp/pyls_ms.lua + curl -L https://dot.net/v1/dotnet-install.sh | bash -s -- -i "./.dotnet" + dotnetcmd="\\$DIR/.dotnet/dotnet" +fi + +url="https://ci.appveyor.com/api/projects/fsautocomplete/fsautocomplete/artifacts/bin/pkgs/fsautocomplete.netcore.zip?branch=master" +zip=fsautocomplete.zip +curl -L "$url" -o "$zip" +unzip -o -d "fsautocomplete.netcore" "$zip" + +cat <fsautocomplete +#!/bin/sh + +DIR=\$(cd \$(dirname \$0); pwd) +$dotnetcmd \$DIR/fsautocomplete.netcore/fsautocomplete.dll +EOF + +chmod +x fsautocomplete diff --git a/settings.json b/settings.json index 7fd1386..609d73a 100644 --- a/settings.json +++ b/settings.json @@ -130,6 +130,10 @@ } ], "fsharp": [ + { + "command": "fsautocomplete", + "requires": [] + }, { "command": "fsharp-language-server", "requires": [ diff --git a/settings/fsautocomplete.vim b/settings/fsautocomplete.vim new file mode 100644 index 0000000..e5208f8 --- /dev/null +++ b/settings/fsautocomplete.vim @@ -0,0 +1,13 @@ +augroup vimlsp_settings_fsautocomplete + au! + LspRegisterServer { + \ 'name': 'fsautocomplete', + \ 'cmd': {server_info->lsp_settings#get('fsautocomplete', 'cmd', [lsp_settings#exec_path('fsautocomplete'), '--background-service-enabled'])}, + \ 'root_uri':{server_info->lsp_settings#get('fsautocomplete', 'root_uri', lsp_settings#root_uri(g:lsp_settings_root_markers))}, + \ 'initialization_options': lsp_settings#get('fsautocomplete', 'initialization_options', {'AutomaticWorkspaceInit': v:true}), + \ 'whitelist': lsp_settings#get('fsautocomplete', 'whitelist', ['fsharp']), + \ 'blacklist': lsp_settings#get('fsautocomplete', 'blacklist', []), + \ 'config': lsp_settings#get('fsautocomplete', 'config', {}), + \ 'workspace_config': lsp_settings#get('fsautocomplete', 'workspace_config', {}), + \ } +augroup END -- cgit v1.2.3-54-g00ecf