添加 diffview, 修改telescope 初次加载无法下载插件报错问题
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
|
||||
"cmake-tools.nvim": { "branch": "master", "commit": "98cdc162572a7b77733030425d8d045d68f2a1fd" },
|
||||
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
|
||||
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "25050e4ed39e628282831d4cbecb1850454ce915" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "0a695750d747db1e7e70bcf0267ef8951c95fc83" },
|
||||
|
||||
35
nvim/lua/plugins/diffview.lua
Normal file
35
nvim/lua/plugins/diffview.lua
Normal 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" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -19,22 +19,29 @@ return {
|
||||
{ "<leader>fk", "<cmd>Telescope keymaps<cr>", desc = "查找键位" },
|
||||
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "最近文件" },
|
||||
},
|
||||
-- 启动即加载:ui-select 扩展需要全局接管 vim.ui.select,
|
||||
-- 懒加载会导致未触发 :Telescope 时(如 <leader>rr)回退到原生 UI
|
||||
lazy = false,
|
||||
opts = {
|
||||
defaults = {
|
||||
prompt_prefix = " > ",
|
||||
selection_caret = " > ",
|
||||
layout_strategy = "flex",
|
||||
},
|
||||
extensions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown({}),
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local telescope = require("telescope")
|
||||
|
||||
-- extensions 需要 require telescope.themes,必须在 config 里构造
|
||||
opts.extensions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown({}),
|
||||
},
|
||||
}
|
||||
|
||||
telescope.setup(opts)
|
||||
telescope.load_extension("ui-select")
|
||||
-- 用 pcall 保护,避免 ui-select 扩展未安装时崩溃
|
||||
pcall(telescope.load_extension, "ui-select")
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user