diff options
| -rw-r--r-- | .gitignore | 11 | ||||
| -rw-r--r-- | AUTHORS | 0 | ||||
| -rw-r--r-- | INSTALL | 0 | ||||
| -rw-r--r-- | Makefile.am | 1 | ||||
| -rw-r--r-- | NEWS | 0 | ||||
| -rw-r--r-- | configure.ac | 33 | ||||
| -rw-r--r-- | elisp/Makefile.am | 31 | ||||
| -rw-r--r-- | elisp/geiser-install.el.in | 5 | ||||
| -rw-r--r-- | elisp/geiser-reload.el | 96 | ||||
| -rw-r--r-- | elisp/geiser-version.el.in | 12 | ||||
| -rw-r--r-- | elisp/geiser.el | 77 | 
11 files changed, 197 insertions, 69 deletions
| @@ -2,3 +2,14 @@  /scheme/guile/geiser/eval.go  /scheme/guile/geiser/introspection.go  /scheme/guile/geiser/file.go +/Makefile +/Makefile.in +/aclocal.m4 +/configure +/elisp-comp +/elisp/Makefile.in +/install-sh +/missing +/scheme/Makefile.in +/scheme/guile/Makefile.in +/scheme/guile/geiser/Makefile.in diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..c1d4ac4 --- /dev/null +++ b/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = elisp scheme diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..f8ed7ec --- /dev/null +++ b/configure.ac @@ -0,0 +1,33 @@ +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +AC_INIT([GNU Geiser],[0.0.7],[jao@gnu.org],geiser) +AC_CONFIG_SRCDIR([elisp/geiser.el]) +AM_INIT_AUTOMAKE + +AC_PROG_MAKE_SET +AC_PROG_INSTALL +AC_PROG_MKDIR_P +AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, no) +AC_CHECK_PROG(TEXI2PDF, texi2pdf, texi2pdf, false) + +AM_PATH_LISPDIR + +dnl scheme/plt/Makefile +dnl scheme/plt/geiser/Makefile + +AC_CONFIG_FILES([ +Makefile +elisp/Makefile +elisp/geiser-version.el +scheme/Makefile +]) + +AC_OUTPUT 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 | 
