~/projects $ cd altitude-asl

Altitude ASL for VS Code

Language tooling for contact-center scripting

TypeScript · MITmarketplacecode

$ tree (3 sections)
  1. What it is
  2. Features
  3. Outside VS Code

What it is

Language support for the Altitude Scripting Language (ASL) of Altitude 8.7. It covers agent scripts (.ags), IVR and routing scripts (.irs), and the three kinds of module (.agm, .irm, .gem).

It is built as a language server, so the desktop and the browser (vscode.dev, github.dev) get the same features. Compiler validation needs a local Script Developer install on Windows.

Features

  • Diagnostics while you type. The parser follows the 8.7 ASL reference and resolves names across the script and every module it imports. It reports syntax errors and unknown actions, undeclared names, node names that do not exist, wrong argument counts, unused declarations and unreachable actions. It also flags constructs that ASL Web Edition dropped, and asynchronous-popup mistakes in the Agent Portal. Every rule can be tuned or turned off.
  • Navigation across files. Go to definition, find references, rename, call hierarchy, outline and workspace symbols follow module imports, node names inside strings and master-node inheritance.
  • IntelliSense. Completion for actions, handlers, element clauses, record fields, module members, enumeration members and node names. Hover and signature help show the documented syntax, with a link to the 8.7 reference.
  • Editing. Semantic highlighting, folding, smart selection, quick fixes, optional parameter-name hints, and a formatter that fixes indentation only.
  • Script Developer conventions. ASL files default to UTF-8 with BOM, CRLF line endings and tabs, as Script Developer writes them. Files that drifted get a warning and a one-click fix.
  • Compiler validation. On Windows, scripts compile with Script Developer's ec.exe on save, and its errors appear next to the language server's.

Outside VS Code

The build also produces two standalone Node files with no dependencies.

asl-check.js checks files and folders, for CI and AI agents. It prints text, JSON or SARIF, reads project settings from .asl-check.json, and can report only findings that are new since a baseline.

node dist/cli/asl-check.js . --format sarif --fail-on warning

server/node.js is the language server. Start it with --stdio from any LSP client and register it for the five ASL file types.

The language data (actions, built-in functions, graphical elements, events, attributes and enumerations) comes from the public Altitude 8.7 documentation.