GithubHelp home page GithubHelp logo

raymo111 / cs135-drtools Goto Github PK

View Code? Open in Web Editor NEW
27.0 3.0 6.0 1.37 MB

DrRacket Tools for CS 135 course at UWaterloo

License: GNU General Public License v3.0

Racket 100.00%
drracket drracket-customization keybindings autocomplete drracket-preferences drracket-theme drracket-dark-mode racket racket-lang racket-language

cs135-drtools's Introduction

CS 135 DrTools

DrRacket Tools for CS 135 course at UWaterloo

Autocomplete Demo

Disclaimers

  • The authors are NOT responsible for any issues using any part of this repository will cause you. ALWAYS back up your files, preferences and code!
  • Though it may not be necessary in all cases, DrRacket should be restarted after most customizations to allow all changes to take effect.

Acknowledgements

Contributors

Installation

There are 2 parts of this package that you can install. By following the steps below, you will get autocomplete and additional keybindings. To install the preferences, follow the installation section under Racket Preferences. Default Racket keybindings will continue to work after installation.

  1. Go to File > Install Package... from the menubar.
  2. Put cs135-drtools in the input field beside Package Source:, and click Install.
  3. Restart DrRacket.

Tools

Autocomplete

  • Ctrl+Space trigger (Will NOT work in comments!) just hit enter and remove the newline after completion, we're working on making these work in comments)
  • Completion for the following:
Shortcut Generates
cx check-expect
cw check-within
ce check-error
df define function
d define
ds define structure
m make structure
c cond with else
if if statement
con list in cons notation
li abbreviated list
dsp display
t true
f false
e empty
hdr file header
cmt comment
l ;;
ll 3-line comment
pa 3-line "Part a" comment
pb 3-line "Part b" comment
pc 3-line "Part c" comment
pd 3-line "Part d" comment
pe 3-line "Part e" comment
pf 3-line "Part f" comment
ppe Purpose and examples
ctr Contract
req Requires
tst Tests
lox list-of-X Template
nelox ne-List-of-X Template
lo (listof )
nelo (ne-listof )
lost (listof Str)
nelost (ne-listof Str)
lob (listof Bool)
nelob (ne-listof Bool)
loc (listof Char)
neloc (ne-listof Char)
losy (listof Sym)
nelosy (ne-listof Sym)
lonu (listof Num)
nelonu (ne-listof Num)
lona (listof Nat)
nelona (ne-listof Nat)

Usage:

  1. Type a shortcut
  2. Press Ctrl+Space
  3. The shortcut will be replaced with generated code

Keybindings

  • Works out of the box after installing the package
  • Note: No commonly-used original keybindings are overwritten. (i.e. The DrRacket default keybindings still do what they used to. This package simply adds more.)
  • Provides the following keybindings:
Keybinding What it does DrRacket default
Alt+R Run the program Ctrl+R or F5
Ctrl+Shift+F Indent all lines Ctrl+I
Ctrl+H Show Replace Ctrl+Shift+R
Ctrl+Shift+R Replace All None
Ctrl+/ Comment out line with ; None
Ctrl+Backspace Delete word left of cursor Alt+Backspace
Ctrl+Delete Delete word right of cursor Alt+Delete
Alt+Up/Down Switch between Interactions and Definitions panes Ctrl+F6

Racket Preferences

  • Dark mode based on Monokai v2.1
  • [ (left square bracket) will automatically determine the right bracket for you (no need to Shift+9 anymore!) and insert a close bracket for you as well
  • In addition to the notable ones mentioned here, all the features we found useful have been enabled. The default language for new files is set to Beginning Student Custom, the starting language for CS 135 at UWaterloo. This may change as we progress through the course, or it may not.

Installation

Additional Tips

Installing the drcomplete raco package (not part of this package) will provide automated completion of variables and functions. You can install drcomplete the same way you installed cs135-drtools. After restarting DrRacket, click Edit > Enable Automatic Autocompletion (last item) in the menubar to enable it, if it isn't already enabled.

We accept Pull Requests! If you have a template or shortcut you think is useful and should be added, contribute to our repo on GitHub!

Hits

cs135-drtools's People

Contributors

kaifee-haque avatar raymo111 avatar samth avatar santakaus avatar thomaspark20 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cs135-drtools's Issues

ctrl-/ shortcut should toggle comments

Section

[ ] Preferences
[ ] Autocomplete
[x] Keybindings
[ ] Other...

Context

If you select lines and press ctrl-/ it should toggle whether the lines are commented out rather than continually adding ; characters.

Expected

Select lines

(+ 1 2 3

Press ctrl-/

;(+ 1 2 3

Press ctrl-/ again

(+ 1 2 3

Actual

Select lines

(+ 1 2 3

Press ctrl-/

;(+ 1 2 3

Press ctrl-/ again

;;(+ 1 2 3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.