.config/nvim/lua/config/commands.lua

Sun, 05 May 2024 01:56:33 -0500

author
Meredith Howard <mhoward@roomag.org>
date
Sun, 05 May 2024 01:56:33 -0500
changeset 1155
fcec334dfe7a
parent 1095
226221dc1d6b
child 1156
0a7162df160d
permissions
-rw-r--r--

luafy PruneSession

1078
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
1 local command = vim.api.nvim_create_user_command
1095
226221dc1d6b Simplify command aliases
Meredith Howard <mhoward@roomag.org>
parents: 1080
diff changeset
2 local cmd, fn = vim.cmd, vim.fn
1078
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
3
1155
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
4 require("config.util").calias({
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
5 -- replace default:
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
6 grep = "Grep",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
7
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
8 -- typos:
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
9 Q = "q",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
10 Qa = "qa",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
11 W = "w",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
12 gcd = "Gcd",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
13 hgcd = "Hgcd",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
14
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
15 -- Make the ! versions default to stay in one window + buffer:
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
16 doc = "ViewDoc!",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
17 help = "ViewDocHelp!",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
18 man = "ViewDocMan!",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
19 perldoc = "ViewDocPerl!",
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
20 })
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
21
1078
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
22 command("Hgcd", function()
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
23 local root = fn.systemlist("hg root 2>/dev/null")[1]
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
24 if vim.v.shell_error == 0 then
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
25 cmd.cd(root)
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
26 end
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
27 end, {})
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
28
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
29 command("Gcd", function()
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
30 local root = fn.systemlist("git rev-parse --show-toplevel 2>/dev/null")[1]
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
31 if vim.v.shell_error == 0 then
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
32 cmd.cd(root)
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
33 end
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
34 end, {})
aa4c1aa529a5 Start porting custom commands to lua
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
35
1079
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
36 command("Grep", function(ctx)
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
37 local pattern = ctx.fargs[1] or fn.expand("<cword>")
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
38 local grepcmd = table.concat({
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
39 vim.o.grepprg,
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
40 fn.shellescape(pattern),
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
41 table.concat(vim.list_slice(ctx.fargs, 2, #ctx.fargs), " "),
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
42 }, " ")
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
43
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
44 fn.setqflist({}, " ", { title = grepcmd, lines = fn.systemlist(grepcmd) })
1080
83c9f8460bde continue to confuse the verymagic options
Meredith Howard <mhoward@roomag.org>
parents: 1079
diff changeset
45 fn.setreg("/", [[\v]] .. pattern)
1079
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
46 cmd.copen()
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
47 cmd.cfirst()
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
48 end, { nargs = "*", complete = "file" })
b59861305252 port :Grep to lua
Meredith Howard <mhoward@roomag.org>
parents: 1078
diff changeset
49
1155
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
50 -- Remove buffers for files that are gone, old, or netrw dirs
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
51 command("PruneSession", function()
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
52 local bufs = vim.api.nvim_list_bufs()
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
53 for _, bufnr in ipairs(bufs) do
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
54 local name = vim.api.nvim_buf_get_name(bufnr)
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
55 if name then
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
56 local type = vim.fn.getftype(name)
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
57 if type == "" or type == "dir"
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
58 or (os.time() - vim.fn.getftime(name)) > 2592000
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
59 then
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
60 vim.print("pruned: " .. name)
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
61 vim.cmd.bwipeout(bufnr)
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
62 end
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
63 end
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
64 end
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
65 if not vim.api.nvim_buf_get_name(0) then
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
66 vim.cmd.bprev()
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
67 end
fcec334dfe7a luafy PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 1095
diff changeset
68 end, {})

mercurial