[squeak-dev] The Trunk: System-mt.1069.mcz
marcel.taeumel at hpi.de
Fri Jul 12 06:18:14 UTC 2019
for #suggestedTypeNames, it does not yield 'someMorph' and 'someMorphThing'. I suppose that method only exists for getting rid of prefix 'a' or 'some' or 'another' and suffix 's'.
Hmmm... #featuresDo: does not enumerate all combinations. It is a splitting algorithm on a flat stream of characters. It has no notion of the tree structure in source code; "features" means words in a piece of natural-language like text. If one wanted to enumerate all combinations (ignoring whitespace), it is possible as follows:
| input starts ends |
input := 'someMorphThing'.
starts := OrderedCollection new.
ends := OrderedCollection new.
combinations := OrderedCollection new.
input findFeatureIndicesDo: [:start :end |
starts add: start.
ends add: end].
starts do: [:start | ends do: [:end |
start < end ifTrue: [
combinations add: (input copyFrom: start to: end) ]]].
I hope this answers your question. :-)
Am 12.07.2019 04:58:37 schrieb Chris Muller <asqueaker at gmail.com>:
On Thu, Jul 11, 2019 at 2:21 AM <commits at source.squeak.org [mailto:commits at source.squeak.org]> wrote:
Marcel Taeumel uploaded a new version of System to project The Trunk:
==================== Summary ====================
Time: 11 July 2019, 9:21:36.166354 am
Fixes minor regression in suggestedTypeNames. That is. 'someMorphThing' should also yield 'MorphThing', not just 'Morph' and 'Thing'.
Will it also yield 'someMorph' and 'someMorphThing'? At first I thought the features only included the leaves, but this gives me hope that featuresDo: will enumerate all the nodes for me.
Thanks for doing this enhancement BTW, it bodes well for boosting the human<-->software bandwidth of Squeak's IDE even higher for users.
=============== Diff against System-mt.1068 ===============
Item was changed:
----- Method: String>>suggestedTypeNames (in category '*system') -----
^ Array streamContents: [:stream |
self findFeatureIndicesDo: [:start :end |
(self at: start) isUppercase ifTrue: [
stream nextPut: (self copyFrom: start to: end).
+ end ~= self size ifTrue: [
+ stream nextPut: (self copyFrom: start to: self size) withBlanksTrimmed].
"Often, argument names that refer to Collections end in the letter s, which can cause the suggested type-name to not be found. Account for this."
(self at: end) = $s ifTrue: [
stream nextPut: (self copyFrom: start to: end -1)]]]].!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev