diff --git a/lua/cp/config.lua b/lua/cp/config.lua index c28407a..b80d5ad 100644 --- a/lua/cp/config.lua +++ b/lua/cp/config.lua @@ -141,17 +141,6 @@ function M.setup(user_config) for lang_name, lang_config in pairs(config) do if type(lang_config) == 'table' then - if - lang_name ~= 'default_language' - and not vim.tbl_contains(vim.tbl_keys(constants.canonical_filetypes), lang_name) - then - return false, - ("Invalid language '%s'. Valid languages: %s"):format( - lang_name, - table.concat(vim.tbl_keys(constants.canonical_filetypes), ', ') - ) - end - if lang_config.extension and not vim.tbl_contains( @@ -168,20 +157,6 @@ function M.setup(user_config) end end - if - config.default_language - and not vim.tbl_contains( - vim.tbl_keys(constants.canonical_filetypes), - config.default_language - ) - then - return false, - ("Invalid default_language '%s'. Valid languages: %s"):format( - config.default_language, - table.concat(vim.tbl_keys(constants.canonical_filetypes), ', ') - ) - end - return true end, 'contest configuration', diff --git a/spec/config_spec.lua b/spec/config_spec.lua index e3011fc..b248fc5 100644 --- a/spec/config_spec.lua +++ b/spec/config_spec.lua @@ -157,7 +157,6 @@ describe('cp.config', function() contests = { test = { python = { test = { 'python3' } }, - rust = { compile = { 'rustc' } }, }, }, } @@ -192,36 +191,27 @@ describe('cp.config', function() assert.has_error(function() config.setup(invalid_config) - end, 'No language configurations found for test') + end, 'No language configurations found') end) - it('validates language names against canonical_filetypes', function() - local invalid_config = { - contests = { - test = { - invalid_lang = { compile = { 'gcc' } }, - }, - }, - } - - assert.has_error(function() - config.setup(invalid_config) - end, "Invalid language 'invalid_lang'") - end) - - it('validates default_language value', function() - local invalid_config = { + it('allows custom language names', function() + local user_config = { contests = { test = { + rust = { + compile = { 'rustc', '{source}', '-o', '{binary}' }, + test = { '{binary}' }, + extension = 'rs', + }, cpp = { compile = { 'g++' } }, - default_language = 'xd', }, }, } - assert.has_error(function() - config.setup(invalid_config) - end, "Invalid default_language 'xd'") + assert.has_no.errors(function() + local result = config.setup(user_config) + assert.equals('cpp', result.contests.test.default_language) + end) end) end) end)