AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte UnitOptimizer
Thema durchsuchen
Ansicht
Themen-Optionen

UnitOptimizer

Ein Thema von stahli · begonnen am 25. Mai 2018 · letzter Beitrag vom 31. Okt 2021
Antwort Antwort
Seite 6 von 8   « Erste     456 78      
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
383 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: UnitOptimizer

  Alt 12. Okt 2020, 06:58
Erst einmal, oder noch einmal: Respekt für dieses Projekt!

Tatsächlich muss ich aber sagen, dass mich die Komplexität der ganzen Möglichkeiten, die Du jetzt ermöglichst bzw. ermöglichen willst, schon fast erschlägt.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: UnitOptimizer

  Alt 12. Okt 2020, 08:58
Ja, das kann ich verstehen. Geht mir gerade auch so.
Eine gute Lösung will (muss) ich aber finden...

Ich versuche das mal zusammenzufassen:

Ursprünglich wollte ich nur eine bessere Klassen- und Interfacevervollständigung auf Knopfdruck und eine Sortierung der Units.

Da ich dafür ohnehin die komplette Unit zerlegen und neu zusammenbauen muss, kam ich auf die Idee, auch einen neuen Formatter einzubauen, der einige sinnvolle Optionen anbietet.
Nachher kamen dort noch die virtuellen Tabs hinzu, so dass Code untereinander ausgerichtet werden kann.

Die drei Dinge will ich nun UNBEDINGT!

Dann hat sich herausgestellt, dass die normale Suchfunktion mit unterschiedlichen Einrückungen nicht wirklich klar kommt.

Entsprechend habe ich versucht, da auch eine Lösung zu finden.

Bis hierher (was ich bisher so gezeigt hatte) finde ich das auch praktikabel und deutlich übersichtlicher als die normale Suche. Es gibt die schnellsuche in der aktuellen Unit oder eine Vollsuche in vielen Units.

Die Suchergebnisse werden m.E. besser aufbereitet und der Vorgang der Suche ist etwas angenehmer.
Wenn man ein Wort oder einen einfachen Ausdruck sucht hat man keine Nachteile und etwas hübschere Ergebnisse.

Man kann aber auch komplexere Einstellungen vornehmen - wenn man es halt braucht. Hier erkenne ich auch noch keinen Nachteil.


Wo ich jetzt auch nicht weiter komme ist halt eine komplexere Suche (mit Einstellungen pro Suchwort) und das vor allem das Suchen&Ersetzen.

Die Möglichkeit, für jedes Suchwort individuell Sucheinstellungen vorzugeben, ist sicherlich idR verzichtbar. Andererseits braucht man ja keine individuellen Einstellungen pro Wort vornehmen, wenn man es nicht braucht.

Das Suchen&Ersetzen muss ich aber schon irgendwie ermöglichen, wenn ich die originalen Suchen-Formulare ersetzen will...


Da ich Klassenvervollständigung, Unitsortierung und Formatierung mit virtuellen Tabs UNBEDINGT will, muss ich eine gute Lösung für das Suchen bzw. Ersetzen finden.

Mein ursprüngliches Anliegen war das nicht, aber jetzt ergibt sich doch die Notwendigkeit und ein Großteil funktioniert ja auch schon ganz gut.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (12. Okt 2020 um 09:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: UnitOptimizer

  Alt 27. Okt 2020, 23:28
Hallo zusammen,

ich bin jetzt auf dem Weg, das Tool real einzusetzen und stoße nach und nach noch auf einige Dinge, die ich noch anpassen muss oder sollte.
Insgesamt läuft es aber schon ganz gut und vor allem stabil!

Ich will Euch mal fragen, wie Ihr die Formatierung der Case-Anweisung sehen würdet bzw. welche Optionen Ihr dazu für wünschenswert haltet.
In der Beziehung bin ich selbst nicht ganz schlüssig.
Vor allem weiß ich natürlich auch nicht, welche Formatierungen (Einrückungen, mit oder ohne Umbrüche) da so im Umlauf sind und auf welche "Überraschungen" sich das Tool einstellen muss.

Ein paar Rückmeldungen und Vorschläge würden mir sehr helfen...

Video: https://youtu.be/Q2All1u5T0M (10 Min)
Miniaturansicht angehängter Grafiken
27-10-_2020_23-07-17.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: UnitOptimizer

  Alt 28. Okt 2020, 08:52
Ich will Euch mal fragen, wie Ihr die Formatierung der Case-Anweisung sehen würdet bzw. welche Optionen Ihr dazu für wünschenswert haltet.
In der Beziehung bin ich selbst nicht ganz schlüssig.
Servus und Gratulation zu diesem schönen Projekt!

In meiner Erfahrung hat es sich als vorteilhaft gezeigt, wenn bei den Schleifen und Verzweigungen _immer_ begin und end dazugeschrieben werden. So kann man sich blind darauf verlassen.

Daher mein case-Vorschlag :

Delphi-Quellcode:
case Bedingung of
  1:
    begin
      Tuwas;
    end;
  2:
    begin
      Abwarten;
    end;
  else
    begin
      MachNix;
    end;
end;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.687 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: UnitOptimizer

  Alt 28. Okt 2020, 10:36
Meine Bevorzugte Einrückung:

Delphi-Quellcode:
case bla of
  0: begin
    doSomething;
  end;
  1: begin
    doSomethingElse;
  end;
else
  DefaultCode;
end;
Auch ich verwende meist begin/end, auch wenn es nicht unbedingt notwendig ist.

Wenn ich mir eine Syntax wünschen dürfte, wäre sie:
Delphi-Quellcode:
case bla of
  0:
    doSomething;
  end;
  1:
    doSomethingElse;
  end;
else
  DefaultCode;
end;
Also ohne begin, aber das geht ja leider nicht.
Thomas Mueller
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: UnitOptimizer

  Alt 28. Okt 2020, 10:47
Zitat:
Also ohne begin, aber das geht ja leider nicht.
Nein?
Klar geht das solange man nur eine Funktion -> Aufruf im case verwendet.
Dein End hat da nichts zu suchen.

Delphi-Quellcode:
case bla of
  0:
    doSomething;
  1:
    doSomethingElse;
else
  DefaultCode;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: UnitOptimizer

  Alt 28. Okt 2020, 10:54
Für den Else-Zweig funktioniert das aber jetzt schon. Da wäre ein zusätzliches begin-end überflüssig:
Delphi-Quellcode:
  case Bedingung of
    1: begin
        Tuwas;
      end;
    2: begin
        Abwarten;
      end;
  else
    MachNix;
    MichWasAnderes;
  end;
Siehe: http://docwiki.embarcadero.com/RADSt...se-Anweisungen
Zitat:
Jeder in einer caseList angegebene Wert muss innerhalb der case-Anweisung eindeutig sein. Teilbereiche und Listen dürfen sich nicht überschneiden. Eine case-Anweisung kann über eine abschließende else-Klausel verfügen:
Delphi-Quellcode:
 case selectorExpression of
   caseList1: statement1;
    ...
   caselistn: statementn;
 else
   statements;
 end
statements ist eine Folge von Anweisungen, die durch Strichpunkte voneinander getrennt sind. Bei der Ausführung einer case-Anweisung wird höchstens eine statement1 ...statementn-Anweisung ausgeführt. Dabei handelt es sich um genau diejenige, deren caseList-Wert mit dem von selectorExpression identisch ist. Ist kein entsprechender selectorExpression-Wert in caseList vorhanden, werden die Anweisungen in der else-Klausel (falls vorhanden) ausgeführt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.687 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: UnitOptimizer

  Alt 28. Okt 2020, 11:23
Zitat:
Also ohne begin, aber das geht ja leider nicht.
Nein?
Klar geht das solange man nur eine Funktion -> Aufruf im case verwendet.
Dein End hat da nichts zu suchen.
Delphi-Quellcode:
case bla of
  0:
    doSomething;
  1:
    doSomethingElse;
else
  DefaultCode;
end;
Tja, genau das ist das Problem: Ich will ein End, aber eigentlich kein Begin.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#9

AW: UnitOptimizer

  Alt 28. Okt 2020, 11:37
Ich will Euch mal fragen, wie Ihr die Formatierung der Case-Anweisung sehen würdet bzw. welche Optionen Ihr dazu für wünschenswert haltet.
In der Beziehung bin ich selbst nicht ganz schlüssig.
Ich finde die Schreibweise aus dem Styleguide am übersichtlichsten (wobei ich die erste wegen 1 Befehl pro Zeile suboptimal finde und die Leerzeilen aus der zweiten überflüssig und daher die letzte präferiere):
Zitat:
Delphi-Quellcode:
  // CORRECT
  case Control.Align of
    alLeft, alNone: NewRange := Max(NewRange, Position);
    alRight: Inc(AlignMargin, Control.Width);
  end;
  

  // CORRECT
  case x of

    csStart:
      begin
        j := UpdateValue;
      end;

    csBegin: x := j;

    csTimeOut:
      begin
        j := x;
        x := UpdateValue;
      end;
      
  end;
      
  // CORRECT
  case ScrollCode of
    SB_LINEUP, SB_LINEDOWN:
      begin
        Incr := FIncrement div FLineDiv;
        FinalIncr := FIncrement mod FLineDiv;
        Count := FLineDiv;
      end;
    SB_PAGEUP, SB_PAGEDOWN:
      begin
        Incr := FPageIncrement;
        FinalIncr := Incr mod FPageDiv;
        Incr := Incr div FPageDiv;
        Count := FPageDiv;
      end;
  else
    Count := 0;
    Incr := 0;
    FinalIncr := 0;
  end;
Vor allem weiß ich natürlich auch nicht, welche Formatierungen (Einrückungen, mit oder ohne Umbrüche) da so im Umlauf sind und auf welche "Überraschungen" sich das Tool einstellen muss.
Das sollte dem Parser ja egal sein wie es vorher war.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#10

AW: UnitOptimizer

  Alt 28. Okt 2020, 12:06
Zeilenumbrüche, Leerzeichen und Tabs sind erstmal vollkommen egal. (eigentlich sogar alles von #1 bis ' ')
Einzige Ausnahme ist der Zeilenumbruch hinter //-Kommentaren.
Ein ; vor einem END wäre auch "optional", sowie doppelte ;; ... aber ich empfehle immer ; zu schreiben (außer vor einem ELSE bzw. nach einem THEN/DO)

Das ist ja auch der Grund, warum ein Code-Formatierer alles umformatieren und nach "belieben" Zeilenumbrüche und Einrückungen einfügen/entfernen/ändern kann.
(nicht so wie bei Python, wo die Einrückung essenziell ist und mit zum Programm-Code gehört)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (28. Okt 2020 um 12:08 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 8   « Erste     456 78      


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 18:53 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