Make a root 'guix-buffer-define-interface' macro. It should generate a common code for any type of interface. Inherit 'guix-info-define-interface' and 'guix-list-define-interface' from it. They should provide a general 'info'/'list' interface for any data. Finally, make 'guix-ui-define-interface' for the common code for interfaces to Guix packages and generations, and inherit 'guix-ui-info-define-interface' and 'guix-ui-list-define-interface' from it. * emacs/guix-base.el (guix-define-buffer-type): Rename to... (guix-buffer-define-interface): ... this. Rename internal variables ('buf-' -> 'buffer-'). Move ':required' keyword to 'guix-ui-define-interface'. * emacs/guix-info.el (guix-info-define-interface): New macro. (guix-info-font-lock-keywords): New variable. * emacs/guix-list.el (guix-list-define-entry-type): Rename to... (guix-list-define-interface): ... this. (guix-list-font-lock-keywords): New variable. (guix-list-describe-ids): Move and rename to... * emacs/guix-ui.el: New file. (guix-ui-list-describe): ... this. (guix-ui-define-interface, guix-ui-info-define-interface) (guix-ui-list-define-interface): New macros. (guix-ui-font-lock-keywords): New variable. * emacs.am (ELFILES): Add "emacs/guix-ui.el"
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
# GNU Guix --- Functional package management for GNU
|
|
# Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
|
#
|
|
# This file is part of GNU Guix.
|
|
#
|
|
# GNU Guix is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or (at
|
|
# your option) any later version.
|
|
#
|
|
# GNU Guix is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
AUTOLOADS = emacs/guix-autoloads.el
|
|
|
|
ELFILES = \
|
|
emacs/guix-backend.el \
|
|
emacs/guix-base.el \
|
|
emacs/guix-build-log.el \
|
|
emacs/guix-command.el \
|
|
emacs/guix-devel.el \
|
|
emacs/guix-emacs.el \
|
|
emacs/guix-entry.el \
|
|
emacs/guix-external.el \
|
|
emacs/guix-geiser.el \
|
|
emacs/guix-guile.el \
|
|
emacs/guix-help-vars.el \
|
|
emacs/guix-history.el \
|
|
emacs/guix-info.el \
|
|
emacs/guix-init.el \
|
|
emacs/guix-list.el \
|
|
emacs/guix-messages.el \
|
|
emacs/guix-pcomplete.el \
|
|
emacs/guix-popup.el \
|
|
emacs/guix-prettify.el \
|
|
emacs/guix-profiles.el \
|
|
emacs/guix-read.el \
|
|
emacs/guix-ui.el \
|
|
emacs/guix-utils.el \
|
|
emacs/guix.el
|
|
|
|
if HAVE_EMACS
|
|
|
|
dist_lisp_DATA = \
|
|
$(ELFILES) \
|
|
$(AUTOLOADS)
|
|
|
|
nodist_lisp_DATA = emacs/guix-config.el
|
|
|
|
$(AUTOLOADS): $(ELFILES)
|
|
$(EMACS) --batch --eval \
|
|
"(let ((backup-inhibited t) \
|
|
(generated-autoload-file \
|
|
(expand-file-name \"$(AUTOLOADS)\" \"$(srcdir)\"))) \
|
|
(update-directory-autoloads \
|
|
(expand-file-name \"emacs\" \"$(srcdir)\")))"
|
|
|
|
endif HAVE_EMACS
|