3

私はタブバーを使用して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 関数は、少なくともリバートされたバッファー状態に到達するための私の試みです。どちらも機能しません。

ところで、コードの最初の部分は、もともとタブバーになかった追加のスペースを追加することです。

何かご意見は?

4

1 に答える 1