私はタブバーを使用してEmacsで作業をタブ化していますが、これまでのところ、ファイルが変更されたときに表示するインジケーターを基本的に追加するタブバールーラーを見つけました。どうやら、それ自体では機能しません。
ファイルが変更されたことをタブバーに知らせるコードをいくつか追加しましたが、作業を元に戻すと機能しません。可能であれば、「保存する必要がない」状態に達したときにタブバーを更新することをemacsに知らせるためのフックが必要です。
これまでのコードは次のとおりです。
(defadvice tabbar-buffer-tab-label (after fixup_tab_label_space_and_flag activate)
(setq ad-return-value
(if (and (buffer-modified-p (tabbar-tab-value tab))
(buffer-file-name (tabbar-tab-value tab)))
(concat " " (concat ad-return-value " "))
(concat " " (concat ad-return-value " ")))))
;; Called each time the modification state of the buffer changed.
(defun er/modification-state-change ()
(tabbar-set-template tabbar-current-tabset nil)
(tabbar-display-update))
(add-hook 'after-save-hook 'er/modification-state-change)
;; First-change-hook is called BEFORE the change is made.
(defun er/on-buffer-modification ()
(set-buffer-modified-p t)
(er/modification-state-change))
(add-hook 'first-change-hook 'er/on-buffer-modification)
;; Retrieve original state after revert is made.
(defun er/on-buffer-revert ()
(set-buffer-modified-p nil)
(er/modification-state-change))
(add-hook 'after-revert-hook 'er/on-buffer-revert)
er/on-buffer-revert 関数は、少なくともリバートされたバッファー状態に到達するための私の試みです。どちらも機能しません。
ところで、コードの最初の部分は、もともとタブバーになかった追加のスペースを追加することです。
何かご意見は?