From faa0ecb20fb449e3e2b0ddf280601442a0daebba Mon Sep 17 00:00:00 2001 From: Mitchell Hanberg Date: Sun, 4 Jun 2023 18:15:37 -0400 Subject: [PATCH] feat: configure credo-langauge-server version --- README.md | 1 + bin/credo-language-server | 9 ++------- lua/elixir/credo/init.lua | 5 ++++- lua/elixir/init.lua | 6 ++++++ 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8c45d647..94092f4f 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ elixir.setup { credo = { port = 9000, -- connect via TCP with the given port. mutually exclusive with `cmd` cmd = "path/to/credo-language-server", -- path to the executable. mutually exclusive with `port` + version = "0.1.0-rc.1", -- version of credo-language-server to install and use. defaults to 0.0.5 on_attach = function(client, bufnr) -- custom keybinds end diff --git a/bin/credo-language-server b/bin/credo-language-server index d955480b..b50aebc2 100755 --- a/bin/credo-language-server +++ b/bin/credo-language-server @@ -1,12 +1,7 @@ -#!/usr/bin/env elixir +#!/usr/bin/env elixir --sname undefined System.no_halt(true) -{%{credo: {_, :credo, credo_version, _, _, _, _, _}}, _} = Code.eval_file(System.get_env("CREDO_MIX_LOCK_PATH", "./mix.lock")) - -Mix.install([ - {:credo_language_server, "0.0.5"}, - {:credo, credo_version} -]) +Mix.install([ {:credo_language_server, System.get_env("CREDO_LSP_VERSION")}, ]) Application.ensure_all_started(:credo_language_server) diff --git a/lua/elixir/credo/init.lua b/lua/elixir/credo/init.lua index d4a65ca8..c5651551 100644 --- a/lua/elixir/credo/init.lua +++ b/lua/elixir/credo/init.lua @@ -47,7 +47,10 @@ function M.setup(opts) vim.lsp.start { name = "Credo", cmd = cmd, - cmd_env = { CREDO_MIX_LOCK_PATH = file }, + cmd_env = { + CREDO_LSP_VERSION = opts.version + + }, settings = {}, root_dir = vim.fs.dirname(file), on_attach = opts.on_attach or function() end, diff --git a/lua/elixir/init.lua b/lua/elixir/init.lua index d1dcd0b4..714a57f8 100644 --- a/lua/elixir/init.lua +++ b/lua/elixir/init.lua @@ -16,6 +16,8 @@ M.credo.default_bin = ( vim.fn.fnamemodify(debug.getinfo(1).source, ":h") .. "/../../bin/credo-language-server" ):gsub("^@", "") +M.credo.default_version = "0.0.5" + local enabled = function(value) return value == nil or value == true end @@ -30,6 +32,10 @@ function M.setup(opts) opts.credo.cmd = M.credo.default_bin end + if not opts.credo.version then + opts.credo.version = M.credo.default_version + end + mix.setup() projectionist.setup() if enabled(opts.elixirls.enable) then