diff --git a/docs/modules.org b/docs/modules.org index c93877eaf..abe60842d 100644 --- a/docs/modules.org +++ b/docs/modules.org @@ -122,7 +122,7 @@ Modules that bring support for a language or group of languages to Emacs. + [[file:../modules/lang/nim/README.org][nim]] - TODO + nix - TODO + [[file:../modules/lang/ocaml/README.org][ocaml]] =+lsp= - TODO -+ [[file:../modules/lang/org/README.org][org]] =+brain +dragndrop +gnuplot +hugo +ipython +journal +jupyter +pandoc +pomodoro +present= - TODO ++ [[file:../modules/lang/org/README.org][org]] =+brain +dragndrop +gnuplot +hugo +ipython +journal +jupyter +pandoc +pomodoro +present +roam= - TODO + [[file:../modules/lang/perl/README.org][perl]] - TODO + [[file:../modules/lang/php/README.org][php]] =+lsp= - TODO + plantuml - TODO diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index bacc14e55..027fa023e 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -481,6 +481,14 @@ :desc "Org export to clipboard" "y" #'+org/export-to-clipboard :desc "Org export to clipboard as RTF" "Y" #'+org/export-to-clipboard-as-rich-text + (:when (featurep! :lang org +roam) + (:prefix ("r" . "roam") + :desc "Org Roam" "r" #'org-roam + :desc "Switch to buffer" "b" #'org-roam-switch-to-buffer + :desc "Insert" "i" #'org-roam-insert + :desc "Find file" "f" #'org-roam-find-file + :desc "Show graph" "g" #'org-roam-show-graph)) + (:when (featurep! :lang org +journal) (:prefix ("j" . "journal") :desc "New Entry" "j" #'org-journal-new-entry diff --git a/modules/lang/org/README.org b/modules/lang/org/README.org index 59c3968cb..284f98c5e 100644 --- a/modules/lang/org/README.org +++ b/modules/lang/org/README.org @@ -67,6 +67,7 @@ https://www.mfoot.com/blog/2015/11/22/literate-emacs-configuration-with-org-mode + =+pomodoro= Enables a pomodoro timer for clocking time on tasks. + =+present= Enables integration with reveal.js, beamer and org-tree-slide, so Emacs can be used for presentations. ++ =+roam= Enables org-roam integration. ** Plugins + [[https://github.com/hniksic/emacs-htmlize][htmlize]] diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index ca68bd125..a5b044a65 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -936,6 +936,7 @@ compelling reason, so..." (if (featurep! +jupyter) (load! "contrib/jupyter")) (if (featurep! +pomodoro) (load! "contrib/pomodoro")) (if (featurep! +present) (load! "contrib/present")) + (if (featurep! +roam) (load! "contrib/roam")) ;; In case the user has eagerly loaded org from their configs (when (and (featurep 'org) diff --git a/modules/lang/org/contrib/roam.el b/modules/lang/org/contrib/roam.el new file mode 100644 index 000000000..f37ab0de4 --- /dev/null +++ b/modules/lang/org/contrib/roam.el @@ -0,0 +1,36 @@ +;;; lang/org/contrib/roam.el -*- lexical-binding: t; -*- +;;;###if (featurep! +roam) + +(use-package! org-roam + :commands (org-roam + org-roam-insert + org-roam-find-file + org-roam-switch-to-buffer + org-roam-show-graph) + :init + (map! :after org + :map org-mode-map + :localleader + :prefix ("m" . "org-roam") + "m" #'org-roam + "i" #'org-roam-insert + "b" #'org-roam-switch-to-buffer + "f" #'org-roam-find-file + "g" #'org-roam-show-graph + "i" #'org-roam-insert) + :config + (setq org-roam-directory org-directory) + (org-roam-mode +1)) + + +;; Since the org module lazy loads org-protocol (waits until an org URL is +;; detected), we can safely chain `org-roam-protocol' to it. +(use-package! org-roam-protocol + :after org-protocol) + + +(use-package company-org-roam + :when (featurep! :completion company) + :after org-roam + :config + (set-company-backend! 'org-mode '(company-org-roam company-yasnippet company-dabbrev))) diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index 11602b2a5..38ae00b77 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -73,6 +73,10 @@ (package! ox-reveal :pin "ea8b502170")) (when (featurep! +journal) (package! org-journal :pin "664c08e12c")) +(when (featurep! +roam) + (package! org-roam :pin "b86d2c8637") + (when (featurep! :completion company) + (package! company-org-roam :pin "0d14bf56f5"))) ;;; Babel (package! ob-async :pin "80a30b96a0")