I will play with it :)

I was thinking to have >>> instead of association to make sure that we can disambiguate from ->

Thanks for the protoype.

This kind of little action can change completely the face of Pharo library. I always ***LOVED*** little examples inside method

when I discovered Smalltalk.

This plus examples at the class side and link with nautilus execution -> gt inspector will really improve the situation.


Le 15/9/16 à 22:35, Nicolai Hess a écrit :

2016-09-15 20:45 GMT+02:00 stepharo <steph...@free.fr <mailto:steph...@free.fr>>:

    Hi all

    I want something similar in the spirit to PythonDocTest

    I'm talking about

        "Returns the base of the basename,
            /foo/gloops.taz basename is 'gloops.taz'
            / basename is '/'"

    Pragmas do not work well i.e.,
        "Returns the base of the basename"
         <expr: '''/foo/gloops.taz'' asFileReference basename' result:

    We should invent a syntax to be put inside comments and that we
    can easily parse because we need to improve
    the use and discovery of the library.

    I was thinking about

        "Returns the base of the basename"
        '/foo/gloops.taz' asFileReference basename
        >>> 'gloops.taz'

    Do you have any idea?

    I cannot not do anything and just complain that our methods are
    not that well documented.
    We as a community should take this and build an super cool system.

    I tried and defined >>> on Object to see if it works!

    Object >>> aResultingObject
        "If the method comment contains >>> then it is a pharo
    documentated test. We can check that it is true."

        '/foo/gloops.taz' asFileReference basename
       >>> 'gloops.taz'

        ^ self = aResultingObject

Ok, this is a quick hack ( do not look at the code :), yes using regex here is a bit fragil)

You can add code in comments between backticks (`)
The formatter will highlight the text like smalltalk code (or not if it is not valid code). + an icon styler with an icon showing a warning icon for faulty code or an information icon otherwise
you can click on the icon,

if the code is an association

expression -> result

it executes the expression and compares it with the result, (with assert:equals: ) opens debugger if it fails and does
nothing otherwise

if the code is just an expression, it opens an inspector.

This is just one way to do some tests and experiments with this idea, don 't yet know if this is a good idea or if
we can / should find a better way to connect code with examples.

first result, I find expressions in comments, highlighted as code, confusing :)

(file in attached cs in a recent pharo 6.0 and look at the method AbstractFileReference>>#baseName . Or
add an expression with backticks in a method comment
` your code here `


Reply via email to