Giter Site home page Giter Site logo

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv / intellij-cucumber-scala Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vbmacher/intellij-cucumber-scala

0.0 0.0 0.0 65 KB

Enables Reference tracking of glue code when using cucumber-scala DSL.

Home Page: https://plugins.jetbrains.com/plugin/7460

Scala 98.71% Gherkin 1.29%

intellij-cucumber-scala's Introduction

intellij-cucumber-scala

Build Status

Enables Reference tracking of glue code when using cucumber-scala DSL.

Features

  • 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

Development

  1. git clone [email protected]:danielwegener/intellij-cucumber-scala.git
  2. sbt updateIdea will download the idea sdk to the SDK folder and all required plugins
  3. 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)

Using a run configuration

(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.

https://github.com/JetBrains/intellij-scala/blob/8030aef21f8f726796f7230d5f29669e35ebeec9/.idea/runConfigurations/IDEA.xml#L7

It is quite important that scala library does not get added to the classpath etc. If there are problems run the scala plugin by

  1. Checkout https://github.com/JetBrains/intellij-scala
  2. Open in Intellij
  3. 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.

Main class

com.intellij.idea.Main

VM Options (Note this is using build id 181.4445.78)

-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.

Use classpath of module

runner-cucumber-scala-idea

Optional but useful

Under run configuration create additional before launch external tool

  1. Name: sbt_package
  2. Program: sbt
  3. Arguments: package

This will mean that a fresh plugin jar is created each time the test community edition launches from the run configuration.

Publishing

  1. Add your credentials to ideaPublishSettings in build.sbt (make sure to not check them in!) 2 run sbt publishPlugin

License

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

intellij-cucumber-scala's People

Contributors

aptester avatar athieriot avatar danielwegener avatar pbyrne84 avatar rpankajakshan avatar withsmilo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.