Enables Reference tracking of glue code when using cucumber-scala DSL.
- Navigate from feature step to step definition
- Find usages of step definitions in feature files
- Wizard that creates step definitions for a step in a feature file
git clone git@github.com:danielwegener/intellij-cucumber-scala.git
sbt updateIdea
will download the idea sdk to the SDK folder and all required plugins- Import the project as sbt project into IDEA.
Now you can build this plugin with sbt package
IntelliJ Plugin Development is too hard :/ Please provide a public (maybe non-oss, non-free) repo for Idea artifacts. Or maybe a sbt plugin.
To start an IDE with the plugin installed in the example project just run sbt "runIdea example"
(todo: does not work yet)
(set it to 'single instance only' so it kills the current version when restarting)
This is all reverse engineered (in reality playing a game of spot the difference) with the scala plugin run configurations.
It is quite important that scala library does not get added to the classpath etc. If there are problems run the scala plugin by
- Checkout https://github.com/JetBrains/intellij-scala
- Open in Intellij
- git checkout idea as that will demangle the run configuration so it can be ran easily
When running a configuration to analyse the output of the run window replace : with new lines so it is diffable.
com.intellij.idea.Main
-Xmx800m
-XX:ReservedCodeCacheSize=240m
-XX:+HeapDumpOnOutOfMemoryError
-ea
-Didea.is.internal=true
-Didea.debug.mode=true
-Dapple.laf.useScreenMenuBar=true
-Dplugin.path=target/scala-2.12/intellij-cucumber-scala_2.12-2018.1.0.jar
-Didea.platform.prefix=Idea
-Didea.system.path=idea/system
-Didea.config.path=idea/config
-Didea.plugins.path=idea/181.4445.78/externalPlugins
If system and config outside of extraction directory then it is easier to purge when a new version is out. You don't have to go through the whole running for the first time wizard.
runner-cucumber-scala-idea
Under run configuration create additional before launch external tool
- Name: sbt_package
- Program: sbt
- Arguments: package
This will mean that a fresh plugin jar is created each time the test community edition launches from the run configuration.
- Add your credentials to
ideaPublishSettings
inbuild.sbt
(make sure to not check them in!) 2 runsbt publishPlugin
This project is released under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0).