![]() |
Code-Formatierung
Kennt ihr das Problem ?
Ihr wollt ein Code-Fragment in die DP stellen. Schnell gemacht 1) Text markieren 2) Ctrl-C 3) Zur DP wechseln 4) Ctrl-V 5) Delphi-Code klicken 6) Ärgern und "zu Fuß" Tabs entfernen und durch entsprechende Blanks ersetzen. Das nachstehende kurze Programm ersetzt in einem im Clipboard stehenden Text Tabs durch Blanks und stellt den geänderten Text wieder ins Clipbord. Bevor jetzt jemand mit StringReplace etc. kommt : Die Tabs werden so durch Blanks ersetzt, daß der folgende Text an der nächsten definierten Tab-Position steht. Bei mir ist für Tabstops 3 eingestellt, andere bevorzugen 2 oder noch was anderes. Dies kann durch ändern der Konstanten "tablen" eingestellt werden. In Zukunft wird in obigen Ablauf Punkt 3.5 ReplaceTabs klicken eingefügt, dafür entfällt der lästige Punkt 6. Vielleicht kann der eine oder andere das auch gebrauchen.
Delphi-Quellcode:
program ReplaceTabs;
{$APPTYPE CONSOLE} uses SysUtils, ClipBrd; const tablen=3; FUNCTION Replace(const s:string):string; var ps,pr:PChar; len:integer; begin SetLength(result,Length(s)*tablen); if s='' then exit; ps:=PChar(s); pr:=pChar(result); len:=0; repeat case ps^ of #9 : begin len:=tablen-len mod tablen; while len>0 do begin pr^:=' '; inc(pr); dec(len); end; end; #10,#13 : begin pr^:=ps^; inc(pr); len:=0; end; else begin pr^:=ps^; inc(pr); inc(len); end; end; inc(ps); until ps^=#0; pr^:=#0; SetLength(result,Integer(pr)-Integer(PChar(s))); end; begin with ClipBoard do if HasFormat(1) then AsText:=Replace(AsText); end. |
Re: Code-Formatierung
Zitat:
Zitat:
Zum Einrücken in Delphi gibt es die Tasten Strg + Shift + U/I |
Re: Code-Formatierung
Zitat:
Du drückst immer 3 Tasten (statt einer). Das nenne ich optimal arbeiten. |
Re: Code-Formatierung
Vielleicht haben wir die Editor-Einstellungen ja auch nur richtig gesetzt :mrgreen:
Optionen - Editor-Optionen - Quelloptionen (Delphi 2010) Da kann man das Verhalten (mit/ohne TAB) einstellen |
Re: Code-Formatierung
Zitat:
Deshalb : kannst Du mir erklären, was man da genau einstellen kann ? Die Optionen, die Delphi 2005 bietet (vorsichtig gesagt, die, die ich kenne) bieten mir keine zufriedenstellenden Möglichkeiten. Und offensichtlich haben diverse andere User das gleiche Problem. |
Re: Code-Formatierung
Wenn ich nicht irre, empfiehlt auch der Styleguide Einrückung mittels 2x Leerzeichen pro Blocktiefe, und Vermeidung von Tabs in Delphi Quellcode. Und sogar mein Delphi 7 ist intelligent genug, den Cursor auf die zuletzt eingerückte Spalte zu setzen wenn ich die vorige mit einem beherzeten Enter abschließe - also nix mit vielen Tasten drücken :)
|
Re: Code-Formatierung
Zitat:
|
Re: Code-Formatierung
Zitat:
Auch bei mir springt der Cursor nach Enter auf die letzte Einrückung. Und genau das ist eines der Probleme. Zum Beispiel, wenn ich hinter einem begin Enter drücke, springt er unter das b, ich hätte ihn aber lieber unter dem i, also drücke ich die Tab-Taste, alternativ 3 x Blank. |
Re: Code-Formatierung
Zitat:
|
Re: Code-Formatierung
Delphi 7:
Tools > Editor-Optionen > Quelloptionen > Einzug mit Tabs > deaktiviert > Tab-Zeichen anzeigen > vielleicht mal aktivieren |
Re: Code-Formatierung
Wenn ich mich nicht irre, konnte selbst Delphi 3 das schon :wink:
|
Re: Code-Formatierung
Zitat:
Zudem: Pro Block ein Mal "patpat" auf die breite Taste klopfen - da hab ich langsamer das "q" ein Mal getroffen :D (also so zum Vergleich) |
Re: Code-Formatierung
Zitat:
Was den Styleguide betrifft, bist du also der Meinung daß du jemanden brauchst, der dir genau vorschreibt, wie du was zu machen hast. Ich bin schon groß und darf selbst entscheiden, was ich wie mache, brauche also keinen Styleguide. Und über Polemik möchte ich mit dir nicht diskutieren. |
Re: Code-Formatierung
Könnte mir mal bitte jemand erklären, warum das hier jetzt so eskaliert ist?
|
Re: Code-Formatierung
[quote="s-off
Das kann man schon seit Uhrzeiten einstellen; nicht erst ab Delphi 2010. Es geht da einfach nur darum, wie die IDE die TAB-Taste interpretiert. Als richtiges Tab, oder als x Blanks. Und aufgrund genau der von Dir genannten Problemen sollte man zu der Blanks-Variante greifen. Da brauchst Du nicht dreimal die Leertaste drücken, wenn Du drei Leerzeichen haben willst.[/quote] Danke, s-off. Ich werde die verschiedenen Varianten durchprobieren. Zu meiner jetzigen Vorgehensweise bin ich in fernster Vergangenheit gekommen und habe sie nach diversen Versuchen als die für mich beste Version empfunden und nie in Frage gestellt. Übrigens : Bei bei meinem Delphi kann man nirgendwo Uhrzeiten einstellen. (Sorry, aber das war zu verlockend.) Danke auch an himitsu und Sir Rufo. |
Re: Code-Formatierung
Zitat:
Da die von mir erwähnte Tastenkombination so nicht eingesetzt werden kann. Aber gerade die Möglichkeit ist sehr interressant, wenn man ganze Blöcke einrücken möchte oder muss. Da dabei aber immer um zwei Zeichen ein- bzw. ausgerückt wird, ist eine ungerade Zahl echt schlecht. Aber nun gut, wenn diese Hilfe(n) nicht wahrgenommen werden, dann muss man eben selber tricksen. Aber es ist normalierweise nicht nötig. |
Re: Code-Formatierung
Zitat:
Aber zu Deiner Frage: Weil es in diesem Forum gelegentlich vorkommt, daß User nicht beim Thema bleiben, sondern anderen die Welt erklären. Beispiel: Jemand stellt hier einen Code rein, den er für nützlich hält. Dann beschäftigen sich die User damit dem TE zu erklären, warum er das nicht braucht, aber niemand beschäftigt sich mit dem Code selbst und weist auf eventuelle Fehler oder auf mögliche Optimierungen hin. Dabei wäre das doch der eigentlich Sinn dieses Forums. Ich hatte mir ein kleines Programm geschrieben, das ich, subjektiv empfunden, für gut und nützlich hielt und halte. (Andere mögen, vielleicht aus objektiverer Sicht, anderer Meinung sein.) Ich hab dann erwartet, daß Hinweise oder Fragen kommen, die sich auf das Programm beziehen. Statt dessen kam es ganz anders. Ist schon lustig hier. |
Re: Code-Formatierung
Zitat:
Ich bin ganz sicher, daß Blöcke mit Ctrl-Shift-I/U auch um ungerade Spaltenzahlen (3 bei mir) eingerückt werden. Und bin ganz sicher, weil ich es gerade noch mal probiert habe. |
Re: Code-Formatierung
Nun, da du nun selbst schon den Thread entführt hast... Gleich mal Senf zum letzten Abschnitt :) (auch wenn du mir nochmal dazwischen gekommen bist jetzt - ich bin zu lahm :()
Ein Forum ist da, um zu helfen. Wie diese Hilfe nun genau auszusehen hat ... sagen wir mal, dafür kenne ich keinen Styleguide ;). Oftmals ist es nun so, und das geht mir ja nicht anders, dass man mit einer gewissen Herangehensweise in einer Sackgasse gelandet ist, und den Baum vor lauter Wald nicht mehr sieht (sic). Das sind so Fälle, wo einem ein völlig anderer Ansatz richtig gut aus der Patsche helfen kann, gerade wenn man in einem Bereich evtl. etwas weniger Erfahrung hat als Helfer. Was du vorschlägst wäre: Ich gehe zum Arzt, und sag dass meine Nase läuft. Jetzt verschreibt mir die Gurke in Weiss Antibiotika, und die soll ich nichtmal in die Nase stecken! Das ist doch völlig an meinem Problem vorbei! Und das ist (zum Glück), wie auch hier gelegentlich, genau gegenteilig. Daher auch die häufigen Nachfragen der Art: "Was willst du am Ende eigentlich erreichen?" Da geht's um ganzheitliche Hilfe (quasi Diagnostik um das Bild von oben aufzugreifen). Du wolltest doch eigentlich eher etwas in Richtung Tampon. Ich würde ein Forum als unflexibel und eher unqualifiziert ansehen, dass strikt so handeln würde wie du es scheinbar wünschen würdest. (Bitte nicht als persönlichen Angriff werten, das is meine ganz subjektive Meinung, die ich auch ohne deine Aussage schon hatte :cheers:) Was das Vorschreiben von Dingen die ich tun oder lassen soll angeht: Trugschluss. Ich wähle bewusst die Orientierung an Standards, da sie oftmals nicht nur durch viele Iterationen überdacht und verfeinert sind, sondern auch um mir selbst und anderen die Zusammenarbeit, sowie oft auch die Solo-Arbeit zu erleichtern. Es ist für mich eher ein positives Anzeichen von Flexibilität sich an erprobte Richtungen halten zu können, für ein höheres Gut als der (scheinbaren) Selbstbestimmung oder des (falschen) Gefühls von "ich bin anders". Anders ist nicht immer besser. Das schließt natürlich nicht aus, dass man auch mal gegen steinerne Pfade ankämpfen soll - himmel was hab ich auch schon gegen manche Konventionen gewettert - nur muss es dafür einen weit besseren Grund als persönliche Vorliebe geben, insbesondere muss es dann einen objektiven Anlass geben, der für andere logisch nachvollziehbar ist. Das ist etwas, was ich dabei gelernt hab als ich mit manchen rein subjektiven Ansichten gehörig auf die Nase gefallen bin. Ein Revoluzer ohne Substanz ist ein recht einsamer Kämpfer, und selten erfolgreich mit seiner Strategie. Aber vielleicht bin ich ja auch nur jung genug, sowas zu erkennen ;) |
Re: Code-Formatierung
Zitat:
- HasFormat(1) -> HasFormat(CF_TEXT) - Bezeichner so schreiben, wie sie deklariert sind. z.B. inc -> Inc etc. - Einrückungen nach Delphi Standard (so wie im Delphi VCL Code eingerückt wird)
Delphi-Quellcode:
program ReplaceTabs;
{$APPTYPE CONSOLE} uses SysUtils, Clipbrd; const tablen = 3; function Replace(const s: string): string; var ps, pr: PChar; len: Integer; begin SetLength(Result, Length(s) * tablen); if s = '' then Exit; ps := PChar(s); pr := PChar(Result); len := 0; repeat case ps^ of #9: begin len := tablen - len mod tablen; while len > 0 do begin pr^ := ' '; Inc(pr); Dec(len); end; end; #10, #13: begin pr^ := ps^; Inc(pr); len := 0; end; else begin pr^ := ps^; Inc(pr); Inc(len); end; end; Inc(ps); until ps^ = #0; pr^ := #0; SetLength(Result, Integer(pr) - Integer(PChar(s))); end; begin with ClipBoard do if HasFormat(CF_TEXT) then AsText := Replace(AsText); end. |
Re: Code-Formatierung
Kennt ihr eigentlich
![]() Dann tipp ich wie ein Henker und schere mich nicht um Einrückung, Tab, Leerzeichen usw. Ich drücke einfach ab und an 'Ctrl+D' (den Hotkey kann man sich aussuchen :shock: ). Dann ist mein Quelltext top und entsprechend irgendwelcher Styleguides stringent formatiert. Und ich kann vor allen Dingen einstellen, ob ich 2 oder 3 (oder sogar 4!) Leerzeiohen für die Einrückung will. :cheer: Damit geht dann sogar 'Schipp und Kleb' in die DP, ohne das ich nachdenken muss. Ach, und das Tolle ist: Bekomme ich mal Code von einem Kollegen, der augenkrebstechnisch formatiert ist, Einfach "Ctrl+D" und die Sache ist gegessen. Ich bin mir ziemlich sicher, das es auch andere gute und vermutlich auch bessere Codeformatter gibt, aber ich bin nun mal bei diesem Teil geblieben. |
Re: Code-Formatierung
Zitat:
Ja, mir ist der Fehler auch gleich beim morgendlichen Durchlesen aufgefallen. Ich hatte gehofft, dass es niemand merkt :oops: Edit: das Delfor gibt es übrigens in einer ![]() |
Re: Code-Formatierung
Zitat:
|
Re: Code-Formatierung
Zitat:
Sherlock |
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Fragen / Anregungen zur DP" nach "Tools rund um Delphi" verschoben.
Für OpenSource ist es etwas wenig |
Re: Code-Formatierung
Hallo,
in diesem Zusammenhang noch eine Frage: DelForEx und Konsorten formatieren ja immer den gesamten Quelltext einer Unit. Kennt jemand einen Source-Formatter der nur Teile einer Unit, z.B. die aktuelle Methode oder eventuell sogar nur einen selektierten Textteil formatieren kann? Danke schon mal, Ralf |
Re: Code-Formatierung
Zitat:
CF_TEXT Hab ich geändert. Ich hatte bewußt nicht CF_TEXT verwandt, weil ich nicht die Windows-Unit einbinden wollte. Ich war der Meinung, daß dadurch die .exe größer wird, was aber nicht der Fall ist. Bezeichner Da bin ich mit mir selbst auf Kriegsfuß. Zum Beispiel bei "Integer" schreibe ich es mal klein, mal groß. Einrückungen nach Delphi Standard Hatte ich schon kommentiert. Ich halte nichts von solchen Standards, weil die Frage, ob ein Code übersichtlich ist, eine sehr subjektive Angelegenheit ist. Da sollte m.E. jeder für sich "seinen" Standard finden. Daß einheitliche Formatierungen verwendet werden sollten, wenn mehrere im Team arbeiten oder Source-Codes von Software-Herstellern "verkauft" werden, ist klar. Wenn aber jemand (so wie ich) nur für sich allein arbeitet, dann sollte er die Formatierung verwenden die er für richtig hält. (Vermutlich aus genau diesem Grund überläßt es Delphi ja dem User, seine bevorzugten Einstellungen zu verwenden.) Aber vielleicht findet sich hier ja mal jemand, der ein Programm schreibt, daß (ähnlich wie meines) Sourcetexte in den Delphi Standard bringt. |
Re: Code-Formatierung
Ihr habt Probleme ... :wall:
|
Re: Code-Formatierung
Zitat:
![]() |
Re: Code-Formatierung
Zitat:
Ich will meinen Source-Text ja nicht verändern (damit ihn andere besser lesen können, ich selbst aber nicht mehr). Was ich gern hätte, ist ein Programm, das nicht Source-Dateien verändert, sondern den im Clipboard befindlichen Text umformatiert. Aus diesem Grund macht das ja mein Programm so. Ich will und werde mich nicht an Styleguides anpassen, aber ich will, wenn es ohne nennenswerten Aufwand möglich ist, gerne meine Codes so hier reinstellen, wie es der Styleguide vorgibt. |
Re: Code-Formatierung
Das wäre doch was für die Featurelist der DP2XYZ! Automatischer Code-Beautifier. Sowas gibt's doch bestimmt auch schon fertig als Plugin oder so.
|
Re: Code-Formatierung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz