One Sourcegraph extension per language (and removing basic-code-intel)
Created by: chrismwendt
basic-code-intel as a single extension introduced a few problems:
- We added a bunch of logic to the extension host and API for hover priority so that results from the more precise language extensions would replace results form basic-code-intel
- We also added buttons like "Show/Hide fuzzy matches" to help the user clear out results from basic-code-intel when they're using a precise language extension
- We didn't like the name https://sourcegraph.slack.com/archives/C07KZF47K/p1548388586476200
To solve all of these problems, I will:
-
Rename lang-*
tosourcegraph/*
-
Create one Sourcegraph extension for each of the top ~6 languages that we do not already have extensions for (e.g. Swift, Rust). This pushes the responsibility of merging results down to the individual language extensions and simplifies the extension API. This also conveys to prospective extension authors that their favorite language extension is ready to be improved and is just as first-class as the Go, TypeScript, and Python extensions are (in particular the fact that they have dedicated repositories and are entire extensions in and of themselves, albeit basic and only based on ctags + regex search to begin with). See https://github.com/sourcegraph/sourcegraph-basic-code-intel -
Turn basic-code-intel into a library that the individual language extensions can import and reuse. See https://github.com/sourcegraph/sourcegraph-basic-code-intel -
Enable the ~6 languages in default settings https://github.com/sourcegraph/sourcegraph/pull/2028 This covers 95% of all code, we can add/change the defaults in subsequent versions of the product, and admins can always enable new extensions at in global settings. -
Make basic-code-intel log a message to the console that says it's deprecated -
Add a deprecation notice to basic-code-intel -
After a few days, display a notification in the UI telling the user to enable individual language extensions -
Post 3.0 after a few weeks delete the basic-code-intel extension