Hallo!
Ich baue mir gerade für meine Script-Sprache (hier wurde nur die erste Version davon vorgestellt, eine deutlich umfangreichere Version kommt aber noch) eine IDE und würde jetzt gerne eine Auto-Vervollständigung mit einbauen.
Das geht mit TSynAutoComplete und so irgendwie habe ich das auch hin bekommen.
Ich hätte das aber gerne so wie in Lazarus von der Schönheit her, aber ich komme mit dieser Komponente überhaupt nicht klar.
Im Netz gibt es keine Anleitung dafür wie man das Teil benutzt und im Lazarus-Code finde ich die richtige stelle trotz heftigen Suchens nicht.
Kann mir da irgendeiner weiterhelfen?
Eine kurze Anleitung/Ein Link oder auch nur die richtige stelle im Lazarus-Code?
Es muss doch schon irgend wer was damit gemacht haben.
Gruß Teekeks
Benutzung von TSynAutoComplete?
Re: Benutzung von TSynAutoComplete?
Hast du schon mal mit der rechten Maustaste auf die Komponente (in der Komponentenpalette) geklickt?
knight
knight
-
- Beiträge: 588
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: Benutzung von TSynAutoComplete?
Sicher, irgendwer, irgendwann hat damit schon mal was gemacht....
Ne fertige Anleitung ist mir leider auch nicht bekannt.
Lazarus benutzt das zwar, hat aber ne menge Extras implementiert => wie z.b custom-draw, deshalb sind die Einträge farbig.
Den Code in SynEdit findest du über die rechte Maus (Post von knight)
Den Lazarus extra Code in IDE/SourceEditor.pp (SVN Version), Zeile 109:
TSourceEditCompletion=class(TSynCompletion)
Achso, SourceEditor ist GPL, nicht LGPL.
Außerdem: In Lazarus wird ctrl-space von der IDE (auch in SourceEditor.pp) gehandelt. TSynAutoComplete wird also von außen gestartet (ansonsten kann das glaube ich auch selbst auf eine eingestellte Taste warten, um sich selbst zu starte (glaube ich)).
Wenn dann einmal gestartet, handelt es Tasten allerdings immer selbst.
Ne fertige Anleitung ist mir leider auch nicht bekannt.
Lazarus benutzt das zwar, hat aber ne menge Extras implementiert => wie z.b custom-draw, deshalb sind die Einträge farbig.
Den Code in SynEdit findest du über die rechte Maus (Post von knight)
Den Lazarus extra Code in IDE/SourceEditor.pp (SVN Version), Zeile 109:
TSourceEditCompletion=class(TSynCompletion)
Achso, SourceEditor ist GPL, nicht LGPL.
Außerdem: In Lazarus wird ctrl-space von der IDE (auch in SourceEditor.pp) gehandelt. TSynAutoComplete wird also von außen gestartet (ansonsten kann das glaube ich auch selbst auf eine eingestellte Taste warten, um sich selbst zu starte (glaube ich)).
Wenn dann einmal gestartet, handelt es Tasten allerdings immer selbst.
-
- Beiträge: 359
- Registriert: Mi 27. Mai 2009, 20:54
- OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
- CPU-Target: x86
- Wohnort: Cottbus
Re: Benutzung von TSynAutoComplete?
Aha!
Durch herum Experimentieren habe ich folgendes herausgefunden.
Folgender Text:
bewirkt das wenn man [Shift]+[Leertaste] drückt und vorher ein 'b' in SynEdit1 eingetippt hat, wird dieses b durch folgendes ersetzt:
Das ist zwar nicht das was ich gedacht hatte (ich dachte das wäre so ein Fenster, welches hochkommt wenn man bei Lazarus z.B. "Synedit1." eintippt).
Das was ich ursprünglich suchte ist die Komponente "TSynCompletion" (die deutlich einfachere zu bedienen ist
)
Viele grüße,
Teekeks
Durch herum Experimentieren habe ich folgendes herausgefunden.
Folgender Text:
Code: Alles auswählen
TForm1 = class(TForm)
SynEdit1: TSynEdit;
procedure FormCreate(Sender: TObject);
private
a:TSynAutoComplete;
end;
{...}
procedure TForm1.FormCreate(Sender: TObject);
begin
a:=TSynAutoComplete.Create(self);
a.AddEditor(SynEdit1);
a.AutoCompleteList.Text:='b'+
#10'=['+
#10'=|'+
#10'=]';
end;
wobei | für die Caret-Position steht.[
|
]
Das ist zwar nicht das was ich gedacht hatte (ich dachte das wäre so ein Fenster, welches hochkommt wenn man bei Lazarus z.B. "Synedit1." eintippt).
Das was ich ursprünglich suchte ist die Komponente "TSynCompletion" (die deutlich einfachere zu bedienen ist

Viele grüße,
Teekeks