From cccebc00a86b96995db7417c411a258ce44e7a9f Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 29 Dec 2017 21:01:48 -0800 Subject: [PATCH 01/11] Add throttleWorkspaceParsing setting. --- Documentation/LanguageServer/How to Contribute Changes.md | 2 +- Extension/CHANGELOG.md | 1 + Extension/package.json | 6 ++++++ Extension/src/LanguageServer/client.ts | 3 ++- Extension/src/LanguageServer/settings.ts | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/LanguageServer/How to Contribute Changes.md b/Documentation/LanguageServer/How to Contribute Changes.md index 0d65701f4..2a13cbf04 100644 --- a/Documentation/LanguageServer/How to Contribute Changes.md +++ b/Documentation/LanguageServer/How to Contribute Changes.md @@ -12,7 +12,7 @@ * `processRuntimeDependencies` handles the downloading and installation of the OS-dependent files. Downloading code exists in [packageManager.ts](../../Extension/src/packageManager.ts). * `downloadCpptoolsJsonPkg` handles the `cpptools.json`, which can be used to enable changes to occur mid-update, such as turning the `intelliSenseEngine` to `"Default"` for a certain percentage of users. * The debugger code is in the [Debugger](https://github.com/Microsoft/vscode-cpptools/Extension/src/Debugger) folder. - * [LanguageServer/client.ts](../../Extension/src/LanguageServer/C_Cpp.ts) handles various language server functionality. + * [LanguageServer/client.ts](../../Extension/src/LanguageServer/client.ts) handles various language server functionality. * [LanguageServer/configurations.ts](../../Extension/src/LanguageServer/configurations.ts) handles functionality related to `c_cpp_properties.json`. * [telemetry.ts](../../Extension/src/telemetry.ts): Telemetry data gets sent to either `logLanguageServerEvent` or `logDebuggerEvent`. * The Tag Parser (symbol database) doesn't automatically expand macros, so the [cpp.hint](../../Extension/cpp.hint) file contains definitions of macros that should be expanded in order for symbols to be parsed correctly. diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 10a2d4b20..70c2f0241 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -8,6 +8,7 @@ * Fix extra reload message after installing with VS Code 1.19. [#1362](https://github.com/Microsoft/vscode-cpptools/issues/1362) * Fix incorrect "Warning: Expected file ... is missing" message after installing on Linux. [#1334](https://github.com/Microsoft/vscode-cpptools/issues/1334) * Fix "Include file not found" messages not re-appearing after settings changes. [#1363](https://github.com/Microsoft/vscode-cpptools/issues/1363) +* Add `C_Cpp.throttleWorkspaceParsing` setting to avoid using 100% CPU during parsing of workspace files. ## Version 0.14.5: December 18, 2017 * Fix for stackwalk `NullReferenceException`. [#1339](https://github.com/Microsoft/vscode-cpptools/issues/1339) diff --git a/Extension/package.json b/Extension/package.json index 9bd70e182..9717aa00a 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -172,6 +172,12 @@ "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.throttleWorkspaceParsing": { + "type": "boolean", + "default": false, + "description": "Controls whether parsing of the workspace use sleeps to avoid using 100% CPU", + "scope": "resource" } } }, diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 793588906..121d029bb 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -328,7 +328,8 @@ class DefaultClient implements Client { intelliSenseEngineFallback: settings.intelliSenseEngineFallback, autocomplete: settings.autoComplete, errorSquiggles: settings.errorSquiggles, - loggingLevel: settings.loggingLevel + loggingLevel: settings.loggingLevel, + throttleWorkspaceParsing: settings.throttleWorkspaceParsing }, middleware: createProtocolFilter(this, allClients), // Only send messages directed at this client. errorHandler: { diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 99bb212b0..325c18dd6 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -44,6 +44,7 @@ export class CppSettings extends Settings { public get loggingLevel() { return super.Section.get("loggingLevel"); } public get navigationLength() { return super.Section.get("navigation.length", 60); } public get filesAssociationsAutoAdd() { return super.Section.get("files.associations.autoAdd"); } + public get throttleWorkspaceParsing() { return super.Section.get("throttleWorkspaceParsing"); } public toggleSetting(name: string, value1: string, value2: string) { let value = super.Section.get(name); From 87db87064574b484a7262100f7821cfe87d76f08 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 29 Dec 2017 21:05:44 -0800 Subject: [PATCH 02/11] Modify description. --- Extension/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 9717aa00a..c67cb472f 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -175,8 +175,8 @@ }, "C_Cpp.throttleWorkspaceParsing": { "type": "boolean", - "default": false, - "description": "Controls whether parsing of the workspace use sleeps to avoid using 100% CPU", + "default": true, + "description": "Controls whether parsing of the non-active workspace files uses sleeps to avoid using 100% CPU.", "scope": "resource" } } From 222a5305f866d375c2ed8b5e3709db36ff425da3 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 2 Jan 2018 16:04:45 -0800 Subject: [PATCH 03/11] Add setting C_Cpp.files.exclude.onlyCheckFolders. --- Extension/CHANGELOG.md | 4 +++- Extension/package.json | 6 ++++++ Extension/src/LanguageServer/client.ts | 1 + Extension/src/LanguageServer/settings.ts | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 70c2f0241..60cba529e 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,6 +1,6 @@ # C/C++ for Visual Studio Code Change Log -## Version 0.14.6: Janurary 2, 2017 +## Version 0.14.6: Janurary 4, 2017 * Fix tag parser failing (and continuing to fail after edits) when it shouldn't. [#1367](https://github.com/Microsoft/vscode-cpptools/issues/1367) * Fix tag parser taking too long due to redundant processing. [#1288](https://github.com/Microsoft/vscode-cpptools/issues/1288) * Fix debugging silently failing the 1st time if a C/C++ file isn't opened. [#1366](https://github.com/Microsoft/vscode-cpptools/issues/1366) @@ -8,7 +8,9 @@ * Fix extra reload message after installing with VS Code 1.19. [#1362](https://github.com/Microsoft/vscode-cpptools/issues/1362) * Fix incorrect "Warning: Expected file ... is missing" message after installing on Linux. [#1334](https://github.com/Microsoft/vscode-cpptools/issues/1334) * Fix "Include file not found" messages not re-appearing after settings changes. [#1363](https://github.com/Microsoft/vscode-cpptools/issues/1363) +* Performance improvements when no files need to be parsed, and stop showing "Parsing files" when there's no actual parsing. [#1393](https://github.com/Microsoft/vscode-cpptools/issues/1393) * Add `C_Cpp.throttleWorkspaceParsing` setting to avoid using 100% CPU during parsing of workspace files. +* Add `C_Cpp.files.exclude.onlyCheckFolders` default to `true` to avoid expensive `files.exclude` checking on every file. ## Version 0.14.5: December 18, 2017 * Fix for stackwalk `NullReferenceException`. [#1339](https://github.com/Microsoft/vscode-cpptools/issues/1339) diff --git a/Extension/package.json b/Extension/package.json index c67cb472f..f350fb9d3 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -178,6 +178,12 @@ "default": true, "description": "Controls whether parsing of the non-active workspace files uses sleeps to avoid using 100% CPU.", "scope": "resource" + }, + "C_Cpp.files.exclude.onlyCheckFolders": { + "type": "boolean", + "default": true, + "description": "Controls whether files.exclude filters are checked only for folders (recommended due to the performance impact) or for files as well.", + "scope": "resource" } } }, diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 121d029bb..8b393083d 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -330,6 +330,7 @@ class DefaultClient implements Client { errorSquiggles: settings.errorSquiggles, loggingLevel: settings.loggingLevel, throttleWorkspaceParsing: settings.throttleWorkspaceParsing + files_exclude_onlyCheckFolders: settings.filesExcludeOnlyCheckFolders }, middleware: createProtocolFilter(this, allClients), // Only send messages directed at this client. errorHandler: { diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 325c18dd6..84dc07066 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -45,6 +45,7 @@ export class CppSettings extends Settings { public get navigationLength() { return super.Section.get("navigation.length", 60); } public get filesAssociationsAutoAdd() { return super.Section.get("files.associations.autoAdd"); } public get throttleWorkspaceParsing() { return super.Section.get("throttleWorkspaceParsing"); } + public get filesExcludeOnlyCheckFolders() { return super.Section.get("files.exclude.onlyCheckFolders"); } public toggleSetting(name: string, value1: string, value2: string) { let value = super.Section.get(name); From 82c9866573c4bab1e734e12535b6eccc63b6d935 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 2 Jan 2018 16:22:22 -0800 Subject: [PATCH 04/11] Fix error. --- Extension/src/LanguageServer/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 8b393083d..b3dfa567e 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -329,7 +329,7 @@ class DefaultClient implements Client { autocomplete: settings.autoComplete, errorSquiggles: settings.errorSquiggles, loggingLevel: settings.loggingLevel, - throttleWorkspaceParsing: settings.throttleWorkspaceParsing + throttleWorkspaceParsing: settings.throttleWorkspaceParsing, files_exclude_onlyCheckFolders: settings.filesExcludeOnlyCheckFolders }, middleware: createProtocolFilter(this, allClients), // Only send messages directed at this client. From 89aafa00037791955804cd851beaa1563d5d9007 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 2 Jan 2018 16:36:48 -0800 Subject: [PATCH 05/11] Update vscode-extension-telemetry API. --- Extension/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/package.json b/Extension/package.json index f350fb9d3..309b18d07 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -1050,7 +1050,7 @@ }, "dependencies": { "vscode-languageclient": "~3.4.5", - "vscode-extension-telemetry": "~0.0.8", + "vscode-extension-telemetry": "~0.0.9", "http-proxy-agent": "~2.0.0", "https-proxy-agent": "~2.1.0", "tmp": "~0.0.33", From d6837065665ddb7d9e04742c0b26b780475d5ea7 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 2 Jan 2018 17:13:44 -0800 Subject: [PATCH 06/11] Change to 0.0.10 of vscode-extension-telemetry. --- Extension/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/package.json b/Extension/package.json index 309b18d07..487befd5f 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -1050,7 +1050,7 @@ }, "dependencies": { "vscode-languageclient": "~3.4.5", - "vscode-extension-telemetry": "~0.0.9", + "vscode-extension-telemetry": "~0.0.10", "http-proxy-agent": "~2.0.0", "https-proxy-agent": "~2.1.0", "tmp": "~0.0.33", From 38622fe20bfe447aa7a50cb8c063ec2e20b95ff6 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 2 Jan 2018 17:55:34 -0800 Subject: [PATCH 07/11] Update changelog with another fix. --- Extension/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 60cba529e..06fea3504 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -9,6 +9,7 @@ * Fix incorrect "Warning: Expected file ... is missing" message after installing on Linux. [#1334](https://github.com/Microsoft/vscode-cpptools/issues/1334) * Fix "Include file not found" messages not re-appearing after settings changes. [#1363](https://github.com/Microsoft/vscode-cpptools/issues/1363) * Performance improvements when no files need to be parsed, and stop showing "Parsing files" when there's no actual parsing. [#1393](https://github.com/Microsoft/vscode-cpptools/issues/1393) +* Fix crash when settings with the wrong type are used. [#1396](https://github.com/Microsoft/vscode-cpptools/issues/1396) * Add `C_Cpp.throttleWorkspaceParsing` setting to avoid using 100% CPU during parsing of workspace files. * Add `C_Cpp.files.exclude.onlyCheckFolders` default to `true` to avoid expensive `files.exclude` checking on every file. From b515b1d64963b15b3e05f2e9f243e5f274a69b44 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 4 Jan 2018 20:28:24 -0800 Subject: [PATCH 08/11] Change setting to exclusionPolicy. --- Extension/CHANGELOG.md | 2 +- Extension/package.json | 12 ++++++++---- Extension/src/LanguageServer/client.ts | 2 +- Extension/src/LanguageServer/settings.ts | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 06fea3504..c8fe2e37c 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -11,7 +11,7 @@ * Performance improvements when no files need to be parsed, and stop showing "Parsing files" when there's no actual parsing. [#1393](https://github.com/Microsoft/vscode-cpptools/issues/1393) * Fix crash when settings with the wrong type are used. [#1396](https://github.com/Microsoft/vscode-cpptools/issues/1396) * Add `C_Cpp.throttleWorkspaceParsing` setting to avoid using 100% CPU during parsing of workspace files. -* Add `C_Cpp.files.exclude.onlyCheckFolders` default to `true` to avoid expensive `files.exclude` checking on every file. +* Add `C_Cpp.exclusionPolicy` default to `checkFolders` to avoid expensive `files.exclude` checking on every file. ## Version 0.14.5: December 18, 2017 * Fix for stackwalk `NullReferenceException`. [#1339](https://github.com/Microsoft/vscode-cpptools/issues/1339) diff --git a/Extension/package.json b/Extension/package.json index 487befd5f..46313d79e 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -179,10 +179,14 @@ "description": "Controls whether parsing of the non-active workspace files uses sleeps to avoid using 100% CPU.", "scope": "resource" }, - "C_Cpp.files.exclude.onlyCheckFolders": { - "type": "boolean", - "default": true, - "description": "Controls whether files.exclude filters are checked only for folders (recommended due to the performance impact) or for files as well.", + "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 (all children of the folder are excluded). \"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" } } diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index b3dfa567e..08b85ffd3 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -330,7 +330,7 @@ class DefaultClient implements Client { errorSquiggles: settings.errorSquiggles, loggingLevel: settings.loggingLevel, throttleWorkspaceParsing: settings.throttleWorkspaceParsing, - files_exclude_onlyCheckFolders: settings.filesExcludeOnlyCheckFolders + exclusionPolicy: settings.exclusionPolicy }, middleware: createProtocolFilter(this, allClients), // Only send messages directed at this client. errorHandler: { diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 84dc07066..33ab76fbb 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -45,7 +45,7 @@ export class CppSettings extends Settings { public get navigationLength() { return super.Section.get("navigation.length", 60); } public get filesAssociationsAutoAdd() { return super.Section.get("files.associations.autoAdd"); } public get throttleWorkspaceParsing() { return super.Section.get("throttleWorkspaceParsing"); } - public get filesExcludeOnlyCheckFolders() { return super.Section.get("files.exclude.onlyCheckFolders"); } + public get exclusionPolicy() { return super.Section.get("exclusionPolicy"); } public toggleSetting(name: string, value1: string, value2: string) { let value = super.Section.get(name); From b9d93baf39ec9f6942c573f1f1f2644a4741e8f4 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 5 Jan 2018 16:41:27 -0800 Subject: [PATCH 09/11] Change setting to workspaceParsingPriority. --- Extension/CHANGELOG.md | 2 +- Extension/package.json | 14 ++++++++++---- Extension/src/LanguageServer/client.ts | 2 +- Extension/src/LanguageServer/settings.ts | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index c8fe2e37c..e966dd140 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -10,7 +10,7 @@ * Fix "Include file not found" messages not re-appearing after settings changes. [#1363](https://github.com/Microsoft/vscode-cpptools/issues/1363) * Performance improvements when no files need to be parsed, and stop showing "Parsing files" when there's no actual parsing. [#1393](https://github.com/Microsoft/vscode-cpptools/issues/1393) * Fix crash when settings with the wrong type are used. [#1396](https://github.com/Microsoft/vscode-cpptools/issues/1396) -* Add `C_Cpp.throttleWorkspaceParsing` setting to avoid using 100% CPU during parsing of workspace files. +* Add `C_Cpp.workspaceParsingPriority` setting to avoid using 100% CPU during parsing of workspace files. * Add `C_Cpp.exclusionPolicy` default to `checkFolders` to avoid expensive `files.exclude` checking on every file. ## Version 0.14.5: December 18, 2017 diff --git a/Extension/package.json b/Extension/package.json index 46313d79e..f056bf827 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -173,10 +173,16 @@ "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.throttleWorkspaceParsing": { - "type": "boolean", - "default": true, - "description": "Controls whether parsing of the non-active workspace files uses sleeps to avoid using 100% CPU.", + "C_Cpp.workspaceParsingPriority": { + "type": "string", + "enum": [ + "highest", + "high", + "normal", + "low" + ], + "default": "normal", + "description": "Controls whether parsing of the non-active workspace files uses sleeps to avoid using 100% CPU. The values highest/high/normal/low correspond to approximately 100/75/50/25% CPU usage.", "scope": "resource" }, "C_Cpp.exclusionPolicy": { diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 08b85ffd3..3874a0701 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -329,7 +329,7 @@ class DefaultClient implements Client { autocomplete: settings.autoComplete, errorSquiggles: settings.errorSquiggles, loggingLevel: settings.loggingLevel, - throttleWorkspaceParsing: settings.throttleWorkspaceParsing, + workspaceParsingPriority: settings.workspaceParsingPriority, exclusionPolicy: settings.exclusionPolicy }, middleware: createProtocolFilter(this, allClients), // Only send messages directed at this client. diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 33ab76fbb..700bc3bf2 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -44,7 +44,7 @@ export class CppSettings extends Settings { public get loggingLevel() { return super.Section.get("loggingLevel"); } public get navigationLength() { return super.Section.get("navigation.length", 60); } public get filesAssociationsAutoAdd() { return super.Section.get("files.associations.autoAdd"); } - public get throttleWorkspaceParsing() { return super.Section.get("throttleWorkspaceParsing"); } + public get workspaceParsingPriority() { return super.Section.get("workspaceParsingPriority"); } public get exclusionPolicy() { return super.Section.get("exclusionPolicy"); } public toggleSetting(name: string, value1: string, value2: string) { From 09a31eacc28b165f73fcc3599dabd83081839e33 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 8 Jan 2018 17:18:28 -0800 Subject: [PATCH 10/11] Changes to changelog. --- Extension/CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index e966dd140..ab8d448a6 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,6 +1,6 @@ # C/C++ for Visual Studio Code Change Log -## Version 0.14.6: Janurary 4, 2017 +## Version 0.14.6: Janurary 16, 2017 * Fix tag parser failing (and continuing to fail after edits) when it shouldn't. [#1367](https://github.com/Microsoft/vscode-cpptools/issues/1367) * Fix tag parser taking too long due to redundant processing. [#1288](https://github.com/Microsoft/vscode-cpptools/issues/1288) * Fix debugging silently failing the 1st time if a C/C++ file isn't opened. [#1366](https://github.com/Microsoft/vscode-cpptools/issues/1366) @@ -8,8 +8,9 @@ * Fix extra reload message after installing with VS Code 1.19. [#1362](https://github.com/Microsoft/vscode-cpptools/issues/1362) * Fix incorrect "Warning: Expected file ... is missing" message after installing on Linux. [#1334](https://github.com/Microsoft/vscode-cpptools/issues/1334) * Fix "Include file not found" messages not re-appearing after settings changes. [#1363](https://github.com/Microsoft/vscode-cpptools/issues/1363) -* Performance improvements when no files need to be parsed, and stop showing "Parsing files" when there's no actual parsing. [#1393](https://github.com/Microsoft/vscode-cpptools/issues/1393) +* Performance improvements with `browse.path` parsing, and stop showing "Parsing files" when there's no actual parsing. [#1393](https://github.com/Microsoft/vscode-cpptools/issues/1393) * Fix crash when settings with the wrong type are used. [#1396](https://github.com/Microsoft/vscode-cpptools/issues/1396) +* Allow semicolons in `browse.path`. [#1415](https://github.com/Microsoft/vscode-cpptools/issues/1415) * Add `C_Cpp.workspaceParsingPriority` setting to avoid using 100% CPU during parsing of workspace files. * Add `C_Cpp.exclusionPolicy` default to `checkFolders` to avoid expensive `files.exclude` checking on every file. From 45c2e0fa7fb1c2857ea06db782276c60b747081e Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 8 Jan 2018 17:20:33 -0800 Subject: [PATCH 11/11] Change description of setting. --- Extension/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/package.json b/Extension/package.json index 3172e8c6c..8b5393499 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -192,7 +192,7 @@ "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 (all children of the folder are excluded). \"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.", + "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" } }