summaryrefslogtreecommitdiff
path: root/elisp
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-08-23 02:58:13 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-08-23 02:58:13 +0200
commitc59998e52dec584d17542059c93692cfbd731bbe (patch)
treeb763e5b5b9c7f8dc40f48072308b8b995e6f51b1 /elisp
parent9187b776fdfbb73e0ea6ebe1d203ed2c838fbdbd (diff)
downloadgeiser-c59998e52dec584d17542059c93692cfbd731bbe.tar.gz
geiser-c59998e52dec584d17542059c93692cfbd731bbe.tar.bz2
Autotoolification.
Diffstat (limited to 'elisp')
-rw-r--r--elisp/Makefile.am31
-rw-r--r--elisp/geiser-install.el.in5
-rw-r--r--elisp/geiser-reload.el96
-rw-r--r--elisp/geiser-version.el.in12
-rw-r--r--elisp/geiser.el77
5 files changed, 152 insertions, 69 deletions
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 <jao@gnu.org>
+;; 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 <http://www.gnu.org/licenses/>.
+
+;;; 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)
@@ -96,67 +98,4 @@
'(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