redhat-developer / redhat-developer/vscode-java

Support delegated compilation

Aperta
#1,373 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

compile ux
Lingua principale
TypeScript
Stelle
2.3k
Fork
546
Merge medio
20h 1m
PR unite (30g)
11

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

L’issue non indica alcun file sorgente né alcun test; inizia tracciando come la Java extension ricava .classpath e gestisce la compilazione con Maven o javac e l’avvio dei metodi main. Il lavoro è completato quando la compilazione e gli errori del compilatore per livelli JDK più recenti possono essere delegati, mentre gli strumenti del linguaggio rimangono al livello supportato, e le classi risultanti vengono eseguite sul JDK configurato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, vscode
Ambito
build-system, developer-experience, tooling
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.