all repos — todo.txt-go @ 935dbed84d9005c5192cd30f7eafcc1bd9e32cd2

CLI tool for todo.txt files written in Go

Add remove task action
Tim Izzo tim@5ika.ch
Fri, 01 Aug 2025 16:18:55 +0200
commit

935dbed84d9005c5192cd30f7eafcc1bd9e32cd2

parent

9a7f2eff7040a7900e3775f9e03bcb88c4c4e2e1

3 files changed, 13 insertions(+), 12 deletions(-)

jump to
M README.mdREADME.md

@@ -42,13 +42,14 @@

## Keymaps - `A` or `+`: Add a new task +- `D` or `-`: Remove focused task - `Enter`: Edit focused task - `Space`: Check/Uncheck focused task -- `a`, `b`, `c`: Set priority level for focused task +- `a`, `b`, `c`, `d`: Set priority level for focused task - `z`: Clear priority of focused task - `p`: Sort task by priority - `s`: Sort task by date -- `u`: Clear done tasks (move theme to *done.txt*) +- `u`: Clear done tasks (move them to *done.txt*) ## Features

@@ -70,15 +71,6 @@

## Contribution Intrested by this project ? [Contact me](https://5ika.ch) - -## TODO - -- [x] Use _todo.txt_ file targeted by todo-txt.sh config -- [x] Implement archive mecanism -- [x] Allow task edition -- [x] Allow to remove priority on task -- [x] Circular navigation on tasks -- [x] Provide config file with argument ## Ressources
M keymap.gokeymap.go

@@ -13,6 +13,7 @@ Check key.Binding

Clean key.Binding Add key.Binding Edit key.Binding + Delete key.Binding OrderUp key.Binding OrderDown key.Binding SortByPriority key.Binding

@@ -30,7 +31,7 @@ // key.Map interface.

func (k keyMap) FullHelp() [][]key.Binding { return [][]key.Binding{ {k.Check, k.Priority, k.Up, k.Down, k.OrderUp, k.OrderDown}, - {k.Add, k.ClearPriority, k.Clean}, + {k.Add, k.ClearPriority, k.Clean, k.Delete}, {k.SortByPriority, k.SortByDate, k.Quit}, } }

@@ -59,6 +60,10 @@ ),

Edit: key.NewBinding( key.WithKeys("e", "enter"), key.WithHelp("e|Enter", "Edit task"), + ), + Delete: key.NewBinding( + key.WithKeys("D", "-"), + key.WithHelp("D|-", "Delete task"), ), OrderUp: key.NewBinding( key.WithKeys("shift+up"),
M main.gomain.go

@@ -189,6 +189,10 @@ m.selected[i] = struct{}{}

} } + case key.Matches(msg, m.keys.Delete): + focusedTask := m.tasks[m.cursor] + m.tasks.RemoveTaskByID(focusedTask.ID) + // Interface case key.Matches(msg, m.keys.Add): m.interfaceState = Add