Visual Studio - Einrückungen umformatieren?

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Hi Leutz,

Mir haben die Blender Devs heute beim wöchentlichen Merge ein schönes Osterei gelegt. Die Code Formatierung hat sich geändert. Von Tab mit vier Leerzeichen auf zwei Leerzeichen.

Das bedeutet dass ich alle meine Files nacharbeiten darf. Und zum Beispiel so um die 3000 Tooltips von Hand fixen müsste. Weil Meld da natürlich nicht mitmacht einfach nur den String rüberzuschicken. Da ist grade alles blau.

Gibt es in VS, oder auch einem anderen Editor wie VS Code, Sublime, etc. die Möglichkeit die Formatierung der Einrückung auf einen Rutsch auf zwei Leerzeichen zu ändern? Das würde mir unglaublich viel Arbeit und wohl auch einige Fehler beim mergen ersparen.

LG Tiles
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Nevermind. Bin mal wieder blond. Suchen und Ersetzen tuts doch schon :D

Klassischer Fall von Posten und dann doch selber auf die Lösung kommen ...
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Krishty »

Davon ab kann man natürlich in Visual Studio zwei Leerzeichen konfigurieren (Tools → Options → Text Editor → All Languages → Tabs) oder direkt die clang-format-Datei (mglw. direkt aus dem Blender-Repository?) einspielen (Tools → Options → Text Editor → C/C++ → Formatting → Enable ClangFormat Support) und dann via CTRL+K, CTRL+D jedes Dokument automatisch umformatieren.

(Ich gehe davon aus, dass das bei Blender auch nicht alles händisch formatiert wurde, sondern clang-format samt entsprechender Datei über’s Repository jagen und fertig.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Jonathan »

Tiles hat geschrieben: 21.04.2019, 18:21Weil Meld da natürlich nicht mitmacht einfach nur den String rüberzuschicken. Da ist grade alles blau.
Ich bin mir nicht ganz sicher, was du meinst, aber guck dir trotzdem mal das hier an:

https://codeyarns.com/2015/01/27/how-to ... e-in-meld/

Wobei ich auch nochmal sagen muss, dass tortoiseGit das netteste diff-Tool hat. Da gibt es nämlich schon in der Menüleiste einen dicken Button um Whitespaces zu ignorieren. Meld sieht zwar von der Oberfläche etwas schicker aus, aber tortoiseGit kann gefühlt mehr (und ist auch ansonsten mein absoluter Lieblingsclient).

P.S. Immer wieder traurig Code sehen zu müssen, der mit Leerzeichen formatiert wurde. Hätte man doch bloß ein Zeichen das semantisch für "eine Einrückungstiefe" stehen würde, dann würden sich so alberne Probleme gar nicht erst ergeben... (PPS: Tabs sind nicht wirklich so ein Zeichen, aber immerhin das, was dem am nähesten kommt.)
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Danke Leute. Krishty, das war was ich gesucht habe. Aber Suchen und Ersetzen langt für meine Zwecke auch :)

Das mit den Whitespaces ignorieren lass ich besser. Ich muss ja die neue Formatierung in mein Repo reinbekommen.

Meld macht jeden Unterschied blau. Auch unterschiedliche Einrückungen. Blau heisst Unterschied. Durch das Umformatieren ist nun aber eben alles blau. Und die haben nicht nur die Einrückungen geändert, sondern auch die Formatierung der Ausdrücke. Vorher waren die einzelnen Teilstücke hintereinander, durch Komma getrennt. Nun ist es untereinander aufgelistet. Und wenn du dann eine Datei mit mehr als tausend Zeilen vergleichst, und es viele solcher Änderungen gibt, läuft Meld amok weil er nicht mehr weiss was wo dazu gehört ^^

Mit dem Tortoisegit Diff Tool steh ich auf Kriegsfuss. Das finde ich einfach zu sperrig und unübersichtlich. Und mitten im Merge sind ja auch noch die Mergemessages im Weg. Ich mache das im Moment so dass ich entweder vom Master oder vom Blender Master alle Änderungen übernehme. Und den zwei Dateien dann danach mit Meld gegenüber einem Backup zu Leibe rücke. Das hat sich für meinen persönlichen Workflow als viel effektiver rausgestellt als das über das Tortoisegit Diff Tool zu machen. Vor allem wenns dann klemmt ist das Backup von vor dem Merge Gold wert.

Und ja, so ein Einrückstandard wär echt toll :/
Zuletzt geändert von Tiles am 22.04.2019, 11:10, insgesamt 1-mal geändert.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Krishty »

Tiles hat geschrieben: 22.04.2019, 10:45Und die haben nicht nur die Einrückungen geändert, sondern auch die Formatierung der Ausdrücke.
  1. Die haben 95-prozentig clang-format dafür benutzt und 70-prozentig die Formatierungsdatei im Repository eingecheckt, so dass du die nur abholen und über deinen Code laufen lassen müsstest.
  2. Falls das nicht geht, kannst du diese ganzen Sachen auch in Visual Studio in den Formatierungseinstellungen einstellen.
