mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
doc: contributing: Add alternative setups section.
Start with Guile Studio and Vim/NeoVim. * doc/contributing.texi (Alternative Setups): Add section explaining other setups that are similar to the one in The Perfect Setup. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This commit is contained in:
parent
eeb7132ec3
commit
044a76c280
1 changed files with 78 additions and 7 deletions
|
@ -23,6 +23,7 @@ choice.
|
||||||
* Building from Git:: The latest and greatest.
|
* Building from Git:: The latest and greatest.
|
||||||
* Running Guix Before It Is Installed:: Hacker tricks.
|
* Running Guix Before It Is Installed:: Hacker tricks.
|
||||||
* The Perfect Setup:: The right tools.
|
* The Perfect Setup:: The right tools.
|
||||||
|
* Alternative Setups:: Other posible tools that do the job.
|
||||||
* Packaging Guidelines:: Growing the distribution.
|
* Packaging Guidelines:: Growing the distribution.
|
||||||
* Coding Style:: Hygiene of the contributor.
|
* Coding Style:: Hygiene of the contributor.
|
||||||
* Submitting Patches:: Share your work.
|
* Submitting Patches:: Share your work.
|
||||||
|
@ -453,6 +454,83 @@ For more information, refer to @ref{Bug Reference,,, emacs, The GNU
|
||||||
Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User
|
Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User
|
||||||
Guide}.
|
Guide}.
|
||||||
|
|
||||||
|
@node Alternative Setups
|
||||||
|
@section Alternative Setups
|
||||||
|
|
||||||
|
Alternative setups than Emacs may let you work on Guix with a
|
||||||
|
similar development experience and they might work better with the
|
||||||
|
tools you currently use or help you make the transition to Emacs.
|
||||||
|
|
||||||
|
The options listed below only provide the alternatives to the Emacs
|
||||||
|
based setup, which is the most widely used in the Guix community. If
|
||||||
|
you want to really understand how is the perfect setup for Guix
|
||||||
|
development supposed to work, we encourage you to read the section
|
||||||
|
before this regardless the editor you choose to use.
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Guile Studio:: First step in your transition to Emacs.
|
||||||
|
* Vim and NeoVim:: When you are evil to the root.
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node Guile Studio
|
||||||
|
@subsection Guile Studio
|
||||||
|
|
||||||
|
Guile Studio is a pre-configured Emacs with mostly everything you need
|
||||||
|
to start hacking in Guile. If you are not familiar with Emacs it makes
|
||||||
|
the transition easier for you.
|
||||||
|
|
||||||
|
@example
|
||||||
|
guix install guile-studio
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Guile Studio comes with Geiser preinstalled and prepared for action.
|
||||||
|
|
||||||
|
@node Vim and NeoVim
|
||||||
|
@subsection Vim and NeoVim
|
||||||
|
|
||||||
|
|
||||||
|
Vim (and NeoVim) are also packaged in Guix, just in case you decided
|
||||||
|
to go for the evil path.
|
||||||
|
|
||||||
|
@example
|
||||||
|
guix install vim
|
||||||
|
@end example
|
||||||
|
|
||||||
|
If you want to enjoy a similar development experience to that in the perfect
|
||||||
|
setup, you should install several plugins to configure the editor. Vim (and
|
||||||
|
NeoVim) have the equivalent to Paredit,
|
||||||
|
@uref{https://www.vim.org/scripts/script.php?script_id=3998,
|
||||||
|
@code{paredit.vim}}, that will help you with the structural editing of Scheme
|
||||||
|
files (the support for very large files is not great, though).
|
||||||
|
|
||||||
|
@example
|
||||||
|
guix install vim-paredit
|
||||||
|
@end example
|
||||||
|
|
||||||
|
We also recommend that you run @code{:set autoindent} so that your code is
|
||||||
|
automatically indented as you type.
|
||||||
|
|
||||||
|
For the interaction with Git,
|
||||||
|
@uref{https://www.vim.org/scripts/script.php?script_id=2975
|
||||||
|
@code{fugitive.vim}} is the most commonly used plugin:
|
||||||
|
|
||||||
|
@example
|
||||||
|
guix install vim-fugitive
|
||||||
|
@end example
|
||||||
|
|
||||||
|
And of course if you want to interact with Guix directly from inside of
|
||||||
|
vim, using the built-in terminal emulator, we have our very own
|
||||||
|
@code{guix.vim} package!
|
||||||
|
|
||||||
|
@example
|
||||||
|
guix install vim-guix-vim
|
||||||
|
@end example
|
||||||
|
|
||||||
|
In NeoVim you can even make a similar setup to Geiser using
|
||||||
|
@url{https://conjure.fun/, Conjure} that lets you connect to a running Guile
|
||||||
|
process and inject your code there live (sadly it's not packaged in Guix yet).
|
||||||
|
|
||||||
|
|
||||||
@node Packaging Guidelines
|
@node Packaging Guidelines
|
||||||
@section Packaging Guidelines
|
@section Packaging Guidelines
|
||||||
|
|
||||||
|
@ -1257,13 +1335,6 @@ rules. To automatically indent a package definition, you can also run:
|
||||||
@noindent
|
@noindent
|
||||||
@xref{Invoking guix style}, for more information.
|
@xref{Invoking guix style}, for more information.
|
||||||
|
|
||||||
@cindex Vim, Scheme code editing
|
|
||||||
If you are editing code with Vim, we recommend that you run @code{:set
|
|
||||||
autoindent} so that your code is automatically indented as you type.
|
|
||||||
Additionally,
|
|
||||||
@uref{https://www.vim.org/scripts/script.php?script_id=3998,
|
|
||||||
@code{paredit.vim}} may help you deal with all these parentheses.
|
|
||||||
|
|
||||||
We require all top-level procedures to carry a docstring. This
|
We require all top-level procedures to carry a docstring. This
|
||||||
requirement can be relaxed for simple private procedures in the
|
requirement can be relaxed for simple private procedures in the
|
||||||
@code{(guix build @dots{})} name space, though.
|
@code{(guix build @dots{})} name space, though.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue