Hi!
Here’s an improved version that supports hints (with Texinfo markup and
i18n) and error reporting with source location info.
Hints try to make suggestions. If you write:
(use-package-modules qemu)
You’ll get:
configuration.scm:7:0: error: module (gnu packages qemu) not found
hint: Did you mean `(use-package-modules virtualization)'?
If you write:
(use-service-modules openssh)
You get:
configuration.scm:9:0: error: module (gnu services openssh) not found
hint: Did you mean `(use-service-modules ssh)'?
The “did you mean” hints are based on exact matches on the package or
service names. We could go as far as doing inexact searches akin to
what “guix package -s” and “guix system search” do, but maybe that’s
overkill given that the suggestions could be wrong.
Anyway, I think that’s already an improvement and we can always refine
it later.
Thoughts?
Ludo’.
Ludovic Courtès (6):
ui: Introduce (guix i18n).
ui: Define and honor '&error-location' and '&fix-hint' conditions.
services: 'fold-service-types' honors its seed.
services: 'fold-service-types' includes (gnu services).
services: Add 'lookup-service-types'.
gnu: Improve error reporting of the use-.*modules macros.
Makefile.am | 1 +
gnu.scm | 100
++++++++++++++++++++++++++++++++++++++++++++++++---
gnu/services.scm | 20 +++++++++--
guix/i18n.scm | 51 ++++++++++++++++++++++++++
guix/ui.scm | 50 ++++++++++++--------------
guix/utils.scm | 17 +++++++++
po/guix/POTFILES.in | 1 +
tests/guix-system.sh | 28 +++++++++++++++
tests/services.scm | 10 +++++-
9 files changed, 243 insertions(+), 35 deletions(-)
create mode 100644 guix/i18n.scm