Compare commits
25 Commits
master
...
dev_org_ml
Author | SHA1 | Date |
---|---|---|
Nathan Dwarshuis | ae8041b7ff | |
Nathan Dwarshuis | 14d4c2d696 | |
Nathan Dwarshuis | ec18914035 | |
Nathan Dwarshuis | 889578ce60 | |
Nathan Dwarshuis | e2f88b3462 | |
Nathan Dwarshuis | b96539afc8 | |
Nathan Dwarshuis | b4d51331c9 | |
Nathan Dwarshuis | d96718118a | |
Nathan Dwarshuis | 976c81304d | |
Nathan Dwarshuis | ea05678f3c | |
Nathan Dwarshuis | 211e2dc3f3 | |
Nathan Dwarshuis | 5e3987f01f | |
Nathan Dwarshuis | c7d9b1bca5 | |
Nathan Dwarshuis | e9ddf983f6 | |
Nathan Dwarshuis | 9194b18ff1 | |
Nathan Dwarshuis | 177ad2de34 | |
Nathan Dwarshuis | 736a518571 | |
Nathan Dwarshuis | 6d7f92dbbe | |
Nathan Dwarshuis | 06be547a0b | |
Nathan Dwarshuis | 96bd00f938 | |
Nathan Dwarshuis | 3fb0f43f94 | |
Nathan Dwarshuis | 59f9c58718 | |
Nathan Dwarshuis | c1db214e70 | |
Nathan Dwarshuis | 62b12ac877 | |
Nathan Dwarshuis | 6febee2875 |
20
etc/conf.org
20
etc/conf.org
|
@ -833,6 +833,8 @@ Company provides a dropdown of completion options. It has many backends which ar
|
||||||
:delight "κ"
|
:delight "κ"
|
||||||
:config
|
:config
|
||||||
(setq company-idle-delay 0
|
(setq company-idle-delay 0
|
||||||
|
company-dabbrev-minimum-length 5
|
||||||
|
company-dabbrev-other-buffers nil
|
||||||
company-minimum-prefix-length 3))
|
company-minimum-prefix-length 3))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** auto formatting
|
** auto formatting
|
||||||
|
@ -1784,11 +1786,11 @@ Save all org buffers 1 minute before the hour, then commit whatever I saved.
|
||||||
*** stateless configuration
|
*** stateless configuration
|
||||||
=org-ml= provides stateless functions for operating on org buffers.
|
=org-ml= provides stateless functions for operating on org buffers.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package org-ml
|
;; (use-package org-ml
|
||||||
:straight t
|
;; :straight t
|
||||||
:config
|
;; :config
|
||||||
;; make the match functions super fast with memoization
|
;; ;; make the match functions super fast with memoization
|
||||||
(setq org-ml-memoize-match-patterns t))
|
;; (setq org-ml-memoize-match-patterns t))
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
*** personal library
|
*** personal library
|
||||||
|
@ -1804,9 +1806,11 @@ The advantage of doing it this way is that I can byte-compile and test independe
|
||||||
(nd/load-and-compile (nd/expand-lib-directory "interval"))
|
(nd/load-and-compile (nd/expand-lib-directory "interval"))
|
||||||
(nd/load-and-compile (nd/expand-lib-directory "dag"))
|
(nd/load-and-compile (nd/expand-lib-directory "dag"))
|
||||||
(nd/load-and-compile (nd/expand-lib-directory "org-x"))
|
(nd/load-and-compile (nd/expand-lib-directory "org-x"))
|
||||||
|
(nd/load-and-compile (nd/expand-local-pkg-directory "org-ml"))
|
||||||
|
|
||||||
(require 'dag)
|
(require 'dag)
|
||||||
(require 'org-x)
|
(require 'org-x)
|
||||||
|
(require 'org-ml)
|
||||||
#+end_src
|
#+end_src
|
||||||
** buffer interface
|
** buffer interface
|
||||||
*** folding
|
*** folding
|
||||||
|
@ -3659,6 +3663,12 @@ Everyone forgets keybindings. When typing a key chord, this will display a windo
|
||||||
:init
|
:init
|
||||||
(which-key-mode))
|
(which-key-mode))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
** company
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(define-key company-active-map (kbd "<tab>") 'company-complete-selection)
|
||||||
|
(define-key company-active-map (kbd "<return>") 'company-complete-selection t)
|
||||||
|
(define-key company-active-map "\r" 'company-complete-selection t)
|
||||||
|
#+end_src
|
||||||
** hydra
|
** hydra
|
||||||
Hydra allows commands to be arranged on a set of keybindings like a tree.
|
Hydra allows commands to be arranged on a set of keybindings like a tree.
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|
8
init.el
8
init.el
|
@ -10,7 +10,13 @@
|
||||||
|
|
||||||
;; ensure we use built-in org mode
|
;; ensure we use built-in org mode
|
||||||
;; (use-package org :straight org-plus-contrib)
|
;; (use-package org :straight org-plus-contrib)
|
||||||
(straight-use-package '(org :type built-in))
|
;; (straight-use-package '(org :type built-in))
|
||||||
|
(straight-use-package
|
||||||
|
'(org :type git
|
||||||
|
:repo "git://git.savannah.gnu.org/emacs/org-mode.git"
|
||||||
|
:branch "release_9.7.9"))
|
||||||
|
;;(load-file "~/.config/emacs/straight/repos/org/lisp/org-element-ast.el")
|
||||||
|
;;(load-file "~/.config/emacs/straight/repos/org/lisp/org-element.el")
|
||||||
|
|
||||||
;; load everything else
|
;; load everything else
|
||||||
(org-babel-load-file nd/conf-main)
|
(org-babel-load-file nd/conf-main)
|
||||||
|
|
|
@ -77,7 +77,7 @@ Returns a new timespan."
|
||||||
(when timestamp
|
(when timestamp
|
||||||
(let ((offset (org-element-property :begin headline))
|
(let ((offset (org-element-property :begin headline))
|
||||||
(start-time (org-ml-timestamp-get-start-time timestamp))
|
(start-time (org-ml-timestamp-get-start-time timestamp))
|
||||||
(range (org-ml-timestamp-get-range timestamp)))
|
(range (org-ml-timestamp-get-length timestamp)))
|
||||||
(org-x-agg--make-timespan start-time range offset filepath))))
|
(org-x-agg--make-timespan start-time range offset filepath))))
|
||||||
|
|
||||||
(defun org-x-agg--effort-to-seconds (effort-str)
|
(defun org-x-agg--effort-to-seconds (effort-str)
|
||||||
|
@ -178,7 +178,7 @@ time of the :start-time property."
|
||||||
(cl-flet
|
(cl-flet
|
||||||
((append-unixtime
|
((append-unixtime
|
||||||
(span)
|
(span)
|
||||||
`(:unixtime ,(org-ml-time-to-unixtime (plist-get span :start-time)) ,@span)))
|
`(:unixtime ,(org-ml-timelist-to-unixtime (plist-get span :start-time)) ,@span)))
|
||||||
(-map #'append-unixtime timespans)))
|
(-map #'append-unixtime timespans)))
|
||||||
|
|
||||||
;; get conflict headlines
|
;; get conflict headlines
|
||||||
|
@ -230,7 +230,7 @@ returned."
|
||||||
"Return TIMESPANS that conflict with each other.
|
"Return TIMESPANS that conflict with each other.
|
||||||
The returned list will be a list of pairs of timespans
|
The returned list will be a list of pairs of timespans
|
||||||
like (SPAN-a SPAN-b) which are two timespans that conflict."
|
like (SPAN-a SPAN-b) which are two timespans that conflict."
|
||||||
(->> (--filter (org-ml-time-is-long (plist-get it :start-time)) timespans)
|
(->> (--filter (org-ml-timelist-has-time (plist-get it :start-time)) timespans)
|
||||||
(org-x-agg--timespans-append-unixtime)
|
(org-x-agg--timespans-append-unixtime)
|
||||||
(org-x-agg--timespans-remove-past)
|
(org-x-agg--timespans-remove-past)
|
||||||
(--sort (< (plist-get it :unixtime) (plist-get other :unixtime)))
|
(--sort (< (plist-get it :unixtime) (plist-get other :unixtime)))
|
||||||
|
@ -265,7 +265,7 @@ like (SPAN-a SPAN-b) which are two timespans that conflict."
|
||||||
;; `encode-time' and `decode-time' might not use the right time zone
|
;; `encode-time' and `decode-time' might not use the right time zone
|
||||||
;; unless specified manually
|
;; unless specified manually
|
||||||
(-let* ((tz (current-time-zone))
|
(-let* ((tz (current-time-zone))
|
||||||
(start-time* (if (org-ml-time-is-long start-time) start-time
|
(start-time* (if (org-ml-timelist-has-time start-time) start-time
|
||||||
`(,@(-take 3 start-time) 0 0)))
|
`(,@(-take 3 start-time) 0 0)))
|
||||||
((y m d H M) start-time*)
|
((y m d H M) start-time*)
|
||||||
(start-epoch (encode-float-time `(0 ,M ,H ,d ,m ,y nil nil ,tz)))
|
(start-epoch (encode-float-time `(0 ,M ,H ,d ,m ,y nil nil ,tz)))
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
"Headline todo keyword for canceled task or project.")
|
"Headline todo keyword for canceled task or project.")
|
||||||
|
|
||||||
(defconst org-x-done-keywords `(,org-x-kw-done ,org-x-kw-canc)
|
(defconst org-x-done-keywords `(,org-x-kw-done ,org-x-kw-canc)
|
||||||
"Headline todo keywords that mark a task as 'complete'.")
|
"Headline todo keywords that mark a task as `complete'.")
|
||||||
|
|
||||||
(defconst org-x-meeting-keywords (cons org-x-kw-todo org-x-done-keywords)
|
(defconst org-x-meeting-keywords (cons org-x-kw-todo org-x-done-keywords)
|
||||||
"Allowed keywords for meetings.")
|
"Allowed keywords for meetings.")
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
|
|
||||||
(defun org-x-dag-timestamp-to-epoch (ts)
|
(defun org-x-dag-timestamp-to-epoch (ts)
|
||||||
(->> (org-ml-timestamp-get-start-time ts)
|
(->> (org-ml-timestamp-get-start-time ts)
|
||||||
(org-ml-time-to-unixtime)))
|
(org-ml-timelist-to-unixtime)))
|
||||||
|
|
||||||
;; calendar interface
|
;; calendar interface
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
(defun org-x-dag-datetimes-same-length-p (datetime0 datetime1)
|
(defun org-x-dag-datetimes-same-length-p (datetime0 datetime1)
|
||||||
;; ASSUME all digits in this comparison are on the calendar/clock (eg day 32
|
;; ASSUME all digits in this comparison are on the calendar/clock (eg day 32
|
||||||
;; does not 'rollover' to day 1 on the next month)
|
;; does not 'rollover' to day 1 on the next month)
|
||||||
(not (xor (org-ml-time-is-long datetime0) (org-ml-time-is-long datetime1))))
|
(not (xor (org-ml-timelist-has-time datetime0) (org-ml-timelist-has-time datetime1))))
|
||||||
|
|
||||||
;; TODO some of this is redundant because I'm checking the length twice
|
;; TODO some of this is redundant because I'm checking the length twice
|
||||||
;; Maybe a -> Maybe a -> (a -> a -> b) -> b -> Maybe b
|
;; Maybe a -> Maybe a -> (a -> a -> b) -> b -> Maybe b
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
(defun org-x-dag-datetime-split (datetime)
|
(defun org-x-dag-datetime-split (datetime)
|
||||||
;; TODO this function doesn't guarantee that a short timestamp is properly
|
;; TODO this function doesn't guarantee that a short timestamp is properly
|
||||||
;; formatted
|
;; formatted
|
||||||
(if (org-ml-time-is-long datetime)
|
(if (org-ml-timelist-has-time datetime)
|
||||||
(-split-at 3 datetime)
|
(-split-at 3 datetime)
|
||||||
`(,(org-x-dag-datetime-to-date datetime) nil)))
|
`(,(org-x-dag-datetime-to-date datetime) nil)))
|
||||||
|
|
||||||
|
@ -403,7 +403,7 @@ relative shift in days from ABS."
|
||||||
|
|
||||||
(defun org-x-dag-partition-timestamp (ts)
|
(defun org-x-dag-partition-timestamp (ts)
|
||||||
(list :datetime (org-ml-timestamp-get-start-time ts)
|
(list :datetime (org-ml-timestamp-get-start-time ts)
|
||||||
:length (org-ml-timestamp-get-range ts)
|
:length (org-ml-timestamp-get-length ts)
|
||||||
:pos (org-ml-get-property :begin ts)
|
:pos (org-ml-get-property :begin ts)
|
||||||
:repeater (org-ml-timestamp-extract-modulus 'repeater ts)
|
:repeater (org-ml-timestamp-extract-modulus 'repeater ts)
|
||||||
:warning (org-ml-timestamp-extract-modulus 'warning ts)))
|
:warning (org-ml-timestamp-extract-modulus 'warning ts)))
|
||||||
|
@ -427,7 +427,7 @@ relative shift in days from ABS."
|
||||||
(-max-by #'org-x-dag-pts> ps))
|
(-max-by #'org-x-dag-pts> ps))
|
||||||
|
|
||||||
(defun org-x-dag-pts-is-long-p (pts)
|
(defun org-x-dag-pts-is-long-p (pts)
|
||||||
(org-ml-time-is-long (plist-get pts :datetime)))
|
(org-ml-timelist-has-time (plist-get pts :datetime)))
|
||||||
|
|
||||||
(defun org-x-dag-pts-to-epoch (pts)
|
(defun org-x-dag-pts-to-epoch (pts)
|
||||||
(->> (plist-get pts :datetime)
|
(->> (plist-get pts :datetime)
|
||||||
|
@ -804,7 +804,7 @@ used for optimization."
|
||||||
(-if-let (,c (-some->> it-planning
|
(-if-let (,c (-some->> it-planning
|
||||||
(org-ml-get-property :closed)
|
(org-ml-get-property :closed)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime)))
|
(org-ml-timelist-to-unixtime)))
|
||||||
(cond
|
(cond
|
||||||
((equal it-todo org-x-kw-canc)
|
((equal it-todo org-x-kw-canc)
|
||||||
(let ((it-comptime (complete-time ,c t)))
|
(let ((it-comptime (complete-time ,c t)))
|
||||||
|
@ -852,7 +852,7 @@ deadline (eg via epoch time) or if it has a repeater."
|
||||||
(if (car (org-ml-timestamp-get-repeater deadline)) t
|
(if (car (org-ml-timestamp-get-repeater deadline)) t
|
||||||
(let ((this-epoch (-some->> deadline
|
(let ((this-epoch (-some->> deadline
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime))))
|
(org-ml-timelist-to-unixtime))))
|
||||||
(< parent-epoch this-epoch))))))
|
(< parent-epoch this-epoch))))))
|
||||||
|
|
||||||
(defun org-x-dag-bs-action-project-inner (node-data ancestry child-bss)
|
(defun org-x-dag-bs-action-project-inner (node-data ancestry child-bss)
|
||||||
|
@ -1298,7 +1298,7 @@ deadline (eg via epoch time) or if it has a repeater."
|
||||||
(deadline (-some->> planning
|
(deadline (-some->> planning
|
||||||
(org-ml-get-property :deadline)
|
(org-ml-get-property :deadline)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime))))
|
(org-ml-timelist-to-unixtime))))
|
||||||
(list :canceled-parent-p (or c (equal todo org-x-kw-canc))
|
(list :canceled-parent-p (or c (equal todo org-x-kw-canc))
|
||||||
:held-parent-p (or h (equal todo org-x-kw-hold))
|
:held-parent-p (or h (equal todo org-x-kw-hold))
|
||||||
:parent-deadline (cond
|
:parent-deadline (cond
|
||||||
|
@ -1526,7 +1526,7 @@ deadline (eg via epoch time) or if it has a repeater."
|
||||||
(-if-let (sched (-some->> (plist-get m :planning)
|
(-if-let (sched (-some->> (plist-get m :planning)
|
||||||
(org-ml-get-property :scheduled)
|
(org-ml-get-property :scheduled)
|
||||||
(org-ml-timestamp-get-start-time)))
|
(org-ml-timestamp-get-start-time)))
|
||||||
(if (org-ml-time-is-long sched)
|
(if (org-ml-timelist-has-time sched)
|
||||||
(either :left "WKP branch node must be short scheduled")
|
(either :left "WKP branch node must be short scheduled")
|
||||||
(-let (((&plist :date d :offset o) date-offset)
|
(-let (((&plist :date d :offset o) date-offset)
|
||||||
(this-abs (org-x-dag-date-to-absolute sched)))
|
(this-abs (org-x-dag-date-to-absolute sched)))
|
||||||
|
@ -1557,7 +1557,7 @@ deadline (eg via epoch time) or if it has a repeater."
|
||||||
(offset (->> (alist-get org-x-prop-week-len props nil nil #'equal)
|
(offset (->> (alist-get org-x-prop-week-len props nil nil #'equal)
|
||||||
(string-to-number)))
|
(string-to-number)))
|
||||||
(ancestry (cond
|
(ancestry (cond
|
||||||
((or (not datetime) (org-ml-time-is-long datetime))
|
((or (not datetime) (org-ml-timelist-has-time datetime))
|
||||||
(either :left "WKP root nodes must be short scheduled"))
|
(either :left "WKP root nodes must be short scheduled"))
|
||||||
((< offset 1)
|
((< offset 1)
|
||||||
(either :left "WKP root week length must be an int >= 1"))
|
(either :left "WKP root week length must be an int >= 1"))
|
||||||
|
@ -1811,7 +1811,7 @@ denoted by CUR-KEY with any errors that are found."
|
||||||
(lambda (id this-h res)
|
(lambda (id this-h res)
|
||||||
(-let* (((&alist :lifetime l) res)
|
(-let* (((&alist :lifetime l) res)
|
||||||
(d (org-x-dag-adjlist-id-planning adjlist :deadline id))
|
(d (org-x-dag-adjlist-id-planning adjlist :deadline id))
|
||||||
(ns (if (car (org-ml-timestamp-get-repeater d))
|
(ns (if (and d (car (org-ml-timestamp-get-repeater d)))
|
||||||
(org-x-dag--ns-err "EPG has deadline with repeater" nil)
|
(org-x-dag--ns-err "EPG has deadline with repeater" nil)
|
||||||
(either :right `(:committed ,l :deadline ,d)))))
|
(either :right `(:committed ,l :deadline ,d)))))
|
||||||
(ht-set this-h id ns)
|
(ht-set this-h id ns)
|
||||||
|
@ -2044,8 +2044,8 @@ DEF-FUN and the output from GET-FUN (type :: a -> NS)."
|
||||||
(org-ml-timestamp-get-start-time)))
|
(org-ml-timestamp-get-start-time)))
|
||||||
(let ((set-dead (org-ml-timestamp-get-start-time to-set)))
|
(let ((set-dead (org-ml-timestamp-get-start-time to-set)))
|
||||||
(cond
|
(cond
|
||||||
((xor (org-ml-time-is-long this-dead)
|
((xor (org-ml-timelist-has-time this-dead)
|
||||||
(org-ml-time-is-long set-dead))
|
(org-ml-timelist-has-time set-dead))
|
||||||
(-> "EPG as parent with different deadline precision"
|
(-> "EPG as parent with different deadline precision"
|
||||||
(org-x-dag--ns-err nil)))
|
(org-x-dag--ns-err nil)))
|
||||||
((org-x-dag-datetime< set-dead this-dead)
|
((org-x-dag-datetime< set-dead this-dead)
|
||||||
|
@ -2599,7 +2599,7 @@ highest in the tree."
|
||||||
|
|
||||||
(defun org-x-dag-id->planning-epoch (which id)
|
(defun org-x-dag-id->planning-epoch (which id)
|
||||||
(-some->> (org-x-dag-id->planning-datetime which id)
|
(-some->> (org-x-dag-id->planning-datetime which id)
|
||||||
(org-ml-time-to-unixtime)))
|
(org-ml-timelist-to-unixtime)))
|
||||||
|
|
||||||
(defun org-x-dag-id->agenda-timestamp (id)
|
(defun org-x-dag-id->agenda-timestamp (id)
|
||||||
"Retrieve timestamp information of ID for sorting agenda views.
|
"Retrieve timestamp information of ID for sorting agenda views.
|
||||||
|
@ -2892,7 +2892,7 @@ encountered will be returned."
|
||||||
('warning '(:warning-value :warning-unit :warning-type))
|
('warning '(:warning-value :warning-unit :warning-type))
|
||||||
('repeater '(:repeater-value :repeater-unit :repeater-type))))
|
('repeater '(:repeater-value :repeater-unit :repeater-type))))
|
||||||
(islongp (->> (org-ml-timestamp-get-start-time ts)
|
(islongp (->> (org-ml-timestamp-get-start-time ts)
|
||||||
(org-ml-time-is-long))))
|
(org-ml-timelist-has-time))))
|
||||||
(-when-let ((value unit type) (org-ml-get-properties props ts))
|
(-when-let ((value unit type) (org-ml-get-properties props ts))
|
||||||
(let ((v (convert-value islongp value unit))
|
(let ((v (convert-value islongp value unit))
|
||||||
(u (convert-unit unit)))
|
(u (convert-unit unit)))
|
||||||
|
@ -2944,7 +2944,7 @@ FUTURE-LIMIT in a list."
|
||||||
|
|
||||||
(defun org-x-dag-get-scheduled-at (sel-date pts)
|
(defun org-x-dag-get-scheduled-at (sel-date pts)
|
||||||
(-let* (((&plist :datetime d :repeater r) pts)
|
(-let* (((&plist :datetime d :repeater r) pts)
|
||||||
(islongp (org-ml-time-is-long d))
|
(islongp (org-ml-timelist-has-time d))
|
||||||
(sel-date+ (org-x-dag-datetime-shift sel-date 1 'submonth))
|
(sel-date+ (org-x-dag-datetime-shift sel-date 1 'submonth))
|
||||||
((future-limit cur)
|
((future-limit cur)
|
||||||
(if islongp
|
(if islongp
|
||||||
|
@ -2955,7 +2955,7 @@ FUTURE-LIMIT in a list."
|
||||||
|
|
||||||
(defun org-x-dag-get-deadlines-at (sel-date pts)
|
(defun org-x-dag-get-deadlines-at (sel-date pts)
|
||||||
(-let* (((&plist :datetime d :repeater r :warning w) pts)
|
(-let* (((&plist :datetime d :repeater r :warning w) pts)
|
||||||
(islongp (org-ml-time-is-long d))
|
(islongp (org-ml-timelist-has-time d))
|
||||||
((warn-shift warn-shifttype)
|
((warn-shift warn-shifttype)
|
||||||
(if w w
|
(if w w
|
||||||
(let ((f (if islongp 1440 1)))
|
(let ((f (if islongp 1440 1)))
|
||||||
|
@ -3465,14 +3465,14 @@ FUTURE-LIMIT in a list."
|
||||||
;; agenda/calendar
|
;; agenda/calendar
|
||||||
|
|
||||||
(defun org-x-dag-show-gaps (sel-date ids)
|
(defun org-x-dag-show-gaps (sel-date ids)
|
||||||
(let* ((epoch (org-ml-time-to-unixtime sel-date))
|
(let* ((epoch (org-ml-timelist-to-unixtime sel-date))
|
||||||
(epoch+ (+ epoch 86400))
|
(epoch+ (+ epoch 86400))
|
||||||
(epoch- (- epoch 86400)))
|
(epoch- (- epoch 86400)))
|
||||||
(cl-flet*
|
(cl-flet*
|
||||||
((to-interval
|
((to-interval
|
||||||
(duration datetime)
|
(duration datetime)
|
||||||
(when (and (< 0 duration) (org-ml-time-is-long datetime))
|
(when (and (< 0 duration) (org-ml-timelist-has-time datetime))
|
||||||
(let* ((start (org-ml-time-to-unixtime datetime))
|
(let* ((start (org-ml-timelist-to-unixtime datetime))
|
||||||
(end (+ start duration)))
|
(end (+ start duration)))
|
||||||
(when (or (and (<= epoch start) (<= start epoch+))
|
(when (or (and (<= epoch start) (<= start epoch+))
|
||||||
(and (<= epoch- start) (<= epoch end)))
|
(and (<= epoch- start) (<= epoch end)))
|
||||||
|
@ -3605,7 +3605,7 @@ FUTURE-LIMIT in a list."
|
||||||
(x)
|
(x)
|
||||||
(-let* (((&plist :datetime :id) x)
|
(-let* (((&plist :datetime :id) x)
|
||||||
(duration (or (org-x-dag-id->duration id) 0))
|
(duration (or (org-x-dag-id->duration id) 0))
|
||||||
(start (org-ml-time-to-unixtime datetime)))
|
(start (org-ml-timelist-to-unixtime datetime)))
|
||||||
`(,start ,(+ start (* 60 duration)))))
|
`(,start ,(+ start (* 60 duration)))))
|
||||||
(format-dtl
|
(format-dtl
|
||||||
(fun dtl conflict)
|
(fun dtl conflict)
|
||||||
|
@ -3621,7 +3621,7 @@ FUTURE-LIMIT in a list."
|
||||||
(can-conflict-p
|
(can-conflict-p
|
||||||
(dtl)
|
(dtl)
|
||||||
(-let (((&plist :datetime :id) dtl))
|
(-let (((&plist :datetime :id) dtl))
|
||||||
(and (org-ml-time-is-long datetime)
|
(and (org-ml-timelist-has-time datetime)
|
||||||
(not (org-x-dag-id->is-done-p id))))))
|
(not (org-x-dag-id->is-done-p id))))))
|
||||||
(with-temp-buffer
|
(with-temp-buffer
|
||||||
(org-mode)
|
(org-mode)
|
||||||
|
@ -3669,7 +3669,7 @@ FUTURE-LIMIT in a list."
|
||||||
;; headline parent links
|
;; headline parent links
|
||||||
|
|
||||||
(defun org-x-dag-section-get-parent-links (children)
|
(defun org-x-dag-section-get-parent-links (children)
|
||||||
(->> (--find (org-x--is-drawer-with-name org-x-drwr-parent-links it) children)
|
(-some->> (--find (org-x--is-drawer-with-name org-x-drwr-parent-links it) children)
|
||||||
(org-x-dag-drawer-get-parent-links)))
|
(org-x-dag-drawer-get-parent-links)))
|
||||||
|
|
||||||
(defun org-x-dag-section-set-parent-links (ids children)
|
(defun org-x-dag-section-set-parent-links (ids children)
|
||||||
|
@ -3681,7 +3681,7 @@ FUTURE-LIMIT in a list."
|
||||||
(if ids (cons (org-x-dag-build-parent-link-drawer ids) children) children)))
|
(if ids (cons (org-x-dag-build-parent-link-drawer ids) children) children)))
|
||||||
|
|
||||||
(defun org-x-dag-headline-get-parent-links (headline)
|
(defun org-x-dag-headline-get-parent-links (headline)
|
||||||
(->> headline
|
(-some->> headline
|
||||||
(org-ml-headline-get-contents (org-x-logbook-config))
|
(org-ml-headline-get-contents (org-x-logbook-config))
|
||||||
(org-x-dag-section-get-parent-links)))
|
(org-x-dag-section-get-parent-links)))
|
||||||
|
|
||||||
|
@ -3759,12 +3759,11 @@ FUTURE-LIMIT in a list."
|
||||||
(cl-flet
|
(cl-flet
|
||||||
((has-date-p
|
((has-date-p
|
||||||
(date headline)
|
(date headline)
|
||||||
(-when-let (sched (-some->> (org-ml-headline-get-planning headline)
|
(-when-let (sched (-some--> (org-ml-headline-get-planning headline)
|
||||||
(org-ml-get-property :scheduled)
|
(plist-get it :scheduled)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-x-dag-datetime-split it)
|
||||||
(org-x-dag-datetime-split)
|
(car it)
|
||||||
(car)
|
(org-x-dag-date-to-absolute it)))
|
||||||
(org-x-dag-date-to-absolute)))
|
|
||||||
(= sched date))))
|
(= sched date))))
|
||||||
(--find (has-date-p date it) headlines)))
|
(--find (has-date-p date it) headlines)))
|
||||||
|
|
||||||
|
@ -3868,7 +3867,7 @@ FUTURE-LIMIT in a list."
|
||||||
(org-x-dag-build-planning-id-headline title 4 paragraph ids))
|
(org-x-dag-build-planning-id-headline title 4 paragraph ids))
|
||||||
|
|
||||||
(defun org-x-dag-build-dlp-headline (title paragraph ids datetime)
|
(defun org-x-dag-build-dlp-headline (title paragraph ids datetime)
|
||||||
(let ((pl (org-ml-build-planning! :scheduled datetime)))
|
(let ((pl (list :scheduled datetime)))
|
||||||
(->> (org-x-dag-build-planning-id-headline title 4 paragraph ids)
|
(->> (org-x-dag-build-planning-id-headline title 4 paragraph ids)
|
||||||
(org-ml-headline-set-planning pl))))
|
(org-ml-headline-set-planning pl))))
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ nothing."
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(widen)
|
(widen)
|
||||||
(goto-char pos)
|
(goto-char pos)
|
||||||
(org-show-context 'agenda)
|
(org-fold-show-context 'agenda)
|
||||||
,@body
|
,@body
|
||||||
,@get-head-form)
|
,@get-head-form)
|
||||||
,@update-form
|
,@update-form
|
||||||
|
|
|
@ -94,7 +94,7 @@ entire subtrees to save time and ignore tasks")
|
||||||
(car)
|
(car)
|
||||||
(org-ml-get-property :value)
|
(org-ml-get-property :value)
|
||||||
(org-ml-timestamp-get-end-time)
|
(org-ml-timestamp-get-end-time)
|
||||||
(org-ml-time-to-unixtime))))
|
(org-ml-timelist-to-unixtime))))
|
||||||
(cond
|
(cond
|
||||||
((and first-item-ut first-clock-ut (< first-item-ut first-clock-ut))
|
((and first-item-ut first-clock-ut (< first-item-ut first-clock-ut))
|
||||||
first-clock-ut)
|
first-clock-ut)
|
||||||
|
@ -294,7 +294,7 @@ the epoch time of the timestamp."
|
||||||
(org-x-headline-is-closed-p)))
|
(org-x-headline-is-closed-p)))
|
||||||
|
|
||||||
(defun org-x-headline-is-created-in-future ()
|
(defun org-x-headline-is-created-in-future ()
|
||||||
"Return non-nil if current headline was 'created' in the future.
|
"Return non-nil if current headline was \"created\" in the future.
|
||||||
This should not happen and is an error if it does, and the
|
This should not happen and is an error if it does, and the
|
||||||
headline is tested analogously to `org-x-headline-is-created-p'
|
headline is tested analogously to `org-x-headline-is-created-p'
|
||||||
except tests if the timestamp is in the future. Actual returned
|
except tests if the timestamp is in the future. Actual returned
|
||||||
|
@ -321,11 +321,11 @@ timestamp."
|
||||||
(scheduled-ut (-some->> planning
|
(scheduled-ut (-some->> planning
|
||||||
(org-ml-get-property :scheduled)
|
(org-ml-get-property :scheduled)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime)))
|
(org-ml-timelist-to-unixtime)))
|
||||||
(deadline-ut (-some->> planning
|
(deadline-ut (-some->> planning
|
||||||
(org-ml-get-property :deadline)
|
(org-ml-get-property :deadline)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime)))
|
(org-ml-timelist-to-unixtime)))
|
||||||
(created-ut (-some->> (org-ml-headline-get-node-property org-x-prop-created hl)
|
(created-ut (-some->> (org-ml-headline-get-node-property org-x-prop-created hl)
|
||||||
(org-2ft))))
|
(org-2ft))))
|
||||||
;; not inert if headline is scheduled or deadlined in the future
|
;; not inert if headline is scheduled or deadlined in the future
|
||||||
|
@ -504,7 +504,7 @@ property."
|
||||||
|
|
||||||
(defmacro org-x-headline-is-task-with-p (&rest body)
|
(defmacro org-x-headline-is-task-with-p (&rest body)
|
||||||
"Return t if all of BODY is t on the current headline.
|
"Return t if all of BODY is t on the current headline.
|
||||||
'it' is bound to the keyword (if any)."
|
`it' is bound to the keyword (if any)."
|
||||||
(declare (indent 0))
|
(declare (indent 0))
|
||||||
`(-when-let (it (org-x-headline-is-task-p))
|
`(-when-let (it (org-x-headline-is-task-p))
|
||||||
(and ,@body t)))
|
(and ,@body t)))
|
||||||
|
@ -562,7 +562,7 @@ property."
|
||||||
|
|
||||||
(defun org-x-headline-get-meeting-drawer (drawer-name)
|
(defun org-x-headline-get-meeting-drawer (drawer-name)
|
||||||
"Return DRAWER-NAME under current headline.
|
"Return DRAWER-NAME under current headline.
|
||||||
If drawer is present but has no children, return 'none'. If
|
If drawer is present but has no children, return `none'. If
|
||||||
drawer is present and has a plain-list, return its items as a
|
drawer is present and has a plain-list, return its items as a
|
||||||
list of nodes. If none of these conditions are true, return nil."
|
list of nodes. If none of these conditions are true, return nil."
|
||||||
(-when-let (d (->> (org-ml-parse-this-headline)
|
(-when-let (d (->> (org-ml-parse-this-headline)
|
||||||
|
@ -1281,7 +1281,7 @@ latter codes in the list trump earlier ones."
|
||||||
(org-ml-match org-x--first-active-ts-pattern)
|
(org-ml-match org-x--first-active-ts-pattern)
|
||||||
(car)
|
(car)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime)))
|
(org-ml-timelist-to-unixtime)))
|
||||||
(new-status
|
(new-status
|
||||||
(cur-status ts)
|
(cur-status ts)
|
||||||
(let ((new (cond
|
(let ((new (cond
|
||||||
|
@ -1528,7 +1528,7 @@ ARG and INTERACTIVE are passed to `org-store-link'."
|
||||||
(node)
|
(node)
|
||||||
(-some->> (org-x-metablock-get-timestamp node)
|
(-some->> (org-x-metablock-get-timestamp node)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime)
|
(org-ml-timelist-to-unixtime)
|
||||||
(< (float-time)))))
|
(< (float-time)))))
|
||||||
(->> (org-x-parse-file-headlines (org-x-get-daily-plan-file) 'all)
|
(->> (org-x-parse-file-headlines (org-x-get-daily-plan-file) 'all)
|
||||||
(--filter (null (org-ml-headline-get-subheadlines it)))
|
(--filter (null (org-ml-headline-get-subheadlines it)))
|
||||||
|
@ -1614,7 +1614,7 @@ ARG and INTERACTIVE are passed to `org-store-link'."
|
||||||
(ts (-some->> (org-ml-headline-get-planning headline)
|
(ts (-some->> (org-ml-headline-get-planning headline)
|
||||||
(org-ml-get-property :scheduled)
|
(org-ml-get-property :scheduled)
|
||||||
(org-ml-timestamp-get-start-time)
|
(org-ml-timestamp-get-start-time)
|
||||||
(org-ml-time-to-unixtime))))
|
(org-ml-timelist-to-unixtime))))
|
||||||
(when (org-ml-is-type 'plain-list first)
|
(when (org-ml-is-type 'plain-list first)
|
||||||
(->> (org-ml-get-children first)
|
(->> (org-ml-get-children first)
|
||||||
(--map (org-x--make-agenda-metaitem headline is-closed ts it))))))
|
(--map (org-x--make-agenda-metaitem headline is-closed ts it))))))
|
||||||
|
@ -1723,7 +1723,8 @@ This includes unchecking all checkboxes, marking keywords as
|
||||||
(--remove (org-x--is-drawer-with-name org-x-drwr-agenda it))))
|
(--remove (org-x--is-drawer-with-name org-x-drwr-agenda it))))
|
||||||
;; remove CLOSED planning entry
|
;; remove CLOSED planning entry
|
||||||
(org-ml-headline-map-planning*
|
(org-ml-headline-map-planning*
|
||||||
(-some->> it (org-ml-planning-set-timestamp! :closed nil)))
|
(plist-put it :closed nil))
|
||||||
|
;; (-some->> it (org-ml-planning-set-timestamp! :closed nil)))
|
||||||
;; clear item checkboxes
|
;; clear item checkboxes
|
||||||
(org-ml-match-map* '(section :any * item)
|
(org-ml-match-map* '(section :any * item)
|
||||||
(org-ml-set-property :checkbox 'off it))
|
(org-ml-set-property :checkbox 'off it))
|
||||||
|
@ -1762,11 +1763,14 @@ timestamp in the contents of the headline will be shifted."
|
||||||
subtree)
|
subtree)
|
||||||
(t
|
(t
|
||||||
(org-ml-headline-map-planning*
|
(org-ml-headline-map-planning*
|
||||||
(-some->> it
|
(-let (((&plist :scheduled s :deadline d) it))
|
||||||
(org-ml-map-property* :scheduled
|
(when s
|
||||||
(when it (org-ml-timestamp-shift offset unit it)))
|
(->> (org-ml-timelist-shift offset unit s)
|
||||||
(org-ml-map-property* :deadline
|
(plist-put it :scheduled)))
|
||||||
(when it (org-ml-timestamp-shift offset unit it))))
|
(when d
|
||||||
|
(->> (org-ml-timelist-shift offset unit d)
|
||||||
|
(plist-put it :deadline)))
|
||||||
|
it)
|
||||||
subtree)))))
|
subtree)))))
|
||||||
(shift
|
(shift
|
||||||
(offset unit subtree)
|
(offset unit subtree)
|
||||||
|
@ -1785,7 +1789,8 @@ timestamp in the contents of the headline will be shifted."
|
||||||
(--map-when (org-ml-get-property :todo-keyword it)
|
(--map-when (org-ml-get-property :todo-keyword it)
|
||||||
(assign-id it)
|
(assign-id it)
|
||||||
it)))))
|
it)))))
|
||||||
(->> (org-ml-clone-node-n n headline)
|
(->> (-repeat n headline)
|
||||||
|
(--map (org-element-copy it t))
|
||||||
(--map-indexed (org-x--subtree-shift-timestamps
|
(--map-indexed (org-x--subtree-shift-timestamps
|
||||||
(* offset (1+ it-index)) unit it))
|
(* offset (1+ it-index)) unit it))
|
||||||
(-map #'assign-id))))
|
(-map #'assign-id))))
|
||||||
|
@ -1878,13 +1883,14 @@ ARG, ask for a range in minutes in place of the second date."
|
||||||
(let* ((t1 (read-date nil))
|
(let* ((t1 (read-date nil))
|
||||||
(t2 (if (equal arg '(4)) (read-duration t1) (read-date t1))))
|
(t2 (if (equal arg '(4)) (read-duration t1) (read-date t1))))
|
||||||
(if (< t2 t1) (message "Second timestamp earlier than first!")
|
(if (< t2 t1) (message "Second timestamp earlier than first!")
|
||||||
(let ((s (org-ml-unixtime-to-time-long t1))
|
(let ((s (org-ml-unixtime-to-timelist t t1))
|
||||||
(e (org-ml-unixtime-to-time-long t2)))
|
(e (org-ml-unixtime-to-timelist t t2)))
|
||||||
(org-ml-update-this-headline*
|
(org-ml-update-this-headline*
|
||||||
(org-ml-headline-map-logbook-clocks* (org-x-logbook-config)
|
(org-ml-headline-map-logbook-clocks* (org-x-logbook-config)
|
||||||
(let ((new-clock (org-ml-build-clock! s :end e)))
|
(let ((new-clock (org-ml-build-clock! s :end e))
|
||||||
(if (org-ml-clock-is-running (car it))
|
(first-clock (car it)))
|
||||||
`(,(car it) ,new-clock ,@(cdr it))
|
(if (and first-clock (org-ml-clock-is-running first-clock))
|
||||||
|
`(,first-clock ,new-clock ,@(cdr it))
|
||||||
(cons new-clock it)))
|
(cons new-clock it)))
|
||||||
it)))))))
|
it)))))))
|
||||||
|
|
||||||
|
@ -1896,7 +1902,7 @@ including those that are inherited."
|
||||||
(let ((atodo (org-ml-get-property :todo-keyword headline))
|
(let ((atodo (org-ml-get-property :todo-keyword headline))
|
||||||
(atime (-> (substring (cdr org-time-stamp-formats) 1 -1)
|
(atime (-> (substring (cdr org-time-stamp-formats) 1 -1)
|
||||||
(format-time-string))))
|
(format-time-string))))
|
||||||
(->> (org-ml-clone-node headline)
|
(->> (org-element-copy headline t)
|
||||||
(org-ml-headline-set-node-property "ARCHIVE_TIME" atime)
|
(org-ml-headline-set-node-property "ARCHIVE_TIME" atime)
|
||||||
(org-ml-headline-set-node-property "ARCHIVE_FILE" afile)
|
(org-ml-headline-set-node-property "ARCHIVE_FILE" afile)
|
||||||
(org-ml-headline-set-node-property "ARCHIVE_OLPATH" apath)
|
(org-ml-headline-set-node-property "ARCHIVE_OLPATH" apath)
|
||||||
|
@ -1936,7 +1942,7 @@ and slow."
|
||||||
(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*
|
||||||
(let ((time (org-ml-unixtime-to-time-long (float-time))))
|
(let ((time (org-ml-unixtime-to-time-long (float-time))))
|
||||||
(org-ml-planning-set-timestamp! :closed time it)))
|
(plist-put it :closed time)))
|
||||||
;; shift it to the top level
|
;; shift it to the top level
|
||||||
(org-ml-shift-property :level level-shift)
|
(org-ml-shift-property :level level-shift)
|
||||||
(org-ml-match-map* '(:any * headline)
|
(org-ml-match-map* '(:any * headline)
|
||||||
|
@ -1963,7 +1969,7 @@ and slow."
|
||||||
(org-ml-unixtime-to-time-long)
|
(org-ml-unixtime-to-time-long)
|
||||||
(org-ml-build-timestamp!)
|
(org-ml-build-timestamp!)
|
||||||
(org-ml-to-string)
|
(org-ml-to-string)
|
||||||
(org-ml-build-node-property org-x-prop-created))))
|
(list org-x-prop-created))))
|
||||||
(org-ml-update-this-headline*
|
(org-ml-update-this-headline*
|
||||||
(org-ml-headline-map-node-properties* (-snoc it np) it))))
|
(org-ml-headline-map-node-properties* (-snoc it np) it))))
|
||||||
|
|
||||||
|
@ -1978,7 +1984,7 @@ If ARG is non-nil use long timestamp format."
|
||||||
(org-ml-unixtime-to-time-short ut))
|
(org-ml-unixtime-to-time-short ut))
|
||||||
(org-ml-build-timestamp!)
|
(org-ml-build-timestamp!)
|
||||||
(org-ml-to-string)
|
(org-ml-to-string)
|
||||||
(org-ml-build-node-property org-x-prop-expire))))
|
(list org-x-prop-expire))))
|
||||||
(org-ml-update-this-headline*
|
(org-ml-update-this-headline*
|
||||||
(org-ml-headline-map-node-properties* (cons np it) it)))))
|
(org-ml-headline-map-node-properties* (cons np it) it)))))
|
||||||
|
|
||||||
|
@ -1986,7 +1992,7 @@ If ARG is non-nil use long timestamp format."
|
||||||
"Set days-to-live of the current headline."
|
"Set days-to-live of the current headline."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((np (->> (org-x--read-number-from-minibuffer "Days to live" t)
|
(let ((np (->> (org-x--read-number-from-minibuffer "Days to live" t)
|
||||||
(org-ml-build-node-property org-x-prop-days-to-live))))
|
(list org-x-prop-days-to-live))))
|
||||||
(org-ml-update-this-headline*
|
(org-ml-update-this-headline*
|
||||||
(org-ml-headline-map-node-properties* (cons np it) it))))
|
(org-ml-headline-map-node-properties* (cons np it) it))))
|
||||||
|
|
||||||
|
@ -2127,7 +2133,7 @@ This will return matching matcher form for FILTER and TYPE
|
||||||
where TYPE is not in the regular `org-agenda-filter-make-matcher'
|
where TYPE is not in the regular `org-agenda-filter-make-matcher'
|
||||||
function. This is intended to be used as :before-until advice and
|
function. This is intended to be used as :before-until advice and
|
||||||
will return nil if the type is not valid (which is currently
|
will return nil if the type is not valid (which is currently
|
||||||
'property')"
|
`property')"
|
||||||
(when (eq type 'property)
|
(when (eq type 'property)
|
||||||
(-some->> (-map #'org-x-agenda-filter-make-property-matcher-form filter)
|
(-some->> (-map #'org-x-agenda-filter-make-property-matcher-form filter)
|
||||||
(cons 'and))))
|
(cons 'and))))
|
||||||
|
|
|
@ -1,137 +1,139 @@
|
||||||
(("ESS" . "e4f2afb90d11613c4c2a28720dcda226699b4dfb")
|
(("ESS" . "461bd6bee440b92c2dcddd64965eeabbdcc65e31")
|
||||||
("Highlight-Indentation-for-Emacs" . "d88db4248882da2d4316e76ed673b4ac1fa99ce3")
|
("Highlight-Indentation-for-Emacs" . "d88db4248882da2d4316e76ed673b4ac1fa99ce3")
|
||||||
("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196")
|
("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196")
|
||||||
("anaconda-mode" . "79fa9b4d2bda9f69857aeffb30c75276848a2810")
|
("anaconda-mode" . "f900bd7656a03aa24ef3295251f266736f7756eb")
|
||||||
("annalist.el" . "e1ef5dad75fa502d761f70d9ddf1aeb1c423f41d")
|
("annalist.el" . "e1ef5dad75fa502d761f70d9ddf1aeb1c423f41d")
|
||||||
("auctex" . "5b1229745b4d862e07e28fc597d92457688926f2")
|
("auctex" . "0de9730957ba3be776e4ec471c4c41ab18888ab3")
|
||||||
("auth-source-xoauth2" . "5d1adfa649bb5a9df20a2fa89f235a55a64b52e4")
|
("auth-source-xoauth2" . "5d1adfa649bb5a9df20a2fa89f235a55a64b52e4")
|
||||||
("avy" . "be612110cb116a38b8603df367942e2bb3d9bdbe")
|
("avy" . "933d1f36cca0f71e4acb5fac707e9ae26c536264")
|
||||||
("bats-mode" . "fa88930b1baba101ae6474f289a239a236a7d19f")
|
("bats-mode" . "fa88930b1baba101ae6474f289a239a236a7d19f")
|
||||||
("beacon" . "85261a928ae0ec3b41e639f05291ffd6bf7c231c")
|
("beacon" . "85261a928ae0ec3b41e639f05291ffd6bf7c231c")
|
||||||
("biblio.el" . "ee52f6cda82ea6fbc3b400e7b12132595cc0374c")
|
("biblio.el" . "ee52f6cda82ea6fbc3b400e7b12132595cc0374c")
|
||||||
("blacken" . "0719cd6b301806c64ec79be9eebe954941e65277")
|
("bind-key" . "ae3197044f47f6a83897dd70762cb58c6efcffa1")
|
||||||
|
("blacken" . "3c6eb86ad871ca14fcfd4e5c0e7b285afa1f1f71")
|
||||||
("c-eldoc" . "f4ede1f37f6de583376669735326367d84a0a917")
|
("c-eldoc" . "f4ede1f37f6de583376669735326367d84a0a917")
|
||||||
("citeproc-el" . "fed285385c1a8c0248890cd591f64a0e2598334d")
|
("citeproc-el" . "54184baaff555b5c7993d566d75dd04ed485b5c0")
|
||||||
("clang-format" . "9f4358fcc8b04018cc1ed46fcc96fc7bfa361a47")
|
("clang-format" . "f01d16be89a4421169c421d25cfdddb3ad62460f")
|
||||||
("company-anaconda" . "1fe526163c265891cc20d971dc58b661ad8bcf23")
|
("company-anaconda" . "169252fca79a79da41ef22f2ec0eab0cf1313966")
|
||||||
("company-auctex" . "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18")
|
("company-auctex" . "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18")
|
||||||
("company-c-headers" . "9d384571b1190e99d0a789e5296176d69a3d0771")
|
("company-c-headers" . "9d384571b1190e99d0a789e5296176d69a3d0771")
|
||||||
("company-irony" . "b44711dfce445610c1ffaec4951c6ff3882b216a")
|
("company-irony" . "b44711dfce445610c1ffaec4951c6ff3882b216a")
|
||||||
("company-math" . "3eb006874e309ff4076d947fcbd61bb6806aa508")
|
("company-math" . "3eb006874e309ff4076d947fcbd61bb6806aa508")
|
||||||
("company-mode" . "6c7731d4ec1e43199ea328e1691999b4fe8967a8")
|
("company-mode" . "0ae7c293112248a0c36377d6859a95d216ae5e96")
|
||||||
("compat" . "25da9d232399203a38722aa6638b7fe8ecab3f60")
|
("compat" . "bc9ab3e4c05a249b9d34dd5039cbd8068f757ad8")
|
||||||
("conda.el" . "60e14d1e9793431b91913a5688e278bd91d56224")
|
("conda.el" . "05de0c8f0cf336d90c044446aaa066ee13001b83")
|
||||||
("csv-mode" . "cdb73a771b0b9fa3cbae66dde5b934be6550a8b1")
|
("csv-mode" . "6979fc18ebe133cfe2fca02efda9a9f0cd13428a")
|
||||||
("dash.el" . "1de9dcb83eacfb162b6d9a118a4770b1281bcd84")
|
("dash.el" . "1de9dcb83eacfb162b6d9a118a4770b1281bcd84")
|
||||||
("delight" . "b59977bb957a5a79eb8aa0028d8e6e8ed6a7a6e1")
|
("delight" . "15acb0f0ba400c470e378f9984b315f9e02c1122")
|
||||||
("dhall-mode" . "87ab69fe765d87b3bb1604a306a8c44d6887681d")
|
("dhall-mode" . "87ab69fe765d87b3bb1604a306a8c44d6887681d")
|
||||||
("dired-du" . "0fc6119ddd3144453158ac107a8b107d82652c36")
|
("dired-du" . "c16cad8c40a022a03dee1956a15ff44d1e42dc07")
|
||||||
("dired-hacks" . "a01c126c3b1068655509487c76971895f5459d09")
|
("dired-hacks" . "e9e408e8571aee5574ca0a431ef15cac5a3585d4")
|
||||||
("dockerfile-mode" . "39a012a27fcf6fb629c447d13b6974baf906714c")
|
("dockerfile-mode" . "4d893bd2da15833ce056332e6c972d5d93e78f04")
|
||||||
("ebib" . "2f2d39d1953fa10d7c3dad6a4611d8ec0d489aba")
|
("ebib" . "5dac71546bb8541ee67104c17df6fc3ae5e364db")
|
||||||
("el-get" . "f220df34333fdb363b84b28f4ed4a5575341bf45")
|
("el-get" . "847901f07bdf67763fa3a6c0fb057048cd58603b")
|
||||||
("elpy" . "777e9909c8f1c11f1cfb8dbf5fe4a66d2ab95e1e")
|
("elpy" . "c40bab559fe77dcef6b90d5502eba1ecd566e86d")
|
||||||
("emacs-async" . "72b70b004505db2f06318fefd6b358704b9167d7")
|
("emacs-async" . "af47d6f930f93d4fdc4ca46e19e17547bf486c4c")
|
||||||
("emacs-buttercup" . "a1a86b027ffe030e1c78a9f43c50cd20a6fed19a")
|
("emacs-buttercup" . "bf01a33f8bc2d3664121d3b20f7496e67ce55e6a")
|
||||||
("emacs-calfw" . "03abce97620a4a7f7ec5f911e669da9031ab9088")
|
("emacs-calfw" . "03abce97620a4a7f7ec5f911e669da9031ab9088")
|
||||||
("emacs-dashboard" . "3852301f9c6f3104d9cc98389612b5ef3452a7de")
|
("emacs-dashboard" . "946b9957470a3cac6b089bdf2d9edd07a29fcc9c")
|
||||||
("emacs-format-all-the-code" . "f8feea08fef7ed542b8e676e90445d57ebd2c458")
|
("emacs-format-all-the-code" . "9ae47456dad2925e4d41f58bd2c864b87f82aa8b")
|
||||||
("emacs-htmlize" . "ed5e5b05fd260e8f161a488d56f10e7f6e01fb75")
|
("emacs-htmlize" . "8e3841c837b4b78bd72ad7f0436e919f39315a46")
|
||||||
("emacs-language-id" . "435114f208b97e97aa1576ef1966a33d90cad01b")
|
("emacs-language-id" . "dbfbc4903ffb042552b458fac76ee9f67a022036")
|
||||||
("emacs-refactor" . "cac1b52932926f56d7f6d2923732d20bbd20670d")
|
("emacs-refactor" . "cac1b52932926f56d7f6d2923732d20bbd20670d")
|
||||||
("emacs-reformatter" . "0d29a04d69d47599e2cb7f1a8f8e897a2b592921")
|
("emacs-reformatter" . "8962e1dd0c949997413380ea1f8d8a25ada5f624")
|
||||||
("emacs-request" . "01e338c335c07e4407239619e57361944a82cb8a")
|
("emacs-request" . "01e338c335c07e4407239619e57361944a82cb8a")
|
||||||
("emacs-web-server" . "3982c55e9061475038a3ccd61aecb2de3d407cec")
|
("emacs-web-server" . "3982c55e9061475038a3ccd61aecb2de3d407cec")
|
||||||
("emacs-which-key" . "1e89fa000e9ba9549f15ef57abccd118d5f2fe1a")
|
("emacs-which-key" . "38d4308d1143b61e4004b6e7a940686784e51500")
|
||||||
("emacsmirror-mirror" . "55c75c9ec26d9167a7815f20056f6ce0170f88cf")
|
("emacsmirror-mirror" . "443e7f76049845082663208f78bdfc448af4dbe6")
|
||||||
("evil" . "3ba76c1c1f6e8f0389d7bebbd220eefaca796da4")
|
("evil" . "b7ab3840dbfc1da5f9ad56542fc94e3dab4be5f1")
|
||||||
("evil-ReplaceWithRegister" . "91cc7bf21a94703c441cc9212214075b226b7f67")
|
("evil-ReplaceWithRegister" . "91cc7bf21a94703c441cc9212214075b226b7f67")
|
||||||
("evil-collection" . "acb056b1d0d3aad2f32b1ca9c019a9a2e976f03e")
|
("evil-collection" . "4f179477f7d2ab705b05f5e3524a9aa3de8d6d3d")
|
||||||
("evil-commentary" . "c5945f28ce47644c828aac1f5f6ec335478d17fb")
|
("evil-commentary" . "c5945f28ce47644c828aac1f5f6ec335478d17fb")
|
||||||
("evil-org-mode" . "b1f309726b1326e1a103742524ec331789f2bf94")
|
("evil-org-mode" . "b1f309726b1326e1a103742524ec331789f2bf94")
|
||||||
("evil-surround" . "da05c60b0621cf33161bb4335153f75ff5c29d91")
|
("evil-surround" . "da05c60b0621cf33161bb4335153f75ff5c29d91")
|
||||||
("f.el" . "1e7020dc0d4c52d3da9bd610d431cab13aa02d8c")
|
("f.el" . "931b6d0667fe03e7bf1c6c282d6d8d7006143c52")
|
||||||
("fill-column-indicator" . "c35f9de072c241699b57bcb46da84bed5af29cfe")
|
("fill-column-indicator" . "c35f9de072c241699b57bcb46da84bed5af29cfe")
|
||||||
("flycheck" . "10430dee428f7bab176743097d996182fac29daa")
|
("flycheck" . "5217e0e02f487d70e3d418e5e6ce884fc9711511")
|
||||||
("flycheck-clang-analyzer" . "646d9f3a80046ab231a07526778695d5decad92d")
|
("flycheck-clang-analyzer" . "646d9f3a80046ab231a07526778695d5decad92d")
|
||||||
("flycheck-haskell" . "b7c4861aa754220b7d0cfc05aa0895bb35665683")
|
("flycheck-haskell" . "b7c4861aa754220b7d0cfc05aa0895bb35665683")
|
||||||
("flycheck-package" . "75efa098cf17dc14c363e2ca9b68afdac7766b5b")
|
("flycheck-package" . "a52e4e95f3151898b36739dfdb4a98b368626fc0")
|
||||||
("flyspell-correct" . "1e7a5a56362dd875dddf848b9a9e25d1395b9d37")
|
("flyspell-correct" . "1e7a5a56362dd875dddf848b9a9e25d1395b9d37")
|
||||||
("gnu-elpa-mirror" . "5338f22d8cee40109a2616007b40b558e53eb0ae")
|
("gnu-elpa-mirror" . "97f6fd99aa7184c6bcd23cffc7653b8212479cc6")
|
||||||
("goto-chg" . "72f556524b88e9d30dc7fc5b0dc32078c166fda7")
|
("goto-chg" . "72f556524b88e9d30dc7fc5b0dc32078c166fda7")
|
||||||
("graphviz-dot-mode" . "8ff793b13707cb511875f56e167ff7f980a31136")
|
("graphviz-dot-mode" . "8ff793b13707cb511875f56e167ff7f980a31136")
|
||||||
("haskell-mode" . "727f72a2a4b8e4fd0a7b62129668baea55a2c3e0")
|
("haskell-mode" . "1a285fc4c50ca74bb5cd9b2a8c1a46a64a77384a")
|
||||||
("helm-bibtex" . "8b71b4f5ce62eeaf18067f57faaddc06449fbe1c")
|
("helm-bibtex" . "6064e8625b2958f34d6d40312903a85c173b5261")
|
||||||
("ht.el" . "1c49aad1c820c86f7ee35bf9fff8429502f60fef")
|
("ht.el" . "1c49aad1c820c86f7ee35bf9fff8429502f60fef")
|
||||||
("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b")
|
("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b")
|
||||||
("iedit" . "27c61866b1b9b8d77629ac702e5f48e67dfe0d3b")
|
("iedit" . "27c61866b1b9b8d77629ac702e5f48e67dfe0d3b")
|
||||||
("impatient-mode" . "a4e4e12852840996b027cb8e9fb2b809c37a0ee3")
|
("impatient-mode" . "a4e4e12852840996b027cb8e9fb2b809c37a0ee3")
|
||||||
("inf-ruby" . "0cfe8b2fb1ab222ed423a8e6f339d398fa32966f")
|
("inf-ruby" . "6399a3668224aa48423c54e81383f73e5e39439a")
|
||||||
("inheritenv" . "bac62ca6324828623cf8ce5a3d6aee0fcb65d620")
|
("inheritenv" . "43808af6e31c015b518ff4b411cfc33cc24f7e3e")
|
||||||
("irony-mode" . "40e0ce19eb850bdf1f77225f11713cc816250d95")
|
("irony-mode" . "40e0ce19eb850bdf1f77225f11713cc816250d95")
|
||||||
("jinja2-mode" . "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1")
|
("jinja2-mode" . "03e5430a7efe1d163a16beaf3c82c5fd2c2caee1")
|
||||||
("js-comint" . "ef2ccccad5740f3d8b5295f52a35df4f62471480")
|
("js-comint" . "a2e6f01b999e26047808c1720b7be0805afc7cb6")
|
||||||
("json-mode" . "77125b01c0ddce537085201098bea9b4b8ba6be3")
|
("json-mode" . "77125b01c0ddce537085201098bea9b4b8ba6be3")
|
||||||
("json-snatcher" . "b28d1c0670636da6db508d03872d96ffddbc10f2")
|
("json-snatcher" . "b28d1c0670636da6db508d03872d96ffddbc10f2")
|
||||||
("let-alist" . "6e9f470e78cf50afa0e53a61da191d68d87a0104")
|
("let-alist" . "8141e7c941105c92e89bba44e73aae6cdd962b49")
|
||||||
("lispy" . "fe44efd21573868638ca86fc8313241148fabbe3")
|
("lispy" . "fe44efd21573868638ca86fc8313241148fabbe3")
|
||||||
("list-utils" . "f02dcef36330871855346f9eab97eef58d323d9a")
|
("list-utils" . "bbea0e7cc7ab7d96e7f062014bde438aa8ffcd43")
|
||||||
("lua-mode" . "d074e4134b1beae9ed4c9b512af741ca0d852ba3")
|
("lua-mode" . "d074e4134b1beae9ed4c9b512af741ca0d852ba3")
|
||||||
("magit" . "b908c79b44f5c282eec44f19fc1d9967f041dd5c")
|
("magit" . "8cee789f7a61a491d23a78360cbd2d626eda0f06")
|
||||||
("markdown-mode" . "0cdebc833ed9b98baf9f260ed12b1e36b0ca0e89")
|
("markdown-mode" . "b8637bae075231d70fe7f845305eaba2c0240d89")
|
||||||
("math-symbol-lists" . "ac3eb053d3b576fcdd192b0ac6ad5090ea3a7079")
|
("math-symbol-lists" . "ac3eb053d3b576fcdd192b0ac6ad5090ea3a7079")
|
||||||
("melpa" . "1b06cc08de41e82f3f148aa9e35663e2e06427ae")
|
("melpa" . "6c1d8ed99c3769f6a789fb51dc37794b95f8bb37")
|
||||||
("nix-mode" . "719feb7868fb567ecfe5578f6119892c771ac5e5")
|
("nix-mode" . "719feb7868fb567ecfe5578f6119892c771ac5e5")
|
||||||
("no-littering" . "8b07314d2f0594ff22bf798d9a5f5bf44b4dd4cd")
|
("no-littering" . "bbcbdcdce968a0ac7c293314e1aa7dfdda63a30c")
|
||||||
("nongnu-elpa" . "69e5a9b389738b8f090b96b909a213293cf8e46c")
|
("nongnu-elpa" . "4b8b3633c7e29412c89f1c9d6ad7a951772be758")
|
||||||
|
("org" . "233a0ced97366090c31ef94562879bb2f729b120")
|
||||||
("org-bullets" . "767f55feb58b840a5a04eabfc3fbbf0d257c4792")
|
("org-bullets" . "767f55feb58b840a5a04eabfc3fbbf0d257c4792")
|
||||||
("org-ml" . "f57336a9126a168ad32ccce017c072474555395a")
|
("org-ml" . "f57336a9126a168ad32ccce017c072474555395a")
|
||||||
("org-ref" . "4029a37e3ba36fb812cdf228e4b21db06ade2b6d")
|
("org-ref" . "732a20bd236fd02db4a651da29f87f87f458a54a")
|
||||||
("org-sql" . "43376abf46b897a9a862cfcc1c087f4b8688634c")
|
("org-sql" . "3dbf11d692cf0d5e64235ad4041ed0b5a6775064")
|
||||||
("org-super-agenda" . "51c9da5ce7b791150758984bab469d2222516844")
|
("org-super-agenda" . "c07e35416ce749b42cbb70ff8d4e814362111bb5")
|
||||||
("origami.el" . "e558710a975e8511b9386edc81cd6bdd0a5bda74")
|
("origami.el" . "e558710a975e8511b9386edc81cd6bdd0a5bda74")
|
||||||
("outline-magic" . "2a5f07417b696cf7541d435c43bafcc64817636b")
|
("outline-magic" . "2a5f07417b696cf7541d435c43bafcc64817636b")
|
||||||
("ox-pandoc" . "399d787b6e2124bd782615338b845c3724a47718")
|
("ox-pandoc" . "34e6ea97b586e20529d07158a73af3cf33cdd1d5")
|
||||||
("package-lint" . "972dd8403ac8d2d43f298ef89a6b118e49c7355f")
|
("package-lint" . "d2846f0c57931195946d771a900906e1a16d394e")
|
||||||
("paredit" . "9a2c4b37fc8c1c7bdbb1f86fdec874c0d0652e64")
|
("paredit" . "af075775af91f2dbc63b915d762b4aec092946c4")
|
||||||
("parsebib" . "ace9df707108b17759c004c7387655277122d4c1")
|
("parsebib" . "c0ee4d5f10bf801af03f633b6b73ced4a0ffead7")
|
||||||
("password-store" . "b5e965a838bb68c1227caa2cdd874ba496f10149")
|
("password-store" . "b5e965a838bb68c1227caa2cdd874ba496f10149")
|
||||||
("pcre2el" . "380723b2701cceb75c266440fb8db918f3340d50")
|
("pcre2el" . "b4d846d80dddb313042131cf2b8fbf647567e000")
|
||||||
("pdf-tools" . "30b50544e55b8dbf683c2d932d5c33ac73323a16")
|
("pdf-tools" . "30b50544e55b8dbf683c2d932d5c33ac73323a16")
|
||||||
("php-mode" . "c8e4c16ca0d234f4a659713a94467f0c32ef4bc8")
|
("php-mode" . "31f702ee2de35d514fb633c0c37531cb648bff70")
|
||||||
("pkgbuild-mode" . "8ef396d8fa9187b65c065a6bc2ca15dfaf3255df")
|
("pkgbuild-mode" . "8c31b24e5979fddf2411456c8957f41f06ae5714")
|
||||||
("poly-R" . "8024e852cfca642dea2045a41b2033baa2f1f9a5")
|
("poly-R" . "8024e852cfca642dea2045a41b2033baa2f1f9a5")
|
||||||
("poly-markdown" . "98695eb7ca4ca11dcec71a1cab64903bbf79b4d3")
|
("poly-markdown" . "98695eb7ca4ca11dcec71a1cab64903bbf79b4d3")
|
||||||
("poly-noweb" . "3b0cd36ca9a707e8a09337a3468fa85d81fc461c")
|
("poly-noweb" . "3b0cd36ca9a707e8a09337a3468fa85d81fc461c")
|
||||||
("polymode" . "ca060e081a1f849a880732670dc15370ac987b89")
|
("polymode" . "ca060e081a1f849a880732670dc15370ac987b89")
|
||||||
("popup-el" . "545e258024f6e4a8b2a066a5442d9e0147a7ee03")
|
("popup-el" . "c83d6e5f5fa693e08a542ea9ad7c06eced652de9")
|
||||||
("powerline" . "c35c35bdf5ce2d992882c1f06f0f078058870d4a")
|
("powerline" . "c35c35bdf5ce2d992882c1f06f0f078058870d4a")
|
||||||
("projectile" . "0163b335a18af0f077a474d4dc6b36e22b5e3274")
|
("projectile" . "d18e308ea9b7473b69f904d40ed4835b3e34d5e2")
|
||||||
("pythonic" . "00f8cafe02bdac0f3e562ffe6881ce654c8eb588")
|
("pythonic" . "c1e5643e044f1faaf6ecfadc719b981c048aeb79")
|
||||||
("pyvenv" . "31ea715f2164dd611e7fc77b26390ef3ca93509b")
|
("pyvenv" . "31ea715f2164dd611e7fc77b26390ef3ca93509b")
|
||||||
("queue" . "df8a1a2ad77d57c25e7005f0add275c13f9db20f")
|
("queue" . "8df1334d54d4735d2f821790422a850dfaaa08ef")
|
||||||
("rainbow-delimiters" . "f40ece58df8b2f0fb6c8576b527755a552a5e763")
|
("rainbow-delimiters" . "f40ece58df8b2f0fb6c8576b527755a552a5e763")
|
||||||
("rainbow-mode" . "0740f31f300982534183a2f60b1918de418a6f2c")
|
("rainbow-mode" . "2e6b18609c2fdd1a2dc513937a64d276fd6cf24c")
|
||||||
("robe" . "6bc8a07fc483407971de0966d367a11006b3ab80")
|
("robe" . "6bc8a07fc483407971de0966d367a11006b3ab80")
|
||||||
("ruby-test-mode" . "d66db4aca6e6a246f65f7195ecfbc7581d35fb7a")
|
("ruby-test-mode" . "d66db4aca6e6a246f65f7195ecfbc7581d35fb7a")
|
||||||
("rvm.el" . "e1e83b5466c132c066142ac63729ba833c530c83")
|
("rvm.el" . "e1e83b5466c132c066142ac63729ba833c530c83")
|
||||||
("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d")
|
("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d")
|
||||||
("seq" . "d6b97ea450817ecef174d9c65d59b69bc5721a35")
|
("seq" . "da86da9bf111f68fb81efd466d76d53af5aebc00")
|
||||||
("snakemake-mode" . "4ad41da69e4b95b38a3d3273874c44caab20cc56")
|
("snakemake-mode" . "4ad41da69e4b95b38a3d3273874c44caab20cc56")
|
||||||
("spaceline" . "086420d16e526c79b67fc1edec4c2ae1e699f372")
|
("spaceline" . "086420d16e526c79b67fc1edec4c2ae1e699f372")
|
||||||
("spacemacs-theme" . "319ad1cd6aa05dcb43e4edca50eca339892e0865")
|
("spacemacs-theme" . "6c74684c4d55713c8359bedf1936e429918a8c33")
|
||||||
("straight.el" . "b3760f5829dba37e855add7323304561eb57a3d4")
|
("straight.el" . "33fb4695066781c634ff1c3c81ba96e880deccf7")
|
||||||
("string-inflection" . "50ad54970b3cc79b6b83979bde9889ad9a9e1a9c")
|
("string-inflection" . "617df25e91351feffe6aff4d9e4724733449d608")
|
||||||
("sudo-edit" . "74eb1e6986461baed9a9269566ff838530b4379b")
|
("sudo-edit" . "74eb1e6986461baed9a9269566ff838530b4379b")
|
||||||
("swiper" . "2a25a6fb5b081cb141c5eccac8ee58ab1feeb747")
|
("swiper" . "8dc02d5b725f78d1f80904807b46f5406f129674")
|
||||||
("tablist" . "fcd37147121fabdf003a70279cf86fbe08cfac6f")
|
("tablist" . "fcd37147121fabdf003a70279cf86fbe08cfac6f")
|
||||||
("toc-org" . "6d3ae0fc47ce79b1ea06cabe21a3c596395409cd")
|
("toc-org" . "6d3ae0fc47ce79b1ea06cabe21a3c596395409cd")
|
||||||
("transient" . "239be53b01e003c5206087d850d9672a42dc4b32")
|
("transient" . "291b86e66de3d7b73384f8751050acbdd2187ddb")
|
||||||
("ts.el" . "552936017cfdec89f7fc20c254ae6b37c3f22c5b")
|
("ts.el" . "552936017cfdec89f7fc20c254ae6b37c3f22c5b")
|
||||||
("use-package" . "a6e856418d2ebd053b34e0ab2fda328abeba731c")
|
("use-package" . "fc8449bb593de8fce0a8bdd4ee2cb78219cf8c76")
|
||||||
("with-editor" . "84ba06ed513e97223630905f4788370e18116f40")
|
("with-editor" . "77cb2403158cfea9d8bfb8adad81b84d1d6d7c6a")
|
||||||
("xterm-color" . "2ad407c651e90fff2ea85d17bf074cee2c022912")
|
("xterm-color" . "2ad407c651e90fff2ea85d17bf074cee2c022912")
|
||||||
("yaml-mode" . "7b5ce294fb15c2c8926fa476d7218aa415550a2a")
|
("yaml-mode" . "d91f878729312a6beed77e6637c60497c5786efa")
|
||||||
("yasnippet" . "eb5ba2664c3a68ae4a53bb38b85418dd131b208f")
|
("yasnippet" . "fe1f4e0e96ce42d8668920335eb22c3c009dab3e")
|
||||||
("zoutline" . "32857c6c4b9b0bcbed14d825a10b91a98d5fed0a"))
|
("zoutline" . "32857c6c4b9b0bcbed14d825a10b91a98d5fed0a"))
|
||||||
:gamma
|
:gamma
|
||||||
|
|
Loading…
Reference in New Issue