Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>PRO/II Language SupportNew to Visual Studio Code? Get it now.
PRO/II Language Support

PRO/II Language Support

francois-de-klerk

|
1 install
| (0) | Free
Syntax highlighting, hover tooltips, and language support for PRO/II input and output files (.inp, .std, .out)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

🆕 What's New in v1.4.9 (2025-11-15)

Icon Update - Trademark Compliance

  • ⚠️ Replaced extension icon to avoid potential trademark infringement with AVEVA PRO/II branding
  • 🎨 New icon: Original copyright-free geometric design (circle + square + arrows + "P2" text)
  • ✅ No functional changes - All v1.4.8 features remain unchanged

🆕 What's New in v1.4.8 (2025-11-01) ⭐ MAJOR FEATURE

80-Column Width Limiter - Pro/II Compliance Checker

Identify and fix lines exceeding Pro/II's 80-character truncation limit!

Real-Time Diagnostics

  • 🔍 Orange/yellow squiggly underlines on lines > 80 chars
  • ⚡ Quick-fix actions with 4 smart solutions
  • ⚙️ Fully configurable with 5 settings
  • 🎯 Performance: < 50ms full document scan

4 Quick-Fix Actions

  1. Truncate to 80 characters - Instantly cut long lines
  2. Continue with & marker - Add comment continuation
  3. Add truncation comment - Creates: $ <rest_of_line> on new line
  4. Disable for this line - Skip checking for specific lines

Visual Column Ruler

  • 📏 Automatic visual ruler at column 80 for Pro/II files
  • 🎨 Only applies to .inp, .std, .out, .sdf files (not Python, JavaScript, etc.)
  • 🔄 Toggle with PRO/II: Toggle Column Ruler command
  • ⚙️ Configurable via proii.columnLimiter.showRuler
  • ✅ Language-scoped setting - ruler appears only on ProII files

Component Definition Lookup (NEW!)

  • 🧪 Right-click on component index → "Show Component Definition"
  • 📋 Shows component ID, name, type, chemical formula, molecular weight
  • 🔍 Jump to LIBID definition location
  • 📊 List all components in document
  • 🔄 Supports multiple LIBID...BANK= sections
  • ⚡ Handles 30+ common components with detailed info
  • 🌐 Multi-line LIBID support with /& and & continuations

Component Hover Provider

  • 🔬 Hover on component names to see: index, name, type, formula, molecular weight
  • 📊 30+ pre-loaded common components (hydrocarbons, inorganics, aromatics)
  • 🔄 Multi-line LIBID support with /& continuation markers

Enhanced LIBID Syntax Highlighting

  • 🎨 Component numbers in orange/yellow, names in cyan/green
  • 🔄 Multi-line continuation support (/& and &)
  • ✨ Improved visual distinction and readability

Configuration

{
  "proii.columnLimiter.enabled": true,
  "proii.columnLimiter.columnLimit": 80,
  "proii.columnLimiter.warnOnExceed": true,
  "proii.columnLimiter.enableAutoFix": true,
  "proii.columnLimiter.showRuler": true
}

Commands

  • PRO/II: Toggle Column Limiter - Enable/disable 80-column checking
  • PRO/II: Toggle Column Ruler - Show/hide visual ruler
  • PRO/II: Show Component Definition - Right-click on component index to view details
  • PRO/II: Refresh Stream Name Highlighting - Manually refresh highlights

🆕 What's New in v1.4.7 (2025-10-19)

Minor improvements and documentation updates

  • Added: DEFINE statement hover and example support for stream- and unit-based parameter definitions.
  • Added: Full operator synonyms for arithmetic expressions used in DEFINE/SPEC: PLUS, SUM, ADD, MINUS, DIFF, SUBT, TIMES, MULTIPLY, DIVIDE, DIVIDEBY, RATIO, OVER.
  • Updated: PRES hover default units and guidance (SI: kPa; Metric: kg/cm2; English: PSIA absolute).
  • Improved: CONTROLLER hover to match manual example and removed incorrect "types" section.
  • Ensured: CALC and CALCULATOR behave identically as unit operations and parameters.

These updates refine hover accuracy and documentation and improve arithmetic and DEFINE support throughout the extension.


PRO/II Language Support for VS Code

Comprehensive syntax highlighting, interactive hover tooltips, component lookup, 80-column compliance checking, and language support for PRO/II process simulation files (.inp, .std, .out).

🆕 What's New in v1.4.6

🌊 Stream Description Hover Tooltips (NEW!)

Hover over any stream name to see its complete description from the NAME section!

Key Features:

  • 🌊 Stream Descriptions on Hover: Automatic extraction and display of stream descriptions
  • 📍 NAME Section Parsing: Correctly parses comma-separated descriptions in NAME lines
  • ✅ 237+ Streams Supported: All streams with descriptions in your PRO/II file
  • ⚡ Smart Context Detection: Works with FEED, PRODUCT, STRM=, OUTPUT contexts

Example:

STREAM      TGSI  ,Toluene Gas Stream Input ,From reactor outlet

→ Hover over TGSI → See: 🌊 Stream: TGSI - Toluene Gas Stream Input, From reactor outlet

🔧 STRM= Pattern Fixes

Enhanced stream detection in STRM= contexts:

  • FIXED: Stream names in STRM= now highlighted in DEFINE, SPEC, VARY, RESULT statements
  • Examples: STRM=TGSI, STRM=TGS1, STRM=FRSHBL all properly detected
  • Context Detection: Improved regex pattern evaluation order for higher accuracy

✨ Simplified Stream Name Highlighting!

Streamlined semantic token-based highlighting that focuses on defined streams only with enhanced context detection!

Key Features:

  • 🎯 Blue-Only Highlighting: Clean, professional highlighting for defined streams only
  • 📍 Enhanced Context Detection: Improved recognition of stream references in unit operations
  • ✅ Smart Validation: Comprehensive keyword exclusions prevent false positives
  • ⚡ High Performance: Full-document highlighting in < 150ms, even with 200+ streams

Key Improvements:

  • ✓ Stream description hover on all contexts (FEED, PRODUCT, STRM=, OUTPUT, etc.)
  • ✓ STRM= pattern detection moved to priority position for better accuracy
  • ✓ Comma-separated description parsing for comprehensive NAME section support
  • ✓ Removed red highlighting for undefined streams (cleaner interface)
  • ✓ Professional documentation without specific file references

Test Results:

  • ✓ 237 stream names extracted with descriptions
  • ✓ 531+ stream references correctly identified
  • ✓ STRM= patterns detected in all contexts
  • ✓ Description extraction rate: 100% accuracy

Try it: Open any .inp file with stream definitions → Hover over stream names to see descriptions!

Release Notes:

  • 📄 RELEASE_v1.4.5.md - Complete changelog with technical details
  • 📄 TEST_STREAM_HIGHLIGHTING.md - Comprehensive test report
  • 🧪 test-stream-highlighting.js - Integration test script

🆕 What's New in v1.2.0

Comprehensive Hover Documentation for 9 High-Priority Unit Operations!

We've added ~2,880 lines of detailed documentation that appears when you hover over these keywords:

  • PUMP - Operation modes, efficiency types, curves, DEFINE usage
  • VALVE - Isenthalpic expansion, pressure drop, CV calculations
  • MIXER - Adiabatic mixing, pressure handling, multiple inlets
  • COMPRESSOR - Isentropic/polytropic efficiency, intercooling, multistage
  • COLUMN - All 6 algorithms (IO, SURE, CHEMDIST, Enhanced IO, RATEFRAC, LLEX), complete specifications
  • EQUREACTOR - RXCALC modes, APPROACH temperature, equilibrium models
  • RXGIBBS - Gibbs free energy minimization, ELEMENTS, CONVERSION, constraints
  • PLUGFLOW (NEW!) - Tubular reactor, thermal modes, kinetics, pressure drop
  • CSTR (NEW!) - Stirred tank reactor, boiling pot, perfect mixing

Each tooltip includes:

  • ✅ Description with manual reference (§ section number)
  • ✅ Types/Algorithms with selection criteria
  • ✅ Complete parameter lists (required & optional)
  • ✅ Multiple detailed examples with proper formatting
  • ✅ Design guidelines and troubleshooting tips

Try it: Open any .inp file, hover over COLUMN, PUMP, or COMPRESSOR to see the comprehensive documentation!

