-
Notifications
You must be signed in to change notification settings - Fork 53
Configuration
This is a feature included out-of-box in ivy-bibtex and helm-bibtex, but I have elected to leave it out for now at least, hoping we can find a better solution.
The README includes a section on this. If you have other setups you use, put them here.
Note: it seems to me a solution based on watchexec might be better/easier. I just noticed straight.el uses this in its watcher script. For example, this should work if you are using the emacs daemon, running it from the directory that holds your bib files, and you want all of them watched:
watchexec -e bib emacsclient -u --eval "(bibtex-actions-refresh)"Here's a possible elisp script. Feel to improve this (there may be some ideas in this file?):
(defun my/add-bib-watches (paths)
"Add path watches for all PATHS."
;; TODO add message for success/failure; what about removal?
(let ((flat-paths (-flatten paths)))
(cl-loop
for path in flat-paths
do
(file-notify-add-watch
path '(change) 'bibtex-actions-refresh))))
(defvar my/bib-paths
(list
bibtex-completion-bibliography
bibtex-completion-notes-path
bibtex-completion-library-path
"My bib paths."))
;; Add watches for all bib paths.
(my/add-bib-watches my/bib-paths)Note: bibtex-comoletion sets up path watches for the bib file(s) automatically, and this currently cannot be turned off. This means if you use ivy-bibtex or helm-bibtex along with bibtex-actions for some reason, it's possible for you to end up with more than one call of bibtex-comoletion-candidates on a path change.
(setq bibtex-actions-template
'((t . "${=has-pdf=:1} ${=has-note=:1} ${author:24} ${title:64} ${year:4}")))TODO
TODO
Bind the keymap to embark-act like so:
(add-to-list 'embark-keymap-alist '(bibtex . bibtex-actions-map))You have, again, options.
You can setup the default prompter per the embark README.
This commit also adds an option to use prefix completion.
This variable will configure which-key to sort the bindings so the bibtex-action ones are grouped first.
(setq which-key-sort-order 'which-key-description-order)For marking candidates in the embark-collect buffer.
TODO Still need code to bind this to embark.
This allows you to bypass the embark-act command and invoke actions directly within a collect buffer.