-- rafi Neovim entry-point
-- https://git.cscherr.de/PlexSheep/neovim-conf

local config = require('plex.config')
config.ensure_lazy()

-- Start lazy.nvim plugin manager.
require('lazy').setup(vim.tbl_extend('keep', config.user_lazy_opts(), {
	spec = {
		{ import = 'plex.plugins' },
		{ import = 'plex.plugins.extras.coding' },
		{ import = 'plex.plugins.extras.ui' },
		{ import = 'plex.plugins.extras.treesitter' },
		{ import = 'plex.plugins.extras.formatting' },
		{ import = 'plex.plugins.extras.editor' },
		{ import = 'plex.plugins.extras.org' },
		{ import = 'plex.plugins.extras.lang.go' },
		{ import = 'plex.plugins.extras.lang.cpp' }, -- also does C and rust
		{ import = 'plex.plugins.extras.lang.json' },
		{ import = 'plex.plugins.extras.lang.python' },
		{ import = 'plex.plugins.extras.lang.yaml' },

		-- This will load a custom user lua/plugins.lua or lua/plugins/*
		config.has_user_plugins() and { import = 'plugins' } or nil,
	},
	concurrency = vim.loop.available_parallelism() * 2,
	defaults = { lazy = true, version = false },
	dev = { path = config.path_join(vim.fn.stdpath('config'), 'dev') },
	install = { missing = true, colorscheme = {} },
	checker = { enabled = true, notify = false },
	change_detection = { notify = false },
	ui = { border = 'rounded' },
	diff = { cmd = 'terminal_git' },
	performance = {
		rtp = {
			disabled_plugins = {
				'gzip',
				'vimballPlugin',
				'matchit',
				'matchparen',
				'2html_plugin',
				'tarPlugin',
				'tutor',
				'zipPlugin',
			},
		},
	},
}))

config.setup()
