a customization of Theia from the Eclipse fondation for Modula-2 use, specifically (for the moment) GNU Modula-2
|
|
1 week ago | |
|---|---|---|
| apps | 1 week ago | |
| examples | 1 week ago | |
| extensions | 1 week ago | |
| grammars | 2 weeks ago | |
| scripts | 2 weeks ago | |
| .gitignore | 1 week ago | |
| PLAN.md | 1 week ago | |
| README.md | 1 week ago | |
| SOURCE-TREE.txt | 1 week ago | |
| TUTORIAL.md | 1 week ago | |
| package-lock.json | 2 weeks ago | |
| package.json | 1 week ago | |
| yarn.lock | 1 week ago |
A starting point for a dedicated GNU Modula-2 IDE built on Eclipse Theia.
modula2-workbench extensionmodula2-language extension.mod and .def support.def resolution)modula2.jsonmodula2, program defaults to bin/<name>)modula2.json JSON schema for editor completions and validationThe current project targets Eclipse Theia 1.75.0, whose current stable release uses Node.js 24 as its minimum. Use Yarn Classic (1.x).
node --version
yarn --version
yarn
yarn build
Run browser:
yarn start:browser
Run Electron:
yarn start:electron
The language extension is intentionally a VS Code-compatible extension because Theia recommends VS Code extensions for language support. Native Theia extensions are used for product-specific workbench features.
The Electron app packages to a self-contained AppImage and a Debian package with everything except the compiler toolchain (see host prerequisites below):
cd apps/electron
yarn package # production bundle + plugin staging + dist/*.AppImage, dist/*.deb
This runs bundle:prod (native rebuild + production esbuild), stages the
modula2-language plugin with its runtime dependencies into
apps/electron/plugins/, and builds the artifacts via electron-builder.
The packaged launcher (electron-launcher.js) points the backend at the
bundled plugins through the THEIA_PLUGINS environment variable, so no
--plugins flag is needed.
Debian users install with:
sudo apt install ./modula2-ide-electron_0.15.0_amd64.deb
then launch Modula-2 IDE from the applications menu (Development
section). The package ships its icon and desktop entry; uninstall with
sudo apt remove modula2-ide-electron.
This runs bundle:prod (native rebuild + production esbuild), stages the
modula2-language plugin with its runtime dependencies into
apps/electron/plugins/, and builds
dist/Modula-2 IDE-<version>.AppImage via electron-builder. The packaged
launcher (electron-launcher.js) points the backend at the bundled
resources/plugins through the THEIA_PLUGINS environment variable, so no
--plugins flag is needed.
Host prerequisites (not bundled): GNU Modula-2 (gm2), gdb and readelf
for build/run/debug. On Debian/Ubuntu the IDE itself needs only FUSE (or
APPIMAGE_EXTRACT_AND_RUN=1) to launch the AppImage.
gm2 (see GNU-grammar).modula2.json project supportThe Modula-2 language extension is a VS Code-compatible extension. The build synchronizes it into plugins/modula2-language, and the Browser/Electron applications start Theia with --plugins=local-dir:../../plugins. The plugin directory must contain the extension folder; pointing --plugins directly at the extension folder does not provide the expected container layout.
The language extension now contains a real LSP client/server pair. The server
can invoke a GNU Modula-2 executable generated from a Coco/R grammar and turn
its editor-oriented diagnostics into LSP diagnostics. See
extensions/modula2-language/COCOR-LSP.md.