[squeak-dev] [ANN] Styled Text Editor for Cuis 4.0 Smalltalk

Bob Arning arning315 at comcast.net
Sat Apr 28 19:29:49 UTC 2012


It only works if I manually remove the .object suffix from

( 2012/04/22  04:43:50           13,060 )      Styled Text Editor 
Documentation.object

I encountered it initially while doing:

StyledTextInstaller new install

which produced this:

Halt
28 April 2012 3:24:02.533 pm

VM: Mac OS - Croquet Closure Cog MT VM [CoInterpreterMT 
VMMaker.oscog-eem.138] Croquet Cog 4.0.2519
Image: Cuis 4.0 [latest update: #1260]

StandardFileStream class(Object)>>halt
     Receiver: StandardFileStream
     Arguments and temporary variables:

     Receiver's instance variables:
         superclass:     FileStream
         methodDict:     a 
MethodDictionary(#actAsExecutor->(StandardFileStream>>#actAsExecu...etc...
         format:     146
         instanceVariables:     #('name' 'fileID' 'buffer1')
         organization:     ('open/close' close closed ensureOpen 
open:forWrite: openReadOnly...etc...
         subclasses:     nil
         name:     #StandardFileStream
         classPool:     a Dictionary(#Registry->a WeakRegistry(<this 
WeakRegistry is locked>...etc...
         sharedPools:     nil

StandardFileStream class>>fileDoesNotExistUserHandling:
     Receiver: StandardFileStream
     Arguments and temporary variables:
         fullFileName:     
'/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth Example'
         selection:     3
         newName:     nil
     Receiver's instance variables:
         superclass:     FileStream
         methodDict:     a 
MethodDictionary(#actAsExecutor->(StandardFileStream>>#actAsExecu...etc...
         format:     146
         instanceVariables:     #('name' 'fileID' 'buffer1')
         organization:     ('open/close' close closed ensureOpen 
open:forWrite: openReadOnly...etc...
         subclasses:     nil
         name:     #StandardFileStream
         classPool:     a Dictionary(#Registry->a WeakRegistry(<this 
WeakRegistry is locked>...etc...
         sharedPools:     nil

FileDoesNotExistException>>defaultAction
     Receiver: FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth Example'
     Arguments and temporary variables:

     Receiver's instance variables:
         messageText:     nil
         tag:     nil
         signalContext:     FileDoesNotExistException(Exception)>>signal
         handlerContext:     BlockClosure>>on:do:
         outerContext:     nil
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
         readOnly:     nil

UndefinedObject>>handleSignal:
     Receiver: nil
     Arguments and temporary variables:
         exception:     FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents...etc...
     Receiver's instance variables:
nil
FileDoesNotExistException(Exception)>>pass
     Receiver: FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth Example'
     Arguments and temporary variables:

     Receiver's instance variables:
         messageText:     nil
         tag:     nil
         signalContext:     FileDoesNotExistException(Exception)>>signal
         handlerContext:     BlockClosure>>on:do:
         outerContext:     nil
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
         readOnly:     nil

[] in PasteUpMorph>>becomeActiveDuring:
     Receiver: a PasteUpMorph(1622) [world]
     Arguments and temporary variables:
<<error during printing>
     Receiver's instance variables:
         bounds:     0 at 0 corner: 1462 at 957
         owner:     nil
         submorphs:     #(a SystemWindow(633)('Styled Text Editor 
Documentation') a Taskbar(...etc...
         fullBounds:     0 at 0 corner: 1462 at 957
         color:     (Color r: 0.7 g: 0.72 b: 0.83)
         extension:     a MorphExtension (2543) [eventHandler = an 
EventHandler]  [other:  (...etc...
         borderWidth:     0
         borderColor:     (Color r: 0.5 g: 0.5 b: 0.5)
         worldState:     a WorldState
         backgroundImage:     Form(1462x957x32)
         backgroundImageData:     #[255 216 255 236 0 17 68 117 99 107 
121 0 1 0 4 0 0 0 81 ...etc...

BlockClosure>>valueWithPossibleArgument:
     Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
     Arguments and temporary variables:
         anArg:     FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents/Mac...etc...
     Receiver's instance variables:
         outerContext:     PasteUpMorph>>becomeActiveDuring:
         startpc:     71
         numArgs:     1

[] in MethodContext(ContextPart)>>handleSignal:
     Receiver: BlockClosure>>on:do:
     Arguments and temporary variables:
<<error during printing>
     Receiver's instance variables:
         sender:     PasteUpMorph>>becomeActiveDuring:
         pc:     17
         stackp:     3
         method:     (BlockClosure>>#on:do: "a CompiledMethod(4063)")
         closureOrNil:     nil
         receiver:     [closure] in HandMorph>>sendFocusEvent:to:in:

BlockClosure>>ensure:
     Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
     Arguments and temporary variables:
         aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
         complete:     nil
         returnValue:     nil
     Receiver's instance variables:
         outerContext:     MethodContext(ContextPart)>>handleSignal:
         startpc:     98
         numArgs:     0

MethodContext(ContextPart)>>handleSignal:
     Receiver: BlockClosure>>on:do:
     Arguments and temporary variables:
         exception:     FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents...etc...
         val:     nil
     Receiver's instance variables:
         sender:     PasteUpMorph>>becomeActiveDuring:
         pc:     17
         stackp:     3
         method:     (BlockClosure>>#on:do: "a CompiledMethod(4063)")
         closureOrNil:     nil
         receiver:     [closure] in HandMorph>>sendFocusEvent:to:in:

MethodContext(ContextPart)>>handleSignal:
     Receiver: BlockClosure>>on:do:
     Arguments and temporary variables:
         exception:     FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents...etc...
         val:     nil
     Receiver's instance variables:
         sender:     SmalltalkEditor>>evaluateSelectionAndDo:ifFail:
         pc:     17
         stackp:     3
         method:     (BlockClosure>>#on:do: "a CompiledMethod(4063)")
         closureOrNil:     nil
         receiver:     [closure] in 
SmalltalkEditor>>evaluateSelectionAndDo:ifFail:

FileDoesNotExistException(Exception)>>signal
     Receiver: FileDoesNotExistException: 
'/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth Example'
     Arguments and temporary variables:

     Receiver's instance variables:
         messageText:     nil
         tag:     nil
         signalContext:     FileDoesNotExistException(Exception)>>signal
         handlerContext:     BlockClosure>>on:do:
         outerContext:     nil
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
         readOnly:     nil

StandardFileStream class>>oldFileNamed:
     Receiver: StandardFileStream
     Arguments and temporary variables:
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
         fullName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
     Receiver's instance variables:
         superclass:     FileStream
         methodDict:     a 
MethodDictionary(#actAsExecutor->(StandardFileStream>>#actAsExecu...etc...
         format:     146
         instanceVariables:     #('name' 'fileID' 'buffer1')
         organization:     ('open/close' close closed ensureOpen 
open:forWrite: openReadOnly...etc...
         subclasses:     nil
         name:     #StandardFileStream
         classPool:     a Dictionary(#Registry->a WeakRegistry(<this 
WeakRegistry is locked>...etc...
         sharedPools:     nil

FileStream class>>oldFileNamed:
     Receiver: FileStream
     Arguments and temporary variables:
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
     Receiver's instance variables:
         superclass:     ReadWriteStream
         methodDict:     a 
MethodDictionary(#asBinaryOrTextStream->(FileStream>>#asBinaryOrT...etc...
         format:     140
         instanceVariables:     #('rwmode')
         organization:     ('accessing' contents contentsOfEntireFile 
directoryEntry mimeTyp...etc...
         subclasses:     #(StandardFileStream)
         name:     #FileStream
         classPool:     a Dictionary()
         sharedPools:     nil

StyledTextModel class>>fromFileNamed:
     Receiver: StyledTextModel
     Arguments and temporary variables:
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
         file:     nil
         model:     #(nil)
     Receiver's instance variables:
         superclass:     TextModel
         methodDict:     a 
MethodDictionary(#actualContents:->(StyledTextModel>>#actualConte...etc...
         format:     140
         instanceVariables:     #('styleSet' 'fileName')
         organization:     ('accessing' actualContents: 
basicActualContents: styleSet styleS...etc...
         subclasses:     nil
         name:     #StyledTextModel
         classPool:     nil
         sharedPools:     nil

StyledTextInstaller>>open:
     Receiver: a StyledTextInstaller
     Arguments and temporary variables:
         name:     'Macbeth Example'
         fileName:     '/Users/bob/squeak/Cuis4.0-1260/Documents/Macbeth 
Example'
         model:     nil
     Receiver's instance variables:
a StyledTextInstaller
StyledTextInstaller>>openMacbethExample
     Receiver: a StyledTextInstaller
     Arguments and temporary variables:
         window:     nil
     Receiver's instance variables:
a StyledTextInstaller
StyledTextInstaller>>openExamples
     Receiver: a StyledTextInstaller
     Arguments and temporary variables:

     Receiver's instance variables:
a StyledTextInstaller
StyledTextInstaller>>install
     Receiver: a StyledTextInstaller
     Arguments and temporary variables:

     Receiver's instance variables:
a StyledTextInstaller

--- The full stack ---
StandardFileStream class(Object)>>halt
StandardFileStream class>>fileDoesNotExistUserHandling:
FileDoesNotExistException>>defaultAction
UndefinedObject>>handleSignal:
FileDoesNotExistException(Exception)>>pass
[] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>valueWithPossibleArgument:
[] in MethodContext(ContextPart)>>handleSignal:
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
FileDoesNotExistException(Exception)>>signal
StandardFileStream class>>oldFileNamed:
FileStream class>>oldFileNamed:
StyledTextModel class>>fromFileNamed:
StyledTextInstaller>>open:
StyledTextInstaller>>openMacbethExample
StyledTextInstaller>>openExamples
StyledTextInstaller>>install
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[] in SmalltalkEditor>>evaluateSelectionAndDo:ifFail:
BlockClosure>>on:do:
SmalltalkEditor>>evaluateSelectionAndDo:ifFail:
SmalltalkEditor>>doIt
SmalltalkEditor>>doIt:
SmalltalkEditor(TextEditor)>>dispatchOn:
SmalltalkEditor(TextEditor)>>processKeyStroke:
[] in InnerTextMorph>>processKeyStroke:
InnerTextMorph>>handleInteraction:
InnerTextMorph>>processKeyStroke:
[] in InnerTextMorph>>keyStroke:
SmalltalkCompleter(AutoCompleter)>>autoCompletionAround:keyStroke:
InnerTextMorph>>keyStroke:
InnerTextMorph>>handleKeystroke:
KeyboardEvent>>sentTo:
InnerTextMorph(Morph)>>handleEvent:
InnerTextMorph(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:in:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:in:
HandMorph>>sendKeyboardEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in ProjectX class>>spawnNewProcessX
[] in BlockClosure>>newProcess


On 4/28/12 1:30 PM, Juan Vuletich (mail lists) wrote:
>
> Hi Bob,
>
> Evaluating 'StyledTextInstaller new openStyledTextEditorDocumentation' 
> works for me... Does it fail for you?
>
> Cheers,
>
> Juan Vuletich
>
> Quoting Bob Arning <arning315 at comcast.net>:
>
>> I encountered a small glitch installing this - the example files had 
>> a .object suffix, but the code to open them did not.
>>
>> Cheers,
>> Bob
>>
>> On 4/21/12 2:20 PM, Bernhard Pieber wrote:
>>> Dear Smalltalkers,
>>>
>>> I am very happy to announce that the Styled Text Editor for the brand new Cuis 4.0 is now available on GitHub [1]. The Styled Text Editor was first presented by me at last year's ESUG in Edinburgh [2]. Thanks to ESUG the presentation was recorded [3].
>>>
>>> The Styled Text Editor is a framework for rich text editing using styles as known from popular word processors like Apple Pages or Microsoft Word. It features paragraph and character styles, allowing easy text formatting using styles only. It is intended for applications where users need to work with good looking rich text in a simple and fast way.
>>>
>>> Rich text commonly refers to text with formatting information like different fonts, sizes, alignments, and emphasis. To make editing as simple as possible instead of individual formatting information end users apply styles to parts of the text. Editing is made fast by keyboard shortcuts for text navigation, selection, and styles selection. Where possible the feel of widely used rich text editors is supported.
>>>
>>> It includes many features like
>>> - numbered and bulleted list paragraph styles
>>> - support for images
>>> - multiple level undo and redo
>>> - text completion using various glossaries including a dictionary of English with about 166.000 words
>>> - RTF clipboard (on OS X VMs with the ClipboardExtendedPlugin)
>>>
>>> The Styled Text Editor is developed in Cuis with the plan to eventually port it to Squeak and Pharo. The development of the Styled Text Editor inspired many changes to Cuis itself, and It is the first package to use the brand new DVCS based development process for external packages for Cuis 4.0.
>>>
>>> The idea and funding was provided by me, Bernhard Pieber and my company Software Generation. The implementation was done by Juan Vuletich, the mastermind behind Cuis. Thanks Juan for the close cooperation. It was and still is great fun to work with you.
>>>
>>> We are looking forward to feedback from you. Fork it on GitHub [1], create issues and send us pull requests. ;-)
>>>
>>> Cheers,
>>> Bernhard Pieber
>>>
>>> [1]https://github.com/bpieber/Cuis-StyledTextEditor
>>> [2]http://www.esug.org/wiki/pier/Conferences/2011/Schedule-And-Talks/StyledTextEditor
>>> [3]http://www.youtube.com/watch?v=pUoVbvwspi8&list=PL813665D04A2E4C0A&index=7&feature=plpp_video
>>>
> Cheers,
> Juan Vuletich
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20120428/104e86d0/attachment.htm


More information about the Squeak-dev mailing list