diff options
| author | fpi | 2020-06-12 15:01:58 +0200 | 
|---|---|---|
| committer | fpi | 2020-06-12 15:06:52 +0200 | 
| commit | 69fb885bf37131f18f1601e8cc9715d1663d531c (patch) | |
| tree | 7232e10f78e8259ea82d593b703481c1dfaddcfa | |
| parent | Add function to scale height of default face (diff) | |
Add function to join adjacent clock lines if possible
| -rw-r--r-- | emacs-init.org | 32 | 
1 files changed, 31 insertions, 1 deletions
diff --git a/emacs-init.org b/emacs-init.org index 4fa0ecd..37abc99 100644 --- a/emacs-init.org +++ b/emacs-init.org @@ -1963,7 +1963,37 @@ Use imagemagick and standalone class for latex preview.    (org-caldav-exclude-tags '(nocal))  )  #+end_src -*** org-clock-convenience +*** Clocking +**** Combine adjacent clock lines +#+begin_src emacs-lisp +(defun fpi/org-clock-join-last-clock () +  "Join current clock with last one if start/end point match." +  (save-mark-and-excursion +    (beginning-of-line) +    (let* ((eol (save-excursion (end-of-line) (point))) +	   (boi (progn (re-search-forward "\\[" eol t) (backward-char) (point))) +	   (eoi (progn (re-search-forward "\\]" eol t) (point))) +	   (i (buffer-substring-no-properties boi eoi)) ;; last clock-in-time +	   (boc (progn (re-search-forward "\\[" eol t) (backward-char) (point))) +	   (eoc (progn (re-search-forward "\\]" eol t) (point))) +	   (c (buffer-substring-no-properties boc eoc))) ;; last clock-out-time (equals org-clock-out-time if last clock) +      (next-line) +      (end-of-line) +      (let* ((bol (save-excursion (beginning-of-line) (point))) +	     (eoo (progn (re-search-backward "\\]" bol t) (forward-char) (point))) +	     (boo (progn (re-search-backward "\\[" bol t) (point))) +	     (o (buffer-substring-no-properties boo eoo))) ;; last-last clock-out-time +	(when (equal i o) +	  (delete-region boo eoo) +	  ;; (insert (format-time-string (org-time-stamp-format t t) org-clock-out-time)) +	  (insert c) +	  (org-evaluate-time-range) +	  (previous-line) +	  (delete-region (save-excursion (beginning-of-line) (backward-char) (point)) eol) +	  (message (format "Joined nearby clocks at %s" i))))))) +(add-hook 'org-clock-out-hook 'fpi/org-clock-join-last-clock) +#+end_src +**** org-clock-convenience  #+begin_src emacs-lisp  (use-package org-clock-convenience    :ensure t  | 
