On Thu, Dec 29, 2016 at 1:40 AM, Denis Kudriashov <[email protected]> wrote: > > 2016-12-28 18:12 GMT+01:00 Ben Coman <[email protected]>: >> >> * multiple code pane tabs - cool >> * multi-selection is cool (but I need to trial how it works out in >> practice) >> * automatic selection of items similar to last selection - I've been >> meaning to ask this for Nautilus for a while. >> * pinning modified pane code panes is a nice approach. It would be >> nice to pin any pane. >> * packages pane - it would be nice for the test-result-icon to appear >> on left like the other panes. The folder icon would seem reasonable >> place to substitute. >> >> Nice feature to show variables in the protocol pane and references in >> the method list pane. But it says "Class variables" while these are >> "Instance Variables" > > > Because Class variables are also accessible from instance side and you want > to see what methods are used it. > But I agree it should not be here by default. Actually it will be not here > if Object will not define any class variable. But Object has > DependantFields. Browser probably should ignore it. > Now structure of variables view is the same as when you click on Variables > button in Nautilus. > > So you think existence of "Class variables" is also confusing because it > looks like parent group for instance variables?
Yes its confusing. I didn't even notice that "Class variables" could be expanded to show DependentsFields. I just assumed "Class variables" was the expanded parent of MultiByteBinaryOrTextStream, isBinary, converter. Hence my comment that "class variables" item should be renamed "instance variables". Now I see my comment was off target. I think the best fix is to have a parent "instance variables" as well as "class variables", and on the class side the parent should be "class instance variables." Such labels educate newbies. > >> >> >> Now I wonder if we can do without the Methods/Vars buttons by having >> the following top level tree items. Also as a newbie before developing >> the instinct to *know* which instance/class-side I was on, I got burnt >> a few times following tutorials accidentally putting methods on the >> wrong side. It would be interesting to try deprecating the >> Inst-Side/Class-Side buttons, and have something like the following >> items... >> + instance-side methods >> - accessing >> - initialization >> - extensions >> - GT-InspectorExtensions >> + class-side methods >> - instance creation >> - extensions >> + variables >> - instance variables >> - class variables >> - class instance variables >> > > It could be good or not. > Problem with this approach is same as why we use 4-column panes instead of > single tree menu for everything like other IDE does. > We don't want to scroll to achieve some group element. > Imaging that you browse some morph subclass which have a lot of protocols. > You are in some middle protocol and not see parent expanded group in list. > And now you want to look at class side or variables. Tree view will force > you to scroll instead of simple press on switch button like it is now. okay. It would still be useful to at least have "Instance methods" parent at the same level as "inherited methods" and "extensions" * its disconcerting to have the protocols floating without a parent * currently nowhere to select "All methods" - it seems you need to deselect to see all methods. So with * it could give another visual indication of which side you are on, by changing to "class methods" when the <Class side> button is pushed. > >> >> The "inherited methods" tree-item might be better as a pull down menu >> at the bottom of the pane, level with "Filter..." since visually it is >> confusing seeming that protocols like "accessing" are a sub-item of >> "inherited methods". > > > But it is not expanded and indentation of both items are same. > Also you can select "inherited methods" as any other group I didn't notice that. Fair enough. > and see all inherited methods together without using visibility checkbox. okay. I can see how that works. But I can't work out the display logic. Selecting... Collections-Streams > ReadWriteStream > inherited methods asBinaryOrTextStream(PositionableStream) is shown normal asZLibReadStream(PositionableStream) is shown grey Can you explain? cheers -ben
