Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Intouch-Language QuickScript Support for VS CodeNew to Visual Studio Code? Get it now.
Intouch-Language QuickScript Support for VS Code

Intouch-Language QuickScript Support for VS Code

Vitaly Ruhl

|
1,000 installs
| (2) | Free
Native InTouch QuickScript language server with formatting, diagnostics, navigation, completion, hover, document symbols, and workspace QuickFunction discovery.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Intouch-Language README


Intouch-Language Logo



QuickScript (Intouch-Language)

1.6.2

  • Modernize the Serena QuickScript adapter for Serena's external language-server registry.

  • Keep the adapter responsible only for .vbi/.vi registration and launching the native QuickScript server.

  • Intouch-Language is an open source extension for Visual Studio Code (Not official!). It provides native QuickScript language-server support for .vbi and .vi files, including formatting, diagnostics, document metadata, QuickFunction discovery, cross-file definition and references, hover, completion, and document symbols. It also includes the Intouch Dark theme.

  • Intouch is a programming language for AVEVA (Wonderware) SCADA Intouch Applications.

QuickScript Language Server

The extension includes a native, editor-independent QuickScript language server for .vbi and .vi files. It provides:

  • Parser-based formatting and diagnostics.
  • Comment-based document metadata for QuickFunctions, Windows, Application-Script, DataChanges, Conditions, and KeyScripts.
  • Workspace QuickFunction discovery with cross-file definition and references.
  • Hover, completion, and document symbols.
  • Window event support for OnShow, WhileRunning, and OnClose.
  • Non-callable Application-Script, DataChange, Condition, and KeyScript symbols.

Project-specific QuickFunctions are discovered from the current workspace; private project catalogs are not bundled with the public extension.

Example

Example


Intouch Dark Theme

Built-in VS Code themes work with the standard TextMate scopes provided by the extension. Intouch Dark offers stronger QuickScript differentiation when you want more specialized contrast. The current language server provides no semantic tokens; highlighting is currently based on the TextMate grammar.



Installation

  • Prerequisite: Node.js 20 or later.
  • Standard Installation:
    • Install it in ext.-manager (type Intouch) or from Visual Studio Marketplace
  • Install from Github:
    • Copy or clone all in to: %USERPROFILE%\.vscode\extensions\intouch-language\
      • cd ~/.vscode/extensions/
      • git clone https://github.com/vitalyruhl/intouch-language.git
    • Open shell there and type npm i
    • Run: npm run compile, or npm run watch if you want to make changes in src folder.
    • You must restart VS Code after installation to apply new settings.



Snippets

  • Dimb -> Dim Boolean (Discrete)
  • Dimi -> Dim Integer
  • Dims -> Dim String (Message)
  • If# -> If code block
  • Ife -> If Else code block
  • for# -> add for-next-block
  • log# -> Log-Debug
  • cb# -> add new Code-Block
  • func# -> add new empty Function



Others

Save your code as .vbi or .vi for automatic language recognition.

QuickScript language

QuickScript language boundaries and the language-server architecture are documented in docs/language/quickscript.md and docs/architecture/intouch-core-preparation.md. The supported comment-based script metadata convention is documented in docs/language/document-metadata.md.

The extension uses its own QuickScript language server for .vbi and .vi. Formatting and semantic features share the editor-independent core tokenizer and parser.


Enjoy!

Please report missing rules or future-requests on this link.



Todo

Known Issues / Notes

The following items are either recently resolved or planned but not yet implemented:

  • Formatting uses the shared tokenizer and recoverable structure parser.
  • Definition and references are document-local for variables and cross-file for metadata-declared workspace QuickFunctions; project-wide variable indexing and range formatting remain planned.
  • NOTE: Multiline IF continuation indentation intentionally uses base + 2 spaces before THEN; THEN line stays aligned with expression by design.
  • NOTE: Spacing inside string literals and single-line brace comments is preserved intentionally; only outer code regions are normalized.

What's new in Intouch-Language

1.6.0

  • Add Language Server Protocol (LSP) support for VS Code formatting while preserving the existing grammar, snippets, theme, and formatter command.

V1.5.0

  • Added deeper multiline IF continuation indentation (base + 2) keeping THEN line aligned with expression
  • Removed spaces before semicolons outside of strings (strings remain untouched)
  • Preserved all spacing inside string literals and single-line brace comments
  • Added highlighting support for instance prefixes of the form PREFIX:Variable, prefix and variable now use different scopes for theming
  • General whitespace normalization (trailing whitespace removal, internal multi-space collapse outside strings/comments)

V1.1.0-V1.4.3

  • Add math / intrinsic style functions for uppercasing in formatter: sqr, sin, cos, tan, atn, exp, log, int, frac, round, rnd, sqrt
  • Correct some bugs in regex for syntax-highlighting
  • Theme -> Add more compatibility to other languages
  • Add more compatibility to other Themes (e.g. material-theme)
  • Add own dark theme based on GitHub (Dark Classic) VS Code theme from BerriJ
  • Bugfix trailing whitespace before -
  • Add folding between {region xxxx} and {endregion xxxx}
  • Add Nesting between {region xxxx} and {endregion xxxx}
  • Auto closing brackets in strings and comments.
  • Add wordPattern and indentationRules into language configuration.
  • <fix bug - issue #13, formatter formats dashed variable foo-bar --> foo - bar
  • Add Code-Blocks for Nesting and Folding in code without keywords Start:{>, End:{<
  • Add Snippet cb# : add new Code-Block
  • Add Snippet for# : add for-next-block
  • Add Snippet func# : add new empty Function

V1.0.0

  • Add Formatting Function



Donate

if you prefer a one-time donation

donate-Paypal

Become a patron, by simply clicking on this button (**very appreciated!**):

Become a patron




Copyright

2021-2026 (c)Vitaly Ruhl

License: GNU General Public License v3.0

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft