[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org e7454ce: oc: Call select-style function with a cita
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org e7454ce: oc: Call select-style function with a citation argument |
Date: |
Wed, 11 Aug 2021 06:57:16 -0400 (EDT) |
branch: externals/org
commit e7454ceb79a51de8e79492fc30a1f4e2ab3414bd
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>
oc: Call select-style function with a citation argument
* lisp/oc.el (org-cite--keys-to-citation): New function.
(org-cite-make-insert-processor): Use new function. Change signature
of SELECT-STYLE.
Reported-by: "Bruce D'Arcus" <bdarcus@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2021-07/msg00638.html>
---
lisp/oc-basic.el | 2 +-
lisp/oc.el | 17 ++++++++++++++---
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/lisp/oc-basic.el b/lisp/oc-basic.el
index 7f4c6e7..f16eb25 100644
--- a/lisp/oc-basic.el
+++ b/lisp/oc-basic.el
@@ -682,7 +682,7 @@ present in the citation."
;;; "Insert" capability
-(defun org-cite-basic--complete-style ()
+(defun org-cite-basic--complete-style (_)
"Offer completion for style.
Return chosen style as a string."
(let* ((styles
diff --git a/lisp/oc.el b/lisp/oc.el
index 04e0c9b..5fcb9da 100644
--- a/lisp/oc.el
+++ b/lisp/oc.el
@@ -1449,6 +1449,16 @@ ARG is the prefix argument received when calling
`org-open-at-point', or nil."
(insert-before-markers string ";")
(insert-before-markers ";" string))))
+(defun org-cite--keys-to-citation (keys)
+ "Build a citation object from a list of citation KEYS.
+Citation keys are strings without the leading \"@\"."
+ (apply #'org-element-create
+ 'citation
+ nil
+ (mapcar (lambda (k)
+ (org-element-create 'citation-reference (list :key k)))
+ keys)))
+
(defun org-cite-make-insert-processor (select-key select-style)
"Build a function appropriate as an insert processor.
@@ -1457,8 +1467,8 @@ should return a citation key as a string, or nil.
Otherwise, the function
should return a list of such keys, or nil. The keys should not have any
leading
\"@\" character.
-SELECT-STYLE is a function called without any argument. It should return a
-style string, or nil.
+SELECT-STYLE is a function called with one argument, the citation object being
+edited or constructed so far. It should return a style string, or nil.
The return value is a function of two arguments: CONTEXT and ARG. CONTEXT is
either a citation reference, a citation object, or nil. ARG is a prefix
@@ -1541,7 +1551,8 @@ The generated function inserts or edit a citation at
point. More specifically,
(insert
(format "[cite%s:%s]"
(if arg
- (let ((style (funcall select-style)))
+ (let ((style (funcall select-style
+ (org-cite--keys-to-citation
keys))))
(if (org-string-nw-p style)
(concat "/" style)
""))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org e7454ce: oc: Call select-style function with a citation argument,
ELPA Syncer <=