Fix `outshine-clock-out' (add interactive spec).

master
tj 12 years ago
parent 6bb141739f
commit 09c6c6edb7
  1. 165
      outshine.el

@ -188,14 +188,14 @@ Used to override any major-mode specific file-local settings")
("Outline Visibility")
("c" . outline-cycle)
("C" . outshine-cycle-buffer)
;; FIXME needs to be improved!
(" " . (outshine-use-outorg
(lambda ()
(message
"%s" (substring-no-properties
(org-display-outline-path)))
(sit-for 1))
'WHOLE-BUFFER-P))
;; ;; FIXME needs to be improved!
;; (" " . (outshine-use-outorg
;; (lambda ()
;; (message
;; "%s" (substring-no-properties
;; (org-display-outline-path)))
;; (sit-for 1))
;; 'WHOLE-BUFFER-P))
("r" . outshine-narrow-to-subtree)
("w" . widen)
("=" . outshine-columns)
@ -1207,12 +1207,20 @@ These regexps, if non-nil, match
pt)))))))
(list rgx4 rgx3 rgx2 rgx1 rgx0)))))
;; courtesy of Pascal Bourguignon
(defun outshine-use-outorg-finish-store-log-note ()
"Finish store-log-note and exit recursive edit"
(message "...entering outorg-finish-function")
(setq outorg-org-finish-function-called-p t)
(org-store-log-note)
(outorg-copy-edits-and-exit))
;; (exit-recursive-edit))
;; (eval-after-load 'outorg
;; '
(defun outshine-use-outorg (fun &optional whole-buffer-p rgxps &rest funargs)
"Use outorg to call FUN with FUNARGS on subtree or thing at point.
"Use outorg to call FUN with FUNARGS on subtree or thing at point.
FUN should be an Org-mode function that acts on the subtree or
org-element at point. Optionally, with WHOLE-BUFFER-P non-nil,
@ -1229,32 +1237,52 @@ function was called upon.
The old marker is removed first. Then a new point-marker is
created before `outorg-edit-as-org' is called on the headline."
(save-excursion
(unless (outline-on-heading-p)
(outline-previous-heading))
(outshine--set-outorg-last-headline-marker)
(if whole-buffer-p
(outorg-edit-as-org '(4))
(outorg-edit-as-org))
(save-excursion
(if (org-on-heading-p)
(goto-char (point-at-bol))
(outline-previous-heading))
(let ((end-of-subtree
(org-element-property :end (org-element-at-point)))
found)
(while (and rgxps (not found))
(if (and (car rgxps)
(re-search-forward
(car rgxps) end-of-subtree 'NOERROR))
(setq found t)
(pop rgxps))))
(if funargs
;; (funcall fun funargs)
;; (funcall fun))
(call-interactively fun funargs)
(call-interactively fun))
(outorg-copy-edits-and-exit))))
(save-excursion
(unless (outline-on-heading-p)
(outline-previous-heading))
(outshine--set-outorg-last-headline-marker)
(if whole-buffer-p
(outorg-edit-as-org '(4))
(outorg-edit-as-org))
;; FIXME replace this (regexp matching) with copied markers
(save-excursion
(if (org-on-heading-p)
(goto-char (point-at-bol))
(outline-previous-heading))
;; FIXME better use outline-end-of-subtree?
(let ((end-of-subtree
(org-element-property :end (org-element-at-point)))
found)
(while (and rgxps (not found))
(if (and (car rgxps)
(re-search-forward
(car rgxps) end-of-subtree 'NOERROR))
(setq found t)
(pop rgxps))))
;; (add-hook 'post-command-hook
;; 'outorg-copy-edits-and-exit
;; nil 'LOCAL)
(if funargs
(funcall fun funargs)
(call-interactively fun))
;; (message "marker-buf: %s" (marker-buffer org-log-note-marker))
;; (message "marker-pos: %s" org-log-note-marker)
;; (message "marker-buf: %s"
;; (marker-buffer org-log-note-return-to))
;; (message "marker-pos: %s" org-log-note-return-to)
(if (not (marker-buffer org-log-note-marker))
(outorg-copy-edits-and-exit)
(org-add-log-note)
(org-set-local
'org-finish-function
'outshine-use-outorg-finish-store-log-note)
(message "org-finish-function: %s" org-finish-function)))))
;; (outorg-copy-edits-and-exit))))
;; )
@ -1267,21 +1295,6 @@ Sets the variable `outshine-use-outorg-last-headline-marker'."
(move-marker outshine-use-outorg-last-headline-marker (point))
(setq outshine-use-outorg-last-headline-marker
(point-marker))))
(defun outshine-clock-out ()
"Stop Org-mode clock started with `outshine-use-outorg'."
(if (integer-or-marker-p
outshine-use-outorg-last-headline-marker)
(save-excursion
(goto-char
(marker-position
outshine-use-outorg-last-headline-marker))
(outshine-use-outorg
(lambda ()
(ignore-errors
(org-clock-cancel))
(org-clock-in)
(org-clock-out))))))
;;;;; Hook function
@ -2181,9 +2194,9 @@ i.e. the text following the regexp match until the next space character."
;; C-c C-c org-ctrl-c-ctrl-c
(defun outshine-ctrl-c-ctrl-c ()
(defun outshine-ctrl-c-ctrl-c (&optional arg)
"Call outorg to trigger `org-ctrl-c-ctrl-c'."
(interactive)
(interactive "P")
(let ((beg-of-header-p (and (outline-on-heading-p) (bolp))))
(outshine-use-outorg
'org-ctrl-c-ctrl-c arg
@ -2529,16 +2542,6 @@ i.e. the text following the regexp match until the next space character."
'org- nil
(unless beg-of-header-p (outshine-pt-rgxps)))))
;; C-c TAB show-children
;; C-c C-n outline-next-visible-heading
;; C-c C-p outline-previous-visible-heading
;; C-c C-u outline-up-heading
;; C-c ESC Prefix Command
;; C-c I outline-previous-visible-heading
;; C-c K outline-next-visible-heading
;; C-c C-< outline-promote
;; C-c C-> outline-demote
;; C-c C-M-l org-insert-all-links
(defun outshine-insert-all-links ()
"Call outorg to trigger `org-insert-all-links'."
@ -2872,11 +2875,29 @@ i.e. the text following the regexp match until the next space character."
'org-next-link 'WHOLE-BUFFER-P
(unless beg-of-header-p (outshine-pt-rgxps)))))
;; ;; C-c C-x C-o org-clock-out
;; (defun outshine-clock-out ()
;; "Call outorg to trigger `org-clock-out'."
;; (interactive)
;; (outshine-use-outorg 'org-clock-out 'WHOLE-BUFFER-P))
;; C-c C-x C-o org-clock-out
(defun outshine-clock-out ()
"Call outorg to trigger `org-clock-out'."
"Stop Org-mode clock started with `outshine-use-outorg'."
(interactive)
(outshine-use-outorg 'org-clock-out 'WHOLE-BUFFER-P))
(if (integer-or-marker-p
outshine-use-outorg-last-headline-marker)
(save-excursion
(goto-char
(marker-position
outshine-use-outorg-last-headline-marker))
(outshine-use-outorg
(lambda ()
(interactive)
(ignore-errors (org-clock-cancel))
(org-clock-in)
(org-clock-out))
'WHOLE-BUFFER-P))))
;; C-c C-x C-p org-previous-link
(defun outshine-previous-link ()
@ -3461,14 +3482,14 @@ i.e. the text following the regexp match until the next space character."
;;;;;; [M-# Letter]
(outshine-define-key-with-fallback
outline-minor-mode-map (kbd "J")
(outline-hide-more) (outline-on-heading-p))
(outshine-define-key-with-fallback
outline-minor-mode-map (kbd "L")
(outline-show-more) (outline-on-heading-p))
(define-key map (kbd "I") 'outline-previous-visible-heading)
(define-key map (kbd "K") 'outline-next-visible-heading)
;; (outshine-define-key-with-fallback
;; outline-minor-mode-map (kbd "J")
;; (outline-hide-more) (outline-on-heading-p))
;; (outshine-define-key-with-fallback
;; outline-minor-mode-map (kbd "L")
;; (outline-show-more) (outline-on-heading-p))
;; (define-key map (kbd "I") 'outline-previous-visible-heading)
;; (define-key map (kbd "K") 'outline-next-visible-heading)
;;;;;; [M-# letter]

Loading…
Cancel
Save