Ergänzung der IDE um eigene Deklarationshinweise

Für Fragen rund um die Ide und zum Debugger
Antworten
zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von zappa2 »

Hält man in der IDE die Maus über einer Deklaration wie bspw. TEdit.OnKeyPress erscheinen doch im angezeigten Hint neben der Deklaration und des Sourcefiles u.a. auch Hinweise unter der Rubrik Description.

Gibt es einen einfachen Weg, solch eine Description projektbezogen auch für eigene Deklarationen anzulegen? Es ist tlw. recht umständlich, wenn man jedesmal bspw. zu umfangreichen eigenen Konstantendeklarationen o.ä. scrollen muss.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von wp_xyz »

Das macht man mit fpdoc. Siehe viewtopic.php?f=18&t=12025&p=108100&hilit=fpdoc#p108100

Sind die Hilfe-Texte für ein Projekt oder ein Package gedacht?

zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von zappa2 »

Ich danke für die schnelle Hilfe. Ich hatte allerdings gehofft, dass es einfacher geht ;-)

Quasi wie eine Art Kommentar mit optionaler Direktive.

Ich brauche diese Kommentare nur für bestimmte Units, die ich dann aber in diversen Projekten einsetze.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von wp_xyz »

So schlimm ist das nicht, kostet nur etwas Vorbereitung:

Zunächst denke ich, dass du musst gemeinsam genutzten Units in ein Package packen und dieses dann in den jeweiligen Projekten als benötigtes Package einbinden musst (auf keinen Fall einen Pfad zu den Quell-Dateien setzen). Das zum allgemeinen Vorgehen, hat noch nichts mit den Hilfe-Popups zu tun, aber sonst funktioniert's nicht. Da du wahrscheinlich nur Runtime-Routinen drinnen haben wirst, erkläre des package zum Runtime-Package, dann musst du nichts installieren, sondern nur einmal das Package kompilieren.

Nun zu den Popups: Bei einem Package kannst du unter "Einstellungen" > "IDE-Integration" > "FPDoc-Einstellungen" einen Ordner (idealerweise im Package-Verzeichnisbaum) eintragen, in dem die Hilfetexte (als xml-Dateien) abgelegt werden sollen.

Öffne aus dem "Ansicht"-Menü den FPDoc-Editor. Öffne eine der Units, für die du Hilfetexte schreiben willst. Kilcke auf "Hilfepunkt erzeugen" und das Save-Icon - nun hast du eine (leere) XML-Hilfe-Datei in dem oben angelegten FPDoc-Ordner. Diese funktioniert schon: fahre mit der Maus über die diversen Bezeichner in dieser Unit, und es poppen zumindest die Aufrufparameter von Prozeduren etc. auf.

Um einen speziellen Hilfetext zu schreiben, klicke auf den Bezeichner, zu dem der Hilfetext gehören soll. Ich spiele das gerade für die Komponente TKnob aus dem Industrial-package durch: Datei "mknob.pas" laden, unter "type" auf TKnob klicken. Nun kannst du im Feld "Kurz" eine Kurzzusammenfassung über den Sinn und Zweck der Komponente schreiben - bei TKnob wäre das: "Drehknopf für die Einstellung von Integer-Werten". Speichern. Und wenn du nun über ein "TKnob" im Quelltext fährst, das irgendwo stehen kann, erscheint dieser Hilfe-Text. Wiederhole das für alle Bezeichner, die du dokumentieren möchtest.

Um einen bereits geschriebenen Text zu bearbeiten, einfach den Cursor wieder auf den betreffenden Bezeichner setzen, und der entsprechende Teil der xml-Datei wird automatisch geladen.

Wenn du einen längeren Text schreiben willst, tu das unter der Lasche "Beschreibung".

Die Buttons an der Seite erlauben HTML-Code einzuschleusen, dass man z.B. das aktuell markierte Wort fett erhält. Man kann auch Links zu anderen Hilfepunkten einbauen, usw. usf.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von fliegermichl »

Das ist echt perfekt. Ich kannte das noch gar nicht.
Mich hat es schon immer gestört, Kommentare direkt in den Quelltext zu schreiben, weil das schnell unübersichtlich wird und in separaten Dateien muss dann erst wieder die richtige Datei gefunden werden und in dieser die richtige Stelle etc.

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von kupferstecher »

wp_xyz hat geschrieben:Das macht man mit fpdoc.

Wird damit auch die "F1"-Hilfe erzeugt?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von wp_xyz »

kupferstecher hat geschrieben:Wird damit auch die "F1"-Hilfe erzeugt?

Du kannst fpdoc verwenden, um aus den xml-Hilfetexten die chm-Hilfedatei zu erzeugen. Die Hilfedateien lcl.chm und lazutils z.B. werden mit dem speziellen Programm build_lcl_docs erzeugt (docs/html), das einen Wrapper für fpdoc darstellt - am Quelltext sieht man in etwa wie das geht. Vor kurzem habe ich für TAChart einen Batch hochgeladen, mit dem man die chm-Datei durch einen direkten fpdoc-Aufruf erzeugen kann (components/tachart/fpdoc/chm). Allerdings weiß ich noch nicht, wie man diese Datei so in die IDE einbinden kann, dass sie beim Druck auf F1 erkannt wird.

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von kupferstecher »

Hallo wp,

danke für die Antwort!

Da muss ich mich mal mit beschäftigen, ich ärger mich immer, wenn ich die eigenen Programme nicht mehr richtig versteh~

zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von zappa2 »

Nochmals vielen Dank für die erschöpfenden Tipps!

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Ergänzung der IDE um eigene Deklarationshinweise

Beitrag von marcov »

wp_xyz hat geschrieben: Allerdings weiß ich noch nicht, wie man diese Datei so in die IDE einbinden kann, dass sie beim Druck auf F1 erkannt wird.


Kann glaube ich noch nicht. Es gibt nur feste Eintrachten im help->help options->databases listbox. Aber vielleicht kann man das mit ein kleinem Hack ausbreiten.

Antworten