X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-addon.el;h=f389349081188792e6489332c8d34f6a2ea30083;hp=4ceb00ee6804e281a39a39c3153392f5dcc15614;hb=4af5fba1d38e40294a232720956273158b0b1994;hpb=e181f1a7f1ea36733e4604ffb97814d50c4e2295 diff --git a/lisp/riece-addon.el b/lisp/riece-addon.el index 4ceb00e..f389349 100644 --- a/lisp/riece-addon.el +++ b/lisp/riece-addon.el @@ -24,6 +24,11 @@ ;;; Code: +(require 'font-lock) +(require 'riece-options) +(require 'riece-compat) +(require 'riece-misc) + (defgroup riece-addon-list nil "Add-on management" :tag "Addon" @@ -139,7 +144,7 @@ (setq addons (cdr addons))) dependencies)) -(defun riece-resolve-addons (addons) +(defun riece-resolve-addon-dependencies (addons) (let ((pointer addons) dependencies queue) ;; Uniquify, first. @@ -174,6 +179,14 @@ (error "Circular add-on dependency found")) (nreverse addons))) +(defun riece-resolve-addon (addons) + (riece-resolve-addon-dependencies + (append addons + (mapcar + (lambda (name) + (intern (file-name-sans-extension name))) + (directory-files riece-addon-directory nil "\\`[^.]" t t))))) + (defun riece-insinuate-addon (addon &optional verbose) (require addon) ;implicit dependency (funcall (intern (concat (symbol-name addon) "-insinuate"))) @@ -214,7 +227,7 @@ All normal editing commands are turned off." (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: %12b")) truncate-lines t @@ -233,7 +246,10 @@ All normal editing commands are turned off." (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) @@ -280,18 +296,18 @@ Useful keys: (list (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) - (completing-read "Add-on: " - (mapcar (lambda (addon) - (list (symbol-name addon))) - riece-addons) - (lambda (pointer) - (let ((enabled - (intern-soft (concat (symbol-name - (car pointer)) - "-enabled")))) - (and enabled - (null (symbol-value enabled))))) - t)))) + (intern-soft + (completing-read "Add-on: " + (mapcar (lambda (addon) + (list (symbol-name addon))) + riece-addons) + (lambda (pointer) + (let ((enabled + (intern-soft (concat (car pointer) + "-enabled")))) + (and enabled + (null (symbol-value enabled))))) + t))))) (riece-enable-addon addon t) (let ((enabled (intern-soft (concat (symbol-name addon) "-enabled")))) (if (and (eq major-mode 'riece-addon-list-mode) @@ -311,18 +327,18 @@ Useful keys: (list (or (if (eq major-mode 'riece-addon-list-mode) (get-text-property (point) 'riece-addon)) - (completing-read "Add-on: " - (mapcar (lambda (addon) - (list (symbol-name addon))) - riece-addons) - (lambda (pointer) - (let ((enabled - (intern-soft (concat (symbol-name - (car pointer)) - "-enabled")))) - (and enabled - (symbol-value enabled)))) - t)))) + (intern-soft + (completing-read "Add-on: " + (mapcar (lambda (addon) + (list (symbol-name addon))) + riece-addons) + (lambda (pointer) + (let ((enabled + (intern-soft (concat (car pointer) + "-enabled")))) + (and enabled + (symbol-value enabled)))) + t))))) (riece-disable-addon addon t) (let ((enabled (intern-soft (concat (symbol-name addon) "-enabled")))) (if (and (eq major-mode 'riece-addon-list-mode) @@ -336,7 +352,7 @@ Useful keys: (delete-char 1) (insert "-") (put-text-property point (point) 'riece-addon addon)))))) - + (provide 'riece-addon) ;;; riece-addon.el ends here