X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece-addon.el;h=61e30f95a729993ef0b3099ca9a3704c64030b50;hb=HEAD;hp=154ad2e3fb62c78aaa88eb2997be337971bbf15f;hpb=3f34ca6c46e63e2a6d95b577dff7bbb08ef91031;p=elisp%2Friece.git diff --git a/lisp/riece-addon.el b/lisp/riece-addon.el index 154ad2e..61e30f9 100644 --- a/lisp/riece-addon.el +++ b/lisp/riece-addon.el @@ -19,8 +19,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Code: @@ -29,6 +29,7 @@ (require 'riece-compat) (require 'riece-misc) (require 'riece-addon-modules) +(require 'riece-mcat) (defgroup riece-addon-list nil "Add-on listing." @@ -93,7 +94,7 @@ (?? . riece-addon-list-uninstalled-face) (? . riece-addon-list-unloaded-face)) "An alist mapping marks on riece-addon-list-buffer to faces." - :type 'list + :type '(repeat (cons character symbol)) :group 'riece-addon-list) (defcustom riece-addon-list-font-lock-keywords @@ -105,6 +106,9 @@ :type '(repeat (list string)) :group 'riece-addon-list) +(eval-when-compile + (autoload 'riece-command-save-variables "riece-commands")) + (defvar riece-addon-list-mode-map (let ((keymap (make-sparse-keymap))) (define-key keymap "+" 'riece-command-enable-addon) @@ -117,6 +121,7 @@ (define-key keymap " " 'scroll-up) (define-key keymap [delete] 'scroll-down) (define-key keymap "q" 'bury-buffer) + (define-key keymap "s" 'riece-command-save-variables) keymap)) (defun riece-load-and-build-addon-dependencies (addons) @@ -201,12 +206,12 @@ (defun riece-insinuate-addon-1 (addon verbose) (if (get addon 'riece-addon-insinuated) (if verbose - (message "Add-on %S is already insinuated" addon)) + (message (riece-mcat "Add-on %S is already insinuated") addon)) (require addon) (funcall (intern (concat (symbol-name addon) "-insinuate"))) (put addon 'riece-addon-insinuated t) (if verbose - (message "Add-on %S is insinuated" addon)) + (message (riece-mcat "Add-on %S is insinuated") addon)) (unless (get addon 'riece-addon-default-disabled) (riece-enable-addon addon t)))) @@ -228,7 +233,8 @@ (setq addons (nreverse addons)) (if (and (> (length addons) 1) (eq verbose 'ask) - (not (y-or-n-p (format "%s will be insinuated. Continue? " + (not (y-or-n-p (format (riece-mcat + "%s will be insinuated. Continue? ") (mapconcat #'symbol-name addons ", "))))) (error "Insinuate operation was cancelled")) (while addons @@ -238,7 +244,7 @@ (defun riece-uninstall-addon (addon &optional verbose) (if (not (get addon 'riece-addon-insinuated)) (if verbose - (message "Add-on %S is not insinuated" addon)) + (message (riece-mcat "Add-on %S is not insinuated") addon)) (let ((entry (assq addon riece-addon-dependencies)) (uninstall (intern-soft (concat (symbol-name addon) "-uninstall")))) (if entry @@ -261,35 +267,35 @@ (riece-resolve-addons (delq addon (mapcar #'car riece-addon-dependencies)))))) (if verbose - (message "Add-on %S is uninstalled" addon))))) + (message (riece-mcat "Add-on %S is uninstalled") addon))))) (defun riece-enable-addon (addon &optional verbose) (unless (get addon 'riece-addon-insinuated) (error "Add-on %S is not insinuated" addon)) (if (get addon 'riece-addon-enabled) (if verbose - (message "Add-on %S is already enabled" addon)) + (message (riece-mcat "Add-on %S is already enabled") addon)) (let ((enable (intern-soft (concat (symbol-name addon) "-enable")))) (if (and enable (fboundp enable)) (funcall enable)) (put addon 'riece-addon-enabled t) (if verbose - (message "Add-on %S enabled" addon))))) + (message (riece-mcat "Add-on %S enabled") addon))))) (defun riece-disable-addon (addon &optional verbose) (unless (get addon 'riece-addon-insinuated) (error "Add-on %S is not insinuated" addon)) (if (not (get addon 'riece-addon-enabled)) (if verbose - (message "Add-on %S is already disabled" addon)) + (message (riece-mcat "Add-on %S is already disabled") addon)) (let ((disable (intern-soft (concat (symbol-name addon) "-disable")))) (if (and disable (fboundp disable)) (funcall disable)) (put addon 'riece-addon-enabled nil) (if verbose - (message "Add-on %S disabled" addon))))) + (message (riece-mcat "Add-on %S disabled") addon))))) (put 'riece-addon-list-mode 'font-lock-defaults '(riece-addon-list-font-lock-keywords t)) @@ -329,8 +335,8 @@ All normal editing commands are turned off." (cons (cons (car (car pointer)) (if (and description (boundp description)) - (symbol-value description) - "(no description)")) + (riece-mcat (symbol-value description)) + (riece-mcat "(no description)"))) module-description-alist) pointer (cdr pointer))) (setq pointer riece-addon-modules) @@ -338,7 +344,8 @@ All normal editing commands are turned off." (unless (assq (car (car pointer)) module-description-alist) (setq module-description-alist - (cons (car pointer) module-description-alist))) + (cons (cons (car (car pointer)) (riece-mcat (cdr (car pointer)))) + module-description-alist))) (setq pointer (cdr pointer))) (erase-buffer) (riece-kill-all-overlays) @@ -368,15 +375,15 @@ All normal editing commands are turned off." (cdr (car pointer)))) (put-text-property point (point) 'riece-addon (car (car pointer))) (setq pointer (cdr pointer))) - (insert " + (insert (riece-mcat " Symbols in the leftmost column: + The add-on is enabled. - The add-on is disabled. ? The add-on is not insinuated. The add-on is not loaded. -") - (insert (substitute-command-keys " +")) + (insert (substitute-command-keys (riece-mcat " Useful keys: `\\[riece-command-enable-addon]' to enable the current add-on. @@ -384,7 +391,8 @@ Useful keys: `\\[riece-command-insinuate-addon]' to insinuate the current add-on. `\\[riece-command-uninstall-addon]' to uninstall the current add-on. `\\[riece-command-unload-addon]' to unload the current add-on. -")) + `\\[riece-command-save-variables]' to save the current setting. +"))) (goto-char (point-min)) (pop-to-buffer (current-buffer)) (delete-other-windows))) @@ -403,7 +411,7 @@ Useful keys: (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) (intern-soft - (completing-read "Add-on: " + (completing-read (riece-mcat "Add-on: ") (mapcar (lambda (dependency) (list (symbol-name (car dependency)))) riece-addon-dependencies) @@ -414,6 +422,7 @@ Useful keys: (and enabled (null (symbol-value enabled))))) t))))) + (riece-command-insinuate-addon addon) (riece-enable-addon addon t) (when (eq major-mode 'riece-addon-list-mode) (riece-command-list-addons) @@ -425,7 +434,7 @@ Useful keys: (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) (intern-soft - (completing-read "Add-on: " + (completing-read (riece-mcat "Add-on: ") (mapcar (lambda (dependency) (list (symbol-name (car dependency)))) riece-addon-dependencies) @@ -447,12 +456,13 @@ Useful keys: (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) (intern-soft - (completing-read "Add-on: " + (completing-read (riece-mcat "Add-on: ") (mapcar (lambda (dependency) (list (symbol-name (car dependency)))) riece-addon-modules) (lambda (pointer) - (not (get (car pointer) 'riece-addon-insinuated))) + (not (get (intern-soft (car pointer)) + 'riece-addon-insinuated))) t))))) (riece-insinuate-addon addon 'ask) (when (eq major-mode 'riece-addon-list-mode) @@ -465,12 +475,13 @@ Useful keys: (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) (intern-soft - (completing-read "Add-on: " + (completing-read (riece-mcat "Add-on: ") (mapcar (lambda (dependency) (list (symbol-name (car dependency)))) riece-addon-dependencies) (lambda (pointer) - (get (car pointer) 'riece-addon-insinuated)) + (get (intern-soft (car pointer)) + 'riece-addon-insinuated)) t))))) (riece-uninstall-addon addon t) (when (eq major-mode 'riece-addon-list-mode) @@ -483,18 +494,19 @@ Useful keys: (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) (intern-soft - (completing-read "Add-on: " + (completing-read (riece-mcat "Add-on: ") (mapcar (lambda (dependency) (list (symbol-name (car dependency)))) riece-addon-dependencies) (lambda (pointer) - (get (car pointer) 'riece-addon-insinuated)) + (get (intern-soft (car pointer)) + 'riece-addon-insinuated)) t))))) (riece-uninstall-addon addon t) (if (get addon 'riece-addon-not-unloadable) - (message "Add-on %S is not allowed to unload" addon) + (message (riece-mcat "Add-on %S is not allowed to unload") addon) (unload-feature addon) - (message "Add-on %S is unloaded" addon)) + (message (riece-mcat "Add-on %S is unloaded") addon)) (when (eq major-mode 'riece-addon-list-mode) (riece-command-list-addons) (riece-addon-list-set-point addon)))