VS Code Extensions
Overt

Overt

by paulmooreparks

Syntax highlighting and language configuration for Overt

Downloads

2

Rating

— (0)

Version

0.1.3

Last updated

Apr 27, 2026

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.

License

Apache 2.0. See LICENSE.

Related extensions