aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2026-09-12 02:09:22 -0700
committerGravatar Tom Willemse2026-09-12 02:09:22 -0700
commitfbfb6373160eaa49b6760828d7625ab998ca8ac1 (patch)
treebd8198981799eb8cc5b536fa4bcc8271eeb05843
parentab357d3c1032b64a5403b5b66d8bd781346dbdb6 (diff)
downloadnew-dotfiles-fbfb6373160eaa49b6760828d7625ab998ca8ac1.tar.gz
new-dotfiles-fbfb6373160eaa49b6760828d7625ab998ca8ac1.zip
emacs: Make snippet dirs part of configuration
-rw-r--r--oni/home/config/rincewind.scm2
-rw-r--r--oni/home/services/emacs.scm31
2 files changed, 19 insertions, 14 deletions
diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm
index 7094468..1f58442 100644
--- a/oni/home/config/rincewind.scm
+++ b/oni/home/config/rincewind.scm
@@ -241,6 +241,8 @@
(local-file "../services/emacs/oni-helpful.el")))))
(yasnippet-capf
(home-emacs-yasnippet-capf-configuration))
+ (yasnippet-snippet-directories
+ '("emacs/.emacs.d/snippets"))
(envrc
(home-emacs-envrc-configuration))
(configurations
diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm
index 7d0c168..4e142c1 100644
--- a/oni/home/services/emacs.scm
+++ b/oni/home/services/emacs.scm
@@ -261,20 +261,23 @@
(stop #~(make-kill-destructor)))))
(define (home-emacs-configuration-collect-snippets config)
- (let ((snippets (file-system-tree "emacs/.emacs.d/snippets")))
- (apply append (let loop ((prefix (car snippets))
- (current-file (car snippets))
- (files (cddr snippets)))
- (if (null? files)
- (list (string-append ".emacs.d/" prefix)
- (local-file (string-append "emacs/.emacs.d/" prefix)
- (if (string-prefix? "." current-file)
- (string-drop current-file 1)
- current-file)))
- (map (lambda (f) (loop (string-append prefix "/" (car f))
- (car f)
- (cddr f)))
- files))))))
+ (define (collect-snippets-from-dir dir)
+ (let* ((snippets (file-system-tree dir))
+ (base-prefix (string-drop-right dir (string-length (car snippets)))))
+ (apply append (let loop ((prefix (car snippets))
+ (current-file (car snippets))
+ (files (cddr snippets)))
+ (if (null? files)
+ (list (string-append ".emacs.d/" prefix)
+ (local-file (string-append base-prefix prefix)
+ (if (string-prefix? "." current-file)
+ (string-drop current-file 1)
+ current-file)))
+ (map (lambda (f) (loop (string-append prefix "/" (car f))
+ (car f)
+ (cddr f)))
+ files))))))
+ (apply append (map collect-snippets-from-dir (home-emacs-configuration-yasnippet-snippet-directories config))))
(define (home-emacs-config-files config)
`((".emacs.d/init.el"