redhat-developer / vscode-java

Java Language Support for Visual Studio Code
Eclipse Public License 2.0
2.06k stars 421 forks source link

The plugin cannot find jflex generated java source code. #898

Open wy193777 opened 5 years ago

wy193777 commented 5 years ago

The plugin cannot correctly resolve OpenGrok's generated Java source.

Environment
Steps To Reproduce
  1. git clone git@github.com:oracle/opengrok.git
  2. Use VS Code open the folder.

Example project: OpenGrok

Current Result

Lots of errors like this one

{
    "resource": "/home/shenghang/code/opengrok/opengrok-indexer/src/main/java/org/opengrok/indexer/analysis/ada/AdaAnalyzer.java",
    "owner": "_generated_diagnostic_collection_name_#1",
    "code": "16777218",
    "severity": 8,
    "message": "AdaXref cannot be resolved to a type",
    "source": "Java",
    "startLineNumber": 68,
    "startColumn": 34,
    "endLineNumber": 68,
    "endColumn": 41
}
Expected Result

The project can be correctly parsed.

Additional Informations

The code that cannot be resolved is on opengrok-indexer/target/generated-sources/jflex/org/opengrok/indexer/analysis folder.

wy193777 commented 5 years ago

Java Language Server log have this error on my system:

!ENTRY org.eclipse.jdt.ls.core 4 0 2019-04-24 18:35:40.968
!MESSAGE Problem with folding range for /opengrok/src/main/java/org/opengrok/indexer/analysis/ada/AdaAnalyzer.java
!STACK 0
org.eclipse.jdt.core.compiler.InvalidInputException: Underscores_In_Literals_Not_Below_17
    at org.eclipse.jdt.internal.core.util.PublicScanner.consumeDigits(PublicScanner.java:766)
    at org.eclipse.jdt.internal.core.util.PublicScanner.consumeDigits(PublicScanner.java:754)
    at org.eclipse.jdt.internal.core.util.PublicScanner.scanNumber(PublicScanner.java:3702)
    at org.eclipse.jdt.internal.core.util.PublicScanner.getNextToken(PublicScanner.java:1763)
    at org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.computeFoldingRanges(FoldingRangeHandler.java:110)
    at org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.foldingRange(FoldingRangeHandler.java:61)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$25(JDTLanguageServer.java:758)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$34(JDTLanguageServer.java:841)
    at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
    at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

Seems it is related to JDK version. But my java -version output is:

openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)