diff options
author | csmoe <[email protected]> | 2019-01-04 13:29:00 +0000 |
---|---|---|
committer | csmoe <[email protected]> | 2019-01-04 13:29:00 +0000 |
commit | f604ff5b2f72a593e23953ed8be7e9cbeba5d287 (patch) | |
tree | a084598dfd0c70fed03f1ac556be9b7eed5fb43d | |
parent | 8a6d6ac1326ed522004350ae5700ef3ca10c8230 (diff) |
parse doc comment for items
-rw-r--r-- | crates/ra_analysis/src/lib.rs | 2 | ||||
-rw-r--r-- | crates/ra_analysis/tests/test/main.rs | 3 | ||||
-rw-r--r-- | crates/ra_syntax/src/ast.rs | 12 |
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() { | |||
249 | fn test_fn_signature_with_docs_simple() { | 249 | fn 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 | ||
253 | fn foo(j: u32) -> u32 { | 254 | fn 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 | ||
242 | impl<'a> Whitespace<'a> { | 254 | impl<'a> Whitespace<'a> { |