-- This file can be loaded by calling `lua require('plugins')` from your init.vim

-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]

return require('packer').startup(function(use)
	-- Packer can manage itself
	use('wbthomason/packer.nvim')

	use({
		'nvim-telescope/telescope.nvim',
		tag = '0.1.0',
		requires = { { 'nvim-lua/plenary.nvim' } }
	})

	use({
		'nvim-treesitter/nvim-treesitter',
		run = ':TSUpdate'
	})
	use("apple/pkl-neovim")

	use("github/copilot.vim")
	use("mbbill/undotree")
	use("Wansmer/sibling-swap.nvim")

	use({
		'VonHeikemen/lsp-zero.nvim',
		branch = 'v1.x',
		requires = {
			-- LSP Support
			{ 'neovim/nvim-lspconfig' },
			{ 'williamboman/mason.nvim' },
			{ 'williamboman/mason-lspconfig.nvim' },

			-- Autocompletion
			{ 'hrsh7th/nvim-cmp' },
			{ 'hrsh7th/cmp-buffer' },
			{ 'hrsh7th/cmp-path' },
			{ 'saadparwaiz1/cmp_luasnip' },
			{ 'hrsh7th/cmp-nvim-lsp' },
			{ 'hrsh7th/cmp-nvim-lua' },

			-- Snippets
			{ 'L3MON4D3/LuaSnip' },
			{ 'rafamadriz/friendly-snippets' },
		}
	})

	use({
		'lewis6991/gitsigns.nvim',
		config = function()
			require('gitsigns').setup()
		end
	})

	use({
		'nvim-lualine/lualine.nvim',
		requires = { 'nvim-tree/nvim-web-devicons', opt = true }
	})

	use('Mofiqul/dracula.nvim')

	local wakatime_api_key = os.getenv("WAKATIME_API_KEY")
	if wakatime_api_key then
		use('wakatime/vim-wakatime')
	end
end)