Settings - overturetool/vdm-vscode GitHub Wiki
Visual Studio Code provides many configurable settings that allow you to fine-tune the behaviour of the tool and its extensions. This page describes the settings that are available for the VDM VSCode extension. Most settings have sensible default values and for normal usage they do not need to be changed.
Settings can be changed by using the cog wheel icon at the bottom right of the UI on the activity bar, and selecting Settings (or by typing CTRL+,). The settings UI can be filtered; entering "vdm-vscode" will filter out the settings for the VDM VSCode extension. Note that settings can be stored by User (i.e. they apply to all projects opened by the current user), by Workspace (i.e. they apply to all projects within a workspace, regardless of user), or by Folder (i.e. they apply specifically to one project, regardless of the workspace or user). More specific settings override more general ones (i.e. a Folder setting overrides a Workspace setting, which overrides a User setting).

Server Settings
- vdm-vscode.server.JVMArgumentsJVM arguments used when launching the server.
- vdm-vscode.server.classPathAdditionsList of folder and/or file paths that should be included in the class path for the language server. Examples of things to add to the classpath are external format readers and QuickCheck strategies; to add libraries, plugins or annotations, instead use the configuration 'Server > Extension Search Paths' for better integration. Find folders, Find files, or type in manually.
- vdm-vscode.server.highPrecisionUse high precision variant of VDMJ.
- vdm-vscode.server.strictActivate the VDMJ -strict flag that highlights (with warnings) where a specification is taking advantage of lenient parsing rule.
- vdm-vscode.server.releaseActivates the selected release of VDMJ, allowing VDMJ to parse specs that adhere to the this VDM release. Either "classic" or "vdm10".
- vdm-vscode.server.extensionSearchPathsSpecifies additional paths to search for VDMJ extensions, i.e. plugins, libraries and annotations. Other types of extensions are not natively supported by the extension, and will need to be added to the class path through the 'Server > Class Path Additions' configuration. The paths can either point directly to an extension jar or a directory containing multiple extension jars. Add directories to the search path, Add jars to the search path, or type a path manually.
- vdm-vscode.server.plugins.enabledPlugins to enable/disable. If a plugin is enabled in the User settings but explicitly disabled in the Workspace or Workspace Folder settings, the Workspace settings take precedence. This setting only affects plugins found in the search paths.
- vdm-vscode.server.annotations.enabledAnnotations to enable/disable. If an annotation is enabled in the User settings but explicitly disabled in the Workspace or Workspace Folder settings, the Workspace settings take precedence. This setting only affects annotations found in the search paths. Built-in annotations are enabled by default and must be explicitly disabled if not needed.
Code Generation Settings
- vdm-vscode.javaCodeGen.disableCloningDisable cloning (may lead to code being generated that does not preserve the semantics of the input specification)
- vdm-vscode.javaCodeGen.sequencesAsStringsGenerate character sequences as strings
- vdm-vscode.javaCodeGen.concurrencyMechanismsGenerate concurrency mechanisms
- vdm-vscode.javaCodeGen.vdmLocationInformationGenerate VDM location information for code generated constructs
- vdm-vscode.javaCodeGen.outputPackageChoose output package e.g : my.code
- vdm-vscode.javaCodeGen.skipClassesModulesSkip classes/modules during the code generation process. Separate by ';' e.g : World;Env
Translation Settings
- vdm-vscode.translate.latex.modelOnlyOnly model part will be included in the Latex translation, i.e., everything enclosed within '\begin{vdm_al}' and '\end{vdm_al}'
- vdm-vscode.translate.latex.markCoverageMark coverage in the Latex translation
- vdm-vscode.translate.latex.insertCoverageTablesInsert coverage tables in the Latex translation
- vdm-vscode.translate.general.storeAllTranslationsStores each translation in a timestamped folder instead of overwriting the previous content
- vdm-vscode.translate.general.allowSingleFileTranslationIf enabled, translates only the selected file. If disabled, translate is always applied to the whole project
- vdm-vscode.translate.isabelle.strictStrict handling of certain errors (e.g. print output or not, raise VDMJ warnings as translation errors, etc.).
- vdm-vscode.translate.isabelle.maxErrorsMaximum number (default=100) of translation errors to report. This is similar to VDMJ's maxErrors
- vdm-vscode.translate.isabelle.isaVersionIsabelle/HOL version target for translation.
- vdm-vscode.translate.isabelle.reportVDMWarningsReport VDMJ warnings as part of the plugin output.
- vdm-vscode.translate.isabelle.debugReport VDMJ warnings as part of the plugin output.
- vdm-vscode.translate.isabelle.linientInvCheckExu invariant type checks allow subtyping instead of explicit invariant/pre calls.
- vdm-vscode.translate.isabelle.retypecheckExu module sorting creates a new module, which you can re typecheck to ensure no VDM type errors have occured as a result of sorting.
- vdm-vscode.translate.isabelle.linientPostTranslate VDM source as an Isabelle comment alongside its translation.
- vdm-vscode.translate.isabelle.printVDMCommentsPrints VDM user comments as Isabelle comments when true, or ignore them when false.
- vdm-vscode.translate.isabelle.printIsaCommentsPrints Isabelle translation comments to the user (e.g., explanatory comments about translation's implicit VDM checks).
- vdm-vscode.translate.isabelle.runExuChooses whether to run the Exu VDM analyser prior to translation. Exu will provide information about VDM style and potential translation issues.
- vdm-vscode.translate.isabelle.valueAsAbbreviationTranslate VDM values as Isabelle abbreviations when true, and as Isabelle definitions when false.
- vdm-vscode.translate.isabelle.translateTypeDefMinMaxTranslate VDM min_T or max_T when translating ordering predicates for type definitions.
- vdm-vscode.translate.isabelle.printVDMSourceTranslate VDM source as an Isabelle comment immediately before its translation.
- vdm-vscode.translate.isabelle.printLocationsTranslate VDM source location information as an Isabelle comment alongside its VDM source translation.
- vdm-vscode.translate.isabelle.runIsapogTranslate VDM POs as a separate theory file associated with the recently translated VDM model.
- vdm-vscode.translate.isabelle.createPogLocaleLemmasTranslate VDM POs within an Isabelle locale with separate lemmas per PO.
- vdm-vscode.translate.isabelle.proofStrategyProof strategy choice for the- isapogplugin. It determines what kind of proof script the plugin will generate for the translated PO.
Other Settings
- vdm-vscode.coverage.UseHeatmapColouringIf enabled, the number of hits (larger than zero) corresponds to a brighter green. If disabled, all sections with any number (hits larger than zero) are colored the same green.
- vdm-vscode.coverage.OverlayLatestCoverageIf enabled, the latest generated coverage is utilised for overlaying. If disabled, it is possible to choose which coverage should be used for overlaying.
- vdm-vscode.encoding.showWarningIf enabled, shows a warning if document encoding is not UTF-8
- vdm-vscode.combinatorialTesting.groupSizeDetermine the maximum group size for tests in the combinatorial testing view
- vdm-vscode.codeLenses.enabledEnable/disable code lenses
- vdm-vscode.vdmtools.path.vdmppPath to VDMTools for VDM++.
- vdm-vscode.vdmtools.path.vdmslPath to VDMTools for VDM-SL.
- vdm-vscode.real-timeLogViewer.scaleWithEditorFontEnable scaling of the view relative to the current font size of the editor
- vdm-vscode.real-timeLogViewer.matchThemeEnable colours of the view to match the current theme of the editor
- vdm-vscode.real-timeLogViewer.fontSizeFont size to use for the relative scaling of elements in the diagram. Only used if- #vdm-vscode.other.real-timeLogViewer.scaleWithEditorFont#is disabled
Development Settings
- vdm-vscode.trace.serverEnables tracing of LSP messages between VS Code and the VDMJ language server. The trace may contain file paths, source code, and other potentially sensitive information from your project
- vdm-vscode.trace.debugEnables tracing of DAP messages
- vdm-vscode.server.development.experimentalServerUse experimental server. True if the client should not launch the server, but connect to a server on a socket connection determined by- #vdm-vscode.server.development.experimentalServer#.
- vdm-vscode.server.development.lspPortPort used for LSP. NOTE: Only used when- #vdm-vscode.server.development.experimentalServer#is active.
- vdm-vscode.server.logLevelEnables logging of the VDMJ server to a file in this folder. This log can be used to diagnose server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.
- vdm-vscode.server.stdio.activateStdoutLoggingActivate logging of stdout/stderr to the terminal window. NOTE: This may cause performance slowdown if specifications have many annotations.
- vdm-vscode.server.stdio.stdioLogPathFile path for the directory that should be used to store stdout/stderr logs. NOTE: If empty, terminal logging is used instead of file logging. The setting is only used when- #vdm-vscode.server.stdio.activateStdoutLogging#is active.
- vdm-vscode.server.verboseActivate the VDMJ -verbose flag that sends detailed information to the VDMJ console.