[squeak-dev] HelpSystem & Class comments

keith keith_hodges at yahoo.co.uk
Wed Feb 24 04:25:19 UTC 2010


Sorry but I didnt understand  much of this. All I really know about  
pragma's is that you can put

<blah: #symbol>

at the top of some code. Where do you put the documentation in this  
scheme?

Keith


> On Tue, Feb 23, 2010 at 5:57 PM, keith <keith_hodges at yahoo.co.uk>  
> wrote:
> In Sake we have a special Compiler Hack called SakeCompiler.
>
> This uses """""" (6 quotes) to mark the end of the method, from then  
> on you can put any content you like in the method.
>
> There are accessors docAt: selector
>
> Using a pragma is a better way.  The pragma can include any number  
> of strings, and literal strings can^H^H^Hshould be able to contain  
> any characters.  One can add additional keywords top define  
> additional metadata.  There is already a protocol for accessing  
> pragmas and arguments from methods.  One can have multiple pragmas,  
> etc.  If the pragma is well-designed one can perform the pragma to  
> output the documentation.  i.e. the pragma message is also  
> understood by a formatter/generator, and so by browsing implementors  
> of the pragma you get immediately to the code that can process said  
> pragma.  There's a wrinkle in that the generator needs to be  
> parameterised by the class and selector of the method before it  
> performs the pragma, but that aside, it is quite neat.
>
> e.g.
>
> Documentor new
>     outputTo: aStream;
>     documentFrom: aSubClass to: aSuperClass
>
> documentFrom: aSubClass to: aSuperClass
>     (Pragma allNamed: self documentationPragma from: aSubClass to:  
> aSuperClass) do:
>         [:p|
>         currentClass := p class.
>         currentSelector := p selector.
>         p message sendTo: self]
>
>
>
>
> Keith
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100224/42b45841/attachment.htm


More information about the Squeak-dev mailing list