[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 0b7b34a 127/177: Closes #492, closes #494: Consider defali
From: |
João Távora |
Subject: |
[elpa] master 0b7b34a 127/177: Closes #492, closes #494: Consider defalias when calculating parent modes |
Date: |
Sat, 28 Mar 2015 15:41:24 +0000 |
branch: master
commit 0b7b34a333ff5fbb279f57980d6cc983e9a5d8c9
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Closes #492, closes #494: Consider defalias when calculating parent modes
* yasnippet-tests.el (issue-492-and-494): New test.
* yasnippet.el (yas--modes-to-activate): Consider each mode's
symbol-function as a neighbour in case it's a symbol as well.
---
yasnippet-tests.el | 18 ++++++++++++++++++
yasnippet.el | 11 ++++++-----
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/yasnippet-tests.el b/yasnippet-tests.el
index c6b878d..38aefc1 100644
--- a/yasnippet-tests.el
+++ b/yasnippet-tests.el
@@ -426,6 +426,24 @@ TODO: correct this bug!"
(should (= (length expected)
(length observed))))))))
+(ert-deftest issue-492-and-494 ()
+ (defalias 'yas--phony-c-mode 'c-mode)
+ (define-derived-mode yas--test-mode yas--phony-c-mode "Just a test mode")
+ (yas-with-snippet-dirs '((".emacs.d/snippets"
+ ("yas--test-mode")))
+ (yas-reload-all)
+ (with-temp-buffer
+ (let* ((major-mode 'yas--test-mode)
+ (expected `(c-mode
+ ,@(if (fboundp 'prog-mode)
+ '(prog-mode))
+ yas--phony-c-mode
+ yas--test-mode))
+ (observed (yas--modes-to-activate)))
+ (should (null (cl-set-exclusive-or expected
observed)))
+ (should (= (length expected)
+ (length observed)))))))
+
(defun yas--basic-jit-loading-1 ()
(with-temp-buffer
(should (= 4 (hash-table-count yas--scheduled-jit-loads)))
diff --git a/yasnippet.el b/yasnippet.el
index d0129b9..39b4c0e 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -699,11 +699,12 @@ and friends."
(push mode explored)
(cons mode
(loop for neighbour
- in (remove nil (cons (get mode
- 'derived-mode-parent)
- (gethash mode yas--parents)))
-
- unless (memq neighbour explored)
+ in (cl-list* (get mode 'derived-mode-parent)
+ (ignore-errors (symbol-function mode))
+ (gethash mode yas--parents))
+ when (and neighbour
+ (not (memq neighbour explored))
+ (symbolp neighbour))
append (funcall dfs neighbour explored)))))
(remove-duplicates (append yas--extra-modes
(funcall dfs major-mode)))))
- [elpa] master f176027 118/177: Restore backquotes lost in rst -> org translation, (continued)
- [elpa] master f176027 118/177: Restore backquotes lost in rst -> org translation, João Távora, 2015/03/28
- [elpa] master 580e5c6 116/177: Don't lose error message when yas-good-grace is t, João Távora, 2015/03/28
- [elpa] master 4c16eae 119/177: Document uuid directive, João Távora, 2015/03/28
- [elpa] master fe288a1 121/177: Fix publishing with org 7.9, João Távora, 2015/03/28
- [elpa] master e1ed662 125/177: Allow jit loading interactively, João Távora, 2015/03/28
- [elpa] master e53ec1e 124/177: Make snippets submodule track master, update it, João Távora, 2015/03/28
- [elpa] master f98c527 123/177: Replace text -> yas-text in documentation, João Távora, 2015/03/28
- [elpa] master 763f5fa 122/177: Closes #474: fix more cc-mode font-lock conflicts, João Távora, 2015/03/28
- [elpa] master 2b24aea 126/177: Merge pull request #493 from npostavs/ijit, João Távora, 2015/03/28
- [elpa] master 280ece2 131/177: Add yas-shortest-key-until-whitespace, João Távora, 2015/03/28
- [elpa] master 0b7b34a 127/177: Closes #492, closes #494: Consider defalias when calculating parent modes,
João Távora <=
- [elpa] master 7761dee 128/177: Closes #497: Allow functions as elements in yas-key-syntaxes, João Távora, 2015/03/28
- [elpa] master faed106 129/177: * yasnippet.el (yas-key-syntaxes): Improve documentation., João Távora, 2015/03/28
- [elpa] master de34d91 130/177: Closes #470, handle non-whitespace newlines, João Távora, 2015/03/28
- [elpa] master 6b04dad 120/177: Document type directive, João Távora, 2015/03/28
- [elpa] master 10ecde1 132/177: Pass start point to yas-key-syntaxes functions, João Távora, 2015/03/28
- [elpa] master 47a3d5f 134/177: Fix yas-key-syntaxes example functions docstrings., João Távora, 2015/03/28
- [elpa] master d982b70 135/177: Fix edge case in yas-longest-key-from-whitespace, João Távora, 2015/03/28
- [elpa] master 5d10b5d 133/177: Add yas-longest-key-from-whitespace, João Távora, 2015/03/28
- [elpa] master f7ef023 137/177: Prevent disabling errors from recent `yas-current-syntaxes` logic, João Távora, 2015/03/28
- [elpa] master 1d4618b 138/177: Closes #504: Correctly discover buffers needing snippets immediately, João Távora, 2015/03/28