Files
dotfiles/.vscode/extensions/asvetliakov.vscode-neovim-1.18.24/runtime/lua/vscode/force-options.lua
2025-12-15 12:50:23 -05:00

70 lines
1.8 KiB
Lua

--- This file is used to force set options which may break the extension.
local M = {}
-- --------------------- forced global and local critical options -------------------- --
local function forceoptions(opt)
opt.wrap = false
opt.conceallevel = 0
opt.hidden = true
opt.bufhidden = "hide"
opt.list = true
-- Fix the gutter width, no need to consider highlighting issues caused by number, signcolumn, foldcolumn anymore.
-- {{
opt.numberwidth = 1
opt.statuscolumn = "%#NonText#" .. ("-"):rep(20) -- max-signcolumn(9) + max-foldcolumn(9) + numberwidth(1) + 1
-- }}
opt.listchars = { tab = " " }
--- Turn off auto-folding
opt.foldenable = false
opt.foldcolumn = "0"
opt.foldmethod = "manual"
--- lazyredraw breaks the movement
opt.lazyredraw = false
end
local function force_global_options()
vim.opt.wildmode = "longest:full,full"
vim.cmd([[set wildchar=<Tab>]])
vim.opt.mouse = "a"
vim.opt.backup = false
vim.opt.wb = false
vim.opt.swapfile = false
vim.opt.autoread = false
vim.opt.autowrite = false
vim.opt.cursorline = false
vim.opt.signcolumn = "no"
vim.opt.winblend = 0
vim.opt.ruler = false
vim.opt.colorcolumn = nil
if vim.fn.exists("&winborder") == 1 then
vim.opt.winborder = ""
end
forceoptions(vim.opt)
end
local function force_local_options()
forceoptions(vim.opt_local)
end
function M.setup()
-- force options on startup
force_global_options()
force_local_options()
local group = vim.api.nvim_create_augroup("vscode.force-options", { clear = true })
vim.api.nvim_create_autocmd({ "VimEnter" }, {
group = group,
callback = force_global_options,
})
vim.api.nvim_create_autocmd({ "VimEnter", "BufEnter", "FileType" }, {
group = group,
callback = force_local_options,
})
end
return M