From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: adding subheadings Date: Sun, 12 Aug 2007 08:31:07 +0200 Message-ID: <654211cb159f2a4ce05b43fd6e5406b5@science.uva.nl> References: <20070715190744.GA10139@atlantic.linksys.moosehall> Mime-Version: 1.0 (Apple Message framework v624) Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IK6yr-0004SR-5u for emacs-orgmode@gnu.org; Sun, 12 Aug 2007 02:31:17 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IK6yq-0004RJ-8C for emacs-orgmode@gnu.org; Sun, 12 Aug 2007 02:31:16 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IK6yp-0004R9-VA for emacs-orgmode@gnu.org; Sun, 12 Aug 2007 02:31:16 -0400 Received: from korteweg.uva.nl ([146.50.98.70]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IK6yp-00063E-3Q for emacs-orgmode@gnu.org; Sun, 12 Aug 2007 02:31:15 -0400 In-Reply-To: <20070715190744.GA10139@atlantic.linksys.moosehall> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Adam Spiers Cc: org-mode mailing list org-insert-subheading and org-insert-todo-subheading will be in 5.05, and work both for headings and for plain list items. I did not implement the TODO hierarchy, that seems not something that will be used generally. You can hack it back in by adding a function to the hook org-insert-heading-hook, which seems to be the perfect place for a customization like this. There is no keybinding for these commands yet. Thanks!. - Carsten On Jul 15, 2007, at 21:07, Adam Spiers wrote: > Hi all, > > First post so go easy on me ;-) > > Would something like the following be of use to anyone other than me? > (Suggested key-bindings at the bottom of the code.) > > --------- 8< --------- 8< --------- 8< --------- 8< --------- 8< > --------- > (defun org-new-subheading () > "Add a new heading, demoted from the current heading level." > (interactive) > (org-insert-heading) > (org-demote-subtree)) > > (defun org-new-subheading-todo (&optional arg) > "Add a new TODO item, demoted from the current heading level. > > The TODO keyword for the new item can be specified by a numeric > prefix argument, as with `org-todo'. > > Otherwise, if `org-subheading-todo-alist' is non-nil, it is used > to map the new keyword from the current one, and if it is nil, > the next TODO keyword in the sequence is used, or the first one > if the current heading does not have one. > > This allows a TODO keyword hierarchy to be imposed, e.g. > if org-subheading-todo-alist is > > '((\"MASTERPLAN\" . \"PROJECT\") > (\"PROJECT\" . \"NEXTACTION\") > (\"NEXTACTION\" . \"NEXTACTION\")) > > then invoking this function four times would yield: > > * MASTERPLAN > ** PROJECT > *** NEXTACTION > **** NEXTACTION" > (interactive "P") > (save-excursion > (org-back-to-heading) > (looking-at org-todo-line-regexp)) > (let* ((current-keyword (match-string 2)) > (new-keyword > (if arg > (nth (1- (prefix-numeric-value arg)) > org-todo-keywords-1) > (or > (and current-keyword > (or (car (assoc current-keyword > org-subheading-todo-alist)) > (cadr (member current-keyword > org-todo-keywords-1)))) > (car org-todo-keywords-1))))) > (org-new-subheading) > (insert new-keyword " "))) > > (defcustom org-subheading-todo-alist nil > "An associative map to help define which TODO keyword should be > used for new subheadings, depending on the current heading's TODO > keyword. See the documentation for `org-new-subheading-todo' for > an example." > :group 'org-todo > :type '(alist :key-type (string :tag "Current heading keyword") > :value-type (string :tag "New sub-heading keyword"))) > > (org-defkey org-mode-map [(meta j)] 'org-new-subheading) > (org-defkey org-mode-map [(shift meta j)] 'org-new-subheading-todo) > --------- 8< --------- 8< --------- 8< --------- 8< --------- 8< > --------- > > I would have preferred to make the defcustom have a radio button list > of existing TODO keywords for the alist keys and values, rather than > freeform strings, but I couldn't figure out how to get it to refer to > to org-todo-keywords-1. > > Finally, what's the preferred way to submit patches? Is there a > revision-controlled repository available anywhere? > > Cheers, > Adam > > > _______________________________________________ > Emacs-orgmode mailing list > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > -- Carsten Dominik Sterrenkundig Instituut "Anton Pannekoek" Universiteit van Amsterdam Kruislaan 403 NL-1098SJ Amsterdam phone: +31 20 525 7477