Skip to content

Latest commit

 

History

History
188 lines (153 loc) · 8.58 KB

index.md

File metadata and controls

188 lines (153 loc) · 8.58 KB
<style> .markdown-body h2 { margin-top: 2em; } .markdown-body ul { padding-left: 1em; } .markdown-body ul li { margin: 0.5em 0; } .markdown-body .lead-screenshot { float: right; display: block; margin: 1em auto; max-width: 500px; margin-left: 0.5em; border: 1px solid lightgrey; border-radius: 10px; } </style>

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. Our default search-based code navigation uses syntactic-level heuristics (no language-level semantic information) for fast, performant searches across large code bases.
  • Precise code navigation powers our code graph by using compile-time information to provide users with an extremely precise and accurate cross-repository1 experience. This means you'll get an accurate view of all symbols and where they are used across your code base.

Precise code navigation requires language-specific indexers to be generated and uploaded to your instance. We currently have precise code navigation support for the languages below. See the indexers page for a detailed breakdown of each indexer's status.

Language Indexer Status
Go lsif-go 🟢 Generally available
TypeScript, JavaScript scip-typescript 🟢 Generally available
C, C++ scip-clang 🟡 Partially available
Java, Kotlin, Scala scip-java 🟢 Generally available
Rust rust-analyzer 🟢 Generally available
Python scip-python 🟢 Generally available
Ruby scip-ruby 🟢 Generally available
C#, Visual Basic scip-dotnet 🟡 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, 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. Optionally automate index uploading by adding indexing and uploading to your CI setup.

  4. Enable auto-indexing on your Sourcegraph instance to get automatic precise code navigation. Sourcegraph will automatically index your repositories and enable precise code navigation for them.

  5. Set up auto-dependency indexing to navigate and search through the dependencies your code uses:

Once set up, you can use code navigation with popular development tools:

Footnotes

  1. Supported for any language with a SCIP indexer.