Skip to content

feat(dates): natural-language due dates (v0.2.0)#1

Merged
Sanjays2402 merged 8 commits into
mainfrom
feat/natural-language-dates
Apr 22, 2026
Merged

feat(dates): natural-language due dates (v0.2.0)#1
Sanjays2402 merged 8 commits into
mainfrom
feat/natural-language-dates

Conversation

@Sanjays2402

Copy link
Copy Markdown
Owner

v0.2.0 — natural-language due dates

Closes the "I don't want to type 2026-04-25 every time" gap.

What's new

  • -d tomorrow / yesterday / today
  • -d mon / fri / monday — next occurrence
  • -d "in 3d" / 3d / 2w / 1m
  • -d "jul 4" / jul 4 2027 / 4 jul
  • -d "next week" / next mon / eow / eom
  • YYYY-MM-DD still works.

Implementation

New internal/dateparse package, ~30 table-driven tests, DST cases included. No new deps (stdlib time + regex).

Tested

go test -race ./... → PASS, dateparse coverage: 99.2%

Breaking

None.

…ays)

Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
Signed-off-by: Sanjay Santhanam <51058514+Sanjays2402@users.noreply.github.com>
@Sanjays2402 Sanjays2402 merged commit d17657e into main Apr 22, 2026
3 of 4 checks passed
@Sanjays2402 Sanjays2402 deleted the feat/natural-language-dates branch April 22, 2026 02:56
Sanjays2402 added a commit that referenced this pull request May 17, 2026
`tsk ls` previously printed ad-hoc lines that were hard to scan once you
had more than ~5 tasks. Add a proper table renderer with fixed columns:

  ID  DONE  P  DUE         TITLE                 TAGS
  #1  [ ]   H  2026-05-01  Ship table format PR  #dev

Implementation:
  - New --format flag accepts plain (default), table, or json
  - --json preserved as a shortcut for --format=json
  - --format and --json are mutually exclusive (clear error)
  - Column widths computed from data, header always shown
  - Title capped at 40 runes with ellipsis on overflow
  - Unicode-safe width calc (rune count, not byte count)

Tests: 7 new cases covering header, rows, truncation, empty list,
JSON parity, and flag validation. All green with -race.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant