Getting Started
We welcome contributions to Code Editor Thing! Whether you’re fixing bugs, adding features, or improving documentation, your help is appreciated.Development Workflow
Making Changes
Make Your Changes
Edit the relevant files. The main areas are:
- Electron/Main Process:
electron/main.ts,electron/preload.ts - React Components:
src/components/ - State Management:
src/lib/editor-context.tsx - Styling: Tailwind classes in components
- Editor Config:
src/lib/utils.tsfor CodeMirror setup
Code Style
Follow the existing code style to maintain consistency across the codebase.
TypeScript Conventions
React Conventions
File Organization
- Components: One component per file, matching filename
- Utilities: Group related utilities in
src/lib/ - Types: Define in the same file or
src/lib/types.ts - Electron: Keep main process code in
electron/
Testing Locally
Manual Testing Checklist
Open a folder with nested directories
Open multiple files in tabs
Edit and save files
Toggle sidebar (Cmd+B)
Toggle terminal (Cmd+Shift+T)
Test keyboard shortcuts (Cmd+S, Cmd+O)
Switch themes
Test with different file types (.js, .py, .md, etc.)
Test file tree navigation
Submitting Changes
Commit Your Changes
Write clear, concise commit messages:Good commit messages:
Fix: Prevent crash when saving untitled filesFeature: Add keyboard shortcut for closing tabsRefactor: Extract theme logic into separate moduleDocs: Update installation instructions
Pull Request Example
Contribution Ideas
Bug Fixes
- Fix reported issues
- Handle edge cases
- Improve error handling
New Features
- Additional language support
- Search/replace functionality
- Git integration
- Settings panel
Performance
- Optimize large file handling
- Reduce bundle size
- Improve startup time
Documentation
- Code comments
- API documentation
- User guides
- Architecture diagrams
Code Review Process
After submitting a pull request:- Automated Checks: Ensure builds pass (if CI is configured)
- Code Review: Maintainers review your code for quality and consistency
- Feedback: Address any requested changes
- Merge: Once approved, your PR will be merged
Areas to Explore
If you’re looking for ways to contribute, consider these areas:Electron Integration
- Menu customization (
electron/main.ts:50-85) - Additional IPC handlers (
electron/main.ts:104-166) - Native dialogs and OS integration
- Window state persistence
Editor Features
- Additional CodeMirror extensions (
src/components/Editor.tsx:23-42) - Custom key bindings
- Multi-cursor support
- Code folding
UI/UX Improvements
- Sidebar enhancements (
src/components/Sidebar.tsx) - Tab management improvements (
src/components/open-files.tsx) - Theme customization (
src/lib/themes.ts) - Modal dialogs
State Management
- File watcher integration (
src/lib/editor-context.tsx) - Undo/redo for file operations
- Session persistence
- Recent files tracking
Getting Help
Architecture Guide
Understand the codebase structure
Building Guide
Learn about build processes
If you have questions or need help, open a discussion on GitHub or comment on relevant issues.