~ruther/guix-local

b5e3cbbb248f3f5096c9d83d9db586db08d52b04 — Alex Kost 10 years ago e81a89d
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.
2 files changed, 40 insertions(+), 24 deletions(-)

M doc/emacs.texi
M doc/guix.texi
M doc/emacs.texi => doc/emacs.texi +39 -24
@@ 10,6 10,7 @@ Guix convenient and fun.
* Initial Setup: Emacs Initial Setup.	Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management.	Managing packages and generations.
* 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.
* Prettify Mode: Emacs Prettify.	Abbreviating @file{/gnu/store/@dots{}} file names.
* 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
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
@subsection General information


@@ 570,6 547,44 @@ guix-packages-by-license} would do (@pxref{Emacs Commands}).
@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
@section Popup Interface


M doc/guix.texi => doc/guix.texi +1 -0
@@ 118,6 118,7 @@ Emacs Interface
* Initial Setup: Emacs Initial Setup.	Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management.	Managing packages and generations.
* 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.
* Prettify Mode: Emacs Prettify.	Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log.	Highlighting Guix build logs.