VS Code Extensions
OtterScript Language Extension

OtterScript Language Extension

by sighanse

Syntax highlighting, snippets, and function support for OtterScript

Downloads

3

Rating

— (0)

Version

0.3.0

Last updated

Sep 09, 2026

VS Marketplace Open VSX Build

This extension provides syntax highlighting, code snippets, and function support for OtterScript used in Inedo products (Otter, BuildMaster, ProGet).

Not affiliated with or endorsed by Inedo.

Otter, BuildMaster and ProGet are trademarks of Inedo.

Background

This extension started as a learning project while implementing custom webhook notification in ProGet.

Features

  • Syntax highlighting for OtterScript constructs, including namespaced operations (ProGet::, Otter::, Windows::)
  • Hover documentation, auto-completion, and signature help for built-in functions, operations, variables, and map/vector expressions
  • Diagnostics for common mistakes (missing $, unknown functions, invalid operators, = used in if conditions, duplicate map keys, unknown Namespace:: prefixes)
  • Quick‑fix code actions, plus a Fix All Issues command (Ctrl+Shift+Alt+F) that applies every available fix in the file
  • Go to Definition (F12) and Find All References (Shift+F12) for document-local module calls
  • Outline and breadcrumbs via document symbols
  • Go to Symbol in Workspace (Ctrl+T) — jump to any module declaration across all OtterScript files
  • CodeLens reference counts above module declarations
  • Code folding via #region / #endregion and block structure
  • Code snippets for common patterns

Status

This extension is in active development and currently considered early-stage. Features may change as the extension evolves.

Testing scope: This extension is primarily developed and tested against ProGet usage. While OtterScript is shared across Otter, BuildMaster, and ProGet, not all constructs or product-specific behaviors have been tested equally.

Feedback, issues, and pull requests are welcome.

See CHANGELOG.md for release notes.

What this extension does NOT do

  • It does not validate or execute OtterScript
  • It does not connect to Otter, ProGet, or other Inedo services
  • It does not auto-fix on save or format your code; fixes are only applied when you explicitly invoke a quick‑fix or the Fix All Issues command
  • It does not attempt full semantic analysis

Installation

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "OtterScript Language Extension"
  4. Click Install

Getting Started

Open any .otter or .oscript file in VS Code to activate the extension.

No additional configuration is required.

Settings

All features are enabled by default and can be toggled individually:

  • otterscript.completion.enable — auto-completion suggestions
  • otterscript.signatureHelp.enable — signature help for functions and operations
  • otterscript.hover.enable — hover information for functions and operations
  • otterscript.codeLens.enable — CodeLens reference counts above module declarations
  • otterscript.workspaceSymbols.enable — index module declarations for "Go to Symbol in Workspace" (Ctrl+T)

Language Support Coverage

The extension provides hover documentation, completion, and signature help for common OtterScript language constructs and built‑in functions, including:

  • Core OtterScript functions
  • Common string, JSON, and math helpers
  • File system helpers
  • Execution statements and directives

Coverage is continuously improving and may vary by context.

Some symbols are only relevant in ProGet‑specific contexts (such as webhooks).

Troubleshooting

If hover or completion does not appear, ensure the file extension is .otter or .oscript and that the language mode is set to OtterScript.

Diagnostics

Diagnostics are best‑effort and designed to catch common mistakes (e.g. missing $, unknown functions, invalid operators).

They do not attempt full semantic analysis and may prefer false negatives over false positives.

Contributing

Contributions are welcome. Please see CONTRIBUTING.md for guidelines.

Security

Please see SECURITY.md.

License

MIT

Code of Conduct

This project follows the Contributor Covenant Code of Conduct.

Related extensions