【问题标题】:How to fold an inserted region with Open Tools API?如何使用 Open Tools API 折叠插入的区域?
【发布时间】:2010-08-03 10:12:47
【问题描述】:

我想在编辑视图中插入一个区域,然后折叠这个区域。

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

此代码 sn-p 将在代码编辑器中插入一个区域。但是 IDE 需要一些操作才能在代码编辑器中生成这样的区域。

有什么方法可以强制 IDE 执行此操作,然后我可以使用

(fEditView as IOTAElideActions).ElideNearestBlock;

折叠它?

【问题讨论】:

  • 只是一个想法:您是否尝试过释放作者?
  • 我注意到了这一点,并在其他操作之前将 writer 设置为 nil。

标签: delphi region toolsapi


【解决方案1】:

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

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

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

关闭并重新打开省略似乎具有预期的效果。正在进行一些不太漂亮的屏幕更新。不知道能不能压制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    相关资源
    最近更新 更多