解决 Android Studio 中 TODO Highlight 效果消失的问题

前二天在升级 Android Studio 到 1.3.1 之后,发现了一个奇怪的问题。由于更新后 Android Studio 需要重启,但在 Android Studio 重启后,所有 FIXME 及 TODO 的注释无法呈现 Highlight 的效果,同时在 TODO 的 Tool Window 中也搜寻不到任可的 TODO 项目。

在检查过相关的设定之后,发现 TODO 的 Pattern 设定都被清掉了,难怪没有办法显示 Highlight 的效果,也搜寻不到任何的 TODO 项目,甚至连原本设定的 Filter 都因为失效而显示红色。

因为原本就没有定义额外的 Pattern,所以依照官网的说明,将以下二个预设的 Pattern 加回去后就恢复正常了。

  • \btodo\b.*
  • \bfixme\b.*

如果是像我一样有自己新增 Filter 的设定,在加完 Pattern 后还是要再重新修改 Filter 的内容。

事情本来应该就这样结束了,但其实案情并不单纯,就在某个需要下重启 Android Studio 后,TODO 的所有 Pattern 设定内容又被清除了!

由于这个功能在我进行开发工作时扮演了重要的角色,只好先放下手边的工作研究一下。之所以重要是因为在开发的时候不一定可以完美地依照需求或设计的顺序输入源代码,有可能会需要把缮打到一半的源代码搁着,先去完成其他部份。或是有可能需求或设计还不确定,先以仿造的逻辑来输入源代码做为替代,等不确定的部份有明确的结果后再回来调整源代码。

然而,在此时如果没有一个有系统的方式来标注源代码,完全依靠记忆力来找到这些待修改的源代码,是一个非常不可靠的方式。就算是以重新检视全部源代码的方式,也有可能因为分神而漏看,再者程式的规模大到一定的程度,这种方式就变成了一种精神上的折磨。

故意让程式编译失败是一个方法,但程式就会一直处于无法借由执行来确认程式是否正常运作的状态。反之,如果当初搁下的源代码没有编译上的问题,就有可能因为开发的负责人忘了修改,造成程式上线一阵子了,才发现程式其实没有完成就交付给使用者、更严重的可能已经造成了大量资料的错误。这在一般的软体开发项目中并不罕见,因为很多的项目是没有足够的资源做后续的验证与测试,以简单的 UAT 做把关、没有明显的问题就放行了。

在注释中使用 FIXME 或 TODO 是解决这项问题的好方案,可以用文字来说明源代码有问题的地方或是待完成的工作,绝大部份的 IDE 也都提供了 Highlight 的功能。比故意让程式编译失败要有人性,不用费神去回想为何编译会失败、程式要如何改正。是可以有效地在开发阶段的初期发现问题、降低系统运作问题的风险。当然,这也是要负责源代码的人有养成良好的习惯才会有效果,所以这个习惯应做为建立团队文化的重要规则之一。

有了好习惯,一旦没有了 Highlight 的功能,就没有办法很直觉地找到还有问题的源代码片断,同时因为 Tool Window 也失效、列不出清单,只能以搜寻的功能来替代,对工作效率来说是有不小的影响。

印象中之前重启 Android Studio 时并没有出现同样的问题,这个情况似乎是在我设定 Filter 之后才发生。我习惯把在上线前一定要修改的项目以 FIXME 标注、可以等上线后再思考解决方案的项目以 TODO 来标注。所以会需要在 TODO 的 Tool Window 中过滤 FIXME 和 TODO,以便了解在上线前还有多少部份的源代码是没有完成的,让我可以专注在 FIXME 的项目上。

根据这个需求我设了二个 Filter 分别只勾取其中一个 Pattern,让我可以在 TODO 的 Tool Window 来切换不同的清单。为了确认是不是设定 Filter 所产生的问题,我就将 Filter 全数删除了之后重启 Android Studio,果不其然 Pattern 这次就没有被清除掉了,这应该是一个 Android Studio 的 Bug 吧!

但如果是为了解决重启 Android Studio 后不清除 TODO Pattern,那不就没有办法使用 Filter 了吗!? 好吧!秉持着研究的精神,就在 TODO 的设定画面中试了几个不同的 Pattern 及 Filter 的组合,总算发现了一个 Workaround!

原本如果只有预设的二项 Pattern,一旦设定了 Filter 就会有重启后被清除的现象。但是在预设的二项 Pattern 外再加上一项自订的 Pattern,依我原本的条件设定 Filter 就可以在重启 Android Studio 之后保有重启之前的 Pattern 设定。

目前我工作的环境是 OS X 10.10.4 及 Android Studio 1.3.1,有类似问题的朋友可以参考看看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容