You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.5 KiB
69 lines
2.5 KiB
;;; org-roam-macs.el --- Roam Research replica with Org-mode -*- coding: utf-8; lexical-binding: t -*- |
|
|
|
;; Copyright © 2020 Jethro Kuan <jethrokuan95@gmail.com> |
|
|
|
;; Author: Jethro Kuan <jethrokuan95@gmail.com> |
|
;; URL: https://github.com/org-roam/org-roam |
|
;; Keywords: org-mode, roam, convenience |
|
;; Version: 1.1.0 |
|
;; Package-Requires: ((emacs "26.1") (dash "2.13") (f "0.17.2") (s "1.12.0") (org "9.3") (emacsql "3.0.0") (emacsql-sqlite "1.0.0")) |
|
|
|
;; This file is NOT part of GNU Emacs. |
|
|
|
;; This program is free software; you can redistribute it and/or modify |
|
;; it under the terms of the GNU General Public License as published by |
|
;; the Free Software Foundation; either version 3, or (at your option) |
|
;; any later version. |
|
;; |
|
;; This program is distributed in the hope that it will be useful, |
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
;; GNU General Public License for more details. |
|
;; |
|
;; You should have received a copy of the GNU General Public License |
|
;; along with GNU Emacs; see the file COPYING. If not, write to the |
|
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
|
;; Boston, MA 02110-1301, USA. |
|
|
|
;;; Commentary: |
|
;; |
|
;; This library implements macros and utility functions used throughout |
|
;; org-roam. |
|
;; |
|
;; |
|
;;; Code: |
|
;;;; Library Requires |
|
|
|
(defvar org-roam-verbose) |
|
|
|
(defmacro org-roam--with-temp-buffer (&rest body) |
|
"Execute BODY within a temp buffer. |
|
Like `with-temp-buffer', but propagates `org-roam-directory'." |
|
(declare (indent 0) (debug t)) |
|
(let ((current-org-roam-directory (make-symbol "current-org-roam-directory"))) |
|
`(let ((,current-org-roam-directory org-roam-directory)) |
|
(with-temp-buffer |
|
(let ((org-roam-directory ,current-org-roam-directory)) |
|
,@body))))) |
|
|
|
(defmacro org-roam--with-template-error (templates &rest body) |
|
"Eval BODY, and point to TEMPLATES on error. |
|
Provides more informative error messages so that users know where |
|
to look. |
|
|
|
\(fn TEMPLATES BODY...)" |
|
(declare (debug (form body)) (indent 1)) |
|
`(condition-case err |
|
,@body |
|
(error (user-error "%s. Please adjust `%s'" |
|
(error-message-string err) |
|
,templates)))) |
|
|
|
(defun org-roam-message (format-string &rest args) |
|
"Pass FORMAT-STRING and ARGS to `message' when `org-roam-verbose' is t." |
|
(when org-roam-verbose |
|
(apply #'message `(,(concat "(org-roam) " format-string) ,@args)))) |
|
|
|
(provide 'org-roam-macs) |
|
|
|
;;; org-roam-macs.el ends here
|
|
|