I think you pose some interesting design challenges - but it's worthy of 
experimentation.

I share Denis' enthusiasm to build something better - but it's true it's not an 
easy problem space.

I'm a big fan of GTInspector, but sometimes I slide across and lose my context 
(not always, and not for all types of problems).

For unique extractions - inlining is a no brainer (it's just like code folding 
in many editors). For non-unique, maybe something in the gutter might let you 
easily flip... I don't know, but I'm not convinced our current way is always 
optimal.

Still, the whole moldable idea is to make it easy to experiment - and that's 
the cool bit. That's where we thrive.

Tim

Sent from my iPhone

> On 26 Aug 2017, at 18:38, Thierry Goubier <thierry.goub...@gmail.com> wrote:
> 
> 
> 
> 2017-08-26 15:44 GMT+02:00 Denis Kudriashov <dionisi...@gmail.com>:
>> No Thierry, Newspeak do not allow it. And it not looks similar to what I 
>> want.
> 
> Hum, you would still get the same overall approach: editor inside editor (or 
> view inside view). Now, you can say it is not the same, up to you.
> 
> For me, it has the same effect: the editor isn't in a single place anymore. 
> You may consider it doesn't matter; IMHO it does matter (and it makes for me 
> the Newspeak editor slightly less efficient; the same that the Smalltalk 
> system browser seemed more effective than the Self in-place method edit, for 
> having used both).
>  
>> 
>> Now command+click on selector opens implementors window. In past it moved 
>> browser to single implementor. It was nice and it is how other IDEs are 
>> working.
> 
> You miss the past behaviour? Why not adding it again?
>  
>> But as Tim notice it always loses context. And it is quite difficult to 
>> browse long call chain which include many small methods.
> 
> I'm not sure it would solve that one.
> 
> Either it is a long call chain with a fan-out of one, in which case the 
> developper is creating many useless single line methods because it is "the 
> right way"(tm), or it has a fan-out greater than one (your typical 
> polymorphic code) and then each time you open, you have half a dozen 
> implementors.
> 
> For that, you already have the flow browser.
>  
>> So with new editor command+click will be able expand implementor just in 
>> place. I think it will be big improvement for IDE. 
> 
> As I said, with Calypso and Nautilus handling badly long methods, then a 
> method inside a method just makes the top level method longer... I'd like to 
> see you do that on Metacello or SmaCC code, where important methods easily go 
> over 50 lines before you expand anything.
> 
> I'd say there that the GTInspector approach would work better -> expand on 
> the right, with the ability to keep two side by side, and overlaid with lines 
> clearly showing what has been expanded (for that "context" thing).
> 
> Regards,
> 
> Thierry
>  
>> 
>> 2017-08-26 14:59 GMT+02:00 Thierry Goubier <thierry.goub...@gmail.com>:
>>> 
>>> 
>>> 2017-08-26 14:46 GMT+02:00 Denis Kudriashov <dionisi...@gmail.com>:
>>>> 
>>>> 2017-08-26 14:31 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>>> Denis - that's a very cool idea if I've understood you - expand in the 
>>>>> source code of the current method, literally inline? So you could scroll 
>>>>> up and down to view the context as you expand it out?
>>>> 
>>>> Yes, exactly.
>>> 
>>> Then that would look a bit like the NewSpeak code browser, if you would 
>>> like to try the concept.
>>> 
>>> There are disadvantages to that paradigm. One of those is that the system 
>>> browser in Pharo is ill-suited to long methods.
>>> 
>>> Thierry
>>>  
>>>>  
>>>>> One of the complaints around refactoring is that you lose context of 
>>>>> surrounding code - intelligent in place expansion would be the best of 
>>>>> both worlds...
>>>>> 
>>>>> Tim
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>>> On 26 Aug 2017, at 11:40, Denis Kudriashov <dionisi...@gmail.com> wrote:
>>>>>> 
>>>>>> 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 <tu...@tudorgirba.com>:
>>>>>>> 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).
>>>>>>> 
>>>>>>> <pillar-mondrian-expanded-preview.png>
>>>>>>> 
>>>>>>> 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."
>>>>>>> 
>>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to