完整的過程
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的多行注釋和文檔注釋的注釋中添加標記也是可以的,標記之前有其他內容也是可以的,但是標記和其他文本之間需要有空格。以此類推,其他類型文檔應該也是如此:只需要在注釋中添加任務標記,任務標記和文本之間留有空格即可。但是標記之前的內容,不會在任務列表中顯示,建議還是遵循以任務標記開始的規則。