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

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed May 1 11:52:15 EDT 2013

This is great! Thanks.

Robby


On Wed, May 1, 2013 at 10:36 AM, Laurent <laurent.orseau at gmail.com> wrote:

> 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/f1033269/attachment.html>

Posted on the users mailing list.