This repository is now configured for optimal GitHub Copilot integration. This guide explains what has been set up and how to use it effectively.
settings.json: Configures c++23 standard, include paths, and enables Copilot for relevant file typesextensions.json: Recommends essential extensions including GitHub Copilottasks.json: Provides build, test, and clean tasks using Mesonlaunch.json: Debug configuration for C++ tests
Enhanced to properly identify C++, C, and Meson files for better Copilot context:
*.hpp linguist-language=C++
*.cpp linguist-language=C++
*.h linguist-language=C
meson.build linguist-language=Meson
Provides GitHub Copilot with project-specific information:
- Build system: Meson
- C++ standard: c++23
- Key dependencies: Eigen, xtensor, pybind11
- Namespace structure and conventions
Added comprehensive Copilot setup instructions.
- Install VS Code
- Install the recommended extensions (VS Code will prompt you when opening the project)
- Ensure you have GitHub Copilot access
For building the project, you'll need:
# Ubuntu/Debian
sudo apt install build-essential cmake pkg-config libboost-all-dev libeigen3-dev
# Install Meson and Ninja
pip3 install meson ninja- Open VS Code in the project directory
- Press
Ctrl+Shift+Pand type "Tasks: Run Task" - Select "build" to build the project
- Or use the terminal:
meson setup builddir && meson compile -C builddir
- Function Documentation: Start with
/**to get Doxygen-style documentation suggestions - Class Implementation: Copilot understands the project's namespace structure (
themachinethatgoesping::algorithms::) - Test Writing: When in test files, Copilot will suggest Catch2-style test cases
- Python Bindings: In
pymodule/directory, Copilot understands pybind11 patterns
- "Create a new algorithm class for signal processing"
- "Add unit tests for the raytracer functionality"
- "Generate Python bindings for this C++ class"
- "Implement Eigen-based matrix operations"
src/themachinethatgoesping/algorithms/: Core C++ implementationsrc/pymodule/: Python bindings using pybind11src/tests/: Unit tests using Catch2 frameworkmeson.build: Build configuration
- If IntelliSense doesn't work, ensure the C++ extension is installed
- If build tasks fail, check that Meson and dependencies are installed
- If Copilot suggestions are poor, ensure file types are properly detected in
.gitattributes
When adding new files:
- Follow the existing namespace structure
- Add appropriate file extensions to maintain language detection
- Use descriptive function/variable names for better Copilot suggestions
- Include comments describing intent for complex algorithms