enso/app/ide-desktop/lib/client
Kaz Wesley 0e904b2256
Profiling batch mode (#3428)
Implement a command that launches the application, runs a series of steps (a "workflow"), writes a profile to a file, and exits.

See: [#181775808](https://www.pivotaltracker.com/story/show/181775808)

# Important Notes
- The command to capture run and profile is used like: `./run profile --workflow=new_project --save-profile=out.json`. Defining some more workflows (collapse nodes, create node and edit value) comes next; they are implemented with the same infrastructure as the integration-tests.
- The `--save-profile` option can also be used when profiling interactively; when the option is provided, capturing a profile with the hotkey will write a file instead of dumping the data to the devtools console.
- If the IDE panics, the error message is now printed to the console that invoked the process, as well as the devtools console. (If a batch workflow fails, this allows us to see why.)
- New functionality (writing profile files, quitting on command, logging to console) relies on Electron APIs. These APIs are implemented in `index.js`, bridged to the render process in `preload.js`, and wrapped for use in Rust in a `debug_api` crate.
2022-05-10 19:34:40 +00:00
..
src Profiling batch mode (#3428) 2022-05-10 19:34:40 +00:00
tasks Developers should be able to build and test desktop IDE on M1 Mac (#3194) 2022-01-10 12:18:34 +03:00
entitlements.mac.plist Refactor gui/src/rust/ide to two app/gui and app/ide-desktop (#3157) 2021-11-16 10:04:56 +01:00
package-lock.json Refactor gui/src/rust/ide to two app/gui and app/ide-desktop (#3157) 2021-11-16 10:04:56 +01:00
package.js Update electron-builder to v23.0.6 (#3410) 2022-04-21 11:36:32 +00:00
webpack.config.js Developers should be able to build and test desktop IDE on M1 Mac (#3194) 2022-01-10 12:18:34 +03:00