Coder Social home page Coder Social logo

lte2000 / intellibot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mtrubs/intellibot

90.0 27.0 26.0 26.23 MB

IntelliJ/PyCharm plugin for Robot Automation Framework

Home Page: https://github.com/lte2000/intellibot

License: MIT License

HTML 0.49% Java 96.69% RobotFramework 2.82%

intellibot's Issues

Intellibot 0.14.191.8026 ArrayIndexOutOfBoundsException

Project has many python keywords. I am not able to find exact reason for that exception yet.

java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
	at com.millennialmedia.intellibot.psi.util.PythonParser.keywordNameFromDecorator(PythonParser.java:64)
	at com.millennialmedia.intellibot.psi.util.PythonParser.keywordName(PythonParser.java:36)
	at com.millennialmedia.intellibot.psi.ref.RobotPythonWrapper$2.process(RobotPythonWrapper.java:46)
	at com.millennialmedia.intellibot.psi.ref.RobotPythonWrapper$2.process(RobotPythonWrapper.java:42)
	at com.intellij.util.containers.ContainerUtil.process(ContainerUtil.java:722)
	at com.jetbrains.python.psi.impl.PyClassImpl.visitMethods(PyClassImpl.java:985)
	at com.millennialmedia.intellibot.psi.ref.RobotPythonWrapper.addDefinedKeywords(RobotPythonWrapper.java:41)
	at com.millennialmedia.intellibot.psi.ref.RobotPythonClass.getDefinedKeywords(RobotPythonClass.java:39)
	at com.millennialmedia.intellibot.psi.ref.ResolverUtils.resolveKeywordFromFile(ResolverUtils.java:67)
	at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolveKeyword(RobotArgumentReference.java:59)
	at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolve(RobotArgumentReference.java:41)
	at com.millennialmedia.intellibot.psi.element.HeadingImpl.addReferencedArguments(HeadingImpl.java:253)
	at com.millennialmedia.intellibot.psi.element.HeadingImpl.collectReferencedFiles(HeadingImpl.java:235)
	at com.millennialmedia.intellibot.psi.element.HeadingImpl.getFilesFromInvokedKeywordsAndVariables(HeadingImpl.java:217)
	at com.millennialmedia.intellibot.psi.element.RobotFileImpl.getFilesFromInvokedKeywordsAndVariables(RobotFileImpl.java:121)
	at com.millennialmedia.intellibot.ide.inspections.cleanup.RobotImportNotUsed.skip(RobotImportNotUsed.java:63)
	at com.millennialmedia.intellibot.ide.inspections.SimpleInspectionVisitor.visitElement(SimpleInspectionVisitor.java:23)
	at com.intellij.psi.impl.PsiElementBase.accept(PsiElementBase.java:273)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$10(InspectionRunner.java:317)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$11(InspectionRunner.java:325)
	at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:174)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:215)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$12(InspectionRunner.java:331)
	at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:159)
	at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:151)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$13(InspectionRunner.java:294)
	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$14(InspectionRunner.java:294)
	at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.lambda$call$0(JobLauncherImpl.java:297)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:282)
	at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:270)
	at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1428)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool.helpJoin(ForkJoinPool.java:1883)
	at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:440)
	at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:670)
	at com.intellij.concurrency.JobLauncherImpl.processQueue(JobLauncherImpl.java:357)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.processInOrder(InspectionRunner.java:293)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.visitElements(InspectionRunner.java:268)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$inspect$5(InspectionRunner.java:130)
	at com.intellij.codeInspection.InspectionEngine.withSession(InspectionEngine.java:226)
	at com.intellij.codeInsight.daemon.impl.InspectionRunner.inspect(InspectionRunner.java:109)
	at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:131)
	at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:97)
	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:400)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:393)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:392)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:368)
	at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:174)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:215)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:366)
	at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:184)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Plugin crashes at startup on Pycharm 2019.3

The plugin is crasing when Pycharm 2019.3 starts. Please see below logs:

com.intellij.diagnostic.PluginException: getComponentAdapterOfType is used to get com.intellij.psi.impl.PsiManagerImpl (requestorClass=com.millennialmedia.intellibot.psi.RobotPsiManager, requestorConstructor=public com.millennialmedia.intellibot.psi.RobotPsiManager(com.intellij.psi.impl.PsiManagerImpl)).

Probably constructor should be marked as NonInjectable. [Plugin: com.millennialmedia.intellibot]
	at com.intellij.serviceContainer.ConstructorParameterResolver.findTargetAdapter(ConstructorParameterResolver.kt:111)
	at com.intellij.serviceContainer.ConstructorParameterResolver.resolveInstance(ConstructorParameterResolver.kt:59)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:45)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.instantiateClassWithConstructorInjection(PlatformComponentManagerImpl.kt:505)
	at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:35)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.createComponents(PlatformComponentManagerImpl.kt:177)
	at com.intellij.openapi.project.impl.ProjectImpl.init(ProjectImpl.java:295)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.initProject(ProjectManagerImpl.java:315)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.convertAndLoadProject(ProjectManagerImpl.java:624)
	at com.intellij.platform.PlatformProjectOpenProcessor.prepareProject(PlatformProjectOpenProcessor.java:315)
	at com.intellij.platform.PlatformProjectOpenProcessor.lambda$openExistingProject$0(PlatformProjectOpenProcessor.java:241)
	at com.intellij.platform.ProjectUiFrameAllocator$run$1$1.run(ProjectFrameAllocator.kt:77)
	at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:247)
	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:888)
	at com.intellij.openapi.progress.impl.CoreProgressManager$5.run(CoreProgressManager.java:441)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$null$4(ApplicationImpl.java:441)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:221)
	at com.intellij.util.ConcurrencyUtil.lambda$underThreadNameRunnable$3(ConcurrencyUtil.java:209)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:238)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

exception for Intellibot selenium patch plugin : Python Python 3.8.3rc1::Pycharm 20201.1

com.intellij.diagnostic.PluginException: getComponentAdapterOfType is used to get com.intellij.psi.impl.PsiManagerImpl (requestorClass=com.millennialmedia.intellibot.psi.RobotPsiManager, requestorConstructor=public com.millennialmedia.intellibot.psi.RobotPsiManager(com.intellij.psi.impl.PsiManagerImpl)).

Probably constructor should be marked as NonInjectable. [Plugin: com.millennialmedia.intellibot@SeleniumLibrary Patched]
at com.intellij.serviceContainer.ConstructorParameterResolver.findTargetAdapter(ConstructorParameterResolver.kt:111)
at com.intellij.serviceContainer.ConstructorParameterResolver.resolveInstance(ConstructorParameterResolver.kt:59)
at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:61)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:660)
at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:35)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:115)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:69)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:62)
at com.intellij.serviceContainer.ComponentManagerImpl.createComponents(ComponentManagerImpl.kt:261)
at com.intellij.openapi.project.impl.ProjectImpl.init(ProjectImpl.java:269)
at com.intellij.openapi.project.impl.ProjectManagerImpl.initProject(ProjectManagerImpl.java:321)
at com.intellij.platform.PlatformProjectOpenProcessorKt.convertAndLoadProject(PlatformProjectOpenProcessor.kt:404)
at com.intellij.platform.PlatformProjectOpenProcessorKt.prepareProject(PlatformProjectOpenProcessor.kt:299)
at com.intellij.platform.PlatformProjectOpenProcessorKt.access$prepareProject(PlatformProjectOpenProcessor.kt:1)
at com.intellij.platform.PlatformProjectOpenProcessor$Companion$openExistingProject$$inlined$runInAutoSaveDisabledMode$lambda$1.invoke(PlatformProjectOpenProcessor.kt:186)
at com.intellij.platform.PlatformProjectOpenProcessor$Companion$openExistingProject$$inlined$runInAutoSaveDisabledMode$lambda$1.invoke(PlatformProjectOpenProcessor.kt:57)
at com.intellij.platform.ProjectUiFrameAllocator$run$1$progressTask$1.run(ProjectFrameAllocator.kt:85)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:932)
at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:482)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:77)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$null$3(ProgressRunner.java:233)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:166)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:627)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:572)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:153)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:233)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

Plugin imports wrong file when multiple resource or library files have the same name in different directories

Thanks for working on this plugin, it addresses most of the issues we had in the base plugin.

We have found, however, that when importing a local library or resource file, if there are multiple files named the same in the project (in different folders), the plugin always imports the first one instead of the one specified by the relative path (which robot will import when actually running the tests).

Here is a simple project that demonstrates this behavior. In module2/test.robot in the editor, it can't find the keywords used in the test case, because it is importing module1/keywords.robot and module1/Util.py. However, when the tests are run, robot correctly imports module2/keywords.robot and module2/Util.py.

Any chance this could be addressed? I could look into it myself if you don't have the capacity, but I haven't done any JetBrains plugin development before, so I would need to be pointed to where in the project to look.

Just say thank you

Hi, @lte2000,

Just to say thank you for your amazing work keeping this plugin updated. If you have an way to donation, please, let me know.

PsiInvalidElementAccessException

Greetings!
Unfortunately, this error started to occur pretty often.
What should I do?


Here is stacktrace.txt:

stacktrace.txt
com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type Py:CLASS_DECLARATION (class com.jetbrains.python.psi.impl.stubs.PyClassElementType)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:80)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:239)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.isPhysical(StubBasedPsiElementBase.java:281)
	at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:159)
	at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:39)
	at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:227)
	at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:42)
	at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:227)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:228)
	at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:28)
	at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:72)
	at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:155)
	at com.jetbrains.python.psi.PyUtil.getNullableParameterizedCachedValue(PyUtil.java:667)
	at com.jetbrains.python.psi.PyUtil.getParameterizedCachedValue(PyUtil.java:654)
	at com.jetbrains.python.psi.impl.PyClassImpl.getAncestorTypesWithMetaClassInstances(PyClassImpl.java:1442)
	at com.jetbrains.python.psi.impl.PyClassImpl.getAncestorTypes(PyClassImpl.java:1437)
	at com.jetbrains.python.psi.impl.PyClassImpl.getAncestorClasses(PyClassImpl.java:209)
	at com.jetbrains.python.psi.impl.PyClassImpl.visitMethods(PyClassImpl.java:987)
	at com.millennialmedia.intellibot.psi.ref.RobotPythonWrapper.addDefinedKeywords(RobotPythonWrapper.java:41)
	at com.millennialmedia.intellibot.psi.ref.RobotPythonClass.getDefinedKeywords(RobotPythonClass.java:39)
	at com.millennialmedia.intellibot.psi.ref.ResolverUtils.resolveKeywordFromFile(ResolverUtils.java:47)
	at com.millennialmedia.intellibot.psi.ref.RobotKeywordReference.resolve(RobotKeywordReference.java:31)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)
	at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:204)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:248)
	at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:227)
	at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:292)
	at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
	at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:173)
	at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:134)
	at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:41)
	at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:23)
	at com.intellij.lang.documentation.symbol.impl.ImplKt.symbolDocumentationTargets(impl.kt:13)
	at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:36)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:37)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:65)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.access$injectedThenHost(DocumentationTargetHoverInfo.kt:1)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:35)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:65)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:12)
	at com.intellij.openapi.application.rw.ReadAction$tryReadAction$3.run(ReadAction.kt:74)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
	at com.intellij.openapi.application.rw.ReadAction.tryReadAction(ReadAction.kt:71)
	at com.intellij.openapi.application.rw.ReadAction.access$tryReadAction(ReadAction.kt:14)
	at com.intellij.openapi.application.rw.ReadAction$tryReadAction$2$2.run(ReadAction.kt:62)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.application.rw.ReadAction$tryReadAction$2.invokeSuspend(ReadAction.kt:60)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:63)
	at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:50)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.calcTargetDocumentationInfo(DocumentationTargetHoverInfo.kt:33)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.documentationHoverInfo(EditorMouseHoverPopupManager.java:523)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.calcInfo(EditorMouseHoverPopupManager.java:513)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$7(EditorMouseHoverPopupManager.java:197)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$8(EditorMouseHoverPopupManager.java:193)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:240)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:385)
	at com.intellij.util.Alarm$Request.run(Alarm.java:374)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:220)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:246)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:32)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:225)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:214)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)

