165 lines
3.4 KiB
Lua
165 lines
3.4 KiB
Lua
-- Bootstrap lazy.nvim
|
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
if not vim.loop.fs_stat(lazypath) then
|
|
vim.fn.system({
|
|
"git",
|
|
"clone",
|
|
"--filter=blob:none",
|
|
"https://github.com/folke/lazy.nvim.git",
|
|
"--branch=stable",
|
|
lazypath,
|
|
})
|
|
end
|
|
vim.opt.rtp:prepend(lazypath)
|
|
|
|
-- Configure lazy.nvim
|
|
require("lazy").setup({
|
|
-- CtrlP fuzzy file finder
|
|
{
|
|
"kien/ctrlp.vim",
|
|
config = function()
|
|
vim.g.ctrlp_working_path_mode = 'ra'
|
|
vim.g.ctrlp_show_hidden = 1
|
|
end,
|
|
},
|
|
|
|
-- Web Devicons
|
|
{ "nvim-tree/nvim-web-devicons", opts = {} },
|
|
|
|
-- Lualine status line
|
|
{
|
|
"nvim-lualine/lualine.nvim",
|
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
|
config = function()
|
|
require("lualine").setup({
|
|
options = {
|
|
theme = "tokyonight",
|
|
component_separators = { left = "", right = "" },
|
|
section_separators = { left = "", right = "" },
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
|
|
-- Git signs
|
|
{
|
|
"lewis6991/gitsigns.nvim",
|
|
config = function()
|
|
require("gitsigns").setup({
|
|
signs = {
|
|
add = { text = "+" },
|
|
change = { text = "~" },
|
|
delete = { text = "_" },
|
|
topdelete = { text = "‾" },
|
|
changedelete = { text = "~" },
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
|
|
-- Indent guides
|
|
{
|
|
"lukas-reineke/indent-blankline.nvim",
|
|
main = "ibl",
|
|
config = function()
|
|
require("ibl").setup({
|
|
indent = {
|
|
char = "│",
|
|
tab_char = "│",
|
|
},
|
|
scope = { enabled = false },
|
|
})
|
|
end,
|
|
},
|
|
|
|
-- Buffer line
|
|
{
|
|
"akinsho/bufferline.nvim",
|
|
version = "*",
|
|
dependencies = "nvim-tree/nvim-web-devicons",
|
|
config = function()
|
|
require("bufferline").setup({
|
|
options = {
|
|
numbers = "none",
|
|
close_command = "bdelete! %d",
|
|
right_mouse_command = "bdelete! %d",
|
|
left_mouse_command = "buffer %d",
|
|
middle_mouse_command = nil,
|
|
separator_style = "slant",
|
|
always_show_bufferline = true,
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
|
|
-- Tokyo Night colorscheme
|
|
{
|
|
"folke/tokyonight.nvim",
|
|
lazy = false,
|
|
priority = 1000,
|
|
config = function()
|
|
require("tokyonight").setup({
|
|
style = "night",
|
|
light_style = "day",
|
|
transparent = false,
|
|
terminal_colors = true,
|
|
})
|
|
vim.cmd.colorscheme("tokyonight")
|
|
end,
|
|
},
|
|
-- Today journaling
|
|
{
|
|
'VVoruganti/today.nvim',
|
|
config = function()
|
|
require('today').setup()
|
|
end
|
|
},
|
|
|
|
-- TODO comments highlighting
|
|
{
|
|
"folke/todo-comments.nvim",
|
|
dependencies = "nvim-lua/plenary.nvim",
|
|
config = function()
|
|
require("todo-comments").setup()
|
|
end,
|
|
},
|
|
}, {
|
|
-- Lazy.nvim configuration
|
|
ui = {
|
|
border = "none",
|
|
size = {
|
|
width = 0.8,
|
|
height = 0.8,
|
|
},
|
|
},
|
|
performance = {
|
|
rtp = {
|
|
disabled_plugins = {
|
|
"gzip",
|
|
"matchit",
|
|
"matchparen",
|
|
"netrwPlugin",
|
|
"tarPlugin",
|
|
"tohtml",
|
|
"tutor",
|
|
"zipPlugin",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Basic Neovim settings
|
|
vim.opt.number = true
|
|
vim.opt.relativenumber = false
|
|
vim.opt.expandtab = true
|
|
vim.opt.shiftwidth = 2
|
|
vim.opt.tabstop = 2
|
|
vim.opt.smartindent = true
|
|
vim.opt.wrap = false
|
|
vim.opt.ignorecase = true
|
|
vim.opt.smartcase = true
|
|
vim.opt.termguicolors = true
|
|
|
|
-- Enable syntax highlighting
|
|
vim.cmd("syntax enable")
|