68 lines
1.3 KiB
Lua
68 lines
1.3 KiB
Lua
local M = {}
|
|
|
|
function M.get_word_length()
|
|
local word = vim.fn.expand "<cword>"
|
|
return #word
|
|
end
|
|
|
|
function M.toggle_option(option)
|
|
local value = not vim.api.nvim_get_option_value(option, {})
|
|
vim.opt[option] = value
|
|
vim.notify(option .. " set to " .. tostring(value))
|
|
end
|
|
|
|
function M.toggle_tabline()
|
|
local value = vim.api.nvim_get_option_value("showtabline", {})
|
|
|
|
if value == 2 then
|
|
value = 0
|
|
else
|
|
value = 2
|
|
end
|
|
|
|
vim.opt.showtabline = value
|
|
|
|
vim.notify("showtabline" .. " set to " .. tostring(value))
|
|
end
|
|
|
|
local diagnostics_active = true
|
|
function M.toggle_diagnostics()
|
|
diagnostics_active = not diagnostics_active
|
|
if diagnostics_active then
|
|
vim.diagnostic.show()
|
|
else
|
|
vim.diagnostic.hide()
|
|
end
|
|
end
|
|
|
|
function M.isempty(s)
|
|
return s == nil or s == ""
|
|
end
|
|
|
|
function M.get_buf_option(opt)
|
|
local status_ok, buf_option = pcall(vim.api.nvim_buf_get_option, 0, opt)
|
|
if not status_ok then
|
|
return nil
|
|
else
|
|
return buf_option
|
|
end
|
|
end
|
|
|
|
function M.smart_quit()
|
|
local bufnr = vim.api.nvim_get_current_buf()
|
|
local modified = vim.api.nvim_buf_get_option(bufnr, "modified")
|
|
if modified then
|
|
vim.ui.input({
|
|
prompt = "You have unsaved changes. Quit anyway? (y/n) ",
|
|
}, function(input)
|
|
if input == "y" then
|
|
vim.cmd "q!"
|
|
end
|
|
end)
|
|
else
|
|
vim.cmd "q!"
|
|
end
|
|
end
|
|
|
|
return M
|