Ross Language Modes + MCP (VS Code Extension)
This extension auto-detects Ross Video scripting patterns and assigns language modes:
vbscript for Ross XPression scripting/API-style event code.
rossvbscript for Ross XPression scripting/API-style code with strong XPression signals.
ogscript for Ross DashBoard panel XML files that include ogScript code.
It also provides completion suggestions via an MCP server (plus local fallback snippets).
By default, the extension launches a bundled MCP server (out/mcpServer.js) over stdio, so users do not need a separate MCP installation.
Features
- Detects XPression event patterns like
OnOnline, OnSetText, and OnRender.
- Detects DashBoard panel files that mix XML + ogScript APIs (
ogscript.debug, ogscript.setStyle, params.setValue).
- Auto-switches language mode for open documents.
- Adds command:
Ross: Rescan Language Modes.
- Queries an MCP server for context-aware completions in
vbscript, rossvbscript, and ogscript files.
- Indexes local Ross docs (default:
docs/) and uses them for fallback completions + MCP context.
Settings
All settings are under rossMcp.*.
Key settings:
rossMcp.enableDetection (default: true)
rossMcp.enableMcpCompletions (default: true)
rossMcp.mcpServer.command
rossMcp.mcpServer.args
rossMcp.mcpServer.env
rossMcp.mcpServer.protocolVersion (default: 2024-11-05)
rossMcp.mcpServer.completionMethod (default: ross/completions)
rossMcp.mcpServer.completionToolName (optional; if set, uses tools/call)
rossMcp.mcpServer.requestTimeoutMs (default: 4000)
rossMcp.mcpServer.includeDocumentText (default: false)
rossMcp.docs.enable (default: true)
rossMcp.docs.paths (default: ["docs"])
rossMcp.docs.includeInMcpRequests (default: true)
rossMcp.docs.maxSymbolsInRequest (default: 40)
Example VS Code Settings
If rossMcp.mcpServer.command is empty, the bundled MCP server is used automatically.
Set command/args only when you want to override with an external MCP server:
{
"rossMcp.mcpServer.command": "node",
"rossMcp.mcpServer.args": ["d:/mcp/ross-server/dist/index.js"],
"rossMcp.mcpServer.completionMethod": "ross/completions",
"rossMcp.mcpServer.includeDocumentText": true
}
If your MCP server exposes completions as a tool instead of a method:
{
"rossMcp.mcpServer.command": "node",
"rossMcp.mcpServer.args": [
"d:/mcp/ross-server/dist/index.js"
],
"rossMcp.mcpServer.completionToolName": "ross_code_completion"
}
MCP Completion Payload
The extension sends:
languageId (vbscript or ogscript; rossvbscript is normalized to vbscript for MCP compatibility)
editorLanguageId (actual VS Code language id, including rossvbscript)
uri
fileName
prefix
position (line, character)
context.lineBeforeCursor
context.lineAfterCursor
documentText (optional, capped length, only when enabled)
Accepted response shapes include:
{ "completions": [ { "label": "...", "insertText": "..." } ] }
{ "items": [ ... ] }
[ { "label": "..." } ]
tools/call results with structuredContent or JSON text payloads containing completions.
The extension also includes docsContext in MCP payloads (when enabled), containing:
- Indexed symbols relevant to the current prefix.
- Docs roots and sampled doc file paths.
Build and Run
npm install
npm run compile
Then open this folder in VS Code and press F5 to run the extension in an Extension Development Host.
Commands:
Ross: Rescan Language Modes
Ross: Reindex Docs for Completions
Next Step for Your Guides/Examples
When you provide the XPression SDK and DashBoard guide/examples, wire your MCP server to index them and return completions in one of the supported response shapes above. This extension is already prepared to consume that server output.