Skip to content

Commit e24429f

Browse files
bors[bot]Veykril
andauthored
Merge #10536
10536: minor: Make AssistContext::frange private r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
2 parents 137ac67 + ccad89a commit e24429f

15 files changed

+31
-24
lines changed

crates/ide_assists/src/assist_context.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ use crate::{
5656
pub(crate) struct AssistContext<'a> {
5757
pub(crate) config: &'a AssistConfig,
5858
pub(crate) sema: Semantics<'a, RootDatabase>,
59-
pub(crate) frange: FileRange,
59+
frange: FileRange,
6060
trimmed_range: TextRange,
6161
source_file: SourceFile,
6262
}
@@ -98,6 +98,14 @@ impl<'a> AssistContext<'a> {
9898
self.frange.range.start()
9999
}
100100

101+
pub(crate) fn file_id(&self) -> FileId {
102+
self.frange.file_id
103+
}
104+
105+
pub(crate) fn has_empty_selection(&self) -> bool {
106+
self.trimmed_range.is_empty()
107+
}
108+
101109
/// Returns the selected range trimmed for whitespace tokens, that is the range will be snapped
102110
/// to the nearest enclosed token.
103111
pub(crate) fn selection_trimmed(&self) -> TextRange {
@@ -125,7 +133,6 @@ impl<'a> AssistContext<'a> {
125133
/// Returns the element covered by the selection range, this excludes trailing whitespace in the selection.
126134
pub(crate) fn covering_element(&self) -> SyntaxElement {
127135
self.source_file.syntax().covering_element(self.selection_trimmed())
128-
// self.source_file.syntax().covering_element(self.frange.range)
129136
}
130137
}
131138

crates/ide_assists/src/handlers/convert_tuple_struct_to_named_struct.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ fn edit_struct_def(
9292
let record_fields = ast::make::record_field_list(record_fields);
9393
let tuple_fields_text_range = tuple_fields.syntax().text_range();
9494

95-
edit.edit_file(ctx.frange.file_id);
95+
edit.edit_file(ctx.file_id());
9696

9797
if let Either::Left(strukt) = strukt {
9898
if let Some(w) = strukt.where_clause() {

crates/ide_assists/src/handlers/destructure_tuple_binding.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ fn collect_data(ident_pat: IdentPat, ctx: &AssistContext) -> Option<TupleData> {
115115
let usages = ctx.sema.to_def(&ident_pat).map(|def| {
116116
Definition::Local(def)
117117
.usages(&ctx.sema)
118-
.in_scope(SearchScope::single_file(ctx.frange.file_id))
118+
.in_scope(SearchScope::single_file(ctx.file_id()))
119119
.all()
120120
});
121121

crates/ide_assists/src/handlers/expand_glob_import.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ impl Def {
125125
Def::MacroDef(def) => Definition::Macro(*def),
126126
};
127127

128-
let search_scope = SearchScope::single_file(ctx.frange.file_id);
128+
let search_scope = SearchScope::single_file(ctx.file_id());
129129
def.usages(&ctx.sema).in_scope(search_scope).at_least_one()
130130
}
131131
}

crates/ide_assists/src/handlers/extract_function.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ impl LocalUsages {
309309
Self(
310310
Definition::Local(var)
311311
.usages(&ctx.sema)
312-
.in_scope(SearchScope::single_file(ctx.frange.file_id))
312+
.in_scope(SearchScope::single_file(ctx.file_id()))
313313
.all(),
314314
)
315315
}
@@ -1039,7 +1039,7 @@ fn is_defined_outside_of_body(
10391039
body: &FunctionBody,
10401040
src: &hir::InFile<Either<ast::IdentPat, ast::SelfParam>>,
10411041
) -> bool {
1042-
src.file_id.original_file(ctx.db()) == ctx.frange.file_id
1042+
src.file_id.original_file(ctx.db()) == ctx.file_id()
10431043
&& !body.contains_node(either_syntax(&src.value))
10441044
}
10451045

crates/ide_assists/src/handlers/extract_struct_from_enum_variant.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ pub(crate) fn extract_struct_from_enum_variant(
7272
// record file references of the file the def resides in, we only want to swap to the edited file in the builder once
7373
let mut def_file_references = None;
7474
for (file_id, references) in usages {
75-
if file_id == ctx.frange.file_id {
75+
if file_id == ctx.file_id() {
7676
def_file_references = Some(references);
7777
continue;
7878
}
@@ -89,7 +89,7 @@ pub(crate) fn extract_struct_from_enum_variant(
8989
apply_references(ctx.config.insert_use, path, node, import)
9090
});
9191
}
92-
builder.edit_file(ctx.frange.file_id);
92+
builder.edit_file(ctx.file_id());
9393

9494
let variant = builder.make_mut(variant.clone());
9595
if let Some(references) = def_file_references {

crates/ide_assists/src/handlers/extract_type_alias.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
2626
// }
2727
// ```
2828
pub(crate) fn extract_type_alias(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
29-
if ctx.frange.range.is_empty() {
29+
if ctx.has_empty_selection() {
3030
return None;
3131
}
3232

crates/ide_assists/src/handlers/extract_variable.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use crate::{utils::suggest_name, AssistContext, AssistId, AssistKind, Assists};
2828
// }
2929
// ```
3030
pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
31-
if ctx.frange.range.is_empty() {
31+
if ctx.has_empty_selection() {
3232
return None;
3333
}
3434

@@ -43,7 +43,7 @@ pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext) -> Option
4343
let node = node.ancestors().take_while(|anc| anc.text_range() == node.text_range()).last()?;
4444
let to_extract = node
4545
.descendants()
46-
.take_while(|it| ctx.frange.range.contains_range(it.text_range()))
46+
.take_while(|it| ctx.selection_trimmed().contains_range(it.text_range()))
4747
.find_map(valid_target_expr)?;
4848

4949
if let Some(ty_info) = ctx.sema.type_of_expr(&to_extract) {

crates/ide_assists/src/handlers/generate_function.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ fn get_fn_target(
364364
target_module: &Option<Module>,
365365
call: CallExpr,
366366
) -> Option<(GeneratedFunctionTarget, FileId, TextSize)> {
367-
let mut file = ctx.frange.file_id;
367+
let mut file = ctx.file_id();
368368
let target = match target_module {
369369
Some(target_module) => {
370370
let module_source = target_module.definition_source(ctx.db());

crates/ide_assists/src/handlers/inline_call.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ use crate::{
5959
// }
6060
// ```
6161
pub(crate) fn inline_into_callers(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
62-
let def_file = ctx.frange.file_id;
62+
let def_file = ctx.file_id();
6363
let name = ctx.find_node_at_offset::<ast::Name>()?;
6464
let ast_func = name.syntax().parent().and_then(ast::Fn::cast)?;
6565
let func_body = ast_func.body()?;
@@ -199,7 +199,7 @@ pub(crate) fn inline_call(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
199199
let param_list = fn_source.value.param_list()?;
200200

201201
let FileRange { file_id, range } = fn_source.syntax().original_file_range(ctx.sema.db);
202-
if file_id == ctx.frange.file_id && range.contains(ctx.offset()) {
202+
if file_id == ctx.file_id() && range.contains(ctx.offset()) {
203203
cov_mark::hit!(inline_call_recursive);
204204
return None;
205205
}

crates/ide_assists/src/handlers/inline_local_variable.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use crate::{
3333
// }
3434
// ```
3535
pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
36-
let file_id = ctx.frange.file_id;
36+
let file_id = ctx.file_id();
3737
let range = ctx.selection_trimmed();
3838
let InlineData { let_stmt, delete_let, references, target } =
3939
if let Some(let_stmt) = ctx.find_node_at_offset::<ast::LetStmt>() {

crates/ide_assists/src/handlers/move_from_mod_rs.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use crate::{
2525
// ```
2626
pub(crate) fn move_from_mod_rs(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
2727
let source_file = ctx.find_node_at_offset::<ast::SourceFile>()?;
28-
let module = ctx.sema.to_module_def(ctx.frange.file_id)?;
28+
let module = ctx.sema.to_module_def(ctx.file_id())?;
2929
// Enable this assist if the user select all "meaningful" content in the source file
3030
let trimmed_selected_range = trimmed_text_range(&source_file, ctx.selection_trimmed());
3131
let trimmed_file_range = trimmed_text_range(&source_file, source_file.syntax().text_range());
@@ -41,13 +41,13 @@ pub(crate) fn move_from_mod_rs(acc: &mut Assists, ctx: &AssistContext) -> Option
4141
let target = source_file.syntax().text_range();
4242
let module_name = module.name(ctx.db())?.to_string();
4343
let path = format!("../{}.rs", module_name);
44-
let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
44+
let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
4545
acc.add(
4646
AssistId("move_from_mod_rs", AssistKind::Refactor),
4747
format!("Convert {}/mod.rs to {}.rs", module_name, module_name),
4848
target,
4949
|builder| {
50-
builder.move_file(ctx.frange.file_id, dst);
50+
builder.move_file(ctx.file_id(), dst);
5151
},
5252
)
5353
}

crates/ide_assists/src/handlers/move_module_to_file.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext) -> Opt
8686
buf,
8787
);
8888

89-
let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
89+
let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
9090
builder.create_file(dst, contents);
9191
},
9292
)

crates/ide_assists/src/handlers/move_to_mod_rs.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use crate::{
2525
// ```
2626
pub(crate) fn move_to_mod_rs(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
2727
let source_file = ctx.find_node_at_offset::<ast::SourceFile>()?;
28-
let module = ctx.sema.to_module_def(ctx.frange.file_id)?;
28+
let module = ctx.sema.to_module_def(ctx.file_id())?;
2929
// Enable this assist if the user select all "meaningful" content in the source file
3030
let trimmed_selected_range = trimmed_text_range(&source_file, ctx.selection_trimmed());
3131
let trimmed_file_range = trimmed_text_range(&source_file, source_file.syntax().text_range());
@@ -41,13 +41,13 @@ pub(crate) fn move_to_mod_rs(acc: &mut Assists, ctx: &AssistContext) -> Option<(
4141
let target = source_file.syntax().text_range();
4242
let module_name = module.name(ctx.db())?.to_string();
4343
let path = format!("./{}/mod.rs", module_name);
44-
let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
44+
let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
4545
acc.add(
4646
AssistId("move_to_mod_rs", AssistKind::Refactor),
4747
format!("Convert {}.rs to {}/mod.rs", module_name, module_name),
4848
target,
4949
|builder| {
50-
builder.move_file(ctx.frange.file_id, dst);
50+
builder.move_file(ctx.file_id(), dst);
5151
},
5252
)
5353
}

crates/ide_assists/src/handlers/sort_items.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ use crate::{utils::get_methods, AssistContext, AssistId, AssistKind, Assists};
8282
// }
8383
// ```
8484
pub(crate) fn sort_items(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
85-
if ctx.frange.range.is_empty() {
85+
if ctx.has_empty_selection() {
8686
cov_mark::hit!(not_applicable_if_no_selection);
8787
return None;
8888
}

0 commit comments

Comments
 (0)