Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/evylang/evy
Learn programming โก๏ธ
https://github.com/evylang/evy
Add evy syntax colouring by implementing a custom highlight function for
yace, inspired by the Y...
Reformat Yace editor module with `make prettier` after removing it from
the .prettierignore file...
Copy relevant yace editor source files verbatim from
https://github.com/petersolopov/yace/blob/8...
Implement output UI initialisation from evy source code analysis:
* show/hide canvas if there ar...
Add forceYield utility to sleepingYielder in wasm package, rather than
calling yielder.Sleep(min...
Implement output UI initialisation from evy source code analysis:
* show/hide canvas if there ar...
Expose jsActions as "evy command" to wasm main as we have no other way
of argument passing to ma...
Refactor evaluator.Runtime into interface as it appears to be the more
appropriate structure and...
This PR contains various unrelated small changes in preparation for a
bigger PR.
* Upgrade gola...
0b7807cf2d5a94dd351ab1bddb49ea8e0b5bf985 authored almost 2 years ago by Julia Ogris <[email protected]>
Refactor return string extraction from pointer and length encoded return
value so that we can us...
Split up wasm main package over several files, as pkg/wasm/main.go was
getting a little big. In ...
Make DEFAULT_GOAL configurable via the environment variable
EVY_DEFAULT_GOAL. This allows newcom...
Refactor ParserBuiltins() into method rather than stand alone function
for readability. It doesn...
Ensure go file formatting as part of the build process with gofumpt.
First hermitise gofumpt wit...
Upgrade golangci-lint with
hermit upgrade golangci-lint
to keep our tooling up-to-date. Fix a...
37f583c297882879d5bd82a4c50fa79e65adc005 authored almost 2 years ago by Julia Ogris <[email protected]>
@fcostin kindly donated this sample to the project using "a splash of
trig". I've user acceptan...
Extend events sample to include animation with key events. While testing
this sample it became o...
Unfocus run button when listening to key so that the space or enter bar
doesn't stop the program.
Extend events sample to include animation with key events.
672617e9f26b29d41c806452337c548de09fe937 authored almost 2 years ago by Julia Ogris <[email protected]>
Improve cmd+enter shortcut to start a program so that key events will be
listened to straight aw...
Add some essential maths functions. This has been again added on request
to allow for more inter...
Fix string tokens for 2n backslashes before the closing `"` quotation
mark.
Pull-Request: https...
1aa81e11fbc91ecee0edcb85c64467348e635b79 authored almost 2 years ago by Julia Ogris <[email protected]>
Remove focus from `read` input when program is stopped as a UX helper
that the program isn't run...
Rename samples to courses to align them with UI intent and add new
courses.
This merges the fol...
a39da46a7bd164b4dec5f5aae776bd5afd5b8460 authored almost 2 years ago by Julia Ogris <[email protected]>
Add beginner course challenges to the frontend. This evy samples should
eventually serve as the ...
Add drawing samples to the index. It already existed as .evy file but
was overlooked during inde...
Update the course index to include draw.evy and rename Getting Started
to tour, so we can leave ...
Rework sample structure by renaming samples to courses. This aligns with
the UI implementation a...
Rename lesson to unit in sample structure because we want to consciously
stir away from school t...
be0e9f55d0773191238d247c0f065bb17630cc37 authored almost 2 years ago by Julia Ogris <[email protected]>
Fix comment for typo in `handleMobRun()`. This is a fixup for an
overlooked review remark.
Link...
7d2f780a9bbd930aed5ffae067d4ee5ea8fff54f authored almost 2 years ago by Julia Ogris <[email protected]>
Refactor index.js by adding a few section comments, moving all globals to
the top and slightly r...
Refactor index.js by adding a few section comments, moving all globals
to the top and slightly r...
Add slider event sample to samples.json so that it gets this displayed
in the navigation modal.
Fix two formatting bugs that rendered evy program un-executable but
required only minor source u...
Styling:
- remove code ligatures
- ensure modal navigation dialogue is 5% transparent
JS:
fix...
a51f49540c5ee7cf245aa8b1d14d1a50c7ba03ca authored almost 2 years ago by Julia Ogris <[email protected]>
Ensure navigation to home (no hash in URL) via browser back/forward
button works. Currently when...
Slide to code screen when navigating to new code sample on mobile.
Otherwise we might stay on th...
Fix bug navigation bug, where clicking on the current item doesn't hide
navigation modal. The re...
Fix modal background colour to be 5% transparent. This must have been a
rebase muck up because I...
Remove code ligatures, as it is likely not obvious to kids that `โง` is a
ligature for `>=`. In e...
Refresh look with Jas' generous design donation:
https://www.figma.com/file/4Wf4Mbq8I2Yxh2bptOnS...
Add modal sample selection for click on breadcrumbs in header.
00c1673baae43751dd20cd587ab0efa829f54af0 authored almost 2 years ago by Julia Ogris <[email protected]>
Refresh look with Jas' generous design donation:
https://www.figma.com/file/4Wf4Mbq8I2Yxh2bptOnS...
Clean up error handling, using real go errors rather than overloading
the evaluator.Value interf...
Make parser type private to ensure it doesn't carry any state relevant
outside to the parser pac...
Refactor evaluator error handling by returning explicitly errors rather
than having error by and...
Refactor parser error handling by returning a slice of parser.Errors,
also implementing error, d...
Move state from parser to program AST node so that parsing can be a
stateless operation. This is...
Extract []kong.Option variable from kong.Parse to avoid function call
spanning multiple lines. T...
Reorder functions in top-level main.go with readability and newcomers to
the code base in mind.
Insert NL before `func` and `on` statements for function and eventhandler
declarations. Honour l...
Fix up various unrelated small-ish issues overlooked review comments in
evy cli (main.go) from P...
Implement `evy fmt` command via parser.Program.Format() and add it to
Makefile for formatting an...
Rename cmdAction to actionCmd in the evy non-wasm CLI. I must have had a
dyslexic moment when I ...
Implement `evy fmt [FILE...]` so that we can format *.evy files in a
canonical way with the CLI....
Add `evy-fmt` and `check-evy-fmt` targets to Makefile so that we can
easily format all evy sampl...
Hide parse and tokenize commands with kong `hidden:""` as these commands
don't seem relevant to ...
Implement formatting in parser and wire in frontend prior to every
evaluation. Formatting was pu...
Add multiline map literal formatting via multilineItem slice recorded
against the MapLiteral nod...
Add multiline array literal formatting vial multilineItem slice recorded
against the ArrayLitera...
Wire source code formatting with the frontend. We now format all source
before it is being execu...
Add formatting for all node types, except for multiline array and map
literals (they will be pul...
Add EmpytStmt ast node so we can capture and format newlines and
standalone line comments. Fix u...
Keep UX in frontend for frequent sample switching. K
Keep go code tidy with ForStmt.String() fix...
Fix read initialisation, which used a badly named variable.
cfb9b4c28277673814a8212a57e6cc5b2385d003 authored almost 2 years ago by Julia Ogris <[email protected]>b45a4374462bad1b14a8c7cc8b96872ab20de456 authored almost 2 years ago by Julia Ogris <[email protected]>
Show sliders when input eventHandler are added, so that even if the UI
isn't initialised properl...
Stop running program when new source is loaded from changed URL hash.
When testing formatting an...
Fix ForStmt.String() method for for statements that don't assign the
range expression to a varia...
Remove dead error-handling code which was left behind on an error
refactor.
Prepare for `evy format` to print parse-error free source code
in canonical way.
We will attach...
c2826a9f0d7a3880216dbd9a8e2eb3abc69d971c authored almost 2 years ago by Julia Ogris <[email protected]>
Rename `String()` method to `Name()`, e.g.: `array`, `map`.
Rename `Format()` method to `String(...
Add GroupedExpression to model parenthesis, required for code
formatting in a follow-up commit.
Add InferredDeclStmt and TypedDeclStmt nodes, for use with comment
attachment, formatting and de...
Add FuncCallStmt node with a FuncCall field. When used with a standalone
function call it will o...
Rename Declartion to Decl for consistency with FuncDecl and the upcoming
TypedDecl and InferredD...
Rename FunctionCall to FuncCall for consistency with FuncDecl,
FuncDeclStmt and the FuncCallStmt...
Rename all AST nodes representing statements with the suffix Stmt. We
will want to to step / sto...
Fix read UI, so that it does not keep on grabbing the focus while
running. Ensure read input tex...
Fix read UI, so that it does not keep on grabbing the focus, e.g.:
1. Run program with `s := re...
44aa4ab707a15f0aaf067b667c345810e424ccb1 authored almost 2 years ago by Julia Ogris <[email protected]>
Fix hashchange listener by attaching it to window, rather than document.
We now actually get a s...
Fix variadic parameter bug, where the variadic parameter gets added to
the scope in its original...
Fix empty array bug mutating the GENERIC_ARRAY and GENERIC_MAP global
variable. These types are ...
Allow for multiline array and map declarations so that it is easier to
declare large blocks of d...
Allow for multiline map declarations so that it is easier to declare
large blocks of data. We wa...
Allow for multiline array declarations so that it is easier to declare
large blocks of data. We ...
Implement anonymous variable `_` which cannot be read and only be
declared in function or event ...
Allow for statement without var declaration, e.g.:
for range 2
print "Hello" // execut...
Add modulo operator to evy, which includes extending lexer, parser and
evaluator. As in other pr...
Add random number generation functions:
* `rand n` returns an integer in the half open interval...
dc6e9bf0b2ea77045a02a8d26945a5fcd8cc3512 authored almost 2 years ago by Julia Ogris <[email protected]>Add random number generation functions:
* rand n returns an integer in the half open interval [...
f8232d1fc0947404217d4dd18a6fd8bc55ec7952 authored almost 2 years ago by Julia Ogris <[email protected]>
Add more strings functions for good measure and because it was the only
thing I was capable of o...
Only load evy source via URL fragment for 2xx response.
a3c705c31b07e7f708e74d44438f1a7397be77d8 authored almost 2 years ago by Julia Ogris <[email protected]>
Add `on animate elapsedms:num` based on JS' window.requestAnimationFrame.
The parameter passed i...
Add `on animate elapsedms:num` based on JS'
window.requestAnimationFrame. The parameter passed i...
Fix flicker for animations via updated yielding. The yielder yields
about every 100ms to check i...
Rename newStringEvent to newKeyEvent as the stringEvent is only used in
one place and can be mor...
Add `on input id:string val:string` handler, so that evy can react to any
kind of input event, d...
Add `on input id:string val:string` handler, so that evy can react to
any kind of input event, d...