A lightweight, fast VS Code extension that instantly discovers and runs Makefile targets with a searchable Quick Pick interface. Perfect for teams using Makefiles to automate builds, tests, deployments, and dev workflows.
Features
- Lightning-fast discovery: In-memory caching of parsed Makefile targets.
- Smart search: Quickly find targets by name using Quick Pick.
- Multi-workspace support: Works seamlessly with multi-root workspaces.
- Live watching: Automatically refreshes when Makefiles change.
- Create Makefiles: Generate a default Makefile if none exists.
- Highly configurable: Customize paths, templates, and debug settings.
Commands
| Command | Shortcut | Description |
|---|---|---|
| Makefile: Run Target | Ctrl+Alt+M / Cmd+Alt+M |
Open Quick Pick to select and run a target. |
| Makefile: Refresh Targets | Ctrl+Alt+Shift+M / Cmd+Alt+Shift+M |
Refresh the cached target list. |
| Makefile: Create Default Makefile | Ctrl+Alt+N / Cmd+Alt+N |
Generate a default Makefile in your workspace. |
How It Works
- Discovery: Scans your workspace for Makefiles in common locations.
- Parsing: Extracts runnable targets from Makefiles.
- Caching: Stores targets in memory for instant lookup.
- Watching: Automatically refreshes when Makefiles change.
- Execution: Runs selected targets in VS Code's integrated terminal.
Usage
Run a Target
- Press
Ctrl+Alt+M(Windows/Linux) orCmd+Alt+M(Mac). - Search for a target using Quick Pick.
- Select the target to run it in the terminal.
Refresh Targets
- Press
Ctrl+Alt+Shift+M(Windows/Linux) orCmd+Alt+Shift+M(Mac). - The target list will refresh automatically.
Create a Default Makefile
- Press
Ctrl+Alt+N(Windows/Linux) orCmd+Alt+N(Mac). - A default Makefile will be created in your workspace.
Configuration
Customize the extension using the following settings:
makefileRunner.discoveryPaths: Additional paths to search for Makefiles.makefileRunner.groupBy: Group targets by folder or workspace.makefileRunner.showPrivateTargets: Include private targets in the list.makefileRunner.terminalReuse: Reuse the same terminal for running targets.
License
This extension is licensed under the MIT License.