This is really cool. It opens so many possibilities.
I imaging method editor where message sends can be expanded to implementors
just in place.
2017-08-26 1:03 GMT+02:00 Tudor Girba <tudor(a)tudorgirba.com>om>:
Hi,
We are really pleased to announce another major advancement in the
development of the moldable editor, and most of it was enabled because of
one new feature: expandable elements. We think this will impact
significantly our day to day interactions.
To exemplify what we mean, we will make use of two more alpha projects
that we did not announce yet: GT Documenter (a set of documentation tools
based on Pillar and GT Examples) and GT Mondrian (the graph visualization
engine), both of which are being implemented in Bloc.
Please take a look at the following pictures showing the documentation
Pillar file that ships together with GT Mondrian. What stands out are the
two embedded pictures. These are actually not pictures, but
visualizations rendered live during the viewing of the document out of a
referenced GT Example.
Now, GT Examples are likely also new for most people. We introduced them a
couple of years ago based on the original idea of Markus Gaelli. These are
a kind of tests that return an object and that can be built out of other
examples. The nice thing is that they are always executable and testable.
So, of course, if you see the resulting object, you can also see the code
that created it, and if you see the code, you can even execute it live,
right in place (notice the preview of the second snippet).
Perhaps the most controversial part of GT Examples is that they offer a
mechanism to define static dependencies via pragmas. Please, let’s leave
this debate to another occasion, but please also notice that tools can use
that static information to unfold the code of the referenced method (notice
the nested code editors).
A side note: if you look closer at the list with three items at the top of
the Tutorial section, you will notice numbering next to #. That is actually
syntax highlighting and so is the mechanism that embeds the expandable
elements. It’s really cool.
Taking step back, when we introduced the editor a few weeks ago, we called
it moldable because we said we can make it take different shapes easily. GT
Documenter with everything you see in the above screenshots has currently
~500 lines of code, and all this while still having an editor that is
highly scalable.
We think that Bloc and Brick will change dramatically face of Pharo and
now we can start to get a glimpse of what is possible. For example, the use
case presented above is more than a technical tool, and we think this will
change both the way we write documentation and the way we consume it.
All these will be presented at ESUG both during presentations and at the
Innovation Awards competition. In the meantime, those that want to play
with it can execute the following in both Pharo 6.1 and Pharo 7.0:
Iceberg enableMetacelloIntegration: true.
Metacello new
baseline: 'GToolkit';
repository: 'github://feenkcom/gtoolkit/src';
load.
And then inspect:
'./pharo-local/iceberg/feenkcom/gtoolkit/doc/mondrian/index.pillar'
asFileReference
Cheers,
The feenk team
--
www.tudorgirba.com
www.feenk.com
"Innovation comes in the least expected form.
That is, if it is expected, it already happened."