So no, it does not allow you to enter arbitrary computations. I'm not saying that this should replace the current language-based approach, but I think that having this for all pre-defined actions (like new tab, run, complete, etc.) would make customizing (as apposed to augmenting) much more convenient.
On Fri, May 11, 2012 at 1:39 PM, Nick Shelley <nickmshel...@gmail.com>wrote: > Sorry to be imprecise. It lists all menu actions plus many standard text > actions. Here's a screenshot of the last menu actions followed by some > selection actions. > > On Fri, May 11, 2012 at 1:32 PM, Luke Vilnis <lvil...@gmail.com> wrote: > >> I assume Chaitin's constant is involved. >> >> >> On Fri, May 11, 2012 at 3:22 PM, Matthias Felleisen <matth...@ccs.neu.edu >> > wrote: >> >>> >>> [How] does Xcode allow you to enter arbitrary computations in response >>> to key events? I don't understand how one can list "all possible actions" >>> since there are infinitely many? -- Matthias >>> >>> >>> >>> On May 11, 2012, at 2:58 PM, Nick Shelley wrote: >>> >>> > On the topic of key bindings, is there a reason this can't be done in >>> the preferences menu? Xcode has a key bindings section in the preferences >>> menu that has all possible actions on the left and the current bindings on >>> the right, and you can just click on the current binding and change it to >>> whatever you want. I think something like that would be nice in DrRacket, >>> but I have no idea how hard it would be to implement. >>> > >>> > Maybe that's on the list of "It would be nice, but..." >>> > >>> > On Fri, May 11, 2012 at 6:14 AM, Robby Findler < >>> ro...@eecs.northwestern.edu> wrote: >>> > Ah, good point. I've added some example code to the docs that shows >>> > how to bind menu items. Here's the code. >>> > >>> > Robby >>> > >>> > #lang s-exp framework/keybinding-lang >>> > >>> > (define (menu-bind key menu-item) >>> > (keybinding >>> > key >>> > (λ (ed evt) >>> > (define canvas (send ed get-canvas)) >>> > (when canvas >>> > (define menu-bar (find-menu-bar canvas)) >>> > (when menu-bar >>> > (define item (find-item menu-bar menu-item)) >>> > (when item >>> > (define evt >>> > (new control-event% >>> > [event-type 'menu] >>> > [time-stamp >>> > (send evt get-time-stamp)])) >>> > (send item command evt))))))) >>> > >>> > (define/contract (find-menu-bar c) >>> > (-> (is-a?/c area<%>) (or/c #f (is-a?/c menu-bar%))) >>> > (let loop ([c c]) >>> > (cond >>> > [(is-a? c frame%) (send c get-menu-bar)] >>> > [(is-a? c area<%>) (loop (send c get-parent))] >>> > [else #f]))) >>> > >>> > (define/contract (find-item menu-bar label) >>> > (-> (is-a?/c menu-bar%) >>> > string? >>> > (or/c (is-a?/c selectable-menu-item<%>) #f)) >>> > (let loop ([o menu-bar]) >>> > (cond >>> > [(is-a? o selectable-menu-item<%>) >>> > (and (equal? (send o get-plain-label) label) >>> > o)] >>> > [(is-a? o menu-item-container<%>) >>> > (for/or ([i (in-list (send o get-items))]) >>> > (loop i))] >>> > [else #f]))) >>> > >>> > (menu-bind "c:a" "Run") >>> > >>> > >>> > On Thu, May 10, 2012 at 8:22 PM, Ray Racine <ray.rac...@gmail.com> >>> wrote: >>> > > I'm caught in a bit of Catch-22. From the doc. >>> > > >>> > > If you are most familiar with Emacs-style key bindings (especially on >>> > > windows or some linux installations where the control key is, by >>> default, >>> > > for the menu shortcuts), you should uncheck the Enable keybindings in >>> > > menus preference. Many of the keybindings below are inspired by >>> Emacs. >>> > > >>> > > So I've disabled keybindings in menu and thereby lose crtl-r Run and >>> crtl-i >>> > > Reindent. I'd like to re-bind but I've as of yet been unable to >>> locate what >>> > > functions Run and Reindent correspond to. >>> > > >>> > > I totally missed the online check syntax option, which sounds like a >>> very >>> > > good thing. In fact I'm still totally missing it. :) I just >>> rechecked the >>> > > menus/preferences. Where is this mythic option found? >>> > > >>> > > Thanks >>> > > >>> > > >>> > > On Thu, May 10, 2012 at 8:49 PM, Robby Findler < >>> ro...@eecs.northwestern.edu> >>> > > wrote: >>> > >> >>> > >> FWIW, run and reindent are already menu-key based shortcuts (r and i >>> > >> respectively) so they should be available already (unless you're on >>> > >> windows and you've disabled menu keyboard shortcuts). For reindent >>> you >>> > >> can hit tab, and DrRacket re-indents the line you're on or the >>> > >> selection (if it is more than one line). For check syntax, I >>> recommend >>> > >> you enable online check syntax and then you don't have to hit any >>> key >>> > >> at all to get that to work. >>> > >> >>> > >> hth, >>> > >> Robby >>> > >> >>> > >> On Thu, May 10, 2012 at 6:38 PM, Ray Racine <ray.rac...@gmail.com> >>> wrote: >>> > >> > I'm attempting this weekend to make the leap from my beloved >>> Emacs and >>> > >> > Geiser to DrRacket. Was wondering if anyone has a cool set of >>> custom >>> > >> > keybindings they'd like to share. >>> > >> > >>> > >> > Some I'd like to get my hands on are: >>> > >> > 1. binding for reindent / reindent all. >>> > >> > 2. binding for Check Syntax button equivalent. >>> > >> > 3. binding for Run button equivalent. >>> > >> > >>> > >> > Three below I just pieced together. >>> > >> > >>> > >> > ;; insert λ >>> > >> > (keybinding "c:\\" (λ (editor evt) (send editor insert "λ"))) >>> > >> > >>> > >> > ;; close >>> > >> > (keybinding "c:q" (λ (editor evt) >>> > >> > (send (send editor get-top-level-window) >>> > >> > close-current-tab))) >>> > >> > >>> > >> > ;; open a new tab >>> > >> > (keybinding "c:t" (λ (editor evt) (send (send editor >>> > >> > get-top-level-window) >>> > >> > create-new-tab)) >>> > >> > >>> > >> > ____________________ >>> > >> > Racket Users list: >>> > >> > http://lists.racket-lang.org/users >>> > >> > >>> > > >>> > > >>> > >>> > ____________________ >>> > Racket Users list: >>> > http://lists.racket-lang.org/users >>> > >>> > ____________________ >>> > Racket Users list: >>> > http://lists.racket-lang.org/users >>> >>> >>> ____________________ >>> Racket Users list: >>> http://lists.racket-lang.org/users >>> >> >> >
____________________ Racket Users list: http://lists.racket-lang.org/users