PACKAGE_NAME := $(shell node -p "require('./package.json').name")
VERSION := $(shell node -p "require('./package.json').version")
VSIX := $(PACKAGE_NAME)-$(VERSION).vsix

.PHONY: help install compile test package install-vsix clean clean-dist

help:
	@printf "Available targets:\n"
	@printf "  make install       Install npm dependencies\n"
	@printf "  make compile       Compile TypeScript sources\n"
	@printf "  make test          Run unit tests\n"
	@printf "  make package       Build the VSIX package\n"
	@printf "  make install-vsix  Install the generated VSIX into VS Code\n"
	@printf "  make clean         Remove build output and packaged VSIX\n"

install:
	npm install

compile: clean-dist
	npm run compile

test:
	npm test

package: compile
	npx @vscode/vsce package --allow-missing-repository

install-vsix: package
	code --install-extension "$(VSIX)" --force

clean:
	rm -rf dist "$(VSIX)"

clean-dist:
	rm -rf dist
