local M = {}

-- add extra plugins here
M.plugins = {
  { "Shatur/neovim-ayu" },
  { 'tidalcycles/vim-tidal' },
  { 'lervag/vimtex' },
  { 'neovim/nvim-lspconfig' },
  { 'nvim-telescope/telescope.nvim',   dependencies = { 'nvim-lua/plenary.nvim' } },
  { 'jremmen/vim-ripgrep' },       -- or use ripgrep CLI
  { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' },
  {
    "xiyaowong/transparent.nvim",
    lazy = false, -- ensure it runs at startup
    opts = {},    -- you can pass `groups` / `extra_groups` / `excludes` here
  },
  {
    "dccsillag/magma-nvim",
    build = ":UpdateRemotePlugins",
    ft = { "python", "julia" },
    config = function()
      require("magma").setup {}
    end
  }

}

-- add extra configuration options here, like extra autocmds etc.
-- feel free to create your own separate files and require them in here
M.configs = function() require("ayu").colorscheme() end

-- add servers to be used for auto formatting here
M.formatting_servers = {
  rust_analyzer = {},
  lua_ls = {},
}

-- add Tree-sitter to auto-install
M.ensure_installed = { "toml" }

-- add any null-ls sources you want here
M.setup_sources = function(b)
  return {
    b.formatting.autopep8,
    b.formatting.prettier.with {
      extra_filetypes = { "toml" },
      extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" },
    },
    b.formatting.black.with {
      extra_args = { "--fast" },
    },
    b.formatting.stylua,
  }
end

return M
