Skip to content

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CodeDump - PyQt5 Code Concatenation Tool

A powerful, cross-platform GUI application for concatenating and dumping source code files with intelligent filtering and organization capabilities. Built with PyQt5 for a modern, responsive interface.

CodeDump GUI PyQt5 License

πŸš€ Features

Core Functionality

  • πŸ“ Directory Browsing: Navigate and select entire directories or specific files
  • πŸ” Smart Filtering: Automatically skips common build artifacts and binary files
  • πŸ“‹ File Selection: Check/uncheck files and directories with recursive selection
  • πŸ”Ž Search & Filter: Real-time search by filename, content, or both
  • πŸ“Š File Preview: Preview selected files before concatenation
  • πŸ“„ Code Dumping: Generate comprehensive dumps with file metadata

Advanced Features

  • πŸ—‚οΈ Folder Structure: Generate visual folder structure representations
  • πŸ“‹ Clipboard Integration: Copy results directly to clipboard
  • ⚑ Performance: Efficient file processing with caching
  • 🎨 Modern UI: Clean, intuitive PyQt5 interface
  • πŸ”„ Refresh Support: Dynamic directory refresh without losing selections

Supported File Types

  • Programming Languages: Python, JavaScript, TypeScript, C/C++, Java, Go, Rust, Swift, and many more
  • Markup: HTML, CSS, XML, JSON, YAML, Markdown
  • Configuration: Config files, Docker files, Makefiles
  • Documentation: README, LICENSE, and documentation files

πŸ“Έ Screenshots

Main Interface

The application provides a three-panel layout:

  • Left Panel: File tree with directory structure
  • Top-Right: Selected files list
  • Bottom-Right: File preview and dump content

Key Components

  • Directory Selection: Browse and select target directories
  • Search Bar: Filter files by name or content
  • Action Buttons: Generate dumps, folder structures, and copy to clipboard

πŸ› οΈ Installation

Prerequisites

  • Python 3.6 or higher
  • PyQt5
  • pyperclip (for clipboard functionality)

Quick Install

# Clone the repository
git clone https://github.com/Sn0wfly/codedump.git
cd codedump

# Install dependencies
pip install -r requirements.txt

# Install the package
pip install -e .

Development Install

# Clone and install in development mode
git clone https://github.com/Sn0wfly/codedump.git
cd codedump
pip install -e .

πŸš€ Usage

Command Line

# Launch the GUI application
codedump

# Or run directly
python -m mi_app_pyqt5.main_app

GUI Usage

  1. Launch Application: Run codedump from command line
  2. Select Directory: Click "Select Directory" to choose your source folder
  3. Browse Files: Navigate the file tree to explore your codebase
  4. Select Files: Check files/directories you want to include
  5. Generate Dump: Click "Generate Dump" to create concatenated output
  6. Copy Results: Use "Copy to Clipboard" to copy results

Keyboard Shortcuts

  • Ctrl+O: Select directory
  • Ctrl+R: Refresh directory
  • Ctrl+F: Focus search
  • Ctrl+C: Copy to clipboard
  • Escape: Clear search

πŸ“ Project Structure

codedump/
β”œβ”€β”€ mi_app_pyqt5/
β”‚   β”œβ”€β”€ __init__.py          # Package initialization
β”‚   β”œβ”€β”€ main_app.py          # Main PyQt5 GUI application
β”‚   β”œβ”€β”€ backend.py           # Core file processing logic
β”‚   └── ...                  # Additional modules
β”œβ”€β”€ pyproject.toml           # Project configuration
β”œβ”€β”€ requirements.txt         # Dependencies
β”œβ”€β”€ README.md               # This file
└── ...                     # Additional project files

πŸ”§ Configuration

File Filtering

The application uses intelligent filtering to skip:

  • Build artifacts: __pycache__, node_modules, build/, dist/
  • Version control: .git/, .svn/, .hg/
  • IDE files: .idea/, .vscode/
  • Binary files: Images, executables, compiled code
  • Log files: *.log, temporary files

Customization

Modify backend.py to adjust:

  • Allowed file extensions
  • Skip patterns
  • Directory exclusions
  • File processing behavior

πŸ§ͺ Testing

Manual Testing

  1. Launch the application
  2. Test directory selection with various folder structures
  3. Verify file filtering works correctly
  4. Test search functionality
  5. Generate dumps and verify content
  6. Test clipboard functionality

Automated Testing

# Run basic functionality tests
python -c "from mi_app_pyqt5.backend import should_skip; print('Testing...')"

πŸ› Troubleshooting

Common Issues

Q: Application won't start

  • Ensure Python 3.6+ is installed
  • Install all dependencies: pip install -r requirements.txt

Q: Files not appearing

  • Check if directory has read permissions
  • Verify files aren't being filtered out
  • Try refreshing the directory

Q: Large directories slow

  • The application caches file information
  • Consider excluding large binary directories

Q: Unicode errors

  • The application handles various encodings automatically
  • Report specific file encoding issues

Debug Mode

Enable debug logging by setting:

import logging
logging.basicConfig(level=logging.DEBUG)

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

git clone https://github.com/Sn0wfly/codedump.git
cd codedump
pip install -e ".[dev]"

Pull Request Process

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • PyQt5 Team for the excellent GUI framework
  • Python Community for the rich ecosystem
  • Contributors who helped improve this tool

πŸ“ž Support

πŸ—ΊοΈ Roadmap

Version 2.0 (Planned)

  • Export to multiple formats (PDF, HTML, Markdown)
  • Syntax highlighting in preview
  • Batch processing
  • Custom file type definitions
  • Plugin system for extensions

Version 2.5 (Future)

  • Web-based version
  • Cloud storage integration
  • Collaborative features
  • Advanced filtering with regex
  • Performance optimizations

Made with ❀️ by the CodeDump Team

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages