Кликабельный текст в минибуфере emacs - PullRequest
2 голосов
/ 09 декабря 2011

Как я могу поместить кликабельный текст в минибуфер emacs?

Например, этот код создает кликабельный текст в текстовом буфере, и он прекрасно работает для меня.

(let ((map (make-sparse-keymap)))
     (define-key map (kbd "<down-mouse-1>") 
            '(lambda() (interactive) (message-box "it works!")))
     (add-text-properties 1 5 `(keymap, map
                                mouse-face highlight)))

Однако подобный код для минибуфера работает некорректно

     [...]
     (with-current-buffer (window-buffer (minibuffer-window))
       (message "link")
       (add-text-properties (point-at-bol) (point-at-eol) 
                            `(keymap, map
                              mouse-face highlight))))

В результате текст помещается в минибуфер без этих свойств. Я тоже пробовал (уточняю, но результат тот же.

     [...]
     (message (propertize "link" 
                          'mouse-face 'highlight
                          'keymap map)))

Что с этим не так?

Спасибо

1 Ответ

2 голосов
/ 09 декабря 2011
  1. message пишет в эхо-область, а не в минибуфер.

  2. Минибуфер не активен. Даже если вы используете insert вместо message, вы не увидите там текст.

Что вы действительно пытаетесь сделать? В каком контексте вы хотите вставить такой специальный текст в минибуфер? Минибуфер активен, когда, например, считывается ввод. Вы можете начать чтение и вставить туда текст, когда он активен.

...