aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/assist_ctx.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/assist_ctx.rs')
-rw-r--r--crates/ra_assists/src/assist_ctx.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/crates/ra_assists/src/assist_ctx.rs b/crates/ra_assists/src/assist_ctx.rs
index 2ab65ab99..b6cac96fa 100644
--- a/crates/ra_assists/src/assist_ctx.rs
+++ b/crates/ra_assists/src/assist_ctx.rs
@@ -1,8 +1,9 @@
1//! This module defines `AssistCtx` -- the API surface that is exposed to assists. 1//! This module defines `AssistCtx` -- the API surface that is exposed to assists.
2use either::Either; 2use either::Either;
3use hir::{db::HirDatabase, InFile, SourceAnalyzer, SourceBinder}; 3use hir::{db::HirDatabase, InFile, SourceAnalyzer, SourceBinder};
4use ra_db::FileRange; 4use ra_db::{FileRange, SourceDatabase};
5use ra_fmt::{leading_indent, reindent}; 5use ra_fmt::{leading_indent, reindent};
6use ra_ide_db::RootDatabase;
6use ra_syntax::{ 7use ra_syntax::{
7 algo::{self, find_covering_element, find_node_at_offset}, 8 algo::{self, find_covering_element, find_node_at_offset},
8 AstNode, SourceFile, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextUnit, 9 AstNode, SourceFile, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextUnit,
@@ -67,17 +68,24 @@ impl<'a, DB> Clone for AssistCtx<'a, DB> {
67 } 68 }
68} 69}
69 70
70impl<'a, DB: HirDatabase> AssistCtx<'a, DB> { 71impl<'a> AssistCtx<'a, RootDatabase> {
71 pub(crate) fn with_ctx<F, T>(db: &DB, frange: FileRange, should_compute_edit: bool, f: F) -> T 72 pub(crate) fn with_ctx<F, T>(
73 db: &RootDatabase,
74 frange: FileRange,
75 should_compute_edit: bool,
76 f: F,
77 ) -> T
72 where 78 where
73 F: FnOnce(AssistCtx<DB>) -> T, 79 F: FnOnce(AssistCtx<RootDatabase>) -> T,
74 { 80 {
75 let parse = db.parse(frange.file_id); 81 let parse = db.parse(frange.file_id);
76 82
77 let ctx = AssistCtx { db, frange, source_file: parse.tree(), should_compute_edit }; 83 let ctx = AssistCtx { db, frange, source_file: parse.tree(), should_compute_edit };
78 f(ctx) 84 f(ctx)
79 } 85 }
86}
80 87
88impl<'a, DB: HirDatabase> AssistCtx<'a, DB> {
81 pub(crate) fn add_assist( 89 pub(crate) fn add_assist(
82 self, 90 self,
83 id: AssistId, 91 id: AssistId,