Skip to content

msarson/Clarion-Extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,188 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.9 (2026-07-04) — Solution-wide scope correctness + no-solution resilience

  • Tightened open-solution scope correctness across cross-file PROGRAM globals, sibling-MEMBER module scope, Tier 1 routine-local shadowing in SymbolFinder.findSymbol(...), and qualifier completion so Prefix: only returns symbols for that exact qualifier (e.g. TGLO:*).
  • Dot-completion member lists now show inline type information (for example Var1 LONG) while preserving clean insert text.
  • Clarion startup now uses a cleaner TypeScript-style status bar progress flow (activating → language server → solution loading/indexing → ready) instead of multiple transient load popups.
  • Build and generation commands now use a shared status-bar lifecycle (running/succeeded/failed) for clearer operation feedback.
  • Added lazy no-solution FRG coverage for DocumentLink/FAR/completion plus no-solution entry-point completion parity improvements as additive fallback hardening.
  • Landed cross-file overload fallback hardening when a built-but-irrelevant FRG is present.

See full changelog →


Recent: v0.9.8 (2026-07-03) — Documentation corrections

  • Updated release documentation to reflect v0.9.8 as the current version.
  • Corrected release timeline references so v0.9.7 is clearly marked as released on 2026-07-02.

See full changelog →


Recent: v0.9.7 (2026-07-02) — No-Solution UX, Formatting, and Diagnostics

🧭 No-solution workflow improvements

  • clarion.quickOpen now falls back to VS Code's native Quick Open when no solution is loaded.
  • The extension stays dormant in non-Clarion workspaces (no status bar/LSP startup until Clarion context exists).
  • Version/session behavior is now clearer and more stable across solutions via the newer version-reconciliation flow.

📐 Formatting and navigation quality

  • Added Format Selection support via documentRangeFormattingProvider (range formatting with full-document context).
  • Interface/class implementation diagnostics now handle inherited implementations and overload differentiation by parameter count.
  • MODULE(...) / LINK(...) references on CLASS lines are now clickable document links.

⚡ Reliability and performance polish

  • Cross-file diagnostics now read live open+dirty buffers for include-based checks (avoids stale-disk false positives).
  • CodeLens reference counts are warmed more aggressively and invalidated more precisely to reduce repeated full scans.
  • Additional rename/reference URI-normalization hardening reduces duplicate-edit collisions.

🧩 Other notable 0.9.7 additions

  • Protected-branch pre-commit guard for release branches (master, main, version-x.y.z).
  • New clarion.referencesCodeLens.enabled setting to disable expensive reference-count CodeLens on very large files.
  • Interface and overload diagnostics expanded with indistinguishable-prototype detection and stricter interface implementation checks.
  • Typed-variable overload resolution improved across Go To Definition / Hover / Go To Implementation.
  • New diagnostics include undeclared-variable coverage and missing-MAP declaration checks.

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

About

VS Code Extension for Clarion

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors