[squeak-dev] The Trunk: HelpSystem-Core-pre.107.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Dec 13 11:22:14 UTC 2018
Patrick Rein uploaded a new version of HelpSystem-Core to project The Trunk:
http://source.squeak.org/trunk/HelpSystem-Core-pre.107.mcz
==================== Summary ====================
Name: HelpSystem-Core-pre.107
Author: pre
Time: 13 December 2018, 12:22:11.571468 pm
UUID: 7f07a7ac-ec18-432a-85df-a1c6901cb73b
Ancestors: HelpSystem-Core-tpr.106
Categorizes uncategorized methods in the HelpSystem package.
=============== Diff against HelpSystem-Core-tpr.106 ===============
Item was changed:
+ ----- Method: HelpTopicListItemWrapper class>>with:model:parent: (in category 'instance creation') -----
- ----- Method: HelpTopicListItemWrapper class>>with:model:parent: (in category 'as yet unclassified') -----
with: anObject model: aModel parent: aParent
^self new
setItem: anObject model: aModel parent: aParent
!
Item was changed:
+ ----- Method: SearchTopic>>find:in:results: (in category 'searching') -----
- ----- Method: SearchTopic>>find:in:results: (in category 'as yet unclassified') -----
find: term in: path results: results
| resultTemplate c topic |
topic := path last.
resultTemplate := Array new: 6.
(topic title asString findString: term startingAt: 1 caseSensitive: false) in: [:index |
index > 0 ifTrue: [resultTemplate at: 2 put: (index to: index + term size)]].
((c := topic contents asString withSqueakLineEndings) findString: term startingAt: 1 caseSensitive: false) in: [:index |
index > 0 ifTrue: [
| leadingContext trailingContext i |
leadingContext := 0.
trailingContext := 0.
i := index.
[i notNil] whileTrue: [
(leadingContext = 2 or: [i = 1])
ifTrue: [
leadingContext := i = 1 ifTrue: [i] ifFalse: [i+1].
i := nil]
ifFalse: [
((c at: i) = Character cr) ifTrue: [
leadingContext := leadingContext + 1].
i := i - 1] ].
i := index + term size.
[i notNil] whileTrue: [
(trailingContext = 2 or: [i >= c size])
ifTrue: [
trailingContext := i = c size ifTrue: [i] ifFalse: [i-1].
i := nil]
ifFalse: [
((c at: i) = Character cr) ifTrue: [
trailingContext := trailingContext + 1].
i := i + 1] ].
resultTemplate
at: 1 put: path;
at: 3 put: (index - leadingContext + 1 to: index - leadingContext + term size);
at: 4 put: (c copyFrom: leadingContext to: trailingContext);
at: 5 put: leadingContext;
at: 6 put: (index to: index + term size - 1).
self mutex critical: [ results add: resultTemplate ].
self triggerUpdateContents.
] ].
topic isSearchable ifTrue: [
topic subtopics do: [:t | self find: term in: path, {t} results: results]].!
Item was changed:
+ ----- Method: SearchTopic>>mutex (in category 'private') -----
- ----- Method: SearchTopic>>mutex (in category 'as yet unclassified') -----
mutex
^ mutex ifNil: [mutex := Mutex new]!
Item was changed:
+ ----- Method: SearchTopic>>printResultEntry: (in category 'private') -----
- ----- Method: SearchTopic>>printResultEntry: (in category 'as yet unclassified') -----
printResultEntry: entry
| resultEntry topic |
resultEntry := '' asText.
topic := entry first last.
entry second notNil
ifFalse: [resultEntry append: (
(topic title) asText
addAttribute: TextEmphasis bold)]
ifTrue: [resultEntry append: (
(topic title) asText
addAttribute: TextEmphasis bold;
addAttribute: (TextColor color: Color green muchDarker)
from: entry second first
to: entry second last)].
resultEntry append: (' (open topic)' asText
addAttribute: (PluggableTextAttribute evalBlock: [
self changed: #searchResultSelected with: entry first.
self changed: #searchResultContentsSelected with: entry sixth])).
resultEntry append: String cr.
entry fourth in: [:contents |
| text |
text := contents asText.
text
addAttribute: (TextColor color: Color green muchDarker)
from: entry third first
to: entry third last;
addAttribute: TextEmphasis bold
from: entry third first
to: entry third last.
resultEntry
append: text withBlanksTrimmed;
append: '\\' withCRs.
].
^ resultEntry!
Item was changed:
+ ----- Method: SearchTopic>>startSearch (in category 'private') -----
- ----- Method: SearchTopic>>startSearch (in category 'as yet unclassified') -----
startSearch
self stopSearch.
results := OrderedCollection new.
self topicsToSearch ifEmpty: [
self changed: #contents.
^ self].
process := [
(self topicsToSearch
sorted: [:t1 :t2 | t1 priorityForSearch <= t2 priorityForSearch])
do: [:topic |
| nestedResults |
nestedResults := OrderedCollection new.
self mutex critical: [results add: topic -> nestedResults].
self find: self term in: {topic} results: nestedResults].
results add: 'Search finished.'.
self triggerUpdateContents.
] forkAt: 35.!
Item was changed:
+ ----- Method: SearchTopic>>stopSearch (in category 'private') -----
- ----- Method: SearchTopic>>stopSearch (in category 'as yet unclassified') -----
stopSearch
process ifNotNil: #terminate.
process := nil.!
Item was changed:
+ ----- Method: SearchTopic>>triggerUpdateContents (in category 'private') -----
- ----- Method: SearchTopic>>triggerUpdateContents (in category 'as yet unclassified') -----
triggerUpdateContents
self mutex critical: [
updatePending == true ifFalse: [
updatePending := true.
Project current addDeferredUIMessage: [ActiveWorld
addAlarm: #updateContents withArguments: #()
for: self at: Time millisecondClockValue + 250] ] ].
!
Item was changed:
+ ----- Method: SearchTopic>>updateContents (in category 'private') -----
- ----- Method: SearchTopic>>updateContents (in category 'as yet unclassified') -----
updateContents
self mutex critical: [ updatePending := false ].
resultText := nil.
self changed: #contents with: self.!
Item was changed:
+ ----- Method: SearchTopic>>updateResultText (in category 'private') -----
- ----- Method: SearchTopic>>updateResultText (in category 'as yet unclassified') -----
updateResultText
resultText := '' asText.
self mutex critical: [
results ifNil: [^ resultText].
results do: [:topicToResult |
topicToResult isString
ifTrue: [resultText append: (
(topicToResult, String cr) asText
addAttribute: (TextColor color: (Color gray: 0.7));
yourself)]
ifFalse: [
resultText append: (
('\----- Matches found in ''', topicToResult key title, ''' -----\\') withCRs asText
addAttribute: (TextColor color: (Color gray: 0.7))).
topicToResult value do: [:entry |
resultText append: (self printResultEntry: entry)]
]]].
^ resultText!
More information about the Squeak-dev
mailing list
|