Wie in Synedit software-seitig einzelne Folding-Bereiche zu- oder aufklappen

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Wie in Synedit software-seitig einzelne Folding-Bereiche zu- oder aufklappen

Beitrag von harrybonn »

1. Ich möchte gerne in einem Kontext-Menü zum Synedit Befehle einbauen wie "Dokumentationen zuklappen" oder "Regionen zuklappen".

Ich kann zwar den Text durchlaufen und entsprechenden Text identifizieren, aber mit welcher Funktion klappe ich nun die gewünschte Zeile (bzw. den Zeilenbereich) auf oder zu?

Habe da leider nichts gefunden?

2. Ich würde in einem zugeklappten Zustand teilweise gerne etwas anders anzeigen (z.B. "Dokumentation") bei XML-Doc- Kommentaren.
Geht das?

Auch da leider nichts gefunden. SynEdit ist eine Super-Komponente und scheint mir alles zu können, nur herauszufinden wie, erscheint mir hin und wieder schwierig...

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Wie in Synedit software-seitig einzelne Folding-Bereiche zu- oder aufklappen

Beitrag von sstvmaster »

LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Wie in Synedit software-seitig einzelne Folding-Bereiche zu- oder aufklappen

Beitrag von harrybonn »

Danke für die Antwort.

ColdFoldcation hatte ich schon gesehen, damit kann man aber nur eine Zeile umschalten. Davon ist CodeFoldAction als "deprecated" markiert

Eine Möglichkeit den Foldstatus abzufragen gibt es aber nicht.

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: Wie in Synedit software-seitig einzelne Folding-Bereiche zu- oder aufklappen

Beitrag von martin_frb »

Im Moment nicht.

Du kannst dir Zugriff auf den FoldView verschaffen. Ist aber Implementation Detail.

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Wie in Synedit software-seitig einzelne Folding-Bereiche zu- oder aufklappen

Beitrag von harrybonn »

Ich habe mir (leider ganz unprofessionell) einfach in der Synedit-Unit eine Funktion ergänzt, welche die Information zurückliefert (müsste ich also bei der folgenden Lazarus-Version dort wieder anpassen).

Die aber nur funktioniert, wenn man im Synedit zuvor Carety auf iLine setzt, bevor ich die Abfrage starte:

Code: Alles auswählen

function TCustomSynEdit.IsFolded(iLine: integer): Boolean;
// iLine is 1 based as parameter
begin
  Result := false;

  if (iLine<=0) or (iLine>FTheLinesView.Count) then exit;
  dec(iLine);
  if FFoldedLinesView.FoldType[FFoldedLinesView.TextIndexToScreenLine(iLine)]
     * [cfCollapsedFold, cfCollapsedHide] <> []
  then
    Result := True
  else
  if FFoldedLinesView.FoldType[FFoldedLinesView.TextIndexToScreenLine(iLine)]
     * [cfFoldStart] <> []
  then
    Result := false;
end;

Antworten