refactoring_custom/stx_goodies_smallsense_refactoring_custom.st
author convert-repo
Wed, 11 Dec 2019 04:28:36 +0000
changeset 1116 b51ace366efc
parent 1072 a44c741ee5ef
child 1133 7d4b6bd5cbe9
permissions -rw-r--r--
update tags

"
A custom code generation and refactoring support for Smalltalk/X
Copyright (C) 2013-2015 Jakub Nesveda
Copyright (C) 2015 Jan Vrany

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
"{ Package: 'stx:goodies/smallsense/refactoring_custom' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_goodies_smallsense_refactoring_custom
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_goodies_smallsense_refactoring_custom class methodsFor:'documentation'!

copyright
"
A custom code generation and refactoring support for Smalltalk/X
Copyright (C) 2013-2015 Jakub Nesveda
Copyright (C) 2015 Jan Vrany

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
!

documentation
"
    Package documentation:

    API for custom code generation and refactoring.

    [author:]
        Jakub Nesveda <nesvejak@fit.cvut.cz>
"
! !

!stx_goodies_smallsense_refactoring_custom class methodsFor:'description'!

excludedFromPreRequisites
    "list all packages which should be ignored in the automatic
     preRequisites scan. See #preRequisites for more."

    ^ #(
    )
!

mandatoryPreRequisites
    "list packages which are mandatory as a prerequisite.
     This are packages containing superclasses of my classes and classes which
     are extended by myself.
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
     This method is generated automatically,
     by searching along the inheritance chain of all of my classes."

    ^ #(
        #'stx:goodies/refactoryBrowser/changes'    "AddClassChange - extended"
        #'stx:goodies/refactoryBrowser/helpers'    "RBAbstractClass - extended"
        #'stx:goodies/refactoryBrowser/parser'    "ParseTreeRewriter - superclass of SmallSense::CustomParseTreeRewriter"
        #'stx:libbasic'    "LibraryDefinition - superclass of stx_goodies_smallsense_refactoring_custom"
        #'stx:libtool'    "CodeGenerator - superclass of SmallSense::CustomSourceCodeGenerator"
        #'stx:libview2'    "ApplicationModel - extended"
    )
!

referencedPreRequisites
    "list packages which are a prerequisite, because they contain
     classes which are referenced by my classes.
     We do not need these packages as a prerequisite for compiling or loading,
     however, a class from it may be referenced during execution and having it
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
     includes explicit checks for the package being present.
     This method is generated automatically,
     by searching all classes (and their packages) which are referenced by my classes."

    ^ #(
        #'stx:goodies/sunit'    "TestCase - referenced by SmallSense::CustomTestCaseCodeGenerator class>>availableInContext:"
        #'stx:libcomp'    "Parser - referenced by RBMethod>>newSource"
        #'stx:libjava'    "JavaLanguage - referenced by SmallSense::CustomJavaSimpleSetterMethodsCodeGenerator class>>availableForProgrammingLanguages"
        #'stx:libjava/tools'    "JavaCompiler - referenced by SmallSense::CustomJavaSimpleSetterMethodsCodeGenerator>>buildInContext:"
        #'stx:libjavascript'    "STXJavaScriptLanguage - referenced by SmallSense::CustomJavaScriptSimpleSetterMethodsCodeGenerator class>>availableForProgrammingLanguages"
        #'stx:libview'    "WindowGroup - referenced by SmallSense::CustomCodeGeneratorOrRefactoring>>executeInContextWithWaitCursor:"
        #'stx:libwidg'    "DialogBox - referenced by SmallSense::CustomUserDialog>>initialize"
        #'stx:libwidg2'    "CheckBox - referenced by SmallSense::CustomDialog>>addCheckBoxOn:labeled:"
    )
!

