{ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", "version": "0.18.1", "publisher": "ms-vscode", "preview": true, "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", "author": { "name": "Microsoft Corporation" }, "license": "SEE LICENSE IN LICENSE.txt", "engines": { "vscode": "^1.23.0" }, "bugs": { "url": "https://github.com/Microsoft/vscode-cpptools/issues", "email": "c_cpp_support@microsoft.com" }, "repository": { "type": "git", "url": "https://github.com/Microsoft/vscode-cpptools.git" }, "homepage": "https://github.com/Microsoft/vscode-cpptools", "qna": "https://github.com/Microsoft/vscode-cpptools/issues", "keywords": [ "C", "C++", "IntelliSense", "Microsoft", "multi-root ready" ], "categories": [ "Programming Languages", "Debuggers", "Formatters", "Linters", "Snippets" ], "activationEvents": [ "onLanguage:cpp", "onLanguage:c", "onCommand:extension.pickNativeProcess", "onCommand:extension.pickRemoteNativeProcess", "onCommand:C_Cpp.ConfigurationEdit", "onCommand:C_Cpp.ConfigurationSelect", "onCommand:C_Cpp.ConfigurationProviderSelect", "onCommand:C_Cpp.SwitchHeaderSource", "onCommand:C_Cpp.Navigate", "onCommand:C_Cpp.GoToDeclaration", "onCommand:C_Cpp.PeekDeclaration", "onCommand:C_Cpp.ToggleErrorSquiggles", "onCommand:C_Cpp.ToggleIncludeFallback", "onCommand:C_Cpp.ToggleDimInactiveRegions", "onCommand:C_Cpp.ToggleSnippets", "onCommand:C_Cpp.ShowReleaseNotes", "onCommand:C_Cpp.ResetDatabase", "onCommand:C_Cpp.PauseParsing", "onCommand:C_Cpp.ResumeParsing", "onCommand:C_Cpp.ShowParsingCommands", "onCommand:C_Cpp.TakeSurvey", "onDebug", "workspaceContains:/.vscode/c_cpp_properties.json" ], "main": "./out/src/main", "contributes": { "problemMatchers": [ { "name": "gcc", "owner": "cpptools", "fileLocation": [ "relative", "${workspaceFolder}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } ], "configuration": { "type": "object", "title": "C/C++ Configuration", "properties": { "C_Cpp.clang_format_path": { "type": [ "string", "null" ], "default": null, "description": "The full path of the clang-format executable.", "scope": "resource" }, "C_Cpp.clang_format_style": { "type": "string", "default": "file", "description": "Coding style, currently supports: Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit. Use \"file\" to load the style from a .clang-format file in the current or parent directory. Use \"{key: value, ...}\" to set specific parameters, e.g.: \"{ BasedOnStyle: LLVM, IndentWidth: 8 }\"", "scope": "resource" }, "C_Cpp.clang_format_fallbackStyle": { "type": "string", "default": "Visual Studio", "description": "Name of the predefined style used as a fallback in case clang-format is invoked with style \"file\" but the .clang-format file is not found. Possible values are Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit, none, or use \"{key: value, ...}\" to set specific parameters, e.g.: \"{ BasedOnStyle: LLVM, IndentWidth: 8 }\"", "scope": "resource" }, "C_Cpp.clang_format_sortIncludes": { "type": [ "boolean", "null" ], "enum": [ true, false, null ], "default": null, "description": "If set, overrides the include sorting behavior determined by the SortIncludes parameter.", "scope": "resource" }, "C_Cpp.intelliSenseEngine": { "type": "string", "enum": [ "Default", "Tag Parser", "Disabled" ], "default": "Default", "description": "Controls the IntelliSense provider. \"Tag Parser\" provides \"fuzzy\" results that are not context-aware. \"Default\" provides context-aware results and is in preview mode - member list, hover tooltips, and error squiggles are currently implemented. Features not yet implemented in the new default engine will use the tag parser engine instead.", "scope": "resource" }, "C_Cpp.intelliSenseEngineFallback": { "type": "string", "enum": [ "Enabled", "Disabled" ], "default": "Enabled", "description": "Controls whether the IntelliSense engine will automatically switch to the Tag Parser for translation units containing #include errors.", "scope": "resource" }, "C_Cpp.autocomplete": { "type": "string", "enum": [ "Default", "Disabled" ], "default": "Default", "description": "Controls the auto-completion provider. \"Default\" uses the active IntelliSense engine. \"Disabled\" uses the word-based completion provided by Visual Studio Code.", "scope": "resource" }, "C_Cpp.errorSquiggles": { "type": "string", "enum": [ "Enabled", "Disabled" ], "default": "Enabled", "description": "Controls whether suspected compile errors detected by the IntelliSense engine will be reported back to the editor. Warnings about #includes that could not be located will always be reported to the editor. This setting is ignored by the Tag Parser engine.", "scope": "resource" }, "C_Cpp.dimInactiveRegions": { "type": "boolean", "default": true, "description": "Controls whether inactive preprocessor blocks are colored differently than active code. This setting is ignored by the Tag Parser engine.", "scope": "resource" }, "C_Cpp.inactiveRegionOpacity": { "type:": "number", "default": 0.55, "Description": "Controls the opacity of inactive preprocessor blocks. Scales between 0.1 and 1.0. This setting only applies when inactive region dimming is enabled.", "scope": "resource", "minimum": 0.1, "maximum": 1 }, "C_Cpp.inactiveRegionForegroundColor": { "type": [ "string", "null" ], "default": null, "description": "Controls the font coloring of inactive preprocessor blocks. Input is in the form a hexadecimal color code or a valid Theme Color. If not set, this defaults to the syntax coloring scheme of the editor. This setting only applies when inactive region dimming is enabled.", "scope": "resource" }, "C_Cpp.inactiveRegionBackgroundColor": { "type": [ "string", "null" ], "default": null, "description": "Controls the background coloring of inactive preprocessor blocks. Input is in the form a hexadecimal color code or a valid Theme Color. If not set, this defaults to transparent. This setting only applies when inactive region dimming is enabled.", "scope": "resource" }, "C_Cpp.formatting": { "type": "string", "enum": [ "Default", "Disabled" ], "default": "Default", "description": "\"Default\" enables code formatting. \"Disabled\" disables code formatting.", "scope": "resource" }, "C_Cpp.navigation.length": { "type": "number", "default": 60, "description": "Maximum character length of the scope/navigation UI in the status bar. The UI may not appear if this value is too large.", "scope": "resource" }, "C_Cpp.loggingLevel": { "type": "string", "enum": [ "None", "Error", "Warning", "Information", "Debug" ], "default": "Error", "description": "The verbosity of logging in the Output Panel. The order of levels from least verbose to most verbose is: None < Error < Warning < Information < Debug.", "scope": "resource" }, "C_Cpp.autoAddFileAssociations": { "type": "boolean", "default": true, "description": "Controls whether files are automatically added to files.associations when they are the target of a navigation operation from a C/C++ file.", "scope": "resource" }, "C_Cpp.workspaceParsingPriority": { "type": "string", "enum": [ "highest", "high", "medium", "low" ], "default": "highest", "description": "Controls whether parsing of the non-active workspace files uses sleeps to avoid using 100% CPU. The values highest/high/medium/low correspond to approximately 100/75/50/25% CPU usage.", "scope": "resource" }, "C_Cpp.workspaceSymbols": { "type": "string", "enum": [ "All", "Just My Code" ], "default": "Just My Code", "description": "The symbols to include in the query results when 'Go to Symbol in Workspace' is invoked", "scope": "resource" }, "C_Cpp.exclusionPolicy": { "type": "string", "enum": [ "checkFolders", "checkFilesAndFolders" ], "default": "checkFolders", "description": "Instructs the extension when to use the \"files.exclude\" setting when determining which files should be added to the code navigation database while traversing through the paths in the \"browse.path\" array. \"checkFolders\" means that the exclusion filters will only be evaluated once per folder (individual files are not checked). \"checkFilesAndFolders\" means that the exclusion filters will be evaluated against every file and folder encountered. If your \"files.exclude\" setting only contains folders, then \"checkFolders\" is the best choice and will increase the speed at which the extension can initialize the code navigation database.", "scope": "resource" }, "C_Cpp.preferredPathSeparator": { "type": "string", "enum": [ "Forward Slash", "Backslash" ], "default": "Forward Slash", "description": "The character used as a path separator for #include auto-completion results.", "scope": "resource" }, "C_Cpp.commentContinuationPatterns": { "type": "array", "default": [ "/**" ], "items": { "anyOf": [ { "type": "string", "description": "The pattern that begins a multiline or single line comment block. The continuation pattern defaults to ' * ' for multiline comment blocks or this string for single line comment blocks." }, { "type": "object", "properties": { "begin": { "type": "string", "description": "The pattern that begins a multiline or single line comment block." }, "continue": { "type": "string", "description": "The text that will be inserted on the next line when Enter is pressed inside a multiline or single line comment block." } } } ] }, "description": "Defines the editor behavior for when the Enter key is pressed inside a multiline or single line comment block.", "scope": "resource" }, "C_Cpp.configurationWarnings": { "type": "string", "enum": [ "Enabled", "Disabled" ], "default": "Enabled", "description": "Determines whether pop up notifications will be shown when a configuration provider extension is unable to provide a configuration for a source file.", "scope": "resource" }, "C_Cpp.default.includePath": { "type": [ "array", "null" ], "items": { "type": "string" }, "default": null, "description": "The value to use in a configuration if \"includePath\" is not specified, or the values to insert if \"${default}\" is present in \"includePath\".", "scope": "resource" }, "C_Cpp.default.defines": { "type": [ "array", "null" ], "items": { "type": "string" }, "default": null, "description": "The value to use in a configuration if \"defines\" is not specified, or the values to insert if \"${default}\" is present in \"defines\".", "scope": "resource" }, "C_Cpp.default.macFrameworkPath": { "type": [ "array", "null" ], "items": { "type": "string" }, "default": null, "description": "The value to use in a configuration if \"macFrameworkPath\" is not specified, or the values to insert if \"${default}\" is present in \"macFrameworkPath\".", "scope": "resource" }, "C_Cpp.default.windowsSdkVersion": { "type": [ "string", "null" ], "default": null, "description": "Version of the Windows SDK include path to use on Windows, e.g. '10.0.17134.0'.", "pattern": "^\\d{2}\\.\\d{1}\\.\\d{5}\\.\\d{1}$|^8\\.1$", "scope": "resource" }, "C_Cpp.default.compileCommands": { "type": [ "string", "null" ], "default": null, "description": "The value to use in a configuration if \"compileCommands\" is either not specified, or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.forcedInclude": { "type": [ "array", "null" ], "items": { "type": "string" }, "default": null, "description": "The value to use in a configuration if \"forcedInclude\" is not specified, or the values to insert if \"${default}\" is present in \"forcedInclude\".", "scope": "resource" }, "C_Cpp.default.intelliSenseMode": { "type": [ "string", "null" ], "enum": [ "msvc-x64", "gcc-x64", "clang-x64" ], "default": null, "description": "The value to use in a configuration if \"intelliSenseMode\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.compilerPath": { "type": [ "string", "null" ], "default": null, "description": "The value to use in a configuration if \"compilerPath\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.cStandard": { "type": [ "string", "null" ], "enum": [ "c89", "c99", "c11" ], "default": null, "description": "The value to use in a configuration if \"cStandard\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.cppStandard": { "type": [ "string", "null" ], "enum": [ "c++98", "c++03", "c++11", "c++14", "c++17" ], "default": null, "description": "The value to use in a configuration if \"cppStandard\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.configurationProvider": { "type": [ "string", "null" ], "default": null, "description": "The value to use in a configuration if \"configurationProvider\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.browse.path": { "type": [ "array", "null" ], "items": { "type": "string" }, "default": null, "description": "The value to use in a configuration if \"browse.path\" is not specified, or the values to insert if \"${default}\" is present in \"browse.path\".", "scope": "resource" }, "C_Cpp.default.browse.databaseFilename": { "type": [ "string", "null" ], "default": null, "description": "The value to use in a configuration if \"browse.databaseFilename\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.browse.limitSymbolsToIncludedHeaders": { "type": "boolean", "default": true, "description": "The value to use in a configuration if \"browse.limitSymbolsToIncludedHeaders\" is either not specified or set to \"${default}\".", "scope": "resource" }, "C_Cpp.default.systemIncludePath": { "type": [ "array", "null" ], "items": { "type": "string" }, "default": null, "description": "The value to use for the system include path. If set, it overrides the system include path acquired via \"compilerPath\" and \"compileCommands\" settings.", "scope": "resource" } } }, "commands": [ { "command": "C_Cpp.ConfigurationSelect", "title": "Select a Configuration...", "category": "C/Cpp" }, { "command": "C_Cpp.ConfigurationProviderSelect", "title": "Change Configuration Provider...", "category": "C/Cpp" }, { "command": "C_Cpp.ConfigurationEdit", "title": "Edit Configurations...", "category": "C/Cpp" }, { "command": "C_Cpp.GoToDeclaration", "title": "Go to Declaration", "category": "C/Cpp" }, { "command": "C_Cpp.PeekDeclaration", "title": "Peek Declaration", "category": "C/Cpp" }, { "command": "C_Cpp.SwitchHeaderSource", "title": "Switch Header/Source", "category": "C/Cpp" }, { "command": "C_Cpp.Navigate", "title": "Navigate...", "category": "C/Cpp" }, { "command": "C_Cpp.ToggleSnippets", "title": "Toggle Snippets", "category": "C/Cpp" }, { "command": "C_Cpp.ToggleErrorSquiggles", "title": "Toggle Error Squiggles", "category": "C/Cpp" }, { "command": "C_Cpp.ToggleIncludeFallback", "title": "Toggle IntelliSense Engine Fallback on Include Errors", "category": "C/Cpp" }, { "command": "C_Cpp.ToggleDimInactiveRegions", "title": "Toggle Inactive Region Colorization", "category": "C/Cpp" }, { "command": "C_Cpp.ShowReleaseNotes", "title": "Show Release Notes", "category": "C/Cpp" }, { "command": "C_Cpp.ResetDatabase", "title": "Reset IntelliSense Database", "category": "C/Cpp" }, { "command": "C_Cpp.PauseParsing", "title": "Pause Parsing", "category": "C/Cpp" }, { "command": "C_Cpp.ResumeParsing", "title": "Resume Parsing", "category": "C/Cpp" }, { "command": "C_Cpp.ShowParsingCommands", "title": "Show Parsing Commands", "category": "C/Cpp" }, { "command": "C_Cpp.TakeSurvey", "title": "Take Survey", "category": "C/Cpp" } ], "keybindings": [ { "command": "C_Cpp.GoToDeclaration", "key": "Ctrl+F12", "when": "editorTextFocus && editorLangId == 'cpp'" }, { "command": "C_Cpp.GoToDeclaration", "key": "Ctrl+F12", "when": "editorTextFocus && editorLangId == 'c'" }, { "command": "C_Cpp.PeekDeclaration", "key": "Ctrl+Alt+F12", "when": "editorTextFocus && editorLangId == 'cpp'" }, { "command": "C_Cpp.PeekDeclaration", "key": "Ctrl+Alt+F12", "when": "editorTextFocus && editorLangId == 'c'" }, { "command": "C_Cpp.SwitchHeaderSource", "key": "Alt+O", "when": "editorTextFocus && editorLangId == 'cpp'" }, { "command": "C_Cpp.SwitchHeaderSource", "key": "Alt+O", "when": "editorTextFocus && editorLangId == 'c'" }, { "command": "C_Cpp.Navigate", "key": "Alt+N", "when": "editorTextFocus && editorLangId == 'cpp'" }, { "command": "C_Cpp.Navigate", "key": "Alt+N", "when": "editorTextFocus && editorLangId == 'c'" } ], "debuggers": [ { "type": "cppdbg", "label": "C++ (GDB/LLDB)", "enableBreakpointsFor": { "languageIds": [ "c", "cpp" ] }, "adapterExecutableCommand": "extension.cppdbgAdapterExecutableCommand", "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", "variables": { "pickProcess": "extension.pickNativeProcess", "pickRemoteProcess": "extension.pickRemoteNativeProcess" }, "configurationAttributes": { "launch": { "type": "object", "default": {}, "required": [ "program" ], "properties": { "program": { "type": "string", "description": "Full path to program executable.", "default": "${workspaceRoot}/a.out" }, "args": { "type": "array", "description": "Command line arguments passed to the program.", "items": { "type": "string" }, "default": [] }, "type": { "type": "string", "description": "The type of the engine. Must be \"cppdbg\".", "default": "cppdbg" }, "targetArchitecture": { "type": "string", "description": "The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86, arm, arm64, mips, x64, amd64, x86_64.", "default": "x64" }, "cwd": { "type": "string", "description": "The working directory of the target", "default": "." }, "setupCommands": { "type": "array", "description": "One or more GDB/LLDB commands to execute in order to setup the underlying debugger. Example: \"setupCommands\": [ { \"text\": \"-enable-pretty-printing\", \"description\": \"Enable GDB pretty printing\", \"ignoreFailures\": true }].", "items": { "type": "object", "default": {}, "properties": { "text": { "type": "string", "description": "The debugger command to execute.", "default": "" }, "description": { "type": "string", "description": "Optional description for the command.", "default": "" }, "ignoreFailures": { "type": "boolean", "description": "If true, failures from the command should be ignored. Default value is false.", "default": false } } }, "default": [] }, "customLaunchSetupCommands": { "type": "array", "description": "If provided, this replaces the default commands used to launch a target with some other commands. For example, this can be \"-target-attach\" in order to attach to a target process. An empty command list replaces the launch commands with nothing, which can be useful if the debugger is being provided launch options as command line options. Example: \"customLaunchSetupCommands\": [ { \"text\": \"target-run\", \"description\": \"run target\", \"ignoreFailures\": false }].", "items": { "type": "object", "default": {}, "properties": { "text": { "type": "string", "description": "The debugger command to execute.", "default": "" }, "description": { "type": "string", "description": "Optional description for the command.", "default": "" }, "ignoreFailures": { "type": "boolean", "description": "If true, failures from the command should be ignored. Default value is false.", "default": false } } }, "default": [] }, "launchCompleteCommand": { "enum": [ "exec-run", "exec-continue", "None" ], "description": "The command to execute after the debugger is fully setup in order to cause the target process to run. Allowed values are \"exec-run\", \"exec-continue\", \"None\". The default value is \"exec-run\".", "default": "exec-run" }, "visualizerFile": { "type": "string", "description": ".natvis file to be used when debugging this process. This option is not compatible with GDB pretty printing. Please also see \"showDisplayString\" if using this setting.", "default": "" }, "showDisplayString": { "type": "boolean", "description": "When a visualizerFile is specified, showDisplayString will enable the display string. Turning this option on can cause slower performance during debugging.", "default": true }, "environment": { "type": "array", "description": "Environment variables to add to the environment for the program. Example: [ { \"name\": \"squid\", \"value\": \"clam\" } ].", "items": { "type": "object", "default": {}, "properties": { "name": "string", "value": "string" } }, "default": [] }, "additionalSOLibSearchPath": { "type": "string", "description": "Semicolon separated list of directories to use to search for .so files. Example: \"c:\\dir1;c:\\dir2\".", "default": "" }, "MIMode": { "type": "string", "description": "Indicates the console debugger that the MIDebugEngine will connect to. Allowed values are \"gdb\" \"lldb\".", "default": "gdb" }, "miDebuggerPath": { "type": "string", "description": "The path to the mi debugger (such as gdb). When unspecified, it will search path first for the debugger.", "default": "/usr/bin/gdb" }, "miDebuggerArgs": { "type": "string", "description": "Arguments for the mi debugger (such as gdb) to use. When unspecified.", "default": "" }, "miDebuggerServerAddress": { "type": "string", "description": "Network address of the MI Debugger Server to connect to (example: localhost:1234).", "default": "serveraddress:port" }, "stopAtEntry": { "type": "boolean", "description": "Optional parameter. If true, the debugger should stop at the entrypoint of the target. If processId is passed, has no effect.", "default": false }, "debugServerPath": { "type": "string", "description": "Optional full path to debug server to launch. Defaults to null.", "default": "" }, "debugServerArgs": { "type": "string", "description": "Optional debug server args. Defaults to null.", "default": "" }, "serverStarted": { "type": "string", "description": "Optional server-started pattern to look for in the debug server output. Defaults to null.", "default": "" }, "filterStdout": { "type": "boolean", "description": "Search stdout stream for server-started pattern and log stdout to debug output. Defaults to true.", "default": true }, "filterStderr": { "type": "boolean", "description": "Search stderr stream for server-started pattern and log stderr to debug output. Defaults to false.", "default": false }, "serverLaunchTimeout": { "type": "integer", "description": "Optional time, in milliseconds, for the debugger to wait for the debugServer to start up. Default is 10000.", "default": "10000" }, "coreDumpPath": { "type": "string", "description": "Optional full path to a core dump file for the specified program. Defaults to null.", "default": "" }, "externalConsole": { "type": "boolean", "description": "If true, a console is launched for the debuggee. If false, no console is launched. Note this option is ignored in some cases for technical reasons.", "default": false }, "sourceFileMap": { "type": "object", "description": "Optional source file mappings passed to the debug engine. Example: '{ \"/original/source/path\":\"/current/source/path\" }'", "default": { "": "" } }, "logging": { "description": "Optional flags to determine what types of messages should be logged to the Debug Console.", "type": "object", "default": {}, "properties": { "exceptions": { "type": "boolean", "description": "Optional flag to determine whether exception messages should be logged to the Debug Console. Defaults to true.", "default": true }, "moduleLoad": { "type": "boolean", "description": "Optional flag to determine whether module load events should be logged to the Debug Console. Defaults to true.", "default": true }, "programOutput": { "type": "boolean", "description": "Optional flag to determine whether program output should be logged to the Debug Console. Defaults to true.", "default": true }, "engineLogging": { "type": "boolean", "description": "Optional flag to determine whether diagnostic engine logs should be logged to the Debug Console. Defaults to false.", "default": false }, "trace": { "type": "boolean", "description": "Optional flag to determine whether diagnostic adapter command tracing should be logged to the Debug Console. Defaults to false.", "default": false }, "traceResponse": { "type": "boolean", "description": "Optional flag to determine whether diagnostic adapter command and response tracing should be logged to the Debug Console. Defaults to false.", "default": false } } }, "pipeTransport": { "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the MI-enabled debugger backend executable (such as gdb).", "type": "object", "default": { "pipeCwd": "/usr/bin", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], "debuggerPath": "The full path to the debugger on the target machine, for example /usr/bin/gdb." }, "properties": { "pipeCwd": { "type": "string", "description": "The fully qualified path to the working directory for the pipe program.", "default": "/usr/bin" }, "pipeProgram": { "type": "string", "description": "The fully qualified pipe command to execute.", "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" }, "pipeArgs": { "type": "array", "description": "Command line arguments passed to the pipe program to configure the connection.", "items": { "type": "string" }, "default": [] }, "debuggerPath": { "type": "string", "description": "The full path to the debugger on the target machine, for example /usr/bin/gdb.", "default": "The full path to the debugger on the target machine, for example /usr/bin/gdb." }, "pipeEnv": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Environment variables passed to the pipe program.", "default": {} } } } } }, "attach": { "type": "object", "default": {}, "required": [ "program", "processId" ], "properties": { "program": { "type": "string", "description": "Full path to program executable.", "default": "${workspaceRoot}/a.out" }, "type": { "type": "string", "description": "The type of the engine. Must be \"cppdbg\".", "default": "cppdbg" }, "targetArchitecture": { "type": "string", "description": "The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86, arm, arm64, mips, x64, amd64, x86_64.", "default": "x64" }, "visualizerFile": { "type": "string", "description": ".natvis file to be used when debugging this process. This option is not compatible with GDB pretty printing. Please also see \"showDisplayString\" if using this setting.", "default": "" }, "showDisplayString": { "type": "boolean", "description": "When a visualizerFile is specified, showDisplayString will enable the display string. Turning this option on can cause slower performance during debugging.", "default": true }, "additionalSOLibSearchPath": { "type": "string", "description": "Semicolon separated list of directories to use to search for .so files. Example: \"c:\\dir1;c:\\dir2\".", "default": "" }, "MIMode": { "type": "string", "description": "Indicates the console debugger that the MIDebugEngine will connect to. Allowed values are \"gdb\" \"lldb\".", "default": "gdb" }, "miDebuggerPath": { "type": "string", "description": "The path to the mi debugger (such as gdb). When unspecified, it will search path first for the debugger.", "default": "/usr/bin/gdb" }, "miDebuggerServerAddress": { "type": "string", "description": "Network address of the MI Debugger Server to connect to (example: localhost:1234).", "default": "serveraddress:port" }, "processId": { "anyOf": [ { "type": "string", "description": "Optional process id to attach the debugger to. Use \"${command:pickProcesss}\" to get a list of local running processes to attach to. Note that some platforms require administrator privileges in order to attach to a process.", "default": "${command:pickProcess}" }, { "type": "integer", "description": "Optional process id to attach the debugger to. Use \"${command:pickProcesss}\" to get a list of local running processes to attach to. Note that some platforms require administrator privileges in order to attach to a process.", "default": 0 } ] }, "filterStdout": { "type": "boolean", "description": "Search stdout stream for server-started pattern and log stdout to debug output. Defaults to true.", "default": true }, "filterStderr": { "type": "boolean", "description": "Search stderr stream for server-started pattern and log stderr to debug output. Defaults to false.", "default": false }, "sourceFileMap": { "type": "object", "description": "Optional source file mappings passed to the debug engine. Example: '{ \"/original/source/path\":\"/current/source/path\" }'", "default": { "": "" } }, "logging": { "description": "Optional flags to determine what types of messages should be logged to the Debug Console.", "type": "object", "default": {}, "properties": { "exceptions": { "type": "boolean", "description": "Optional flag to determine whether exception messages should be logged to the Debug Console. Defaults to true.", "default": true }, "moduleLoad": { "type": "boolean", "description": "Optional flag to determine whether module load events should be logged to the Debug Console. Defaults to true.", "default": true }, "programOutput": { "type": "boolean", "description": "Optional flag to determine whether program output should be logged to the Debug Console. Defaults to true.", "default": true }, "engineLogging": { "type": "boolean", "description": "Optional flag to determine whether diagnostic engine logs should be logged to the Debug Console. Defaults to false.", "default": false }, "trace": { "type": "boolean", "description": "Optional flag to determine whether diagnostic adapter command tracing should be logged to the Debug Console. Defaults to false.", "default": false }, "traceResponse": { "type": "boolean", "description": "Optional flag to determine whether diagnostic adapter command and response tracing should be logged to the Debug Console. Defaults to false.", "default": false } } }, "pipeTransport": { "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the MI-enabled debugger backend executable (such as gdb).", "type": "object", "default": { "pipeCwd": "/usr/bin", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], "debuggerPath": "The full path to the debugger on the target machine, for example /usr/bin/gdb." }, "properties": { "pipeCwd": { "type": "string", "description": "The fully qualified path to the working directory for the pipe program.", "default": "/usr/bin" }, "pipeProgram": { "type": "string", "description": "The fully qualified pipe command to execute.", "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" }, "pipeArgs": { "type": "array", "description": "Command line arguments passed to the pipe program to configure the connection.", "items": { "type": "string" }, "default": [] }, "debuggerPath": { "type": "string", "description": "The full path to the debugger on the target machine, for example /usr/bin/gdb.", "default": "The full path to the debugger on the target machine, for example /usr/bin/gdb." }, "pipeEnv": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Environment variables passed to the pipe program.", "default": {} } } }, "setupCommands": { "type": "array", "description": "One or more GDB/LLDB commands to execute in order to setup the underlying debugger. Example: \"setupCommands\": [ { \"text\": \"-enable-pretty-printing\", \"description\": \"Enable GDB pretty printing\", \"ignoreFailures\": true }].", "items": { "type": "object", "default": {}, "properties": { "text": { "type": "string", "description": "The debugger command to execute.", "default": "" }, "description": { "type": "string", "description": "Optional description for the command.", "default": "" }, "ignoreFailures": { "type": "boolean", "description": "If true, failures from the command should be ignored. Default value is false.", "default": false } } }, "default": [] } } } } }, { "type": "cppvsdbg", "label": "C++ (Windows)", "enableBreakpointsFor": { "languageIds": [ "c", "cpp" ] }, "adapterExecutableCommand": "extension.cppvsdbgAdapterExecutableCommand", "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", "variables": { "pickProcess": "extension.pickNativeProcess" }, "configurationAttributes": { "launch": { "type": "object", "default": {}, "required": [ "program", "cwd" ], "properties": { "program": { "type": "string", "description": "Full path to program executable.", "default": "${workspaceRoot}/program.exe" }, "args": { "type": "array", "description": "Command line arguments passed to the program.", "items": { "type": "string" }, "default": [] }, "type": { "type": "string", "description": "The type of the engine. Must be \"cppvsdbg\".", "default": "cppvsdbg" }, "cwd": { "type": "string", "description": "The working directory of the target.", "default": "${workspaceRoot}" }, "environment": { "type": "array", "description": "Environment variables to add to the environment for the program. Example: [ { \"name\": \"squid\", \"value\": \"clam\" } ].", "items": { "type": "object", "default": {}, "properties": { "name": "string", "value": "string" } }, "default": [] }, "symbolSearchPath": { "type": "string", "description": "Semicolon separated list of directories to use to search for symbol (that is, pdb) files. Example: \"c:\\dir1;c:\\dir2\".", "default": "" }, "stopAtEntry": { "type": "boolean", "description": "Optional parameter. If true, the debugger should stop at the entrypoint of the target. If processId is passed, has no effect.", "default": false }, "dumpPath": { "type": "string", "description": "Optional full path to a dump file for the specified program. Example: \"c:\\temp\\app.dmp\". Defaults to null.", "default": "" }, "visualizerFile": { "type": "string", "description": ".natvis file to be used when debugging this process.", "default": "" }, "externalConsole": { "type": "boolean", "description": "If true, a console is launched for the debuggee. If false, no console is launched.", "default": false }, "sourceFileMap": { "type": "object", "description": "Optional source file mappings passed to the debug engine. Example: '{ \"/original/source/path\":\"/current/source/path\" }'", "default": { "": "" } }, "logging": { "type": "object", "description": "Optional flags to determine what types of messages should be logged to the Debug Console.", "default": {}, "properties": { "exceptions": { "type": "boolean", "description": "Optional flag to determine whether exception messages should be logged to the Debug Console. Defaults to true.", "default": true }, "moduleLoad": { "type": "boolean", "description": "Optional flag to determine whether module load events should be logged to the Debug Console. Defaults to true.", "default": true }, "programOutput": { "type": "boolean", "description": "Optional flag to determine whether program output should be logged to the Debug Console. Defaults to true.", "default": true }, "engineLogging": { "type": "boolean", "description": "Optional flag to determine whether diagnostic debug engine messages should be logged to the Debug Console. Defaults to false.", "default": false } } } } }, "attach": { "type": "object", "default": {}, "required": [ "processId" ], "properties": { "type": { "type": "string", "description": "The type of the engine. Must be \"cppvsdbg\".", "default": "cppvsdbg" }, "symbolSearchPath": { "type": "string", "description": "Semicolon separated list of directories to use to search for symbol (that is, pdb) files. Example: \"c:\\dir1;c:\\dir2\".", "default": "" }, "processId": { "anyOf": [ { "type": "string", "description": "Optional process id to attach the debugger to. Use \"${command:pickProcesss}\" to get a list of local running processes to attach to. Note that some platforms require administrator privileges in order to attach to a process.", "default": "${command:pickProcess}" }, { "type": "integer", "description": "Optional process id to attach the debugger to. Use \"${command:pickProcesss}\" to get a list of local running processes to attach to. Note that some platforms require administrator privileges in order to attach to a process.", "default": 0 } ] }, "visualizerFile": { "type": "string", "description": ".natvis file to be used when debugging this process.", "default": "" }, "sourceFileMap": { "type": "object", "description": "Optional source file mappings passed to the debug engine. Example: '{ \"/original/source/path\":\"/current/source/path\" }'", "default": { "": "" } }, "logging": { "type": "object", "description": "Optional flags to determine what types of messages should be logged to the Debug Console.", "default": {}, "properties": { "exceptions": { "type": "boolean", "description": "Optional flag to determine whether exception messages should be logged to the Debug Console. Defaults to true.", "default": true }, "moduleLoad": { "type": "boolean", "description": "Optional flag to determine whether module load events should be logged to the Debug Console. Defaults to true.", "default": true }, "programOutput": { "type": "boolean", "description": "Optional flag to determine whether program output should be logged to the Debug Console. Defaults to true.", "default": true }, "trace": { "type": "boolean", "description": "Optional flag to determine whether diagnostic adapter command tracing should be logged to the Debug Console. Defaults to false.", "default": false } } } } } } } ], "jsonValidation": [ { "fileMatch": "c_cpp_properties.json", "url": "./c_cpp_properties.schema.json" } ], "menus": { "editor/context": [ { "when": "editorLangId == c", "command": "C_Cpp.GoToDeclaration", "group": "navigation@2" }, { "when": "editorLangId == cpp", "command": "C_Cpp.GoToDeclaration", "group": "navigation@2" }, { "when": "editorLangId == c", "command": "C_Cpp.PeekDeclaration", "group": "navigation@3" }, { "when": "editorLangId == cpp", "command": "C_Cpp.PeekDeclaration", "group": "navigation@3" }, { "when": "editorLangId == c", "command": "C_Cpp.SwitchHeaderSource", "group": "other@1" }, { "when": "editorLangId == cpp", "command": "C_Cpp.SwitchHeaderSource", "group": "other@1" }, { "when": "editorLangId == c", "command": "C_Cpp.Navigate", "group": "other@2" }, { "when": "editorLangId == cpp", "command": "C_Cpp.Navigate", "group": "other@2" }, { "when": "editorLangId == c", "command": "workbench.action.gotoSymbol", "group": "other@3" }, { "when": "editorLangId == cpp", "command": "workbench.action.gotoSymbol", "group": "other@3" }, { "when": "editorLangId == c", "command": "workbench.action.showAllSymbols", "group": "other@4" }, { "when": "editorLangId == cpp", "command": "workbench.action.showAllSymbols", "group": "other@4" } ] }, "configurationDefaults": { "[cpp]": { "editor.autoIndent": false }, "[c]": { "editor.autoIndent": false } }, "snippets": [ { "language": "cpp", "path": "./cpp_snippets.json" }, { "language": "c", "path": "./cpp_snippets.json" } ] }, "scripts": { "compile": "npm run vscode:prepublish", "generateOptionsSchema": "gulp generateOptionsSchema", "integrationTests": "gulp integrationTests", "postinstall": "node ./node_modules/vscode/bin/install", "pretest": "tsc -p ./", "pr-check": "gulp pr-check", "test": "gulp allTests", "tslint": "gulp tslint", "unitTests": "gulp unitTests", "vscode:prepublish": "node ./src/Support/prepublish.js", "watch": "tsc -watch -p ./" }, "devDependencies": { "@types/mocha": "^2.2.43", "@types/node": "^8.0.46", "gulp": "3.9.1", "gulp-env": "0.4.0", "gulp-mocha": "5.0.0", "gulp-tslint": "8.1.2", "mocha": "^4.0.1", "tslint": "5.8.0", "tslint-microsoft-contrib": "5.0.1", "tslint-no-unused-expression-chai": "0.0.3", "typescript": "^2.5.3", "vrsource-tslint-rules": "^5.8.2", "vscode": "^1.1.18" }, "dependencies": { "http-proxy-agent": "~2.1.0", "https-proxy-agent": "~2.2.0", "jsonc-parser": "^1.0.0", "minimatch": "~3.0.4", "mkdirp": "~0.5.1", "tmp": "~0.0.33", "vscode-cpptools": "^1.2.2", "vscode-debugadapter": "~1.24.0", "vscode-debugprotocol": "~1.24.0", "vscode-extension-telemetry": "~0.0.11", "vscode-languageclient": "3.5.1", "yauzl": "~2.8.0" }, "runtimeDependencies": [ { "description": "C/C++ language components (Linux / x86_64)", "url": "https://go.microsoft.com/fwlink/?linkid=2006256", "platforms": [ "linux" ], "architectures": [ "x86_64" ], "binaries": [ "./bin/Microsoft.VSCode.CPP.Extension.linux", "./bin/Microsoft.VSCode.CPP.IntelliSense.Msvc.linux" ] }, { "description": "C/C++ language components (Linux / x86)", "url": "https://go.microsoft.com/fwlink/?linkid=2006255", "platforms": [ "linux" ], "architectures": [ "x86", "i686", "i386" ], "binaries": [ "./bin/Microsoft.VSCode.CPP.Extension.linux", "./bin/Microsoft.VSCode.CPP.IntelliSense.Msvc.linux" ] }, { "description": "C/C++ language components (OS X)", "url": "https://go.microsoft.com/fwlink/?linkid=2006254", "platforms": [ "darwin" ], "binaries": [ "./bin/Microsoft.VSCode.CPP.Extension.darwin", "./bin/Microsoft.VSCode.CPP.IntelliSense.Msvc.darwin" ] }, { "description": "C/C++ language components (Windows)", "url": "https://go.microsoft.com/fwlink/?linkid=2006362", "platforms": [ "win32" ], "binaries": [] }, { "description": "ClangFormat (Linux / x86_64)", "url": "https://go.microsoft.com/fwlink/?LinkID=872607", "platforms": [ "linux" ], "architectures": [ "x86_64" ], "binaries": [ "./LLVM/bin/clang-format" ] }, { "description": "ClangFormat (Linux / x86)", "url": "https://go.microsoft.com/fwlink/?LinkID=872608", "platforms": [ "linux" ], "architectures": [ "x86", "i686", "i386" ], "binaries": [ "./LLVM/bin/clang-format" ] }, { "description": "ClangFormat (OS X)", "url": "https://go.microsoft.com/fwlink/?LinkID=872609", "platforms": [ "darwin" ], "binaries": [ "./LLVM/bin/clang-format.darwin" ] }, { "description": "ClangFormat (Windows)", "url": "https://go.microsoft.com/fwlink/?LinkID=872610", "platforms": [ "win32" ], "binaries": [] }, { "description": "Mono Framework Assemblies", "url": "https://go.microsoft.com/fwlink/?LinkId=816539", "platforms": [ "linux", "darwin" ], "binaries": [] }, { "description": "Mono Runtime (Linux / x86)", "url": "https://go.microsoft.com/fwlink/?LinkId=816540", "platforms": [ "linux" ], "architectures": [ "x86", "i686", "i386" ], "binaries": [ "./debugAdapters/mono.linux-x86" ] }, { "description": "Mono Runtime (Linux / x86_64)", "url": "https://go.microsoft.com/fwlink/?LinkId=816541", "platforms": [ "linux" ], "architectures": [ "x86_64" ], "binaries": [ "./debugAdapters/mono.linux-x86_64" ] }, { "description": "Mono Runtime (OS X)", "url": "https://go.microsoft.com/fwlink/?LinkId=816542", "platforms": [ "darwin" ], "binaries": [ "./debugAdapters/mono.osx" ] }, { "description": "LLDB 3.8.0 (OS X)", "url": "https://go.microsoft.com/fwlink/?LinkID=817244", "platforms": [ "darwin" ], "binaries": [ "./debugAdapters/lldb/bin/debugserver", "./debugAdapters/lldb/bin/lldb-mi", "./debugAdapters/lldb/bin/lldb-argdumper", "./debugAdapters/lldb/bin/lldb-launcher" ] }, { "description": "Visual Studio Windows Debugger", "url": "https://go.microsoft.com/fwlink/?linkid=872985", "platforms": [ "win32" ], "binaries": [] } ], "__metadata": { "id": "690b692e-e8a9-493f-b802-8089d50ac1b2", "publisherId": "5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee", "publisherDisplayName": "Microsoft" } }