File tree Expand file tree Collapse file tree 3 files changed +11
-7
lines changed
ide-completion/src/completions Expand file tree Collapse file tree 3 files changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -457,6 +457,7 @@ impl Resolver {
457457 def_map[ module_id] . scope . entries ( ) . for_each ( |( name, def) | {
458458 res. add_per_ns ( name, def) ;
459459 } ) ;
460+
460461 def_map[ module_id] . scope . legacy_macros ( ) . for_each ( |( name, macs) | {
461462 macs. iter ( ) . for_each ( |& mac| {
462463 res. add ( name, ScopeDef :: ModuleDef ( ModuleDefId :: MacroId ( mac) ) ) ;
@@ -490,8 +491,11 @@ impl Resolver {
490491 . map ( |id| ExternCrateDeclData :: extern_crate_decl_data_query ( db, id) . name . clone ( ) )
491492 }
492493
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) )
495499 }
496500
497501 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<'_> {
16841684 )
16851685 }
16861686
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 } ) )
16901689 }
16911690
16921691 pub fn extern_crate_decls ( & self ) -> impl Iterator < Item = Name > + ' _ {
Original file line number Diff line number Diff line change 11//! Completion for extern crates
22
3- use hir:: Name ;
3+ use hir:: { HasAttrs , Name } ;
44use ide_db:: { FxHashSet , SymbolKind } ;
55use syntax:: {
66 ast:: { self , NameRef } ,
@@ -18,7 +18,7 @@ pub(crate) fn complete_extern_crate(
1818) {
1919 let imported_extern_crates: Vec < Name > = ctx. scope . extern_crate_decls ( ) . collect ( ) ;
2020
21- for name in ctx. scope . extern_crates ( ) {
21+ for ( name, module ) in ctx. scope . extern_crates ( ) {
2222 if imported_extern_crates. contains ( & name) {
2323 continue ;
2424 }
@@ -28,6 +28,7 @@ pub(crate) fn complete_extern_crate(
2828 ctx. source_range ( ) ,
2929 name. to_smol_str ( ) ,
3030 )
31+ . set_documentation ( module. docs ( db) )
3132 . add_to ( acc, ctx. db ) ;
3233 }
3334}
You can’t perform that action at this time.
0 commit comments