// *** vs-code.code-workspace.template is an autogenerated file created by configure.ac *** // any changes to the vs-code.code-workspace.template file WILL BE OVERRIDDEN // use the vs-code.code-workspace file (make vscode-ide-integration) for your own edits { "extensions": { "recommendations": [ "ms-vscode.cpptools" ] }, "folders": [ { "name": "srcdir", "path": "@SRC_ROOT@" }, { // BUILDDIR may be configured separate from SRCDIR "name": "builddir", "path": "@BUILDDIR@" }, ], "settings": { "search.exclude": { "/compile_commands.json": true, "/dictionaries/": true, "/helpcontent2/": true, "/icon-themes/": true, "/translations/": true }, "files.watcherExclude": { "/dictionaries/": true, "/helpcontent2/": true, "/icon-themes/": true, "/translations/": true }, "files.associations": { "*.patch.[0-9]": "diff" }, "C_Cpp.default.compileCommands": "@BUILDDIR@/compile_commands.json", // only used if the file doesn't match anything in the compile_commands.json - aka externals // libxml includes just added as example/for reference "C_Cpp.default.includePath": [ "@WORKDIR@/UnpackedTarball/**", "/usr/include/libxml2/" ], "C_Cpp.default.browse.limitSymbolsToIncludedHeaders": true, "C_Cpp.default.cppStandard": "c++17", // point this to LibreOffice's version of clang-format 5.0.0, // otherwise clang-format from the plugin is used, and that // gives slightly different results "C_Cpp.clang_format_path": "/opt/lo/bin/clang-format", "editor.rulers": [ 100 ], // files in the repo should in general have a newline at end-of-file "files.insertFinalNewline": true, "editor.renderFinalNewline": false, "gitlens.autolinks": [ { "prefix": "tdf#", "url": "https://bugs.documentfoundation.org/show_bug.cgi?id=" } ] }, "tasks": { "version": "2.0.0", "tasks": [ { "label": "full make", "detail": "runs make in builddir to update everything", "type": "shell", "command": "make", "group": { "kind": "build", "isDefault": true }, "options": { "cwd": "@BUILDDIR@" } }, { "label": "create compile-commands.json", "detail": "runs make vim-ide-integration to create the compile-commands.json file", "type": "shell", "command": "make", "args": [ "vim-ide-integration" ], "group": "build", // doesn't really depend on full make, but doesn't hurt // updating the compile-commands is not needed all the time and also demonstrate // how to use dependencies in tasks… "dependsOn": [ "full make" ], "options": { "cwd": "@BUILDDIR@" }, "problemMatcher": [] // don't ask when manually running the task }, { "label": "remove profile-dir", "detail": "removes the temporary user-profile directory", "type": "shell", "command": "rm", "args": [ "-rf", "@WORKDIR@/vs-code-temporary-user-profile" ], "group": "none", "dependsOn": [ "full make" ], "options": { "cwd": "@BUILDDIR@" }, "problemMatcher": [] } ] }, "launch": { "configurations": [ { "name": "run in debugger after make", "type": "cppdbg", "request": "launch", "program": "@INSTROOT@/program/soffice.bin", "args": [], "stopAtEntry": false, "cwd": "@BUILDDIR@", "environment": [ { // added in disabled form for convenience/as an example // (proper name is just SAL_LOG), // see https://docs.libreoffice.org/sal/html/sal_log.html "name": "SAL_LOG_DISABLED", "value": "+INFO.ucb+WARN" } ], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Mark pretty-printers (in solenv/gdb) safe", "text": "add-auto-load-safe-path @INSTROOT@", "ignoreFailures": true }, { "description": "Mark pretty-printers bootstrap (in instdir/program) safe", "text": "add-auto-load-safe-path @INSTROOT@", "ignoreFailures": true }, ], "linux": { "miDebuggerPath": "gdb" }, "osx": { "program": "@INSTROOT@/MacOS/soffice", "MIMode": "lldb", "setupCommands": [ { "description": "load helpers for lldb", "text": "command script import ${workspaceFolder:srcdir}/solenv/lldb/libreoffice/LO.py", "ignoreFailures": false } ] }, "preLaunchTask": "full make" }, { // FIXME: not happy here when creating the profile while running in debugger // no problem passing the profile dir once it was launched outside debugger once, // but clearing out the user-profile dir needs to be triggered manually "name": "run in gdb with clear userprofile", // "preLaunchTask": "remove profile-dir", "type": "cppdbg", "request": "launch", "program": "@INSTROOT@/program/soffice.bin", "args": [ "-env:UserInstallation=file:///@WORKDIR@/vs-code-temporary-user-profile" ], "stopAtEntry": false, "cwd": "@BUILDDIR@", "environment": [ { "name": "SAL_LOG_DISABLED", "value": "+INFO.ucb+WARN" } ], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Mark pretty-printers (in solenv/gdb) safe", "text": "add-auto-load-safe-path ${workspaceFolder:srcdir}", "ignoreFailures": true }, { "description": "Mark pretty-printers bootstrap (in instdir/program) safe", "text": "add-auto-load-safe-path @INSTROOT@", "ignoreFailures": true }, ], "linux": { "miDebuggerPath": "gdb" }, "osx": { "program": "@INSTROOT@/MacOS/soffice", "MIMode": "lldb", "setupCommands": [ { "description": "load helpers for for lldb", "text": "command script import ${workspaceFolder:srcdir}/solenv/lldb/libreoffice/LO.py", "ignoreFailures": false } ] } } ], "compounds": [] } }