This repository contains my personal configuration files used to standardise and streamline development across different environments. It’s a collection of tools and settings that help me write clean, consistent, and well-formatted code from project to project.
| File | Purpose |
|---|---|
.editorconfig |
Ensures consistent coding styles across different editors and IDEs |
.gitconfig |
Personal Git settings (e.g., aliases, user info, default behaviour) |
.pre-commit-config.yaml |
Hooks for code quality checks before commits (e.g., Black, isort) |
pyproject.toml |
Python project configuration (e.g., formatter, linter, tool settings) |
settings.json |
VS Code-specific settings for editor preferences and extensions |
README.md |
You're reading it! |
This setup is meant to be modular and portable — I can clone or symlink specific files into new projects or dev machines to instantly apply my preferred settings.
# Clone into a hidden folder in home
git clone https://github.com/jswalker-data/Setup ~/.dotfiles
# Symlink gitconfig
ln -s ~/.dotfiles/.gitconfig ~/.gitconfigOr selectively copy configs into your project root for consistency.
This repo uses pre-commit to enforce code quality and consistency automatically before each commit or push.
- Ruff – Lightning-fast Python linter & formatter (with
--fixenabled) - Trailing whitespace removal
- End-of-file fixer
- YAML, JSON, TOML, and XML checkers
- Merge conflict & symlink detection
- Private key detector
- Auto-format JSON files with 2-space indent and no key sorting
- Auto-update hook to keep everything up to date
To get started:
pip install pre-commit
pre-commit installThen you can manually run hooks with:
pre-commit run --all-filesThe hooks are triggered on both pre-commit and pre-push stages for maximum protection against bad code slipping in.
- ✅ Python development environments
- ✅ Git workflows
- ✅ VS Code (via
settings.json) - ✅ Most modern editors (via
.editorconfig)
Having a shared setup:
- Ensures code consistency across projects and team members
- Reduces onboarding/setup time on new machines
- Makes pre-commit and formatting seamless and automatic
Feel free to fork, clone, or cherry-pick any part of this setup if it’s helpful to you!