This extension contributes built-in VS Code extensions to Eclipse Theia applications.
Install nvm.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
Install npm and node.
nvm install 12
nvm use 12
Install yarn.
npm install -g yarn
Install vscode.
cd vscode-builtin-extensions
git submodule init
git submodule update
Install vscode prerequisite dependencies.
https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites
Pick a specific vscode version (optional)
cd <repo root>/vscode
git checkout 1.45.0
yarn
yarn start:browser
Open http://localhost:3000 in the browser.
yarn start:electron
Start watching of vscode-builtin-extensions.
cd vscode-builtin-extensions
yarn watch
Start watching of the browser example.
yarn rebuild:browser
cd browser-app
yarn watch
Launch Start Browser Backend
configuration from VS code.
Open http://localhost:3000 in the browser.
Start watching of vscode-builtin-extensions.
cd vscode-builtin-extensions
yarn watch
Start watching of the electron example.
yarn rebuild:electron
cd electron-app
yarn watch
Launch Start Electron Backend
configuration from VS code.
If required, step the extension's version in src/publish.js
// bump to publish
let version = '0.2.1';
Create a npm user and login to the npm registry, more on npm publishing.
npm login
Publish packages with lerna to update versions properly across local packages, more on publishing with lerna.
npx lerna publish
The version of the packaged built-ins is taken from VS Code's package.json
and adjusted automatically when packaging a next
revision.
Latest / solid revision example:
cd vscode; git checkout 1.45.0; cd ..
yarn; yarn package-vsix:latest
Next / interim revision example:
cd vscode; git checkout d69a79b73808559a91206d73d7717ff5f798f23c; cd ..
yarn; yarn package-vsix:next
The generated .vsix
will be under folder ./dist
The ovsx
client is used to publish to an open-vsx registry. By default https://open-vsx.org is used. To use another open-vsx registry, set its URL in environment variable OVSX_REGISTRY_URL
. Use enviromnent variable OVSX_PAT
to store the personal access token obtained from the registry.
After packaging the extensions as .vsix
(see above), you may examine/test them under folder dist
. Remove any that you do not wish to be published (e.g. those not working well). When ready proceed with publishing:
yarn publish:vsix
There is a GH action to help: publish-vsx-specific-latest
. For this to work, the version to be published needs to be removed from open-vsx. Then one must push to branch ovsx-publish
. Make sure the wanted solid version of the vscode
git submodule is checked-out in the pushed change. We do not care about that branch - once publish is done, it can be reset the next time.
There is a GH action to help: publish-vsx-specific-next
. For this to work, the version to be published needs to be removed from open-vsx. Then one must push to branch ovsx-publish-next
. Make sure the wanted intermediary version of the vscode
git submodule is checked-out in the pushed change. We do not care about that branch - once publish is done, it can be reset the next time.
- Eclipse Public License 2.0
- δΈ (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception
"Theia" is a trademark of the Eclipse Foundation https://www.eclipse.org/theia