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 !

  • bananalimecherry@alien.topB
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    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.

    • _Gink0_@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      That one is great !!! What if I want to navigate through statements of the same type ? Like if instructions?

        • 00-11@alien.topB
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          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.

        • uita23@alien.topB
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Feels like this would be something cool to add to a treesitter mode.

          Meanwhile I just C-s if

      • 7890yuiop@alien.topB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I'm not sure what that means, but forward-sexp, backward-sexp, and backward-up-list are good for navigating across and within balanced expressions.