This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/racket
Miciah Masters 552fd5953c Update references to macOS
Apple renamed "Mac OS X" to "OS X" in 2012 and then to "macOS" in 2016.
Update references to use the current name.
2019-10-13 12:04:40 +02:00
..
img updated racket logo 2019-07-25 06:30:06 +02:00
config.el Happy New Year 2018! 2018-01-04 02:00:25 -05:00
packages.el Unify packages list parentheses style 2018-11-21 21:35:38 +00:00
README.org Update references to macOS 2019-10-13 12:04:40 +02:00

Racket layer

/TakeV/spacemacs/media/commit/1de8157a5cd4e2acd4798b15995a18bbb90eb95b/layers/+lang/racket/img/racket.png

Description

Adds support for the Racket programming language.

Features:

  • Syntax highlighting with racket-mode
  • Test runner
  • Interactive REPL
  • Code navigation with gtags
  • Structurally safe editing using optional evil-cleverparens

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add racket to the existing dotspacemacs-configuration-layers list in this file. You will also need DrRacket installed. Alternatively, one can use the "Minimal Racket" installation, and then run the following command.

  raco pkg install drracket

Structurally safe editing

This layer adds support for evil-cleverparens which allows to safely edit lisp code by keeping the s-expressions balanced.

By default this mode is not activated. You can turn it on locally on the active buffer with SPC m T s (s for safe).

To turn it on automatically for all racket buffers call the following function in your dotspacemacs/user-config function:

  (spacemacs/toggle-evil-safe-lisp-structural-editing-on-register-hook-racket-mode)

or to enable it for all supported modes:

  (spacemacs/toggle-evil-safe-lisp-structural-editing-on-register-hooks)

When enabled the symbol 🆂 should be displayed in the mode-line.

Key bindings

Navigation

Key binding Description
SPC m g ` Return to previous location
SPC m g g Go to definition of symbol at point
SPC m g m Go to module at point
SPC m g r Open require path

Documentation

Key binding Description
SPC m h d Describes the function at point in a Racket Describe buffer
SPC m h h View documentation of the identifier or string at point.

Tests

Key binding Description
SPC m t b Run tests of buffer
SPC m t B Run tests of buffer with coverage

REPL

Key binding Description
SPC m s b Send buffer to REPL
SPC m s B Send buffer to REPL and switch to REPL buffer in insert state
SPC m s e Send last sexp to REPL
SPC m s E Send last sexp to REPL and switch to REPL in insert state
SPC m s f Send function at point to REPL
SPC m s F Send function at point and switch to REPL in insert state
SPC m s i Start a REPL or switch to REPL buffer
SPC m s r Send region to REPL
SPC m s R Send region to REPL and switch to REPL in insert state
SPC m s s Show and switch to REPL buffer

Other key bindings

Key binding Description
SPC m i l Insert lambda character
H-r Run current file and open REPL (H is hyper, may be bound to command on macOS)