[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals-release/org 5f6e199 2/3: footnote: Allow footnotes at f
From: |
ELPA Syncer |
Subject: |
[elpa] externals-release/org 5f6e199 2/3: footnote: Allow footnotes at footnote definition start |
Date: |
Wed, 6 Oct 2021 08:57:19 -0400 (EDT) |
branch: externals-release/org
commit 5f6e199143d8b66077c41202ff1b0d5f7064a50b
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>
footnote: Allow footnotes at footnote definition start
* lisp/org-footnote.el (org-footnote--allow-reference-p): Allow
footnotes at footnote definition start, right after label.
* testing/lisp/test-org-footnote.el (test-org-footnote/new): Add
tests.
---
lisp/org-footnote.el | 3 +++
testing/lisp/test-org-footnote.el | 29 ++++++++++++++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el
index c8c4dae..fcd8522 100644
--- a/lisp/org-footnote.el
+++ b/lisp/org-footnote.el
@@ -282,6 +282,9 @@ otherwise."
(skip-chars-backward " \r\t\n")
(if (eq (org-element-class context) 'object) (point)
(1+ (line-beginning-position 2))))))
+ ;; At the beginning of a footnote definition, right after the
+ ;; label, is OK.
+ ((eq type 'footnote-definition) (looking-at (rx (or space buffer-end))))
;; Other elements are invalid.
((eq (org-element-class context) 'element) nil)
;; Just before object is fine.
diff --git a/testing/lisp/test-org-footnote.el
b/testing/lisp/test-org-footnote.el
index 6d8ba2f..8751dc8 100644
--- a/testing/lisp/test-org-footnote.el
+++ b/testing/lisp/test-org-footnote.el
@@ -90,7 +90,34 @@
(org-test-with-temp-text " *bold*<point>"
(let ((org-footnote-auto-label t)) (org-footnote-new))
(buffer-string))))
- ;; Arrow new footnotes in table cells.
+ ;; Allow new footnotes at the start of a footnote definition.
+ (should
+ (string-match-p
+ "\\[fn:1\\]\\[fn:2\\]"
+ (org-test-with-temp-text "[fn:1]<point>"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string))))
+ (should
+ (string-match-p
+ "\\[fn:1\\] \\[fn:2\\]"
+ (org-test-with-temp-text "[fn:1] <point>"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string))))
+ (should
+ (string-match-p
+ "\\[fn:1\\]\\[fn:2\\]"
+ (org-test-with-temp-text "[fn:1]<point> \nParagraph"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string))))
+ (should-error
+ (org-test-with-temp-text "[fn:<point>1]"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string)))
+ (should-error
+ (org-test-with-temp-text "<point>[fn:1]"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string)))
+ ;; Allow new footnotes in table cells.
(should
(string-match-p
" \\[fn:1\\]"