Skip to content

Conversation

@witspirit
Copy link

Hi Aman,

I recently stumbled on your IntelliJBehave plugin and found it very helpful. However, in my project setup I experienced some issues regarding sluggishness and in some cases steps failed to be found.

To overcome these issues I modified your plugin to search for steps in the module containing the story file and the module dependencies.

In addition we used some story syntax that was not handled properly by your current lexer and parser. I found another github user, arnauld, had already done quite some work in creating a new lexer/parser (not sure, but he seems the lead on the Eclipse JBehave plugin) and merged that in.

If you are still interested in persueing this plugin, I propose you consider pulling in the changes I already aggregated and perhaps you could release a new version in the JetBrains repository.

If, however, you are no longer interested in following up on this plugin, I would like to know whether it would be ok for me to publish a new version in the JetBrains repository with proper attribution.

Kind regards,

Bert Van Vlerken (https://github.com/witspirit)

Arnauld and others added 17 commits September 1, 2012 12:18
* Allow text between step and table
* Don't include table in step
…e/IntelliJBehave

And resolved conflicts in:
	.gitignore
	IntelliJBehave.iml
	META-INF/plugin.xml
	src/com/github/kumaraman21/intellijbehave/parser/StoryParser.java
	src/com/github/kumaraman21/intellijbehave/resolver/StepDefinitionIterator.java
	src/com/github/kumaraman21/intellijbehave/resolver/StepPsiReference.java

* Added a pom to download some dependencies
* Fiddled with the IML file... Probably not yet what it should be

Basics are working, using my 'story' project approach.
…e/IntelliJBehave

And resolved conflicts in:
	.gitignore
	IntelliJBehave.iml
	META-INF/plugin.xml
	src/com/github/kumaraman21/intellijbehave/parser/StoryParser.java
	src/com/github/kumaraman21/intellijbehave/resolver/StepDefinitionIterator.java
	src/com/github/kumaraman21/intellijbehave/resolver/StepPsiReference.java

* Added a pom to download some dependencies
* Fiddled with the IML file... Probably not yet what it should be

Basics are working, using my 'story' project approach.

(Some missing files from previous commit...)
… file (except for the special JFlex)

* Uses copy-dependencies to get the necessary jars and put them in the appropriate location
* Uses clean to also cleanup the jars it copies there

This way, I don't have to check in the binaries. Which is as it should be.
* Inverted responsibility for the content iteration
* Renamed ProjectUtils to ScanUtils to better reflect responsibility
* Scan Module and Module Dependencies for steps instead of entire Project
@atifmansoor
Copy link

Hi Bert,
First of all, I would like to thank you (+Arnauld+jarosite) for your work and contributions to this project.

Now, can you go ahead and publish this new version (under a new name) to the Plugin Repository? I believe if you publish under a new name, include the license and proper attribution, we should be "fine". Correct me if I'm wrong.

Atif

@witspirit
Copy link
Author

Hi Atif,

Thanks for getting back to me.

If you no longer seek to update the plugin, I'd be happy to prepare a
version to publish under a new name, with proper attribution and license.
Thanks for your advice on the matter.

Thanks again for getting this plugin started.

Cheers,

Bert

On Thu, Mar 14, 2013 at 7:47 PM, Atif Mansoor notifications@github.comwrote:

Hi Bert,
First of all, I would like to thank you (+Arnauld+jarosite) for your work
and contributions to this project.

Now, can you go ahead and publish this new version (under a new name) to
the Plugin Repository? I believe if you publish under a new name, include
the license and proper attribution, we should be "fine". Correct me if I'm
wrong.

Atif


Reply to this email directly or view it on GitHubhttps://github.com//pull/24#issuecomment-14921603
.

@atifmansoor
Copy link

Bert, you have confused me with the original author. I am not kumaraman21, lol

@witspirit
Copy link
Author

Oops :-) You are right, I confused you with the original author, sorry
about that. Still thanks for your contributions !

Nonetheless, I'll consider doing as you advised.

Kind regards,

Bert

On Thu, Mar 14, 2013 at 11:51 PM, Atif Mansoor notifications@github.comwrote:

Bert, you have confused me with the original author. I am not kumaraman21,
lol


Reply to this email directly or view it on GitHubhttps://github.com//pull/24#issuecomment-14934363
.

