diff options
Diffstat (limited to 'crates/ra_ide_api/src/display/navigation_target.rs')
-rw-r--r-- | crates/ra_ide_api/src/display/navigation_target.rs | 56 |
1 files changed, 26 insertions, 30 deletions
diff --git a/crates/ra_ide_api/src/display/navigation_target.rs b/crates/ra_ide_api/src/display/navigation_target.rs index 20a8d418e..8cc853dd1 100644 --- a/crates/ra_ide_api/src/display/navigation_target.rs +++ b/crates/ra_ide_api/src/display/navigation_target.rs | |||
@@ -5,7 +5,7 @@ use ra_syntax::{ | |||
5 | ast::{self, DocCommentsOwner}, | 5 | ast::{self, DocCommentsOwner}, |
6 | AstNode, AstPtr, SmolStr, | 6 | AstNode, AstPtr, SmolStr, |
7 | SyntaxKind::{self, NAME}, | 7 | SyntaxKind::{self, NAME}, |
8 | SyntaxNode, TextRange, TreeArc, | 8 | SyntaxNode, TextRange, |
9 | }; | 9 | }; |
10 | 10 | ||
11 | use super::short_label::ShortLabel; | 11 | use super::short_label::ShortLabel; |
@@ -169,7 +169,7 @@ impl NavigationTarget { | |||
169 | let file_id = src.file_id.original_file(db); | 169 | let file_id = src.file_id.original_file(db); |
170 | match src.ast { | 170 | match src.ast { |
171 | FieldSource::Named(it) => { | 171 | FieldSource::Named(it) => { |
172 | NavigationTarget::from_named(file_id, &*it, it.doc_comment_text(), it.short_label()) | 172 | NavigationTarget::from_named(file_id, &it, it.doc_comment_text(), it.short_label()) |
173 | } | 173 | } |
174 | FieldSource::Pos(it) => { | 174 | FieldSource::Pos(it) => { |
175 | NavigationTarget::from_syntax(file_id, "".into(), None, it.syntax(), None, None) | 175 | NavigationTarget::from_syntax(file_id, "".into(), None, it.syntax(), None, None) |
@@ -179,13 +179,13 @@ impl NavigationTarget { | |||
179 | 179 | ||
180 | pub(crate) fn from_def_source<A, D>(db: &RootDatabase, def: D) -> NavigationTarget | 180 | pub(crate) fn from_def_source<A, D>(db: &RootDatabase, def: D) -> NavigationTarget |
181 | where | 181 | where |
182 | D: HasSource<Ast = TreeArc<A>>, | 182 | D: HasSource<Ast = A>, |
183 | A: ast::DocCommentsOwner + ast::NameOwner + ShortLabel, | 183 | A: ast::DocCommentsOwner + ast::NameOwner + ShortLabel, |
184 | { | 184 | { |
185 | let src = def.source(db); | 185 | let src = def.source(db); |
186 | NavigationTarget::from_named( | 186 | NavigationTarget::from_named( |
187 | src.file_id.original_file(db), | 187 | src.file_id.original_file(db), |
188 | &*src.ast, | 188 | &src.ast, |
189 | src.ast.doc_comment_text(), | 189 | src.ast.doc_comment_text(), |
190 | src.ast.short_label(), | 190 | src.ast.short_label(), |
191 | ) | 191 | ) |
@@ -249,7 +249,7 @@ impl NavigationTarget { | |||
249 | log::debug!("nav target {}", src.ast.syntax().debug_dump()); | 249 | log::debug!("nav target {}", src.ast.syntax().debug_dump()); |
250 | NavigationTarget::from_named( | 250 | NavigationTarget::from_named( |
251 | src.file_id.original_file(db), | 251 | src.file_id.original_file(db), |
252 | &*src.ast, | 252 | &src.ast, |
253 | src.ast.doc_comment_text(), | 253 | src.ast.doc_comment_text(), |
254 | None, | 254 | None, |
255 | ) | 255 | ) |
@@ -318,22 +318,18 @@ pub(crate) fn docs_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> Option | |||
318 | let parse = db.parse(symbol.file_id); | 318 | let parse = db.parse(symbol.file_id); |
319 | let node = symbol.ptr.to_node(parse.tree().syntax()).to_owned(); | 319 | let node = symbol.ptr.to_node(parse.tree().syntax()).to_owned(); |
320 | 320 | ||
321 | fn doc_comments<N: ast::DocCommentsOwner>(node: &N) -> Option<String> { | ||
322 | node.doc_comment_text() | ||
323 | } | ||
324 | |||
325 | visitor() | 321 | visitor() |
326 | .visit(doc_comments::<ast::FnDef>) | 322 | .visit(|it: ast::FnDef| it.doc_comment_text()) |
327 | .visit(doc_comments::<ast::StructDef>) | 323 | .visit(|it: ast::StructDef| it.doc_comment_text()) |
328 | .visit(doc_comments::<ast::EnumDef>) | 324 | .visit(|it: ast::EnumDef| it.doc_comment_text()) |
329 | .visit(doc_comments::<ast::TraitDef>) | 325 | .visit(|it: ast::TraitDef| it.doc_comment_text()) |
330 | .visit(doc_comments::<ast::Module>) | 326 | .visit(|it: ast::Module| it.doc_comment_text()) |
331 | .visit(doc_comments::<ast::TypeAliasDef>) | 327 | .visit(|it: ast::TypeAliasDef| it.doc_comment_text()) |
332 | .visit(doc_comments::<ast::ConstDef>) | 328 | .visit(|it: ast::ConstDef| it.doc_comment_text()) |
333 | .visit(doc_comments::<ast::StaticDef>) | 329 | .visit(|it: ast::StaticDef| it.doc_comment_text()) |
334 | .visit(doc_comments::<ast::NamedFieldDef>) | 330 | .visit(|it: ast::NamedFieldDef| it.doc_comment_text()) |
335 | .visit(doc_comments::<ast::EnumVariant>) | 331 | .visit(|it: ast::EnumVariant| it.doc_comment_text()) |
336 | .visit(doc_comments::<ast::MacroCall>) | 332 | .visit(|it: ast::MacroCall| it.doc_comment_text()) |
337 | .accept(&node)? | 333 | .accept(&node)? |
338 | } | 334 | } |
339 | 335 | ||
@@ -345,15 +341,15 @@ pub(crate) fn description_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> | |||
345 | let node = symbol.ptr.to_node(parse.tree().syntax()).to_owned(); | 341 | let node = symbol.ptr.to_node(parse.tree().syntax()).to_owned(); |
346 | 342 | ||
347 | visitor() | 343 | visitor() |
348 | .visit(|node: &ast::FnDef| node.short_label()) | 344 | .visit(|node: ast::FnDef| node.short_label()) |
349 | .visit(|node: &ast::StructDef| node.short_label()) | 345 | .visit(|node: ast::StructDef| node.short_label()) |
350 | .visit(|node: &ast::EnumDef| node.short_label()) | 346 | .visit(|node: ast::EnumDef| node.short_label()) |
351 | .visit(|node: &ast::TraitDef| node.short_label()) | 347 | .visit(|node: ast::TraitDef| node.short_label()) |
352 | .visit(|node: &ast::Module| node.short_label()) | 348 | .visit(|node: ast::Module| node.short_label()) |
353 | .visit(|node: &ast::TypeAliasDef| node.short_label()) | 349 | .visit(|node: ast::TypeAliasDef| node.short_label()) |
354 | .visit(|node: &ast::ConstDef| node.short_label()) | 350 | .visit(|node: ast::ConstDef| node.short_label()) |
355 | .visit(|node: &ast::StaticDef| node.short_label()) | 351 | .visit(|node: ast::StaticDef| node.short_label()) |
356 | .visit(|node: &ast::NamedFieldDef| node.short_label()) | 352 | .visit(|node: ast::NamedFieldDef| node.short_label()) |
357 | .visit(|node: &ast::EnumVariant| node.short_label()) | 353 | .visit(|node: ast::EnumVariant| node.short_label()) |
358 | .accept(&node)? | 354 | .accept(&node)? |
359 | } | 355 | } |