And invalidation.trace:

invalidation.trace
java.lang.Throwable
	at com.intellij.psi.impl.DebugUtil.beginPsiModification(DebugUtil.java:446)
	at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:479)
	at com.intellij.pom.core.impl.PomModelImpl.lambda$runTransaction$2(PomModelImpl.java:104)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:222)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:232)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:221)
	at com.intellij.pom.core.impl.PomModelImpl.runTransaction(PomModelImpl.java:93)
	at com.intellij.psi.impl.DiffLog.lambda$doActualPsiChange$0(DiffLog.java:244)
	at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.lambda$performActionWithFormatterDisabled$4(CodeStyleManagerImpl.java:442)
	at com.intellij.psi.impl.source.PostprocessReformattingAspect.disablePostprocessFormattingInside(PostprocessReformattingAspect.java:128)
	at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.performActionWithFormatterDisabled(CodeStyleManagerImpl.java:470)
	at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.performActionWithFormatterDisabled(CodeStyleManagerImpl.java:441)
	at com.intellij.psi.impl.DiffLog.doActualPsiChange(DiffLog.java:232)
	at com.intellij.psi.impl.DocumentCommitThread.lambda$doCommit$5(DocumentCommitThread.java:306)
	at com.intellij.psi.impl.PsiDocumentManagerBase.commitToExistingPsi(PsiDocumentManagerBase.java:420)
	at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$finishCommitInWriteAction$4(PsiDocumentManagerBase.java:394)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:237)
	at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$finishCommitInWriteAction$5(PsiDocumentManagerBase.java:389)
	at com.intellij.psi.impl.PsiDocumentManagerBase.executeInsideCommit(PsiDocumentManagerBase.java:505)
	at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommitInWriteAction(PsiDocumentManagerBase.java:387)
	at com.intellij.psi.impl.PsiDocumentManagerImpl.finishCommitInWriteAction(PsiDocumentManagerImpl.java:124)
	at com.intellij.psi.impl.PsiDocumentManagerBase$2.run(PsiDocumentManagerBase.java:354)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:947)
	at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommit(PsiDocumentManagerBase.java:351)
	at com.intellij.psi.impl.DocumentCommitThread.lambda$commitUnderProgress$2(DocumentCommitThread.java:146)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$6(NonBlockingReadActionImpl.java:577)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Environment

PyCharm 2021.3 (Community Edition)
Build #PC-213.5744.248, built on November 30, 2021
Runtime version: 11.0.13+7-b1751.19 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Linux 5.11.0-41-generic
GC: G1 Young Generation, G1 Old Generation
Memory: 750M
Cores: 2
Non-Bundled Plugins:
ru.meanmail.plugin.requirements (2021.4.1-213-EAP-SNAPSHOT)
com.millennialmedia.intellibot@lte2000 (0.11.191.8026)
Docker (213.5744.202)

Current Desktop: ubuntu:GNOME

Does not find variables and resources on PYTHONPATH / folders marked as "Sources"

When running, robotframework will find variables and resources files whose path is given relative to a component in PYTHONPATH.

This used to be supported by intellibot being able to find files in paths relative to any folder marked as "Sources" in the project structure, but does not work anymore with this version of the plugin (as of 0.10.143.397). Currently, it is necessary to provide a path relative to the referring file to find a variable or a resource file.

It should also work again for paths relative to any folder marked as "Sources", please.

very high CPU usage ~ 55-70%

In one of the projects with many files, I am getting stable high CPU usage 55-70% with the plugin installed.
Disabling plugin, uninstall plugin and high CPU load is gone.
I checked previous issue and tried to disable all robot inspections. It did not help.
How can I troubleshoot what is wrong? I would like to get this high CPU usage down. Thanks for all the good work.

Library Keywords and other variables not recognized if nested in other files

I have 2 resource files for robot framework, called resource1.robot and resource2.robot.
Inside resource1.robot I have resource2 declared as resource.
Inside resource2 I declared SeleniumLibrary inside the *** Settings *** section.
By default, if I try to call a SeleniumLibrary keyword inside the resource1 file, intellibot should be able to recognize it.

The problem: keywords are not recognized.

Solution: Declare SeleniumLibrary inside the *** Settings *** section of resource1 file also.

This is a basic example but it also applies when you have a test that uses a certain resource file and that file is linked with another one that has the library declared.

