racket / drracket

DrRacket, IDE for Racket
http://www.racket-lang.org/
Other
445 stars 93 forks source link

Home and End keys on macOS #475

Open soegaard opened 3 years ago

soegaard commented 3 years ago

Hi,

I have noticed that DrRacket doesn't follow the conventions on macOS with regards to the Home and End keys.

On an external keyboard the Home and End keys in most macOS applications are bound to "beginning of document" and "end of document". This is can be observed in Pages, Chrome, Safari and other programs.

The macOS User Guide describes this behaviour too: https://support.apple.com/en-gb/guide/mac-help/cpmh0152/mac

In DrRacket these keys are bound to "beginning of line" and "end of line". This follows the convention used on Linux and Windows.

The conventions are described here: https://en.wikipedia.org/wiki/Home_key

Personally I think it would make sense to follow the platform conventions. However typing habits die hard, so if the default keybindings stay, I suggest adding a new option to the "General Editing" tab in preferences.

/Jens Axel

rfindler commented 3 years ago

An option (that defaults to the standard behavior) sounds like a good idea to me. Just changing it would probably also be an improvement on the current state.

We do need beginning of line and end of line keybindings (that aren't control-a and control-e); are the current command-left and command-right standard? I see they work here in this firefox editor thingy I'm using which seems like a good sign.

soegaard commented 3 years ago

Yes, command and arrow left and right are standard.

Any tips on building just DrRacket using a snapshot version of Racket? (See detailed question on Slack)

rfindler commented 3 years ago

Sorry I just realized there was a question here. Maybe you're set up now, but the way I usually do things is to clone the main racket repo, type make at the toplevel (nothing else first), make an extra-pkgs directory at the top and, inside it, do raco pkg update --clone drracket (accepting the defaults to the subsequent questions). This has the disadvantage that it takes longer to get going (notably, on my machine the initial make step takes a bit more than 30 minutes) but the whole thing can be thrown away by throwing away the top-level directory, the snapshot that gets downloaded is never too old, and git pull followed by make at the top-level updates everything.

soegaard commented 3 years ago

Thanks for the pointers.

In order to skip the 30 minutes for building (that's a long time, if the you only want to make a small change), I wanted to use a snapshot build. I like making a fork on github and the clone the fork. This way, after making the change, I can inspect it on Github before I make a pull request.

The key step I was doing wrong was using raco link rather than raco update (which for some reason, I thought downloaded an update from github).