about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2021-10-13 14:39:37 +0200
committerLukas Wirth <lukastw97@gmail.com>2021-10-13 14:39:37 +0200
commitccad89a2db105acf5619fe9dbb9d837d4cb41b5f (patch)
tree58e2142fb405ae2278f32dc6d5e3f88bcccf75e5
parent086563f7515d8b9ebefc8706232fa4a6d8826093 (diff)
downloadrust-ccad89a2db105acf5619fe9dbb9d837d4cb41b5f.tar.gz
rust-ccad89a2db105acf5619fe9dbb9d837d4cb41b5f.zip
Make AssistContext::frange private
-rw-r--r--crates/ide_assists/src/assist_context.rs11
-rw-r--r--crates/ide_assists/src/handlers/convert_tuple_struct_to_named_struct.rs2
-rw-r--r--crates/ide_assists/src/handlers/destructure_tuple_binding.rs2
-rw-r--r--crates/ide_assists/src/handlers/expand_glob_import.rs2
-rw-r--r--crates/ide_assists/src/handlers/extract_function.rs4
-rw-r--r--crates/ide_assists/src/handlers/extract_struct_from_enum_variant.rs4
-rw-r--r--crates/ide_assists/src/handlers/extract_type_alias.rs2
-rw-r--r--crates/ide_assists/src/handlers/extract_variable.rs4
-rw-r--r--crates/ide_assists/src/handlers/generate_function.rs2
-rw-r--r--crates/ide_assists/src/handlers/inline_call.rs4
-rw-r--r--crates/ide_assists/src/handlers/inline_local_variable.rs2
-rw-r--r--crates/ide_assists/src/handlers/move_from_mod_rs.rs6
-rw-r--r--crates/ide_assists/src/handlers/move_module_to_file.rs2
-rw-r--r--crates/ide_assists/src/handlers/move_to_mod_rs.rs6
-rw-r--r--crates/ide_assists/src/handlers/sort_items.rs2
15 files changed, 31 insertions, 24 deletions
diff --git a/crates/ide_assists/src/assist_context.rs b/crates/ide_assists/src/assist_context.rs
index 34b0ffc97d4..1181adb8d54 100644
--- a/crates/ide_assists/src/assist_context.rs
+++ b/crates/ide_assists/src/assist_context.rs
@@ -56,7 +56,7 @@ use crate::{
 pub(crate) struct AssistContext<'a> {
     pub(crate) config: &'a AssistConfig,
     pub(crate) sema: Semantics<'a, RootDatabase>,
-    pub(crate) frange: FileRange,
+    frange: FileRange,
     trimmed_range: TextRange,
     source_file: SourceFile,
 }
@@ -98,6 +98,14 @@ impl<'a> AssistContext<'a> {
         self.frange.range.start()
     }
 
