Clarion Extension for Visual Studio Code

Clarion language support for Visual Studio Code: navigation, hover, IntelliSense, diagnostics, refactoring and builds, backed by a language server that understands whole solutions. Built and measured against real generated applications, 40 projects and 3,000 source files at a time, so the things a Clarion IDE user expects to work on a generated app, ABC or Legacy templates alike, work here too.

Features
Navigation and hover
Works in the current file with no solution open; opens out across files when a solution is loaded.
- F12, Ctrl+F12 and Shift+F12 for definition, implementation and references, aware of scope, overloads, routines,
PRE:Field and Structure.Field access, and the procedure names an EXE shares with its DLLs.
- Hover cards that say what a thing is: a FILE with its driver, prefix and keys; a MAP prototype labelled Global, Module or Private; a structure field the same from its declaration or any qualified use.
- Reference counts above every procedure, method, class and routine, exact once the index is warm.
- Rename across the workspace, document highlight, workspace symbol search, and chained access such as
SELF.Order.RangeList.Init resolved through CLASS, QUEUE and GROUP types.
- Call hierarchy (Shift+Alt+H) for procedures, methods and routines, in both directions.
- Hover on a keyword that only makes sense in context: an
END or a period says which structure it closes and links back to it; ELSE, ELSIF, OF and OROF say which IF or CASE they belong to.
- In a solution with several projects, a name is resolved through the redirection of the project that compiles the file you are in.
- Navigation in detail
IntelliSense and signature help
- Member completion after
SELF., PARENT., MyVar. or ClassName., walking inheritance and honouring PRIVATE and PROTECTED.
- Parameter hints for 272 built-in functions and for class methods, with the overload narrowed by the argument types as you type.
- Documented completions and hover for
PROP:, PROPPRINT: and EVENT: equates, and for ? field equates scoped to the current window.
- Signature help in detail
Diagnostics
Reported as you type, following the compiler's rules; where the rule was unclear it was settled by compiling a fixture.

- Unterminated structures, missing RETURN, FILE validation, VIEW field references checked against the owning file.
- Missing INCLUDE and missing project DefineConstants, each with a quick fix that adds the line.
- Discarded return values, a literal passed by reference, a call to a PRIVATE procedure from another module, undeclared variables, missing implementations and indistinguishable overloads.
- Character-set validation that respects every Windows ANSI code page and the Clarion 12
!UTF8 directive.
- Every check has its own setting and its own severity, with one switch for all of them; changes take effect as you make them.
- Opt-in: a call to a procedure that no MAP, MODULE, include or indexed file declares.
- Diagnostics in detail
Refactoring and quick fixes
On Ctrl+.: Surround With, Negate Condition, Flip IF/ELSE, Introduce EQUATE, and Create routine from an unresolved DO. Code editing in detail

Solutions and builds
- Open a folder; the extension finds the
.sln, reads the projects, and follows Clarion's redirection files exactly as the IDE does, including per-configuration sections.
- Installed Clarion versions are discovered from the IDE's settings; a
ClarionProperties.xml kept anywhere else can be chosen, and the build follows it.
- Build from the Solution View with live output, projects ordered by dependency, and each build states what it is building, in which configuration, and the MSBuild command line. A solution that loads in a degraded state says so instead of silently returning nothing.
- The Clarion version is remembered per solution and can be changed while it is loaded: the editor and the build follow the new install at once, without a reload. A version the properties file no longer registers is reported rather than used.
- Settings are read and written in one place, so a pick sticks in a multi-root workspace; settings an earlier version wrote into a folder, which override the
.code-workspace file, are reported with an offer to remove them.
- Solution management in detail
Editing and syntax
Syntax highlighting for Clarion and the template language, including the Clarion 12 Unicode preview; folding; 99 snippets; Paste as Clarion String; Add Method Implementation; a New Class wizard; a document formatter. Template files get highlighting only. Snippet reference
Indexes persist across sessions and background work is time-sliced, so a 40-project solution is ready in about two seconds and interactive in about five, and typing, hover and navigation are never blocked. Reading a source file is about three times faster than in 1.0.3, and background checking stops as soon as you type rather than finishing work your edit has already replaced. Opt-in tracing (clarion.log.performance.enabled) produces a full timeline for support, and clarion.log.level captures a diagnostic log for a bug report.
Requirements and installation
- Windows. The extension drives Clarion's own toolchain and does not run on macOS or Linux.
- Visual Studio Code 1.97 or later.
- Clarion 10, 11 or the 12 beta, for solution features and builds; editing and single-file navigation work without one.
Install from the Marketplace: open Extensions (Ctrl+Shift+X), search for Clarion Extensions, and install. Detailed installation instructions.
What's new
1.0.9 (2026-10-24)
Hover cards that edit declarations, and solutions with their own versions and redirection layouts.
- Hovering a control, a WINDOW, APPLICATION or REPORT header, or a FILE, KEY, INDEX, MEMO or BLOB declaration lists the attributes it sets, offers the ones it accepts, and adds or removes one with a click; completion after a comma offers only those attributes, and one the compiler rejects is flagged.
- Hovering IF, LOOP, CASE, EXECUTE, BEGIN or ACCEPT shows what closes it, and warns when its END lines up with an enclosing block.
- Custom-named Clarion versions, redirection files named by full path, quoted paths and masks such as
ab*.inc all resolve, and a solution opened from another folder, or whose settings can't be saved, still opens.
- Fixes for hover and Go to Definition on
SELF.InterfaceName, member chains, ITEMIZE equates and prototypes in library includes, and for false discarded-return and indistinguishable-overload warnings.
Earlier: 1.0.8 (2026-10-04) made diagnostics after an edit about three times quicker on large modules and let hover, completion and Go to Definition run ahead of the background check; 1.0.7 (2026-10-03) fixed the extension reading a module wrongly after some edits and made the hover after an edit much quicker on large modules. Full changelog.
Documentation
Support and feedback
License
MIT License
Acknowledgments
- fushnisoft for the original Clarion syntax highlighting
- The Clarion community for feedback and testing
Contributors

Thanks to everyone who has helped improve the Clarion Language Extension through code, bug reports, testing, ideas, documentation and their knowledge of the Clarion language.
This project follows the all-contributors specification. Contributions of any kind welcome!
| |