{"id":18723163,"url":"https://github.com/serhioromano/vscode-st","last_synced_at":"2025-04-04T19:10:23.267Z","repository":{"id":41176279,"uuid":"132082089","full_name":"Serhioromano/vscode-st","owner":"Serhioromano","description":"Extension for VS Code to support Structured Text language.","archived":false,"fork":false,"pushed_at":"2025-03-10T07:57:44.000Z","size":3961,"stargazers_count":149,"open_issues_count":7,"forks_count":30,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-28T18:12:23.139Z","etag":null,"topics":["codesys","iec61131-3","plc","structured-text","twincat3","vscode-extension","vscode-language","vscode-snippets"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=Serhioromano.vscode-st#overview","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Serhioromano.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"serhioromano","custom":"https://www.paypal.com/donate/?hosted_button_id=UTU4EMPLLLX54"}},"created_at":"2018-05-04T03:37:24.000Z","updated_at":"2025-02-23T09:42:10.000Z","dependencies_parsed_at":"2023-11-16T08:24:50.474Z","dependency_job_id":"8bdb4aa9-028e-48e8-9bba-772753222086","html_url":"https://github.com/Serhioromano/vscode-st","commit_stats":null,"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serhioromano%2Fvscode-st","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serhioromano%2Fvscode-st/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serhioromano%2Fvscode-st/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serhioromano%2Fvscode-st/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Serhioromano","download_url":"https://codeload.github.com/Serhioromano/vscode-st/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234921,"owners_count":20905854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codesys","iec61131-3","plc","structured-text","twincat3","vscode-extension","vscode-language","vscode-snippets"],"created_at":"2024-11-07T13:47:54.767Z","updated_at":"2025-04-04T19:10:23.242Z","avatar_url":"https://github.com/Serhioromano.png","language":"TypeScript","funding_links":["https://patreon.com/serhioromano","https://www.paypal.com/donate/?hosted_button_id=UTU4EMPLLLX54"],"categories":[],"sub_categories":[],"readme":"# Structured Text (IEC 61131-3)\n\nMost complete Structured Text language support. Features includes:\n\n- Syntax highlights in \\*.st, \\*.iecst files\n- Syntax highlights in \\*.md (Markdown) files in `iecst` code block\n- Syntax highlights in \\*.xml files in `\u003cDeclaration\u003e` and `\u003cST\u003e` code block\n- Snippets (enter `st ` to see list of all snippets)\n- Outline view\n- Breadcrumbs code navigation\n- Go to Symbol in File\n- Formatting (*beta)\n- Commands\n\n## Syntax Highlights\n\nIncludes 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.\n\n![Structured Text syntax highlights example](https://raw.githubusercontent.com/Serhioromano/vscode-st/master/images/demo.gif)\n\nAlso highlight in Markdown files\n\n![Example](https://raw.githubusercontent.com/Serhioromano/vscode-st/master/images/md-highlight.png)\n\n## Snippets\n\nFast growing snippets library. All cycles, conditions and declarations.\n\n## Formatter (work in progress)\n\nUtilize VS Code Formatter API. Use general formatting command short keys. It capitalize all known keywords like `TRUE`, `FALSE`, `IF`, `BOOL`, ... It also add spaces.\n\n## Note\n\n- The same Author contributed ST support for:\n  - [Microsoft Monaco Editor](https://github.com/microsoft/monaco-editor) (base editor for VS Code)\n  - [highlight.js](https://github.com/highlightjs/highlightjs-structured-text)\n  - [prism.js](https://github.com/PrismJS/prism)\n- This extension project is a part of my 320 pages \"Learn Structured Text IEC 61131-3\" book which I published in [Russian 2020](https://www.youtube.com/watch?v=c0bjUFzSHxs). (translation is on the way)\n\n## Roadmap\n\n- LSP (Language Server Protocol)\n- Suggestions\n- Lints\n\n## Release Notes\n\n### 1.12.29\n\n- add GX Works Devices syntax support\n- add GX Works instructions syntax highlights\n\n### 1.12.25\n\n- add spaces formatting\n- add `PROPERTY` with `SET` and `GET` and snippet\n- add `METHOD` snippet\n- add - `CLASS ... END_CLASS` keywords and snippet\n- fix - Extra spaces was added after tab or in front of the comment.\n- enhance - highlight Siemens SCL\n- add - `(END_?)CONST`, `(END_?)ORGANIZATION_BLOCK`, `(END_?)DATA_BLOCK`, `(END_?)LABEL`, `BEGIN`, `COUNTER`, `VOID`, `NIL` and `GOTO` keywords\n- add - support for `PQ` and `PI` in constants like `%PQW10.0`.\n\n### 1.11.14\n\n- fix - highlight of names with `_TO_` in it\n- fix - comment in comment highlight\n- fix - capitalization of s,h,m in `T#***`\n\n### 1.11.2\n\n- fix - highlight for typed variables with - (`INT#-100`)\n- fix - highlight for typed variables with numeric constants (`INT#16#10AE`)\n\n### 1.11.1\n\n- enhance - performance improve by using bundler\n- enhance - Format add spaces refactored performance and logic improvement.\n\n### 1.10\n\n- fix - Format `\u003c\u003e` and `**` correctly.\n- fix - Document format in strings fixed. Now formatting is not done in strings and comments.\n- improve - Formatting add spaces new conditions.\n- improve - Formatting. Add spaces in comments and other places like before `:=` or after.\n- add - file extension `*.TcDUT`, `*.TcPOU`.\n- add- syntax highlights for comment attributes like `(* @NESTEDCOMMENTS := 'Yes' *)` generated by CoDeSys 2.3 in `.EXP` files.\n- add - Pragma attribute and message highlights like `{attribute 'call_after_global_init_slot' := 'slot'}` or `{info 'TODO: should get another name'}` supported in CoDeSys.\n- fix - lot of minor syntax highlight mistakes.\n- improve - syntax highlight was fully revised and improved a lot.\n\n### 1.9\n\n- enhance - Outline now understand `CONSTANT` variables. Thanks to @msftrncs.\n- fix - `VAR` word break keyword parse issue. Thanks to @msftrncs.\n- fix -  Some issues outline tree parse. Thanks to @msftrncs.\n- add - Formatting capitalization for all `VAR_*` keywords and `__NEW` and `__DELETE`\n- fix -  one closed comment formatting as function #29\n- enhance - better snippets titles\n- enhance - better symbol navigation in outline and breadcrumbs. Thanks to @msftrncs.\n- add - Formatting capitalize time keys like `t#10s` to `T#10S`, `ANY_*` types\n\n### 1.8\n\n- enhance - better snippets titles\n- add - support for UNION syntax\n- add - Highlight ST inside some XML files key.\n- change - enter `st ` to see list of all snippets.\n- add - Highlight ST in Markdown files when use `iecst` key.\n- add - new icon :))\n- add - new formatting architecture that utilize VS Code formatting API.\n\n### 1.7\n\n- add - syntax highlights keyword `__TRY`, `__CATCH`, `__FINALY`, `__NEW`, `__DELETE`, `S=`, `R=`\n- add - snippets fo `__TRY`, `__CATCH`, `__FINALY`, `__NEW`, `__DELETE`\n\nThanks to @nikvoronin\n\n- fix - syntax highlights keyword inside another word\n- fix - build document structure with block indented\n- add - outline for Structures and Enumerations\n- enhance - outline for other elements\n- enhance - right click commands now appear only in ST files\n\n### 1.6\n\n- add - outline document structure\n- add - Go to symbol in file support\n- add - breadcrumbs\n\n### 1.5.0\n\n- improve - function highlights. Now we Highlight all function either user defined or built in.\n- 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.\n- 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.\n- add - TODO or TODO: in comments attract an attention\n- add - Highlights for action modifiers `myAction(DS, T#3s);` where DS will be highlighted.\n- add - Highlights for names of parameters of function block.\n-\n### 1.4.0\n\nI've learned few things about syntax highlights. Big refactoring. I added some missing keywords, changed some coloring scopes and improved coloring in general.\n\n### 1.3.0\n\n- add - TYPE creation snippets (enumerations ans structure) and enhance it's syntax highlights\n- enhance - Select type out of suggestion list when inset variable in declaration area from snippet\n- enhance - Utilise [October 2018](https://code.visualstudio.com/updates/v1_28#_project-level-snippets) feature for multiple prefixes in snippets and add multiple prefixes to some snippets.\n- fix - syntax highlights for function_block\n- fix - Auto close comments `/*`. `(*`.\n- enhance - revision of highlights much better now.\n\n### 1.2.0\n\n- fix - Insert `END_VAR` after `VAR` is inserted.\n- fix - highlights for `WORD` datatype.\n- fix - other minor changes\n- fix - Notification \"This file not a structured text language!\" #6\n- add - Command pallet `Ctrl+Shift+P` command `ST: Format`\n- add - same command context menu\n- add - user parameter `st.autoFormat`\n\nAll 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.\n\n### 1.1.0\n\n- add - a lot of different snippets\n- enhance - syntax highlight like function names, program and function definitions, etc..\n\n### 1.0.0\n\n- fix - extensions metadata tags\n- add - new functions to support logi.CAD 3 reference variables.\n- enhance - auto indentations inside IF, PROGRAM, VAR, ...\n- fix - close `[` bracket\n- add - region folding\n- improve - keywords case\n- improve - readme file\n- improve - syntax highlights scopes\n- add- few new snippets.\n- fix - some keywords highlight issue\n- add- new file extensions to support logi.CAD 3 projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserhioromano%2Fvscode-st","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserhioromano%2Fvscode-st","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserhioromano%2Fvscode-st/lists"}