kickstart.nvim/init.lua

108 lines
2.7 KiB
Lua

require 'core.options' -- Load general options
require 'core.keymaps' -- Load general keymaps
require 'core.snippets' -- Custom code snippets
-- Install package manager
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', -- latest stable release
lazypath,
}
end
vim.opt.rtp:prepend(lazypath)
vim.filetype.add({
extension = {
templ = "templ",
}
})
-- Import color theme based on environment variable NVIM_THEME
local default_color_scheme = 'quantum'
local env_var_nvim_theme = os.getenv 'NVIM_THEME' or default_color_scheme
-- Define a table of theme modules
local themes = {
quantum = 'plugins.themes.quantum',
nord = 'plugins.themes.nord',
onedark = 'plugins.themes.onedark',
}
-- Setup plugins
require('lazy').setup({
require(themes[env_var_nvim_theme]),
require 'core.ui',
require 'plugins.aerial',
require 'plugins.flash',
require 'plugins.autocompletion',
require 'plugins.bufferline',
require 'plugins.comment',
require 'plugins.conform',
require 'plugins.database',
require 'plugins.debug',
require 'plugins.gitsigns',
require 'plugins.harpoon',
require 'plugins.lazygit',
require 'plugins.lsp',
require 'plugins.lualine',
require 'plugins.none-ls',
require 'plugins.indent-blankline',
require 'plugins.neo-tree',
require 'plugins.misc',
require 'plugins.snack',
require 'plugins.telescope',
require 'plugins.toggleterm',
require 'plugins.treesitter',
require 'plugins.vim-tmux-navigator',
require 'plugins.zellij',
}, {
ui = {
-- If you have a Nerd Font, set icons to an empty table which will use the
-- default lazy.nvim defined Nerd Font icons otherwise define a unicode icons table
icons = vim.g.have_nerd_font and {} or {
cmd = '',
config = '🛠',
event = '📅',
ft = '📂',
init = '',
keys = '🗝',
plugin = '🔌',
runtime = '💻',
require = '🌙',
source = '📄',
start = '🚀',
task = '📌',
lazy = '💤 ',
},
},
})
-- Function to check if a file exists
local function file_exists(file)
local f = io.open(file, 'r')
if f then
f:close()
return true
else
return false
end
end
-- Path to the session file
local session_file = '.session.vim'
-- Check if the session file exists in the current directory
if file_exists(session_file) then
-- Source the session file
vim.cmd('source ' .. session_file)
end
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et