我想在编辑 View 中插入一个区域,然后折叠该区域。

// 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;

折叠吗?

最佳答案

通过肮脏的反复试验发现:-)

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

EnableElisions()似乎可以实际切换省略功能。

关闭和重新打开选框似乎具有所需的效果。正在进行一些不太漂亮的屏幕更新。是否有可能抑制我不知道的事情。

关于delphi - 如何使用Open Tools API折叠插入的区域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3395513/

10-10 13:36