ddnet/other/vscode/ddnet.code-workspace

260 lines
7 KiB
Plaintext

{
"folders": [
{
"path": "../.."
}
],
"settings": {
"files.associations": {
"*.tcc": "cpp",
"array": "cpp",
"atomic": "cpp",
"cctype": "cpp",
"chrono": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"condition_variable": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"list": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"map": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"string": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"ostream": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"cinttypes": "cpp",
"typeinfo": "cpp",
"valarray": "cpp",
"bit": "cpp",
"compare": "cpp",
"concepts": "cpp",
"ranges": "cpp",
"stop_token": "cpp",
"hash_map": "cpp",
"hash_set": "cpp",
"forward_list": "cpp",
"set": "cpp",
"iomanip": "cpp",
"iostream": "cpp",
"any": "cpp",
"unordered_set": "cpp",
"variant": "cpp"
},
// clang-format-10 has to be in your PATH
// for linux simply grep a static built clang-format-10 from here:
// https://aur.archlinux.org/packages/clang-format-static-bin
"clang-format.executable": "clang-format-10",
"lldb.launch.expressions": "native",
"editor.defaultFormatter": "xaver.clang-format",
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
},
"editor.formatOnSave": true,
"cmake.additionalKits": [
"${workspaceFolder}/other/vscode/ddnet-cmake-tools-kits.json"
],
"cmake.defaultVariants": {
"buildType": {
"default": "debug",
"description": "build types",
"choices": {
"debug": {
"short": "Debug",
"long": "Disable optimizations",
"buildType": "Debug",
"settings": {
"CMAKE_CXX_FLAGS_DEBUG": "",
"CMAKE_C_FLAGS_DEBUG": "",
}
},
"release": {
"short": "Release",
"long": "Enable optimizations",
"buildType": "Release",
"settings": {
"CMAKE_CXX_FLAGS_RELEASE": "",
"CMAKE_C_FLAGS_RELEASE": "",
}
},
"minsize": {
"short": "MinSizeRel",
"long": "Enable optimizations, optimized for size",
"buildType": "MinSizeRel",
"settings": {
"CMAKE_CXX_FLAGS_MINSIZEREL": "",
"CMAKE_C_FLAGS_MINSIZEREL": "",
}
},
"reldeb": {
"short": "RelWithDebInfo",
"long": "Enable optimizations, provide debug symbols",
"buildType": "RelWithDebInfo",
"settings": {
"CMAKE_CXX_FLAGS_RELWITHDEBINFO": "",
"CMAKE_C_FLAGS_RELWITHDEBINFO": "",
}
},
"debAndASAN": {
"short": "Debug + ASAN (only for clang)",
"long": "Disable optimizations, enable ASAN & UBSAN",
"buildType": "Debug",
"settings": {
"CMAKE_CXX_FLAGS_DEBUG": "-fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer",
"CMAKE_C_FLAGS_DEBUG": "-fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer",
}
},
"relAndASAN": {
"short": "RelWithDebInfo + ASAN (only for clang)",
"long": "Enable optimizations, enable ASAN & UBSAN",
"buildType": "RelWithDebInfo",
"settings": {
"CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer",
"CMAKE_C_FLAGS_RELWITHDEBINFO": "-fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer",
}
},
"debAndTSAN": {
"short": "Debug + TSAN (only for clang)",
"long": "Disable optimizations, enable TSAN & UBSAN",
"buildType": "Debug",
"settings": {
"CMAKE_CXX_FLAGS_DEBUG": "-fsanitize=thread,undefined -fsanitize-recover=thread,undefined -fno-omit-frame-pointer",
"CMAKE_C_FLAGS_DEBUG": "-fsanitize=thread,undefined -fsanitize-recover=thread,undefined -fno-omit-frame-pointer",
}
},
"relAndTSAN": {
"short": "RelWithDebInfo + TSAN (only for clang)",
"long": "Enable optimizations, enable TSAN & UBSAN",
"buildType": "RelWithDebInfo",
"settings": {
"CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-fsanitize=thread,undefined -fsanitize-recover=thread,undefined -fno-omit-frame-pointer",
"CMAKE_C_FLAGS_RELWITHDEBINFO": "-fsanitize=thread,undefined -fsanitize-recover=thread,undefined -fno-omit-frame-pointer",
}
}
}
}
},
},
"extensions": {
"recommendations": [
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
"twxs.cmake",
"ms-vscode.cmake-tools",
"vadimcn.vscode-lldb",
"rust-lang.rust-analyzer"
]
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"type": "cmake",
"label": "CMake: build client",
"command": "build",
"targets": [
"DDNet"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [],
"detail": "Build client targets"
},
{
"type": "cmake",
"label": "CMake: build server",
"command": "build",
"targets": [
"DDNet-Server"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [],
"detail": "Build server targets"
}
]
},
"launch": {
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Launch client",
"program": "${workspaceFolder}/build/DDNet",
"preLaunchTask": "CMake: build client",
// use dbg configs like this
// "args": [ "dbg_gfx 0" ],
// enable this to start the debugger with TSAN
// "environment": [ { "name":"TSAN_OPTIONS","value":"ignore_noninstrumented_modules=1" }],
"cwd": "${workspaceFolder}/build",
},
{
"type": "lldb",
"request": "launch",
"name": "Launch server",
"program": "${workspaceFolder}/build/DDNet-Server",
"preLaunchTask": "CMake: build server",
"cwd": "${workspaceFolder}/build"
},
// useful for cross debugging the windows (wine) client
// for these you need the microsoft cpp extension
// start the wine executable like this:
// winedbg --gdb --no-start --port 55555 DDNet.exe
{
"type": "cppdbg",
"request": "launch",
"name": "Attach to wine gdbserver",
"program": "${workspaceFolder}/build_win/DDNet.exe",
"miDebuggerServerAddress": "localhost:55555",
"cwd": "${workspaceFolder}/build_win/",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Auto styling for \"gdb\"",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
}