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

Mon, 13 Mar 2023 23:43:25 -0500

author
Meredith Howard <mhoward@roomag.org>
date
Mon, 13 Mar 2023 23:43:25 -0500
changeset 1085
c2d11f022cf0
parent 1080
83c9f8460bde
child 1095
226221dc1d6b
permissions
-rw-r--r--

Port encrypted file edit to lua

local command = vim.api.nvim_create_user_command
local calias = require("config.util").calias
local cmd = vim.cmd
local fn = vim.fn

command("Hgcd", function()
  local root = fn.systemlist("hg root 2>/dev/null")[1]
  if vim.v.shell_error == 0 then
    cmd.cd(root)
  end
end, {})

command("Gcd", function()
  local root = fn.systemlist("git rev-parse --show-toplevel 2>/dev/null")[1]
  if vim.v.shell_error == 0 then
    cmd.cd(root)
  end
end, {})

command("Grep", function(ctx)
  local pattern = ctx.fargs[1] or fn.expand("<cword>")
  local grepcmd = table.concat({
    vim.o.grepprg,
    fn.shellescape(pattern),
    table.concat(vim.list_slice(ctx.fargs, 2, #ctx.fargs), " "),
  }, " ")

  fn.setqflist({}, " ", { title = grepcmd, lines = fn.systemlist(grepcmd) })
  fn.setreg("/", [[\v]] .. pattern)
  cmd.copen()
  cmd.cfirst()
end, { nargs = "*", complete = "file" })

calias("Q", "q")
calias("Qa", "qa")
calias("W", "w")
calias("grep", "Grep")

calias("gcd", "Gcd")
calias("hgcd", "Hgcd")

-- Switch these to default to stay in one window + buffer
calias("doc", "ViewDoc!")
calias("help", "ViewDocHelp!")
calias("man", "ViewDocMan!")
calias("perldoc", "ViewDocPerl!")

mercurial