[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 506d5b12dd: org-comment-line-break-function: Avoid
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 506d5b12dd: org-comment-line-break-function: Avoid built-in Emacs comment machinery |
Date: |
Tue, 4 Oct 2022 07:58:00 -0400 (EDT) |
branch: externals/org
commit 506d5b12ddbb319f0f70593cda54d8d9c580db7b
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
org-comment-line-break-function: Avoid built-in Emacs comment machinery
* lisp/org.el (org-comment-line-break-function): Rely on Org
parser (`org-adaptive-fill-function') to determine comment filling.
Handle nil values of `fill-prefix' correctly.
* testing/lisp/test-org.el (test-org/default-indent-new-line): New
test. Written by Kaushal Modi <kaushal.modi@gmail.com>
https://list.orgmode.org/CAFyQvY36DkBSNy2mPxDNZWeoTjUK8mAqgJM-zHxNamfReqGkuQ@mail.gmail.com/
Reported-by: Richard Lawrence <richard.lawrence@uni-tuebingen.de>
Link:
https://list.orgmode.org/87lf18fue9.fsf@aquinas.i-did-not-set--mail-host-address--so-tickle-me/
---
lisp/org.el | 18 ++++++++++++------
testing/lisp/test-org.el | 20 ++++++++++++++++++++
2 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 545ca36cd8..8346ffe39f 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -19296,12 +19296,18 @@ filling the current element."
"Break line at point and indent, continuing comment if within one.
The inserted newline is marked hard if variable
`use-hard-newlines' is true, unless optional argument SOFT is
-non-nil."
- (if soft (insert-and-inherit ?\n) (newline 1))
- (save-excursion (forward-char -1) (delete-horizontal-space))
- (delete-horizontal-space)
- (indent-to-left-margin)
- (insert-before-markers-and-inherit fill-prefix))
+non-nil.
+
+This function is a simplified version of `comment-indent-new-line'
+that bypasses the complex Emacs machinery dealing with comments.
+We instead rely on Org parser, utilizing `org-adaptive-fill-function'"
+ (let ((fill-prefix (org-adaptive-fill-function)))
+ (if soft (insert-and-inherit ?\n) (newline 1))
+ (save-excursion (forward-char -1) (delete-horizontal-space))
+ (delete-horizontal-space)
+ (indent-to-left-margin)
+ (when fill-prefix
+ (insert-before-markers-and-inherit fill-prefix))))
;;; Fixed Width Areas
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index 1b4157d0e6..4a6a3a0b0b 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -1405,6 +1405,26 @@ CLOCK: [2022-09-17 sam. 11:00]--[2022-09-17 sam. 11:46]
=> 0:46"
(org-indent-region (point-min) (point-max))
(buffer-string)))))
+(ert-deftest test-org/default-indent-new-line ()
+ "Test behavior of default binding `M-j'."
+ ;; Calling `M-j' when point is not in an Org comment:
+ (should
+ (equal "* Some heading\n"
+ (org-test-with-temp-text "* Some heading<point>"
+ (call-interactively #'default-indent-new-line)
+ (buffer-string))))
+ ;; Calling `M-j' when point is in an Org comment:
+ (should
+ (equal "# Some Org comment\n# "
+ (org-test-with-temp-text "# Some Org comment<point>"
+ (call-interactively #'default-indent-new-line)
+ (buffer-string))))
+ (should
+ (equal "# Some Org\n# comment"
+ (org-test-with-temp-text "# Some Org <point>comment"
+ (call-interactively #'default-indent-new-line)
+ (buffer-string)))))
+
;;; Editing
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 506d5b12dd: org-comment-line-break-function: Avoid built-in Emacs comment machinery,
ELPA Syncer <=