extensions.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 02 Apr 2012 13:11:56 +0100
changeset 20 65bee305e13f
parent 19 3b7fd62bf51c
child 23 75fba0a79b3f
permissions -rw-r--r--
Added UserPreferences>>smallSenseEnabled:

"{ Package: 'stx:libtool/smallsense' }"!

!AssignmentNode methodsFor:'enumeration'!

childNamesAndValuesDo:aBlock

    aBlock value: #variable   value: variable.
    aBlock value: #expression value: expression.

    "Modified: / 26-11-2011 / 10:39:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!AssignmentNode methodsFor:'accessing-SmallSense'!

inferedType

    ^ expression inferedType

    "Created: / 26-11-2011 / 12:38:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!AssignmentNode methodsFor:'accessing-SmallSense'!

inferedType: aSmallSenseType

    ^ self shouldNotImplement

    "Created: / 26-11-2011 / 12:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!ConfigurableFeatures class methodsFor:'queries-features'!

hasSmallSenseEnabled

    ^UserPreferences current smallSenseEnabled


    "
     ConfigurableFeatures hasSmallSenseEnabled
     ConfigurableFeatures includesFeature:'SmallSenseEnabled'
    "

    "Created: / 27-11-2011 / 17:22:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!HTMLDocumentView methodsFor:'actions'!

doQuickFix: quickFixNo
    | app |

    app := self application.
    app notNil ifTrue:[
        app doQuickFix: quickFixNo
    ].

    "Created: / 16-02-2012 / 14:18:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!MessageNode methodsFor:'enumeration'!

childNamesAndValuesDo:aBlock

    aBlock value: #receiver value: receiver.
    argArray notNil ifTrue:[
        argArray withIndexDo:[:node :idx|
            aBlock value: 'arg[' , idx printString , ']' value: node
        ]
    ]

    "Modified: / 26-11-2011 / 12:10:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!ParseErrorNode methodsFor:'enumeration'!

childNamesAndValuesDo:aBlock
    "superclass ParseNode says that I am responsible to implement this method"

    ^ self shouldImplement
! !

!ParseNode methodsFor:'enumeration'!

childNamesAndValuesDo: aBlock

    "Enumerates all direct children and evaluates a block
     with its name (usually instVar name) and the node itself"

    ^self subclassResponsibility

    "Created: / 26-11-2011 / 10:38:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!ParseNode methodsFor:'accessing-SmallSense'!

inferedType

    | t |
    t := self objectAttributeAt:#inferedType.
    t isNil ifTrue:[t := SmallSenseType default].
    ^t

    "Created: / 26-11-2011 / 12:38:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!ParseNode methodsFor:'accessing-SmallSense'!

inferedType: aSmallSenseType

    ^ self objectAttributeAt:#inferedType put: aSmallSenseType

    "Created: / 26-11-2011 / 12:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!ParseNode methodsFor:'testing'!

isSelector
    "return true, if this is a node for an selctors"
    
    ^ false

    "Created: / 22-02-2011 / 21:44:45 / Jakub <zelenja7@fel.cvut.cz>"
! !

!PrimaryNode methodsFor:'enumeration'!

childNamesAndValuesDo:aBlock

    "Initionally left blank, primary nodes have no children"

    "Modified: / 26-11-2011 / 11:49:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!RBLintRule methodsFor:'accessing'!

fixes: aSmallSenseQuickFixer
    "Adds all possible code fixes to given quick fixer.
     Default is to do nothing, meaning that there are
     no quickfixes available"

    "Created: / 01-02-2012 / 12:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!RBTransformationRule methodsFor:'accessing'!

fixes: fixer
    | changes |

    changes := self changes.
    changes notEmptyOrNil ifTrue:[
        fixer fix
            label:'Rewrite the code';
            action: [ fixer apply: 
                ((ChangeSet withAll:self changes) name: self name)
            ].
    ]

    "Created: / 01-02-2012 / 12:11:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!StatementNode methodsFor:'enumeration'!

