|
39 | 39 | -callback run(uri()) -> [diagnostic()].
|
40 | 40 | -callback source() -> binary().
|
41 | 41 | -callback on_complete(uri(), [diagnostic()]) -> ok.
|
42 |
| --optional_callbacks([ on_complete/2 ]). |
| 42 | +-callback init() -> ok. |
| 43 | +-optional_callbacks([ on_complete/2, init/0 ]). |
43 | 44 |
|
44 | 45 | %%==============================================================================
|
45 | 46 | %% API
|
@@ -79,9 +80,7 @@ enabled_diagnostics() ->
|
79 | 80 | Default = default_diagnostics(),
|
80 | 81 | Enabled = maps:get("enabled", Config, []),
|
81 | 82 | 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)). |
85 | 84 |
|
86 | 85 | -spec make_diagnostic(range(), binary(), severity(), binary()) -> diagnostic().
|
87 | 86 | make_diagnostic(Range, Message, Severity, Source) ->
|
@@ -119,6 +118,7 @@ run_diagnostic(Uri, Id) ->
|
119 | 118 | els_diagnostics_provider:notify(Diagnostics, self())
|
120 | 119 | end
|
121 | 120 | },
|
| 121 | + ok = init_diagnostic(CbModule), |
122 | 122 | {ok, Pid} = els_background_job:new(Config),
|
123 | 123 | Pid.
|
124 | 124 |
|
@@ -150,11 +150,11 @@ valid(Ids0) ->
|
150 | 150 | end,
|
151 | 151 | Valid.
|
152 | 152 |
|
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. |
0 commit comments