mirror of https://github.com/djcb/mu.git
vars: refactor variables
Remove some variables from mu4e-vars, and move them to where they are used. Move some more items to mu4e-helpers.
This commit is contained in:
parent
3cd127d8ae
commit
411b95acd7
|
@ -148,6 +148,63 @@ Function will return the cdr of the list element."
|
|||
(mu4e-warn "Unknown shortcut '%c'" response))))
|
||||
|
||||
|
||||
|
||||
;;; Server properties
|
||||
(defvar mu4e--server-props nil
|
||||
"Metadata we receive from the mu4e server.")
|
||||
|
||||
(defun mu4e-server-properties ()
|
||||
"Get the server metadata plist."
|
||||
mu4e--server-props)
|
||||
|
||||
(defun mu4e-root-maildir()
|
||||
"Get the root maildir."
|
||||
(or (and mu4e--server-props
|
||||
(plist-get mu4e--server-props :root-maildir))
|
||||
(mu4e-error "Root maildir unknown; did you start mu4e?")))
|
||||
|
||||
(defun mu4e-database-path()
|
||||
"Get the root maildir."
|
||||
(or (and mu4e--server-props
|
||||
(plist-get mu4e--server-props :database-path))
|
||||
(mu4e-error "Root maildir unknown; did you start mu4e?")))
|
||||
|
||||
(defun mu4e-server-version()
|
||||
"Get the root maildir."
|
||||
(or (and mu4e--server-props
|
||||
(plist-get mu4e--server-props :version))
|
||||
(mu4e-error "Version unknown; did you start mu4e?")))
|
||||
|
||||
(defun mu4e-personal-addresses(&optional no-regexp)
|
||||
"Get the list user's personal addresses, as passed to mu init.
|
||||
The address are either plain e-mail address or /regular
|
||||
expressions/. When NO-REGEXP is non-nil, do not include regexp
|
||||
address patterns (if any)."
|
||||
(seq-remove
|
||||
(lambda(addr) (and no-regexp (string-match-p "^/.*/" addr)))
|
||||
(when mu4e--server-props
|
||||
(plist-get mu4e--server-props :personal-addresses))))
|
||||
|
||||
(defun mu4e-last-query-results ()
|
||||
"Get the results (counts) of the last cached queries.
|
||||
|
||||
The cached queries are the bookmark / maildir queries that are
|
||||
used to populated the read/unread counts in the main view. They
|
||||
are refreshed when calling `(mu4e)', i.e., when going to the main
|
||||
view.
|
||||
|
||||
The results are a list of elements of the form
|
||||
(:query \"query string\"
|
||||
:count <total number matching count>
|
||||
:unread <number of unread messages in count>)"
|
||||
(plist-get mu4e--server-props :queries))
|
||||
|
||||
(defun mu4e-last-query-result (query)
|
||||
"Get the last result for some QUERY or nil if not found."
|
||||
(seq-find
|
||||
(lambda (elm) (string= (plist-get elm :query) query))
|
||||
(mu4e-last-query-results)))
|
||||
|
||||
|
||||
;;; Logging / debugging
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'mu4e-vars)
|
||||
(require 'mu4e-helpers)
|
||||
(require 'mu4e-utils)
|
||||
(require 'mu4e-meta)
|
||||
|
||||
|
@ -177,6 +177,7 @@ The server output is as follows:
|
|||
|
||||
;; received a pong message
|
||||
((plist-get sexp :pong)
|
||||
(setq mu4e--server-props (plist-get sexp :props))
|
||||
(funcall mu4e-pong-func sexp))
|
||||
|
||||
;; received a contacts message
|
||||
|
@ -243,7 +244,8 @@ backslashes and double-quotes."
|
|||
"Cannot find mu, please set `mu4e-mu-binary' to the mu executable path"))
|
||||
|
||||
;; sanity-check 2
|
||||
(let ((version (let ((s (shell-command-to-string (concat mu4e-mu-binary " --version"))))
|
||||
(let ((version (let ((s (shell-command-to-string
|
||||
(concat mu4e-mu-binary " --version"))))
|
||||
(and (string-match "version \\([.0-9]+\\)" s)
|
||||
(match-string 1 s)))))
|
||||
(unless (string= version mu4e-mu-version)
|
||||
|
|
|
@ -175,8 +175,9 @@ see its docstring)."
|
|||
(expand-file-name dir)
|
||||
(mu4e-error "mu4e-attachment-dir evaluates to nil"))))
|
||||
|
||||
;;; Maildir (1/2)
|
||||
|
||||
|
||||
;;; Maildirs
|
||||
(defun mu4e~guess-maildir (path)
|
||||
"Guess the maildir for some path, or nil if cannot find it."
|
||||
(let ((idx (string-match (mu4e-root-maildir) path)))
|
||||
|
@ -201,8 +202,6 @@ an absolute path."
|
|||
(mu4e~proc-mkdir dir) t)
|
||||
(t nil)))
|
||||
|
||||
;;; Maildir (1/2)
|
||||
|
||||
(defun mu4e~get-maildirs-1 (path mdir)
|
||||
"Get maildirs under path, recursively, as a list of relative paths."
|
||||
(let ((dirs)
|
||||
|
@ -289,6 +288,7 @@ and offer to create it if it does not exist yet."
|
|||
(mu4e~proc-mkdir fullpath)))
|
||||
mdir))
|
||||
|
||||
|
||||
;;; Bookmarks
|
||||
(defun mu4e-ask-bookmark (prompt)
|
||||
"Ask the user for a bookmark (using PROMPT) as defined in
|
||||
|
@ -551,7 +551,7 @@ completion; for testing/debugging."
|
|||
"Check for the settings required for running mu4e."
|
||||
(unless (>= emacs-major-version 25)
|
||||
(mu4e-error "Emacs >= 25.x is required for mu4e"))
|
||||
(when mu4e~server-props
|
||||
(when mu4e--server-props
|
||||
(unless (string= (mu4e-server-version) mu4e-mu-version)
|
||||
(mu4e-error "mu server has version %s, but we need %s"
|
||||
(mu4e-server-version) mu4e-mu-version)))
|
||||
|
@ -602,8 +602,7 @@ nothing."
|
|||
|
||||
(defun mu4e~pong-handler (data func)
|
||||
"Handle 'pong' responses from the mu server."
|
||||
(setq mu4e~server-props (plist-get data :props)) ;; save info from the server
|
||||
(let ((doccount (plist-get mu4e~server-props :doccount)))
|
||||
(let ((doccount (plist-get mu4e--server-props :doccount)))
|
||||
(mu4e~check-requirements)
|
||||
(when func (funcall func))
|
||||
(when (zerop doccount)
|
||||
|
@ -615,29 +614,6 @@ nothing."
|
|||
(lambda () (mu4e-update-mail-and-index
|
||||
mu4e-index-update-in-background)))))))
|
||||
|
||||
(defun mu4e-last-query-results ()
|
||||
"Get the results (counts) of the last cached queries.
|
||||
|
||||
The cached queries are the bookmark / maildir queries that are
|
||||
used to populated the read/unread counts in the main view. They
|
||||
are refreshed when calling `(mu4e)', i.e., when going to the main
|
||||
view.
|
||||
|
||||
The results are a list of elements of the form
|
||||
(:query \"query string\"
|
||||
:count <total number matching count>
|
||||
:unread <number of unread messages in count>)"
|
||||
(plist-get mu4e~server-props :queries))
|
||||
|
||||
|
||||
(defun mu4e-last-query-result (query)
|
||||
"Get the last result for some cached query, as per
|
||||
`mu4e-bookmark-query-results' or nil if not found."
|
||||
(cl-find-if
|
||||
(lambda (elm) (string= (plist-get elm :query) query))
|
||||
(mu4e-last-query-results)))
|
||||
|
||||
|
||||
(defun mu4e~start (&optional func)
|
||||
"If `mu4e-contexts' have been defined, but we don't have a
|
||||
context yet, switch to the matching one, or none matches, the
|
||||
|
@ -670,7 +646,7 @@ When successful, call FUNC (if non-nil) afterwards."
|
|||
mu4e~contacts-tstamp "0"))
|
||||
|
||||
(defun mu4e~stop ()
|
||||
"Stop the mu4e session."
|
||||
"Stop the mu4e se ssion."
|
||||
(when mu4e~update-timer
|
||||
(cancel-timer mu4e~update-timer)
|
||||
(setq mu4e~update-timer nil))
|
||||
|
@ -715,6 +691,8 @@ This is meant to be the exact same data structure as
|
|||
(mu4e~maildirs-with-query))
|
||||
maximize (string-width (plist-get b :name))))
|
||||
|
||||
|
||||
|
||||
|
||||
;;; Indexing & Updating
|
||||
|
||||
|
@ -772,8 +750,6 @@ if you otherwise want to use `mu4e-index-lazy-check'."
|
|||
(let ((mu4e-index-cleanup t) (mu4e-index-lazy-check nil))
|
||||
(mu4e-update-index)))
|
||||
|
||||
|
||||
|
||||
(defvar mu4e~update-buffer nil
|
||||
"Internal, store the buffer of the update process when
|
||||
updating.")
|
||||
|
|
|
@ -35,31 +35,6 @@
|
|||
"mu4e - mu for emacs"
|
||||
:group 'mail)
|
||||
|
||||
(defcustom mu4e-mu-home nil
|
||||
"Location of an alternate mu home dir. If not set, use the
|
||||
defaults, based on the XDG Base Directory Specification."
|
||||
:group 'mu4e
|
||||
:type '(choice (const :tag "Default location" nil)
|
||||
(directory :tag "Specify location"))
|
||||
:safe 'stringp)
|
||||
|
||||
(defcustom mu4e-mu-binary (executable-find "mu")
|
||||
"Name of the mu-binary to use.
|
||||
If it cannot be found in your PATH, you can specify the full
|
||||
path."
|
||||
:type 'file
|
||||
:group 'mu4e
|
||||
:safe 'stringp)
|
||||
|
||||
(defcustom mu4e-mu-debug nil
|
||||
"Whether to run the mu binary in debug-mode.
|
||||
Setting this to t increases the amount of information in the log."
|
||||
:type 'boolean
|
||||
:group 'mu4e)
|
||||
|
||||
(make-obsolete-variable 'mu4e-maildir
|
||||
"determined by server; see `mu4e-root-maildir'." "1.3.8")
|
||||
|
||||
(defcustom mu4e-org-support t
|
||||
"Support org-mode links."
|
||||
:type 'boolean
|
||||
|
@ -1063,41 +1038,6 @@ We need to keep this information around to quickly re-sort
|
|||
subsets of the contacts in the completions function in
|
||||
mu4e-compose.")
|
||||
|
||||
(defvar mu4e~server-props nil
|
||||
"Information we receive from the mu4e server process \(in the 'pong-handler').")
|
||||
|
||||
(defun mu4e-root-maildir()
|
||||
"Get the root maildir."
|
||||
(let ((root-maildir (and mu4e~server-props
|
||||
(plist-get mu4e~server-props :root-maildir))))
|
||||
(unless root-maildir
|
||||
(mu4e-error "root maildir unknown; did you start mu4e?"))
|
||||
root-maildir))
|
||||
|
||||
(defun mu4e-database-path()
|
||||
"Get the mu4e database path"
|
||||
(let ((path (and mu4e~server-props
|
||||
(plist-get mu4e~server-props :database-path))))
|
||||
(unless path
|
||||
(mu4e-error "database-path unknown; did you start mu4e?"))
|
||||
path))
|
||||
|
||||
(defun mu4e-personal-addresses(&optional no-regexp)
|
||||
"Get the list user's personal addresses, as passed to `mu init --my-address=...'.
|
||||
The address are either plain e-mail address or /regular
|
||||
expressions/. When NO_REGEXP is non-nil, do not include regexp
|
||||
address patterns (if any)."
|
||||
(seq-remove
|
||||
(lambda(addr) (and no-regexp (string-match-p "^/.*/" addr)))
|
||||
(when mu4e~server-props (plist-get mu4e~server-props :personal-addresses))))
|
||||
|
||||
(defun mu4e-server-version()
|
||||
"Get the server version, which should match mu4e's."
|
||||
(let ((version (and mu4e~server-props (plist-get mu4e~server-props :version))))
|
||||
(unless version
|
||||
(mu4e-error "version unknown; did you start mu4e?"))
|
||||
version))
|
||||
|
||||
|
||||
;;; Handler functions
|
||||
;;
|
||||
|
|
Loading…
Reference in New Issue