From 6399ea3ce5e69624a54533a19359d0629df0ea6b Mon Sep 17 00:00:00 2001 From: Lukasz Samson Date: Mon, 15 Jul 2024 08:20:15 +0200 Subject: [PATCH] keep OTP 22 compatibility until elixir 1.13 is supported --- .../debug_adapter/lib/debug_adapter/server.ex | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/debug_adapter/lib/debug_adapter/server.ex b/apps/debug_adapter/lib/debug_adapter/server.ex index 2e0af4f85..7e61f1a17 100644 --- a/apps/debug_adapter/lib/debug_adapter/server.ex +++ b/apps/debug_adapter/lib/debug_adapter/server.ex @@ -2353,13 +2353,24 @@ defmodule ElixirLS.DebugAdapter.Server do end end) - for {module_charlist, _beam_path, _loaded} <- :code.all_available(), - module = List.to_atom(module_charlist), - module_name = inspect(module), - Enum.any?(regexes, fn regex -> + if String.to_integer(System.otp_release()) >= 23 do + for {module_charlist, _beam_path, _loaded} <- :code.all_available(), + module = List.to_atom(module_charlist), + module_name = inspect(module), + Enum.any?(regexes, fn regex -> + Regex.match?(regex, module_name) + end) do + module + end + else + # TODO remove when we drop OTP 22 and elixir 1.13 support + ElixirSense.all_modules() + |> Enum.filter(fn module_name -> + Enum.find(regexes, fn regex -> Regex.match?(regex, module_name) - end) do - module + end) + end) + |> Enum.map(fn module_name -> Module.concat(Elixir, module_name) end) end |> interpret_modules(exclude_module_pattern) end