summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2026-02-21 22:06:46 +0100
committerLudovic Courtès <ludo@gnu.org>2026-03-14 16:07:34 +0100
commit4e78643fa74af6f3b10d25ffb33183bc524f1cf6 (patch)
treecf14639b41355db5c7fdb6a9a3b746e0a3068ea1 /doc
parent5b6b54c95c9c223fe76a3981287149dc68653087 (diff)
doc: Move “Guile Studio” and “Vim and NeoVim” under “The Perfect Setup”.
* doc/contributing.texi (The Perfect Setup): Add introduction. Move former body to … (Emacs): … this. (Alternative Setups): Remove. (Guile Studio, Vim and NeoVim): Move under “The Perfect Setup”. Change judgmental sentence. Change-Id: I149d418ac17a2283ad3452213b7425be4a8893f4 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/contributing.texi85
1 files changed, 58 insertions, 27 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi
index db24703271b..81317cca4c9 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -25,7 +25,6 @@ choice.
25* Running the Test Suite:: Testing Guix. 25* Running the Test Suite:: Testing Guix.
26* Running Guix Before It Is Installed:: Hacker tricks. 26* Running Guix Before It Is Installed:: Hacker tricks.
27* The Perfect Setup:: The right tools. 27* The Perfect Setup:: The right tools.
28* Alternative Setups:: Other possible tools that do the job.
29* Source Tree Structure:: Source code guided tour. 28* Source Tree Structure:: Source code guided tour.
30* Packaging Guidelines:: Growing the distribution. 29* Packaging Guidelines:: Growing the distribution.
31* Coding Style:: Hygiene of the contributor. 30* Coding Style:: Hygiene of the contributor.
@@ -536,11 +535,61 @@ to build again each time you update a package file, run
536@node The Perfect Setup 535@node The Perfect Setup
537@section The Perfect Setup 536@section The Perfect Setup
538 537
539The Perfect Setup to hack on Guix is basically the perfect setup used 538@cindex editor setup, for Scheme
540for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference 539@cindex Scheme code editing
541Manual}). First, you need more than an editor, you need 540All configuration and development in Guix is done in the Scheme
542@url{https://www.gnu.org/software/emacs, Emacs}, empowered by the 541language. Like all languages of the Lisp family, Scheme has a simple
543wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run: 542syntax. The perfect setup is one where the editor you choose makes
543working with that syntax seamless and pleasant; for that it must
544absolutely support a few things for Scheme:
545
546@itemize
547@item
548automatic indentation, such that hitting the ``Enter'' key (or
549@kbd{RET}) places cursor ``at the right place'' on the next line;
550@item
551``parentheses matching'', allowing you to jump from a closing
552parenthesis to the corresponding opening parenthesis and vice-versa;
553@item
554syntax highlighting, so that keywords are visually distinguishable.
555@end itemize
556
557The following optional features can make your life easier:
558
559@itemize
560@item
561structural editing of Scheme syntax;
562@item
563Guile integration so you can easily evaluate code, jump to procedure
564definitions, view documentation, and so on.
565@end itemize
566
567The following sections look at editor setups that are known to work
568well. Do share your setup for these and other editors for inclusion in
569this manual! @xref{Submitting Patches}.
570
571@menu
572* Emacs:: Best-of-breed editor for Scheme code.
573* Guile Studio:: First step in your transition to Emacs.
574* Vim and NeoVim:: Classical Unix editors.
575@end menu
576
577@node Emacs
578@subsection Emacs
579
580@url{https://www.gnu.org/software/emacs, Emacs} is probably the most
581widely used editor in the community; it is also the one that,
582historically, has always had excellent support for Lisp languages, being
583itself a Lisp implementation!
584
585@quotation Note
586If you are just getting started with Emacs, @pxref{Guile Studio} for a
587smooth way to start your transition.
588@end quotation
589
590Just like for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile
591Reference Manual}), Emacs works best when empowered by the wonderful
592@url{https://nongnu.org/geiser/, Geiser}. To set that up, run:
544 593
545@example 594@example
546guix install emacs guile emacs-geiser emacs-geiser-guile 595guix install emacs guile emacs-geiser emacs-geiser-guile
@@ -629,24 +678,6 @@ copyright-update}. If you want to do it automatically after each buffer
629save then add @code{(add-hook 'after-save-hook 'copyright-update)} in 678save then add @code{(add-hook 'after-save-hook 'copyright-update)} in
630Emacs. 679Emacs.
631 680
632@node Alternative Setups
633@section Alternative Setups
634
635Alternative setups than Emacs may let you work on Guix with a
636similar development experience and they might work better with the
637tools you currently use or help you make the transition to Emacs.
638
639The options listed below only provide the alternatives to the Emacs
640based setup, which is the most widely used in the Guix community. If
641you want to really understand how the perfect setup for Guix development
642is supposed to work, we encourage you to read the section before this
643regardless of the editor you choose to use.
644
645@menu
646* Guile Studio:: First step in your transition to Emacs.
647* Vim and NeoVim:: When you are evil to the root.
648@end menu
649
650@node Guile Studio 681@node Guile Studio
651@subsection Guile Studio 682@subsection Guile Studio
652 683
@@ -663,9 +694,9 @@ Guile Studio comes with Geiser preinstalled and prepared for action.
663@node Vim and NeoVim 694@node Vim and NeoVim
664@subsection Vim and NeoVim 695@subsection Vim and NeoVim
665 696
666 697@cindex Vim, for Scheme code editing
667Vim (and NeoVim) are also packaged in Guix, just in case you decided 698Vim (and NeoVim) are also packaged in Guix, in case these popular modal
668to go for the evil path. 699editors are more to your taste.
669 700
670@example 701@example
671guix install vim 702guix install vim