diff --git a/Dockerfile b/Dockerfile index 74e3609..3d1d7d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -153,9 +153,6 @@ ENV XDG_CACHE_HOME ${HOME}/.cache ENV STARSHIP_CONFIG ${XDG_CONFIG_HOME}/starship/config.toml ENV PATH ${LOCAL_BIN_HOME}:$PATH -# fetch elixir-ls to install custom releases -RUN git clone https://github.com/elixir-lsp/elixir-ls.git ${LOCAL_SRC_HOME}/elixir-ls - # command line utilities ENV MISE_ENV_FILE .env RUN curl https://mise.jdx.dev/install.sh | sh \ diff --git a/patch/kickstart.nvim/updates.patch b/patch/kickstart.nvim/updates.patch index 240c78e..be30299 100644 --- a/patch/kickstart.nvim/updates.patch +++ b/patch/kickstart.nvim/updates.patch @@ -1,5 +1,5 @@ diff --git a/init.lua b/init.lua -index b98ffc6..f2d0ea5 100644 +index b98ffc6..d9e223a 100644 --- a/init.lua +++ b/init.lua @@ -91,7 +91,7 @@ vim.g.mapleader = ' ' @@ -137,7 +137,7 @@ index b98ffc6..f2d0ea5 100644 } -- Ensure the servers and tools above are installed -@@ -719,20 +782,50 @@ require('lazy').setup({ +@@ -719,20 +782,36 @@ require('lazy').setup({ }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } @@ -158,21 +158,7 @@ index b98ffc6..f2d0ea5 100644 + local extend_server_config = function (server_name) + local config = {} + -+ if server_name == 'elixirls' then -+ -- overwrite elixirls for older versions of elixir -+ -- * elixir 1.11 use version 0.12.0 -+ -- * elixir 1.12 use verions 0.14.6 -+ local version = vim.fn.system('mise current elixir') or '' -+ local elixir_servers = { -+ { version = '^1.11', path = '/elixir-ls/release/v0.12.0/language_server.sh' }, -+ { version = '^1.12', path = '/elixir-ls/release/v0.14.6/language_server.sh' }, -+ } -+ for _, ex_server in ipairs(elixir_servers) do -+ if string.match(version, ex_server.version) == nil then goto continue end -+ config = { cmd = { vim.fn.expand('$LOCAL_SRC_HOME') .. ex_server.path } } -+ ::continue:: -+ end -+ elseif server_name == 'pyright' then ++ if server_name == 'pyright' then + -- overwrite python path for pyright according to the virtualenv manager, be it poetry or system. + local python_paths = { + { name = 'system', cmd = { 'which', 'python' }}, @@ -202,7 +188,7 @@ index b98ffc6..f2d0ea5 100644 end, }, -@@ -809,6 +902,9 @@ require('lazy').setup({ +@@ -809,6 +888,9 @@ require('lazy').setup({ opts = {}, }, 'folke/lazydev.nvim', @@ -212,7 +198,7 @@ index b98ffc6..f2d0ea5 100644 }, --- @module 'blink.cmp' --- @type blink.cmp.Config -@@ -854,9 +950,19 @@ require('lazy').setup({ +@@ -854,9 +936,19 @@ require('lazy').setup({ }, sources = { @@ -233,7 +219,7 @@ index b98ffc6..f2d0ea5 100644 }, }, -@@ -882,19 +988,39 @@ require('lazy').setup({ +@@ -882,19 +974,39 @@ require('lazy').setup({ -- -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`. 'folke/tokyonight.nvim', @@ -279,7 +265,7 @@ index b98ffc6..f2d0ea5 100644 end, }, -@@ -944,7 +1070,39 @@ require('lazy').setup({ +@@ -944,7 +1056,39 @@ require('lazy').setup({ main = 'nvim-treesitter.configs', -- Sets main module to use for opts -- [[ Configure Treesitter ]] See `:help nvim-treesitter` opts = { @@ -320,7 +306,7 @@ index b98ffc6..f2d0ea5 100644 -- Autoinstall languages that are not installed auto_install = true, highlight = { -@@ -974,17 +1132,17 @@ require('lazy').setup({ +@@ -974,17 +1118,17 @@ require('lazy').setup({ -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- -- require 'kickstart.plugins.debug', diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index df67449..5bef624 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -1,14 +1,6 @@ #!/bin/bash set -e -# NOTE: (jpd) setup elixir-ls for older versions of elixir -if [ ! -d ${LOCAL_SRC_HOME}/elixir-ls/release ]; then - echo "setup elixir ls version 0.12.0" - /usr/local/bin/elixir-ls-setup v0.12.0 - echo "setup elixir ls version 0.14.6" - /usr/local/bin/elixir-ls-setup v0.14.6 -fi - # NOTE: (jpd) create auto-completion commands=( "ctlptl" diff --git a/scripts/elixir-ls-setup.sh b/scripts/elixir-ls-setup.sh deleted file mode 100755 index 2c8dd56..0000000 --- a/scripts/elixir-ls-setup.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -e - -function setup() { - local elixir_ls_home=${LOCAL_SRC_HOME}/elixir-ls - local elixir_ls_release=${elixir_ls_home}/release - echo "elixir-ls repo" - cd ${elixir_ls_home} - echo "checkout versions ${1}" - git checkout tags/${1} - echo "set erlang/elixir versions" - cp .release-tool-versions .tool-versions - if [[ ! -z "$2" ]]; then - echo "override erlang to ${2}" - sed -i "s/erlang .*/erlang ${2}/g" .tool-versions - fi - if [[ ! -z "$3" ]]; then - echo "override elixir to ${3}" - sed -i "s/elixir .*/elixir ${3}/g" .tool-versions - fi - local current_erlang=$(mise current erlang) - local current_elixir=$(mise current elixir) - echo "using erlang ${current_erlang} / elixir ${current_elixir}" - echo "install erlang/elixir runtimes" - KERL_CONFIGURE_OPTIONS="-with-ssl=${HOME}/.local/lib/ssl" mise install - echo "install elixir-ls deps" - mise exec erlang@${current_erlang} elixir@${current_elixir} --command "mix do local.rebar --force, local.hex --force, deps.get, deps.compile" - echo "compile and release elixir-ls" - mise exec erlang@${current_erlang} elixir@${current_elixir} --command "MIX_ENV=prod mix compile" - mise exec erlang@${current_erlang} elixir@${current_elixir} --command "MIX_ENV=prod mix elixir_ls.release -o ${elixir_ls_release}/${1}" - echo "remove local .tool-versions" - cp .tool-versions ${elixir_ls_release}/${1} - rm .tool-versions - mise exec erlang@${current_erlang} elixir@${current_elixir} --command "mix do deps.clean --all, clean" - git checkout master -} - -setup $1 $2 $3