Skip to content

Latest commit

 

History

History

README.md

iii Language Server - VS Code Extension

Autocompletion, hover documentation, and diagnostics for iii engine functions and triggers.

The source directory and release tag namespace are lsp-vscode; the Marketplace/OpenVSX package name remains iii-lsp for continuity.

iii LSP demo

Supported Languages

  • TypeScript / TSX
  • Python
  • Rust

Prerequisites

  1. lsp binary - The extension downloads and installs the pinned lsp/v0.1.3 binary on first activation.

    The binary is stored under VS Code's extension global storage directory and the absolute path is saved to iii-lsp.serverPath in global settings.

    To use a custom binary instead, set iii-lsp.serverPath to an existing executable path before activation.

  2. iii engine running locally (default: ws://127.0.0.1:49134)

Installation

After the extension is installed, open a supported TypeScript, TSX, Python, or Rust file to activate it. On first activation, the extension downloads the matching lsp/v0.1.3 binary, verifies its SHA-256 checksum, installs it under extension global storage, and saves the installed path to iii-lsp.serverPath.

If automatic install fails, the extension warns and falls back to the configured iii-lsp.serverPath or lsp on PATH, with iii-lsp as a legacy PATH fallback.

From source (development)

  1. Install dependencies:

    cd lsp-vscode
    npm install
  2. Open VS Code and install the extension locally:

    • Open the Command Palette (Cmd+Shift+P)
    • Run Extensions: Install from Location...
    • Select the lsp-vscode directory

From VSIX package

  1. Package the extension:

    cd lsp-vscode
    npm install
    npx @vscode/vsce package
  2. Install the .vsix file:

    code --install-extension iii-lsp-*.vsix

Local smoke test with Cursor

Build a local VSIX and install it in Cursor:

cd lsp-vscode
make build
cursor --install-extension iii-lsp.vsix --force

Open a supported file to activate the extension:

cursor ../lsp/src/main.rs

After activation, iii-lsp.serverPath should point to the downloaded binary in Cursor settings. To install the same VSIX in VS Code instead, replace cursor with code.

Settings

Setting Default Description
iii-lsp.serverPath "" (auto-filled after first activation) Path to the installed or custom lsp binary
iii-lsp.engineUrl ws://127.0.0.1:49134 WebSocket URL of the iii engine

Configure via Settings > search "iii LSP", or in settings.json:

{
  "iii-lsp.serverPath": "/path/to/lsp",
  "iii-lsp.engineUrl": "ws://127.0.0.1:49134"
}

Features

  • Completions - Function IDs, trigger types, payload properties, trigger config properties, and known values (stream names, topics, API paths)
  • Hover - Function documentation with request/response JSON schemas
  • Diagnostics - Validates function IDs, required payload fields, trigger types, config properties, cron expressions, and HTTP methods