From da714071f3ea7702bf8d473d3db078b51813846e Mon Sep 17 00:00:00 2001 From: Michal Kuratczyk Date: Fri, 22 Dec 2023 12:18:28 +0100 Subject: [PATCH] Allow code_reload.node to be a list of nodes It can now be either ``` code_reload: node: node@localhost ``` or ``` code_reload: node: - node-1@localhost - node-2@localhost ``` --- apps/els_lsp/src/els_code_reload.erl | 31 +++++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/apps/els_lsp/src/els_code_reload.erl b/apps/els_lsp/src/els_code_reload.erl index 96aa24e9b..649c5e1e2 100644 --- a/apps/els_lsp/src/els_code_reload.erl +++ b/apps/els_lsp/src/els_code_reload.erl @@ -12,15 +12,30 @@ maybe_compile_and_load(Uri) -> Ext = filename:extension(Uri), case els_config:get(code_reload) of #{"node" := NodeStr} when Ext == <<".erl">> -> - Node = els_utils:compose_node_name( - NodeStr, - els_config_runtime:get_name_type() - ), + Nodes = + case NodeStr of + [List | _] when is_list(List) -> + NodeStr; + List when is_list(List) -> + [NodeStr]; + _ -> + not_a_list + end, Module = els_uri:module(Uri), - case rpc:call(Node, code, is_sticky, [Module]) of - true -> ok; - _ -> handle_rpc_result(rpc:call(Node, c, c, [Module]), Module) - end; + [ + begin + Node = els_utils:compose_node_name( + N, + els_config_runtime:get_name_type() + ), + case rpc:call(Node, code, is_sticky, [Module]) of + true -> ok; + _ -> handle_rpc_result(rpc:call(Node, c, c, [Module]), Module) + end + end + || N <- Nodes + ], + ok; _ -> ok end.