CodeEditSourceEditor icon indicating copy to clipboard operation
CodeEditSourceEditor copied to clipboard

✨ Show Code Structure when Scrolling (aka Sticky Headers)

Open ProfessorConfundus opened this issue 3 years ago • 1 comments

Description

When working in long source files, it's easy to lose track of which class, function, or structural block you're currently in while scrolling. A helpful enhancement would be to show a floating indicator or sticky header that displays the current code structure as you scroll through the file.

Proposed Behavior

  • While scrolling, a temporary overlay or sticky header appears, showing the current structural context (e.g., class, function, namespace).
  • The indicator updates in real-time based on scroll position.
  • The indicator fades out after scrolling stops or once the user re-engages with the editor.

Implementation Notes

  • We can leverage the existing Tree-sitter integration to identify and display the current structure based on the syntax tree.
  • This could tie into the same symbol parsing used for outline views or breadcrumbs, minimizing duplication.

Benefits

  • Improves orientation when navigating large files.
  • Reduces mental overhead by keeping context visible.
  • Useful for both reading and editing code, especially in deeply nested files.

Additional Context

This behavior would be especially valuable during code review, debugging, or when working in unfamiliar codebases. It could be made optional in preferences.

  • https://twitter.com/a_grebenyuk/status/1534359760308424711?s=21&t=Ok1RPHZ0s8iMU6Bf3HYJyA
  • https://learn.microsoft.com/en-us/visualstudio/ide/editor-sticky-scroll?view=vs-2022

Screenshots

https://github.com/user-attachments/assets/36920923-bfd8-45f1-a63f-9b7873f4de6e

ProfessorConfundus avatar Jun 09 '22 20:06 ProfessorConfundus

I've updated the issue description for increased clarity.

austincondiff avatar Apr 19 '25 21:04 austincondiff

Is the issue still free to work on? I could give it a shot as it would be my first contribution to this project.

lassevonpfeil avatar Aug 21 '25 11:08 lassevonpfeil

Hi @lassevonpfeil I've assigned you to this issue, you can work on it, thanks for supporting the project!

0xWDG avatar Aug 21 '25 11:08 0xWDG