diff --git a/src/NewTools-MethodBrowsers/StMethodBrowser.class.st b/src/NewTools-MethodBrowsers/StMethodBrowser.class.st index 1133f2c93..b61c49369 100644 --- a/src/NewTools-MethodBrowsers/StMethodBrowser.class.st +++ b/src/NewTools-MethodBrowsers/StMethodBrowser.class.st @@ -344,6 +344,12 @@ StMethodBrowser >> addHighlightedSegments [ yourself) ] ] +{ #category : 'private - scopes' } +StMethodBrowser >> allScopes [ + + ^ methodList allScopes +] + { #category : 'to remove' } StMethodBrowser >> autoSelect: aString [ "this is just to absorb system navigation for now" @@ -357,6 +363,12 @@ StMethodBrowser >> classRenamed: anAnnouncement [ self handleClassRenamed: anAnnouncement ] ] +{ #category : 'accessing' } +StMethodBrowser >> codeEditor [ + + ^ textPresenter +] + { #category : 'initialization' } StMethodBrowser >> connectPresenters [ @@ -573,9 +585,15 @@ StMethodBrowser >> initializeDropList [ { #category : 'initialization' } StMethodBrowser >> initializePresenters [ + | methodCodePresenter | super initializePresenters. + + methodCodePresenter := self instantiate: StMethodCodePresenter. + methodCodePresenter methodBrowser: self. + textPresenter := self newCodeEditor. + textPresenter codePresenter: methodCodePresenter. refreshingBlock := [ :item | true ]. filterPresenter := self instantiate: SpFilteringListPresenter. filterPresenter matchSubstring. @@ -822,7 +840,8 @@ StMethodBrowser >> selectItem: item [ | text | toolbarPresenter method: item. - textPresenter beForMethod: item. + + textPresenter codePresenter beForMethod: item. text := (self textConverter method: item; getText). diff --git a/src/NewTools-MethodBrowsers/StMethodCodePresenter.class.st b/src/NewTools-MethodBrowsers/StMethodCodePresenter.class.st new file mode 100644 index 000000000..4e0ebd625 --- /dev/null +++ b/src/NewTools-MethodBrowsers/StMethodCodePresenter.class.st @@ -0,0 +1,51 @@ +" +I represent a code presenter used for the method browser, as I provide a refactoring command group +" +Class { + #name : 'StMethodCodePresenter', + #superclass : 'SpCodePresenter', + #instVars : [ + 'methodBrowser' + ], + #category : 'NewTools-MethodBrowsers-Base', + #package : 'NewTools-MethodBrowsers', + #tag : 'Base' +} + +{ #category : 'commands' } +StMethodCodePresenter class >> buildCommandsGroupWith: presenter forRoot: aCmCommandsGroup [ + + presenter methodBrowser ifNotNil: [ aCmCommandsGroup register: presenter refactoringCommandsGroup ]. + super buildCommandsGroupWith: presenter forRoot: aCmCommandsGroup +] + +{ #category : 'accessing' } +StMethodCodePresenter >> methodBrowser [ + + ^ methodBrowser +] + +{ #category : 'accessing' } +StMethodCodePresenter >> methodBrowser: aBrowser [ + + methodBrowser := aBrowser +] + +{ #category : 'intialization' } +StMethodCodePresenter >> refactoringCommandsGroup [ + + | group | + group := (CmCommandGroup named: 'Source Code') asSpecGroup + beDisplayedAsSubMenu; + iconName: #smallAuthoringTools; + yourself. + { + StRenameClassCommand. + StExtractTempCommand. + StConvertTempToInstVarCommand. + StInlineMethodCommand. + StRenameArgOrTempCommand. + StGenerateVariableAccessorCommand. + StMoveInstanceVariableToClassSideCommand } do: [ :cmdClass | group register: (cmdClass forSpecContext: methodBrowser) ]. + ^ group +]