diff --git a/.coverage.smalltalk.ston b/.coverage.smalltalk.ston index 8d36f5e4..059029d6 100644 --- a/.coverage.smalltalk.ston +++ b/.coverage.smalltalk.ston @@ -1,4 +1,8 @@ SmalltalkCISpec { + #preTesting : SCICustomScript { + #path : 'scripts/preTesting.st', + #platforms : [ #squeak ] + }, #loading : [ SCIMetacelloLoadSpec { #baseline : 'Algernon', diff --git a/.github/workflows/coverage-reporter.yml b/.github/workflows/coverage-reporter.yml index 83d671d8..b3312759 100644 --- a/.github/workflows/coverage-reporter.yml +++ b/.github/workflows/coverage-reporter.yml @@ -6,7 +6,7 @@ jobs: name: Coverage Report runs-on: ubuntu-latest env: - ST_IMAGE: Squeak64-trunk + ST_IMAGE: Squeak64-5.3 steps: - uses: actions/checkout@v2 - uses: hpi-swa/setup-smalltalkCI@v1 diff --git a/.github/workflows/smalltalk-ci.yml b/.github/workflows/smalltalk-ci.yml index 0d08f2f7..1cf3adb7 100644 --- a/.github/workflows/smalltalk-ci.yml +++ b/.github/workflows/smalltalk-ci.yml @@ -9,7 +9,7 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] smalltalk: - Squeak64-5.3 - - Squeak64-trunk + #- Squeak64-trunk runs-on: ${{ matrix.os }} name: ${{ matrix.smalltalk }} on ${{ matrix.os }} steps: @@ -20,7 +20,7 @@ jobs: smalltalk-image: ${{ matrix.smalltalk }} - run: smalltalkci -s ${{ matrix.smalltalk }} shell: bash - timeout-minutes: 15 + timeout-minutes: 25 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} baselinetests: diff --git a/.smalltalk.ston b/.smalltalk.ston index 29ea92b5..31353e19 100644 --- a/.smalltalk.ston +++ b/.smalltalk.ston @@ -1,4 +1,8 @@ SmalltalkCISpec { + #preTesting : SCICustomScript { + #path : 'scripts/preTesting.st', + #platforms : [ #squeak ] + }, #loading : [ SCIMetacelloLoadSpec { #baseline : 'Algernon', diff --git a/README.md b/README.md index 7815c6c5..f370d948 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Algernon allows for keyboard only interaction - no need to use your mouse! | Tab | Navigate in | | Shift + Tab | Navigate out | | Enter | Run selected item | +| Ctrl + Delete | Clear search bar | *Important Notice:* Please be aware that using Algernon for the first time might be slow. The first query triggers the indexing that is used for searching objects. After a few seconds delay in the first query, Algernon should run fast as expected. @@ -45,7 +46,10 @@ Algernon allows for keyboard only interaction - no need to use your mouse! - Search global variables - Print and evaluate Smalltalk expressions - Action verbs for filtering and quick access (e.g. `run SomeTest` will only search for tests and set a default action) -- full text search in classes +- Full text search in classes +- Search the web +- Push/pull/commit with git +- Change branches of your repository For explanations regarding the usage of the features check out the [wiki](https://github.com/hpi-swa-teaching/Algernon-Launcher/wiki). @@ -63,18 +67,24 @@ Use the Test Runner Tool in your Squeak Image and select all *AlgernonTests*. No * [Ann Katrin Kuessner](https://github.com/annkatrinkuessner) * [Ben Bals](https://github.com/BenBals) * [Benedikt Weber](https://github.com/bewee) +* [Elias Fiedler](https://github.com/EliasNotFound) * [Franz Sauerwald](https://github.com/FranzSw) +* [Frederic Sadrieh](https://github.com/FSadrieh) +* [Georg Auge](https://github.com/gwauge) * [Jannis Rosenbaum](https://github.com/sinnaj-r) * [Jonathan Schneider](https://github.com/jonaschn) * [Kai Robert Kirsten](https://github.com/robertkirsten) * [Kay Erik Jenß](https://github.com/kej-jay) * [Laura Meister](https://github.com/dieknolle3333) +* [Leonard Horns](https://github.com/leonardhorns) * [Louis Kirsch](https://github.com/timediv) +* [Matvey Sivashinskiy](https://github.com/matveysiva) * [Niklas Mohrin](https://github.com/niklasmohrin) * [Nils Lissner](https://github.com/TheGrayStone) * [Oliver Heß](https://github.com/Olliwehr) * [Philip Weidenfeller](https://github.com/phlprcks) * [Pius Ladenburger](https://github.com/GittiHab) * [Tobias Dürschmid](https://github.com/tobiduer) +* [Yannik Dittmar](https://github.com/yannik-dittmar) Credits to Erik Hinterbichler and Joey Hagedorn, [the original creators of Algernon.](http://erikhinterbichler.com/apps/algernon/) diff --git a/packages/Algernon.package/ALGAction.class/instance/hidden..st b/packages/Algernon.package/ALGAction.class/instance/hidden..st new file mode 100644 index 00000000..76c031ce --- /dev/null +++ b/packages/Algernon.package/ALGAction.class/instance/hidden..st @@ -0,0 +1,4 @@ +accessing +hidden: aBoolean + + hidden := aBoolean \ No newline at end of file diff --git a/packages/Algernon.package/ALGAction.class/instance/hidden.st b/packages/Algernon.package/ALGAction.class/instance/hidden.st new file mode 100644 index 00000000..463e3c25 --- /dev/null +++ b/packages/Algernon.package/ALGAction.class/instance/hidden.st @@ -0,0 +1,4 @@ +accessing +hidden + + ^ hidden ifNil: [hidden := false] \ No newline at end of file diff --git a/packages/Algernon.package/ALGAction.class/instance/keepOpen..st b/packages/Algernon.package/ALGAction.class/instance/keepOpen..st new file mode 100644 index 00000000..04e1b414 --- /dev/null +++ b/packages/Algernon.package/ALGAction.class/instance/keepOpen..st @@ -0,0 +1,4 @@ +accessing +keepOpen: aBoolean + + keepOpen := aBoolean \ No newline at end of file diff --git a/packages/Algernon.package/ALGAction.class/instance/keepOpen.st b/packages/Algernon.package/ALGAction.class/instance/keepOpen.st new file mode 100644 index 00000000..9a3bb808 --- /dev/null +++ b/packages/Algernon.package/ALGAction.class/instance/keepOpen.st @@ -0,0 +1,4 @@ +accessing +keepOpen + + ^ keepOpen ifNil: [keepOpen := false] \ No newline at end of file diff --git a/packages/Algernon.package/ALGAction.class/methodProperties.json b/packages/Algernon.package/ALGAction.class/methodProperties.json index 8f83f2e6..a82caa03 100644 --- a/packages/Algernon.package/ALGAction.class/methodProperties.json +++ b/packages/Algernon.package/ALGAction.class/methodProperties.json @@ -8,8 +8,12 @@ "args" : "J.J. 7/28/2015 19:11", "computeActionVerb" : "jRo 8/1/2020 11:34", "do" : "Jro 5/26/2020 12:11", + "hidden" : "PureBehaviorTest 8/5/2022 13:12", + "hidden:" : "YD 8/5/2022 13:56", "incrementNumTimesSelected" : "J.J. 7/28/2015 19:11", "isLessThan:" : "rk 8/2/2020 22:50", + "keepOpen" : "PureBehaviorTest 8/5/2022 13:12", + "keepOpen:" : "YD 8/5/2022 13:57", "name" : "J.J. 7/28/2015 19:12", "name:" : "beb 6/25/2020 10:20", "numTimesSelected" : "J.J. 7/28/2015 19:12", diff --git a/packages/Algernon.package/ALGAction.class/properties.json b/packages/Algernon.package/ALGAction.class/properties.json index 8bd60b6a..c651c494 100644 --- a/packages/Algernon.package/ALGAction.class/properties.json +++ b/packages/Algernon.package/ALGAction.class/properties.json @@ -12,7 +12,9 @@ "theTarget", "theSelector", "theArgs", - "actionVerb" ], + "actionVerb", + "keepOpen", + "hidden" ], "name" : "ALGAction", "pools" : [ ], diff --git a/packages/Algernon.package/ALGActionItem.class/class/createListFrom..st b/packages/Algernon.package/ALGActionItem.class/class/createListFrom..st index dbed500b..d3da4a02 100644 --- a/packages/Algernon.package/ALGActionItem.class/class/createListFrom..st +++ b/packages/Algernon.package/ALGActionItem.class/class/createListFrom..st @@ -1,6 +1,8 @@ instance creation createListFrom: anItem - ^ anItem algerActions collect: [ :anAction | + ^ (anItem algerActions reject: [ :anAction | + anAction hidden]) + collect: [ :anAction | (self createFrom: anAction) provider: anItem; yourself ] \ No newline at end of file diff --git a/packages/Algernon.package/ALGActionItem.class/methodProperties.json b/packages/Algernon.package/ALGActionItem.class/methodProperties.json index 46cf64c1..7b2d68f4 100644 --- a/packages/Algernon.package/ALGActionItem.class/methodProperties.json +++ b/packages/Algernon.package/ALGActionItem.class/methodProperties.json @@ -1,7 +1,7 @@ { "class" : { "createFrom:" : "jRo 8/5/2020 15:02", - "createListFrom:" : "beb 5/31/2020 18:26" }, + "createListFrom:" : "YD 6/19/2022 20:14" }, "instance" : { "name" : "td 6/8/2016 21:04", "provider" : "J.J. 7/16/2015 18:39", diff --git a/packages/Algernon.package/ALGActionVerbFilter.class/class/helpTexts.st b/packages/Algernon.package/ALGActionVerbFilter.class/class/helpTexts.st index aa806aaf..a0ee5637 100644 --- a/packages/Algernon.package/ALGActionVerbFilter.class/class/helpTexts.st +++ b/packages/Algernon.package/ALGActionVerbFilter.class/class/helpTexts.st @@ -1,5 +1,6 @@ help helpTexts + ^ (Dictionary new) add: 'run'->'Run a test case.'; add: 'do'->'Run a given command. Do not print the output.'; @@ -14,4 +15,9 @@ helpTexts add: 'collapse'-> 'Collapse a given window'; add: 'contract'-> 'Contract a given window from fullscreen'; add: 'close'-> 'Close a given window'; - yourself \ No newline at end of file + add: 'commit'-> 'Open an interactive commit window for a given git project and the checked out branch'; + add: 'push'-> 'Push committed changes of a given git project and the checked out branch to the remote'; + add: 'pull'-> 'Pull changes for a given git project and the checked out branch from the remote'; + add: 'switch'-> 'Switch to a different local branch or create a one for a remote branch and switch to it'; + add: 'web'-> 'Search the internet for answers'; + yourself diff --git a/packages/Algernon.package/ALGActionVerbFilter.class/class/keywords.st b/packages/Algernon.package/ALGActionVerbFilter.class/class/keywords.st index c996fd79..1574b0b9 100644 --- a/packages/Algernon.package/ALGActionVerbFilter.class/class/keywords.st +++ b/packages/Algernon.package/ALGActionVerbFilter.class/class/keywords.st @@ -4,4 +4,6 @@ keywords 'open'. 'do'. 'inspect'. 'explore'. '='. 'front'. 'expand'. 'collapse'. - 'contract'. 'close' } \ No newline at end of file + 'contract'. 'close'. 'web'. + 'commit'. 'push'. 'pull'. + 'switch' } diff --git a/packages/Algernon.package/ALGActionVerbFilter.class/methodProperties.json b/packages/Algernon.package/ALGActionVerbFilter.class/methodProperties.json index c8a621c1..47b8ff6e 100644 --- a/packages/Algernon.package/ALGActionVerbFilter.class/methodProperties.json +++ b/packages/Algernon.package/ALGActionVerbFilter.class/methodProperties.json @@ -1,6 +1,6 @@ { "class" : { - "helpTexts" : "lm 7/6/2021 20:54", - "keywords" : "lm 7/6/2021 20:53" }, + "helpTexts" : "ga 7/29/2022 11:04", + "keywords" : "LH 7/10/2022 18:18" }, "instance" : { "filter:given:" : "pw 8/4/2020 00:30" } } diff --git a/packages/Algernon.package/ALGCore.class/class/close.st b/packages/Algernon.package/ALGCore.class/class/close.st index 6889a367..3ec74800 100644 --- a/packages/Algernon.package/ALGCore.class/class/close.st +++ b/packages/Algernon.package/ALGCore.class/class/close.st @@ -1,5 +1,4 @@ singleton close - self currentInstance ifNotNil: [self currentInstance deactivate] - \ No newline at end of file + self currentInstance ifNotNil: [self currentInstance deactivate] \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/googleAPIKey..st b/packages/Algernon.package/ALGCore.class/class/googleAPIKey..st new file mode 100644 index 00000000..d235d7c3 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/googleAPIKey..st @@ -0,0 +1,4 @@ +accessing +googleAPIKey: aString + + GoogleAPIKey := aString \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/googleAPIKey.st b/packages/Algernon.package/ALGCore.class/class/googleAPIKey.st new file mode 100644 index 00000000..3245f273 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/googleAPIKey.st @@ -0,0 +1,4 @@ +accessing +googleAPIKey + + ^ GoogleAPIKey ifNil: [GoogleAPIKey := ''] \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/googleEngineId..st b/packages/Algernon.package/ALGCore.class/class/googleEngineId..st new file mode 100644 index 00000000..ae6132af --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/googleEngineId..st @@ -0,0 +1,4 @@ +accessing +googleEngineId: aString + + GoogleEngineId := aString \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/googleEngineId.st b/packages/Algernon.package/ALGCore.class/class/googleEngineId.st new file mode 100644 index 00000000..53293329 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/googleEngineId.st @@ -0,0 +1,4 @@ +accessing +googleEngineId + + ^ GoogleEngineId ifNil: [GoogleEngineId := ''] \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/initializeGlobalKeyBindings.st b/packages/Algernon.package/ALGCore.class/class/initializeGlobalKeyBindings.st index 12980f1b..27cddb61 100644 --- a/packages/Algernon.package/ALGCore.class/class/initializeGlobalKeyBindings.st +++ b/packages/Algernon.package/ALGCore.class/class/initializeGlobalKeyBindings.st @@ -1,10 +1,11 @@ initialization initializeGlobalKeyBindings - + KeyBindings := Dictionary newFrom: { '' -> [:anEvent :morph | morph selectNext]. '' -> [:anEvent :morph | morph selectPrevious]. - '' -> [:anEvent :morph | morph showChildListOrDoAction: anEvent]. + '' -> [:anEvent :morph | morph showChildListOrDoAction: anEvent]. '' -> [:anEvent :morph | morph showParentList]. '' -> [:anEvent :morph | morph deactivate: anEvent hand]. - '' -> [:anEvent :morph | morph doActionOnSelectedEvent:anEvent] } \ No newline at end of file + '' -> [:anEvent :morph | morph doActionOnSelectedEvent: anEvent]. + '' -> [:anEvent :morph | morph clearSearchBar: anEvent] } \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey..st b/packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey..st new file mode 100644 index 00000000..f6547f77 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey..st @@ -0,0 +1,5 @@ +preferences +setGoogleAPIKey: aString + + self googleAPIKey: aString. + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey.st b/packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey.st new file mode 100644 index 00000000..65998f5e --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey.st @@ -0,0 +1,10 @@ +preferences +setGoogleAPIKey + + + ^ self googleAPIKey + + \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/setGoogleEngineId..st b/packages/Algernon.package/ALGCore.class/class/setGoogleEngineId..st new file mode 100644 index 00000000..f3ae6a87 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/setGoogleEngineId..st @@ -0,0 +1,5 @@ +preferences +setGoogleEngineId: aString + + self googleEngineId: aString. + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/class/setGoogleEngineId.st b/packages/Algernon.package/ALGCore.class/class/setGoogleEngineId.st new file mode 100644 index 00000000..debee1c4 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/class/setGoogleEngineId.st @@ -0,0 +1,10 @@ +preferences +setGoogleEngineId + + + ^ self googleEngineId + + \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/activate..st b/packages/Algernon.package/ALGCore.class/instance/activate..st index 41138740..1b9781e1 100644 --- a/packages/Algernon.package/ALGCore.class/instance/activate..st +++ b/packages/Algernon.package/ALGCore.class/instance/activate..st @@ -1,5 +1,6 @@ visibility activate: hand + self active ifTrue: [^ self]. self active: true; reset; @@ -12,4 +13,3 @@ activate: hand startStepping. self textField contents: self lastInputString; selectAll - diff --git a/packages/Algernon.package/ALGCore.class/instance/clearSearchBar..st b/packages/Algernon.package/ALGCore.class/instance/clearSearchBar..st new file mode 100644 index 00000000..15a7f0cc --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/clearSearchBar..st @@ -0,0 +1,8 @@ +events-processing +clearSearchBar: event + + self active + ifFalse: [ ^ false]. + self query: ''. + self updateItemList + \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/deactivate..st b/packages/Algernon.package/ALGCore.class/instance/deactivate..st index 98021ac3..5071ea1a 100644 --- a/packages/Algernon.package/ALGCore.class/instance/deactivate..st +++ b/packages/Algernon.package/ALGCore.class/instance/deactivate..st @@ -1,5 +1,6 @@ visibility deactivate: hand + self active ifFalse: [^ self]. self lastInputString: self topmostQuery. self active: false; @@ -7,4 +8,5 @@ deactivate: hand stopStepping; hideMorphs. hand ifNotNil: [self dropFocus: hand]. - ALGInstallation instance cleanupIfNewDay. \ No newline at end of file + ALGInstallation instance cleanupIfNewDay. + self resetStatusMessage \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/delete.st b/packages/Algernon.package/ALGCore.class/instance/delete.st index 12d3e29e..351a6c73 100644 --- a/packages/Algernon.package/ALGCore.class/instance/delete.st +++ b/packages/Algernon.package/ALGCore.class/instance/delete.st @@ -1,10 +1,12 @@ system delete + super delete. self unregisterFromSystem. self background abandon. self breadcrumbs abandon. self textField cleanup. self itemProvider - ifNotNil: [ self itemProvider cleanUp. ]. - self itemList abandon. \ No newline at end of file + ifNotNil: [ self itemProvider cleanUp ]. + self itemList + ifNotNil: [ self itemList abandon ] \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/grabFocus..st b/packages/Algernon.package/ALGCore.class/instance/grabFocus..st index 29baa2ea..910989f6 100644 --- a/packages/Algernon.package/ALGCore.class/instance/grabFocus..st +++ b/packages/Algernon.package/ALGCore.class/instance/grabFocus..st @@ -1,4 +1,5 @@ event handling grabFocus: hand + hand - newKeyboardFocus: self textField. \ No newline at end of file + newKeyboardFocus: self textField \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/resetStatusMessage.st b/packages/Algernon.package/ALGCore.class/instance/resetStatusMessage.st new file mode 100644 index 00000000..8b4852a4 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/resetStatusMessage.st @@ -0,0 +1,4 @@ +accessing +resetStatusMessage + + self statusMessage: '' \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/showChildList.st b/packages/Algernon.package/ALGCore.class/instance/showChildList.st index da74b31d..cf8347be 100644 --- a/packages/Algernon.package/ALGCore.class/instance/showChildList.st +++ b/packages/Algernon.package/ALGCore.class/instance/showChildList.st @@ -1,5 +1,7 @@ updating showChildList + + self resetStatusMessage. (self currentItem hasChildren) ifFalse: [ ^ self ]. self breadcrumbs showNavigateBackIcon. self breadcrumbs push: self currentItem. @@ -8,4 +10,5 @@ showChildList self itemProvider searchLevel: self searchStack size; parentItem: self currentItem. self textField clear. + self currentItem updateChildren. self updateItemList \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/showParentList.st b/packages/Algernon.package/ALGCore.class/instance/showParentList.st index 4ad1d746..cbd5cc51 100644 --- a/packages/Algernon.package/ALGCore.class/instance/showParentList.st +++ b/packages/Algernon.package/ALGCore.class/instance/showParentList.st @@ -1,5 +1,7 @@ updating showParentList + + self resetStatusMessage. self searchStack isEmpty ifTrue: [ ^ self ]. self searchStack size = 1 ifTrue: [ self breadcrumbs hideNavigateBackIcon ]. self breadcrumbs pop. diff --git a/packages/Algernon.package/ALGCore.class/instance/statusMessage..st b/packages/Algernon.package/ALGCore.class/instance/statusMessage..st new file mode 100644 index 00000000..f7dd6963 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/statusMessage..st @@ -0,0 +1,4 @@ +accessing +statusMessage: aString + + statusMessage := aString \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/statusMessage.st b/packages/Algernon.package/ALGCore.class/instance/statusMessage.st new file mode 100644 index 00000000..2234116d --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/statusMessage.st @@ -0,0 +1,4 @@ +accessing +statusMessage + + ^ statusMessage ifNil: [statusMessage := ''] \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/updateStatusMessage..st b/packages/Algernon.package/ALGCore.class/instance/updateStatusMessage..st new file mode 100644 index 00000000..7a82b3c6 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/updateStatusMessage..st @@ -0,0 +1,5 @@ +updating +updateStatusMessage: aString + + self statusMessage: aString. + self itemList createStatusMessage \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/webClient..st b/packages/Algernon.package/ALGCore.class/instance/webClient..st new file mode 100644 index 00000000..a6923508 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/webClient..st @@ -0,0 +1,4 @@ +accessing +webClient: aALGWebClient + + webClient := aALGWebClient \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/instance/webClient.st b/packages/Algernon.package/ALGCore.class/instance/webClient.st new file mode 100644 index 00000000..e8f0b387 --- /dev/null +++ b/packages/Algernon.package/ALGCore.class/instance/webClient.st @@ -0,0 +1,4 @@ +accessing +webClient + + ^ webClient ifNil: [webClient := ALGWebClient] \ No newline at end of file diff --git a/packages/Algernon.package/ALGCore.class/methodProperties.json b/packages/Algernon.package/ALGCore.class/methodProperties.json index eae094d3..ee65e9dc 100644 --- a/packages/Algernon.package/ALGCore.class/methodProperties.json +++ b/packages/Algernon.package/ALGCore.class/methodProperties.json @@ -8,7 +8,7 @@ "activationStringDoubleclick" : "NL 6/16/2021 12:33", "activationStringDoubleclick:" : "NL 6/16/2021 12:33", "cleanup" : "mt 10/20/2015 14:26:27", - "close" : "J.J. 7/30/2015 21:53", + "close" : "YD 6/22/2022 14:45", "currentInstance" : "mt 10/20/2015 14:26:33", "currentInstance:" : "jRo 7/2/2020 18:05", "defaultActivationStrings" : "NM 6/30/2021 14:46", @@ -22,10 +22,14 @@ "enabledMessage" : "lm 5/12/2021 13:29", "executeOnTab" : "b 6/21/2021 12:37", "executeOnTab:" : "b 6/21/2021 12:25", + "googleAPIKey" : "YD 6/1/2022 10:40", + "googleAPIKey:" : "YD 6/1/2022 10:36", + "googleEngineId" : "YD 6/1/2022 10:46", + "googleEngineId:" : "YD 6/1/2022 10:47", "initializeActivationString" : "fsa 6/20/2021 14:10", "initializeActivationStringForPlatform:" : "fsa 6/26/2021 14:17", "initializeAlgernon" : "mt 10/20/2015 14:32:03", - "initializeGlobalKeyBindings" : "b 6/21/2021 11:44", + "initializeGlobalKeyBindings" : "fs 5/12/2022 18:41", "keyBindings" : "J.J. 7/31/2015 20:31", "maxHalfClickDeviation" : "b 6/16/2021 01:47", "maximumPerCategory" : "OH 5/12/2021 22:16", @@ -35,6 +39,10 @@ "open" : "jRo 8/5/2020 15:17", "quickAccessModifier" : "NM 6/7/2021 21:21", "quickAccessModifier:" : "NL 6/7/2021 19:33", + "setGoogleAPIKey" : "PureBehaviorTest 8/5/2022 13:05", + "setGoogleAPIKey:" : "PureBehaviorTest 8/5/2022 13:06", + "setGoogleEngineId" : "PureBehaviorTest 8/5/2022 13:06", + "setGoogleEngineId:" : "PureBehaviorTest 8/5/2022 13:06", "setKeyboardBinding" : "jRo 8/5/2020 15:56", "setKeyboardBinding:" : "jRo 8/5/2020 15:55", "setKeyboardBindingDoubleclick" : "b 6/16/2021 10:29", @@ -47,7 +55,7 @@ "unknownPlatformMessage" : "fsa 6/20/2021 13:48" }, "instance" : { "activate" : "beb 6/29/2020 09:17", - "activate:" : "jRo 8/1/2020 12:58", + "activate:" : "PureBehaviorTest 8/5/2022 12:43", "active" : "topa 3/24/2015 14:07", "active:" : "J.J. 7/27/2015 20:20", "background" : "J.J. 7/27/2015 20:45", @@ -57,16 +65,17 @@ "breadcrumbs" : "J.J. 7/16/2015 22:51", "breadcrumbs:" : "J.J. 7/27/2015 20:20", "checkWorldBounds" : "rk 6/29/2020 01:09", + "clearSearchBar:" : "PureBehaviorTest 7/30/2022 13:19", "currentItem" : "J.J. 7/30/2015 20:25", - "deactivate" : "topa 3/24/2015 14:11", - "deactivate:" : "jRo 8/5/2020 15:10", - "delete" : "NM 6/1/2021 18:56", + "deactivate" : "YD 6/22/2022 14:51", + "deactivate:" : "PureBehaviorTest 8/5/2022 12:43", + "delete" : "PureBehaviorTest 8/5/2022 12:44", "doActionOnSelectedEvent:" : "jRo 8/1/2020 19:32", "dropFocus:" : "jRo 8/6/2020 11:13", "filteringThreshold" : "DS 5/21/2017 16:54", "firstOnSearchStack" : "jRo 6/14/2020 18:21", "firstStep:" : "DS 5/21/2017 16:43", - "grabFocus:" : "b 6/2/2021 00:59", + "grabFocus:" : "fs 5/12/2022 18:58", "handleActivationKeyEvent:" : "NM 6/30/2021 14:43", "handleAsQuickAccess:" : "NM 6/7/2021 21:22", "handleListenEvent:" : "NM 6/30/2021 14:45", @@ -111,15 +120,18 @@ "registeredWithSystem" : "LK 7/14/2016 15:04", "reset" : "beb 6/11/2020 15:13", "resetFilteringThreshold" : "DS 5/21/2017 16:55", + "resetStatusMessage" : "YD 8/5/2022 14:02", "searchStack" : "J.J. 7/11/2015 21:40", "searchStack:" : "J.J. 7/11/2015 21:40", "selectNext" : "J.J. 7/27/2015 21:41", "selectPrevious" : "J.J. 7/27/2015 21:42", "shouldHandleKeyboard:" : "NM 6/30/2021 14:43", - "showChildList" : "NL 5/31/2021 11:47", + "showChildList" : "PureBehaviorTest 8/5/2022 12:44", "showChildListOrDoAction:" : "b 6/21/2021 12:17", "showMorphs" : "fw 7/30/2015 15:39", - "showParentList" : "NL 5/31/2021 11:48", + "showParentList" : "PureBehaviorTest 8/5/2022 12:35", + "statusMessage" : "PureBehaviorTest 8/5/2022 13:13", + "statusMessage:" : "YD 8/5/2022 14:03", "step" : "DS 6/2/2017 15:01", "stepTime" : "DS 5/21/2017 16:53", "systemChanged:" : "jRo 8/5/2020 16:47", @@ -131,4 +143,7 @@ "unsubscribeFromNotifiers" : "beb 7/15/2020 16:15", "updateItemList" : "J.J. 7/27/2015 21:43", "updateItemListWith:" : "jRo 7/13/2020 16:58", - "wasChanged:" : "beb 7/15/2020 16:15" } } + "updateStatusMessage:" : "YD 8/5/2022 14:04", + "wasChanged:" : "beb 7/15/2020 16:15", + "webClient" : "PureBehaviorTest 8/5/2022 13:13", + "webClient:" : "YD 8/5/2022 14:04" } } diff --git a/packages/Algernon.package/ALGCore.class/properties.json b/packages/Algernon.package/ALGCore.class/properties.json index f02cf1f2..9cad98cc 100644 --- a/packages/Algernon.package/ALGCore.class/properties.json +++ b/packages/Algernon.package/ALGCore.class/properties.json @@ -7,6 +7,8 @@ "ActivationStringDoubleClick", "CurrentInstance", "ExecuteOnTab", + "GoogleAPIKey", + "GoogleEngineId", "KeyBindings", "MaxResultsPerCategory", "MaxTopResults", @@ -24,7 +26,9 @@ "textField", "firstStep", "lastInputString", - "lastActivationKeyTimestamp" ], + "lastActivationKeyTimestamp", + "statusMessage", + "webClient" ], "name" : "ALGCore", "pools" : [ ], diff --git a/packages/Algernon.package/ALGDockingBarType.class/instance/determineActionName.st b/packages/Algernon.package/ALGDockingBarType.class/instance/determineActionName.st index c174e9e3..30434d61 100644 --- a/packages/Algernon.package/ALGDockingBarType.class/instance/determineActionName.st +++ b/packages/Algernon.package/ALGDockingBarType.class/instance/determineActionName.st @@ -3,7 +3,7 @@ determineActionName self typeObject hasEntries ifTrue: [ ^ 'entries' ]. self class actionNameSelectors - detect: [ :selectorString | self typeObject selector startsWith: selectorString] + detect: [ :selectorString | self typeObject selector beginsWith: selectorString] ifFound: [ :selectorString | ^ selectorString ]. self class menuActionMapping at: self typeObject category diff --git a/packages/Algernon.package/ALGDockingBarType.class/methodProperties.json b/packages/Algernon.package/ALGDockingBarType.class/methodProperties.json index 92718936..2ec96e7e 100644 --- a/packages/Algernon.package/ALGDockingBarType.class/methodProperties.json +++ b/packages/Algernon.package/ALGDockingBarType.class/methodProperties.json @@ -14,7 +14,7 @@ "createAction" : "lm 7/6/2021 23:28", "createActionNamed:" : "NL 6/4/2021 16:30", "createListOfAlgeractions" : "NL 6/4/2021 16:37", - "determineActionName" : "NL 7/12/2021 23:38", + "determineActionName" : "YD 5/16/2022 22:04", "hasChildren" : "NL 7/5/2021 19:42", "name" : "NL 7/6/2021 12:17", "openMenuItem" : "NL 7/6/2021 12:15", diff --git a/packages/Algernon.package/ALGExpressionType.class/class/algertemList..st b/packages/Algernon.package/ALGExpressionType.class/class/algertemList..st index 2900989a..05d6ec99 100644 --- a/packages/Algernon.package/ALGExpressionType.class/class/algertemList..st +++ b/packages/Algernon.package/ALGExpressionType.class/class/algertemList..st @@ -1,4 +1,5 @@ algertem lists algertemList: algerInstance + ^ OrderedCollection with: (ALGExpressionItem withAlgertype: (self with: algerInstance)) diff --git a/packages/Algernon.package/ALGExpressionType.class/class/equationPattern.st b/packages/Algernon.package/ALGExpressionType.class/class/equationPattern.st new file mode 100644 index 00000000..70fce554 --- /dev/null +++ b/packages/Algernon.package/ALGExpressionType.class/class/equationPattern.st @@ -0,0 +1,4 @@ +icon +equationPattern + + ^ '( *[+\-]? *\d+)( *[+\-*\/] *\d+)* *' \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/createListOfAlgeractions.st b/packages/Algernon.package/ALGExpressionType.class/instance/createListOfAlgeractions.st index 369b3788..fc6d6ffa 100644 --- a/packages/Algernon.package/ALGExpressionType.class/instance/createListOfAlgeractions.st +++ b/packages/Algernon.package/ALGExpressionType.class/instance/createListOfAlgeractions.st @@ -1,7 +1,7 @@ actions createListOfAlgeractions - + ^ self createSortedListFrom: { - self createActionDo. - self createActionPrint. - self createActionInspect } \ No newline at end of file + self createActionDo. + self createActionPrint. + self createActionInspect } \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/doit.st b/packages/Algernon.package/ALGExpressionType.class/instance/doit.st index 64f4704b..639f690e 100644 --- a/packages/Algernon.package/ALGExpressionType.class/instance/doit.st +++ b/packages/Algernon.package/ALGExpressionType.class/instance/doit.st @@ -1,6 +1,8 @@ actions doit + | command | + command := self getCommand. command ifEmpty: [ ^ true ]. ^ Compiler evaluate: command for: self logged: false \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/getCommand.st b/packages/Algernon.package/ALGExpressionType.class/instance/getCommand.st index 63949c07..364b0929 100644 --- a/packages/Algernon.package/ALGExpressionType.class/instance/getCommand.st +++ b/packages/Algernon.package/ALGExpressionType.class/instance/getCommand.st @@ -1,11 +1,13 @@ actions getCommand + | textFieldContents startIndex | + textFieldContents := self typeObject topmostQuery. startIndex := 1. - (textFieldContents startsWith: '=') + (textFieldContents beginsWith: '=') ifTrue: [ startIndex := 2 ]. - (textFieldContents startsWith: 'do') + (textFieldContents beginsWith: 'do') ifTrue: [ startIndex := 3 ]. ^ textFieldContents copyFrom: startIndex to: textFieldContents size \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/getDisplayedResult.st b/packages/Algernon.package/ALGExpressionType.class/instance/getDisplayedResult.st new file mode 100644 index 00000000..36352496 --- /dev/null +++ b/packages/Algernon.package/ALGExpressionType.class/instance/getDisplayedResult.st @@ -0,0 +1,12 @@ +accessing +getDisplayedResult + + | command equationsResult | + + command := self getCommand asString. + + self isEquation + ifTrue: [equationsResult := [Compiler evaluate: command for: self logged: false] + on: ZeroDivide do: [^'Don´t divide by zero' ]. + ^ equationsResult asString] + ifFalse: [^ self standardDisplayedName] \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/isEquation.st b/packages/Algernon.package/ALGExpressionType.class/instance/isEquation.st new file mode 100644 index 00000000..3b63f0f5 --- /dev/null +++ b/packages/Algernon.package/ALGExpressionType.class/instance/isEquation.st @@ -0,0 +1,7 @@ +accessing +isEquation + + |command| + + command := self getCommand asString. + ^ command matchesRegex: ALGExpressionType equationPattern \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/isRelevantForAllStrings.st b/packages/Algernon.package/ALGExpressionType.class/instance/isRelevantForAllStrings.st index 3b1735bc..78bb4508 100644 --- a/packages/Algernon.package/ALGExpressionType.class/instance/isRelevantForAllStrings.st +++ b/packages/Algernon.package/ALGExpressionType.class/instance/isRelevantForAllStrings.st @@ -1,3 +1,4 @@ -accessing +relevance isRelevantForAllStrings + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/name.st b/packages/Algernon.package/ALGExpressionType.class/instance/name.st index 57484560..59e00be5 100644 --- a/packages/Algernon.package/ALGExpressionType.class/instance/name.st +++ b/packages/Algernon.package/ALGExpressionType.class/instance/name.st @@ -1,4 +1,4 @@ accessing name - ^ '' \ No newline at end of file + ^ self getDisplayedResult \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/instance/standardDisplayedName.st b/packages/Algernon.package/ALGExpressionType.class/instance/standardDisplayedName.st new file mode 100644 index 00000000..a74a8b08 --- /dev/null +++ b/packages/Algernon.package/ALGExpressionType.class/instance/standardDisplayedName.st @@ -0,0 +1,4 @@ +accessing +standardDisplayedName + + ^ '' \ No newline at end of file diff --git a/packages/Algernon.package/ALGExpressionType.class/methodProperties.json b/packages/Algernon.package/ALGExpressionType.class/methodProperties.json index 152dd39f..4edb7dc1 100644 --- a/packages/Algernon.package/ALGExpressionType.class/methodProperties.json +++ b/packages/Algernon.package/ALGExpressionType.class/methodProperties.json @@ -1,17 +1,21 @@ { "class" : { - "algertemList:" : "rk 8/3/2020 16:45", + "algertemList:" : "ms 6/9/2022 08:54", + "equationPattern" : "ms 6/15/2022 13:41", "icon" : "NL 6/4/2021 14:18" }, "instance" : { "createActionDo" : "J.J. 7/30/2015 17:58", "createActionInspect" : "J.J. 7/30/2015 17:58", "createActionPrint" : "J.J. 7/30/2015 17:58", - "createListOfAlgeractions" : "J.J. 7/30/2015 22:04", - "doit" : "Jro 6/17/2020 13:19", - "getCommand" : "OH 7/29/2021 19:47", + "createListOfAlgeractions" : "ms 6/8/2022 20:35", + "doit" : "ms 6/3/2022 12:09", + "getCommand" : "ms 6/9/2022 09:48", + "getDisplayedResult" : "ga 7/29/2022 11:03", "hasChildren" : "fw 7/30/2015 14:15", "inspectit" : "J.J. 7/30/2015 17:55", - "isRelevantForAllStrings" : "beb 6/25/2020 10:11", - "name" : "J.J. 7/30/2015 17:54", + "isEquation" : "PureBehaviorTest 7/31/2022 13:47", + "isRelevantForAllStrings" : "ms 6/3/2022 12:09", + "name" : "ms 6/3/2022 11:59", "printit" : "jRo 5/27/2020 16:29", + "standardDisplayedName" : "ms 6/3/2022 11:54", "typeName" : "J.J. 7/30/2015 17:54" } } diff --git a/packages/Algernon.package/ALGGitBranchType.class/README.md b/packages/Algernon.package/ALGGitBranchType.class/README.md new file mode 100644 index 00000000..a1264fad --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/README.md @@ -0,0 +1,4 @@ +An ALGGitBranchType represents a branch of of a git project. +The branches of a given git project will be visible as children of the corresponding ALGGitProjectType. + +This is not available if the SquitBrowser is not installed. \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/algertemList.st b/packages/Algernon.package/ALGGitBranchType.class/class/algertemList.st new file mode 100644 index 00000000..f0e2e5cb --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/algertemList.st @@ -0,0 +1,10 @@ +algertem lists +algertemList + + | items | + + (Smalltalk classNamed: #SquitBrowser) ifNil: + [^ {}]. + items := OrderedCollection new. + SquotWorkingCopy registered do: [ :each | items addAll: (self algertemListWith: each) ]. + ^ items \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/algertemListAsChildrenWith..st b/packages/Algernon.package/ALGGitBranchType.class/class/algertemListAsChildrenWith..st new file mode 100644 index 00000000..1df2331a --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/algertemListAsChildrenWith..st @@ -0,0 +1,9 @@ +algertem lists +algertemListAsChildrenWith: aProject + + | items | + + items := OrderedCollection new. + self subclasses do: [ :each | items addAll: (each getItemsFor: aProject asChildren: true) ]. + + ^ items \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/algertemListWith..st b/packages/Algernon.package/ALGGitBranchType.class/class/algertemListWith..st new file mode 100644 index 00000000..95d33309 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/algertemListWith..st @@ -0,0 +1,9 @@ +algertem lists +algertemListWith: aProject + + | items | + + items := OrderedCollection new. + self subclasses do: [ :each | items addAll: (each getItemsFor: aProject asChildren: false) ]. + + ^ items \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/getHistoriansFor..st b/packages/Algernon.package/ALGGitBranchType.class/class/getHistoriansFor..st new file mode 100644 index 00000000..f7c718dc --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/getHistoriansFor..st @@ -0,0 +1,4 @@ +algertem lists +getHistoriansFor: aSquotWorkingCopy + + self subclassResponsibility \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/getItemsFor..st b/packages/Algernon.package/ALGGitBranchType.class/class/getItemsFor..st new file mode 100644 index 00000000..4d813652 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/getItemsFor..st @@ -0,0 +1,5 @@ +algertem lists +getItemsFor: aProject + + ^ (self getHistoriansFor: aProject) + collect: [ :each | ALGItem withAlgertype: (self with: each project: aProject) ] \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/getItemsFor.asChildren..st b/packages/Algernon.package/ALGGitBranchType.class/class/getItemsFor.asChildren..st new file mode 100644 index 00000000..fde1ae6b --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/getItemsFor.asChildren..st @@ -0,0 +1,5 @@ +algertem lists +getItemsFor: aProject asChildren: aBoolean + + ^ (self getHistoriansFor: aProject) + collect: [ :each | ALGItem withAlgertype: (self with: each project: aProject asChild: aBoolean) ] \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/switchActionSelector.st b/packages/Algernon.package/ALGGitBranchType.class/class/switchActionSelector.st new file mode 100644 index 00000000..a8311586 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/switchActionSelector.st @@ -0,0 +1,4 @@ +constants +switchActionSelector + + self subclassResponsibility \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/with.project..st b/packages/Algernon.package/ALGGitBranchType.class/class/with.project..st new file mode 100644 index 00000000..bd263242 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/with.project..st @@ -0,0 +1,6 @@ +instance creation +with: aHistorian project: aSquotWorkingCopy + + ^ (self with: aHistorian) + project: aSquotWorkingCopy; + yourself \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/class/with.project.asChild..st b/packages/Algernon.package/ALGGitBranchType.class/class/with.project.asChild..st new file mode 100644 index 00000000..df26b046 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/class/with.project.asChild..st @@ -0,0 +1,7 @@ +instance creation +with: aHistorian project: aSquotWorkingCopy asChild: aBoolean + + ^ (self with: aHistorian) + project: aSquotWorkingCopy; + isChild: aBoolean; + yourself \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/createActionOpen.st b/packages/Algernon.package/ALGGitBranchType.class/instance/createActionOpen.st new file mode 100644 index 00000000..1a516cf0 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/createActionOpen.st @@ -0,0 +1,9 @@ +actions +createActionOpen + + ^ ALGAction + withName: 'open' + rank: 2 + target: ToolBuilder + selector: #open: + args: (OrderedCollection with: self getGitBrowser) \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/createActionSwitch.st b/packages/Algernon.package/ALGGitBranchType.class/instance/createActionSwitch.st new file mode 100644 index 00000000..9b8b4ad8 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/createActionSwitch.st @@ -0,0 +1,9 @@ +actions +createActionSwitch + + ^ ALGAction + withName: 'switch' + rank: 3 + target: (self getGitBrowser) + selector: (self class switchActionSelector) + args: #() \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/createListOfAlgeractions.st b/packages/Algernon.package/ALGGitBranchType.class/instance/createListOfAlgeractions.st new file mode 100644 index 00000000..dbd5dbb0 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/createListOfAlgeractions.st @@ -0,0 +1,6 @@ +actions +createListOfAlgeractions + + ^ self createSortedListFrom: { + self createActionOpen. + self createActionSwitch } \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/getGitBrowser.st b/packages/Algernon.package/ALGGitBranchType.class/instance/getGitBrowser.st new file mode 100644 index 00000000..b659bf21 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/getGitBrowser.st @@ -0,0 +1,13 @@ +actions +getGitBrowser + + | squitBrowser | + + ALGSquitBrowser ifNotNil: [^ ALGSquitBrowser]. + + squitBrowser := SquitBrowser new. + + ^ squitBrowser + projectIndex: (squitBrowser projectList indexOf: self project); + branchSelection: (self typeObject shortName); + yourself \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/getName.st b/packages/Algernon.package/ALGGitBranchType.class/instance/getName.st new file mode 100644 index 00000000..19d1a885 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/getName.st @@ -0,0 +1,9 @@ +initialize +getName + + | tempName | + + tempName := self typeObject shortName. + (self isChild) ifTrue: + [^ tempName]. + ^ tempName, ' (', self project name, ')' \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/hasChildren.st b/packages/Algernon.package/ALGGitBranchType.class/instance/hasChildren.st new file mode 100644 index 00000000..a7268ab4 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/hasChildren.st @@ -0,0 +1,4 @@ +children +hasChildren + + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/isChild..st b/packages/Algernon.package/ALGGitBranchType.class/instance/isChild..st new file mode 100644 index 00000000..cd8d5b56 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/isChild..st @@ -0,0 +1,4 @@ +accessing +isChild: aBoolean + + isChild := aBoolean \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/isChild.st b/packages/Algernon.package/ALGGitBranchType.class/instance/isChild.st new file mode 100644 index 00000000..5f6e7d24 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/isChild.st @@ -0,0 +1,4 @@ +accessing +isChild + + ^ isChild \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/name..st b/packages/Algernon.package/ALGGitBranchType.class/instance/name..st new file mode 100644 index 00000000..44185269 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/name..st @@ -0,0 +1,4 @@ +accessing +name: aString + + name := aString \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/name.st b/packages/Algernon.package/ALGGitBranchType.class/instance/name.st new file mode 100644 index 00000000..b9fa0854 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ name ifNil: [name := self getName] \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/project..st b/packages/Algernon.package/ALGGitBranchType.class/instance/project..st new file mode 100644 index 00000000..adb93847 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/project..st @@ -0,0 +1,4 @@ +accessing +project: aSquotWorkingCopy + + project := aSquotWorkingCopy \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/project.st b/packages/Algernon.package/ALGGitBranchType.class/instance/project.st new file mode 100644 index 00000000..5909b7f8 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/project.st @@ -0,0 +1,4 @@ +accessing +project + + ^ project \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/instance/typeName.st b/packages/Algernon.package/ALGGitBranchType.class/instance/typeName.st new file mode 100644 index 00000000..9470809f --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/instance/typeName.st @@ -0,0 +1,4 @@ +accessing +typeName + + ^ 'Git Branch' \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitBranchType.class/methodProperties.json b/packages/Algernon.package/ALGGitBranchType.class/methodProperties.json new file mode 100644 index 00000000..5b0bbf8b --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/methodProperties.json @@ -0,0 +1,25 @@ +{ + "class" : { + "algertemList" : "ga 7/29/2022 11:05", + "algertemListAsChildrenWith:" : "LH 7/11/2022 15:03", + "algertemListWith:" : "LH 7/11/2022 15:02", + "getHistoriansFor:" : "LH 7/10/2022 02:57", + "getItemsFor:" : "LH 7/10/2022 17:37", + "getItemsFor:asChildren:" : "LH 7/11/2022 15:02", + "switchActionSelector" : "LH 7/10/2022 03:03", + "with:project:" : "LH 7/10/2022 02:04", + "with:project:asChild:" : "LH 7/11/2022 14:55" }, + "instance" : { + "createActionOpen" : "LH 7/10/2022 02:17", + "createActionSwitch" : "LH 7/10/2022 03:02", + "createListOfAlgeractions" : "LH 7/10/2022 02:21", + "getGitBrowser" : "LH 7/10/2022 02:14", + "getName" : "ga 7/29/2022 11:05", + "hasChildren" : "LH 7/11/2022 13:13", + "isChild" : "LH 7/11/2022 14:55", + "isChild:" : "LH 7/11/2022 14:55", + "name" : "LH 7/11/2022 14:59", + "name:" : "LH 7/11/2022 14:48", + "project" : "LH 7/11/2022 14:55", + "project:" : "LH 7/11/2022 14:56", + "typeName" : "LH 7/10/2022 00:28" } } diff --git a/packages/Algernon.package/ALGGitBranchType.class/properties.json b/packages/Algernon.package/ALGGitBranchType.class/properties.json new file mode 100644 index 00000000..461de509 --- /dev/null +++ b/packages/Algernon.package/ALGGitBranchType.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "LH 8/4/2022 18:31", + "instvars" : [ + "project", + "isChild", + "name" ], + "name" : "ALGGitBranchType", + "pools" : [ + ], + "super" : "ALGType", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/README.md b/packages/Algernon.package/ALGGitLocalBranchType.class/README.md new file mode 100644 index 00000000..e588dd4b --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/README.md @@ -0,0 +1 @@ +An ALGGitLocalBranchType represents a local git branch. diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/class/getHistoriansFor..st b/packages/Algernon.package/ALGGitLocalBranchType.class/class/getHistoriansFor..st new file mode 100644 index 00000000..140fe113 --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/class/getHistoriansFor..st @@ -0,0 +1,4 @@ +algertem lists +getHistoriansFor: aSquotWorkingCopy + + ^ aSquotWorkingCopy repository historians \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/class/icon.st b/packages/Algernon.package/ALGGitLocalBranchType.class/class/icon.st new file mode 100644 index 00000000..cc782592 --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/class/icon.st @@ -0,0 +1,4 @@ +icon +icon + + ^ #LocalBranch \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/class/switchActionSelector.st b/packages/Algernon.package/ALGGitLocalBranchType.class/class/switchActionSelector.st new file mode 100644 index 00000000..51a3873b --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/class/switchActionSelector.st @@ -0,0 +1,4 @@ +constants +switchActionSelector + + ^ #actionBranchSwitch \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/instance/rankBonus.st b/packages/Algernon.package/ALGGitLocalBranchType.class/instance/rankBonus.st new file mode 100644 index 00000000..a972c5c1 --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/instance/rankBonus.st @@ -0,0 +1,4 @@ +relevance +rankBonus + + ^ 1 \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/methodProperties.json b/packages/Algernon.package/ALGGitLocalBranchType.class/methodProperties.json new file mode 100644 index 00000000..4e26a4fb --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/methodProperties.json @@ -0,0 +1,7 @@ +{ + "class" : { + "getHistoriansFor:" : "LH 7/10/2022 02:59", + "icon" : "LH 7/13/2022 17:56", + "switchActionSelector" : "LH 7/10/2022 03:03" }, + "instance" : { + "rankBonus" : "LH 7/10/2022 18:52" } } diff --git a/packages/Algernon.package/ALGGitLocalBranchType.class/properties.json b/packages/Algernon.package/ALGGitLocalBranchType.class/properties.json new file mode 100644 index 00000000..bf9a33e0 --- /dev/null +++ b/packages/Algernon.package/ALGGitLocalBranchType.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "LH 8/4/2022 18:33", + "instvars" : [ + ], + "name" : "ALGGitLocalBranchType", + "pools" : [ + ], + "super" : "ALGGitBranchType", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGGitProjectType.class/README.md b/packages/Algernon.package/ALGGitProjectType.class/README.md new file mode 100644 index 00000000..17e455d5 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/README.md @@ -0,0 +1,3 @@ +An ALGGitProjectType represents a git project in the SquitBrowser. + +This is not available if the SquitBrowser is not installed. diff --git a/packages/Algernon.package/ALGGitProjectType.class/class/algertemList.st b/packages/Algernon.package/ALGGitProjectType.class/class/algertemList.st new file mode 100644 index 00000000..c77e3d32 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/class/algertemList.st @@ -0,0 +1,8 @@ +algertem lists +algertemList + + (Smalltalk classNamed: #SquitBrowser) ifNil: + [^ {}]. + + ^ SquotWorkingCopy registered + collect: [ :each | ALGItem withAlgertype: (self with: each) ] \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/class/icon.st b/packages/Algernon.package/ALGGitProjectType.class/class/icon.st new file mode 100644 index 00000000..ac839d4c --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/class/icon.st @@ -0,0 +1,4 @@ +icon +icon + + ^ #GitProject \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/algertemChildrenList.st b/packages/Algernon.package/ALGGitProjectType.class/instance/algertemChildrenList.st new file mode 100644 index 00000000..5066ee40 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/algertemChildrenList.st @@ -0,0 +1,4 @@ +children +algertemChildrenList + + ^ ALGGitBranchType algertemListAsChildrenWith: self typeObject \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/createActionCommit.st b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionCommit.st new file mode 100644 index 00000000..ea25a597 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionCommit.st @@ -0,0 +1,11 @@ +actions +createActionCommit + + ^ ALGAction + withName: 'commit' + rank: 3 + target: (self getGitBrowser) + selector: #actionCommit + args: #() + + \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/createActionOpenInGitBrowser.st b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionOpenInGitBrowser.st new file mode 100644 index 00000000..be8560f8 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionOpenInGitBrowser.st @@ -0,0 +1,11 @@ +actions +createActionOpenInGitBrowser + + ^ ALGAction + withName: 'open' + rank: 5 + target: ToolBuilder + selector: #open: + args: (OrderedCollection with: self getGitBrowser) + + \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/createActionPull.st b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionPull.st new file mode 100644 index 00000000..a967b3db --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionPull.st @@ -0,0 +1,11 @@ +actions +createActionPull + + ^ ALGAction + withName: 'pull' + rank: 3 + target: (self getGitBrowser) + selector: #actionPull + args: #() + + \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/createActionPush.st b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionPush.st new file mode 100644 index 00000000..70fb3dac --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/createActionPush.st @@ -0,0 +1,11 @@ +actions +createActionPush + + ^ ALGAction + withName: 'push' + rank: 3 + target: (self getGitBrowser) + selector: #actionPush + args: #() + + \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/createListOfAlgeractions.st b/packages/Algernon.package/ALGGitProjectType.class/instance/createListOfAlgeractions.st new file mode 100644 index 00000000..2ae5702e --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/createListOfAlgeractions.st @@ -0,0 +1,8 @@ +actions +createListOfAlgeractions + + ^ self createSortedListFrom: { + self createActionOpenInGitBrowser. + self createActionCommit. + self createActionPush. + self createActionPull } \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/getGitBrowser.st b/packages/Algernon.package/ALGGitProjectType.class/instance/getGitBrowser.st new file mode 100644 index 00000000..e36f4e13 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/getGitBrowser.st @@ -0,0 +1,11 @@ +actions +getGitBrowser + + | squitBrowser | + + ALGSquitBrowser ifNotNil: [^ ALGSquitBrowser]. + + squitBrowser := SquitBrowser new. + squitBrowser projectIndex: (squitBrowser projectList indexOf: self typeObject). + + ^ squitBrowser \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/hasChildren.st b/packages/Algernon.package/ALGGitProjectType.class/instance/hasChildren.st new file mode 100644 index 00000000..a7268ab4 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/hasChildren.st @@ -0,0 +1,4 @@ +children +hasChildren + + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/instance/typeName.st b/packages/Algernon.package/ALGGitProjectType.class/instance/typeName.st new file mode 100644 index 00000000..b6fca91a --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/instance/typeName.st @@ -0,0 +1,4 @@ +accessing +typeName + + ^ 'Git Project' \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitProjectType.class/methodProperties.json b/packages/Algernon.package/ALGGitProjectType.class/methodProperties.json new file mode 100644 index 00000000..687af0d0 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/methodProperties.json @@ -0,0 +1,14 @@ +{ + "class" : { + "algertemList" : "LH 6/11/2022 22:08", + "icon" : "LH 5/28/2022 19:21" }, + "instance" : { + "algertemChildrenList" : "LH 7/11/2022 15:03", + "createActionCommit" : "LH 6/24/2022 14:42", + "createActionOpenInGitBrowser" : "LH 6/24/2022 14:22", + "createActionPull" : "LH 7/9/2022 20:15", + "createActionPush" : "LH 7/9/2022 20:15", + "createListOfAlgeractions" : "LH 7/9/2022 20:15", + "getGitBrowser" : "LH 7/8/2022 14:17", + "hasChildren" : "LH 5/31/2022 18:05", + "typeName" : "LH 5/28/2022 19:44" } } diff --git a/packages/Algernon.package/ALGGitProjectType.class/properties.json b/packages/Algernon.package/ALGGitProjectType.class/properties.json new file mode 100644 index 00000000..6ef0c468 --- /dev/null +++ b/packages/Algernon.package/ALGGitProjectType.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "LH 8/4/2022 18:25", + "instvars" : [ + ], + "name" : "ALGGitProjectType", + "pools" : [ + ], + "super" : "ALGType", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGGitRemoteBranchType.class/README.md b/packages/Algernon.package/ALGGitRemoteBranchType.class/README.md new file mode 100644 index 00000000..dca08f4e --- /dev/null +++ b/packages/Algernon.package/ALGGitRemoteBranchType.class/README.md @@ -0,0 +1 @@ +An ALGGitRemoteBranchType represents a remote git branch. diff --git a/packages/Algernon.package/ALGGitRemoteBranchType.class/class/getHistoriansFor..st b/packages/Algernon.package/ALGGitRemoteBranchType.class/class/getHistoriansFor..st new file mode 100644 index 00000000..71f04ab9 --- /dev/null +++ b/packages/Algernon.package/ALGGitRemoteBranchType.class/class/getHistoriansFor..st @@ -0,0 +1,6 @@ +algertem lists +getHistoriansFor: aSquotWorkingCopy + + ALGRemoteBranch ifNotNil: [^ {ALGRemoteBranch}]. + + ^ aSquotWorkingCopy repository remoteHistorians \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitRemoteBranchType.class/class/icon.st b/packages/Algernon.package/ALGGitRemoteBranchType.class/class/icon.st new file mode 100644 index 00000000..92b776ca --- /dev/null +++ b/packages/Algernon.package/ALGGitRemoteBranchType.class/class/icon.st @@ -0,0 +1,4 @@ +icon +icon + + ^ #RemoteBranch \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitRemoteBranchType.class/class/switchActionSelector.st b/packages/Algernon.package/ALGGitRemoteBranchType.class/class/switchActionSelector.st new file mode 100644 index 00000000..d383c248 --- /dev/null +++ b/packages/Algernon.package/ALGGitRemoteBranchType.class/class/switchActionSelector.st @@ -0,0 +1,4 @@ +constants +switchActionSelector + + ^ #actionBranchCreateAndSwitch \ No newline at end of file diff --git a/packages/Algernon.package/ALGGitRemoteBranchType.class/methodProperties.json b/packages/Algernon.package/ALGGitRemoteBranchType.class/methodProperties.json new file mode 100644 index 00000000..5aa9da0a --- /dev/null +++ b/packages/Algernon.package/ALGGitRemoteBranchType.class/methodProperties.json @@ -0,0 +1,7 @@ +{ + "class" : { + "getHistoriansFor:" : "LH 7/14/2022 02:30", + "icon" : "LH 7/10/2022 18:24", + "switchActionSelector" : "LH 7/10/2022 03:05" }, + "instance" : { + } } diff --git a/packages/Algernon.package/ALGGitRemoteBranchType.class/properties.json b/packages/Algernon.package/ALGGitRemoteBranchType.class/properties.json new file mode 100644 index 00000000..b3286c6a --- /dev/null +++ b/packages/Algernon.package/ALGGitRemoteBranchType.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "LH 8/4/2022 18:33", + "instvars" : [ + ], + "name" : "ALGGitRemoteBranchType", + "pools" : [ + ], + "super" : "ALGGitBranchType", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGIconFactory.class/class/initializeFileMapping.st b/packages/Algernon.package/ALGIconFactory.class/class/initializeFileMapping.st index 00746ddc..c2c2ad85 100644 --- a/packages/Algernon.package/ALGIconFactory.class/class/initializeFileMapping.st +++ b/packages/Algernon.package/ALGIconFactory.class/class/initializeFileMapping.st @@ -25,4 +25,7 @@ initializeFileMapping #Project -> self projectIcon. #Do -> self doIcon. #Squeak -> self squeakIcon. + #GitProject -> self repositoryIcon. + #LocalBranch -> self repositoryIcon. + #RemoteBranch -> self repositoryIcon } \ No newline at end of file diff --git a/packages/Algernon.package/ALGIconFactory.class/methodProperties.json b/packages/Algernon.package/ALGIconFactory.class/methodProperties.json index c2f2e935..344e2b07 100644 --- a/packages/Algernon.package/ALGIconFactory.class/methodProperties.json +++ b/packages/Algernon.package/ALGIconFactory.class/methodProperties.json @@ -13,7 +13,7 @@ "iconFor:" : "NL 6/4/2021 14:14", "iconSize" : "J.J. 7/30/2015 15:07", "iconSizeItemType" : "jRo 5/31/2020 15:16", - "initializeFileMapping" : "b 7/31/2021 12:33", + "initializeFileMapping" : "LH 7/13/2022 17:56", "methodIcon" : "fw 7/21/2015 22:02", "morphIcon" : "fw 7/21/2015 22:02", "packageIcon" : "fw 7/21/2015 22:02", diff --git a/packages/Algernon.package/ALGInputField.class/instance/highlightAttribute..st b/packages/Algernon.package/ALGInputField.class/instance/highlightAttribute..st new file mode 100644 index 00000000..8291f80e --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/highlightAttribute..st @@ -0,0 +1,3 @@ +accessing +highlightAttribute: anObject + highlightAttribute := anObject \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/highlightAttribute.st b/packages/Algernon.package/ALGInputField.class/instance/highlightAttribute.st new file mode 100644 index 00000000..16cf625e --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/highlightAttribute.st @@ -0,0 +1,3 @@ +accessing +highlightAttribute + ^ highlightAttribute \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/highlightInterval..st b/packages/Algernon.package/ALGInputField.class/instance/highlightInterval..st new file mode 100644 index 00000000..16fe2d2f --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/highlightInterval..st @@ -0,0 +1,7 @@ +highlighting +highlightInterval: anInterval + self text removeAttribute: self highlightAttribute from: 1 to: self text size. + (anInterval start > 0) + ifTrue: [self text addAttribute: self highlightAttribute from: (anInterval start) to: (anInterval stop)]. + self changed + \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/highlightKeyword.st b/packages/Algernon.package/ALGInputField.class/instance/highlightKeyword.st new file mode 100644 index 00000000..11a5e78f --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/highlightKeyword.st @@ -0,0 +1,5 @@ +highlighting +highlightKeyword + | interval | + interval := self keywordIntervalFor: self currentContent. + self highlightInterval: interval. \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/initialize.st b/packages/Algernon.package/ALGInputField.class/instance/initialize.st index 0c77e519..8ab642f0 100644 --- a/packages/Algernon.package/ALGInputField.class/instance/initialize.st +++ b/packages/Algernon.package/ALGInputField.class/instance/initialize.st @@ -4,4 +4,6 @@ initialize self beAllFont: self class defaultFont; backgroundColor: self class backgroundColor; - setProperty: #holdsSeparateDataForEachInstance toValue: true \ No newline at end of file + setProperty: #holdsSeparateDataForEachInstance toValue: true; + highlightAttribute: (TextColor color: Color orange); + initializeKeywords \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/initializeKeywords.st b/packages/Algernon.package/ALGInputField.class/instance/initializeKeywords.st new file mode 100644 index 00000000..a92825d3 --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/initializeKeywords.st @@ -0,0 +1,6 @@ +initialization +initializeKeywords + self keywords: Set new. + ALGItemFilter subclassesDo: [:subclass | + subclass keywords do: [:keyword | + self keywords addIfNotPresent: keyword]] \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/keyStroke..st b/packages/Algernon.package/ALGInputField.class/instance/keyStroke..st index 0457e034..ca744a9f 100644 --- a/packages/Algernon.package/ALGInputField.class/instance/keyStroke..st +++ b/packages/Algernon.package/ALGInputField.class/instance/keyStroke..st @@ -2,4 +2,5 @@ event handling keyStroke: event "the text field needs the focus to show a cursor, but ALGCore handles special movment keys" - self controller keyStroke: event. \ No newline at end of file + + self controller keyStroke: event \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/keywordIntervalFor..st b/packages/Algernon.package/ALGInputField.class/instance/keywordIntervalFor..st new file mode 100644 index 00000000..6d55f040 --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/keywordIntervalFor..st @@ -0,0 +1,9 @@ +highlighting +keywordIntervalFor: aString + | parts | + parts := aString subStrings: ALGItemProvider searchDelimeter. + parts isEmpty ifTrue: [^ (0 to: 0)]. + + (self keywords contains: [:each | each = parts first asLowercase]) + ifTrue: [^ (1 to: parts first size)] + ifFalse: [^ (0 to: 0)] \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/keywords..st b/packages/Algernon.package/ALGInputField.class/instance/keywords..st new file mode 100644 index 00000000..ccaddbdf --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/keywords..st @@ -0,0 +1,3 @@ +accessing +keywords: anObject + keywords := anObject \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/keywords.st b/packages/Algernon.package/ALGInputField.class/instance/keywords.st new file mode 100644 index 00000000..e77d98f5 --- /dev/null +++ b/packages/Algernon.package/ALGInputField.class/instance/keywords.st @@ -0,0 +1,3 @@ +accessing +keywords + ^ keywords \ No newline at end of file diff --git a/packages/Algernon.package/ALGInputField.class/instance/normalKeyStroke..st b/packages/Algernon.package/ALGInputField.class/instance/normalKeyStroke..st index 9052c2b4..7aaf691d 100644 --- a/packages/Algernon.package/ALGInputField.class/instance/normalKeyStroke..st +++ b/packages/Algernon.package/ALGInputField.class/instance/normalKeyStroke..st @@ -1,10 +1,11 @@ event handling normalKeyStroke: event - "the controller notifies the text field of symbols entered, special keys are handled by the controller" + self editor hasSelection ifTrue: [^super keyStroke: event]. super keyStroke: event. World doOneCycle. - self changed: #normalKeystroke + self changed: #normalKeystroke. + self highlightKeyword diff --git a/packages/Algernon.package/ALGInputField.class/methodProperties.json b/packages/Algernon.package/ALGInputField.class/methodProperties.json index 6d367312..eb0e39d7 100644 --- a/packages/Algernon.package/ALGInputField.class/methodProperties.json +++ b/packages/Algernon.package/ALGInputField.class/methodProperties.json @@ -11,11 +11,19 @@ "currentContent" : "J.J. 7/27/2015 21:43", "cursorWrapped:" : "Jro 6/16/2020 18:18", "handlesKeyboard:" : "rk 8/3/2020 16:45", - "initialize" : "NM 5/31/2021 21:37", + "highlightAttribute" : "YD 5/13/2022 14:13", + "highlightAttribute:" : "YD 5/13/2022 14:13", + "highlightInterval:" : "YD 5/15/2022 20:40", + "highlightKeyword" : "YD 5/13/2022 14:51", + "initialize" : "YD 5/13/2022 15:04", + "initializeKeywords" : "YD 5/13/2022 15:03", "isEmpty" : "td 6/29/2016 08:11", - "keyStroke:" : "beb 5/29/2020 18:45", + "keyStroke:" : "ga 7/29/2022 11:01", "keyboardFocusColor" : "NM 6/1/2021 19:06", + "keywordIntervalFor:" : "YD 5/15/2022 20:31", + "keywords" : "YD 5/13/2022 15:00", + "keywords:" : "YD 5/13/2022 15:00", "moveCursorToEnd" : "rk 6/17/2020 14:00", - "normalKeyStroke:" : "b 6/1/2021 00:56", + "normalKeyStroke:" : "ga 7/29/2022 11:01", "size" : "beb 5/23/2020 16:04", "wouldAcceptKeyboardFocusUponTab" : "jRo 8/5/2020 16:20" } } diff --git a/packages/Algernon.package/ALGInputField.class/properties.json b/packages/Algernon.package/ALGInputField.class/properties.json index 811ac6fb..029949c5 100644 --- a/packages/Algernon.package/ALGInputField.class/properties.json +++ b/packages/Algernon.package/ALGInputField.class/properties.json @@ -6,7 +6,9 @@ ], "commentStamp" : "J.J. 12/13/2015 21:46", "instvars" : [ - "controller" ], + "controller", + "keywords", + "highlightAttribute" ], "name" : "ALGInputField", "pools" : [ ], diff --git a/packages/Algernon.package/ALGInstallation.class/instance/latestVersion.st b/packages/Algernon.package/ALGInstallation.class/instance/latestVersion.st index 56bebe94..67ffcfda 100644 --- a/packages/Algernon.package/ALGInstallation.class/instance/latestVersion.st +++ b/packages/Algernon.package/ALGInstallation.class/instance/latestVersion.st @@ -1,4 +1,4 @@ version latestVersion "Please increase this number for every release" - ^ 9 + ^ 10 diff --git a/packages/Algernon.package/ALGInstallation.class/methodProperties.json b/packages/Algernon.package/ALGInstallation.class/methodProperties.json index 5a2e08a8..98daa9d2 100644 --- a/packages/Algernon.package/ALGInstallation.class/methodProperties.json +++ b/packages/Algernon.package/ALGInstallation.class/methodProperties.json @@ -10,7 +10,7 @@ "initialize" : "LK 7/7/2016 11:39", "lastCleanupDate" : "LK 7/7/2016 11:41", "lastCleanupDate:" : "LK 7/7/2016 11:20", - "latestVersion" : "NM 8/6/2021 13:08", + "latestVersion" : "ms 8/5/2022 16:40", "sarFromPackage:" : "beb 5/24/2020 11:58", "upgrade" : "JS 6/16/2016 19:16", "versionNumber" : "JS 6/16/2016 18:17", diff --git a/packages/Algernon.package/ALGItem.class/instance/showingChildren.st b/packages/Algernon.package/ALGItem.class/instance/showingChildren.st new file mode 100644 index 00000000..dfdefcf6 --- /dev/null +++ b/packages/Algernon.package/ALGItem.class/instance/showingChildren.st @@ -0,0 +1,3 @@ +updating +showingChildren + "Do nothing here. Important for ALGWebSearchItem to request search results." \ No newline at end of file diff --git a/packages/Algernon.package/ALGItem.class/instance/updateChildren.st b/packages/Algernon.package/ALGItem.class/instance/updateChildren.st new file mode 100644 index 00000000..3c0868b2 --- /dev/null +++ b/packages/Algernon.package/ALGItem.class/instance/updateChildren.st @@ -0,0 +1,4 @@ +updating +updateChildren + + self algerType updateChildren \ No newline at end of file diff --git a/packages/Algernon.package/ALGItem.class/instance/yieldTop.st b/packages/Algernon.package/ALGItem.class/instance/yieldTop.st new file mode 100644 index 00000000..1e5dafa1 --- /dev/null +++ b/packages/Algernon.package/ALGItem.class/instance/yieldTop.st @@ -0,0 +1,4 @@ +accessing +yieldTop + + ^ self algerType class yieldTop \ No newline at end of file diff --git a/packages/Algernon.package/ALGItem.class/methodProperties.json b/packages/Algernon.package/ALGItem.class/methodProperties.json index 5dd871e6..c05f9147 100644 --- a/packages/Algernon.package/ALGItem.class/methodProperties.json +++ b/packages/Algernon.package/ALGItem.class/methodProperties.json @@ -40,5 +40,8 @@ "rankBonus" : "beb 7/1/2020 13:14", "rankLessThan:" : "pw 8/3/2020 23:56", "resetDefaultIndex" : "beb 7/31/2020 17:27", - "updateAlgertype:" : "beb 6/30/2020 10:44", - "updateDefaultActionTo:" : "beb 6/18/2020 17:39" } } + "showingChildren" : "PureBehaviorTest 8/5/2022 12:21", + "updateAlgertype:" : "ms 6/9/2022 08:43", + "updateChildren" : "YD 8/5/2022 14:04", + "updateDefaultActionTo:" : "beb 6/18/2020 17:39", + "yieldTop" : "YD 8/5/2022 14:05" } } diff --git a/packages/Algernon.package/ALGItemProvider.class/class/initializeItems.st b/packages/Algernon.package/ALGItemProvider.class/class/initializeItems.st index 4b8db963..be631074 100644 --- a/packages/Algernon.package/ALGItemProvider.class/class/initializeItems.st +++ b/packages/Algernon.package/ALGItemProvider.class/class/initializeItems.st @@ -2,6 +2,7 @@ initialization initializeItems "Note that items added in the beginning, are more likely to be shown as an example for the empty query" + DefaultItems := OrderedCollection new addAll: ALGHelpType algertemList; addAll: ALGTestType algertemList; @@ -12,4 +13,6 @@ initializeItems addAll: ALGClassType algertemList; addAll: ALGMethodType algertemList; addAll: ALGWindowOperationsType algertemList; + addAll: ALGGitProjectType algertemList; + addAll: ALGGitBranchType algertemList; yourself \ No newline at end of file diff --git a/packages/Algernon.package/ALGItemProvider.class/class/resetItems.st b/packages/Algernon.package/ALGItemProvider.class/class/resetItems.st new file mode 100644 index 00000000..0af91b60 --- /dev/null +++ b/packages/Algernon.package/ALGItemProvider.class/class/resetItems.st @@ -0,0 +1,4 @@ +accessing +resetItems + + DefaultItems := nil \ No newline at end of file diff --git a/packages/Algernon.package/ALGItemProvider.class/instance/createCategoriesFor..st b/packages/Algernon.package/ALGItemProvider.class/instance/createCategoriesFor..st index 16a6dc41..ee231bfd 100644 --- a/packages/Algernon.package/ALGItemProvider.class/instance/createCategoriesFor..st +++ b/packages/Algernon.package/ALGItemProvider.class/instance/createCategoriesFor..st @@ -1,10 +1,13 @@ factory methods createCategoriesFor: anItemList + | categories | + categories := OrderedCollection new. - self yieldTop + (self yieldTop and: [self parrentItemYieldTop]) ifTrue: [categories addAll: (self topCategorizer categorize: anItemList withExistingCategories: categories)]. categories addAll: (self typeCategorizer categorize: anItemList withExistingCategories: categories). + ^ categories \ No newline at end of file diff --git a/packages/Algernon.package/ALGItemProvider.class/instance/dynamicItems.st b/packages/Algernon.package/ALGItemProvider.class/instance/dynamicItems.st index b40ec2d8..7f573ef8 100644 --- a/packages/Algernon.package/ALGItemProvider.class/instance/dynamicItems.st +++ b/packages/Algernon.package/ALGItemProvider.class/instance/dynamicItems.st @@ -1,5 +1,7 @@ accessing dynamicItems + ^ (ALGExpressionType algertemList: self controller), + (ALGWebSearchType algertemList: self controller), ALGDockingBarType algertemList, ALGWindowType algertemList \ No newline at end of file diff --git a/packages/Algernon.package/ALGItemProvider.class/instance/parrentItemYieldTop.st b/packages/Algernon.package/ALGItemProvider.class/instance/parrentItemYieldTop.st new file mode 100644 index 00000000..95a33f35 --- /dev/null +++ b/packages/Algernon.package/ALGItemProvider.class/instance/parrentItemYieldTop.st @@ -0,0 +1,6 @@ +accessing +parrentItemYieldTop + + self parentItem + ifNil: [^ true] + ifNotNil: [^ self parentItem yieldTop] \ No newline at end of file diff --git a/packages/Algernon.package/ALGItemProvider.class/methodProperties.json b/packages/Algernon.package/ALGItemProvider.class/methodProperties.json index 1df429a3..4cb778f9 100644 --- a/packages/Algernon.package/ALGItemProvider.class/methodProperties.json +++ b/packages/Algernon.package/ALGItemProvider.class/methodProperties.json @@ -3,9 +3,10 @@ "defaultItems" : "J.J. 7/27/2015 17:37", "defaultSearchLevel" : "OH 5/20/2021 13:59", "filters" : "beb 5/20/2020 17:57", - "initializeItems" : "NL 7/6/2021 11:59", + "initializeItems" : "ga 7/29/2022 11:01", "maximumItemsToCompute" : "b 5/28/2021 15:43", "newIn:" : "J.J. 7/30/2015 22:00", + "resetItems" : "LH 5/31/2022 01:00", "searchDelimeter" : "J.J. 7/28/2015 17:11" }, "instance" : { "cache" : "beb 7/16/2020 10:21", @@ -16,9 +17,9 @@ "cleanUp" : "OH 6/8/2021 20:16", "controller" : "J.J. 7/30/2015 22:01", "controller:" : "beb 7/15/2020 16:47", - "createCategoriesFor:" : "jRo 7/2/2020 01:01", + "createCategoriesFor:" : "YD 8/5/2022 15:05", "defaultItems" : "fsa 5/18/2021 17:37", - "dynamicItems" : "b 7/31/2021 12:34", + "dynamicItems" : "PureBehaviorTest 8/5/2022 12:35", "filterItems:for:" : "OH 5/20/2021 14:37", "filteredStaticItemsFor:" : "OH 5/20/2021 14:35", "getCachedStaticItemsFor:" : "OH 5/20/2021 14:37", @@ -31,6 +32,7 @@ "items:" : "J.J. 7/27/2015 18:18", "parentItem" : "J.J. 7/30/2015 20:38", "parentItem:" : "J.J. 7/30/2015 20:39", + "parrentItemYieldTop" : "YD 6/19/2022 20:38", "processMatchedItems:given:" : "b 5/28/2021 15:42", "removeCacheArtifacts:" : "fsa 5/18/2021 17:20", "reset" : "OH 5/20/2021 13:59", diff --git a/packages/Algernon.package/ALGResultItemMorph.class/class/errorColor.st b/packages/Algernon.package/ALGResultItemMorph.class/class/errorColor.st new file mode 100644 index 00000000..068acc78 --- /dev/null +++ b/packages/Algernon.package/ALGResultItemMorph.class/class/errorColor.st @@ -0,0 +1,4 @@ +constants +errorColor + + ^ Color red \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/class/newStatusWithContents.in..st b/packages/Algernon.package/ALGResultItemMorph.class/class/newStatusWithContents.in..st new file mode 100644 index 00000000..332aaf22 --- /dev/null +++ b/packages/Algernon.package/ALGResultItemMorph.class/class/newStatusWithContents.in..st @@ -0,0 +1,9 @@ +instance creation +newStatusWithContents: aString in: aMenuMorph + + ^ self basicNew + menuMorph: aMenuMorph; + contents: aString; + isStatus: true; + initialize; + yourself \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/class/titleHeight.st b/packages/Algernon.package/ALGResultItemMorph.class/class/titleHeight.st deleted file mode 100644 index f97628db..00000000 --- a/packages/Algernon.package/ALGResultItemMorph.class/class/titleHeight.st +++ /dev/null @@ -1,3 +0,0 @@ -constants -titleHeight - ^ 20 \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/initialize.st b/packages/Algernon.package/ALGResultItemMorph.class/instance/initialize.st index 701bf0d1..b1cd2930 100644 --- a/packages/Algernon.package/ALGResultItemMorph.class/instance/initialize.st +++ b/packages/Algernon.package/ALGResultItemMorph.class/instance/initialize.st @@ -1,11 +1,13 @@ initialization initialize + super initialize. - self initializeLayout. + + self + initializeLayout; + initializeBounds. self isTitle - ifTrue: [self initializeTitleBounds. - self initializeTitleLayout] - ifFalse: [self initializeItemBounds. - self initializeIcons. + ifTrue: [self initializeTitleLayout] + ifFalse: [self initializeIcons. self initializeItemLayout]. - self disableTextMouseEvents. \ No newline at end of file + self disableTextMouseEvents \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemBounds.st b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeBounds.st similarity index 84% rename from packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemBounds.st rename to packages/Algernon.package/ALGResultItemMorph.class/instance/initializeBounds.st index f015eb98..cb3876e2 100644 --- a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemBounds.st +++ b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeBounds.st @@ -1,4 +1,5 @@ initialization -initializeItemBounds +initializeBounds + self width: self menuMorph width - (self menuMorph borderWidth * 2). self vResizing: #shrinkWrap \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemLayoutName.st b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemLayoutName.st index 703c334a..00e1d4e4 100644 --- a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemLayoutName.st +++ b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeItemLayoutName.st @@ -4,6 +4,7 @@ initializeItemLayoutName readOnly: true; textColor: self class normalTextColor; yourself). - self addMorph: self nameMorph + self + addMorph: self nameMorph fullFrame: (self layoutFrameFor: #NameMorph). self nameMorph vResizing: #shrinkWrap \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleBounds.st b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleBounds.st deleted file mode 100644 index 4531ccb3..00000000 --- a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleBounds.st +++ /dev/null @@ -1,3 +0,0 @@ -initialization -initializeTitleBounds - self extent: self menuMorph width - (self menuMorph borderWidth * 2) @ self class titleHeight \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleLayout.st b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleLayout.st index 86806b51..befbf3ed 100644 --- a/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleLayout.st +++ b/packages/Algernon.package/ALGResultItemMorph.class/instance/initializeTitleLayout.st @@ -1,9 +1,14 @@ initialization initializeTitleLayout - self titleMorph: (TextMorph new contents: self contents; + + self titleMorph: (TextMorph new contentsWrapped: self contents; textColor: self class titleColor; readOnly: true; yourself). self addMorph: self titleMorph - fullFrame: (self layoutFrameFor: #TitleMorph) \ No newline at end of file + fullFrame: (self layoutFrameFor: #TitleMorph). + self titleMorph vResizing: #shrinkWrap. + + (self contents beginsWith: 'ERROR:') + ifTrue: [self titleMorph textColor: self class errorColor] \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/isStatus..st b/packages/Algernon.package/ALGResultItemMorph.class/instance/isStatus..st new file mode 100644 index 00000000..871ac52d --- /dev/null +++ b/packages/Algernon.package/ALGResultItemMorph.class/instance/isStatus..st @@ -0,0 +1,4 @@ +accessing +isStatus: aBoolean + + isStatus := aBoolean \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/instance/isStatus.st b/packages/Algernon.package/ALGResultItemMorph.class/instance/isStatus.st new file mode 100644 index 00000000..98eb93d0 --- /dev/null +++ b/packages/Algernon.package/ALGResultItemMorph.class/instance/isStatus.st @@ -0,0 +1,4 @@ +accessing +isStatus + + ^ isStatus ifNil: [isStatus := false] \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultItemMorph.class/methodProperties.json b/packages/Algernon.package/ALGResultItemMorph.class/methodProperties.json index 480259eb..5b96e8d0 100644 --- a/packages/Algernon.package/ALGResultItemMorph.class/methodProperties.json +++ b/packages/Algernon.package/ALGResultItemMorph.class/methodProperties.json @@ -2,14 +2,15 @@ "class" : { "actionFontSize" : "jRo 5/31/2020 15:24", "actionTextColor" : "rk 8/4/2020 21:23", + "errorColor" : "YD 8/5/2022 14:05", "lightTextColor" : "NL 6/8/2021 09:53", "newFrom:target:selector:argumentList:in:index:" : "NL 6/8/2021 09:57", + "newStatusWithContents:in:" : "YD 8/5/2022 14:06", "newWithContents:in:" : "rk 8/4/2020 21:23", "normalFillStyle" : "rk 8/4/2020 21:23", "normalTextColor" : "rk 8/4/2020 21:23", "selectionFillStyle" : "rk 8/4/2020 21:23", - "titleColor" : "rk 8/4/2020 21:24", - "titleHeight" : "rk 8/4/2020 21:24" }, + "titleColor" : "rk 8/4/2020 21:24" }, "instance" : { "actionMorph" : "jRo 5/28/2020 15:00", "actionMorph:" : "jRo 5/28/2020 15:00", @@ -29,18 +30,19 @@ "icon:" : "jRo 5/28/2020 15:49", "index" : "NL 6/8/2021 09:55", "index:" : "NL 6/8/2021 09:55", - "initialize" : "jRo 8/1/2020 19:28", + "initialize" : "PureBehaviorTest 8/5/2022 12:46", + "initializeBounds" : "PureBehaviorTest 8/5/2022 12:58", "initializeIcons" : "jRo 5/31/2020 15:35", - "initializeItemBounds" : "jRo 7/20/2020 09:42", "initializeItemLayout" : "NL 6/8/2021 09:42", "initializeItemLayoutAction" : "jRo 8/1/2020 11:02", "initializeItemLayoutIcon" : "jRo 8/1/2020 19:14", - "initializeItemLayoutName" : "jRo 8/1/2020 19:16", + "initializeItemLayoutName" : "YD 6/22/2022 15:12", "initializeItemLayoutNumber" : "NL 6/8/2021 10:46", "initializeLayout" : "jRo 5/28/2020 16:07", - "initializeTitleBounds" : "jRo 5/28/2020 17:49", - "initializeTitleLayout" : "jRo 8/1/2020 19:16", + "initializeTitleLayout" : "PureBehaviorTest 8/5/2022 12:46", "isEnabled" : "jRo 5/31/2020 12:09", + "isStatus" : "PureBehaviorTest 8/5/2022 13:14", + "isStatus:" : "YD 8/5/2022 14:08", "isTitle" : "rk 8/4/2020 21:25", "item" : "rk 8/4/2020 21:17", "item:" : "rk 8/4/2020 21:17", diff --git a/packages/Algernon.package/ALGResultItemMorph.class/properties.json b/packages/Algernon.package/ALGResultItemMorph.class/properties.json index 2054f247..88c2bd17 100644 --- a/packages/Algernon.package/ALGResultItemMorph.class/properties.json +++ b/packages/Algernon.package/ALGResultItemMorph.class/properties.json @@ -15,7 +15,8 @@ "contents", "icon", "childrenIndicatorMorph", - "index" ], + "index", + "isStatus" ], "name" : "ALGResultItemMorph", "pools" : [ ], diff --git a/packages/Algernon.package/ALGResultList.class/instance/add.at..st b/packages/Algernon.package/ALGResultList.class/instance/add.at..st index d9dbaf73..6a9e9ba1 100644 --- a/packages/Algernon.package/ALGResultList.class/instance/add.at..st +++ b/packages/Algernon.package/ALGResultList.class/instance/add.at..st @@ -1,5 +1,6 @@ updating add: anAlgertem at: index + self add: anAlgertem target: (anAlgertem defaultAlgeraction target) selector: (anAlgertem defaultAlgeraction selector) diff --git a/packages/Algernon.package/ALGResultList.class/instance/createStatusMessage.st b/packages/Algernon.package/ALGResultList.class/instance/createStatusMessage.st new file mode 100644 index 00000000..740a156b --- /dev/null +++ b/packages/Algernon.package/ALGResultList.class/instance/createStatusMessage.st @@ -0,0 +1,11 @@ +status message +createStatusMessage + + | itemMorph | + + self removeOldStatusMessage. + (self controller statusMessage = '') + ifTrue: [^ self updateHeight]. + itemMorph := ALGResultItemMorph newStatusWithContents: (self controller statusMessage) in: self. + self scroller addMorphFront: itemMorph. + self updateHeight \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultList.class/instance/deactivateController..st b/packages/Algernon.package/ALGResultList.class/instance/deactivateController..st new file mode 100644 index 00000000..aee7a0d0 --- /dev/null +++ b/packages/Algernon.package/ALGResultList.class/instance/deactivateController..st @@ -0,0 +1,4 @@ +event handling +deactivateController: evt + + evt ifNotNil: [self controller deactivate: evt hand] \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultList.class/instance/doActionOnSelectedItem..st b/packages/Algernon.package/ALGResultList.class/instance/doActionOnSelectedItem..st index 0e2ac2f1..fde33f4f 100644 --- a/packages/Algernon.package/ALGResultList.class/instance/doActionOnSelectedItem..st +++ b/packages/Algernon.package/ALGResultList.class/instance/doActionOnSelectedItem..st @@ -1,6 +1,9 @@ event handling doActionOnSelectedItem: evt - evt ifNotNil: [self controller deactivate: evt hand]. + self selectedItem - ifNotNil: [self selectedListItem incrementNumTimesSelected. - self selectedListItem defaultAlgeraction do] \ No newline at end of file + ifNil: [self deactivateController: evt] + ifNotNil: [self selectedListItem defaultAlgeraction keepOpen + ifFalse: [self deactivateController: evt]. + self selectedListItem incrementNumTimesSelected. + self selectedListItem defaultAlgeraction do] \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultList.class/instance/removeOldStatusMessage.st b/packages/Algernon.package/ALGResultList.class/instance/removeOldStatusMessage.st new file mode 100644 index 00000000..2cbcdf7a --- /dev/null +++ b/packages/Algernon.package/ALGResultList.class/instance/removeOldStatusMessage.st @@ -0,0 +1,6 @@ +status message +removeOldStatusMessage + + (self scroller submorphs + select: [:submorphs | submorphs isStatus]) + do: [:submorph | submorph abandon] \ No newline at end of file diff --git a/packages/Algernon.package/ALGResultList.class/instance/updateWith..st b/packages/Algernon.package/ALGResultList.class/instance/updateWith..st index ab096fe3..b4378d1b 100644 --- a/packages/Algernon.package/ALGResultList.class/instance/updateWith..st +++ b/packages/Algernon.package/ALGResultList.class/instance/updateWith..st @@ -3,6 +3,7 @@ updateWith: aCollection | index | self removeAllSubmorphs. + self createStatusMessage. index := 1. aCollection do: [ :aCategory | self addCategory: aCategory. diff --git a/packages/Algernon.package/ALGResultList.class/methodProperties.json b/packages/Algernon.package/ALGResultList.class/methodProperties.json index d7f356ba..adff5f79 100644 --- a/packages/Algernon.package/ALGResultList.class/methodProperties.json +++ b/packages/Algernon.package/ALGResultList.class/methodProperties.json @@ -6,13 +6,15 @@ "newFrom:in:" : "rk 8/3/2020 16:49", "verticalOffset" : "rk 8/3/2020 16:49" }, "instance" : { - "add:at:" : "b 6/14/2021 12:22", + "add:at:" : "YD 6/8/2022 11:23", "add:target:selector:argumentList:index:" : "b 6/14/2021 12:18", "addAll:startingAt:" : "b 6/14/2021 12:23", "addCategory:" : "fsa 5/9/2021 16:37", "controller" : "rk 8/3/2020 16:48", "controller:" : "rk 8/4/2020 21:29", - "doActionOnSelectedItem:" : "jRo 8/1/2020 19:33", + "createStatusMessage" : "PureBehaviorTest 8/5/2022 12:47", + "deactivateController:" : "PureBehaviorTest 8/5/2022 13:15", + "doActionOnSelectedItem:" : "PureBehaviorTest 8/5/2022 12:35", "ensureVisible:" : "OH 5/12/2021 21:37", "fittingHeight" : "b 5/14/2021 14:48", "handlesMouseMove:" : "fsa 5/9/2021 17:31", @@ -27,6 +29,7 @@ "popup" : "b 5/14/2021 14:52", "positionAt:relativeTo:inWorld:" : "jRo 5/31/2020 13:05", "removeAllSubmorphs" : "fsa 5/9/2021 16:35", + "removeOldStatusMessage" : "PureBehaviorTest 8/5/2022 12:35", "selectItemAt:" : "NM 6/7/2021 21:28", "selectNext" : "rk 8/4/2020 21:31", "selectPrevious" : "rk 8/4/2020 21:31", @@ -36,4 +39,4 @@ "shouldItemsHandleMouseOver" : "fsa 5/9/2021 17:22", "shouldItemsHandleMouseOver:" : "fsa 5/9/2021 17:22", "updateHeight" : "b 5/14/2021 14:48", - "updateWith:" : "b 6/14/2021 12:21" } } + "updateWith:" : "YD 6/22/2022 15:20" } } diff --git a/packages/Algernon.package/ALGType.class/class/maxItemsPerCategory.st b/packages/Algernon.package/ALGType.class/class/maxItemsPerCategory.st new file mode 100644 index 00000000..94dc269c --- /dev/null +++ b/packages/Algernon.package/ALGType.class/class/maxItemsPerCategory.st @@ -0,0 +1,4 @@ +constants +maxItemsPerCategory + + ^ -1 \ No newline at end of file diff --git a/packages/Algernon.package/ALGType.class/class/yieldTop.st b/packages/Algernon.package/ALGType.class/class/yieldTop.st new file mode 100644 index 00000000..d0ba4b0b --- /dev/null +++ b/packages/Algernon.package/ALGType.class/class/yieldTop.st @@ -0,0 +1,4 @@ +constants +yieldTop + + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGType.class/instance/createSortedListFrom..st b/packages/Algernon.package/ALGType.class/instance/createSortedListFrom..st index a4e60345..8d56eb51 100644 --- a/packages/Algernon.package/ALGType.class/instance/createSortedListFrom..st +++ b/packages/Algernon.package/ALGType.class/instance/createSortedListFrom..st @@ -4,4 +4,5 @@ createSortedListFrom: aCollection | list | list := SortedCollection sortBlock: [:a :b | a rank > b rank]. list addAll: aCollection. + ^ list \ No newline at end of file diff --git a/packages/Algernon.package/ALGType.class/instance/updateChildren.st b/packages/Algernon.package/ALGType.class/instance/updateChildren.st new file mode 100644 index 00000000..ab80bbb1 --- /dev/null +++ b/packages/Algernon.package/ALGType.class/instance/updateChildren.st @@ -0,0 +1,3 @@ +children +updateChildren + "Do nothing. Used for web search." \ No newline at end of file diff --git a/packages/Algernon.package/ALGType.class/methodProperties.json b/packages/Algernon.package/ALGType.class/methodProperties.json index 95a2bd80..f0bc97a2 100644 --- a/packages/Algernon.package/ALGType.class/methodProperties.json +++ b/packages/Algernon.package/ALGType.class/methodProperties.json @@ -2,12 +2,14 @@ "class" : { "algertemList" : "J.J. 7/30/2015 16:54", "icon" : "NL 6/4/2021 14:16", - "with:" : "J.J. 7/30/2015 16:54" }, + "maxItemsPerCategory" : "YD 8/5/2022 14:09", + "with:" : "J.J. 7/30/2015 16:54", + "yieldTop" : "YD 8/5/2022 14:09" }, "instance" : { "algertemChildrenList" : "J.J. 7/30/2015 22:24", "canBeTopResult" : "beb 5/21/2020 11:45", "createListOfAlgeractions" : "J.J. 7/30/2015 17:00", - "createSortedListFrom:" : "J.J. 7/30/2015 19:57", + "createSortedListFrom:" : "YD 6/15/2022 12:59", "existingBrowserIfNone:" : "kej 8/4/2020 19:55", "fuzzyMatchName" : "beb 5/21/2020 11:03", "hasChildren" : "J.J. 7/30/2015 17:00", @@ -19,4 +21,5 @@ "rankBonus" : "beb 5/21/2020 11:25", "typeName" : "J.J. 7/30/2015 16:55", "typeObject" : "J.J. 7/30/2015 16:55", - "typeObject:" : "J.J. 7/30/2015 16:55" } } + "typeObject:" : "J.J. 7/30/2015 16:55", + "updateChildren" : "PureBehaviorTest 8/5/2022 12:21" } } diff --git a/packages/Algernon.package/ALGTypeCategorizer.class/instance/extractFrom.to..st b/packages/Algernon.package/ALGTypeCategorizer.class/instance/extractFrom.to..st index 2fc7a197..3ba6e185 100644 --- a/packages/Algernon.package/ALGTypeCategorizer.class/instance/extractFrom.to..st +++ b/packages/Algernon.package/ALGTypeCategorizer.class/instance/extractFrom.to..st @@ -2,5 +2,5 @@ categorizing extractFrom: aDictionary to: aCollection aDictionary keysAndValuesDo: [:key :items | aCollection add: ((ALGCategory newWithTitle: key) - addAll: (items first: (self class maxItemsPerCategory min: items size)); + addAll: (items first: ((self maxItemsPerCategoryFor: (items first algerType)) min: items size)); yourself)] \ No newline at end of file diff --git a/packages/Algernon.package/ALGTypeCategorizer.class/instance/maxItemsPerCategoryFor..st b/packages/Algernon.package/ALGTypeCategorizer.class/instance/maxItemsPerCategoryFor..st new file mode 100644 index 00000000..244fec81 --- /dev/null +++ b/packages/Algernon.package/ALGTypeCategorizer.class/instance/maxItemsPerCategoryFor..st @@ -0,0 +1,6 @@ +accessing +maxItemsPerCategoryFor: anAlgerType + + (anAlgerType class maxItemsPerCategory ~= -1) + ifTrue: [^ anAlgerType class maxItemsPerCategory] + ifFalse: [^ self class maxItemsPerCategory] \ No newline at end of file diff --git a/packages/Algernon.package/ALGTypeCategorizer.class/instance/typesFrom.withMaximum..st b/packages/Algernon.package/ALGTypeCategorizer.class/instance/typesFrom.withMaximum..st index de254af8..ce331aa8 100644 --- a/packages/Algernon.package/ALGTypeCategorizer.class/instance/typesFrom.withMaximum..st +++ b/packages/Algernon.package/ALGTypeCategorizer.class/instance/typesFrom.withMaximum..st @@ -1,12 +1,14 @@ categorizing -typesFrom: anItemCollection withMaximum: maxNumItems +typesFrom: anItemCollection withMaximum: maxNumItems + | aDictionary item categories | + aDictionary := Dictionary new. 1 to: maxNumItems do: [:i | item := anItemCollection at: i. categories := aDictionary at: item algerType typeName ifAbsentPut: [OrderedCollection new]. - categories size >= self class maxItemsPerCategory + (categories size >= (self maxItemsPerCategoryFor: (item algerType))) ifFalse: [categories add: item]]. ^ aDictionary \ No newline at end of file diff --git a/packages/Algernon.package/ALGTypeCategorizer.class/methodProperties.json b/packages/Algernon.package/ALGTypeCategorizer.class/methodProperties.json index 6afdb296..50d8055e 100644 --- a/packages/Algernon.package/ALGTypeCategorizer.class/methodProperties.json +++ b/packages/Algernon.package/ALGTypeCategorizer.class/methodProperties.json @@ -6,6 +6,7 @@ "categorize:withExistingCategories:" : "jRo 7/2/2020 01:03", "categorizeItems:" : "jRo 7/2/2020 01:00", "countCategoriesFrom:" : "JS 6/23/2016 11:43", - "extractFrom:to:" : "jRo 8/1/2020 13:55", + "extractFrom:to:" : "YD 6/19/2022 20:47", + "maxItemsPerCategoryFor:" : "YD 6/22/2022 10:38", "typesFrom:" : "pw 8/4/2020 00:32", - "typesFrom:withMaximum:" : "jRo 8/1/2020 13:15" } } + "typesFrom:withMaximum:" : "PureBehaviorTest 8/5/2022 12:52" } } diff --git a/packages/Algernon.package/ALGWebClient.class/README.md b/packages/Algernon.package/ALGWebClient.class/README.md new file mode 100644 index 00000000..881d7648 --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/README.md @@ -0,0 +1,4 @@ +The ALGWebClient is a subclass of the WebClient class. It extends the normal webclient with asynchronous requests. + +Class Variables + AsyncProcess: OSProcess reference to the process that is executing the asynchronous web request \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebClient.class/class/asyncHttpGet.response..st b/packages/Algernon.package/ALGWebClient.class/class/asyncHttpGet.response..st new file mode 100644 index 00000000..45ce0c03 --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/class/asyncHttpGet.response..st @@ -0,0 +1,4 @@ +methods +asyncHttpGet: urlString response: aBlock + + self asyncHttpGet: urlString withPriority: self defaultProcessPriority response: aBlock \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebClient.class/class/asyncHttpGet.withPriority.response..st b/packages/Algernon.package/ALGWebClient.class/class/asyncHttpGet.withPriority.response..st new file mode 100644 index 00000000..90e9ee1c --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/class/asyncHttpGet.withPriority.response..st @@ -0,0 +1,7 @@ +methods +asyncHttpGet: urlString withPriority: anInteger response: aBlock + + self asyncProcess ifNotNil: [self asyncProcess terminate]. + self asyncProcess: ( + [aBlock value: ([self httpGet: urlString] on: Exception do: [])] + forkAt: anInteger) \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebClient.class/class/asyncProcess..st b/packages/Algernon.package/ALGWebClient.class/class/asyncProcess..st new file mode 100644 index 00000000..39a6a742 --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/class/asyncProcess..st @@ -0,0 +1,4 @@ +accessing +asyncProcess: aProcess + + AsyncProcess := aProcess \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebClient.class/class/asyncProcess.st b/packages/Algernon.package/ALGWebClient.class/class/asyncProcess.st new file mode 100644 index 00000000..deaa59a6 --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/class/asyncProcess.st @@ -0,0 +1,4 @@ +accessing +asyncProcess + + ^ AsyncProcess \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebClient.class/class/defaultProcessPriority.st b/packages/Algernon.package/ALGWebClient.class/class/defaultProcessPriority.st new file mode 100644 index 00000000..293a9977 --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/class/defaultProcessPriority.st @@ -0,0 +1,4 @@ +constans +defaultProcessPriority + + ^ 20 \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebClient.class/methodProperties.json b/packages/Algernon.package/ALGWebClient.class/methodProperties.json new file mode 100644 index 00000000..5241e3d3 --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/methodProperties.json @@ -0,0 +1,9 @@ +{ + "class" : { + "asyncHttpGet:response:" : "YD 8/5/2022 14:10", + "asyncHttpGet:withPriority:response:" : "YD 8/5/2022 14:10", + "asyncProcess" : "YD 8/5/2022 13:47", + "asyncProcess:" : "YD 8/5/2022 13:48", + "defaultProcessPriority" : "YD 6/8/2022 10:23" }, + "instance" : { + } } diff --git a/packages/Algernon.package/ALGWebClient.class/properties.json b/packages/Algernon.package/ALGWebClient.class/properties.json new file mode 100644 index 00000000..7748e85e --- /dev/null +++ b/packages/Algernon.package/ALGWebClient.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + "AsyncProcess" ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "ALGWebClient", + "pools" : [ + ], + "super" : "WebClient", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGWebResultItem.class/README.md b/packages/Algernon.package/ALGWebResultItem.class/README.md new file mode 100644 index 00000000..1c82f149 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/README.md @@ -0,0 +1,4 @@ +An ALGWebResultItem is an item that represents a single result element from a web search. It should only be used as children for ALGWebSearchItem. + +Instance Variables + rank: Integer the rank of the search result diff --git a/packages/Algernon.package/ALGWebResultItem.class/class/createFrom.withRank..st b/packages/Algernon.package/ALGWebResultItem.class/class/createFrom.withRank..st new file mode 100644 index 00000000..22272a38 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/class/createFrom.withRank..st @@ -0,0 +1,11 @@ +instance creation +createFrom: aJsonObject withRank: aNumber + + | item type | + + type := ALGWebResultType newFor: aJsonObject. + item := self withAlgertype: type. + item rank: aNumber. + item numTimesSelected: 0. + + ^ item \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultItem.class/instance/name.st b/packages/Algernon.package/ALGWebResultItem.class/instance/name.st new file mode 100644 index 00000000..11ddf062 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ self algerType resultTitle \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultItem.class/instance/rank..st b/packages/Algernon.package/ALGWebResultItem.class/instance/rank..st new file mode 100644 index 00000000..020dfca6 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/instance/rank..st @@ -0,0 +1,4 @@ +accessing +rank: aNumber + + rank := aNumber \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultItem.class/instance/rank.st b/packages/Algernon.package/ALGWebResultItem.class/instance/rank.st new file mode 100644 index 00000000..49f56357 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/instance/rank.st @@ -0,0 +1,4 @@ +accessing +rank + + ^ rank \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultItem.class/methodProperties.json b/packages/Algernon.package/ALGWebResultItem.class/methodProperties.json new file mode 100644 index 00000000..dfde80fe --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/methodProperties.json @@ -0,0 +1,7 @@ +{ + "class" : { + "createFrom:withRank:" : "YD 8/5/2022 13:43" }, + "instance" : { + "name" : "PureBehaviorTest 8/5/2022 12:26", + "rank" : "YD 8/5/2022 13:43", + "rank:" : "YD 8/5/2022 13:43" } } diff --git a/packages/Algernon.package/ALGWebResultItem.class/properties.json b/packages/Algernon.package/ALGWebResultItem.class/properties.json new file mode 100644 index 00000000..1cfe5d22 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultItem.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "rank" ], + "name" : "ALGWebResultItem", + "pools" : [ + ], + "super" : "ALGItem", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGWebResultType.class/README.md b/packages/Algernon.package/ALGWebResultType.class/README.md new file mode 100644 index 00000000..1e1a40e0 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/README.md @@ -0,0 +1,5 @@ +A ALGWebResultType contains the information for a single web search result and can open the result in the systems default browser. + +Instance Variables + resultTitle: String the title of the search result + resultLink: String the link that the browser should navigate to \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/class/icon.st b/packages/Algernon.package/ALGWebResultType.class/class/icon.st new file mode 100644 index 00000000..37b46395 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/class/icon.st @@ -0,0 +1,4 @@ +icon +icon + + ^ #Window \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/class/maxItemsPerCategory.st b/packages/Algernon.package/ALGWebResultType.class/class/maxItemsPerCategory.st new file mode 100644 index 00000000..7175b6ee --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/class/maxItemsPerCategory.st @@ -0,0 +1,4 @@ +constants +maxItemsPerCategory + + ^ 10 \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/class/newFor..st b/packages/Algernon.package/ALGWebResultType.class/class/newFor..st new file mode 100644 index 00000000..303ba07a --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/class/newFor..st @@ -0,0 +1,10 @@ +instance creation +newFor: aJsonObject + + | type | + + type := self new. + type resultTitle: (aJsonObject at: 'title'). + type resultLink: (aJsonObject at: 'link'). + + ^ type \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/class/openCommandsForPlatforms.st b/packages/Algernon.package/ALGWebResultType.class/class/openCommandsForPlatforms.st new file mode 100644 index 00000000..da22e01c --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/class/openCommandsForPlatforms.st @@ -0,0 +1,14 @@ +commands +openCommandsForPlatforms + + ^ Dictionary newFrom: { + 'Win32' -> [:link | OSProcess command: 'explorer ', link]. + 'unix' -> [:link | + (self openLinkOnUnix: link) + ifFalse: [ + Transcript show: '===Algernon WebSearch==='. + Transcript cr. + Transcript show: 'No command found to open URL! See ALGWebResultType class >> unixOpenBrowserCommands'. + Transcript cr]]. + 'Linux' -> [:link | (self openCommandsForPlatforms at: 'unix') value: link]. + 'Mac OS' -> [:link | (self openCommandsForPlatforms at: 'unix') value: link]} \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/class/openLinkOnUnix..st b/packages/Algernon.package/ALGWebResultType.class/class/openLinkOnUnix..st new file mode 100644 index 00000000..0c7612bd --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/class/openLinkOnUnix..st @@ -0,0 +1,11 @@ +commands +openLinkOnUnix: aString + + | processClass | + + processClass := OSProcess. + ALGOSProcess ifNotNil: [processClass := ALGOSProcess]. + + "Use contains instead of do, because linter told so :) Also it is a bit shorter" + ^ self unixOpenBrowserCommands contains: [:command | + ((processClass waitForCommand: command , aString) succeeded)] \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/class/unixOpenBrowserCommands.st b/packages/Algernon.package/ALGWebResultType.class/class/unixOpenBrowserCommands.st new file mode 100644 index 00000000..284d70e2 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/class/unixOpenBrowserCommands.st @@ -0,0 +1,9 @@ +constants +unixOpenBrowserCommands + + ^ { 'open '. + 'xdg-open '. + 'python -m webbrowser '. + 'python3 -m webbrowser '. + 'kde-open '. + 'gnome-open '} \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/createActionOpen.st b/packages/Algernon.package/ALGWebResultType.class/instance/createActionOpen.st new file mode 100644 index 00000000..d8bd2d4c --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/createActionOpen.st @@ -0,0 +1,9 @@ +actions +createActionOpen + + ^ ALGAction + withName: 'open' + rank: 10 + target: self + selector:#openLink + args: #() \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/createListOfAlgeractions.st b/packages/Algernon.package/ALGWebResultType.class/instance/createListOfAlgeractions.st new file mode 100644 index 00000000..0c703b5c --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/createListOfAlgeractions.st @@ -0,0 +1,5 @@ +actions +createListOfAlgeractions + + ^ self createSortedListFrom: { + self createActionOpen} \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/openLink.st b/packages/Algernon.package/ALGWebResultType.class/instance/openLink.st new file mode 100644 index 00000000..94d7cf3f --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/openLink.st @@ -0,0 +1,10 @@ +actions +openLink + + | processClass platform | + + processClass := OSProcess. + ALGOSProcess ifNotNil: [processClass := ALGOSProcess]. + + platform := processClass platformName. "= 'Win32', 'Mac OS', 'Linux', 'unix'" + (self class openCommandsForPlatforms at: platform) value: self resultLink \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/resultLink..st b/packages/Algernon.package/ALGWebResultType.class/instance/resultLink..st new file mode 100644 index 00000000..4763c862 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/resultLink..st @@ -0,0 +1,4 @@ +accessing +resultLink: aString + + resultLink := aString \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/resultLink.st b/packages/Algernon.package/ALGWebResultType.class/instance/resultLink.st new file mode 100644 index 00000000..9f6ea9c6 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/resultLink.st @@ -0,0 +1,4 @@ +accessing +resultLink + + ^ resultLink \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/resultTitle..st b/packages/Algernon.package/ALGWebResultType.class/instance/resultTitle..st new file mode 100644 index 00000000..a78daf67 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/resultTitle..st @@ -0,0 +1,4 @@ +accessing +resultTitle: aString + + resultTitle := aString \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/resultTitle.st b/packages/Algernon.package/ALGWebResultType.class/instance/resultTitle.st new file mode 100644 index 00000000..d2fb35fe --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/resultTitle.st @@ -0,0 +1,4 @@ +accessing +resultTitle + + ^ resultTitle \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/instance/typeName.st b/packages/Algernon.package/ALGWebResultType.class/instance/typeName.st new file mode 100644 index 00000000..40a46c88 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/instance/typeName.st @@ -0,0 +1,4 @@ +accessing +typeName + + ^ 'Open' \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebResultType.class/methodProperties.json b/packages/Algernon.package/ALGWebResultType.class/methodProperties.json new file mode 100644 index 00000000..34d441bb --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/methodProperties.json @@ -0,0 +1,17 @@ +{ + "class" : { + "icon" : "YD 6/15/2022 14:49", + "maxItemsPerCategory" : "YD 8/5/2022 14:12", + "newFor:" : "YD 8/5/2022 14:12", + "openCommandsForPlatforms" : "YD 7/13/2022 14:09", + "openLinkOnUnix:" : "ef 8/3/2022 18:38", + "unixOpenBrowserCommands" : "YD 7/13/2022 14:06" }, + "instance" : { + "createActionOpen" : "YD 6/22/2022 11:04", + "createListOfAlgeractions" : "YD 8/5/2022 13:46", + "openLink" : "ef 8/3/2022 19:22", + "resultLink" : "YD 6/22/2022 11:23", + "resultLink:" : "YD 8/5/2022 14:12", + "resultTitle" : "YD 6/22/2022 11:23", + "resultTitle:" : "YD 8/5/2022 14:13", + "typeName" : "YD 6/15/2022 14:07" } } diff --git a/packages/Algernon.package/ALGWebResultType.class/properties.json b/packages/Algernon.package/ALGWebResultType.class/properties.json new file mode 100644 index 00000000..92c3b403 --- /dev/null +++ b/packages/Algernon.package/ALGWebResultType.class/properties.json @@ -0,0 +1,15 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "resultTitle", + "resultLink" ], + "name" : "ALGWebResultType", + "pools" : [ + ], + "super" : "ALGType", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGWebSearchItem.class/README.md b/packages/Algernon.package/ALGWebSearchItem.class/README.md new file mode 100644 index 00000000..bfc0df86 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchItem.class/README.md @@ -0,0 +1 @@ +The ALGWebSearchItem is used to filter the web keyword. \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchItem.class/class/isEvaluateTrigger..st b/packages/Algernon.package/ALGWebSearchItem.class/class/isEvaluateTrigger..st new file mode 100644 index 00000000..383b5655 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchItem.class/class/isEvaluateTrigger..st @@ -0,0 +1,4 @@ +constants +isEvaluateTrigger: aTrigger + + ^ aTrigger beginsWith: 'web' \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchItem.class/class/withAlgertype..st b/packages/Algernon.package/ALGWebSearchItem.class/class/withAlgertype..st new file mode 100644 index 00000000..59de6f42 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchItem.class/class/withAlgertype..st @@ -0,0 +1,9 @@ +instance creation +withAlgertype: aType + + | item | + + item := self new. + item updateAlgertype: aType. + + ^ item \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchItem.class/instance/matchesAction..st b/packages/Algernon.package/ALGWebSearchItem.class/instance/matchesAction..st new file mode 100644 index 00000000..c5f1bc97 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchItem.class/instance/matchesAction..st @@ -0,0 +1,4 @@ +relevant +matchesAction: anActionVerb + + ^ self class isEvaluateTrigger: anActionVerb \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchItem.class/methodProperties.json b/packages/Algernon.package/ALGWebSearchItem.class/methodProperties.json new file mode 100644 index 00000000..ca01af8a --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchItem.class/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + "isEvaluateTrigger:" : "YD 8/5/2022 13:43", + "withAlgertype:" : "YD 8/5/2022 13:43" }, + "instance" : { + "matchesAction:" : "YD 8/5/2022 13:43" } } diff --git a/packages/Algernon.package/ALGWebSearchItem.class/properties.json b/packages/Algernon.package/ALGWebSearchItem.class/properties.json new file mode 100644 index 00000000..7e04c18b --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchItem.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "ALGWebSearchItem", + "pools" : [ + ], + "super" : "ALGItem", + "type" : "normal" } diff --git a/packages/Algernon.package/ALGWebSearchType.class/README.md b/packages/Algernon.package/ALGWebSearchType.class/README.md new file mode 100644 index 00000000..0359b255 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/README.md @@ -0,0 +1,4 @@ +The ALGWebSearchType is used to trigger a web search on tab in. This happens async and the results are displayed when loading is finished. + +Instance Variables + webResults: Collection the results for the current request \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/class/algertemList..st b/packages/Algernon.package/ALGWebSearchType.class/class/algertemList..st new file mode 100644 index 00000000..e5e19529 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/class/algertemList..st @@ -0,0 +1,5 @@ +algertem lists +algertemList: algerInstance + + ^ OrderedCollection with: (ALGWebSearchItem + withAlgertype: (self with: algerInstance)) diff --git a/packages/Algernon.package/ALGWebSearchType.class/class/icon.st b/packages/Algernon.package/ALGWebSearchType.class/class/icon.st new file mode 100644 index 00000000..efe01dec --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/class/icon.st @@ -0,0 +1,4 @@ +icon +icon + + ^ #WorldHelp \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/class/webSearchUrl.st b/packages/Algernon.package/ALGWebSearchType.class/class/webSearchUrl.st new file mode 100644 index 00000000..b6457420 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/class/webSearchUrl.st @@ -0,0 +1,4 @@ +constants +webSearchUrl + + ^ 'https://www.googleapis.com/customsearch/v1?key=', ALGCore googleAPIKey ,'&cx=', ALGCore googleEngineId ,'&q=' \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/class/yieldTop.st b/packages/Algernon.package/ALGWebSearchType.class/class/yieldTop.st new file mode 100644 index 00000000..44cbc653 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/class/yieldTop.st @@ -0,0 +1,4 @@ +constants +yieldTop + + ^ false \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/algertemChildrenList.st b/packages/Algernon.package/ALGWebSearchType.class/instance/algertemChildrenList.st new file mode 100644 index 00000000..3fc1da19 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/algertemChildrenList.st @@ -0,0 +1,4 @@ +children +algertemChildrenList + + ^ self webResults \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/createActionSearch.st b/packages/Algernon.package/ALGWebSearchType.class/instance/createActionSearch.st new file mode 100644 index 00000000..6fec8a3c --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/createActionSearch.st @@ -0,0 +1,12 @@ +actions +createActionSearch + + ^ (ALGAction + withName: 'search' + rank: 0 + target: self + selector: #tabIn + args: OrderedCollection new) + hidden: true; + keepOpen: true; + yourself \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/createListOfAlgeractions.st b/packages/Algernon.package/ALGWebSearchType.class/instance/createListOfAlgeractions.st new file mode 100644 index 00000000..f0624b16 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/createListOfAlgeractions.st @@ -0,0 +1,5 @@ +actions +createListOfAlgeractions + + ^ self createSortedListFrom: { + self createActionSearch} \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/createWebResultItemsFrom..st b/packages/Algernon.package/ALGWebSearchType.class/instance/createWebResultItemsFrom..st new file mode 100644 index 00000000..74f68417 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/createWebResultItemsFrom..st @@ -0,0 +1,14 @@ +web +createWebResultItemsFrom: aJsonArray + + | webResults | + + webResults := OrderedCollection new. + + aJsonArray ifNil: [Exception signal: 'No results found!']. + aJsonArray keysAndValuesDo: [:key :value | + webResults add: (ALGWebResultItem + createFrom: value + withRank: (key * -1))]. + + ^ webResults \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/displayError..st b/packages/Algernon.package/ALGWebSearchType.class/instance/displayError..st new file mode 100644 index 00000000..839cf1ce --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/displayError..st @@ -0,0 +1,9 @@ +web +displayError: anException + + Transcript show: '===Algernon WebSearch==='. + Transcript cr. + Transcript show: anException. + Transcript cr. + + self typeObject updateStatusMessage: 'ERROR: ', anException messageText \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/evaluateResponse..st b/packages/Algernon.package/ALGWebSearchType.class/instance/evaluateResponse..st new file mode 100644 index 00000000..6251f59c --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/evaluateResponse..st @@ -0,0 +1,15 @@ +web +evaluateResponse: aWebResponse + + [| json | + self typeObject resetStatusMessage. + + json := Json readFrom: (aWebResponse content readStream). + (json includesKey: 'error') + ifTrue: [Exception signal: ((json at: 'error') at: 'message')]. + self webResults: (self createWebResultItemsFrom: (json at: 'items'))] + on: Exception do: [:exception | ^ self displayError: exception]. + + "TODO: Find a better way of updating the children without clearing the complete cache." + self typeObject itemProvider cache clear. + self typeObject updateItemList \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/getSearchString.st b/packages/Algernon.package/ALGWebSearchType.class/instance/getSearchString.st new file mode 100644 index 00000000..feabce5b --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/getSearchString.st @@ -0,0 +1,11 @@ +actions +getSearchString + + | textFieldContents startIndex | + + textFieldContents := self typeObject topmostQuery. + startIndex := 1. + (textFieldContents beginsWith: 'web ') + ifTrue: [ startIndex := 5 ]. + + ^ (textFieldContents copyFrom: startIndex to: textFieldContents size) asString \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/hasChildren.st b/packages/Algernon.package/ALGWebSearchType.class/instance/hasChildren.st new file mode 100644 index 00000000..41f58cc0 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/hasChildren.st @@ -0,0 +1,4 @@ +children +hasChildren + + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/isRelevantForAllStrings.st b/packages/Algernon.package/ALGWebSearchType.class/instance/isRelevantForAllStrings.st new file mode 100644 index 00000000..2435ea34 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/isRelevantForAllStrings.st @@ -0,0 +1,4 @@ +accessing +isRelevantForAllStrings + + ^ true \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/name.st b/packages/Algernon.package/ALGWebSearchType.class/instance/name.st new file mode 100644 index 00000000..f5b49fd4 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Search the web' \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/tabIn.st b/packages/Algernon.package/ALGWebSearchType.class/instance/tabIn.st new file mode 100644 index 00000000..78df3e6e --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/tabIn.st @@ -0,0 +1,4 @@ +actions +tabIn + + self typeObject showChildList \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/triggerWebSearch.st b/packages/Algernon.package/ALGWebSearchType.class/instance/triggerWebSearch.st new file mode 100644 index 00000000..c77fc7b1 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/triggerWebSearch.st @@ -0,0 +1,10 @@ +web +triggerWebSearch + + | url | + + url := self class webSearchUrl, self getSearchString encodeForHTTP. + + [(self typeObject webClient) + asyncHttpGet: url response: [ :response | self evaluateResponse: response ]] + on: ConnectionRefused do: [:exception | self displayError: exception] \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/typeName.st b/packages/Algernon.package/ALGWebSearchType.class/instance/typeName.st new file mode 100644 index 00000000..d0f53f17 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/typeName.st @@ -0,0 +1,4 @@ +accessing +typeName + + ^ 'Web Search' \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/updateChildren.st b/packages/Algernon.package/ALGWebSearchType.class/instance/updateChildren.st new file mode 100644 index 00000000..ac6ecef9 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/updateChildren.st @@ -0,0 +1,6 @@ +children +updateChildren + + self typeObject updateStatusMessage: 'Loading...'. + [self triggerWebSearch] + on: Exception do: [:exception | self displayError: exception] \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/webResults..st b/packages/Algernon.package/ALGWebSearchType.class/instance/webResults..st new file mode 100644 index 00000000..1de3814c --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/webResults..st @@ -0,0 +1,4 @@ +accessing +webResults: aCollection + + webResults := aCollection \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/instance/webResults.st b/packages/Algernon.package/ALGWebSearchType.class/instance/webResults.st new file mode 100644 index 00000000..edcebfa8 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/instance/webResults.st @@ -0,0 +1,4 @@ +accessing +webResults + + ^ webResults ifNil: [webResults := {}] \ No newline at end of file diff --git a/packages/Algernon.package/ALGWebSearchType.class/methodProperties.json b/packages/Algernon.package/ALGWebSearchType.class/methodProperties.json new file mode 100644 index 00000000..bb921fb8 --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/methodProperties.json @@ -0,0 +1,23 @@ +{ + "class" : { + "algertemList:" : "YD 8/5/2022 13:47", + "icon" : "YD 6/22/2022 11:35", + "webSearchUrl" : "YD 6/15/2022 14:37", + "yieldTop" : "YD 8/5/2022 13:47" }, + "instance" : { + "algertemChildrenList" : "YD 7/31/2022 14:30", + "createActionSearch" : "YD 6/22/2022 11:38", + "createListOfAlgeractions" : "PureBehaviorTest 8/5/2022 12:22", + "createWebResultItemsFrom:" : "YD 8/5/2022 13:46", + "displayError:" : "YD 7/19/2022 15:49", + "evaluateResponse:" : "PureBehaviorTest 8/5/2022 12:37", + "getSearchString" : "YD 8/5/2022 13:46", + "hasChildren" : "fw 7/30/2015 14:15", + "isRelevantForAllStrings" : "YD 8/5/2022 13:46", + "name" : "YD 6/3/2022 18:21", + "tabIn" : "YD 6/19/2022 20:09", + "triggerWebSearch" : "PureBehaviorTest 8/5/2022 12:30", + "typeName" : "YD 6/3/2022 18:21", + "updateChildren" : "YD 7/19/2022 15:42", + "webResults" : "YD 8/5/2022 13:47", + "webResults:" : "YD 8/5/2022 13:47" } } diff --git a/packages/Algernon.package/ALGWebSearchType.class/properties.json b/packages/Algernon.package/ALGWebSearchType.class/properties.json new file mode 100644 index 00000000..0862a9ef --- /dev/null +++ b/packages/Algernon.package/ALGWebSearchType.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "Algernon", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "webResults" ], + "name" : "ALGWebSearchType", + "pools" : [ + ], + "super" : "ALGType", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/README.md b/packages/AlgernonTests.package/ALGFakeActionTarget.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/lastMessageReceived.st b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/lastMessageReceived.st new file mode 100644 index 00000000..7100ba4f --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/lastMessageReceived.st @@ -0,0 +1,4 @@ +accessing +lastMessageReceived + + ^ self messagesReceived last first \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/messagesReceived..st b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/messagesReceived..st new file mode 100644 index 00000000..a17ed640 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/messagesReceived..st @@ -0,0 +1,4 @@ +accessing +messagesReceived: anOrderedCollection + + messagesReceived := anOrderedCollection \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/messagesReceived.st b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/messagesReceived.st new file mode 100644 index 00000000..3f915548 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/messagesReceived.st @@ -0,0 +1,4 @@ +accessing +messagesReceived + + ^ messagesReceived ifNil: [messagesReceived := OrderedCollection new] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/perform.withArguments..st b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/perform.withArguments..st new file mode 100644 index 00000000..39a467ac --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeActionTarget.class/instance/perform.withArguments..st @@ -0,0 +1,4 @@ +message handling +perform: aSelector withArguments: args + + self messagesReceived add: {aSelector . args} \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/methodProperties.json b/packages/AlgernonTests.package/ALGFakeActionTarget.class/methodProperties.json new file mode 100644 index 00000000..b500db2f --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeActionTarget.class/methodProperties.json @@ -0,0 +1,8 @@ +{ + "class" : { + }, + "instance" : { + "lastMessageReceived" : "LH 7/13/2022 16:26", + "messagesReceived" : "LH 7/13/2022 16:23", + "messagesReceived:" : "LH 7/13/2022 16:23", + "perform:withArguments:" : "LH 7/13/2022 16:25" } } diff --git a/packages/AlgernonTests.package/ALGFakeActionTarget.class/properties.json b/packages/AlgernonTests.package/ALGFakeActionTarget.class/properties.json new file mode 100644 index 00000000..6ae033e2 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeActionTarget.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "messagesReceived" ], + "name" : "ALGFakeActionTarget", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGFakeBranch.class/README.md b/packages/AlgernonTests.package/ALGFakeBranch.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/AlgernonTests.package/ALGFakeBranch.class/instance/shortName..st b/packages/AlgernonTests.package/ALGFakeBranch.class/instance/shortName..st new file mode 100644 index 00000000..36e4ee0b --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeBranch.class/instance/shortName..st @@ -0,0 +1,3 @@ +accessing +shortName: anObject + shortName := anObject \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeBranch.class/instance/shortName.st b/packages/AlgernonTests.package/ALGFakeBranch.class/instance/shortName.st new file mode 100644 index 00000000..7909f873 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeBranch.class/instance/shortName.st @@ -0,0 +1,3 @@ +accessing +shortName + ^ shortName \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeBranch.class/methodProperties.json b/packages/AlgernonTests.package/ALGFakeBranch.class/methodProperties.json new file mode 100644 index 00000000..0219a79c --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeBranch.class/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "shortName" : "LH 7/13/2022 17:32", + "shortName:" : "LH 7/13/2022 17:32" } } diff --git a/packages/AlgernonTests.package/ALGFakeBranch.class/properties.json b/packages/AlgernonTests.package/ALGFakeBranch.class/properties.json new file mode 100644 index 00000000..6dec4d18 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeBranch.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "shortName" ], + "name" : "ALGFakeBranch", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/README.md b/packages/AlgernonTests.package/ALGFakeOSProcess.class/README.md new file mode 100644 index 00000000..58522b9f --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/README.md @@ -0,0 +1,5 @@ +ALGFakeOSProcess is used to imitate an OSProcess for testing system internet browser opening. + +Instance Variables + succeeded: Boolean has the command succeeded + commandHistory: Collection collection of last commands \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/class/newWith..st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/class/newWith..st new file mode 100644 index 00000000..c1a8d273 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/class/newWith..st @@ -0,0 +1,6 @@ +instance creation +newWith: aBoolean + + ^ self new + succeeded: aBoolean; + yourself \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/class/platformName.st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/class/platformName.st new file mode 100644 index 00000000..ad514ae1 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/class/platformName.st @@ -0,0 +1,4 @@ +version dependent +platformName + + ^ 'unix' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/commandHistory..st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/commandHistory..st new file mode 100644 index 00000000..31706a17 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/commandHistory..st @@ -0,0 +1,4 @@ +accessing +commandHistory: anOrderedCollection + + commandHistory := anOrderedCollection \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/commandHistory.st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/commandHistory.st new file mode 100644 index 00000000..b3582ba1 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/commandHistory.st @@ -0,0 +1,4 @@ +accessing +commandHistory + + ^ commandHistory ifNil: [commandHistory := OrderedCollection new] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/platformName.st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/platformName.st new file mode 100644 index 00000000..90a10e98 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/platformName.st @@ -0,0 +1,4 @@ +accessing +platformName + + ^ self class platformName \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/succeeded..st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/succeeded..st new file mode 100644 index 00000000..8ab6da42 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/succeeded..st @@ -0,0 +1,4 @@ +accessing +succeeded: aBoolean + + succeeded := aBoolean \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/succeeded.st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/succeeded.st new file mode 100644 index 00000000..34df843e --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/succeeded.st @@ -0,0 +1,4 @@ +accessing +succeeded + + ^ succeeded \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/waitForCommand..st b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/waitForCommand..st new file mode 100644 index 00000000..50c3915f --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/instance/waitForCommand..st @@ -0,0 +1,6 @@ +external command processing +waitForCommand: aString + + self commandHistory add: aString. + + ^ self class newWith: false \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/methodProperties.json b/packages/AlgernonTests.package/ALGFakeOSProcess.class/methodProperties.json new file mode 100644 index 00000000..1ebb706d --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/methodProperties.json @@ -0,0 +1,11 @@ +{ + "class" : { + "newWith:" : "PureBehaviorTest 8/5/2022 12:22", + "platformName" : "ef 8/3/2022 18:43" }, + "instance" : { + "commandHistory" : "ef 8/3/2022 20:03", + "commandHistory:" : "ef 8/3/2022 20:04", + "platformName" : "ef 8/3/2022 20:00", + "succeeded" : "ef 8/3/2022 18:43", + "succeeded:" : "ef 8/3/2022 18:44", + "waitForCommand:" : "ef 8/3/2022 20:06" } } diff --git a/packages/AlgernonTests.package/ALGFakeOSProcess.class/properties.json b/packages/AlgernonTests.package/ALGFakeOSProcess.class/properties.json new file mode 100644 index 00000000..dee92d72 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeOSProcess.class/properties.json @@ -0,0 +1,15 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "succeeded", + "commandHistory" ], + "name" : "ALGFakeOSProcess", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGFakeWebClient.class/README.md b/packages/AlgernonTests.package/ALGFakeWebClient.class/README.md new file mode 100644 index 00000000..a303fb12 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebClient.class/README.md @@ -0,0 +1 @@ +Mocks the ALGWebClient to answer request synchronous. \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeWebClient.class/class/asyncHttpGet.withPriority.response..st b/packages/AlgernonTests.package/ALGFakeWebClient.class/class/asyncHttpGet.withPriority.response..st new file mode 100644 index 00000000..2f947ec7 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebClient.class/class/asyncHttpGet.withPriority.response..st @@ -0,0 +1,5 @@ +as yet unclassified +asyncHttpGet: urlString withPriority: anInteger response: aBlock + "Fake asynchronous web request" + + aBlock value: (ALGFakeWebResponse new) \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeWebClient.class/methodProperties.json b/packages/AlgernonTests.package/ALGFakeWebClient.class/methodProperties.json new file mode 100644 index 00000000..6d79faa3 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebClient.class/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + "asyncHttpGet:withPriority:response:" : "PureBehaviorTest 8/5/2022 12:21" }, + "instance" : { + } } diff --git a/packages/AlgernonTests.package/ALGFakeWebClient.class/properties.json b/packages/AlgernonTests.package/ALGFakeWebClient.class/properties.json new file mode 100644 index 00000000..440662c9 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebClient.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "ALGFakeWebClient", + "pools" : [ + ], + "super" : "ALGWebClient", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGFakeWebResponse.class/README.md b/packages/AlgernonTests.package/ALGFakeWebResponse.class/README.md new file mode 100644 index 00000000..90aa682c --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebResponse.class/README.md @@ -0,0 +1 @@ +A WebResponse with a predefined content string. \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeWebResponse.class/instance/content.st b/packages/AlgernonTests.package/ALGFakeWebResponse.class/instance/content.st new file mode 100644 index 00000000..e56088be --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebResponse.class/instance/content.st @@ -0,0 +1,4 @@ +accessing +content + + ^ self fakeData \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeWebResponse.class/instance/fakeData.st b/packages/AlgernonTests.package/ALGFakeWebResponse.class/instance/fakeData.st new file mode 100644 index 00000000..29dec91c --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebResponse.class/instance/fakeData.st @@ -0,0 +1,12 @@ +accessing +fakeData + + ^ '{ + "items": [ + { + "title": "Algernon", + "link": "https://www.algernon.com/", + "displayLink": "www.algernon.com" + } + ] + }' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGFakeWebResponse.class/methodProperties.json b/packages/AlgernonTests.package/ALGFakeWebResponse.class/methodProperties.json new file mode 100644 index 00000000..fb30bcc0 --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebResponse.class/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "content" : "YD 7/14/2022 12:11", + "fakeData" : "YD 7/14/2022 12:16" } } diff --git a/packages/AlgernonTests.package/ALGFakeWebResponse.class/properties.json b/packages/AlgernonTests.package/ALGFakeWebResponse.class/properties.json new file mode 100644 index 00000000..58fcbb5b --- /dev/null +++ b/packages/AlgernonTests.package/ALGFakeWebResponse.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "ALGFakeWebResponse", + "pools" : [ + ], + "super" : "WebResponse", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/ArbitraryCodeRule..st b/packages/AlgernonTests.package/ALGLinting.class/instance/ArbitraryCodeRule..st deleted file mode 100644 index 1fd69027..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/ArbitraryCodeRule..st +++ /dev/null @@ -1,17 +0,0 @@ -private -ArbitraryCodeRule: rule -"Verifies an arbritrary code rule." - | testRunner testObjects positiveResults | - testRunner := (SLTestRunner new) environment: (SLDefaultEnvironment new). - testObjects := SystemNavigation default allClasses . - - testObjects := testObjects select: [:x| x class category beginsWith: 'Algernon' ]. - testObjects := testObjects collect: [ :aObject | - aObject as: SLTestObject]. - testRunner runOnTests: {rule} andTestObjects: testObjects. - positiveResults := testObjects select: [:testObject | | result | - result := testObject resultOf: rule. - (result respondsTo: #>) - ifTrue: [result result > 0] - ifFalse: [result isNegative ] ]. - self assert: 0 equals: positiveResults size. \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/collectTestObjects.st b/packages/AlgernonTests.package/ALGLinting.class/instance/collectTestObjects.st new file mode 100644 index 00000000..9c1c1c84 --- /dev/null +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/collectTestObjects.st @@ -0,0 +1,15 @@ +helpers +collectTestObjects + + | classes | + + classes := SystemNavigation default allClasses. + classes := classes select: [ :each | each class category beginsWith: 'Algernon' ]. + (Smalltalk classNamed: #SquitBrowser) ifNil: + [classes := classes difference: + {ALGGitProjectType. + ALGTestGitTypes. + ALGGitBranchType. + ALGGitLocalBranchType. + ALGGitRemoteBranchType}]. + ^ classes collect: [ :each | each as: SLTestObject ] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/defaultTimeout.st b/packages/AlgernonTests.package/ALGLinting.class/instance/defaultTimeout.st index d05b783f..c76a04fd 100644 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/defaultTimeout.st +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/defaultTimeout.st @@ -1,4 +1,4 @@ helpers defaultTimeout - ^ 60 "seconds" \ No newline at end of file + ^ 180 "seconds" \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/evaluateClassTests..st b/packages/AlgernonTests.package/ALGLinting.class/instance/evaluateClassTests..st new file mode 100644 index 00000000..8b8640f6 --- /dev/null +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/evaluateClassTests..st @@ -0,0 +1,11 @@ +helpers +evaluateClassTests: aCollection + + | positiveResults | + + positiveResults := aCollection select: [ :classTest | + (classTest methods select: [ :methodTest | + (self evaluateMethodTest: methodTest) notEmpty]) notEmpty]. + + (positiveResults notEmpty) ifTrue: [ + self signalFailure: 'ALGLint found problems in ' , positiveResults size asString , ' class(es). (See Transcript or log above)'] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/evaluateMethodTest..st b/packages/AlgernonTests.package/ALGLinting.class/instance/evaluateMethodTest..st new file mode 100644 index 00000000..9782ed29 --- /dev/null +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/evaluateMethodTest..st @@ -0,0 +1,17 @@ +helpers +evaluateMethodTest: aSLMethodTest + + | results | + + results := aSLMethodTest results. + ^ results select: [ :result | + result value ifTrue: [ + Transcript cr. + Transcript show: '=== ALGLint Failure ==='. + Transcript cr. + Transcript show: '''' , aSLMethodTest name , ''' failed on ''' , result testData name , '''.'. + Transcript cr. + Transcript show: 'Description: ' , result testData description. + Transcript cr.]. + result value] + \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/lintingRules.st b/packages/AlgernonTests.package/ALGLinting.class/instance/lintingRules.st new file mode 100644 index 00000000..d7be2153 --- /dev/null +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/lintingRules.st @@ -0,0 +1,83 @@ +helpers +lintingRules + + ^ { + "Bugs" + #smallLintBooleanPrecedence. + #smallLintMethodModifierFinal. + #smallLintMethodModifierSuper. + #smallLintMethodModifierOverride. + #smallLintUsesTrue. + #smallLintOverridesSpecialMessage. + #smallLintSubclassResponsibilityNotDefined. + #smallLintMethodModifierSuper. + #smallLintUndeclaredReference. + #smallLintSendsUnknownMessageToGlobal. + #smallLintVariableNotDefined. + + "Possible Bugs" + #smallLintAddRemoveDependents. + #smallLintAbstractClass. + #smallLintClassInstVarNotInitialized. + #smallLintEmptyExceptionHandler. + #smallLintDefinesEqualNotHash. + #smallLintFloatEqualityComparison. + #smallLintLiteralArrayContainsComma. + #smallLintLiteralArrayContainsSuspiciousTrueFalseOrNil. + #smallLintCollectionCopyEmpty. + #smallLintReturnsIfTrue. + #smallLintReturnInEnsure. + #smallLintTempsReadBeforeWritten. + #smallLintThreeElementPoint. + #smallLintUncommonMessageSend. + #smallLintUnconditionalRecursion. + #smallLintUnpackagedCode. + #smallLintEqualNotUsed. + #smallLintFileBlocks. + #smallLintUsesAdd. + + "Code-Style" + #smallLintDefinesEqualNotHash. + #smallLintEqualNotUsed. + #smallLintEqualsTrue. + #smallLintExtraBlock. + #smallLintJustSendsSuper. + #smallLintMethodModifierOverride. + #smallLintReturnsIfTrue. + #smallLintWhileTrue. + + "Intention revealing" + #smallLintClassVariableCapitalization. + #smallLintContains. + #smallLintDetectContains. + #smallLintLiteralArrayCharacters. + #smallLintMissingSubclassResponsibility. + #smallLintSearchingLiteral. + #smallLintSizeCheck. + #smallLintTemporaryVariableCapitalization. + #smallLintCollectSelectNotUsed. + + "Spelling" + #smallLintClassCategoriesSpelling. + #smallLintClassVariableNamesSpelling. + + "Unnecessary code" + #smallLintAssignmentWithoutEffect. + #smallLintEndTrueFalse. + #smallLintJustSendsSuper. + #smallLintEqualsTrue. + #smallLintExtraBlock. + #smallLintUnreferencedVariables. + + "Miscellaneous" + #smallLintAsOrderedCollectionNotNeeded. + #smallLintAssignmentInBlock. + #classNameInSelector:. + #smallLintExcessiveInheritance. + #smallLintIfTrueBlocks. + #smallLintStringConcatenation. + #smallLintUnclassifiedMethods. + #smallLintUnoptimizedAndOr. + #smallLintUnoptimizedToDo. + #smallLintYourselfNotUsed. + } \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/setUp.st b/packages/AlgernonTests.package/ALGLinting.class/instance/setUp.st new file mode 100644 index 00000000..8efdfc1c --- /dev/null +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/setUp.st @@ -0,0 +1,9 @@ +running +setUp + + Smalltalk globals + at: #ALGSquitBrowser put: nil; + at: #ALGRemoteBranch put: nil; + at: #ALGOSProcess put: nil. + + super setUp diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testAddAndRemoveDependentMessages.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testAddAndRemoveDependentMessages.st deleted file mode 100644 index 0356cf5d..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testAddAndRemoveDependentMessages.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testAddAndRemoveDependentMessages - self ArbitraryCodeRule: #smallLintAddRemoveDependents \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testLinting.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testLinting.st new file mode 100644 index 00000000..f078e0cf --- /dev/null +++ b/packages/AlgernonTests.package/ALGLinting.class/instance/testLinting.st @@ -0,0 +1,11 @@ +helpers +testLinting + "Test all Algernon methods for all rules defined in #lintingRules" + + | testRunner testObjects | + + testRunner := (SLTestRunner new) environment: (SLDefaultEnvironment new). + testObjects := self collectTestObjects. + + testRunner runOnTests: self lintingRules andTestObjects: testObjects. + self evaluateClassTests: testObjects \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAbstractClass.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAbstractClass.st deleted file mode 100644 index fcf82e51..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAbstractClass.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoAbstractClass - self ArbitraryCodeRule: #smallLintAbstractClass \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAsOrderedCollectionNotNeeded.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAsOrderedCollectionNotNeeded.st deleted file mode 100644 index f03274ac..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAsOrderedCollectionNotNeeded.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoAsOrderedCollectionNotNeeded - self ArbitraryCodeRule: #smallLintAsOrderedCollectionNotNeeded \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAssignmentInBlock.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAssignmentInBlock.st deleted file mode 100644 index f93888ba..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAssignmentInBlock.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoAssignmentInBlock - self ArbitraryCodeRule: #smallLintAssignmentInBlock \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAssignmentWithoutEffect.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAssignmentWithoutEffect.st deleted file mode 100644 index 8a1645a2..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoAssignmentWithoutEffect.st +++ /dev/null @@ -1,3 +0,0 @@ -unnecessary code -testNoAssignmentWithoutEffect - self ArbitraryCodeRule: #smallLintAssignmentWithoutEffect \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoBooleanPrecedence.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoBooleanPrecedence.st deleted file mode 100644 index 4999fff5..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoBooleanPrecedence.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoBooleanPrecedence - self ArbitraryCodeRule: #smallLintBooleanPrecedence \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassCategoryMisspelling.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassCategoryMisspelling.st deleted file mode 100644 index 08265c51..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassCategoryMisspelling.st +++ /dev/null @@ -1,3 +0,0 @@ -spelling -testNoClassCategoryMisspelling - self ArbitraryCodeRule: #smallLintClassCategoriesSpelling \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassInstVarNotInitialized.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassInstVarNotInitialized.st deleted file mode 100644 index 85bed013..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassInstVarNotInitialized.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoClassInstVarNotInitialized - self ArbitraryCodeRule: #smallLintClassInstVarNotInitialized \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassNameInSelector.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassNameInSelector.st deleted file mode 100644 index 5a21fbeb..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassNameInSelector.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoClassNameInSelector - self ArbitraryCodeRule: #classNameInSelector: \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassVariableCapitalization.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassVariableCapitalization.st deleted file mode 100644 index b9641036..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassVariableCapitalization.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoClassVariableCapitalization - self ArbitraryCodeRule: #smallLintClassVariableCapitalization \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassVariableMisspelling.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassVariableMisspelling.st deleted file mode 100644 index 41107f4a..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoClassVariableMisspelling.st +++ /dev/null @@ -1,3 +0,0 @@ -spelling -testNoClassVariableMisspelling - self ArbitraryCodeRule: #smallLintClassVariableNamesSpelling \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoContains.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoContains.st deleted file mode 100644 index 2cf005ee..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoContains.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoContains - self ArbitraryCodeRule: #smallLintContains \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoDefinesEqualNotHash.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoDefinesEqualNotHash.st deleted file mode 100644 index 13d5ca3d..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoDefinesEqualNotHash.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoDefinesEqualNotHash - self ArbitraryCodeRule: #smallLintDefinesEqualNotHash \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoDetectContains.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoDetectContains.st deleted file mode 100644 index aa25c421..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoDetectContains.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoDetectContains - self ArbitraryCodeRule: #smallLintDetectContains \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEmptyExceptionHandler.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEmptyExceptionHandler.st deleted file mode 100644 index 291ab363..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEmptyExceptionHandler.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoEmptyExceptionHandler - self ArbitraryCodeRule: #smallLintEmptyExceptionHandler \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualNotUsed.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualNotUsed.st deleted file mode 100644 index 218546b7..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualNotUsed.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoEqualNotUsed - self ArbitraryCodeRule: #smallLintEqualNotUsed \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualWithoutHash.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualWithoutHash.st deleted file mode 100644 index b7b5790e..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualWithoutHash.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoEqualWithoutHash - self ArbitraryCodeRule: #smallLintDefinesEqualNotHash \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualsTrue.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualsTrue.st deleted file mode 100644 index dde50aa2..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoEqualsTrue.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoEqualsTrue - self ArbitraryCodeRule: #smallLintEqualsTrue \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoExcessiveInheritance.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoExcessiveInheritance.st deleted file mode 100644 index 06173d88..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoExcessiveInheritance.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoExcessiveInheritance - self ArbitraryCodeRule: #smallLintExcessiveInheritance \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoExtraBlock.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoExtraBlock.st deleted file mode 100644 index ace30035..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoExtraBlock.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoExtraBlock - self ArbitraryCodeRule: #smallLintExtraBlock \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoFloatEqualityComparison.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoFloatEqualityComparison.st deleted file mode 100644 index 3b3f4b20..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoFloatEqualityComparison.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoFloatEqualityComparison - self ArbitraryCodeRule: #smallLintFloatEqualityComparison \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoJustSendsSuper.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoJustSendsSuper.st deleted file mode 100644 index a913b804..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoJustSendsSuper.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoJustSendsSuper - self ArbitraryCodeRule: #smallLintJustSendsSuper \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayCharacters.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayCharacters.st deleted file mode 100644 index 56804c99..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayCharacters.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoLiteralArrayCharacters - self ArbitraryCodeRule: #smallLintLiteralArrayCharacters \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayContainsComma.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayContainsComma.st deleted file mode 100644 index 687a30b5..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayContainsComma.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoLiteralArrayContainsComma - self ArbitraryCodeRule: #smallLintLiteralArrayContainsComma \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayContainsSuspiciousTrueFalseOrNil.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayContainsSuspiciousTrueFalseOrNil.st deleted file mode 100644 index 6f94a2fe..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoLiteralArrayContainsSuspiciousTrueFalseOrNil.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoLiteralArrayContainsSuspiciousTrueFalseOrNil - self ArbitraryCodeRule: #smallLintLiteralArrayContainsSuspiciousTrueFalseOrNil \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierFinal.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierFinal.st deleted file mode 100644 index ab225d41..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierFinal.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoMethodModifierFinal - self ArbitraryCodeRule: #smallLintMethodModifierFinal \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierOverride.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierOverride.st deleted file mode 100644 index a209d8f9..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierOverride.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoMethodModifierOverride - self ArbitraryCodeRule: #smallLintMethodModifierOverride \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierSuper.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierSuper.st deleted file mode 100644 index b16482d3..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMethodModifierSuper.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoMethodModifierSuper - self ArbitraryCodeRule: #smallLintMethodModifierSuper \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingCopyEmpty.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingCopyEmpty.st deleted file mode 100644 index 94813e5f..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingCopyEmpty.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoMissingCopyEmpty - self ArbitraryCodeRule: #smallLintCollectionCopyEmpty \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingSubclassResponsibility.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingSubclassResponsibility.st deleted file mode 100644 index d2fa3690..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingSubclassResponsibility.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoMissingSubclassResponsibility - self ArbitraryCodeRule: #smallLintMissingSubclassResponsibility \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingSuperImplementation.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingSuperImplementation.st deleted file mode 100644 index ad63eb82..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMissingSuperImplementation.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoMissingSuperImplementation - self ArbitraryCodeRule: #smallLintMethodModifierOverride \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMisuseOfBooleans.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMisuseOfBooleans.st deleted file mode 100644 index 4dace287..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoMisuseOfBooleans.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoMisuseOfBooleans - self ArbitraryCodeRule: #smallLintUsesTrue \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoNonBlocksInSpecialMessage.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoNonBlocksInSpecialMessage.st deleted file mode 100644 index a0cca495..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoNonBlocksInSpecialMessage.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoNonBlocksInSpecialMessage - self ArbitraryCodeRule: #smallLintIfTrueBlocks \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoOverridesSpecialMessage.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoOverridesSpecialMessage.st deleted file mode 100644 index d4dfc554..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoOverridesSpecialMessage.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoOverridesSpecialMessage - self ArbitraryCodeRule: #smallLintOverridesSpecialMessage \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoRepeatedLiteralEquality.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoRepeatedLiteralEquality.st deleted file mode 100644 index 75c0db68..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoRepeatedLiteralEquality.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoRepeatedLiteralEquality - self ArbitraryCodeRule: #smallLintSearchingLiteral \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnIfTrueIfFalseBlocks.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnIfTrueIfFalseBlocks.st deleted file mode 100644 index a1b38712..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnIfTrueIfFalseBlocks.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoReturnIfTrueIfFalseBlocks - self ArbitraryCodeRule: #smallLintReturnsIfTrue \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnInEnsureBlock.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnInEnsureBlock.st deleted file mode 100644 index 82ffa684..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnInEnsureBlock.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoReturnInEnsureBlock - self ArbitraryCodeRule: #smallLintReturnInEnsure \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnsIfTrue.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnsIfTrue.st deleted file mode 100644 index c774011c..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoReturnsIfTrue.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoReturnsIfTrue - self ArbitraryCodeRule: #smallLintReturnsIfTrue \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSameStatementAtEndOfBlock.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSameStatementAtEndOfBlock.st deleted file mode 100644 index 70c29c37..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSameStatementAtEndOfBlock.st +++ /dev/null @@ -1,3 +0,0 @@ -unnecessary code -testNoSameStatementAtEndOfBlock - self ArbitraryCodeRule: #smallLintEndTrueFalse \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSizeCheck.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSizeCheck.st deleted file mode 100644 index 9e2ef470..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSizeCheck.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoSizeCheck - self ArbitraryCodeRule: #smallLintSizeCheck \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoStringConcatenation.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoStringConcatenation.st deleted file mode 100644 index 3a6229fc..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoStringConcatenation.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoStringConcatenation - self ArbitraryCodeRule: #smallLintStringConcatenation \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSubclassResponsibilityNotDefined.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSubclassResponsibilityNotDefined.st deleted file mode 100644 index 08c137a5..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSubclassResponsibilityNotDefined.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoSubclassResponsibilityNotDefined - self ArbitraryCodeRule: #smallLintSubclassResponsibilityNotDefined \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSuperCallRequired.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSuperCallRequired.st deleted file mode 100644 index 4489f66d..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSuperCallRequired.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoSuperCallRequired - self ArbitraryCodeRule: #smallLintMethodModifierSuper \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSuperForwardingMethod.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSuperForwardingMethod.st deleted file mode 100644 index a0f498cb..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoSuperForwardingMethod.st +++ /dev/null @@ -1,3 +0,0 @@ -unnecessary code -testNoSuperForwardingMethod - self ArbitraryCodeRule: #smallLintJustSendsSuper \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoTemporaryVariableCapitalization.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoTemporaryVariableCapitalization.st deleted file mode 100644 index a875cf96..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoTemporaryVariableCapitalization.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoTemporaryVariableCapitalization - self ArbitraryCodeRule: #smallLintTemporaryVariableCapitalization \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoTempsReadBeforeWritten.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoTempsReadBeforeWritten.st deleted file mode 100644 index ef1b73bd..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoTempsReadBeforeWritten.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoTempsReadBeforeWritten - self ArbitraryCodeRule: #smallLintTempsReadBeforeWritten \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoThreeElementPoint.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoThreeElementPoint.st deleted file mode 100644 index 9e0a2431..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoThreeElementPoint.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoThreeElementPoint - self ArbitraryCodeRule: #smallLintThreeElementPoint \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnclassifiedMethods.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnclassifiedMethods.st deleted file mode 100644 index 8fe42f5c..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnclassifiedMethods.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoUnclassifiedMethods - self ArbitraryCodeRule: #smallLintUnclassifiedMethods \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUncommonMessageSend.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUncommonMessageSend.st deleted file mode 100644 index fee96386..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUncommonMessageSend.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoUncommonMessageSend - self ArbitraryCodeRule: #smallLintUncommonMessageSend \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnconditionalRecursion.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnconditionalRecursion.st deleted file mode 100644 index e25cd90e..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnconditionalRecursion.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoUnconditionalRecursion - self ArbitraryCodeRule: #smallLintUnconditionalRecursion \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUndeclaredVariable.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUndeclaredVariable.st deleted file mode 100644 index b10fa5d9..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUndeclaredVariable.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoUndeclaredVariable - self ArbitraryCodeRule: #smallLintUndeclaredReference \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnknownMessageToGlobal.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnknownMessageToGlobal.st deleted file mode 100644 index 0c849ded..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnknownMessageToGlobal.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoUnknownMessageToGlobal - self ArbitraryCodeRule: #smallLintSendsUnknownMessageToGlobal \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnnecessaryEquals.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnnecessaryEquals.st deleted file mode 100644 index 0b303da3..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnnecessaryEquals.st +++ /dev/null @@ -1,3 +0,0 @@ -unnecessary code -testNoUnnecessaryEquals - self ArbitraryCodeRule: #smallLintEqualsTrue \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnneededBlock.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnneededBlock.st deleted file mode 100644 index 68ec62d3..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnneededBlock.st +++ /dev/null @@ -1,3 +0,0 @@ -unnecessary code -testNoUnneededBlock - self ArbitraryCodeRule: #smallLintExtraBlock \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnoptimizedAndOr.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnoptimizedAndOr.st deleted file mode 100644 index 57c915ed..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnoptimizedAndOr.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoUnoptimizedAndOr - self ArbitraryCodeRule: #smallLintUnoptimizedAndOr \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnoptimizedToDo.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnoptimizedToDo.st deleted file mode 100644 index f7a343f1..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnoptimizedToDo.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoUnoptimizedToDo - self ArbitraryCodeRule: #smallLintUnoptimizedToDo \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnpackagedCode.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnpackagedCode.st deleted file mode 100644 index 19d164ff..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnpackagedCode.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoUnpackagedCode - self ArbitraryCodeRule: #smallLintUnpackagedCode \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedCollectSelect.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedCollectSelect.st deleted file mode 100644 index daba3355..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedCollectSelect.st +++ /dev/null @@ -1,3 +0,0 @@ -intention revealing -testNoUnusedCollectSelect - self ArbitraryCodeRule: #smallLintCollectSelectNotUsed \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedEqualityResult.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedEqualityResult.st deleted file mode 100644 index 4323bb62..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedEqualityResult.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoUnusedEqualityResult - self ArbitraryCodeRule: #smallLintEqualNotUsed \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedVariable.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedVariable.st deleted file mode 100644 index 5fb2f7e3..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedVariable.st +++ /dev/null @@ -1,3 +0,0 @@ -unnecessary code -testNoUnusedVariable - self ArbitraryCodeRule: #smallLintUnreferencedVariables \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedYourselfMessage.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedYourselfMessage.st deleted file mode 100644 index a16abfaa..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnusedYourselfMessage.st +++ /dev/null @@ -1,3 +0,0 @@ -miscellaneous -testNoUnusedYourselfMessage - self ArbitraryCodeRule: #smallLintYourselfNotUsed \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnwindBlockAssignment.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnwindBlockAssignment.st deleted file mode 100644 index 7cc637d6..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUnwindBlockAssignment.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoUnwindBlockAssignment - self ArbitraryCodeRule: #smallLintFileBlocks \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUsesAdd.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUsesAdd.st deleted file mode 100644 index 8af6787d..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoUsesAdd.st +++ /dev/null @@ -1,3 +0,0 @@ -possible bugs -testNoUsesAdd - self ArbitraryCodeRule: #smallLintUsesAdd \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoVariableNotDefined.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoVariableNotDefined.st deleted file mode 100644 index c3ad67c0..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoVariableNotDefined.st +++ /dev/null @@ -1,3 +0,0 @@ -bugs -testNoVariableNotDefined - self ArbitraryCodeRule: #smallLintVariableNotDefined \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoWhileTrue.st b/packages/AlgernonTests.package/ALGLinting.class/instance/testNoWhileTrue.st deleted file mode 100644 index 0944324d..00000000 --- a/packages/AlgernonTests.package/ALGLinting.class/instance/testNoWhileTrue.st +++ /dev/null @@ -1,3 +0,0 @@ -code-style -testNoWhileTrue - self ArbitraryCodeRule: #smallLintWhileTrue \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGLinting.class/methodProperties.json b/packages/AlgernonTests.package/ALGLinting.class/methodProperties.json index 57166fb2..401cc8f5 100644 --- a/packages/AlgernonTests.package/ALGLinting.class/methodProperties.json +++ b/packages/AlgernonTests.package/ALGLinting.class/methodProperties.json @@ -2,70 +2,10 @@ "class" : { }, "instance" : { - "ArbitraryCodeRule:" : "beb 5/28/2020 18:19", + "collectTestObjects" : "ga 7/29/2022 11:02", "defaultTimeout" : "pw 7/12/2020 21:15", - "testAddAndRemoveDependentMessages" : "pw 6/26/2020 23:33", - "testNoAbstractClass" : "KEJ 5/28/2020 16:50", - "testNoAsOrderedCollectionNotNeeded" : "KEJ 5/28/2020 16:42", - "testNoAssignmentInBlock" : "KEJ 5/28/2020 16:53", - "testNoAssignmentWithoutEffect" : "pw 8/4/2020 00:12", - "testNoBooleanPrecedence" : "KEJ 5/28/2020 16:54", - "testNoClassCategoryMisspelling" : "pw 8/4/2020 00:09", - "testNoClassInstVarNotInitialized" : "KEJ 5/28/2020 16:45", - "testNoClassNameInSelector" : "beb 5/28/2020 18:02", - "testNoClassVariableCapitalization" : "KEJ 5/28/2020 16:43", - "testNoClassVariableMisspelling" : "pw 8/4/2020 00:10", - "testNoContains" : "KEJ 5/28/2020 16:55", - "testNoDefinesEqualNotHash" : "KEJ 5/28/2020 16:43", - "testNoDetectContains" : "KEJ 5/28/2020 16:55", - "testNoEmptyExceptionHandler" : "pw 6/26/2020 23:19", - "testNoEqualNotUsed" : "KEJ 5/28/2020 16:44", - "testNoEqualWithoutHash" : "pw 6/26/2020 23:17", - "testNoEqualsTrue" : "KEJ 5/28/2020 16:53", - "testNoExcessiveInheritance" : "pw 6/26/2020 19:43", - "testNoExtraBlock" : "KEJ 5/28/2020 16:42", - "testNoFloatEqualityComparison" : "pw 6/26/2020 23:20", - "testNoJustSendsSuper" : "KEJ 5/28/2020 16:48", - "testNoLiteralArrayCharacters" : "KEJ 5/28/2020 16:47", - "testNoLiteralArrayContainsComma" : "KEJ 5/28/2020 16:46", - "testNoLiteralArrayContainsSuspiciousTrueFalseOrNil" : "KEJ 5/28/2020 16:47", - "testNoMethodModifierFinal" : "KEJ 5/28/2020 16:49", - "testNoMethodModifierOverride" : "KEJ 5/28/2020 16:48", - "testNoMethodModifierSuper" : "KEJ 5/28/2020 16:51", - "testNoMissingCopyEmpty" : "pw 6/26/2020 23:46", - "testNoMissingSubclassResponsibility" : "KEJ 5/28/2020 16:48", - "testNoMissingSuperImplementation" : "pw 6/15/2020 22:18", - "testNoMisuseOfBooleans" : "pw 6/15/2020 22:31", - "testNoNonBlocksInSpecialMessage" : "pw 6/26/2020 22:45", - "testNoOverridesSpecialMessage" : "KEJ 5/28/2020 16:49", - "testNoRepeatedLiteralEquality" : "pw 6/22/2020 23:58", - "testNoReturnIfTrueIfFalseBlocks" : "pw 8/4/2020 00:59", - "testNoReturnInEnsureBlock" : "pw 6/26/2020 23:16", - "testNoReturnsIfTrue" : "KEJ 5/28/2020 16:51", - "testNoSameStatementAtEndOfBlock" : "pw 8/4/2020 00:14", - "testNoSizeCheck" : "KEJ 5/28/2020 16:53", - "testNoStringConcatenation" : "pw 6/26/2020 23:02", - "testNoSubclassResponsibilityNotDefined" : "KEJ 5/28/2020 16:51", - "testNoSuperCallRequired" : "pw 6/15/2020 22:30", - "testNoSuperForwardingMethod" : "pw 8/4/2020 00:22", - "testNoTemporaryVariableCapitalization" : "KEJ 5/28/2020 16:52", - "testNoTempsReadBeforeWritten" : "KEJ 5/28/2020 16:52", - "testNoThreeElementPoint" : "pw 6/26/2020 23:37", - "testNoUnclassifiedMethods" : "beb 5/19/2020 11:04", - "testNoUncommonMessageSend" : "KEJ 5/28/2020 16:52", - "testNoUnconditionalRecursion" : "KEJ 5/28/2020 16:52", - "testNoUndeclaredVariable" : "pw 6/15/2020 22:27", - "testNoUnknownMessageToGlobal" : "pw 6/15/2020 22:28", - "testNoUnnecessaryEquals" : "pw 8/4/2020 00:28", - "testNoUnneededBlock" : "pw 8/4/2020 00:13", - "testNoUnoptimizedAndOr" : "KEJ 5/28/2020 16:54", - "testNoUnoptimizedToDo" : "KEJ 5/28/2020 16:54", - "testNoUnpackagedCode" : "pw 6/26/2020 23:47", - "testNoUnusedCollectSelect" : "pw 6/15/2020 22:38", - "testNoUnusedEqualityResult" : "pw 6/26/2020 23:18", - "testNoUnusedVariable" : "pw 8/4/2020 00:40", - "testNoUnusedYourselfMessage" : "pw 6/26/2020 19:38", - "testNoUnwindBlockAssignment" : "pw 6/26/2020 23:13", - "testNoUsesAdd" : "KEJ 5/28/2020 16:55", - "testNoVariableNotDefined" : "KEJ 5/28/2020 16:56", - "testNoWhileTrue" : "KEJ 5/28/2020 16:56" } } + "evaluateClassTests:" : "PureBehaviorTest 7/30/2022 12:54", + "evaluateMethodTest:" : "ga 7/29/2022 11:03", + "lintingRules" : "ga 7/29/2022 11:06", + "setUp" : "ef 8/4/2022 09:53", + "testLinting" : "ga 7/29/2022 11:01" } } diff --git a/packages/AlgernonTests.package/ALGTestItemList.class/instance/keyTab.st b/packages/AlgernonTests.package/ALGTest.class/instance/keyTab.st similarity index 93% rename from packages/AlgernonTests.package/ALGTestItemList.class/instance/keyTab.st rename to packages/AlgernonTests.package/ALGTest.class/instance/keyTab.st index df141bfd..738d6b3d 100644 --- a/packages/AlgernonTests.package/ALGTestItemList.class/instance/keyTab.st +++ b/packages/AlgernonTests.package/ALGTest.class/instance/keyTab.st @@ -1,4 +1,4 @@ -testing +helpers keyTab self algInstance keyStroke: (ALGFakeKeyboardEvent new keyString: '' shallowCopy; diff --git a/packages/AlgernonTests.package/ALGTest.class/instance/nameOfFirstResult.st b/packages/AlgernonTests.package/ALGTest.class/instance/nameOfFirstResult.st index 6e403a71..f26d3a2c 100644 --- a/packages/AlgernonTests.package/ALGTest.class/instance/nameOfFirstResult.st +++ b/packages/AlgernonTests.package/ALGTest.class/instance/nameOfFirstResult.st @@ -1,3 +1,4 @@ helpers nameOfFirstResult - ^ self items first algerType name \ No newline at end of file + + ^ self items first name \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTest.class/instance/tearDown.st b/packages/AlgernonTests.package/ALGTest.class/instance/tearDown.st index def16881..b2c80937 100644 --- a/packages/AlgernonTests.package/ALGTest.class/instance/tearDown.st +++ b/packages/AlgernonTests.package/ALGTest.class/instance/tearDown.st @@ -1,8 +1,8 @@ running tearDown self algInstance deactivate. - self algInstance delete. (self currentSystemWindows difference: self previouslyOpenedWindows) do: [:each | each delete]. - self restorePreferences. - Algernon currentInstance: self previousAlgernonSingleton. \ No newline at end of file + ALGCore allInstances do: [:each | each delete]. + Algernon currentInstance: self previousAlgernonSingleton. + self restorePreferences \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTest.class/methodProperties.json b/packages/AlgernonTests.package/ALGTest.class/methodProperties.json index b751758f..f2b29d83 100644 --- a/packages/AlgernonTests.package/ALGTest.class/methodProperties.json +++ b/packages/AlgernonTests.package/ALGTest.class/methodProperties.json @@ -36,9 +36,10 @@ "itemMorphs" : "jRo 8/1/2020 11:39", "itemProviderSearch:" : "OH 5/20/2021 14:36", "items" : "jRo 8/1/2020 11:40", + "keyTab" : "YD 7/15/2022 11:43", "loadDefaultPreferences" : "b 8/3/2021 11:24", "moveCursorTo:" : "jRo 7/5/2020 22:15", - "nameOfFirstResult" : "pw 7/8/2020 21:41", + "nameOfFirstResult" : "YD 8/5/2022 14:16", "previousAlgernonSingleton" : "jRo 8/6/2020 10:59", "previousAlgernonSingleton:" : "jRo 8/6/2020 10:59", "previouslyOpenedWindows" : "jRo 7/2/2020 10:52", @@ -50,6 +51,6 @@ "runQuery:withCursorAt:" : "rk 8/5/2020 19:27", "setUp" : "b 8/3/2021 11:32", "storePreferences" : "b 8/3/2021 11:24", - "tearDown" : "b 8/3/2021 11:14", + "tearDown" : "YD 7/19/2022 16:40", "topResults" : "rk 8/3/2020 16:52", "typeNameOfFirstResult" : "rk 7/16/2020 10:14" } } diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/README.md b/packages/AlgernonTests.package/ALGTestGitTypes.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/assertLoadedHistorianEqualsBranchNamed..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/assertLoadedHistorianEqualsBranchNamed..st new file mode 100644 index 00000000..dda88a0c --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/assertLoadedHistorianEqualsBranchNamed..st @@ -0,0 +1,4 @@ +helpers +assertLoadedHistorianEqualsBranchNamed: aString + + self assert: self mockWorkingCopy loadedHistorian equals: (self getHistorianNamed: aString) diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/assertQuery.sendsMessageToSquitBrowser..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/assertQuery.sendsMessageToSquitBrowser..st new file mode 100644 index 00000000..0200b94b --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/assertQuery.sendsMessageToSquitBrowser..st @@ -0,0 +1,9 @@ +helpers +assertQuery: aQuery sendsMessageToSquitBrowser: aSelector + + ALGSquitBrowser := ALGFakeActionTarget new. + + self + runQuery: aQuery; + activateCurrentItemAction; + assert: ALGSquitBrowser lastMessageReceived equals: aSelector diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/denyLoadedHistorianEqualsBranchNamed..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/denyLoadedHistorianEqualsBranchNamed..st new file mode 100644 index 00000000..86f55eac --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/denyLoadedHistorianEqualsBranchNamed..st @@ -0,0 +1,4 @@ +helpers +denyLoadedHistorianEqualsBranchNamed: aString + + self deny: self mockWorkingCopy loadedHistorian equals: (self getHistorianNamed: aString) diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/expectedFailures.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/expectedFailures.st new file mode 100644 index 00000000..aa7c4bce --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/expectedFailures.st @@ -0,0 +1,10 @@ +failures +expectedFailures + + (Smalltalk classNamed: #SquitBrowser) ifNil: + [^ OrderedCollection new + addAll: (self class methodsInCategory: 'testing git project type' asSymbol); + addAll: (self class methodsInCategory: 'testing git branch type' asSymbol); + yourself]. + + ^ {} \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/getHistorianNamed..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/getHistorianNamed..st new file mode 100644 index 00000000..6adde713 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/getHistorianNamed..st @@ -0,0 +1,4 @@ +helpers +getHistorianNamed: aString + + ^ (self mockWorkingCopy repository historians select: [:each | each shortName = aString]) first \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/mockWorkingCopy..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/mockWorkingCopy..st new file mode 100644 index 00000000..0beb050e --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/mockWorkingCopy..st @@ -0,0 +1,3 @@ +accessing +mockWorkingCopy: anObject + mockWorkingCopy := anObject \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/mockWorkingCopy.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/mockWorkingCopy.st new file mode 100644 index 00000000..2a89cf73 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/mockWorkingCopy.st @@ -0,0 +1,3 @@ +accessing +mockWorkingCopy + ^ mockWorkingCopy \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultEmail..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultEmail..st new file mode 100644 index 00000000..562cbab5 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultEmail..st @@ -0,0 +1,4 @@ +accessing +previousGitStampDefaultEmail: aString + + previousGitStampDefaultEmail := aString \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultEmail.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultEmail.st new file mode 100644 index 00000000..9755e8ea --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultEmail.st @@ -0,0 +1,4 @@ +accessing +previousGitStampDefaultEmail + + ^ previousGitStampDefaultEmail \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultName..st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultName..st new file mode 100644 index 00000000..d7e78f3a --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultName..st @@ -0,0 +1,4 @@ +accessing +previousGitStampDefaultName: aString + + previousGitStampDefaultName := aString \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultName.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultName.st new file mode 100644 index 00000000..313eca97 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/previousGitStampDefaultName.st @@ -0,0 +1,4 @@ +accessing +previousGitStampDefaultName + + ^ previousGitStampDefaultName \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/restoreGitStamp.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/restoreGitStamp.st new file mode 100644 index 00000000..b3aede56 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/restoreGitStamp.st @@ -0,0 +1,6 @@ +helpers +restoreGitStamp + + GitStamp + defaultName: self previousGitStampDefaultName; + defaultEmail: self previousGitStampDefaultEmail \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUp.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUp.st new file mode 100644 index 00000000..00fcb089 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUp.st @@ -0,0 +1,10 @@ +running +setUp + + (Smalltalk classNamed: #SquitBrowser) ifNotNil: + [self + setUpGitStamp; + setUpTestWorkingCopy; + setUpTestBranches]. + super setUp. + ALGItemProvider resetItems \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpGitStamp.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpGitStamp.st new file mode 100644 index 00000000..d89f087b --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpGitStamp.st @@ -0,0 +1,10 @@ +helpers +setUpGitStamp + + self + previousGitStampDefaultName: ([GitStamp defaultName] on: GitStampNameRequest do: ['']); + previousGitStampDefaultEmail: ([GitStamp defaultEmail] on: GitStampEmailRequest do: ['']). + + GitStamp + defaultName: 'Hasso'; + defaultEmail: 'mock@email.com' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpTestBranches.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpTestBranches.st new file mode 100644 index 00000000..efa6c29e --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpTestBranches.st @@ -0,0 +1,11 @@ +helpers +setUpTestBranches + + | workingCopy newHistorian | + + workingCopy := self mockWorkingCopy. + workingCopy newVersionMessage: 'Test Commit'. + workingCopy newSaveOperation applyToWorkingCopy. + + newHistorian := SquitBrowser new newHistorianFor: workingCopy repository named: 'test-branch' onError: []. + newHistorian version: workingCopy loadedHistorian version \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpTestWorkingCopy.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpTestWorkingCopy.st new file mode 100644 index 00000000..7be4dddf --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/setUpTestWorkingCopy.st @@ -0,0 +1,14 @@ +helpers +setUpTestWorkingCopy + + | workingCopy | + + workingCopy := SquotWorkingCopy newOnObjectMemory. + workingCopy + name: 'Test Working Copy'; + repository: (SquitRepository new initializeInDirectory: FileSystem memory root); + register. + workingCopy repository unitOfWork activateDuring: + [workingCopy loadedHistorian: (workingCopy repository historianNamed: 'main')]. + + self mockWorkingCopy: workingCopy \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/tearDown.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/tearDown.st new file mode 100644 index 00000000..9e27e920 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/tearDown.st @@ -0,0 +1,13 @@ +running +tearDown + + (Smalltalk classNamed: #SquitBrowser) ifNotNil: + [self + tearDownTestWorkingCopy; + restoreGitStamp]. + + ALGSquitBrowser := nil. + ALGRemoteBranch := nil. + ALGItemProvider resetItems. + + super tearDown \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/tearDownTestWorkingCopy.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/tearDownTestWorkingCopy.st new file mode 100644 index 00000000..71e56434 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/tearDownTestWorkingCopy.st @@ -0,0 +1,5 @@ +helpers +tearDownTestWorkingCopy + + SquotWorkingCopy unregister: self mockWorkingCopy. + self mockWorkingCopy: nil \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBrachTypeGetGitBrowser.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBrachTypeGetGitBrowser.st new file mode 100644 index 00000000..b8eb17a1 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBrachTypeGetGitBrowser.st @@ -0,0 +1,7 @@ +testing git branch type +testGitBrachTypeGetGitBrowser + + | gitBranchType | + + gitBranchType := ALGGitBranchType algertemList first algerType. + self assert: gitBranchType getGitBrowser branchSelection equals: gitBranchType typeObject shortName \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeAppears.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeAppears.st new file mode 100644 index 00000000..3bd3a365 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeAppears.st @@ -0,0 +1,5 @@ +testing git branch type +testGitBranchTypeAppears + + self runQuery: 'Test Working Copy'. + self deny: (self getResultItemForType: 'Git Branch') isNil \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeAppearsAsChildren.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeAppearsAsChildren.st new file mode 100644 index 00000000..9c76326e --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeAppearsAsChildren.st @@ -0,0 +1,9 @@ +testing git branch type +testGitBranchTypeAppearsAsChildren + + self + runQuery: 'Test Working Copy'; + moveCursorTo: 'Git Project'. + self algInstance showChildList. + + self deny: (self getResultItemForType: 'Git Branch') isNil \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeHasChildren.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeHasChildren.st new file mode 100644 index 00000000..ae812d47 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeHasChildren.st @@ -0,0 +1,4 @@ +testing git branch type +testGitBranchTypeHasChildren + + self assert: ALGGitBranchType algertemList first hasChildren \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeOpen.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeOpen.st new file mode 100644 index 00000000..0039bdca --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitBranchTypeOpen.st @@ -0,0 +1,4 @@ +testing git branch type +testGitBranchTypeOpen + + self assertQuery: 'open test-branch (Test Working Copy)' opensNewWindow: 'Git Browser: Test Working Copy (test-branch)' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitLocalBranchTypeSwitch.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitLocalBranchTypeSwitch.st new file mode 100644 index 00000000..449cfcfd --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitLocalBranchTypeSwitch.st @@ -0,0 +1,9 @@ +testing git branch type +testGitLocalBranchTypeSwitch + + self denyLoadedHistorianEqualsBranchNamed: 'test-branch'. + + self + runQuery: 'switch test-branch (Test Working Copy)'; + activateCurrentItemAction; + assertLoadedHistorianEqualsBranchNamed: 'test-branch' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectCommit.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectCommit.st new file mode 100644 index 00000000..163f481a --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectCommit.st @@ -0,0 +1,4 @@ +testing git project type +testGitProjectCommit + + self assertQuery: 'commit Test Working Copy' sendsMessageToSquitBrowser: #actionCommit \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectOpen.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectOpen.st new file mode 100644 index 00000000..a6ec2396 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectOpen.st @@ -0,0 +1,4 @@ +testing git project type +testGitProjectOpen + + self assertQuery: 'open Test Working Copy' opensNewWindow: 'Git Browser: Test Working Copy (main)' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectPull.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectPull.st new file mode 100644 index 00000000..97268604 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectPull.st @@ -0,0 +1,4 @@ +testing git project type +testGitProjectPull + + self assertQuery: 'pull Test Working Copy' sendsMessageToSquitBrowser: #actionPull \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectPush.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectPush.st new file mode 100644 index 00000000..5979616f --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectPush.st @@ -0,0 +1,4 @@ +testing git project type +testGitProjectPush + + self assertQuery: 'push Test Working Copy' sendsMessageToSquitBrowser: #actionPush \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectTypeAppears.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectTypeAppears.st new file mode 100644 index 00000000..fea7319e --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectTypeAppears.st @@ -0,0 +1,5 @@ +testing git project type +testGitProjectTypeAppears + + self runQuery: 'Test Working Copy'. + self deny: (self getResultItemForType: 'Git Project') isNil \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectTypeHasChildren.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectTypeHasChildren.st new file mode 100644 index 00000000..fa1a93d5 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitProjectTypeHasChildren.st @@ -0,0 +1,4 @@ +testing git project type +testGitProjectTypeHasChildren + + self assert: ALGGitProjectType algertemList first hasChildren \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitRemoteBranchTypeSwitch.st b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitRemoteBranchTypeSwitch.st new file mode 100644 index 00000000..d8b65877 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/instance/testGitRemoteBranchTypeSwitch.st @@ -0,0 +1,9 @@ +testing git branch type +testGitRemoteBranchTypeSwitch + + ALGRemoteBranch := ALGFakeBranch new + shortName: 'test-remote'; + yourself. + ALGItemProvider resetItems. + + self assertQuery: 'switch test-remote (Test Working Copy)' sendsMessageToSquitBrowser: #actionBranchCreateAndSwitch \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/methodProperties.json b/packages/AlgernonTests.package/ALGTestGitTypes.class/methodProperties.json new file mode 100644 index 00000000..59b9de20 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/methodProperties.json @@ -0,0 +1,35 @@ +{ + "class" : { + }, + "instance" : { + "assertLoadedHistorianEqualsBranchNamed:" : "LH 7/12/2022 23:46", + "assertQuery:sendsMessageToSquitBrowser:" : "LH 7/9/2022 19:19", + "denyLoadedHistorianEqualsBranchNamed:" : "LH 7/13/2022 15:54", + "expectedFailures" : "LH 7/14/2022 01:58", + "getHistorianNamed:" : "LH 7/12/2022 23:35", + "mockWorkingCopy" : "LH 6/12/2022 00:09", + "mockWorkingCopy:" : "LH 6/12/2022 00:09", + "previousGitStampDefaultEmail" : "LH 7/21/2022 16:47", + "previousGitStampDefaultEmail:" : "LH 7/21/2022 16:48", + "previousGitStampDefaultName" : "LH 7/21/2022 16:48", + "previousGitStampDefaultName:" : "LH 7/21/2022 16:48", + "restoreGitStamp" : "LH 7/21/2022 16:50", + "setUp" : "ga 7/29/2022 11:06", + "setUpGitStamp" : "LH 7/21/2022 16:50", + "setUpTestBranches" : "LH 7/12/2022 14:50", + "setUpTestWorkingCopy" : "LH 7/12/2022 14:04", + "tearDown" : "LH 7/21/2022 16:51", + "tearDownTestWorkingCopy" : "LH 6/12/2022 00:48", + "testGitBrachTypeGetGitBrowser" : "LH 7/13/2022 16:34", + "testGitBranchTypeAppears" : "LH 7/13/2022 16:04", + "testGitBranchTypeAppearsAsChildren" : "LH 7/13/2022 16:10", + "testGitBranchTypeHasChildren" : "LH 7/12/2022 13:30", + "testGitBranchTypeOpen" : "LH 7/12/2022 16:29", + "testGitLocalBranchTypeSwitch" : "LH 7/13/2022 15:54", + "testGitProjectCommit" : "LH 7/9/2022 19:20", + "testGitProjectOpen" : "LH 7/12/2022 14:14", + "testGitProjectPull" : "LH 7/9/2022 20:17", + "testGitProjectPush" : "LH 7/9/2022 20:17", + "testGitProjectTypeAppears" : "LH 6/12/2022 00:05", + "testGitProjectTypeHasChildren" : "LH 7/11/2022 17:46", + "testGitRemoteBranchTypeSwitch" : "LH 7/13/2022 17:43" } } diff --git a/packages/AlgernonTests.package/ALGTestGitTypes.class/properties.json b/packages/AlgernonTests.package/ALGTestGitTypes.class/properties.json new file mode 100644 index 00000000..40542c73 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestGitTypes.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "mockWorkingCopy", + "previousGitStampDefaultName", + "previousGitStampDefaultEmail" ], + "name" : "ALGTestGitTypes", + "pools" : [ + ], + "super" : "ALGTestTypes", + "type" : "normal" } diff --git a/packages/AlgernonTests.package/ALGTestItemList.class/instance/testTabExecutesSingleActionResultNested.st b/packages/AlgernonTests.package/ALGTestItemList.class/instance/testTabExecutesSingleActionResultNested.st index 0d3011f8..83c24697 100644 --- a/packages/AlgernonTests.package/ALGTestItemList.class/instance/testTabExecutesSingleActionResultNested.st +++ b/packages/AlgernonTests.package/ALGTestItemList.class/instance/testTabExecutesSingleActionResultNested.st @@ -2,7 +2,7 @@ testing testTabExecutesSingleActionResultNested self - assert: [self runQuery: 'BaselineOfAlgernon'; + assert: [self runQuery: 'BaselineOfAlgernon category'; keyTab; runQuery: 'postLoad'; keyTab; diff --git a/packages/AlgernonTests.package/ALGTestItemList.class/methodProperties.json b/packages/AlgernonTests.package/ALGTestItemList.class/methodProperties.json index 39a47014..ff2c87ee 100644 --- a/packages/AlgernonTests.package/ALGTestItemList.class/methodProperties.json +++ b/packages/AlgernonTests.package/ALGTestItemList.class/methodProperties.json @@ -2,9 +2,8 @@ "class" : { }, "instance" : { - "keyTab" : "b 6/29/2021 11:54", "testSelectedListItemWhenTitleSelected" : "b 8/5/2021 15:49", "testTabDoesNotExecuteMultiActionResult" : "b 8/5/2021 16:01", "testTabExecutesSingleActionResult" : "b 8/5/2021 16:01", "testTabExecutesSingleActionResultCanBeDisabled" : "b 8/5/2021 15:59", - "testTabExecutesSingleActionResultNested" : "b 8/5/2021 16:02" } } + "testTabExecutesSingleActionResultNested" : "YD 7/13/2022 15:08" } } diff --git a/packages/AlgernonTests.package/ALGTestKeyboard.class/instance/testShortcutToClearSearchBar.st b/packages/AlgernonTests.package/ALGTestKeyboard.class/instance/testShortcutToClearSearchBar.st new file mode 100644 index 00000000..4e6e15ee --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestKeyboard.class/instance/testShortcutToClearSearchBar.st @@ -0,0 +1,11 @@ +testing +testShortcutToClearSearchBar + + | keyboardEvent | + + keyboardEvent := ALGFakeKeyboardEvent new keyString: ''. + self runQuery: 'example string'. + self algInstance keyStroke: keyboardEvent. + self assert: self algInstance query equals: '' + + \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestKeyboard.class/methodProperties.json b/packages/AlgernonTests.package/ALGTestKeyboard.class/methodProperties.json index 8096e77c..189bf5ed 100644 --- a/packages/AlgernonTests.package/ALGTestKeyboard.class/methodProperties.json +++ b/packages/AlgernonTests.package/ALGTestKeyboard.class/methodProperties.json @@ -10,4 +10,5 @@ "testNormalKeyStrokesSetsCursorColor" : "NL 6/1/2021 16:32", "testNumberTriggersItem" : "b 8/5/2021 16:12", "testScrollingInputField" : "NM 6/1/2021 20:52", - "testSelfFocus" : "NL 6/1/2021 15:27" } } + "testSelfFocus" : "NL 6/1/2021 15:27", + "testShortcutToClearSearchBar" : "PureBehaviorTest 8/5/2022 13:09" } } diff --git a/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testHighlightInterval.st b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testHighlightInterval.st new file mode 100644 index 00000000..830b39ff --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testHighlightInterval.st @@ -0,0 +1,15 @@ +testing +testHighlightInterval + + | inputField | + + self algInstance activate. + inputField := self algInstance textField inputfield. + inputField text append: 'abc'. + self assert: ((inputField text attributesAt: 1) size) equals: 0. + inputField highlightInterval: (1 to: 1). + self assert: ((inputField text attributesAt: 1) size) equals: 1. + inputField highlightInterval: (1 to: 2). + self assert: ((inputField text attributesAt: 1) size) equals: 1. + inputField highlightInterval: (0 to: 0). + self assert: ((inputField text attributesAt: 1) size) equals: 0 \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testHighlightOnKeyword.st b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testHighlightOnKeyword.st new file mode 100644 index 00000000..b496f3e0 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testHighlightOnKeyword.st @@ -0,0 +1,14 @@ +testing +testHighlightOnKeyword + + | input field | + + input := ALGFakeKeyboardEvent new + keyString: '='; + isKeyUp: true; + yourself. + self algInstance activate. + field :=self algInstance textField normalKeyStroke: input. + self assert: ((field inputfield text attributesAt: 1) size) equals: 1 + + \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testKeywordInterval.st b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testKeywordInterval.st new file mode 100644 index 00000000..5eae788e --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testKeywordInterval.st @@ -0,0 +1,14 @@ +testing +testKeywordInterval + + | inputField | + + inputField := ALGInputField new. + self assert: (inputField keywordIntervalFor: '') equals: (0 to: 0). + self assert: (inputField keywordIntervalFor: 'ru') equals: (0 to: 0). + ALGActionVerbFilter keywords do: [ :each | + self assert: (inputField keywordIntervalFor: each) equals: (1 to: each size) ]. + ALGActionVerbFilter keywords do: [ :each | + self assert: (inputField keywordIntervalFor: each , ' abc') equals: (1 to: each size) ]. + ALGActionVerbFilter keywords do: [ :each | + self assert: (inputField keywordIntervalFor: 'abc ' , each) equals: (0 to: 0) ] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testWebKeyword.st b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testWebKeyword.st new file mode 100644 index 00000000..c0092f5c --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestKeywords.class/instance/testWebKeyword.st @@ -0,0 +1,6 @@ +testing +testWebKeyword + + self runQuery: 'web whats obamas last name'. + self assert: self items size = 1. + self assert: self nameOfFirstResult equals: 'Search the web' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestKeywords.class/methodProperties.json b/packages/AlgernonTests.package/ALGTestKeywords.class/methodProperties.json index 4f58b7cb..862a25ea 100644 --- a/packages/AlgernonTests.package/ALGTestKeywords.class/methodProperties.json +++ b/packages/AlgernonTests.package/ALGTestKeywords.class/methodProperties.json @@ -8,5 +8,9 @@ "testHelpItems" : "jRo 7/20/2020 16:34", "testHelpItemsForKeyword" : "rk 8/5/2020 18:06", "testHelpItemsQuestionMark" : "jRo 7/20/2020 16:33", + "testHighlightInterval" : "ga 7/29/2022 11:06", + "testHighlightOnKeyword" : "PureBehaviorTest 7/30/2022 14:25", + "testKeywordInterval" : "ga 7/29/2022 11:06", "testOpenBrowser" : "beb 7/3/2020 13:45", - "testSpecificHelpItem" : "beb 7/3/2020 13:45" } } + "testSpecificHelpItem" : "beb 7/3/2020 13:45", + "testWebKeyword" : "PureBehaviorTest 8/5/2022 13:09" } } diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testAssertEquationPattern.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testAssertEquationPattern.st new file mode 100644 index 00000000..35068129 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testAssertEquationPattern.st @@ -0,0 +1,6 @@ +testing expressions +testAssertEquationPattern + + self assert: ['1+ 1 + 1' matchesRegex: ALGExpressionType equationPattern.]. + self assert: ['-1 - 11' matchesRegex: ALGExpressionType equationPattern.]. + self assert: ['2/2' matchesRegex: ALGExpressionType equationPattern.] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testDenyEquationPattern.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testDenyEquationPattern.st new file mode 100644 index 00000000..27a96f81 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testDenyEquationPattern.st @@ -0,0 +1,6 @@ +testing expressions +testDenyEquationPattern + + self deny: ['1+' matchesRegex: ALGExpressionType equationPattern.]. + self deny: ['2+-3' matchesRegex: ALGExpressionType equationPattern.]. + self deny: ['-3/-3' matchesRegex: ALGExpressionType equationPattern.] \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testDivideByZero.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testDivideByZero.st new file mode 100644 index 00000000..f8e4bae8 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testDivideByZero.st @@ -0,0 +1,11 @@ +testing expressions +testDivideByZero + + | message expressionItem | + + message:= 'Don´t divide by zero'. + self runQuery: '1/0'. + expressionItem := self items first. + self assert: message equals: expressionItem algerType name + + \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testExpressionNotEmpty.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testExpressionNotEmpty.st index f822f5da..90577a41 100644 --- a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testExpressionNotEmpty.st +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testExpressionNotEmpty.st @@ -1,6 +1,8 @@ testing expressions testExpressionNotEmpty - | textField expressions | - textField := '1+1'. - expressions := ALGExpressionType algertemList: textField. + + | expressions | + + self runQuery: '1+1'. + expressions := ALGExpressionType algertemList: self algInstance. self deny: expressions isEmpty. \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testHasChildren.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testHasChildren.st index c8bf2f01..8024966c 100644 --- a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testHasChildren.st +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testHasChildren.st @@ -1,6 +1,7 @@ testing general behavior testHasChildren - self assert: (ALGExpressionType algertemList: '=1+1') first hasChildren. + + self assert: (ALGExpressionType algertemList: self algInstance) first hasChildren. self assert: (ALGRepositoryType algertemListWith: 'Monticello') first hasChildren. self assert: ALGCategoryType new hasChildren. self assert: (ALGMethodType algertemListWith: ALGCore) first hasChildren. diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testIsEquation.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testIsEquation.st new file mode 100644 index 00000000..ed31f63d --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testIsEquation.st @@ -0,0 +1,12 @@ +testing expressions +testIsEquation + + | expressions | + + self runQuery: '1+1'. + expressions := ALGExpressionType with: self algInstance. + self assert: expressions isEquation. + + self runQuery: 'new Morph openInWorld'. + expressions := ALGExpressionType with: self algInstance. + self deny: expressions isEquation \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testOpenSubmenuEntries.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testOpenSubmenuEntries.st index 3f4c3998..8db3b950 100644 --- a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testOpenSubmenuEntries.st +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testOpenSubmenuEntries.st @@ -1,12 +1,16 @@ testing docking bar types testOpenSubmenuEntries - |flatWidgetLookName fontSizeName | + | flatWidgetLookName fontSizeName newFontSizeName | flatWidgetLookName := 'Flat Widget Look'. self runQuery: flatWidgetLookName. self assert: (self resultsIncludeName: flatWidgetLookName). fontSizeName := 'Increase Font Size'. + "Item name changed in squeak v6.0" + newFontSizeName := 'increase font size (+)'. self runQuery: fontSizeName. - self assert: (self resultsIncludeName: fontSizeName). \ No newline at end of file + self assert: ( + (self resultsIncludeName: fontSizeName) or: + [self resultsIncludeName: newFontSizeName]) \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testTabIntoSubmenus.st b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testTabIntoSubmenus.st index 2700700f..0c41f2b1 100644 --- a/packages/AlgernonTests.package/ALGTestTypes.class/instance/testTabIntoSubmenus.st +++ b/packages/AlgernonTests.package/ALGTestTypes.class/instance/testTabIntoSubmenus.st @@ -1,12 +1,12 @@ testing docking bar types testTabIntoSubmenus - |themesAndColorName tab randomCheckBoxName randomEntryName| + | themesAndColorName tab randomCheckBoxName randomEntryName | themesAndColorName := 'Themes & Colors'. tab := ALGFakeKeyboardEvent new keyString: ''. randomCheckBoxName := 'Squeak (duller)'. - randomEntryName := 'Set High-DPI Mode'. + randomEntryName := 'Set Etoys Mode'. self runQuery: themesAndColorName. self algInstance keyStroke: tab. self runQuery: randomCheckBoxName. diff --git a/packages/AlgernonTests.package/ALGTestTypes.class/methodProperties.json b/packages/AlgernonTests.package/ALGTestTypes.class/methodProperties.json index b25748c8..c3582f04 100644 --- a/packages/AlgernonTests.package/ALGTestTypes.class/methodProperties.json +++ b/packages/AlgernonTests.package/ALGTestTypes.class/methodProperties.json @@ -10,6 +10,7 @@ "openBrowser" : "lm 5/26/2021 20:16", "openTranscript" : "lm 5/26/2021 20:16", "testAlgernonClass" : "rk 8/5/2020 20:10", + "testAssertEquationPattern" : "PureBehaviorTest 8/5/2022 13:10", "testCategoryNotEmpty" : "rk 8/6/2020 10:51", "testCategoryTypeOpenMethodInBrowser" : "8/6/2020 11:41:26", "testClassBrowse" : "b 6/25/2021 17:36", @@ -24,6 +25,8 @@ "testClassNotEmpty" : "rk 8/6/2020 10:51", "testClassType" : "rk 8/6/2020 10:51", "testClassesForCategoryNotEmpty" : "rk 8/5/2020 19:17", + "testDenyEquationPattern" : "PureBehaviorTest 8/5/2022 13:10", + "testDivideByZero" : "ga 7/29/2022 11:07", "testDockingBarDefaultAction" : "b 7/31/2021 12:42", "testDockingBarDefaultIcon" : "b 7/31/2021 12:42", "testDockingBarDifferentActionsForDifferentMenus" : "b 7/31/2021 12:42", @@ -41,21 +44,22 @@ "testExpressionDoItWithoutPrefix" : "b 8/5/2021 17:29", "testExpressionDoNoTranscript" : "b 8/5/2021 17:39", "testExpressionInspect" : "b 8/5/2021 17:33", - "testExpressionNotEmpty" : "rk 8/5/2020 19:21", + "testExpressionNotEmpty" : "ms 6/9/2022 09:53", "testExpressionPrint" : "b 8/5/2021 17:34", "testExpressionPrintByDefault" : "b 8/5/2021 17:38", "testExpressionWithChildren" : "b 8/5/2021 17:36", "testFindsNewDockingBarEntries" : "b 8/5/2021 17:20", "testGlobalVariableNotEmpty" : "rk 8/6/2020 10:51", - "testHasChildren" : "b 8/5/2021 17:37", + "testHasChildren" : "ga 7/29/2022 11:04", "testHelpAction" : "8/6/2020 11:41:26", "testHelpAlgerItems" : "rk 8/6/2020 10:51", + "testIsEquation" : "ga 7/29/2022 11:07", "testItemActionName:equals:" : "b 8/5/2021 17:03", "testMethodNotEmpty" : "rk 8/5/2020 19:25", "testMethodTypeOpenMethodInBrowser" : "beb 5/12/2020 12:12", "testOpenApps" : "b 7/31/2021 12:48", "testOpenInExistingBrowser" : "jRo 5/28/2020 20:32", - "testOpenSubmenuEntries" : "NL 7/12/2021 23:44", + "testOpenSubmenuEntries" : "ga 7/29/2022 11:07", "testOpenTools" : "b 7/31/2021 12:48", "testOpenWindowEntry:withAction:" : "b 8/5/2021 17:43", "testPackageAction" : "b 8/5/2021 17:40", @@ -73,7 +77,7 @@ "testSettingsNotEmpty" : "rk 8/6/2020 10:51", "testSubmenuCheckBoxes" : "b 8/5/2021 17:19", "testSubmenuCheckBoxesAfterTab" : "b 7/12/2021 19:32", - "testTabIntoSubmenus" : "b 8/5/2021 17:19", + "testTabIntoSubmenus" : "ga 7/29/2022 11:07", "testTestNotEmpty" : "rk 8/6/2020 10:51", "testWindowBringToFront" : "b 8/5/2021 17:43", "testWindowClose" : "b 8/5/2021 17:43", diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/README.md b/packages/AlgernonTests.package/ALGTestWebSearch.class/README.md new file mode 100644 index 00000000..191dbce3 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/README.md @@ -0,0 +1 @@ +Responsible for testing the web search feature \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/setUp.st b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/setUp.st new file mode 100644 index 00000000..3bdb507d --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/setUp.st @@ -0,0 +1,6 @@ +helpers +setUp + + super setUp. + + self algInstance webClient: ALGFakeWebClient \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/tearDown.st b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/tearDown.st new file mode 100644 index 00000000..9a1f9fb1 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/tearDown.st @@ -0,0 +1,6 @@ +helpers +tearDown + + super tearDown. + + ALGOSProcess := nil \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testCommandsArePlatformDependent.st b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testCommandsArePlatformDependent.st new file mode 100644 index 00000000..7743144a --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testCommandsArePlatformDependent.st @@ -0,0 +1,15 @@ +testing +testCommandsArePlatformDependent + + ALGOSProcess := ALGFakeOSProcess new. + + self + runQuery: 'web Algernon'; + activateCurrentItemAction; + activateCurrentItemAction. + + ALGOSProcess commandHistory removeAllSuchThat: [:command | + ALGWebResultType unixOpenBrowserCommands anySatisfy: [:each | + command beginsWith: each]]. + + self assert: ALGOSProcess commandHistory isEmpty \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testOpenLinkFail.st b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testOpenLinkFail.st new file mode 100644 index 00000000..f5d73382 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testOpenLinkFail.st @@ -0,0 +1,17 @@ +testing +testOpenLinkFail + + | query | + + ALGOSProcess := ALGFakeOSProcess new. + + query := [ + self + runQuery: 'web Algernon'; + activateCurrentItemAction; + activateCurrentItemAction. + Transcript peekLast]. + + "this is needed because 'Transcript peekLast' returns 'Character cr' by default" + Transcript show: 'Algernon is great'. + self deny: (Transcript peekLast) equals: (query value) \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testWebSearchQuery.st b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testWebSearchQuery.st new file mode 100644 index 00000000..9f87fe12 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testWebSearchQuery.st @@ -0,0 +1,6 @@ +testing +testWebSearchQuery + + self runQuery: 'web Algernon'. + self algInstance showChildList. + self assert: self nameOfFirstResult equals: 'Algernon' \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testWebSearchTypeDisplayError.st b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testWebSearchTypeDisplayError.st new file mode 100644 index 00000000..e778af89 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/instance/testWebSearchTypeDisplayError.st @@ -0,0 +1,11 @@ +testing +testWebSearchTypeDisplayError + + | webSearchType | + + webSearchType := ALGWebSearchType with: self algInstance. + + [Exception signal: 'test'] + on: Exception do: [ :exception | webSearchType displayError: exception]. + + self assert: 'ERROR: test' equals: self algInstance statusMessage \ No newline at end of file diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/methodProperties.json b/packages/AlgernonTests.package/ALGTestWebSearch.class/methodProperties.json new file mode 100644 index 00000000..1ec5fc29 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/methodProperties.json @@ -0,0 +1,10 @@ +{ + "class" : { + }, + "instance" : { + "setUp" : "ef 8/3/2022 19:34", + "tearDown" : "ef 8/3/2022 19:40", + "testCommandsArePlatformDependent" : "PureBehaviorTest 8/5/2022 13:04", + "testOpenLinkFail" : "PureBehaviorTest 8/5/2022 13:04", + "testWebSearchQuery" : "ef 8/3/2022 19:33", + "testWebSearchTypeDisplayError" : "LH 8/5/2022 02:08" } } diff --git a/packages/AlgernonTests.package/ALGTestWebSearch.class/properties.json b/packages/AlgernonTests.package/ALGTestWebSearch.class/properties.json new file mode 100644 index 00000000..9b77e331 --- /dev/null +++ b/packages/AlgernonTests.package/ALGTestWebSearch.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "AlgernonTests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "ALGTestWebSearch", + "pools" : [ + ], + "super" : "ALGTestTypes", + "type" : "normal" } diff --git a/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/instance/baseline..st b/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/instance/baseline..st index 72ee7846..8ae6349f 100644 --- a/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/instance/baseline..st +++ b/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/instance/baseline..st @@ -1,10 +1,14 @@ baseline baseline: spec + spec for: #common do: [ Preferences disable: #showDeprecationWarnings. + Installer ss project: 'JSON'; install: 'JSON'. + Installer ss project: 'OSProcess'; install: 'OSProcess'. + Installer ss project: 'CommandShell'; install: 'CommandShell'. spec project: 'RefactoringBrowser' with: [ spec diff --git a/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/methodProperties.json b/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/methodProperties.json index 2d3c736d..6d7c8a0f 100644 --- a/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/methodProperties.json +++ b/packages/BaselineOfAlgernon.package/BaselineOfAlgernon.class/methodProperties.json @@ -2,6 +2,6 @@ "class" : { }, "instance" : { - "baseline:" : "fsa 5/10/2021 16:27", + "baseline:" : "PureBehaviorTest 8/5/2022 12:57", "postLoad" : "NL 5/6/2021 17:24", "projectClass" : "beb 6/29/2020 17:25" } } diff --git a/packages/BaselineOfAlgernonTests.package/BOALGTest.class/instance/defaultTimeout.st b/packages/BaselineOfAlgernonTests.package/BOALGTest.class/instance/defaultTimeout.st new file mode 100644 index 00000000..b55538e0 --- /dev/null +++ b/packages/BaselineOfAlgernonTests.package/BOALGTest.class/instance/defaultTimeout.st @@ -0,0 +1,4 @@ +running +defaultTimeout + + ^ 180 "seconds" \ No newline at end of file diff --git a/packages/BaselineOfAlgernonTests.package/BOALGTest.class/methodProperties.json b/packages/BaselineOfAlgernonTests.package/BOALGTest.class/methodProperties.json index e98ba9c9..fca2f1f5 100644 --- a/packages/BaselineOfAlgernonTests.package/BOALGTest.class/methodProperties.json +++ b/packages/BaselineOfAlgernonTests.package/BOALGTest.class/methodProperties.json @@ -3,6 +3,7 @@ }, "instance" : { "currentGitBranch" : "NM 8/6/2021 12:10", + "defaultTimeout" : "YD 8/5/2022 14:20", "metacelloInstance" : "lm 5/9/2021 19:13", "metacelloInstance:" : "lm 5/9/2021 19:13", "setUp" : "NM 8/6/2021 12:13", diff --git a/scripts/preTesting.st b/scripts/preTesting.st new file mode 100644 index 00000000..807aaa27 --- /dev/null +++ b/scripts/preTesting.st @@ -0,0 +1 @@ +Installer installGitInfrastructure \ No newline at end of file