How do I avoid expanding folded regions when I invoke the code formatter?

倾然丶 夕夏残阳落幕 提交于 2019-12-02 06:45:40

问题


As you know, Delphi 2010 has built-in code formatting. However, formatting unfolds all folded code blocks. Any ideas how to fix it? This "feature" is particularly annoying for me and I was really astonished when I couldn't find any mention of this problem. What I've tried:

  • Searching for alternative, e.g., GExperts have code formatter plugin, but it also unfolds code blocks.
  • Tried to write a macro for GExperts: Ctrl+D(format code) -> various code folding/unfolding shortcuts, but couldn't manage to make it respect all folded/unfolded block structures.
  • Write a CnWizards script, but could't find a code folding example.

I would be really grateful for any idea/hint.


回答1:


One way to work around it is to not format the entire file at once, but to select a portion, and format that.

As long as you don't select a region, the expand-state of all regions remains untouched.

Formatting an entire file at once is usually not really a good idea anyway, because the formatter doesn't "understand" what it's doing. I always inspect all changes that it makes, and that's easier when there are no changes outside of the area that's visible.




回答2:


Well, this question is really old, but as it was mentioned here:

How to preserve code folding when formatting source

and there is no answer, I thought I could answer both, here is the answer I posted there:

What you can do is create regions and disable code folding, format code and then reenable the code folding.

To create code regions do:

{$REGION 'Optional text that appears when the code block is folded'} 
// code 
{$ENDREGION}

To toggle code folding option, press Ctrl+Shift K+O.

so, put your code into regions, fold what you want, press Ctrl+Shift K+O to disable the folding, format by pressing Ctrl+D then press Ctrl+Shift K+O again to re enable the folding.

When you re enable the folding, what was folded with a region is going to stay folded.

information source: http://docwiki.embarcadero.com/RADStudio/XE6/en/Using_Code_Folding

I hope this helps you.



来源:https://stackoverflow.com/questions/19691231/how-do-i-avoid-expanding-folded-regions-when-i-invoke-the-code-formatter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!