From: Martin Pohlack <mp26@os.inf.tu-dresden.de>
To: emacs-orgmode@gnu.org
Subject: [Patch] Add another bullet type (→)
Date: Fri, 13 Mar 2009 23:58:03 +0100 [thread overview]
Message-ID: <49BAE4FB.8060401@os.inf.tu-dresden.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 670 bytes --]
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
[-- Attachment #2: org-list-arrow.diff --]
[-- Type: text/plain, Size: 4146 bytes --]
--- /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
[-- Attachment #3: Type: text/plain, Size: 204 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
next reply other threads:[~2009-03-13 22:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-13 22:58 Martin Pohlack [this message]
2009-03-14 10:07 ` [Patch] Add another bullet type (→) Carsten Dominik
2009-03-16 1:04 ` Daniel Clemente
2009-03-16 5:52 ` Carsten Dominik
2009-03-16 8:34 ` Martin Pohlack
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=49BAE4FB.8060401@os.inf.tu-dresden.de \
--to=mp26@os.inf.tu-dresden.de \
--cc=emacs-orgmode@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/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).