diff --git a/modules/feature/snippets/autoload/settings.el b/modules/feature/snippets/autoload/settings.el index f02d5f187..32386f789 100644 --- a/modules/feature/snippets/autoload/settings.el +++ b/modules/feature/snippets/autoload/settings.el @@ -1,13 +1,16 @@ ;;; feature/snippets/autoload/settings.el -*- lexical-binding: t; -*- ;;;###autodef -(defun set-yas-minor-mode! (mode) - "Register a minor MODE with yasnippet so it can have its own snippets -category, if the folder exists." - (after! yasnippet - (let ((fn (intern (format "+snippets|register-%s" mode)))) - (fset fn (lambda () (+snippets|enable-project-modes mode))) - (add-hook (intern (format "%s-hook" mode)) fn)))) +(defun set-yas-minor-mode! (modes) + "Register minor MODES (one mode symbol or a list of them) with yasnippet so it +can have its own snippets category, if the folder exists." + (let ((fn (intern (format "+snippets|register-%s" mode)))) + (fset fn (lambda () + (make-local-variable 'yas--extra-modes) + (dolist (mode (doom-enlist modes)) + (add-to-list 'yas--extra-modes mode nil #'eq)) + (yas--load-pending-jits))) + (add-hook (intern (format "%s-hook" mode)) fn))) ;;;###autoload (def-setting! :yas-minor-mode (mode)