From e23a80177a9c434174ed8a5955c296d7828a1060 Mon Sep 17 00:00:00 2001 From: Vito Van Date: Tue, 2 Apr 2024 13:47:04 +0800 Subject: [PATCH] (yas--all-parents): delete-dups for fundamental-mode Before this commit, (yas--all-parents 'lisp-mode) would return: `(lisp-mode lisp-data-mode prog-mode fundamental-mode fundamental-mode)` which would cause duplicated entries when prompting, if the snippet were for fundamental-mode. --- yasnippet.el | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/yasnippet.el b/yasnippet.el index fa36be7..0d52a96 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -848,18 +848,19 @@ which decides on the snippet to expand.") (cons (if (eq mode 'fundamental-mode) () (append (cdr ap) '(fundamental-mode))) extras)))) - (cons mode - (yas--merge-ordered-lists - (mapcar #'yas--all-parents - (remq nil - `(,(or (get mode 'derived-mode-parent) - ;; Consider `fundamental-mode' - ;; as ultimate ancestor. - 'fundamental-mode) - ,(let ((alias (symbol-function mode))) - (when (symbolp alias) alias)) - ,@(get mode 'derived-mode-extra-parents) - ,@(gethash mode yas--parents))))))))) + (delete-dups + (cons mode + (yas--merge-ordered-lists + (mapcar #'yas--all-parents + (remq nil + `(,(or (get mode 'derived-mode-parent) + ;; Consider `fundamental-mode' + ;; as ultimate ancestor. + 'fundamental-mode) + ,(let ((alias (symbol-function mode))) + (when (symbolp alias) alias)) + ,@(get mode 'derived-mode-extra-parents) + ,@(gethash mode yas--parents)))))))))) (dolist (parent all-parents) (cl-pushnew mode (get parent 'yas--cached-children))) (put mode 'yas--all-parents all-parents)))))