1
3
Fork
You've already forked guile
0
Support for Guile in Geiser
  • Emacs Lisp 49.8%
  • Tree-sitter Query 32.9%
  • Scheme 17.3%
Find a file
2026年05月16日 01:19:09 +01:00
src/geiser hack to locate syntax objects in (guile) 2026年05月12日 00:25:25 +02:00
geiser-guile.el version bump 2026年05月16日 01:19:09 +01:00
license license and readme files 2020年07月20日 04:59:21 +01:00
readme.org fix: geiser-guile.texi re-generated from readme.org 2024年03月14日 19:50:57 +00:00

Geiser and Guile talk to each other

Overview

This package provides support for using GNU Guile in Emacs with Geiser.

Provided geiser is installed in your system, if this package's directory is in your load path, just add (require 'geiser-guile) to your initialisation files and then M-x geiser-guile to start a REPL. Scheme files with a Guile module declaration should be automatically recognised as Guile-flavoured Geiser buffers.

The easiest way of installing this package is using NonGNU Elpa or MELPA. If you're in Emacs 28 or higher, the former is already enabled and all you need is the familiar

 M-x install-package RET geiser-guile RET

That will also install geiser, and its fine info manual. Please refer to it (or its online version) for a general description of how geiser schemes work. We provide below some additional details specific to geiser-guile.

Start up

When launching the Guile REPL, geiser will invoke the binary configured in geiser-guile-binary (simply "guile" by default) which in turn will load geiser-guile-init-file, if any.

Note, however, that specifying geiser-guile-init-file is not equivalent to changing Guile's initialization file (~/.guile), because the former is loaded using the -l flag, together with -q to disable loading the second. But there are subtle differences in the way Guile loads the initialization file versus how it loads a file specified via the -l flag. If what you want is just loading ~/.guile, leave geiser-guile-init-file alone and set geiser-guile-load-init-file to t instead.

One can also provide a global list of paths to add to Guile's %load-path via geiser-guile-load-path.

Texinfo docstrings

You can enable processing of texinfo in docstrings by customizing geiser-guile-doc-process-texinfo to a non-nil value. If enabled and docstring is a valid texinfo snippet, it will be converted into a plain text before being displayed.

Debugging support

Guile supports all the debugger commands supported by Geiser (it's in fact used as the reference for the implementation and design of that support). When the REPL would normally enter its debug mode, with a prompt of the style:

scheme@(guile-user) [1]>

showing a debugging level, Geiser will instead bring you to the *Geiser Dbg* buffer, where you can access a menu of debugging commands via the , (comma) key.

The geiser-guile customization group will show you, among many other, a few flags fine-tuning interaction with the debugger, as well as things like the detail level of error messages (e.g. via geiser-guile-warning-level).

Tramp support

Geiser guile can be used remotely via tramp connections: the REPL process will be run in the machine where the tramp-accessed file lives. Implemented by Felipe Lema.