mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-11-04 04:44:31 +01:00 
			
		
		
		
	* chore: init CLAUDE.md * Add Copilot instructions * update gitignore * simplify --------- Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
		
			
				
	
	
	
		
			1.6 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.6 KiB
		
	
	
	
	
	
	
	
Project coding standards
Generic Communication Guidelines
- Be succint and be aware that expansive generative AI answers are costly and slow
 - Avoid providing explanations, trying to teach unless asked for, your chat partner is an expert
 - Stop apologising if corrected, just provide the correct information or code
 - Prefer code unless asked for explanation
 - Stop summarizing what you've changed after modifications unless asked for
 
TypeScript Guidelines
- Use TypeScript for all new code
 - Where possible, prefer implementations without allocation
 - When there is an option, opt for more performant solutions and trade RAM usage for less CPU cycles
 - Prefer immutable data (const, readonly)
 - Use optional chaining (?.) and nullish coalescing (??) operators
 
React Guidelines
- Use functional components with hooks
 - Follow the React hooks rules (no conditional hooks)
 - Keep components small and focused
 - Use CSS modules for component styling
 
Naming Conventions
- Use PascalCase for component names, interfaces, and type aliases
 - Use camelCase for variables, functions, and methods
 - Use ALL_CAPS for constants
 
Error Handling
- Use try/catch blocks for async operations
 - Implement proper error boundaries in React components
 - Always log errors with contextual information
 
Testing
- Always attempt to fix #problems
 - Always offer to run 
yarn test:appin the project root after modifications are complete and attempt fixing the issues reported 
Types
- Always include 
packages/math/src/types.tsin the context when your write math related code and always use the Point type instead of { x, y}