microsoft / microsoft/vscode-cpptools

Abnormal Indentation for do-while without brace

Offen
#12,972 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug 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

Environment
  • OS and Version: Microsoft Windows 10 Professional Edition 10945.5131 (Latest)
  • VS Code Version: 1.95.3 (system setup) (Latest)
  • C/C++ Extension Version: v1.22.11 (Latest)
Bug Summary and Steps to Reproduce

Bug Summary:
Indentation for do-while without brace is wrong.

Steps to reproduce:
Enable vcFormat to format the code, then just write a do-while like:

if (...)
	do
		cout << "Hello World!";
while (...);

Expected behavior:

if (...)
	do
		cout << "Hello World!";
	while (...);
Configuration and Logs
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\TDM-GCC-64\\bin\\gcc.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}
Other Extensions

Only this extension has been enabled.

Additional context

The key issue is that the compiler does not compile like it looks like.

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

Beginne damit, das Beispiel mit aktiviertem vcFormat in der C/C++-Erweiterung unter Windows nachzustellen und die tatsächliche Einrückung mit der erwarteten Ausgabe zu vergleichen. Die Arbeit ist abgeschlossen, wenn ein nicht in geschweifte Klammern eingeschlossenes do-while, das unter einem if verschachtelt ist, so formatiert wird, dass die while-Anweisung innerhalb des if-Blocks eingerückt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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