emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Feature Request: "Keeping me honest"


From: Tim O'Callaghan
Subject: Re: [Orgmode] Feature Request: "Keeping me honest"
Date: Mon, 21 Sep 2009 16:22:03 +0200

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 <address@hidden>:
> 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: address@hidden [mailto:address@hidden 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.
> address@hidden
> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]