doomemacs/modules/lang/racket
kovan 309cdc65dc fix(racket): add smart bracket mode toggle
Add `+racket-smart-open-bracket-mode` variable so users can disable the
DrRacket-style bracket auto-conversion that changes `[` to `(` based on
context. Also update README documentation to accurately describe the
default behavior and how to configure it.

Fix: #1452

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:44:53 +01:00
..
.doommodule feat: add .doommodule files 2024-09-14 20:47:39 -04:00
autoload.el Disable flycheck in racket-xp-mode 2020-07-26 15:09:05 -04:00
config.el fix(racket): add smart bracket mode toggle 2026-02-27 00:44:53 +01:00
doctor.el feat(format): add :lang racket formatter 2023-09-13 20:21:00 +01:00
packages.el bump: :lang 2026-02-13 16:31:15 -05:00
README.org fix(racket): add smart bracket mode toggle 2026-02-27 00:44:53 +01:00

:lang racket

Description   unfold

This module adds support for the Racket programming language to Doom Emacs.

Maintainers

This module needs a maintainer. Become a maintainer?

Module flags

+lsp
Enable support for racket-mode. Requires doom-module::tools lsp and a langserver (supports racket-langserver).
+xp
Enable the explore minor mode (racket-xp-mode), which "analyzes expanded code to explain and explore."
+hash-lang
Enable the hash-lang major mode (racket-hash-lang-mode), which "uses color-lexer, indent, and navigation supplied by a #lang." This flag can be used along with the +xp flag.

Hacks

No hacks documented for this module.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module requires racket. Install it from the racket website or through your OS package manger.

Arch Linux

pacman -S racket

Or, for fewer dependencies:

pacman -S racket-minimal

Formatter

Formatting is handled using the doom-module::editor format module via fmt.

TODO Usage

󱌣 This module has no usage documentation yet. Write some?

TODO Configuration

󱌣 This module's configuration documentation is incomplete. Complete it?

racket-smart-open-bracket-mode

racket-smart-open-bracket-mode is enabled by default (mimicking DrRacket's behavior). It automatically inserts ( or [ based on the surrounding syntactic context when you press [. It is disabled automatically if you use parinfer or lispy.

To disable it, set +racket-smart-open-bracket-mode to nil before racket-mode loads:

;; in $DOOMDIR/config.el
(setq +racket-smart-open-bracket-mode nil)

To force a literal [ without disabling the mode, use C-q [.

Unicode Input

The optional racket-unicode input method lets you type unicode characters such as λ or π. To enable unicode input for a single buffer, run racket-unicode-input-method-enable. To enable unicode input by default on all racket buffers:

;; in $DOOMDIR/config.el
(add-hook 'racket-mode-hook      #'racket-unicode-input-method-enable)
(add-hook 'racket-repl-mode-hook #'racket-unicode-input-method-enable)

Once enabled, unicode input can be toggled by pressing C-\ or running toggle-input-method.

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?