色々間違ってたお。

どうもです。
昨日風邪がよくなってきたことをいいことに,
100円低血流筋トレ上腕部編を実行し,風邪悪化し,
いろいろなサプリメントをとって一晩寝たら,すっかり良くなって,
さらに,上腕部が,いい感じに筋肉痛になっていて,うれしいです。

ac-dabbrev.el を使っているときの Scanning メッセージ

もう,やけになって,ちょっと無茶した。
こないだのでは,色々と問題があったので,
より強力な方法にした。
より強力な方法なので,どっかで副作用がでそう。
気にしない気にしない。
message 関数にアドバイスさせてもらって,例の,
「Scanning foo.el」とかを出力しようとしてたら,
やめてもらうことにした。
これにより,関係ないところで,message 関数使って,
Scanning なんちゃらと表示しようとすると,表示されないので,
ゴラーとかなりそう。なったら考える。

(defadvice message (around disable-scanning-message-around-ad)
  (let ((msg (ad-get-arg 0)))
    (unless (and (> (length msg) 8) (string= "Scanning" (substring-no-properties msg 0 8)))
      ad-do-it)))
(ad-activate 'message)
;(ad-deactivate 'message)
;(ad-remove-advice 'message 'around 'disable-scanning-message-around-ad)

auto-complete-etags.el のメッセージとか。

以前,tags-completion-table を let でくるんで,nil にすることで,
補完の度に,そのテーブルを作成するようにしてもらいましたが,
そのテーブルを作成する度に
Making tags completion table for e:/meadow3/lisp/progmodes/etags.el...
とかガシガシ表示されるのでいやだ。


なので,頑張ってみたら,ちょっと間違ってたところを発見。
ac-etags-candidate 関数内で,tags-completion-table を nil にするのは,
メッセージもうっとおしいし,パフォーマンス的にもよくないみたいなので,
やめ。
でも,tags-file-name が指定されてないときには,
エコーエリアでぐちゃぐちゃになるので,それは残す。

(defun ac-etags-candidate ()
  (when tags-file-name
    (ignore-errors
        (all-completions ac-target (tags-completion-table)))))
今そこにある危機

いや,なんとなく,かっこいいからいってみたかっただけです。
ごめん。


じゃぁ,どないすんねん! という声がワタシの中から聞こえてきそうなので,
すっかり迷アドバイザーとして板についてきたwhitypig さんは,
またまたこりずにアドバイス
タグファイルを指定する方法は2通り。たぶん。
M-x visit-tags-table
M-x select-tags-table


ほいで,問題になっているのは,M-x select-tags-table した後でも,
tags-completion-table は以前のタグファイルをもとに作成されたまんまということ。
なので,auto-complete の補完候補には,新しいタグファイルからの候補が出て欲しいのに,
でない。かわりに,以前のタグファイルから補完候補がでてしまう。
これは困る。

解決案

select-tags-table 関数は,結局,visit-tags-table を呼んでいるので,
これにアドバイスをします。
内容は,visit-tags-table 関数終了後に,tags-completion-table をクリアしちゃいます。
そうすることで,新しいタグを指定したら,1回だけ新たに,tags-completion-table が作られて,
ウマー!!

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Set tags-completion-table to nil after selecting/visiting another TAGS file
;; so that auto-complete-etags could use the new TAGS file for its completion.
(defadvice visit-tags-table (after clear-tags-completion-table)
  (when (tags-completion-table)
    (setq tags-completion-table nil)))

(ad-activate 'visit-tags-table)
;; for deactivation
;(ad-deactivate 'visit-tags-table)
;; for removal
;(ad-remove-advice 'visit-tags-table 'after 'clear-tags-completion-table)

まとめ

auto-complete-etags.el の方は,わりといい線いったかなと思う。
message 関数にしたアドバイスの内容はいただけないと思う。
思うが,代替案が浮かばない。
だれか迷アドバイザーにアドバイスして下さい。

余談

子供手当を知ってびっくり。
オレはこんなもんオッケーした覚えはないんだが。そりゃそうか。
せめて,日本国籍のある人のみを対象にしろよ。
ワタシはすくなくとも,消費税は払っているので,それが,
全く関係ない外人の子供に行くのは,納得出来んぞ。


それだったら,例えば,資格手当として若い人たちに回すとか,
年金にまわすとか,色々あると思うのだが。
どういう論理で,日本に出稼ぎに来ている外人の外国にいる子供に対して,
日本人が納めた税金をただであげれば,日本がよくなると思っているのか,
理解できん。
以前,みんながみんな諦めムードで,日本はダメだと言えば,
本当にダメになると書いたが,本当にダメなのかもしれん。


希望の国エクソダスを思い出すよ。
だれか革命でもしてくれんかね。いいよ,オレは消去されても。
それで日本がよくなるなら。
まぁ,とりあえず,自衛隊を味方につけないと,どにもならんだろうなぁ。