microsoft / microsoft/vscode-cpptools

Indentation broken with multiline literal initializer expressions

Offen
#9,230 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Feature: Code Formatting Language Service Visual Studio
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Bug type: Language Service

On Linux with VSCode 1.66.2 and C/C++ Extension Pack 1.1.0, I'm seeing the following:

char **argv = {"foo",<enter>
|

i.e., pressing enter after the first line puts the cursor in column 1, without any indentation. This is wrong, an open brace should result in at least some level of indentation.

Moreover, after manually indenting:

char **argv = {"foo", 
   NULL};<enter>
  |

i.e, now the cursor is indented at the wrong level (since there no longer is any open brace).

Note that selecting the area and formatting it with "Format Selection" gives the correct result.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den mehrzeiligen Literal-Initializer in VS Code unter Linux mithilfe der C/C++-Erweiterung, verfolge anschließend den Einrückungspfad des Language Service für Enter und vergleiche ihn mit Format Selection. Bestätige, dass das Drücken von Enter die klammerbasierte Einrückung beibehält und nach der schließenden Klammer keine Einrückung beibehält, und füge anschließend Regressionstests für beide Fälle hinzu oder aktualisiere sie.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, typescript
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.