Skip to content

Commit 36577ef

Browse files
authored
fix(jj): properly handle cases where neo-tree and telescope are not available (#1580)
1 parent 5f74d5f commit 36577ef

1 file changed

Lines changed: 56 additions & 41 deletions

File tree

lua/astrocommunity/pack/jj/init.lua

Lines changed: 56 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,74 @@
11
return {
22
{
3-
"zschreur/telescope-jj.nvim",
4-
config = function() require("telescope").load_extension "jj" end,
5-
dependencies = {
3+
"nvim-telescope/telescope.nvim",
4+
optional = true,
5+
specs = {
66
{
7-
"AstroNvim/astrocore",
8-
opts = {
9-
mappings = {
10-
n = {
11-
["<Leader>jf"] = {
12-
function()
13-
local jj_pick_status, jj_res = pcall(require("telescope").extensions.jj.files)
14-
if jj_pick_status then return end
7+
"zschreur/telescope-jj.nvim",
8+
config = function() require("telescope").load_extension "jj" end,
9+
dependencies = {
10+
{
11+
"AstroNvim/astrocore",
12+
opts = {
13+
mappings = {
14+
n = {
15+
["<Leader>jf"] = {
16+
function()
17+
local jj_pick_status, jj_res = pcall(require("telescope").extensions.jj.files)
18+
if jj_pick_status then return end
1519

16-
-- Git fallback
17-
local git_files_status, git_res = pcall(require("telescope.builtin").git_files)
18-
if not git_files_status then
19-
error("Could not launch jj or git files: \n" .. jj_res .. "\n" .. git_res)
20-
end
21-
end,
22-
desc = "jj files",
20+
-- Git fallback
21+
local git_files_status, git_res = pcall(require("telescope.builtin").git_files)
22+
if not git_files_status then
23+
error("Could not launch jj or git files: \n" .. jj_res .. "\n" .. git_res)
24+
end
25+
end,
26+
desc = "jj files",
27+
},
28+
["<Leader>jc"] = {
29+
function() require("telescope").extensions.jj.conflicts() end,
30+
desc = "jj conflicts",
31+
},
32+
["<Leader>jd"] = { function() require("telescope").extensions.jj.diff() end, desc = "jj diff" },
33+
},
2334
},
24-
["<Leader>jc"] = { function() require("telescope").extensions.jj.conflicts() end, desc = "jj conflicts" },
25-
["<Leader>jd"] = { function() require("telescope").extensions.jj.diff() end, desc = "jj diff" },
2635
},
2736
},
2837
},
2938
},
3039
},
3140
},
3241
{
33-
"Cretezy/neo-tree-jj.nvim",
34-
dependencies = {
42+
"nvim-neo-tree/neo-tree.nvim",
43+
optional = true,
44+
specs = {
3545
{
36-
"nvim-neo-tree/neo-tree.nvim",
37-
opts = function(_, opts)
38-
table.insert(opts.sources, "jj")
46+
"Cretezy/neo-tree-jj.nvim",
47+
dependencies = {
48+
{
49+
"nvim-neo-tree/neo-tree.nvim",
50+
opts = function(_, opts)
51+
table.insert(opts.sources, "jj")
3952

40-
-- Replace git tab in neo-tree when in jj repo
41-
if require("neo-tree.sources.jj.utils").get_repository_root() then
42-
-- Remove git tab
43-
for i, source in ipairs(opts.source_selector.sources) do
44-
if source.source == "git_status" then
45-
table.remove(opts.source_selector.sources, i)
46-
break
47-
end
48-
end
53+
-- Replace git tab in neo-tree when in jj repo
54+
if require("neo-tree.sources.jj.utils").get_repository_root() then
55+
-- Remove git tab
56+
for i, source in ipairs(opts.source_selector.sources) do
57+
if source.source == "git_status" then
58+
table.remove(opts.source_selector.sources, i)
59+
break
60+
end
61+
end
4962

50-
-- Add jj tab
51-
table.insert(opts.source_selector.sources, {
52-
display_name = "󰊢 JJ",
53-
source = "jj",
54-
})
55-
end
56-
end,
63+
-- Add jj tab
64+
table.insert(opts.source_selector.sources, {
65+
display_name = "󰊢 JJ",
66+
source = "jj",
67+
})
68+
end
69+
end,
70+
},
71+
},
5772
},
5873
},
5974
},

0 commit comments

Comments
 (0)