From 9ead20ef9f860cd0eb3acc4397499109db99fb95 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Tue, 23 Jun 2020 10:25:02 -0400 Subject: feat(g/emacs): Add template for work org files This includes an attempt at making this work with auto-insert, but that didn't seem to have any effect - can just call it manually now Change-Id: I0eac267b7d3387efd84a2dd0d32b1364fa06f328 Reviewed-on: https://cl.tvl.fyi/c/depot/+/563 Reviewed-by: glittershark --- users/glittershark/emacs.d/org-config.el | 22 ++++++++++++++++++++++ users/glittershark/emacs.d/utils.el | 13 +++++++++++++ 2 files changed, 35 insertions(+) diff --git a/users/glittershark/emacs.d/org-config.el b/users/glittershark/emacs.d/org-config.el index 2624cf4aad..634d76476d 100644 --- a/users/glittershark/emacs.d/org-config.el +++ b/users/glittershark/emacs.d/org-config.el @@ -92,3 +92,25 @@ org-enforce-todo-dependencies nil org-babel-clojure-backend 'cider) + +(defun +grfn/insert-work-template () + (interactive) + (goto-char (point-min)) + (forward-line) + (insert "#+TODO: TODO(t) NEXT(n) ACTIVE(a) | DONE(d) PR(p) RUNNING(r) TESTING(D) +#+TODO: BLOCKED(b) BACKLOG(l) PROPOSED(o) | CANCELLED(c) +#+FILETAGS: @work +#+FILETAGS: @work +#+PROPERTY: Effort_ALL 0 4:00 8:00 12:00 20:00 32:00 +#+PROPERTY: ESTIMATE_ALL 0 1 2 3 5 8 +#+PROPERTY: STORY-TYPE_ALL Feature Bug Chore +#+PROPERTY: NOBLOCKING t +#+COLUMNS: %TODO %40ITEM(Task) %17EFFORT(Estimated){:} %CLOCKSUM(Time Spent) %17STORY-TYPE(Type) %TAGS")) + +(defun +grfn/insert-org-template () + (interactive) + (pcase (buffer-file-name) + ((s-contains "/work/") (+grfn/insert-work-template)))) + +;;; TODO: this doesn't work? +(define-auto-insert "\\.org?$" #'grfn/insert-org-template t) diff --git a/users/glittershark/emacs.d/utils.el b/users/glittershark/emacs.d/utils.el index d6d1d5722b..c595b46ce2 100644 --- a/users/glittershark/emacs.d/utils.el +++ b/users/glittershark/emacs.d/utils.el @@ -90,3 +90,16 @@ Returns nil if the regex did not match, non-nil otherwise" ,@body (evil-indent beg (+ (line-end-position) 1)))) (goto-line-char orig-line-char))) + +(pcase-defmacro s-starts-with (prefix) + `(pred (s-starts-with-p ,prefix))) + +(pcase-defmacro s-contains (needle &optional ignore-case) + `(pred (s-contains-p ,needle + ,@(when ignore-case (list ignore-case))))) + +(comment + (pcase "foo" + ((s-contains "bar") 1) + ((s-contains "o") 2)) + ) -- cgit 1.4.1