Documentation
¶
Overview ¶
Package todo は "todo.txt" 形式のタスクを管理するためのパッケージです。
このパッケージは todotxt.TaskList 型(github.com/1set/todotxt)を拡張しています。
QiiTask 独自のルール
todo.txt の "(A)", "(B)" の優先度タグは、QiiTask では以下の意味を持ちます。
(A) .... 部分ソート済み(主観的な質問でソートされたタスク、Subjective)
(B) .... 全体ソート済み(客観的な質問でソートされたタスク、Objective)
なし ... 未ソートのタスク
Index ¶
- Constants
- Variables
- type Set
- type Todo
- func (t *Todo) CustomSort(isALessThanB func(a int, b int) bool)
- func (t *Todo) Dir() string
- func (t *Todo) File() string
- func (t *Todo) FileUsed() string
- func (t *Todo) GetTodoByKey(key int) (string, error)
- func (t *Todo) IsKeyDone(key int) bool
- func (t *Todo) Len() int
- func (t *Todo) OverWrite(ui *cui.UI) error
Examples ¶
Constants ¶
const NameFile = "todo.txt"
NameFile はタスクのファイル名です。この定数値がファイルの読み込みに使われます。
Variables ¶
var FilePathAbs = filepath.Abs
FilePathAbs は filepath.Abs のコピーです。テスト時に filepath.Abs の動作をモック する為に変数に代入しています。
var OsGetwd = os.Getwd
OsGetwd は os.Getwd のコピーです。テスト時に os.Getwd の動作をモックする為に変数 に代入しています。
var OsUserHomeDir = os.UserHomeDir
OsUserHomeDir は os.UserHomeDir のコピーです。テスト時に os.UserHomeDir の動作を モックする為に変数に代入しています。
Functions ¶
This section is empty.
Types ¶
type Set ¶
type Set struct {
Local *Todo // Local: カレントディレクトリにあるタスク
Global *Todo // Global: ユーザのホームディレクトリにあるタスク
}
Set はローカルおよびグローバルのタスクをセットで保持するための型です。
func NewSet ¶
NewSet は新規 Set インスタンスを返します。Set はカレントディレクト リのタスク(Local タスク)およびユーザーのホームディレクトリ (Global タスク) を含みます。
引数はファイルの検索先のパスとして指定する必要があります。
Example ¶
package main
import (
"fmt"
"log"
"github.com/Qithub-BOT/QiiTask/core/todo"
)
func main() {
// Path to search tasks
pathToCurrentDir := "../../testdata/golden/working_with_task_and_conf/" // Usually "./"
pathToUserHomeDir := "../../testdata/golden/user_home_with_task" // Usually "~/"
taskList, err := todo.NewSet(pathToCurrentDir, pathToUserHomeDir)
if err != nil {
log.Fatal(err)
}
// Get the first task from current dir (as local task).
// Note that the 1st item is not "0" like the array key.
taskLocal, err := taskList.Local.GetTask(1)
if err != nil {
log.Fatal(err)
}
fmt.Println(taskLocal.Todo)
// Get the first task from the user home dir (as global task).
// Note that the 1st item is not "0" like the array key.
taskGlobal, err := taskList.Global.GetTask(1)
if err != nil {
log.Fatal(err)
}
fmt.Println(taskGlobal.Todo)
}
Output: This is an un-done task in local (working dir) with conf in local. This is an un-done task in global.
type Todo ¶
Todo は todotxt.TaskList 型(github.com/1set/todotxt)を埋め込んだ拡張型です。
func New ¶
New は Todo の新規オブジェクトを返します。pathDir のディレクトリ以下をサーチ し、最初に見つけた "todo.txt" をロードします。
通常、この関数を使ってタスクオブジェクトを生成することはなく、 NewList() 関 数を使ってローカルおよびグローバルにあるタスクがセットになったオブジェクトを 使います。
func (*Todo) CustomSort ¶
CustomSort は isALessThanB を使ってタスクをソートします。
ソートは安定ソートです。また isALessThanB の関数は A が B より小さい場合に true を返す必要があります。
func (*Todo) GetTodoByKey ¶
GetTodoByKey は t.TaskList[key] にある Todo フィールドの文字列値を返します。
GetTask と違いタスク ID ではなく、スライスのキー番号で指定します(ID は 1 ス タート、Key は 0 スタートです)。指定された key が範囲外の場合はエラーを返し ます。
func (*Todo) IsKeyDone ¶
IsKeyDone は t.TaskList[key] にあるタスクが完了済み("x" 付き)の場合に true を返します。key が範囲外/存在しない場合は false を返します。