{ "name": "openidea", "private": true, "description": "An open-source IDE inspired by IntelliJ IDEA", "version": "0.1.33", "license": "Apache-2.0", "type": "module", "scripts": { "dev": "vite", "build": "tsc --noEmit && vite build", "preview": "vite preview", "tauri": "node scripts/tauri.ts", "test": "vitest run", "test:watch": "vitest", "lint": "oxlint", "format": "oxfmt", "format:check": "oxfmt --check", "knip": "knip", "typecheck": "tsrs --noEmit && tsrs -p tsconfig.node.json --noEmit && tsrs -p perf --noEmit && tsrs -p scripts --noEmit", "gen:bindings": "cargo test -p openidea --test export_bindings", "gen:angular-grammar": "lezer-generator src/editor/core/cm/angular/angular.grammar --typeScript -o src/editor/core/cm/angular/parser.ts", "gen:theme-docs": "node scripts/theme/gen-docs.ts", "theme:import-intellij": "node scripts/theme/import-intellij-theme.ts", "dev:app": "node scripts/tauri.ts dev --config src-tauri/tauri.dev.conf.json", "dev:status": "node scripts/dev-status.ts", "e2e": "playwright test", "perf": "node perf/run.ts", "perf:rust": "node perf/rust.ts" }, "simple-git-hooks": { "pre-commit": "pnpm lint-staged" }, "lint-staged": { "*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}": "oxlint --fix --no-error-on-unmatched-pattern", "*": "oxfmt --no-error-on-unmatched-pattern", "*.rs": "rustfmt --edition 2024" }, "dependencies": { "@codemirror/autocomplete": "^6.20.3", "@codemirror/commands": "^6.11.1", "@codemirror/lang-html": "^6.4.12", "@codemirror/lang-javascript": "^6.2.5", "@codemirror/language": "^6.13.1", "@codemirror/language-data": "^6.5.2", "@codemirror/legacy-modes": "^6.5.5", "@codemirror/lint": "^6.9.7", "@codemirror/merge": "^6.12.2", "@codemirror/search": "^6.7.2", "@codemirror/state": "^6.7.6", "@codemirror/view": "^6.43.14", "@floating-ui/react-dom": "^2.1.9", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@lezer/common": "^1.5.3", "@lezer/highlight": "^1.2.5", "@lezer/lr": "^1.4.11", "@replit/codemirror-vim": "6.4.0", "@tanstack/react-virtual": "^3.14.21", "@tauri-apps/api": "^2", "@tauri-apps/plugin-dialog": "^2.8.3", "@tauri-apps/plugin-opener": "^2", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-search": "^0.16.0", "@xterm/xterm": "^6.0.0", "anser": "^2.3.5", "clsx": "^2.1.1", "dompurify": "^3.4.17", "emmet": "2.4.11", "immer": "^11.1.21", "marked": "^18.1.1", "mermaid": "12.1.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-resizable-panels": "^4.14.6", "zustand": "^5.0.15" }, "devDependencies": { "@lezer/generator": "^1.8.1", "@playwright/test": "^1.64.1", "@tauri-apps/cli": "^2", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.3", "@testing-library/user-event": "^14.6.8", "@types/node": "^26.6.5", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^6.0.2", "jsdom": "^30.1.3", "knip": "^6.43.0", "lint-staged": "^17.6.0", "oxfmt": "^0.74.0", "oxlint": "^1.89.0", "simple-git-hooks": "^2.14.0", "tsrs": "^0.20.0-ts7.1.0-beta", "typescript": "~6.0.3", "vite": "^8.0.16", "vitest": "^5.0.5" } }