summarye.elの設定 改訂版

かつてsummarye.elの設定に関する記事を書いたことがあるが、今回いくつか見直した。

display-line-numbers-modeによる行番号の表示を止めた。これをしないと行番号がsummarye由来ものと合わせて2重に行番号が表示されるからである。またサマリがポップアップする位置とサイズをshackleにより制御した。つねにframeの半分以上を占拠してポップアップするsummaryeデフォルトの挙動が不満だったからである。

(eval-when-compile (require 'summarye)
                   (require 'view)
                   (require 'shackle))
(declare-function View-quit "view")

;; fで当該バッファのサマリ位置にジャンプ
;; SPCでカーソル位置のサマリをプレビュー
;; nでプレビューしながら次のサマリを表示
;; bでプレビューしながら前のサマリを表示
;; dでサマリ一覧から削除
;; gでリロード、削除したサマリも復活
;; mでマーク

(autoload 'se/make-summary-buffer "summarye" nil t)
(autoload 'socuur "summarye" nil t)

(define-key help-map "M" 'se/make-summary-buffer)

(defun se/quit-summary-item ()
  "Quit summary."
  (interactive)
  (view-mode 1)
  (View-quit))

(defvar summary-edit-summary-mode-hook nil)
(add-hook 'summary-edit-summary-mode-hook
          #'(lambda ()
              ;; 行番号の表示を止める
              (display-line-numbers-mode -1)

              (define-key summary-edit-mode-map (kbd "q") 'se/quit-summary-item)))

(with-eval-after-load "shackle"
  (add-to-list 'shackle-rules
               '("^function-in-.*" :regexp t :align right :ratio 0.3))
  (add-to-list 'shackle-rules
               '("^Items-in-.*" :regexp t :align right :ratio 0.3)))

バイトコンパイル時の警告を抑制した修正版summarye.elのコードはこちらから。