Code navigation

Navigate your code with tooling that understands it

Code navigation enables developers to explore code by

  • jumping to definitions
  • finding references
  • listing implementations
  • browsing symbols defined in current document or folder
  • navigate dependencies
  • documentation in hover tooltips

Code navigation is made up of multiple features that build on top of each other:

  • Search-based code navigation works out of the box with all of the most popular programming languages, powered by Sourcegraph's code search.
  • Precise code navigation uses code graph data to provide precise code navigation features and accurate cross-repository navigation. We currently have precise support the languages below. See the indexers page for a detailed breakdown of each indexer's status.
Language Indexer Status
Go lsif-go 🟢 GA
TypeScript/JavaScript scip-typescript 🟢 GA
C/C++ lsif-clang 🟡 Partially available
Java scip-java 🟢 GA
Scala scip-java 🟢 GA
Kotlin scip-java 🟢 GA
Rust rust-analyzer 🟢 GA
Python scip-python 🟢 GA
Ruby scip-ruby 🟡 Partially available
  • Auto-indexing uses Sourcegraph executors to create indexes for the code in your Sourcegraph instance, giving you up-to-date cross-repository code navigation.
  • Beta Dependency navigation allows you to navigate and search through the dependencies of your code, by leveraging precise code navigation and auto-indexing.

Code navigation for your code

Here's how you go from search-based code navigation to automatically-updating, precise code navigation across multiple repositories and dependencies:

  1. Navigate code with search-based code navigation.

  2. Start using precise code navigation by creating an index of a repository and uploading it to your Sourcegraph instance:

  3. Optional: automate the uploading of indexes by adding indexing and uploading to your CI setup.

  4. Get automatic precise code navigation by enabling auto-indexing which makes Sourcegraph automatically index the your repositories and enable precise code navigation for them.

  5. Setup auto-dependency indexing to navigate and search through the dependencies used by your code:

Once setup, code navigation is available for use across popular development tools:

Explanations

How-tos

References