emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Tim O'Callaghan" <tim.ocallaghan@gmail.com>
To: Adam Spiers <orgmode@adamspiers.org>
Cc: org-mode <emacs-orgmode@gnu.org>
Subject: Re: [Orgmode] Feature Request: "Keeping me honest"
Date: Mon, 16 Dec 2013 15:02:05 +0100	[thread overview]
Message-ID: <CAArV04OjkHmNQbMwDomC=ARNwOK=vK9kH4xTUaTT_YpZHcOODw@mail.gmail.com> (raw)
In-Reply-To: <CAOkDyE-nOA8CHHYPRyYjc9t9b0pXGuh532RXxrH+6kKFfWvCQw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1176 bytes --]

Hi Adam.

I still lurk on the org-mode list. I'm not using org as much as a TODO
system any more, mostly for publishing and notes, so I am not sure if
it works with the lates version of org.

Attached is the code, released for those that might find it of value.
It has not substantially changed in all that time. Its essentially an
extra highlighter aimed at org-mode nodes that have tags like todo and
project.

regards,

Tim.

On 15 December 2013 17:08, Adam Spiers <orgmode@adamspiers.org> wrote:
> Hey Tim,
>
> I realise this is from over 4 years ago, but I was wondering if you'd
> made any progress with org-action-verbs since then?  It's a great idea
> and IMHO worthy of being made into a package.
>
> Cheers,
> Adam
>
> On 1 October 2009 03:29, Tim O'Callaghan <tim.ocallaghan@gmail.com> wrote:
>> Small update. Fixes the problem of the highlighting not disappearing
>> when headline is fixed.
>>
>> - Still has some issues with removing highlighting when TODO becomes
>> something else.
>>
>> - Added new default verbs:
>> TODO, NEXT -> Call, Email, Fix, Find, Fill out, Give, Print, Re-Do, Take
>> PROJECT -> Configure, Draft, Purge, Gather
>>
>> Enjoy,
>>
>> Tim.

[-- Attachment #2: overbs.el --]
[-- Type: text/x-emacs-lisp, Size: 5516 bytes --]

;;; org-action-verbs.el --- Highlight potentially un-doable headlines.

;; Copyright (C) 2008 Tim O'Callaghan

;; Author: Tim O'Callaghan <timo@dspsrv.com>
;; Version: 0.1

;; This file is not currently part of GNU Emacs.

;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2, or (at
;; your option) any later version.

;; This program is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program ; see the file COPYING.  If not, write to
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Commentary:

;; This is an implementation of an idea I had to keep me honest. In
;; GTD each 'next action' is supposed to be an actual do-able thing to
;; further the project it is associated with.

;; When creating next actions or project headlines there is sometimes
;; a tendancy to use a heading that is a bit vauge/un-doable. This is
;; usually a sign that the task the headline represents needs more
;; thinking about and will probably need more than one next action or
;; spawn another project.

;; org-action-verbs was created to use a list of GTD 'action verbs' to
;; diagnose a functional "Next Action" and project headline. It
;; searches for headlines of a specific TODO type and checks to see if
;; the next word is specified as an action verb. If not, then it
;; highlights the non actionable word. Kind of like flyspell mode.

;; To use you might put the following in your .emacs:
;;
;; (require 'org-action-verbs)
;;
;; To change the default TODO/Action verb table you can set
;; 'org-action-todo-verbs'. Below is an example
;; 'org-action-todo-verbs' The first checks for the right spaceship
;; name associated with the SPACESHIP todo type, and the right colour
;; for the COLOR/COLOUR todo type.

;;(setq org-action-todo-verbs
;;      '(
;;        (("SPACESHIP") . ("Challenger" "Voyager" "Enterprise" "Nostromo" "Apollo" ))
;;        (("COLOUR" "COLOR") . ("Red" "Yellow" "Green" "Aquamarine" "Blue" "Black"))
;;        )
;;
;;

(require 'org)

(defface org-action-incorrect-face
  '((((class color) (background light)) (:foreground "purple" :bold t :underline t))
    (((class color) (background dark)) (:foreground "purple" :bold t :underline t))
    (t (:bold t :underline t)))
  "Used by org-action-verbs to help mark bad 'un-doable' headlines.")

;; backward-compatibility alias
(put 'org-action-incorrect-face 'face-alias 'org-action-incorrect)

(defvar org-action-todo-verbs 
  '(
    (("TODO" "NEXT") . 
     ("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"))
    (("PROJECT") . 
     ("Finalize" "Resolve" "Handle" "Look-Into" "Submit" "Maximize" "Organize"
      "Design" "Complete" "Ensure" "Research" "Roll-Out" "Update" "Install"
      "Implement" "Set-Up"))
    )
  "org-action todo keywords to apply to incorrect action verb overlay to.")

(defun org-font-lock-add-action-faces (limit)
  "Add the special action word faces."
  (let (rtn a)
    ;; check variable is set, and buffer left to search
    (when (and (not rtn) org-action-todo-verbs)
      ;; for each todo/action verb set
      (dolist (todo org-action-todo-verbs)
        ;; build regexps
        (let ((todo-keywords-regexp
               (concat "^\\*+[ 	]+" 
                       (regexp-opt (car todo) 'words)))
              (todo-action-verbs-regexp
               (concat "[ 	]+" (regexp-opt (cdr todo) 'words))))
          ;; while we can find a todo keyword
          (while (re-search-forward todo-keywords-regexp limit t)
            ;; check for action verb
            (if (looking-at todo-action-verbs-regexp)
                nil
              ;; not an action verb, reset match data to next word
              (if (looking-at "[ 	]+\\(\\<\\w\\w+\\>\\)")
                  ;; apply new overlay
                  (let ((overlay (make-overlay (match-beginning 1) (match-end 1) nil t nil)))
                    (overlay-put overlay 'face 'org-action-incorrect)
                    ;;(overlay-put overlay 'mouse-face mouse-face)
                    (overlay-put overlay 'org-action-overlay t)
                    (overlay-put overlay 'evaporate t)
                    (overlay-put overlay 'help-echo "mouse-2: correct word at point")
                    overlay)))
            ;; reset search point?
            (backward-char 1)))))
    rtn))

(defun org-mode-action-verbs-hook ()
  "Initalise org-action-verbs."
  (interactive) 
  (font-lock-add-keywords nil '((org-font-lock-add-action-faces)))
  )

;; Turn on action verb font locking.
(add-hook 'org-mode-hook 'org-mode-action-verbs-hook)

(provide 'org-action-verbs)
;;; org-annotate-file.el ends here

  reply	other threads:[~2013-12-16 14:02 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
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 [this message]
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='CAArV04OjkHmNQbMwDomC=ARNwOK=vK9kH4xTUaTT_YpZHcOODw@mail.gmail.com' \
    --to=tim.ocallaghan@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=orgmode@adamspiers.org \
    /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).