local M = {}
local conf = require('user.modules.lsp.config')

M['neovim/nvim-lspconfig'] = {
    event = 'BufReadPre',
    wants = {
        'lsp_signature.nvim',
        'SchemaStore.nvim',
        'fidget.nvim',
        'nvim-lightbulb',
    },
    requires = {
        {
            'ray-x/lsp_signature.nvim',
            config = conf.signature,
            opt = true,
        },
        { 'b0o/SchemaStore.nvim', opt = true },
        { 'j-hui/fidget.nvim', config = conf.fidget, opt = true },
        { 'kosayoda/nvim-lightbulb', opt = true },
    },
    config = conf.lsp,
}
M['jose-elias-alvarez/null-ls.nvim'] = {
    wants = 'plenary.nvim',
    after = 'nvim-lspconfig',
    config = conf.null_ls,
}
M['nanotee/sqls.nvim'] = { ft = { 'sql', 'mysql' } }
M['folke/trouble.nvim'] = {
    cmd = { 'Trouble', 'TroubleToggle', 'TroubleRefresh' },
    config = conf.trouble,
}
M['simrat39/symbols-outline.nvim'] = {
    cmd = { 'SymbolsOutline', 'SymbolsOutlineOpen' },
    setup = conf.symbols_outline,
}
M['rcarriga/nvim-dap-ui'] = { -- TODO: config, scripts to install/update dap servers
    keys = '<leader>d',
    wants = 'nvim-dap',
    requires = { {
        'mfussenegger/nvim-dap',
        config = conf.dap,
        opt = true,
    } },
    config = conf.dapui,
}

return M
