Skip to content

Commit f3c3852

Browse files
committed
Add init callback to diagnostics behavior
1 parent 630156c commit f3c3852

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

apps/els_lsp/src/els_diagnostics.erl

+12-12
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@
3939
-callback run(uri()) -> [diagnostic()].
4040
-callback source() -> binary().
4141
-callback on_complete(uri(), [diagnostic()]) -> ok.
42-
-optional_callbacks([ on_complete/2 ]).
42+
-callback init() -> ok.
43+
-optional_callbacks([ on_complete/2, init/0 ]).
4344

4445
%%==============================================================================
4546
%% API
@@ -79,9 +80,7 @@ enabled_diagnostics() ->
7980
Default = default_diagnostics(),
8081
Enabled = maps:get("enabled", Config, []),
8182
Disabled = maps:get("disabled", Config, []),
82-
Diagnostics = lists:usort((Default ++ valid(Enabled)) -- valid(Disabled)),
83-
ok = extra(Diagnostics),
84-
Diagnostics.
83+
lists:usort((Default ++ valid(Enabled)) -- valid(Disabled)).
8584

8685
-spec make_diagnostic(range(), binary(), severity(), binary()) -> diagnostic().
8786
make_diagnostic(Range, Message, Severity, Source) ->
@@ -119,6 +118,7 @@ run_diagnostic(Uri, Id) ->
119118
els_diagnostics_provider:notify(Diagnostics, self())
120119
end
121120
},
121+
ok = init_diagnostic(CbModule),
122122
{ok, Pid} = els_background_job:new(Config),
123123
Pid.
124124

@@ -150,11 +150,11 @@ valid(Ids0) ->
150150
end,
151151
Valid.
152152

153-
-spec extra(list()) -> ok.
154-
extra([]) ->
155-
ok;
156-
extra([<<"sheldon">>|_]) ->
157-
{ok, _} = application:ensure_all_started(sheldon),
158-
ok;
159-
extra([_|T]) ->
160-
extra(T).
153+
-spec init_diagnostic(atom()) -> ok.
154+
init_diagnostic(CbModule) ->
155+
case erlang:function_exported(CbModule, init, 0) of
156+
true ->
157+
CbModule:init();
158+
false ->
159+
ok
160+
end.

apps/els_lsp/src/els_sheldon_diagnostics.erl

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
%% Exports
1515
%%==============================================================================
1616

17-
-export([ is_default/0
17+
-export([ init/0
18+
, is_default/0
1819
, run/1
1920
, source/0
2021
]).
@@ -30,6 +31,11 @@
3031
%% Callback Functions
3132
%%==============================================================================
3233

34+
-spec init() -> ok.
35+
init() ->
36+
{ok, _} = application:ensure_all_started(sheldon),
37+
ok.
38+
3339
-spec is_default() -> boolean().
3440
is_default() ->
3541
false.

0 commit comments

Comments
 (0)