Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/lib.rs')
-rw-r--r--crates/ide/src/lib.rs45
1 files changed, 24 insertions, 21 deletions
diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs
index f0b35903f3..8cb81a9cc4 100644
--- a/crates/ide/src/lib.rs
+++ b/crates/ide/src/lib.rs
@@ -43,7 +43,6 @@ mod parent_module;
mod references;
mod rename;
mod runnables;
-mod shuffle_crate_graph;
mod signature_help;
mod ssr;
mod static_index;
@@ -62,7 +61,7 @@ use std::panic::UnwindSafe;
use cfg::CfgOptions;
use fetch_crates::CrateInfo;
-use hir::ChangeWithProcMacros;
+use hir::{sym, ChangeWithProcMacros};
use ide_db::{
base_db::{
salsa::{self, ParallelDatabase},
@@ -70,6 +69,7 @@ use ide_db::{
},
prime_caches, symbol_index, FxHashMap, FxIndexSet, LineIndexDatabase,
};
+use span::EditionedFileId;
use syntax::SourceFile;
use triomphe::Arc;
use view_memory_layout::{view_memory_layout, RecursiveMemoryLayout};
@@ -120,10 +120,7 @@ pub use ide_completion::{
Snippet, SnippetScope,
};
pub use ide_db::{
- base_db::{
- Cancelled, CrateGraph, CrateId, FileChange, FileId, FilePosition, FileRange, SourceRoot,
- SourceRootId,
- },
+ base_db::{Cancelled, CrateGraph, CrateId, FileChange, SourceRoot, SourceRootId},
documentation::Documentation,
label::Label,
line_index::{LineCol, LineIndex},
@@ -131,7 +128,7 @@ pub use ide_db::{
search::{ReferenceCategory, SearchScope},
source_change::{FileSystemEdit, SnippetEdit, SourceChange},
symbol_index::Query,
- RootDatabase, SymbolKind,
+ FileId, FilePosition, FileRange, RootDatabase, SymbolKind,
};
pub use ide_diagnostics::{
Diagnostic, DiagnosticCode, DiagnosticsConfig, ExprFillDefaultMode, Severity,
@@ -163,7 +160,7 @@ pub struct AnalysisHost {
}
impl AnalysisHost {
- pub fn new(lru_capacity: Option<usize>) -> AnalysisHost {
+ pub fn new(lru_capacity: Option<u16>) -> AnalysisHost {
AnalysisHost { db: RootDatabase::new(lru_capacity) }
}
@@ -171,11 +168,11 @@ impl AnalysisHost {
AnalysisHost { db }
}
- pub fn update_lru_capacity(&mut self, lru_capacity: Option<usize>) {
+ pub fn update_lru_capacity(&mut self, lru_capacity: Option<u16>) {
self.db.update_base_query_lru_capacities(lru_capacity);
}
- pub fn update_lru_capacities(&mut self, lru_capacities: &FxHashMap<Box<str>, usize>) {
+ pub fn update_lru_capacities(&mut self, lru_capacities: &FxHashMap<Box<str>, u16>) {
self.db.update_lru_capacities(lru_capacities);
}
@@ -204,10 +201,6 @@ impl AnalysisHost {
pub fn raw_database_mut(&mut self) -> &mut RootDatabase {
&mut self.db
}
-
- pub fn shuffle_crate_graph(&mut self) {
- shuffle_crate_graph::shuffle_crate_graph(&mut self.db);
- }
}
impl Default for AnalysisHost {
@@ -248,7 +241,7 @@ impl Analysis {
// FIXME: cfg options
// Default to enable test for single file.
let mut cfg_options = CfgOptions::default();
- cfg_options.insert_atom("test".into());
+ cfg_options.insert_atom(sym::test.clone());
crate_graph.add_crate_root(
file_id,
Edition::CURRENT,
@@ -298,7 +291,8 @@ impl Analysis {
/// Gets the syntax tree of the file.
pub fn parse(&self, file_id: FileId) -> Cancellable<SourceFile> {
- self.with_db(|db| db.parse(file_id).tree())
+ // FIXME editiojn
+ self.with_db(|db| db.parse(EditionedFileId::current_edition(file_id)).tree())
}
/// Returns true if this file belongs to an immutable library.
@@ -321,7 +315,7 @@ impl Analysis {
/// supported).
pub fn matching_brace(&self, position: FilePosition) -> Cancellable<Option<TextSize>> {
self.with_db(|db| {
- let parse = db.parse(position.file_id);
+ let parse = db.parse(EditionedFileId::current_edition(position.file_id));
let file = parse.tree();
matching_brace::matching_brace(&file, position.offset)
})
@@ -386,7 +380,7 @@ impl Analysis {
/// stuff like trailing commas.
pub fn join_lines(&self, config: &JoinLinesConfig, frange: FileRange) -> Cancellable<TextEdit> {
self.with_db(|db| {
- let parse = db.parse(frange.file_id);
+ let parse = db.parse(EditionedFileId::current_edition(frange.file_id));
join_lines::join_lines(config, &parse.tree(), frange.range)
})
}
@@ -422,7 +416,12 @@ impl Analysis {
/// Returns a tree representation of symbols in the file. Useful to draw a
/// file outline.
pub fn file_structure(&self, file_id: FileId) -> Cancellable<Vec<StructureNode>> {
- self.with_db(|db| file_structure::file_structure(&db.parse(file_id).tree()))
+ // FIXME: Edition
+ self.with_db(|db| {
+ file_structure::file_structure(
+ &db.parse(EditionedFileId::current_edition(file_id)).tree(),
+ )
+ })
}
/// Returns a list of the places in the file where type hints can be displayed.
@@ -449,7 +448,11 @@ impl Analysis {
/// Returns the set of folding ranges.
pub fn folding_ranges(&self, file_id: FileId) -> Cancellable<Vec<Fold>> {
- self.with_db(|db| folding_ranges::folding_ranges(&db.parse(file_id).tree()))
+ self.with_db(|db| {
+ folding_ranges::folding_ranges(
+ &db.parse(EditionedFileId::current_edition(file_id)).tree(),
+ )
+ })
}
/// Fuzzy searches for a symbol.
@@ -751,7 +754,7 @@ impl Analysis {
ide_ssr::MatchFinder::in_context(db, resolve_context, selections)?;
match_finder.add_rule(rule)?;
let edits = if parse_only { Default::default() } else { match_finder.edits() };
- Ok(SourceChange::from(edits))
+ Ok(SourceChange::from_iter(edits))
})
}