redhat-developer / redhat-developer/vscode-java
Support delegated compilation
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 2.3k
- フォーク
- 546
- 平均マージ
- 20時間 1分
- マージ済み PR(30日)
- 11
説明
Given java.home is set to a JDK 15 ea build, and I have a project with maven.compiler.release set to 15, then the derived .classpath file will specify JavaSE-14, because that's the latest supported version.
However, what I would like to happen in this case, is that compilation (and the reporting of any compilation errors that goes with it), is delegated. This delegation could be to the build tool (by using mvn compile) or to javac directly. Any other features such as autocompletion would still happen as normal, using the JDT tooling at language level 14.
Environment
- Operating System: Windows 10
- JDK version: 15-ea+17-717
- Visual Studio Code version: 1.44.0
- Java extension version: 0.59.1
Steps To Reproduce
These are just some examples:
- text blocks are standard in JDK 15, but even though my
java.homeis set to a JDK 15, I still see compilation errors as long as I don't enable preview features - when
java.homeis set to a JDK 15 with preview features enabled, and I run a main method, the JVM fails to launch, because the compilation used something like--enable-preview --release 14, but the resultant classfiles have a version which is incompatible with the JDK 15 JVM
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
この issue ではソースファイルもテストも指定されていません。まず、Java extension が .classpath をどのように導出し、Maven または javac によるコンパイルと main メソッドの起動をどのように処理しているかを追跡してください。新しい JDK レベル向けのコンパイルとコンパイラーエラーを委譲でき、言語ツールはサポートされているレベルのまま維持され、生成されたクラスが設定された JDK で実行されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, vscode
- 領域
- build-system, developer-experience, tooling
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100