VS2022 IDE automatisches Einrücken



  • Schönen guten Tag,

    ich weiß nicht, ob ich hier richtig bin. Falls nicht meine Anfrage bitte an geeigneter Stelle verschieben

    An nur einer Stelle habe ich ein seltsames (visuelles) Problem
    VS2022 17.3.5 prof.

    Folgendes vereinfachtes Beispiel
    `

    
    if (bedingung)
    {
        if (bedingung)
        {
             codeblock
        }
        }
    else if (bedingung)
        {
        codeblock
        }
    else
    {
    codeblock
    }
    
    

    wie ihr seht funktioniert das Einrücken der Zeilen nicht richtig. Seltsamerweise variiert dieses Einrücken dauernd, es können andere Kombinationen entstehen. Kompilieren tut das Ganze, nur traue ich dem Ergebnis nicht so recht.

    Hat jemand von euch eine Idee was hier passiert ?

    Danke
    -Uwe


  • Mod

    @Uwe-Heyer sagte in VS2022 IDE automatisches Einrücken:

    Hat jemand von euch eine Idee was hier passiert ?

    Vielleicht macht dein Code was anderes als du denkst?



  • Danke Dir für das verschieben meiner Anfrage in den richtigen Bereich.

    Mittlerweile glaube ich die IDE an ihre Grenze gebracht zu haben. Auch wenn ich die Codeblöcke auskommentiere verändert sich nichts großartiges an diesem Einrückphänomen. Vielleicht ist es die Größe der Codeblöcke vom ersten if() bis zum letzten else. Zumindest der Compiler kommt mit klar und das Programm macht was es soll.

    Danke für euer Interesse

    Gruß
    -Uwe



  • Ändere doch mal einige Einträge unter Optionen\Text-Editor\C/C++\Codeformat\Formatierung.


  • Mod

    @Uwe-Heyer sagte in VS2022 IDE automatisches Einrücken:

    Mittlerweile glaube ich die IDE an ihre Grenze gebracht zu haben. Auch wenn ich die Codeblöcke auskommentiere verändert sich nichts großartiges an diesem Einrückphänomen. Vielleicht ist es die Größe der Codeblöcke vom ersten if() bis zum letzten else. Zumindest der Compiler kommt mit klar und das Programm macht was es soll.

    Du denkst mit deinem Codeblock einen Computer an seine Grenzen gebracht zu haben? Hat der Block hundert Millionen Zeilen? Wobei ich mir gar nicht mal so sicher wäre, ob selbst das einen modernen Computer überhaupt noch zum Schwitzen brächte…

    Viel wahrscheinlicher ist nach wie vor, dass dein Code einfach falsch ist. "Es compiliert" heißt gar nichts in Bezug auf Richtigkeit von Code. Beispiel

    if (irgendwas)
      cout << "True";
    else;
       cout << "False";
    

    Oh, der Autoeinrücker macht daraus:

    if (irgendwas)
      cout << "True";
    else;
    cout << "False";
    

    Aber es compiliert. Da muss wohl der Einrücker kaputt sein… 🤔



  • @SeppJ sagte in VS2022 IDE automatisches Einrücken:

    Du denkst mit deinem Codeblock einen Computer an seine Grenzen gebracht zu haben? Hat der Block hundert Millionen Zeilen? Wobei ich mir gar nicht mal so sicher wäre, ob selbst das einen modernen Computer überhaupt noch zum Schwitzen brächte…

    Du überschätzt die Implementierung von Texteditoren 😉 Große Dateien mit Syntaxhighlighting oder viele lange Zeilen bringen (viele) Texteditoren durchaus ins Schwitzen! Und das schon bei Zehntausenden von Zeilen. Es mag auch Editoren geben, die damit gut klarkommen. Aber je mehr Features die haben, desto lieber mögen die "normal große" Dateien.



  • Hallo Leute,

    ich glaube mittlerweile die Einrückfunktion liest auch auskommentierten Text und reagiert irgendwie darauf.
    Der Codebereich mit den Einrückfehlern (mitten in einer *.cpp) zieht sich über 1200 Zeilen hin, gespickt auch mit viel Kommentar. Selbst wenn ich die Codeblöcke komplett auskommentiere, so bleibt für den kümmerlichen Rest (if(), else if(), else) das (optische) Problem erhalten. Vor diesem problematischen Code-Bereich und danach habe ich das Phänomen nicht ein weiteres Mal beobachten können.

    Aber für mich erstmal wichtig, das zu erstellende Programm läuft und macht das was es soll.

    Vielen Dank für eure Mithilfe
    Gruß
    -Uwe



  • Ich vertraue den Einrückkünsten schon sehr. Benutzt du vielleicht ein spezielles (ggf. externes) Tool zum Einrücken?

    Ansonsten würde ich mir den Code an deiner Stelle noch x-mal erneut angucken, nicht dass du nachher doch irgendwo Klammern falsch gesetzt hast!

    Wenn der Codebereich schon 1200 Zeilen lang ist, vielleicht auch mal über eine Aufteilung in kleinere Dateien nachdenken? Aber der Codebereich besteht schon aus mehreren Funktionen? Also wir sprechen hier nicht von nur einer Funktion? Wenn doch, dann würde ich die als erstes aufteilen.



  • (ggf. externes) Tool zum Einrücken?

    nein, kein 3Party. Das Einrücken übernimmt die IDE VS2022 mit den Standardeinstellungen. Eigentlich bin ich bereits blind, so sehr habe ich mir die Augen x-mal über den Code ausgeguckt. Ich finde nichts auffälliges.
    Das Programm habe ich mit VS2017 erstellt, erweitert mit VS2019 und bin jetzt bei VS2022 gelandet. Es läuft seit Jahren rund um die Uhr ohne Auffälligkeiten. Da ich durch die MS Exchange Umstellung auf OUTH2 anpassen musste, habe ich das Projekt mit VS2022 geöffnet und da viel mir die Einrückproblematik fast sofort auf.
    Es scheint nur ein visuelles IDE Problem, der Compiler meckerte nicht und seit 14 Tagen werkelt das Programm (Dienst) wieder klaglos im 24/7/52 .

    Wenn doch, dann würde ich die als erstes aufteilen.

    Ändern werde ich am Code freiwillig nichts mehr. Im Sommer 2023 wird das Proggy sein Lebenszweck erfüllt haben.

    Danke für eure Beiträge
    -Uwe



  • @Uwe-Heyer sagte in VS2022 IDE automatisches Einrücken:

    Hallo Leute,

    ich glaube mittlerweile die Einrückfunktion liest auch auskommentierten Text und reagiert irgendwie darauf.

    Nö.

    Der Codebereich mit den Einrückfehlern (mitten in einer *.cpp) zieht sich über 1200 Zeilen hin, gespickt auch mit viel Kommentar. Selbst wenn ich die Codeblöcke komplett auskommentiere, so bleibt für den kümmerlichen Rest (if(), else if(), else) das (optische) Problem erhalten. Vor diesem problematischen Code-Bereich und danach habe ich das Phänomen nicht ein weiteres Mal beobachten können.

    Sind da vielleicht irgendwelche lustigen Makro-Spielereien oder anderes Preprozessor-Zeugs im Spiel?



  • Hallo hustbaer,

    nein, weder lustige Makros noch Preprozessor Gedöhns.

    Aber, seit dem großen gestrigen 17.4 Update ist dieses autom. Einrückproblem weg.
    Die IDE formatiert wieder, wie es sein soll.

    Vielen Dank für eure Beiträge

    Gruß
    -Uwe


Anmelden zum Antworten