monaco-editor 0.56.0 · LilScript port · not 100% feature parity
Monaco,
by submodule.
An independent LilScript editor that implements a large slice of monaco-editor@0.56.0. It is not 100% feature parity. Size rows are a library comparison: JS keeps ESM exports, Lil keepers call public class methods so export class does not DCE to nothing. Headline JS is Vite 8 / Oxc. esbuild and Terser are scored on the same sources. CSS-only monaco files are excluded. Ratio is LilScript Brotli-11 / JS Brotli-11.
npm install @itslil/monaco-editor
Headline is the largest JS folder, independently compiled, other monaco imports external. JS minified with Vite 8 Oxc. esbuild 0.28.1 and Terser 5.50.0 are on the same files. Ratio is LilScript Brotli / JS Brotli. Not 100% feature parity.
Fair comparison
Folders,
not the kitchen sink.
Each runtime monaco-editor-core file is minified three ways — Vite 8 / Oxc, esbuild, Terser — with other monaco imports left external. Lil is compiled as js-module with keepers so public constructors and methods stay live. That is the same retention as an ESM library, not an app tree-shake. CSS-only / re-export JS files are left out. Tiny Lil rows are incomplete ports. Folders are listed largest Vite/Oxc Brotli first. Ratio is Lil Brotli / Vite 8 Oxc Brotli.
| Folder · .lil on GitHub | Files | Vite 8 / Oxc | esbuild | Terser | Lil Brotli | Lil / Oxc |
|---|
Folder names open the conversion table. The .lil mark opens that folder on GitHub. Headline ratio is LilScript Brotli-11 / Vite 8 Oxc Brotli-11.
Every module, one conversion
JS in,
.lil out.
Each monaco-editor-core file has a matching LilScript file in src/. Left side is Microsoft’s JS at the pinned VS Code commit. Right side is the .lil on GitHub. Filter a folder from the table above, or search.
| JS module · vscode | .lil conversion · GitHub | Vite 8 / Oxc | Lil Brotli | Lil / Oxc |
|---|
Same sources, three JS minifiers
Vite 8 Oxc
vs the rest.
Latest Vite on npm is 8.2.1. Its default client minify is Oxc (Rolldown 1.2.4). The other two lanes are esbuild 0.28.1 and Terser 5.50.0. Lil is not post-minified with those tools. Ratio is Lil Brotli / that JS lane.
| JS minifier | Version | Raw | gzip-9 | Brotli-11 | Lil / JS |
|---|
nontest-entire-module
Independent
modules.
The catalog sum of those standalone compiles. File pairs below use the same keepers on Lil and the same three JS minifiers. Still not the shipped editor, and still not feature parity.
| Lane | Files | JS minify | Raw | gzip-9 | Brotli-11 | Lil / JS |
|---|
| File pair · .lil | Vite 8 / Oxc | esbuild | Terser | Lil Brotli | Lil / Oxc |
|---|
Same chrome, two editors
Look at
the drift.
Open both. Type in src/App.tsx — Solid TSX goes through the official Microsoft TypeScript worker on both pages. Catalog numbers use Vite 8 / Oxc. Menus and some commands will not match. That is the current port.
Diagnostic · do not headline
Whole IDE
bytes.
Production ide.js plus workers. The JS workbench is scored with Vite 8 / Oxc, esbuild, and Terser. Lil language hosts are compiled LilScript; TypeScript is the same Microsoft ts.worker on both pages. Ratio is Lil Brotli / that JS lane.
| Artifact | JS raw | JS Brotli | Lil raw | Lil Brotli | Lil / JS |
|---|
Not 100% feature parity. The Lil editor is a LilScript runtime plus a monaco-editor-core catalog, not monaco-editor with a few files swapped. Official tsc is unchanged. Context-menu items and several contrib surfaces still differ. Submodule rows above are the size comparison: Vite 8 Oxc on JS, with esbuild and Terser beside it. Ratio is Lil / JS Brotli.
Zero runtime dependencies
Install the
current port.
npm install @itslil/monaco-editor