Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Delphi-Parser mit Anwendung "Referenzen suchen" (https://www.delphipraxis.net/204052-delphi-parser-mit-anwendung-referenzen-suchen.html)

DenkDirNix 19. Apr 2020 14:47


Delphi-Parser mit Anwendung "Referenzen suchen"
 
Liste der Anhänge anzeigen (Anzahl: 7)
Moinsen,

ich habe ein altes Tool (aus 2003 für Delphi7) mal etwas aufgefrischt und würde mich über freundliche oder hilfreiche Kommentare freuen. Motivation war die Unzulänglichkeit der IDE für die projektweite Suche im Quelltext und die Funktion "Referenzen suchen" (find References).

Was tut das Tool
  • Input ist ein übersetzbares Delphi-Projekt, eine Library oder Package. Die Entwicklung basiert auf dem Sprachumfang von Delphi 10.3.3.
  • Source-Files werden geparst und alle Elemente entsprechend der statischen Blockstruktur mit Typ-Informationen in einen TreeView einsortiert. Elemente sind im wesentlichen die Identifier, aber auch Pascal-Direktiven und -Attribute, Compiler-Direktiven und -Schalter, Literale und Dateinamen sowie falls gewünscht die Keywords.
  • Alle Referenzen (also textuelle Vorkommen) dieser Ids werden daneben als Liste von Code-Snippets angezeigt. Dazu der Referenz-Typ, also deklarierend, lesend, schreibend, weiterreichend. Alle Identifier in diesen Code-Snippets sind hyperlinked zum TreeView (per DoppelClick).

Nutzen
  • Zusätzlich zum üblichen funktionsbezogen-sequentiellen Blick auf die Anweisungen im Quellcode bekommt man schnellen Zugriff auf den "Lebenslauf" eines Identifiers.
  • schnelles projektweites und intelligentes (weil syntax- statt text-basiertes) Suchen und Umbenennen
  • Anbindung an IDE per Drag&Drop: Ziehen einer Referenz in die IDE springt zu dieser Codestelle
  • Filterung nach speziellen Nutzungen (z.B. ungenutzte Variablen, Generics, Overloads ,...)

Specials
  • Units dürfen fehlen. Nicht deklarierte Elemente werden in einer <Unresolved-unscoped>-Liste geführt. Natürlich ist solch ein Ergebnis nicht mehr exakt, trotzdem kann man idR damit arbeiten.
  • Ids aus System.pas sind rudimentär integriert, können nach Bedarf ergänzt werden.
  • Anzeige als Nassi-Shneiderman-Diagramm

Anzeige und Bedienung
  • siehe Hilfe-Datei

Aktueller Download aus meiner DropBox.

DenkDirNix 26. Apr 2020 12:07

AW: Delphi-Parser mit Anwendung "Viewer for Ids and References"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank @Rainer und @Michael für die freundlichen und dezenten Hinweise:thumb: auf den (vor)letzten Fehler im Parser. Es gibt doch Konstrukte in Object-Pascal von denen man nicht zu träumen wagte. Zum Beispiel:
Code:
- f( nil^ )                          // Delphi-source\vcl\vcl.imaging.gifimg.pas
- @@Methode                          // Delphi-source\rtl\common\System.Win.InternetExplorer\TOleWebBrowser.InitControlData
- raise ... at @pTry2;               // ist "at" Keyword oder Direktive?
- inherited                          // in Delphi-source\vcl.Tabs.pas, record-constructor TTabPos.Create
Das sollte jetzt funktionieren, im Anhang Version 0.9.0.
Die Bedeutung bleibt mir aber unklar. Weiß jemand was darüber?

DenkDirNix 11. Okt 2020 10:31

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Version 0.9.1 ist fertig und enthält
  • einen schnellen TreeView
  • Korrekturen im Scanner und Parser, getestet u.a. mit Delphi-Sourcen und -Samples
  • HotKeys zum Merken von Bezeichnern

Ich würde mich freuen über
  • Meldungen zu Problemen mit dem Parser (sollten eigentlich nicht mehr auftreten! :?)
  • Kommentare zur Bedienbarkeit (intuitiv ?) und Darstellung (zu bunt, unprofessionell ?)
  • eure Meinungen zum Nutzen der ganzen Sache:
    Als Entwickler hat man ja eher diesen liebevollen Mein-Projekt-Blick (das schönste Baby der Welt!), kennt das UI komplett auswendig und ist vom Mehrwert schnell begeistert.
    Wie sieht das für Fremd-Nutzer aus?
  • Hat tatsächlich niemand Ideen zu den seltsamen Ausdrücken aus Post#2 ?

DenkDirNix 5. Nov 2020 17:42

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Version 0.9.2 ist fertig und enthält
  • Drag&Drop zur IDE. Mit Positionierung, über SendInputHelper leider in Zeitlupe :)
  • erweiterte Filter-Funktionen

Ich würde mich immer noch freuen über
  • Meldungen zu Problemen mit dem Parser (sollten eigentlich nicht mehr auftreten!)
  • Kommentare zur Bedienbarkeit (intuitiv ?) und Darstellung (zu bunt, unprofessionell ?)
  • Vorschläge für weitere Filter

Ich staune etwas, dass niemand Ideen zu den seltsamen Ausdrücken aus Post#2 hat. Die haben meinem Parser bzw. der Einordnung in die Identifier-Hierarchie etwas zu schaffen gemacht, jetzt ignoriert er sie einfach! Wie haben die anderen Parser-Programmierer hier das gemacht?

delphifan2004 5. Nov 2020 19:04

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Klasse Arbeit.

Aber wenn ich versuche, das runter zu laden, meldet sich Windows Defender, behauptet das sei Schadsoftware und entfernt sie dann. Windows Defender Notification war deaktiviert.

Bitte mal prüfen, denn die Alarmmeldung kommt nicht nur bei der .exe, sondern auch bei der .zip Datei.

himitsu 5. Nov 2020 19:21

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
@delphifan: sieh es als False-Positive, was leider zu oft passiert.
https://www.virustotal.com/gui/file/...cdfa/detection
https://www.virustotal.com/gui/file/...4410/detection

@DenkDirNix: Hier in diesem Unterforum darfst du deinen ersten Post unbegrenzt lange/oft bearbeiten,
damit man dort übersichtlich die aktuellsten Infos und Dateien einfügen kann.
Sonst müssten Besucher womöglich umständlich in 200000 Antworten den letzten Beitrag von dir suchen.
Gleiche Dateinamen überschreiben/aktualisieren sich und Neue werden hinzugefügt.

DenkDirNix 5. Nov 2020 19:53

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Zitat:

@DenkDirNix: Hier in diesem Unterforum darfst du deinen ersten Post unbegrenzt lange/oft bearbeiten,
damit man dort übersichtlich die aktuellsten Infos und Dateien einfügen kann.
Sonst müssten Besucher womöglich umständlich in 200000 Antworten den letzten Beitrag von dir suchen.
Gleiche Dateinamen überschreiben/aktualisieren sich und Neue werden hinzugefügt.
Hallo himitsu,
der erste Post ist zumindest bzgl. der Bilder und Downloads auf dem aktuellen Stand. Trotzdem wollte ich mit einem neuen Post meine offenen Fragen nochmals in die Runde werfen. Vielleicht weiß ja jemand inzwischen was...

delphifan2004 5. Nov 2020 20:01

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Zitat:

Zitat von himitsu (Beitrag 1476742)

Also Virenscanner ausschalten und noch mal runter laden? Maxh ich jetzt mal. Hoffentlich bleibt mir die .zip Datei auch nach Neustart des Windeows Defenders erhalten! Ja, tut sie. Ok, so muss ich das also in so einem Fall in Zukunft machen. :)

Ich vermisse aber noch den Quellcode. Hatte vor Jahren mal ein IDE Projekt und da könnte ich dieses Feature gut gebrauchen. So wie Delphi das macht. Eine Interface Lösung würde aber auch helfen. Dann brauchte ich nur das Interface und eine DLL die das Interface implementiert. @DenkDirNix, kannst Du das machen?

DenkDirNix 5. Nov 2020 20:26

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Zitat:

Ich vermisse aber noch den Quellcode. Hatte vor Jahren mal ein IDE Projekt und da könnte ich dieses Feature gut gebrauchen. So wie Delphi das macht. Eine Interface Lösung würde aber auch helfen. Dann brauchte ich nur das Interface und eine DLL die das Interface implementiert. @DenkDirNix, kannst Du das machen?
Das Projekt ist noch in Arbeit, sowohl Scanner und Parser als auch das UI. Es wird noch einige Zeit vergehen bis ein wirklich "fertiger" Zustand erreicht ist.
Hast Du bis dahin vielleicht Hinweise zu meinen Syntax-Fragen aus Post#2 ?

DenkDirNix 11. Jan 2021 10:20

AW: Delphi-Parser mit Anwendung "Hyperlinked Browser for Ids and References"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Forum,

die aktuelle Version (siehe unter Beitrag #1) enthält neben dem projektweiten Suchen nach Bezeichnern aller Art jetzt auch Sortieren und Umbenennen.
Ich würde gerne noch mal meine Parser-Fragen wiederholen:

Was bedeuten diese Konstrukte aus den genannten Delphi-Sourcen?
Code:
- f( nil^ )                // vcl\vcl.imaging.gifimg.pas
- @@Methode                // rtl\common\System.Win.InternetExplorer\TOleWebBrowser.InitControlData
- inherited                // vcl.Tabs.pas, im record-constructor TTabPos.Create
Außerdem finde ich nicht in der Dokumentation:
Code:
- raise ... at @pTry2;     // ist "at" Keyword oder Direktive? Okay, Keyword sicher nicht :-)
- Compiler-Direktive $K    // ist beim automatischen Einfügen per Ctrl-O-O dabei
Hinweise aller Art sind willkommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.
Seite 1 von 2  1 2      

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