summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README1
-rw-r--r--README.md1
-rw-r--r--bog.el12
3 files changed, 14 insertions, 0 deletions
diff --git a/README b/README
index 7899403..47fad96 100644
--- a/README
+++ b/README
@@ -105,6 +105,7 @@ Other useful functions include
- =bog-search-notes-for-citekey=
- =bog-sort-topic-headings-in-buffer=
- =bog-sort-topic-headings-in-notes=
+- =bog-insert-heading-citekey=
* Variables
diff --git a/README.md b/README.md
index 07da545..76191ea 100644
--- a/README.md
+++ b/README.md
@@ -94,6 +94,7 @@ Other useful functions include
- `bog-search-notes-for-citekey`
- `bog-sort-topic-headings-in-buffer`
- `bog-sort-topic-headings-in-notes`
+- `bog-insert-heading-citekey`
# Variables
diff --git a/bog.el b/bog.el
index 78f16df..8d6b10f 100644
--- a/bog.el
+++ b/bog.el
@@ -742,6 +742,17 @@ Sorting is only done if the heading's level matches
(not (bog-citekey-from-heading)))
(org-sort-entries nil sorting-type))))
+(defun bog-insert-heading-citekey (&optional current-buffer)
+ "Select a citekey to insert at point.
+By default, offer heading citekeys from all files. With prefix
+argument CURRENT-BUFFER, limit to heading citekeys from the
+current buffer."
+ (interactive "P")
+ (let ((citekey-func (if current-buffer
+ 'bog-heading-citekeys-in-buffer
+ 'bog-all-heading-citekeys)))
+ (insert (bog-select-citekey (funcall citekey-func)))))
+
;;; Font-lock
@@ -862,6 +873,7 @@ chosen."
(define-key prefix-map "r" 'bog-rename-staged-file-to-citekey)
(define-key prefix-map "s" 'bog-search-notes)
(define-key prefix-map "w" 'bog-refile)
+ (define-key prefix-map "y" 'bog-insert-heading-citekey)
(define-key map bog-keymap-prefix prefix-map))
map)
"Keymap for Bog.")