redhat-developer / redhat-developer/vscode-java

CodeAction that modifies code in an unopened file doesn't work with two spaces indentation

Aperta
#2,613 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

Descrizione

When I apply a CodeAction that modifies code in a file that isn't currently opened in VS Code, such as "create missing field asdf in Foo", and the file being modified is formatted to use two spaces as indentation, then the newly added content is not formatted correctly.

In order for this to happen, I don't specify any indentation settings in settings.json, and I don't add a .settings/org.eclipse.jdt.core.prefs.

Environment
  • Operating System: RHEL 8
  • JDK version:
  • Visual Studio Code version: 1.69.2, 3b889b090b5ad5793f524b5d1d39fda662b96a2a, x64
  • Java extension version: v1.10.2022080304
Steps To Reproduce
  1. Make a class FooA:
public class FooA {
  private String prefix;

  public FooA(String prefix) {
    this.prefix = prefix;
  }

  public String getPrefix() {
    return this.prefix;
  }
}
  1. Close FooA
  2. Make a class FooB:
public class FooB {
  private FooA fooA;

  public FooB(FooA fooA) {
    this.fooA = fooA;
  }

  public String getParameter() {
    return this.fooA.parameter;
  }
}
  1. Activate the "Create field 'parameter' in type 'FooA'" CodeAction
Current Result

FooA becomes:

public class FooA {
  private String prefix;
public String parameter;

  public FooA(String prefix) {
    this.prefix = prefix;
  }

  public String getPrefix() {
    return this.prefix;
  }
}
Expected Result

FooA becomes:

public class FooA {
  private String prefix;
  public String parameter;

  public FooA(String prefix) {
    this.prefix = prefix;
  }

  public String getPrefix() {
    return this.prefix;
  }
}
Additional Informations
  • You can reproduce this bug using other CodeActions, like the "Create method" one
  • If indentation settings are set in a settings.json or .settings/org.eclipse.jdt.core.prefs, the newly added content respects those settings as expected

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 di implementazione o test. Per prima cosa riproduci la CodeAction in un file Java chiuso, usando un'indentazione di due spazi e senza impostazioni di indentazione esplicite; l'attività è completata quando i campi o i metodi appena inseriti usano l'indentazione di due spazi del file e corrispondono al risultato atteso.

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

Valutazione

Stack tecnologico
java
Ambito
devtools
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.