Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Changelog

## 2026-07-07 — Full Decoupling Refactor

### Architecture: Monolith → Modular

Extracted all plugin configurations from `init.lua` into individual files under `lua/kickstart/plugins/`. init.lua shrank from **949 → 334 lines** and now serves as a spine: options, keymaps, build hooks, and a clean `require` table in Section 10.

Each plugin is now a self-contained file — to enable or disable, comment or uncomment a single `require` line.

### New Files Created

| File | Purpose |
|---|---|
| `lua/kickstart/util.lua` | Shared `gh()` helper for GitHub URL shorthand |
| `lua/kickstart/plugins/guess-indent.lua` | Auto-detect indentation |
| `lua/kickstart/plugins/gitsigns.lua` | Git signs + hunk keymaps (consolidated) |
| `lua/kickstart/plugins/which-key.lua` | Pending keybind display |
| `lua/kickstart/plugins/tokyonight.lua` | Colorscheme (tokyonight-night) |
| `lua/kickstart/plugins/todo-comments.lua` | Highlight TODO/FIXME in comments |
| `lua/kickstart/plugins/mini.lua` | mini.ai + mini.surround + mini.statusline |
| `lua/kickstart/plugins/telescope.lua` | Fuzzy finder + LSP pickers + keymaps |
| `lua/kickstart/plugins/lsp.lua` | LSP servers + Mason + LspAttach keymaps |
| `lua/kickstart/plugins/conform.lua` | Formatting (go, hcl, ps1, lua) + hclfmt |
| `lua/kickstart/plugins/blink.lua` | blink.cmp + LuaSnip autocomplete |
| `lua/kickstart/plugins/treesitter.lua` | Syntax parsing + auto-install |

### Existing Files Modified

| File | Change |
|---|---|
| `init.lua` | Sections 4-9 extracted into plugin files; Section 10 rewritten as clean require table |
| `lua/kickstart/plugins/lint.lua` | Expanded from markdown-only to shell/bash/zsh + Go linting |
| `lua/kickstart/plugins/gitsigns.lua` | Consolidated signs config + on_attach keymaps (was duplicated) |
| `README.md` | Rewritten with full stack docs, keymap table, modular architecture guide |

### Files Removed

- `lazy-lock.json` — leftover from lazy.nvim era (migrated to vim.pack)
- `lua/kickstart/plugins/neo-tree.lua` — removed (user prefers Telescope for file navigation)
- `lua/custom/plugins/init.lua` — removed in prior cleanup
- `containerfix` branch — deprecated, deleted

### New Features

- **Linting enabled**: shellcheck for bash/sh/zsh, golangci-lint for Go
- **Gitsigns keymaps**: hunk navigation (`]c`/`[c`), staging (`<leader>hs`), blame (`<leader>tb`), word diff (`<leader>tw`)
- **System deps documented**: `Makefile` for one-command dependency installation

### How to Use

```bash
# Install system dependencies
make install

# Enable/disable plugins: edit init.lua Section 10
# Add a plugin: create lua/kickstart/plugins/<name>.lua, add require in Section 10
```
44 changes: 44 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Neovim Config — Dependency Installation
# Run: make install

.PHONY: install check clean help

# Core dependencies (required)
CORE_DEPS := neovim gcc make git ripgrep fd tree-sitter-cli unzip xclip

# Linting (recommended)
LINT_DEPS := shellcheck golangci-lint

# All deps combined
ALL_DEPS := $(CORE_DEPS) $(LINT_DEPS)

install:
@echo "==> Installing core dependencies..."
sudo pacman -S --needed --noconfirm $(CORE_DEPS)
@echo "==> Installing linting dependencies..."
sudo pacman -S --needed --noconfirm $(LINT_DEPS) 2>/dev/null || true
@echo "==> Done. Launch nvim to auto-install plugins."

check:
@echo "==> Checking dependencies..."
@missing=0; \
for dep in $(ALL_DEPS); do \
if command -v $$dep >/dev/null 2>&1; then \
echo " [OK] $$dep"; \
else \
echo " [MISSING] $$dep"; \
missing=1; \
fi; \
done; \
if [ $$missing -eq 0 ]; then echo "==> All dependencies installed."; \
else echo "==> Run 'make install' to install missing deps."; fi

clean:
@echo "==> This removes Neovim's local data (plugins, cache). Use with caution."
@echo " Run: rm -rf ~/.local/share/nvim ~/.local/state/nvim ~/.cache/nvim"

help:
@echo "Targets:"
@echo " make install Install all system dependencies via pacman"
@echo " make check Check which dependencies are installed"
@echo " make clean Instructions for wiping Neovim data"
Loading
Loading