Skip to content

Commit 03dddf2

Browse files
committed
Release v1.1.0: Function block member completion feature
- Added function block instance member completion (myTimer.Q, upCounter.CV) - Enhanced README.md with professional marketplace format - Updated CHANGELOG.md for v1.1.0 - Added syntax highlighting screenshot - Optimized package.json description and keywords - Comprehensive test coverage (44 tests passing) - Updated documentation and release planning
1 parent 57b468c commit 03dddf2

File tree

7 files changed

+349
-32
lines changed

7 files changed

+349
-32
lines changed

.vscodeignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ examples/**
1818
# Exclude development files
1919
.husky/**
2020
TESTING.md
21+
MANUAL_QA_PLAN.md
22+
RELEASE_PLAN.md
23+
images/README.md
2124
# Keep these in the package
2225
# CHANGELOG.md
2326
# README.md
2427
# LICENSE
28+
# icon.png
29+
# images/ (for screenshots)

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Change Log
22

3+
## [1.1.0] - 2025-06-16
4+
5+
### Added
6+
- **Function Block Instance Member Completion**: Auto-complete for function block output members
7+
- Dot notation support (e.g., `myTimer.Q`, `upCounter.CV`)
8+
- Support for all IEC 61131-3 standard function blocks (TON, TOF, TP, CTU, CTD, CTUD, R_TRIG, F_TRIG, RS, SR)
9+
- Type-aware suggestions with detailed descriptions
10+
- Enhanced parser with function block instance extraction
11+
- Enhanced code snippets and examples
12+
13+
### Improved
14+
- Syntax highlighting with additional keywords (END_CONFIGURATION, END_RESOURCE)
15+
- Better variable and function block detection
16+
- Enhanced error handling and performance
17+
- Updated documentation and testing infrastructure
18+
19+
### Fixed
20+
- Missing syntax highlighting for configuration keywords
21+
- Parser edge cases for variable declarations
22+
323
## [1.0.1] - 2024-01-09 15:30:00
424

525
### Changed

README.md

Lines changed: 100 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,114 @@
1-
# ControlForge Structured Text - VS Code Extension
1+
# ControlForge Structured Text
22

3-
Professional development environment for IEC 61131-3 Structured Text PLC programming in Visual Studio Code.
3+
[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/ControlForgeSystems.controlforge-structured-text)](https://marketplace.visualstudio.com/items?itemName=ControlForgeSystems.controlforge-structured-text)
4+
[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/ControlForgeSystems.controlforge-structured-text)](https://marketplace.visualstudio.com/items?itemName=ControlForgeSystems.controlforge-structured-text)
45

5-
## Features
6+
Professional **Structured Text (IEC 61131-3)** development environment for **PLC programming** in Visual Studio Code.
67

7-
- **Syntax Highlighting**: Full support for Structured Text programming language
8-
- **Language Support**: Complete IEC 61131-3 standard compliance
9-
- **Code Validation**: Built-in syntax validation to catch errors early
8+
## ✨ Key Features
109

11-
## Language Features
10+
- 🎯 **Function Block IntelliSense**: Auto-complete for FB outputs (`myTimer.Q`, `upCounter.CV`)
11+
- 🌈 **Rich Syntax Highlighting**: Complete IEC 61131-3 language support
12+
- 💡 **Smart Code Completion**: Context-aware suggestions for keywords, types, and variables
13+
- 🔧 **Code Validation**: Built-in syntax validation and error detection
14+
- 📝 **Code Snippets**: Pre-built templates for common PLC patterns
1215

13-
- Comprehensive syntax highlighting for:
14-
- Keywords (IF, THEN, ELSE, FOR, WHILE, etc.)
15-
- Data types (BOOL, INT, REAL, STRING, etc.)
16-
- Operators (AND, OR, NOT, arithmetic operators)
17-
- Comments (// and (* *))
18-
- String literals
19-
- Numeric literals (decimal, hex, binary, octal)
16+
## 📸 Screenshots
2017

21-
- Smart editor features:
22-
- Auto-closing brackets and quotes
23-
- Comment toggling support
24-
- Intelligent word pattern matching
18+
### Syntax Highlighting & IntelliSense
19+
![Syntax Highlighting](images/syntax-highlighting.png)
20+
*Rich syntax highlighting for all IEC 61131-3 constructs*
2521

26-
## Usage
22+
## 🚀 Getting Started
2723

28-
1. Open any `.st` or `.iecst` file in VS Code
29-
2. Syntax highlighting is automatically enabled
30-
3. Use `Ctrl+Shift+P` and type "Validate Syntax" to check your code
24+
### Installation
25+
1. Open **Visual Studio Code**
26+
2. Go to **Extensions** (`Ctrl+Shift+X`)
27+
3. Search for **"ControlForge Structured Text"**
28+
4. Click **Install**
3129

32-
## Requirements
30+
### Quick Start
31+
1. Create a new file with `.st` or `.iecst` extension
32+
2. Start typing - syntax highlighting activates automatically
33+
3. Use `Ctrl+Space` for IntelliSense completion
34+
4. Type function block instances followed by `.` for member completion
3335

34-
- Visual Studio Code 1.74.0 or higher
36+
### Function Block Completion Example
37+
```st
38+
PROGRAM MyProgram
39+
VAR
40+
startTimer : TON; // Timer On-Delay
41+
partCounter : CTU; // Counter Up
42+
emergencyStop : R_TRIG; // Rising Edge Trigger
43+
END_VAR
3544
36-
## Support
45+
// IntelliSense in action:
46+
startTimer. // Shows: Q (BOOL), ET (TIME)
47+
partCounter. // Shows: Q (BOOL), CV (INT)
48+
emergencyStop. // Shows: Q (BOOL)
49+
END_PROGRAM
50+
```
3751

38-
Visit [controlforge.dev](https://controlforge.dev/) for documentation and support.
52+
## 📋 Language Features
3953

40-
## License
54+
### 🧠 Smart IntelliSense
55+
- **Function Block Members**: Auto-complete for all standard IEC 61131-3 function blocks
56+
- Timers: `TON`, `TOF`, `TP``Q`, `ET`
57+
- Counters: `CTU`, `CTD`, `CTUD``Q`, `CV`, `QU`, `QD`
58+
- Edge Detectors: `R_TRIG`, `F_TRIG``Q`
59+
- Bistables: `RS`, `SR``Q1`
60+
- **Keyword Completion**: All IEC 61131-3 keywords and constructs
61+
- **Data Type Suggestions**: `BOOL`, `INT`, `REAL`, `TIME`, `STRING`, etc.
62+
- **Variable Detection**: Automatically detects declared variables
63+
- **Code Snippets**: Templates for common patterns (IF-THEN, FOR loops, etc.)
4164

42-
Licensed under the Business Source License 1.1 (BUSL-1.1). For details, see [License Terms](https://controlforge.dev/license).
65+
### 🎨 Syntax Highlighting
66+
### 🎨 Syntax Highlighting
67+
- **Keywords**: `IF`, `THEN`, `ELSE`, `FOR`, `WHILE`, `CASE`, `VAR`, `END_VAR`
68+
- **Data Types**: `BOOL`, `INT`, `REAL`, `TIME`, `STRING`, `ARRAY`, `STRUCT`
69+
- **Operators**: `AND`, `OR`, `NOT`, `XOR`, `:=`, `+`, `-`, `*`, `/`
70+
- **Comments**: `//` single-line and `(* *)` multi-line
71+
- **Literals**: String, numeric (decimal, hex, binary), time literals
72+
- **Function Blocks**: Standard IEC 61131-3 function blocks
73+
74+
### 🔧 Editor Features
75+
- **Auto-closing**: Brackets, quotes, and parentheses
76+
- **Comment Toggle**: `Ctrl+/` for quick commenting
77+
- **Word Matching**: Intelligent word selection and highlighting
78+
- **File Association**: Automatic recognition of `.st` and `.iecst` files
79+
80+
## 💻 Supported File Extensions
81+
- `.st` - Standard Structured Text files
82+
- `.iecst` - IEC 61131-3 Structured Text files
83+
84+
## ⚙️ Requirements
85+
- **Visual Studio Code** 1.100.0 or higher
86+
- **Operating System**: Windows, macOS, or Linux
87+
88+
## 🛠️ Commands
89+
Access these commands via the Command Palette (`Ctrl+Shift+P`):
90+
- **"Structured Text: Validate Syntax"** - Check code for syntax errors
91+
92+
## 📊 What's New in v1.1.0
93+
-**Function Block Member Completion** - The headline feature!
94+
- 🔍 **Enhanced Parser** - Better variable and FB instance detection
95+
- 🧪 **Comprehensive Testing** - Automated tests ensure reliability
96+
- 📚 **Improved Documentation** - Better examples and guides
97+
98+
## 🤝 Support & Feedback
99+
100+
## 🤝 Support & Feedback
101+
102+
- 🌐 **Website**: [controlforge.dev](https://controlforge.dev/)
103+
- 📧 **Issues**: [GitHub Issues](https://github.com/ControlForge-Systems/controlforge-structured-text/issues)
104+
- 💬 **Discussions**: [GitHub Discussions](https://github.com/ControlForge-Systems/controlforge-structured-text/discussions)
105+
-**Rate & Review**: [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ControlForgeSystems.controlforge-structured-text)
106+
107+
## 📄 License
108+
109+
Licensed under the **Business Source License 1.1 (BUSL-1.1)**.
110+
For details, see [License Terms](https://controlforge.dev/license).
111+
112+
---
113+
114+
**Made with ❤️ for the PLC programming community**

RELEASE_PLAN.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# Release Plan Checklist - ControlForge Structured Text Extension
2+
3+
## Overview
4+
This checklist ensures a smooth and successful release of version with the new function block instance member completion feature.
5+
6+
## Pre-Release Checklist
7+
8+
### 🔧 Code Quality & Testing
9+
- [ ] All unit tests passing (26/26)
10+
- [ ] All E2E tests passing (18/18)
11+
- [ ] Manual QA completed successfully
12+
- [ ] No console errors or warnings
13+
- [ ] Code coverage acceptable
14+
- [ ] TypeScript compilation clean
15+
- [ ] ESLint/Prettier formatting applied
16+
17+
### Documentation
18+
- [ ] README.md updated with new features
19+
- [ ] CHANGELOG.md updated for v1.1.0
20+
- [ ] Package.json version bumped
21+
- [ ] Feature documentation complete
22+
- [ ] API documentation updated
23+
- [ ] Manual QA plan simplified and clean
24+
25+
### 🔄 Version Management
26+
- [ ] Version number updated in package.json
27+
- [ ] Git tags aligned with version
28+
- [ ] Release branch (Release-1.1.0) ready
29+
- [ ] All feature branches merged
30+
- [ ] Issue1 branch merged and closed
31+
- [ ] Clean git history
32+
33+
## Release Execution
34+
35+
### 📦 Extension Packaging
36+
- [ ] Build extension package (`vsce package`)
37+
- [ ] Test .vsix file installation
38+
- [ ] Verify package size reasonable
39+
- [ ] Check included/excluded files correct
40+
- [ ] Extension metadata complete
41+
42+
### 🚀 Marketplace Deployment
43+
- [ ] VS Code Marketplace publisher account ready
44+
- [ ] Extension published (`vsce publish`)
45+
- [ ] Marketplace listing updated
46+
- [ ] Screenshots/GIFs current
47+
- [ ] Extension description accurate
48+
- [ ] Keywords and categories appropriate
49+
50+
### 🏷️ GitHub Release
51+
- [ ] Create GitHub release tag (v1.1.0)
52+
- [ ] Upload .vsix file to release
53+
- [ ] Release notes written
54+
- [ ] Breaking changes documented
55+
- [ ] Installation instructions provided
56+
57+
## Post-Release Checklist
58+
59+
### 📊 Monitoring & Validation
60+
- [ ] Extension appears in marketplace
61+
- [ ] Download/install metrics tracking
62+
- [ ] User feedback monitoring setup
63+
- [ ] Issue tracker ready for reports
64+
- [ ] Performance monitoring active
65+
66+
### 🔍 Quality Assurance
67+
- [ ] Fresh installation test
68+
- [ ] Multiple VS Code versions tested
69+
- [ ] Different operating systems validated
70+
- [ ] User acceptance testing
71+
- [ ] Community feedback positive
72+
73+
### 📢 Communication
74+
- [ ] Release announcement prepared
75+
- [ ] Documentation website updated
76+
- [ ] Social media posts ready
77+
- [ ] Developer community notified
78+
- [ ] User guides available
79+
80+
## Version 1.1.0 Feature Summary
81+
82+
### 🆕 New Features
83+
- **Function Block Instance Member Completion**: Auto-complete for FB outputs
84+
- Dot notation support (`instanceName.`)
85+
- All IEC 61131-3 standard function blocks
86+
- Type-aware suggestions with descriptions
87+
- **Enhanced Syntax Highlighting**: Fixed missing keywords
88+
- **Improved Parser**: Better variable and FB instance extraction
89+
90+
### 🔧 Technical Improvements
91+
- Comprehensive test coverage (44 automated tests)
92+
- Enhanced code snippets
93+
- Better error handling
94+
- Performance optimizations
95+
96+
### 📖 Documentation Enhancements
97+
- Simplified manual QA plan
98+
- Enhanced example files
99+
- Comprehensive testing documentation
100+
101+
## Rollback Plan
102+
103+
### 🚨 If Issues Arise
104+
- [ ] Unpublish from marketplace if critical bugs
105+
- [ ] Revert to previous stable version
106+
- [ ] Document known issues
107+
- [ ] Prepare hotfix release plan
108+
- [ ] Communicate with users
109+
110+
### 🔄 Hotfix Process
111+
- [ ] Create hotfix branch from Release-1.1.0
112+
- [ ] Apply minimal fix
113+
- [ ] Emergency testing protocol
114+
- [ ] Expedited release process
115+
- [ ] Version bump (1.1.1)
116+
117+
## Success Criteria
118+
119+
### ✅ Release is successful if:
120+
- [ ] Extension installs without errors
121+
- [ ] Function block completion works as expected
122+
- [ ] No critical bugs reported in first 48 hours
123+
- [ ] User feedback generally positive
124+
- [ ] Performance metrics acceptable
125+
- [ ] Download numbers growing
126+
127+
### 📈 Key Metrics to Track
128+
- Download count (target: >100 in first week)
129+
- User ratings (target: >4.0 stars)
130+
- Issue reports (target: <5 critical issues)
131+
- Performance benchmarks maintained
132+
- Community engagement positive
133+
134+
## Team Responsibilities
135+
136+
### 🧑‍💻 Development Team
137+
- [ ] Code quality assurance
138+
- [ ] Test execution
139+
- [ ] Bug fixes pre-release
140+
- [ ] Technical documentation
141+
142+
### 📋 QA Team
143+
- [ ] Manual testing execution
144+
- [ ] Cross-platform validation
145+
- [ ] Performance testing
146+
- [ ] User acceptance testing
147+
148+
### 📢 Release Manager
149+
- [ ] Checklist coordination
150+
- [ ] Marketplace deployment
151+
- [ ] GitHub release creation
152+
- [ ] Communication planning
153+
154+
## Timeline
155+
156+
### 📅 Release Schedule
157+
- **T-3 days**: Final testing and QA
158+
- **T-2 days**: Package creation and validation
159+
- **T-1 day**: Final documentation review
160+
- **T-0**: Release execution
161+
- **T+1 day**: Post-release monitoring
162+
- **T+7 days**: Release retrospective
163+
164+
---
165+
166+
## Notes
167+
- All checkboxes must be completed before release
168+
- Any blockers should be documented and resolved
169+
- Emergency contacts available during release window
170+
- Rollback plan ready if needed
171+
172+
**Release Manager**: _[Name]_
173+
**Release Date**: _[Date]_
174+
**Version**: v1.1.0
175+
**Build**: _[Build Number]_

images/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Screenshot Placeholders
2+
3+
This directory contains screenshots for the README.md file.
4+
5+
## Required Screenshots:
6+
7+
1. **function-block-completion.gif** - Animated GIF showing:
8+
- Typing `myTimer.` and seeing completion for `Q` and `ET`
9+
- Typing `upCounter.` and seeing completion for `Q` and `CV`
10+
- Show the type information and descriptions
11+
12+
2. **syntax-highlighting.png** - Static image showing:
13+
- A sample .st file with rich syntax highlighting
14+
- Different colors for keywords, types, operators, comments
15+
- Function block declarations and usage
16+
17+
## How to Create Screenshots:
18+
19+
### For function-block-completion.gif:
20+
1. Open VS Code with the extension
21+
2. Create a new .st file with function block instances
22+
3. Use a screen recorder (like OBS, LICEcap, or VS Code's built-in recorder)
23+
4. Record typing the dot notation and showing completions
24+
5. Export as GIF, keep under 3MB for GitHub
25+
26+
### For syntax-highlighting.png:
27+
1. Open `examples/test_instance_members.st` or similar
28+
2. Make sure all syntax highlighting is visible
29+
3. Take a screenshot showing the full file
30+
4. Crop to show relevant code with good highlighting
31+
5. Save as PNG
32+
33+
## Guidelines:
34+
- Keep file sizes reasonable (< 3MB for GIFs, < 1MB for PNGs)
35+
- Use high contrast themes for better visibility
36+
- Show real, meaningful code examples
37+
- Ensure text is readable at GitHub's display sizes

images/syntax-highlighting.png

87.4 KB
Loading

0 commit comments

Comments
 (0)