[racket] DRRacket right-click menu fragility in Linux.

From: Laurent (laurent.orseau at gmail.com)
Date: Wed May 1 11:36:51 EDT 2013

Ray,

Couldn't resist, this sounded like a nice feature, so here you go:
https://gist.github.com/Metaxal/5495979

It's in the script-plugin format, but it should be straight-forward to use
it in your key-bindings file instead.

It's a bit simplified (it cycles from the start of the buffer, not from the
current position and backwards), see the text above the dabbrev procedure.

Comments are welcome of course. In particular, if there are cases where it
doesn't work, please let me know.

Laurent



On Wed, May 1, 2013 at 3:09 PM, Ray Racine <ray.racine at gmail.com> wrote:

> Random thought question, other then "just work", is there any disadvantage
> in how custom keybindings work in DrR in extracting all keybindings out
> from DrR code into a dedicated default keybindings.rkt?  Then a user
> installed keybindings.rkt inherits and overrides from the default or just
> modifies the default directly?
>
> FWIW, a super feature that I use in emacs when typing in code is "dynamic
> expansion".  One types the first few prefix chars of a token and 'alt-/'
> and it completes the word by back searching for the first matching token in
> the source file. 'alt-/' again, and it searchs back for the next match.
> Its mindless string pattern matching in the source file.  No expansion  or
> AST semantic parsing is necessary or done.  Mindless yet very effective in
> key stroke/typo reduction.  I probably miss this more in DrRacket than any
> other emacs basic editing feature.
>
> From emacs help.
>
> M-/ runs the command dabbrev-expand, which is an interactive
> autoloaded compiled Lisp function in `dabbrev.el'.
>
> It is bound to M-/.
>
> (dabbrev-expand ARG)
>
> Expand previous word "dynamically".
>
> Expands to the most recent, preceding word for which this is a prefix.
> If no suitable preceding word is found, words following point are
> considered.  If still no suitable word is found, then look in the
> buffers accepted by the function pointed out by variable
> `dabbrev-friend-buffer-function'.
>
> A positive prefix argument, N, says to take the Nth backward *distinct*
> possibility.  A negative argument says search forward.
>
> If the cursor has not moved from the end of the previous expansion and
> no argument is given, replace the previously-made expansion
> with the next possible expansion not yet tried.
>
> The variable `dabbrev-backward-only' may be used to limit the
> direction of search to backward if set non-nil.
>
> See also `dabbrev-abbrev-char-regexp' and C-M-/.
>
>
> On Wed, May 1, 2013 at 8:20 AM, Robby Findler <robby at eecs.northwestern.edu
> > wrote:
>
>> I think those are all there, but probably you didn't find them because
>> they don't have quite the same name as the menu items (in the
>> edit|keybindings|show active keybindings menu item). I've fixed that. And I
>> also added tack/untack arrows. Here's the list from the source:
>>
>>       (send keymap map-function "c:x;b" (string-constant
>> cs-jump-to-binding))
>>       (send keymap map-function "c:x;n" (string-constant
>> cs-jump-to-next-bound-occurrence))
>>       (send keymap map-function "c:x;p" (string-constant
>> cs-jump-to-previous-bound-occurrence))
>>       (send keymap map-function "c:x;d" (string-constant
>> cs-jump-to-definition))
>>       (send keymap map-function "c:x;m" (string-constant cs-rename-id))
>>       (send keymap map-function "c:x;a" (string-constant
>> cs-tack/untack-arrow))
>>
>> Robby
>>
>>
>>
>> On Wed, May 1, 2013 at 3:14 AM, Laurent <laurent.orseau at gmail.com> wrote:
>>
>>> "Rename identifier" at least, and also those like "go to definition",
>>> "open defining file", and maybe "go to next/previous occurrence".
>>>
>>> Thank you very much!
>>> Laurent
>>>
>>>
>>> On Wed, May 1, 2013 at 12:59 AM, Robby Findler <
>>> robby at eecs.northwestern.edu> wrote:
>>>
>>>> Hi, sorry for the delayed response. I'll push an additional keybinding
>>>> (c:x;m for rename identifier). Which other ones are you missing?
>>>>
>>>> Sorry I don't have any leads on why popup menus still aren't working.
>>>>
>>>> Robby
>>>>
>>>>
>>>> On Thursday, April 18, 2013, Laurent wrote:
>>>>
>>>>>  Didn't try, but if I disable syntax check, the tooltips don't show,
>>>>> so I guess it's the same.
>>>>> I correct my previous answer: disabling syntax-check helps a little,
>>>>> but the mouse pointer must not move during the whole click (which is quite
>>>>> difficult on my touchpad).
>>>>> The menu stays longer, but still randomly disappears after some mouse
>>>>> moves.
>>>>>
>>>>> Do you want me to try the patch anyway?
>>>>>
>>>>> In case this bug is not resolved, would it be possible to have the
>>>>> same bindings in a regular window menu?
>>>>> (Or at list could you tell me what the bindings are so that I can make
>>>>> a plugin script?)
>>>>>
>>>>> Laurent
>>>>>
>>>>>
>>>>> On Thu, Apr 18, 2013 at 2:39 PM, Robby Findler <
>>>>> robby at eecs.northwestern.edu> wrote:
>>>>>
>>>>> This disables check syntax tooltips. Does that help?
>>>>>
>>>>> --- a/collects/drracket/private/syncheck/gui.rkt
>>>>> +++ b/collects/drracket/private/syncheck/gui.rkt
>>>>> @@ -805,7 +805,7 @@ If the namespace does not, they are colored the
>>>>> unbound color.
>>>>>
>>>>>              ;; syncheck:add-mouse-over-status : text pos-left
>>>>> pos-right string -> void
>>>>>              (define/public (syncheck:add-mouse-over-status text
>>>>> pos-left pos-right str)
>>>>> -              (when arrow-records
>>>>> +              (when (and #f arrow-records)
>>>>>                  (add-to-range/key text pos-left pos-right
>>>>>                                    (make-tooltip-info text pos-left
>>>>> pos-right str)
>>>>>                                    #f #f)))
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Apr 18, 2013 at 7:28 AM, Laurent <laurent.orseau at gmail.com>wrote:
>>>>>
>>>>> Yes, apparently.
>>>>>
>>>>> In DrRacket, deactivating syntax check does not change the problem.
>>>>>
>>>>>
>>>>> On Thu, Apr 18, 2013 at 1:52 PM, Robby Findler <
>>>>> robby at eecs.northwestern.edu> wrote:
>>>>>
>>>>> If you run "gracket" does the right click menu work better there?
>>>>>
>>>>> Robby
>>>>>
>>>>>
>>>>> On Thu, Apr 18, 2013 at 6:45 AM, Laurent <laurent.orseau at gmail.com>wrote:
>>>>>
>>>>> Are there any news about that bug? I miss the right-click menu very
>>>>> much...
>>>>>
>>>>> Laurent
>>>>>
>>>>>
>>>>> On Wed, Dec 5, 2012 at 5:30 AM, Neil Toronto <neil.toronto at gmail.com>wrote:
>>>>>
>>>>> Could what you're experiencing have anything to do with tooltips? It
>>>>> seems my right-click menu doesn't stay up whenever there's a tooltip out.
>>>>> Which is, like, every time I want it.
>>>>>
>>>>> Neil ⊥
>>>>>
>>>>>
>>>>> On 12/04/2012 07:55 PM, Ray Racine wrote:
>>>>>
>>>>> Yea, I didn't want to make a big deal out of it, but the up/down button
>>>>> change did not fix the issue.   In fact I'd say no impact positive or
>>>>> negative.
>>>>>
>>>>> It seems to happen when there is additional drawing 'complexity' in
>>>>> co-occurrence with the pop up drawing area.  I.e. the pop up menu is
>>>>> drawing where arrows are drawn or error highlighting is occurring etc.
>>>>> Also maybe when the pop up menu area is near the 'edge' of the Dr
>>>>> window
>>>>> and or pane area.  But again the problem is not consistently
>>>>> reproducible yet happens more often then not.  Its not a once in a blue
>>>>> moon that thing.  Sometimes an attempt to right click pop up  menu will
>>>>> fail numerous times in a row then succeed for no apparent reason.
>>>>>
>>>>> On Dec 4, 2012 9:07 PM, "Robby Findler" <robby at eecs.northwestern.edu
>>>>> <mailto:robby at eecs.**northwestern.edu>> wrote:
>>>>>
>>>>>     On Tue, Dec 4, 2012 at 6:11 PM, Stephen Chang <stchang at ccs.neu.edu
>>>>>
>>>>>
>>>>>
>>>
>>
>> ____________________
>>   Racket Users list:
>>   http://lists.racket-lang.org/users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130501/1c99061c/attachment-0001.html>

Posted on the users mailing list.