intellij-cucumber-scala icon indicating copy to clipboard operation
intellij-cucumber-scala copied to clipboard

Enables navigation between cucumber feature steps and glue code using cucumber-scala DSL.

intellij-cucumber-scala

Build for intellij-cucumber-scala

A plugin to IntelliJ IDEA, enabling navigation between step definitions and gherkin steps when using cucumber-scala DSL.

Features

Navigation from feature step to step definition (and back)

  • Indexing of step definitions for better performance
  • Finds step definitions also in libraries with attached sources
  • Supports "constant expressions" in step definition names (e.g. "When("""I do 5 + 5, it's""" + (5+5)))
  • Supports using parameter types in step definition names (e.g. When("""I divide {int} by {int}"""))
  • Supports navigation of custom parameter types (using ParameterType(name, regex) definitions)
  • Supports alternative text in step definition names (e.g. When("""I/We divide (\d+) by (\d+)"""))
  • Supports optional text in step definition names (e.g. When("""I do some nop(s)"""))
  • Supports escaping (e.g. When("""I have 42 \{int} cucumbers in my belly \(amazing!)"""))

Support of automated creation of a step definition

  • Supports template filling wizard

Development

The plugin depends on:

To setup the development environment, follow these steps:

  1. git clone https://github.com/vbmacher/intellij-cucumber-scala.git
  2. Configure JDK 11
  3. Open the project in IDEA
  4. Wait until gradle-intellij-plugin downloads IntelliJ SDK and required plugins.

Now you can build this plugin with build task.

To start an IDE with the plugin installed in the example project, run runIde task. Import the whole project as gradle project in the sandbox-ide. Wait for indexing to finish. Open example/src/test/resources/cucumber/examples/scalacalculator/basic_arithmetic.feature.

Contributing

Anyone can contribute. The best is to pick up some issue tagged with help_wanted, or bringing new ideas by creating new issues.

Git branch development is used for developing upcoming version. Upon releasing the plugin, the branch will be merged into master branch, which is then used for the release. The release commit is tagged with version.

Publishing

A "publish token" must be set up in order to publish the plugin to JetBrains plugins portal. The token can be set up either by system variable or Gradle property named PUBLISH_TOKEN (e.g. put it in gradle.properties file, but do not commit it!).

Then, run publishPlugin task.

License

This project is released under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0).

Buy Me A Coffee