aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcsmoe <[email protected]>2019-01-04 13:29:00 +0000
committercsmoe <[email protected]>2019-01-04 13:29:00 +0000
commitf604ff5b2f72a593e23953ed8be7e9cbeba5d287 (patch)
treea084598dfd0c70fed03f1ac556be9b7eed5fb43d
parent8a6d6ac1326ed522004350ae5700ef3ca10c8230 (diff)
parse doc comment for items
-rw-r--r--crates/ra_analysis/src/lib.rs2
-rw-r--r--crates/ra_analysis/tests/test/main.rs3
-rw-r--r--crates/ra_syntax/src/ast.rs12
3 files changed, 15 insertions, 2 deletions
diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs
index ab935954c..1e26a2889 100644
--- a/crates/ra_analysis/src/lib.rs
+++ b/crates/ra_analysis/src/lib.rs
@@ -394,7 +394,7 @@ impl Analysis {
394 pub fn doc_text_for(&self, nav: NavigationTarget) -> Cancelable<Option<String>> { 394 pub fn doc_text_for(&self, nav: NavigationTarget) -> Cancelable<Option<String>> {
395 self.db.doc_text_for(nav) 395 self.db.doc_text_for(nav)
396 } 396 }
397 /// Returns a `mod name;` declaration whihc created the current module. 397 /// Returns a `mod name;` declaration which created the current module.
398 pub fn parent_module(&self, position: FilePosition) -> Cancelable<Vec<NavigationTarget>> { 398 pub fn parent_module(&self, position: FilePosition) -> Cancelable<Vec<NavigationTarget>> {
399 self.db.parent_module(position) 399 self.db.parent_module(position)
400 } 400 }
diff --git a/crates/ra_analysis/tests/test/main.rs b/crates/ra_analysis/tests/test/main.rs
index bfdf8aef2..859778024 100644
--- a/crates/ra_analysis/tests/test/main.rs
+++ b/crates/ra_analysis/tests/test/main.rs
@@ -249,7 +249,8 @@ fn bar() {
249fn test_fn_signature_with_docs_simple() { 249fn test_fn_signature_with_docs_simple() {
250 let (desc, param) = get_signature( 250 let (desc, param) = get_signature(
251 r#" 251 r#"
252// test 252/// test
253// non-doc-comment
253fn foo(j: u32) -> u32 { 254fn foo(j: u32) -> u32 {
254 j 255 j
255} 256}
diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs
index e968c9728..c5273a7a2 100644
--- a/crates/ra_syntax/src/ast.rs
+++ b/crates/ra_syntax/src/ast.rs
@@ -115,6 +115,7 @@ pub trait DocCommentsOwner<'a>: AstNode<'a> {
115 /// That is, strips leading `///` and joins lines 115 /// That is, strips leading `///` and joins lines
116 fn doc_comment_text(self) -> RustString { 116 fn doc_comment_text(self) -> RustString {
117 self.doc_comments() 117 self.doc_comments()
118 .filter(|comment| comment.is_doc_comment())
118 .map(|comment| { 119 .map(|comment| {
119 let prefix = comment.prefix(); 120 let prefix = comment.prefix();
120 let trimmed = comment 121 let trimmed = comment
@@ -206,6 +207,10 @@ impl<'a> Comment<'a> {
206 } 207 }
207 } 208 }
208 209
210 pub fn is_doc_comment(&self) -> bool {
211 self.flavor().is_doc_comment()
212 }
213
209 pub fn prefix(&self) -> &'static str { 214 pub fn prefix(&self) -> &'static str {
210 self.flavor().prefix() 215 self.flavor().prefix()
211 } 216 }
@@ -237,6 +242,13 @@ impl CommentFlavor {
237 Multiline => "/*", 242 Multiline => "/*",
238 } 243 }
239 } 244 }
245
246 pub fn is_doc_comment(&self) -> bool {
247 match self {
248 CommentFlavor::Doc | CommentFlavor::ModuleDoc => true,
249 _ => false,
250 }
251 }
240} 252}
241 253
242impl<'a> Whitespace<'a> { 254impl<'a> Whitespace<'a> {