diff options
| author | JINNOUCHI Yasushi <d+github@delphinus.dev> | 2019-12-17 15:46:59 +0900 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2019-12-16 22:46:59 -0800 |
| commit | 28c47445c1931b00e0e77295160817ece037e9ff (patch) | |
| tree | aace9f2359d48a571ca47ec91090bbd91f06f35b | |
| parent | pyls_ms: Fix OS detection #72 (diff) | |
| download | nvim-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
| -rw-r--r-- | lua/nvim_lsp/sumneko_lua.lua | 36 |
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 = { |
