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
syl20bnr ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
..
img Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
config.el Happy New Year 2018! 2018-01-04 02:00:25 -05:00
packages.el Revert "Defer packages by default using use-package-always-defer" 2018-03-03 23:40:10 -05:00
README.org Fix typos in doc for safe structural editing 2018-01-04 01:55:54 -05:00

Racket layer

/TakeV/spacemacs/media/commit/335e6a2999f00764d5739d18c1469564ab53abc9/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
  • Structuraly 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

Structuraly 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 OSX)