Kontextsensitive Hilfe in der IDE

Für Fragen rund um die Ide und zum Debugger
Antworten
braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Kontextsensitive Hilfe in der IDE

Beitrag von braunbär »

Momentan macht sie mich wahnsinnig - Ich würde gerne wissen, ob dieses Verhalten normal ist, oder ob bei meiner Installation irgend etwas verkehrt gelaufen ist. Sie scheint nur zu funktionieren, wenn das komplette Programm fehlerfrei kompilierbar ist, andernfalls bekomme ich eine Fehlermeldung z.B.:

Code: Alles auswählen

[Window Title]
Hilfe für dieses Thema nicht gefunden
 
[Content]
No help found for "C:\Pascal\fdComponents\fdEdit.pas" at (56,18)
 
[Abbrechen]
 

Die angegebenen Zahlen sind die Zeile und Spalten des nächsten gefundenen Syntaxfehlers - sogar wenn der Fehler viel weiter hinten im Programm steht als der Bezeichner, zu dem ich gerne Hife hätte.

In Delphi konnte ich einfach ohne Rücksicht auf die Pascal-Syntax einen Funktions- oder Klassennamen irgendwo in den Quelltext schreiben, und F1 drücken - dann wurde mir die Hilfe zu dem Ding angezeigt.

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

Re: Kontextsensitive Hilfe in der IDE

Beitrag von wp_xyz »

Das kann ich jetzt nicht unbedingt nachvollziehen. Ich habe folgendes gemacht: Ich habe bei einem compilierbaren Programm das "end;" einer Prozedur auskommentiert, bin nach oben zur Deklaration "Form1 = class(TForm)" gegangen, habe den Cursor in"TForm" gesetzt und F1 gedrückt. Dann kommt einwandfrei der Hilfetext zu TForm. Kommentiere ich dagegen das allerletzte "end." aus, erhalte ich die Fehlermeldung "No help found for unit ...".

Welche Version hast du (ich: Laz 2.1)? Was machst du genau?

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Kontextsensitive Hilfe in der IDE

Beitrag von braunbär »

Meine Version: Lazarus 1.8.4
Version Laz 2.1? Die gibt es?

Ich habe mich jetzt ein bißchen damit gespielt.
So allgemein wie ich es geschrieben habe stimmt es nicht, nicht jeder Syntaxfehler irgendwo im Programm löst diese Fehlermeldung aus.
Aber es ist doch sehr häufig so, dass F1 diese Fehlermedung bringt, wenn das Programm feherhaft ist.

Was definitiv nicht geht, ist, irgendwo in den Programmtext einfach den Bezeichner hinschreiben, zu dem man gerne Hilfe hätte. Das ist insofern besonders lästig, als z.B. gerade dann, wenn man nicht genau weiss, wie z.B. die Parameter einer Prozedur aussehen, die Hilfe-Taste die Hife verweigert. Und für mich nicht wirklich verständlich, weil die Hilfe braucht sich in so einem Fall um den Programmkontext überhaupt nicht kümmern.

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

Re: Kontextsensitive Hilfe in der IDE

Beitrag von wp_xyz »

braunbär hat geschrieben:Version Laz 2.1? Die gibt es?

Ja, die Version 2.0 steht in den Startlöchern, und zuvor wurde die Entwickerversion (trunk) von 1.9 auf 2.1 umbenannt.

braunbär hat geschrieben:So allgemein wie ich es geschrieben habe stimmt es nicht, nicht jeder Syntaxfehler irgendwo im Programm löst diese Fehlermeldung aus.
Aber es ist doch sehr häufig so, dass F1 diese Fehlermedung bringt, wenn das Programm feherhaft ist.

Mit den Details dazu kenne ich mich nicht aus, aber ich vermute das liegt an Cody/CodeTools o.ä - quasi dem zweiten Compiler der im Hintergrund läuft und während der Eingabe ständig den Quelltext analysiert, um Hilfestellungen geben zu können. Wenn dann ein Fehler vorliegt, schiebt dieser sich in den Vordergrund und blockert alles mögliche. Ich sehe das ständig, wenn ich Code für einen Eventhandler schreibe und mir plötzlich einfällt, z.B. dem Namen einer Komponente zu ändern: wenn dann der Quelltext nicht soweit fehlerfrei ist, dass jedes "begin" ein "end" hat, Klammern geschlossen sind o,ä., wird die Aktion unterbunden - sehr lästig! Dann hilft nur, den Quelltext mit falschen Komponentennamen weiterzuschreiben (was nicht schlimm ist, weil die IDE beim Umbenennen alle betroffenen Stellen erkennt), oder die gröbsten Fehler zu beseitigen oder auszukommentieren.

braunbär hat geschrieben:Das ist insofern besonders lästig, als z.B. gerade dann, wenn man nicht genau weiss, wie z.B. die Parameter einer Prozedur aussehen, die Hilfe-Taste die Hife verweigert.

Dir ist hoffentlich bewusst, dass die Hilfeseiten nicht unbedingt aktuell sind. Besser vertraust du den Popup-Fenstern, die sich nach dem Tippen einer '(' entweder automatisch oder per Shift+Ctrl-Space öffnen, oder du klickst mit gedrückter Ctrl-Taste auf dem Bezeichner, um die entsprechende Unit zu laden. Aber klar - das geht alles nicht, wenn ein grober Code-Fehler vorliegt.

Antworten