AW: [plt-scheme] word completion for module based languages

From: Robert Matovinovic (robert.matovinovic at
Date: Tue Jul 1 12:15:16 EDT 2008

as I already mentioned in the last mail, which unfortunately wasn't sent to
the list, my language is not augmenting the capability-value method. I read
docs, looked in the source, tried different things, the whole day but didn't
come to a solution. Concerning the capability-value example below I must
make a stupid mistake, because whereever I put it in my code I get 

expand: unbound variable in module in:

Well, I looked up in private/ that get-all-manual-keywords is a
method of drscheme:language-configuration/internal since I thought this
might be the mistake because
drscheme:language-configuration:get-all-manual-keywords brought up the
respective mistake. So what I'm doing wrong?

On the other hand I found that 'drscheme:autocomplete-words is #t. Also it
seems to me get-all-manual-keywords is the default for
'drscheme:autocomplete-words is #t. So it should just work without
augmenting capability-value. Is that true? In my language "no completions
available .." is the only thing I see.

'gui-debugger:debug-button is also #t. I defined the method
debugger:supported? in the
drscheme:language:module-based-language->language-mixin of my language. The
button is there and clickable not depending on my debugger:supported?
method. But after clicking the debugger panels don't show up although in the
background something happens. If I want to debug (+ 1 2) after some time the
interaction window opens and displays the result. The debugger:supported?
method seems also to be set to #t by default. But something suppresses the

Any help appreciated.

-----Ursprüngliche Nachricht-----
Von: plt-scheme-bounces at
[mailto:plt-scheme-bounces at] Im Auftrag von Robby Findler
Gesendet: Dienstag, 1. Juli 2008 05:02
An: Robert Matovinovic
Cc: plt-scheme at
Betreff: Re: [plt-scheme] word completion for module based languages

[ Matthew? Greg? A debugger question below. ]

Is your language augmenting the capability-value method? Perhaps you need
something like this:

      (define/augment (capability-value key)
          [(eq? key 'drscheme:autocomplete-words)
          [else (drscheme:language:get-capability-default key)]))

You might want to check over the docs for


to see if there are other capabilities you want to enable.

For the debugger, it looks like you want to both respond with #t to the
'gui-debugger:debug-button capability (add to the above method), and define
the debugger:supported? method, which should also return #t. I'm just
inferring that from the source, tho, so Matthew or Greg may know better.


On Sat, Jun 28, 2008 at 2:20 AM, Robert Matovinovic
<robert.matovinovic at> wrote:
> Yes, the language is in the language dialog and defined as module with 
> "(module ..." and uses drscheme:language-configuration:add-language 
> and drscheme:get/extend:extend-unit-frame. I will look at "#lang ...". 
> So far I only know that one can use it as an abbreviation for module.
> Robert
> -----Ursprüngliche Nachricht-----
> Von: robby.findler at [mailto:robby.findler at] Im 
> Auftrag von Robby Findler
> Gesendet: Freitag, 27. Juni 2008 22:16
> An: Robert Matovinovic
> Cc: plt-scheme at
> Betreff: Re: [plt-scheme] word completion for module based languages
> On Fri, Jun 27, 2008 at 2:47 PM, Robert Matovinovic 
> <robert.matovinovic at> wrote:
>> Finally I could test what you have checked in, Robby. Word completion 
>> now shows also all commands of my module language in version 4.0.1 
>> [3m](Yippieh), thank you very much. But unfortunately it works only 
>> if one of the built-in languages are chosen but not when I switch to 
>> my module language. So something is still missing which is important 
>> to me. Maybe there is something I have to add to my module. I don't 
>> ask for language specific filtering of the word completion, the whole 
>> list would be alright, just that it works also with a module 
>> language.
> Can you tell me a little more about how you've added the language to 
> DrScheme? Is it in the language dialog?
> If so, perhaps you might consider defining your language in a way that 
> "#lang ..." works and then using DrScheme's module language. We're 
> trying to migrate that way so that all of the information needed to 
> run the program is in the program's text itself (as opposed to being 
> in the environment).
>> I also like to use the debugger with my module language, but it 
>> doesn't. Is there an easy fix?
> I suspect the answer here may be the same as the above, but I'm not 
> sure.
> Robby

Posted on the users mailing list.