0

例如,我们有emacs 小部件示例提供的缓冲区。所以我想获得将返回关联列表的函数'((widget-name .widget-value) ...)

就像是:

(widget-create 'push-button
               :notify 'get-widgets-alist
               "Get Widgets")
4

1 回答 1

1

我不完全确定你在问什么。在您的第一段中,您似乎要求一个函数将返回缓冲区中的所有小部件。但是你的例子表明你想要一个小部件通知功能。那么,你真正想要的是什么?

(require 'cl)
(defun get-widgets ()
  "Return a list of widgets in the current buffer."
  (save-excursion
    (goto-char (point-min))
    (loop while (not (eobp))
          for new = (widget-at)
          and old = nil then new
          when (and new (not (eq new old))) collect new
          do (goto-char (next-overlay-change (point))))))
于 2012-12-01T13:17:42.127 回答