function GetCurrFileName() local filename = vim.api.nvim_buf_get_name(0) return filename end local function _ReloadConfigsInPath(path_selector) local config_paths = vim.fn.glob(path_selector, true, true) for _, filepath in ipairs(config_paths) do dofile(filepath) end end function ReloadLuaConfig() for name,_ in pairs(package.loaded) do if name:match('^linux') then package.loaded[name] = nil end end -- Reload init/ directory local lua_path_selector = vim.fn.stdpath('config') .. '/lua/**/*.lua' _ReloadConfigsInPath(lua_path_selector) local after_path_selector = vim.fn.stdpath('config') .. '/after/**/*.lua' _ReloadConfigsInPath(after_path_selector) print('Nvim configurations reloaded') end function ToggleSpellCheck() vim.opt.spell = not(vim.opt.spell:get()) vim.opt.spelllang = 'en_us' end function GetHomeDir() -- for linux/mac local home = os.getenv("HOME") -- for windows local user_profile = os.getenv("UserProfile") if home ~= nil then return home elseif user_profile ~= nil then return user_profile end return nil end function SafeCListNav(navdir) -- dir: -- 1 is cnext (forwards) -- -1 is cprev (backwards) local dircmd = '' if navdir == 1 then dircmd = 'cnext' elseif navdir == -1 then dircmd = 'cprev' end local status, result = pcall(vim.cmd, dircmd) if status == false then return nil end end function MakeTags() local on_exit = function(obj) print('re-generated tags') end vim.system({'ctags', '-R', '.'}, {text = true}, on_exit) end function LoadSnippet(stype) local ft = '.lua' local buft = vim.bo.filetype if buft == 'cpp' then ft = '.c' else ft = '.' .. vim.bo.filetype end vim.cmd.read { GetHomeDir() .. '/.config/nvim/snippets/' .. stype .. ft } end