work in progress - create selection replace API in CustomRefactoryBuilder and CustomCodeSelectionToResourceTranslation
--- a/CustomCodeSelectionToResourceTranslation.st Sun Aug 24 23:12:39 2014 +0200
+++ b/CustomCodeSelectionToResourceTranslation.st Mon Aug 25 23:45:19 2014 +0200
@@ -72,11 +72,18 @@
buildInContext:aCustomContext
"Performs a refactoring within given context scope"
- refactoryBuilder
- replace: '``@expression'
- with: '(resources string: (``@expression))'
- inCodes: aCustomContext selectedCodes
+ refactoryBuilder
+ replace:'``@expression'
+ with:'(resources string: (``@expression))'
+ inCodeSelections:aCustomContext selectedCodes
"Created: / 23-08-2014 / 00:16:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
! !
+!CustomCodeSelectionToResourceTranslation class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CustomCodeSelectionToResourceTranslationTests.st Mon Aug 25 23:45:19 2014 +0200
@@ -0,0 +1,48 @@
+"{ Package: 'jn:refactoring_custom' }"
+
+CustomCodeGeneratorOrRefactoringTestCase subclass:#CustomCodeSelectionToResourceTranslationTests
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Interface-Refactoring-Custom-Tests'
+!
+
+!CustomCodeSelectionToResourceTranslationTests methodsFor:'accessing'!
+
+generatorOrRefactoring
+ ^ CustomCodeSelectionToResourceTranslation new
+! !
+
+!CustomCodeSelectionToResourceTranslationTests methodsFor:'tests'!
+
+test_code_selection_replaced_by_resource_translation_01
+ | expectedSource originalSource codeSelection class |
+
+ originalSource := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ class := codeBuilder createClassImmediate: 'DummyClassForTestCase01' instanceVariableNames: 'resources'.
+ codeBuilder createMethodImmediate: class source: originalSource.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: originalSource;
+ selectedClass: class;
+ selectedInterval: (32 to: 48);
+ selectedMethod: (class compiledMethodAt: #selector);
+ selectedSelector: #selector.
+
+ context selectedCodes: (Array with: codeSelection).
+ generatorOrRefactoring executeInContext: context.
+
+ expectedSource := 'selector
+ self information: (resources string: (''Translate this'')).
+ ^ self.'.
+
+ self assertMethodSource:expectedSource atSelector:#selector
+
+ "Created: / 23-08-2014 / 20:09:06 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+ "Modified: / 24-08-2014 / 09:52:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
--- a/CustomRefactoryBuilder.st Sun Aug 24 23:12:39 2014 +0200
+++ b/CustomRefactoryBuilder.st Mon Aug 25 23:45:19 2014 +0200
@@ -51,6 +51,13 @@
changeManager := something.
!
+parser
+
+ ^ RBParser
+
+ "Created: / 24-08-2014 / 23:36:55 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
searcher
^ ParseTreeSearcher new
@@ -91,8 +98,61 @@
"Created: / 15-08-2014 / 00:42:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
! !
+!CustomRefactoryBuilder methodsFor:'parsing'!
+
+parseExpression: aSourceCode
+
+ ^ self parser parseExpression: aSourceCode onError: [ :string :pos |
+ self parser parseMethod: aSourceCode onError: [ :string :pos |
+ self error: 'Could not parse ', string, ' at pos ', pos asString
+ ]
+ ]
+
+ "Created: / 25-08-2014 / 22:34:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+parseMethod: aSourceCode
+
+ ^ self parser parseMethod: aSourceCode onError: [ :string :pos |
+ self parser parseExpression: aSourceCode onError: [ :string :pos |
+ self error: 'Could not parse ', string, ' at pos ', pos asString
+ ]
+ ]
+
+ "Created: / 25-08-2014 / 22:35:32 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
!CustomRefactoryBuilder methodsFor:'refactory-changes'!
+executeReplace: searchPattern with: rewritePattern inCodeSelection: aCodeSelection
+
+ | newTree change parseTree selectedParseTree newSelectedParseTree |
+
+ selectedParseTree := (self parseExpression: aCodeSelection selectedSourceCode) formattedCode.
+
+ newSelectedParseTree := (CustomParseTreeRewriter new)
+ replace: searchPattern with: rewritePattern;
+ executeTree: selectedParseTree;
+ tree.
+
+ parseTree := self parseMethod: aCodeSelection currentSourceCode.
+ newTree := CustomParseTreeRewriter
+ replace: aCodeSelection selectedSourceCode
+ with: newSelectedParseTree formattedCode
+ in: parseTree
+ onInterval: aCodeSelection selectedInterval.
+
+ change := InteractiveAddMethodChange
+ compile: newTree newSource
+ in: aCodeSelection selectedMethod mclass
+ classified: aCodeSelection selectedMethod category.
+
+ changes add: change
+
+ "Created: / 24-08-2014 / 10:24:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+ "Modified: / 25-08-2014 / 23:33:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
executeReplace: searchPattern with: rewritePattern inMethod: aMethod
"Executes replace in a method source and then creates a method change"
@@ -113,6 +173,22 @@
"Created: / 17-08-2014 / 18:45:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
+replace:searchPattern with:rewritePattern inCodeSelections:aCustomContext
+ "Searches for given pattern in methods source code and if source code matches then executes replacement"
+
+ self
+ search:searchPattern
+ inCodeSelections:aCustomContext selectedCodes
+ withResultDo:[:codeSelection |
+ self
+ executeReplace:searchPattern
+ with:rewritePattern
+ inCodeSelection:codeSelection
+ ]
+
+ "Created: / 24-08-2014 / 10:10:40 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
replace: searchPattern with: rewritePattern inContext: aCustomContext
"Searches for given pattern in methods source code and if source code matches then executes replacement"
@@ -159,11 +235,23 @@
"Created: / 17-08-2014 / 16:21:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
-search: searchPattern inCodes: aCodeSelectionCollection withResultDo: aBlock
+search:searchPattern inCodeSelections:aCodeSelectionCollection withResultDo:aBlock
+
+ aCodeSelectionCollection do:[ :codeSelection |
+ | parseTree selectedCode |
- "To be implemented"
+ selectedCode := codeSelection selectedSourceCode.
+ parseTree := self parseExpression: selectedCode.
+ "/ Transcript showCR: 'PP', parseTree asString.
+ (self searcher)
+ matches: searchPattern do: [ :aNode :answer |
+ aBlock value: codeSelection
+ ];
+ executeTree: parseTree
+ ].
"Created: / 21-08-2014 / 21:22:13 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+ "Modified: / 25-08-2014 / 22:36:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
search: searchPattern inContext: aCustomContext withResultDo: aBlock
@@ -171,9 +259,9 @@
aCustomContext selectedCodes notNil ifTrue: [
self
- search: searchPattern
- inCodes: aCustomContext selectedCodes
- withResultDo: aBlock
+ search:searchPattern
+ inCodeSelections:aCustomContext selectedCodes
+ withResultDo:aBlock
].
aCustomContext selectedMethods notNil ifTrue: [
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CustomRefactoryBuilderTests.st Mon Aug 25 23:45:19 2014 +0200
@@ -0,0 +1,180 @@
+"{ Package: 'jn:refactoring_custom' }"
+
+CustomCodeGeneratorOrRefactoringTestCase subclass:#CustomRefactoryBuilderTests
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Interface-Refactoring-Custom-Tests'
+!
+
+!CustomRefactoryBuilderTests methodsFor:'accessing'!
+
+generatorOrRefactoring
+
+ ^ nil
+
+ "Created: / 24-08-2014 / 21:35:05 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
+!CustomRefactoryBuilderTests methodsFor:'tests'!
+
+test_execute_replace_with_in_code_selection_01
+
+ |originalSource expectedSource actualSource codeSelection|
+
+ originalSource := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ expectedSource := 'selector
+ self information: (resources string: ''Translate this'').
+ ^ self.'.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: originalSource;
+ selectedInterval: (32 to: 47);
+ selectedMethod: (self class compiledMethodAt: #generatorOrRefactoring). "/ just some method
+
+ refactoryBuilder executeReplace: '`@code'
+ with: '(resources string: `@code)'
+ inCodeSelection: codeSelection.
+
+ actualSource := refactoryBuilder changes last source.
+
+ self assertSource: expectedSource sameAs: actualSource.
+
+ "Created: / 25-08-2014 / 21:53:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_search_in_code_selections_with_result_do_01
+
+ |source codeSelection resultsFoundCount |
+
+ source := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: source;
+ selectedInterval: (32 to: 47).
+
+ resultsFoundCount := 0.
+
+ refactoryBuilder search: '`@code'
+ inCodeSelections: (Array with: codeSelection)
+ withResultDo: [ :codeSelection |
+ resultsFoundCount := resultsFoundCount + 1
+ ].
+
+ self assert: resultsFoundCount = 1.
+
+ "Created: / 24-08-2014 / 21:10:01 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+ "Modified: / 25-08-2014 / 10:07:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_search_in_code_selections_with_result_do_02
+
+ |source codeSelection resultsFoundCount |
+
+ source := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: source;
+ selectedInterval: (32 to: 47).
+
+ resultsFoundCount := 0.
+
+ refactoryBuilder search: '`#literal'
+ inCodeSelections: (Array with: codeSelection)
+ withResultDo: [ :codeSelection |
+ resultsFoundCount := resultsFoundCount + 1
+ ].
+
+ self assert: resultsFoundCount = 1.
+
+ "Created: / 25-08-2014 / 17:00:02 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_search_in_code_selections_with_result_do_03
+
+ |source codeSelection resultsFoundCount |
+
+ source := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: source;
+ selectedInterval: (1 to: source size).
+
+ resultsFoundCount := 0.
+
+ refactoryBuilder search: '`#literal'
+ inCodeSelections: (Array with: codeSelection)
+ withResultDo: [ :codeSelection |
+ resultsFoundCount := resultsFoundCount + 1
+ ].
+
+ self assert: resultsFoundCount = 1.
+
+ "Created: / 25-08-2014 / 17:01:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_search_in_code_selections_with_result_do_04
+
+ |source codeSelection resultsFoundCount |
+
+ source := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: source;
+ selectedInterval: (14 to: 51).
+
+ resultsFoundCount := 0.
+
+ refactoryBuilder search: '`@code'
+ inCodeSelections: (Array with: codeSelection)
+ withResultDo: [ :codeSelection |
+ resultsFoundCount := resultsFoundCount + 1
+ ].
+
+ self assert: resultsFoundCount = 1.
+
+ "Created: / 25-08-2014 / 17:02:43 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_search_in_code_selections_with_result_do_05
+
+ |source codeSelection resultsFoundCount |
+
+ source := 'selector
+ self information: ''Translate this''.
+ ^ self.'.
+
+ codeSelection := CustomSourceCodeSelection new.
+ codeSelection
+ currentSourceCode: source;
+ selectedInterval: (30 to: 38).
+
+ resultsFoundCount := 0.
+
+ self should: [
+ refactoryBuilder search: '`@code'
+ inCodeSelections: (Array with: codeSelection)
+ withResultDo: [ :codeSelection |
+ resultsFoundCount := resultsFoundCount + 1
+ ].
+ ] raise: Error.
+
+ "Created: / 25-08-2014 / 17:03:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
--- a/Make.proto Sun Aug 24 23:12:39 2014 +0200
+++ b/Make.proto Mon Aug 25 23:45:19 2014 +0200
@@ -165,6 +165,7 @@
$(OUTDIR)CustomReplaceIfNilWithIfTrueRefactoring.$(O) CustomReplaceIfNilWithIfTrueRefactoring.$(H): CustomReplaceIfNilWithIfTrueRefactoring.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomSubclassResponsibilityCodeGenerator.$(O) CustomSubclassResponsibilityCodeGenerator.$(H): CustomSubclassResponsibilityCodeGenerator.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomTestCaseCodeGenerator.$(O) CustomTestCaseCodeGenerator.$(H): CustomTestCaseCodeGenerator.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
+$(OUTDIR)CustomTestCaseMethodCodeGenerator.$(O) CustomTestCaseMethodCodeGenerator.$(H): CustomTestCaseMethodCodeGenerator.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomVisitorCodeGenerator.$(O) CustomVisitorCodeGenerator.$(H): CustomVisitorCodeGenerator.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomChangeNotificationAccessMethodsCodeGenerator.$(O) CustomChangeNotificationAccessMethodsCodeGenerator.$(H): CustomChangeNotificationAccessMethodsCodeGenerator.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomAccessMethodsCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomChangeNotificationSetterMethodsCodeGenerator.$(O) CustomChangeNotificationSetterMethodsCodeGenerator.$(H): CustomChangeNotificationSetterMethodsCodeGenerator.st $(INCLUDE_TOP)/jn/refactoring_custom/CustomAccessMethodsCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGenerator.$(H) $(INCLUDE_TOP)/jn/refactoring_custom/CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(STCHDR)
--- a/Make.spec Sun Aug 24 23:12:39 2014 +0200
+++ b/Make.spec Mon Aug 25 23:45:19 2014 +0200
@@ -82,6 +82,7 @@
CustomReplaceIfNilWithIfTrueRefactoring \
CustomSubclassResponsibilityCodeGenerator \
CustomTestCaseCodeGenerator \
+ CustomTestCaseMethodCodeGenerator \
CustomVisitorCodeGenerator \
CustomChangeNotificationAccessMethodsCodeGenerator \
CustomChangeNotificationSetterMethodsCodeGenerator \
@@ -137,6 +138,7 @@
$(OUTDIR_SLASH)CustomReplaceIfNilWithIfTrueRefactoring.$(O) \
$(OUTDIR_SLASH)CustomSubclassResponsibilityCodeGenerator.$(O) \
$(OUTDIR_SLASH)CustomTestCaseCodeGenerator.$(O) \
+ $(OUTDIR_SLASH)CustomTestCaseMethodCodeGenerator.$(O) \
$(OUTDIR_SLASH)CustomVisitorCodeGenerator.$(O) \
$(OUTDIR_SLASH)CustomChangeNotificationAccessMethodsCodeGenerator.$(O) \
$(OUTDIR_SLASH)CustomChangeNotificationSetterMethodsCodeGenerator.$(O) \
--- a/abbrev.stc Sun Aug 24 23:12:39 2014 +0200
+++ b/abbrev.stc Mon Aug 25 23:45:19 2014 +0200
@@ -20,6 +20,7 @@
CustomRefactoryBuilder CustomRefactoryBuilder jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomSourceCodeBuilder CustomSourceCodeBuilder jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomSourceCodeSelection CustomSourceCodeSelection jn:refactoring_custom 'Interface-Refactoring-Custom' 0
+CustomSourceCodeSelectionTests CustomSourceCodeSelectionTests jn:refactoring_custom 'Interface-Refactoring-Custom-Tests' 1
CustomSubclassResponsibilityCodeGeneratorTests CustomSubclassResponsibilityCodeGeneratorTests jn:refactoring_custom 'Interface-Refactoring-Custom-Tests' 1
TestClass TestClass jn:refactoring_custom 'Interface-Refactoring-Custom' 1
TestClass2 TestClass2 jn:refactoring_custom 'Interface-Refactoring-Custom' 0
@@ -39,6 +40,7 @@
CustomLocalChangeManager CustomLocalChangeManager jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomMultiSetterMethodsCodeGeneratorTests CustomMultiSetterMethodsCodeGeneratorTests jn:refactoring_custom 'Interface-Refactoring-Custom-Tests' 1
CustomRefactoring CustomRefactoring jn:refactoring_custom 'Interface-Refactoring-Custom' 0
+CustomRefactoryBuilderTests CustomRefactoryBuilderTests jn:refactoring_custom 'Interface-Refactoring-Custom-Tests' 1
CustomReplaceIfNilWithIfTrueRefactoringTests CustomReplaceIfNilWithIfTrueRefactoringTests jn:refactoring_custom 'Interface-Refactoring-Custom-Tests' 1
CustomSilentDialog CustomSilentDialog jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomSimpleAccessMethodsCodeGeneratorTests CustomSimpleAccessMethodsCodeGeneratorTests jn:refactoring_custom 'Interface-Refactoring-Custom-Tests' 1
@@ -62,6 +64,7 @@
CustomReplaceIfNilWithIfTrueRefactoring CustomReplaceIfNilWithIfTrueRefactoring jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomSubclassResponsibilityCodeGenerator CustomSubclassResponsibilityCodeGenerator jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomTestCaseCodeGenerator CustomTestCaseCodeGenerator jn:refactoring_custom 'Interface-Refactoring-Custom' 0
+CustomTestCaseMethodCodeGenerator CustomTestCaseMethodCodeGenerator jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomVisitorCodeGenerator CustomVisitorCodeGenerator jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomChangeNotificationAccessMethodsCodeGenerator CustomChangeNotificationAccessMethodsCodeGenerator jn:refactoring_custom 'Interface-Refactoring-Custom' 0
CustomChangeNotificationSetterMethodsCodeGenerator CustomChangeNotificationSetterMethodsCodeGenerator jn:refactoring_custom 'Interface-Refactoring-Custom' 0
--- a/bc.mak Sun Aug 24 23:12:39 2014 +0200
+++ b/bc.mak Mon Aug 25 23:45:19 2014 +0200
@@ -111,6 +111,7 @@
$(OUTDIR)CustomReplaceIfNilWithIfTrueRefactoring.$(O) CustomReplaceIfNilWithIfTrueRefactoring.$(H): CustomReplaceIfNilWithIfTrueRefactoring.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomSubclassResponsibilityCodeGenerator.$(O) CustomSubclassResponsibilityCodeGenerator.$(H): CustomSubclassResponsibilityCodeGenerator.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomTestCaseCodeGenerator.$(O) CustomTestCaseCodeGenerator.$(H): CustomTestCaseCodeGenerator.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
+$(OUTDIR)CustomTestCaseMethodCodeGenerator.$(O) CustomTestCaseMethodCodeGenerator.$(H): CustomTestCaseMethodCodeGenerator.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomVisitorCodeGenerator.$(O) CustomVisitorCodeGenerator.$(H): CustomVisitorCodeGenerator.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomChangeNotificationAccessMethodsCodeGenerator.$(O) CustomChangeNotificationAccessMethodsCodeGenerator.$(H): CustomChangeNotificationAccessMethodsCodeGenerator.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomAccessMethodsCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
$(OUTDIR)CustomChangeNotificationSetterMethodsCodeGenerator.$(O) CustomChangeNotificationSetterMethodsCodeGenerator.$(H): CustomChangeNotificationSetterMethodsCodeGenerator.st $(INCLUDE_TOP)\jn\refactoring_custom\CustomAccessMethodsCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGenerator.$(H) $(INCLUDE_TOP)\jn\refactoring_custom\CustomCodeGeneratorOrRefactoring.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(STCHDR)
--- a/jn_refactoring_custom.st Sun Aug 24 23:12:39 2014 +0200
+++ b/jn_refactoring_custom.st Mon Aug 25 23:45:19 2014 +0200
@@ -90,6 +90,7 @@
CustomRefactoryBuilder
CustomSourceCodeBuilder
CustomSourceCodeSelection
+ (CustomSourceCodeSelectionTests autoload)
(CustomSubclassResponsibilityCodeGeneratorTests autoload)
TestClass
TestClass2
@@ -102,12 +103,14 @@
CustomCodeGenerator
(CustomCodeGeneratorTests autoload)
(CustomCodeGeneratorUserPreferencesTests autoload)
+ (CustomCodeSelectionToResourceTranslationTests autoload)
(CustomDefaultGetterMethodsCodeGeneratorTests autoload)
(CustomLazyInitializationAccessMethodsCodeGeneratorTests autoload)
(CustomLazyInitializationGetterMethodsCodeGeneratorTests autoload)
CustomLocalChangeManager
(CustomMultiSetterMethodsCodeGeneratorTests autoload)
CustomRefactoring
+ (CustomRefactoryBuilderTests autoload)
(CustomReplaceIfNilWithIfTrueRefactoringTests autoload)
CustomSilentDialog
(CustomSimpleAccessMethodsCodeGeneratorTests autoload)
@@ -131,10 +134,11 @@
CustomReplaceIfNilWithIfTrueRefactoring
CustomSubclassResponsibilityCodeGenerator
CustomTestCaseCodeGenerator
+ CustomTestCaseMethodCodeGenerator
CustomVisitorCodeGenerator
CustomChangeNotificationAccessMethodsCodeGenerator
CustomChangeNotificationSetterMethodsCodeGenerator
- CustomCodeGeneratorTestCaseCodeGenerator
+ CustomCodeGeneratorOrRefactoringTestCaseCodeGenerator
CustomDefaultGetterMethodsCodeGenerator
CustomLazyInitializationAccessMethodsCodeGenerator
CustomLazyInitializationGetterMethodsCodeGenerator
@@ -158,6 +162,8 @@
^ #(
#'Tools::NewSystemBrowser' classMenuExtensionCustomRefactorings:
+ #'Tools::NewSystemBrowser' selectorMenuExtensionCustomRefactorings:
+ #'Tools::NewSystemBrowser' selectorMenuExtensionCustomRefactoringsSubMenu
)
! !
--- a/libInit.cc Sun Aug 24 23:12:39 2014 +0200
+++ b/libInit.cc Mon Aug 25 23:45:19 2014 +0200
@@ -59,6 +59,7 @@
_CustomReplaceIfNilWithIfTrueRefactoring_Init(pass,__pRT__,snd);
_CustomSubclassResponsibilityCodeGenerator_Init(pass,__pRT__,snd);
_CustomTestCaseCodeGenerator_Init(pass,__pRT__,snd);
+_CustomTestCaseMethodCodeGenerator_Init(pass,__pRT__,snd);
_CustomVisitorCodeGenerator_Init(pass,__pRT__,snd);
_CustomChangeNotificationAccessMethodsCodeGenerator_Init(pass,__pRT__,snd);
_CustomChangeNotificationSetterMethodsCodeGenerator_Init(pass,__pRT__,snd);
--- a/refactoring_custom.rc Sun Aug 24 23:12:39 2014 +0200
+++ b/refactoring_custom.rc Mon Aug 25 23:45:19 2014 +0200
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
VALUE "ProductName", "ProductName\0"
VALUE "ProductVersion", "6.2.4.1326\0"
- VALUE "ProductDate", "Sat, 23 Aug 2014 18:03:01 GMT\0"
+ VALUE "ProductDate", "Mon, 25 Aug 2014 21:39:49 GMT\0"
END
END