In the good ol' days, source navigator often came to the rescue for going through big chunks of code (hello to x-users of the tool and thank you RedHat!). Lots of things changed since then and new tools have appeared, however I have a pending question in relation to code analysis and assisted code navigation:

  • Is there a tool that can function well in both space (across complete LoC and hopefully across multiple git repositories) as well as time (i.e. navigate easily through commits & tags)?
  • If so, is said tool configurable enough so that the whole navigation experience can be mapped on, say, modifiers+arrow keys only?
  • Extra bonus points if it could analyse many languages, beyond C or Python, or it is an established IDE with further integrations etc.
  • Open source, please.

As an example, try to imagine exploring this codebase with its sub-repos as a first-timer, as well as a 3rd-party-provided helm chart:

Can we do better than downloading all repos, checking out commits, and grep -R through them?

At the moment, what is often found convenient is a search via an organisation's github page when it exists, to identify where individual functions, variables or constants are defined, with recursive grep as second best - but the need to search and navigate through timeline of commits is still not served in an ideal way.

In assisted code navigation, it should be relatively easy to detect how fi. a db configuration parameter is being used, where and how and what is the first thing to break if it gets modified:

apiVersion: v1
kind: List
  - apiversion: v1
    kind: Secret
    type: Opaque
      name: {{ template "fullname" . }}-db-secret
      db-root-pass: "myotherpassword"
      db-zbx-user: "hello"
      db-zbx-pass: "world"

I expect to see a tool, or a list of tools, that others declare content with their level of functionality, as regards the summary stated above and the need for assisted code navigation in both space/time.

p.s. Ideally the tool should be robust and flexible enough, so that exploring f.i. linux kernel function's netif_receive_skb_core's calling graph should be painless and intuitive, across commits and different kernel versions.

  • A colleague offered: GitLens is an open-source extension for Visual Studio Code. ref. gitlens.amod.io – fgeorgatos Nov 14 '19 at 19:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.