subProjects
    "list packages which are known as subprojects.
     The generated makefile will enter those and make there as well.
     However: they are not forced to be loaded when a package is loaded;
     for those, redefine requiredPrerequisites"

    ^ #(
    )

    "Modified: / 19-02-2015 / 06:04:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!stx_goodies_smallsense_refactoring_custom class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        #'SmallSense::CustomChangeManager'
        #'SmallSense::CustomClassQuery'
        #'SmallSense::CustomCodeGeneratorOrRefactoring'
        #'SmallSense::CustomContext'
        #'SmallSense::CustomDialog'
        #'SmallSense::CustomManager'
        #'SmallSense::CustomMenuBuilder'
        #'SmallSense::CustomMock'
        #'SmallSense::CustomNamespace'
        #'SmallSense::CustomParseTreeRewriter'
        #'SmallSense::CustomPerspective'
        #'SmallSense::CustomRefactoryBuilder'
        #'SmallSense::CustomSourceCodeFormatter'
        #'SmallSense::CustomSourceCodeGenerator'
        #'SmallSense::CustomSourceCodeSelection'
        #'SmallSense::CustomTestCaseHelper'
        #'stx_goodies_smallsense_refactoring_custom'
        #'SmallSense::CustomBrowserChangeManager'
        #'SmallSense::CustomBrowserContext'
        #'SmallSense::CustomCodeGenerator'
        #'SmallSense::CustomLocalChangeManager'
        #'SmallSense::CustomNoneSourceCodeFormatter'
        #'SmallSense::CustomRBLocalSourceCodeFormatter'
        #'SmallSense::CustomRefactoring'
        #'SmallSense::CustomSilentDialog'
        #'SmallSense::CustomSubContext'
        #'SmallSense::CustomUserDialog'
        #'SmallSense::CustomAccessMethodsCodeGenerator'
        #'SmallSense::CustomCodeSelectionRefactoring'
        #'SmallSense::CustomInspectorTabCodeGenerator'
        #'SmallSense::CustomIsAbstractCodeGenerator'
        #'SmallSense::CustomJavaSimpleSetterMethodsCodeGenerator'
        #'SmallSense::CustomNewClassGenerator'
        #'SmallSense::CustomReplaceIfNilWithIfTrueRefactoring'
        #'SmallSense::CustomSubclassResponsibilityCodeGenerator'
        #'SmallSense::CustomTestCaseCodeGenerator'
        #'SmallSense::CustomTestCaseMethodCodeGenerator'
        #'SmallSense::CustomTestCaseSetUpCodeGenerator'
        #'SmallSense::CustomTestCaseTearDownCodeGenerator'
        #'SmallSense::CustomUpdateTestCaseCategoryRefactoring'
        #'SmallSense::CustomVisitorCodeGenerator'
        #'SmallSense::CustomChangeNotificationAccessMethodsCodeGenerator'
        #'SmallSense::CustomChangeNotificationSetterMethodsCodeGenerator'
        #'SmallSense::CustomCodeGeneratorClassGenerator'
        #'SmallSense::CustomCodeGeneratorOrRefactoringTestCaseCodeGenerator'
        #'SmallSense::CustomCodeSelectionToResourceTranslation'
        #'SmallSense::CustomDefaultGetterMethodsCodeGenerator'
        #'SmallSense::CustomLazyInitializationAccessMethodsCodeGenerator'
        #'SmallSense::CustomLazyInitializationGetterMethodsCodeGenerator'
        #'SmallSense::CustomMultiSetterMethodsCodeGenerator'
        #'SmallSense::CustomPrintCodeSelectionRefactoring'
        #'SmallSense::CustomRefactoringClassGenerator'
        #'SmallSense::CustomSimpleAccessMethodsCodeGenerator'
        #'SmallSense::CustomSimpleGetterMethodsCodeGenerator'
        #'SmallSense::CustomSimpleSetterMethodsCodeGenerator'
        #'SmallSense::CustomUITestCaseCodeGenerator'
        #'SmallSense::CustomUITestCaseSetUpCodeGenerator'
        #'SmallSense::CustomValueHolderAccessMethodsCodeGenerator'
        #'SmallSense::CustomValueHolderGetterMethodsCodeGenerator'
        #'SmallSense::CustomValueHolderWithChangeNotificationAccessMethodsCodeGenerator'
        #'SmallSense::CustomValueHolderWithChangeNotificationGetterMethodsCodeGenerator'
        #'SmallSense::CustomValueHolderWithChangeNotificationSetterMethodsCodeGenerator'
        #'SmallSense::CustomVisitorCodeGeneratorAcceptVisitor'
        #'SmallSense::CustomJavaScriptSimpleSetterMethodsCodeGenerator'
        (#'SmallSense::CustomAccessMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomAddClassChangeTests' autoload)
        (#'SmallSense::CustomAddMethodChangeTests' autoload)
        (#'SmallSense::CustomBrowserContextTests' autoload)
        (#'SmallSense::CustomBrowserEnvironmentTests' autoload)
        (#'SmallSense::CustomChangeNotificationAccessMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomChangeNotificationSetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomClassQueryTests' autoload)
        (#'SmallSense::CustomCodeGeneratorClassGeneratorTests' autoload)
        (#'SmallSense::CustomCodeGeneratorOrRefactoringTestCase' autoload)
        (#'SmallSense::CustomCodeGeneratorOrRefactoringTests' autoload)
        (#'SmallSense::CustomCodeGeneratorTests' autoload)
        (#'SmallSense::CustomCodeGeneratorUserPreferencesTests' autoload)
        (#'SmallSense::CustomCodeSelectionToResourceTranslationTests' autoload)
        (#'SmallSense::CustomContextTests' autoload)
        (#'SmallSense::CustomDefaultGetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomIsAbstractCodeGeneratorTests' autoload)
        (#'SmallSense::CustomJavaScriptSimpleSetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomLazyInitializationAccessMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomLazyInitializationGetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomLocalChangeManagerTests' autoload)
        (#'SmallSense::CustomManagerTests' autoload)
        (#'SmallSense::CustomMenuBuilderTests' autoload)
        (#'SmallSense::CustomMockTests' autoload)
        (#'SmallSense::CustomMultiSetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomNamespaceTests' autoload)
        (#'SmallSense::CustomNewClassGeneratorTests' autoload)
        (#'SmallSense::CustomNewSystemBrowserTests' autoload)
        (#'SmallSense::CustomNoneSourceCodeFormatterTests' autoload)
        (#'SmallSense::CustomParseTreeRewriterTests' autoload)
        (#'SmallSense::CustomPerspectiveTests' autoload)
        (#'SmallSense::CustomRBAbstractClassTests' autoload)
        (#'SmallSense::CustomRBClassTests' autoload)
        (#'SmallSense::CustomRBLocalSourceCodeFormatterTests' autoload)
        (#'SmallSense::CustomRBMetaclassTests' autoload)
        (#'SmallSense::CustomRBMethodTests' autoload)
        (#'SmallSense::CustomRefactoringClassGeneratorTests' autoload)
        (#'SmallSense::CustomRefactoryBuilderTests' autoload)
        (#'SmallSense::CustomRefactoryClassChangeTests' autoload)
        (#'SmallSense::CustomReplaceIfNilWithIfTrueRefactoringTests' autoload)
        (#'SmallSense::CustomSimpleAccessMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomSimpleGetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomSimpleSetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomSourceCodeGeneratorTests' autoload)
        (#'SmallSense::CustomSourceCodeSelectionTests' autoload)
        (#'SmallSense::CustomSubContextTests' autoload)
        (#'SmallSense::CustomSubclassResponsibilityCodeGeneratorTests' autoload)
        (#'SmallSense::CustomTestCaseCodeGeneratorTests' autoload)
        (#'SmallSense::CustomTestCaseHelperTests' autoload)
        (#'SmallSense::CustomTestCaseMethodCodeGeneratorTests' autoload)
        (#'SmallSense::CustomTestCaseSetUpCodeGeneratorTests' autoload)
        (#'SmallSense::CustomTestCaseTearDownCodeGeneratorTests' autoload)
        (#'SmallSense::CustomUpdateTestCaseCategoryRefactoringTests' autoload)
        (#'SmallSense::CustomValueHolderAccessMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomValueHolderGetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomValueHolderWithChangeNotificationAccessMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomValueHolderWithChangeNotificationGetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomValueHolderWithChangeNotificationSetterMethodsCodeGeneratorTests' autoload)
        (#'SmallSense::CustomVisitorCodeGeneratorAcceptVisitorTests' autoload)
        (#'SmallSense::CustomVisitorCodeGeneratorTests' autoload)
    )
!

extensionMethodNames
    "list class/selector pairs of extensions.
     A correponding method with real names must be present in my concrete subclasses"

    ^ #(
        #'Tools::NewSystemBrowser' selectorMenuExtensionCustomRefactorings:
        #'Tools::NewSystemBrowser' classMenuExtensionCustomGenerators:
        #'Tools::NewSystemBrowser' codeViewMenuExtensionCustomRefactorings:
        #'Tools::NewSystemBrowser' selectorMenuExtensionCustomGenerators:
        #'Tools::NewSystemBrowser' variablesMenuExtensionCustomGenerators:
        RBAbstractClass allClassVarNames
        RBAbstractClass allSuperclassesDo:
        RBAbstractClass instVarNames
        RBAbstractClass methodDictionary
        RBAbstractClass nameWithoutPrefix
        RBAbstractClass superclassName:
        RBAbstractClass theMetaclass
        RBAbstractClass theNonMetaclass
        RBAbstractClass withAllSuperclassesDo:
        RBClass compile
        RBClass theNonMetaClass
        RBMetaclass theMetaClass
        RBMetaclass theMetaclass
        RBAbstractClass instVarNames:
        RBMethod sends:or:
        RBMethod category:
        RBMethod class:
        RBMethod compile
        RBMethod methodArgNames
        RBMethod methodDefinitionTemplate
        RBMethod model
        RBMethod model:
        RBMethod protocol
        RBMethod protocol:
        RBMethod replace:with:
        RBMethod sourceCodeGenerator
        RBMethod sourceCodeGenerator:
        AddClassChange package
        AddClassChange package:
        AddMethodChange package:
        RBAbstractClass compileMethod:
        RBAbstractClass package
        RBAbstractClass package:
        RBMethod newSource
        RBMethod package:
        RBAbstractClass inheritsFrom:
        RBAbstractClass isSubclassOf:
        RBAbstractClass instAndClassMethodsDo:
        RBAbstractClass methodsDo:
        RefactoryChange model
        RefactoryChange model:
        #'Tools::NewSystemBrowser' classMenuExtensionCustomRefactorings:
        AddClassChange argumensBySelectorPartsFromMessage:
        AddClassChange privateInClassName
        AddClassChange privateInClassName:
        RBAbstractClass compilerClass
        RBAbstractClass isLoaded
        RBAbstractClass privateClassesAt:
        RBAbstractClass realSharedPoolNames
        RBAbstractClass topNameSpace
        RBMetaclass owningClass
        RBMetaclass owningClass:
        RBMethod mclass
        RBAbstractClass owningClass
        RBAbstractClass owningClass:
        RBAbstractClass owningClassOrYourself
        RBAbstractClass topOwningClass
        RBMetaclass topOwningClass
        RBAbstractClass isAbstract:
        RBAbstractClass programmingLanguage
        RBMethod programmingLanguage
        #'Tools::NewSystemBrowser' classMenuExtensionNavigateToTestCase:
        #'Tools::NewSystemBrowser' customMenuBuilder
        RBAbstractClass sourceCodeAt:
    )
! !

!stx_goodies_smallsense_refactoring_custom class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'My Company'
!

description
    "Return a description string which will appear in vc.def / bc.def"

    ^ 'Class Library'
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Jakub Nesveda 2013-2015 & Jan Vrany 2013-now'

    "Modified: / 05-05-2015 / 23:56:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'ProductName'
! !

!stx_goodies_smallsense_refactoring_custom class methodsFor:'documentation'!

version_HG
    ^ '$Changeset: <not expanded> $'
! !