AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Source Code Formater

Ein Thema von Monday · begonnen am 17. Aug 2015 · letzter Beitrag vom 10. Jul 2021
Antwort Antwort
Seite 2 von 3     12 3      
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.123 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Source Code Formater

  Alt 8. Jul 2021, 15:54
was ist denn aktuell (2021) der bester code Formater für Delphi ?
  1. ich hätte gerne einheitliche Schreibweise für alle var's , Befehle etc. , also immer so was wie FMeineVar : String; . das F bei Lokalen Vars ist zwingend
  2. typen müssen immer als TMyObject benannt werden
  3. .....
  4. das ganze Formatierungs Thema kann via XML konfiguiert werden


Hab so was bei IntelliJ & Java , wäre auch cool wenn der Delphi Code so ordentlich dann wäre.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.347 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Source Code Formater

  Alt 8. Jul 2021, 20:39
Der beste ist finde ich der in Delphi integrierte mit neu eingestellter Breite (z.B. 130 Zeichen, was ich auch im Editor selbst einstelle). Der funktioniert meistens gut und hält sich ohne weitere Einstellungen an die Standardformatierung.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#13

AW: Source Code Formater

  Alt 8. Jul 2021, 20:57
Ein Teil deiner Forderungen hat aber nichts mit der Formatierung zu tun, sondern mit Namenskonventionen. Das wird ein reiner Formatter nicht leisten können.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Source Code Formater

  Alt 9. Jul 2021, 10:43
Der Formatter der von Delphi mitgeliefert wird, wird von EMBT "gepflegt" und sollte eigentlich immer auf dem aktuellen Stand sein...
Ich einer perfekten Welt.

Mir geht es aber um mehr bei der Sourcecode-Formatierung.

Ich habe schon vor langer Zeit "rumgefragt", wer mir bei der Programmierung des ultimativen Formatters helfen möchte...
Die, die sich gemeldet haben, haben bisher keine einzige Zeile dazu beigetragen.

Da ich meinen Focus momentan auf #DMVVM gelegt habe, komme ich leider selber auch nicht dazu...
Ohne Erklärungen wird man den Source nicht verstehen, daher ist das Repo nicht public.

Ich will Ende des Jahres nochmal einen Blog-post dazu machen und den Fortschritt zeigen.

was ist denn aktuell (2021) der bester code Formater für Delphi ?
Vielleicht kann ich die Frage dann 2022 beantworten.
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.123 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Source Code Formater

  Alt 9. Jul 2021, 16:52
vielleicht wäre so was wie genormte Coding Styles eine Lösung.

In Java sind doch getter und setter nicht an genormte Namen gebunden, d.h.
durch beliebig unglückliche Funktionsnamen wird dann der Code auch schwer verständlich.
In Delphi gibt dafür die Properties , aber das set.... und get.... ist halt nicht zwingend, dann kann der Code halt auch wieder "Übel" aussehen

Ein Code Review Tool wäre hier perfekt.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Source Code Formater

  Alt 9. Jul 2021, 18:16
Ich arbeite immer noch an meinem Optimizer.

Der wird auch Codevervollständigung und -Änderung vereinfachen - insbesondere was Interfaces und deren Klassenimplementation betrifft.

Hier mal ein kleines Beispiel: https://www.delphipraxis.net/1402961-post3.html

Aus "prop Firstname: String;" in einer Klassendeklaration wird auf Knopfdruck ein komplettes Property mit Getter (_get_Firstname), Setter (_set_Firstname) und privatem Feld (fFirstname).
Die Präfixe und die Codebausteine lassen sich variabel definieren.

Wird das Property in der Form nachträglich in einem Interface aufgenommen, wird die Vervollständigung in allen Klassen durchgeführt, die das Interface verwenden (auch später in anderen Projekten, die das Interface nutzen).

Dazu gibt es gewisse Vorgaben, die man schon in dem Interface einrichten kann. So kann man z.B. schon im Interface festlegen, dass die Klassenmethoden virtuell sein sollen oder der Parameter im Setter als "const". Die Einstellungen werden dann bei der Klassenvervollständigung gleich berücksichtigt (wenn die Methoden neu angelegt werden).

Die Voreinstellungen kommen i.d.R. nur bei Neuerzeugungen von Eigenschaften, Methoden und Feldern zum Tragen. Man kann aber auch Änderungen nachträglich erzwingen.
Hat man Methoden in Klassen z.B. nicht virtuell angelegt, kann man dies durch einen Schalter in der Interface- oder Klassenstruktur korrigieren.
Das könnte dann so aussehen: "prop Firstname: String; !vi"
So würden alle Getter und Setter der Property in allen verwendenden Klassen in "virtuell" geändert werden.

Auch Umbenennungen kann man erzwingen: "prop Firstname: String; !rn First_Name" !rt String[100]
Damit würde der Propertyname und Typ entsprechend durchgehend umbenannt (allerdings nur bezüglich der Getter und Setter und des privaten Feldes "fFirst_Name" (incl. im Codeblock der Getter und Setter)).
Ob man mal irgendwann ein echtes Refactoring innerhalb der IDE anstoßen kann, kann ich derzeit nicht einschätzen. Da muss man ggf. mal noch den besten Weg finden.)

Wenn "First_Name" im aktuellen Projekt nochmal umbenannt wird in "FirstName" und dieses Interface auch in einem anderen ProjektOld verwendet wird, in dem der Stand noch "Firstnamwe" lautete, wird der Optimizer "Firstname" in "FirstName" ändern und den Zwischenschritt überspringen.


Ob das jetzt Deinem Wunsch nahe kommt, kann ich nicht wirklich einschätzen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: Source Code Formater

  Alt 10. Jul 2021, 09:03
vielleicht wäre so was wie genormte Coding Styles eine Lösung.

In Java sind doch getter und setter nicht an genormte Namen gebunden, d.h.
durch beliebig unglückliche Funktionsnamen wird dann der Code auch schwer verständlich.
In Delphi gibt dafür die Properties , aber das set.... und get.... ist halt nicht zwingend, dann kann der Code halt auch wieder "Übel" aussehen

Ein Code Review Tool wäre hier perfekt.
FixInside macht genau das und wird Dir auch eine Warnung aus, wenn der Getter oder Setter nicht dem Namepattern entspricht.

Property Foo : Integer read GetMyFoo; // Warning.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#18

AW: Source Code Formater

  Alt 10. Jul 2021, 09:11
Hier mal ein kleines Beispiel: https://www.delphipraxis.net/1402961-post3.html

Aus "prop Firstname: String;" in einer Klassendeklaration wird auf Knopfdruck ein komplettes Property mit Getter (_get_Firstname), Setter (_set_Firstname) und privatem Feld (fFirstname).
Die Präfixe und die Codebausteine lassen sich variabel definieren.
Ich habe ja sicherlich auch meine Eigenheiten wie ich etwas formatiere, aber Getter mit _ und dann nochmal _ for dem Name, ist ja voll gruselig.

Da wo ich vom aktuellen Style Guide abweiche hat es wirklich gute Gründe, aber in den Grundlegenden Dingen - (bis auch Kleinigkeiten) - kann ich mich an den Style Guide halten.!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.347 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Source Code Formater

  Alt 10. Jul 2021, 09:38
Ich habe ja sicherlich auch meine Eigenheiten wie ich etwas formatiere, aber Getter mit _ und dann nochmal _ for dem Name, ist ja voll gruselig.
Unterstriche per se sind ja laut Styleguide nur bei Importen aus anderen Sprachen erlaubt (Windows Messages, ...).

Aufgrund der vergangenen Diskussionen im Forum glaube ich, dass er durchaus weiß, dass er das anders macht als 99% der Delphi-Entwickler, aber jedem das Seine. Solange man Quelltexte nicht im Team bearbeitet oder veröffentlicht, ist das ja ziemlich egal.

Ich möchte solche Quelltexte nur nicht lesen müssen. Deshalb kaufe ich auch grundsätzlich keine Komponenten, bei denen die Beispiele schon deutlich anders als im Styleguide beschrieben aussehen.
Meistens gibt es ja Alternativen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Source Code Formater

  Alt 10. Jul 2021, 09:42
Ich habe ja sicherlich auch meine Eigenheiten wie ich etwas formatiere, aber Getter mit _ und dann nochmal _ for dem Name, ist ja voll gruselig.
So sieht man immer sofort, dass man einen Getter oder Setter vor sich hat, der normalerweise nicht aufzurufen ist.
Aber wie gesagt, das ist ja nicht zwingend.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz