summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--devel.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/bd--devel.el')
-rw-r--r--.config/emacs/modules/bd--devel.el27
1 files changed, 27 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el
index d023223..e846a93 100644
--- a/.config/emacs/modules/bd--devel.el
+++ b/.config/emacs/modules/bd--devel.el
@@ -116,6 +116,33 @@
(require 'geiser-mode)
(require 'geiser-guile)
+(defcustom doc-dirs '()
+ "Defines a buffer-local list of directories to find
+documentation."
+ :type 'list
+ :group 'docs
+ :safe 'listp
+ :local t)
+
+(defun bd/selector-doc (dir)
+ "List all HTML files in a directory (recursive), and
+display for opening with browser."
+ (selector-source-create
+ dir
+ :candidates
+ (-map
+ (lambda (d) (selector-candidate-create (file-relative-name d dir) :value d))
+ (directory-files-recursively dir ".html"))
+ :actions
+ (list (lambda (x) (eww-open-file x)))))
+
+(defun bd/doc-finder ()
+ (interactive)
+ (unwind-protect
+ (selector
+ (append (-map (lambda (x) (bd/selector-doc x)) doc-dirs)
+ (list (bd/selector-search))))))
+
(use-package eglot
:defer t
:hook ((c-mode . eglot-ensure)