]> git.eshelyaron.com Git - emacs.git/commitdiff
Improvements to sieve script usability
authorEric Abrahamsen <eric@ericabrahamsen.net>
Mon, 8 Jul 2019 17:53:07 +0000 (10:53 -0700)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Mon, 8 Jul 2019 17:53:07 +0000 (10:53 -0700)
* lisp/net/sieve-mode.el (sieve-mode-menu): Add
  `sieve-upload-and-kill' to the mode menu.

* lisp/net/sieve.el (sieve-manage-mode-menu): Add `sieve-manage-quit'
  to the mode menu.
  (sieve-help): Mention quitting in mode help.
  (sieve-manage-mode): Directly derive from special-mode.
  (sieve-edit-script): Start off with unmodified buffer.
  (sieve-upload): Set buffer unmodified after successful upload.

Changes are aimed at 1) increasing discoverability of commands and 2)
using buffer modification to help users understand what's happening.

lisp/net/sieve.el

index d237c1e7c422ecd509285dddb8490c12d00724c9..55fea160f64e2f9e43410552a6a999beddae030b 100644 (file)
@@ -137,16 +137,15 @@ require \"fileinto\";
   '("Manage Sieve"
     ["Edit script" sieve-edit-script t]
     ["Activate script" sieve-activate t]
-    ["Deactivate script" sieve-deactivate t]))
+    ["Deactivate script" sieve-deactivate t]
+    ["Quit and close connection" sieve-manage-quit t]))
 
-(define-derived-mode sieve-manage-mode fundamental-mode "Sieve-manage"
+(define-derived-mode sieve-manage-mode special-mode "Sieve-manage"
   "Mode used for sieve script management."
   (buffer-disable-undo (current-buffer))
   (setq truncate-lines t)
   (easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map))
 
-(put 'sieve-manage-mode 'mode-class 'special)
-
 ;; Commands used in sieve-manage mode:
 
 (defun sieve-manage-quit ()
@@ -215,6 +214,7 @@ require \"fileinto\";
     (sieve-mode)
     (setq sieve-buffer-script-name name)
     (goto-char (point-min))
+    (set-buffer-modified-p nil)
     (message
      (substitute-command-keys
       "Press \\[sieve-upload] to upload script to server."))))
@@ -257,7 +257,7 @@ Used to bracket operations which move point in the sieve-buffer."
       ;; would need minor-mode for log-edit-mode
       (describe-function 'sieve-mode)
     (message "%s" (substitute-command-keys
-             "`\\[sieve-edit-script]':edit `\\[sieve-activate]':activate `\\[sieve-deactivate]':deactivate `\\[sieve-remove]':remove"))))
+             "`\\[sieve-edit-script]':edit `\\[sieve-activate]':activate `\\[sieve-deactivate]':deactivate `\\[sieve-remove]':remove `\\[sieve-manage-quit]':quit"))))
 
 ;; Create buffer:
 
@@ -355,8 +355,10 @@ Used to bracket operations which move point in the sieve-buffer."
                    (or name sieve-buffer-script-name script-name)
                    script sieve-manage-buffer))
        (if (sieve-manage-ok-p err)
-           (message (substitute-command-keys
-                     "Sieve upload done.  Use \\[sieve-manage] to manage scripts."))
+            (progn
+             (message (substitute-command-keys
+                       "Sieve upload done.  Use \\[sieve-manage] to manage scripts."))
+              (set-buffer-modified-p nil))
          (message "Sieve upload failed: %s" (nth 2 err)))))))
 
 ;;;###autoload