Skip to content

Commit

Permalink
Supply completions for POIs in includes recursively
Browse files Browse the repository at this point in the history
  • Loading branch information
plux committed Apr 6, 2021
1 parent 6376403 commit e94c247
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 4 deletions.
2 changes: 1 addition & 1 deletion apps/els_lsp/priv/code_navigation/src/code_navigation.erl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
-export([ callback_a/0 ]).

-import(code_navigation_extra, [ do/1 ]).

-include("transitive.hrl").
-include("code_navigation.hrl").
-include_lib("code_navigation/include/code_navigation.hrl").
-include_lib("stdlib/include/assert.hrl").
Expand Down
4 changes: 3 additions & 1 deletion apps/els_lsp/src/els_completion_provider.erl
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,9 @@ include_file_pois(Name, Kinds) ->
case els_utils:find_header(H) of
{ok, Uri} ->
{ok, IncludeDocument} = els_utils:lookup_document(Uri),
els_dt_document:pois(IncludeDocument, Kinds);
%% NB: Recursive call to support includes in the include file
IncludedInHeader = lists:flatten(included_pois(IncludeDocument, Kinds)),
els_dt_document:pois(IncludeDocument, Kinds) ++ IncludedInHeader;
{error, _} ->
[]
end.
Expand Down
4 changes: 4 additions & 0 deletions apps/els_lsp/test/els_completion_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,10 @@ macros(Config) ->
, label => <<"macro_A">>
, data => #{}
}
, #{ kind => ?COMPLETION_ITEM_KIND_CONSTANT
, label => <<"MACRO_FOR_TRANSITIVE_INCLUSION">>
, data => #{}
}
],

#{result := Completion1} =
Expand Down
4 changes: 2 additions & 2 deletions apps/els_lsp/test/els_diagnostics_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -232,9 +232,9 @@ compiler_with_broken_behaviour(Config) ->
els_mock_diagnostics:subscribe(),
ok = els_client:did_save(Uri),
Diagnostics = els_mock_diagnostics:wait_until_complete(),
?assertEqual(21, length(Diagnostics)),
?assertEqual(22, length(Diagnostics)),
Warnings = [D || #{severity := ?DIAGNOSTIC_WARNING} = D <- Diagnostics],
?assertEqual(15, length(Warnings)),
?assertEqual(16, length(Warnings)),
Errors = [D || #{severity := ?DIAGNOSTIC_ERROR} = D <- Diagnostics],
?assertEqual(6, length(Errors)),
[BehaviourError | _ ] = Errors,
Expand Down

0 comments on commit e94c247

Please sign in to comment.