添加 diffview, 修改telescope 初次加载无法下载插件报错问题

This commit is contained in:
2026-06-19 11:11:53 +08:00
parent f4305709a5
commit 3c3079c9de
3 changed files with 49 additions and 6 deletions

View File

@ -2,6 +2,7 @@
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"cmake-tools.nvim": { "branch": "master", "commit": "98cdc162572a7b77733030425d8d045d68f2a1fd" }, "cmake-tools.nvim": { "branch": "master", "commit": "98cdc162572a7b77733030425d8d045d68f2a1fd" },
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" }, "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"gitsigns.nvim": { "branch": "main", "commit": "25050e4ed39e628282831d4cbecb1850454ce915" }, "gitsigns.nvim": { "branch": "main", "commit": "25050e4ed39e628282831d4cbecb1850454ce915" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "0a695750d747db1e7e70bcf0267ef8951c95fc83" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "0a695750d747db1e7e70bcf0267ef8951c95fc83" },

View File

@ -0,0 +1,35 @@
-- ============================================================================
-- Git diff 视图 (diffview)
-- 仓库级 diff 总览 + 提交历史对比,补充 gitsigns 的行内能力
-- ============================================================================
return {
{
"sindrets/diffview.nvim",
cmd = "DiffviewOpen",
keys = {
-- 只保留 3 个核心键位:打开/关闭 diff 视图、查看历史
{ "<leader>go", "<cmd>DiffviewOpen<cr>", desc = "查看改动" },
{ "<leader>gq", "<cmd>DiffviewClose<cr>", desc = "关闭 diff" },
{ "<leader>gl", "<cmd>DiffviewFileHistory %<cr>", desc = "文件历史" },
},
opts = {
file_panel = {
listing_style = "tree",
tree_options = {
flatten_dirs = true,
folder_statuses = "only_folded",
},
},
keymaps = {
view = {
-- 覆盖全局 <leader>q在 diffview 里关闭整个 diffview而非单个窗口
{ "n", "<leader>q", "<cmd>DiffviewClose<cr>", { desc = "关闭 diffview" } },
},
file_panel = {
{ "n", "<leader>q", "<cmd>DiffviewClose<cr>", { desc = "关闭 diffview" } },
},
},
},
},
}

View File

@ -19,22 +19,29 @@ return {
{ "<leader>fk", "<cmd>Telescope keymaps<cr>", desc = "查找键位" }, { "<leader>fk", "<cmd>Telescope keymaps<cr>", desc = "查找键位" },
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "最近文件" }, { "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "最近文件" },
}, },
-- 启动即加载ui-select 扩展需要全局接管 vim.ui.select
-- 懒加载会导致未触发 :Telescope 时(如 <leader>rr回退到原生 UI
lazy = false,
opts = { opts = {
defaults = { defaults = {
prompt_prefix = " > ", prompt_prefix = " > ",
selection_caret = " > ", selection_caret = " > ",
layout_strategy = "flex", layout_strategy = "flex",
}, },
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown({}),
},
},
}, },
config = function(_, opts) config = function(_, opts)
local telescope = require("telescope") local telescope = require("telescope")
-- extensions 需要 require telescope.themes必须在 config 里构造
opts.extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown({}),
},
}
telescope.setup(opts) telescope.setup(opts)
telescope.load_extension("ui-select") -- 用 pcall 保护,避免 ui-select 扩展未安装时崩溃
pcall(telescope.load_extension, "ui-select")
end, end,
}, },
} }