Skip to content

Latest commit

 

History

History
253 lines (186 loc) · 12.4 KB

File metadata and controls

253 lines (186 loc) · 12.4 KB

Clarion Extension for Visual Studio Code

Version Installs

Professional Clarion language support for Visual Studio Code with intelligent code navigation, IntelliSense, and build integration.

🚀 Quick Links


✨ Key Features

🎨 Clarion & Template Language Support

Full language support for Clarion code, basic support for templates.

  • Clarion files (.clw, .inc) - Complete syntax highlighting and IntelliSense
  • Template files (.tpl, .tpw) - Syntax highlighting with 100+ template keywords
  • Code folding for structures and template blocks
  • Context-aware coloring for Clarion code
  • Note: Template files have syntax highlighting only (no IntelliSense/navigation)
  • Learn more about Code Editing →

💡 Signature Help & Documentation

Get instant parameter hints and documentation - works immediately, no solution needed!

  • 310 built-in functions with parameter hints and descriptions
  • Method overload support — overloads narrowed by argument type (e.g. OPEN(Window) shows only WINDOW signatures)
  • Hover documentation for all symbols — procedures, classes, variables, attributes, built-ins
  • Context-aware hover — HIDE, DISABLE, TYPE show attribute or statement usage depending on context
  • Hover for PROP:/PROPPRINT: runtime properties — descriptions from Clarion 11.1 docs
  • Hover for EVENT: equates — category, description, and usage example
  • Signature help for class methods including inherited members
  • Learn more about Signature Help →

🤖 IntelliSense — Smart Completions

Type SELF. or MyVar. for context-aware member suggestions. Type PROP:, PROPPRINT:, or EVENT: for documented equate completions.

  • Resolves SELF., PARENT., MyVar., or ClassName. to the correct class
  • Full inheritance walk — shows methods and properties from parent classes
  • Access control aware — PRIVATE / PROTECTED / PUBLIC scoping enforced
  • Each overload shown as a distinct entry with parameter signatures
  • Chained expressions (SELF.Order.) resolve intermediate types
  • PROP:/PROPPRINT: completions with description and read-only badge
  • EVENT: completions with category label (Field-Specific / Field-Independent / DDE)
  • Learn more about Navigation →

✏️ Code Snippets

Write code faster with 50+ smart snippets - works immediately!

📂 Solution Management

Open any Clarion solution - just open the folder.

🧭 Smart Code Navigation

Jump to definitions, find implementations, and explore references — works in same file immediately, cross-file with solution.

  • Press F12 to go to definition (same file: no solution needed!)
  • Press Ctrl+F12 to go to implementation
  • Press Shift+F12 for Find All References — scope-aware across all project files
  • Press F2 to Rename Symbol — renames across the entire workspace in one step
  • Document Highlight — pressing on a symbol highlights all occurrences in the current file
  • Workspace Symbol Search (Ctrl+T) — search for any procedure, class, or label across all solution files
  • Hover for documentation — declaration location, class/interface context, type info
  • Chained navigation: SELF.Order.RangeList.Init — hover, F12, Ctrl+F12, and references resolve through CLASS, QUEUE, and GROUP type chains
  • SELF/PARENT properties: F12 on SELF.List navigates to the class member declaration
  • Typed variable members: F12/Ctrl+F12/hover on obj.Method() where obj is any typed variable
  • INTERFACE support: hover, F12, Ctrl+F12, and references for interface methods, IMPLEMENTS(), and 3-part Class.Interface.Method implementations
  • CLASS type names: F12 and Find All References work on type names in parameter and variable declarations
  • Cross-file navigation requires solution
  • Learn more about Navigation →

🔧 Build Integration

Generate applications directly from VS Code.

  • Right-click to build from Solution View
  • Multiple build configurations (Debug/Release) — active config auto-detected from .sln.cache
  • Projects sorted by build order (dependency-first) in Solution View
  • Live build output
  • Learn more about Building →

🎯 Real-time Diagnostics

Catch errors as you type.

  • Unterminated structures — including window sub-structures (WINDOW, SHEET, TAB, OLE, MENU, etc.)
  • Missing RETURN statements
  • FILE validation (DRIVER, RECORD)
  • Missing INCLUDE — warns when a variable's class type is defined in an .inc not included in the file; code action inserts the INCLUDE automatically
  • Missing DefineConstants — warns when a class's required Link()/DLL() constants are absent from the .cwproj; code action adds them with a QuickPick for static vs DLL mode
  • Learn more about Diagnostics →

✏️ Code Editing Tools

Productivity features to write code faster.


📦 Installation

