···11+diff --git i/scripts/launch.sh w/scripts/launch.sh
22+index 21afbb1e..975cbdf0 100755
33+--- i/scripts/launch.sh
44++++ w/scripts/launch.sh
55+@@ -1,125 +1,4 @@
66+-#!/bin/sh
77+-# Actual launcher. This does the hard work of figuring out the best way
88+-# to launch the language server or the debug adapter.
99+-
1010+-# Running this script is a one-time action per project launch, so we opt for
1111+-# code simplicity instead of performance. Hence some potentially redundant
1212+-# moves here.
1313+-
1414+-
1515+-did_relaunch=$1
1616+-
1717+-# Get the user's preferred shell
1818+-preferred_shell=$(basename "$SHELL")
1919+-
2020+-# Get current dirname
2121+-dirname=$(dirname "$0")
2222+-
2323+-case "${did_relaunch}" in
2424+- "")
2525+- if [ "$preferred_shell" = "bash" ]; then
2626+- >&2 echo "Preferred shell is bash, relaunching"
2727+- exec "$(which bash)" "$0" relaunch
2828+- elif [ "$preferred_shell" = "zsh" ]; then
2929+- >&2 echo "Preferred shell is zsh, relaunching"
3030+- exec "$(which zsh)" "$0" relaunch
3131+- elif [ "$preferred_shell" = "fish" ]; then
3232+- >&2 echo "Preferred shell is fish, launching launch.fish"
3333+- exec "$(which fish)" "$dirname/launch.fish"
3434+- else
3535+- >&2 echo "Preferred shell $preferred_shell is not supported, continuing in POSIX shell"
3636+- fi
3737+- ;;
3838+- *)
3939+- # We have an arg2, so we got relaunched
4040+- ;;
4141+-esac
4242+-
4343+-# First order of business, see whether we can setup asdf
4444+-echo "Looking for asdf install" >&2
4545+-
4646+-readlink_f () {
4747+- cd "$(dirname "$1")" > /dev/null || exit 1
4848+- filename="$(basename "$1")"
4949+- if [ -h "$filename" ]; then
5050+- readlink_f "$(readlink "$filename")"
5151+- else
5252+- echo "$(pwd -P)/$filename"
5353+- fi
5454+-}
5555+-
5656+-export_stdlib_path () {
5757+- which_elixir_expr=$1
5858+- stdlib_path=$(eval "$which_elixir_expr")
5959+- stdlib_real_path=$(readlink_f "$stdlib_path")
6060+- ELX_STDLIB_PATH=$(echo "$stdlib_real_path" | sed "s/\(.*\)\/bin\/elixir/\1/")
6161+- export ELX_STDLIB_PATH
6262+-}
6363+-
6464+-# Check if we have the asdf binary for version >= 0.16.0
6565+-if command -v asdf >/dev/null 2>&1; then
6666+- asdf_version=$(asdf --version 2>/dev/null)
6767+- version=$(echo "$asdf_version" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')
6868+- major=$(echo "$version" | cut -d. -f1)
6969+- minor=$(echo "$version" | cut -d. -f2)
7070+- # If the version is less than 0.16.0 (i.e. major = 0 and minor < 16), use legacy method.
7171+- if [ "$major" -eq 0 ] && [ "$minor" -lt 16 ]; then
7272+- ASDF_DIR=${ASDF_DIR:-"${HOME}/.asdf"}
7373+- ASDF_SH="${ASDF_DIR}/asdf.sh"
7474+- if test -f "$ASDF_SH"; then
7575+- >&2 echo "Legacy pre v0.16.0 asdf install found at $ASDF_SH, sourcing"
7676+- # Source the old asdf.sh script for versions <= 0.15.0
7777+- . "$ASDF_SH"
7878+- else
7979+- >&2 echo "Legacy asdf not found at $ASDF_SH"
8080+- fi
8181+- else
8282+- >&2 echo "asdf executable found at $(command -v asdf). Using ASDF_DIR=${ASDF_DIR}, ASDF_DATA_DIR=${ASDF_DATA_DIR}."
8383+- fi
8484+- export_stdlib_path "asdf which elixir"
8585+-else
8686+- # Fallback to old method for version <= 0.15.x
8787+- ASDF_DIR=${ASDF_DIR:-"${HOME}/.asdf"}
8888+- ASDF_SH="${ASDF_DIR}/asdf.sh"
8989+- if test -f "$ASDF_SH"; then
9090+- >&2 echo "Legacy pre v0.16.0 asdf install found at $ASDF_SH, sourcing"
9191+- # Source the old asdf.sh script for versions <= 0.15.0
9292+- . "$ASDF_SH"
9393+- export_stdlib_path "asdf which elixir"
9494+- else
9595+- >&2 echo "asdf not found"
9696+- >&2 echo "Looking for mise executable"
9797+-
9898+- # Look for mise executable
9999+- if command -v mise >/dev/null 2>&1; then
100100+- >&2 echo "mise executable found at $(command -v mise), activating"
101101+- eval "$($(command -v mise) env -s "$preferred_shell")"
102102+- export_stdlib_path "mise which elixir"
103103+- else
104104+- >&2 echo "mise not found"
105105+- >&2 echo "Looking for rtx executable"
106106+-
107107+- # Look for rtx executable
108108+- if command -v rtx >/dev/null 2>&1; then
109109+- >&2 echo "rtx executable found at $(command -v rtx), activating"
110110+- eval "$($(command -v rtx) env -s "$preferred_shell")"
111111+- export_stdlib_path "rtx which elixir"
112112+- else
113113+- >&2 echo "rtx not found"
114114+- >&2 echo "Looking for vfox executable"
115115+-
116116+- # Look for vfox executable
117117+- if command -v vfox >/dev/null 2>&1; then
118118+- >&2 echo "vfox executable found at $(command -v vfox), activating"
119119+- eval "$($(command -v vfox) activate "$preferred_shell")"
120120+- else
121121+- >&2 echo "vfox not found"
122122+- export_stdlib_path "which elixir"
123123+- fi
124124+- fi
125125+- fi
126126+- fi
127127+-fi
128128++#!/usr/bin/env bash
129129+130130+ # In case that people want to tweak the path, which Elixir to use, or
131131+ # whatever prior to launching the language server or the debug adapter, we
132132+@@ -138,29 +17,18 @@ fi
133133+ # script so we can correctly configure the Erlang library path to
134134+ # include the local .ez files, and then do what we were asked to do.
135135+136136+-if [ -z "${ELS_INSTALL_PREFIX}" ]; then
137137+- SCRIPT=$(readlink_f "$0")
138138+- SCRIPTPATH=$(dirname "$SCRIPT")
139139+-else
140140+- SCRIPTPATH=${ELS_INSTALL_PREFIX}
141141+-fi
142142++SCRIPT=$(readlink -f "$0")
143143++SCRIPTPATH=$(dirname "$SCRIPT")/../libexec
144144+145145+ export MIX_ENV=prod
146146+ # Mix.install prints to stdout and reads from stdin
147147+ # we need to make sure it doesn't interfere with LSP/DAP
148148+-echo "" | elixir "$SCRIPTPATH/quiet_install.exs" >/dev/null || exit 1
149149++echo "" | @elixir@/bin/elixir "$SCRIPTPATH/quiet_install.exs" >/dev/null || exit 1
150150+151151+ default_erl_opts="-kernel standard_io_encoding latin1 +sbwt none +sbwtdcpu none +sbwtdio none"
152152+153153+-if [ "$preferred_shell" = "bash" ]; then
154154+- source "$dirname/exec.bash"
155155+-elif [ "$preferred_shell" = "zsh" ]; then
156156+- source "$dirname/exec.zsh"
157157+-else
158158+- if [ -z "$ELS_ELIXIR_OPTS" ]
159159+- then
160160+- # in posix shell does not support arrays
161161+- >&2 echo "ELS_ELIXIR_OPTS is not supported in current shell"
162162+- fi
163163+- exec elixir --erl "$default_erl_opts $ELS_ERL_OPTS" "$SCRIPTPATH/launch.exs"
164164+-fi
165165++# ensure elixir stdlib can be found
166166++ELX_STDLIB_PATH=${ELX_STDLIB_PATH:-@elixir@/lib/elixir}
167167++export ELX_STDLIB_PATH
168168++
169169++source "$SCRIPTPATH/exec.bash"