-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
103 lines (83 loc) · 3.33 KB
/
Copy pathMakefile
File metadata and controls
103 lines (83 loc) · 3.33 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
93
94
95
96
97
98
99
100
101
102
103
.PHONY: help pr-description mr-description github gitlab \
lint format format-check check validate clean docs update-readme \
install test health
# Default target
help:
@echo "Neovim Configuration - Available Commands"
@echo ""
@echo "PR/MR Description:"
@echo " make pr-description Generate GitHub PR description"
@echo " make mr-description Generate GitLab MR description"
@echo ""
@echo "Setup:"
@echo " make install Install dependencies and link config"
@echo ""
@echo "Code Quality:"
@echo " make lint Run luacheck linter"
@echo " make format Format Lua files with stylua"
@echo " make format-check Check Lua formatting (no write)"
@echo " make check Run lint + format check (no write)"
@echo " make validate Run full config validation"
@echo ""
@echo "Documentation:"
@echo " make docs Generate plugin and keybinding docs"
@echo " make update-readme Update README with plugin list"
@echo ""
@echo "Maintenance:"
@echo " make clean Remove cache and generated files"
@echo " make health Run Neovim health checks"
@echo " make test Test Neovim startup"
#------------------------------------------------------------------------------
# PR/MR Description
#------------------------------------------------------------------------------
pr-description:
@nvim --headless -c "lua print(require('pr-description').generate_description())" -c "qa"
mr-description:
@nvim --headless -c "lua print(require('pr-description').generate_description({is_gitlab=true}))" -c "qa"
# Aliases for backwards compatibility
github: pr-description
gitlab: mr-description
#------------------------------------------------------------------------------
# Setup
#------------------------------------------------------------------------------
# Run the interactive installer: installs dependencies, links this config to
# ~/.config/nvim, installs plugins, and sets up pre-commit hooks.
install:
@./install.sh
#------------------------------------------------------------------------------
# Code Quality
#------------------------------------------------------------------------------
lint:
@echo "Running luacheck..."
@luacheck lua/ scripts/ --config .luacheckrc
format:
@echo "Formatting with stylua..."
@stylua --config-path stylua.toml lua/ scripts/
format-check:
@stylua --config-path stylua.toml --check lua/ scripts/
check: lint format-check
@echo "All checks passed!"
validate:
@./scripts/validate.sh
#------------------------------------------------------------------------------
# Documentation
#------------------------------------------------------------------------------
docs:
@nvim -l scripts/generate-docs.lua
@nvim -l scripts/extract-keybindings.lua
update-readme:
@nvim -l scripts/update-readme.lua
#------------------------------------------------------------------------------
# Maintenance
#------------------------------------------------------------------------------
clean:
@echo "Cleaning cache files..."
@rm -rf .aider.tags.cache.v4/
@rm -rf .elixir-tools/
@rm -f lazy-lock.json.bak
@echo "Done!"
health:
@nvim --headless -c "checkhealth" -c "qa"
test:
@echo "Testing Neovim startup..."
@nvim --headless -c "lua print('Startup OK - ' .. #require('lazy').plugins() .. ' plugins loaded')" -c "qa"