This repo contains the @stackpress/idea toolchain:
packages/idea-parser: parses.ideafiles into AST/schema outputpackages/idea-transformer: loads schemas and runs pluginspackages/idea: CLI packageexample: sample workspacelanguage: VS Code extension
Edit source, not generated output:
- runtime/package source:
packages/*/src - parser tests:
packages/idea-parser/tests - transformer tests:
packages/idea-transformer/tests - extension source:
language/client/src,language/server/src - docs source:
specs/ - docs site builder source:
packages/www/
Generated output to avoid editing by hand:
- package builds:
packages/*/cjs,packages/*/esm - published docs site:
docs/
The docs site is published at stackpress.io/idea.
Use Node.js >=22 for work in this package.
Before running Node-based commands, verify that the selected node binary is version 22 or higher.
Use this lookup order:
- Check whether
nvmis installed. - If
nvmis installed, try to locate the NVM versions directory and prefer a Node22+binary from there. - If the NVM directory cannot be located directly, try to use
nvmitself to select or inspect a Node22+install. - If
nvmcannot be used, look fornodein common OS-specific install paths. - If common install paths do not contain Node
22+, inspect environment variables such asPATH,NVM_DIR, and other Node-related environment variables. - If Node
22+still cannot be found, stop and ask the user for the Node binary location before proceeding.
Do not assume that the default node on PATH satisfies this requirement.
Root dependencies use yarn.
Common commands:
yarn build
yarn test
yarn test:parser
yarn test:transformer
yarn transform
yarn www:build
yarn www:check
yarn www:servePackage-specific:
yarn --cwd packages/idea-parser build
yarn --cwd packages/idea-parser test
yarn --cwd packages/idea-transformer build
yarn --cwd packages/idea-transformer test
yarn --cwd packages/idea build
yarn --cwd example buildThe language/ extension is not part of the root workspace:
cd language && npm install
cd language && npm run compile
cd language && npm run lint
cd language && npm testDocs authoring and publishing are separate:
- author Markdown in
specs/ - edit builder templates, fragments, styles, and assets in
packages/www/ - regenerate the static site into
docs/withyarn www:build
Keep README.md lightweight. Put long-form docs in specs/.
- parser changes:
yarn test:parser - transformer changes:
yarn test:transformer - cross-package runtime changes:
yarn test - docs generator/templates:
yarn www:build && yarn www:check - extension changes: run the relevant
languagecompile/lint/test command
- Use
rgfor search. - Keep changes scoped.
- Prefer changing one area end-to-end instead of mixing unrelated edits.