diff options
| author | 2026-09-12 02:09:22 -0700 | |
|---|---|---|
| committer | 2026-09-12 02:09:22 -0700 | |
| commit | fbfb6373160eaa49b6760828d7625ab998ca8ac1 (patch) | |
| tree | bd8198981799eb8cc5b536fa4bcc8271eeb05843 /oni | |
| parent | ab357d3c1032b64a5403b5b66d8bd781346dbdb6 (diff) | |
| download | new-dotfiles-fbfb6373160eaa49b6760828d7625ab998ca8ac1.tar.gz new-dotfiles-fbfb6373160eaa49b6760828d7625ab998ca8ac1.zip | |
emacs: Make snippet dirs part of configuration
Diffstat (limited to 'oni')
| -rw-r--r-- | oni/home/config/rincewind.scm | 2 | ||||
| -rw-r--r-- | oni/home/services/emacs.scm | 31 |
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" |
