emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Tim O'Callaghan" <tim.ocallaghan@gmail.com>
To: Jonathan Arkell <jonathana@criticalmass.com>
Cc: org-mode <emacs-orgmode@gnu.org>
Subject: Re: Feature Request: "Keeping me honest"
Date: Mon, 21 Sep 2009 16:22:03 +0200	[thread overview]
Message-ID: <3d6808890909210722h5b145187xc55de0331e73104e@mail.gmail.com> (raw)
In-Reply-To: <7EA78739DB6FF044926304E83668BF8222E0303C@brewer.cmass.criticalmass.com>

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" "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")
    "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 <jonathana@criticalmass.com>:
> 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 the TODO state of the todo item (to a not done state), then the enforcer kicks in, and does a check against a list of known good and known bad words.  During 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 interface, TAB to edit the todo item directly to fix the problem and enter to accept 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 confirmation behind it.  ("This TODO Item seems unactionable, are you sure you want to use it?")
>
> What are bad words?  A 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  the todo item has checkboxes in it
> - Loose enforcement, don't bug the user at all, only use agenda functionality.
> - 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" headline...  So I hope to get to it by the next decade. :p
>
> -----Original Message-----
> From: emacs-orgmode-bounces+jonathana=criticalmass.com@gnu.org [mailto:emacs-orgmode-bounces+jonathana=criticalmass.com@gnu.org] On Behalf Of Tim 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"
>
>  When i outline a project, sometimes there are points that are
>  ambigiously stated. Being neither actions or titles, they can slip
>  through the cracks. So i've been thinking of a feature that would be
>  similar to the "stuck projects" indicator. This would be a set of
>  words that would naturally follow a TODO or similar, to indicate
>  that the title has some honesty to it. Its to enforce a kind of "GTD
>  verb" in every actionalble outline title.
>
>  Implementation wise, i was thinking this could be a word list
>  associated with a todo or tag. That list would then be used to font
>  lock the first word of an outline header. e.g.
>
>  <wrong> * TODO foobar compatibility needed for something
>    vs
>  <right> * TODO change feature X of something so that it works with foobar
>
>  Either the first word, and/or the whole line would be highlighted a
>  different colour. GTD words are not the only use for a feature like
>  this. It might be used to highlight that a bug ID is needed in a
>  "FIXME" heading with a regexp "ID#[0-9]+" associated to the "keep me
>  honest" field.
>
>  Not sure where i picked this list up from but here are some example
>  GTD 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 hereby 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.
>

  reply	other threads:[~2009-09-21 14:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-03 13:47 Feature Request: "Keeping me honest" Tim O'Callaghan
2009-08-05  1:54 ` Jonathan Arkell
2009-09-21 14:22   ` Tim O'Callaghan [this message]
2009-10-01  0:31     ` Tim O'Callaghan
2009-10-01  2:29       ` Tim O'Callaghan
2013-12-15 16:08         ` [Orgmode] " Adam Spiers
2013-12-16 14:02           ` Tim O'Callaghan
2013-12-16 15:52             ` Adam Spiers
2013-12-16 17:12               ` Tim O'Callaghan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d6808890909210722h5b145187xc55de0331e73104e@mail.gmail.com \
    --to=tim.ocallaghan@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=jonathana@criticalmass.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).