Comprehensive Clarion language support for Visual Studio Code with solution management, code navigation, IntelliSense, diagnostics, and build integration.
📚 Full Features List | 🚀 Getting Started Guide | 📖 Cheat Sheet | 🐛 Report Issues
The Clarion Extension provides professional-grade support for Clarion development in Visual Studio Code, featuring:
- ✅ Complete language support - Syntax highlighting, IntelliSense, and code navigation
- ✅ Solution management - Native Clarion solution explorer with project navigation
- ✅ Real-time diagnostics - Catch errors as you type
- ✅ Build integration - Generate applications with ClarionCl.exe
- ✅ Smart navigation - Go to definition, find implementations, method overload support
- ✅ Modern workflow - Folder-based, no workspace files needed
New in v0.7.0: Includes all syntax highlighting previously provided by the Fushnisoft extension - no separate installation needed!
- Open VS Code
- Press
Ctrl+Shift+Xto open Extensions - Search for Clarion Extensions
- Click Install
Simple as opening a folder:
- Click File → Open Folder (or press
Ctrl+K Ctrl+O) - Select the folder containing your
.slnfile - The extension automatically detects and opens the solution!
Settings are saved in .vscode/settings.json within the folder - commit them with your solution for team sharing.
Need more details? See the Getting Started Guide.
- Navigate projects and files in dedicated Clarion Tools sidebar
- Recent solutions - Quick access to your last 20 solutions
- Auto-detection - No workspace files or complex setup needed
- Team-friendly - Settings stored with solution, not in workspace files
- Smart IntelliSense - 62 built-in functions with parameter hints, data types, and optional parameter support
- Go to Definition (
F12) - Navigate to includes, modules, methods, sections - Go to Implementation (
Ctrl+F12) - Navigate from MAP declarations to implementations, MODULE to files - Method overload support - Correctly resolves overloaded methods based on parameter types
- Hover tooltips - Preview file contents, method signatures, SECTION content, global variables
- MODULE/MEMBER navigation - Cross-file navigation with global variable lookup
- Structure view - Complete code outline with follow cursor
- Unreachable code detection - Visual dimming of code after RETURN/EXIT/HALT statements
- Create New Class - Interactive wizard creates both .inc and .clw files with proper formatting
- Add Method Implementation (
Ctrl+Shift+I) - Automatically generate method implementations from declarations - Paste as Clarion String (
Ctrl+Shift+Alt+V) - Convert clipboard text to properly formatted Clarion strings with escaping and continuation - Extension status -
Ctrl+Shift+P→ "Clarion: Show Extension Status" for health check
- Real-time error detection - Unterminated structures, missing RETURN statements
- FILE validation - Checks for required DRIVER and RECORD
- CASE/EXECUTE validation - Proper clause usage
- OMIT/COMPILE blocks - Validates directive termination
- Generate applications - Right-click to generate from Solution View
- Live output - Watch generation progress in real-time
- Build configurations - Switch between Release and Debug
- Smart path resolution - Auto-detects Clarion installation
See all features: Full Features Documentation
- 62 Clarion built-in functions with comprehensive IntelliSense support
- Parameter hints with data type information and descriptions
- Optional parameter support (e.g.,
SUB(string, start, <length>)) - Smart attribute completion for
WHO(),WHAT(),WHERE()with valid values - Function categories: String, Numeric, Date/Time, File I/O, System, Memory, Conversion
- Visual dimming of provably unreachable code in procedures, methods, and functions
- Detects code after unconditional RETURN, EXIT, or HALT at top execution level
- Respects Clarion semantics: ROUTINE blocks always reachable, STOP is not a terminator
- Handles complex nested structures (ACCEPT, LOOP, CASE, IF, EXECUTE, BEGIN)
- Supports PROCEDURE, METHOD, and FUNCTION declarations
- Configurable via
clarion.unreachableCode.enabled(default: enabled) - Non-intrusive 40% opacity dimming with zero false positives
- Enhanced MODULE support with bidirectional navigation
- F12 on CLASS MODULE attribute navigates to implementation file
- Ctrl+F12 from MAP MODULE navigates to source file
- Reverse lookup: From MEMBER file back to parent MAP declaration
- Global variable lookup in parent MODULE files with hover support
- Enhanced INCLUDE with SECTION navigation and tooltips
- Hover on
INCLUDE('file.inc', 'SectionName')shows exact SECTION content - F12 navigates directly to SECTION line, not just file top
- Preview SECTION content in hover tooltips
- Hover on
- Method overload resolution with parameter type matching
- Distinguishes
STRING,*STRING,&STRING,<STRING>overloads - Works in hover, F12, Ctrl+F12, and Add Method Implementation
- Distinguishes
- Provider refactoring for better performance and maintainability
- Complete HoverProvider, ImplementationProvider, DefinitionProvider rewrites
- Eliminated duplicate code and improved caching
- Token system enhancements with accurate positioning and file references
- Create New Class - Interactive wizard creates both .inc and .clw files with proper formatting
- Add Method Implementation (
Ctrl+Shift+I) - Automatically generate method implementations from declarations- Finds MODULE file and checks for existing implementations
- Jumps to existing or generates new implementation at EOF
- Handles method overloads with parameter matching
- Paste as Clarion String (
Ctrl+Shift+Alt+V) - Convert clipboard text to properly formatted Clarion strings- Automatic quote escaping and continuation syntax
- Configurable line terminators (space/CRLF/none)
- Optional leading whitespace trimming
- Perfect for pasting SQL queries or multi-line text
- Major codebase refactoring - 82% reduction in main extension file (975→175 lines)
- Enhanced reliability - Fixed multiple validation edge cases
- Better organization - Modular architecture for easier maintenance
- IF statement validation - Single-line IF...THEN no longer triggers false errors (#24)
- FILE validation - Correctly handles COMPILE/OMIT conditional blocks (#23)
- Build reporting - Fixed false "Build Failed" messages on successful builds
- Structure view - Now follows cursor correctly on startup
- ROUTINE parsing - Improved recognition in all contexts
- No more workspace files - Just open folder containing solution
- Settings with solution - All settings in
.vscode/settings.json - Recent solutions - Global history with one-click reopening
- Team friendly - Commit settings with your solution
If upgrading from v0.7.2 or earlier:
- Workspace files no longer required - The extension now uses a folder-based workflow
- Settings migration - Settings automatically migrate from
.code-workspaceto.vscode/settings.jsonwhen you open a folder - No action needed - Just use File → Open Folder instead of opening workspace files
- Old workspace files still work - But the new folder-based approach is simpler
Recommendation: Switch to folder-based workflow by opening the solution folder directly rather than using workspace files.
- Fixed build error diagnostics now properly link to source files
- Fixed global solution history tracking
- Caching system - Eliminated 1.5s delay on every keystroke in large files
- Smooth editing - No more freezing while typing in 14K+ line files
- Optimized tokenization - Reduced duplicate processing
- ClarionCl.exe integration - Generate applications from Solution View
- Enhanced diagnostics - RETURN statement validation, structure checking
- Method overload support - Accurate navigation and hover for overloaded methods
Full changelog: CHANGELOG.md
This release is dedicated to the memory of Brahn Partridge (4th January 1977 – 29th October 2021)
Brahn, known in the community as Fushnisoft, created the original Clarion language support for VS Code through his fushnisoft.clarion extension. His work provided the foundation for syntax highlighting and language features that so many Clarion developers relied upon.
Following Brahn's passing in October 2021, his extension could no longer be maintained or updated. The Clarion community has continued to evolve, and developers needed ongoing support for new VS Code features and improvements.
In v0.7.0, we have respectfully integrated Brahn's TextMate grammar and language configuration into Clarion Extensions. This integration:
- Preserves his legacy: His excellent work continues to serve the community
- Enables future updates: The language support can now evolve with VS Code and Clarion
- Simplifies installation: Developers need only one extension
- Honors his contribution: Full attribution is maintained in our LICENSE and documentation
Brahn's contributions to the Clarion developer community will not be forgotten. Thank you, Brahn, for your dedication to making Clarion development better for everyone.
Rest in peace, friend.
This extension is under active development and we need your help! Whether you are a Clarion developer, a VS Code enthusiast, or just interested in open-source projects, your contributions, bug reports, and feedback are welcome.
- 🐛 Report bugs or request features: GitHub Issues
- 💡 Contribute code: Fork the repository and submit pull requests
- 📖 Improve documentation: Help make the docs clearer
- ⭐ Star the project: Show your support on GitHub
- Features Documentation - Complete feature list
- Getting Started Guide - Detailed setup and configuration
- Cheat Sheet - Quick reference for common tasks
- Build Settings - Build configuration details
- Clarion Knowledge Base - Clarion language reference
- GitHub Repository - Source code and development
- Marketplace Page - Install and reviews
- Issue Tracker - Report bugs and request features
This extension is released under the MIT License. See LICENSE for details.
Includes TextMate grammar originally created by Brahn Partridge (Fushnisoft), used with respect and full attribution.
Happy Clarion coding! 🎉