(import-macros {: packer-setup : use!} :hibiscus.packer)
(import-macros {: packer : setup} :macros)

(packer-setup)

(packer
  {:display {:open_fn (. (require :packer.util) :float)}}

  (use! :udayvir-singh/tangerine.nvim)
  (use! :udayvir-singh/hibiscus.nvim)

  (use! "~/.config/nvim/themes/solarized.nvim"
        :module :settings.solarized)

  (use! :nvim-lua/popup.nvim
        :module :popup)

  (use! :nvim-treesitter/nvim-treesitter
        :run (fn [] ((. (require :nvim-treesitter.install) :update) {:with_sync true}))
        :module :settings.treesitter)

  (use! :feline-nvim/feline.nvim
        :requires [:kyazdani42/nvim-web-devicons
                   "~/.config/nvim/themes/solarized.nvim"]
        :after [:solarized.nvim]
        :module :settings.feline)

  (use! :s1n7ax/nvim-window-picker
        :module :settings.window-picker)

  (use! :nvim-neo-tree/neo-tree.nvim
        :branch "v2.x"
        :requires [:nvim-lua/plenary.nvim
                   :nvim-telescope/telescope.nvim
                   :kyazdani42/nvim-web-devicons
                   :MunifTanjim/nui.nvim
                   :s1n7ax/nvim-window-picker
                   :edluffy/hologram.nvim]
        :after [:nvim-window-picker
                :hologram.nvim]
        :module :settings.neo-tree)

  (use! :mrjones2014/smart-splits.nvim
        :module :settings.smart-splits)

  (use! :famiu/bufdelete.nvim
        :module :bufdelete)

  (use! :akinsho/bufferline.nvim
        :tag "v2.*"
        :requires [:kyazdani42/nvim-web-devicons
                   :famiu/bufdelete.nvim
                   "~/.config/nvim/themes/solarized.nvim"]
        :after [:bufdelete.nvim
                :solarized.nvim]
        :module :settings.bufferline)

  (use! :windwp/nvim-autopairs
        :module :settings.autopairs)

  (use! :lewis6991/gitsigns.nvim
        :module :settings.gitsigns)

  (use! :declancm/cinnamon.nvim
        :module :settings.cinnamon)

  (use! :stevearc/aerial.nvim
        :module :settings.aerial)

  (use! :nmac427/guess-indent.nvim
        :module :settings.guess-indent)

  (use! :nvim-telescope/telescope.nvim
        :requires [:nvim-lua/plenary.nvim
                   :s1n7ax/nvim-window-picker]
        :after [:nvim-window-picker]
        :module :settings.telescope)

  (use! :sindrets/diffview.nvim
        :requires [:nvim-lua/plenary.nvim]
        :module :settings.diffview)

  (use! :neovim/nvim-lspconfig
        :requires [:williamboman/mason-lspconfig.nvim
                   :williamboman/mason.nvim
                   :hrsh7th/cmp-omni
                   :hrsh7th/cmp-nvim-lsp
                   :onsails/lspkind.nvim
                   :hrsh7th/nvim-cmp
                   :saadparwaiz1/cmp_luasnip
                   :rafamadriz/friendly-snippets
                   :L3MON4D3/LuaSnip]
        :module :settings.lspconfig)

  (use! :jose-elias-alvarez/null-ls.nvim
        :module :settings.null-ls)

  (use! :lervag/vimtex
        :module :settings.vimtex)

  (use! :edluffy/hologram.nvim
        :module :settings.hologram))
