;;; Code:
+(require 'font-lock)
+(require 'riece-options)
+(require 'riece-compat)
+(require 'riece-misc)
+
(defgroup riece-addon-list nil
"Add-on management"
:tag "Addon"
(defcustom riece-addon-list-mark-face-alist
'((?+ . riece-addon-list-enabled-face)
(?- . riece-addon-list-disabled-face)
- (?= . riece-addon-list-unsupported-face)
+ (?! . riece-addon-list-unsupported-face)
(?? . riece-addon-list-unknown-face))
"An alist mapping marks on riece-addon-list-buffer to faces."
:type 'list
:group 'riece-addon-list)
(defcustom riece-addon-list-font-lock-keywords
- '(("^\\([-+=?] [^:]+\\): \\(.*\\)"
+ '(("^\\([-+!?] [^:]+\\): \\(.*\\)"
(1 (cdr (assq (aref (match-string 1) 0)
riece-addon-list-mark-face-alist)))
(2 riece-addon-list-description-face)))
(define-key keymap "-" 'riece-command-disable-addon)
(define-key keymap "n" 'next-line)
(define-key keymap "p" 'previous-line)
- (define-key keymap " " 'scroll-up-command)
- (define-key keymap [delete] 'scroll-down-command)
+ (define-key keymap " " 'scroll-up)
+ (define-key keymap [delete] 'scroll-down)
(define-key keymap "q" 'bury-buffer)
keymap))
(kill-all-local-variables)
(buffer-disable-undo)
(setq major-mode 'riece-addon-list-mode
- mode-name "AddOns"
+ mode-name "AddOns"
mode-line-buffer-identification
- (riece-mode-line-buffer-identification '("Riece: "))
+ (riece-mode-line-buffer-identification '("Riece: %12b"))
truncate-lines t
buffer-read-only t)
(use-local-map riece-addon-list-mode-map)
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults '(riece-addon-list-font-lock-keywords t))
+ ;; In XEmacs, auto-initialization of font-lock is not affective
+ ;; when buffer-file-name is not set.
+ (font-lock-set-defaults)
(run-hooks 'riece-addon-list-mode-hook))
(defun riece-command-list-addons ()
(riece-addon-list-mode)
(let ((inhibit-read-only t)
buffer-read-only
- (pointer riece-addons)
+ (pointer (sort (copy-sequence riece-addons)
+ (lambda (symbol1 symbol2)
+ (string-lessp (symbol-name symbol1)
+ (symbol-name symbol2)))))
enabled description point)
(erase-buffer)
(riece-kill-all-overlays)
(if (not (featurep (car pointer)))
??
(if (null enabled)
- ?=
+ ?!
(if (symbol-value enabled)
?+
?-)))
+ The add-on is enabled.
- The add-on is disabled.
- = The add-on doesn't support enable/disable operation.
+ ! The add-on doesn't support enable/disable operation.
? The add-on status is unknown.
")
(insert (substitute-command-keys "
(delete-char 1)
(insert "-")
(put-text-property point (point) 'riece-addon addon))))))
-
+
(provide 'riece-addon)
;;; riece-addon.el ends here