From 36cb58f76d702d87f445ee7eefe26a0bc1ee3811 Mon Sep 17 00:00:00 2001 From: Sergey Parilin Date: Fri, 22 Mar 2019 15:54:26 +0300 Subject: [PATCH] structure moved to ra_ide_api ra_ide_api_light removed completely --- Cargo.lock | 18 ------------- crates/ra_cli/Cargo.toml | 1 - crates/ra_cli/src/main.rs | 2 +- crates/ra_ide_api/Cargo.toml | 1 - crates/ra_ide_api/src/lib.rs | 11 ++++---- .../src/snapshots/tests__file_structure.snap | 2 +- .../src/structure.rs | 0 crates/ra_ide_api_light/Cargo.toml | 26 ------------------- crates/ra_ide_api_light/src/lib.rs | 12 --------- docs/dev/architecture.md | 13 ---------- 10 files changed, 7 insertions(+), 79 deletions(-) rename crates/{ra_ide_api_light => ra_ide_api}/src/snapshots/tests__file_structure.snap (98%) rename crates/{ra_ide_api_light => ra_ide_api}/src/structure.rs (100%) delete mode 100644 crates/ra_ide_api_light/Cargo.toml delete mode 100644 crates/ra_ide_api_light/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 1b5de271e1c..653eaa6c28e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -929,7 +929,6 @@ dependencies = [ "ra_db 0.1.0", "ra_hir 0.1.0", "ra_ide_api 0.1.0", - "ra_ide_api_light 0.1.0", "ra_syntax 0.1.0", "tools 0.1.0", ] @@ -993,7 +992,6 @@ dependencies = [ "ra_db 0.1.0", "ra_fmt 0.1.0", "ra_hir 0.1.0", - "ra_ide_api_light 0.1.0", "ra_syntax 0.1.0", "ra_text_edit 0.1.0", "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1004,22 +1002,6 @@ dependencies = [ "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "ra_ide_api_light" -version = "0.1.0" -dependencies = [ - "insta 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "proptest 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ra_fmt 0.1.0", - "ra_syntax 0.1.0", - "ra_text_edit 0.1.0", - "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "test_utils 0.1.0", -] - [[package]] name = "ra_lsp_server" version = "0.1.0" diff --git a/crates/ra_cli/Cargo.toml b/crates/ra_cli/Cargo.toml index 4c666f5569d..467628236aa 100644 --- a/crates/ra_cli/Cargo.toml +++ b/crates/ra_cli/Cargo.toml @@ -14,7 +14,6 @@ indicatif = "0.11.0" ra_syntax = { path = "../ra_syntax" } ra_ide_api = { path = "../ra_ide_api" } -ra_ide_api_light = { path = "../ra_ide_api_light" } tools = { path = "../tools" } ra_batch = { path = "../ra_batch" } ra_hir = { path = "../ra_hir" } diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index 5285f1f28e9..11f5541ebfc 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs @@ -5,7 +5,7 @@ use std::{fs, io::Read, path::Path, time::Instant}; use clap::{App, Arg, SubCommand}; use join_to_string::join; use ra_ide_api::{Analysis, FileRange}; -use ra_ide_api_light::file_structure; +use ra_ide_api::file_structure; use ra_syntax::{SourceFile, TextRange, TreeArc, AstNode}; use tools::collect_tests; use flexi_logger::Logger; diff --git a/crates/ra_ide_api/Cargo.toml b/crates/ra_ide_api/Cargo.toml index c64226801f3..45bab4e28b7 100644 --- a/crates/ra_ide_api/Cargo.toml +++ b/crates/ra_ide_api/Cargo.toml @@ -20,7 +20,6 @@ jemallocator = { version = "0.1.9", optional = true } jemalloc-ctl = { version = "0.2.0", optional = true } ra_syntax = { path = "../ra_syntax" } -ra_ide_api_light = { path = "../ra_ide_api_light" } ra_text_edit = { path = "../ra_text_edit" } ra_db = { path = "../ra_db" } ra_fmt = { path = "../ra_fmt" } diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs index 8aa3eb088b3..9063f78a9fb 100644 --- a/crates/ra_ide_api/src/lib.rs +++ b/crates/ra_ide_api/src/lib.rs @@ -6,9 +6,6 @@ //! database, and the `ra_hir` crate, where majority of the analysis happens. //! However, IDE specific bits of the analysis (most notably completion) happen //! in this crate. -//! -//! The sibling `ra_ide_api_light` handles those bits of IDE functionality -//! which are restricted to a single file and need only syntax. // For proving that RootDatabase is RefUnwindSafe. #![recursion_limit = "128"] @@ -33,10 +30,11 @@ mod impls; mod assists; mod diagnostics; mod syntax_tree; -mod line_index; mod folding_ranges; +mod line_index; mod line_index_utils; mod join_lines; +mod structure; mod typing; mod matching_brace; @@ -72,9 +70,10 @@ pub use crate::{ line_index_utils::translate_offset_with_edit, folding_ranges::{Fold, FoldKind}, syntax_highlighting::HighlightedRange, + structure::{StructureNode, file_structure}, diagnostics::Severity, }; -pub use ra_ide_api_light::StructureNode; + pub use ra_db::{ Canceled, CrateGraph, CrateId, FileId, FilePosition, FileRange, SourceRootId, Edition @@ -388,7 +387,7 @@ impl Analysis { /// file outline. pub fn file_structure(&self, file_id: FileId) -> Vec { let file = self.db.parse(file_id); - ra_ide_api_light::file_structure(&file) + structure::file_structure(&file) } /// Returns the set of folding ranges. diff --git a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap b/crates/ra_ide_api/src/snapshots/tests__file_structure.snap similarity index 98% rename from crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap rename to crates/ra_ide_api/src/snapshots/tests__file_structure.snap index 8e4184b31c2..2efa8e22cb3 100644 --- a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap +++ b/crates/ra_ide_api/src/snapshots/tests__file_structure.snap @@ -1,7 +1,7 @@ --- created: "2019-02-05T22:03:50.763530100Z" creator: insta@0.6.1 -source: crates/ra_ide_api_light/src/structure.rs +source: crates/ra_ide_api/src/structure.rs expression: structure --- [ diff --git a/crates/ra_ide_api_light/src/structure.rs b/crates/ra_ide_api/src/structure.rs similarity index 100% rename from crates/ra_ide_api_light/src/structure.rs rename to crates/ra_ide_api/src/structure.rs diff --git a/crates/ra_ide_api_light/Cargo.toml b/crates/ra_ide_api_light/Cargo.toml deleted file mode 100644 index 4e69f5325b5..00000000000 --- a/crates/ra_ide_api_light/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -edition = "2018" -name = "ra_ide_api_light" -version = "0.1.0" -authors = ["rust-analyzer developers"] -publish = false - -[dependencies] -itertools = "0.8.0" -superslice = "1.0.0" -join_to_string = "0.1.1" -rustc-hash = "1.0" - -ra_syntax = { path = "../ra_syntax" } -ra_text_edit = { path = "../ra_text_edit" } -ra_fmt = { path = "../ra_fmt" } - -[dev-dependencies] -test_utils = { path = "../test_utils" } -insta = "0.7.0" - -[dev-dependencies.proptest] -version = "0.9.0" -# Disable `fork` feature to allow compiling on webassembly -default-features = false -features = ["std", "bit-set", "break-dead-code"] diff --git a/crates/ra_ide_api_light/src/lib.rs b/crates/ra_ide_api_light/src/lib.rs deleted file mode 100644 index df7f144b627..00000000000 --- a/crates/ra_ide_api_light/src/lib.rs +++ /dev/null @@ -1,12 +0,0 @@ -//! This crate provides those IDE features which use only a single file. -//! -//! This usually means functions which take syntax tree as an input and produce -//! an edit or some auxiliary info. - -mod structure; - -use ra_syntax::TextRange; - -pub use crate::{ - structure::{file_structure, StructureNode}, -}; diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index f990d5bf0ee..890b18fcd7d 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md @@ -130,19 +130,6 @@ APIs in this crate are IDE centric: they take text offsets as input and produce offsets and strings as output. This works on top of rich code model powered by `hir`. -### `crates/ra_ide_api_light` - -All IDE features which can be implemented if you only have access to a single -file. `ra_ide_api_light` could be used to enhance editing of Rust code without -the need to fiddle with build-systems, file synchronization and such. - -In a sense, `ra_ide_api_light` is just a bunch of pure functions which take a -syntax tree as input. - -The tests for `ra_ide_api_light` are `#[cfg(test)] mod tests` unit-tests spread -throughout its modules. - - ### `crates/ra_lsp_server` An LSP implementation which wraps `ra_ide_api` into a langauge server protocol.