From 6a30a0bfea91324aa275b6da61d566599fb7f227 Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 22 Jun 2026 15:14:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(statusline):=20=E5=90=AF=E7=94=A8=20mini.s?= =?UTF-8?q?tatusline=20=E6=9C=80=E7=AE=80=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VimEnter 时机与 mini.icons 同处 setup(statusline 依赖图标), 用内置 section 组合 + use_icons=true,Git/diff 段回退到 gitsigns。 all_modules 同步补 statusline。 --- AGENTS.md | 4 ++-- lua/pack.lua | 11 +++++++++-- lua/plugins/starter.lua | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f97d1a3..4a539cd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ This is a personal Neovim configuration targeting **Neovim 0.12+**. It lives at - **Plugin manager**: Neovim 0.12+ built-in `vim.pack` (not lazy.nvim / packer). Plugins are declared in `lua/pack.lua` via `vim.pack.add({ urls }, { load = false })` and tracked in `nvim-pack-lock.json`. - **Custom lazy-loading**: `lua/lazy.lua` is a ~35-line custom framework (unrelated to lazy.nvim). It provides `load()`, `on_event()`, `on_keys()`, `on_cmd()` and tracks loaded modules in `M._loaded`. -- **Mini.nvim monorepo**: Most UI/functionality comes from the single `mini.nvim` package. Its submodules (starter, pick, extra, files, icons, notify, cmdline, completion, snippets, surround, clue, ai, cursorword, pairs) are configured individually in `lua/pack.lua` or on-demand. +- **Mini.nvim monorepo**: Most UI/functionality comes from the single `mini.nvim` package. Its submodules (starter, pick, extra, files, icons, notify, cmdline, completion, snippets, surround, clue, statusline, ai, cursorword, pairs) are configured individually in `lua/pack.lua` or on-demand. ## File Loading Order @@ -52,7 +52,7 @@ When adding new plugins that should load lazily, use the custom framework in `lu | Trigger | Plugins / Modules | |---------------|--------------------------------------| -| `VimEnter` | treesitter, lsp, icons, clue | +| `VimEnter` | treesitter, lsp, icons, clue, statusline | | `InsertEnter` | completion, snippets, pairs | | `BufReadPost` | gitsigns, surround, ai, cursorword | | `BufWritePre` | conform (format-on-save) | diff --git a/lua/pack.lua b/lua/pack.lua index 9451473..db754ba 100644 --- a/lua/pack.lua +++ b/lua/pack.lua @@ -16,7 +16,8 @@ -- -- 插件列表: -- mini.nvim - 单体插件集(starter、pick、extra、files、icons、 --- notify、cmdline、completion、snippets、surround、clue) +-- notify、cmdline、completion、snippets、surround、 +-- clue、statusline) -- friendly-snippets - 社区代码片段集合 -- nvim-treesitter - 语法树解析与高亮 -- nvim-lspconfig - LSP 客户端配置 @@ -102,12 +103,18 @@ vim.keymap.set("n", ":", function() end, { expr = true, noremap = true }) -- mini.icons — 文件类型图标(VimEnter 后延迟加载) --- 供 mini.pick、mini.files 等使用 +-- 供 mini.pick、mini.files、mini.statusline 等使用 vim.api.nvim_create_autocmd("VimEnter", { once = true, callback = function() require("mini.icons").setup() lazy.track("icons") + + -- mini.statusline — 状态栏(依赖 mini.icons,故同处 VimEnter) + -- 最简配置:用内置 section 组合,自适应窗口宽度。 + -- Git/diff 段回退到 gitsigns.nvim(已启用),无需 mini.git/mini.diff。 + require("mini.statusline").setup({ use_icons = true }) + lazy.track("statusline") end, }) diff --git a/lua/plugins/starter.lua b/lua/plugins/starter.lua index 11629dd..6ea0c6e 100644 --- a/lua/plugins/starter.lua +++ b/lua/plugins/starter.lua @@ -117,6 +117,7 @@ local all_modules = { "cmdline", "icons", "clue", + "statusline", "pick", "extra", "files",