Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Für Installationen unter MacOS u.a. Betriebssystemen
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von corpsman »

Guten Morgen allerseits,

wie ja evtl. einigen bewusst habe ich 2 Lazarus Komponenten geschrieben / übersetzt, damit sich das Entwickeln ein klein wenig erleichtern lässt.

Viele meiner benötigten Informationen stehen ja Hier und haben mir auch sehr geholfen.

Nun habe ich aber z.b. bei meinem CodeFormater das Problem, dass er den Kompletten Source ändert und alle in dem Fenster gesetzten Haltepunkte, sowie Bookmarks gehen dabei verloren. In meinen Codeviewer kann ich das Problem mittels

Code: Alles auswählen

SynEdit1.GetBookMark
SynEdit1.SetBookMark


umgehen, Haltepunkte gibt es da ja nicht ..

Wenn ich das Wiki richtig verstehe müsste ich die Bookmarks evtl über

Code: Alles auswählen

SourceEditorManagerIntf.GetEditorControlSettings( .. );


kriegen, aber setzten kann ich sie nicht da es keine Setter Routine für die EditorControlSettings gibt.

Ist hier im Forum jemand, der mir da weiter helfen kann ?

Corpsman
--
Just try it

martin_frb
Beiträge: 572
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: Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von martin_frb »

Wieso EditorControlSettings ?

EditorControlSettings initialisiert einen SynEdit mit den Werten der Editor-Optionen. (Font, Farben, Tab, ....)

Bookmarks, breakpoints, all of them =>in der IDE unter SourceMarks (unit)

var
SourceEditorMarks: TSourceMarks;

Hab jetzt nicht weiter gesucht, in wieweit da irgendwas via SourceEditorInterface verfuegbar ist.....

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von corpsman »

das ist ein Anhaltspunkt den ich noch nicht kannte, danke ich werde suchen und dann berichten ..
aus SourceMarks.pas

Edit :

Abstract:
All source editor marks, except the bookmarks, are managed by the
SourceEditorMarks. It extends the TSynEditMark and combines all marks of
all editors.


Das scheint die Falsche Unit zu sein, ..
--
Just try it

martin_frb
Beiträge: 572
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: Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von martin_frb »

Right, ouch.
Scheint ich war ein wenig vorschnell....

Ok, Du kannst aber über den sourceeditor an den synedit (sourceeditor.editorcomponent oder ähnlich) kommen.

SynEdit.Marks is definitiv die volle liste

Allerdings ist das trotzdem problematisch.
- Wenn du Text löscht, verschiebt SynEdit alle marks an den begin des gelöschten Text
(AFAIK wird nix gelöscht, ...)

Du kannst sie zwar zurück schieben.... Aber wenn z.b der debugger laueft, gibt das Chaos, weil alle Änderungen direkt auch an gdb gehen.... (Zeilen die verschoben werden gehen nicht an GDB, weil die original Zeile in den blauen dots gespeichert ist...)
Außerdem gehn dir dann die blauen dots verloren...


------------
Was hast du vor zu machen?

Kannst du die Änderungen nicht in kleinen schritten vornehmen (e.g Zeilenweise)?

Außerdem
SynEdit.Lines[x] := 'foo'
SynEdit.Text := 'bar'
=> SynEdit legt keine undo info an, undo funktioniert nicht.

SynEdit.TextBetweenPoints[p1, p2]:= 'abc'; // mit undo
oder SynEdit.TextBetweenPointsEx


----
btw, das Problem mit den Bookmarks existiert auch in der IDE bereits. zb. "uppercase selection"... und andere

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von corpsman »

Ich nutze für mein delforlaz und für mein lazcomment

Code: Alles auswählen

E: TSourceEditorInterface;
zumindest bei lazcomment müsste ich die SynEdit.TextBetweenPoints[p1, p2]:= variante benutzen können.

Sobald ich wieder Zeit hab will ich mal versuchen an das Synendit via "E" ran zu kommen.
--
Just try it

martin_frb
Beiträge: 572
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: Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von martin_frb »

SynEdit := TSourceEditorInterface.EditorControl;// need typecasting

of course if someone made source editor use something else but Synedit....; but that is not to be expected....

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Erweitern/ auslesen von Bookmarks und Haltepunkten im Source

Beitrag von corpsman »

thanks that works great.
--
Just try it

Antworten