Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MondNew to Visual Studio Code? Get it now.
Mond

Mond

Rohansi

|
3,746 installs
| (0) | Free
Language support for the Mond scripting language
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Mond for Visual Studio Code

Language support and debugging for the Mond scripting language.

Features

  • Syntax highlighting for .mnd files, including nested block comments, arrow lambdas, decorators and object literals.
  • Editing support — bracket matching and colorization, auto-closing pairs, comment continuation on Enter, indentation rules and // #region folding markers.
  • Completion for keywords, standard library globals and modules, and identifiers declared in the current file. Typing . after a module such as Math lists its members.
  • Hover showing signatures for standard library symbols and for functions and variables declared in the file.
  • Outline and breadcrumbs listing fun, seq, var and const declarations, including nested ones.
  • Folding for blocks, comment blocks and regions.
  • Snippets for the common declarations and control flow statements.
  • Debugging — launch a script or attach to a running Mond process, set conditional breakpoints and logpoints, step, inspect the call stack, change values and evaluate expressions in the Debug Console.

Requirements

Debugging shells out to the Mond REPL. The extension looks for it in this order:

  1. The mond.replPath setting, if you set one.
  2. mond on your PATH.
  3. The Mond.Repl dotnet tool, which you can install with dotnet tool install --global Mond.Repl. The extension offers to do this for you the first time it comes up empty.

Everything other than debugging works without it.

Debugging

Add a configuration to .vscode/launch.json, or press F5 with a .mnd file open to debug it directly.

{
    "name": "Run Mond script",
    "type": "mond",
    "request": "launch",
    "program": "${workspaceFolder}/${file}",
    "stopOnEntry": true
}

To debug a process that is already running with the Mond remote debugger enabled:

{
    "name": "Attach to Mond process",
    "type": "mond",
    "request": "attach",
    "endpoint": "ws://127.0.0.1:1597"
}

Mond can only resolve local variables for the frame it stopped in, so selecting a caller in the Call Stack shows globals only, and changing a value or evaluating an expression is only possible in the topmost frame.

The Mond runtime has no notion of a breakpoint condition, so the extension stops on every hit and decides whether to report it. That makes conditions, hit counts and logpoints work anywhere, but a condition in a hot loop costs a round trip per iteration.

Settings

Setting Default Description
mond.replPath (empty) Path to the Mond REPL executable. Supports ${workspaceFolder} and ${userHome}.
mond.definitions.includeStandardLibrary true Include the bundled standard library definitions. Turn off if you embed Mond without them.
mond.definitions.paths [] Extra definition files describing what your host application adds to Mond.

Custom definitions

Completions and hovers come from JSON files rather than a list baked into the extension, so a host application that adds its own modules can describe them the same way the standard library does.

Add this to the project that contains your [MondModule], [MondClass] and [MondPrototype] types and the Mond binding generator will write the file on every build:

<PropertyGroup>
  <MondDefinitionsFile>$(MSBuildProjectDirectory)\mond-definitions.json</MondDefinitionsFile>
</PropertyGroup>
<ItemGroup>
  <CompilerVisibleProperty Include="MondDefinitionsFile" />
</ItemGroup>

Then point the extension at it:

"mond.definitions.paths": ["${workspaceFolder}/src/MyApp/mond-definitions.json"]

Files are merged in order and later ones win, so an extra file can also correct or extend anything the bundled definitions describe.

Contributing

The extension lives in the Mond.VSCode folder of the Mond repository.

npm install
npm run watch     # rebuild the bundle on change
npm run lint
npm test

npm test builds Mond.Repl from the sibling project and points the sample workspace at it, so the debug adapter tests run against the runtime in this repository. It needs the .NET SDK; without it those tests skip and the rest still run.

definitions/mond-stdlib.json is generated by the binding source generator when Mond is built, and is committed so the extension can be packaged on its own. definitions/mond-extras.json is written by hand and covers the few members the libraries add at runtime, which the generator cannot see.

Press F5 to launch a development host with the extension loaded against sampleWorkspace.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft