about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYoung-Flash <dongyang@apache.org>2025-07-26 11:57:48 +0800
committerYoung-Flash <dongyang@apache.org>2025-07-26 11:57:48 +0800
commite39201395d5626feefe669c9499667b927f29a58 (patch)
tree90a6988998ebb1c9179360b4982995d2150c1f88
parentb9827eb1d87146cf043a7ba2158424db4ab79a05 (diff)
downloadrust-e39201395d5626feefe669c9499667b927f29a58.tar.gz
rust-e39201395d5626feefe669c9499667b927f29a58.zip
fix fold doc comment for multiline param list fn
-rwxr-xr-xsrc/tools/rust-analyzer/crates/ide/src/folding_ranges.rs10
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;