]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-lib.el
Don't use kill-this-buffer to kill notmuch emacs buffers
[notmuch] / emacs / notmuch-lib.el
index f4454be61610c25defd5d36b0df31b81002b860d..dfdcd0520b021e101acc2c105616c720b46c2f1a 100644 (file)
 (defvar notmuch-command "notmuch"
   "Command to run the notmuch binary.")
 
-(declare-function notmuch-toggle-invisible-action "notmuch" (cite-button))
+(defgroup notmuch nil
+  "Notmuch mail reader for Emacs."
+  :group 'mail)
 
-(define-button-type 'notmuch-button-invisibility-toggle-type
-  'action 'notmuch-toggle-invisible-action
-  'follow-link t
-  'face 'font-lock-comment-face)
+(defcustom notmuch-search-oldest-first t
+  "Show the oldest mail first when searching."
+  :type 'boolean
+  :group 'notmuch)
 
-(define-button-type 'notmuch-button-headers-toggle-type
-  'help-echo "mouse-1, RET: Show headers"
-  :supertype 'notmuch-button-invisibility-toggle-type)
+;;
+
+(defcustom notmuch-saved-searches nil
+  "A list of saved searches to display."
+  :type '(alist :key-type string :value-type string)
+  :group 'notmuch)
+
+(defvar notmuch-folders nil
+  "Deprecated name for what is now known as `notmuch-saved-searches'.")
+
+(defun notmuch-saved-searches ()
+  "Common function for querying the notmuch-saved-searches variable.
+
+We do this as a function to support the old name of the
+variable (`notmuch-folders') as well as for the default value if
+the user hasn't set this variable with the old or new value."
+  (if notmuch-saved-searches
+      notmuch-saved-searches
+    (if notmuch-folders
+       notmuch-folders
+      '(("inbox" . "tag:inbox")
+       ("unread" . "tag:unread")))))
+
+(defun notmuch-version ()
+  "Return a string with the notmuch version number."
+  (let ((long-string
+        ;; Trim off the trailing newline.
+        (substring (shell-command-to-string
+                    (concat notmuch-command " --version"))
+                   0 -1)))
+    (if (string-match "^notmuch\\( version\\)? \\(.*\\)$"
+                     long-string)
+       (match-string 2 long-string)
+      "unknown")))
+
+(defun notmuch-config-get (item)
+  "Return a value from the notmuch configuration."
+  ;; Trim off the trailing newline
+  (substring (shell-command-to-string
+             (concat notmuch-command " config get " item))
+             0 -1))
+
+(defun notmuch-database-path ()
+  "Return the database.path value from the notmuch configuration."
+  (notmuch-config-get "database.path"))
+
+(defun notmuch-user-name ()
+  "Return the user.name value from the notmuch configuration."
+  (notmuch-config-get "user.name"))
+
+(defun notmuch-user-primary-email ()
+  "Return the user.primary_email value from the notmuch configuration."
+  (notmuch-config-get "user.primary_email"))
+
+(defun notmuch-kill-this-buffer ()
+  "Kill the current buffer."
+  (interactive)
+  (kill-buffer (current-buffer)))
+
+;;
 
 ;; XXX: This should be a generic function in emacs somewhere, not
 ;; here.