Skip to content

Releases: ControlForge-Systems/controlforge-structured-text

ControlForge Structured Text v1.3.0

20 Feb 08:29
af57a5d

Choose a tag to compare

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

19 Feb 15:43

Choose a tag to compare

Pre-release

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 getExtensionPath for testability (#44)
  • Removed legacy parser

Removed

  • Stale documentation, scripts, and branches

v1.2.5 - Critical Hotfix Release

10 Feb 06:09

Choose a tag to compare

🔥 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 test failing 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

21 Jun 16:25

Choose a tag to compare

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

21 Jun 16:25

Choose a tag to compare

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

21 Jun 16:16

Choose a tag to compare

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

21 Jun 16:15

Choose a tag to compare

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

21 Jun 16:22

Choose a tag to compare

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

21 Jun 16:23

Choose a tag to compare

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

21 Jun 16:23

Choose a tag to compare

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