vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/" vim.g.mapleader = " " -- bootstrap lazy and all plugins local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then local repo = "https://github.com/folke/lazy.nvim.git" vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } end vim.opt.rtp:prepend(lazypath) local lazy_config = require "configs.lazy" -- load plugins require("lazy").setup({ { "NvChad/NvChad", lazy = false, branch = "v2.5", import = "nvchad.plugins", config = function() require "options" end, }, { import = "plugins" }, }, lazy_config) -- load theme dofile(vim.g.base46_cache .. "defaults") dofile(vim.g.base46_cache .. "statusline") require "nvchad.autocmds" vim.schedule(function() local mappings = require "mappings" mappings.General() end) local autocmd = vim.api.nvim_create_autocmd -- Auto resize panes when resizing nvim window autocmd("VimResized", { pattern = "*", command = "tabdo wincmd =", }) -- if windows or WSL if vim.loop.os_uname() == "win32" then vim.g.clipboard = { name = "WslClipboard", copy = { ["+"] = "clip.exe", ["*"] = "clip.exe", }, paste = { ["+"] = 'powershell.exe -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))', ["*"] = 'powershell.exe -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))', }, cache_enabled = 0, } -- if nvim supports osc52 elseif pcall(require, "vim.ui.clipboard.osc52") then vim.g.clipboard = { name = "OSC 52", copy = { ["+"] = require("vim.ui.clipboard.osc52").copy, ["*"] = require("vim.ui.clipboard.osc52").copy, }, paste = { ["+"] = require("vim.ui.clipboard.osc52").paste, ["*"] = require("vim.ui.clipboard.osc52").paste, }, } -- use osc52 plugin elseif pcall(require, "osc52") then local function copy(lines, _) require("osc52").copy(table.concat(lines, "\n")) end local function paste() return { vim.fn.split(vim.fn.getreg "", "\n"), vim.fn.getregtype "" } end vim.g.clipboard = { name = "osc52", copy = { ["+"] = copy, ["*"] = copy }, paste = { ["+"] = paste, ["*"] = paste }, } end vim.opt.relativenumber = true vim.opt.cursorline = true if vim.loop.os_uname() == "win32" then vim.opt.shell = vim.fn.executable "pwsh" == 1 and "pwsh" or "powershell" vim.opt.shellcmdflag = "-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.Encoding]::UTF8;" vim.opt.shellredir = "-RedirectStandardOutput %s -NoNewWindow -Wait" vim.opt.shellpipe = "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode" vim.opt.shellquote = "" vim.opt.shellxquote = "" else vim.opt.shell = vim.fn.executable "zsh" == 1 and "zsh" or "bash" end vim.g.copilot_assume_mapped = true vim.opt.foldmethod = "expr" vim.opt.foldexpr = "nvim_treesitter#foldexpr()" vim.opt.foldenable = false