racket / racket/drracket

The documentation should list the default keybindings and what they are bound to

Open
#111 5 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
516
Forks
103
PR merge metrics
No merged PRs in 30d

Description

The documentation at http://docs.racket-lang.org/drracket/Keyboard_Shortcuts.html#%28part._defining-shortcuts%29 does not list some of the default keybindings, e.g. c:/ to auto-complete.

It is also too difficult to change a keybinding, as one has to guess to what code it is bound. I suggest that we compile here a list of keybindings and what they are bound to, in the form of code that can be copy-pasted into a keybindings.rkt file and edited at will. Once this list is reasonably complete, we can add it to the documentation (caveat: posting here implies that your code will be published under DrRacket's documentation's license, please be sure that any non-trivial blobs of code can be re-published under that license).

@soegaard kindly pointed me to https://github.com/racket/drracket/blob/master/drracket/drracket/private/rep.rkt, which contains some (but not all) keybindings that we might want to add here, and to http://schemekeys.blogspot.fr/2007/05/keybinding-101-in-drscheme.html which contains a (somewhat outdated) list too.

There is also a partial list at http://docs.racket-lang.org/framework/Keymap.html?q=upcase-word#%28def._%28%28lib._framework%2Fmain..rkt%29._keymap~3asetup-global%29%29

I'll start with a few:

#lang s-exp framework/keybinding-lang
;; (keybinding "c:f9" (λ (editor event) TODO: add bookmark))
;; (keybinding "c:," (λ (editor event) TODO: go to previous error))
;; (keybinding "c:." (λ (editor event) TODO: go to next error))
;; …
(keybinding ")" (λ (editor event) (send editor balance-parens event)))
(keybinding "]" (λ (editor event) (send editor balance-parens event)))
(keybinding "}" (λ (editor event) (send editor balance-parens event)))
;; …
(keybinding "c:/" (λ (editor _) (send editor auto-complete)))
;; …
(keybinding "tab" (λ (editor event) (send (send editor get-keymap) call-function "tabify-at-caret" editor event #t)))
;; …

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the DrRacket Keyboard Shortcuts documentation, then compare its bindings with drracket/drracket/private/rep.rkt, the framework Keymap reference, and the linked older list. Compile a reasonably complete copy-pastable keybindings.rkt list, verify the bindings, and update the documentation with it.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.