From c5b6f124e8197c4e20278fb3f24086ee56f0e529 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sun, 23 Aug 2009 02:58:13 +0200 Subject: Autotoolification. --- elisp/Makefile.am | 31 +++++++++++++++ elisp/geiser-install.el.in | 5 +++ elisp/geiser-reload.el | 96 ++++++++++++++++++++++++++++++++++++++++++++++ elisp/geiser-version.el.in | 12 ++++++ elisp/geiser.el | 77 ++++--------------------------------- 5 files changed, 152 insertions(+), 69 deletions(-) create mode 100644 elisp/Makefile.am create mode 100644 elisp/geiser-install.el.in create mode 100644 elisp/geiser-reload.el create mode 100644 elisp/geiser-version.el.in (limited to 'elisp') diff --git a/elisp/Makefile.am b/elisp/Makefile.am new file mode 100644 index 0000000..790a033 --- /dev/null +++ b/elisp/Makefile.am @@ -0,0 +1,31 @@ +EXTRA_DIST = geiser-install.el.in + +dist_lisp_LISP = \ + geiser-autodoc.el \ + geiser-base.el \ + geiser-compile.el \ + geiser-completion.el \ + geiser-connection.el \ + geiser-custom.el \ + geiser-debug.el \ + geiser-doc.el \ + geiser-edit.el \ + geiser.el \ + geiser-eval.el \ + geiser-guile.el \ + geiser-impl.el \ + geiser-log.el \ + geiser-mode.el \ + geiser-plt.el \ + geiser-popup.el \ + geiser-reload.el \ + geiser-repl.el \ + geiser-syntax.el \ + geiser-xref.el \ + geiser-version.el + +lisp_LISP = geiser-install.el + +geiser-install.el: $(srcdir)/geiser.el $(srcdir)/geiser-install.el.in + @sed -e "s|@SCHEME_DIR[@]|$(datarootdir)/geiser|" $(srcdir)/geiser-install.el.in >$@ + diff --git a/elisp/geiser-install.el.in b/elisp/geiser-install.el.in new file mode 100644 index 0000000..da9f28f --- /dev/null +++ b/elisp/geiser-install.el.in @@ -0,0 +1,5 @@ +(require 'geiser) + +(setq geiser-scheme-dir "@SCHEME_DIR@") + +(provide 'geiser-install) diff --git a/elisp/geiser-reload.el b/elisp/geiser-reload.el new file mode 100644 index 0000000..f592164 --- /dev/null +++ b/elisp/geiser-reload.el @@ -0,0 +1,96 @@ +;; geiser-reload.el -- unload/load geiser packages + +;; Copyright (C) 2009 Jose Antonio Ortega Ruiz + +;; Author: Jose Antonio Ortega Ruiz +;; Start date: Sat Aug 22, 2009 23:04 + +;; This file 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. + +;; This file 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 this program. If not, see . + +;;; Code: + +(require 'geiser-impl) +(require 'geiser-repl) +(require 'geiser-mode) + + +;;; Reload: + +(defmacro geiser--features-list () + (quote '( + geiser-mode + geiser-repl + geiser-xref + geiser-edit + geiser-doc + geiser-debug + geiser-impl + geiser-completion + geiser-autodoc + geiser-compile + geiser-eval + geiser-connection + geiser-syntax + geiser-log + geiser-custom + geiser-base + geiser-popup + geiser + geiser-version + ))) + +(defun geiser-reload-unload-function () + (dolist (feature (geiser--features-list)) + (when (featurep feature) (unload-feature feature t))) + t) + +(defun geiser-unload () + (interactive) + (unload-feature 'geiser-reload)) + +(defun geiser-reload (&optional arg) + "Reload Geiser. +With prefix arg, prompts for the DIRECTORY from which Geiser should be +loaded." + (interactive "P") + (let* ((old-dir geiser-elisp-dir) + (dir (or (and arg (read-directory-name "New Geiser elisp dir: " + old-dir old-dir t old-dir)) + old-dir)) + (gf (expand-file-name "geiser.el" dir)) + (gfi (expand-file-name "geiser-install.el" dir))) + (unless (or (file-exists-p gfi) + (file-exists-p gf)) + (error "%s does not contain Geiser!" dir)) + (let ((installed-impls geiser-impl-installed-implementations) + (impls geiser-impl--impls) + (repls (geiser-repl--repl-list)) + (buffers (geiser-mode--buffers))) + (setq load-path (remove geiser-elisp-dir load-path)) + (geiser-unload) + (add-to-list 'load-path dir) + (setq geiser-impl-installed-implementations installed-impls) + (if (file-exists-p gfi) + (require 'geiser-install) + (load-file gf)) + (dolist (feature (geiser--features-list)) + (load-library (format "%s" feature))) + (geiser-impl--reload-implementations impls) + (geiser-repl--restore repls) + (geiser-mode--restore buffers) + (message "Geiser reloaded!")))) + + +(provide 'geiser-reload) +;;; geiser-reload.el ends here diff --git a/elisp/geiser-version.el.in b/elisp/geiser-version.el.in new file mode 100644 index 0000000..5b1258b --- /dev/null +++ b/elisp/geiser-version.el.in @@ -0,0 +1,12 @@ + +;;; Versioning: + +(defvar geiser-version-string "@PACKAGE_STRING@" + "Geiser's version as a string.") + +(defun geiser-version () + "Echoes Geiser's version." + (interactive) + (message "%s" geiser-version-string)) + +(provide 'geiser-version) diff --git a/elisp/geiser.el b/elisp/geiser.el index 1cc3c51..64d4efb 100644 --- a/elisp/geiser.el +++ b/elisp/geiser.el @@ -27,9 +27,6 @@ ;;; Locations: -(defvar geiser-root-dir nil - "Geiser's root directory.") - (defvar geiser-elisp-dir nil "Directory containing Geiser's Elisp files.") @@ -37,14 +34,19 @@ "Directory containing Geiser's Scheme files.") (setq geiser-elisp-dir (file-name-directory load-file-name)) -(setq geiser-scheme-dir (expand-file-name "../scheme/" geiser-elisp-dir)) -(setq geiser-root-dir (expand-file-name "../" geiser-elisp-dir)) - (add-to-list 'load-path geiser-elisp-dir) +(setq geiser-scheme-dir (expand-file-name "../scheme/" geiser-elisp-dir)) + ;;; Autoloads: +(autoload 'geiser-version "geiser-version.el" "Echo Geiser's version." t) + +(autoload 'geiser-unload "geiser-reload.el" "Unload all Geiser code." t) + +(autoload 'geiser-reload "geiser-reload.el" "Reload Geiser code." t) + (autoload 'geiser "geiser-repl.el" "Start a Geiser REPL, or switch to a running one." t) @@ -95,68 +97,5 @@ (eval-after-load "scheme" '(add-hook 'scheme-mode-hook 'turn-on-geiser-mode)) - -;;; Reload: - -(defmacro geiser--features-list () - (quote '( - geiser-mode - geiser-repl - geiser-xref - geiser-edit - geiser-doc - geiser-debug - geiser-impl - geiser-completion - geiser-autodoc - geiser-compile - geiser-eval - geiser-connection - geiser-syntax - geiser-log - geiser-custom - geiser-base - geiser-popup - ))) - -(defun geiser-unload-function () - (dolist (feature (geiser--features-list)) - (when (featurep feature) (unload-feature feature t))) - t) - -(defun geiser-unload () - (interactive) - (when (featurep 'geiser) (unload-feature 'geiser))) - -(defun geiser-reload (&optional arg) - "Reload Geiser. -With prefix arg, prompts for the DIRECTORY in which Geiser should be -loaded." - (interactive "P") - (let* ((dir (or (and arg (read-directory-name "New Geiser root dir: " - geiser-root-dir - geiser-root-dir - t - geiser-root-dir)) - geiser-root-dir)) - (geiser-main-file (expand-file-name "elisp/geiser.el" dir)) - (installed-impls geiser-impl-installed-implementations) - (impls (and (featurep 'geiser-impl) geiser-impl--impls)) - (repls (and (featurep 'geiser-repl) (geiser-repl--repl-list))) - (buffers (and (featurep 'geiser-mode) (geiser-mode--buffers)))) - (unless (file-exists-p geiser-main-file) - (error "%s does not contain Geiser!" dir)) - (geiser-unload) - (setq load-path (remove geiser-elisp-dir load-path)) - (setq geiser-impl-installed-implementations installed-impls) - (load-file geiser-main-file) - (dolist (feature (geiser--features-list)) - (load-library (format "%s" feature))) - (geiser-impl--reload-implementations impls) - (geiser-repl--restore repls) - (geiser-mode--restore buffers) - (message "Geiser reloaded!"))) - (provide 'geiser) -;;; geiser.el ends here -- cgit v1.2.3