2010-08-03 19 views
12

Ich möchte eine Region in eine Bearbeitungsansicht einfügen und dann diese Region falten.Wie füge ich eine eingefügte Region mit Open Tools API?

// fEditView: IOTAEditView; 

var 
    writer: IOTAEditWriter; 
begin 
    writer := fEditView.Buffer.CreateUndoableWriter; 
    //... 
    writer.Insert('{$REGION ''Documentation''}'#13#10'{$ENDREGION}'); 
    writer := nil; // Flush the buffer 
    fEditView.Position.GotoLine(lineNo); // go to the line number of the region 
    fEditView.Paint; 
end; 

Dieser Codeausschnitt wird eine Region im Code-Editor einfügen. Aber die IDE benötigt eine Aktion, um eine solche Region im Code-Editor zu erzeugen.

Gibt es eine Möglichkeit die IDE zu zwingen, diese Aktion zu tun, und dann kann ich

(fEditView as IOTAElideActions).ElideNearestBlock; 

es zu falten?

+0

Nur eine Idee: Haben Sie versucht, den Brenner zu veröffentlichen? –

+0

Ich bemerkte dies und setzte den Schreiber vor anderen Aktionen auf Null. –

Antwort

2

Gefunden schmuddelig Trial-and-error :-)

(fEditView as IOTAElideActions).EnableElisions; 
(fEditView as IOTAElideActions).EnableElisions; 
(fEditView as IOTAElideActions).ElideNearestBlock; 

EnableElisions() erscheint tatsächlich Toggle die Elisionen verfügen.

Das Ausschalten von elisions und wieder Einschalten scheint den gewünschten Effekt zu haben. Es gibt einige nicht sehr schöne Bildschirmaktualisierungen. Ob es möglich ist zu unterdrücken, dass ich nicht weiß.