Skip to content

Latest commit

 

History

History
140 lines (108 loc) · 12.2 KB

File metadata and controls

140 lines (108 loc) · 12.2 KB

Settings Reference

← Back to Documentation Home

Complete reference for all Clarion Extension settings, generated from the extension manifest for v1.0.9.

Open settings with Ctrl+, and search for clarion, or edit settings.json directly.

Managed automatically: several settings (clarion.currentSolution, clarion.solutions, clarion.activeVersion, clarion.activePropertiesFile, clarion.versionMigrated, clarion.solutionVersionMemoryBackfilled) are written by the extension as you open solutions and pick versions. You rarely need to edit them by hand; the internal one-shot flags should not be edited at all.


Language Features

Setting Default Description
clarion.referencesCodeLens.enabled true Shows the N references CodeLens above each procedure, method implementation, CLASS, and ROUTINE. Each lens runs a scoped Find-All-References in the background for an exact count. Disable if you prefer no lenses.
clarion.unreachableCode.enabled true Visually dims unreachable code (after an unconditional RETURN, EXIT, or HALT at top execution level).
clarion.prefixHighlighting.enabled true Prefix highlighting for Clarion variables (PRE:Field coloring).
clarion.highlighting — Fine-grained highlighting settings for Clarion code elements (object).
clarion.procedurePrototypeStyle "keyword" Prototype style when the extension inserts procedure declarations into MAP/MODULE structures: keyword (PROCEDURE(...)) or shorthand.
clarion.maxNumberOfProblems 100 Maximum number of problems the language server reports per file.
clarion.restoredTabDiagnostics true After a restart, show the problems of every Clarion file in a restored editor tab, not only the tab in front. VS Code loads a background tab's file only when it is clicked; with this on, each restored tab is checked from disk once the solution has loaded, one at a time. Takes effect after a window reload.

Diagnostics

Every check can be turned off on its own and reported at the severity you choose. A change takes effect as you make it — no reload.

Setting Default Description
clarion.diagnostics.enabled true The master switch. Turn it off and nothing is reported, whatever the individual checks say.
clarion.diagnostics.<check>.enabled see below Turns one check off or on.
clarion.diagnostics.<check>.severity "default" Reports one check as error, warning, information or hint. default keeps the check's own level, so a check that is useful but not blocking can be demoted, and one your team treats as a build rule promoted.

The checks

<check> is one of the 26 ids below — for example "clarion.diagnostics.undeclaredVariables.severity": "error", or "clarion.diagnostics.unicodeCharacters.enabled": false.

Check Default What it reports
undeclaredVariables on Raises a Warning on a bare identifier used in executable code — an assignment target or an operand in a condition or expression — that cannot be resolved to any declaration in the current file, including a PROGRAM's own main CODE section.
unresolvedProcedureCalls off Raises a Warning on a call to a procedure whose name is declared nowhere the extension can see — not in this file's MAP or its MAP includes, not in the MEMBER parent's MAP or the MODULE blocks of the includes those MAPs pull in (the same places Go to Definition looks), and not in the solution's declaration index.
indistinguishablePrototypes on Raises a Warning when two procedure declarations within the same scope (CLASS / INTERFACE / MAP) are indistinguishable to the Clarion compiler — both callable with zero arguments via defaults, identical parameter shapes, or duplicates where * is implicit for complex types.
unterminatedStructures on Reports a structure (IF, LOOP, CASE, GROUP, CLASS, WINDOW and the rest) with no closing END or period.
omitCompileBlocks on Reports an OMIT or COMPILE block whose terminator string never appears.
fileDeclarations on Reports a FILE declaration missing its DRIVER attribute or its RECORD section.
caseStructures on Reports an OROF in a CASE that is not preceded by an OF.
executeStructures on Reports an EXECUTE whose expression is a string literal rather than a numeric value.
returnStatements on Reports a procedure declared with a return type that has no RETURN statement, or only empty ones.
classProperties on Reports a QUEUE declared directly as a CLASS property, or nested inside another QUEUE, where a QUEUE reference (&QUEUE) is required.
discardedReturnValues on Reports a call whose return value is discarded when the procedure or method is not declared with the PROC attribute. Covers plain calls and method calls.
cycleBreakOutsideLoop on Reports CYCLE or BREAK outside any LOOP or ACCEPT, and a CYCLE or BREAK label that names no enclosing loop.
reservedKeywordLabels on Reports a reserved Clarion keyword used as a label (a declaration follows it). The list is the compiler's, not the help's.
intrinsicRedefinitions on Warns where the compiler warns "Redefining system intrinsic": SELF or PARENT as a method's parameter or local, NULL as a PROCEDURE or method name. In that method the new name hides the real SELF or PARENT.
unicodeCharacters on Reports a character that no Windows ANSI code page can represent, which would corrupt the file for the Clarion compiler.
attributeApplicability on Reports an attribute used on a control or structure it does not apply to, for example RESIZE on a BUTTON.
itemizeBlocks on Reports a declaration other than an EQUATE inside an ITEMIZE block.
byRefArguments on Reports a literal passed to a by-reference (*TYPE) parameter.
viewProjectFields on Reports a PROJECT field in a VIEW or JOIN that the projected FILE does not declare.
missingIncludes on Reports a type used in the file whose declaring include file is not included.
unresolvedFileReferences on Reports, as an error, an INCLUDE or MEMBER naming a file that cannot be found, which fails the compile. A MODULE name is never reported (it may name an external library), nor anything inside OMIT or COMPILE.
missingConstants on Reports a type whose declaring include file needs a project DEFINE constant the project does not set.
missingMapDeclarations on Reports a procedure implementation with no MAP prototype, and a prototype whose signature does not match its implementation.
missingImplementations on Reports a MAP prototype with no implementation.
privateProcedureCalls on Reports a call to a PRIVATE procedure from outside the module that declares it.
interfaceImplementation on Reports a CLASS that implements an INTERFACE but leaves one of its methods unimplemented.

