about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2020-08-13 17:42:52 +0200
committerAleksey Kladov <aleksey.kladov@gmail.com>2020-08-13 17:58:27 +0200
commit1b0c7701cc97cd7bef8bb9729011d4cf291a60c5 (patch)
treeb69f0c9947d9cec522ce835d7213b21075fe6dcf
parentfc34403018079ea053f26d0a31b7517053c7dd8c (diff)
downloadrust-1b0c7701cc97cd7bef8bb9729011d4cf291a60c5.tar.gz
rust-1b0c7701cc97cd7bef8bb9729011d4cf291a60c5.zip
Rename ra_ide -> ide
-rw-r--r--Cargo.lock70
-rw-r--r--README.md2
-rw-r--r--crates/base_db/src/lib.rs2
-rw-r--r--crates/expect/Cargo.toml5
-rw-r--r--crates/flycheck/Cargo.toml7
-rw-r--r--crates/ide/Cargo.toml (renamed from crates/ra_ide/Cargo.toml)14
-rw-r--r--crates/ide/src/call_hierarchy.rs (renamed from crates/ra_ide/src/call_hierarchy.rs)0
-rw-r--r--crates/ide/src/call_info.rs (renamed from crates/ra_ide/src/call_info.rs)0
-rw-r--r--crates/ide/src/completion.rs (renamed from crates/ra_ide/src/completion.rs)0
-rw-r--r--crates/ide/src/completion/complete_attribute.rs (renamed from crates/ra_ide/src/completion/complete_attribute.rs)0
-rw-r--r--crates/ide/src/completion/complete_dot.rs (renamed from crates/ra_ide/src/completion/complete_dot.rs)0
-rw-r--r--crates/ide/src/completion/complete_fn_param.rs (renamed from crates/ra_ide/src/completion/complete_fn_param.rs)0
-rw-r--r--crates/ide/src/completion/complete_keyword.rs (renamed from crates/ra_ide/src/completion/complete_keyword.rs)0
-rw-r--r--crates/ide/src/completion/complete_macro_in_item_position.rs (renamed from crates/ra_ide/src/completion/complete_macro_in_item_position.rs)0
-rw-r--r--crates/ide/src/completion/complete_pattern.rs (renamed from crates/ra_ide/src/completion/complete_pattern.rs)0
-rw-r--r--crates/ide/src/completion/complete_postfix.rs (renamed from crates/ra_ide/src/completion/complete_postfix.rs)0
-rw-r--r--crates/ide/src/completion/complete_qualified_path.rs (renamed from crates/ra_ide/src/completion/complete_qualified_path.rs)0
-rw-r--r--crates/ide/src/completion/complete_record.rs (renamed from crates/ra_ide/src/completion/complete_record.rs)0
-rw-r--r--crates/ide/src/completion/complete_snippet.rs (renamed from crates/ra_ide/src/completion/complete_snippet.rs)0
-rw-r--r--crates/ide/src/completion/complete_trait_impl.rs (renamed from crates/ra_ide/src/completion/complete_trait_impl.rs)0
-rw-r--r--crates/ide/src/completion/complete_unqualified_path.rs (renamed from crates/ra_ide/src/completion/complete_unqualified_path.rs)0
-rw-r--r--crates/ide/src/completion/completion_config.rs (renamed from crates/ra_ide/src/completion/completion_config.rs)0
-rw-r--r--crates/ide/src/completion/completion_context.rs (renamed from crates/ra_ide/src/completion/completion_context.rs)0
-rw-r--r--crates/ide/src/completion/completion_item.rs (renamed from crates/ra_ide/src/completion/completion_item.rs)0
-rw-r--r--crates/ide/src/completion/patterns.rs (renamed from crates/ra_ide/src/completion/patterns.rs)0
-rw-r--r--crates/ide/src/completion/presentation.rs (renamed from crates/ra_ide/src/completion/presentation.rs)0
-rw-r--r--crates/ide/src/completion/test_utils.rs (renamed from crates/ra_ide/src/completion/test_utils.rs)0
-rw-r--r--crates/ide/src/diagnostics.rs (renamed from crates/ra_ide/src/diagnostics.rs)0
-rw-r--r--crates/ide/src/diagnostics/diagnostics_with_fix.rs (renamed from crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs)0
-rw-r--r--crates/ide/src/display.rs (renamed from crates/ra_ide/src/display.rs)0
-rw-r--r--crates/ide/src/display/navigation_target.rs (renamed from crates/ra_ide/src/display/navigation_target.rs)0
-rw-r--r--crates/ide/src/display/short_label.rs (renamed from crates/ra_ide/src/display/short_label.rs)0
-rw-r--r--crates/ide/src/expand_macro.rs (renamed from crates/ra_ide/src/expand_macro.rs)0
-rw-r--r--crates/ide/src/extend_selection.rs (renamed from crates/ra_ide/src/extend_selection.rs)0
-rw-r--r--crates/ide/src/file_structure.rs (renamed from crates/ra_ide/src/file_structure.rs)0
-rw-r--r--crates/ide/src/folding_ranges.rs (renamed from crates/ra_ide/src/folding_ranges.rs)0
-rw-r--r--crates/ide/src/goto_definition.rs (renamed from crates/ra_ide/src/goto_definition.rs)0
-rw-r--r--crates/ide/src/goto_implementation.rs (renamed from crates/ra_ide/src/goto_implementation.rs)0
-rw-r--r--crates/ide/src/goto_type_definition.rs (renamed from crates/ra_ide/src/goto_type_definition.rs)0
-rw-r--r--crates/ide/src/hover.rs (renamed from crates/ra_ide/src/hover.rs)0
-rw-r--r--crates/ide/src/inlay_hints.rs (renamed from crates/ra_ide/src/inlay_hints.rs)0
-rw-r--r--crates/ide/src/join_lines.rs (renamed from crates/ra_ide/src/join_lines.rs)0
-rw-r--r--crates/ide/src/lib.rs (renamed from crates/ra_ide/src/lib.rs)2
-rw-r--r--crates/ide/src/markup.rs (renamed from crates/ra_ide/src/markup.rs)0
-rw-r--r--crates/ide/src/matching_brace.rs (renamed from crates/ra_ide/src/matching_brace.rs)0
-rw-r--r--crates/ide/src/mock_analysis.rs (renamed from crates/ra_ide/src/mock_analysis.rs)0
-rw-r--r--crates/ide/src/parent_module.rs (renamed from crates/ra_ide/src/parent_module.rs)0
-rw-r--r--crates/ide/src/prime_caches.rs (renamed from crates/ra_ide/src/prime_caches.rs)0
-rw-r--r--crates/ide/src/references.rs (renamed from crates/ra_ide/src/references.rs)0
-rw-r--r--crates/ide/src/references/rename.rs (renamed from crates/ra_ide/src/references/rename.rs)0
-rw-r--r--crates/ide/src/runnables.rs (renamed from crates/ra_ide/src/runnables.rs)0
-rw-r--r--crates/ide/src/status.rs (renamed from crates/ra_ide/src/status.rs)0
-rw-r--r--crates/ide/src/syntax_highlighting.rs (renamed from crates/ra_ide/src/syntax_highlighting.rs)0
-rw-r--r--crates/ide/src/syntax_highlighting/html.rs (renamed from crates/ra_ide/src/syntax_highlighting/html.rs)0
-rw-r--r--crates/ide/src/syntax_highlighting/injection.rs (renamed from crates/ra_ide/src/syntax_highlighting/injection.rs)0
-rw-r--r--crates/ide/src/syntax_highlighting/tags.rs (renamed from crates/ra_ide/src/syntax_highlighting/tags.rs)0
-rw-r--r--crates/ide/src/syntax_highlighting/tests.rs (renamed from crates/ra_ide/src/syntax_highlighting/tests.rs)14
-rw-r--r--crates/ide/src/syntax_tree.rs (renamed from crates/ra_ide/src/syntax_tree.rs)0
-rw-r--r--crates/ide/src/typing.rs (renamed from crates/ra_ide/src/typing.rs)0
-rw-r--r--crates/ide/src/typing/on_enter.rs (renamed from crates/ra_ide/src/typing/on_enter.rs)0
-rw-r--r--crates/ide/test_data/highlight_doctest.html (renamed from crates/ra_ide/test_data/highlight_doctest.html)0
-rw-r--r--crates/ide/test_data/highlight_extern_crate.html (renamed from crates/ra_ide/test_data/highlight_extern_crate.html)0
-rw-r--r--crates/ide/test_data/highlight_injection.html (renamed from crates/ra_ide/test_data/highlight_injection.html)0
-rw-r--r--crates/ide/test_data/highlight_strings.html (renamed from crates/ra_ide/test_data/highlight_strings.html)0
-rw-r--r--crates/ide/test_data/highlight_unsafe.html (renamed from crates/ra_ide/test_data/highlight_unsafe.html)0
-rw-r--r--crates/ide/test_data/highlighting.html (renamed from crates/ra_ide/test_data/highlighting.html)0
-rw-r--r--crates/ide/test_data/rainbow_highlighting.html (renamed from crates/ra_ide/test_data/rainbow_highlighting.html)0
-rw-r--r--crates/ide_db/Cargo.toml2
-rw-r--r--crates/ide_db/src/defs.rs2
-rw-r--r--crates/paths/Cargo.toml4
-rw-r--r--crates/proc_macro_api/Cargo.toml7
-rw-r--r--crates/rust-analyzer/Cargo.toml11
-rw-r--r--crates/rust-analyzer/src/cargo_target_spec.rs2
-rw-r--r--crates/rust-analyzer/src/cli.rs2
-rw-r--r--crates/rust-analyzer/src/cli/analysis_bench.rs2
-rw-r--r--crates/rust-analyzer/src/cli/diagnostics.rs2
-rw-r--r--crates/rust-analyzer/src/cli/load_cargo.rs2
-rw-r--r--crates/rust-analyzer/src/config.rs2
-rw-r--r--crates/rust-analyzer/src/diagnostics.rs2
-rw-r--r--crates/rust-analyzer/src/from_proto.rs2
-rw-r--r--crates/rust-analyzer/src/global_state.rs2
-rw-r--r--crates/rust-analyzer/src/handlers.rs12
-rw-r--r--crates/rust-analyzer/src/lib.rs4
-rw-r--r--crates/rust-analyzer/src/lsp_utils.rs2
-rw-r--r--crates/rust-analyzer/src/main_loop.rs2
-rw-r--r--crates/rust-analyzer/src/reload.rs2
-rw-r--r--crates/rust-analyzer/src/to_proto.rs6
-rw-r--r--crates/ssr/Cargo.toml2
-rw-r--r--crates/stdx/Cargo.toml4
-rw-r--r--crates/test_utils/Cargo.toml7
-rw-r--r--crates/vfs-notify/Cargo.toml4
-rw-r--r--crates/vfs/Cargo.toml4
-rw-r--r--docs/dev/README.md4
-rw-r--r--docs/dev/architecture.md8
-rw-r--r--docs/dev/guide.md24
-rw-r--r--xtask/tests/tidy.rs2
96 files changed, 122 insertions, 125 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 621be08320c..2386c8f3a5d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -346,7 +346,7 @@ dependencies = [
 
 [[package]]
 name = "expect"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "difference",
  "once_cell",
@@ -385,7 +385,7 @@ dependencies = [
 
 [[package]]
 name = "flycheck"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "cargo_metadata",
  "crossbeam-channel",
@@ -580,6 +580,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "ide"
+version = "0.0.0"
+dependencies = [
+ "assists",
+ "base_db",
+ "cfg",
+ "either",
+ "expect",
+ "hir",
+ "ide_db",
+ "indexmap",
+ "itertools",
+ "log",
+ "oorandom",
+ "profile",
+ "rustc-hash",
+ "ssr",
+ "stdx",
+ "syntax",
+ "test_utils",
+ "text_edit",
+]
+
+[[package]]
 name = "ide_db"
 version = "0.0.0"
 dependencies = [
@@ -992,7 +1016,7 @@ dependencies = [
 
 [[package]]
 name = "paths"
-version = "0.1.0"
+version = "0.0.0"
 
 [[package]]
 name = "percent-encoding"
@@ -1052,7 +1076,7 @@ dependencies = [
 
 [[package]]
 name = "proc_macro_api"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "crossbeam-channel",
  "jod-thread",
@@ -1120,30 +1144,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ra_ide"
-version = "0.1.0"
-dependencies = [
- "assists",
- "base_db",
- "cfg",
- "either",
- "expect",
- "hir",
- "ide_db",
- "indexmap",
- "itertools",
- "log",
- "oorandom",
- "profile",
- "rustc-hash",
- "ssr",
- "stdx",
- "syntax",
- "test_utils",
- "text_edit",
-]
-
-[[package]]
 name = "rayon"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1213,7 +1213,7 @@ dependencies = [
 
 [[package]]
 name = "rust-analyzer"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "anyhow",
  "base_db",
@@ -1225,6 +1225,7 @@ dependencies = [
  "hir",
  "hir_def",
  "hir_ty",
+ "ide",
  "ide_db",
  "itertools",
  "jod-thread",
@@ -1239,7 +1240,6 @@ dependencies = [
  "proc_macro_srv",
  "profile",
  "project_model",
- "ra_ide",
  "rayon",
  "rustc-hash",
  "serde",
@@ -1444,7 +1444,7 @@ dependencies = [
 
 [[package]]
 name = "ssr"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "base_db",
  "expect",
@@ -1458,7 +1458,7 @@ dependencies = [
 
 [[package]]
 name = "stdx"
-version = "0.1.0"
+version = "0.0.0"
 
 [[package]]
 name = "syn"
@@ -1515,7 +1515,7 @@ dependencies = [
 
 [[package]]
 name = "test_utils"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "difference",
  "rustc-hash",
@@ -1729,7 +1729,7 @@ dependencies = [
 
 [[package]]
 name = "vfs"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "fst",
  "paths",
@@ -1738,7 +1738,7 @@ dependencies = [
 
 [[package]]
 name = "vfs-notify"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
  "crossbeam-channel",
  "jod-thread",
diff --git a/README.md b/README.md
index 16c980400cf..264e4da7073 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frls-2.2E0
 
 * Website: https://rust-analyzer.github.io/
 * Metrics: https://rust-analyzer.github.io/metrics/
-* API docs: https://rust-analyzer.github.io/rust-analyzer/ra_ide/
+* API docs: https://rust-analyzer.github.io/rust-analyzer/ide/
 
 ## License
 
diff --git a/crates/base_db/src/lib.rs b/crates/base_db/src/lib.rs
index 811057251d0..ee341585065 100644
--- a/crates/base_db/src/lib.rs
+++ b/crates/base_db/src/lib.rs
@@ -1,4 +1,4 @@
-//! base_db defines basic database traits. The concrete DB is defined by ra_ide.
+//! base_db defines basic database traits. The concrete DB is defined by ide.
 mod cancellation;
 mod input;
 pub mod fixture;
diff --git a/crates/expect/Cargo.toml b/crates/expect/Cargo.toml
index 77775630dc7..b54d3a60e30 100644
--- a/crates/expect/Cargo.toml
+++ b/crates/expect/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
 name = "expect"
-version = "0.1.0"
+version = "0.0.0"
+license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
-license = "MIT OR Apache-2.0"
 
 [lib]
 doctest = false
@@ -11,4 +11,5 @@ doctest = false
 [dependencies]
 once_cell = "1"
 difference = "2"
+
 stdx = { path = "../stdx" }
diff --git a/crates/flycheck/Cargo.toml b/crates/flycheck/Cargo.toml
index acc72bc59cc..262a66e4e3d 100644
--- a/crates/flycheck/Cargo.toml
+++ b/crates/flycheck/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
-edition = "2018"
 name = "flycheck"
-version = "0.1.0"
-authors = ["rust-analyzer developers"]
+version = "0.0.0"
 license = "MIT OR Apache-2.0"
+authors = ["rust-analyzer developers"]
+edition = "2018"
 
 [lib]
 doctest = false
@@ -14,4 +14,5 @@ log = "0.4.8"
 cargo_metadata = "0.11.1"
 serde_json = "1.0.48"
 jod-thread = "0.1.1"
+
 toolchain = { path = "../toolchain" }
diff --git a/crates/ra_ide/Cargo.toml b/crates/ide/Cargo.toml
index 2eb86755f02..e4b970c73b4 100644
--- a/crates/ra_ide/Cargo.toml
+++ b/crates/ide/Cargo.toml
@@ -1,16 +1,13 @@
 [package]
-edition = "2018"
-name = "ra_ide"
-version = "0.1.0"
-authors = ["rust-analyzer developers"]
+name = "ide"
+version = "0.0.0"
 license = "MIT OR Apache-2.0"
+authors = ["rust-analyzer developers"]
+edition = "2018"
 
 [lib]
 doctest = false
 
-[features]
-wasm = []
-
 [dependencies]
 either = "1.5.3"
 indexmap = "1.3.2"
@@ -20,7 +17,6 @@ rustc-hash = "1.1.0"
 oorandom = "11.1.2"
 
 stdx = { path = "../stdx" }
-
 syntax = { path = "../syntax" }
 text_edit = { path = "../text_edit" }
 base_db = { path = "../base_db" }
@@ -31,7 +27,7 @@ test_utils = { path = "../test_utils" }
 assists = { path = "../assists" }
 ssr = { path = "../ssr" }
 
-# ra_ide should depend only on the top-level `hir` package. if you need
+# ide should depend only on the top-level `hir` package. if you need
 # something from some `hir_xxx` subpackage, reexport the API via `hir`.
 hir = { path = "../hir" }
 
diff --git a/crates/ra_ide/src/call_hierarchy.rs b/crates/ide/src/call_hierarchy.rs
index 58e26b94ca7..58e26b94ca7 100644
--- a/crates/ra_ide/src/call_hierarchy.rs
+++ b/crates/ide/src/call_hierarchy.rs
diff --git a/crates/ra_ide/src/call_info.rs b/crates/ide/src/call_info.rs
index 86abd2d8cec..86abd2d8cec 100644
--- a/crates/ra_ide/src/call_info.rs
+++ b/crates/ide/src/call_info.rs
diff --git a/crates/ra_ide/src/completion.rs b/crates/ide/src/completion.rs
index 7fb4d687e1c..7fb4d687e1c 100644
--- a/crates/ra_ide/src/completion.rs
+++ b/crates/ide/src/completion.rs
diff --git a/crates/ra_ide/src/completion/complete_attribute.rs b/crates/ide/src/completion/complete_attribute.rs
index 603d935deb7..603d935deb7 100644
--- a/crates/ra_ide/src/completion/complete_attribute.rs
+++ b/crates/ide/src/completion/complete_attribute.rs
diff --git a/crates/ra_ide/src/completion/complete_dot.rs b/crates/ide/src/completion/complete_dot.rs
index 5326652852f..5326652852f 100644
--- a/crates/ra_ide/src/completion/complete_dot.rs
+++ b/crates/ide/src/completion/complete_dot.rs
diff --git a/crates/ra_ide/src/completion/complete_fn_param.rs b/crates/ide/src/completion/complete_fn_param.rs
index 7c63ce58f89..7c63ce58f89 100644
--- a/crates/ra_ide/src/completion/complete_fn_param.rs
+++ b/crates/ide/src/completion/complete_fn_param.rs
diff --git a/crates/ra_ide/src/completion/complete_keyword.rs b/crates/ide/src/completion/complete_keyword.rs
index a80708935ea..a80708935ea 100644
--- a/crates/ra_ide/src/completion/complete_keyword.rs
+++ b/crates/ide/src/completion/complete_keyword.rs
diff --git a/crates/ra_ide/src/completion/complete_macro_in_item_position.rs b/crates/ide/src/completion/complete_macro_in_item_position.rs
index 0447f051151..0447f051151 100644
--- a/crates/ra_ide/src/completion/complete_macro_in_item_position.rs
+++ b/crates/ide/src/completion/complete_macro_in_item_position.rs
diff --git a/crates/ra_ide/src/completion/complete_pattern.rs b/crates/ide/src/completion/complete_pattern.rs
index aceb77cb5cc..aceb77cb5cc 100644
--- a/crates/ra_ide/src/completion/complete_pattern.rs
+++ b/crates/ide/src/completion/complete_pattern.rs
diff --git a/crates/ra_ide/src/completion/complete_postfix.rs b/crates/ide/src/completion/complete_postfix.rs
index d50b13c52c3..d50b13c52c3 100644
--- a/crates/ra_ide/src/completion/complete_postfix.rs
+++ b/crates/ide/src/completion/complete_postfix.rs
diff --git a/crates/ra_ide/src/completion/complete_qualified_path.rs b/crates/ide/src/completion/complete_qualified_path.rs
index cb7dd23c187..cb7dd23c187 100644
--- a/crates/ra_ide/src/completion/complete_qualified_path.rs
+++ b/crates/ide/src/completion/complete_qualified_path.rs
diff --git a/crates/ra_ide/src/completion/complete_record.rs b/crates/ide/src/completion/complete_record.rs
index 74b94594dca..74b94594dca 100644
--- a/crates/ra_ide/src/completion/complete_record.rs
+++ b/crates/ide/src/completion/complete_record.rs
diff --git a/crates/ra_ide/src/completion/complete_snippet.rs b/crates/ide/src/completion/complete_snippet.rs
index 4368e4eec84..4368e4eec84 100644
--- a/crates/ra_ide/src/completion/complete_snippet.rs
+++ b/crates/ide/src/completion/complete_snippet.rs
diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ide/src/completion/complete_trait_impl.rs
index 478e3126237..478e3126237 100644
--- a/crates/ra_ide/src/completion/complete_trait_impl.rs
+++ b/crates/ide/src/completion/complete_trait_impl.rs
diff --git a/crates/ra_ide/src/completion/complete_unqualified_path.rs b/crates/ide/src/completion/complete_unqualified_path.rs
index 824227f310a..824227f310a 100644
--- a/crates/ra_ide/src/completion/complete_unqualified_path.rs
+++ b/crates/ide/src/completion/complete_unqualified_path.rs
diff --git a/crates/ra_ide/src/completion/completion_config.rs b/crates/ide/src/completion/completion_config.rs
index 71b49ace8bf..71b49ace8bf 100644
--- a/crates/ra_ide/src/completion/completion_config.rs
+++ b/crates/ide/src/completion/completion_config.rs
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ide/src/completion/completion_context.rs
index 047ecd9d771..047ecd9d771 100644
--- a/crates/ra_ide/src/completion/completion_context.rs
+++ b/crates/ide/src/completion/completion_context.rs
diff --git a/crates/ra_ide/src/completion/completion_item.rs b/crates/ide/src/completion/completion_item.rs
index 9377cdc577e..9377cdc577e 100644
--- a/crates/ra_ide/src/completion/completion_item.rs
+++ b/crates/ide/src/completion/completion_item.rs
diff --git a/crates/ra_ide/src/completion/patterns.rs b/crates/ide/src/completion/patterns.rs
index ffc97c076a2..ffc97c076a2 100644
--- a/crates/ra_ide/src/completion/patterns.rs
+++ b/crates/ide/src/completion/patterns.rs
diff --git a/crates/ra_ide/src/completion/presentation.rs b/crates/ide/src/completion/presentation.rs
index e1b1ea4ce44..e1b1ea4ce44 100644
--- a/crates/ra_ide/src/completion/presentation.rs
+++ b/crates/ide/src/completion/presentation.rs
diff --git a/crates/ra_ide/src/completion/test_utils.rs b/crates/ide/src/completion/test_utils.rs
index 1452d7e9e54..1452d7e9e54 100644
--- a/crates/ra_ide/src/completion/test_utils.rs
+++ b/crates/ide/src/completion/test_utils.rs
diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ide/src/diagnostics.rs
index a3ec98178a1..a3ec98178a1 100644
--- a/crates/ra_ide/src/diagnostics.rs
+++ b/crates/ide/src/diagnostics.rs
diff --git a/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs b/crates/ide/src/diagnostics/diagnostics_with_fix.rs
index 85b46c9958a..85b46c9958a 100644
--- a/crates/ra_ide/src/diagnostics/diagnostics_with_fix.rs
+++ b/crates/ide/src/diagnostics/diagnostics_with_fix.rs
diff --git a/crates/ra_ide/src/display.rs b/crates/ide/src/display.rs
index 41b5bdc490c..41b5bdc490c 100644
--- a/crates/ra_ide/src/display.rs
+++ b/crates/ide/src/display.rs
diff --git a/crates/ra_ide/src/display/navigation_target.rs b/crates/ide/src/display/navigation_target.rs
index e7710617726..e7710617726 100644
--- a/crates/ra_ide/src/display/navigation_target.rs
+++ b/crates/ide/src/display/navigation_target.rs
diff --git a/crates/ra_ide/src/display/short_label.rs b/crates/ide/src/display/short_label.rs
index ea49d9f9707..ea49d9f9707 100644
--- a/crates/ra_ide/src/display/short_label.rs
+++ b/crates/ide/src/display/short_label.rs
diff --git a/crates/ra_ide/src/expand_macro.rs b/crates/ide/src/expand_macro.rs
index 31455709d7d..31455709d7d 100644
--- a/crates/ra_ide/src/expand_macro.rs
+++ b/crates/ide/src/expand_macro.rs
diff --git a/crates/ra_ide/src/extend_selection.rs b/crates/ide/src/extend_selection.rs
index 34563a0267f..34563a0267f 100644
--- a/crates/ra_ide/src/extend_selection.rs
+++ b/crates/ide/src/extend_selection.rs
diff --git a/crates/ra_ide/src/file_structure.rs b/crates/ide/src/file_structure.rs
index c90247ba658..c90247ba658 100644
--- a/crates/ra_ide/src/file_structure.rs
+++ b/crates/ide/src/file_structure.rs
diff --git a/crates/ra_ide/src/folding_ranges.rs b/crates/ide/src/folding_ranges.rs
index 7523aec5573..7523aec5573 100644
--- a/crates/ra_ide/src/folding_ranges.rs
+++ b/crates/ide/src/folding_ranges.rs
diff --git a/crates/ra_ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs
index 15e9b7fad82..15e9b7fad82 100644
--- a/crates/ra_ide/src/goto_definition.rs
+++ b/crates/ide/src/goto_definition.rs
diff --git a/crates/ra_ide/src/goto_implementation.rs b/crates/ide/src/goto_implementation.rs
index f503f4ec5fe..f503f4ec5fe 100644
--- a/crates/ra_ide/src/goto_implementation.rs
+++ b/crates/ide/src/goto_implementation.rs
diff --git a/crates/ra_ide/src/goto_type_definition.rs b/crates/ide/src/goto_type_definition.rs
index 4a151b15064..4a151b15064 100644
--- a/crates/ra_ide/src/goto_type_definition.rs
+++ b/crates/ide/src/goto_type_definition.rs
diff --git a/crates/ra_ide/src/hover.rs b/crates/ide/src/hover.rs
index 331aa4db0c7..331aa4db0c7 100644
--- a/crates/ra_ide/src/hover.rs
+++ b/crates/ide/src/hover.rs
diff --git a/crates/ra_ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs
index 002adf9159f..002adf9159f 100644
--- a/crates/ra_ide/src/inlay_hints.rs
+++ b/crates/ide/src/inlay_hints.rs
diff --git a/crates/ra_ide/src/join_lines.rs b/crates/ide/src/join_lines.rs
index e37702acdf0..e37702acdf0 100644
--- a/crates/ra_ide/src/join_lines.rs
+++ b/crates/ide/src/join_lines.rs
diff --git a/crates/ra_ide/src/lib.rs b/crates/ide/src/lib.rs
index 4321a6b7432..eb638952970 100644
--- a/crates/ra_ide/src/lib.rs
+++ b/crates/ide/src/lib.rs
@@ -1,4 +1,4 @@
-//! ra_ide crate provides "ide-centric" APIs for the rust-analyzer. That is,
+//! ide crate provides "ide-centric" APIs for the rust-analyzer. That is,
 //! it generally operates with files and text ranges, and returns results as
 //! Strings, suitable for displaying to the human.
 //!
diff --git a/crates/ra_ide/src/markup.rs b/crates/ide/src/markup.rs
index 60c193c40ab..60c193c40ab 100644
--- a/crates/ra_ide/src/markup.rs
+++ b/crates/ide/src/markup.rs
diff --git a/crates/ra_ide/src/matching_brace.rs b/crates/ide/src/matching_brace.rs
index cb6abb0db94..cb6abb0db94 100644
--- a/crates/ra_ide/src/matching_brace.rs
+++ b/crates/ide/src/matching_brace.rs
diff --git a/crates/ra_ide/src/mock_analysis.rs b/crates/ide/src/mock_analysis.rs
index 363e6d27e5a..363e6d27e5a 100644
--- a/crates/ra_ide/src/mock_analysis.rs
+++ b/crates/ide/src/mock_analysis.rs
diff --git a/crates/ra_ide/src/parent_module.rs b/crates/ide/src/parent_module.rs
index 59ed2967cf2..59ed2967cf2 100644
--- a/crates/ra_ide/src/parent_module.rs
+++ b/crates/ide/src/parent_module.rs
diff --git a/crates/ra_ide/src/prime_caches.rs b/crates/ide/src/prime_caches.rs
index c5ab5a1d87b..c5ab5a1d87b 100644
--- a/crates/ra_ide/src/prime_caches.rs
+++ b/crates/ide/src/prime_caches.rs
diff --git a/crates/ra_ide/src/references.rs b/crates/ide/src/references.rs
index 0a76ec6b430..0a76ec6b430 100644
--- a/crates/ra_ide/src/references.rs
+++ b/crates/ide/src/references.rs
diff --git a/crates/ra_ide/src/references/rename.rs b/crates/ide/src/references/rename.rs
index d73dc9cd00b..d73dc9cd00b 100644
--- a/crates/ra_ide/src/references/rename.rs
+++ b/crates/ide/src/references/rename.rs
diff --git a/crates/ra_ide/src/runnables.rs b/crates/ide/src/runnables.rs
index c3e07c8dec7..c3e07c8dec7 100644
--- a/crates/ra_ide/src/runnables.rs
+++ b/crates/ide/src/runnables.rs
diff --git a/crates/ra_ide/src/status.rs b/crates/ide/src/status.rs
index c2370818180..c2370818180 100644
--- a/crates/ra_ide/src/status.rs
+++ b/crates/ide/src/status.rs
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs
index 5d7c7e8d02a..5d7c7e8d02a 100644
--- a/crates/ra_ide/src/syntax_highlighting.rs
+++ b/crates/ide/src/syntax_highlighting.rs
diff --git a/crates/ra_ide/src/syntax_highlighting/html.rs b/crates/ide/src/syntax_highlighting/html.rs
index 249368ff814..249368ff814 100644
--- a/crates/ra_ide/src/syntax_highlighting/html.rs
+++ b/crates/ide/src/syntax_highlighting/html.rs
diff --git a/crates/ra_ide/src/syntax_highlighting/injection.rs b/crates/ide/src/syntax_highlighting/injection.rs
index 43f4e6feab3..43f4e6feab3 100644
--- a/crates/ra_ide/src/syntax_highlighting/injection.rs
+++ b/crates/ide/src/syntax_highlighting/injection.rs
diff --git a/crates/ra_ide/src/syntax_highlighting/tags.rs b/crates/ide/src/syntax_highlighting/tags.rs
index 49ec94bdcdb..49ec94bdcdb 100644
--- a/crates/ra_ide/src/syntax_highlighting/tags.rs
+++ b/crates/ide/src/syntax_highlighting/tags.rs
diff --git a/crates/ra_ide/src/syntax_highlighting/tests.rs b/crates/ide/src/syntax_highlighting/tests.rs
index 594f61e85b7..94f37d773f7 100644
--- a/crates/ra_ide/src/syntax_highlighting/tests.rs
+++ b/crates/ide/src/syntax_highlighting/tests.rs
@@ -105,7 +105,7 @@ impl<T> Option<T> {
 }
 "#
         .trim(),
-        expect_file!["crates/ra_ide/test_data/highlighting.html"],
+        expect_file!["crates/ide/test_data/highlighting.html"],
         false,
     );
 }
@@ -128,7 +128,7 @@ fn bar() {
 }
 "#
         .trim(),
-        expect_file!["crates/ra_ide/test_data/rainbow_highlighting.html"],
+        expect_file!["crates/ide/test_data/rainbow_highlighting.html"],
         true,
     );
 }
@@ -181,7 +181,7 @@ fn main() {
     );
 }"##
         .trim(),
-        expect_file!["crates/ra_ide/test_data/highlight_injection.html"],
+        expect_file!["crates/ide/test_data/highlight_injection.html"],
         false,
     );
 }
@@ -264,7 +264,7 @@ fn main() {
     println!("{ничоси}", ничоси = 92);
 }"#
         .trim(),
-        expect_file!["crates/ra_ide/test_data/highlight_strings.html"],
+        expect_file!["crates/ide/test_data/highlight_strings.html"],
         false,
     );
 }
@@ -337,7 +337,7 @@ fn main() {
 }
 "#
         .trim(),
-        expect_file!["crates/ra_ide/test_data/highlight_unsafe.html"],
+        expect_file!["crates/ide/test_data/highlight_unsafe.html"],
         false,
     );
 }
@@ -413,7 +413,7 @@ macro_rules! noop {
 }
 "#
         .trim(),
-        expect_file!["crates/ra_ide/test_data/highlight_doctest.html"],
+        expect_file!["crates/ide/test_data/highlight_doctest.html"],
         false,
     );
 }
@@ -430,7 +430,7 @@ fn test_extern_crate() {
         //- /alloc/lib.rs
         pub struct A
         "#,
-        expect_file!["crates/ra_ide/test_data/highlight_extern_crate.html"],
+        expect_file!["crates/ide/test_data/highlight_extern_crate.html"],
         false,
     );
 }
diff --git a/crates/ra_ide/src/syntax_tree.rs b/crates/ide/src/syntax_tree.rs
index f8004495960..f8004495960 100644
--- a/crates/ra_ide/src/syntax_tree.rs
+++ b/crates/ide/src/syntax_tree.rs
diff --git a/crates/ra_ide/src/typing.rs b/crates/ide/src/typing.rs
index 899ce5f2652..899ce5f2652 100644
--- a/crates/ra_ide/src/typing.rs
+++ b/crates/ide/src/typing.rs
diff --git a/crates/ra_ide/src/typing/on_enter.rs b/crates/ide/src/typing/on_enter.rs
index f7d46146c50..f7d46146c50 100644
--- a/crates/ra_ide/src/typing/on_enter.rs
+++ b/crates/ide/src/typing/on_enter.rs
diff --git a/crates/ra_ide/test_data/highlight_doctest.html b/crates/ide/test_data/highlight_doctest.html
index 6322d404fba..6322d404fba 100644
--- a/crates/ra_ide/test_data/highlight_doctest.html
+++ b/crates/ide/test_data/highlight_doctest.html
diff --git a/crates/ra_ide/test_data/highlight_extern_crate.html b/crates/ide/test_data/highlight_extern_crate.html
index 800d894c769..800d894c769 100644
--- a/crates/ra_ide/test_data/highlight_extern_crate.html
+++ b/crates/ide/test_data/highlight_extern_crate.html
diff --git a/crates/ra_ide/test_data/highlight_injection.html b/crates/ide/test_data/highlight_injection.html
index 18addd00d28..18addd00d28 100644
--- a/crates/ra_ide/test_data/highlight_injection.html
+++ b/crates/ide/test_data/highlight_injection.html
diff --git a/crates/ra_ide/test_data/highlight_strings.html b/crates/ide/test_data/highlight_strings.html
index 1b681b2c6b5..1b681b2c6b5 100644
--- a/crates/ra_ide/test_data/highlight_strings.html
+++ b/crates/ide/test_data/highlight_strings.html
diff --git a/crates/ra_ide/test_data/highlight_unsafe.html b/crates/ide/test_data/highlight_unsafe.html
index 552fea66892..552fea66892 100644
--- a/crates/ra_ide/test_data/highlight_unsafe.html
+++ b/crates/ide/test_data/highlight_unsafe.html
diff --git a/crates/ra_ide/test_data/highlighting.html b/crates/ide/test_data/highlighting.html
index 8e0160eee5b..8e0160eee5b 100644
--- a/crates/ra_ide/test_data/highlighting.html
+++ b/crates/ide/test_data/highlighting.html
diff --git a/crates/ra_ide/test_data/rainbow_highlighting.html b/crates/ide/test_data/rainbow_highlighting.html
index 401e87a73d3..401e87a73d3 100644
--- a/crates/ra_ide/test_data/rainbow_highlighting.html
+++ b/crates/ide/test_data/rainbow_highlighting.html
diff --git a/crates/ide_db/Cargo.toml b/crates/ide_db/Cargo.toml
index 885212162f3..692fb64153b 100644
--- a/crates/ide_db/Cargo.toml
+++ b/crates/ide_db/Cargo.toml
@@ -25,6 +25,6 @@ text_edit = { path = "../text_edit" }
 base_db = { path = "../base_db" }
 profile = { path = "../profile" }
 test_utils = { path = "../test_utils" }
