|
@@ -52,14 +52,18 @@
|
|
|
;; An inline task is identified solely by a minimum outline level, given
|
|
|
;; by the variable `org-inlinetask-min-level', default 15.
|
|
|
;;
|
|
|
-;; Inline tasks are normally assumed to contain at most a time planning
|
|
|
-;; line (DEADLINE etc) after it, and then any number of drawers, for
|
|
|
-;; example LOGBOOK of PROPERTIES. No empty lines are allowed.
|
|
|
-;; If you need to have normal text as part of an inline task, you
|
|
|
-;; can do so by adding an "END" headline with the same number of stars,
|
|
|
-;; for example
|
|
|
+;; If you need to have a time planning line (DEADLINE etc), drawers,
|
|
|
+;; for example LOGBOOK of PROPERTIES, or even normal text as part of
|
|
|
+;; the inline task, you must add an "END" headline with the same
|
|
|
+;; number of stars.
|
|
|
;;
|
|
|
-;; **************** TODO some small task
|
|
|
+;; As an example, here are two valid inline tasks:
|
|
|
+;;
|
|
|
+;; **************** TODO a small task
|
|
|
+;;
|
|
|
+;; and
|
|
|
+;;
|
|
|
+;; **************** TODO another small task
|
|
|
;; DEADLINE: <2009-03-30 Mon>
|
|
|
;; :PROPERTIES:
|
|
|
;; :SOMETHING: or other
|
|
@@ -196,35 +200,40 @@ The number of levels is controlled by `org-inlinetask-min-level'."
|
|
|
(defun org-inlinetask-in-task-p ()
|
|
|
"Return true if point is inside an inline task."
|
|
|
(save-excursion
|
|
|
- (let* ((stars-re (org-inlinetask-outline-regexp))
|
|
|
+ (beginning-of-line)
|
|
|
+ (let* ((case-fold-search t)
|
|
|
+ (stars-re (org-inlinetask-outline-regexp))
|
|
|
(task-beg-re (concat stars-re "\\(?:.*\\)"))
|
|
|
- (task-end-re (concat stars-re "\\(?:END\\|end\\)[ \t]*$")))
|
|
|
- (beginning-of-line)
|
|
|
- (or (looking-at task-beg-re)
|
|
|
+ (task-end-re (concat stars-re "END[ \t]*$")))
|
|
|
+ (or (org-looking-at-p task-beg-re)
|
|
|
(and (re-search-forward "^\\*+[ \t]+" nil t)
|
|
|
- (progn (beginning-of-line) (looking-at task-end-re)))))))
|
|
|
+ (progn (beginning-of-line) (org-looking-at-p task-end-re)))))))
|
|
|
|
|
|
(defun org-inlinetask-goto-beginning ()
|
|
|
"Go to the beginning of the inline task at point."
|
|
|
(end-of-line)
|
|
|
- (re-search-backward (org-inlinetask-outline-regexp) nil t)
|
|
|
- (when (org-looking-at-p (concat (org-inlinetask-outline-regexp) "END[ \t]*$"))
|
|
|
- (re-search-backward (org-inlinetask-outline-regexp) nil t)))
|
|
|
+ (let ((case-fold-search t)
|
|
|
+ (inlinetask-re (org-inlinetask-outline-regexp)))
|
|
|
+ (re-search-backward inlinetask-re nil t)
|
|
|
+ (when (org-looking-at-p (concat inlinetask-re "END[ \t]*$"))
|
|
|
+ (re-search-backward inlinetask-re nil t))))
|
|
|
|
|
|
(defun org-inlinetask-goto-end ()
|
|
|
"Go to the end of the inline task at point."
|
|
|
(beginning-of-line)
|
|
|
- (cond
|
|
|
- ((org-looking-at-p (concat (org-inlinetask-outline-regexp) "END[ \t]*$"))
|
|
|
- (forward-line 1))
|
|
|
- ((org-looking-at-p (org-inlinetask-outline-regexp))
|
|
|
- (forward-line 1)
|
|
|
- (when (org-inlinetask-in-task-p)
|
|
|
- (re-search-forward (org-inlinetask-outline-regexp) nil t)
|
|
|
- (forward-line 1)))
|
|
|
- (t
|
|
|
- (re-search-forward (org-inlinetask-outline-regexp) nil t)
|
|
|
- (forward-line 1))))
|
|
|
+ (let ((case-fold-search t)
|
|
|
+ (inlinetask-re (org-inlinetask-outline-regexp)))
|
|
|
+ (cond
|
|
|
+ ((org-looking-at-p (concat inlinetask-re "END[ \t]*$"))
|
|
|
+ (forward-line 1))
|
|
|
+ ((org-looking-at-p inlinetask-re)
|
|
|
+ (forward-line 1)
|
|
|
+ (when (org-inlinetask-in-task-p)
|
|
|
+ (re-search-forward inlinetask-re nil t)
|
|
|
+ (forward-line 1)))
|
|
|
+ (t
|
|
|
+ (re-search-forward inlinetask-re nil t)
|
|
|
+ (forward-line 1)))))
|
|
|
|
|
|
(defun org-inlinetask-get-task-level ()
|
|
|
"Get the level of the inline task around.
|