-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
92 lines (77 loc) · 2.71 KB
/
Makefile
File metadata and controls
92 lines (77 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.PHONY: all install uninstall test lint format check help
# Configuration
NVIM_PLUGIN_DIR ?= $(HOME)/.local/share/nvim/site/pack/traverse/start/traverse-lsp.nvim
LUA_FILES := lua/traverse-lsp.lua lua/traverse-lsp/*.lua plugin/traverse-lsp.lua
# Colors for output
GREEN := \033[0;32m
YELLOW := \033[0;33m
NC := \033[0m
help:
@echo "traverse-lsp.nvim build system"
@echo ""
@echo "Usage: make [target]"
@echo ""
@awk 'BEGIN {FS = ":.*##"} /^[a-zA-Z_-]+:.*?##/ { printf " ${GREEN}%-15s${NC} %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
all: check lint
install:
@echo "${YELLOW}Installing plugin...${NC}"
@mkdir -p $(NVIM_PLUGIN_DIR)/lua/traverse-lsp
@cp $(LUA_FILES) $(NVIM_PLUGIN_DIR)/lua/traverse-lsp/
@cp README.md $(NVIM_PLUGIN_DIR)/
@echo "${GREEN}✓ Installed to $(NVIM_PLUGIN_DIR)${NC}"
install-dev:
@echo "${YELLOW}Setting up development environment...${NC}"
@mkdir -p $(dir $(NVIM_PLUGIN_DIR))
@rm -rf $(NVIM_PLUGIN_DIR)
@ln -sf $(PWD) $(NVIM_PLUGIN_DIR)
@echo "${GREEN}✓ Symlinked to $(NVIM_PLUGIN_DIR)${NC}"
uninstall-dev:
@echo "${YELLOW}Removing development symlink...${NC}"
@if [ -L $(NVIM_PLUGIN_DIR) ]; then \
rm -f $(NVIM_PLUGIN_DIR); \
echo "${GREEN}✓ Development symlink removed${NC}"; \
else \
echo "${YELLOW}⚠ No development symlink found${NC}"; \
fi
uninstall-binary:
@echo "${YELLOW}Removing traverse-lsp binary...${NC}"
@rm -rf $(HOME)/.local/share/nvim/traverse-lsp
@echo "${GREEN}✓ Binary removed${NC}"
uninstall:
@echo "${YELLOW}Removing plugin...${NC}"
@rm -rf $(NVIM_PLUGIN_DIR)
@echo "${GREEN}✓ Uninstalled${NC}"
uninstall-all: uninstall uninstall-binary ## Remove plugin and binary completely
@echo "${GREEN}✓ Complete uninstall finished${NC}"
test:
@echo "${YELLOW}Running health check...${NC}"
@nvim --headless +checkhealth +qa 2>&1 | grep -E "traverse-lsp|OK|ERROR" || echo "${GREEN}✓ Health check completed${NC}"
lint:
@if command -v luacheck > /dev/null; then \
luacheck $(LUA_FILES) --globals vim; \
else \
echo "${YELLOW}⚠ luacheck not installed${NC}"; \
fi
format:
@if command -v stylua > /dev/null; then \
stylua $(LUA_FILES); \
else \
echo "${YELLOW}⚠ stylua not installed${NC}"; \
fi
syntax-check:
@if command -v luac > /dev/null; then \
echo "${YELLOW}Checking Lua syntax...${NC}"; \
if luac -p $(LUA_FILES) 2>/dev/null; then \
echo "${GREEN}✓ No syntax errors found${NC}"; \
else \
echo "${YELLOW}⚠ Syntax errors detected!${NC}"; \
luac -p $(LUA_FILES); \
exit 1; \
fi \
else \
echo "${YELLOW}⚠ luac not installed, skipping syntax check${NC}"; \
fi
check: syntax-check
@nvim --version | head -1 | grep -q "0\.1[1-9]" && \
echo "${GREEN}✓ Neovim 0.11+ found${NC}" || \
echo "${YELLOW}⚠ Requires Neovim 0.11+${NC}"