Codestyle: Einrücken untergeordneter Abschnitte?



  • Ja, würde ich an sich auch gerne, aber ich tabbe mir das ja immer so hin. Oder sollte man mit Leerzeichen arbeiten und Tabs auf "4 Leerzeichen" in der IDE umstellen?



  • Tabs benutze ich ausschließlich als Einrückung (bzw. als Trigger für automatisches Einrücken), niemals als Zwischenraum innerhalb einer Zeile.



  • Und um das zu realisieren ist die Tab-Taste bei Dir auf Leerzeichen in der IDE eingestellt?



  • Bashar schrieb:

    Tabs benutze ich ausschließlich als Einrückung (bzw. als Trigger für automatisches Einrücken), niemals als Zwischenraum innerhalb einer Zeile.

    Mache ich auch so.

    Siehe auch: http://www.iovene.com/61/

    In the end, it doesn’t matter whether you use TABs or space, for indenting, as long as you use just spaces for aligning.



  • Eisflamme schrieb:

    Und um das zu realisieren ist die Tab-Taste bei Dir auf Leerzeichen in der IDE eingestellt?

    Was zu realisieren?

    Ja, ich lasse Leerzeichen einfügen, aber das hat ja mit dem, worüber wir uns gerade unterhalten, nicht viel zu tun.



  • Eisflamme schrieb:

    GetElements().push_back(SomeObject(	param1, param2, param3, param4, param5,
    						        	   param6, param7, param8, param9, param10));
    

    So sieht man direkt, dass die Parameter zu SomeObject gehören, ist quasi einfach ein "Parameterblock". Gleiches gilt für lange Elementinitialisierer. Krieg ich dafür auch Dresche? Wenn ja, wieso?

    Für mich optisch zu weit auseinander. Dann breche ich lieber um, und rücke dort etwas ein. Beispiel:

    GetElements().push_back(SomeObject(
      param1, param2, param3, param4, param5,
      param6, param7, param8, param9, param10));
    


  • Bashar:
    Du musst ja in Zeile 2 irgendwie bis nach rechts kommen. Bei mir drücke ich solange Tab bis ich eben dort bin. Wenn Du Tabs nicht magst, musst Du entweder die Leertaste gedrückt halten (was mir deutlich zu lange dauern) oder doch die Tab-Taste nutzen und eben auf Leerzeichen eingestellt haben. Oder es gibt eine weitere Funktion, die ich übersehen habe. 🙂



  • Beides gräßlich, immer das erste Beispiel.



  • So und nicht anders

    GetElements()
    	.push_back(
    		SomeObject
    			(
    				param1,
    					param2,
    						param3,
    							param4,
    								param5,
    								param6,
    							param7,
    						param8,
    					param9,
    				param10)
    			);
    


  • cooky:
    Ich finde es nicht so wie in Beispiel2 zu machen fast immer deutlich schlechter lesbar. Man muss sich erstmal die Klammern zurechtwurschteln, damit man weiß, welche Parameterliste wozu gehört... Das finde ich scheußlich, wenn man es mit ein paar Leerzeichen und Tabs einfacher lesbar machen kann.



  • Eisflamme schrieb:

    Bashar:
    Du musst ja in Zeile 2 irgendwie bis nach rechts kommen.

    Naja, ich mach das nicht so. Ich sage nur, dass ich es akzeptabel finde 🙂

    Bei mir drücke ich solange Tab bis ich eben dort bin.

    Würde ich in dem Fall auch so machen. Wenn es mir zu aufwendig wird, würde ich es aber so wie asc schreiben.



  • ascs Version finde ich gut, ja.



  • asc schrieb:

    GetElements().push_back(SomeObject(
      param1, param2, param3, param4, param5,
      param6, param7, param8, param9, param10));
    

    Ist für mich akzeptabel.
    Alternativ vielleicht noch

    //A
    GetElements().push_back(
      SomeObject(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
    
    //B
    GetElements().push_back(
      SomeObject(
        param1, param2, param3, param4, param5,
        param6, param7, param8, param9, param10));
    
    // oder eben gleich
    // C
    GetElements().push_back(SomeObject(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
    

    Das einzig doofe ist, dass der Auto-Formatter von Visual Studio (B) nicht "kann" (es wird nur 1x eingerückt, die Parameter von SomeObject() werden nicht weiter eingerückt als "SomeObject(").



  • Eisflamme schrieb:

    Man muss sich erstmal die Klammern zurechtwurschteln

    Vielleicht solltest du einfach mal die Schriftgröße größer machen.. oder so. 😉 Ich habe da jedenfalls keine Probleme mit, und falls man mal eine Klammerorgie hat, macht man halt nach jedem Parameter einen Absatz.



  • Tabs durch Leerzeichen ersetzen zu lassen ist dumm und unpraktisch.



  • 314159265358979 schrieb:

    Tabs durch Leerzeichen ersetzen zu lassen ist dumm und unpraktisch.

    Ein echter Pi *einrahm*

    Ich muss zugeben, dass es bei mir sehr auf die Länge der parameterlister ankommt, was ich mache. Und ich rücke die () in dem Fall genau so ein wie ich {} einrücken würde.

    Das heißt:

    GetElements().push_back(
        SomeObject(
            param1, param2, param3, param4, param5, 
            param6, param7, param8, param9, param10
        )
    );
    

    Bei einer kürzeren Parameterliste könnte das dann aber auch so sein:

    GetElements().push_back(
        SomeObject(param1, param2, param3, param4, param5)
    );
    

    Das zweite sieht auch ganz hübsch aus, wenn man mehrere Parameter hat, die man so konstruiert und ist auch bei tieferer Klammerverschachtelung noch gut lesbar:

    GetElements().insert(
        std::make_pair(
            "id",
             SomeObject(param1, param2, param3, param4, param5)
        )
    );
    

    alles Geschmackssache 🙂


  • Mod

    314159265358979 schrieb:

    Tabs durch Leerzeichen ersetzen zu lassen ist dumm und unpraktisch.

    Quark, mal wieder, leider. Ich mag Forenbeiträge direkt aus meinem Lieblingseditor kopieren und möchte die nicht von Hand nachformatieren müssen.



  • Wie meinen? Das Forum ersetzt Tabs automatisch durch Leerzeichen. Und selbst wenn nicht, ist das eine ziemlich schwache Begründung.

    Ich sage dir, warum Tabs besser sind: Wenn mehrere Leute an Code arbeiten, kann sich jeder seine Wunsch-Tabbreite einstellen. cooky bevorzugt z.B. 4 Spaces, ich verwende 8.



  • 314159265358979 schrieb:

    cooky bevorzugt z.B. 4 Spaces, ich verwende 8.

    Abgesehen davon dass ich 2 Spaces nutze, ist das aber eher ein notwendiges Übel. Sonst nutze ich auch Leerzeichen. 😉



  • Dann eben 2.


Anmelden zum Antworten