summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2015-08-14 10:47:10 +0300
committerAlex Kost <alezost@gmail.com>2015-08-30 18:26:03 +0300
commit9b0afb0d289c58233bbc1764097b88e7fab3724f (patch)
treeff48fe83f2cf66bfd359435b434a2c9c9ccaf08a /doc
parent1f13861b579aadf6818f4388a9e9654c9637ae5c (diff)
downloadpatches-9b0afb0d289c58233bbc1764097b88e7fab3724f.tar
patches-9b0afb0d289c58233bbc1764097b88e7fab3724f.tar.gz
emacs: Add popup interface for guix commands.
* emacs/guix-command.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Initial Setup): Mention 'magit-popup' library. (Emacs Popup Interface): New node. (Emacs Interface): Add it. * doc/guix.texi (Top): Likewise.
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs.texi44
-rw-r--r--doc/guix.texi1
2 files changed, 45 insertions, 0 deletions
diff --git a/doc/emacs.texi b/doc/emacs.texi
index 5fa15d7783..db2e657d27 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -9,6 +9,7 @@ Guix convenient and fun.
@menu
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management. Managing packages and generations.
+* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Completions: Emacs Completions. Completing @command{guix} shell command.
@end menu
@@ -35,6 +36,12 @@ later;
@uref{http://nongnu.org/geiser/, Geiser}, version 0.3 or later: it is
used for interacting with the Guile process.
+@item
+@uref{https://github.com/magit/magit/, magit-popup library}. You
+already have this library if you use Magit 2.1.0 or later. This library
+is an optional dependency---it is required only for @kbd{M-x@tie{}guix}
+command (@pxref{Emacs Popup Interface}).
+
@end itemize
When it is done ``guix.el'' may be configured by requiring a special
@@ -486,6 +493,43 @@ Various settings for ``info'' buffers.
@end table
+@node Emacs Popup Interface
+@section Popup Interface
+
+If you ever used Magit, you know what ``popup interface'' is
+(@pxref{Top,,, magit-popup, Magit-Popup User Manual}). Even if you are
+not acquainted with Magit, there should be no worries as it is very
+intuitive.
+
+So @kbd{M-x@tie{}guix} command provides a top-level popup interface for
+all available guix commands. When you select an option, you'll be
+prompted for a value in the minibuffer. Many values have completions,
+so don't hesitate to press @key{TAB} key. Multiple values (for example,
+packages or lint checkers) should be separated by commas.
+
+After specifying all options and switches for a command, you may choose
+one of the available actions. The following default actions are
+available for all commands:
+
+@itemize
+
+@item
+Run the command in the Guix REPL. It is faster than running
+@code{guix@tie{}@dots{}} command directly in shell, as there is no
+need to run another guile process and to load required modules there.
+
+@item
+Run the command in a shell buffer. You can set
+@code{guix-run-in-shell-function} variable to fine tune the shell buffer
+you want to use.
+
+@item
+Add the command line to the kill ring (@pxref{Kill Ring,,, emacs, The
+GNU Emacs Manual}).
+
+@end itemize
+
+
@node Emacs Prettify
@section Guix Prettify Mode
diff --git a/doc/guix.texi b/doc/guix.texi
index cb5bbab2a0..89291273c4 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -112,6 +112,7 @@ Emacs Interface
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management. Managing packages and generations.
+* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Completions: Emacs Completions. Completing @command{guix} shell command.