+7
-1
README.md
+7
-1
README.md
···
54
54
```lua
55
55
{
56
56
'https://tangled.org/bpavuk.neocities.org/jj-log.nvim',
57
-
opts = {},
57
+
opts = {
58
+
-- these are default options
59
+
out_waiting = "...",
60
+
out_no_jj_repo = "~no_jj_repo~",
61
+
out_no_desc = "~no_desc~",
62
+
max_desc_length = 47, -- including truncation dots, that's 50
63
+
},
58
64
}
59
65
```
60
66
+23
-5
lua/jj-log/init.lua
+23
-5
lua/jj-log/init.lua
···
1
1
local M = {}
2
2
3
+
local defaults = {
4
+
out_waiting = "...",
5
+
out_no_jj_repo = "~no_jj_repo~",
6
+
out_no_desc = "~no_desc~",
7
+
max_desc_length = 47,
8
+
}
9
+
10
+
M.config = vim.deepcopy(defaults)
11
+
3
12
M.update_jj_status = function(bufnr)
4
-
vim.api.nvim_buf_set_var(bufnr, "jj_desc", "")
13
+
vim.api.nvim_buf_set_var(bufnr, "jj_desc", M.config.out_waiting)
5
14
6
15
local current_file = vim.api.nvim_buf_get_name(bufnr)
7
16
if current_file == "" or current_file == nil then
···
9
18
return
10
19
end
11
20
21
+
if not vim.fn.filereadable(current_file) then
22
+
vim.api.nvim_buf_del_var(bufnr, "jj_desc")
23
+
return
24
+
end
25
+
12
26
local jj_root = vim.fs.find(
13
27
".jj", {
14
28
upward = true,
···
19
33
)[1]
20
34
21
35
if not jj_root then
22
-
vim.api.nvim_buf_set_var(bufnr, "jj_desc", "~no_jj_repo~")
36
+
vim.api.nvim_buf_set_var(bufnr, "jj_desc", M.config.out_no_jj_repo)
23
37
return
24
38
end
25
39
···
37
51
local output = vim.trim(obj.stdout or "")
38
52
output = output:gsub("\n", ""):gsub("^%s*", ""):gsub("%s*$", "")
39
53
40
-
if output == "" then output = "~no_desc~" end
41
-
if #output > 50 then output = string.sub(output, 1, 47) .. "..." end
54
+
if output == "" then output = M.config.out_no_desc end
55
+
if #output > (M.config.max_desc_length + 3) then
56
+
output = string.sub(output, 1, M.config.max_desc_length) .. "..."
57
+
end
42
58
43
59
vim.schedule(function()
44
60
if vim.api.nvim_buf_is_valid(bufnr) then
···
52
68
end)
53
69
end
54
70
55
-
M.setup = function()
71
+
M.setup = function(opts)
72
+
M.config = vim.tbl_deep_extend("force", M.config, opts or {})
73
+
56
74
local group = vim.api.nvim_create_augroup("JJLogPlugin", { clear = true })
57
75
58
76
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter", "BufWritePost", "FocusGained" }, {