aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
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 = {