From: Kanthimathi R <rkanthimathi@hotmail.co.in>
To: 15225@debbugs.gnu.org
Subject: bug#15225: 24.3.50; todo-mode: Some bugs and suggestions
Date: Fri, 30 Aug 2013 23:48:28 +0530 [thread overview]
Message-ID: <BLU0-SMTP434CD292F2D127A65E9A0C691350@phx.gbl> (raw)
[-- Attachment #1: Type: text/plain, Size: 1515 bytes --]
Quick feedback:
--------------
The interface for todo-mode looks good. Info documentation is good.
The starting few nodes are a bit too dense while the later nodes seem
like a lucid read.
Recommendation:
---------------
I would recommend it for simple todo-lists. Once the entries become
more, then categorization of entries looks like a rocket science. (Or I
should say, new users should be sufficiently trained.)
Verdict:
--------
Too many moving parts and the module needs to stabilize a bit. I
INVARIABLY run in to problems.
Giving up:
---------
1. For example, as I was exercising todo-mode for preparing this bug
report, the file ran in to an inconsistent state - A category with no
todo or done items was reporting 6 entries in `F c' table. I
wondered whether deleting the categories sexp and C-x C-q ing would
repair the todo file. Unfortunately, that doesn't help. So I am
attaching a "broken" todo file.
To add to the entries in the attached file,
1. Undo support while in todo-mode.
2. The following markers used in the todo file
--==--
==--==
are they consistent with the outline-mode. If not, some consideration
should be given so that they are compatible with outline-regexps.
Additional comment:
------------------
As some one who is familiar with (but doesn't use) Orgmode's data model,
I can share some opinions, if permitted.
With no further ado, here comes the attachment. Repairing the attached
file is reader's responsibility.
[-- Attachment #2: emacs.todo --]
[-- Type: application/octet-stream, Size: 6911 bytes --]
--==-- todo-mode
[Aug 29, 2013] `C m' MUST create new files on demand
1. Visit the odt category.
2. Type `C m' on the first entry
3. When prompted for a file-name, give a non-existing file name.
4. Note that completion insists on a MUST-MATCH.
5. I was expecting that the new file will be created and the entry moved to that category.
[Aug 28, 2013] `i i' should append or prepend items by default
GTD says separate out collection and processing.
Insertion of an item is a "collection" activity. Setting a
priority is a "processing" activity. So I recommend that `i i' add
an item to the top or the bottom of the file. Let the user move
the raise or lower the items at a later point in time during the
"processing" phase.
[Aug 30, 2013] When I `C m', most often I want to stay in the same category
The current behaviour is to move to the new category. I
essentially need a pop or a prefix binding.
[Aug 30, 2013] A key binding for editing just the header line (say e h)
==--== DONE
--==-- todo-mode/bugs
[Aug 29, 2013] With desktop mode on and todo-mode leaves a stacktrace
Strip your .emacs as below.
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(calendar-view-diary-initially-flag t)
'(desktop-base-file-name ".emacs-desktop.junk")
'(desktop-path (quote ("~")))
'(desktop-save-mode t)
'(diary-file "~/.emacs.d/todo/emacs.todo")
'(diary-number-of-entries 30)
'(savehist-mode t)
'(todo-wrap-lines t))
emacs
M-x todo-show
Make sure that todo buffer shows up fine
C-x C-c and save the desktop file
Re-load emacs
M-x toggle-debug-on-error
M-x todo-show
See following stacktrace.
Debugger entered--Lisp error: (error "Category nil is missing todo-category-done string")
signal(error ("Category nil is missing todo-category-done string"))
error("Category %s is missing todo-category-done string" nil)
todo-category-select()
todo-show(nil 1)
call-interactively(todo-show record nil)
command-execute(todo-show record)
execute-extended-command(nil "todo-show")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
[Aug 28, 2013] Highlighting reports an error
F H on an item results in
call-interactively: Symbol's value as variable is void: hl-line-mode
[Aug 29, 2013] todo-mode not recognized with emacs -Q
1. emacs -Q
2. C-x C-f ~/.emacs.d/todo/emacs.todo
3. The file is not visited in todo mode and hence not fontified.
I think `auto-mode-alist' should have an entry for todo-mode /even if/ todo-mode is not loaded apriori.
==--== DONE
--==-- todo-mode/design
[Aug 29, 2013] Clarify [Aug 29, 2013], Aug 29,2013 and &Aug 29, 2013 entries
The former is more like when the entry was created. The second one
is what the diary expects as an active entry. The last one is
disabled for diary processing.
From functional standpoint, 1 and 3 seem not very different. I
think [ ] is there mostly for filling up places and to improve
overall aesthetics. We should really consider NOT having a date
associated with an item.
==--== DONE
--==-- todo-mode/info
[Aug 28, 2013] Mention that entry's date is controlled by `calendar-date-display-form'
[Aug 28, 2013] Improve documentation
Documentation is good and useful. Please consider giving real-life
examples of how YOU use it. What does a todo file stand for and
what could be possible categories, when a need for splitting or
merging categories arise etc.
After experimenting with todo mode, I consider todo-mode as
essentially a fontified conventional diary file with some bells and
whistles. An introduction that says something in similar vein with
a info link to diary syntax will set the mood right for further
exploration.
The section that talks about y k c d sequence seems to occur a bit
too early in the manual. It should be placed a bit late in the
manual. Mentioning the mnemonics upfront, y => diarY k => marK etc
is *good* though.
[Aug 28, 2013] Does C stand for "upcased"-C or Ctrl key
For example, in
(info "(todo-mode) Category Editing")
and possibly other nodes, it is easy to be carried away by
mistaking C as control. The documentation mentions upfront that C
is actually alphabetical-C but it is buried deep within. More
importantly a regular Emacs user can get carried away easily.
==--== DONE
--==-- todo-mode/nuisance
[Aug 29, 2013] Replace C-x C-q with C-x C-s
Sometimes I end up doing C-x C-q after an `F e' in the todo-mode.
It ends up enabling/disabling read-only mode on the todo file. So
the choice of C-x C-q for repair needs some review.
[Aug 30, 2013] C-x C-q should ensure newline at the end of entry's description
[Aug 30, 2013] Review C-a in edit mode
When I press RET the enty wraps at the window's edge, the cursor
rests at column 3. But if I do C-a, it goes to the start of the
line. These two behaviour taken together is confusing.
I see that C-x C-q "repairs" the entry description by adding the
needed prefix on writing to *.todo file, I feel this 3 (or
whatever)-space rule could be relaxed. As I am typing this bug
report, I realize that I need to do e m, C-x C-q one more time to
do the proper repair.
After experimenting with 10 odd entries I feel that `e m' and `C-x
C-q' switch is a bit hard on my wrists. Too many context switches.
I wonder whether this context switch can be avoided.
I would much prefer NOT switching between todo and edit modes and
rather have a single-shot repair of all edited items. May be
repair on save could be a good option.
[Aug 29, 2013] Adding entries doesn't scale. Too much context switch with `e m'
Consider ideas from all.el or occur-edit mode for editing "in place".
For repair, see how src block are edited with C-C ' in org-mode.
Btw, RET seems a good replacement for `e m'.
==--== DONE
--==-- todo-mode/wish
[Aug 28, 2013] Menu entries for todo-mode
This is particularly important for new users like me to memorize the key bindings.
[Aug 28, 2013] Disable `F e'
Don't recommend it but ENFORCE it. Do this by putting a 'disabled property to the command. Something variation of ....
(put 'todo-edit-file 'disabled t)
[Aug 28, 2013] Enable selective display
(add-hook 'todo-mode-hook (lambda nil (set-selective-display 1)))
May be the above lambda can go as part of `custom-add-frequent-value'.
(custom-add-frequent-value 'todo-mode-hook 'blah)
==--== DONE
--==-- todo-mode/minor
[Aug 29, 2013] Improve aesthetics
Alignment of numbers and headlines. After about 15 entries (the
file you are reading is a good example) the entries look staggered.
==--== DONE
[-- Attachment #3: Type: text/plain, Size: 367 bytes --]
In GNU Emacs 24.3.50.2 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
of 2013-08-28 on porunai
Bzr revision: 114042 dmantipov@yandex.ru-20130828110003-g68qe987icftmx90
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
Important settings:
value of $LANG: en_IN
locale-coding-system: iso-latin-1-unix
default enable-multibyte-characters: t
next reply other threads:[~2013-08-30 18:18 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-30 18:18 Kanthimathi R [this message]
2013-08-31 4:07 ` bug#15225: 24.3.50; todo-mode: Some bugs and suggestions Jambunathan K
2013-08-31 12:39 ` Jambunathan K
2013-09-08 21:08 ` Stephen Berman
2013-09-08 21:08 ` Stephen Berman
2013-09-08 21:07 ` Stephen Berman
2013-12-20 17:44 ` Stephen Berman
2013-12-21 2:50 ` Jambunathan K
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.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BLU0-SMTP434CD292F2D127A65E9A0C691350@phx.gbl \
--to=rkanthimathi@hotmail.co.in \
--cc=15225@debbugs.gnu.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.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).