129
129
(defconst org-gtd-projects " .*Projects" )
130
130
131
131
(defconst org-gtd-stuck-projects '(" +LEVEL=2-DONE+CATEGORY=\" Projects\" "
132
- (" TODO" " NEXT" " WAIT" )
133
- nil
134
- " " ))
132
+ (" TODO" " NEXT" " WAIT" )
133
+ nil
134
+ " " ))
135
135
136
136
(defconst org-gtd-complete-projects " +LEVEL=2+CATEGORY=\" Projects\" " )
137
137
@@ -205,9 +205,9 @@ It's suggested that you categorize the items in here somehow, such as:
205
205
" Show all GTD projects that do not have an upcoming or waiting action."
206
206
(interactive )
207
207
(let* ((user-stuck-projects org-stuck-projects)
208
- (org-stuck-projects org-gtd-stuck-projects)
209
- (stuck-projects-buffer (org-agenda-list-stuck-projects ))
210
- (org-stuck-projects user-stuck-projects))
208
+ (org-stuck-projects org-gtd-stuck-projects)
209
+ (stuck-projects-buffer (org-agenda-list-stuck-projects ))
210
+ (org-stuck-projects user-stuck-projects))
211
211
stuck-projects-buffer))
212
212
213
213
(defun org-gtd-archive-complete-projects ()
@@ -216,11 +216,11 @@ It's suggested that you categorize the items in here somehow, such as:
216
216
(org-map-entries
217
217
(lambda ()
218
218
(if (org-gtd--project-complete-p)
219
- (progn
220
- (setq org-map-continue-from (org-element-property
221
- :begin
222
- (org-element-at-point )))
223
- (org-archive-subtree-default ))))
219
+ (progn
220
+ (setq org-map-continue-from (org-element-property
221
+ :begin
222
+ (org-element-at-point )))
223
+ (org-archive-subtree-default ))))
224
224
org-gtd-complete-projects))
225
225
226
226
(defun org-gtd-process-inbox ()
@@ -238,8 +238,8 @@ It's suggested that you categorize the items in here somehow, such as:
238
238
(org-map-entries
239
239
(lambda ()
240
240
(setq org-map-continue-from (org-element-property
241
- :begin
242
- (org-element-at-point )))
241
+ :begin
242
+ (org-element-at-point )))
243
243
(org-narrow-to-element )
244
244
(org-show-subtree )
245
245
(org-gtd--process-inbox-element)
@@ -254,16 +254,16 @@ It's suggested that you categorize the items in here somehow, such as:
254
254
(defun org-gtd--process-inbox-element ()
255
255
" With mark on an org heading, choose which GTD action to take."
256
256
(let ((action
257
- (read-multiple-choice
258
- " What to do with this item?"
259
- '((?q " quick" " quick item: < 2 minutes, done!" )
260
- (?t " throw out" " this has no value to me" )
261
- (?p " project" " multiple steps required to completion" )
262
- (?c " calendar" " do this at a certain time" )
263
- (?d " delegate it" " give it to someone" )
264
- (?s " single action" " do this when possible" )
265
- (?a " archive this knowledge" " Store this where you store knowledge" )
266
- (?i " incubate it" " I'll come back to this later" )))))
257
+ (read-multiple-choice
258
+ " What to do with this item?"
259
+ '((?q " quick" " quick item: < 2 minutes, done!" )
260
+ (?t " throw out" " this has no value to me" )
261
+ (?p " project" " multiple steps required to completion" )
262
+ (?c " calendar" " do this at a certain time" )
263
+ (?d " delegate it" " give it to someone" )
264
+ (?s " single action" " do this when possible" )
265
+ (?a " archive this knowledge" " Store this where you store knowledge" )
266
+ (?i " incubate it" " I'll come back to this later" )))))
267
267
268
268
(cl-case (car action)
269
269
(?q (org-gtd--quick-action))
@@ -349,13 +349,13 @@ Do not remove the item from the inbox, it will be archived."
349
349
350
350
HEADING-REGEXP is a regular expression. See `org-refile' ."
351
351
(let* ((user-refile-targets org-refile-targets)
352
- (org-refile-targets (org-gtd--refile-targets))
353
- (results (cl-find-if
354
- (lambda (rfloc )
355
- (string-match heading-regexp
356
- (car rfloc)))
357
- (org-refile-get-targets )))
358
- (org-refile-targets user-refile-targets))
352
+ (org-refile-targets (org-gtd--refile-targets))
353
+ (results (cl-find-if
354
+ (lambda (rfloc )
355
+ (string-match heading-regexp
356
+ (car rfloc)))
357
+ (org-refile-get-targets )))
358
+ (org-refile-targets user-refile-targets))
359
359
results))
360
360
361
361
(defun org-gtd--nextify ()
@@ -365,21 +365,21 @@ HEADING-REGEXP is a regular expression. See `org-refile'."
365
365
(first-entry . rest-entries)
366
366
(cdr (org-map-entries (lambda () (org-element-at-point )) t 'tree ))
367
367
(org-element-map
368
- (reverse rest-entries)
369
- 'headline
368
+ (reverse rest-entries)
369
+ 'headline
370
370
(lambda (myelt )
371
- (org-entry-put (org-gtd--org-element-pom myelt) " TODO" " TODO" )))
371
+ (org-entry-put (org-gtd--org-element-pom myelt) " TODO" " TODO" )))
372
372
(org-entry-put (org-gtd--org-element-pom first-entry) " TODO" " NEXT" )))
373
373
374
374
(defun org-gtd--project-complete-p ()
375
375
" Return t if all project children are DONE, f if any aren't."
376
376
(let ((entries (cdr (org-map-entries
377
- (lambda ()
378
- (org-entry-get
379
- (org-gtd--org-element-pom (org-element-at-point ))
380
- " TODO" ))
381
- t
382
- 'tree ))))
377
+ (lambda ()
378
+ (org-entry-get
379
+ (org-gtd--org-element-pom (org-element-at-point ))
380
+ " TODO" ))
381
+ t
382
+ 'tree ))))
383
383
(seq-every-p (lambda (x ) (string-equal x " DONE" )) entries)))
384
384
385
385
(defun org-gtd--org-element-pom (element )
@@ -397,14 +397,14 @@ HEADING-REGEXP is a regular expression. See `org-refile'."
397
397
398
398
create the file and template first if it doesn't already exist."
399
399
(let* ((file-path (org-gtd--path gtd-type))
400
- (file-buffer (find-file-noselect file-path)))
400
+ (file-buffer (find-file-noselect file-path)))
401
401
(or (f-file-p file-path)
402
- (with-current-buffer file-buffer
403
- (insert (symbol-value
404
- (intern
405
- (string-join
406
- `(" org-gtd-" , gtd-type " -template" )))))
407
- (save-buffer )))
402
+ (with-current-buffer file-buffer
403
+ (insert (symbol-value
404
+ (intern
405
+ (string-join
406
+ `(" org-gtd-" , gtd-type " -template" )))))
407
+ (save-buffer )))
408
408
file-buffer))
409
409
410
410
(defun org-gtd--actionable-file ()
@@ -442,8 +442,8 @@ create the file and template first if it doesn't already exist."
442
442
" Minor mode for special key bindings when editing an individual inbox item."
443
443
nil " GTD " org-gtd-user-input-mode-map
444
444
(setq-local header-line-format
445
- (substitute-command-keys
446
- " \\ <org-gtd-user-input-mode-map>Edit inbox item. Finish \
445
+ (substitute-command-keys
446
+ " \\ <org-gtd-user-input-mode-map>Edit inbox item. Finish \
447
447
`\\[org-gtd-finish-editing]' ." )))
448
448
449
449
(provide 'org-gtd )
0 commit comments