[squeak-dev] Proof-of-concept: moving Smalltalk code editing support into SmalltalkEditor
Tim Johnson
digit at sonic.net
Mon Mar 26 15:53:02 UTC 2018
Hi Hannes,
> On Mar 24, 2018, at 1:18 PM, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>
> Hi Tim
>
> Thank you for looking into this issue and for the insightful analysis
My pleasure! Thank you for your thoughtful response.
>
> In my Squeak6.0alpha update: #17330 image I have
>
> TextMorph defaultEditorClass
>
> answering
>
> SmalltalkEditor
>
>
>
> I wonder how this got set
>
>
> TextMorph defaultEditorClass: aTextEditorClass
> "Sets the default editor class for TextMorph"
> "
>
> has no senders.
You may want to look in TextMorph class>>#initialize — you will find:
DefaultEditorClass := TextEditor.
or
DefaultEditorClass := SmalltalkEditor.
…of course, after changing this, (as is done in a postamble script in my changeset), TextMorph class must be re-initialized.
Does that explain the situation?
>
>
>
> And BTW the comment in
>
> TextMorph defaultEditorClass: aTextEditorClass
>
> needs to be updated marking 'TextMorphEditor' as deprecated.
>
>
> I wonder if it is just a mistake that the class variable
> DefaultEditorClass in TextMorph got set wrongly?
Yes, me too.
Thanks,
Tim
>
>
> On 3/24/18, Tim Johnson <digit at sonic.net> wrote:
>> 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
>> SmalltalkEditor."
>>
>> 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
>> SmalltalkEditor
>>
>> * changing PreferenceWizard to recognize these preferences have a new
>> home
>>
>> 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.
>>
>> Thanks,
>> Tim
>>
>> 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.
>>
>
>
More information about the Squeak-dev
mailing list
|