diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 7e368702..85a1d649 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,11 +15,16 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - smalltalk: [ Pharo64-11, Pharo64-12, Pharo64-13 ] + smalltalk: [ Pharo64-12, Pharo64-13, Pharo64-14 ] ston: [ .smalltalkci.default.ston ] + #Specific case for Pharo14 (experimental): ignore failures + include: + - smalltalk: Pharo64-14 + experimental: true runs-on: ${{ matrix.os }} name: > ${{ matrix.smalltalk }} • ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental == true }} steps: - uses: actions/checkout@v3 @@ -30,4 +35,4 @@ jobs: - name: Run ${{ matrix.ston == '.smalltalkci.default.ston' && 'Full' || 'Core' }} tests run: smalltalkci -s ${{ matrix.smalltalk }} ${{ matrix.ston }} shell: bash - timeout-minutes: 30 \ No newline at end of file + timeout-minutes: 30 diff --git a/README.md b/README.md index 94ef5ca9..94e82e8a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[![Pharo 11](https://img.shields.io/badge/Pharo-11-%23aac9ff.svg)](https://pharo.org/download) [![Pharo 12](https://img.shields.io/badge/Pharo-12-%23aac9ff.svg)](https://pharo.org/download) [![Pharo 13](https://img.shields.io/badge/Pharo-13-%23aac9ff.svg)](https://pharo.org/download) +[![Pharo 14](https://img.shields.io/badge/Pharo-14-%23aac9ff.svg)](https://pharo.org/download) [![License](https://img.shields.io/github/license/OpenSmock/Pyramid.svg)](./LICENSE) [![Unit tests](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml/badge.svg)](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml) diff --git a/src/Pyramid-Bloc/PyramidBreakpoint.class.st b/src/Pyramid-Bloc/PyramidBreakpoint.class.st deleted file mode 100644 index af3771cc..00000000 --- a/src/Pyramid-Bloc/PyramidBreakpoint.class.st +++ /dev/null @@ -1,64 +0,0 @@ -Class { - #name : #PyramidBreakpoint, - #superclass : #Breakpoint, - #instVars : [ - 'whenHitDo' - ], - #category : #'Pyramid-Bloc-plugin-edit-on-running' -} - -{ #category : #removing } -PyramidBreakpoint class >> removeAllPyramidBreakpoint [ - - - | pyramidBreakpoints | - pyramidBreakpoints := self all select: [ :each | each class = self ]. - pyramidBreakpoints ifEmpty: [ ^ self ]. - pyramidBreakpoints do: [ :each | each remove ] -] - -{ #category : #removing } -PyramidBreakpoint class >> removeAllPyramidBreakpointExceptOne [ - - - | pyramidBreakpoints | - pyramidBreakpoints := self all select: [ :each | each class = self ]. - pyramidBreakpoints ifEmpty: [ ^ self ]. - pyramidBreakpoints allButFirstDo: [ :each | each remove ] -] - -{ #category : #api } -PyramidBreakpoint >> breakInContext: aContext node: aNode [ - - self class notifyBreakpointHit: self inContext: aContext node: aNode. - self isEnabled ifFalse: [ ^ self ]. - self onCount ifTrue: [ - self increaseCount = self breakOnCount ifFalse: [ ^ self ] ]. - self once ifTrue: [ self disable ]. - self whenHitDo value: aContext. -] - -{ #category : #initialization } -PyramidBreakpoint >> initialize [ - - super initialize. - whenHitDo := [ :c | ] -] - -{ #category : #testing } -PyramidBreakpoint >> isInstalled [ - - ^ self link methods isNotEmpty -] - -{ #category : #accessing } -PyramidBreakpoint >> whenHitDo [ - - ^ whenHitDo -] - -{ #category : #accessing } -PyramidBreakpoint >> whenHitDo: anObject [ - - whenHitDo := anObject -] diff --git a/src/Pyramid-Bloc/PyramidDebugPoint.class.st b/src/Pyramid-Bloc/PyramidDebugPoint.class.st new file mode 100644 index 00000000..85a67407 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidDebugPoint.class.st @@ -0,0 +1,64 @@ +Class { + #name : #PyramidDebugPoint, + #superclass : #DebugPoint, + #instVars : [ + 'whenHitDo' + ], + #category : #'Pyramid-Bloc-plugin-edit-on-running' +} + +{ #category : #removing } +PyramidDebugPoint class >> removeAllPyramidDebugPoint [ + + + | pyramidDebugPoints | + pyramidDebugPoints := PyramidDebugPoint allInstances. + pyramidDebugPoints isEmptyOrNil ifTrue: [ ^ self ]. + pyramidDebugPoints do: [ :each | each link ifNotNil:[ each remove ] ] +] + +{ #category : #API } +PyramidDebugPoint >> hitWithContext: aContext [ + + | result | + result := super hitWithContext: aContext. + result ifTrue:[ self whenHitDo value: aContext ]. + + ^result + +] + +{ #category : #initialization } +PyramidDebugPoint >> initialize [ + + super initialize. + whenHitDo := [ :c | ] +] + +{ #category : #installing } +PyramidDebugPoint >> install [ + + "For compatibility P12" + self link ifNil:[ self link: self metaLink]. + + super install +] + +{ #category : #testing } +PyramidDebugPoint >> isInstalled [ + + self link ifNil:[ ^false ]. + ^ self link methods isNotEmpty +] + +{ #category : #accessing } +PyramidDebugPoint >> whenHitDo [ + + ^ whenHitDo +] + +{ #category : #accessing } +PyramidDebugPoint >> whenHitDo: anObject [ + + whenHitDo := anObject +] diff --git a/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st b/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st index 8c2589c3..19cab6f6 100644 --- a/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st +++ b/src/Pyramid-Bloc/PyramidPluginEditOnRunning.class.st @@ -24,7 +24,7 @@ PyramidPluginEditOnRunning class >> breakpoint [ ^ breakpoint ] -{ #category : #'as yet unclassified' } +{ #category : #private } PyramidPluginEditOnRunning class >> canEditSpace: aSpace [ aSpace ifNil:[ ^ false ]. @@ -54,13 +54,13 @@ PyramidPluginEditOnRunning class >> doShortcutAction: anEvent [ editor window whenClosedDo: [ whenClosedDo value ] ] -{ #category : #'as yet unclassified' } +{ #category : #accessing } PyramidPluginEditOnRunning class >> editOnRunning [ ^ editOnRunning ifNil: [ editOnRunning := true ] ] -{ #category : #'as yet unclassified' } +{ #category : #accessing } PyramidPluginEditOnRunning class >> editOnRunning: aBoolean [ editOnRunning := aBoolean @@ -77,10 +77,10 @@ PyramidPluginEditOnRunning class >> install [ PyramidPluginEditOnRunning class >> installBreakpoint [ | node | - PyramidBreakpoint removeAllPyramidBreakpoint. + PyramidDebugPoint removeAllPyramidDebugPoint. node := (BlParallelUniverse methodNamed: #openSpace:) ast. - breakpoint := PyramidBreakpoint new. + breakpoint := PyramidDebugPoint new. breakpoint node: node. breakpoint whenHitDo: [ :context | self addShortcutInSpace: context arguments first ]. @@ -122,6 +122,6 @@ PyramidPluginEditOnRunning class >> shortcut [ PyramidPluginEditOnRunning class >> uninstall [ "Undo some stuff here when the plugin used class oriented behavior" - PyramidBreakpoint removeAllPyramidBreakpoint. + PyramidDebugPoint removeAllPyramidDebugPoint. breakpoint := nil. ] diff --git a/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st b/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st index d8425326..0848f873 100644 --- a/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st +++ b/src/Pyramid-Bloc/PyramidSaveModelVerifier.class.st @@ -47,9 +47,9 @@ PyramidSaveModelVerifier class >> classPackageIsEqual [ PyramidSaveModelVerifier class >> methodIsValid [ ^ self new - verifyBlock: [ :model | model savingMethodName isValidSelector ]; + verifyBlock: [ :model |model savingMethodName isValidSelector]; showBlock: [ :view | view showMethodIsNotValidError ]; - yourself. + yourself ] { #category : #constructor } diff --git a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st index 906a86d5..51652a9c 100644 --- a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st +++ b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st @@ -106,7 +106,7 @@ PyramidPluginEditOnRunningTest >> testOnlyOnePyramidBreakpoint [ Smalltalk image garbageCollect. Smalltalk image garbageCollect. Smalltalk image garbageCollect. - self assert: (PyramidBreakpoint allInstances select: #isInstalled) size equals: 1 + self assert: (PyramidDebugPoint allInstances select: #isInstalled) size equals: 1 ] { #category : #tests }