|
1 | | -.PHONY: test lint docgen |
| 1 | +NVIM_VERSION ?= nightly |
| 2 | +LUALS_VERSION := 3.15.0 |
2 | 3 |
|
| 4 | +DEPDIR ?= .test-deps |
| 5 | +CURL ?= curl -sL --create-dirs |
| 6 | + |
| 7 | +ifeq ($(shell uname -s),Darwin) |
| 8 | + NVIM_ARCH ?= macos-arm64 |
| 9 | + LUALS_ARCH ?= darwin-arm64 |
| 10 | + STYLUA_ARCH ?= macos-aarch64 |
| 11 | +else |
| 12 | + NVIM_ARCH ?= linux-x86_64 |
| 13 | + LUALS_ARCH ?= linux-x64 |
| 14 | + STYLUA_ARCH ?= linux-x86_64 |
| 15 | +endif |
| 16 | + |
| 17 | +# download test dependencies |
| 18 | + |
| 19 | +NVIM := $(DEPDIR)/nvim-$(NVIM_ARCH) |
| 20 | +NVIM_TARBALL := $(NVIM).tar.gz |
| 21 | +NVIM_URL := https://github.com/neovim/neovim/releases/download/$(NVIM_VERSION)/$(notdir $(NVIM_TARBALL)) |
| 22 | +NVIM_BIN := $(NVIM)/nvim-$(NVIM_ARCH)/bin/nvim |
| 23 | +NVIM_RUNTIME=$(NVIM)/nvim-$(NVIM_ARCH)/share/nvim/runtime |
| 24 | + |
| 25 | +.PHONY: nvim |
| 26 | +nvim: $(NVIM) |
| 27 | + |
| 28 | +$(NVIM): |
| 29 | + $(CURL) $(NVIM_URL) -o $(NVIM_TARBALL) |
| 30 | + mkdir $@ |
| 31 | + tar -xf $(NVIM_TARBALL) -C $@ |
| 32 | + rm -rf $(NVIM_TARBALL) |
| 33 | + |
| 34 | +LUALS := $(DEPDIR)/lua-language-server-$(LUALS_VERSION)-$(LUALS_ARCH) |
| 35 | +LUALS_TARBALL := $(LUALS).tar.gz |
| 36 | +LUALS_URL := https://github.com/LuaLS/lua-language-server/releases/download/$(LUALS_VERSION)/$(notdir $(LUALS_TARBALL)) |
| 37 | + |
| 38 | +.PHONY: luals |
| 39 | +luals: $(LUALS) |
| 40 | + |
| 41 | +$(LUALS): |
| 42 | + $(CURL) $(LUALS_URL) -o $(LUALS_TARBALL) |
| 43 | + mkdir $@ |
| 44 | + tar -xf $(LUALS_TARBALL) -C $@ |
| 45 | + rm -rf $(LUALS_TARBALL) |
| 46 | + |
| 47 | +STYLUA := $(DEPDIR)/stylua-$(STYLUA_ARCH) |
| 48 | +STYLUA_TARBALL := $(STYLUA).zip |
| 49 | +STYLUA_URL := https://github.com/JohnnyMorganz/StyLua/releases/latest/download/$(notdir $(STYLUA_TARBALL)) |
| 50 | + |
| 51 | +.PHONY: stylua |
| 52 | +stylua: $(STYLUA) |
| 53 | + |
| 54 | +$(STYLUA): |
| 55 | + $(CURL) $(STYLUA_URL) -o $(STYLUA_TARBALL) |
| 56 | + unzip $(STYLUA_TARBALL) -d $(STYLUA) |
| 57 | + rm -rf $(STYLUA_TARBALL) |
| 58 | + |
| 59 | +.PHONY: formatlua |
| 60 | +formatlua: $(STYLUA) |
| 61 | + $(STYLUA)/stylua . |
| 62 | + |
| 63 | +.PHONY: checklua |
| 64 | +checklua: $(LUALS) $(NVIM) |
| 65 | + VIMRUNTIME=$(NVIM_RUNTIME) $(LUALS)/bin/lua-language-server \ |
| 66 | + --configpath=../.luarc.json \ |
| 67 | + --check=./ |
| 68 | + |
| 69 | +.PHONY: test |
3 | 70 | test: |
4 | 71 | nvim --headless --noplugin -u scripts/minimal_init.vim -c "PlenaryBustedDirectory lua/tests/automated/ { minimal_init = './scripts/minimal_init.vim' }" |
5 | 72 |
|
6 | | -lint: |
| 73 | +.PHONY: lint |
| 74 | +luacheck: |
7 | 75 | luacheck lua/telescope |
8 | 76 |
|
| 77 | +.PHONY: docgen |
9 | 78 | docgen: |
10 | 79 | nvim --headless --noplugin -u scripts/minimal_init.vim -c "luafile ./scripts/gendocs.lua" -c 'qa' |
| 80 | + |
| 81 | +.PHONY: clean |
| 82 | +clean: |
| 83 | + rm -rf $(DEPDIR) |
0 commit comments