pophint.elをv0.2にアップデートしました

現在の最新バージョンは0.2.0です。
pophint.elについては過去エントリを参照して下さい。
ソース置き場:https://github.com/aki2o/emacs-pophint

変更点

アップデートというか、ほぼバグ修正です。

  • ヒントが表示されたままになってしまうバグを修正
  • 別ウィンドウで同じバッファを表示している時、ヒント表示対象のウィンドウがおかしくなるバグを修正
  • RangeYankのソースを追加

ヒントが表示されたままになってしまうバグを修正

Emacsの処理が重くなったときなどに、ヒント表示した後、C-gで中止するとヒントが表示されたままになってしまうことがありましたが、修正しました。
終了処理に入る前にC-gにより処理が中止されてしまうことが原因のようで、完璧な対処ではないのですが、しばらく使ってみても再現しなくなったので、とりあえず良いかなという感じです。

別ウィンドウで同じバッファを表示している時、ヒント表示対象のウィンドウがおかしくなるバグを修正

同じファイルの別の箇所を別ウィンドウで表示しながらコーディングする、ということを時々するのですが、その時にヒント表示すると、別ウィンドウに表示されてしまうというバグがありましたが修正しました。

RangeYankのソースを追加

任意の部分をYankしたいと思い、RangeYankというアクションを定義していましたが、始点選択時のヒント表示が定義されたソースを利用するため、始点としたい場所が中々ヒント表示されない状態でした。
なので、RangeYank用に単語区切りくらいで始点選択するソースを新たに追加しました。
pophint:do-rangeyank というコマンドで呼び出すことができます。
詳しくは、以下の設定例を。

設定例

上記を踏まえ、現在、私の設定は以下のようになっています。

(require 'pophint)
(require 'pophint-config)

(setq pophint:popup-max-tips 400)

(pophint-config:set-automatically-when-marking t)
(pophint-config:set-yank-immediately-when-marking nil)
(pophint-config:set-automatically-when-isearch t)
(pophint-config:set-relayout-when-rangeyank-start nil)

(define-key global-map (kbd "C-;") 'pophint:do)
(define-key global-map (kbd "C-+") 'pophint:do-interactively)
(define-key global-map (kbd "M-;") 'pophint:redo)
(define-key global-map (kbd "M-y") 'pophint:do-flexibly-yank)
(define-key global-map (kbd "C-M-y") 'pophint:do-rangeyank)

(define-key view-mode-map (kbd ";") 'pophint:do-flexibly)
(define-key dired-mode-map (kbd ";") 'pophint:do-flexibly)
(add-to-list 'w3m-mode-hook
             '(lambda () (local-set-key (kbd ";") 'pophint:do-flexibly))
             t)
(add-to-list 'Info-mode-hook
             '(lambda () (local-set-key (kbd ";") 'pophint:do-flexibly))
             t)

Enjoy!!!