From 46510cdcf97f24aa8f513eda955f5c5463519e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Tue, 9 May 2023 13:03:48 +0200 Subject: [PATCH] add surround features --- README.md | 20 ++++++++++++++ doc/img/surround.gif | Bin 0 -> 52721 bytes snippets/stSurroundWith.json | 51 +++++++++++++++++++++++++++++++++++ src/testSurround.st | 17 ++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 doc/img/surround.gif create mode 100644 snippets/stSurroundWith.json create mode 100644 src/testSurround.st diff --git a/README.md b/README.md index de1ddaa..c445dab 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,17 @@ LessThan(expected := 0, actual := 0); GreaterThan(expected := 0, actual := 0); ``` +## Surround with + +![surround](doc/img/surround.gif) + +Available surround with: + +- FOR ... END_FOR; +- IF ... THEN ... ELSE +- WHILE ... END_WHILE +- REPEAT .. END_REPEAT + ## Snippets Namespace Support ### NamespaceSupport @@ -180,6 +191,15 @@ Output example: Thanks for your interest in contributing. Anybody is free to report bugs, unclear documentation, and other problems regarding this repository in the Issues section or, even better, is free to propose any changes to this repository using Merge Requests. +### Markdownlint-cli + +This workspace will be checked by the [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) (there is also documented ho to install the tool) tool in the CI workflow automatically. +To avoid, that the CI workflow fails because of the markdown linter, you can check all markdown files locally by running the markdownlint with: + +```sh +markdownlint **/*.md --fix +``` + ## License and Legal information Please read the [Legal information](LICENSE.md) diff --git a/doc/img/surround.gif b/doc/img/surround.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb49f4f3c564e57ab99cc20b1525be015238a6b2 GIT binary patch literal 52721 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 literal 0 HcmV?d00001 diff --git a/snippets/stSurroundWith.json b/snippets/stSurroundWith.json new file mode 100644 index 0000000..a6eed47 --- /dev/null +++ b/snippets/stSurroundWith.json @@ -0,0 +1,51 @@ +{ + "surround_if_else": { + "scope": "st", + "prefix": [ + "surround with if-else..." + ], + "body": [ + "IF (${1:condition}) THEN", + "\t${TM_SELECTED_TEXT}", + "END_IF;" + ], + "description": "Surround selected text with if-else" + }, + "surround_for": { + "scope": "st", + "prefix": [ + "surround with for-loop..." + ], + "body": [ + "FOR Index := ${1:StartValue} TO ${2:EndValue} DO", + "\t${TM_SELECTED_TEXT}", + "END_FOR;" + ], + "description": "Surround selected text with for-loop" + }, + "surround_while": { + "scope": "st", + "prefix": [ + "surround with while..." + ], + "body": [ + "WHILE (${1:condition})", + "\t${TM_SELECTED_TEXT}", + "END_WHILE;" + ], + "description": "Surround selected text with while" + }, + "surround_repeat": { + "scope": "st", + "prefix": [ + "surround with repeat..." + ], + "body": [ + "REPEAT", + "\t${TM_SELECTED_TEXT}", + "\tUNTIL (${1:condition})", + "END_REPEAT;" + ], + "description": "Surround selected text with repeat" + } +} diff --git a/src/testSurround.st b/src/testSurround.st new file mode 100644 index 0000000..a03f02f --- /dev/null +++ b/src/testSurround.st @@ -0,0 +1,17 @@ +NAMESPACE Simatic.Ax + CLASS testSurround + VAR PUBLIC + b : BOOL; + END_VAR + VAR PROTECTED + + END_VAR + + METHOD PUBLIC MyMethod + REPEAT + b := FALSE; + UNTIL (condition) + END_REPEAT; + END_METHOD + END_CLASS +END_NAMESPACE \ No newline at end of file