Features

🎯 Hover Tooltips (v1.4.6)

Instant documentation at your fingertips! Hover over any keyword or stream to see detailed information without leaving your editor.

Stream Descriptions (NEW in v1.4.6!)

Hover over any stream name to see:

  • 🌊 Stream identifier and name
  • Complete description from NAME section
  • Works in all contexts (FEED, PRODUCT, STRM=, OUTPUT, etc.)

Example:

NAME      TGSI  ,Toluene Gas Stream Input ,From reactor outlet

Hover over TGSI → Displays description with icon and formatting

Unit Operations (21 types)

Hover over FLASH, COLUMN, HEATX, PUMP, COMP, VALVE, MIXER, SPLITTER, PIPE, REACTOR, EQUREACTOR, RXGIBBS, RXEQUIL, RXCONV, RXKINETIC, ABSORBER, STRIPPER, EXTRACT, CALCULATOR, STCALC to see:

  • Complete description and purpose
  • Available types (Isothermal, Adiabatic, etc.)
  • Required and optional parameters
  • Working examples with proper syntax
  • Important notes and tips

Thermodynamic Methods (15+ packages)

Hover over SRK, PR, IDEAL, NRTL, UNIQUAC, ELEC, etc. to see:

  • Full method name and model type
  • Best applications (oil & gas, chemicals, etc.)
  • Valid pressure/temperature ranges
  • When to use and when to avoid
  • Typical applications

Parameters (30+ common parameters)

Hover over TEMP, PRES, DUTY, VFRAC, REFLUX, EFF, etc. to see:

  • Clear parameter description
  • Valid units (BAR, C, KW, etc.)
  • Typical value ranges
  • Related parameters
  • Pro tips and common mistakes

Example: Hover over FLASH → See complete guide with types, parameters, and example code! Or hover over a stream name → See its description from the NAME section!

🎨 Syntax Highlighting

  • Section Headers: COMPONENT DATA, STREAM DATA, THERMODYNAMIC DATA, UNIT OPERATIONS
  • Unit Operations: FLASH, COLUMN, HCURVE, CALCULATOR, COMPRESSOR, PUMP, HX, MIXER, SPLITTER, VALVE, REACTOR, etc.
  • Keywords: TITLE, PRINT, DIMENSION, METHOD, SPEC, VARY, DEFINE, etc.
  • 200+ Parameters: TEMP, PRES, RATE, COMP, FEED, PROD, CTEMP, HTEMP, DUTY, REFLUX, CONDENSER, REBOILER, TRAY, POINTS, etc.
  • Arithmetic Operators (bright yellow): PLUS, MINUS, TIMES, MULTIPLY, DIVIDE, DIVIDED
  • Thermodynamic Methods: SRK, SRK-HP, SOUR, PETR, PURE, STEAM, etc.
  • Comments: Dollar sign ($) - both line-start and inline comments
  • Continuation Character (bright yellow): & for line continuation
  • Numbers: Integer, decimal, and scientific notation
  • Special Handling: NAME statement for tabular component data

📝 Code Snippets (60+)

Comprehensive snippets extracted from the PRO/II Keyword Manual. See SNIPPETS_GUIDE.md for complete documentation.

Quick Reference:

General

  • title - Complete TITLE block
  • dimension - DIMENSION statement
  • compdata - COMPONENT DATA section
  • thermodata - THERMODYNAMIC DATA section
  • streamdata, unitops - Category headers
  • prop - Stream PROPERTY definition
  • print - PRINT statement
  • sequence - SEQUENCE statement

FLASH Units (6 variations)

  • flash-adia - Adiabatic flash
  • flash-isot - Isothermal flash
  • flash-bubb - Bubble point flash
  • flash-spec - Flash with TPSPEC
  • flash-duty - Flash with defined duty
  • flash-entrain - Flash with entrainment

COLUMN Units

  • column-io - Column with IO algorithm
  • column-sure - Column with SURE algorithm
  • sidestripper - Side stripper unit

COMPRESSOR & PUMP

  • comp-poly - Polytropic compressor
  • comp-adia - Adiabatic compressor
  • pump - Basic pump
  • pump-eff - Pump with efficiency

