Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Open the package.json. In the package.json are several scripts defined.Image Removed

Code Block
languagejs
"scripts": {
        "prepare": "yarn run clean && yarn build",
        "clean": "theia clean",
        "build": "theia build --mode development",
        "start": "theia start --root-dir=../workspace",
        "socket": "node ./src-gen/backend/main.js --root-dir=../workspace --LSP_PORT=5007 --port=3000 --loglevel=debug",
        "watch": "theia build --watch --mode development"
    },


The LSP_PORT option is used to activate the connection via socket. It is also possible to specify a relative location to a LS via LS_PATH=<path to LS>.

...

Run the following to build and run KEITH in its developer setup (in socket mode, so the LS has to be started separately)

Running KEITH in the browser


Code Block
languagebash
yarn && cd keith-app && yarn run socket

...

Per default the KEITH opens on localhost:3000.

It is required to restart the language server if KEITH is restarted, since the diagram view has a problem (since theia-sprotty is used) to reconnect after that.

Info

If you previously build keith electron, you have to execute yarn run rebuild: browser 


Running KEITH as (unbundled) electron app

Code Block
languagebash
yarn && yarn run rebuild:electron && cd keith-app-electron && yarn run socket

yarn builds all the stuff. yarn run socket in keith-app-electron starts the application. After an initial build via yarn you can run yarn watch  to watch the changes in your repository. In another console you run yarn run socket in keith-app-electron. Now refreshing your browser is enough to apply the changes.

Info

If you previously build keith electron, you have to execute yarn run rebuild: browser 

Known issues for windows:

...

Since SWT is still used as part of the diagram synthesis (but is not relevant anymore). Since it is not called on the main thread this causes a deadlock. Therefore mac just does not work.

Known issues:

  • KEITH works in the browser/electron app, but not in the electron app/browser with the following error message:

    symbol lookup error: ... symbol lookup error: .../keith/node_modules/nsfw/build/Release/nsfw.node: undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorENS_14SideEffectTypeE Done in 0.90s.

    • run yarn run rebuild:electron/browser after yarn to fix this.