// *** Autogenerated file - created by configure.ac ***
// you should save the auto-generated vs-code-templates.code-workspace to a separate file
// to prevent your changes from being overwritten
{
	"extensions": {
		"recommendations": [
			"ms-vscode.cpptools"
		]
	},
	"folders": [
		{
			"name": "srcdir",
			"path": "@SRC_ROOT@"
		},
		{
			"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"
		},
		// FIXME: arguably the generator should place it in the builddir, not srcdir
		"C_Cpp.default.compileCommands": "${workspaceFolder:srcdir}/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
		],
		"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 prett-printing for gdb",
						"text": "-enable-pretty-printing",
						"ignoreFailures": true
					}
				],
				"linux": {
					"miDebuggerPath": "/usr/libexec/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
						}
					]
				},
				"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
					}
				],
				"linux": {
					"miDebuggerPath": "/usr/libexec/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": []
	}
}