在开发项目的时候遇到一个问题:项目里面有一部分配置是通过xml文件进行设置,但是在格式化的时候会因为内容太长格式化成两行,这种格式化在Android布局文件里面是Ok的,但是这里在从xml中获取值的时候会在换行处额外插入一个空格——%20
。因为我们使用统一的格式化规则,可以通过ctrl+alt+L
进行代码格式化,并且在向git提交代码的时候也选择了自动格式化的选项,所以希望能够找到一个添加例外的解决方法。
下面是例子:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 格式化之前正常 -->
<config>
<server_url>serverurl</server_url>
</config>
<!-- 格式化之后不正常 -->
<config>
<server_url>serverurl
</server_url>
</config>
于是去网上找IDEA有没有格式化添加例外的功能,结果还是原生支持的,这个功能就是Formatter Control。
具体用法:
如果你打开了上面的Formatter Control功能,就可以在代码中使用@formatter:off
的注释标记,此标记之后的代码忽略格式化;而@formatter:on
的注释标记,此标记之后的代码可以进行格式化。
具体注释会根据语言不同:例如:
java,c等:
// @formatter:on
// @formatter:off
xml:
<!--@formatter:on-->
<!--@formatter:off-->
python:
# @formatter:on
# @formatter:off
下面结合具体例子体现用法(格式化会在运算符两侧自动添加空格)。
Code代码例子:
// 格式化前代码
public void test() {
int a=0;
// @formatter:off
int b=0; // 这句代码不会被格式化
// @formatter:on
int c=9; // 这句代码会被格式化
}
// 格式化后代码
public void test() {
int a = 0;
// @formatter:off
int b=0; // 这句代码不会被格式化
// @formatter:on
int c = 9; // 这句代码会被格式化
}