2013-06-27 2 views

ответ

4

Посмотрите на popup.el и pos-tip.el. То, что они реализуют, является подсказкой для инструмента, а не плавающей областью, но этого было бы достаточно, если вы хотите просто показать некоторую информацию вокруг курсора. Даже если подсказка не достаточно, просмотр реализации и игры с ней может дать вам некоторое представление о том, что вы можете сделать в Emacs. popup.el использует overlay как предложено @ d11wtq. pos-tip.el использует функции на основе X, такие как x-show-tip.

Также yascroll.el - хороший пример того, как использовать наложение, чтобы поместить вещи в нужную часть окна (что сложно!).

+0

+1 для popup.el; это [довольно] безболезненный способ получить приятные советы или меню завершения; однако подсветка синтаксиса (лица) внутри наконечника потребует от вас некоторых вещей здесь и там и, возможно, столкнется с странными случаями конфликтующих лиц – assem

5

Вы можете использовать оверлеи. Создание накладки с make-overlay:

(make-overlay (point) (point)) 

Затем поместите в него текст с overlay-put.

(overlay-put the-ol 'before-string "Tooltip message") 

Для того, чтобы сразу же выровнять текст таким образом, что вам нужно propertize пробела перед строкой, чтобы установить display свойства с :align-to, учетом пространства подсказки сам будет принимать.

(concat (propertize " " 
        'display `(space :align-to (- right ,(length tooltip)))) 
     tooltip) 
+0

Должен ли он работать в '* scratch *' с 'C-j'? –

+0

Ну, мой точный код не будет, но идея должна, да. – d11wtq