如何阻止Intellij自动更改尚未编辑的行的缩进?

我在Intellij中处理许多项目,其格式是坏的或非正统的,特别是“延续”行的缩进明显不同于Intellij的配置方式.我不希望在许多文件甚至整个文件中修复此缩进(这违反了我们的技术团队的政策,因为它会破坏git-blame但也会因为它会导致嘈杂的差异或无关的提交)

如果我正在使用这样的缩进编辑文件,我可以使用Intellij自动执行我编辑的新代码行或行.但我经常发现它在文件的其他地方缩进了其他行,几乎总是这些“延续”行*

如何配置Intellij以停止更改这些?有一个配置选项只能在已更改的行上删除尾部空格,但我无法找到控制此行为的配置. FWIW这不会在保存时发生,但似乎在其他触发后发生,但我不确定触发器是什么.我想当你自动导入类时可能会发生这种情况?

*我认为这就是所谓的,例如:

foo.bar()
    .baz()//可能由Intellij更改的行

最佳答案 奇怪的是,除非你运行Code |,否则我不希望IntelliJ IDEA修改行重新格式化代码(或键盘快捷键,如Ctrl-Alt-L或Option-Command-L,如
dnault所述).当我自动导入一个类时,即使它是同一语句的一部分,也不会更改continuation indent. (如果要重新格式化代码的一小部分,可以选择要更改的行,并仅为这些行运行“重新格式化代码”.)

当您注意到这些奇怪的更改时,可以使用VCS |当地历史|显示“历史记录”菜单(或“显示选择菜单的历史记录”菜单,如果要查看文件的较小部分).这给出了所有更改以及进行更改时的不同差异概述.这有助于发现延迟缩进何时被更改.

当您打开设置对话框(文件|设置)并导航到编辑器|代码风格| Java,您可以指定用于延续缩进的空格数(在“制表符和缩进”选项卡上).如果项目中的延续缩进是一致的,这可能会解决您的问题.

(可以在“设置”对话框中配置“仅在已更改的行上删除尾部空格的配置选项”:导航到“编辑器”|“常规”,转到“其他”部分,在那里可以看到“剥离尾随空格”在保存“组合框.)

点赞