Subject: [bug#66343] Add more setups to Guix docs

From: Efraim Flashner <[email-masked]>
Date: Wed, 4 Oct 2023 19:18:32 +0300

I think we can mention guix.vim also

On Wed, Oct 04, 2023 at 03:36:18PM +0000, Ekaitz Zarraga wrote:
> 
> ------- Original Message -------
> On Wednesday, October 4th, 2023 at 15:27, Ludovic Courtès <[email-masked]> wrote:
> 
> 
> > Hi,
> >
> > Ekaitz Zarraga [email-masked] skribis:
> >
> > > From 0c2be98f05bb288699a8e39dcef6428eb5a9dc3f Mon Sep 17 00:00:00 2001
> > > Message-ID: [email-masked]
> > > From: Ekaitz Zarraga [email-masked]
> > > Date: Mon, 25 Sep 2023 16:16:28 +0200
> > > Subject: [PATCH] WIP: 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
> >
> >
> > Not a maintainer either but I like it!
> >
> > > +@node Alternative Setups
> > > +
> >
> >
> > I think you’re missing an @section here.
> >
> > > +@node Vim and NeoVim
> > > +@subsection Vim and Neovim
> >
> >
> > Which spelling is the right one? :-)
> >
> > Maybe send it to [email-masked] so it passes on everyone’s radar,
> > but otherwise LGTM!
> >
> > Ludo’.
> 
> Great!
> Thanks Ludo.
> 
> Fixed!
> 
> I add guix-patches in the loop.
> 
> Thanks all,
> Ekaitz

> From 8ea037b7d8f3472323682594266f5810fd87f291 Mon Sep 17 00:00:00 2001
> Message-ID: <[email-masked]>
> From: Ekaitz Zarraga <[email-masked]>
> Date: Mon, 25 Sep 2023 16:16:28 +0200
> Subject: [PATCH] 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
> ---
>  doc/contributing.texi | 77 +++++++++++++++++++++++++++++++++++++++----
>  1 file changed, 70 insertions(+), 7 deletions(-)
> 
> diff --git a/doc/contributing.texi b/doc/contributing.texi
> index 0de47a403b..c476097bf5 100644
> --- a/doc/contributing.texi
> +++ b/doc/contributing.texi
> @@ -23,6 +23,7 @@ Contributing
>  * Building from Git::           The latest and greatest.
>  * Running Guix Before It Is Installed::  Hacker tricks.
>  * The Perfect Setup::           The right tools.
> +* Alternative Setups::          Other posible tools that do the job.
>  * Packaging Guidelines::        Growing the distribution.
>  * Coding Style::                Hygiene of the contributor.
>  * Submitting Patches::          Share your work.
> @@ -453,6 +454,75 @@ The Perfect Setup
>  Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User
>  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
>  @section Packaging Guidelines
>  
> @@ -1257,13 +1327,6 @@ Formatting Code
>  @noindent
>  @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
>  requirement can be relaxed for simple private procedures in the
>  @code{(guix build @dots{})} name space, though.
> 
> base-commit: 284f8508bebcae510261c7c223dc28f9badf87ce
> -- 
> 2.41.0
> 

-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted