@@ -126,11 +126,17 @@ let declaration_lens = (ident: Ident.t, decl: Types.type_declaration) => {
126126};
127127
128128let include_lens = (env: Env . t , path: Path . t ) => {
129- let module_decl = Env . find_module(path, None , env);
130- markdown_join(
131- grain_code_block("module " ++ Path . name(path)),
132- module_lens(module_decl),
133- );
129+ let header = grain_code_block("module " ++ Path . name(path));
130+ let decl = Env . find_module(path, None , env);
131+ let module_decl =
132+ switch (Modules . get_provides(decl)) {
133+ | [ _ , ... _ ] => Some (module_lens(decl))
134+ | [] => None
135+ };
136+ switch (module_decl) {
137+ | Some (mod_sig ) => markdown_join(header, mod_sig)
138+ | None => header
139+ };
134140};
135141
136142let exception_declaration_lens =
@@ -184,12 +190,16 @@ let process =
184190 )
185191 | [Module ({decl, loc}), ... _ ] =>
186192 send_hover(~id, ~range= Utils . loc_to_range(loc), module_lens(decl))
187- | [Include ({env, path, loc}), ... _ ] =>
188- send_hover(
189- ~id,
190- ~range= Utils . loc_to_range(loc),
191- include_lens(env, path),
192- )
193+ | [Include ({path, loc}), ... _ ] =>
194+ let hover_lens =
195+ try (Some (include_lens(program. env, path))) {
196+ | Not_found => None
197+ };
198+ switch (hover_lens) {
199+ | Some (lens ) => send_hover(~id, ~range= Utils . loc_to_range(loc), lens)
200+ | None => send_no_result(~id)
201+ };
202+
193203 | _ => send_no_result(~id)
194204 };
195205 };
0 commit comments