[squeak-dev] The Trunk: Morphic-eem.1340.mcz

Chris Muller asqueaker at gmail.com
Fri Jun 2 21:12:09 UTC 2017


Hey Eliot,

"Senders" refers to message-sends only, where as variable references are
browsed using the "browse references" command, (Command+Shift+N), which
does work for browsing references to inst-vars.

Best.

On Thu, Jun 1, 2017 at 3:22 PM,  <commits at source.squeak.org> wrote:
> Eliot Miranda uploaded a new version of Morphic to project The Trunk:
> http://source.squeak.org/trunk/Morphic-eem.1340.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-eem.1340
> Author: eem
> Time: 1 June 2017, 1:21:49.04056 pm
> UUID: 6117ed97-d114-454b-a38c-b35edc306c14
> Ancestors: Morphic-eem.1339
>
> Fix browseIt so that accesses to a selected inst var are browsed, not just senders of the accessor.  Needs alternateBrowseIt preference disabled.
>
> =============== Diff against Morphic-eem.1339 ===============
>
> Item was changed:
>   ----- Method: TextEditor>>browseIt (in category 'menu messages') -----
>   browseIt
>         "Launch a browser for the current selection, if appropriate"
>
> +       | aSymbol anEntry brow maybeBrowseInstVar |
> -       | aSymbol anEntry brow |
>
>         Preferences alternativeBrowseIt ifTrue: [^ self browseClassFromIt].
>
>         self lineSelectAndEmptyCheck: [^ self].
> -       (aSymbol := self selectedSymbol) isNil ifTrue: [^ morph flash].
>
> +       maybeBrowseInstVar :=
> +               [| selectionString |
> +               selectionString := self selection asString.
> +                ([model selectedClass] on: Error do: [:ex|]) ifNotNil:
> +                       [:class|
> +                       (class allInstVarNames includes: selectionString) ifTrue:
> +                               [self systemNavigation
> +                                       browseAllAccessesTo: selectionString
> +                                       from: (class classThatDefinesInstanceVariable: selectionString).
> +                                ^nil]]].
> +
> +       (aSymbol := self selectedSymbol) ifNil:
> +               [maybeBrowseInstVar value.
> +                ^morph flash].
> +
>         aSymbol first isUppercase
>                 ifTrue:
>                         [anEntry := (model environment
>                                 valueOf: aSymbol
>                                 ifAbsent:
>                                         [ self systemNavigation browseAllImplementorsOf: aSymbol.
>                                         ^ nil]).
>                         anEntry ifNil: [^ morph flash].
> +                       (anEntry isBehavior and: [anEntry name == aSymbol]) ifFalse: "When is this ever false?"
> +                               [anEntry := anEntry class].
> -                       (anEntry isKindOf: Class)
> -                               ifFalse:        [anEntry := anEntry class].
>                         brow := SystemBrowser default new.
>                         brow setClass: anEntry selector: nil.
>                         brow class
>                                 openBrowserView: (brow openEditString: nil)
>                                 label: 'System Browser']
>                 ifFalse:
> +                       [self systemNavigation browseAllImplementorsOf: aSymbol.
> +                        maybeBrowseInstVar value]!
> -                       [self systemNavigation browseAllImplementorsOf: aSymbol]!
>
>


More information about the Squeak-dev mailing list