Squeak 4.5: ST80Tools-fbs.1.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Squeak 4.5: ST80Tools-fbs.1.mcz

commits-2
Chris Muller uploaded a new version of ST80Tools to project Squeak 4.5:
http://source.squeak.org/squeak45/ST80Tools-fbs.1.mcz

==================== Summary ====================

Name: ST80Tools-fbs.1
Author: fbs
Time: 2 July 2013, 8:41:50.912 pm
UUID: 108ec7bc-d1f5-dd4b-9511-e7a653a71e9f
Ancestors:

Move Tools' MVC extensions to a separate package, ST80Tools. This makes Tools independent of MVC, at the cost of requiring an extra package to reload/unload MVC.

==================== Snapshot ====================

----- Method: ParagraphEditor>>browseChangeSetsWithSelector (in category '*ST80Tools') -----
browseChangeSetsWithSelector
        "Determine which, if any, change sets have at least one change for the selected selector, independent of class"

        | aSelector |
        self lineSelectAndEmptyCheck: [^ self].
        (aSelector := self selectedSelector) == nil ifTrue: [^ view flash].
        self terminateAndInitializeAround: [ChangeSorter browseChangeSetsWithSelector: aSelector]!

----- Method: ParagraphEditor>>browseItHere (in category '*ST80Tools') -----
browseItHere
        "Retarget the receiver's window to look at the selected class, if appropriate.  3/1/96 sw"
        | aSymbol b |
        (((b := model) isKindOf: Browser) and: [b couldBrowseAnyClass])
                ifFalse: [^ view flash].
        model okToChange ifFalse: [^ view flash].
        self selectionInterval isEmpty ifTrue: [self selectWord].
        (aSymbol := self selectedSymbol) ifNil: [^ view flash].

        self terminateAndInitializeAround:
                [| foundClass |
                foundClass := (Smalltalk at: aSymbol ifAbsent: [nil]).
                        foundClass ifNil: [^ view flash].
                        (foundClass isKindOf: Class)
                                ifTrue:
                                        [model selectSystemCategory: foundClass category.
                model classListIndex: (model classList indexOf: foundClass name)]]!

----- Method: ParagraphEditor>>debug:receiver:in: (in category '*ST80Tools') -----
debug: aCompiledMethod receiver: anObject in: evalContext

        | guineaPig debugger context |
        guineaPig := [
                aCompiledMethod
                        valueWithReceiver: anObject
                         arguments: (evalContext ifNil: [ #() ] ifNotNil: [ { evalContext } ]) ] newProcess.
        context := guineaPig suspendedContext.
        debugger := Debugger new
                process: guineaPig
                controller: ((Smalltalk isMorphic not and: [ScheduledControllers inActiveControllerProcess])
                                ifTrue: [ScheduledControllers activeController]
                                ifFalse: [nil])
                context: context.
        debugger openFullNoSuspendLabel: 'Debug it'.
        [debugger interruptedContext method == aCompiledMethod]
                whileFalse: [debugger send]!

----- Method: ParagraphEditor>>debugIt (in category '*ST80Tools') -----
debugIt

        | method receiver context |
        (model respondsTo: #doItReceiver)
                ifTrue:
                        [receiver := model doItReceiver.
                        context := model doItContext]
                ifFalse:
                        [receiver := context := nil].
        self lineSelectAndEmptyCheck: [^self].
        method := self compileSelectionFor: receiver in: context.
        method notNil ifTrue:
                [self debug: method receiver: receiver in: context].!

----- Method: StringHolderView>>canHaveUnacceptedEdits (in category '*ST80Tools-multi-window support') -----
canHaveUnacceptedEdits
        "Answer if the receiver is an object that can hold unaccepted edits (such as a text editor widget)"

        ^true!

----- Method: StringHolderView>>unacceptedEditState (in category '*ST80Tools-multi-window support') -----
unacceptedEditState
        ^hasUnacceptedEdits ifTrue: [displayContents text]!

----- Method: StringHolderView>>unacceptedEditState: (in category '*ST80Tools-multi-window support') -----
unacceptedEditState: stateOrNil
        (hasUnacceptedEdits := stateOrNil notNil) ifTrue:
                [self editString: stateOrNil]!

----- Method: ScreenController>>browseRecentLog (in category '*ST80Tools') -----
browseRecentLog
        "Open a changelist browser on changes submitted since the last snapshot.  1/17/96 sw"

        ChangeList browseRecentLog!

----- Method: ScreenController>>chooseDirtyBrowser (in category '*ST80Tools') -----
chooseDirtyBrowser
        "Put up a list of browsers with unsubmitted edits and activate the one selected by the user, if any."
        "ScheduledControllers screenController chooseDirtyBrowser"

        ScheduledControllers findWindowSatisfying:
                [:c | (c model isKindOf: Browser) and: [c model canDiscardEdits not]].
 !

----- Method: ScreenController>>openChangeManager (in category '*ST80Tools') -----
openChangeManager
        "Open a dual change sorter.  For looking at two change sets at once."
        DualChangeSorter new open!

----- Method: ScreenController>>openFile (in category '*ST80Tools') -----
openFile
        FileList openFileDirectly!

----- Method: ScreenController>>openFileList (in category '*ST80Tools') -----
openFileList
        "Create and schedule a FileList view for specifying files to access."

        FileList open!

----- Method: ScreenController>>openPackageBrowser (in category '*ST80Tools') -----
openPackageBrowser
        "Create and schedule a Browser view for browsing code."

        PackagePaneBrowser openBrowser!

----- Method: ScreenController>>openSelectorBrowser (in category '*ST80Tools') -----
openSelectorBrowser
        "Create and schedule a selector fragment window."

        SelectorBrowser new open!

----- Method: ScreenController>>openSimpleChangeSorter (in category '*ST80Tools') -----
openSimpleChangeSorter
        ChangeSorter new open!