Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.563.mcz
==================== Summary ====================
Name: Morphic-nice.563
Author: nice
Time: 4 August 2011, 12:58:16.105 am
UUID: d7f20d21-ba0e-4fff-84fc-e01926b645fc
Ancestors: Morphic-nice.562
Also select between vertical bars when clicking twice.
=============== Diff against Morphic-nice.562 ===============
Item was changed:
----- Method: Editor>>selectWord (in category 'new selection') -----
selectWord
"Select delimited text or word--the result of double-clicking."
^self
+ selectWordLeftDelimiters: '([{<|''"
- selectWordLeftDelimiters: '([{<''"
'
+ rightDelimiters: ')]}>|''"
- rightDelimiters: ')]}>''"
'!
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.562.mcz
==================== Summary ====================
Name: Morphic-nice.562
Author: nice
Time: 4 August 2011, 12:47:15.151 am
UUID: c33f17a9-28ad-450c-9b35-54ee67d9f0b9
Ancestors: Morphic-nice.561
Restore correct behaviour of selecting between delimiters when clicking twice.
=============== Diff against Morphic-nice.561 ===============
Item was changed:
----- Method: Editor>>selectWord (in category 'new selection') -----
selectWord
"Select delimited text or word--the result of double-clicking."
+ ^self
+ selectWordLeftDelimiters: '([{<''"
+ '
+ rightDelimiters: ')]}>''"
+ '!
- ^self selectWordLeftDelimiters: String cr rightDelimiters: String cr!
Nicolas Cellier uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-nice.133.mcz
==================== Summary ====================
Name: ST80-nice.133
Author: nice
Time: 4 August 2011, 12:29:20.301 am
UUID: 131f6f9d-ff5a-4cab-871e-6a3ec6a8d78b
Ancestors: ST80-nice.132
Always try to logDebuggerStackToFile first if Preferences is enabled, and discard Errors occuring in this phase.
That can help debugging the emergency situations when the debugger fail to open itself. ESPECIALLY IN MVC CASE...
=============== Diff against ST80-nice.132 ===============
Item was changed:
----- Method: Debugger class>>mvcOpenOn:context:label:contents:fullView: (in category '*ST80-opening') -----
mvcOpenOn: process context: context label: title contents: contentsStringOrNil fullView: bool
"Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
| controller debugger |
controller := ScheduledControllers activeControllerProcess == process
ifTrue: [ScheduledControllers activeController].
+ [Preferences logDebuggerStackToFile
+ ifTrue: [Smalltalk logSqueakError: title inContext: context]] on: Error do: [:ex | ex return: nil].
[debugger := self new
process: process
controller: controller
context: context.
bool
ifTrue: [debugger openFullNoSuspendLabel: title]
ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
- Preferences logDebuggerStackToFile
- ifTrue: [Smalltalk logSqueakError: title inContext: context]
] on: Error do: [:ex |
self primitiveError: 'Original error: ' , title asString , '.
Debugger error: ' , ([ex description]
on: Error
do: ['a ' , ex class printString]) , ':'].
process suspend!
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.561.mcz
==================== Summary ====================
Name: Morphic-nice.561
Author: nice
Time: 4 August 2011, 12:25:49.655 am
UUID: 625aead2-0dc0-49cf-b25c-9a8fa0b9a85b
Ancestors: Morphic-nice.560
Always try to logDebuggerStackToFile first if Preferences is enabled, and discard Errors occuring in this phase.
That can help debugging the emergency situations when the debugger fail to open itself.
=============== Diff against Morphic-nice.560 ===============
Item was changed:
----- Method: Debugger class>>morphicOpenOn:context:label:contents:fullView: (in category '*Morphic-opening') -----
morphicOpenOn: process context: context label: title contents: contentsStringOrNil fullView: bool
"Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
| errorWasInUIProcess debugger |
errorWasInUIProcess := Project spawnNewProcessIfThisIsUI: process.
+ [Preferences logDebuggerStackToFile
+ ifTrue: [Smalltalk logSqueakError: title inContext: context]] on: Error do: [:ex | ex return: nil].
WorldState addDeferredUIMessage: [
"schedule debugger in deferred UI message to address redraw
problems after opening a debugger e.g. from the testrunner."
[
debugger := self new process: process controller: nil context: context.
bool
ifTrue: [debugger openFullNoSuspendLabel: title]
ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
debugger errorWasInUIProcess: errorWasInUIProcess.
- Preferences logDebuggerStackToFile ifTrue: [
- Smalltalk logSqueakError: title inContext: context].
] on: Error do: [:ex |
self primitiveError:
'Original error: ',
title asString, '.
Debugger error: ',
([ex description] on: Error do: ['a ', ex class printString]), ':'
]
].
process suspend.
!
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.560.mcz
==================== Summary ====================
Name: Morphic-nice.560
Author: nice
Time: 4 August 2011, 12:13:33.583 am
UUID: f816651e-2c1a-402f-b4be-d7fc194061a0
Ancestors: Morphic-nice.559
Correct forwardDelete: that I just broke.
Note that (cmd+z) fail to undo this action. I think it was previously the case before I changed anything.
=============== Diff against Morphic-nice.559 ===============
Item was changed:
----- Method: TextEditor>>forwardDelete: (in category 'typing/selecting keys') -----
forwardDelete: aKeyboardEvent
"Delete forward over the next character.
Make Undo work on the whole type-in, not just the one char.
wod 11/3/1998: If there was a selection use #zapSelectionWith: rather than #backspace: which was 'one off' in deleting the selection. Handling of things like undo or typeIn area were not fully considered."
| startIndex usel upara uinterval ind stopIndex |
startIndex := self markIndex.
startIndex > self text size ifTrue: [
^ false].
self hasSelection ifTrue: [
"there was a selection"
self zapSelectionWith: self nullText.
^ false].
"Null selection - do the delete forward"
beginTypeInIndex ifNil: [ "no previous typing. openTypeIn"
self openTypeIn. UndoSelection := self nullText].
uinterval := UndoInterval copy.
upara := UndoParagraph copy.
stopIndex := startIndex.
(aKeyboardEvent keyValue = 127 and: [ aKeyboardEvent shiftPressed ])
+ ifTrue: [stopIndex := (self nextWord: stopIndex) - 1].
- ifTrue: [stopIndex := (self nextWordStart: stopIndex) - 1].
self selectFrom: startIndex to: stopIndex.
self replaceSelectionWith: self nullText.
self selectFrom: startIndex to: startIndex-1.
UndoParagraph := upara. UndoInterval := uinterval.
UndoMessage selector == #noUndoer ifTrue: [
(UndoSelection isText) ifTrue: [
usel := UndoSelection.
ind := startIndex. "UndoInterval startIndex"
usel replaceFrom: usel size + 1 to: usel size with:
(UndoParagraph text copyFrom: ind to: ind).
UndoParagraph text replaceFrom: ind to: ind with: self nullText]].
^false!
Nicolas Cellier uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-nice.132.mcz
==================== Summary ====================
Name: ST80-nice.132
Author: nice
Time: 3 August 2011, 11:28:09.105 pm
UUID: efc7fa9e-dc7e-42cc-907c-84be563b51a0
Ancestors: ST80-nice.131
Let old Paragraph respond to #string like NewParagraph.
=============== Diff against ST80-nice.131 ===============
Item was added:
+ ----- Method: Paragraph>>string (in category 'accessing') -----
+ string
+ ^text string!
On Wed, Aug 03, 2011 at 04:22:41PM +0000, commits(a)source.squeak.org wrote:
> Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
> http://source.squeak.org/trunk/Morphic-nice.558.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-nice.558
> Author: nice
> Time: 3 August 2011, 6:22:02.488 pm
> UUID: 236ff443-b885-4221-ac18-c426d6bb5424
> Ancestors: Morphic-ul.557
>
> ParagraphEditor is an old st-80 class implemented for a polling UI via the use of sensor inst. var..
> TextMorphEditor is a glue that enable using a ParagraphEditor in an event driven morphic world.
> There was a hack for feeding a sensor fake with morphic events.
> This hack was located in TextMorph.
> When 100% morphic Cuis-designed TextEditor was introduced in Squeak-trunk, it was made sensor-dependent instead of sensor-less and purely event driven. This should not be so.
>
> This version moves the hack where in belongs to, in TextMorphEditor>>fakeSensorWithEvent:
> It also temporarily duplicates it in TextEditor, in the interim before we remove it's sensor inst. var..
>
> NOTE 1: the hack did also previously apply to #mouseUp: #mouseDown: #mouseUp: events.
> It does not anymore because I saw no use to it.
> If I'm wrong, correct it by sending (self fakeSensorWithEvent: anEvent) in the TextMorphEditor implementation of these messages.
>
> NOTE2: the change does not change the behaviour of MVC projects. Keyboard typing still "works" (cough...)
>
> =============== Diff against Morphic-ul.557 ===============
Yay!
Aside from the update itself, this also gets my vote for the best
update comment of the year. It's clear and concise, explaining
what was changed, why it was changed, and how the changes impact
the overall system. Excellent!
Dave
Hello everyone!
We've been working on a simple CI server for Squeak for a university project.
Therefore, we needed to add two features to the SUnit implementation of Squeak:
1) Storing of error/failure signals in the TestResult object during the test execution.
(You can enable the storing with "testResult storeSignals: true".
You will then find the signals for each test case in "testResult signals".)
2) XUnit-style XML conversion of the TestResult.
(Just use "testResult asXMLDocument".)
Those two features basically cover the following tickets in the SUnit project tracker:
http://sourceforge.net/tracker/?func=detail&aid=1300818&group_id=77155&atid…http://sourceforge.net/tracker/?func=detail&aid=743439&group_id=77155&atid=…
As there has not been much progress there and we got the impression that each smalltalk dialect maintains its own SUnit project,
we figured that it might make more sense to send our changes to the squeak-dev list first.
Maybe you would like to integrate them in your project - and even if not, somebody else might find them useful.
I've attached the changes we made as .st file (should work against current trunk version 86).
Test cases are included as well.
Best regards
Eric Seckler
-----
Eric Seckler
Rembrandtstr. 8
D-14612 Falkensee
Germany
phone: +49-3322-236795
mobile: +49-151-22948869
email: eric.seckler(a)student.hpi.uni-potsdam.de
email2: e.seckler(a)forge2.de
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.558.mcz
==================== Summary ====================
Name: Morphic-nice.558
Author: nice
Time: 3 August 2011, 6:22:02.488 pm
UUID: 236ff443-b885-4221-ac18-c426d6bb5424
Ancestors: Morphic-ul.557
ParagraphEditor is an old st-80 class implemented for a polling UI via the use of sensor inst. var..
TextMorphEditor is a glue that enable using a ParagraphEditor in an event driven morphic world.
There was a hack for feeding a sensor fake with morphic events.
This hack was located in TextMorph.
When 100% morphic Cuis-designed TextEditor was introduced in Squeak-trunk, it was made sensor-dependent instead of sensor-less and purely event driven. This should not be so.
This version moves the hack where in belongs to, in TextMorphEditor>>fakeSensorWithEvent:
It also temporarily duplicates it in TextEditor, in the interim before we remove it's sensor inst. var..
NOTE 1: the hack did also previously apply to #mouseUp: #mouseDown: #mouseUp: events.
It does not anymore because I saw no use to it.
If I'm wrong, correct it by sending (self fakeSensorWithEvent: anEvent) in the TextMorphEditor implementation of these messages.
NOTE2: the change does not change the behaviour of MVC projects. Keyboard typing still "works" (cough...)
=============== Diff against Morphic-ul.557 ===============
Item was changed:
----- Method: PluggableTextMorph>>keyStroke: (in category 'event handling') -----
keyStroke: evt
+ "A keystroke was hit while the receiver had keyboard focus. Pass the keystroke on to my textMorph, and and also, if I have an event handler, pass it on to that handler"
- "A keystroke was hit while the receiver had keyboard focus. Pass the keywtroke on to my textMorph, and and also, if I have an event handler, pass it on to that handler"
textMorph keyStroke: evt.
self eventHandler ifNotNil:
[self eventHandler keyStroke: evt fromMorph: self].
!
Item was added:
+ ----- Method: TextEditor>>keyStroke: (in category 'events') -----
+ keyStroke: anEvent
+ "Temporary hack to handle keyboard events thru sensor"
+
+ self sensor: (KeyboardBuffer new startingEvent: anEvent).
+ self readKeyboard!
Item was changed:
----- Method: TextMorph>>handleInteraction:fromEvent: (in category 'editing') -----
handleInteraction: interactionBlock fromEvent: evt
"Perform the changes in interactionBlock, noting any change in selection
and possibly a change in the size of the paragraph (ar 9/22/2001 - added for TextPrintIts)"
- "Also couple ParagraphEditor to Morphic keyboard events"
| oldEditor oldParagraph oldText |
- self editor sensor: (KeyboardBuffer new startingEvent: evt).
oldEditor := editor.
oldParagraph := paragraph.
oldText := oldParagraph text copy.
self selectionChanged. "Note old selection"
interactionBlock value.
(oldParagraph == paragraph) ifTrue:[
"this will not work if the paragraph changed"
editor := oldEditor. "since it may have been changed while in block"
].
self selectionChanged. "Note new selection"
(oldText = paragraph text and: [ oldText runs = paragraph text runs ])
ifFalse:[ self updateFromParagraph ].
self setCompositionWindow.!
Item was changed:
----- Method: TextMorph>>keyStroke: (in category 'event handling') -----
keyStroke: evt
"Handle a keystroke event."
self resetBlinkCursor. "don't blink during type-in"
ToolSet
codeCompletionAround: [
evt keyValue = 13 ifTrue: [ "CR - check for special action"
self crAction ifNotNil: [ :action |
"Note: Code below assumes that this was some
input field reacting on CR. Break the keyboard
focus so that the receiver can be safely deleted."
evt hand newKeyboardFocus: nil.
^action valueWithEnoughArguments: { evt } ] ].
+ self handleInteraction: [ editor keyStroke: evt ] fromEvent: evt.
- self handleInteraction: [ editor readKeyboard ] fromEvent: evt.
"self updateFromParagraph."
super keyStroke: evt "sends to keyStroke event handler, if any" ]
textMorph: self
keyStroke: evt!
Item was added:
+ ----- Method: TextMorphEditor>>fakeSensorWithEvent: (in category 'typing support') -----
+ fakeSensorWithEvent: anEvent
+ "Pass the event to a polling-friendly-sensor-fake so that old st-80 code shall still work"
+ self sensor: (KeyboardBuffer new startingEvent: anEvent).!
Item was added:
+ ----- Method: TextMorphEditor>>keyStroke: (in category 'events') -----
+ keyStroke: anEvent
+ self fakeSensorWithEvent: anEvent.
+ self readKeyboard.
+ self storeSelectionInParagraph!