+    pub(crate) fn file_id(&self) -> FileId {
+        self.frange.file_id
+    }
+
+    pub(crate) fn has_empty_selection(&self) -> bool {
+        self.trimmed_range.is_empty()
+    }
+
     /// Returns the selected range trimmed for whitespace tokens, that is the range will be snapped
     /// to the nearest enclosed token.
     pub(crate) fn selection_trimmed(&self) -> TextRange {
@@ -125,7 +133,6 @@ impl<'a> AssistContext<'a> {
     /// Returns the element covered by the selection range, this excludes trailing whitespace in the selection.
     pub(crate) fn covering_element(&self) -> SyntaxElement {
         self.source_file.syntax().covering_element(self.selection_trimmed())
-        // self.source_file.syntax().covering_element(self.frange.range)
     }
 }
 
diff --git a/crates/ide_assists/src/handlers/convert_tuple_struct_to_named_struct.rs b/crates/ide_assists/src/handlers/convert_tuple_struct_to_named_struct.rs
index 9b8e548e8f0..9ff4ab90c8f 100644
--- a/crates/ide_assists/src/handlers/convert_tuple_struct_to_named_struct.rs
+++ b/crates/ide_assists/src/handlers/convert_tuple_struct_to_named_struct.rs
@@ -92,7 +92,7 @@ fn edit_struct_def(
     let record_fields = ast::make::record_field_list(record_fields);
     let tuple_fields_text_range = tuple_fields.syntax().text_range();
 
-    edit.edit_file(ctx.frange.file_id);
+    edit.edit_file(ctx.file_id());
 
     if let Either::Left(strukt) = strukt {
         if let Some(w) = strukt.where_clause() {
diff --git a/crates/ide_assists/src/handlers/destructure_tuple_binding.rs b/crates/ide_assists/src/handlers/destructure_tuple_binding.rs
index a57b3c39043..fa85e48c664 100644
--- a/crates/ide_assists/src/handlers/destructure_tuple_binding.rs
+++ b/crates/ide_assists/src/handlers/destructure_tuple_binding.rs
@@ -115,7 +115,7 @@ fn collect_data(ident_pat: IdentPat, ctx: &AssistContext) -> Option<TupleData> {
     let usages = ctx.sema.to_def(&ident_pat).map(|def| {
         Definition::Local(def)
             .usages(&ctx.sema)
-            .in_scope(SearchScope::single_file(ctx.frange.file_id))
+            .in_scope(SearchScope::single_file(ctx.file_id()))
             .all()
     });
 
diff --git a/crates/ide_assists/src/handlers/expand_glob_import.rs b/crates/ide_assists/src/handlers/expand_glob_import.rs
index 6a07136cc89..e2931df3776 100644
--- a/crates/ide_assists/src/handlers/expand_glob_import.rs
+++ b/crates/ide_assists/src/handlers/expand_glob_import.rs
@@ -125,7 +125,7 @@ impl Def {
             Def::MacroDef(def) => Definition::Macro(*def),
         };
 
-        let search_scope = SearchScope::single_file(ctx.frange.file_id);
+        let search_scope = SearchScope::single_file(ctx.file_id());
         def.usages(&ctx.sema).in_scope(search_scope).at_least_one()
     }
 }
diff --git a/crates/ide_assists/src/handlers/extract_function.rs b/crates/ide_assists/src/handlers/extract_function.rs
index deb98ad0836..282f7a60af9 100644
--- a/crates/ide_assists/src/handlers/extract_function.rs
+++ b/crates/ide_assists/src/handlers/extract_function.rs
@@ -309,7 +309,7 @@ impl LocalUsages {
         Self(
             Definition::Local(var)
                 .usages(&ctx.sema)
-                .in_scope(SearchScope::single_file(ctx.frange.file_id))
+                .in_scope(SearchScope::single_file(ctx.file_id()))
                 .all(),
         )
     }
@@ -1039,7 +1039,7 @@ fn is_defined_outside_of_body(
     body: &FunctionBody,
     src: &hir::InFile<Either<ast::IdentPat, ast::SelfParam>>,
 ) -> bool {
-    src.file_id.original_file(ctx.db()) == ctx.frange.file_id
+    src.file_id.original_file(ctx.db()) == ctx.file_id()
         && !body.contains_node(either_syntax(&src.value))
 }
 
diff --git a/crates/ide_assists/src/handlers/extract_struct_from_enum_variant.rs b/crates/ide_assists/src/handlers/extract_struct_from_enum_variant.rs
index d481b8c2981..3b812cdf173 100644
--- a/crates/ide_assists/src/handlers/extract_struct_from_enum_variant.rs
+++ b/crates/ide_assists/src/handlers/extract_struct_from_enum_variant.rs
@@ -72,7 +72,7 @@ pub(crate) fn extract_struct_from_enum_variant(
             // record file references of the file the def resides in, we only want to swap to the edited file in the builder once
             let mut def_file_references = None;
             for (file_id, references) in usages {
-                if file_id == ctx.frange.file_id {
+                if file_id == ctx.file_id() {
                     def_file_references = Some(references);
                     continue;
                 }
@@ -89,7 +89,7 @@ pub(crate) fn extract_struct_from_enum_variant(
                     apply_references(ctx.config.insert_use, path, node, import)
                 });
             }
-            builder.edit_file(ctx.frange.file_id);
+            builder.edit_file(ctx.file_id());
 
             let variant = builder.make_mut(variant.clone());
             if let Some(references) = def_file_references {
diff --git a/crates/ide_assists/src/handlers/extract_type_alias.rs b/crates/ide_assists/src/handlers/extract_type_alias.rs
index f0c4d521dba..d7ad62782f8 100644
--- a/crates/ide_assists/src/handlers/extract_type_alias.rs
+++ b/crates/ide_assists/src/handlers/extract_type_alias.rs
@@ -26,7 +26,7 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
 // }
 // ```
 pub(crate) fn extract_type_alias(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
-    if ctx.frange.range.is_empty() {
+    if ctx.has_empty_selection() {
         return None;
     }
 
diff --git a/crates/ide_assists/src/handlers/extract_variable.rs b/crates/ide_assists/src/handlers/extract_variable.rs
index 544f1fb583d..9550510ca6d 100644
--- a/crates/ide_assists/src/handlers/extract_variable.rs
+++ b/crates/ide_assists/src/handlers/extract_variable.rs
@@ -28,7 +28,7 @@ use crate::{utils::suggest_name, AssistContext, AssistId, AssistKind, Assists};
 // }
 // ```
 pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
-    if ctx.frange.range.is_empty() {
+    if ctx.has_empty_selection() {
         return None;
     }
 
@@ -43,7 +43,7 @@ pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext) -> Option
     let node = node.ancestors().take_while(|anc| anc.text_range() == node.text_range()).last()?;
     let to_extract = node
         .descendants()
-        .take_while(|it| ctx.frange.range.contains_range(it.text_range()))
+        .take_while(|it| ctx.selection_trimmed().contains_range(it.text_range()))
         .find_map(valid_target_expr)?;
 
     if let Some(ty_info) = ctx.sema.type_of_expr(&to_extract) {
diff --git a/crates/ide_assists/src/handlers/generate_function.rs b/crates/ide_assists/src/handlers/generate_function.rs
index baf95635510..2f878704136 100644
--- a/crates/ide_assists/src/handlers/generate_function.rs
+++ b/crates/ide_assists/src/handlers/generate_function.rs
@@ -364,7 +364,7 @@ fn get_fn_target(
     target_module: &Option<Module>,
     call: CallExpr,
 ) -> Option<(GeneratedFunctionTarget, FileId, TextSize)> {
-    let mut file = ctx.frange.file_id;
+    let mut file = ctx.file_id();
     let target = match target_module {
         Some(target_module) => {
             let module_source = target_module.definition_source(ctx.db());
diff --git a/crates/ide_assists/src/handlers/inline_call.rs b/crates/ide_assists/src/handlers/inline_call.rs
index c2b2b5512c7..ae7707667e0 100644
--- a/crates/ide_assists/src/handlers/inline_call.rs
+++ b/crates/ide_assists/src/handlers/inline_call.rs
@@ -59,7 +59,7 @@ use crate::{
 // }
 // ```
 pub(crate) fn inline_into_callers(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
-    let def_file = ctx.frange.file_id;
+    let def_file = ctx.file_id();
     let name = ctx.find_node_at_offset::<ast::Name>()?;
     let ast_func = name.syntax().parent().and_then(ast::Fn::cast)?;
     let func_body = ast_func.body()?;
@@ -199,7 +199,7 @@ pub(crate) fn inline_call(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
     let param_list = fn_source.value.param_list()?;
 
     let FileRange { file_id, range } = fn_source.syntax().original_file_range(ctx.sema.db);
-    if file_id == ctx.frange.file_id && range.contains(ctx.offset()) {
+    if file_id == ctx.file_id() && range.contains(ctx.offset()) {
         cov_mark::hit!(inline_call_recursive);
         return None;
     }
diff --git a/crates/ide_assists/src/handlers/inline_local_variable.rs b/crates/ide_assists/src/handlers/inline_local_variable.rs
index 237b816a240..8e528c8e395 100644
--- a/crates/ide_assists/src/handlers/inline_local_variable.rs
+++ b/crates/ide_assists/src/handlers/inline_local_variable.rs
@@ -33,7 +33,7 @@ use crate::{
 // }
 // ```
 pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
-    let file_id = ctx.frange.file_id;
+    let file_id = ctx.file_id();
     let range = ctx.selection_trimmed();
     let InlineData { let_stmt, delete_let, references, target } =
         if let Some(let_stmt) = ctx.find_node_at_offset::<ast::LetStmt>() {
diff --git a/crates/ide_assists/src/handlers/move_from_mod_rs.rs b/crates/ide_assists/src/handlers/move_from_mod_rs.rs
index 105ca278de8..b49c2e5da58 100644
--- a/crates/ide_assists/src/handlers/move_from_mod_rs.rs
+++ b/crates/ide_assists/src/handlers/move_from_mod_rs.rs
@@ -25,7 +25,7 @@ use crate::{
 // ```
 pub(crate) fn move_from_mod_rs(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
     let source_file = ctx.find_node_at_offset::<ast::SourceFile>()?;
-    let module = ctx.sema.to_module_def(ctx.frange.file_id)?;
+    let module = ctx.sema.to_module_def(ctx.file_id())?;
     // Enable this assist if the user select all "meaningful" content in the source file
     let trimmed_selected_range = trimmed_text_range(&source_file, ctx.selection_trimmed());
     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
     let target = source_file.syntax().text_range();
     let module_name = module.name(ctx.db())?.to_string();
     let path = format!("../{}.rs", module_name);
-    let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
+    let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
     acc.add(
         AssistId("move_from_mod_rs", AssistKind::Refactor),
         format!("Convert {}/mod.rs to {}.rs", module_name, module_name),
         target,
         |builder| {
-            builder.move_file(ctx.frange.file_id, dst);
+            builder.move_file(ctx.file_id(), dst);
         },
     )
 }
diff --git a/crates/ide_assists/src/handlers/move_module_to_file.rs b/crates/ide_assists/src/handlers/move_module_to_file.rs
index 30dc7c5fa40..7dc71cf7103 100644
--- a/crates/ide_assists/src/handlers/move_module_to_file.rs
+++ b/crates/ide_assists/src/handlers/move_module_to_file.rs
@@ -86,7 +86,7 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext) -> Opt
                 buf,
             );
 
-            let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
+            let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
             builder.create_file(dst, contents);
         },
     )
diff --git a/crates/ide_assists/src/handlers/move_to_mod_rs.rs b/crates/ide_assists/src/handlers/move_to_mod_rs.rs
index 183f963d4b0..887960881a2 100644
--- a/crates/ide_assists/src/handlers/move_to_mod_rs.rs
+++ b/crates/ide_assists/src/handlers/move_to_mod_rs.rs
@@ -25,7 +25,7 @@ use crate::{
 // ```
 pub(crate) fn move_to_mod_rs(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
     let source_file = ctx.find_node_at_offset::<ast::SourceFile>()?;
-    let module = ctx.sema.to_module_def(ctx.frange.file_id)?;
+    let module = ctx.sema.to_module_def(ctx.file_id())?;
     // Enable this assist if the user select all "meaningful" content in the source file
     let trimmed_selected_range = trimmed_text_range(&source_file, ctx.selection_trimmed());
     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<(
     let target = source_file.syntax().text_range();
     let module_name = module.name(ctx.db())?.to_string();
     let path = format!("./{}/mod.rs", module_name);
-    let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
+    let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
     acc.add(
         AssistId("move_to_mod_rs", AssistKind::Refactor),
         format!("Convert {}.rs to {}/mod.rs", module_name, module_name),
         target,
         |builder| {
-            builder.move_file(ctx.frange.file_id, dst);
+            builder.move_file(ctx.file_id(), dst);
         },
     )
 }
diff --git a/crates/ide_assists/src/handlers/sort_items.rs b/crates/ide_assists/src/handlers/sort_items.rs
index a9d4f4299e7..f784448471d 100644
--- a/crates/ide_assists/src/handlers/sort_items.rs
+++ b/crates/ide_assists/src/handlers/sort_items.rs
@@ -82,7 +82,7 @@ use crate::{utils::get_methods, AssistContext, AssistId, AssistKind, Assists};
 // }
 // ```
 pub(crate) fn sort_items(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
-    if ctx.frange.range.is_empty() {
+    if ctx.has_empty_selection() {
         cov_mark::hit!(not_applicable_if_no_selection);
         return None;
     }