vim.opt.guicursor = "n-v-c:block,i:ver25,r-cr:hor20" -- vim.opt.guicursor = "" vim.opt.nu = true vim.opt.relativenumber = true vim.opt.tabstop = 2 vim.opt.softtabstop = 2 vim.opt.shiftwidth = 2 vim.opt.expandtab = true vim.opt.smartindent = true vim.opt.wrap = false vim.opt.swapfile = false vim.opt.backup = false vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" vim.opt.undofile = true vim.opt.hlsearch = false vim.opt.incsearch = true vim.opt.termguicolors = true vim.opt.scrolloff = 8 vim.opt.signcolumn = "yes" vim.opt.isfname:append("@-@") vim.opt.updatetime = 50 vim.opt.colorcolumn = "80" -- JSX/TSX comment vim.g.skip_ts_context_commentstring_module = true -- /* Bufferline Tabs */ -- Switching buffers --[[ vim.api.nvim_set_keymap("n", "B", ":bprev", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "b", ":bnext", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "bd", ":bdelete", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "bf", ":bfirst", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "bl", ":blast", { noremap = true, silent = true }) --]] -- Goes to next tab vim.api.nvim_set_keymap("n", "h", ":BufferLineCycleNext", { noremap = true, silent = true }) -- Goes to prev tab vim.api.nvim_set_keymap("n", "g", ":BufferLineCyclePrev", { noremap = true, silent = true }) -- Move tab left vim.api.nvim_set_keymap("n", "btl", ":BufferLineMoveNext", { noremap = true, silent = true }) -- Move tab right vim.api.nvim_set_keymap("n", "btr", ":BufferLineMovePrev", { noremap = true, silent = true }) -- Delete current tab vim.api.nvim_set_keymap("n", "bd", ":bdelete", { noremap = true, silent = true }) -- Deletes all tabs on left hand side vim.api.nvim_set_keymap("n", "bcl", ":BufferLineCloseLeft", { noremap = true, silent = true }) -- Deletes all tabs on right hand side vim.api.nvim_set_keymap("n", "bcr", ":BufferLineCloseRight", { noremap = true, silent = true }) -- Close all tabs except currently opened one vim.api.nvim_set_keymap("n", "abc", ":BufferLineCloseOthers", { noremap = true, silent = true }) -- Indent Line vim.g.indentLine_enabled = 1 vim.g.indentLine_char = "│" vim.g.indentLine_fileTypeExclude = { "help", "dashboard", "packer", "NvimTree" } vim.g.indentLine_showFirstIndentLevel = 1 vim.g.indentLine_setColors = 1 -- ============================================================================ -- @ Diff -> Diffview Configuration (Enterprise-Grade Error Handling) -- ============================================================================ -- Note: diffview_callback API has changed in recent versions -- Using pcall for safe loading and modern Diffview actions local diffview_ok, diffview_actions = pcall(require, "diffview.actions") local cb = nil if diffview_ok then cb = diffview_actions else -- Fallback for older API or when diffview is not installed yet local status, diffview_config = pcall(require, "diffview.config") if status and diffview_config.diffview_callback then cb = diffview_config.diffview_callback end end -- @ Diff -> General Diffview keymaps vim.api.nvim_set_keymap("n", "do", ":DiffviewOpen", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "dc", ":DiffviewClose", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "df", ":DiffviewToggleFiles", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "dh", ":DiffviewFocusFiles", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "dr", ":DiffviewRefreshFiles", { noremap = true, silent = true }) -- @ Diff -> File panel navigation vim.api.nvim_set_keymap( "n", "dp", ":lua require('diffview.config').diffview_callback('prev_entry')", { noremap = true, silent = true } ) vim.api.nvim_set_keymap( "n", "dn", ":lua require('diffview.config').diffview_callback('next_entry')", { noremap = true, silent = true } ) vim.api.nvim_set_keymap( "n", "dt", ":lua require('diffview.config').diffview_callback('select_entry')", { noremap = true, silent = true } ) -- @ Diff -> File history panel vim.api.nvim_set_keymap("n", "dh", ":DiffviewFileHistory", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "dl", ":DiffviewClose", { noremap = true, silent = true }) -- Http Client -- vim.api.nvim_set_keymap("n", "api", ":Http", { noremap = true, silent = true }) -- vim.api.nvim_set_keymap("n", "ter", ":HttpStop", { noremap = true, silent = true }) -- Packer Sync vim.api.nvim_set_keymap("n", "po", ":PackerSync", { noremap = true, silent = true }) -- Source file + Packer Sync vim.api.nvim_set_keymap("n", "pac", ":so %:PackerSync", { noremap = true, silent = true }) -- Git Merge vim.api.nvim_set_keymap("n", "co", "GitConflictChooseOurs", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "ct", "GitConflictChooseTheirs", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cb", "GitConflictChooseBoth", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "c0", "GitConflictChooseNone", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cn", "GitConflictNextConflict", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cp", "GitConflictPrevConflict", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cs", "GitConflictListQf", { noremap = true, silent = true }) -- @ Markdown Preview -- Map mp to start the Markdown preview. vim.api.nvim_set_keymap("n", "mp", ":MarkdownPreview", { noremap = true, silent = true }) -- Map ms to stop the Markdown preview. vim.api.nvim_set_keymap("n", "ms", ":MarkdownPreviewStop", { noremap = true, silent = true }) -- Map mt to toggle the Markdown preview. vim.api.nvim_set_keymap("n", "mt", ":MarkdownPreviewToggle", { noremap = true, silent = true })