(language: TsLanguageKind, node: Node, source: &str)
| 351 | |
| 352 | #[cfg(feature = "tree-sitter-ast")] |
| 353 | fn parameters_text(language: TsLanguageKind, node: Node, source: &str) -> String { |
| 354 | let field_candidates = match language { |
| 355 | TsLanguageKind::Go => &["parameters", "signature"][..], |
| 356 | _ => &["parameters"][..], |
| 357 | }; |
| 358 | for field in field_candidates { |
| 359 | if let Some(p) = node.child_by_field_name(field) { |
| 360 | return node_text(p, source); |
| 361 | } |
| 362 | } |
| 363 | // TypeScript/JavaScript use `formal_parameters`. |
| 364 | if let Some(formal) = node |
| 365 | .named_children(&mut node.walk()) |
| 366 | .find(|child| child.kind().ends_with("parameters")) |
| 367 | { |
| 368 | return node_text(formal, source); |
| 369 | } |
| 370 | String::new() |
| 371 | } |
| 372 | |
| 373 | #[cfg(feature = "tree-sitter-ast")] |
| 374 | fn return_type_text(language: TsLanguageKind, node: Node, source: &str) -> String { |
no test coverage detected