112 lines
2.7 KiB
Lua
112 lines
2.7 KiB
Lua
-- filter which-key warnings
|
|
local orig_notify = vim.notify
|
|
vim.notify = function(msg, level, opts)
|
|
if msg:match("which%-key") and level == vim.log.levels.WARN then
|
|
return
|
|
end
|
|
orig_notify(msg, level, opts)
|
|
end
|
|
|
|
-- Set leader key
|
|
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
local firstload = not vim.loop.fs_stat(lazypath)
|
|
if firstload then
|
|
vim.fn.system({
|
|
"git",
|
|
"clone",
|
|
"--filter=blob:none",
|
|
"https://github.com/folke/lazy.nvim.git",
|
|
"--branch=stable", -- latest stable release
|
|
lazypath,
|
|
})
|
|
end
|
|
|
|
vim.opt.rtp:prepend(lazypath)
|
|
|
|
-- Set highlight on search
|
|
vim.o.hlsearch = false
|
|
|
|
-- Make line numbers default
|
|
vim.wo.number = true
|
|
|
|
vim.o.tabstop = 4 -- A TAB character looks like 4 spaces
|
|
vim.o.expandtab = true -- Pressing the TAB key will insert spaces instead of a TAB character
|
|
vim.o.softtabstop = 4 -- Number of spaces inserted instead of a TAB character
|
|
vim.o.shiftwidth = 4 -- Number of spaces inserted when indenting
|
|
|
|
-- Ruler at 100 characters
|
|
vim.o.colorcolumn = "100"
|
|
|
|
-- Relative line numbers
|
|
vim.o.number = true
|
|
vim.o.relativenumber = true
|
|
vim.o.signcolumn = "number"
|
|
|
|
-- Enable mouse mode
|
|
vim.o.mouse = "a"
|
|
|
|
-- Sync clipboard between OS and Neovim.
|
|
-- Remove this option if you want your OS clipboard to remain independent.
|
|
-- See `:help 'clipboard'`
|
|
vim.o.clipboard = "unnamedplus"
|
|
|
|
-- Enable break indent
|
|
vim.o.breakindent = true
|
|
|
|
-- Save undo history
|
|
vim.o.undofile = true
|
|
|
|
-- Case-insensitive searching UNLESS \C or capital in search
|
|
vim.o.ignorecase = true
|
|
vim.o.smartcase = true
|
|
|
|
-- Keep signcolumn as auto. Set this to 'yes' if you want it enabled
|
|
vim.wo.signcolumn = "auto"
|
|
|
|
-- Decrease update time
|
|
vim.o.updatetime = 250
|
|
vim.o.timeoutlen = 300
|
|
|
|
-- Set completeopt to have a better completion experience
|
|
vim.o.completeopt = "menuone,noselect"
|
|
|
|
-- Set terminal gui colors to true
|
|
vim.o.termguicolors = true
|
|
|
|
-- add binaries installed by mason.nvim to path
|
|
local is_windows = vim.loop.os_uname().sysname == "Windows_NT"
|
|
vim.env.PATH = vim.fn.stdpath("data") .. "/mason/bin" .. (is_windows and ";" or ":") .. vim.env.PATH
|
|
|
|
require("lazy").setup("plugins")
|
|
|
|
if firstload then
|
|
vim.schedule(function()
|
|
vim.cmd("MasonInstallAll")
|
|
|
|
local packages = {}
|
|
for k, v in pairs(vim.g.mason_binaries_list) do
|
|
packages[k] = v
|
|
end
|
|
|
|
local installed = {}
|
|
|
|
require("mason-registry"):on("package:install:success", function(pkg)
|
|
table.insert(installed, pkg.name)
|
|
|
|
if #installed == #packages then
|
|
vim.schedule(function()
|
|
vim.api.nvim_buf_delete(0, { force = true })
|
|
vim.api.nvim_buf_delete(0, { force = true })
|
|
vim.cmd("echo '' | redraw")
|
|
end)
|
|
end
|
|
end)
|
|
end)
|
|
end
|
|
|
|
-- Transparent background
|
|
vim.cmd("hi Normal guibg=NONE ctermbg=NONE")
|