childNamesAndValuesDo:aBlock
    | stmt index |
    stmt := self.
    index := 1.
    [ stmt notNil ] whileTrue:[
        aBlock value: ('statement[%1]' bindWith: index) value: stmt expression.
        stmt := stmt nextStatement.
        index := index + 1.
    ]

    "Modified: / 15-02-2012 / 12:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!StatementNode methodsFor:'accessing-SmallSense'!

inferedType

    ^ expression inferedType

    "Created: / 26-11-2011 / 12:38:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!StatementNode methodsFor:'accessing-SmallSense'!

inferedType: aSmallSenseType

    ^ self shouldNotImplement

    "Created: / 26-11-2011 / 12:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!Tools::NavigationState methodsFor:'aspects'!

selectedClasses
    "WARNING WARNING: 
    This is overwriten method from SmallSense!!!!!!
    "
    selectedClasses isNil ifTrue:[
        selectedClasses := "SpecialValueHolder with:nil." nil asValue.
        (ConfigurableFeatures includesFeature:'SmallSenseEnabled') ifTrue:[
            selectedClasses onChangeEvaluate:[
                selectedClasses value ? #() do:[:cls|
                    SmallSenseManager instance updateInfoForClass: cls.
                ].
            ]
        ]
    ].
    ^ selectedClasses

    "Modified: / 27-11-2011 / 17:50:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!UserPreferences methodsFor:'accessing-SmallSense'!

smallSenseBackgroundLintEnabled
    "Return true if SmallSense background source checking is enabled"

    ^self at:#smallSenseBackgroundLintEnabled ifAbsent:[false]

    "Created: / 30-01-2012 / 19:59:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!UserPreferences methodsFor:'accessing-SmallSense'!

smallSenseBackgroundLintEnabled: aBoolean
    "Return true if SmallSense background source checking is enabled"

    ^self at:#smallSenseBackgroundLintEnabled put: aBoolean

    "
        UserPreferences current smallSenseBackgroundLintEnabled       
        UserPreferences current smallSenseBackgroundLintEnabled: true
        UserPreferences current smallSenseBackgroundLintEnabled: false
    "

    "Created: / 30-01-2012 / 20:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!UserPreferences methodsFor:'accessing-SmallSense'!

smallSenseBackgroundTypingEnabled
    "Return true if SmallSense background source checking is enabled"

    ^self at:#smallSenseBackgroundTypingEnabled ifAbsent:[false]

    "Created: / 04-02-2012 / 21:41:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!UserPreferences methodsFor:'accessing-SmallSense'!

smallSenseBackgroundTypingEnabled: aBoolean
    "Return true if SmallSense background source checking is enabled"

    ^self at:#smallSenseBackgroundTypingEnabled put: aBoolean

    "
        UserPreferences current smallSenseBackgroundTypingEnabled       
        UserPreferences current smallSenseBackgroundTypingEnabled: true
        UserPreferences current smallSenseBackgroundTypingEnabled: false
    "

    "Created: / 04-02-2012 / 21:41:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!UserPreferences methodsFor:'accessing-SmallSense'!

smallSenseEnabled
    "Return true if SmallSense is enabled"

    ^self at:#smallSenseEnabled ifAbsent:[false]

    "Created: / 27-11-2011 / 17:20:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!UserPreferences methodsFor:'accessing-SmallSense'!

smallSenseEnabled: aBoolean
    "enable/disable SmallSense"

    ^self at:#smallSenseEnabled: put: aBoolean.

    "
    UserPreferences current smallSenseEnabled.
    UserPreferences current smallSenseEnabled: true.
    UserPreferences current smallSenseEnabled: false.
    "

    "Created: / 02-04-2012 / 11:37:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!VariableNode methodsFor:'queries'!

isGlobalOrPrivateClass

    ^ type == #GlobalVariable or:[type == #PrivateClass]

    "Created: / 27-11-2011 / 16:31:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!stx_libtool_smallsense class methodsFor:'documentation'!

extensionsVersion_SVN
    ^ '$Id:: extensions.st 7962 2012-04-02 12:11:56Z vranyj1                                                                        $'
! !