[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 78c4502: oc: Allow inserting citations in captions
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 78c4502: oc: Allow inserting citations in captions |
Date: |
Wed, 28 Jul 2021 05:57:12 -0400 (EDT) |
branch: externals/org
commit 78c450247b4a04a19519714c7175d1186bd7ea63
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>
oc: Allow inserting citations in captions
* lisp/oc.el (org-cite--allowed-p): Allow inserting citations in captions.
* testing/lisp/test-oc.el (test-org-cite/insert-capability): Add test.
---
lisp/oc.el | 22 +++++++++++++++++++---
testing/lisp/test-oc.el | 12 +++++++++++-
2 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/lisp/oc.el b/lisp/oc.el
index 1d704fb..4e21a09 100644
--- a/lisp/oc.el
+++ b/lisp/oc.el
@@ -58,6 +58,7 @@
(require 'org-compat)
(require 'org-macs)
+(declare-function org-at-heading-p "org" (&optional _))
(declare-function org-collect-keywords "org" (keywords &optional unique
directory))
(declare-function org-element-adopt-elements "org-element" (parent &rest
children))
@@ -73,6 +74,7 @@
(declare-function org-element-normalize-string "org-element" (s))
(declare-function org-element-parse-buffer "org-element" (&optional
granularity visible-only))
(declare-function org-element-parse-secondary-string "org-element" (string
restriction &optional parent))
+(declare-function org-element-context "org-element" (&optional element))
(declare-function org-element-property "org-element" (property element))
(declare-function org-element-put-property "org-element" (element property
value))
(declare-function org-element-restriction "org-element" (element))
@@ -85,9 +87,11 @@
(declare-function org-export-get-previous-element "org-export" (blob info
&optional n))
(declare-function org-export-raw-string "org-export" (s))
+(defvar org-complex-heading-regexp)
(defvar org-element-all-objects)
(defvar org-element-citation-key-re)
(defvar org-element-citation-prefix-re)
+(defvar org-element-parsed-keywords)
;;; Constants
@@ -1363,12 +1367,24 @@ ARG is the prefix argument received when calling
`org-open-at-point', or nil."
;;; Meta-command for citation insertion (insert capability)
(defun org-cite--allowed-p (context)
"Non-nil when a citation can be inserted at point."
- (let* ((type (org-element-type context)))
+ (let ((type (org-element-type context)))
(cond
- ;; No citation in attributes.
+ ;; No citation in attributes, except in parsed ones.
+ ;;
+ ;; XXX: Inserting citation in a secondary value is not allowed
+ ;; yet. Is it useful?
((let ((post (org-element-property :post-affiliated context)))
(and post (< (point) post)))
- nil)
+ (let ((case-fold-search t))
+ (looking-back
+ (rx-to-string
+ `(seq line-start (0+ (any " \t"))
+ "#+"
+ (or ,@org-element-parsed-keywords)
+ ":"
+ (0+ nonl))
+ t)
+ (line-beginning-position))))
;; Paragraphs and blank lines at top of document are fine.
((memq type '(nil paragraph)))
;; So are contents of verse blocks.
diff --git a/testing/lisp/test-oc.el b/testing/lisp/test-oc.el
index 16e67ac..80831f2 100644
--- a/testing/lisp/test-oc.el
+++ b/testing/lisp/test-oc.el
@@ -1768,7 +1768,17 @@ arguments. Replace citation with \"@\" character in the
output."
(org-cite-insert-processor 'foo))
(org-cite-register-processor 'foo
:insert (lambda (_ _) (throw :exit 'success)))
- (call-interactively #'org-cite-insert)))))
+ (call-interactively #'org-cite-insert))))
+ ;; Allow inserting citations in captions.
+ (should
+ (eq 'success
+ (catch :exit
+ (org-test-with-temp-text "#+caption: <point>\n| table |"
+ (let ((org-cite--processors nil)
+ (org-cite-insert-processor 'foo))
+ (org-cite-register-processor 'foo
+ :insert (lambda (_ _) (throw :exit 'success)))
+ (call-interactively #'org-cite-insert)))))))
(provide 'test-oc)
;;; test-oc.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 78c4502: oc: Allow inserting citations in captions,
ELPA Syncer <=