HEAT EXCHANGERS

  • hx-cold - Cold side HX
  • hx-hot - Hot side HX
  • hx-duty - HX with duty
  • hx-both - Two-side HX
  • hcurve - Heating curve

OTHER UNITS

  • mixer, mixer-temp - Mixer units
  • splitter, splitter-rate - Splitter units
  • valve, valve-dp - Valve units
  • reactor-conv, reactor-equil - Reactors
  • calculator - Calculator unit
  • stcalc - Stream calculator

SPECIFICATIONS

  • spec - SPEC statement
  • define-stream - DEFINE from stream
  • define-unit - DEFINE from unit
  • define-calc - DEFINE with arithmetic

COMMENTS

  • comment - Decorative separator
  • comm - Single line comment

🔧 Language Features

  • Line Comments: Use $ at the start of a line or after code
  • Inline Comments: $ works anywhere on the line
  • Auto-Closing Pairs: Automatic closing of brackets, quotes, and parentheses
  • Code Folding: Fold major sections (UNIT OPERATIONS, COMPONENT DATA, etc.)
  • Column Formatting: All snippets maintain PRO/II column conventions (Col 3, 5, 15)

Installation

From VS Code Marketplace (Recommended)

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "PRO/II Language Support"
  4. Click Install
  5. Done! The extension is ready to use

From VSIX (Manual)

  1. Download proii-language-support-1.4.6.vsix from GitHub Releases
  2. Open VS Code
  3. Go to Extensions (Ctrl+Shift+X)
  4. Click ... → Install from VSIX
  5. Select the downloaded file

From Source

cd proii-vscode-extension
npm install -g vsce
npm install
npm run compile
vsce package
code --install-extension proii-language-support-1.4.6.vsix

Usage

  1. Open any .inp, .std, or .out file
  2. Syntax highlighting will be applied automatically
  3. Type snippet prefixes (e.g., flash-adia) and press Tab to expand
  4. Use Tab to navigate between placeholders in snippets
  5. Use $ for comments (works at line start or after code)
  6. Use & for line continuation

Example

$ HDO Reactor Section
FLASH       UID=F-1, NAME=HDO FEED FLASH
  FEED      FEED1, FEED2           $ Multiple feeds
  PROD      V=VAPOR, L=LIQUID
  ISOT      TEMP(F)=350, DP=10     $ Isothermal flash
  METHOD    SET=SRK-HP

COLUMN      UID=COL1, NAME=FRACTIONATOR
  PARA      IO=30, TRAY=25
  FEED      LIQUID,10
  PROD      OVHD=DISTILLATE, BTMS=BOTTOMS
  PRES      TOP(PSIA)=50, BOTTOM(PSIA)=55
  COND      TYPE=TOTAL, TEMP(F)=120
  REFLUX    RATIO=3.0
  ESTIMATE  PRODUCT(M)=DISTILLATE,200/BOTTOMS,800
  ISO
  DEFINE    TEMP AS STRM=FEED1 TEMP
  DEFINE    PRES AS 68.0
  METHOD    SET=SRK-HP

Reference Documentation

This extension is based on the PRO/II Keyword Manual and includes support for:

  • All major unit operations (Flash, Column, Reactor, Heat Exchangers, etc.)
  • Stream and component data definitions
  • Thermodynamic methods and property packages
  • Controllers, optimizers, and calculators
  • Procedure blocks and custom calculations

Configuration

No additional configuration required. The extension works out of the box with .inp, .std, and .out files.

Known Limitations

  • Basic syntax highlighting only (no semantic analysis)
  • No IntelliSense or auto-completion beyond snippets
  • No error checking or validation

Future Enhancements

  • Language Server Protocol (LSP) for advanced features
  • Error detection and validation
  • ✅ Hover tooltips with keyword documentation (IMPLEMENTED in v1.2.0!)
  • Go-to-definition for streams and units
  • Symbol outline and navigation

Contributing

Contributions welcome! Please submit issues or pull requests on GitHub.

License

MIT License - See LICENSE file for details

Credits

Developed for PRO/II process simulation software by AVEVA.


Note: This extension provides syntax highlighting and editing support only. It does not execute or validate PRO/II simulations. You still need the PRO/II software to run simulations.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft