I’ve followed along with the documentation and have done the “Build Your Own IDE” as well as “Authoring an Extension” and “Authoring a Plugin” using yeoman/lerna. I’m wondering what the best project layout would be if you perhaps wanted the flexibility to do all 3?
Thanks for any advice,
[original thread by dehru]
In other words, would you recommend starting a project with one of the yeoman generators to scaffold it, or some combination, or build it up from scratch? ( again, to support custom editor plus extensions / plugins )
I forgot the details, but the yeoman template did not work for me. I manually created a workspace by copying selected files over into an empty repo that looks like this and adding our own to that. The goal was to end up with a repo that would allow creating a workspace that would support building, watching, and debug, which as much as possible only contained our own files. So there are several files copied from Theia’s repo directory and I do a manual compare every time we adopt a new release on these to look for changes. Any tips on how to improve on this would be appreciated.
.vscode (copied from Theia and adjusted debug launches)
configs (copied from Theia and adjusted slightly for our rules)
packages (only contains our extensions)
application (our application directory with only a package.json inside as we only build for browser)
.npmignore (copied from Theia)
package.json (copied and heavily adjusted, see below)
The top-level package.json is based on the Theia one and the contains our packages. Plus we added resolutions for all @theia packages as it does not support building older versions.
I’ve used the generator last week and it was working. If something is wrong with it, please file a bug and let us know.
The generator produces a standard layout for a single extension development. But you can extend it by adding new extensions and npm scripts to simplify building them.
Thanks for the information ( from both of you ). I want to get started on the right foot.