From 8d34262956059aca7e6fded351a9299b3581a5cf Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 12 Aug 2020 16:52:28 +0200 Subject: [PATCH 1/3] Rename ra_toolchain -> toolchain --- Cargo.lock | 22 +++++++++---------- crates/flycheck/Cargo.toml | 2 +- crates/flycheck/src/lib.rs | 2 +- crates/ra_proc_macro_srv/Cargo.toml | 2 +- crates/ra_proc_macro_srv/src/tests/utils.rs | 2 +- crates/ra_project_model/Cargo.toml | 2 +- .../ra_project_model/src/cargo_workspace.rs | 4 ++-- crates/ra_project_model/src/lib.rs | 2 +- crates/ra_project_model/src/sysroot.rs | 4 ++-- crates/rust-analyzer/Cargo.toml | 2 +- crates/rust-analyzer/src/handlers.rs | 2 +- crates/{ra_toolchain => toolchain}/Cargo.toml | 8 +++---- crates/{ra_toolchain => toolchain}/src/lib.rs | 4 +--- editors/code/src/toolchain.ts | 4 ++-- 14 files changed, 30 insertions(+), 32 deletions(-) rename crates/{ra_toolchain => toolchain}/Cargo.toml (78%) rename crates/{ra_toolchain => toolchain}/src/lib.rs (93%) diff --git a/Cargo.lock b/Cargo.lock index 598b739c7e1..c48c6a59779 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -358,8 +358,8 @@ dependencies = [ "crossbeam-channel", "jod-thread", "log", - "ra_toolchain", "serde_json", + "toolchain", ] [[package]] @@ -1143,9 +1143,9 @@ dependencies = [ "memmap", "ra_mbe", "ra_proc_macro", - "ra_toolchain", "serde_derive", "test_utils", + "toolchain", "tt", ] @@ -1161,11 +1161,11 @@ dependencies = [ "ra_cfg", "ra_db", "ra_proc_macro", - "ra_toolchain", "rustc-hash", "serde", "serde_json", "stdx", + "toolchain", ] [[package]] @@ -1210,13 +1210,6 @@ dependencies = [ "text-size", ] -[[package]] -name = "ra_toolchain" -version = "0.1.0" -dependencies = [ - "home", -] - [[package]] name = "rayon" version = "1.3.1" @@ -1320,7 +1313,6 @@ dependencies = [ "ra_ssr", "ra_syntax", "ra_text_edit", - "ra_toolchain", "rayon", "rustc-hash", "serde", @@ -1328,6 +1320,7 @@ dependencies = [ "stdx", "test_utils", "threadpool", + "toolchain", "tt", "vfs", "vfs-notify", @@ -1612,6 +1605,13 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +[[package]] +name = "toolchain" +version = "0.0.0" +dependencies = [ + "home", +] + [[package]] name = "tracing" version = "0.1.18" diff --git a/crates/flycheck/Cargo.toml b/crates/flycheck/Cargo.toml index ff8a1e5689d..acc72bc59cc 100644 --- a/crates/flycheck/Cargo.toml +++ b/crates/flycheck/Cargo.toml @@ -14,4 +14,4 @@ log = "0.4.8" cargo_metadata = "0.11.1" serde_json = "1.0.48" jod-thread = "0.1.1" -ra_toolchain = { path = "../ra_toolchain" } +toolchain = { path = "../toolchain" } diff --git a/crates/flycheck/src/lib.rs b/crates/flycheck/src/lib.rs index 31e14246de8..16078d10434 100644 --- a/crates/flycheck/src/lib.rs +++ b/crates/flycheck/src/lib.rs @@ -193,7 +193,7 @@ impl FlycheckActor { extra_args, features, } => { - let mut cmd = Command::new(ra_toolchain::cargo()); + let mut cmd = Command::new(toolchain::cargo()); cmd.arg(command); cmd.args(&["--workspace", "--message-format=json", "--manifest-path"]) .arg(self.workspace_root.join("Cargo.toml")); diff --git a/crates/ra_proc_macro_srv/Cargo.toml b/crates/ra_proc_macro_srv/Cargo.toml index a690cc0443e..1c25e72296f 100644 --- a/crates/ra_proc_macro_srv/Cargo.toml +++ b/crates/ra_proc_macro_srv/Cargo.toml @@ -23,4 +23,4 @@ cargo_metadata = "0.11.1" difference = "2.0.0" # used as proc macro test target serde_derive = "1.0.106" -ra_toolchain = { path = "../ra_toolchain" } +toolchain = { path = "../toolchain" } diff --git a/crates/ra_proc_macro_srv/src/tests/utils.rs b/crates/ra_proc_macro_srv/src/tests/utils.rs index dcb00671ffb..1b6a0b6fb79 100644 --- a/crates/ra_proc_macro_srv/src/tests/utils.rs +++ b/crates/ra_proc_macro_srv/src/tests/utils.rs @@ -12,7 +12,7 @@ mod fixtures { // Use current project metadata to get the proc-macro dylib path pub fn dylib_path(crate_name: &str, version: &str) -> std::path::PathBuf { - let command = Command::new(ra_toolchain::cargo()) + let command = Command::new(toolchain::cargo()) .args(&["check", "--message-format", "json"]) .output() .unwrap() diff --git a/crates/ra_project_model/Cargo.toml b/crates/ra_project_model/Cargo.toml index 27b1f5d33f9..171fe86264b 100644 --- a/crates/ra_project_model/Cargo.toml +++ b/crates/ra_project_model/Cargo.toml @@ -17,7 +17,7 @@ cargo_metadata = "0.11.1" arena = { path = "../arena" } ra_cfg = { path = "../ra_cfg" } ra_db = { path = "../ra_db" } -ra_toolchain = { path = "../ra_toolchain" } +toolchain = { path = "../toolchain" } ra_proc_macro = { path = "../ra_proc_macro" } paths = { path = "../paths" } stdx = { path = "../stdx" } diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs index a526d743d4e..abf8dca9644 100644 --- a/crates/ra_project_model/src/cargo_workspace.rs +++ b/crates/ra_project_model/src/cargo_workspace.rs @@ -140,7 +140,7 @@ impl CargoWorkspace { cargo_features: &CargoConfig, ) -> Result { let mut meta = MetadataCommand::new(); - meta.cargo_path(ra_toolchain::cargo()); + meta.cargo_path(toolchain::cargo()); meta.manifest_path(cargo_toml.to_path_buf()); if cargo_features.all_features { meta.features(CargoOpt::AllFeatures); @@ -288,7 +288,7 @@ pub fn load_extern_resources( cargo_toml: &Path, cargo_features: &CargoConfig, ) -> Result { - let mut cmd = Command::new(ra_toolchain::cargo()); + let mut cmd = Command::new(toolchain::cargo()); cmd.args(&["check", "--message-format=json", "--manifest-path"]).arg(cargo_toml); if cargo_features.all_features { cmd.arg("--all-features"); diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs index 300e751355b..46f44910c03 100644 --- a/crates/ra_project_model/src/lib.rs +++ b/crates/ra_project_model/src/lib.rs @@ -513,7 +513,7 @@ fn get_rustc_cfg_options(target: Option<&str>) -> Vec { } let rustc_cfgs = { - let mut cmd = Command::new(ra_toolchain::rustc()); + let mut cmd = Command::new(toolchain::rustc()); cmd.args(&["--print", "cfg", "-O"]); if let Some(target) = target { cmd.args(&["--target", target]); diff --git a/crates/ra_project_model/src/sysroot.rs b/crates/ra_project_model/src/sysroot.rs index 6ef001769c9..8239797b6b7 100644 --- a/crates/ra_project_model/src/sysroot.rs +++ b/crates/ra_project_model/src/sysroot.rs @@ -101,13 +101,13 @@ fn get_or_install_rust_src(cargo_toml: &AbsPath) -> Result { return Ok(path); } let current_dir = cargo_toml.parent().unwrap(); - let mut rustc = Command::new(ra_toolchain::rustc()); + let mut rustc = Command::new(toolchain::rustc()); rustc.current_dir(current_dir).args(&["--print", "sysroot"]); let stdout = utf8_stdout(rustc)?; let sysroot_path = AbsPath::assert(Path::new(stdout.trim())); let mut src = get_rust_src(sysroot_path); if src.is_none() { - let mut rustup = Command::new(ra_toolchain::rustup()); + let mut rustup = Command::new(toolchain::rustup()); rustup.current_dir(current_dir).args(&["component", "add", "rust-src"]); utf8_stdout(rustup)?; src = get_rust_src(sysroot_path); diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml index 9bc5cc63146..3f70510fd76 100644 --- a/crates/rust-analyzer/Cargo.toml +++ b/crates/rust-analyzer/Cargo.toml @@ -43,7 +43,7 @@ ra_text_edit = { path = "../ra_text_edit" } vfs = { path = "../vfs" } vfs-notify = { path = "../vfs-notify" } ra_cfg = { path = "../ra_cfg" } -ra_toolchain = { path = "../ra_toolchain" } +toolchain = { path = "../toolchain" } # This should only be used in CLI ra_db = { path = "../ra_db" } diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs index d9b75eed45b..07f4af3d3b6 100644 --- a/crates/rust-analyzer/src/handlers.rs +++ b/crates/rust-analyzer/src/handlers.rs @@ -692,7 +692,7 @@ pub(crate) fn handle_formatting( let mut rustfmt = match &snap.config.rustfmt { RustfmtConfig::Rustfmt { extra_args } => { - let mut cmd = process::Command::new(ra_toolchain::rustfmt()); + let mut cmd = process::Command::new(toolchain::rustfmt()); cmd.args(extra_args); if let Some(&crate_id) = crate_ids.first() { // Assume all crates are in the same edition diff --git a/crates/ra_toolchain/Cargo.toml b/crates/toolchain/Cargo.toml similarity index 78% rename from crates/ra_toolchain/Cargo.toml rename to crates/toolchain/Cargo.toml index 84b748c0a47..4856668f844 100644 --- a/crates/ra_toolchain/Cargo.toml +++ b/crates/toolchain/Cargo.toml @@ -1,9 +1,9 @@ [package] -edition = "2018" -name = "ra_toolchain" -version = "0.1.0" -authors = ["rust-analyzer developers"] +name = "toolchain" +version = "0.0.0" license = "MIT OR Apache-2.0" +authors = ["rust-analyzer developers"] +edition = "2018" [lib] doctest = false diff --git a/crates/ra_toolchain/src/lib.rs b/crates/toolchain/src/lib.rs similarity index 93% rename from crates/ra_toolchain/src/lib.rs rename to crates/toolchain/src/lib.rs index 9916e52c480..3b6886f5b57 100644 --- a/crates/ra_toolchain/src/lib.rs +++ b/crates/toolchain/src/lib.rs @@ -1,6 +1,4 @@ -//! This crate contains a single public function -//! [`get_path_for_executable`](fn.get_path_for_executable.html). -//! See docs there for more information. +//! Discovery of `cargo` & `rustc` executables. use std::{env, iter, path::PathBuf}; pub fn cargo() -> PathBuf { diff --git a/editors/code/src/toolchain.ts b/editors/code/src/toolchain.ts index 80a7915e90e..a5dc3cf0ccf 100644 --- a/editors/code/src/toolchain.ts +++ b/editors/code/src/toolchain.ts @@ -121,12 +121,12 @@ export class Cargo { } } -/** Mirrors `ra_toolchain::cargo()` implementation */ +/** Mirrors `toolchain::cargo()` implementation */ export function cargoPath(): string { return getPathForExecutable("cargo"); } -/** Mirrors `ra_toolchain::get_path_for_executable()` implementation */ +/** Mirrors `toolchain::get_path_for_executable()` implementation */ export const getPathForExecutable = memoize( // We apply caching to decrease file-system interactions (executableName: "cargo" | "rustc" | "rustup"): string => { From 7510048ec0a5d5e7136e3ea258954eb244d15baf Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 12 Aug 2020 16:58:56 +0200 Subject: [PATCH 2/3] Cleanup TextEdit API --- Cargo.lock | 2 +- crates/ra_assists/src/assist_context.rs | 4 +-- crates/ra_ide/src/diagnostics.rs | 6 ++--- .../src/diagnostics/diagnostics_with_fix.rs | 4 +-- crates/ra_ide/src/join_lines.rs | 4 +-- crates/ra_ide/src/references/rename.rs | 2 +- crates/ra_ssr/src/replacing.rs | 2 +- crates/ra_text_edit/Cargo.toml | 7 +++-- crates/ra_text_edit/src/lib.rs | 27 +++++++++++++------ 9 files changed, 34 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c48c6a59779..daa87254640 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1205,7 +1205,7 @@ dependencies = [ [[package]] name = "ra_text_edit" -version = "0.1.0" +version = "0.0.0" dependencies = [ "text-size", ] diff --git a/crates/ra_assists/src/assist_context.rs b/crates/ra_assists/src/assist_context.rs index afd3fd4b9e3..afba860d1dc 100644 --- a/crates/ra_assists/src/assist_context.rs +++ b/crates/ra_assists/src/assist_context.rs @@ -15,7 +15,7 @@ use ra_syntax::{ AstNode, SourceFile, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextSize, TokenAtOffset, }; -use ra_text_edit::TextEditBuilder; +use ra_text_edit::{TextEdit, TextEditBuilder}; use crate::{ assist_config::{AssistConfig, SnippetCap}, @@ -214,7 +214,7 @@ pub(crate) struct AssistBuilder { impl AssistBuilder { pub(crate) fn new(file_id: FileId) -> AssistBuilder { AssistBuilder { - edit: TextEditBuilder::default(), + edit: TextEdit::builder(), file_id, is_snippet: false, change: SourceChange::default(), diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ra_ide/src/diagnostics.rs index 07bf133bd6c..e006c777548 100644 --- a/crates/ra_ide/src/diagnostics.rs +++ b/crates/ra_ide/src/diagnostics.rs @@ -14,7 +14,7 @@ use ra_syntax::{ ast::{self, AstNode}, SyntaxNode, TextRange, T, }; -use ra_text_edit::{TextEdit, TextEditBuilder}; +use ra_text_edit::TextEdit; use crate::{Diagnostic, FileId, Fix, SourceFileEdit}; @@ -103,7 +103,7 @@ fn check_unnecessary_braces_in_use_statement( text_edit_for_remove_unnecessary_braces_with_self_in_use_statement(&single_use_tree) .unwrap_or_else(|| { let to_replace = single_use_tree.syntax().text().to_string(); - let mut edit_builder = TextEditBuilder::default(); + let mut edit_builder = TextEdit::builder(); edit_builder.delete(use_range); edit_builder.insert(use_range.start(), to_replace); edit_builder.finish() @@ -149,7 +149,7 @@ fn check_struct_shorthand_initialization( let field_expr = expr.syntax().text().to_string(); let field_name_is_tup_index = name_ref.as_tuple_field().is_some(); if field_name == field_expr && !field_name_is_tup_index { - let mut edit_builder = TextEditBuilder::default(); + let mut edit_builder = TextEdit::builder(); edit_builder.delete(record_field.syntax().text_range()); edit_builder.insert(record_field.syntax().text_range().start(), field_name); let edit = edit_builder.finish(); diff --git a/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs b/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs index f7c73773f3a..88e593e0039 100644 --- a/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs +++ b/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs @@ -13,7 +13,7 @@ use ra_ide_db::{ RootDatabase, }; use ra_syntax::{algo, ast, AstNode}; -use ra_text_edit::{TextEdit, TextEditBuilder}; +use ra_text_edit::TextEdit; /// A [Diagnostic] that potentially has a fix available. /// @@ -70,7 +70,7 @@ impl DiagnosticWithFix for MissingFields { } let edit = { - let mut builder = TextEditBuilder::default(); + let mut builder = TextEdit::builder(); algo::diff(&old_field_list.syntax(), &new_field_list.syntax()) .into_text_edit(&mut builder); builder.finish() diff --git a/crates/ra_ide/src/join_lines.rs b/crates/ra_ide/src/join_lines.rs index 6907c09e80c..1c881386f7d 100644 --- a/crates/ra_ide/src/join_lines.rs +++ b/crates/ra_ide/src/join_lines.rs @@ -23,7 +23,7 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> TextEdit { let syntax = file.syntax(); let text = syntax.text().slice(range.start()..); let pos = match text.find_char('\n') { - None => return TextEditBuilder::default().finish(), + None => return TextEdit::builder().finish(), Some(pos) => pos, }; TextRange::at(range.start() + pos, TextSize::of('\n')) @@ -35,7 +35,7 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> TextEdit { NodeOrToken::Node(node) => node, NodeOrToken::Token(token) => token.parent(), }; - let mut edit = TextEditBuilder::default(); + let mut edit = TextEdit::builder(); for token in node.descendants_with_tokens().filter_map(|it| it.into_token()) { let range = match range.intersect(token.text_range()) { Some(range) => range, diff --git a/crates/ra_ide/src/references/rename.rs b/crates/ra_ide/src/references/rename.rs index c8d80fcf7cb..8c1ac3c5601 100644 --- a/crates/ra_ide/src/references/rename.rs +++ b/crates/ra_ide/src/references/rename.rs @@ -281,7 +281,7 @@ mod tests { let ra_fixture_after = &trim_indent(ra_fixture_after); let (analysis, position) = analysis_and_position(ra_fixture_before); let source_change = analysis.rename(position, new_name).unwrap(); - let mut text_edit_builder = TextEditBuilder::default(); + let mut text_edit_builder = TextEdit::builder(); let mut file_id: Option = None; if let Some(change) = source_change { for edit in change.info.source_file_edits { diff --git a/crates/ra_ssr/src/replacing.rs b/crates/ra_ssr/src/replacing.rs index 0943244ff9f..36ced3842da 100644 --- a/crates/ra_ssr/src/replacing.rs +++ b/crates/ra_ssr/src/replacing.rs @@ -24,7 +24,7 @@ fn matches_to_edit_at_offset( relative_start: TextSize, rules: &[ResolvedRule], ) -> TextEdit { - let mut edit_builder = ra_text_edit::TextEditBuilder::default(); + let mut edit_builder = TextEdit::builder(); for m in &matches.matches { edit_builder.replace( m.range.range.checked_sub(relative_start).unwrap(), diff --git a/crates/ra_text_edit/Cargo.toml b/crates/ra_text_edit/Cargo.toml index dbb22335042..427862a5cc5 100644 --- a/crates/ra_text_edit/Cargo.toml +++ b/crates/ra_text_edit/Cargo.toml @@ -1,10 +1,9 @@ [package] -edition = "2018" name = "ra_text_edit" -version = "0.1.0" -authors = ["rust-analyzer developers"] -publish = false +version = "0.0.0" license = "MIT OR Apache-2.0" +authors = ["rust-analyzer developers"] +edition = "2018" [lib] doctest = false diff --git a/crates/ra_text_edit/src/lib.rs b/crates/ra_text_edit/src/lib.rs index d68791cf1fd..ab8cd7fd119 100644 --- a/crates/ra_text_edit/src/lib.rs +++ b/crates/ra_text_edit/src/lib.rs @@ -3,8 +3,6 @@ //! `rust-analyzer` never mutates text itself and only sends diffs to clients, //! so `TextEdit` is the ultimate representation of the work done by //! rust-analyzer. -use std::{slice, vec}; - pub use text_size::{TextRange, TextSize}; /// `InsertDelete` -- a single "atomic" change to text @@ -46,20 +44,24 @@ impl Indel { } impl TextEdit { + pub fn builder() -> TextEditBuilder { + TextEditBuilder::default() + } + pub fn insert(offset: TextSize, text: String) -> TextEdit { - let mut builder = TextEditBuilder::default(); + let mut builder = TextEdit::builder(); builder.insert(offset, text); builder.finish() } pub fn delete(range: TextRange) -> TextEdit { - let mut builder = TextEditBuilder::default(); + let mut builder = TextEdit::builder(); builder.delete(range); builder.finish() } pub fn replace(range: TextRange, replace_with: String) -> TextEdit { - let mut builder = TextEditBuilder::default(); + let mut builder = TextEdit::builder(); builder.replace(range, replace_with); builder.finish() } @@ -72,8 +74,8 @@ impl TextEdit { self.indels.is_empty() } - pub fn iter(&self) -> slice::Iter<'_, Indel> { - self.indels.iter() + pub fn iter(&self) -> std::slice::Iter<'_, Indel> { + self.into_iter() } pub fn apply(&self, text: &mut String) { @@ -139,13 +141,22 @@ impl TextEdit { impl IntoIterator for TextEdit { type Item = Indel; - type IntoIter = vec::IntoIter; + type IntoIter = std::vec::IntoIter; fn into_iter(self) -> Self::IntoIter { self.indels.into_iter() } } +impl<'a> IntoIterator for &'a TextEdit { + type Item = &'a Indel; + type IntoIter = std::slice::Iter<'a, Indel>; + + fn into_iter(self) -> Self::IntoIter { + self.indels.iter() + } +} + impl TextEditBuilder { pub fn replace(&mut self, range: TextRange, replace_with: String) { self.indels.push(Indel::replace(range, replace_with)) From 6dafc13f5f776980cd2560fb79d3d4790811c96d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 12 Aug 2020 17:03:06 +0200 Subject: [PATCH 3/3] Rename ra_text_edit -> text_edit --- Cargo.lock | 26 +++++++++---------- crates/ra_assists/Cargo.toml | 2 +- crates/ra_assists/src/assist_context.rs | 2 +- crates/ra_assists/src/utils/insert_use.rs | 4 +-- crates/ra_ide/Cargo.toml | 2 +- .../ra_ide/src/completion/complete_postfix.rs | 2 +- .../src/completion/complete_trait_impl.rs | 2 +- .../src/completion/completion_context.rs | 2 +- .../ra_ide/src/completion/completion_item.rs | 2 +- crates/ra_ide/src/diagnostics.rs | 2 +- .../src/diagnostics/diagnostics_with_fix.rs | 2 +- crates/ra_ide/src/join_lines.rs | 2 +- crates/ra_ide/src/lib.rs | 2 +- crates/ra_ide/src/references/rename.rs | 4 +-- crates/ra_ide/src/typing.rs | 2 +- crates/ra_ide/src/typing/on_enter.rs | 2 +- crates/ra_ide_db/Cargo.toml | 2 +- crates/ra_ide_db/src/source_change.rs | 2 +- crates/ra_ssr/Cargo.toml | 2 +- crates/ra_ssr/src/replacing.rs | 2 +- crates/ra_syntax/Cargo.toml | 2 +- crates/ra_syntax/fuzz/Cargo.toml | 2 +- crates/ra_syntax/src/algo.rs | 2 +- crates/ra_syntax/src/fuzz.rs | 2 +- crates/ra_syntax/src/lib.rs | 2 +- crates/ra_syntax/src/parsing/reparsing.rs | 2 +- crates/rust-analyzer/Cargo.toml | 2 +- crates/{ra_text_edit => text_edit}/Cargo.toml | 2 +- crates/{ra_text_edit => text_edit}/src/lib.rs | 0 29 files changed, 42 insertions(+), 42 deletions(-) rename crates/{ra_text_edit => text_edit}/Cargo.toml (88%) rename crates/{ra_text_edit => text_edit}/src/lib.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index daa87254640..4a6a6593415 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -927,10 +927,10 @@ dependencies = [ "ra_hir", "ra_ide_db", "ra_syntax", - "ra_text_edit", "rustc-hash", "stdx", "test_utils", + "text_edit", ] [[package]] @@ -1075,10 +1075,10 @@ dependencies = [ "ra_ide_db", "ra_ssr", "ra_syntax", - "ra_text_edit", "rustc-hash", "stdx", "test_utils", + "text_edit", ] [[package]] @@ -1093,11 +1093,11 @@ dependencies = [ "ra_db", "ra_hir", "ra_syntax", - "ra_text_edit", "rayon", "rustc-hash", "stdx", "test_utils", + "text_edit", ] [[package]] @@ -1177,9 +1177,9 @@ dependencies = [ "ra_hir", "ra_ide_db", "ra_syntax", - "ra_text_edit", "rustc-hash", "test_utils", + "text_edit", ] [[package]] @@ -1191,7 +1191,6 @@ dependencies = [ "itertools", "once_cell", "ra_parser", - "ra_text_edit", "rayon", "rowan", "rustc-ap-rustc_lexer", @@ -1200,16 +1199,10 @@ dependencies = [ "smol_str", "stdx", "test_utils", + "text_edit", "walkdir", ] -[[package]] -name = "ra_text_edit" -version = "0.0.0" -dependencies = [ - "text-size", -] - [[package]] name = "rayon" version = "1.3.1" @@ -1312,13 +1305,13 @@ dependencies = [ "ra_project_model", "ra_ssr", "ra_syntax", - "ra_text_edit", "rayon", "rustc-hash", "serde", "serde_json", "stdx", "test_utils", + "text_edit", "threadpool", "toolchain", "tt", @@ -1565,6 +1558,13 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f03e7efdedc3bc78cb2337f1e2785c39e45f5ef762d9e4ebb137fff7380a6d8a" +[[package]] +name = "text_edit" +version = "0.0.0" +dependencies = [ + "text-size", +] + [[package]] name = "thin-dst" version = "1.1.0" diff --git a/crates/ra_assists/Cargo.toml b/crates/ra_assists/Cargo.toml index 6f5ace941fb..e4a5ee6c1c8 100644 --- a/crates/ra_assists/Cargo.toml +++ b/crates/ra_assists/Cargo.toml @@ -16,7 +16,7 @@ either = "1.5.3" stdx = { path = "../stdx" } ra_syntax = { path = "../ra_syntax" } -ra_text_edit = { path = "../ra_text_edit" } +text_edit = { path = "../text_edit" } ra_fmt = { path = "../ra_fmt" } profile = { path = "../profile" } ra_db = { path = "../ra_db" } diff --git a/crates/ra_assists/src/assist_context.rs b/crates/ra_assists/src/assist_context.rs index afba860d1dc..fcaa1aedcf3 100644 --- a/crates/ra_assists/src/assist_context.rs +++ b/crates/ra_assists/src/assist_context.rs @@ -15,7 +15,7 @@ use ra_syntax::{ AstNode, SourceFile, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextSize, TokenAtOffset, }; -use ra_text_edit::{TextEdit, TextEditBuilder}; +use text_edit::{TextEdit, TextEditBuilder}; use crate::{ assist_config::{AssistConfig, SnippetCap}, diff --git a/crates/ra_assists/src/utils/insert_use.rs b/crates/ra_assists/src/utils/insert_use.rs index 32780fceb59..13dbe1919c1 100644 --- a/crates/ra_assists/src/utils/insert_use.rs +++ b/crates/ra_assists/src/utils/insert_use.rs @@ -2,6 +2,7 @@ // FIXME: rewrite according to the plan, outlined in // https://github.com/rust-analyzer/rust-analyzer/issues/3301#issuecomment-592931553 +use either::Either; use hir::{self, ModPath}; use ra_syntax::{ ast::{self, NameOwner, VisibilityOwner}, @@ -9,10 +10,9 @@ use ra_syntax::{ SyntaxKind::{PATH, PATH_SEGMENT}, SyntaxNode, T, }; -use ra_text_edit::TextEditBuilder; +use text_edit::TextEditBuilder; use crate::assist_context::AssistContext; -use either::Either; /// Determines the containing syntax node in which to insert a `use` statement affecting `position`. pub(crate) fn find_insert_use_container( diff --git a/crates/ra_ide/Cargo.toml b/crates/ra_ide/Cargo.toml index bbc9ba4e77d..84c25f0b8a2 100644 --- a/crates/ra_ide/Cargo.toml +++ b/crates/ra_ide/Cargo.toml @@ -22,7 +22,7 @@ oorandom = "11.1.2" stdx = { path = "../stdx" } ra_syntax = { path = "../ra_syntax" } -ra_text_edit = { path = "../ra_text_edit" } +text_edit = { path = "../text_edit" } ra_db = { path = "../ra_db" } ra_ide_db = { path = "../ra_ide_db" } ra_cfg = { path = "../ra_cfg" } diff --git a/crates/ra_ide/src/completion/complete_postfix.rs b/crates/ra_ide/src/completion/complete_postfix.rs index 8735b901037..42087da8dc5 100644 --- a/crates/ra_ide/src/completion/complete_postfix.rs +++ b/crates/ra_ide/src/completion/complete_postfix.rs @@ -4,7 +4,7 @@ use ra_syntax::{ ast::{self, AstNode}, TextRange, TextSize, }; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; use crate::{ completion::{ diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs index d9a0ef167db..b397baf1078 100644 --- a/crates/ra_ide/src/completion/complete_trait_impl.rs +++ b/crates/ra_ide/src/completion/complete_trait_impl.rs @@ -37,7 +37,7 @@ use ra_syntax::{ ast::{self, edit, Impl}, AstNode, SyntaxKind, SyntaxNode, TextRange, T, }; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; use crate::{ completion::{ diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs index 4aa761148d8..0cb57fb1b42 100644 --- a/crates/ra_ide/src/completion/completion_context.rs +++ b/crates/ra_ide/src/completion/completion_context.rs @@ -9,7 +9,7 @@ use ra_syntax::{ SyntaxKind::*, SyntaxNode, SyntaxToken, TextRange, TextSize, }; -use ra_text_edit::Indel; +use text_edit::Indel; use super::patterns::{ has_bind_pat_parent, has_block_expr_parent, has_impl_as_prev_sibling, has_impl_parent, diff --git a/crates/ra_ide/src/completion/completion_item.rs b/crates/ra_ide/src/completion/completion_item.rs index 7bdda316c45..1c0684f4ed5 100644 --- a/crates/ra_ide/src/completion/completion_item.rs +++ b/crates/ra_ide/src/completion/completion_item.rs @@ -4,7 +4,7 @@ use std::fmt; use hir::Documentation; use ra_syntax::TextRange; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; use crate::completion::completion_config::SnippetCap; diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ra_ide/src/diagnostics.rs index e006c777548..54810d5bbf0 100644 --- a/crates/ra_ide/src/diagnostics.rs +++ b/crates/ra_ide/src/diagnostics.rs @@ -14,7 +14,7 @@ use ra_syntax::{ ast::{self, AstNode}, SyntaxNode, TextRange, T, }; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; use crate::{Diagnostic, FileId, Fix, SourceFileEdit}; diff --git a/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs b/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs index 88e593e0039..8fb25de6c16 100644 --- a/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs +++ b/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs @@ -13,7 +13,7 @@ use ra_ide_db::{ RootDatabase, }; use ra_syntax::{algo, ast, AstNode}; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; /// A [Diagnostic] that potentially has a fix available. /// diff --git a/crates/ra_ide/src/join_lines.rs b/crates/ra_ide/src/join_lines.rs index 1c881386f7d..caf63933a9b 100644 --- a/crates/ra_ide/src/join_lines.rs +++ b/crates/ra_ide/src/join_lines.rs @@ -7,7 +7,7 @@ use ra_syntax::{ SyntaxKind::{self, WHITESPACE}, SyntaxNode, SyntaxToken, TextRange, TextSize, T, }; -use ra_text_edit::{TextEdit, TextEditBuilder}; +use text_edit::{TextEdit, TextEditBuilder}; // Feature: Join Lines // diff --git a/crates/ra_ide/src/lib.rs b/crates/ra_ide/src/lib.rs index bfcf5d750a4..09cb5faf68f 100644 --- a/crates/ra_ide/src/lib.rs +++ b/crates/ra_ide/src/lib.rs @@ -96,7 +96,7 @@ pub use ra_ide_db::{ RootDatabase, }; pub use ra_ssr::SsrError; -pub use ra_text_edit::{Indel, TextEdit}; +pub use text_edit::{Indel, TextEdit}; pub type Cancelable = Result; diff --git a/crates/ra_ide/src/references/rename.rs b/crates/ra_ide/src/references/rename.rs index 8c1ac3c5601..9c688fb0631 100644 --- a/crates/ra_ide/src/references/rename.rs +++ b/crates/ra_ide/src/references/rename.rs @@ -11,9 +11,9 @@ use ra_syntax::{ ast::{self, NameOwner}, lex_single_valid_syntax_kind, match_ast, AstNode, SyntaxKind, SyntaxNode, SyntaxToken, }; -use ra_text_edit::TextEdit; use std::convert::TryInto; use test_utils::mark; +use text_edit::TextEdit; use crate::{ references::find_all_refs, FilePosition, FileSystemEdit, RangeInfo, Reference, ReferenceKind, @@ -271,9 +271,9 @@ fn rename_reference( #[cfg(test)] mod tests { use expect::{expect, Expect}; - use ra_text_edit::TextEditBuilder; use stdx::trim_indent; use test_utils::{assert_eq_text, mark}; + use text_edit::TextEdit; use crate::{mock_analysis::analysis_and_position, FileId}; diff --git a/crates/ra_ide/src/typing.rs b/crates/ra_ide/src/typing.rs index d3ce744b44c..952429cde65 100644 --- a/crates/ra_ide/src/typing.rs +++ b/crates/ra_ide/src/typing.rs @@ -26,7 +26,7 @@ use ra_syntax::{ TextRange, TextSize, }; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; use crate::SourceChange; diff --git a/crates/ra_ide/src/typing/on_enter.rs b/crates/ra_ide/src/typing/on_enter.rs index 143b1ae413e..c0c5ce3bcd2 100644 --- a/crates/ra_ide/src/typing/on_enter.rs +++ b/crates/ra_ide/src/typing/on_enter.rs @@ -9,8 +9,8 @@ use ra_syntax::{ SyntaxKind::*, SyntaxToken, TextRange, TextSize, TokenAtOffset, }; -use ra_text_edit::TextEdit; use test_utils::mark; +use text_edit::TextEdit; // Feature: On Enter // diff --git a/crates/ra_ide_db/Cargo.toml b/crates/ra_ide_db/Cargo.toml index 92b8ef82a7a..5446a596141 100644 --- a/crates/ra_ide_db/Cargo.toml +++ b/crates/ra_ide_db/Cargo.toml @@ -22,7 +22,7 @@ either = "1.5.3" stdx = { path = "../stdx" } ra_syntax = { path = "../ra_syntax" } -ra_text_edit = { path = "../ra_text_edit" } +text_edit = { path = "../text_edit" } ra_db = { path = "../ra_db" } profile = { path = "../profile" } test_utils = { path = "../test_utils" } diff --git a/crates/ra_ide_db/src/source_change.rs b/crates/ra_ide_db/src/source_change.rs index abb83f42134..ae21132dd71 100644 --- a/crates/ra_ide_db/src/source_change.rs +++ b/crates/ra_ide_db/src/source_change.rs @@ -4,7 +4,7 @@ //! It can be viewed as a dual for `AnalysisChange`. use ra_db::FileId; -use ra_text_edit::TextEdit; +use text_edit::TextEdit; #[derive(Default, Debug, Clone)] pub struct SourceChange { diff --git a/crates/ra_ssr/Cargo.toml b/crates/ra_ssr/Cargo.toml index 84e4b171e1b..d0f2ae73393 100644 --- a/crates/ra_ssr/Cargo.toml +++ b/crates/ra_ssr/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/rust-analyzer/rust-analyzer" doctest = false [dependencies] -ra_text_edit = { path = "../ra_text_edit" } +text_edit = { path = "../text_edit" } ra_syntax = { path = "../ra_syntax" } ra_db = { path = "../ra_db" } ra_ide_db = { path = "../ra_ide_db" } diff --git a/crates/ra_ssr/src/replacing.rs b/crates/ra_ssr/src/replacing.rs index 36ced3842da..74f9e7db616 100644 --- a/crates/ra_ssr/src/replacing.rs +++ b/crates/ra_ssr/src/replacing.rs @@ -4,8 +4,8 @@ use crate::matching::Var; use crate::{resolving::ResolvedRule, Match, SsrMatches}; use ra_syntax::ast::{self, AstToken}; use ra_syntax::{SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextSize}; -use ra_text_edit::TextEdit; use rustc_hash::{FxHashMap, FxHashSet}; +use text_edit::TextEdit; /// Returns a text edit that will replace each match in `matches` with its corresponding replacement /// template. Placeholders in the template will have been substituted with whatever they matched to diff --git a/crates/ra_syntax/Cargo.toml b/crates/ra_syntax/Cargo.toml index fc4d7aa048b..f2789e6a351 100644 --- a/crates/ra_syntax/Cargo.toml +++ b/crates/ra_syntax/Cargo.toml @@ -20,7 +20,7 @@ once_cell = "1.3.1" stdx = { path = "../stdx" } -ra_text_edit = { path = "../ra_text_edit" } +text_edit = { path = "../text_edit" } ra_parser = { path = "../ra_parser" } # This crate transitively depends on `smol_str` via `rowan`. diff --git a/crates/ra_syntax/fuzz/Cargo.toml b/crates/ra_syntax/fuzz/Cargo.toml index 613ad2857d0..4cec3c4cd8b 100644 --- a/crates/ra_syntax/fuzz/Cargo.toml +++ b/crates/ra_syntax/fuzz/Cargo.toml @@ -11,7 +11,7 @@ cargo-fuzz = true [dependencies] ra_syntax = { path = ".." } -ra_text_edit = { path = "../../ra_text_edit" } +text_edit = { path = "../../text_edit" } libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" } # Prevent this from interfering with workspaces diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs index 26b3c813a1d..6254b38ba1c 100644 --- a/crates/ra_syntax/src/algo.rs +++ b/crates/ra_syntax/src/algo.rs @@ -6,8 +6,8 @@ use std::{ }; use itertools::Itertools; -use ra_text_edit::TextEditBuilder; use rustc_hash::FxHashMap; +use text_edit::TextEditBuilder; use crate::{ AstNode, Direction, NodeOrToken, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxNodePtr, diff --git a/crates/ra_syntax/src/fuzz.rs b/crates/ra_syntax/src/fuzz.rs index 39f9b12ab20..fbb97aa2736 100644 --- a/crates/ra_syntax/src/fuzz.rs +++ b/crates/ra_syntax/src/fuzz.rs @@ -5,7 +5,7 @@ use std::{ str::{self, FromStr}, }; -use ra_text_edit::Indel; +use text_edit::Indel; use crate::{validation, AstNode, SourceFile, TextRange}; diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index 8a4d4538622..465607f550f 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs @@ -39,8 +39,8 @@ pub mod fuzz; use std::{marker::PhantomData, sync::Arc}; -use ra_text_edit::Indel; use stdx::format_to; +use text_edit::Indel; pub use crate::{ algo::InsertPosition, diff --git a/crates/ra_syntax/src/parsing/reparsing.rs b/crates/ra_syntax/src/parsing/reparsing.rs index ed5a42ea388..6644ffca4fa 100644 --- a/crates/ra_syntax/src/parsing/reparsing.rs +++ b/crates/ra_syntax/src/parsing/reparsing.rs @@ -7,7 +7,7 @@ //! and try to parse only this block. use ra_parser::Reparser; -use ra_text_edit::Indel; +use text_edit::Indel; use crate::{ algo, diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml index 3f70510fd76..ef244da5970 100644 --- a/crates/rust-analyzer/Cargo.toml +++ b/crates/rust-analyzer/Cargo.toml @@ -39,7 +39,7 @@ ra_ide = { path = "../ra_ide" } profile = { path = "../profile" } ra_project_model = { path = "../ra_project_model" } ra_syntax = { path = "../ra_syntax" } -ra_text_edit = { path = "../ra_text_edit" } +text_edit = { path = "../text_edit" } vfs = { path = "../vfs" } vfs-notify = { path = "../vfs-notify" } ra_cfg = { path = "../ra_cfg" } diff --git a/crates/ra_text_edit/Cargo.toml b/crates/text_edit/Cargo.toml similarity index 88% rename from crates/ra_text_edit/Cargo.toml rename to crates/text_edit/Cargo.toml index 427862a5cc5..a69b1ef2b53 100644 --- a/crates/ra_text_edit/Cargo.toml +++ b/crates/text_edit/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "ra_text_edit" +name = "text_edit" version = "0.0.0" license = "MIT OR Apache-2.0" authors = ["rust-analyzer developers"] diff --git a/crates/ra_text_edit/src/lib.rs b/crates/text_edit/src/lib.rs similarity index 100% rename from crates/ra_text_edit/src/lib.rs rename to crates/text_edit/src/lib.rs