vim.opt.termguicolors = true
vim.opt.colorcolumn = "100"
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.mouse = "a"
vim.opt.showmode = false
vim.opt.guicursor = "n-v-i-c:block-Cursor"
vim.opt.signcolumn = "yes"
vim.opt.cursorline = true
vim.opt.scrolloff = 10
vim.api.nvim_set_hl(0, "Comment", { italic = true })
vim.schedule(function()
vim.opt.clipboard = "unnamedplus"
end)
vim.opt.breakindent = true
vim.opt.undofile = true
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.updatetime = 250
vim.opt.timeoutlen = 300
vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.list = true
vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" }
vim.opt.inccommand = "split"
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.diagnostic.config({
signs = true,
virtual_text = true,
update_in_insert = false,
severity_sort = true,
})
vim.opt.conceallevel = 1
-- Failsafe: Completely block treesitter from starting on markdown
-- This prevents crashes in Neovim 0.12+ hovers/files
local original_ts_start = vim.treesitter.start
vim.treesitter.start = function(bufnr, lang)
local buf = bufnr or vim.api.nvim_get_current_buf()
local ft = lang or vim.bo[buf].filetype
if ft == "markdown" or ft == "markdown_inline" then
return false
end
return original_ts_start(bufnr, lang)
end