https://github.com/eclipse-theia/generator-theia-extension
A Yeoman generator for extensions to the Theia IDE
https://github.com/eclipse-theia/generator-theia-extension
theia-extension theia-ide yeoman
Last synced: 6 months ago
JSON representation
A Yeoman generator for extensions to the Theia IDE
- Host: GitHub
- URL: https://github.com/eclipse-theia/generator-theia-extension
- Owner: eclipse-theia
- License: other
- Created: 2017-10-12T15:16:02.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-22T12:13:25.000Z (7 months ago)
- Last Synced: 2025-03-29T17:02:55.749Z (6 months ago)
- Topics: theia-extension, theia-ide, yeoman
- Language: TypeScript
- Size: 1.66 MB
- Stars: 66
- Watchers: 13
- Forks: 43
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
ECLIPSE THEIA - GENERATOR
[](https://github.com/theia-ide/generator-theia-extension/actions?query=branch%3Amaster)

A [yeoman](https://yeoman.io/) generator that scaffolds a project structure for developing custom [Eclipse Theia](https://github.com/eclipse-theia/theia) applications and extensions.
Please also see:
- [Build your own IDE/Tool based on Eclipse Theia](https://theia-ide.org/docs/composing_applications/)
- [Authoring Theia Extensions](https://theia-ide.org/docs/authoring_extensions/)
## How to use
To use it, install `yo` (version 4.x.x) and the `generator` (see next below).
```
npm install -g yo generator-theia-extension
```To create a sample Theia project (optionally with custom Theia extensions) including a browser and electron app, run:
```
mkdir my-theia-app && cd my-theia-app
yo theia-extension
```For configuration options, see:
```
yo theia-extension --help
```## Extension Options
The generator allows to generate an example extension that is directly part of the generated Theia application. Alternativly, you can select 'no-extension' to just generate a Theia application without a custom extension.
| Template Option | Description | Documentation |
|:---|:---|:---|
| `hello-world` | Creates a simple extension which provides a command and menu item which displays a message | [readme](https://github.com/eclipse-theia/generator-theia-extension/blob/master/templates/hello-world/README.md) |
| `widget` | Creates the basis for a simple widget including a toggle command, alert message and button displaying a message. The template also contains an example unit test. | [readme](https://github.com/eclipse-theia/generator-theia-extension/blob/master/templates/widget/README.md) |
| `labelprovider` | Creates a simple extension which adds a custom label (with icon) for .my files | [readme](https://github.com/eclipse-theia/generator-theia-extension/blob/master/templates/labelprovider/README.md) |
| `empty` | Creates a simple, minimal extension | [readme](https://github.com/eclipse-theia/generator-theia-extension/blob/master/templates/empty/README.md) |
| `backend` | Creates a backend communication extension | [readme](https://github.com/eclipse-theia/generator-theia-extension/blob/master/templates/backend/README.md) |
| `diagram-editor` | Creates a diagram editor extension | [readme](https://github.com/eclipse-glsp/glsp-examples/blob/master/README.md) |
| `no-extension` | Creates a Theia application without any extension | |## Publishing
Follow this [instruction](https://docs.npmjs.com/cli/adduser) to login to the npm registry with a user account.
If you don't have an account contact [Theia organization](https://www.npmjs.com/~theia) to request one.
Publish with [np](https://github.com/sindresorhus/np#np--).
npx np
## License
- [Eclipse Public License 2.0](LICENSE)
- [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](LICENSE)## Trademark
"Theia" is a trademark of the Eclipse Foundation
https://www.eclipse.org/theia