[squeak-dev] Proof-of-concept: moving Smalltalk code editing support into SmalltalkEditor

Tim Johnson digit at sonic.net
Sat Mar 24 19:04:02 UTC 2018

Hi all,

I went on a journey this morning which could have been quixotic, but I 
believe I actually found and slayed a small windmill.

I was a bit annoyed by how autoEnclose (and by extension autoIndent) 
were in effect for even the most basic of TextMorphs, e.g. those dragged 
out of the Supplies flap. I was also kind of disappointed that turning 
on/off the auto-enclose preference affected all text morphs, even those 
not specifically designated for Smalltalk code editing.  I was 
emboldened when I saw the class comment for TextEditor: "[I] have no 
specific facilities for editing Smalltalk code. Those are found in 

I found myself able to address this by making a few changes:

* moving autoEnclose and autoIndent functionality out of TextEditor and 
into SmalltalkEditor

* changing the default editor class for TextMorph to TextEditor

* specifying that the #editorClass for TextMorphForEditView should be a 

* changing PreferenceWizard to recognize these preferences have a new 

I'm attaching a changeset to this email and not uploading an .mcz to 
inbox (sorry).  This is because I don't know how to represent changes 
across many projects in Monticello, and I sort of consider this a 
proof-of-concept rather than something I think warrants immediate 
inclusion in the image.

Please do let me know what you think about this idea.

I also fear my implementation of 
SmalltalkEditor>>#dispatchOnKeyboardEvent: might be lacking.


ps - I think a next step of moving Smalltalk editing support into 
SmalltalkEditor might be to move the call to 
ToolSet>>#codeCompletionAround:textMorph:keyStroke: out of 
TextMorph>>#keyStroke: and into its subclass, in 
TextMorphForEditView>>#keyStroke:.  I didn't complete that move and did 
not quite figure out how the subclass version of that method works.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MoveUpAutoIndentAndEnclose.1.cs
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180324/1146c701/attachment.ksh>

More information about the Squeak-dev mailing list