local scopes = {o = vim.o, b = vim.bo, w = vim.wo} local function opt(scope, key, value) scopes[scope][key] = value if scope ~= "o" then scopes["o"][key] = value end end opt("o", "hidden", true) opt("o", "ignorecase", true) opt("o", "splitbelow", true) opt("o", "splitright", true) opt("o", "termguicolors", true) opt("w", "number", true) opt("o", "numberwidth", 2) opt("o", "mouse", "a") opt("w", "signcolumn", "yes") opt("o", "cmdheight", 1) opt("o", "updatetime", 250) -- update interval for gitsigns opt("o", "clipboard", "unnamedplus") -- for indenline local indent = 4 opt("b", "expandtab", true ) opt("b", "shiftwidth", indent ) opt('b', 'tabstop', indent) -- Number of spaces tabs count for opt('o', 'completeopt', 'menuone,noinsert,noselect') -- Completion options (for deoplete) local M = {} function M.is_buffer_empty() -- Check whether the current buffer is empty return vim.fn.empty(vim.fn.expand("%:t")) == 1 end function M.has_width_gt(cols) -- Check if the windows width is greater than a given number of columns return vim.fn.winwidth(0) / 2 > cols end return M