+(require 'font-lock)
+(require 'riece-options)
+(require 'riece-compat)
+(require 'riece-misc)
+
+(defgroup riece-addon-list nil
+ "Add-on listing."
+ :tag "Addon list"
+ :prefix "riece-addon-list-"
+ :group 'riece)
+
+(defgroup riece-addon-list-faces nil
+ "Faces for riece-addon-list-mode."
+ :tag "Faces"
+ :prefix "riece-addon-list-"
+ :group 'riece-addon-list)
+
+(defface riece-addon-list-enabled-face
+ '((((class color) (background dark))
+ (:foreground "PaleTurquoise" :bold t))
+ (t
+ (:bold t)))
+ "Face used for displaying the enabled addon."
+ :group 'riece-addon-list-faces)
+(defvar riece-addon-list-enabled-face 'riece-addon-list-enabled-face)
+
+(defface riece-addon-list-disabled-face
+ '((((class color) (background dark))
+ (:foreground "PaleTurquoise" :italic t))
+ (t
+ (:italic t)))
+ "Face used for displaying the disabled addon."
+ :group 'riece-addon-list-faces)
+(defvar riece-addon-list-disabled-face 'riece-addon-list-disabled-face)
+
+(defface riece-addon-list-unsupported-face
+ '((((class color) (background dark))
+ (:foreground "PaleTurquoise"))
+ (t
+ ()))
+ "Face used for displaying the unsupported addon."
+ :group 'riece-addon-list-faces)
+(defvar riece-addon-list-unsupported-face 'riece-addon-list-unsupported-face)
+
+(defface riece-addon-list-unknown-face
+ '((t
+ (:foreground "red")))
+ "Face used for displaying the unknown addon."
+ :group 'riece-addon-list-faces)
+(defvar riece-addon-list-unknown-face 'riece-addon-list-unknown-face)
+
+(defface riece-addon-list-description-face
+ '((((class color)
+ (background dark))
+ (:foreground "lightyellow"))
+ (((class color)
+ (background light))
+ (:foreground "blue4"))
+ (t
+ ()))
+ "Face used for displaying the description addon."
+ :group 'riece-addon-list-faces)
+(defvar riece-addon-list-description-face 'riece-addon-list-description-face)
+
+(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-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)))
+ "Default expressions to addon in riece-addon-list-mode."
+ :type '(repeat (list string))
+ :group 'riece-addon-list)
+