ENH byte compile org-x on load
This commit is contained in:
parent
c40b94c62e
commit
9ece1b81ab
|
@ -1743,7 +1743,10 @@ My org config became so huge that I decided to move it all to a separate library
|
||||||
|
|
||||||
The advantage of doing it this way is that I can byte-compile and test independent of the other messy things in the main config. Furthermore, I can use it as a testing ground for new packages if I deem some functionality useful enough for more than just me.
|
The advantage of doing it this way is that I can byte-compile and test independent of the other messy things in the main config. Furthermore, I can use it as a testing ground for new packages if I deem some functionality useful enough for more than just me.
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(add-to-list 'load-path (nd/expand-lib-directory "org-x"))
|
(let ((dir (nd/expand-lib-directory "org-x")))
|
||||||
|
(add-to-list 'load-path dir)
|
||||||
|
(--each (directory-files dir t ".*\\.el$") (byte-recompile-file it nil 0)))
|
||||||
|
|
||||||
(require 'org-x)
|
(require 'org-x)
|
||||||
#+end_src
|
#+end_src
|
||||||
** buffer interface
|
** buffer interface
|
||||||
|
|
|
@ -668,7 +668,7 @@ property."
|
||||||
(declare (indent 1))
|
(declare (indent 1))
|
||||||
`(,op (cl-position ,sc1 ,sc-list) (cl-position ,sc2 ,sc-list)))
|
`(,op (cl-position ,sc1 ,sc-list) (cl-position ,sc2 ,sc-list)))
|
||||||
|
|
||||||
(defmacro org-x--descend-into-project (statuscode-tree get-task-status callback-fun)
|
(defmacro org-x--descend-into-project (statuscode-tree get-task-status callback-form)
|
||||||
"Loop through (sub)project and return overall statuscode.
|
"Loop through (sub)project and return overall statuscode.
|
||||||
|
|
||||||
The returned statuscode is chosen from list ALLOWED-STATUSCODES where
|
The returned statuscode is chosen from list ALLOWED-STATUSCODES where
|
||||||
|
@ -709,7 +709,7 @@ should be this function again)."
|
||||||
;; If project returns an allowed status then use that.
|
;; If project returns an allowed status then use that.
|
||||||
;; Otherwise look up the value in the translation table and
|
;; Otherwise look up the value in the translation table and
|
||||||
;; return error if not found.
|
;; return error if not found.
|
||||||
(setq new-status (,callback-fun))
|
(setq new-status ,callback-form)
|
||||||
(unless (member new-status ',allowed-statuscodes)
|
(unless (member new-status ',allowed-statuscodes)
|
||||||
(setq new-status (alist-get new-status ',trans-tbl))))
|
(setq new-status (alist-get new-status ',trans-tbl))))
|
||||||
;; if tasks then use get-task-status to obtain status
|
;; if tasks then use get-task-status to obtain status
|
||||||
|
@ -719,7 +719,7 @@ should be this function again)."
|
||||||
(setq project-status new-status))))
|
(setq project-status new-status))))
|
||||||
project-status))))
|
project-status))))
|
||||||
|
|
||||||
(defun org-x-headline-get-project-status ()
|
(defun org-x-headline-get-project-status (&optional kw)
|
||||||
"Return project heading statuscode (assumes it is indeed a project)."
|
"Return project heading statuscode (assumes it is indeed a project)."
|
||||||
;;
|
;;
|
||||||
;; these first three are easy because they only require
|
;; these first three are easy because they only require
|
||||||
|
@ -727,7 +727,7 @@ should be this function again)."
|
||||||
;;
|
;;
|
||||||
;; it does not make sense for projects to be scheduled
|
;; it does not make sense for projects to be scheduled
|
||||||
(if (org-x-headline-is-scheduled-p) :scheduled-project
|
(if (org-x-headline-is-scheduled-p) :scheduled-project
|
||||||
(-when-let (keyword (org-get-todo-state))
|
(-when-let (keyword (or kw (org-get-todo-state)))
|
||||||
(cond
|
(cond
|
||||||
;; held projects do not care what is underneath them
|
;; held projects do not care what is underneath them
|
||||||
;; only need to test if they are inert
|
;; only need to test if they are inert
|
||||||
|
@ -757,7 +757,7 @@ should be this function again)."
|
||||||
(if (member it-kw org-x-done-keywords)
|
(if (member it-kw org-x-done-keywords)
|
||||||
(if (org-x-headline-is-archivable-p) 0 1)
|
(if (org-x-headline-is-archivable-p) 0 1)
|
||||||
2)
|
2)
|
||||||
org-x-headline-get-project-status))
|
(org-x-headline-get-project-status it-kw)))
|
||||||
|
|
||||||
;; project with TODO states could be basically any status
|
;; project with TODO states could be basically any status
|
||||||
((equal keyword org-x-kw-todo)
|
((equal keyword org-x-kw-todo)
|
||||||
|
@ -775,7 +775,7 @@ should be this function again)."
|
||||||
((equal it-kw org-x-kw-wait) 3)
|
((equal it-kw org-x-kw-wait) 3)
|
||||||
((equal it-kw org-x-kw-next) 5)
|
((equal it-kw org-x-kw-next) 5)
|
||||||
(t 0))
|
(t 0))
|
||||||
org-x-headline-get-project-status))
|
(org-x-headline-get-project-status it-kw)))
|
||||||
|
|
||||||
(t (error (concat "invalid keyword detected: " keyword)))))))
|
(t (error (concat "invalid keyword detected: " keyword)))))))
|
||||||
|
|
||||||
|
@ -802,7 +802,7 @@ KW is the keyword of the parent."
|
||||||
((:empt)
|
((:empt)
|
||||||
(:project-error :unscheduled :actv))
|
(:project-error :unscheduled :actv))
|
||||||
(if (member it-kw org-x-done-keywords) 0 1)
|
(if (member it-kw org-x-done-keywords) 0 1)
|
||||||
org-x--clone-get-iterator-project-status))
|
(org-x--clone-get-iterator-project-status it-kw)))
|
||||||
|
|
||||||
;; project with TODO states could be basically any status
|
;; project with TODO states could be basically any status
|
||||||
((equal kw org-x-kw-todo)
|
((equal kw org-x-kw-todo)
|
||||||
|
@ -815,7 +815,7 @@ KW is the keyword of the parent."
|
||||||
((not ts) 0)
|
((not ts) 0)
|
||||||
((> org-x-iterator-active-future-offset (- ts (float-time))) 1)
|
((> org-x-iterator-active-future-offset (- ts (float-time))) 1)
|
||||||
(t 2)))
|
(t 2)))
|
||||||
org-x--clone-get-iterator-project-status))
|
(org-x--clone-get-iterator-project-status it-kw)))
|
||||||
|
|
||||||
(t (error (concat "invalid keyword detected: " kw)))))
|
(t (error (concat "invalid keyword detected: " kw)))))
|
||||||
|
|
||||||
|
@ -1273,7 +1273,7 @@ and slow."
|
||||||
(1-)
|
(1-)
|
||||||
(-)))
|
(-)))
|
||||||
(headline*
|
(headline*
|
||||||
(->> (add-context headline)
|
(->> (funcall add-context headline)
|
||||||
;; close the headline (assume it isn't already)
|
;; close the headline (assume it isn't already)
|
||||||
(org-ml-set-property :todo-keyword org-x-kw-done)
|
(org-ml-set-property :todo-keyword org-x-kw-done)
|
||||||
(org-ml-headline-map-planning*
|
(org-ml-headline-map-planning*
|
||||||
|
|
Loading…
Reference in New Issue