I am a C++ dev. I am now able to follow up symbols or files using LSP,/projectile/ivy/transient aso… but inside one file, I have difficulties going quickly up function by function, or by if/for statement. Do you know a convenient way to do this ? I am interested in any navigation tips as well ! Thanks for your help !
You can go to the next/previous function with C-M-a and C-M-e. With evil mode it’s ] m and [ m. You can use imenu. You can make keybindings to scroll forwards/backwards several lines at a time.
That one is great !!! What if I want to navigate through statements of the same type ? Like if instructions?
See my reply above. You can use either thing-cmd.el
or find-where.el
for that. You just need to define “statements of a given type” as a THING or define a predicate that is true for them. Or if their text has some property (even just face
from font-locking) then isearch-prop.el
will help.
I like imenu-list a lot for showing the classes, methods, functions, etc in the file in a side buffer.
I think the “hide-show” package is invaluable in navigating large files.
You can see all functions collapsed in a file.
Or, within a function, you can see all blocks of code {}
collapsed.
avy
is good for quickly jumping between what’s visible. Occur is brilliant, it might also be worth mentioning consult and embark.
Using treesitter you can have text objects that are if statements or functions or whatever. From there it is just a key binding away