如何让Android Studio自动缩进时忽略指定代码?
当然可以!Android Studio(以及整个IntelliJ IDEA家族的IDE)早就考虑到了这类需求,提供了专门的注释标记来临时屏蔽代码格式化,完美解决你想保留自定义when语句排版的问题。
核心解决方案:用格式化开关注释包裹代码块
你只需要在想要保护的代码前后添加//@formatter:off和//@formatter:on这两个注释,就能让IDE在执行自动格式化(包括构建前lint触发的格式化)时跳过这段代码。
举个例子,把你的when语句改成这样:
//@formatter:off returnFragment = when (questionKind) { QuestionKind.TEXT.int -> GenericTextFragment.newInstance(question, pagerDelegate) //TEXT = 0 QuestionKind.FREE_TEXT.int -> GenericTextFragment.newInstance(question, pagerDelegate) //TEXTAREA = 1 QuestionKind.CHECKBOX.int -> SelectFragment.newInstance(question, pagerDelegate) //CHECKBOX = 2 QuestionKind.RADIO.int -> SelectFragment.newInstance(question, pagerDelegate) //RADIO = 3 QuestionKind.IMAGE.int -> ImagePickerFragment.newInstance(question, pagerDelegate) //FILE = 4 QuestionKind.NUMERICAL.int -> GenericTextFragment.newInstance(question, pagerDelegate) //NUMERICAL = 5 QuestionKind.MULTISELECT.int -> SelectFragment.newInstance(question, pagerDelegate) //MULTISELECT = 6 QuestionKind.SELECT.int -> SelectFragment.newInstance(question, pagerDelegate) //SELECT = 7 else -> GenericFragment.newInstance(question, pagerDelegate) // CUSTOM } //@formatter:on
确保标记生效的设置检查
默认情况下,这个功能可能没有开启,你需要手动确认:
- 打开Android Studio的设置界面(Windows/Linux:
File > Settings;Mac:Android Studio > Settings) - 导航到
Editor > Code Style > Formatter Control - 勾选Enable formatter markers in comments选项,然后点击
Apply保存设置
关于构建前lint触发的格式化
不用担心构建流程里的自动格式化会破坏你的排版——因为lint调用的是IDE内置的格式化引擎,只要你正确添加了上述注释标记,这段代码就会被忽略,完全保留你自定义的缩进和排版。如果之后你想恢复这段代码的自动格式化,只需要删除这两个注释开关就行,非常灵活。
内容的提问来源于stack exchange,提问作者Joel Broström
相关产品推荐
相关产品推荐

