Codetools/de

From Lazarus wiki
Revision as of 19:15, 19 April 2011 by Billyraybones (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) русский (ru)

Was sind die CodeTools

Die CodeTools sind ein Lazarus-Package mit Werkzeugen zum Parsen, Untersuchen, Bearbeiten und Refaktorieren von Pascal-Quelltexten. Die CodeTools sind ein Modul für sich und unter der GPL lizensiert. Zahlreiche Beispiele darüber, wie Sie die CodeTools in Ihren eigenen Programmen einsetzen können, finden Sie unter 'components/codetools/examples'.

svn:

Verwendung der CodeTools ohne die IDE (gut für Testzwecke)

Sie können die CodeTools ohne die IDE verwenden. Dies kann zum Testen eines neuen Werkzeugs genutzt werden. Ein einfaches Beispiel ist

 <lazarusdir>/components/codetools/examples/methodjumping.lpi

Um die find declaration zu testen, müssen die CodeTools die Quellen analysieren, besonders die RTL- und FCL-Quellen. FPC ist ein sehr komplexes Projekt mit vielen Suchpfaden, Include-Dateien und Makros. Die CodeTools müssen alle diese Pfade und Makros kennen, um diesen Dschungel zu analysieren. Um dies alles einfach einzurichten, enthalten die CodeTools vordefinierte Schablonen für FPC, Lazarus, Delphi und Kylix Quellverzeichnisse. Betrachten Sie für ein find declaration Beispiel

 <lazarusdir>/components/codetools/examples/finddeclaration.lpi

Weil die FPC Quellen mehrere Versionen einiger Units enthalten und die FPC Quellen oft geändert werden, verwenden die CodeTools keine starre Pfadtabelle. Stattdessen scannen sie zuerst die gesamte FPC Verzeichnisstruktur und versuchen zu raten, welche Quelle die richtige ist für das gegenwärtige ZielOS und ZielCPU. Dieser Scan kann eine Weile dauern. Damit wird das Ergebnis gespeichert. Wann immer sich die FPC Quellen bewegt haben oder eine Unit umbenannt wurde, muss dieser Scan wiederholt werden. Die IDE erledigt diesen Rescan, wann immer das Compiler executable geändert wurde oder der Benutzer dies erzwingt mit 'Einstellungen > FPC-Quelltextverzeichnis neu einlesen'.

Verwendung der CodeTools in der IDE mit IDEIntf

Siehe das <lazarusdir>/examples/idequickfix/quickfixexample.lpk Package. Es demonstriert:

  • Wie man ein IDE Package schreibt.
 Wenn Sie es installieren, wird es ein Quick Fix Element registrieren.
  • Wie man ein Quick Fix Element schreibt für Compilermeldungen 'Parameter "Sender" not used'
  • Wie man die CodeTools verwendet um
     * eine Unit zu analysieren
     * conversion of Filename,Line,Column to codetools source position
     * finding a codetools node at a cursor position
     * finding a procedure node and the begin..end node
     * creating a nice insertion position for a statement at the beginning of
       the begin..end block
     * getting the indentation of a line, so that the new line will
       work in sub procedure as well
     * Code einzufügen mit den codetools