| // *** 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", |
| "autogen.sh": "perl" |
| }, |
| "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++20", |
| // 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": "off", |
| "gitlens.autolinks": [ |
| { |
| "prefix": "tdf#", |
| "url": "https://bugs.documentfoundation.org/show_bug.cgi?id=<num>" |
| }, |
| { |
| // issues filed against LibreOffice will redirect to bugs.documentfoundation.org |
| // but there might be some pointers to other projects/to issues not migrated to |
| // our instance of bugzilla |
| "prefix": "fdo#", |
| "url": "https://bugs.freedesktop.org/show_bug.cgi?id=<num>" |
| }, |
| { |
| // viewing coverity issues requires an account/be added to the LibreOffice |
| // project - send a message to the dev-list if you're interested |
| "prefix": "cid#", |
| "url": "https://scan5.scan.coverity.com/#/project-view/41345/10276?selectedIssue=<num>" |
| }, |
| { |
| "prefix": "coverity#", |
| "url": "https://scan5.scan.coverity.com/#/project-view/41345/10276?selectedIssue=<num>" |
| }, |
| { |
| "prefix": "ofz#", |
| "url": "https://issues.oss-fuzz.com/issues/<num>" |
| }, |
| { |
| // might not all resolve, for old stuff there is some overlap with a Sun-internal |
| // tracker that is usually referred to by #i<num># style (i.e. typos) |
| "prefix": "i#", |
| "url": "https://bz.apache.org/ooo/show_bug.cgi?=<num>" |
| }, |
| { |
| // not all are publicly accessible |
| "prefix": "rhbz#", |
| "url": "https://bugzilla.redhat.com/show_bug.cgi?id=<num>" |
| }, |
| { |
| "prefix": "cool#", |
| "url": "https://github.com/CollaboraOnline/online/issues/<num>" |
| }, |
| { |
| "prefix": "lp#", |
| "url": "http://bugs.launchpad.net/bugs/<num>" |
| }, |
| { |
| "prefix": "deb#", |
| "url": "http://bugs.debian.org/<num>" |
| } |
| // now defunct: n# / bnc# (bugzilla.novell.com) |
| // no public URL: forcepoint# |
| ], |
| "terminal.integrated.profiles.windows": { |
| "Cygwin": { |
| "path": "@CYGWIN_BASH@", |
| "args": [ |
| "--login" |
| ], |
| // prevent changing to $(HOME) |
| "env": { |
| "CHERE_INVOKING": "1" |
| } |
| } |
| }, |
| "terminal.integrated.defaultProfile.windows": "Cygwin", |
| "cSpell.customDictionaries": { |
| "libreoffice-terms": { |
| "name": "libreoffice", |
| "path": "${workspaceFolder:srcdir}/.cspell/libreoffice.txt", |
| "description": "spell check dictionary with terms related to LibreOffice", |
| "addWords": true, |
| "scope": "workspace" |
| }, |
| // helper-dict to collect ignore words, otherwise they'd be added to the workspace file |
| // when using the quickfix entries |
| "ignore-words-collecting": { |
| "name": "ignoreWords", |
| "path": "${workspaceFolder:srcdir}/.cspell/ignoreWords.txt", |
| "description": "words not flagged, but also not used as suggestions", |
| "addWords": true, |
| "scope": "workspace" |
| } |
| }, |
| "cSpell.noSuggestDictionaries": ["ignoreWords"], |
| "cSpell.languageSettings": [ |
| { |
| // limit spellchecking to comments and strings (what the regexes consider |
| // a comment/string) for these languages/file-types |
| "languageId": "c,objective-c,cpp,objective-cpp,makefile,m4,perl,python,automake", |
| // turn off compound words, because it is only checking strings. |
| "allowCompoundWords": false, |
| // Only check comments and strings |
| "includeRegExpList": [ |
| "CStyleComment", |
| "string" |
| ], |
| // Exclude includes, because they are also strings. |
| "ignoreRegExpList": [ |
| "/#include.*/" |
| ] |
| }, |
| { |
| "languageId": "git-commit", |
| "allowCompoundWords": true, |
| "ignoreRegExpList": [ |
| "/Change-Id:.*/" |
| ] |
| } |
| ], |
| // hide from "Problems" tab, however also makes it less visible in the editor, but there are |
| // still too many false positives/words not added to the dictionary |
| "cSpell.diagnosticLevel": "Hint" |
| }, |
| "tasks": { |
| "version": "2.0.0", |
| "inputs": [ |
| { |
| "type": "promptString", |
| "id": "makeTarget", |
| "description": "target to pass to the make command", |
| "default": "build" |
| } |
| ], |
| "options": { |
| "cwd": "@BUILDDIR@" |
| }, |
| "tasks": [ |
| { |
| "label": "full make", |
| "detail": "runs make in builddir to update everything", |
| "type": "shell", |
| "command": "make", |
| "group": { |
| "kind": "build", |
| "isDefault": true |
| }, |
| "args": [ |
| "${input:makeTarget}" |
| ] |
| }, |
| { |
| "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" |
| ], |
| "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" |
| ], |
| "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, |
| "linux": { |
| "MIMode": "gdb", |
| "miDebuggerPath": "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 @SRC_ROOT@/solenv/gdb", |
| "ignoreFailures": true |
| }, |
| { |
| "description": "Mark pretty-printers bootstrap (in instdir/program) safe", |
| "text": "add-auto-load-safe-path @INSTROOT@", |
| "ignoreFailures": true |
| } |
| ] |
| }, |
| "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 |
| } |
| ] |
| }, |
| "windows": { |
| "type": "cppvsdbg" |
| }, |
| "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, |
| "linux": { |
| "MIMode": "gdb", |
| "miDebuggerPath": "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 @SRC_ROOT@/solenv/gdb", |
| "ignoreFailures": true |
| }, |
| { |
| "description": "Mark pretty-printers bootstrap (in instdir/program) safe", |
| "text": "add-auto-load-safe-path @INSTROOT@", |
| "ignoreFailures": true |
| } |
| ] |
| }, |
| "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 |
| } |
| ] |
| }, |
| "windows": { |
| "type": "cppvsdbg" |
| } |
| } |
| ], |
| "compounds": [] |
| } |
| } |
| // cspell:ignore CHERE autolinks cppdbg cpptools cppvsdbg |