unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#15225: 24.3.50; todo-mode: Some bugs and suggestions
@ 2013-08-30 18:18 Kanthimathi R
  2013-08-31  4:07 ` Jambunathan K
  2013-09-08 21:07 ` Stephen Berman
  0 siblings, 2 replies; 8+ messages in thread
From: Kanthimathi R @ 2013-08-30 18:18 UTC (permalink / raw)
  To: 15225

[-- 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-12-21  2:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-30 18:18 bug#15225: 24.3.50; todo-mode: Some bugs and suggestions Kanthimathi R
2013-08-31  4:07 ` 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

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).