update config for cpp versions
This commit is contained in:
parent
84f25d5591
commit
286d21cd0e
4 changed files with 46 additions and 38 deletions
|
|
@ -2,15 +2,52 @@ local M = {}
|
||||||
|
|
||||||
M.defaults = {
|
M.defaults = {
|
||||||
contests = {
|
contests = {
|
||||||
atcoder = { cpp_version = 23 },
|
default = {
|
||||||
codeforces = { cpp_version = 23 },
|
cpp_version = 20,
|
||||||
cses = { cpp_version = 20 },
|
compile_flags = { "-O2", "-DLOCAL", "-Wall", "-Wextra" },
|
||||||
|
debug_flags = { "-g3", "-fsanitize=address,undefined", "-DLOCAL" },
|
||||||
|
timeout_ms = 2000,
|
||||||
|
},
|
||||||
|
atcoder = {
|
||||||
|
cpp_version = 23,
|
||||||
|
},
|
||||||
|
codeforces = {
|
||||||
|
cpp_version = 23,
|
||||||
|
},
|
||||||
|
cses = {},
|
||||||
},
|
},
|
||||||
snippets = {},
|
snippets = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function extend_contest_config(base_config, contest_config)
|
||||||
|
local result = vim.deepcopy(base_config)
|
||||||
|
|
||||||
|
for key, value in pairs(contest_config) do
|
||||||
|
if key == "compile_flags" or key == "debug_flags" then
|
||||||
|
vim.list_extend(result[key], value)
|
||||||
|
else
|
||||||
|
result[key] = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local std_flag = ("-std=c++%d"):format(result.cpp_version)
|
||||||
|
table.insert(result.compile_flags, 1, std_flag)
|
||||||
|
table.insert(result.debug_flags, 1, std_flag)
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
function M.setup(user_config)
|
function M.setup(user_config)
|
||||||
return vim.tbl_deep_extend("force", M.defaults, user_config or {})
|
local config = vim.tbl_deep_extend("force", M.defaults, user_config or {})
|
||||||
|
|
||||||
|
local default_contest = config.contests.default
|
||||||
|
for contest_name, contest_config in pairs(config.contests) do
|
||||||
|
if contest_name ~= "default" then
|
||||||
|
config.contests[contest_name] = extend_contest_config(default_contest, contest_config)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return config
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,11 @@ local function log(msg, level)
|
||||||
vim.notify(("[cp.nvim]: %s"):format(msg), level or vim.log.levels.INFO)
|
vim.notify(("[cp.nvim]: %s"):format(msg), level or vim.log.levels.INFO)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not vim.fn.has("nvim-0.10.0") then
|
||||||
|
log("cp.nvim requires Neovim 0.10.0+", vim.log.levels.ERROR)
|
||||||
|
return M
|
||||||
|
end
|
||||||
|
|
||||||
local function clearcol()
|
local function clearcol()
|
||||||
vim.api.nvim_set_option_value("number", false, { scope = "local" })
|
vim.api.nvim_set_option_value("number", false, { scope = "local" })
|
||||||
vim.api.nvim_set_option_value("relativenumber", false, { scope = "local" })
|
vim.api.nvim_set_option_value("relativenumber", false, { scope = "local" })
|
||||||
|
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
CompileFlags:
|
|
||||||
Add:
|
|
||||||
-O2
|
|
||||||
-Wall
|
|
||||||
-Wextra
|
|
||||||
-Wpedantic
|
|
||||||
-Wshadow
|
|
||||||
-Wformat=2
|
|
||||||
-Wfloat-equal
|
|
||||||
-Wlogical-op
|
|
||||||
-Wshift-overflow=2
|
|
||||||
-Wnon-virtual-dtor
|
|
||||||
-Wold-style-cast
|
|
||||||
-Wcast-qual
|
|
||||||
-Wuseless-cast
|
|
||||||
-Wno-sign-promotion
|
|
||||||
-Wcast-align
|
|
||||||
-Wunused
|
|
||||||
-Woverloaded-virtual
|
|
||||||
-Wconversion
|
|
||||||
-Wsign-conversion
|
|
||||||
-Wmisleading-indentation
|
|
||||||
-Wduplicated-cond
|
|
||||||
-Wduplicated-branches
|
|
||||||
-Wlogical-op
|
|
||||||
-Wnull-dereference
|
|
||||||
-Wformat=2
|
|
||||||
-Wformat-overflow
|
|
||||||
-Wformat-truncation
|
|
||||||
-Wdouble-promotion
|
|
||||||
-Wundef
|
|
||||||
-DLOCAL
|
|
||||||
-Wno-unknown-pragmas
|
|
||||||
|
|
@ -19,7 +19,6 @@ setup:
|
||||||
test -d build || mkdir -p build
|
test -d build || mkdir -p build
|
||||||
test -d io || mkdir -p io
|
test -d io || mkdir -p io
|
||||||
test -f compile_flags.txt && echo -std=c++$(VERSION) >>compile_flags.txt
|
test -f compile_flags.txt && echo -std=c++$(VERSION) >>compile_flags.txt
|
||||||
test -f .clangd && echo -e "\t\t-std=c++$(VERSION)" >>.clangd
|
|
||||||
|
|
||||||
init:
|
init:
|
||||||
make setup
|
make setup
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue