Hatena::ブログ(Diary)

わからん

2010.12.30

[] flymake のエラー表示を地味にする

▼ よくあるエラー表示

f:id:kitokitoki:20101230075034p:image

▼ おしゃれ

f:id:kitokitoki:20101230075033p:image

先程、fringe-helper.el を利用して flymake のエラーを emacs のフリンジ(左端)に表示する設定が gist に投稿されました。エラーだとわかりきっているときにフェイスで派手にやられてうっとうしい思いをしたことがあったので、試しに fringe-helper.el をインストールして次のように設定しました。もちろん、たんに地味にするだけなら、flymake-errline, flymake-warnline をアンダーラインにするというのでも可能です。fringe-helper.el はいろいろ応用ができそうです。

(require 'fringe-helper)
(require 'flymake)

(set-face-background 'flymake-errline nil)    ;既存のフェイスを無効にする
(set-face-foreground 'flymake-errline nil)
(set-face-background 'flymake-warnline nil)
(set-face-foreground 'flymake-warnline nil)

(make-face 'my-flymake-warning-face)
(set-face-foreground 'my-flymake-warning-face "yellow")
(set-face-background 'my-flymake-warning-face "black")
(setq my-flymake-warning-face 'my-flymake-warning-face)

(defvar flymake-fringe-overlays nil)
(make-variable-buffer-local 'flymake-fringe-overlays)

(defadvice flymake-make-overlay (after add-to-fringe first
                                       (beg end tooltip-text face mouse-face)
                                       activate compile)
  (push (fringe-helper-insert-region
           beg end
           (fringe-lib-load (if (eq face 'flymake-errline)
                                fringe-lib-exclamation-mark
                              fringe-lib-question-mark))
           'left-fringe 'my-flymake-warning-face)
           ;; 'left-fringe 'font-lock-warning-face)        
        flymake-fringe-overlays))

(defadvice flymake-delete-own-overlays (after remove-from-fringe activate
                                              compile)
  (mapc 'fringe-helper-remove flymake-fringe-overlays)
  (setq flymake-fringe-overlays nil))

 追記

気に入ったので使うことにしました。赤のビックリマークだと逆に地味すぎたので、黄色にして使っています。上の設定例も、色の変更をしたものにしました。

f:id:kitokitoki:20110101214613p:image

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

Google