aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/display.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/display.rs')
-rw-r--r--crates/ra_ide_api/src/display.rs28
1 files changed, 27 insertions, 1 deletions
diff --git a/crates/ra_ide_api/src/display.rs b/crates/ra_ide_api/src/display.rs
index c05d59689..efadb9b10 100644
--- a/crates/ra_ide_api/src/display.rs
+++ b/crates/ra_ide_api/src/display.rs
@@ -3,10 +3,36 @@
3use super::*; 3use super::*;
4use std::fmt::{self, Display}; 4use std::fmt::{self, Display};
5use join_to_string::join; 5use join_to_string::join;
6use ra_syntax::ast::{self, AstNode, NameOwner, VisibilityOwner, TypeParamsOwner}; 6use ra_syntax::{ast::{self, AstNode, NameOwner, VisibilityOwner, TypeParamsOwner}, SyntaxKind::{ATTR, COMMENT}};
7use std::convert::From; 7use std::convert::From;
8use hir::Docs; 8use hir::Docs;
9 9
10pub(crate) fn function_label(node: &ast::FnDef) -> String {
11 FunctionSignature::from(node).to_string()
12}
13
14pub(crate) fn const_label(node: &ast::ConstDef) -> String {
15 let label: String = node
16 .syntax()
17 .children_with_tokens()
18 .filter(|child| !(child.kind() == COMMENT || child.kind() == ATTR))
19 .map(|node| node.to_string())
20 .collect();
21
22 label.trim().to_owned()
23}
24
25pub(crate) fn type_label(node: &ast::TypeAliasDef) -> String {
26 let label: String = node
27 .syntax()
28 .children_with_tokens()
29 .filter(|child| !(child.kind() == COMMENT || child.kind() == ATTR))
30 .map(|node| node.to_string())
31 .collect();
32
33 label.trim().to_owned()
34}
35
10/// Contains information about a function signature 36/// Contains information about a function signature
11#[derive(Debug)] 37#[derive(Debug)]
12pub struct FunctionSignature { 38pub struct FunctionSignature {