Files
claude-howto/07-hooks/format-code.sh
T
Luong NGUYEN 6238744478 Add comprehensive Claude Code advanced features
Added three new major feature categories with complete documentation and examples:

## New Features

### 07-hooks/
- Event-driven automation with 6 example hook scripts
- Pre/post tool hooks, session hooks, and git hooks
- Auto-formatting, security scanning, test automation
- Complete documentation with best practices

### 08-checkpoints/
- Conversation state snapshots and rewind capability
- Safe experimentation and approach comparison
- Real-world examples: DB migration, performance optimization, UI iteration
- Checkpoint management commands and workflows

### 09-advanced-features/
- Planning Mode: detailed implementation plans before coding
- Extended Thinking: deep reasoning for complex problems
- Background Tasks: long-running operations without blocking
- Permission Modes: unrestricted, confirm, read-only, custom
- Headless Mode: CI/CD integration and automation
- Session Management: multiple work sessions
- Interactive Features: keyboard shortcuts, command history
- 10+ configuration examples for different scenarios

## Documentation Updates

- README.md: Added sections for all new features with examples
- INDEX.md: Updated with new categories, file listings, and search keywords
- QUICK_REFERENCE.md: Added quick reference for new features
- claude_concepts_guide.md: Comprehensive guide sections for new concepts

## Statistics

- Total files: 90+ (up from 71)
- Categories: 9 (up from 6)
- New hook scripts: 6
- New documentation files: 10+
- Configuration examples: 10+ scenarios

All examples are production-ready and follow Claude Code best practices.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 00:27:53 +01:00

47 lines
936 B
Bash

#!/bin/bash
# Auto-format code before writing
# Hook: PreToolUse:Write
FILE=$1
if [ -z "$FILE" ]; then
echo "Usage: $0 <file_path>"
exit 1
fi
# Detect file type and format accordingly
case "$FILE" in
*.js|*.jsx|*.ts|*.tsx)
if command -v prettier &> /dev/null; then
echo "Formatting JavaScript/TypeScript file: $FILE"
prettier --write "$FILE"
fi
;;
*.py)
if command -v black &> /dev/null; then
echo "Formatting Python file: $FILE"
black "$FILE"
fi
;;
*.go)
if command -v gofmt &> /dev/null; then
echo "Formatting Go file: $FILE"
gofmt -w "$FILE"
fi
;;
*.rs)
if command -v rustfmt &> /dev/null; then
echo "Formatting Rust file: $FILE"
rustfmt "$FILE"
fi
;;
*.java)
if command -v google-java-format &> /dev/null; then
echo "Formatting Java file: $FILE"
google-java-format -i "$FILE"
fi
;;
esac
exit 0