summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2015-07-24 18:33:14 +0300
committerAlex Kost <alezost@gmail.com>2015-09-23 13:36:37 +0300
commit187f80c6c542bc65486ef600aa3af96f7173f4fa (patch)
tree8a894bb9b8c5a0ea9dc0e044ee755288cbe7991e /doc
parent6f05a24df305fc6b79695dd111ec5ff5464ea63e (diff)
downloadpatches-187f80c6c542bc65486ef600aa3af96f7173f4fa.tar
patches-187f80c6c542bc65486ef600aa3af96f7173f4fa.tar.gz
emacs: Add development utils.
* emacs/guix-guile.el (guix-guile-current-module): New function. * emacs/guix-devel.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Development): New node. (Emacs Interface): Add it. * doc/contributing.texi (The Perfect Setup): Mention it. * doc/guix.texi (Top): Add it. * emacs/guix-init.el: Add 'guix-devel-activate-mode-maybe' to 'scheme-mode-hook'.
Diffstat (limited to 'doc')
-rw-r--r--doc/contributing.texi3
-rw-r--r--doc/emacs.texi25
-rw-r--r--doc/guix.texi3
3 files changed, 29 insertions, 2 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi
index ded54348bc..b2d097dd62 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -121,6 +121,9 @@ facilities to directly operate on the syntax tree, such as raising an
s-expression or wrapping it, swallowing or rejecting the following
s-expression, etc.
+GNU Guix also comes with a minor mode that provides some additional
+functionality for Scheme buffers (@pxref{Emacs Development}).
+
@node Coding Style
@section Coding Style
diff --git a/doc/emacs.texi b/doc/emacs.texi
index 67773466a4..d44d329c5c 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -12,7 +12,8 @@ Guix convenient and fun.
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
-* Completions: Emacs Completions. Completing @command{guix} shell command.
+* Completions: Emacs Completions. Completing @command{guix} shell command.
+* Development: Emacs Development. Tools for Guix developers.
@end menu
@@ -637,3 +638,25 @@ something:
@item @code{guix lint --checkers=synopsis,des}@key{TAB}
@end itemize
+
+
+@node Emacs Development
+@section Development
+
+By default, when you open a Scheme file, @code{guix-devel-mode} will be
+activated (if you don't want it, set @code{guix-devel-activate-mode} to
+nil). This minor mode provides the following key bindings:
+
+@table @kbd
+
+@item C-c . k
+Copy the name of the current Guile module into kill ring
+(@code{guix-devel-copy-module-as-kill}).
+
+@item C-c . u
+Use the current Guile module. Often after opening a Scheme file, you
+want to use a module it defines, so you switch to the Geiser REPL and
+write @code{,use (some module)} there. You may just use this command
+instead (@code{guix-devel-use-module}).
+
+@end table
diff --git a/doc/guix.texi b/doc/guix.texi
index 3ca4cefa63..eec28218bb 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -113,7 +113,8 @@ Emacs Interface
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
-* Completions: Emacs Completions. Completing @command{guix} shell command.
+* Completions: Emacs Completions. Completing @command{guix} shell command.
+* Development: Emacs Development. Tools for Guix developers.
Programming Interface