Ich würde das auf keinen Fall von Hand machen – bei so viel Arbeit machst du früher oder später einen Fehler und übersiehst ein paar relevante Zeichen …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Muss ich aber von Hand machen. Denn da stecken auch Änderungen aus Bforartists drin. Und Änderungen am Blender Code. Das ist nicht nur einfach die Formatierung geändert. Sondern ein vollständiger Merge zweier unterschiedlicher Code Bases. Wie jeden Sonntag halt ^^

Ich trau mich halt nicht in VS was umzustellen. Denn Python verwendet weiterhin eine Einrückung von vier Leerzeichen.

Aber ja, bei 230 Troublefiles geh ich auch mal schwer davon aus dass das nicht aufs erste Mal funktionieren wird, und ich da Fehler einbauen werde. Schaun mer mal :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Mal ein kleines Beispiel.

Links neue Blender Formatierung. Wild gemischt mit untereinander und nebeneinander. Ohne erkennbares Muster. Das spricht eigentlich für das automatisierte Formatieren von dem du geredet hast. Und Rechts der alte Code mit meinen Änderungen. In dem Fall einfach mal den Tool Namen im Tooltip. Eigentlich eine Selbstverständlichkeit ...

Ich muss halt schauen dass ich genau das gleiche Chaos wie in den Blender Files hinbekomme. Sonst hab ich beim nächsten Merge wieder Probleme. Das kriege ich mit einem Autoformat nicht hin. Das muss ich einfach händisch lösen. Mit den Einrückungen durch zwei Spacebars ersetzen konnte ich mir wenigstens schon mal den Teil mit den vielen Unterschieden bei den Tabs aus dem Weg räumen. Und kann in Meld so manch Zeile einfach rüberschubsen.

Halt hier schon wieder nicht. Hier hats plötzlich wieder vier Spacebars für eine Einrückung. Und einfach rüberschubsen ist hier nicht möglich ...
Dateianhänge
automatisch.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Krishty »

Muss ich aber von Hand machen. Denn da stecken auch Änderungen aus Bforartists drin. Und Änderungen am Blender Code. Das ist nicht nur einfach die Formatierung geändert. Sondern ein vollständiger Merge zweier unterschiedlicher Code Bases.
Genau. Und wenn du die Formatierung auf deiner Hälfte der Codebase wiederholst, unterscheiden sich die beiden nur noch in den Stellen, die du vor der Formatierung selber angepasst hattest. Das ist doch das Ziel, oder?
Tiles hat geschrieben: 22.04.2019, 11:38Ich muss halt schauen dass ich genau das gleiche Chaos wie in den Blender Files hinbekomme.
Genau. Indem du den Clang-Format-Durchlauf wiederholst oder einzeln mit Visual Studio formatierst.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Okay. Du hast mich überzeugt. Ich probier das mal heut abend mit dem Clang. Das interessiert mich jetzt echt.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Hm, eine clang_format.exe gibts im Repository nicht. nur eine temp-clang-format Datei.
Dateianhänge
clangexe.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Krishty »

Jau. Du schaltest in Visual Studio Formatierung via clang-format ein, gibst diese Datei an, und dann nutzt Visual Studio die Formatierungsregeln daraus. Und wenn die Blender-Entwickler sie vernünftig eingecheckt haben, sieht jede Datei nach CTRL+K, CTRL+D genau so aus wie im offiziellen Repository; minus deine Änderungen halt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Ich kriegs nicht hin, sorry :)

Clang ist ja schon an, wie man am oberen Shot sieht. Und Ctrl K macht gar nix. Das heisst es macht schon was, da werden einige Stellen gelb. Aber die Einrückung ändert sich nicht.

Eine externe Exe finde ich nicht. Ich finde auch keine Datei die ich angeben soll, und wüsste auch gar nicht wo. Die Beschreibung im Link ist leider nicht sehr hilfreich.

Na gut, dann muss es eben so gehn. Trotzdem Danke :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Ah, jetzt weiss ich wieso das nicht funktioniert hat. Ich muss die .clang-format doch auch ins alte Repo packen, sonst kann VS ja diese Regeln nicht anwenden. Und dann tun die zwei Hotkeys auch endlich was sie sollen \o/

Danke Krishty :)

EDIT; thihi, genau das was ich mir gedacht habe, clang läuft in meinem Repo anders amok als im Blender Repo. Aber trotzdem deutlich besser :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Krishty »

Ah, schön zu hören :) Du kannst die Formatdatei ja nach Belieben anpassen; vielleicht kriegst du’s ausgeglichen – sollte aber schon identische Ergebnisse liefern; AFAIK nutzt Visual Studio das offizielle Clang-Format.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Visual Studio - Einrückungen umformatieren?

Beitrag von Tiles »

Sollte man meinen. Aber da gibts halt doch ab und zu Unterschiede bei eigentlich identischem Code. Ich kann damit leben :)

Anpassen darf ich die Datei nicht. Ich brauche ja die gleiche Formatierung wie in Blender. Aber ich bin fast da. Jetzt muss ich die Umbauten nur noch zum kompilieren bekommen. Wöchentliches Drama ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Antworten