[Anthy-dev 353] Re: anthy-4901

Zurück zum Archiv-Index

Hiroyuki Komatsu komat****@taiya*****
2004年 1月 6日 (火) 02:42:31 JST


小松です。

At Mon, 05 Jan 2004 21:25:43 +0900 (JST),
Konosuke Watanabe wrote:
> Anthy-4901のanthy.elでは(でも)変換時に表示されるフェンスが
> undoリストに入らないように
> 
> anthy-enable-preedit-keymap
> 
> 内で
> 
> buffer-disable-undo
> 
> を呼んでいるかと思うのですが,これだと日本語入力と半角英数直
> 接入力を切り替えるたびにundoリストを破棄してしまうようで,非
> 常に不便だったりします.できればundoリストがつながるようにし
> ていただけないでしょうか.

prime-el ではどのように実装しているかを説明させていただきます。
実装のヒントにしていただければうれしいです。


undo の記録は変数 buffer-undo-list に格納されていますので、この変数を
いじってやれば undo を繋げることが可能です。 anthy-buffer-undo-list を
buffer-undo-list を一時的に退避させるバッファローカル変数として使います。

準備:
(defvar anthy-buffer-undo-list nil)
(make-variable-buffer-local 'anthy-buffer-undo-list)

anthy-mode ON 時:
(setq anthy-buffer-undo-list buffer-undo-list)

anthy-mode OFF 時:
(setq buffer-undo-list anthy-buffer-undo-list)

変換文字列確定時:
;; beginning と end が確定文字列のリージョンを示す。
(setq anthy-buffer-undo-list
    (cons (cons beginning end) (cons nil anthy-buffer-undo-list)))

-- 
                                                            小松弘幸
                                                -----------------------
                                                   http://taiyaki.org/




Anthy-dev メーリングリストの案内
Zurück zum Archiv-Index