VS Code Extensions
M

Miranda Tidy

by juaniz2001

Conservative formatter for the Miranda functional language (.m files)

Downloads

3

Rating

— (0)

Version

0.1.0

Last updated

Jun 07, 2026

A conservative formatter for the Miranda functional programming language (.m files).

Hooks into VS Code's built-in Format Document command (Shift+Alt+F on Windows/Linux, ⇧⌥F on macOS). It never touches your indentation or alters semantics — when in doubt, it leaves the line exactly as-is.

Repository: TODO: add GitHub URL here


Formatting rules

# Rule Example (before → after)
1 Remove trailing whitespace from every line f x = 42 → f x = 42
2 Collapse 2 or more consecutive blank lines into exactly one a\n\n\nb → a\n\nb
3 Exactly one space on each side of = in definitions f x=42 → f x = 42
4 No space before a comma; exactly one space after [1 , 2,3] → [1, 2, 3]
5 Exactly one space after || in comments ||note → || note
6 File ends with exactly one newline hello\n\n → hello\n

What is never changed

  • Indentation — leading whitespace is sacred (Miranda uses the offside rule).
  • String contents — rules 3 and 4 never apply inside "...".
  • Comment contents — rules 3 and 4 never apply after ||.
  • Multi-char operators — ==, >=, <=, ~=, := are left untouched by rule 3.
  • Directives — lines starting with % are treated like any other line; since they contain no bare = or ,, they come out unchanged.

Requirements

  • VS Code 1.85 or later.
  • No external tools required — the formatter runs entirely inside VS Code.

Development

# Install dependencies
npm install

# Compile TypeScript → out/
npm run compile

# Run unit tests (no VS Code needed)
npm test

# Watch mode (recompile on save)
npm run watch

Running in debug mode (F5)

  1. Open this folder in VS Code.
  2. Press F5 — VS Code opens an Extension Development Host window with the extension loaded.
  3. In that window, open any .m file and press Shift+Alt+F (Format Document).

Packaging and publishing

# Install the VS Code Extension CLI (once)
npm install -g @vscode/vsce

# Package as a .vsix file
vsce package

# Publish to the Marketplace (requires a PAT)
vsce publish

Related extensions