Build

Setting Default Description
clarion.saveBeforeBuild true Save all unsaved files before any build, so the compiler always sees the latest content.
clarion.build.revealOutput "never" When to show the build output terminal: never, always, or onError.
clarion.build.showInOutputPanel false Also mirror build output into the Output panel (in addition to the Problems panel).
clarion.build.logFilePath "" Custom path for the build output log. Empty = solution directory.
clarion.build.preserveLogFile false Keep build_output.log after the build completes.
clarion.startupProject "" GUID of the project run by Ctrl+F5 (Run Without Debugging). Unset = the project containing the current file. Usually set via right-click → Set as Startup Project in the Solution View, the Startup row in the Clarion Tools pane, or Clarion: Choose Startup Project.
clarion.run.command "" A command Run Without Debugging executes instead of the project's output exe, in a PowerShell terminal, from the project folder. ${exe} (the output exe), ${projectDir} and ${args} (the project's start arguments) are substituted, for example & "${projectDir}\CopyRun.bat". Empty runs the output exe. Debug still starts the exe itself.
clarion.configuration "" Selected build configuration (Debug/Release/custom). Usually set via the status bar or Clarion: Set Configuration.

Paste as Clarion String

Setting Default Description
clarion.pasteAsString.lineTerminator "space" How pasted lines are joined: space, crlf (<13,10>), or none.
clarion.pasteAsString.trimLeadingWhitespace true Strip leading whitespace from each pasted line — recommended when pasting indented code.

File Resolution & Quick Open

Setting Default Description
clarion.defaultLookupExtensions [".clw", ".inc", ".equ", ".eq"] Extensions used for document links and hover previews for files outside any project.
clarion.fileSearchExtensions [".clw", ".inc", ".equ", ".eq"] Extensions searched by Clarion: Quick Open (redirection-aware Ctrl+P).

Solution & Version Management

Setting Default Description
clarion.solutionFile "" Path to the Clarion solution (.sln) file.
clarion.currentSolution "" Path of the currently open solution (managed by the extension).
clarion.solutions [] Per-solution settings memory (managed by the extension).
clarion.version / clarion.activeVersion "" Selected Clarion version (e.g. Clarion 11.1). activeVersion is user-scoped so version-derived state (libsrc paths, redirection, macros) works without an open solution.
clarion.propertiesFile / clarion.activePropertiesFile "" Path to the ClarionProperties.xml backing the selected version.
clarion.enableLocalSlnFallback true Parse the .sln locally as a fast fallback when the language server isn't ready yet.
clarion.firstFetchTimeoutMs 2500 Timeout for the first solution fetch after activation.

Snippets

Setting Default Description
clarion-extensions.spacing.className 4 Spacing between ClassName and CLASS in snippets.
clarion-extensions.spacing.methodName 2 Spacing between MethodName and PROCEDURE in snippets.

Logging, Tracing & Telemetry

Setting Default Description
clarion.log.level "error" How much the extension logs: error (the default) logs only errors, warn adds missing settings and degraded fallbacks, info a running trace, debug everything. The lines go to the Clarion Extension (Client) and Clarion Language Server output channels and to .clarion-debug/client.log in the workspace. Raise it while reproducing a problem, then set it back; it applies to both processes at once, with no reload. The command Clarion: Set Log Level changes it from the palette.
clarion.log.performance.enabled false Support/diagnostic switch. Emits performance-timing lines (startup phases, index builds, per-validator timings, slow-request attribution) to the Clarion Language Server output channel. The instrumentation always runs at negligible cost — flip this on (plus a window reload) to produce a full diagnostic timeline when reporting a performance issue.
clarion.trace.server "off" LSP wire tracing: off, messages, or verbose.
clarion.telemetry.enabled true Anonymous usage telemetry. No personal information is collected.

Reporting a performance problem?

  1. Set clarion.log.performance.enabled to true
  2. Reload the window (Ctrl+Shift+P → Developer: Reload Window)
  3. Reproduce the slowness
  4. Copy the Clarion Language Server output channel contents into a GitHub issue

The log contains phase-by-phase timings that usually identify the exact cause.


Related Documentation