2020-04-09 16:47:48 -04:00
|
|
|
;;; tools/biblio/config.el -*- lexical-binding: t; -*-
|
|
|
|
|
2021-11-22 14:21:19 +01:00
|
|
|
;;
|
|
|
|
;;; `org-cite'
|
2021-10-27 17:33:04 -04:00
|
|
|
|
2024-03-03 23:55:40 -06:00
|
|
|
(after! oc
|
2021-10-27 17:33:04 -04:00
|
|
|
(setq org-cite-global-bibliography
|
2022-08-07 12:24:14 +02:00
|
|
|
(ensure-list
|
2021-11-22 14:21:19 +01:00
|
|
|
(or (bound-and-true-p citar-bibliography)
|
|
|
|
(bound-and-true-p bibtex-completion-bibliography)))
|
|
|
|
;; Setup export processor; default csl/citeproc-el, with biblatex for
|
2021-10-27 17:33:04 -04:00
|
|
|
;; latex
|
2021-11-22 14:21:19 +01:00
|
|
|
org-cite-export-processors '((latex biblatex) (t csl))
|
2024-03-03 23:55:40 -06:00
|
|
|
org-support-shift-select t)
|
|
|
|
|
|
|
|
(require 'oc-biblatex))
|
|
|
|
|
|
|
|
;; oc-csl requires citeproc, which requires the top-level org, so loading oc-csl
|
|
|
|
;; after oc interferes with incremental loading of Org
|
|
|
|
(after! org (require 'oc-csl))
|
2021-10-27 17:33:04 -04:00
|
|
|
|
|
|
|
|
2021-11-23 13:14:38 +01:00
|
|
|
(use-package! citar
|
2022-08-12 20:29:19 +02:00
|
|
|
:when (modulep! :completion vertico)
|
2024-03-03 23:55:40 -06:00
|
|
|
:defer t
|
|
|
|
:init
|
2021-11-23 13:14:38 +01:00
|
|
|
(setq org-cite-insert-processor 'citar
|
|
|
|
org-cite-follow-processor 'citar
|
2023-03-23 19:51:55 -04:00
|
|
|
org-cite-activate-processor 'citar)
|
2024-03-03 23:55:40 -06:00
|
|
|
|
|
|
|
:config
|
2023-03-23 19:51:55 -04:00
|
|
|
(when (modulep! :completion vertico +icons)
|
|
|
|
(defvar citar-indicator-files-icons
|
|
|
|
(citar-indicator-create
|
2023-09-14 00:03:55 +01:00
|
|
|
:symbol (nerd-icons-faicon
|
|
|
|
"nf-fa-file_o"
|
|
|
|
:face 'nerd-icons-green
|
2023-03-23 19:51:55 -04:00
|
|
|
:v-adjust -0.1)
|
|
|
|
:function #'citar-has-files
|
|
|
|
:padding " " ; need this because the default padding is too low for these icons
|
|
|
|
:tag "has:files"))
|
|
|
|
(defvar citar-indicator-links-icons
|
|
|
|
(citar-indicator-create
|
2023-09-14 00:03:55 +01:00
|
|
|
:symbol (nerd-icons-faicon
|
|
|
|
"nf-fa-link"
|
|
|
|
:face 'nerd-icons-orange
|
2023-03-23 19:51:55 -04:00
|
|
|
:v-adjust 0.01)
|
|
|
|
:function #'citar-has-links
|
|
|
|
:padding " "
|
|
|
|
:tag "has:links"))
|
|
|
|
(defvar citar-indicator-notes-icons
|
|
|
|
(citar-indicator-create
|
2023-09-14 00:03:55 +01:00
|
|
|
:symbol (nerd-icons-codicon
|
|
|
|
"nf-cod-note"
|
|
|
|
:face 'nerd-icons-blue
|
2023-03-23 19:51:55 -04:00
|
|
|
:v-adjust -0.3)
|
|
|
|
:function #'citar-has-notes
|
|
|
|
:padding " "
|
|
|
|
:tag "has:notes"))
|
|
|
|
(defvar citar-indicator-cited-icons
|
|
|
|
(citar-indicator-create
|
2023-09-14 00:03:55 +01:00
|
|
|
:symbol (nerd-icons-faicon
|
|
|
|
"nf-fa-circle_o"
|
|
|
|
:face 'nerd-icon-green)
|
2023-03-23 19:51:55 -04:00
|
|
|
:function #'citar-is-cited
|
|
|
|
:padding " "
|
|
|
|
:tag "is:cited"))
|
|
|
|
(setq citar-indicators
|
|
|
|
(list citar-indicator-files-icons
|
|
|
|
citar-indicator-links-icons
|
|
|
|
citar-indicator-notes-icons
|
|
|
|
citar-indicator-cited-icons))))
|
2021-11-23 13:14:38 +01:00
|
|
|
|
2021-10-27 17:33:04 -04:00
|
|
|
|
2021-11-22 14:21:19 +01:00
|
|
|
;;
|
|
|
|
;;; Third-party
|
2021-10-27 17:33:04 -04:00
|
|
|
|
2024-03-06 00:26:17 -05:00
|
|
|
(use-package! citar-embark
|
|
|
|
:defer t
|
|
|
|
:init
|
|
|
|
(after! (citar embark)
|
|
|
|
(citar-embark-mode)))
|
|
|
|
|
|
|
|
|
|
|
|
(use-package! citar-org-roam
|
|
|
|
:defer t
|
|
|
|
:init
|
|
|
|
(after! (citar org-roam)
|
|
|
|
(citar-org-roam-mode)))
|
|
|
|
|
|
|
|
|
2021-11-22 14:21:19 +01:00
|
|
|
(use-package! bibtex-completion
|
2022-08-12 20:29:19 +02:00
|
|
|
:when (or (modulep! :completion ivy)
|
|
|
|
(modulep! :completion helm))
|
2021-11-22 14:21:19 +01:00
|
|
|
:defer t
|
|
|
|
:config
|
|
|
|
(setq bibtex-completion-additional-search-fields '(keywords)
|
|
|
|
;; Tell bibtex-completion to look at the File field of the bibtex to
|
|
|
|
;; figure out which pdf to open:
|
|
|
|
bibtex-completion-pdf-field "file"))
|
|
|
|
|
|
|
|
|
|
|
|
(use-package! ivy-bibtex
|
2022-08-12 20:29:19 +02:00
|
|
|
:when (modulep! :completion ivy)
|
2021-11-22 14:21:19 +01:00
|
|
|
:defer t
|
|
|
|
:config
|
|
|
|
(add-to-list 'ivy-re-builders-alist '(ivy-bibtex . ivy--regex-plus)))
|