This is the place for the stable API and for API proposals.
- find a proposal you are interested in
- add its name to your extensions
package.json#enabledApiProposalsproperty - run
npx vscode-dts devto download thed.tsfiles into your project - don't forget that extension using proposed API cannot be published
- learn more here: https://code.visualstudio.com/api/advanced-topics/using-proposed-api
- create a new file in this directory, its name must follow this pattern
vscode.proposed.[a-zA-Z]+.d.ts - creating the proposal-file will automatically update
src/vs/platform/extensions/common/extensionsApiProposals.ts(make sure to runnpm run watch) - declare and implement your proposal
- make sure to use the
checkProposedApiEnabledand/orisProposedApiEnabled-utils to enforce the API being proposed. Make sure to invoke them with your proposal's name which got generated intoextensionsApiProposals.ts - Most likely will need to add your proposed api to vscode-api-tests as well
After adding, removing, or renaming a proposal, include the updated
API proposal registry with your change.
Developer compilation, npm run watch, and npm run build-fast regenerate it automatically.
To regenerate it explicitly from the repository root, run:
npm run gulp compile-api-proposal-namesTo check it without changing any source files, run:
npm run gulp check-api-proposal-namesProduction and PR CI run this check as the first step of core-ci, before type-checking,
transpilation, and bundling. Unlike the legacy production regeneration step, this check
fails on a stale or missing registry rather than repairing it. It reuses the generator
to compare the complete generated contents, allowing both LF and CRLF line endings.