Hi All,
I tend to use a right arrow (→, U2192) from time to time in plain
lists to separate normal item from conclusions / next actions etc.:
- Topic
- Fact 1
- Fact 2
→ Conclusion
I would appreciate it if org-mode could support this type of bullet
point. The attached patch implements what I had in mind.
I'm not sure if the adaptation in /org-cycle-list-bullet/ is useful
for others --- I don't use the arrow for many items in a list, but
only single ones --- But I included it in the patch for completeness.
(Also, there may be better ways to encode unicode chars in regexp than
using the utf-8 encoding, that the patch uses.)
Cheers,
Martin
--- /home/mp26/src/org-mode/lisp/org-list.el 2009-03-13
23:42:05.000000000 +0100
+++ org-list.el 2009-03-13 19:57:51.000000000 +0100
@@ -118,7 +118,7 @@
:type 'integer)
(defvar org-list-beginning-re
- "^\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) +\\(.*\\)$")
+ "^\\([ \t]*\\)\\([-+*→]\\|[0-9]+[.)]\\) +\\(.*\\)$")
(defcustom org-list-radio-list-templates
'((latex-mode "% BEGIN RECEIVE ORGLST %n
@@ -158,9 +158,9 @@
(goto-char (point-at-bol))
(looking-at
(cond
- ((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)
\\( \\|$\\)")
- ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\
\( \\|$\\)")
- ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+))\\)\\|[ \t]+\\*\\)\\( \
\|$\\)")
+ ((eq llt t) "\\([ \t]*\\([-+→]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\
\)\\( \\|$\\)")
+ ((= llt ?.) "\\([ \t]*\\([-+→]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\
\)\\( \\|$\\)")
+ ((= llt ?\)) "\\([ \t]*\\([-+→]\\|\\([0-9]+))\\)\\|[ \t]+\\*\\)\\
( \\|$\\)")
(t (error "Invalid value of `org-plain-list-ordered-item-
terminator'")))))))
(defun org-at-item-bullet-p ()
@@ -205,7 +205,7 @@
(looking-at "[ \t]*$")))))
(timerp (and descp
(save-match-data
- (string-match "^[-+*][ \t]+[0-9]+:[0-9]+:[0-9]+$"
+ (string-match "^[-+*→][ \t]+[0-9]+:[0-9]+:[0-9]+$"
descp))))
(eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
(match-end 0)))
@@ -337,7 +337,7 @@
(condition-case nil (org-back-to-heading t)
(error (throw 'exit nil)))
(unless (org-entry-get nil "ORDERED") (throw 'exit nil))
- (if (re-search-forward "^[ \t]*[-+*0-9.)] \\[[- ]\\]" end t)
+ (if (re-search-forward "^[ \t]*[-+*→0-9.)] \\[[- ]\\]" end t)
(org-current-line)
nil))))))
@@ -360,7 +360,7 @@
(end (move-marker (make-marker)
(progn (outline-next-heading) (point))))
(re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)")
- (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)")
+ (re-box "^[ \t]*\\([-+→*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)")
(re-find (concat re "\\|" re-box))
beg-cookie end-cookie is-percent c-on c-off lim
eline curr-ind next-ind continue-from startsearch
@@ -674,7 +674,7 @@
"Cycle through the different itemize/enumerate bullets.
This cycle the entire list level through the sequence:
- `-' -> `+' -> `*' -> `1.' -> `1)'
+ `-' -> `+' -> `→' -> `*' -> `1.' -> `1)'
If WHICH is a string, use that as the new bullet. If WHICH is an
integer,
0 means `-', 1 means `+' etc."
@@ -688,11 +688,12 @@
new old)
(setq new (cond
((and (numberp which)
- (nth (1- which) '("-" "+" "*" "1." "1)"))))
+ (nth (1- which) '("-" "+" "→" "*" "1." "1)"))))
((string-match "-" current) (if prevp "1)" "+"))
((string-match "\\+" current)
- (if prevp "-" (if (looking-at "\\S-") "1." "*")))
- ((string-match "\\*" current) (if prevp "+" "1."))
+ (if prevp "-" (if (looking-at "\\S-") "1." "→")))
+ ((string-match "→" current) (if prevp "+" "*"))
+ ((string-match "\\*" current) (if prevp "→" "1."))
((string-match "\\." current)
(if prevp (if (looking-at "\\S-") "+" "*") "1)"))
((string-match ")" current) (if prevp "1." "-"))
@@ -929,7 +930,7 @@
((and (condition-case nil (progn (org-previous-item) t)
(error nil))
(or (forward-char 1) t)
- (re-search-forward "^\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|
[ \t]+\\*\\)\\( \\|$\\)" bolpos t))
+ (re-search-forward "^\\([ \t]*\\([-+→]\\|\\([0-9]+[.)]\\)\\)\
\|[ \t]+\\*\\)\\( \\|$\\)" bolpos t))
(setq ind-down (org-get-indentation)))
((and (goto-char pos)
(org-at-item-p))
@@ -956,8 +957,8 @@
(setq itemsep "[0-9]+\\(?:\\.\\|)\\)"
ltype 'ordered))
((string-match "^.*::" (match-string 0))
- (setq itemsep "[-+]" ltype 'descriptive))
- (t (setq itemsep "[-+]" ltype 'unordered))))
+ (setq itemsep "[-+→]" ltype 'descriptive))
+ (t (setq itemsep "[-+→]" ltype 'unordered))))
(let* ((indent1 (match-string 1))
(nextitem (save-excursion
(save-match-data
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode