Work around incompatibility between orgalist and yasnippet
authorAmin Bandali <bandali@gnu.org>
Sun, 26 Apr 2020 20:39:03 +0000 (16:39 -0400)
committerAmin Bandali <bandali@gnu.org>
Sun, 26 Apr 2020 20:39:03 +0000 (16:39 -0400)
* lisp/bandali-message.el: Disable yasnippet and enabled it after
enabling orgalist, to avoid the following infinite recursion error in
message-mode when auto-fill is triggered:

Debugger entered--Lisp error: (error "Variable binding depth exceeds max-specpdl-size")
  current-fill-column()
  orgalist--auto-fill(yas--auto-fill)
  apply(orgalist--auto-fill yas--auto-fill nil)
  #f(advice-wrapper :around yas--auto-fill orgalist--auto-fill)()
  yas--auto-fill()
  orgalist--auto-fill(yas--auto-fill)
  apply(orgalist--auto-fill yas--auto-fill nil)
  #f(advice-wrapper :around yas--auto-fill orgalist--auto-fill)()
  yas--auto-fill()
  ...
  orgalist--auto-fill(yas--auto-fill)
  apply(orgalist--auto-fill yas--auto-fill nil)
  #f(advice-wrapper :around yas--auto-fill orgalist--auto-fill)()
  yas--auto-fill()
  internal-auto-fill()
  self-insert-command(1 32)
  funcall-interactively(self-insert-command 1 32)
  call-interactively(self-insert-command nil nil)
  command-execute(self-insert-command)

lisp/bandali-message.el

index 750188c..4f3d551 100644 (file)
 
 (use-package orgalist
   :after message
-  :hook (message-mode . orgalist-mode))
+  :hook (message-mode . (lambda ()
+                          ;; work around incompatibility between
+                          ;; orgalist and yasnippet
+                          (yas-minor-mode -1)
+                          (orgalist-mode 1)
+                          (yas-minor-mode 1))))
 
 (provide 'bandali-message)
 ;;; bandali-message.el ends here