Same thing for variables.

To be noted that the old intellibot plugin has no problem with this.

To better understand the issue, here is the example

resource1.robot file:

*** Settings ***
Resource        resource2.robot

*** Keywords ***
Open To Main Page
    Open Browser        example.com

resource2.robot file:

*** Settings ***
Library         SeleniumLibrary

So, in this example, the Open Browser keyword called inside resource1 file is not recognized.

Feel free to ask more details if this is not clear.

I confirm that this issue is also present on the latest version, the dev-0.10.143.384.

Thanks for your help.

[v0.14.191.8026] Exception: Argument for @NotNull parameter 'baseDir' while comparing two branches in PyCharm CE

Version 0.14.191.8026
PyCharm 2022.1.4.CE
Build #PC-221.6008.17, built on July 20, 2022
Runtime version: 11.0.15+10-b2043.56 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

java.lang.IllegalArgumentException: Argument for @NotNull parameter 'baseDir' of com/millennialmedia/intellibot/psi/ref/RobotFileManager.findFileInRelativePath must not be null at com.millennialmedia.intellibot.psi.ref.RobotFileManager.$$$reportNull$$$0(RobotFileManager.java) at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findFileInRelativePath(RobotFileManager.java) at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findFile(RobotFileManager.java:198) at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findGlobalFile(RobotFileManager.java:173) at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findRobot(RobotFileManager.java:61) at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolveResource(RobotArgumentReference.java:69) at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolve(RobotArgumentReference.java:35) at com.millennialmedia.intellibot.psi.element.HeadingImpl.resolveImport(HeadingImpl.java:531) at com.millennialmedia.intellibot.psi.element.HeadingImpl.collectImportFiles(HeadingImpl.java:357) at com.millennialmedia.intellibot.psi.element.HeadingImpl.getImportedFiles(HeadingImpl.java:339) at com.millennialmedia.intellibot.psi.element.RobotFileImpl.getImportedFiles(RobotFileImpl.java:141) at com.millennialmedia.intellibot.psi.ref.ResolverUtils.resolveKeywordFromFile(ResolverUtils.java:55) at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolveKeyword(RobotArgumentReference.java:59) at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolve(RobotArgumentReference.java:41) at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.resolves(PsiMultiReference.java:51) at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.lambda$static$0(PsiMultiReference.java:35) at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) at java.base/java.util.TimSort.sort(TimSort.java:220) at java.base/java.util.Arrays.sort(Arrays.java:1441) at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.chooseReference(PsiMultiReference.java:70) at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.resolve(PsiMultiReference.java:134) at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177) at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165) at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:210) at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:254) at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:233) at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:298) at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147) at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:173) at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:134) at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:41) at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:23) at com.intellij.lang.documentation.symbol.impl.ImplKt.symbolDocumentationTargets(impl.kt:13) at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:38) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:76) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:37) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt) at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:96) at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:13) at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:81) at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:13) at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt) at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60) at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14) at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:111) at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$2$1.run(cancellableReadAction.kt:34) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1152) at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$2.run(cancellableReadAction.kt:32) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158) at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:30) at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:80) at com.intellij.openapi.application.rw.InternalReadAction.access$tryReadCancellable(InternalReadAction.kt:13) at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:66) at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:13) at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt) at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60) at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14) at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:138) at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:61) at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:53) at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:13) at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:33) at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invoke(InternalReadAction.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264) at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:32) at com.intellij.openapi.application.rw.PlatformReadActionSupport.executeReadAction(PlatformReadActionSupport.kt:24) at com.intellij.openapi.application.CoroutinesKt.constrainedReadAction(coroutines.kt:50) at com.intellij.openapi.application.CoroutinesKt.readAction(coroutines.kt:20) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1.invokeSuspend(DocumentationTargetHoverInfo.kt:36) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1.invoke(DocumentationTargetHoverInfo.kt) at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2$1.invokeSuspend(coroutines.kt:110) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2.invoke(coroutines.kt:108) at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2.invoke(coroutines.kt) at com.intellij.openapi.progress.CancellationKt$ensureCurrentJob$$inlined$use$lambda$1.invoke(cancellation.kt:69) at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt) at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60) at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14) at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:111) at com.intellij.openapi.progress.CancellationKt.ensureCurrentJob(cancellation.kt:68) at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:103) at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:71) at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.calcTargetDocumentationInfo(DocumentationTargetHoverInfo.kt:35) at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.documentationHoverInfo(EditorMouseHoverPopupManager.java:528) at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.calcInfo(EditorMouseHoverPopupManager.java:518) at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$7(EditorMouseHoverPopupManager.java:199) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$8(EditorMouseHoverPopupManager.java:195) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:241) at com.intellij.util.Alarm$Request.runSafely(Alarm.java:388) at com.intellij.util.Alarm$Request.run(Alarm.java:377) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:223) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31) at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665) at java.base/java.lang.Thread.run(Thread.java:829)

IntelliBot #Patched causes Inspections freeze on some robot files

Hello,

I have been experiencing this issue recently. On my RF project, some robot files are stuck at Inspections forever. While it's "analyzing" (in the screenshot) it takes up a lot of CPU and laptop battery. I suspect the IntelliBot plugin is the problem because after I disable it, the issue does not reproduce. Could you have a look?

image2

Keep getting intellibot -seleniumlibrary plugin error

Here is the version of Pycharm I am using

PyCharm 2021.3.1 (Community Edition)
Build #PC-213.6461.77, built on December 28, 2021
Runtime version: 11.0.13+7-b1751.21 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 12
Non-Bundled Plugins:
String Manipulation (8.24.203.5981.1)
izhangzhihao.rainbow.brackets (6.21)
com.millennialmedia.intellibot@SeleniumLibrary Patched (0.10.143.381)

Here is the error keeps coming

Cannot create configurable

com.intellij.diagnostic.PluginException: Cannot create class com.millennialmedia.intellibot.ide.config.RobotConfiguration (classloader=PluginClassLoader(plugin=PluginDescriptor(name=IntelliBot @SeleniumLibrary Patched, id=com.millennialmedia.intellibot@SeleniumLibrary Patched, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\PyCharmCE2021.3\plugins\intellibot.jar, version=0.10.143.381, package=null, isBundled=false), packagePrefix=null, instanceId=39, state=active))
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:869)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:886)
at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:440)
at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:346)
at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:43)
at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:119)
at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:92)
at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:218)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:272)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:134)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.lambda$getConfigurableGroup$1(ConfigurableExtensionPointUtil.java:123)
at com.intellij.openapi.util.ClearableLazyValue$2.compute(ClearableLazyValue.java:26)
at com.intellij.openapi.util.ClearableLazyValue.getValue(ClearableLazyValue.java:39)
at com.intellij.openapi.util.AtomicClearableLazyValue.getValue(AtomicClearableLazyValue.java:9)
at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.(EpBasedConfigurableGroup.kt:111)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:115)
at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:53)
at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:50)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:37)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:244)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:265)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:244)
at com.intellij.ui.popup.ActionPopupStep.performAction(ActionPopupStep.java:253)
at com.intellij.ui.popup.ActionPopupStep.performAction(ActionPopupStep.java:243)
at com.intellij.ui.popup.ActionPopupStep.lambda$onChosen$2(ActionPopupStep.java:229)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.ui.popup.AbstractPopup.lambda$dispose$18(AbstractPopup.java:1508)
at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:101)
at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:186)
at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:140)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:175)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:36)
at com.intellij.ui.popup.AbstractPopup.dispose(AbstractPopup.java:1505)
at com.intellij.ui.popup.WizardPopup.dispose(WizardPopup.java:164)
at com.intellij.ui.popup.list.ListPopupImpl.dispose(ListPopupImpl.java:326)
at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.dispose(PopupFactoryImpl.java:271)
at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:139)
at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:169)
at com.intellij.openapi.util.Disposer.dispose(Disposer.java:217)
at com.intellij.openapi.util.Disposer.dispose(Disposer.java:205)
at com.intellij.ui.popup.WizardPopup.disposeAllParents(WizardPopup.java:268)
at com.intellij.ui.popup.list.ListPopupImpl.handleNextStep(ListPopupImpl.java:433)
at com.intellij.ui.popup.list.ListPopupImpl._handleSelect(ListPopupImpl.java:405)
at com.intellij.ui.popup.list.ListPopupImpl.handleSelect(ListPopupImpl.java:361)
at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.handleSelect(PopupFactoryImpl.java:288)
at com.intellij.ui.popup.list.ListPopupImpl$MyMouseListener.mouseReleased(ListPopupImpl.java:618)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at com.intellij.ui.popup.list.ListPopupImpl$MyList.processMouseEvent(ListPopupImpl.java:695)
at java.desktop/java.awt.Component.processEvent(Component.java:6419)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:850)
... 85 more

image

Autocomplete is not working for selenium library.

Any help will be appreciated.

Variable ${EXECDIR} is not recognized

Given that I use robotframework "environmental variable" ${EXECDIR} into the values for Variable and Resource into Settings session

When I reference files that exists

Then referenced variables or keywords found (PyCharm IDE no "red" marks)

BUG "red" marks into PyCharm IDE as the variables or keywords were not found but they are there - in referenced variable and resource files (see attached image)

error_robot_plugin

On Macbook: keyword cannot jump when it has return variable

*** Test Cases ***
TC01
    ${messgae}  Test On MacBook     intellibot
    Test On MacBook     intellibot

*** Keywords ***
Test On MacBook
    [Arguments]   ${name}
    ${message}      set variable    hello ${name}
    [Return]    ${message}

Note:
On Macbook, this keyword cannot jump to keywords section
${messgae} Test On MacBook intellibot
image

On Macbook, this keyword can jump to keywords section
Test On MacBook intellibot
image

It works fine on Windows.

File Navigation and intellisense enhancement for ${EXEC_DIR}

Hi @lte2000,

Came across this issue a long time ago but as the plugin was no longer being developed I let it slide.

Currently when you do a Log To Console ${EXEC_DIR} the directory is correct and when I use this in a file to reference a resource or different file in my repo it works at run time but I cannot use Cmd+Click to follow through to the exact file.

I can use ../../Settings.resource but in time as my repo gets bigger this will become a pain to maintain and I could end up with ../../../../../../../settings.resource etc.

As an example when I have ${EXECDIR} at the top of my file all of the intellisense is broken. But it still works at run time.

Image 21-10-2020 at 19 35

I hope I have explained this well enough but if you need any more details or screenshots please let me know.

Thanks,

Gavin

Support for the new IF in Robot Framework 4.x

I'm currently using the 4.0b1 of robot framework and the good news is that intellibot is working quite nicely with the newer robot framework version, so not much will need to be changed to make it compatible I think.

One thing that needs changing however is support for the new IF (ELSE ELSEIF).

As a workaround I'm currently defining the new syntax as keywords (in a common resource file I use for all my tests):

# Preliminary support RF 4.x

IF
    No Operation

ELSE
    No Operation

