Releases: ControlForge-Systems/controlforge-structured-text
Releases · ControlForge-Systems/controlforge-structured-text
ControlForge Structured Text v1.3.0
What's New
Added
- Rich hover tooltips for standard function blocks: parameter tables, behavior descriptions, usage examples
- Advanced diagnostics and linting: missing semicolons, duplicate declarations, undefined variables, unused variables, type mismatches
- Levenshtein-based fuzzy matching for "did you mean?" suggestions on undefined identifiers
- Quick fixes: insert semicolon, remove duplicate declaration, remove unused variable
- Code formatting (Shift+Alt+F): keyword casing, indentation, operator spacing, VAR block alignment, trailing whitespace
- Format Selection support for partial document formatting
- Configurable formatting settings: keywordCase, insertSpacesAroundOperators, alignVarDeclarations, trimTrailingWhitespace, insertFinalNewline
- Rename Symbol (F2): rename variables, functions, FBs, programs with IEC 61131-3 validation and comment awareness
- Code actions: auto-insert missing END blocks, close unclosed strings, fix unmatched parentheses
- Real-time diagnostics with Problems panel integration
- AST parser rewrite with multi-line statement accumulator architecture
- 353 unit tests total (up from 44)
- Demo GIF and sample file
Changed
- License changed from BUSL-1.1 to MIT
- Updated all npm dependencies (TypeScript 4.9→5.9, webpack 5.99→5.105)
Fixed
- Parser regex fails on multi-line variable declarations
- Verbose console.log in definition provider polluting output
Removed
- Stale documentation, scripts, and branches
v1.3.0-rc.1 - Stability & Core LSP
Pre-release candidate for v1.3.0. Not for production use.
Changes since v1.2.5
Added
- Rich hover tooltips for standard function blocks: parameter tables, behavior descriptions, usage examples (#22)
- Advanced diagnostics and linting: missing semicolons, duplicate declarations, undefined variables, unused variables, type mismatches (#6)
- Quick fixes for semantic diagnostics: insert semicolon, remove duplicate declaration, remove unused variable (#6)
- Levenshtein-based fuzzy matching for "did you mean?" suggestions on undefined identifiers (#6)
- Code formatting (Shift+Alt+F): keyword casing, indentation, operator spacing, VAR block alignment, trailing whitespace removal (#29)
- Format Selection support for partial document formatting (#29)
- Configurable formatting settings: keywordCase, insertSpacesAroundOperators, alignVarDeclarations, trimTrailingWhitespace, insertFinalNewline (#29)
- Rename Symbol (F2): rename variables, functions, FBs, programs with IEC 61131-3 validation, comment awareness (#28)
- Code actions and quick fixes: auto-insert missing END blocks, close unclosed strings, fix unmatched parentheses (#26)
- Real-time diagnostics with Problems panel integration: unmatched blocks, unclosed strings, unmatched parentheses (#27)
- AST parser rewrite with multi-line statement accumulator architecture (#41)
- 366 unit tests (up from 44 in v1.2.5)
Fixed
- Parser regex fails on multi-line variable declarations (#41)
- Verbose console.log in definition provider polluting output
Changed
- License changed from BUSL-1.1 to MIT (#78)
- Updated all npm dependencies (TypeScript 4.9→5.9, webpack 5.99→5.105, node types 16→20) (#50)
- Extracted
getExtensionPathfor testability (#44) - Removed legacy parser
Removed
- Stale documentation, scripts, and branches
v1.2.5 - Critical Hotfix Release
🔥 Critical Hotfix Release
This release fixes 4 CRITICAL and 2 HIGH priority bugs discovered in v1.2.4.
Critical Fixes
- #37: Removed duplicate completion provider (eliminated 219 redundant lines)
- #38: Fixed
npm testfailing with missing TypeScript - #39: Fixed iec61131-definitions/ access in packaged extension
- #40: Fixed hardcoded workspace root breaking in renamed folders
High Priority Fixes
- #42: Consistent case-insensitive symbol lookup (IEC 61131-3 compliance)
- #43: Memory leak prevention with file cleanup and debouncing
Performance Improvements
- 300ms debouncing prevents re-parsing on every keystroke
- Memory usage remains stable in long-running sessions
- Large workspace performance significantly improved
Files Changed
- 7 source files modified
- -217 lines of duplicate code removed
- +45 lines of cleanup/debouncing logic added
Testing
- ✅ All 41 unit tests passing
- ✅ Package builds successfully (257 KB)
- ✅ iec61131-definitions/ confirmed in .vsix
Full Changelog: https://github.com/ControlForge-Systems/controlforge-structured-text/blob/main/CHANGELOG.md#125---2026-02-10
ControlForge Structured Text v1.2.4
What's New in 1.2.4
Fixed
- Improved error handling for LSP client connection
- Fixed "Pending response rejected since connection got disposed" error
- Added proper shutdown sequence for LSP server process
Changed
- Enhanced language server connection stability
- Improved error reporting for better diagnostics
- Completed migration to webpack bundling for better reliability
Technical Improvements
- Added automatic retry with exponential backoff for LSP connection failures
- Enhanced robustness of the client-server communication
- Added detailed logging through a dedicated output channel for easier troubleshooting
- Further refined the webpack bundling introduced in 1.2.3 for better reliability
ControlForge Structured Text v1.2.3
What's New in 1.2.3
Fixed
- Comprehensive fix for LSP initialization error with vscode-languageclient module
- Improved module resolution with fallback mechanisms
- Enhanced error reporting for language server initialization issues
Changed
- Migrated to webpack-based bundling for improved performance and reliability
- Significantly reduced extension size by optimizing included dependencies
- Improved extension startup time by bundling code into fewer files
Developer Notes
- After trying several approaches to resolve the "Cannot find module 'vscode-languageclient/node'" error, we're hopeful that webpack bundling might be the solution
- This has been a challenging journey through VS Code's Language Server Protocol architecture and extension packaging
- While we can't be certain, we believe this approach may provide a more reliable experience across environments
ControlForge Structured Text v1.2.2
What's New in 1.2.2
Fixed
- Critical bug fix: resolved LSP initialization error with vscode-languageclient module
- Added robust error handling for language server activation
- Added LSP status check command to verify Language Server Protocol is running
ControlForge Structured Text v1.2.1
What's New in 1.2.1
Fixed
- Language Server Protocol (LSP) activation issues
- Enhanced error handling for LSP initialization
- Added diagnostic tools for LSP status verification
- Improved server-client communication with detailed logging
ControlForge Structured Text v1.2.0
What's New in 1.2.0
Added
- Go to Definition & Find References:
- Member access navigation for function blocks (instance.member → definition)
- Cross-file navigation between instances and library definitions
- Smart hover information for variables and function block members
- Comprehensive symbol indexing across workspace
- Language Server Protocol (LSP) Integration:
- Client-server architecture for advanced IDE features
- Workspace indexing for cross-file references
- Enhanced symbol provider with member access support
- IEC 61131-3 Definition Files:
- Standard function block definition files (TON, TOF, TP, CTU, etc.)
- Enhanced documentation and specification compliance
- Sample files and test cases for manual validation
Improved
- Reorganized project structure with better separation of concerns
- Enhanced documentation with comprehensive test guides
- Better performance with smarter caching and incremental updates
- More robust parser with better error handling
ControlForge Structured Text v1.1.0
What's New in 1.1.0
Added
- Function Block Instance Member Completion:
- Auto-complete for function block output members
- Dot notation support (e.g., myTimer.Q, upCounter.CV)
- Support for all IEC 61131-3 standard function blocks
- Type-aware suggestions with detailed descriptions
Improved
- Enhanced Parser:
- Better variable and function block instance detection
- Improved code structure and performance
- Enhanced error handling
- Testing and Documentation:
- Comprehensive testing framework
- Better examples and guides for users
- Improved sample files
ControlForge Structured Text v1.0.1
What's New in 1.0.1
Changed
- Updated publisher ID from ControlForge to ControlForgeSystems
- Removed Hello World sample command
- Improved extension description for marketplace listing
- Updated repository and website URLs