108 lines
3 KiB
Lua
108 lines
3 KiB
Lua
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
|