-(use-package message
- :bind (:map message-mode-map ("<C-return>" . b/insert-asterism))
- :config
+;;; bandali-message.el --- bandali's message.el setup -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2018-2020 Amin Bandali
+
+;; Author: Amin Bandali <bandali@gnu.org>
+;; Keywords: mail, news
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; My setup for message.el.
+
+;;; Code:
+
+(with-eval-after-load 'message
+ ;; :bind (:map message-mode-map ("<C-return>" . b/insert-asterism))
;; redefine for a simplified In-Reply-To header
;; (see https://todo.sr.ht/~sircmpwn/lists.sr.ht/67)
(defun message-make-in-reply-to ()
(concat "Hi %F,\n\n" b/message-cite-style-format)
b/message-cite-style-format)))
"Citation style based on Mozilla Thunderbird's. Use with message-cite-style.")
- (setq ;; message-cite-style 'message-cite-style-bandali
- message-kill-buffer-on-exit t
- message-send-mail-function 'message-send-mail-with-sendmail
- message-sendmail-envelope-from 'header
- message-subscribed-address-functions
- '(gnus-find-subscribed-addresses)
- message-dont-reply-to-names
- "\\(\\(amin@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)")
+ (csetq
+ message-elide-ellipsis "[...]\n"
+ ;; message-cite-style 'message-cite-style-bandali
+ message-citation-line-format "%N writes:\n"
+ message-citation-line-function 'message-insert-formatted-citation-line
+ message-kill-buffer-on-exit t
+ message-send-mail-function 'message-send-mail-with-sendmail
+ message-sendmail-envelope-from 'header
+ message-subscribed-address-functions
+ '(gnus-find-subscribed-addresses)
+ message-dont-reply-to-names
+ "\\(\\(amin@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|bandali@fsf\\.org\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\|amin\\.bandali@savoirfairelinux\\.com\\)")
;; (require 'company-ebdb)
- :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
- (message-mode . flyspell-mode)
- (message-mode . (lambda ()
- ;; (setq-local fill-column b/fill-column
- ;; message-fill-column b/fill-column)
- (eval-when-compile (defvar company-idle-delay))
- (make-local-variable 'company-idle-delay)
- (setq company-idle-delay 0.2))))
- ;; :custom-face
- ;; (message-header-subject ((t (:foreground "#111" :weight semi-bold))))
- ;; (message-header-to ((t (:foreground "#111" :weight normal))))
- ;; (message-header-cc ((t (:foreground "#333" :weight normal))))
- :custom
- (message-elide-ellipsis "[...]\n"))
-
-(use-package footnote
- :after message
- ;; :config
- ;; (setq footnote-start-tag ""
- ;; footnote-end-tag ""
- ;; footnote-style 'unicode)
- :bind
- (:map message-mode-map
- :prefix-map b/footnote-prefix-map
- :prefix "C-c f n"
- ("a" . footnote-add-footnote)
- ("b" . footnote-back-to-message)
- ("c" . footnote-cycle-style)
- ("d" . footnote-delete-footnote)
- ("g" . footnote-goto-footnote)
- ("r" . footnote-renumber-footnotes)
- ("s" . footnote-set-style)))
-
-(use-package message-x)
-
-(comment
- (use-package message-x
- :custom
- (message-x-completion-alist
- (quote
- (("\\([rR]esent-\\|[rR]eply-\\)?[tT]o:\\|[bB]?[cC][cC]:" . gnus-harvest-find-address)
- ((if
- (boundp
- (quote message-newgroups-header-regexp))
- message-newgroups-header-regexp message-newsgroups-header-regexp)
- . message-expand-group))))))
-
-(comment
- (use-package gnus-harvest
- :commands gnus-harvest-install
- :demand
- :config
- (if (featurep 'message-x)
- (gnus-harvest-install 'message-x)
- (gnus-harvest-install))))
+ ;; (custom-set-faces
+ ;; '(message-header-subject
+ ;; ((t (:foreground "#111" :weight semi-bold))))
+ ;; '(message-header-to
+ ;; ((t (:foreground "#111" :weight normal))))
+ ;; '(message-header-cc
+ ;; ((t (:foreground "#333" :weight normal))))
+
+ ;; footnote
+ (with-eval-after-load 'footnote
+ ;; (csetq footnote-start-tag ""
+ ;; footnote-end-tag ""
+ ;; footnote-style 'unicode)
+ (when (featurep 'which-key)
+ (which-key-add-major-mode-key-based-replacements 'message-mode
+ "C-c f n" "footnote")))
+
+ ;; orgalist
+ (add-hook 'message-mode-hook
+ (lambda ()
+ ;; work around incompatibility between
+ ;; orgalist and yasnippet
+ (yas-minor-mode -1)
+ (orgalist-mode 1)
+ (yas-minor-mode 1)))
+
+ ;; local key bindings
+ (defvar b/footnote-prefix-map)
+ (define-prefix-command 'b/footnote-prefix-map)
+ (define-key message-mode-map (kbd "C-c f n")
+ 'b/footnote-prefix-map)
+ (define-key b/footnote-prefix-map (kbd "a")
+ #'footnote-add-footnote)
+ (define-key b/footnote-prefix-map (kbd "b")
+ #'footnote-back-to-message)
+ (define-key b/footnote-prefix-map (kbd "c")
+ #'footnote-cycle-style)
+ (define-key b/footnote-prefix-map (kbd "d")
+ #'footnote-delete-footnote)
+ (define-key b/footnote-prefix-map (kbd "g")
+ #'footnote-goto-footnote)
+ (define-key b/footnote-prefix-map (kbd "r")
+ #'footnote-renumber-footnotes)
+ (define-key b/footnote-prefix-map (kbd "s")
+ #'footnote-set-style))
+;; hooks
+;; (add-hook 'message-setup-hook #'mml-secure-message-sign-pgpmime)
+(add-hook 'message-mode-hook #'flyspell-mode)
+(add-hook 'message-mode-hook
+ (lambda ()
+ ;; (setq-local fill-column b/fill-column
+ ;; message-fill-column b/fill-column)
+ (eval-when-compile (defvar company-idle-delay))
+ (make-local-variable 'company-idle-delay)
+ (setq company-idle-delay 0.2)))
+
+;; (with-eval-after-load 'message-x
+;; (csetq
+;; message-x-completion-alist
+;; '(("\\([rR]esent-\\|[rR]eply-\\)?[tT]o:\\|[bB]?[cC][cC]:"
+;; . gnus-harvest-find-address)
+;; ((if
+;; (boundp
+;; (quote message-newgroups-header-regexp))
+;; message-newgroups-header-regexp message-newsgroups-header-regexp)
+;; . message-expand-group))))
+
+;; (require 'gnus-harvest)
+;; (if (featurep 'message-x)
+;; (gnus-harvest-install 'message-x)
+;; (gnus-harvest-install))
(provide 'bandali-message)
+;;; bandali-message.el ends here