Modula-2 Studio is a GNU Modula-2 IDE built on the Eclipse Theia IDE
product template (modula2-ide/), with the full theia-ide extension
set (search, tasks, terminal, SCM, debug, …).
It gives you: .mod/.def highlighting, snippets, auto-uppercasing,
outline / hover / go-to-definition / references / rename, formatting,
gm2 Build-Run, GDB debug, and modula2.json projects.
Pascal and Oberon support is parked in
attic/for now and will be re-enabled once Modula-2 works correctly.
node --version # >=24
yarn --version # 1.x Classic
gm2 --version
gdb --version
Debian/Ubuntu: sudo apt install gm2 gdb binutils.
Editing features (hover, outline, rename, formatting) work without
any compiler.
cd modula2-ide
yarn
yarn build
yarn start:browser # http://localhost:3000
# or
yarn start:electron
The standalone editor plugin (VS Code-compatible) ships as a
versioned zip: modula2-language-*.zip.
examples/hello/src/Main.mod — sample programmodula2.json — project descriptor:{
"name": "Hello",
"compiler": {"type": "gnu-modula-2", "path": "gm2", "options": []},
"sourceDirectories": ["src"],
"main": "src/Main.mod"
}
Foo.mod / Foo.def. Keywords auto-uppercase (begin ->
BEGIN, but beginning is left alone).F12 go-to-definition (incl. .def cross-file),
Shift+F12 references, F2 rename, Ctrl+Shift+O outline,
Shift+Alt+F format.mod, proc, if, defmod.Commands (via F1 / Ctrl+Shift+P):
Modula-2: New Modula-2 Project / New Module / New Definition ModuleModula-2: Validate ProjectModula-2: About Modula-2 IDEWith modula2.json open in workspace:
F1 > Modula-2: Build — builds bin/<name>Modula-2: Build File / Clean / Rebuild / Rungm2 -o bin/Hello src/Main.mod && ./bin/HelloBuild errors appear in Problems panel, click to jump to source.
Modula-2: Build (passes -g by default, so breakpoints bind).Run > Start Debugging, type modula2. program defaults to bin/<name>.The example launch.json sets "preLaunchTask": "Modula-2: Build", so
debugging always builds first. You get: continue/step over/into/out, call
stack, Locals + Module scopes, hover/evaluate.
Right-click any file in the Modula-2 Project view for New Module Here,
Build and Refresh without leaving the explorer.
plugins/modula2-language/ was synced by yarn build:language.gm2 not found: set "compiler": {"path": "/usr/bin/gm2"} in modula2.json.program not found: run Modula-2: Build first.