你们的idea会自动给你们加上上万行空格吗?

今天发现的一个关于idea的神奇的现象!!!

事情是这样的,从昨天开始我的Idea就像中了毒一样,出现了一个很神奇的现象:代码文件写着写着会变得巨大!12KB写俩小时之后会长大到4M!! 

倒不是说我俩小时写了多少代码,主要是代码写着写着就感觉IDE越来越卡,直到最后卡到idea无响应。重启idea后,idea在该代码文件上有这个提示:

 大概意思是说该代码文件有4.01MB,超过了资瓷的2.44MB的最大限制,代码提示等功能不可用。但是我这个文件里横竖只写了300来行代码呀!300多行代码怎么想都不可能有4M啊!

为了排除是因为自己写代码写懵逼了 (并不) 于是果断重启机器,发现问题依旧存在。重开idea发现在代码第303行之后被添加了大量空格符

这就有点神奇了!首先这些字符肯定不是我自己加的,难不成是idea出问题了?

后来百度了一下,都没有找到相关的问题以及解决方案。

但是我有注意到第303行Map后面的有一个“<”符号的颜色貌似和其他注释不同,难不成是这个“<”引起的问题?

在SVN上回滚到前一个没问题的版本,发现这里的注释原来是这样写的

注意这里:

@return: java.util.Map<java.lang.String , java.lang.String>

 这一行的一对 “<>”符号与中间的逗号显示的颜色不同,既然颜色不同,那么就说明肯定Idea把它们识别成了别的东西,起码和旁边的注释肯定不同了!

于是尝试着格式化代码看看,果然多格式化几次代码之后,idea就在这里面加入了不少空格,这里的代码也变成了这样了......

好了到目前为止问题总算是发现了,那么又是什么原因才导致的这个问题呢? 

众所周知javadoc注释是会有用到HTML标签的,而“<>”符号正好表示这是一个标签,又因为在一个“<>”内只会有一个单词【如果把“.”和“_”连起来的也都认为是一个词的话】,而逗号或者空格在HTML中刚好是用来区分不同属性的,所以这里写成 <String,String> 这样那就会有问题,中间出现的逗号显然会破坏完整性,形成了“强行往标签内塞入了两个词”,而idea读到“<>”中的逗号或者空格时,可能就会以为这里应该format一下,比如填充进几个空格啥的。。

So...,就这样咯。下面做了个小实验,也是证明了我的观点。

既然找到了问题原因那我们又要怎么解决呢?

这里给出一些思路吧:

1、使用引号把具有“<>”这种可能会与HTML冲突的特殊符号的数据类型【List<E>、Map<k,v> 等等......】括起来;

2、使用 HTML内的转义符:lt和gt(防止被转义,所以&我没有打出来)符号替换掉<  和  >符号;

3、将返回值的变量名写在哪儿就行啦。只要做到变量起名:见其名,知其意 ,相信看懂注释也不难咯。

 

OK!问题解决!~~

 

PS:

 下午又拿eclipse测试了一下,发现竟然没有这个问题???!!!居然没有!!!

 看来是石锤了,这是分明就是一个idea独家的格式化代码方面的小bug!!。。。

idea程序员出来挨打!(滑稽)

 

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值