Victor Rosenberg and others added 9 commits June 12, 2013 16:31
java.lang.NullPointerException
	at com.github.kumaraman21.intellijbehave.highlighter.StoryLocalizedLexer.tokenType(StoryLocalizedLexer.java:427)
	at com.github.kumaraman21.intellijbehave.highlighter.StoryLocalizedLexer.locateToken(StoryLocalizedLexer.java:168)
	at com.github.kumaraman21.intellijbehave.highlighter.StoryLocalizedLexer.advanceIfRequired(StoryLocalizedLexer.java:114)
	at com.github.kumaraman21.intellijbehave.highlighter.StoryLocalizedLexer.getTokenType(StoryLocalizedLexer.java:80)
	at com.intellij.lang.impl.PsiBuilderImpl.a(PsiBuilderImpl.java:209)
	at com.intellij.lang.impl.PsiBuilderImpl.<init>(PsiBuilderImpl.java:177)
	at com.intellij.lang.impl.PsiBuilderImpl.<init>(PsiBuilderImpl.java:151)
	at com.intellij.lang.impl.PsiBuilderImpl.<init>(PsiBuilderImpl.java:185)
	at com.intellij.lang.impl.PsiBuilderFactoryImpl.createBuilder(PsiBuilderFactoryImpl.java:52)
	at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:62)
	at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
	at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
	at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
	at com.intellij.psi.impl.source.tree.CompositeElement.countChildren(CompositeElement.java:493)
	at com.intellij.psi.impl.source.tree.CompositeElement.getChildren(CompositeElement.java:438)
	at com.github.kumaraman21.intellijbehave.parser.StoryFileImpl.getStory(StoryFileImpl.java:72)
	at com.github.kumaraman21.intellijbehave.parser.StoryFileImpl.getScenarios(StoryFileImpl.java:62)
	at com.github.kumaraman21.intellijbehave.parser.StoryFileImpl.getSteps(StoryFileImpl.java:52)
	at com.github.kumaraman21.intellijbehave.codeInspector.UnusedStepsInspection$StepUsageFinder.processFile(UnusedStepsInspection.java:122)
	at com.intellij.openapi.vfs.VfsUtilCore$1.visitFileEx(VfsUtilCore.java:189)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:204)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:236)
	at com.intellij.openapi.vfs.VfsUtilCore.iterateChildrenRecursively(VfsUtilCore.java:184)
	at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.iterateContent(ProjectFileIndexImpl.java:75)
	at com.github.kumaraman21.intellijbehave.codeInspector.UnusedStepsInspection$1.visitElement(UnusedStepsInspection.java:96)
	at com.intellij.psi.JavaElementVisitor.visitAnnotation(JavaElementVisitor.java:344)
	at com.intellij.psi.impl.source.tree.java.PsiAnnotationImpl.accept(PsiAnnotationImpl.java:102)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:412)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:370)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:341)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.access$000(LocalInspectionsPass.java:78)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass$2.process(LocalInspectionsPass.java:309)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass$2.process(LocalInspectionsPass.java:306)
	at com.intellij.concurrency.JobLauncherImpl$2$1.run(JobLauncherImpl.java:115)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:226)
	at com.intellij.concurrency.JobLauncherImpl$2.process(JobLauncherImpl.java:113)
	at com.intellij.concurrency.JobLauncherImpl$1.run(JobLauncherImpl.java:54)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at com.intellij.concurrency.PrioritizedFutureTask.access$101(PrioritizedFutureTask.java:31)
	at com.intellij.concurrency.PrioritizedFutureTask$1.run(PrioritizedFutureTask.java:70)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1182)
	at com.intellij.concurrency.PrioritizedFutureTask.run(PrioritizedFutureTask.java:97)
	at com.intellij.concurrency.JobImpl.scheduleAndWaitForResults(JobImpl.java:136)
	at com.intellij.concurrency.JobLauncherImpl.a(JobLauncherImpl.java:68)
	at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:110)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:312)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:218)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:136)
	at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:58)
	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:62)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:357)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1182)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:348)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:226)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:345)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:321)
	at com.intellij.concurrency.JobLauncherImpl$3.call(JobLauncherImpl.java:145)
	at com.intellij.concurrency.JobLauncherImpl$3.call(JobLauncherImpl.java:142)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at com.intellij.concurrency.PrioritizedFutureTask.access$101(PrioritizedFutureTask.java:31)
	at com.intellij.concurrency.PrioritizedFutureTask$1.run(PrioritizedFutureTask.java:70)
	at com.intellij.concurrency.PrioritizedFutureTask.run(PrioritizedFutureTask.java:113)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
picimako and others added 30 commits December 28, 2024 12:38
Add exception handling when analyzing Kotlin classes if they are step definition classes
This appear to be due to the cache key not being provided and therefore defaulting to the name of the anonymous lambda
Step reference not being resolved for valid lines
# Conflicts:
#	src/main/java/com/github/kumaraman21/intellijbehave/service/JBehaveStepsIndex.java
Exclude JUnit Jupiter dependencies from the plugin archive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.