From a0231e07748fbb7b1bd1b3f904b3f2dbb64d8dfe Mon Sep 17 00:00:00 2001 From: Joost Diepenmaat Date: Wed, 9 Oct 2019 16:34:54 +0200 Subject: [PATCH] correctly indent repeat construct --- plantuml-mode.el | 4 +++ .../plantuml-indentation-activity-new-test.el | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/plantuml-mode.el b/plantuml-mode.el index 94d1644..9c83f85 100644 --- a/plantuml-mode.el +++ b/plantuml-mode.el @@ -587,6 +587,7 @@ or it is followed by line end.") (defvar plantuml-indent-regexp-legend-start "^\s*\\(?:legend\\|legend\s+\\(?:bottom\\|top\\)\\|legend\s+\\(?:center\\|left\\|right\\)\\|legend\s+\\(?:bottom\\|top\\)\s+\\(?:center\\|left\\|right\\)\\)\s*\\('.*\\)?$") (defvar plantuml-indent-regexp-oldif-start "^.*if\s+\".*\"\s+then\s*\\('.*\\)?$" "used in current activity diagram, sometimes already mentioned as deprecated") (defvar plantuml-indent-regexp-newif-start "^\s*\\(?:else\\)?if\s+(.*)\s+then\s*.*$") + (defvar plantuml-indent-regexp-repeat-start "^\s*repeat\s*$") (defvar plantuml-indent-regexp-macro-start "^\s*!definelong.*$") (defvar plantuml-indent-regexp-user-control-start "^.*'.*\s*PLANTUML_MODE_INDENT_INCREASE\s*.*$") (defvar plantuml-indent-regexp-start (list plantuml-indent-regexp-block-start @@ -597,6 +598,7 @@ or it is followed by line end.") plantuml-indent-regexp-legend-start plantuml-indent-regexp-note-start plantuml-indent-regexp-newif-start + plantuml-indent-regexp-repeat-start plantuml-indent-regexp-title-start plantuml-indent-regexp-header-start plantuml-indent-regexp-footer-start @@ -615,6 +617,7 @@ or it is followed by line end.") (defvar plantuml-indent-regexp-legend-end "^\s*endlegend\s*\\('.*\\)?$") (defvar plantuml-indent-regexp-oldif-end "^\s*\\(endif\\|else\\)\s*\\('.*\\)?$") (defvar plantuml-indent-regexp-newif-end "^\s*\\(endif\\|elseif\\|else\\)\s*.*$") + (defvar plantuml-indent-regexp-repeat-end "^\s*\\(repeat\s*while\\)\s*.*$") (defvar plantuml-indent-regexp-macro-end "^\s*!enddefinelong\s*\\('.*\\)?$") (defvar plantuml-indent-regexp-user-control-end "^.*'.*\s*PLANTUML_MODE_INDENT_DECREASE\s*.*$") (defvar plantuml-indent-regexp-end (list plantuml-indent-regexp-block-end @@ -625,6 +628,7 @@ or it is followed by line end.") plantuml-indent-regexp-legend-end plantuml-indent-regexp-note-end plantuml-indent-regexp-newif-end + plantuml-indent-regexp-repeat-end plantuml-indent-regexp-title-end plantuml-indent-regexp-header-end plantuml-indent-regexp-footer-end diff --git a/test/plantuml-indentation-activity-new-test.el b/test/plantuml-indentation-activity-new-test.el index b097df5..4d4a5fd 100644 --- a/test/plantuml-indentation-activity-new-test.el +++ b/test/plantuml-indentation-activity-new-test.el @@ -69,6 +69,36 @@ endif stop @enduml")) +(ert-deftest plantuml-test-indentation/activity-new/repeat-loop () + "Test correct indentation of plantuml activity-new repeat loop +These code examples are taken from www.plantuml.com" + (plantuml-test-indent-block +"@startuml + +start + +repeat +:read data; +:generate diagrams; +repeat while (more data?) is (yes) +->no; +stop + +@enduml" + +"@startuml + +start + +repeat + :read data; + :generate diagrams; +repeat while (more data?) is (yes) +->no; +stop + +@enduml")) + (provide 'plantuml-indentation-activity-new-test)