🆕 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
- Truncate to 80 characters - Instantly cut long lines
- Continue with & marker - Add comment continuation
- Add truncation comment - Creates:
$ <rest_of_line> on new line
- 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
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
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)
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X)
- Search for "PRO/II Language Support"
- Click Install
- Done! The extension is ready to use
From VSIX (Manual)
- Download
proii-language-support-1.4.6.vsix from GitHub Releases
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X)
- Click
... → Install from VSIX
- 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
- Open any
.inp, .std, or .out file
- Syntax highlighting will be applied automatically
- Type snippet prefixes (e.g.,
flash-adia) and press Tab to expand
- Use
Tab to navigate between placeholders in snippets
- Use
$ for comments (works at line start or after code)
- 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.
| |