aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorJINNOUCHI Yasushi <d+github@delphinus.dev>2019-12-17 15:46:59 +0900
committerJustin M. Keyes <justinkz@gmail.com>2019-12-16 22:46:59 -0800
commit28c47445c1931b00e0e77295160817ece037e9ff (patch)
treeaace9f2359d48a571ca47ec91090bbd91f06f35b /lua
parentpyls_ms: Fix OS detection #72 (diff)
downloadnvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.tar
nvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.tar.gz
nvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.tar.bz2
nvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.tar.lz
nvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.tar.xz
nvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.tar.zst
nvim-lspconfig-28c47445c1931b00e0e77295160817ece037e9ff.zip
sumneko_lua: add macOS support to installer #71
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim_lsp/sumneko_lua.lua36
1 files changed, 28 insertions, 8 deletions
diff --git a/lua/nvim_lsp/sumneko_lua.lua b/lua/nvim_lsp/sumneko_lua.lua
index 365253cb..6da92a99 100644
--- a/lua/nvim_lsp/sumneko_lua.lua
+++ b/lua/nvim_lsp/sumneko_lua.lua
@@ -3,18 +3,34 @@ local util = require 'nvim_lsp/util'
local vim = vim
local name = "sumneko_lua"
+local bin_name = "lua-language-server"
local function make_installer()
local P = util.path.join
local install_dir = P{util.base_install_dir, name}
- local git_dir = P{install_dir, "lua-language-server"}
+ local git_dir = P{install_dir, bin_name}
+ local os, bin, ninja_zip, build_file
- local bin = P{git_dir, "bin", "Linux", "lua-language-server"}
+ if vim.fn.has('osx') == 1 then
+ os = 'macOS'
+ bin = P{git_dir, "bin", "macOS", bin_name}
+ ninja_zip = "ninja-mac.zip"
+ build_file = "macos.ninja"
+ elseif vim.fn.has('unix') == 1 then
+ os = 'Linux'
+ bin = P{git_dir, "bin", "Linux", bin_name}
+ ninja_zip = "ninja-linux.zip"
+ build_file = "linux.ninja"
+ end
local main_file = P{git_dir, "main.lua"}
local cmd = {bin, '-E', main_file}
local X = {}
function X.install()
+ if os == nil then
+ error("This installer supports Linux and macOS only")
+ return
+ end
local install_info = X.info()
if install_info.is_installed then
print(name, "is already installed")
@@ -30,24 +46,28 @@ local function make_installer()
end
local script = [=[
set -e
+bin_name=]=]..bin_name..'\n'..[=[
+ninja_zip=]=]..ninja_zip..'\n'..[=[
+build_file=]=]..build_file..'\n'..[=[
+
# Install ninja if not available.
which ninja >/dev/null || {
test -x ninja || {
- curl -LO https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip
- unzip ninja-linux.zip
+ curl -LO https://github.com/ninja-build/ninja/releases/download/v1.9.0/$ninja_zip
+ unzip $ninja_zip
chmod +x ninja
}
export PATH=$PWD:$PATH
}
# clone project
-git clone https://github.com/sumneko/lua-language-server
-cd lua-language-server
+git clone https://github.com/sumneko/$bin_name
+cd $bin_name
git submodule update --init --recursive
# build
cd 3rd/luamake
-ninja -f ninja/linux.ninja
+ninja -f ninja/$build_file
cd ../..
./3rd/luamake/luamake rebuild
]=]
@@ -91,7 +111,7 @@ https://github.com/sumneko/lua-language-server
Lua language server. **By default, this doesn't have a `cmd` set.** This is
because it doesn't provide a global binary. We provide an installer for Linux
-using `:LspInstall`. If you wish to install it yourself, [here is a
+and macOS using `:LspInstall`. If you wish to install it yourself, [here is a
guide](https://github.com/sumneko/lua-language-server/wiki/Build-and-Run).
]];
default_config = {