{
    "about-the-build-system": [
        "",
        "The unreal build system generates Integration.code-workspace.",
        "That generated file is no good.  Instead, we generate our own,",
        "as part of build.py",
        "",
        "Don't edit Integration.code-worspace, instead, edit",
        "Integration.code-workspace.tpl.json, and then run",
        "build.py code-workspace to rebuild.",
        ""
    ],
    "folders": [
        {
            "name": "Integration",
            "path": "[INTEGRATION]"
        },
        {
            "name": "UE5",
            "path": "[UNREALENGINE]"
        }
    ],
    "settings": {
        "files.autoSave": "afterDelay",
        "typescript.tsc.autoDetect": "off",
        "lldb.dereferencePointers": false,
        "npm.autoDetect": "off",
        "files.watcherExclude": {
            "[UNREALENGINE]/Engine/**": true,
            "[UNREALENGINE]/Samples/**": true,
            "[UNREALENGINE]/Templates/**": true
        },
        "files.associations": {
            "**/include/**": "cpp",
            "**/bits/**": "cpp",
            "**/c++/**": "cpp",
            "**/x86_64-linux-gnu/**": "cpp",
            "*.ipp": "cpp",
            "*.inc": "cpp"
        },
        "editor.acceptSuggestionOnEnter": "off",
        "C_Cpp.intelliSenseEngine": "disabled",
        "clangd.path": "/usr/bin/clangd-15",
        "clangd.arguments": [
          "--log=verbose",
          "--query-driver=/usr/bin/g++",
          "--background-index",
          "--compile-commands-dir=[INTEGRATION]/.vscode",
          "--header-insertion=never"
        ],
        "C_Cpp.autocomplete": "disabled",
        "search.useIgnoreFiles": true,
        "search.exclude": {
            "**/Intermediate": true,
            "**/Saved": true,
            "**/Binaries": true,
            "**/DerivedDataCache": true,
            "**/*.generated.h": true,
            "**/*.gen.cpp": true,
            "**/*.d": true
        }
    },
    "extensions": {
        "recommendations": [
            "llvm-vs-code-extensions.vscode-clangd",
            "vadimcn.vscode-lldb"
        ]
    },
    "tasks": {
        "version": "2.0.0",
        "tasks": {
            "for-each" : [
                { "CMD" : "python3 build.py c++", "DEFAULT":true },
                { "CMD" : "python3 build.py all", "DEFAULT":false },
                { "CMD" : "python3 build.py clean", "DEFAULT":false } 
            ],
            "body" : {
                "label": "[CMD]",
                "group": {
                    "kind": "build",
                    "isDefault": "[DEFAULT]"
                },
                "command": "[CMD]",
                "presentation": {
                    "clear": true
                },
                "problemMatcher": [
                    {
                        "owner": "build-integration",
                        "source": "build.py",
                        "fileLocation": ["relative", "${workspaceFolder}"],
                        "pattern": {
                            "regexp": "^(.*):(\\d+):(\\d+):\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
                            "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5
                        }
                    }
                ],
                "type": "shell"
            }
        }
    },
    "launch": {
        "version": "0.2.0",
        "configurations": {
            "append1" : {
                "for-each": [
                    { "SERVER" : "Standalone" },
                    { "SERVER" : "LocalHost" },
                    { "SERVER" : "192.168.1.155" },
                    { "SERVER" : "192.168.1.156" }
                ],
                "body": {
                    "name": "Server=[SERVER]",
                    "request": "launch",
                    "program": "[UNREALENGINE]/Engine/Binaries/Linux/UnrealEditor-Linux-[DEBUG]",
                    "preLaunchTask": "python3 build.py c++",
                    "args": [
                        "[INTEGRATION]/Integration.uproject",
                        "-userdir=User/[USER]",
                        "-LuprexServer=[SERVER]"
                    ],
                    "cwd": "[INTEGRATION]",
                    "type": "lldb",
                    "console": "integratedTerminal",
                    "initCommands": [
                        "command script import [UNREALENGINE]/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py",
                        "settings set target.inline-breakpoint-strategy always",
                        "process handle SIGTRAP --notify false --pass false --stop false",
                        "target stop-hook add --one-liner \"p ::UngrabAllInputImpl()\""
                    ]
                }
            },
            "append2" : [
                {
                    "name": "UEWingman Commandlet",
                    "request": "launch",
                    "program": "[UNREALENGINE]/Engine/Binaries/Linux/UnrealEditor-Linux-[DEBUG]-Cmd",
                    "preLaunchTask": "python3 build.py c++",
                    "args": [
                        "[INTEGRATION]/Integration.uproject",
                        "-userdir=User/[USER]",
                        "-run=UEWingman",
                        "-unattended"
                    ],
                    "cwd": "[INTEGRATION]",
                    "type": "lldb",
                    "console": "integratedTerminal",
                    "initCommands": [
                        "command script import [UNREALENGINE]/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py",
                        "settings set target.inline-breakpoint-strategy always"
                    ]
                },
                {
                    "name": "Luprex Server",
                    "request": "launch",
                    "program": "[INTEGRATION]/luprex/build/[OS]/luprexstatic",
                    "preLaunchTask": "python3 build.py c++",
                    "args": [ "lpxserver" ],
                    "cwd": "[INTEGRATION]/luprex",
                    "type": "lldb",
                    "console": "integratedTerminal",
                    "initCommands": [
                        "settings set target.inline-breakpoint-strategy always"
                    ]
                }
            ]
        }
    }
}
