.dotfiles/.config/nvim/lua/nvwynd/autocmds.lua

55 lines
1.3 KiB
Lua

local autocmd = vim.api.nvim_create_autocmd
local user_command = vim.api.nvim_create_user_command
-- used for when lazyness takes over and I'm using a mouse to click around in neo-tree
-- if insert mode is active then neo-tree won't behave as expected, so we want to stop it
autocmd("BufEnter", {
pattern = { "*" },
callback = function()
local filetype = vim.filetype.match({ buf = 0 })
if filetype == nil then
vim.cmd("stopinsert")
end
end,
})
user_command("ExportPlugins", function()
local plugins = require("lazy").plugins()
local f, err = io.open("plugins", "w+")
if f then
for _, v in ipairs(plugins) do
local plugin = string.format("[%s](%s)\n", v.name, v.url)
f:write(plugin)
end
f:close()
else
print("Error opening file: " .. err)
end
end, {})
user_command("CountWords", function()
local words = vim.fn.wordcount()["words"]
print("Words: " .. words)
end, {})
user_command("FormatDisable", function(args)
if args.bang then
-- FormatDisable! will disable formatting just for this buffer
vim.b.disable_autoformat = true
else
vim.g.disable_autoformat = true
end
end, {
desc = "Disable autoformat-on-save",
bang = true,
})
user_command("FormatEnable", function()
vim.b.disable_autoformat = false
vim.g.disable_autoformat = false
end, {
desc = "Re-enable autoformat-on-save",
})