A VS Code extension providing syntax highlighting, IntelliSense, and navigation for Cicode, the scripting language used in AVEVA Plant SCADA (Citect).
Disclaimer: This project is not affiliated with or endorsed by AVEVA. It is a community-driven tool to improve the Cicode development experience in VS Code.
Features
Syntax Highlighting
Full syntax highlighting for .ci files including:
Keywords, operators, and control flow
Function declarations and calls
Variables and type annotations
Strings with escape sequences
Comments (line //, !, | and block /* */)
Doc comments (/// with XML tags)
Format picture specifiers (:###,##0.00)
IntelliSense
Autocompletion for functions (built-in and user-defined)
Signature help with parameter documentation
Hover information showing function signatures and docs
Navigation
Go to Definition for functions and variables
Find All References across your workspace
Rename Symbol for variables and parameters
Document Outline showing functions in the current file
Workspace Symbol Search (Ctrl+T) to find any function
Diagnostics
Undefined function warnings
Argument count validation
Duplicate function detection
Unused variable warnings
Line length and indentation checks
Formatting
Basic code formatter with configurable options
Consistent indentation for control blocks
Built-in Functions
Automatically parses function documentation from your Plant SCADA installation
Falls back to packaged builtins if Plant SCADA is not installed
Hover over built-in functions to see docs with a link to open the full help page
Installation
Install from the VS Code Marketplace, or
Download the .vsix file and install via Extensions: Install from VSIX...
Configuration
Setting
Default
Description
cicode.avevaPath
C:/Program Files (x86)/AVEVA Plant SCADA
Path to AVEVA Plant SCADA installation. The extension auto-finds help files.
Insert a doc comment template above the current function
Keybindings
Key
Command
Ctrl+Alt+D
Insert Doc Skeleton (when in a Cicode file)
Doc Comments
The extension supports XML-style doc comments for documenting your functions:
/// <summary>Calculates the area of a rectangle.</summary>
/// <param name="width">The width of the rectangle.</param>
/// <param name="height">The height of the rectangle.</param>
/// <returns>The calculated area.</returns>
FUNCTION CalculateArea(REAL width, REAL height)
RETURN width * height;
END
Use Ctrl+Alt+D to automatically generate a doc skeleton for the function at your cursor.
Requirements
VS Code 1.88.0 or higher
For built-in function docs: AVEVA Plant SCADA installation (optional, packaged fallback available)