完整的过程
1.1、新定义标签
位置:Window —— Preferences —— Java —— Compiler —— Task Tags —— New
说明:
- 默认的任务标签有三个
FIXME、TODO、XXX - 默认勾选Case sensitive task tag names
即 改变大小写,则不再以标签视之
1.2、配置标签显示
1.2.1、打开Tasks视图
位置:Window —— Show View —— Other... —— General —— Tasks
1.2.2、配置过滤器
位置:View Menu(下三角图标)—— Configure Contents
操作:New —— Rename
说明:此处定义的实质是过滤器,其个区域作用如下:
- 左侧配置
每一条对应一个过滤器,勾选即为启用该配置器。满足其中任何一个过滤器,就会显示在任务列表中。 - Scope
建议选择"On selected element and its children",便于集中焦点。这个选择的效果,就是筛选当前的元素及其子元素中的任务。 - Completed
过滤器属性之一,已完成、未完成。 - Priority
过滤器属性之一,优先级高、中、低 -
Description
过 滤器属性之一,包含或者不包含的文本。这是非常重要的一条属性,后面的文本内容,可以是任务标签的名称,也可以是普通字符文本。这条属性的使用规律是这样 的,先按照其他属性筛选任务,然后根据筛选结果集的任务文本来进一步筛选,而任务文本包括任务标签。比如下面就定义了一个任务:
// SINOBEST 负责查询扫描材料目录数据
此时配置文本包含"SINOBEST",或者是包含"负责查询",都是可以的。 -
Types这个配置任务的类型,参考TODOs过滤器,选择Java Task和Task就好了。上文中我们配置的SINOBEST标签,就属于Java Task。
任务标签的配置和过滤器的配置是协同工作的,添加任务标签,即为标签正名,将其纳入某种Type的Task(如我们将SINOBEST作为Java Task)。过滤器中除了可以设置Types外,另提供了其他的过滤属性,过滤器的过滤属性是逻辑与的关系,满足一个过滤器所有过滤属性,才是满足这个过滤器;过滤器之间是逻辑或的关系,满足任何一个过滤器,就可以显示在任务列表中。
1.2.3、配置字段
位置:View Menu(下三角图标)—— Configure Columns
建议按照上图配置显示的字段。
1.2.4、起停过滤器
位置:View Menu(下三角图标)—— Show
1.2.5、分组排序
位置:View Menu(下三角图标)—— Group By | Sort By
1.3、添加任务
1.3.1、注释添加
在Java源文件合适的位置,添加行注释,以任务标签名作为注释内容的开始:
// SINOBEST 负责查询扫描材料目录数据
移除:删去注释
1.3.2、鼠标添加
编辑区左侧右键 —— Add Task...
移除:编辑区左侧右键 —— Remove Task
不建议这样的方式,没有修改源文件,不能实现共享。
1.4、效果展示
挖掘
我们可以用Tasks来做什么?
2.1、定义开发任务
- 在进行编码时,先设定全局的接口、类,粗粒度的方法。
方法一般都是public的,方法体为空,或者仅包含一条return语句;这是一个不断优化的过程,直到结构令人满意,此时整体的框架已经搭建出来了。 - 定义Tasks,一般精确到方法。
- 对Tasks进行优先级归类。
Tasks仅支持三种优先级High、Normal、Low,这种简单、笼统的归类方式可能无法满足优先级排序的需求,但也避免了我们把注意力过分的集中在Tasks的相互关系上,而不在其本身。 - 根据优先级执行任务,完成的任务标记为已完成。
这是一个循环的过程,直到所有的Tasks都标记为已完成了,则整个任务块就完成了。
2.2、做标记
注释用以对一个Class、Field、Method甚至一行代码进行说明,这样我们找到了对应的代码位置,可以根据注释来快速理解代码。这里有一个前提,我们已经找到了代码,注释的作用体现在帮助我们理解代码。
还有一个情景,你已经知道自己要找的代码是做什么的,但是你忘记了代码在哪里。你可能记得大概的位置,在哪个包......Tasks可以起到这种作用,其实每一个Task注释,就相当于在那个位置打了一个标签。既然一定要写注释,何妨定义一组标签,加入注释中呢。
有个遗憾的地方,Tasks列表没有提供查询功能,所以我建议将过滤器的Scope设置为"On selected element and its children"。
其他任务类型
3.1、Structured Text
3.1.1、标签设置
范围:包括CSS、DTD、HTML、JSP、XML
位置:General —— Editors —— Structured Text Editors —— Task Tags
注意:Filters标签页可以设置启用的类型
3.1.2、标记任务
- JSP
<%-- TODO ... --%> - HTML、XML、DTD
<!-- TODO ... --> - CSS
/* TODO ... */
说明:以上,我仅测试过HTML和JSP。
3.2、JavaScript
3.2.1、标签设置
位置:JavaScript —— Validator —— Task Tags
3.2.2、标记任务
// TODO ... 或者 /* TODO ... */
补充说明
4.1、关于任务列表的更新
- Java类型任务要在编译之后更新
- JSP、HTML类型任务,在保存之后更新
- 其他类型任务未测试。
4.2、关于任务标记
经过测试,在Java的多行注释和文档注释的注释中添加标记也是可以的,标记之前有其他内容也是可以的,但是标记和其他文本之间需要有空格。以此类推,其他类型文档应该也是如此:只需要在注释中添加任务标记,任务标记和文本之间留有空格即可。但是标记之前的内容,不会在任务列表中显示,建议还是遵循以任务标记开始的规则。