Skip to content
2009/05/16 / highmt

auto-complete.el 日本語表示乱れパッチ

日本語文字列が候補に含まれるとき、
その文字列がポップアップの先頭にあると
ポップアップの次の行以降が右端まで伸びてしまうことがある問題への対応です。

Version 0.2.0に対するパッチです。
Meadow-3.00-r4213-1、emacs 22.2.0ubuntu2 で確認しています。

--- auto-complete.el	Sat May 16 06:21:52 2009
+++ auto-complete.el.new	Sat May 16 07:02:38 2009
@@ -1118,9 +1118,17 @@
                        (lambda (menu overlay string &optional face)
                          (overlay-put overlay
                                       'after-string
-                                      (concat (overlay-get overlay 'prefix)
-                                              (propertize (ac-menu-create-line-string menu string) 'face face)
-                                              (overlay-get overlay 'postfix)))))
+                                      (let ((line-string (ac-menu-create-line-string menu string)))
+                                        (concat (overlay-get overlay 'prefix)
+                                                (propertize line-string 'face face)
+                                                (let ((trail-string "")
+                                                      (string-length (length line-string))
+                                                      (menu-width (ac-menu-width menu)))
+                                                  (if (< string-length menu-width)
+                                                      (setq trail-string (make-string (- menu-width string-length) ? )))
+                                                  trail-string)
+                                                (overlay-get overlay 'postfix))
+                                      ))))
           (aset overlays i overlay))
         (forward-line))
       (let ((i 100))

—————-

2009/05/17 15:56 追記
上記は現象を正しく修正していないので削除。
上記現象は、表示されるポップアップがバッファの最後よりも下に表示されるときに起きるよう。通常のケースでは問題ない。

2009/05/18 04:40 追記
新しいパッチに変更。

広告
%d人のブロガーが「いいね」をつけました。