feat: new command chronometrist-discard-active

This commit is contained in:
contrapunctus 2021-11-28 17:26:12 +05:30
parent 14f02ff402
commit 4eb4f30873
4 changed files with 29 additions and 5 deletions

View File

@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2. New `plist-group` backend, reducing time taken in startup and after changes to the file.
3. Unified migration interface with command `chronometrist-migrate`.
4. New custom variable `chronometrist-task-list`, to add/hide tasks without modifying the database.
5. New command `chronometrist-discard-active`, to discard the active interval.
## [0.9.0] - 2021-07-08
### Added

View File

@ -746,7 +746,7 @@ A general library for this could convert between (both to and from) such strings
* today, yesterday, day before yesterday, tomorrow, day after tomorrow
* N <seconds/minutes/hours/days/weeks/months/years> (ago|from now/today)
+ plus multiples of those units e.g. "1 year, 5 months, ... from now"
* STARTED Kill/discard command :feature:
* DONE Kill/discard command :feature:
Command to delete the interval currently being recorded. (bind to 'k')
+ Most conservative option - it will only operate on the project at point, and will only kill for a clocked-in project.
+ Somewhat less conservative option - it will operate on the currently clocked-in project, no matter where point is.

View File

@ -2030,10 +2030,11 @@ PREFIX is ignored."
(define-key map (kbd "a") #'chronometrist-add-new-task)
(define-key map (kbd "RET") #'chronometrist-toggle-task)
(define-key map (kbd "M-RET") #'chronometrist-toggle-task-no-hooks)
(define-key map (kbd "<C-return>") #'chronometrist-restart-task)
(define-key map (kbd "<C-M-return>") #'chronometrist-extend-task)
(define-key map [mouse-1] #'chronometrist-toggle-task)
(define-key map [mouse-3] #'chronometrist-toggle-task-no-hooks)
(define-key map (kbd "<C-return>") #'chronometrist-restart-task)
(define-key map (kbd "<C-M-return>") #'chronometrist-extend-task)
(define-key map (kbd "D") #'chronometrist-discard-active)
(define-key map (kbd "d") #'chronometrist-details)
(define-key map (kbd "r") #'chronometrist-report)
(define-key map (kbd "l") #'chronometrist-open-log)
@ -2056,6 +2057,7 @@ PREFIX is ignored."
["Extend time for last completed task" chronometrist-extend-task]
["Extend time without running hooks" (chronometrist-extend-task t)
:keys "\\[universal-argument] \\[chronometrist-extend-task]"]
["Discard active interval" chronometrist-discard-active]
["View details of today's data" chronometrist-details]
["View weekly report" chronometrist-report]
["View/edit log file" chronometrist-open-log]
@ -2210,6 +2212,15 @@ Has no effect if a task is active."
(run-hook-with-args 'chronometrist-after-out-functions task)))))
;; extend-task:1 ends here
;; [[file:chronometrist.org::*discard-interval][discard-interval:1]]
(defun chronometrist-discard-active ()
"Remove active interval from the active backend."
(interactive)
(let ((backend (chronometrist-active-backend)))
(when (chronometrist-current-task backend)
(chronometrist-remove-last backend))))
;; discard-interval:1 ends here
;; [[file:chronometrist.org::*chronometrist][chronometrist:1]]
;;;###autoload
(defun chronometrist (&optional arg)

View File

@ -2931,10 +2931,11 @@ PREFIX is ignored."
(define-key map (kbd "a") #'chronometrist-add-new-task)
(define-key map (kbd "RET") #'chronometrist-toggle-task)
(define-key map (kbd "M-RET") #'chronometrist-toggle-task-no-hooks)
(define-key map (kbd "<C-return>") #'chronometrist-restart-task)
(define-key map (kbd "<C-M-return>") #'chronometrist-extend-task)
(define-key map [mouse-1] #'chronometrist-toggle-task)
(define-key map [mouse-3] #'chronometrist-toggle-task-no-hooks)
(define-key map (kbd "<C-return>") #'chronometrist-restart-task)
(define-key map (kbd "<C-M-return>") #'chronometrist-extend-task)
(define-key map (kbd "D") #'chronometrist-discard-active)
(define-key map (kbd "d") #'chronometrist-details)
(define-key map (kbd "r") #'chronometrist-report)
(define-key map (kbd "l") #'chronometrist-open-log)
@ -2957,6 +2958,7 @@ PREFIX is ignored."
["Extend time for last completed task" chronometrist-extend-task]
["Extend time without running hooks" (chronometrist-extend-task t)
:keys "\\[universal-argument] \\[chronometrist-extend-task]"]
["Discard active interval" chronometrist-discard-active]
["View details of today's data" chronometrist-details]
["View weekly report" chronometrist-report]
["View/edit log file" chronometrist-open-log]
@ -3110,6 +3112,16 @@ Has no effect if a task is active."
(unless inhibit-hooks
(run-hook-with-args 'chronometrist-after-out-functions task)))))
#+END_SRC
**** discard-interval :command:
#+BEGIN_SRC emacs-lisp
(defun chronometrist-discard-active ()
"Remove active interval from the active backend."
(interactive)
(let ((backend (chronometrist-active-backend)))
(when (chronometrist-current-task backend)
(chronometrist-remove-last backend))))
#+END_SRC
**** chronometrist :command:
#+BEGIN_SRC emacs-lisp
;;;###autoload