[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 2b96501070 066/101: org-element: Simplify drawer an
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 2b96501070 066/101: org-element: Simplify drawer and property drawer regexps |
Date: |
Sat, 1 Jul 2023 09:59:13 -0400 (EDT) |
branch: externals/org
commit 2b96501070b608117ec62507dbbeab61cbc380d3
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
org-element: Simplify drawer and property drawer regexps
* lisp/org-element.el (org-element-drawer-re-nogroup): New constant
regexp matching drawer line without creating regexp groups.
(org-element--current-element): Use the new constant.
* lisp/org.el (org-drawer-regexp): Ensure that it is the same with
org-element version and mark for removal/alias.
(org-property-drawer-re): Simplify, removing unnecessary matching of
node property structures.
Link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63225#62
---
lisp/org-element.el | 7 +++++++
lisp/org.el | 17 +++++++++++++----
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/lisp/org-element.el b/lisp/org-element.el
index e6a34c1a94..d368653a5a 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -169,6 +169,13 @@ Style, if any, is located in match group 1.")
"Regexp matching opening or closing line of a drawer.
Drawer's name is located in match group 1.")
+(defconst org-element-drawer-re-nogroup
+ (rx line-start (0+ (any ?\s ?\t))
+ ":" (1+ (any ?- ?_ word)) ":"
+ (0+ (any ?\s ?\t)) line-end)
+ "Regexp matching opening or closing line of a drawer.
+Drawer's name is located in match group 1.")
+
(defconst org-element-dynamic-block-open-re
(rx line-start (0+ (any ?\s ?\t))
"#+BEGIN:" (0+ (any ?\s ?\t))
diff --git a/lisp/org.el b/lisp/org.el
index c8131ad41f..8346014623 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -594,7 +594,11 @@ Matched keyword is in group 1.")
;;;; Drawer
-(defconst org-drawer-regexp "^[ \t]*:\\(\\(?:\\w\\|[-_]\\)+\\):[ \t]*$"
+(defconst org-drawer-regexp
+ ;; FIXME: Duplicate of `org-element-drawer-re'.
+ (rx line-start (0+ (any ?\s ?\t))
+ ":" (group (1+ (any ?- ?_ word))) ":"
+ (0+ (any ?\s ?\t)) line-end)
"Matches first or last line of a hidden block.
Group 1 contains drawer's name or \"END\".")
@@ -617,9 +621,14 @@ Group 1 contains drawer's name or \"END\".")
"Matches an entire LOGBOOK drawer.")
(defconst org-property-drawer-re
- (concat "^[ \t]*:PROPERTIES:[ \t]*\n"
- "\\(?:[ \t]*:\\S-+:\\(?:[ \t].*\\)?[ \t]*\n\\)*?"
- "[ \t]*:END:[ \t]*$")
+ ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63225#62
+ (rx
+ ;; Drawer begin line.
+ bol (0+ (in " \t")) ":PROPERTIES:" (0+ (in " \t")) "\n"
+ ;; Node properties.
+ (*? (0+ (in " \t")) ":" (+ (not (in " \t\n:"))) ":" (* nonl) "\n")
+ ;; Drawer end line.
+ (0+ (in " \t")) ":END:" (0+ (in " \t")) eol)
"Matches an entire property drawer.")
(defconst org-clock-drawer-re
- [elpa] externals/org afbbebff3f 097/101: org-fold-core-get-folding-spec: Respect `org-fold-core-style', (continued)
- [elpa] externals/org afbbebff3f 097/101: org-fold-core-get-folding-spec: Respect `org-fold-core-style', ELPA Syncer, 2023/07/01
- [elpa] externals/org 80122a1204 008/101: org-element-ast: New function `org-element-property-2', ELPA Syncer, 2023/07/01
- [elpa] externals/org 5c05ac198a 069/101: testing: Test with and without cache in more cases, ELPA Syncer, 2023/07/01
- [elpa] externals/org f63000cca8 075/101: org-element--current-element: Use "nogroup" versions of regexps, ELPA Syncer, 2023/07/01
- [elpa] externals/org f93d855c51 077/101: Prefer `forward-line' over `beginning-of-line', ELPA Syncer, 2023/07/01
- [elpa] externals/org 924a64da39 013/101: org-element: Use the new org-element-ast library, ELPA Syncer, 2023/07/01
- [elpa] externals/org a7d1dfa171 027/101: Use `org-element-type-p', ELPA Syncer, 2023/07/01
- [elpa] externals/org 607c230d74 041/101: org-with-point-at: Accept syntax node as POM, ELPA Syncer, 2023/07/01
- [elpa] externals/org ec8f359bd6 046/101: org-in-commented-heading-p: Use org-element API, ELPA Syncer, 2023/07/01
- [elpa] externals/org 06aba04f75 057/101: org-agenda-get-deadlines: Switch to org-element API, ELPA Syncer, 2023/07/01
- [elpa] externals/org 2b96501070 066/101: org-element: Simplify drawer and property drawer regexps,
ELPA Syncer <=
- [elpa] externals/org a80efaf460 072/101: org-element-node-property-parser: Remove unnecessary regexp search, ELPA Syncer, 2023/07/01
- [elpa] externals/org 1c7c67b3c6 076/101: org-indent-drawer, org-indent-block: Remove unnecessary checks, ELPA Syncer, 2023/07/01
- [elpa] externals/org 21d3b888c6 087/101: org-element-create: Fix Emacs 28 compatibility, ELPA Syncer, 2023/07/01
- [elpa] externals/org 5a1dd94309 078/101: org-element: Avoid slow `end-of-line', ELPA Syncer, 2023/07/01
- [elpa] externals/org ea401fb1f4 084/101: org-agenda-ignore-properties: Bump :package-version, ELPA Syncer, 2023/07/01
- [elpa] externals/org 5ed3e1dfc3 081/101: org-refresh-category-properties: Do not check element cache, ELPA Syncer, 2023/07/01
- [elpa] externals/org 81e85bda2b 088/101: Fix Emacs 27 compatibility, ELPA Syncer, 2023/07/01
- [elpa] externals/org e18263fceb 091/101: org-element--substring: Fix when buffer is narrowed, ELPA Syncer, 2023/07/01
- [elpa] externals/org 759676b308 092/101: org-fold-core--isearch-show: Do not fully rely on `point', ELPA Syncer, 2023/07/01
- [elpa] externals/org f2dd1eea41 093/101: org-find-open-clocks: Fix false positives, ELPA Syncer, 2023/07/01