• TODO的用法


      在android开发中,我们经常会使用TODO来标记我们的代码,一般是用来表示待完成,或者待解决的部分。本文将详细介绍一下TODO的用法,及一些相关的扩展。(本文是在别人文章上做一点编辑,出处:http://blog.csdn.net/my_truelove/article/details/72857949

    一、TODO用法

    1.添加TODO

      添加 TODO

    2.查看TODO

    在android studio左下角,有一个按钮,可以查看

    如果没有 TODO tab,你可以通过左上角的菜单打开:View -> Tool windows -> TODO。

    TODO tab

    3.完成TODO

      完成 TODO 标记的事件后,就可以删除该 TODO 注释。

    二、FIXME用法

      除了 TODO 标记,我们还可以使用 Android Studio 提供的 FIXME 来标记一些待修复的问题,FIXME 与 TODO 在本质上没有任何区别,只是不同的标记罢了。区别于 TODO 标记,FIXME 可以认为是偏向于标记存在问题的 TODO 事项。

    一句话弄清二者区别: TODO 是总称,FIXME 是细分。

    1.添加FIXME

    其用法同 TODO,添加时如下: 
    添加 FIXME

    然后同样在 TODO 视图中可以看到:

    在 TODO 视图中可以看到

    2.筛选FIXME

      当项目中 TODO 和 FIXME 较多且混在一起时,找起来可就比较费尽了,此时我们可以使用 “过滤” 功能来区分开 TODO 和 FIXME。

    首先,添加过滤 FIXME 的条件,点击 TODO 窗口左侧的漏斗,选择 Edit Filters,按照图示添加 FIXME 过滤条件:

    筛选 FIXME

    添加完毕后,再次点击漏斗,选择刚才添加的 FIXME 过滤条件,在 TODO 视图中将只会看到 FIXME 标记的 TDOO 事项:

    使用过滤 FIXME 的条件

    最后,就是解决 FIXME 并删除了。

    三、自定义TODO

    一般我们习惯于直接用 TODO 来标记所有待办事项,但 TODO 是总称,比较广义,所有 “待办事项” 都可以用 TODO 标记。当项目中有大量 TODO 时,你会发现无法快速定位要找的 TODO,或者无法区分该 TODO 到底属于哪种类型(虽然可以添加描述,但这个描述的作用太弱了,无法筛选)。

    下面举个栗子,在开发过程中,我们经常发现一些遗留代码可以重构,此时我们不可能立即着手去做,应该通过 TODO 去标记:

    // TODO: 2017/5/1 待重构
    • 1
    • 1

    但是,这样的 TODO 不容易识别,也无法筛选,后期只能通过附加的描述 “待重构” 去判断。此时,按照 FIXME 是 TODO 的细分的逻辑,我们不仅会问:

    是不是可以自定义一个细分 TODO ,来标记重构?

    答案是肯定的。

    1. 自定义重构 TODO: REFACTOR

    其实,TODO 的本质就是满足特定正则的注释,这样说就好理解了。

    通过右上角的菜单, File -> Settings -> Editor -> TODO 打开 TODO 设置面板,点击右上方的 + 添加一个正则,如图:

    添加一个正则

    在 Pattern 中输入正则表达式 refactor.*,然后选择一个 Icon(可选),点击 OK 关闭添加面板,再次点击 OK 应用并关闭设置面板。

    添加完 REFACTOR 类型的 TODO 之后,你迫不及待想试试,但发现不管怎样系统都没有智能提示以补全代码,心想我在坑你。其实不然,TODO 标记和智能提示是两码事。

    你添加了一个自定义的 TODO 正则,系统匹配后将其视为 TODO,在代码中高亮并显示在 TODO 视图中;而智能提示和自动补齐是 代码模版的功能。不是一回事,明白吗?

    你在代码中纯手敲一个 REFACTOR 的 TODO 也不是不可以,只不过这样效率太低了。

    // REFACTOR: 2017/5/1 待重构 
    • 1
    • 1

    下面,跟随我一起添加一个 REFACTOR 的代码模版吧。

    2. 添加代码模版 Live Template

    通过右上角的菜单, File -> Settings -> Editor -> Live Templates 打开代码模版设置页面,找到 AndroidComments 并展开,你会发现熟悉的 fixme 和 todo,我们就仿着它们添加我们的代码模版。不了解的同学可以点击右下角 Help 简单学习下。

    1.点中 AndroidComments,点击右上角 +,选择 Live Template

    这里写图片描述

    2.在下方出现的面板中填上对应内容,分别是:缩写、描述、模版文本。

    • 缩写:我们在代码中敲对应缩写,就会出现智能提示;
    • 描述:智能提示时的描述;
    • 模版文本:缩写对应的补齐后的文本(不局限于代码),在这可以声明变量;

    此处我填写内容如下:

    填写内容如下

    3.在模版文本中,我们使用 声明了日期变量,使用 声明了描述代办的变量,变量是用来占位的。那这两个变量到底如何赋值呢?

    注意右侧的 Edit variables,即编辑变量。点击该按钮,打开 “Edit Template Variables” 面板。表格中,四列分别对应了:变量名称、表达式、默认值、如果已定义则跳过。具体的使用方法,同样可点击右下角的 Help 看一下,这不是本文的重点。看看我最后设置的值:

    最后设置的值

    此处,我将 date 变量的表达式设为 date(),系统将会使用当前日期来填补该变量的占位,并勾选 “跳过” 选项,表示有值的话就不再自己编辑。

    同时,对于 todo 变量,是用来添加描述的,无法使用表达式赋值,所以我选择了赋予默认值 “待重构”,并且没有勾选 ” 跳过”。这样的话,系统会默认为我赋值 “待重构”,但我的光标还会定在那儿,我可以继续编辑,或者回车使用默认值。

    这块不好理解的话可以看后面的 gif 动图,就明白了。

    4.编辑变量后,点击 OK 返回上一页,最后还需要定义该模版运用的上下文,也就是在哪些地方可以通过缩写调出代码模版。

    在界面下方,有一段文本:No applicable contexs yet. 后面跟着一个 Define,点击就会弹出设置模版运用上下文的列表。我们一般是在 Java 代码中添加 REFACTOR TODO,所以全选 Java,当然你也可以按需选择。

    5.最后勾选右侧的 Refactor according to style,表示自动格式化代码(调整对齐、缩进等),点击右下角 ‘OK’,运用该模版并退出。

    最终效果是这样的:

    最终效果

    点击右下角 OK,运用该模版并退出。

    3 在代码中使用 REFACTOR TODO

    在需要添加重构标识的地方,输入 refactor,输入过程中,智能提示就出来了,回车确认即可。

    至此我们就成功添加了一个 REFACOR 类型的 TODO。下面看演示,我输入慢点,注意看我们在上面提到的 默认值 和 跳过 ,在代码补齐时对 日期和描述 的影响:

    使用 REFACTOR TODO

    区别于之前的 todo 和 fixme,自动补齐时加上了默认描述”待重构”,你可以继续输入覆盖,或者直接回车确认。

    和 TODO、FIXME 一样,代码高亮并出现在 TODO 视图中。

    TODO视图中的REFACTOR

  • 相关阅读:
    标准模板库中的链表(list)
    C++接口
    qsort
    C++异常
    标准模板库中的向量(vector)
    后缀表达式/逆波兰表达式
    静态数据成员
    c++存储区域
    #define 和 const
    Git 的下载与安装
  • 原文地址:https://www.cnblogs.com/jdhdevelop/p/7193524.html
Copyright © 2020-2023  润新知