/vscode-st

Extension for VS Code to support Structured Text language.

Primary LanguageTypeScriptMIT LicenseMIT

License: MIT workflow Version Installs Ratings

Structured Text (IEC 61131-3)

Most complete Structured Text language support. Features includes:

  • Syntax highlights in *.st, *.iecst files
  • Syntax highlights in *.md (Markdown) files in iecst code block
  • Syntax highlights in *.xml files in <Declaration> and <ST> code block
  • Snippets (enter st to see list of all snippets)
  • Outline view
  • Breadcrumbs code navigation
  • Go to Symbol in File
  • Formatting (*beta)
  • Commands

Syntax Highlights

Includes syntax highlight based on IEC 61131-3 draft, including namespaces, SFC elements (STEP, ACTION, TRANSITION), constant variables (2#000_1010, 16#1E, INT#23) and more.

Structured Text syntax highlights example

Also highlight in Markdown files

Example

Snippets

Fast growing snippets library. All cycles, conditions and declarations.

Formatter (work in progress)

Utilize VS Code Formatter API. Use general formatting command short keys. It capitalize all known keywords like TRUE, FALSE, IF, BOOL, ... It also add spaces.

Note

Roadmap

  • LSP (Language Server Protocol)
  • Suggestions
  • Lints

Release Notes

1.12.12

  • fix - Extra spaces was added after tab or in front of the comment.
  • enhance - highlight Siemens SCL
  • add - (END_?)CONST, (END_?)ORGANIZATION_BLOCK, (END_?)DATA_BLOCK, (END_?)LABEL, BEGIN, COUNTER, VOID, NIL and GOTO keywords
  • add - support for PQ and PI in constants like %PQW10.0.

1.11.14

  • fix - highlight of names with _TO_ in it
  • fix - comment in comment highlight
  • fix - capitalization of s,h,m in T#***

1.11.2

  • fix - highlight for typed variables with - (INT#-100)
  • fix - highlight for typed variables with numeric constants (INT#16#10AE)

1.11.1

  • enhance - performance improve by using bundler
  • enhance - Format add spaces refactored performance and logic improvement.

1.10

  • fix - Format <> and ** correctly.
  • fix - Document format in strings fixed. Now formatting is not done in strings and comments.
  • improve - Formatting add spaces new conditions.
  • improve - Formatting. Add spaces in comments and other places like before := or after.
  • add - file extension *.TcDUT, *.TcPOU.
  • add- syntax highlights for comment attributes like (* @NESTEDCOMMENTS := 'Yes' *) generated by CoDeSys 2.3 in .EXP files.
  • add - Pragma attribute and message highlights like {attribute 'call_after_global_init_slot' := 'slot'} or {info 'TODO: should get another name'} supported in CoDeSys.
  • fix - lot of minor syntax highlight mistakes.
  • improve - syntax highlight was fully revised and improved a lot.

1.9

  • enhance - Outline now understand CONSTANT variables. Thanks to @msftrncs.
  • fix - VAR word break keyword parse issue. Thanks to @msftrncs.
  • fix - Some issues outline tree parse. Thanks to @msftrncs.
  • add - Formatting capitalization for all VAR_* keywords and __NEW and __DELETE
  • fix - one closed comment formatting as function #29
  • enhance - better snippets titles
  • enhance - better symbol navigation in outline and breadcrumbs. Thanks to @msftrncs.
  • add - Formatting capitalize time keys like t#10s to T#10S, ANY_* types

1.8

  • enhance - better snippets titles
  • add - support for UNION syntax
  • add - Highlight ST inside some XML files key.
  • change - enter st to see list of all snippets.
  • add - Highlight ST in Markdown files when use iecst key.
  • add - new icon :))
  • add - new formatting architecture that utilize VS Code formatting API.

1.7

  • add - syntax highlights keyword __TRY, __CATCH, __FINALY, __NEW, __DELETE, S=, R=
  • add - snippets fo __TRY, __CATCH, __FINALY, __NEW, __DELETE

Thanks to @nikvoronin

  • fix - syntax highlights keyword inside another word
  • fix - build document structure with block indented
  • add - outline for Structures and Enumerations
  • enhance - outline for other elements
  • enhance - right click commands now appear only in ST files

1.6

  • add - outline document structure
  • add - Go to symbol in file support
  • add - breadcrumbs

1.5.0

  • improve - function highlights. Now we Highlight all function either user defined or built in.
  • improve - variable declaration or STRUCT declaration section has got a lot of improvements. We highlight custom types now, and whole section looks much cleaner because scopes were changed.
  • improve - If you call for a method of a function block through dot my_fb.method() method is highlighted. We also highlight function block properties or parameters.
  • add - TODO or TODO: in comments attract an attention
  • add - Highlights for action modifiers myAction(DS, T#3s); where DS will be highlighted.
  • add - Highlights for names of parameters of function block.

1.4.0

I've learned few things about syntax highlights. Big refactoring. I added some missing keywords, changed some coloring scopes and improved coloring in general.

1.3.0

  • add - TYPE creation snippets (enumerations ans structure) and enhance it's syntax highlights
  • enhance - Select type out of suggestion list when inset variable in declaration area from snippet
  • enhance - Utilise October 2018 feature for multiple prefixes in snippets and add multiple prefixes to some snippets.
  • fix - syntax highlights for function_block
  • fix - Auto close comments /*. (*.
  • enhance - revision of highlights much better now.

1.2.0

  • fix - Insert END_VAR after VAR is inserted.
  • fix - highlights for WORD datatype.
  • fix - other minor changes
  • fix - Notification "This file not a structured text language!" #6
  • add - Command pallet Ctrl+Shift+P command ST: Format
  • add - same command context menu
  • add - user parameter st.autoFormat

All 3 make the same. Capitalize constants like TRUE, FALSE, EXIT and others. Right now only few. This is only proof of concept. Later we will add more beautifications.

1.1.0

  • add - a lot of different snippets
  • enhance - syntax highlight like function names, program and function definitions, etc..

1.0.0

  • fix - extensions metadata tags
  • add - new functions to support logi.CAD 3 reference variables.
  • enhance - auto indentations inside IF, PROGRAM, VAR, ...
  • fix - close [ bracket
  • add - region folding
  • improve - keywords case
  • improve - readme file
  • improve - syntax highlights scopes
  • add- few new snippets.
  • fix - some keywords highlight issue
  • add- new file extensions to support logi.CAD 3 projects.