From bcacae20a209e605e4260deab19c1e4f9fb0ea5a Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Thu, 31 Jan 2008 22:26:09 +0100 Subject: [PATCH] Show all clock entries in og-mode in agenda and timeline. Special command as safe replacement for C-k. --- ChangeLog | 7 ++++ ORGWEBPAGE/Changes.org | 110 +++++++++++++++++++++++++++---------------------- org.el | 34 ++++++++++++++- 3 files changed, 100 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index c7a5f06c6..ef92f29c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-01-31 Carsten Dominik + + * org.el (org-agenda-get-closed): List each clocking entry. + (org-set-tags): Only tabify before tags if indent-tabs-mode is t. + (org-special-ctrl-k): New option. + (org-kill-line): New function. + 2008-01-26 Carsten Dominik * org.el (org-archive-all-done): Fixed incorrect number of stars diff --git a/ORGWEBPAGE/Changes.org b/ORGWEBPAGE/Changes.org index df4af8997..37ebeb1c9 100644 --- a/ORGWEBPAGE/Changes.org +++ b/ORGWEBPAGE/Changes.org @@ -66,55 +66,67 @@ *** Misc - - If an entry is clocked multiple times, it ill now show up - several times in the agenda and timeline buffers, when - log-mode is on. This was a proposal by Jurgen Defurne. - - - In `org-goto', typing characters now automatically starts - isearch from the beginning of the buffer. The isearch is - special also because it only matches in headline. This goes - some way toward saving org-goto from being removed from - Org-mode. Thanks to Piotr Zielinski for the code, and sorry - that it took me o long to ut it in. If you prefer to use - single letters n,p,f,b,u,q for navigation as before, - configure the variable `org-goto-auto-isearch'. - - - The clock table accepts a new parameter =:step=. This - parameter can be `day' or `week' and will result in separate - tables for each day or week in the requested time interval. - This was triggered by a proposal by Sacha Chua in her [[http://sachachua.com/wp/2007/12/30/clocking-time-with-emacs-org/][blog]]. - - - A time-stamp with a repeater now no longer refers to the - date *closest* to the current day. Instead, it means either - today or the most recent match. This change makes sure that - overdue scheduled or deadline items never disappear from the - agenda. With the previous convention, an overdue sheduled - item would disappear. For example, a weekly item scheduled - for Sunday would appear as overdue until Wednesday, and the - suddenly disappear until next Sunday. Now the item will - show up as "Sched 7x" on Saturday. From Sunday on it will - be in the list as "Scheduled", i.e. old sins will be - forgiven. This follows a request by Warong, Dennis and - Bernt. - - - Archving a subtree now creates an additional property, - =ARCHIVE_OLPATH=. This property contains the "path" in the - outline tree to the archived entry, as it was in the - original file. For example, archiving =Fix the door= in the - following hierarchy - - : * Tasks - : ** HOME - : *** Garage - : **** Fix the door - - will file is with the following property - - : :ARCHIVE_PATH: Task/HOME/Garage - - Note that you can configure (i.e. limit) the information - that gets stored upon archiving with the variable - `org-archive-save-context-info'. + - There is a new variabls `org-special-ctrl-k'. When set, + `C-k' will behave specially in headlines: + + + When the cursor is at the beginning of a headline, kill + the entire line and possible the folded subtree below the + line. + + When in the middle of the headline text, kill the + headline up to the tags. + + When after the headline text, kill the tags. + + This is following a proposal by Piotr Zielinski. + + - If an entry is clocked multiple times, it ill now show up + several times in the agenda and timeline buffers, when + log-mode is on. This was a proposal by Jurgen Defurne. + + - In `org-goto', typing characters now automatically starts + isearch from the beginning of the buffer. The isearch is + special also because it only matches in headline. This goes + some way toward saving org-goto from being removed from + Org-mode. Thanks to Piotr Zielinski for the code, and sorry + that it took me o long to ut it in. If you prefer to use + single letters n,p,f,b,u,q for navigation as before, + configure the variable `org-goto-auto-isearch'. + + - The clock table accepts a new parameter =:step=. This + parameter can be `day' or `week' and will result in separate + tables for each day or week in the requested time interval. + This was triggered by a proposal by Sacha Chua in her [[http://sachachua.com/wp/2007/12/30/clocking-time-with-emacs-org/][blog]]. + + - A time-stamp with a repeater now no longer refers to the + date *closest* to the current day. Instead, it means either + today or the most recent match. This change makes sure that + overdue scheduled or deadline items never disappear from the + agenda. With the previous convention, an overdue sheduled + item would disappear. For example, a weekly item scheduled + for Sunday would appear as overdue until Wednesday, and the + suddenly disappear until next Sunday. Now the item will + show up as "Sched 7x" on Saturday. From Sunday on it will + be in the list as "Scheduled", i.e. old sins will be + forgiven. This follows a request by Warong, Dennis and + Bernt. + + - Archving a subtree now creates an additional property, + =ARCHIVE_OLPATH=. This property contains the "path" in the + outline tree to the archived entry, as it was in the + original file. For example, archiving =Fix the door= in the + following hierarchy + + : * Tasks + : ** HOME + : *** Garage + : **** Fix the door + + will file is with the following property + + : :ARCHIVE_PATH: Task/HOME/Garage + + Note that you can configure (i.e. limit) the information + that gets stored upon archiving with the variable + `org-archive-save-context-info'. * Version 5.19 diff --git a/org.el b/org.el index f54805e7e..bcdca9f54 100644 --- a/org.el +++ b/org.el @@ -522,6 +522,18 @@ to the special positions." (if (fboundp 'defvaralias) (defvaralias 'org-special-ctrl-a 'org-special-ctrl-a/e)) +(defcustom org-special-ctrl-k nil + "Non-nil means `C-k' will behave specially in headlines. +When nil, `C-k' will call the default `kill-line' command. +When t, the following will happen while the cursor is in the headline: + +- When the cursor is at the beginning of a headline, kill the entire + line and possible the folded subtree below the line. +- When in the middle of the headline text, kill the headline up to the tags. +- When after the headline text, kill the tags." + :group 'org-edit-structure + :type 'boolean) + (defcustom org-odd-levels-only nil "Non-nil means, skip even levels and only use odd levels for the outline. This has the effect that two stars are being added/taken away in @@ -5873,7 +5885,9 @@ Optional argument N means, put the headline into the Nth line of the window." (org-defkey map [(down)] 'outline-next-visible-heading) (org-defkey map [(up)] 'outline-previous-visible-heading) (if org-goto-auto-isearch - (define-key-after map [t] 'org-goto-local-auto-isearch) + (if (fboundp 'define-key-after) + (define-key-after map [t] 'org-goto-local-auto-isearch) + nil) (org-defkey map "q" 'org-goto-quit) (org-defkey map "n" 'outline-next-visible-heading) (org-defkey map "p" 'outline-previous-visible-heading) @@ -15427,7 +15441,7 @@ With prefix ARG, realign all tags in headings in the current buffer." (- (- org-tags-column) (length tags)))) rpl (concat (make-string (max 0 (- c1 c0)) ?\ ) tags))) (replace-match rpl t t) - (and (not (featurep 'xemacs)) c0 (tabify p0 (point))) + (and (not (featurep 'xemacs)) c0 indent-tabs-mode (tabify p0 (point))) tags) (t (error "Tags alignment failed"))) (move-to-column col) @@ -27626,6 +27640,7 @@ work correctly." ;;;; Functions extending outline functionality + (defun org-beginning-of-line (&optional arg) "Go to the beginning of the current line. If that is invisible, continue to a visible line beginning. This makes the function of C-a more intuitive. @@ -27690,6 +27705,21 @@ beyond the end of the headline." (define-key org-mode-map "\C-a" 'org-beginning-of-line) (define-key org-mode-map "\C-e" 'org-end-of-line) +(defun org-kill-line (&optional arg) + "Kill line, to tags or end of line." + (interactive "P") + (cond + ((or (not org-special-ctrl-k) + (bolp) + (not (org-on-heading-p))) + (call-interactively 'kill-line)) + ((looking-at (org-re ".*?\\S-\\([ \t]+\\(:[[:alnum:]_@:]+:\\)\\)[ \t]*$")) + (kill-region (point) (match-beginning 1)) + (org-set-tags nil t)) + (t (kill-region (point) (point-at-eol))))) + +(define-key org-mode-map "\C-k" 'org-kill-line) + (defun org-invisible-p () "Check if point is at a character currently not visible." ;; Early versions of noutline don't have `outline-invisible-p'. -- 2.11.4.GIT