Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Submission SS22 #283

Open
wants to merge 23 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
ee881e5
Fixed test cases for squeak 6.0 trunk version (#248)
yannik-dittmar May 17, 2022
4bb9302
Feat: Shortcut to clear search bar (#243)
FSadrieh May 19, 2022
3975360
Fix: Removed Squeak-Trunk version from CI (#251)
yannik-dittmar May 23, 2022
1a64a4b
Refactor: Execute linter rules all at once to save time (#250)
yannik-dittmar May 23, 2022
8a71429
Feat 240 keyword highlighting (#247)
yannik-dittmar May 23, 2022
e87e90a
Fix: Remove algernon instances after tests are finished. (#253)
gwauge Jun 8, 2022
0a11d6f
Test: Implement tests for ALGGitProjectType
leonardhorns Jun 1, 2022
9375156
Feat: Implement Git Project Type
leonardhorns Jun 1, 2022
5147900
Feat: Rename action 'open in git browser' to 'open'
leonardhorns Jun 11, 2022
71beccd
Test: Make ALGGitProjectType dependent on the existance of SquitBrowser
leonardhorns Jun 11, 2022
62c175f
Test: Exclude ALGGitProjectType and ALGTestGitProjectType from ALGLin…
leonardhorns Jun 12, 2022
442118c
Merge pull request #255 from hpi-swa-teaching/git-access
leonardhorns Jun 15, 2022
196c186
Equation solving (#260)
matveysiva Jun 17, 2022
bdd50ae
Git access (#275)
gwauge Jul 15, 2022
4b6a4eb
Include git tests in coverage reporter (#276)
FSadrieh Jul 16, 2022
1d23274
Feat: Add git actions to Algernon (#273)
leonardhorns Jul 16, 2022
2cb7d99
Feat: Add git branches to Algernon (#274)
leonardhorns Jul 28, 2022
463eef4
Refactoring (#279)
gwauge Aug 4, 2022
3039a7e
Test: Remove unwanted test (#281)
leonardhorns Aug 4, 2022
8794fb5
Add class comments for git types (#280)
leonardhorns Aug 4, 2022
ba74f66
Update README.md (#278)
matveysiva Aug 5, 2022
7bb70ac
Implement internet search (#254)
yannik-dittmar Aug 5, 2022
111ef27
Bump version (#282)
matveysiva Aug 5, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .coverage.smalltalk.ston
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
SmalltalkCISpec {
#preTesting : SCICustomScript {
#path : 'scripts/preTesting.st',
#platforms : [ #squeak ]
},
#loading : [
SCIMetacelloLoadSpec {
#baseline : 'Algernon',
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coverage-reporter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/smalltalk-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand Down
4 changes: 4 additions & 0 deletions .smalltalk.ston
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
SmalltalkCISpec {
#preTesting : SCICustomScript {
#path : 'scripts/preTesting.st',
#platforms : [ #squeak ]
},
#loading : [
SCIMetacelloLoadSpec {
#baseline : 'Algernon',
Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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).

Expand All @@ -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/)
4 changes: 4 additions & 0 deletions packages/Algernon.package/ALGAction.class/instance/hidden..st
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
hidden: aBoolean

hidden := aBoolean
4 changes: 4 additions & 0 deletions packages/Algernon.package/ALGAction.class/instance/hidden.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
hidden

^ hidden ifNil: [hidden := false]
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
keepOpen: aBoolean

keepOpen := aBoolean
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
keepOpen

^ keepOpen ifNil: [keepOpen := false]
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 3 additions & 1 deletion packages/Algernon.package/ALGAction.class/properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"theTarget",
"theSelector",
"theArgs",
"actionVerb" ],
"actionVerb",
"keepOpen",
"hidden" ],
"name" : "ALGAction",
"pools" : [
],
Expand Down
Original file line number Diff line number Diff line change
@@ -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 ]
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
Original file line number Diff line number Diff line change
@@ -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.';
Expand All @@ -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
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
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ keywords
'open'. 'do'.
'inspect'. 'explore'. '='.
'front'. 'expand'. 'collapse'.
'contract'. 'close' }
'contract'. 'close'. 'web'.
'commit'. 'push'. 'pull'.
'switch' }
Original file line number Diff line number Diff line change
@@ -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" } }
3 changes: 1 addition & 2 deletions packages/Algernon.package/ALGCore.class/class/close.st
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
singleton
close

self currentInstance ifNotNil: [self currentInstance deactivate]

self currentInstance ifNotNil: [self currentInstance deactivate]
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
googleAPIKey: aString

GoogleAPIKey := aString
4 changes: 4 additions & 0 deletions packages/Algernon.package/ALGCore.class/class/googleAPIKey.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
googleAPIKey

^ GoogleAPIKey ifNil: [GoogleAPIKey := '']
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
googleEngineId: aString

GoogleEngineId := aString
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
googleEngineId

^ GoogleEngineId ifNil: [GoogleEngineId := '']
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
initialization
initializeGlobalKeyBindings

KeyBindings := Dictionary newFrom:
{ '<down>' -> [:anEvent :morph | morph selectNext].
'<up>' -> [:anEvent :morph | morph selectPrevious].
'<tab>' -> [:anEvent :morph | morph showChildListOrDoAction: anEvent].
'<tab>' -> [:anEvent :morph | morph showChildListOrDoAction: anEvent].
'<Shift-tab>' -> [:anEvent :morph | morph showParentList].
'<escape>' -> [:anEvent :morph | morph deactivate: anEvent hand].
'<cr>' -> [:anEvent :morph | morph doActionOnSelectedEvent:anEvent] }
'<cr>' -> [:anEvent :morph | morph doActionOnSelectedEvent: anEvent].
'<Ctrl-delete>' -> [:anEvent :morph | morph clearSearchBar: anEvent] }
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
preferences
setGoogleAPIKey: aString

self googleAPIKey: aString.
^ true
10 changes: 10 additions & 0 deletions packages/Algernon.package/ALGCore.class/class/setGoogleAPIKey.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
preferences
setGoogleAPIKey

<preference: 'Set Google API Key'
category: #Algernon
description: 'Set the Google API Key needed for showing web search results in Algernon. (See https://github.com/hpi-swa-teaching/Algernon-Launcher/wiki/Setup-Guide#setup-google-web-search for more Information)'
type: #String>
^ self googleAPIKey


Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
preferences
setGoogleEngineId: aString

self googleEngineId: aString.
^ true
10 changes: 10 additions & 0 deletions packages/Algernon.package/ALGCore.class/class/setGoogleEngineId.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
preferences
setGoogleEngineId

<preference: 'Set Google Custom Search Engine ID'
category: #Algernon
description: 'Set the Google Custom Search Engine ID needed for showing web search results in Algernon. (See https://github.com/hpi-swa-teaching/Algernon-Launcher/wiki/Setup-Guide#setup-google-web-search for more Information)'
type: #String>
^ self googleEngineId


Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
visibility
activate: hand

self active ifTrue: [^ self].
self active: true;
reset;
Expand All @@ -12,4 +13,3 @@ activate: hand
startStepping.
self textField contents: self lastInputString;
selectAll

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
events-processing
clearSearchBar: event

self active
ifFalse: [ ^ false].
self query: ''.
self updateItemList

Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
visibility
deactivate: hand

self active ifFalse: [^ self].
self lastInputString: self topmostQuery.
self active: false;
reset;
stopStepping;
hideMorphs.
hand ifNotNil: [self dropFocus: hand].
ALGInstallation instance cleanupIfNewDay.
ALGInstallation instance cleanupIfNewDay.
self resetStatusMessage
6 changes: 4 additions & 2 deletions packages/Algernon.package/ALGCore.class/instance/delete.st
Original file line number Diff line number Diff line change
@@ -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.
ifNotNil: [ self itemProvider cleanUp ].
self itemList
ifNotNil: [ self itemList abandon ]
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
event handling
grabFocus: hand

hand
newKeyboardFocus: self textField.
newKeyboardFocus: self textField
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
resetStatusMessage

self statusMessage: ''
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
updating
showChildList

self resetStatusMessage.
(self currentItem hasChildren) ifFalse: [ ^ self ].
self breadcrumbs showNavigateBackIcon.
self breadcrumbs push: self currentItem.
Expand All @@ -8,4 +10,5 @@ showChildList
self itemProvider searchLevel: self searchStack size;
parentItem: self currentItem.
self textField clear.
self currentItem updateChildren.
self updateItemList
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
updating
showParentList

self resetStatusMessage.
self searchStack isEmpty ifTrue: [ ^ self ].
self searchStack size = 1 ifTrue: [ self breadcrumbs hideNavigateBackIcon ].
self breadcrumbs pop.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
statusMessage: aString

statusMessage := aString
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
statusMessage

^ statusMessage ifNil: [statusMessage := '']
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
updating
updateStatusMessage: aString

self statusMessage: aString.
self itemList createStatusMessage
Loading