;; Copyright (c) 2022-2026 Jakub Czajka <jakub@ekhem.eu.org>
;; License: GPL-3.0 or later.
+;; In order to compile guile files for GNU Guix, the compiler need to have the
+;; necessary symbols in its GUILE_LOAD_PATH and precompiled symbols in
+;; GUILE_LOAD_COMPILED_PATH. Unfortunately, the guild command comes from the
+;; root profile and may have outdated libraries compared to the code in the home
+;; profile. Thus, it is necessary to update these load paths to point to the home
+;; guile installation.
((scheme-mode
. ((eval . (setenv "GUIX_PACKAGE_PATH"
(expand-file-name
-;; Copyright (c) 2022-2024 Jakub Czajka <jakub@ekhem.eu.org>
+;; Copyright (c) 2022-2026 Jakub Czajka <jakub@ekhem.eu.org>
;; License: GPL-3.0 or later.
;;
-;; conf-lisp.el - configuration for list mode.
+;; conf-lisp.el - configuration for Lisp and Scheme editing.
(require 'conf-package)
;; `electric-pair-mode' automatically adds closing parens.
(emacs-lisp-mode . electric-pair-mode))
+;; Geiser integrates with the guile REPL for symbols and documentation.
+;; geiser-guile is a guile backend for geiser.
+(use-package geiser-guile
+ :when
+ (conf:executables-p (list "guile"))
+ :ensure t
+ :hook
+ (scheme-mode . geiser-mode))
+
+;; See comment in .dir-locals.el.
+(use-package flymake-guile
+ :when
+ (conf:executables-p (list "guile"))
+ :ensure t
+ :hook
+ (scheme-mode . flymake-guile)
+ (scheme-mode . flymake-mode))
+
(provide 'conf-lisp)