diff options
Diffstat (limited to 'crates/ide/src/diagnostics/fixes/unresolved_module.rs')
-rw-r--r-- | crates/ide/src/diagnostics/fixes/unresolved_module.rs | 66 |
1 files changed, 34 insertions, 32 deletions
diff --git a/crates/ide/src/diagnostics/fixes/unresolved_module.rs b/crates/ide/src/diagnostics/fixes/unresolved_module.rs index 81244b293..b3d0283bb 100644 --- a/crates/ide/src/diagnostics/fixes/unresolved_module.rs +++ b/crates/ide/src/diagnostics/fixes/unresolved_module.rs | |||
@@ -3,17 +3,17 @@ use ide_assists::{Assist, AssistResolveStrategy}; | |||
3 | use ide_db::{base_db::AnchoredPathBuf, source_change::FileSystemEdit, RootDatabase}; | 3 | use ide_db::{base_db::AnchoredPathBuf, source_change::FileSystemEdit, RootDatabase}; |
4 | use syntax::AstNode; | 4 | use syntax::AstNode; |
5 | 5 | ||
6 | use crate::diagnostics::{fix, DiagnosticWithFix}; | 6 | use crate::diagnostics::{fix, DiagnosticWithFixes}; |
7 | 7 | ||
8 | impl DiagnosticWithFix for UnresolvedModule { | 8 | impl DiagnosticWithFixes for UnresolvedModule { |
9 | fn fix( | 9 | fn fixes( |
10 | &self, | 10 | &self, |
11 | sema: &Semantics<RootDatabase>, | 11 | sema: &Semantics<RootDatabase>, |
12 | _resolve: &AssistResolveStrategy, | 12 | _resolve: &AssistResolveStrategy, |
13 | ) -> Option<Assist> { | 13 | ) -> Option<Vec<Assist>> { |
14 | let root = sema.db.parse_or_expand(self.file)?; | 14 | let root = sema.db.parse_or_expand(self.file)?; |
15 | let unresolved_module = self.decl.to_node(&root); | 15 | let unresolved_module = self.decl.to_node(&root); |
16 | Some(fix( | 16 | Some(vec![fix( |
17 | "create_module", | 17 | "create_module", |
18 | "Create module", | 18 | "Create module", |
19 | FileSystemEdit::CreateFile { | 19 | FileSystemEdit::CreateFile { |
@@ -25,7 +25,7 @@ impl DiagnosticWithFix for UnresolvedModule { | |||
25 | } | 25 | } |
26 | .into(), | 26 | .into(), |
27 | unresolved_module.syntax().text_range(), | 27 | unresolved_module.syntax().text_range(), |
28 | )) | 28 | )]) |
29 | } | 29 | } |
30 | } | 30 | } |
31 | 31 | ||
@@ -45,33 +45,35 @@ mod tests { | |||
45 | message: "unresolved module", | 45 | message: "unresolved module", |
46 | range: 0..8, | 46 | range: 0..8, |
47 | severity: Error, | 47 | severity: Error, |
48 | fix: Some( | 48 | fixes: Some( |
49 | Assist { | 49 | [ |
50 | id: AssistId( | 50 | Assist { |
51 | "create_module", | 51 | id: AssistId( |
52 | QuickFix, | 52 | "create_module", |
53 | ), | 53 | QuickFix, |
54 | label: "Create module", | 54 | ), |
55 | group: None, | 55 | label: "Create module", |
56 | target: 0..8, | 56 | group: None, |
57 | source_change: Some( | 57 | target: 0..8, |
58 | SourceChange { | 58 | source_change: Some( |
59 | source_file_edits: {}, | 59 | SourceChange { |
60 | file_system_edits: [ | 60 | source_file_edits: {}, |
61 | CreateFile { | 61 | file_system_edits: [ |
62 | dst: AnchoredPathBuf { | 62 | CreateFile { |
63 | anchor: FileId( | 63 | dst: AnchoredPathBuf { |
64 | 0, | 64 | anchor: FileId( |
65 | ), | 65 | 0, |
66 | path: "foo.rs", | 66 | ), |
67 | path: "foo.rs", | ||
68 | }, | ||
69 | initial_contents: "", | ||
67 | }, | 70 | }, |
68 | initial_contents: "", | 71 | ], |
69 | }, | 72 | is_snippet: false, |
70 | ], | 73 | }, |
71 | is_snippet: false, | 74 | ), |
72 | }, | 75 | }, |
73 | ), | 76 | ], |
74 | }, | ||
75 | ), | 77 | ), |
76 | unused: false, | 78 | unused: false, |
77 | code: Some( | 79 | code: Some( |