Requirements

  • Visual Studio Code (latest version)
  • Clarion (for build features)

Quick Install

  1. Open VS Code
  2. Press Ctrl+Shift+X
  3. Search for "Clarion Extensions"
  4. Click Install

Detailed installation instructions →


🎓 Learning Resources

For New Users

Feature Documentation

Reference


🆕 What's New

Latest: v0.9.6 (2026-04-23) — Missing Include Diagnostics & Bug Fixes

🩺 Missing INCLUDE & DefineConstants Diagnostics

Variables declared with a user-defined class type now show a Warning squiggle when the type's .inc file isn't included. A code action (Ctrl+.) inserts the INCLUDE,ONCE statement — optionally in the current file or the MEMBER parent. A companion Information diagnostic fires when the include is present but required Link()/DLL() project constants are missing from the .cwproj, with a QuickPick code action to add them. The include verifier walks the full transitive include chain (any depth, cycle-safe) to avoid false positives from transitively-included types.

🧙 New Solution Wizard

Create a minimal Clarion solution (.sln, .cwproj, .clw) from the Solution View + button or Clarion: New Solution in the command palette. Clarion version and configuration are auto-detected.

🐛 Key Bug Fixes

  • token:function equate identifiers no longer reset inCodeSection, preventing false-positive BREAK used outside LOOP diagnostics
  • Blank-label ITEMIZE blocks (e.g. in XMLType.inc) no longer cause false-positive missing-include warnings
  • Settings no longer write redundant legacy individual keys alongside the solutions array

See full changelog →


Recent: v0.9.5 (2026-04-21) — Hover Expansion & Build Integration

📚 310 Built-ins, 158 Attributes

Hover documentation now covers 310 Clarion built-in functions and 158 window/report attributes. Overload narrowing: hovering OPEN(Window) shows only the WINDOW-relevant signatures. Context-aware hover for HIDE, DISABLE, and TYPE — shows attribute or statement usage depending on whether you're inside a WINDOW/REPORT structure.

🏗️ Build Integration Improvements

  • Projects sorted by dependency order in Solution View
  • Active build config auto-detected from .sln.cache on open
  • Fixed MSBuild property quoting and per-project log files

🐛 Key Bug Fixes

  • SDI startup fix: hover and Go To Definition now work on first open without needing to reopen the solution
  • LIKE(TypeName) dot-access chains resolve correctly (e.g. SELF.OrigWin.Maximized)
  • Equate hover shows correct type (no longer shows UNKNOWN)

See full changelog →


Recent: v0.9.4 (2026-04-19) — PROP/EVENT Docs, CodeLens & Editor Power-Ups

📚 PROP: / PROPPRINT: Hover Documentation

Hover over any runtime property equate (PROP:Enabled, PROP:Color, PROPPRINT:Device, …) to see an instant description, read-only badge, and usage example. Covers 336 PROP: entries and 25 PROPPRINT: printer properties.

⚡ EVENT: Hover & Autocomplete

Type EVENT: for a full autocomplete list of all 63 EVENT: equates. Hovering shows category and description.

🔢 CodeLens — Inline Reference Counts

A N references lens above every procedure and CLASS declaration. Dead code is immediately visible. Click to open the References panel.

📐 Expand / Shrink Selection (Shift+Alt+→ / Shift+Alt+←)

Progressively widen selection through Clarion's scope hierarchy.

🔗 Flatten Continuation Lines (Ctrl+.)

Joins |-continued lines, trims whitespace, and collapses adjacent string literals.

See full changelog →


Recent: v0.9.2 (2026-04-18) — Navigation & Bug Fixes

🔗 Multi-Level Chain Navigation

variable.property.method chains now resolve all the way through. Hover, F12, and Ctrl+F12 on thisStartup.Settings.PutGlobalSetting(...) correctly walk the type chain.

🐛 Key Bug Fixes

  • PREFIX:Name reference variables now resolve correctly
  • Hover, F12, and Ctrl+F12 suppressed inside string literals
  • Colon-stripping fallback removed from hover and F12

See full changelog →


Recent: v0.8.8 (2026-04-12)

✏️ Rename Symbol (F2)

Rename any user-defined symbol across the entire workspace — scope-aware, protects read-only .inc files.

🔆 Document Highlight

Click a symbol to highlight all its occurrences in the current file.

🔍 Workspace Symbol Search (Ctrl+T)

Search for any procedure, class, or label across all files in the solution.

See full changelog →


💬 Support & Feedback


📄 License

MIT License


🙏 Acknowledgments

Special thanks to:

  • fushnisoft - Original Clarion syntax highlighting
  • The Clarion community for feedback and testing