Web-native Language WOrkbench with projectional editor. The current release (version 1.0.0-beta2) can be found on npm.
This beta release supports LionWeb (de)serialization. As LionWeb is in motion, expect this release to change according to LionWeb changes before it becomes final.
This release also supports external editor component, as an experimental feature.
Freon is a TypeScript/JavaScript framework to create and implement projectional editors for Domain-Specific Languages (DSLs). Additional to the core framework, there are generators for many parts of the work environment for your DSL.
For more information see the Freon website.
The main prerequisites are: Node.js and npm. We are typically using the latest versions of both, although older versions likely work just as well.
Clone or fork this github project, check out the development
branch, and install dependencies:
git clone https://github.com/freon4dsl/Freon4dsl.git
Setup the multirepo and install all dependencies:
npm install
Now you can build Freon with:
npm run build
And run all tests with:
npm run test
Go to the package containing your language, this can e.g. be any package in packages/samples
.
npm run build
Go to the webapp-starter
package.
src/starter.ts
Go to directory packages/server
and start the server:
cd packages/server
npm run start
Goto the webapp-starter
and start Freon:
cd packages/webapp-starter
npm run prepare-app
npm run dev
This will open a browser with the example from the samples/Example package on
the URL displayed: http://localhost:5000/
. The example and all other projects in samples are
work in progress.
The source code for Freon is organised into the following packages.
webapp-lib
for the full web app and one language from samples
to be used in the webapp.