From 53670cd1637ceb5c68225d370055bb1589f4697b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Sat, 27 Sep 2025 13:08:06 +0200 Subject: [PATCH] Add support to autoformat a gherking file Fix https://github.com/cucumber/cucumber-eclipse/issues/544 Fix https://github.com/cucumber/cucumber-eclipse/issues/478 --- .../META-INF/MANIFEST.MF | 4 +- io.cucumber.eclipse.editor/plugin.xml | 58 +++++++++++++++++++ .../format/EditorInputPropertyTester.java | 32 ++++++++++ .../editor/format/GherkingFormatHandler.java | 45 ++++++++++++++ .../cucumber.eclipse.targetdefinition.target | 24 +++++++- 5 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 io.cucumber.eclipse.editor/src/io/cucumber/eclipse/editor/format/EditorInputPropertyTester.java create mode 100644 io.cucumber.eclipse.editor/src/io/cucumber/eclipse/editor/format/GherkingFormatHandler.java diff --git a/io.cucumber.eclipse.editor/META-INF/MANIFEST.MF b/io.cucumber.eclipse.editor/META-INF/MANIFEST.MF index f09c9fde..77a6d14a 100644 --- a/io.cucumber.eclipse.editor/META-INF/MANIFEST.MF +++ b/io.cucumber.eclipse.editor/META-INF/MANIFEST.MF @@ -34,7 +34,9 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.5.0", org.eclipse.ui.console, org.eclipse.ui.workbench.texteditor, io.cucumber.tag-expressions, - org.eclipse.unittest.ui;bundle-version="1.0.0" + org.eclipse.unittest.ui;bundle-version="1.0.0", + io.cucumber.gherkin-utils;bundle-version="9.0.0", + org.eclipse.core.expressions;bundle-version="3.9.500" Bundle-RequiredExecutionEnvironment: JavaSE-21 Automatic-Module-Name: io.cucumber.eclipse.editor Bundle-ActivationPolicy: lazy diff --git a/io.cucumber.eclipse.editor/plugin.xml b/io.cucumber.eclipse.editor/plugin.xml index 41f94a91..b5f2f7f9 100644 --- a/io.cucumber.eclipse.editor/plugin.xml +++ b/io.cucumber.eclipse.editor/plugin.xml @@ -8,6 +8,64 @@ editorId="org.eclipse.ui.genericeditor.GenericEditor"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gherkinDocument = document.getGherkinDocument(); + if (gherkinDocument.isEmpty()) { + return; + } + String prettyPrint = Pretty.prettyPrint(gherkinDocument.get(), Syntax.gherkin); + document.getDocument().set(prettyPrint); + } +} diff --git a/io.cucumber.eclipse.targetdefinition/cucumber.eclipse.targetdefinition.target b/io.cucumber.eclipse.targetdefinition/cucumber.eclipse.targetdefinition.target index b8c08d73..e4ba2b88 100644 --- a/io.cucumber.eclipse.targetdefinition/cucumber.eclipse.targetdefinition.target +++ b/io.cucumber.eclipse.targetdefinition/cucumber.eclipse.targetdefinition.target @@ -17,7 +17,7 @@ io.cucumber gherkin - 33.0.0 + 33.1.0 jar @@ -35,7 +35,7 @@ Export-Package: *;version="${version}";-noimport:=true io.cucumber cucumber-java - 7.26.0 + 7.29.0 jar @@ -53,7 +53,7 @@ Export-Package: *;version="${version}";-noimport:=true io.cucumber cucumber-core - 7.26.0 + 7.29.0 jar @@ -100,6 +100,24 @@ Export-Package: *;version="${version}";-noimport:=true + + + + io.cucumber + gherkin-utils + 9.0.0 + jar + + + + \ No newline at end of file