Files
yaak-mountain-loop/DEVELOPMENT.md
Gregory Schier b4a1c418bb Run oxfmt across repo, add format script and docs
Add .oxfmtignore to skip generated bindings and wasm-pack output.
Add npm format script, update DEVELOPMENT.md for Vite+ toolchain,
and format all non-generated files with oxfmt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 10:15:49 -07:00

1.8 KiB

Developer Setup

Yaak is a combined Node.js and Rust monorepo. It is a Tauri project, so uses Rust and HTML/CSS/JS for the main application but there is also a plugin system powered by a Node.js sidecar that communicates to the app over gRPC.

Because of the moving parts, there are a few setup steps required before development can begin.

Prerequisites

Make sure you have the following tools installed:

Check the installations with the following commands:

node -v
npm -v
vp --version
rustc --version

Install the NPM dependencies:

npm install

Run the bootstrap command to do some initial setup:

npm run bootstrap

Run the App

After bootstrapping, start the app in development mode:

npm start

SQLite Migrations

New migrations can be created from the src-tauri/ directory:

npm run migration

Rerun the app to apply the migrations.

Note: For safety, development builds use a separate database location from production builds.

Lezer Grammar Generation

# Example
lezer-generator components/core/Editor/<LANG>/<LANG>.grammar > components/core/Editor/<LANG>/<LANG>.ts

Linting and Formatting

This repo uses Vite+ for linting (oxlint) and formatting (oxfmt).

  • Lint the entire repo:
npm run lint
  • Format code:
npm run format

Notes:

  • A pre-commit hook runs vp lint automatically on commit.
  • Some workspace packages also run tsc --noEmit for type-checking.
  • VS Code users should install the recommended extensions for format-on-save support.