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.autoformat', 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.mason', 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