[squeak-dev] HelpSystem & Class comments

Igor Stasenko siguctua at gmail.com
Wed Feb 24 07:54:38 UTC 2010


On 24 February 2010 06:25, keith <keith_hodges at yahoo.co.uk> wrote:
> 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?

< documentation: '
blah blah blah
blah blah blah
blah blah blah
blah blah blah
blah blah blah
'>

> 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
>>
>
>
>
>
>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list