[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals-release/org bafeaf161c: element: Fix parsing of inline
From: |
ELPA Syncer |
Subject: |
[elpa] externals-release/org bafeaf161c: element: Fix parsing of inline footnotes |
Date: |
Mon, 28 Feb 2022 09:57:42 -0500 (EST) |
branch: externals-release/org
commit bafeaf161c2253510b6b759f6400cffa1198e48b
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>
element: Fix parsing of inline footnotes
* lisp/org-element.el (org-element--pair-round-table):
(org-element--pair-square-table):
(org-element--pair-curly-table): De-activate all but one pair of
parenthesis.
* testing/lisp/test-org-element.el
(test-org-element/footnote-reference-parser):
Add test.
Reported-by: Greg Minshall <minshall@umich.edu>
<http://lists.gnu.org/r/emacs-orgmode/2022-02/msg00369.html>
---
lisp/org-element.el | 24 +++++++++---------------
testing/lisp/test-org-element.el | 9 +++++++++
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 7952786607..9db1406b3f 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -396,31 +396,25 @@ still has an entry since one of its properties (`:title')
does.")
"Alist between element types and locations of secondary values.")
(defconst org-element--pair-round-table
- (let ((table (make-syntax-table)))
+ (let ((table (make-char-table 'syntax-table '(2))))
(modify-syntax-entry ?\( "()" table)
(modify-syntax-entry ?\) ")(" table)
- (dolist (char '(?\{ ?\} ?\[ ?\] ?\< ?\>) table)
- (modify-syntax-entry char " " table)))
- "Table used internally to pair only round brackets.
-Other brackets are treated as spaces.")
+ table)
+ "Table used internally to pair only round brackets.")
(defconst org-element--pair-square-table
- (let ((table (make-syntax-table)))
+ (let ((table (make-char-table 'syntax-table '(2))))
(modify-syntax-entry ?\[ "(]" table)
(modify-syntax-entry ?\] ")[" table)
- (dolist (char '(?\{ ?\} ?\( ?\) ?\< ?\>) table)
- (modify-syntax-entry char " " table)))
- "Table used internally to pair only square brackets.
-Other brackets are treated as spaces.")
+ table)
+ "Table used internally to pair only square brackets.")
(defconst org-element--pair-curly-table
- (let ((table (make-syntax-table)))
+ (let ((table (make-char-table 'syntax-table '(2))))
(modify-syntax-entry ?\{ "(}" table)
(modify-syntax-entry ?\} "){" table)
- (dolist (char '(?\[ ?\] ?\( ?\) ?\< ?\>) table)
- (modify-syntax-entry char " " table)))
- "Table used internally to pair only curly brackets.
-Other brackets are treated as spaces.")
+ table)
+ "Table used internally to pair only curly brackets.")
(defun org-element--parse-paired-brackets (char)
"Parse paired brackets at point.
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index ea9f97a64b..06bbf7a019 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -1161,6 +1161,15 @@ Some other text
(org-test-with-temp-text "Text[fn::def]"
(org-element-map
(org-element-parse-buffer) 'footnote-reference 'identity)))
+ ;; Parse inline references with syntax loaded characters.
+ (should
+ (eq 'footnote-reference
+ (org-test-with-temp-text "Text[fn<point>::(def]"
+ (org-element-type (org-element-context)))))
+ (should
+ (eq 'footnote-reference
+ (org-test-with-temp-text "Text[fn<point>::\"def]"
+ (org-element-type (org-element-context)))))
;; Parse nested footnotes.
(should
(= 2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals-release/org bafeaf161c: element: Fix parsing of inline footnotes,
ELPA Syncer <=