Epitech All-In-One Extension 🎓
A comprehensive Visual Studio Code extension designed specifically for Epitech students. This extension helps you maintain proper coding style, generate headers, and check your code against Epitech standards using epiclang.
✨ Features
Automatically generate Epitech-compliant headers for your source files with support for:
- C/C++ files (
.c, .h, .cpp, .hpp)
- Python files (
.py)
- JavaScript/TypeScript files (
.js, .ts)
- Java files (
.java)
Usage: Press Ctrl+Shift+H (or Cmd+Shift+H on Mac)
🔍 Coding Style Checker (Linter)
Integrated epiclang linter that checks your code against Epitech coding standards:
- Run on current file:
Ctrl+Shift+L (or Cmd+Shift+L on Mac)
- Run on entire workspace:
Ctrl+Shift+Alt+L (or Cmd+Shift+Alt+L on Mac)
- Uses
epiclang -Wno-everything -fsyntax-only for syntax checking
- Real-time diagnostics in the Problems panel
- Detailed output in the Output channel
📚 Coding Style Guide
Interactive webview displaying Epitech coding style rules:
- Complete reference guide for all coding standards
- Examples of correct and incorrect code
- Common violations and how to fix them
- Quick access via
Ctrl+Shift+S (or Cmd+Shift+S on Mac)
⚙️ Configurable Settings
Customize the extension to your needs:
- Set your author name and email for headers
- Configure epiclang path
📦 Installation
Prerequisites
- Visual Studio Code v1.109.0 or higher
- Node.js and npm
- epiclang installed and available in your PATH
From Source
Clone this repository:
git clone https://github.com/Mathildeuh/All-In-One-Epitech.git
cd All-In-One-Epitech
Install dependencies:
npm install
Compile the extension:
npm run compile
Press F5 in VS Code to launch the extension in debug mode
Building VSIX Package
To create an installable .vsix file:
npm install -g vsce
vsce package
Then install with:
code --install-extension epitech-all-in-one-1.0.0.vsix
🚀 Usage
Commands
Access commands via Command Palette (Ctrl+Shift+P or Cmd+Shift+P):
- Epitech: Generate Header - Generate Epitech header for current file
- Epitech: Check Coding Style (Current File) - Run linter on active file
- Epitech: Check Coding Style (Workspace) - Run linter on all C/C++ files
- Epitech: Show Coding Style Guide - Open coding style reference
Keyboard Shortcuts
| Command |
Windows/Linux |
Mac |
| Generate Header |
Ctrl+Shift+H |
Cmd+Shift+H |
| Check Current File |
Ctrl+Shift+L |
Cmd+Shift+L |
| Check Workspace |
Ctrl+Shift+Alt+L |
Cmd+Shift+Alt+L |
| Show Style Guide |
Ctrl+Shift+S |
Cmd+Shift+S |
Configuration
Go to Settings (Ctrl+,) and search for "Epitech":
{
"epitech.author": "Your Name",
"epitech.email": "your.email@epitech.eu",
"epitech.epiclangPath": "epiclang",
"epitech.autoInclude": true,
"epitech.includePaths": [],
"epitech.showOutput": false,
"epitech.enableHeaderShortcut": true
}
Customizing Shortcuts
While the default shortcut for generating headers is Ctrl+Shift+H (or Cmd+Shift+H on macOS), you can change it to any key combination you prefer:
- Open the Keyboard Shortcuts editor (
File > Preferences > Keyboard Shortcuts or Ctrl+K Ctrl+S).
- Search for
epitech.generateHeader.
- Click the pencil icon next to the command and type your desired key combination.
If you want to disable the default shortcut entirely to avoid conflicts, you can set epitech.enableHeaderShortcut to false in your settings.
🐳 Docker Support
The project includes a Dockerfile for containerized development:
docker build -t epitech-extension .
docker run -it epitech-extension
🔧 Development
Project Structure
epitech-all-in-one/
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── headerGenerator.ts # Header generation logic
│ ├── linter.ts # Epiclang linter integration
│ └── codingStyleView.ts # Webview for style guide
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
├── Dockerfile # Docker configuration
└── README.md # This file
Building
npm run compile # Compile TypeScript
npm run watch # Watch mode for development
npm run lint # Run ESLint
📝 Coding Style Rules
The extension enforces Epitech coding standards including:
- Maximum 80 characters per line
- Maximum 25 lines per function
- Maximum 4 parameters per function
- Proper naming conventions (snake_case, UPPER_SNAKE_CASE)
- Required Epitech headers
- Include guards in header files
- And many more...
View the complete guide using the "Show Coding Style Guide" command.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add some AmazingFeature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
🐛 Known Issues
- epiclang must be installed separately and available in PATH
- Some error parsing may need refinement for specific epiclang output formats
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Epitech for the coding standards
- VSCode Extension API documentation
- All contributors to this project
📧 Support
If you encounter any issues or have questions:
- Open an issue on GitHub
- Contact the maintainers
- Check the Epitech intranet for coding style documentation
Made with ❤️ for Epitech students