Android Studio Chipmunk如何持久保存editor-fold代码折叠状态
Android Studio 代码折叠标记状态持久化方案
核心结论
- 不管是
editor-fold还是region折叠标记,Android Studio(Chipmunk 2021.2.1及后续基于IntelliJ平台的版本)默认不会将手动调整的折叠/展开状态写入代码文件,所有手动调整的折叠状态都存在本地工作区配置中,既会因为本地缓存清理、代码改动、IDE重启出现自动展开的问题,也无法通过GitHub同步到其他设备。 region标记仅用于标识可折叠的代码段范围,本身不支持保存折叠状态,也没有默认折叠的配置属性,无法满足跨设备同步折叠状态的需求,这一点和Visual Studio中#region的实现逻辑完全不同。
三种折叠标记的基础用法参考
editor-fold标记(支持配置默认折叠状态)//<editor-fold desc="Paint"> //----------------------------- Paint --------------------------------------------- val paintDial = Paint().also { it.isAntiAlias = true it.style = PaintingStyle.Stroke it.strokeWidth = 3f it.color = Color.Red } val paintText = TextPaint().also { it.isAntiAlias = true it.color = Color.Red.toArgb() it.textSize = 30f } //----------------------------- Paint --------------------------------------------- //</editor-fold>- Android Studio
region标记(仅标识折叠范围,无状态配置能力)//region Helper method //do your work here //endregion - Visual Studio
#region标记(原生支持折叠状态持久化)/* #region Main */ public static void Main(string args[]) { //Your code goes here } /* #endregion */
可落地的解决方法
- 最稳定的跨设备同步方案:使用
editor-fold标记时,添加defaultstate="collapsed"属性,该配置直接写入代码文件,会跟随Git提交同步到所有设备,任何环境下打开文件,对应代码段默认就是折叠状态,不会被本地配置影响。修改后的示例如下://<editor-fold desc="Paint" defaultstate="collapsed"> // 区域内代码默认折叠 val paintDial = Paint().also { it.isAntiAlias = true it.style = PaintingStyle.Stroke it.strokeWidth = 3f it.color = Color.Red } //</editor-fold> - 全量同步手动折叠状态方案:将项目目录下
.idea/workspace.xml从.gitignore规则中移除,提交到GitHub仓库。该文件存储了包括折叠状态在内的所有本地IDE工作区配置,同步后可以保留所有手动调整的折叠状态,但该文件同时存储了窗口布局、打开的文件标签、本地运行配置等个性化内容,多设备IDE版本或配置不一致时极易出现冲突,非特殊需求不推荐使用。 - 若坚持使用
region标记,目前没有原生方案可以持久化折叠状态、实现跨设备同步,只能每次打开文件后手动调整折叠范围。
内容的提问来源于stack exchange,提问作者HelloCW
相关产品推荐
相关产品推荐

