diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2026-02-21 22:06:46 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2026-03-14 16:07:34 +0100 |
| commit | 4e78643fa74af6f3b10d25ffb33183bc524f1cf6 (patch) | |
| tree | cf14639b41355db5c7fdb6a9a3b746e0a3068ea1 /doc | |
| parent | 5b6b54c95c9c223fe76a3981287149dc68653087 (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.texi | 85 |
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 | ||
| 539 | The Perfect Setup to hack on Guix is basically the perfect setup used | 538 | @cindex editor setup, for Scheme |
| 540 | for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference | 539 | @cindex Scheme code editing |
| 541 | Manual}). First, you need more than an editor, you need | 540 | All configuration and development in Guix is done in the Scheme |
| 542 | @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the | 541 | language. Like all languages of the Lisp family, Scheme has a simple |
| 543 | wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run: | 542 | syntax. The perfect setup is one where the editor you choose makes |
| 543 | working with that syntax seamless and pleasant; for that it must | ||
| 544 | absolutely support a few things for Scheme: | ||
| 545 | |||
| 546 | @itemize | ||
| 547 | @item | ||
| 548 | automatic 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 | ||
| 552 | parenthesis to the corresponding opening parenthesis and vice-versa; | ||
| 553 | @item | ||
| 554 | syntax highlighting, so that keywords are visually distinguishable. | ||
| 555 | @end itemize | ||
| 556 | |||
| 557 | The following optional features can make your life easier: | ||
| 558 | |||
| 559 | @itemize | ||
| 560 | @item | ||
| 561 | structural editing of Scheme syntax; | ||
| 562 | @item | ||
| 563 | Guile integration so you can easily evaluate code, jump to procedure | ||
| 564 | definitions, view documentation, and so on. | ||
| 565 | @end itemize | ||
| 566 | |||
| 567 | The following sections look at editor setups that are known to work | ||
| 568 | well. Do share your setup for these and other editors for inclusion in | ||
| 569 | this 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 | ||
| 581 | widely used editor in the community; it is also the one that, | ||
| 582 | historically, has always had excellent support for Lisp languages, being | ||
| 583 | itself a Lisp implementation! | ||
| 584 | |||
| 585 | @quotation Note | ||
| 586 | If you are just getting started with Emacs, @pxref{Guile Studio} for a | ||
| 587 | smooth way to start your transition. | ||
| 588 | @end quotation | ||
| 589 | |||
| 590 | Just like for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile | ||
| 591 | Reference 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 |
| 546 | guix install emacs guile emacs-geiser emacs-geiser-guile | 595 | guix install emacs guile emacs-geiser emacs-geiser-guile |
| @@ -629,24 +678,6 @@ copyright-update}. If you want to do it automatically after each buffer | |||
| 629 | save then add @code{(add-hook 'after-save-hook 'copyright-update)} in | 678 | save then add @code{(add-hook 'after-save-hook 'copyright-update)} in |
| 630 | Emacs. | 679 | Emacs. |
| 631 | 680 | ||
| 632 | @node Alternative Setups | ||
| 633 | @section Alternative Setups | ||
| 634 | |||
| 635 | Alternative setups than Emacs may let you work on Guix with a | ||
| 636 | similar development experience and they might work better with the | ||
| 637 | tools you currently use or help you make the transition to Emacs. | ||
| 638 | |||
| 639 | The options listed below only provide the alternatives to the Emacs | ||
| 640 | based setup, which is the most widely used in the Guix community. If | ||
| 641 | you want to really understand how the perfect setup for Guix development | ||
| 642 | is supposed to work, we encourage you to read the section before this | ||
| 643 | regardless 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 | |
| 667 | Vim (and NeoVim) are also packaged in Guix, just in case you decided | 698 | Vim (and NeoVim) are also packaged in Guix, in case these popular modal |
| 668 | to go for the evil path. | 699 | editors are more to your taste. |
| 669 | 700 | ||
| 670 | @example | 701 | @example |
| 671 | guix install vim | 702 | guix install vim |