ELSE IF
    No Operation

The framework is smart enough to ignore it, and the plugin is smart enough to no longer see IF, ELSE and ELSE IF as missing keywords! (END was already covered by the new FOR loop)

This is very "hacky" though, and I would love to see a more robust fix when the new RF version will be launched.

Variables are not recognized inside FOR syntax

I have a code with a simple FOR syntax, like the one below:

`FOR ${INDEX} IN RANGE 1 4

   Create User With Name            ${USER-PREFIX}28-user${INDEX}

END`

The ${INDEX} variable on the second line is underlined as not recognized inside Pycharm.

Support for robot builtin variables

Taken from user guide

${CURDIR} An absolute path to the directory where the test data file is located. This variable is case-sensitive.
${TEMPDIR} An absolute path to the system temporary directory. In UNIX-like systems this is typically /tmp, and in Windows c:\Documents and Settings<user>\Local Settings\Temp.
${EXECDIR} An absolute path to the directory where test execution was started from.
${/} The system directory path separator. / in UNIX-like systems and \ in Windows.
${:} The system path element separator. : in UNIX-like systems and ; in Windows.
${\n} The system line separator. \n in UNIX-like systems and \r\n in Windows.

I can send a pull request if it works with you. My understanding is that it should be a change in RobotFileManager.java

Another tangential suggestion - do you ever want to move this plugin to gradle, it will be far easier for others to setup. If you are ok with that I can open another issue.

Keywords with embedded arguments don't work

Why have embedded arguments stopped working? It worked in dev_0.10.143.395, but has stopped working after that.

Simple example:

image

Embedded arguments are working for keywords that are defined in python libraries, but not for keywords that are defined in test suites or in resources.

Error during installation process in PyCharm

Hi,
when I tried to install the plugin from a disk I have received a message
"Fail to load plugin descriptor from file intellibot.jar".

error_pycharm

PyCharm - Community version 2020.3.3.

Regards,
Andrew

intellibot v0.14.191.8026 Pycharm exception

intellibot v0.14.191.8026 Pycharm exception

com.intellij.psi.PsiInvalidElementAccessException: Element: class com.millennialmedia.intellibot.psi.element.HeadingImpl #Robot because: parent is null
invalidated at: see attachment
at com.intellij.extapi.psi.ASTDelegatePsiElement.getManager(ASTDelegatePsiElement.java:76)
at com.intellij.extapi.psi.ASTDelegatePsiElement.getManager(ASTDelegatePsiElement.java:53)
at com.intellij.psi.impl.PsiElementBase.getProject(PsiElementBase.java:213)
at com.millennialmedia.intellibot.psi.util.PerformanceCollector.complete(PerformanceCollector.java:27)
at com.millennialmedia.intellibot.psi.element.HeadingImpl.getDefinedVariables(HeadingImpl.java:135)
at com.millennialmedia.intellibot.psi.element.RobotFileImpl.getOwnDefinedVariables(RobotFileImpl.java:95)
at com.millennialmedia.intellibot.psi.element.RobotFileImpl.getDefinedVariables(RobotFileImpl.java:84)
at com.millennialmedia.intellibot.psi.ref.ResolverUtils.resolveVariableFromFile(ResolverUtils.java:90)
at com.millennialmedia.intellibot.psi.ref.RobotVariableReference.resolve(RobotVariableReference.java:31)
at com.millennialmedia.intellibot.ide.inspections.compilation.RobotVariableNotFound.skip(RobotVariableNotFound.java:33)
at com.millennialmedia.intellibot.ide.inspections.SimpleInspectionVisitor.visitElement(SimpleInspectionVisitor.java:23)
at com.intellij.psi.impl.PsiElementBase.accept(PsiElementBase.java:273)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$10(InspectionRunner.java:317)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$11(InspectionRunner.java:325)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:174)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:215)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$12(InspectionRunner.java:331)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:159)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:151)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$13(InspectionRunner.java:294)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$14(InspectionRunner.java:294)
at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.lambda$call$0(JobLauncherImpl.java:297)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:282)
at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:270)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1428)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

No images show in generated log file

No image was captured in the generated log file when the robot framework scripts were failed in the middle steps.
Do I need to do any configuration in Pycharm ?
Thanks so much!

[IntelliBot Robot Framework ALM Converter] Search keywords with "-", "?" prefixes

Hello @lte2000 !
I like your version of plugin and want to use it with Robotframework ALM converter. The thing is: this converter requires some tricky syntax, so all of keywords start with "-" or "?" symbol.
So instead of
Open main page
Check page title
it will look like
- Open main page
? Check page title
I believe it's enough to find "Search for reference" code and add some conditions to ignore this prefix or to add this symbols to 'Gherkin-like' prefixes list.
I tried to fork and build your plugin by myself but faced an issue with com.jetbrains.python.psi lib for some reason.
I wanted to ask your help with that issue or just build that fix for me in separate branch (or send jar via email) if you know how to implement it quikly.
Waiting for your reply!

intellibot does not resolve environmental variables like %{ROBOT_ROOT}

when using environmental variables in robot scripts intellibot fail to resolve them.

%{ROBOT_ROOT} is being highlighted as not resolved

As a result the imported keywords are not available if used in Library %{ROBOT_ROOT}/some.py

This cause big inconvenience in writing the code using a plugin.

Why not to add a library dir to source roots -> I tried that. Then Classes and keywords are resolved in IntelliJ, but does not work for some reasons during tests execution.

NullPointerException occurs multiple times

version: 0.12.191.8026. Stacktrace:

