office-gobmx/.vscode/vs-code-template.code-workspace.in
Christian Lohmaier df092b591a create compile_commands.json in builddir
assuming that nothing breaks for existing users of the
compile_commands.json file, since they assume BUILDDIR=SRCDIR, so
nothing will change in those cases.

For building in a different directory than the source, the
compile_commands.json file is the only thing that regularly clobbers my
otherwise pristine SRCROOT

Change-Id: I344afa0bc7bb3eaa1eb888cd3558d3602090af5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143571
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-12-05 13:54:00 +00:00

231 lines
6.1 KiB
Text

// *** 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=<num>"
}
]
},
"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": []
}
}