Code intelligence enhancements
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> *This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.* <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> ## Problem to solve The great work introduced in https://gitlab.com/groups/gitlab-org/-/epics/1576 provides a solid MVC for code intelligence. As both LSIF indexers improve and usage of the feature increases, we identify a number of possible improvements that will further enhance this great feature. This epic will focus on these improvements. ## Vision Code navigation (and search) should work by default on every GitLab instance, so that administrators don't have to install, configure, and manage an additional tool for this critical capability. ## Proposal We should focus on enhancing in the following areas: - Precisely measuring the usage of code intelligence so we can identify further opportunities - Making code intelligence enabled by default (via Auto DevOps) - Enhancing "references" functionality so users get all data in place - Support for multi-language projects - API support - Further dogfooding (other than our Go projects) - Sophisticated data retention Challenges: - learning about the LSIF format - exposing it efficiently via API (probably GraphQL only?) - storage policy for raw LSIF files (use S3, but they become out of date) - handle stale LSIF indexes - estimating DB storage requirements of this kind of data ## Buyer tier Code navigation is useful for individual contributors, either browsing their own code, or reviewing the code of a colleague. It makes the individual more efficient, provides a more IDE like experience, and allows individuals to understand code more deeply faster. Given this, a basic version supporting **jump to definition** and **find references** should be available in GitLab Core (free, open source). ## Links / references - https://github.com/sourcegraph/sourcegraph/tree/master/lsif#architecture - https://github.com/sourcegraph/sourcegraph/blob/master/lsif/docs/datamodel.md
epic