microsoft / microsoft/vscode-cpptools
Indentation broken with multiline literal initializer expressions
Dieses Issue hat noch niemand übernommen.
- 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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