diff options
| author | Young-Flash <dongyang@apache.org> | 2025-07-26 11:57:48 +0800 |
|---|---|---|
| committer | Young-Flash <dongyang@apache.org> | 2025-07-26 11:57:48 +0800 |
| commit | e39201395d5626feefe669c9499667b927f29a58 (patch) | |
| tree | 90a6988998ebb1c9179360b4982995d2150c1f88 | |
| parent | b9827eb1d87146cf043a7ba2158424db4ab79a05 (diff) | |
| download | rust-e39201395d5626feefe669c9499667b927f29a58.tar.gz rust-e39201395d5626feefe669c9499667b927f29a58.zip | |
fix fold doc comment for multiline param list fn
| -rwxr-xr-x | src/tools/rust-analyzer/crates/ide/src/folding_ranges.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/tools/rust-analyzer/crates/ide/src/folding_ranges.rs b/src/tools/rust-analyzer/crates/ide/src/folding_ranges.rs index 698fd147789..c00b3e83d3c 100755 --- a/src/tools/rust-analyzer/crates/ide/src/folding_ranges.rs +++ b/src/tools/rust-analyzer/crates/ide/src/folding_ranges.rs @@ -73,11 +73,13 @@ pub(crate) fn folding_ranges(file: &SourceFile) -> Vec<Fold> { } if fn_node.body().is_some() { + // Get the actual start of the function (excluding doc comments) + let fn_start = fn_node + .fn_token() + .map(|token| token.text_range().start()) + .unwrap_or(node.text_range().start()); res.push(Fold { - range: TextRange::new( - node.text_range().start(), - node.text_range().end(), - ), + range: TextRange::new(fn_start, node.text_range().end()), kind: FoldKind::Function, }); continue; |
