The official Guix documentation describes [The Perfect Setup](https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html) for hacking on Guix.
I have followed this description and set up everything like described, but still Geiser does not work fully. I thought that this was supposed to give me completion capabilities and make it possible to go to the definition of things. I can go to definition of some things, but only very few. Most things is not possible. Completion seems to be only based on text in the current buffer.
# My Emacs configurations
(use-package geiser
:ensure t
:custom
(geiser-default-implementation 'guile)
(geiser-active-implementations '(guile))
(geiser-implementations-alist '(((regexp "\\.scm$") guile))))
(use-package geiser-guile
:ensure t
:config
(add-to-list 'geiser-guile-load-path "/home/lars/code/forks/guix")
(add-to-list 'geiser-guile-load-path "/home/lars/code/guix/modules")
(add-to-list 'geiser-guile-load-path "/home/lars/code/guix"))
(with-eval-after-load "geiser-guile"
(add-to-list 'geiser-guile-load-path "/home/lars/code/forks/guix")
(add-to-list 'geiser-guile-load-path "/home/lars/code/guix/modules")
(add-to-list 'geiser-guile-load-path "/home/lars/code/guix"))
# REPL
I invoke the Geiser REPL in Emacs with M-x geiser-guile
or M-x geiser
.
The output in the Geiser REPL looks like this:
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)>
Note that the prompt says guile-user
, but I think it should say guix-user
.
However, if I start the Guix REPL by running guix repl
in a terminal the output looks like this:
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guix-user)>
Note that here it says guix-user
.
When trying to 'use' the guix
module in Geiser REPL:
,use (guix)
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/lars/code/forks/guix/guix.scm
;;; compiling /home/lars/code/forks/guix/guix/packages.scm
;;; compiling /home/lars/code/forks/guix/guix/utils.scm
;;; WARNING: compilation of /home/lars/code/forks/guix/guix/utils.scm failed:
;;; no code for module (guix config)
;;; WARNING: compilation of /home/lars/code/forks/guix/guix/packages.scm failed:
;;; no code for module (guix config)
;;; compiling /home/lars/code/forks/guix/guix/store.scm
;;; WARNING: compilation of /home/lars/code/forks/guix/guix/store.scm failed:
;;; no code for module (guix config)
;;; WARNING: compilation of /home/lars/code/forks/guix/guix.scm failed:
;;; no code for module (guix config)
;;; compiling /home/lars/code/forks/guix/guix/derivations.scm
;;; compiling /home/lars/code/forks/guix/guix/diagnostics.scm
;;; WARNING: compilation of /home/lars/code/forks/guix/guix/diagnostics.scm failed:
;;; Unbound variable: trivial-format-string?
;;; WARNING: compilation of /home/lars/code/forks/guix/guix/derivations.scm failed:
;;; no code for module (gcrypt hash)
While executing meta-command:
no code for module (gcrypt hash)
scheme@(guile-user)>
Doing the same in a Guix REPL works fine:
scheme@(guix-user)> ,use (guix)
scheme@(guix-user)>
# Go to definition
Go to definition works in some places, for example in the line below:
(gnu home services)
This takes me correctly to the source of gnu home services.
However, trying to go to the definition of packages does not work:
(packages (list
htop
git
alacritty
tmux))
Trying to go to the definition of any of the packages in the package list just does not work.
# Completion
I would expect to be able to get completions for modules and packages (among other things) by typing the start of the name of the packages, but nothing comes. Sometimes I get some random completion based on random text in the same buffer, but most of the time not even that.
Asked by lrustand
(41 rep)
Nov 18, 2023, 03:37 PM
Last activity: Dec 19, 2024, 03:07 PM
Last activity: Dec 19, 2024, 03:07 PM