guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New Guile Emacs


From: Keisuke Nishida
Subject: New Guile Emacs
Date: Wed, 25 Apr 2001 09:48:10 -0400
User-agent: Wanderlust/2.4.0 (Rio) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/21.0.102 (i686-pc-linux-gnu) MULE/5.0 (SAKAKI)

Probably there are some people who are interested, so I have
included them in guile-core.

Now you can use Guile's modules in Emacs Lisp like this:

  (guile-import current-module)
  (guile-import module-ref)

  (setq assq (module-ref (current-module) 'assq))
    => ("<guile>" %%1%% . "#<primitive-procedure assq>")

  (guile-use-modules (ice-9 documentation))

  (object-documentation assq)
    =>
 " - primitive: assq key alist
   - primitive: assv key alist
   - primitive: assoc key alist
       Fetches the entry in ALIST that is associated with KEY.  To decide
       whether the argument KEY matches a particular entry in ALIST,
       `assq' compares keys with `eq?', `assv' uses `eqv?' and `assoc'
       uses `equal?'.  If KEY cannot be found in ALIST (according to
       whichever equality predicate is in use), then `#f' is returned.
       These functions return the entire alist entry found (i.e. both the
       key and the value)."

Probably we can use GTK in Emacs Lisp.  Can anybody try it?

I have also implemented Guile Scheme mode and Scheme Interaction mode.
Just put the following lines in your ~/.emacs:

  (require 'guile-scheme)
  (setq initial-major-mode 'scheme-interaction-mode)

Currently, the following commands are available:

  M-TAB    guile-scheme-complete-symbol
  M-C-x    guile-scheme-eval-define
  C-x C-e  guile-scheme-eval-last-sexp
  C-c C-b  guile-scheme-eval-buffer
  C-c C-r  guile-scheme-eval-region
  C-c :    guile-scheme-eval-expression

I'll write more commands soon, or if you want to hack, please take
a look at the following files:

  guile-core/ice-9/channel.scm       ;; object channel
  guile-core/emacs/guile.el          ;; object adapter
  guile-core/emacs/guile-emacs.scm   ;; Guile <-> Emacs channels
  guile-core/emacs/guile-scheme.el   ;; Guile Scheme mode

As always, there are more than one bugs ;)

Thanks,
Keisuke



reply via email to

[Prev in Thread] Current Thread [Next in Thread]