Extract Java-style doc comments (/** ... */) preceding a declaration.
(state: &ExtractionState, node: TsNode<'_>)
| 1003 | |
| 1004 | /// Extract Java-style doc comments (/** ... */) preceding a declaration. |
| 1005 | fn extract_java_docstring(state: &ExtractionState, node: TsNode<'_>) -> Option<String> { |
| 1006 | let mut current = node.prev_named_sibling(); |
| 1007 | while let Some(sibling) = current { |
| 1008 | match sibling.kind() { |
| 1009 | "block_comment" => { |
| 1010 | let text = state.node_text(sibling); |
| 1011 | if text.starts_with("/**") { |
| 1012 | return Some(Self::clean_javadoc(&text)); |
| 1013 | } |
| 1014 | // Skip non-javadoc block comments. |
| 1015 | current = sibling.prev_named_sibling(); |
| 1016 | } |
| 1017 | "line_comment" => { |
| 1018 | current = sibling.prev_named_sibling(); |
| 1019 | } |
| 1020 | _ => break, |
| 1021 | } |
| 1022 | } |
| 1023 | None |
| 1024 | } |
| 1025 | |
| 1026 | /// Clean a Javadoc comment block, stripping the /** and */ markers and leading * on each line. |
| 1027 | fn clean_javadoc(comment: &str) -> String { |