# ====================
# Rust 相关
# ====================
# 编译输出
/target/
**/*.rs.bk
*.pdb
*.dll
*.exe
*.rlib

# Cargo 锁文件（库项目建议忽略，应用项目建议提交）
# 对于 Tauri 应用项目，建议提交 Cargo.lock 以确保构建可重现
# Cargo.lock

# ====================
# Node.js / 前端相关
# ====================
# 依赖目录
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
package-lock.json
yarn.lock
pnpm-lock.yaml

# 前端构建输出
dist/
dist-ssr/
*.local
out/
build/
.next/
.nuxt/
.cache/

# ====================
# Tauri 特定
# ====================
# Tauri 构建输出（通常已在 target 中，单独列出更明确）
src-tauri/target/
src-tauri/.cargo/
src-tauri/gen/

# Tauri 生成的绑定文件
src-tauri/bindings/
src-tauri/capabilities/*.json
!src-tauri/capabilities/default.json

# ====================
# JetBrains IDE (RustRover/CLion/IntelliJ)
# ====================
.idea/
*.iml
*.iws
*.ipr

# 忽略 IDE 特定的项目文件
*.swp
*.swo
*~

# ====================
# 操作系统生成文件
# ====================
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Desktop.ini
*.tmp
*.log

# ====================
# 环境变量和配置文件
# ====================
.env
.env.local
.env.*.local
*.env
*.env.local

# ====================
# 其他
# ====================
# 备份文件
*.bak
*.orig
*.old

# 临时文件
*.tmp
*.temp

# 测试覆盖率
*.lcov
coverage/
*.prof

# 打包文件
*.zip
*.tar.gz
*.7z
*.rar

# ====================
# 可选：如果你想提交 Cargo.lock
# ====================
# 对于可执行应用（Tauri 是应用），建议提交 Cargo.lock
# 取消下面这行的注释来提交 Cargo.lock
# !Cargo.lock