return {
    'xeluxee/competitest.nvim',
    requires = "MunifTanjim/nui.nvim",
    config = function() require("competitest").setup{
        -- template_file = {
        --     cpp = "~/.config/nvim/templates/template.cpp",
        --     c = "~/.config/nvim/templates/template.c"
        -- }
        template_file = "~/.config/nvim/templates/template.$(FEXT)",
        received_contests_directory = "/tmp/Competitive Programming/$(JUDGE)/$(CONTEST)",
        received_problems_path = function(task, extension)
            local hyphen = string.find(task.group, " %- ")
            if hyphen == nil then
                return string.format("%s/%s/%s.%s", vim.fn.getcwd(), task.name, task.name, extension):gsub("#", " ")
            else
                local contest = string.sub(task.group, hyphen + 3)
                return string.format("%s/%s/%s.%s", vim.fn.getcwd(), contest, task.name, extension):gsub("#", " ")
            end
        end,
        testcases_use_single_file = true,
        evaluate_template_modifiers = true,
        received_problems_prompt_path = false,
        compile_command = {
            c = { exec = "gcc", args = { "-O0", "-Wall", "-ggdb3", "-DDEBUG", "-fsanitize=address,undefined", "-std=c23", "$(FNAME)", "-o", "$(FNOEXT).out", "-lm" } },
            cpp = { exec = "g++", args = { "-O0", "-Wall", "-ggdb3",  "-DDEBUG", "-fsanitize=address,undefined",  "-D__OPTIMIZE__", "-std=c++20", "$(FNAME)", "-o", "$(FNOEXT).out" } },
        },
        run_command = {
            c = { exec = "./$(FNOEXT).out" },
            cpp = { exec = "./$(FNOEXT).out" }
        }
    } end
}
