2010-08-03 8 views
12

Quiero insertar una región en una vista de edición y luego doblar esta región.¿Cómo doblar una región insertada con 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; 

Este fragmento de código insertará una región en el editor de código. Pero el IDE necesita alguna acción para generar dicha región en el editor de código.

¿Hay alguna manera de forzar el IDE hacer esta acción y entonces puede utilizar

(fEditView as IOTAElideActions).ElideNearestBlock; 

plegarla?

+0

Solo una idea: ¿Intentó liberar al escritor? –

+0

Me di cuenta de esto y configuré al escritor en cero antes de otras acciones. –

Respuesta

2

encontrados por sucio de ensayo y error :-)

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

EnableElisions() parece realmente toggle cuentan las elisiones.

Desactivar y volver a encender las eliones parece tener el efecto deseado. Hay algunas actualizaciones de pantalla no muy bonitas. Si es posible suprimir eso no lo sé.