java.lang.NullPointerException
at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findFile(RobotFileManager.java:197)
at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findGlobalFile(RobotFileManager.java:173)
at com.millennialmedia.intellibot.psi.ref.RobotFileManager.findRobot(RobotFileManager.java:61)
at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolveResource(RobotArgumentReference.java:69)
at com.millennialmedia.intellibot.psi.ref.RobotArgumentReference.resolve(RobotArgumentReference.java:35)
at com.millennialmedia.intellibot.psi.element.HeadingImpl.resolveImport(HeadingImpl.java:531)
at com.millennialmedia.intellibot.psi.element.HeadingImpl.collectImportFiles(HeadingImpl.java:357)
at com.millennialmedia.intellibot.psi.element.HeadingImpl.getImportedFiles(HeadingImpl.java:339)
at com.millennialmedia.intellibot.psi.element.RobotFileImpl.getImportedFiles(RobotFileImpl.java:141)
at com.millennialmedia.intellibot.psi.ref.ResolverUtils.resolveKeywordFromFile(ResolverUtils.java:46)
at com.millennialmedia.intellibot.psi.ref.RobotKeywordReference.resolve(RobotKeywordReference.java:31)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.resolves(PsiMultiReference.java:51)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.lambda$static$0(PsiMultiReference.java:35)
at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
at java.base/java.util.TimSort.sort(TimSort.java:220)
at java.base/java.util.Arrays.sort(Arrays.java:1441)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.chooseReference(PsiMultiReference.java:70)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.getRangeInElement(PsiMultiReference.java:88)
at com.intellij.psi.ReferenceRange.getRanges(ReferenceRange.java:20)
at com.intellij.codeInsight.completion.CompletionUtil.findReferencePrefix(CompletionUtil.java:162)
at com.intellij.codeInsight.completion.CompletionData.getReferencePrefix(CompletionData.java:132)
at com.intellij.codeInsight.completion.CompletionData.findPrefixStatic(CompletionData.java:146)
at com.intellij.codeInsight.completion.CompletionData.findPrefixStatic(CompletionData.java:161)
at com.intellij.codeInsight.completion.BaseCompletionService.suggestPrefix(BaseCompletionService.java:64)
at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:132)
at com.intellij.codeInsight.completion.BaseCompletionService.performCompletion(BaseCompletionService.java:41)
at com.intellij.codeInsight.completion.CompletionProgressIndicator.lambda$calculateItems$12(CompletionProgressIndicator.java:863)
at com.intellij.util.indexing.FileBasedIndex.lambda$ignoreDumbMode$0(FileBasedIndex.java:163)
at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
at com.intellij.util.indexing.FileBasedIndexEx.ignoreDumbMode(FileBasedIndexEx.java:574)
at com.intellij.util.indexing.FileBasedIndex.ignoreDumbMode(FileBasedIndex.java:162)
at com.intellij.util.indexing.DumbModeAccessType.ignoreDumbMode(DumbModeAccessType.java:43)
at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:859)
at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:847)
at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$startContributorThread$6(CodeCompletionHandlerBase.java:353)
at com.intellij.codeInsight.completion.AsyncCompletion.lambda$tryReadOrCancel$5(CompletionThreading.java:172)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1096)
at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:170)
at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$startContributorThread$7(CodeCompletionHandlerBase.java:345)
at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$0(CompletionThreading.java:95)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:688)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:634)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:64)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165)
at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:91)
at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)
at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)
at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:265)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:829)

Having problems with Resource and Variables imports

I'm using Pycharm 2021.2.3 and Plugin 0.10.143.398

My code is like

Resource    ${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot
Variables   ${CURDIR}/../../resources/testdata/landing/get_merchant_landing.yaml
Variables   ${CURDIR}/../../resources/testdata/landing/datatest_get_merchant.yaml
Variables   ${CURDIR}/../../resources/testdata/elastic/merchant_data.yaml

My plugin debug...


12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] path::CURDIR/../../keywords/api/landing/

12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] file::get_guest_merchant_landing.robot

12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] can't found

12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] Attempting global robot search

12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] path::CURDIR/../../keywords/api/landing/

12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] file::get_guest_merchant_landing.robot

12:02	Debug: [RobotFileManager][${CURDIR}/../../keywords/api/landing/get_guest_merchant_landing.robot] can't found

Plugin crashes when braces are opened and closed fast (issue present on the old plugin too)

