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

Overt

Paul Parks

|
2 installs
| (0) | Free
Syntax highlighting and language configuration for Overt
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Overt for VS Code

Syntax highlighting and editor configuration for the Overt programming language. Activates on any file with the .ov extension.

Overt is an agent-first language designed to be written, read, and maintained primarily by LLM agents. The extension makes Overt source readable in the editor for the human-in-the-loop review and audit roles that the language explicitly accommodates.

Features

Syntax highlighting via a TextMate grammar. The grammar is updated alongside the language; if a recent language addition isn't colored, the extension is behind and a refresh is in order.

  • Comments: // line comments and /* ... */ block comments.
  • String literals with escape sequences and string interpolation: "hello, ${name}" and the bare $name form both highlight inside the string body.
  • Numeric literals: decimal, hexadecimal (0x...), binary (0b...), and floating-point with optional exponent.
  • Keywords: control flow (if, else, match, for, in, while, loop, break, continue, return, parallel, race, trace, with), declarations (fn, let, mut, record, enum, type, module, use, as, pub, extern, unsafe, where, await), and constants (true, false, Ok, Err, Some, None).
  • Effect rows: !{io}, !{io, async}, !{E}. Concrete effect names (io, async, inference, fails) and effect-row variables (uppercase identifiers) get distinct scopes.
  • Annotations: @doc("..."), @csharp("..."), @derive(...), and any other @name-prefixed marker.
  • Postfix .await: highlighted as a single syntactic unit, the way Rust and JavaScript editors color it.
  • Operators: pipe (|>), pipe-propagate (|>?), propagate (?), arrows (->, =>), comparison, logical, arithmetic.
  • Discard target: bare _ in let _ = expr and pattern positions.
  • Built-in types: Int, Int64, Float, Bool, String, Unit, Option, Result, List, Map, Set, Task, IoError, and the standard error and FFI-boundary types.
  • Built-in functions: prelude calls (println, eprintln, map, filter, fold, all, any, try_map, par_map, size, length, len, args).
  • Module-qualified stdlib calls: String.chars(...), Int.range(...), List.at(...), and similar shapes get a function-call scope distinct from plain field access.

Editor configuration via language-configuration.json:

  • Auto-closing pairs for {}, [], (), and "...".
  • Surrounding pairs for the same set, so selecting text and typing ( wraps the selection.
  • Comment toggling for // and /* */ via the standard VS Code shortcut.
  • Indent / outdent rules tied to { and }.
  • A wordPattern so double-click selects identifiers cleanly without breaking on dots or operators.

Installation

From the Marketplace: search for "Overt" under publisher paulmooreparks, or use the command palette: Extensions: Install Extensions then search.

From a local .vsix:

bash scripts/build-vsix.sh   # wraps `vsce package`
code --install-extension vscode-extension/overt-language-<version>.vsix

The repository's vscode-extension/ directory contains the source for the extension. The scripts/build-vsix.sh wrapper (with a PowerShell twin) installs vsce on demand and produces the .vsix at the version listed in package.json.

Every push to main that touches vscode-extension/ rebuilds the .vsix in CI and uploads it as a workflow artifact under Actions → vscode-extension, so a fresh build is always one click away even without local Node.js.

Releasing a new version

The Marketplace rejects duplicate versions, so before each publish the patch in vscode-extension/package.json must be bumped (e.g. 0.1.1 → 0.1.2). Add a corresponding entry to CHANGELOG.md, push, then either drag the artifact onto Marketplace → manage or run vsce publish with a logged-in publisher.

Status

The extension is intentionally minimal. A full language server (diagnostics, hover, go-to-definition, rename) is scoped in docs/tooling/lsp.md and will land as a separate Overt.LanguageServer companion when the language stabilizes enough to justify the investment.

Links

  • Overt repository
  • Design document (the source of truth for language semantics)
  • Agent-authoring reference (the operational guide for writing .ov)
  • Examples (living test cases that exercise every feature)

License

Apache 2.0. See LICENSE.

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