From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tim O'Callaghan" Subject: Re: Feature Request: "Keeping me honest" Date: Mon, 21 Sep 2009 16:22:03 +0200 Message-ID: <3d6808890909210722h5b145187xc55de0331e73104e@mail.gmail.com> References: <3d6808890908030647k3ecfd8b1u45bca71320ca34cc@mail.gmail.com> <7EA78739DB6FF044926304E83668BF8222E0303C@brewer.cmass.criticalmass.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mpjmg-0002NK-Fe for emacs-orgmode@gnu.org; Mon, 21 Sep 2009 10:22:30 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mpjmb-0002KY-Ru for emacs-orgmode@gnu.org; Mon, 21 Sep 2009 10:22:29 -0400 Received: from [199.232.76.173] (port=54943 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mpjmb-0002KM-LI for emacs-orgmode@gnu.org; Mon, 21 Sep 2009 10:22:25 -0400 Received: from mail-bw0-f220.google.com ([209.85.218.220]:37242) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mpjmb-0000Jc-3W for emacs-orgmode@gnu.org; Mon, 21 Sep 2009 10:22:25 -0400 Received: by bwz20 with SMTP id 20so2417508bwz.42 for ; Mon, 21 Sep 2009 07:22:23 -0700 (PDT) In-Reply-To: <7EA78739DB6FF044926304E83668BF8222E0303C@brewer.cmass.criticalmass.com> 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: Jonathan Arkell Cc: org-mode Below is my first attempt at this. It breaks normal org font-locking though, my font-lock foo is not up to much at the moment. I'm sure its something simple, but i cannot see it. Any ideas where I'm going wrong? Tim. ---- (defface org-action '((((class color) (background light)) (:foreground "green" :underline t)) (((class color) (background dark)) (:foreground "green" :underline t)) (t (:underline t))) "Used by org-action-font to help distinguish good 'actionable' headlines.= ") (defvar org-action-todo-keywords '("TODO" "NEXT") "org-action todo keywords to apply to action fonts to") (defvar org-action-todo-highlight-words '("Address" "Ask" "Avoid" "Buy" "Change" "Clarify" "Collect" "Commend" "Confront" "Consider" "Create" "Decide" "Defer" "Develop" "Discard" "Do Again" "Download" "Enter" "File" "Follow Up" "Hire" "Improve" "Increase" "Inform" "Inquir= e" "Maintain" "Measure" "Monitor" "Order" "Paint" "Phone" "Prioritize" "Purchase" "Question " "Reduce" "Remember" "Repair" "Reply" "Report" "Research" "Resolve" "Review" "Schedule" "Sell" "Send" "Service" "Specify" "Start" "Stop" "Suggest" "Tidy" "Train" "Update" "Upgrade" "Write") "org-action fontification keywords ") (defun org-mode-action-hook () "Initalise org-mode helper stuff." (interactive) (setq org-action-todo-keywords-regexp (concat "^\\*+[ ]+" (regexp-opt org-action-todo-keywords 'words) "[ ]+" (regexp-opt org-action-todo-highlight-words 'words)= )) (setq org-action-font-lock-keywords `( (,org-action-todo-keywords-regexp 2 org-action-face t))) (font-lock-add-keywords nil org-action-font-lock-keywords) ) ;; Turn on 'keeping it honest' font locking. (add-hook 'org-mode-hook 'org-mode-action-hook) 2009/8/5 Jonathan Arkell : > This is a great idea! > > I was thinking about something similar, but my ideal implementation would= enforce more granular discipline: > > If the user is on a TODO item and hits Enter, moves up or down, or sets t= he TODO state of the todo item (to a not done state), then the enforcer kic= ks in, and does a check against a list of known good and known bad words. = =A0During this process a small buffer would pop up, showing the text of the= TODO item and any errors that popped up. > > This secondary buffer would have keybindings similar to the tags interfac= e, TAB to edit the todo item directly to fix the problem and enter to accep= t it as is, and maybe alpha-numerics to enter keywords > > If "bad" words show up in the todo item, then the enter key has a y/n con= firmation behind it. =A0("This TODO Item seems unactionable, are you sure y= ou want to use it?") > > What are bad words? =A0A project verb in a TODO keyword I would consider = bad, but it should be customizable per keyword and per todo item. > > A few options I can think of: > - Don't Process enforce if =A0the todo item has checkboxes in it > - Loose enforcement, don't bug the user at all, only use agenda functiona= lity. > - Strict enforcement, don't let the user enter out of confirmation > > I saw a similar list to the one you have on P218 of "Making it all Work" = (David Allen) > > Right now this is all sitting in my "Long term ideas for Org Mode" headli= ne... =A0So I hope to get to it by the next decade. :p > > -----Original Message----- > From: emacs-orgmode-bounces+jonathana=3Dcriticalmass.com@gnu.org [mailto:= emacs-orgmode-bounces+jonathana=3Dcriticalmass.com@gnu.org] On Behalf Of Ti= m O'Callaghan > Sent: August 3, 2009 7:47 AM > To: org-mode > Subject: [Orgmode] Feature Request: "Keeping me honest" > > Hi, I'm not sure how/if these are implemented or implementable. > > * "Keeping Me honest" > > =A0When i outline a project, sometimes there are points that are > =A0ambigiously stated. Being neither actions or titles, they can slip > =A0through the cracks. So i've been thinking of a feature that would be > =A0similar to the "stuck projects" indicator. This would be a set of > =A0words that would naturally follow a TODO or similar, to indicate > =A0that the title has some honesty to it. Its to enforce a kind of "GTD > =A0verb" in every actionalble outline title. > > =A0Implementation wise, i was thinking this could be a word list > =A0associated with a todo or tag. That list would then be used to font > =A0lock the first word of an outline header. e.g. > > =A0 * TODO foobar compatibility needed for something > =A0 =A0vs > =A0 * TODO change feature X of something so that it works with foo= bar > > =A0Either the first word, and/or the whole line would be highlighted a > =A0different colour. GTD words are not the only use for a feature like > =A0this. It might be used to highlight that a bug ID is needed in a > =A0"FIXME" heading with a regexp "ID#[0-9]+" associated to the "keep me > =A0honest" field. > > =A0Not sure where i picked this list up from but here are some example > =A0GTD words to test with: > > *** "PROJECT" todo-type outline action verbs > Finalize, resolve, handle, look into, submit, maximize, organize, > design, complete, ensure, research, roll out, update, install, > implement, set-up > > *** "TODO" todo-type next action verbs > Address, ask, avoid, buy, change, clarify, collect, commend confront, > consider, create, decide, defer, develop, discard, do again, download, > enter, file, follow up, hire, improve, increase, inform, inquire, > maintain, measure, monitor, order, paint, phone, prioritize, purchase, > question, reduce, remember, repair, reply, report, research, resolve, > review, schedule, sell, send, service, specify, start, stop, suggest, > tidy, train, update, upgrade, write. > > Tim. > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > The information contained in this message is confidential. It is intended= to be read only by the individual or entity named above or their designee.= If the reader of this message is not the intended recipient, you are hereb= y notified that any distribution of this message, in any form, is strictly = prohibited. If you have received this message in error, please immediately = notify the sender and delete or destroy any copy of this message. >