robocorp / robotframework-lsp

Robocorp extensions for VS Code: Robocorp Code and RFW LSP
https://robocorp.com/docs/developer-tools/visual-studio-code
Apache License 2.0
206 stars 93 forks source link

Semantic highlingting: catenated strings should not color as argument before equals. #365

Closed eduardfarkas closed 3 years ago

eduardfarkas commented 3 years ago

In VSC the highlighting has improved compared to last version, but still there are some things that are in my opinion wierd.

VSC Keywords

Versions:

eduardfarkas commented 3 years ago

Sorry, the label probably should be "robotframework-ls" instead of "robocorp-code"

fabioz commented 3 years ago

From the screenshots it seems that the semantic highlighting isn't being applied to Intellij...

I can't really reproduce this.

Some questions to try to diagnose it:

eduardfarkas commented 3 years ago

Yes, i restarted IDE multiple times and yes, there is some error after starting up intellij, here is the stacktrace:

Following exceptions happened soon after this one, most probably they are induced.

2021-05-26T09:47:39.559
java.lang.IllegalArgumentException: Argument for @NotNull parameter 'textAttributes' of com/intellij/codeInsight/daemon/impl/B.textAttributes must not be null
    at com.intellij.codeInsight.daemon.impl.B.$$$reportNull$$$0(B.java)
    at com.intellij.codeInsight.daemon.impl.B.textAttributes(B.java)
    at robocorp.lsp.intellij.FeatureSemanticHighlighting.apply(FeatureSemanticHighlighting.java:139)
    at robocorp.lsp.intellij.FeatureSemanticHighlighting.apply(FeatureSemanticHighlighting.java:31)
    at com.intellij.codeInsight.daemon.impl.AnnotationHolderImpl.applyExternalAnnotatorWithContext(AnnotationHolderImpl.java:203)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.doApply(ExternalToolPass.java:217)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.lambda$run$1(ExternalToolPass.java:184)
    at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:52)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:848)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
    at com.intellij.openapi.application.ReadAction.run(ReadAction.java:51)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.lambda$run$2(ExternalToolPass.java:181)
    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.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:254)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:179)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:333)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:323)
    at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:273)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:287)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:242)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request.runSafely(Alarm.java:369)
    at com.intellij.util.Alarm$Request.run(Alarm.java:355)
    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:216)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184)
    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:834)
fabioz commented 3 years ago

That log shows that there is indeed an error is the semantic highlighting, but that's already probably a side-effect of something that went wrong previously... Can you provide the actual logs following the instructions at: https://github.com/robocorp/robotframework-lsp/blob/master/robotframework-ls/docs/reporting_issues.md?

eduardfarkas commented 3 years ago

Here is a file that was generated on some random test. Hope this helps.

robotframework_ls.lsp.5244.log

fabioz commented 3 years ago

There is indeed something wrong as it seems the language server version is 0.16 (whereas the client is 0.17).

i.e.: The logs show:

Python: 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)]
lsp: 0.16.0 (<module 'robotframework_ls' from 
'C:\\Users\\eddie\\AppData\\Roaming\\JetBrains\\IntelliJIdea2021.1\\plugins\\robotframework-intellij\\lib\\robotframework_ls\\__init__.py'>)
platform: win32
sys.prefix: C:\Users\eddie\AppData\Local\Programs\Python\Python38
sys.executable: C:\Users\eddie\AppData\Local\Programs\Python\Python38\python.exe

I'm not exactly sure how that happened (maybe Intellij had some issue during the installation)... can you try to uninstall the plugin/restart Intellij and then reinstall it to see if it works?

eduardfarkas commented 3 years ago

Same error as earlier. I can confirm that while updating from 0.16.0 to 0.17.0 that was some error, i didnt really read it properly. It was something about some process using shared resources, i am not sure. Just to be sure i completely reinstalled the LSP right after it but the error was still there.

eduardfarkas commented 3 years ago

So i resolved the issue. There was plugin folder inside %AppData%/JetBrains/.../plugins with old files. After restarting the PC i was able to delete it (it was blocked by something) and now it works.

I don't know if you want to let this open to take a look at the rest of this issue but anyways, thank you for help.

fabioz commented 3 years ago

I'll leave it open for now... the client should probably validate whether the server is in the correct version and give a better error message instead of just failing as it did.

fabioz commented 3 years ago

Actually, I'll leave this issue as is and provide a different one for that.

fabioz commented 3 years ago

Note: although I fixed the specific coloring for catenated, I created additional issues for other aspects of semantic highlighting:

https://github.com/robocorp/robotframework-lsp/issues/377 https://github.com/robocorp/robotframework-lsp/issues/378 https://github.com/robocorp/robotframework-lsp/issues/379

Serhiy1 commented 3 years ago

@fabioz I am seeing something similar with the [Documentation] tag image

Is this covered by the created reports or should another one be made?

fabioz commented 3 years ago

Please create another one.