redhat-developer / redhat-developer/vscode-java

Support delegated compilation

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

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

compile ux
主要言語
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.home is set to a JDK 15, I still see compilation errors as long as I don't enable preview features
  • when java.home is 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

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

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

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. 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

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

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