From c2a0f5e50f6deb2e15bbfa6056a3cc0866c203a5 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 5 Jan 2019 16:20:48 +0300 Subject: move goto_defenition to a separate file --- crates/ra_analysis/src/imp.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/ra_analysis/src/imp.rs') diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index e2871451c..6df118c20 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -416,7 +416,7 @@ impl db::RootDatabase { .collect::>(); Ok(res) } - fn index_resolve(&self, name_ref: ast::NameRef) -> Cancelable> { + pub(crate) fn index_resolve(&self, name_ref: ast::NameRef) -> Cancelable> { let name = name_ref.text(); let mut query = Query::new(name.to_string()); query.exact(); -- cgit v1.2.3 From ee461a211195b093269ead477f01fcf63f20cf34 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 5 Jan 2019 20:00:03 +0300 Subject: kill approximatelly_resolve_symbol --- crates/ra_analysis/src/imp.rs | 62 +------------------------------------------ 1 file changed, 1 insertion(+), 61 deletions(-) (limited to 'crates/ra_analysis/src/imp.rs') diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index 6df118c20..6ab3c5476 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -18,7 +18,7 @@ use crate::{ AnalysisChange, Cancelable, NavigationTarget, CrateId, db, Diagnostic, FileId, FilePosition, FileRange, FileSystemEdit, - Query, ReferenceResolution, RootChange, SourceChange, SourceFileEdit, + Query, RootChange, SourceChange, SourceFileEdit, symbol_index::{LibrarySymbolsQuery, FileSymbol}, }; @@ -139,66 +139,6 @@ impl db::RootDatabase { pub(crate) fn crate_root(&self, crate_id: CrateId) -> FileId { self.crate_graph().crate_root(crate_id) } - pub(crate) fn approximately_resolve_symbol( - &self, - position: FilePosition, - ) -> Cancelable> { - let file = self.source_file(position.file_id); - let syntax = file.syntax(); - if let Some(name_ref) = find_node_at_offset::(syntax, position.offset) { - let mut rr = ReferenceResolution::new(name_ref.syntax().range()); - if let Some(fn_descr) = - source_binder::function_from_child_node(self, position.file_id, name_ref.syntax())? - { - let scope = fn_descr.scopes(self); - // First try to resolve the symbol locally - if let Some(entry) = scope.resolve_local_name(name_ref) { - rr.resolves_to.push(NavigationTarget { - file_id: position.file_id, - name: entry.name().to_string().into(), - range: entry.ptr().range(), - kind: NAME, - ptr: None, - }); - return Ok(Some(rr)); - }; - } - // If that fails try the index based approach. - rr.resolves_to.extend( - self.index_resolve(name_ref)? - .into_iter() - .map(NavigationTarget::from_symbol), - ); - return Ok(Some(rr)); - } - if let Some(name) = find_node_at_offset::(syntax, position.offset) { - let mut rr = ReferenceResolution::new(name.syntax().range()); - if let Some(module) = name.syntax().parent().and_then(ast::Module::cast) { - if module.has_semi() { - if let Some(child_module) = - source_binder::module_from_declaration(self, position.file_id, module)? - { - let file_id = child_module.file_id(); - let name = match child_module.name() { - Some(name) => name.to_string().into(), - None => "".into(), - }; - let symbol = NavigationTarget { - file_id, - name, - range: TextRange::offset_len(0.into(), 0.into()), - kind: MODULE, - ptr: None, - }; - rr.resolves_to.push(symbol); - return Ok(Some(rr)); - } - } - } - } - Ok(None) - } - pub(crate) fn find_all_refs( &self, position: FilePosition, -- cgit v1.2.3