emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [PATCH 2/2] Fix adaptive filling.


From: Carsten Dominik
Subject: Re: [Orgmode] [PATCH 2/2] Fix adaptive filling.
Date: Thu, 11 Mar 2010 18:13:32 +0100

Hi everyone,


I know that a few people have been using this patch.

How has it been working?

- Carsten

On Mar 1, 2010, at 2:49 PM, Dan Hackney wrote:

For paragraph text, `org-adaptive-fill-function' did not handle the base case of regular text which needed to be filled. This commit saves a buffer- local value of `adaptive-fill-regexp' and uses it if none of the org-specific regexps match.
This allows email-style ">" comments to be filled correctly.

Signed-off-by: Dan Hackney <address@hidden>
---
lisp/org.el |   25 ++++++++++++++++++++-----
1 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 8ba782a..073061e 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -17289,6 +17289,12 @@ which make use of the date at the cursor."
                       t t))
    (org-move-to-column column)))

+(defvar org-adaptive-fill-regexp-backup adaptive-fill-regexp
+  "Variable to store copy of `adaptive-fill-regexp'.
+Since `adaptive-fill-regexp' is set to never match, we need to
+store a backup of its value before entering `org-mode' so that
+the functionality can be provided as a fall-back.")
+
(defun org-set-autofill-regexps ()
  (interactive)
  ;; In the paragraph separator we include headlines, because filling
@@ -17324,8 +17330,11 @@ which make use of the date at the cursor."
  ;; and fixed-width regions are not wrapped.  That function will pass
  ;; through to `fill-paragraph' when appropriate.
  (org-set-local 'fill-paragraph-function 'org-fill-paragraph)
-  ; Adaptive filling: To get full control, first make sure that
+  ;; Adaptive filling: To get full control, first make sure that
;; `adaptive-fill-regexp' never matches. Then install our own matcher.
+  (unless (local-variable-p 'adaptive-fill-regexp)
+    (org-set-local 'org-adaptive-fill-regexp-backup
+                   adaptive-fill-regexp))
  (org-set-local 'adaptive-fill-regexp "\000")
  (org-set-local 'adaptive-fill-function
                 'org-adaptive-fill-function)
@@ -17354,8 +17363,11 @@ which make use of the date at the cursor."
  "Return a fill prefix for org-mode files.
In particular, this makes sure hanging paragraphs for hand-formatted lists
work correctly."
-  (cond ((looking-at "#[ \t]+")
-        (match-string 0))
+  (cond
+   ;; Comment line
+   ((looking-at "#[ \t]+")
+    (match-string-no-properties 0))
+   ;; Description list
        ((looking-at "[ \t]*\\([-*+] .*? :: \\)")
         (save-excursion
           (if (> (match-end 1) (+ (match-beginning 1)
@@ -17363,11 +17375,14 @@ work correctly."
               (goto-char (+ (match-beginning 1) 5))
             (goto-char (match-end 0)))
           (make-string (current-column) ?\ )))
-       ((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)]  ?\\)?")
+    ;; Ordered or unordered list
+       ((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)]  ?\\)")
         (save-excursion
           (goto-char (match-end 0))
           (make-string (current-column) ?\ )))
-       (t nil)))
+    ;; Other text
+    ((looking-at org-adaptive-fill-regexp-backup)
+     (match-string-no-properties 0))))

;;; Other stuff.

--
1.6.3.3



_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten







reply via email to

[Prev in Thread] Current Thread [Next in Thread]