File tree 3 files changed +11
-7
lines changed
ide-completion/src/completions
3 files changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -457,6 +457,7 @@ impl Resolver {
457
457
def_map[ module_id] . scope . entries ( ) . for_each ( |( name, def) | {
458
458
res. add_per_ns ( name, def) ;
459
459
} ) ;
460
+
460
461
def_map[ module_id] . scope . legacy_macros ( ) . for_each ( |( name, macs) | {
461
462
macs. iter ( ) . for_each ( |& mac| {
462
463
res. add ( name, ScopeDef :: ModuleDef ( ModuleDefId :: MacroId ( mac) ) ) ;
@@ -490,8 +491,11 @@ impl Resolver {
490
491
. map ( |id| ExternCrateDeclData :: extern_crate_decl_data_query ( db, id) . name . clone ( ) )
491
492
}
492
493
493
- pub fn extern_crates_in_scope ( & self ) -> Vec < Name > {
494
- self . module_scope . def_map . extern_prelude ( ) . map ( |( name, _) | name. clone ( ) ) . collect ( )
494
+ pub fn extern_crates_in_scope < ' a > ( & ' a self ) -> impl Iterator < Item = ( Name , ModuleId ) > + ' a {
495
+ self . module_scope
496
+ . def_map
497
+ . extern_prelude ( )
498
+ . map ( |( name, module_id) | ( name. clone ( ) , module_id) )
495
499
}
496
500
497
501
pub fn traits_in_scope ( & self , db : & dyn DefDatabase ) -> FxHashSet < TraitId > {
Original file line number Diff line number Diff line change @@ -1684,9 +1684,8 @@ impl SemanticsScope<'_> {
1684
1684
)
1685
1685
}
1686
1686
1687
- pub fn extern_crates ( & self ) -> Vec < Name > {
1688
- println ! ( "names in scope {:?}" , self . resolver. names_in_scope( self . db. upcast( ) ) ) ;
1689
- self . resolver . extern_crates_in_scope ( )
1687
+ pub fn extern_crates ( & self ) -> impl Iterator < Item = ( Name , Module ) > + ' _ {
1688
+ self . resolver . extern_crates_in_scope ( ) . map ( |( name, id) | ( name, Module { id } ) )
1690
1689
}
1691
1690
1692
1691
pub fn extern_crate_decls ( & self ) -> impl Iterator < Item = Name > + ' _ {
Original file line number Diff line number Diff line change 1
1
//! Completion for extern crates
2
2
3
- use hir:: Name ;
3
+ use hir:: { HasAttrs , Name } ;
4
4
use ide_db:: { FxHashSet , SymbolKind } ;
5
5
use syntax:: {
6
6
ast:: { self , NameRef } ,
@@ -18,7 +18,7 @@ pub(crate) fn complete_extern_crate(
18
18
) {
19
19
let imported_extern_crates: Vec < Name > = ctx. scope . extern_crate_decls ( ) . collect ( ) ;
20
20
21
- for name in ctx. scope . extern_crates ( ) {
21
+ for ( name, module ) in ctx. scope . extern_crates ( ) {
22
22
if imported_extern_crates. contains ( & name) {
23
23
continue ;
24
24
}
@@ -28,6 +28,7 @@ pub(crate) fn complete_extern_crate(
28
28
ctx. source_range ( ) ,
29
29
name. to_smol_str ( ) ,
30
30
)
31
+ . set_documentation ( module. docs ( db) )
31
32
. add_to ( acc, ctx. db ) ;
32
33
}
33
34
}
You can’t perform that action at this time.
0 commit comments