-# ra_ide should depend only on the top-level `hir` package. if you need
+# ide should depend only on the top-level `hir` package. if you need
 # something from some `hir_xxx` subpackage, reexport the API via `hir`.
 hir = { path = "../hir" }
diff --git a/crates/ide_db/src/defs.rs b/crates/ide_db/src/defs.rs
index 7b5d6ac491b..0d0affc2735 100644
--- a/crates/ide_db/src/defs.rs
+++ b/crates/ide_db/src/defs.rs
@@ -243,7 +243,7 @@ impl NameRefClass {
 }
 
 // Note: we don't have unit-tests for this rather important function.
-// It is primarily exercised via goto definition tests in `ra_ide`.
+// It is primarily exercised via goto definition tests in `ide`.
 pub fn classify_name_ref(
     sema: &Semantics<RootDatabase>,
     name_ref: &ast::NameRef,
diff --git a/crates/paths/Cargo.toml b/crates/paths/Cargo.toml
index cbe2c26e20f..5ac18d63b35 100644
--- a/crates/paths/Cargo.toml
+++ b/crates/paths/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
 name = "paths"
-version = "0.1.0"
+version = "0.0.0"
+license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
-license = "MIT OR Apache-2.0"
 
 [lib]
 doctest = false
diff --git a/crates/proc_macro_api/Cargo.toml b/crates/proc_macro_api/Cargo.toml
index c1abb562774..a3a4c110333 100644
--- a/crates/proc_macro_api/Cargo.toml
+++ b/crates/proc_macro_api/Cargo.toml
@@ -1,10 +1,9 @@
 [package]
-edition = "2018"
 name = "proc_macro_api"
-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/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml
index 749cf648c6f..c7c1eda0fda 100644
--- a/crates/rust-analyzer/Cargo.toml
+++ b/crates/rust-analyzer/Cargo.toml
@@ -1,10 +1,10 @@
 [package]
-edition = "2018"
 name = "rust-analyzer"
-version = "0.1.0"
+version = "0.0.0"
+license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 autobins = false
-license = "MIT OR Apache-2.0"
+edition = "2018"
 
 [lib]
 doctest = false
@@ -30,12 +30,11 @@ serde_json = "1.0.48"
 threadpool = "1.7.1"
 rayon = "1.3.1"
 mimalloc = { version = "0.1.19", default-features = false, optional = true }
+lsp-server = "0.3.3"
 
 stdx = { path = "../stdx" }
-
-lsp-server = "0.3.3"
 flycheck = { path = "../flycheck" }
-ra_ide = { path = "../ra_ide" }
+ide = { path = "../ide" }
 profile = { path = "../profile" }
 project_model = { path = "../project_model" }
 syntax = { path = "../syntax" }
diff --git a/crates/rust-analyzer/src/cargo_target_spec.rs b/crates/rust-analyzer/src/cargo_target_spec.rs
index 5ba30dbad63..3041915e186 100644
--- a/crates/rust-analyzer/src/cargo_target_spec.rs
+++ b/crates/rust-analyzer/src/cargo_target_spec.rs
@@ -1,8 +1,8 @@
 //! See `CargoTargetSpec`
 
 use cfg::CfgExpr;
+use ide::{FileId, RunnableKind, TestId};
 use project_model::{self, TargetKind};
-use ra_ide::{FileId, RunnableKind, TestId};
 use vfs::AbsPathBuf;
 
 use crate::{global_state::GlobalStateSnapshot, Result};
diff --git a/crates/rust-analyzer/src/cli.rs b/crates/rust-analyzer/src/cli.rs
index b237a94d113..6966ee576ff 100644
--- a/crates/rust-analyzer/src/cli.rs
+++ b/crates/rust-analyzer/src/cli.rs
@@ -10,7 +10,7 @@ mod ssr;
 use std::io::Read;
 
 use anyhow::Result;
-use ra_ide::Analysis;
+use ide::Analysis;
 use syntax::{AstNode, SourceFile};
 
 pub use self::{
diff --git a/crates/rust-analyzer/src/cli/analysis_bench.rs b/crates/rust-analyzer/src/cli/analysis_bench.rs
index b20a1675e6d..0f614f9e0c5 100644
--- a/crates/rust-analyzer/src/cli/analysis_bench.rs
+++ b/crates/rust-analyzer/src/cli/analysis_bench.rs
@@ -7,7 +7,7 @@ use base_db::{
     salsa::{Database, Durability},
     FileId,
 };
-use ra_ide::{Analysis, AnalysisChange, AnalysisHost, CompletionConfig, FilePosition, LineCol};
+use ide::{Analysis, AnalysisChange, AnalysisHost, CompletionConfig, FilePosition, LineCol};
 use vfs::AbsPathBuf;
 
 use crate::{
diff --git a/crates/rust-analyzer/src/cli/diagnostics.rs b/crates/rust-analyzer/src/cli/diagnostics.rs
index 56403cabe46..3371c4fd301 100644
--- a/crates/rust-analyzer/src/cli/diagnostics.rs
+++ b/crates/rust-analyzer/src/cli/diagnostics.rs
@@ -8,7 +8,7 @@ use rustc_hash::FxHashSet;
 
 use base_db::SourceDatabaseExt;
 use hir::Crate;
-use ra_ide::Severity;
+use ide::Severity;
 
 use crate::cli::{load_cargo::load_cargo, Result};
 
diff --git a/crates/rust-analyzer/src/cli/load_cargo.rs b/crates/rust-analyzer/src/cli/load_cargo.rs
index 54273480327..c47cf6ef3e4 100644
--- a/crates/rust-analyzer/src/cli/load_cargo.rs
+++ b/crates/rust-analyzer/src/cli/load_cargo.rs
@@ -5,8 +5,8 @@ use std::{path::Path, sync::Arc};
 use anyhow::Result;
 use base_db::CrateGraph;
 use crossbeam_channel::{unbounded, Receiver};
+use ide::{AnalysisChange, AnalysisHost};
 use project_model::{CargoConfig, ProcMacroClient, ProjectManifest, ProjectWorkspace};
-use ra_ide::{AnalysisChange, AnalysisHost};
 use vfs::{loader::Handle, AbsPath, AbsPathBuf};
 
 use crate::reload::{ProjectFolders, SourceRootConfig};
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index bfc84147c36..33fb5e9c225 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -10,9 +10,9 @@
 use std::{ffi::OsString, path::PathBuf};
 
 use flycheck::FlycheckConfig;
+use ide::{AssistConfig, CompletionConfig, HoverConfig, InlayHintsConfig};
 use lsp_types::ClientCapabilities;
 use project_model::{CargoConfig, ProjectJson, ProjectJsonData, ProjectManifest};
-use ra_ide::{AssistConfig, CompletionConfig, HoverConfig, InlayHintsConfig};
 use serde::Deserialize;
 use vfs::AbsPathBuf;
 
diff --git a/crates/rust-analyzer/src/diagnostics.rs b/crates/rust-analyzer/src/diagnostics.rs
index d24c55cee6e..108df3eb048 100644
--- a/crates/rust-analyzer/src/diagnostics.rs
+++ b/crates/rust-analyzer/src/diagnostics.rs
@@ -3,7 +3,7 @@ pub(crate) mod to_proto;
 
 use std::{mem, sync::Arc};
 
-use ra_ide::FileId;
+use ide::FileId;
 use rustc_hash::{FxHashMap, FxHashSet};
 
 use crate::lsp_ext;
diff --git a/crates/rust-analyzer/src/from_proto.rs b/crates/rust-analyzer/src/from_proto.rs
index 945a353dd50..5b9f52993dd 100644
--- a/crates/rust-analyzer/src/from_proto.rs
+++ b/crates/rust-analyzer/src/from_proto.rs
@@ -2,7 +2,7 @@
 use std::convert::TryFrom;
 
 use base_db::{FileId, FilePosition, FileRange};
-use ra_ide::{AssistKind, LineCol, LineIndex};
+use ide::{AssistKind, LineCol, LineIndex};
 use syntax::{TextRange, TextSize};
 use vfs::AbsPathBuf;
 
diff --git a/crates/rust-analyzer/src/global_state.rs b/crates/rust-analyzer/src/global_state.rs
index f04a0a59fd8..212f98a3005 100644
--- a/crates/rust-analyzer/src/global_state.rs
+++ b/crates/rust-analyzer/src/global_state.rs
@@ -8,10 +8,10 @@ use std::{sync::Arc, time::Instant};
 use base_db::{CrateId, VfsPath};
 use crossbeam_channel::{unbounded, Receiver, Sender};
 use flycheck::FlycheckHandle;
+use ide::{Analysis, AnalysisChange, AnalysisHost, FileId};
 use lsp_types::{SemanticTokens, Url};
 use parking_lot::{Mutex, RwLock};
 use project_model::{CargoWorkspace, ProcMacroClient, ProjectWorkspace, Target};
-use ra_ide::{Analysis, AnalysisChange, AnalysisHost, FileId};
 use rustc_hash::FxHashMap;
 
 use crate::{
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index 4b5ca7eecf3..74f73655a4e 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -1,12 +1,16 @@
 //! This module is responsible for implementing handlers for Language Server
 //! Protocol. The majority of requests are fulfilled by calling into the
-//! `ra_ide` crate.
+//! `ide` crate.
 
 use std::{
     io::Write as _,
     process::{self, Stdio},
 };
 
+use ide::{
+    FileId, FilePosition, FileRange, HoverAction, HoverGotoTypeData, NavigationTarget, Query,
+    RangeInfo, Runnable, RunnableKind, SearchScope, TextEdit,
+};
 use lsp_server::ErrorCode;
 use lsp_types::{
     CallHierarchyIncomingCall, CallHierarchyIncomingCallsParams, CallHierarchyItem,
@@ -19,10 +23,6 @@ use lsp_types::{
     TextDocumentIdentifier, Url, WorkspaceEdit,
 };
 use project_model::TargetKind;
-use ra_ide::{
-    FileId, FilePosition, FileRange, HoverAction, HoverGotoTypeData, NavigationTarget, Query,
-    RangeInfo, Runnable, RunnableKind, SearchScope, TextEdit,
-};
 use serde::{Deserialize, Serialize};
 use serde_json::to_value;
 use stdx::{format_to, split_once};
@@ -212,7 +212,7 @@ pub(crate) fn handle_on_type_formatting(
     let line_index = snap.analysis.file_line_index(position.file_id)?;
     let line_endings = snap.file_line_endings(position.file_id);
 
-    // in `ra_ide`, the `on_type` invariant is that
+    // in `ide`, the `on_type` invariant is that
     // `text.char_at(position) == typed_char`.
     position.offset -= TextSize::of('.');
     let char_typed = params.ch.chars().next().unwrap_or('\0');
diff --git a/crates/rust-analyzer/src/lib.rs b/crates/rust-analyzer/src/lib.rs
index 8d2e76cc240..87f72b49746 100644
--- a/crates/rust-analyzer/src/lib.rs
+++ b/crates/rust-analyzer/src/lib.rs
@@ -1,6 +1,6 @@
 //! Implementation of the LSP for rust-analyzer.
 //!
-//! This crate takes Rust-specific analysis results from ra_ide and translates
+//! This crate takes Rust-specific analysis results from ide and translates
 //! into LSP types.
 //!
 //! It also is the root of all state. `world` module defines the bulk of the
@@ -41,7 +41,7 @@ use serde::de::DeserializeOwned;
 
 pub type Result<T, E = Box<dyn std::error::Error + Send + Sync>> = std::result::Result<T, E>;
 pub use crate::{caps::server_capabilities, main_loop::main_loop};
-use ra_ide::AnalysisHost;
+use ide::AnalysisHost;
 use std::fmt;
 use vfs::Vfs;
 
diff --git a/crates/rust-analyzer/src/lsp_utils.rs b/crates/rust-analyzer/src/lsp_utils.rs
index 17d1550cddf..85c66157148 100644
--- a/crates/rust-analyzer/src/lsp_utils.rs
+++ b/crates/rust-analyzer/src/lsp_utils.rs
@@ -2,8 +2,8 @@
 use std::{error::Error, ops::Range};
 
 use base_db::Canceled;
+use ide::LineIndex;
 use lsp_server::Notification;
-use ra_ide::LineIndex;
 
 use crate::{from_proto, global_state::GlobalState};
 
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index 5726820f917..66e04653a31 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -7,9 +7,9 @@ use std::{
 
 use base_db::VfsPath;
 use crossbeam_channel::{select, Receiver};
+use ide::{Canceled, FileId};
 use lsp_server::{Connection, Notification, Request, Response};
 use lsp_types::notification::Notification as _;
-use ra_ide::{Canceled, FileId};
 
 use crate::{
     config::Config,
diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs
index fd133e31243..a2cfb4e0d5c 100644
--- a/crates/rust-analyzer/src/reload.rs
+++ b/crates/rust-analyzer/src/reload.rs
@@ -3,8 +3,8 @@ use std::{mem, sync::Arc};
 
 use base_db::{CrateGraph, SourceRoot, VfsPath};
 use flycheck::FlycheckHandle;
+use ide::AnalysisChange;
 use project_model::{ProcMacroClient, ProjectWorkspace};
-use ra_ide::AnalysisChange;
 use vfs::{file_set::FileSetConfig, AbsPath, AbsPathBuf, ChangeKind};
 
 use crate::{
diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs
index 93a4b1f27d4..8a2cfa2aee1 100644
--- a/crates/rust-analyzer/src/to_proto.rs
+++ b/crates/rust-analyzer/src/to_proto.rs
@@ -5,13 +5,13 @@ use std::{
 };
 
 use base_db::{FileId, FileRange};
-use itertools::Itertools;
-use ra_ide::{
+use ide::{
     Assist, AssistKind, CallInfo, CompletionItem, CompletionItemKind, Documentation,
     FileSystemEdit, Fold, FoldKind, Highlight, HighlightModifier, HighlightTag, HighlightedRange,
     Indel, InlayHint, InlayKind, InsertTextFormat, LineIndex, Markup, NavigationTarget,
     ReferenceAccess, ResolvedAssist, Runnable, Severity, SourceChange, SourceFileEdit, TextEdit,
 };
+use itertools::Itertools;
 use syntax::{SyntaxKind, TextRange, TextSize};
 
 use crate::{
@@ -761,7 +761,7 @@ pub(crate) fn markup_content(markup: Markup) -> lsp_types::MarkupContent {
 
 #[cfg(test)]
 mod tests {
-    use ra_ide::Analysis;
+    use ide::Analysis;
 
     use super::*;
 
diff --git a/crates/ssr/Cargo.toml b/crates/ssr/Cargo.toml
index cd05eeecc89..56c1f776187 100644
--- a/crates/ssr/Cargo.toml
+++ b/crates/ssr/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "ssr"
-version = "0.1.0"
+version = "0.0.0"
 description = "Structural search and replace of Rust code"
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/rust-analyzer/rust-analyzer"
diff --git a/crates/stdx/Cargo.toml b/crates/stdx/Cargo.toml
index 4c0b8586172..b186b46f298 100644
--- a/crates/stdx/Cargo.toml
+++ b/crates/stdx/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
 name = "stdx"
-version = "0.1.0"
+version = "0.0.0"
+license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
-license = "MIT OR Apache-2.0"
 
 [lib]
 doctest = false
diff --git a/crates/test_utils/Cargo.toml b/crates/test_utils/Cargo.toml
index e719f4f7c1a..45e5fb97f7a 100644
--- a/crates/test_utils/Cargo.toml
+++ b/crates/test_utils/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
-edition = "2018"
 name = "test_utils"
-version = "0.1.0"
-authors = ["rust-analyzer developers"]
+version = "0.0.0"
 license = "MIT OR Apache-2.0"
+authors = ["rust-analyzer developers"]
+edition = "2018"
 
 [lib]
 doctest = false
@@ -14,4 +14,5 @@ difference = "2.0.0"
 text-size = "1.0.0"
 serde_json = "1.0.48"
 rustc-hash = "1.1.0"
+
 stdx = { path = "../stdx" }
diff --git a/crates/vfs-notify/Cargo.toml b/crates/vfs-notify/Cargo.toml
index fce7bae3ad8..c1e53f4b150 100644
--- a/crates/vfs-notify/Cargo.toml
+++ b/crates/vfs-notify/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
 name = "vfs-notify"
-version = "0.1.0"
+version = "0.0.0"
+license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
-license = "MIT OR Apache-2.0"
 
 [lib]
 doctest = false
diff --git a/crates/vfs/Cargo.toml b/crates/vfs/Cargo.toml
index b74cdb7ffa0..9ae8f19b6f9 100644
--- a/crates/vfs/Cargo.toml
+++ b/crates/vfs/Cargo.toml
@@ -1,9 +1,9 @@
 [package]
 name = "vfs"
-version = "0.1.0"
+version = "0.0.0"
+license = "MIT OR Apache-2.0"
 authors = ["rust-analyzer developers"]
 edition = "2018"
-license = "MIT OR Apache-2.0"
 
 [lib]
 doctest = false
diff --git a/docs/dev/README.md b/docs/dev/README.md
index 04bebbfca5c..ad18217f177 100644
--- a/docs/dev/README.md
+++ b/docs/dev/README.md
@@ -14,7 +14,7 @@ To learn more about how rust-analyzer works, see
 
 We also publish rustdoc docs to pages:
 
-https://rust-analyzer.github.io/rust-analyzer/ra_ide/
+https://rust-analyzer.github.io/rust-analyzer/ide/
 
 Various organizational and process issues are discussed in this document.
 
@@ -159,7 +159,7 @@ IDE should use only types from `hir`, and should not depend on the underling com
 
 ## IDE API
 
-The main IDE crate (`ra_ide`) uses "Plain Old Data" for the API.
+The main IDE crate (`ide`) uses "Plain Old Data" for the API.
 Rather than talking in definitions and references, it talks in Strings and textual offsets.
 In general, API is centered around UI concerns -- the result of the call is what the user sees in the editor, and not what the compiler sees underneath.
 The results are 100% Rust specific though.
diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md
index 917f05c8126..6f1377f2f0c 100644
--- a/docs/dev/architecture.md
+++ b/docs/dev/architecture.md
@@ -118,7 +118,7 @@ directly query the database.
 
 The top-level `hir` façade crate wraps ids into a more OO-flavored API.
 
-### `crates/ra_ide`
+### `crates/ide`
 
 A stateful library for analyzing many Rust files as they change. `AnalysisHost`
 is a mutable entity (clojure's atom) which holds the current state, incorporates
@@ -136,11 +136,11 @@ offsets and strings as output. This works on top of rich code model powered by
 
 ### `crates/rust-analyzer`
 
-An LSP implementation which wraps `ra_ide` into a language server protocol.
+An LSP implementation which wraps `ide` into a language server protocol.
 
 ### `ra_vfs`
 
-Although `hir` and `ra_ide` don't do any IO, we need to be able to read
+Although `hir` and `ide` don't do any IO, we need to be able to read
 files from disk at the end of the day. This is what `ra_vfs` does. It also
 manages overlays: "dirty" files in the editor, whose "true" contents is
 different from data on disk. This is more or less the single really
@@ -161,7 +161,7 @@ disk. For this reason, we try to avoid writing too many tests on this boundary:
 in a statically typed language, it's hard to make an error in the protocol
 itself if messages are themselves typed.
 
-The middle, and most important, boundary is `ra_ide`. Unlike
+The middle, and most important, boundary is `ide`. Unlike
 `rust-analyzer`, which exposes API, `ide` uses Rust API and is intended to
 use by various tools. Typical test creates an `AnalysisHost`, calls some
 `Analysis` functions and compares the results against expectation.
diff --git a/docs/dev/guide.md b/docs/dev/guide.md
index 29d84bf3f6a..b5a5d7c9350 100644
--- a/docs/dev/guide.md
+++ b/docs/dev/guide.md
@@ -40,8 +40,8 @@ terms of files and offsets, and **not** in terms of Rust concepts like structs,
 traits, etc. The "typed" API with Rust specific types is slightly lower in the
 stack, we'll talk about it later.
 
-[`AnalysisHost`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L265-L284
-[`Analysis`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L291-L478
+[`AnalysisHost`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/lib.rs#L265-L284
+[`Analysis`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/lib.rs#L291-L478
 
 The reason for this separation of `Analysis` and `AnalysisHost` is that we want to apply
 changes "uniquely", but we might also want to fork an `Analysis` and send it to
@@ -69,7 +69,7 @@ the `AnalysisHost::apply_change` method, which accepts a single argument, a
 "transaction", so it suffices to study its methods to understand all of the
 input data.
 
-[`AnalysisChange`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L119-L167
+[`AnalysisChange`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/lib.rs#L119-L167
 
 The `(add|change|remove)_file` methods control the set of the input files, where
 each file has an integer id (`FileId`, picked by the client), text (`String`)
@@ -253,7 +253,7 @@ All analyzer information is stored in a salsa database. `Analysis` and
 `AnalysisHost` types are newtype wrappers for [`RootDatabase`] -- a salsa
 database.
 
-[`RootDatabase`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/db.rs#L88-L134
+[`RootDatabase`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/db.rs#L88-L134
 
 Salsa input queries are defined in [`FilesDatabase`] (which is a part of
 `RootDatabase`). They closely mirror the familiar `AnalysisChange` structure:
@@ -565,11 +565,11 @@ the type to completion.
 [schedule it on the threadpool]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L428
 [catch]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L436-L442
 [the handler]: https://salsa.zulipchat.com/#narrow/stream/181542-rfcs.2Fsalsa-query-group/topic/design.20next.20steps
-[ask analysis for completion]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/lib.rs#L439-L444
-[completion implementation]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion.rs#L46-L62
-[`CompletionContext`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L14-L37
-["IntelliJ Trick"]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L72-L75
-[find an ancestor `fn` node]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L116-L120
-[semantic model]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/completion_context.rs#L123
-[series of independent completion routines]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion.rs#L52-L59
-[`complete_dot`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_ide_api/src/completion/complete_dot.rs#L6-L22
+[ask analysis for completion]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/lib.rs#L439-L444
+[completion implementation]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion.rs#L46-L62
+[`CompletionContext`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion/completion_context.rs#L14-L37
+["IntelliJ Trick"]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion/completion_context.rs#L72-L75
+[find an ancestor `fn` node]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion/completion_context.rs#L116-L120
+[semantic model]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion/completion_context.rs#L123
+[series of independent completion routines]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion.rs#L52-L59
+[`complete_dot`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ide_api/src/completion/complete_dot.rs#L6-L22
diff --git a/xtask/tests/tidy.rs b/xtask/tests/tidy.rs
index 97a11a01eeb..76895aeca02 100644
--- a/xtask/tests/tidy.rs
+++ b/xtask/tests/tidy.rs
@@ -194,7 +194,7 @@ impl TidyDocs {
         let poorly_documented = [
             "hir",
             "hir_expand",
-            "ra_ide",
+            "ide",
             "mbe",
             "parser",
             "profile",