redhat-developer / redhat-developer/vscode-java

Intellisense only works when language server is in LightWeight mode.

オープン
#1,807 コメント 4 件 リアクション 3 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug classpath ls-error/crash
主要言語
TypeScript
スター
2.3k
フォーク
546
平均マージ
20時間 1分
マージ済み PR(30日)
11

説明

Java Intellisense only works when the language server is in LightWeight mode. It breaks immediately every time I swap to Standard mode. (For me, this has been through use of Run/Debug.)

Possibly relevant excerpt from the language server's log:

!ENTRY org.eclipse.jdt.ls.core 4 0 2021-02-16 10:21:35.929
!MESSAGE file:///Users/jahorton/AlphaTiles/AlphaTilesEditor/src/main/java/org/alphatilesapps/alphatiles/data/Word.java does not resolve to a ICompilationUnit

It's definitely part of the project and is compiled as such

Environment
  • Operating System: macOS 10.15.7
  • JDK version: OpenJDK 13.0.1
  • Visual Studio Code version: 1.53.2
  • Java extension version: 0.75.0

Screen Shot 2021-02-16 at 10 09 11 AM

Screen Shot 2021-02-16 at 10 10 03 AM

The latter one (Visual Studio IntelliCode) is part of the Java Extension Pack, which also contains this extension, so I would expect compatibility.

Steps To Reproduce

Just to be explicit, this works for me from a clean reset, for which I do the following:

  1. Hit F1
  2. Java: Clean Java Language Server Workspace (then confirm yes to restart & delete)

After a reset, as long as it does reset to LightWeight mode, Intellisense works normally. Now, for the actual repro:

  1. Select Run/Debug - prompts with text below:

Run/Debug feature requires Java language server to run in Standard mode. Do you want to switch it to Standard mode now?

  1. Select Yes.

Intellisense is now completely broken, only capable of making raw-text suggestions based on common code-strings within the file.

Project experiencing the error: https://github.com/AlphaTiles/AlphaTilesEditor

  • Happens whether or not a launch.json file (for run/debug launch configurations) is present.

A zip of the language server's .log file

A second run

  • This one seemed to have more interesting detail, providing the excerpt seen earlier in this issue.
Current Result

Any use of Run/Debug necessitates a restart of the VS Code client in order to re-enable Intellisense.

Just to be clear, it doesn't matter whether or not the underlying type is from the JavaFX library, which would require an extra extension (see: JavaFX support); it even breaks for the basic String type.

Expected Result

Use of Run/Debug should have no impact whatsoever on Intellisense's ability to work.

Additional Informations

After trying a few more things to see if I could narrow down possible issues... I managed to somehow break the reset. The language server's no longer resetting to LightWeight mode for me, which is really disappointing.

Project details:

  • Uses Gradle to build; is still a normal Java app, not an Android one.
  • Uses JavaFX 11.0.1, which admittedly doesn't perfectly match the environment's JDK. Would prefer to support Java versions as old as 11 if possible, given that 11 is the latest LTS version of the OpenJDK.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まずクリーンなワークスペースのリセットを再現し、Run/Debug から LightWeight から Standard モードに切り替え、ICompilationUnit の解決失敗について添付された言語サーバーのログを確認します。リンクされた Gradle プロジェクトで launch.json がある場合とない場合の動作を比較します。完了の条件は、モード切り替え後も VS Code を再起動せずに IntelliSense が動作し続けることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java, typescript, vscode
領域
developer-experience, devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。