From 187f80c6c542bc65486ef600aa3af96f7173f4fa Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 24 Jul 2015 18:33:14 +0300 Subject: 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'. --- doc/contributing.texi | 3 +++ doc/emacs.texi | 25 ++++++++++++++++++++++++- doc/guix.texi | 3 ++- 3 files changed, 29 insertions(+), 2 deletions(-) (limited to 'doc') 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 -- cgit v1.2.3