A lightweight VS Code extension that automatically discovers Makefile targets and lets you run them instantly through a searchable Quick Pick interface with live updates and multi-root workspace support.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
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) or Cmd+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) or Cmd+Alt+Shift+M (Mac).
The target list will refresh automatically.
Create a Default Makefile
Press Ctrl+Alt+N (Windows/Linux) or Cmd+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.