Skip to content

About

VS Code Extension for Clarion

Topics

Resources

Contributing

Stars

13 stars

Watchers

3 watching

Forks

Latest commit

 

History

3,207 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clarion Extension for Visual Studio Code

Marketplace version Marketplace installs

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.

Hover on a FILE label: Orders is a global FILE structure with DRIVER TOPSPEED, PRE ORD, CREATE, THREAD, 1 key and 3 fields, declared at viewjoin.clw line 16


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

Hover on the FILE keyword of Orders: the attributes it sets (DRIVER, PRE, CREATE, THREAD), the flags it accepts and those that take a value, each a link that adds or removes it

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.

A PROJECT of a misspelled field is flagged: Customer.Naem is not a field on FILE Customer

  • 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

The Quick Fix menu on an unresolved DO offering Create routine

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.
  • Project Properties and Solution Properties show a project's and a solution's options as the Clarion IDE's pages do; New Solution builds projects from the programs already in a folder.
  • Solution management in detail

The Clarion Tools side bar: the Solution View with Build, Run, Debug and Solution Properties on its title bar, the loaded solution and its project with the IDE's folders (File Drivers; Libraries, Objects and Resource Files; Projects to include; Referenced Projects), and the Structure view of the open file

Project Properties for ViewJoinTest: the Application page with its target name, output path, output type, link mode and icon, each marked as applying to all configurations or not set

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

Performance

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.10 (2026-11-03)

Projects and solutions managed in VS Code as in the Clarion IDE, and code read the way the compiler reads it.

  • Project Properties and Solution Properties show a project's and a solution's options as the Clarion IDE's pages do; projects can be added, sources, references and pragmas edited, and the Solution View shows each project's IDE folders.
  • New Solution asks everything on one page and builds a project for each program already in a folder, with its references and export files, following a legacy .prj where one compiles the program.
  • An INCLUDE inside a COMPILE or OMIT block that does not compile is no longer followed, decided from the equates before it and the project's defines.
  • Prototypes and headers continued with |, LIKE declarations and the attributes of CLASS, QUEUE and variable lines read correctly in hover, the Outline, Find All References and the diagnostics; BREAK and CYCLE show the loop they act on, and EXPORT has a card.
  • TXA files are highlighted.

Earlier: 1.0.9 (2026-10-24) added hover cards that list and edit a declaration's attributes and resolved solutions with custom-named versions and redirection layouts; 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. 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

All 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.

geircodes
geircodes

💻 🐛 🤔
Edin Čahtarević
Edin Čahtarević

🐛 🤔 📓
ClarionLive
ClarionLive

🐛 🤔 📓 💻
Allen Zhu
Allen Zhu

💻
Brahn Partridge
Brahn Partridge

💻
Mark Goldberg
Mark Goldberg

🐛
Carlos Gutierrez
Carlos Gutierrez

🐛
Dylan Vos
Dylan Vos

🐛
krosoftware
krosoftware

🐛
jslarveEC
jslarveEC

🐛
Nardus
Nardus

📖
Mike Hanson
Mike Hanson

🤔
William Atchison
William Atchison

🐛 🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

About

VS Code Extension for Clarion

Topics

Resources

Contributing

Stars

13 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages