Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Wie wird Code Insight realisiert? (https://www.delphipraxis.net/94019-wie-wird-code-insight-realisiert.html)

C.Schoch 14. Jun 2007 20:23


Wie wird Code Insight realisiert?
 
Hi,
Ich möchte einen Quelltexteditor für ST schreiben.

Deshalb hätte ich gerne mal gewusst wie Code Insight bei Borland realisiert wird.

jbg 14. Jun 2007 20:38

Re: Wie wird Code Insight realisiert?
 
Delphi wirft den Kibiz-Compiler an. Und dieser liefert dann eine Liste mit Symbolen.

C.Schoch 14. Jun 2007 20:52

Re: Wie wird Code Insight realisiert?
 
Das hatte ich befürchtet.

Lässt sich das auch "einfacher" als mit einem Compiler realisieren? Da die Entwicklung eines Compilers ehrlich gesagt eine Nummer zu groß für mich scheint

mkinzler 14. Jun 2007 20:58

Re: Wie wird Code Insight realisiert?
 
Auf was kommt es dir an nur das Syntaxhighlighting?
SynEdit

Mackhack 14. Jun 2007 21:30

Re: Wie wird Code Insight realisiert?
 
Hi,

ist das was du suchst?

Meflin 14. Jun 2007 21:32

Re: Wie wird Code Insight realisiert?
 
Zitat:

Zitat von Mackhack
ist das was du suchst?

Öhm... ich glaube das war der falsche Link :mrgreen:
edit: grade bearbeitet :lol:


Mackhack 14. Jun 2007 21:34

Re: Wie wird Code Insight realisiert?
 
Jepp. War das Bildle. Ich schrieb hier auch mal n Beispiel fuer Syntaxhighlighting. Aber wie so oft, kann ichs mal wieder nicht mehr finden.

DMW 14. Jun 2007 21:37

Re: Wie wird Code Insight realisiert?
 
Bin ich der einzige, dem ST nichts sagt?

mkinzler 14. Jun 2007 21:38

Re: Wie wird Code Insight realisiert?
 
Zitat:

Bin ich der einzige, dem ST nichts sagt?
SmallTalk?

C.Schoch 15. Jun 2007 00:11

Re: Wie wird Code Insight realisiert?
 
Mal zur Erklärung:
Zitat:

ST - Structured Text
ist eine textuelle Programmiersprache gemäß IEC 61131-3 mit der Sie eine ST-Quelle erstellen, die mehrere Programme umfassen kann.
Das sieht dann so aus:
Code:
    IF (C1.actormonitoring.drivestate = ACTIVE AND
            C1.actormonitoring.power = ACTIVE AND
            C1.control = ACTIVE AND
            C1.servomonitoring.controlstate = ACTIVE) THEN
               
            cmd.b_axis_StateOn[i_Achs_No] := TRUE ;
           
     ELSE  
            cmd.b_axis_StateOn[i_Achs_No] := FALSE ;
           
     END_IF ;
 
     rt_Servo (clk := (cmd.b_axis_StateOn[i_Achs_No])) ;
Dabei ist:
C1 so was wie die Instanz einer Klasse
actormonitoring ein Record
drivestate ein Element des Records welches einem Aufzählungstypen entspricht

Ich möchte sobald ich "C1." eintippe die alle Elemente von C1 in einer Liste anzeigen und auswählbar machen (so ähnlich wie Delphi)

Syntaxhighlighting usw. soll natürlich auch mit Implementiert werden, das sollte aber nicht das Problem sein.

Matze 15. Jun 2007 05:40

Re: Wie wird Code Insight realisiert?
 
Zitat:

Zitat von C.Schoch
Ich möchte sobald ich "C1." eintippe die alle Elemente von C1 in einer Liste anzeigen und auswählbar machen (so ähnlich wie Delphi)

Syntaxhighlighting usw. soll natürlich auch mit Implementiert werden, das sollte aber nicht das Problem sein.

Das geht alles recht einfach mit SynEdit. Diese Komponentensammlung enthält eine schöne Demo in der einige Features demonstriert werden. Falls es unter den zahlreichen vordefinierten SyntaxHighlightern des SynEdits keiner für Structured Text dabei ist, kannst du dir einen selbst erstellen. Meines Wissens ist dies auch in den Demos erklärt und wenn nicht, wirst du in der DP fündig.

DP-Maintenance 15. Jun 2007 05:45

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "Sonstige Fragen zu Delphi" verschoben.
Da es nun weniger im die Delphi-IDE, als um die eigene Umsetzung geht, verschiebe ich das Thema.

Roland Wind 15. Jun 2007 06:59

Re: Wie wird Code Insight realisiert?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi

Ich hatte das gleiche Problem. Habe eine komplette IDE mit Debugger für ST (aber leider nicht IEC61131 Standard) realisiert. Die Bordmittel von SynEdit selbst reichen jedoch dafür nicht aus. Ich habe für diesen Zweck einen eigenen Parser geschrieben, der eine Analyse des Quelltextes vornimmt. Dieser funktioniert aufgrund der Tokens, die vom jeweiligen Syntaxhighlighter kommen. Diese werden dann in mehreren Threads (für lokale und globale Variablen) analysiert und gespeichert. Sobald Änderungen am Quellcode vorgenommen werden, werden diese Tokens dann neu analysiert.

Habe eine Datei angehängt, wo du das Endergebnis dann siehst. Wenn du Hilfe bei der Implementierung brauchst, können wir gern mal darüber quatschen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 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