Как сложить вставленную область с помощью 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;

Этот фрагмент кода вставит регион в редактор кода. Но для IDE необходимо выполнить какое-то действие для создания такой области в редакторе кода.

Есть ли способ заставить IDE сделать это действие, и тогда я могу использовать

(fEditView as IOTAElideActions).ElideNearestBlock;

сложить это?

1 ответ

Решение

Найден грязным методом проб и ошибок:-)

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

EnableElisions (), по-видимому, фактически переключает функцию elisions.

Похоже, что выключение и повторное включение выдает желаемый эффект. Происходит не очень приятное обновление экрана. Можно ли подавить то, что я не знаю.

Другие вопросы по тегам