From patchwork Wed Oct 4 20:51:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Efraim Flashner X-Patchwork-Id: 54483 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 3CD5A27BBEA; Wed, 4 Oct 2023 21:53:00 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD,SPF_HELO_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 8C89B27BBE2 for ; Wed, 4 Oct 2023 21:52:58 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qo8rN-0005Th-Uq; Wed, 04 Oct 2023 16:52:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qo8rM-0005RT-Ns for guix-patches@gnu.org; Wed, 04 Oct 2023 16:52:44 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qo8rM-00014K-CB for guix-patches@gnu.org; Wed, 04 Oct 2023 16:52:44 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qo8re-0003fN-5K for guix-patches@gnu.org; Wed, 04 Oct 2023 16:53:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#66343] Add more setups to Guix docs Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 04 Oct 2023 20:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66343 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ekaitz Zarraga Cc: guix-devel@gnu.org, Ludovic =?utf-8?q?Court=C3=A8s?= , Simon Tournier , 66343@debbugs.gnu.org Received: via spool by 66343-submit@debbugs.gnu.org id=B66343.169645272213988 (code B ref 66343); Wed, 04 Oct 2023 20:53:02 +0000 Received: (at 66343) by debbugs.gnu.org; 4 Oct 2023 20:52:02 +0000 Received: from localhost ([127.0.0.1]:45458 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qo8qf-0003dW-Tw for submit@debbugs.gnu.org; Wed, 04 Oct 2023 16:52:02 -0400 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]:53719) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qo8qd-0003d1-V4 for 66343@debbugs.gnu.org; Wed, 04 Oct 2023 16:52:00 -0400 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-99c3d3c3db9so40245266b.3 for <66343@debbugs.gnu.org>; Wed, 04 Oct 2023 13:51:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696452696; x=1697057496; darn=debbugs.gnu.org; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender:from:to :cc:subject:date:message-id:reply-to; bh=LCMnY4GkrAvdHsIHTVeUgZdqT0OYelksRK1XszvJlVM=; b=NpjXugj6l9jnPk2tSzXmGXajb71XY7mGRHOMu+ugqCIdPC3Gv8AN/P6X7bvWwbPj/w hNBDsu5HryAxNDrTEFojI2w/pjxS8s7agGCzMwhaYrHgQMfWHy/vPXEWKmM2XnzESg4z 6UU27Fx+dTDfeTVX+K3XInjhudML3yiKUDJ5ReEZRr1s2xHMxw8jfCfYUcC9UPK/WxeE qWwebbl7WJALsyauRDJX8DK3fNFo2FFogduamHuHiMGK2uFYgry08+rVG9uQppF79tOc HEvL6YnMeD/qt1B45DgINn8Y9ku02lBfl0LlMk8zJfscAZaax8Zdfq1mjTZKbA5+Srpo NTNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696452696; x=1697057496; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:sender :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=LCMnY4GkrAvdHsIHTVeUgZdqT0OYelksRK1XszvJlVM=; b=U/KtNx1TZcr8adM0bCpOchkLAwDiKYSw/avFtZMEK9bkcSkpYJevAzAAXc+jIv8S5R hXYNgzrZTXHSoyyhf7BYF99j3Vuus4kkrLnzEpcSSG5xlQTXz0hwK8Xr8eozX7e6kOK7 Pk2O4HLpvVV1D0h1ZDMmb2cWKybhNSg23UQm7qpRYJ4AFFdOD2Iuzlu88qJx1tNdUg0E He10c7r1RctZH35ro0Wo5LrryNb6h2RkJLKtBu5U95/oNOg0RAfQwKhE1LcgmQ1bfuPs KGEnJDCuu8RT7TgCu1Gvyl0Mog3qobdfiW++vJhEFif70zAxg1B6DYT5goGsAQ9UZzbG Urzg== X-Gm-Message-State: AOJu0Yyh3nqyrnY6JqqWTxiTiZLRL4pU/Lr0BdARKWcEA7NMAYqiq7k5 5I1gExEkfuR6iVmhCeHyz4o= X-Google-Smtp-Source: AGHT+IH+M+HEbTocnPkSsz1LUFhPYZzrXpZq/Nn/g5XT8hmnU3fClqOvbZJC+NhoaoTzgyWkmTQ53A== X-Received: by 2002:a17:906:3ca1:b0:9b6:5b56:bbe3 with SMTP id b1-20020a1709063ca100b009b65b56bbe3mr2621857ejh.72.1696452695483; Wed, 04 Oct 2023 13:51:35 -0700 (PDT) Received: from localhost ([2a02:ed3:916:6300:c3db:b80e:a694:a54f]) by smtp.gmail.com with ESMTPSA id l11-20020a170906a40b00b009b64987e1absm3365610ejz.139.2023.10.04.13.51.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 13:51:34 -0700 (PDT) Date: Wed, 4 Oct 2023 23:51:33 +0300 From: Efraim Flashner Message-ID: Mail-Followup-To: Ekaitz Zarraga , 66343@debbugs.gnu.org, guix-devel@gnu.org, Ludovic =?utf-8?q?Court=C3=A8s?= , Simon Tournier References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches On Wed, Oct 04, 2023 at 06:47:51PM +0000, Ekaitz Zarraga wrote: > > ------- Original Message ------- > On Wednesday, October 4th, 2023 at 18:35, Efraim Flashner wrote: > > > > On Wed, Oct 04, 2023 at 06:15:53PM +0000, Ekaitz Zarraga wrote: > > > > > ------- Original Message ------- > > > On Wednesday, October 4th, 2023 at 16:18, Efraim Flashner efraim@flashner.co.il wrote: > > > > > > > I think we can mention guix.vim also > > > > > > Certainly, do you want to add it yourself? > > > > > > Nobody is going to explain it better than you. > > > > > > I tossed in a line or two in the middle of the patch > > But you didn't attach, did you? > > Or you directly commited? I commented directly in the middle of the patch. > +@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 diff --git a/doc/contributing.texi b/doc/contributing.texi index 0de47a403b..f7c72634e7 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,83 @@ 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 +1335,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.