doc: emacs: Add "Package Source Locations" section.

* doc/emacs.texi (Emacs Commands): Move description of 'guix-edit'
command to...
(Emacs Package Locations): ... here.  Document 'guix-find-location'.
New node.
* doc/guix.texi (Top): Add it.
This commit is contained in:
Alex Kost 2016-04-01 21:52:58 +03:00
parent e81a89d176
commit b5e3cbbb24
2 changed files with 40 additions and 24 deletions

View File

@ -10,6 +10,7 @@ Guix convenient and fun.
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}. * Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management. Managing packages and generations. * Package Management: Emacs Package Management. Managing packages and generations.
* Licenses: Emacs Licenses. Interface for licenses of Guix packages. * Licenses: Emacs Licenses. Interface for licenses of Guix packages.
* Package Source Locations: Emacs Package Locations. Interface for package location files.
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands. * Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names. * Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log. Highlighting Guix build logs. * Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
@ -222,30 +223,6 @@ With @kbd{C-u}, make it verbose.
Once @command{guix pull} has succeeded, the Guix REPL is restared. This Once @command{guix pull} has succeeded, the Guix REPL is restared. This
allows you to keep using the Emacs interface with the updated Guix. allows you to keep using the Emacs interface with the updated Guix.
Finally, there is an Emacs variant of @command{guix edit} command
(@pxref{Invoking guix edit}):
@table @kbd
@item M-x guix-edit
As with @kbd{M-x guix-packages-by-name}, you can press @key{TAB} to
complete a package name.
@end table
If you are contributing to Guix, you may find it useful for @kbd{M-x
guix-edit} to open package files from your git directory. This can be
done by setting @code{guix-directory} variable. For example, after
this:
@example
(setq guix-directory "~/src/guix")
@end example
@kbd{M-x guix-edit guix} opens
@file{~/src/guix/gnu/packages/package-management.scm} file.
Also you can use @kbd{C-u} prefix argument to specify a directory just
for the current @kbd{M-x guix-edit} command.
@node Emacs General info @node Emacs General info
@subsection General information @subsection General information
@ -570,6 +547,44 @@ guix-packages-by-license} would do (@pxref{Emacs Commands}).
@end table @end table
@node Emacs Package Locations
@section Package Source Locations
As you know, package definitions are placed in Guile files, also known
as @dfn{package locations}. The following commands should help you not
get lost in these locations:
@table @kbd
@item M-x guix-find-location
Open the given package definition source file (press @key{TAB} to choose
a location from a completion list).
@item M-x guix-edit
Find location of a specified package. This is an Emacs analog of
@command{guix edit} command (@pxref{Invoking guix edit}). As with
@kbd{M-x guix-packages-by-name}, you can press @key{TAB} to complete a
package name.
@end table
If you are contributing to Guix, you may find it useful for @kbd{M-x
guix-find-location} and @kbd{M-x guix-edit} to open locations from your
Git checkout. This can be done by setting @code{guix-directory}
variable. For example, after this:
@example
(setq guix-directory "~/src/guix")
@end example
@kbd{M-x guix-edit guix} opens
@file{~/src/guix/gnu/packages/package-management.scm} file.
Also you can use @kbd{C-u} prefix argument to specify a directory just
for the current @kbd{M-x guix-find-location} or @kbd{M-x guix-edit}
command.
@node Emacs Popup Interface @node Emacs Popup Interface
@section Popup Interface @section Popup Interface

View File

@ -118,6 +118,7 @@ Emacs Interface
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}. * Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management. Managing packages and generations. * Package Management: Emacs Package Management. Managing packages and generations.
* Licenses: Emacs Licenses. Interface for licenses of Guix packages. * Licenses: Emacs Licenses. Interface for licenses of Guix packages.
* Package Source Locations: Emacs Package Locations. Interface for package location files.
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands. * Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names. * Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log. Highlighting Guix build logs. * Build Log Mode: Emacs Build Log. Highlighting Guix build logs.