When trying to create a variable and we open and close the braces fast, the plugin crashes. (per example, when you try to create a variable, you type ${ and after 1-2 seconds you close the syntax with the }. As a personal observation, this happens mostly inside big files where there are alot of variables and keywords.
Error:
com.intellij.diagnostic.PluginException: commitDocument() left PSI inconsistent: file/doc text length different, File[FILE iOS-res.robot, Language: Robot, com.intellij.psi.SingleRootFileViewProvider{myVirtualFile=file://D:/Example/automated-tests/Resources/iOS-res.robot, content=com.intellij.psi.AbstractFileViewProvider$PsiFileContent@1bec645b}] file.length=59251; doc.length=59254; node.length=59251; doc.text!=file.text; file name:iOS-res.robot; type:com.millennialmedia.intellibot.psi.RobotFeatureFileType@3da58a27; lang:Language: Robot [Plugin: com.millennialmedia.intellibot] at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:403) at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12) at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:72) at com.intellij.diagnostic.PluginException.logPluginError(PluginException.java:89) at com.intellij.psi.impl.DocumentCommitThread.assertAfterCommit(DocumentCommitThread.java:721) at com.intellij.psi.impl.DocumentCommitThread.lambda$doCommit$8(DocumentCommitThread.java:704) at com.intellij.psi.impl.PsiDocumentManagerBase.commitToExistingPsi(PsiDocumentManagerBase.java:395) at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$finishCommitInWriteAction$1(PsiDocumentManagerBase.java:367) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59) at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:197) at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommitInWriteAction(PsiDocumentManagerBase.java:362) at com.intellij.psi.impl.PsiDocumentManagerImpl.finishCommitInWriteAction(PsiDocumentManagerImpl.java:145) at com.intellij.psi.impl.PsiDocumentManagerBase$1.run(PsiDocumentManagerBase.java:323) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:994) at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommit(PsiDocumentManagerBase.java:330) at com.intellij.psi.impl.DocumentCommitThread.lambda$createFinishCommitInEDTRunnable$5(DocumentCommitThread.java:488) at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:82) at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:106) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:433) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:824) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:773) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:412) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:704) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:411) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

If needed, I can create a gif with the procedure.

Cannot open configuration in Pycharm 2021.1

Steps:

  1. Install/upgrade Pycharm to version 2021.1
  2. If not installed yet, install the [email protected] plugin (0.10.143.391)
  3. Open Preferences / Languages & frameworks

Actual:

  • Plugin config now under com.millennialmedia.intellibot.ide.config.RobotConfiguration
  • Error loading the preferences:

`
Cannot create configurable

com.intellij.diagnostic.PluginException: Cannot create class com.millennialmedia.intellibot.ide.config.RobotConfiguration (classloader=PluginClassLoader(plugin=PluginDescriptor(name=[email protected], id=com.millennialmedia.intellibot, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/PyCharmCE2021.1/plugins/intellibot.jar, version=0.10.143.391, package=null), packagePrefix=null, instanceId=43, state=active))
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:763)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:781)
at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:440)
at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:346)
at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:42)
at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:116)
at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:91)
at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:211)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:264)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:126)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.lambda$getConfigurableGroup$1(ConfigurableExtensionPointUtil.java:116)
at com.intellij.openapi.util.ClearableLazyValue$2.compute(ClearableLazyValue.java:26)
at com.intellij.openapi.util.ClearableLazyValue.getValue(ClearableLazyValue.java:39)
at com.intellij.openapi.util.AtomicClearableLazyValue.getValue(AtomicClearableLazyValue.java:9)
at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.(EpBasedConfigurableGroup.kt:111)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:114)
at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:53)
at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:55)
at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$initMacApplication$1(MacOSApplicationProvider.java:81)
at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$submit$8(MacOSApplicationProvider.java:181)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:218)
at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:200)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:319)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:969)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:808)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:742)
... 48 more
`

Platform:
MacOS 11.2.3 Big Sur

The latest version Plugin incompatible with Pycharm 2021.2

Pycharm version:
PyCharm 2021.2 (Professional Edition)
Build #PY-212.4746.96, built on July 27, 2021

Runtime version: 11.0.11+9-b1504.13 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1957M
Cores: 8
Non-Bundled Plugins: GrepConsole (11.10.211.6086.0), Statistic (4.1.7), com.berzanmikaili.intellij.monokai_pro (2.0.2c), com.jetbrains.CyanTheme (1.2), com.jetbrains.grayTheme (1.2), com.markskelton.one-dark-theme (5.3.0), com.vincentp.gruvbox-theme (0.5.2), net.vektah.codeglance2 (1.5.5), zielu.gittoolbox (212.7.6), mobi.hsz.idea.gitignore (4.2.0), some.awesome (1.14), com.jetbrains.intellij.datalore (0.1.13-212), izhangzhihao.rainbow.brackets (6.20), amailp.intellij.robot (0.26)

puglin version:
lte2000_intellibot-dev_0.10.143.397

Python version:3.7.3

builtin keywords of resource files are not recognized

Error :
No keyword with name 'Make Connection' found.

Make Connection is a keyword in DBLibrary2.py with below implementation :

	def make_connection(hostname, port, sid, username, password):
		global connection
		global cursor
		my_dsn = cx_Oracle.makedsn(hostname,port,sid)
		connection = cx_Oracle.connect(username, password, dsn=my_dsn)
		cursor = connection.cursor()

DBLibrary2 is imported in .robot file as "Library DBLibrary2" under *** Settings ***

code : Run keyword if '${system}' == 'Windows' Run keyword Make Connection

pycharm version : 2020.3

Keywords in SeleniumLibrary are not jumped to via Ctrl-Click

Using the zip file from: Issue #255 Link

  • Search Keywords in Sub-packages is Enabled in Plugin Settings, Max Transitive set to "99"

  • My system path begins with: PATH=C:\Python37-32\Scripts;C:\Python37-32;

  • Other keywords are jumped to, for example keywords from BuiltIn.py

This is just one example of an unrecognized keyword (pipes added for readability):

${element}= | get WebElement | css:span#blah | 

However, "get_webelement" is in the file
C:\Python37-32\Lib\site-packages\SeleniumLibrary\keywords\element.py

class ElementKeywords(LibraryComponent):

    @keyword(name='Get WebElement')
    def get_webelement(self, locator):
        """Returns the first WebElement matching the given ``locator``.

        See the `Locating elements` section for details about the locator
        syntax.
        """
        return self.find_element(locator)

Support for non-ascii characters for keyword names

For keyword with non-ascii characters i've got an inspection: Non-ASCII characters in an identifier
But robotframework allow this. There were problems with such symbols in python2, but everything works for python3.

Error "Keyword definition not found" is probably related to the same problem.
image

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.