aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_analysis/src
diff options
context:
space:
mode:
authorDJMcNab <[email protected]>2018-12-08 16:02:23 +0000
committerAleksey Kladov <[email protected]>2018-12-08 16:28:10 +0000
commitf88e0700e6c4a9b195739154f8683704762df1bd (patch)
treef263d568056f88be01fbd6d4e67f967b71645b60 /crates/ra_analysis/src
parent6d548d944fade78edd474433b2436bae3237737e (diff)
Add a better text for hover and stop duplicating work done in approximatelly_resolve_symbol
Diffstat (limited to 'crates/ra_analysis/src')
-rw-r--r--crates/ra_analysis/src/imp.rs11
-rw-r--r--crates/ra_analysis/src/lib.rs5
2 files changed, 15 insertions, 1 deletions
diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs
index e9af98474..07357fc84 100644
--- a/crates/ra_analysis/src/imp.rs
+++ b/crates/ra_analysis/src/imp.rs
@@ -323,6 +323,17 @@ impl AnalysisImpl {
323 323
324 Ok(symbol.docs(&file)) 324 Ok(symbol.docs(&file))
325 } 325 }
326 pub fn doc_text_for(&self, file_id: FileId, symbol: FileSymbol) -> Cancelable<Option<String>> {
327 let file = self.db.source_file(file_id);
328 let result = match (symbol.description(&file), symbol.docs(&file)) {
329 (Some(desc), Some(docs)) => Some("```rust\n".to_string() + &*desc + "\n```\n\n" + &*docs),
330 (Some(desc), None) => Some("```rust\n".to_string() + &*desc + "\n```"),
331 (None, Some(docs)) => Some(docs),
332 _ => None,
333 };
334
335 Ok(result)
336 }
326 337
327 pub fn diagnostics(&self, file_id: FileId) -> Cancelable<Vec<Diagnostic>> { 338 pub fn diagnostics(&self, file_id: FileId) -> Cancelable<Vec<Diagnostic>> {
328 let syntax = self.db.source_file(file_id); 339 let syntax = self.db.source_file(file_id);
diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs
index 4b8b10816..d33f3e4ca 100644
--- a/crates/ra_analysis/src/lib.rs
+++ b/crates/ra_analysis/src/lib.rs
@@ -236,7 +236,7 @@ impl Analysis {
236 pub fn approximately_resolve_symbol( 236 pub fn approximately_resolve_symbol(
237 &self, 237 &self,
238 position: FilePosition, 238 position: FilePosition,
239 ) -> Cancelable<Vec<(FileId, FileSymbol)>> { 239 ) -> Cancelable<Option<(TextRange, Vec<(FileId, FileSymbol)>)>> {
240 self.imp.approximately_resolve_symbol(position) 240 self.imp.approximately_resolve_symbol(position)
241 } 241 }
242 pub fn find_all_refs(&self, position: FilePosition) -> Cancelable<Vec<(FileId, TextRange)>> { 242 pub fn find_all_refs(&self, position: FilePosition) -> Cancelable<Vec<(FileId, TextRange)>> {
@@ -249,6 +249,9 @@ impl Analysis {
249 ) -> Cancelable<Option<String>> { 249 ) -> Cancelable<Option<String>> {
250 self.imp.doc_comment_for(file_id, symbol) 250 self.imp.doc_comment_for(file_id, symbol)
251 } 251 }
252 pub fn doc_text_for(&self, file_id: FileId, symbol: FileSymbol) -> Cancelable<Option<String>> {
253 self.imp.doc_text_for(file_id, symbol)
254 }
252 pub fn parent_module(&self, position: FilePosition) -> Cancelable<Vec<(FileId, FileSymbol)>> { 255 pub fn parent_module(&self, position: FilePosition) -> Cancelable<Vec<(FileId, FileSymbol)>> {
253 self.imp.parent_module(position) 256 self.imp.parent_module(position)
254 } 257 }