Skip to content

Commit 8a2324d

Browse files
committed
Merge branch 'main' into seanmcm/1_22_9_release
2 parents bdd3541 + c1de737 commit 8a2324d

File tree

3 files changed

+16
-23
lines changed

3 files changed

+16
-23
lines changed

Extension/CHANGELOG.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
# C/C++ for Visual Studio Code Changelog
22

3-
## Version 1.22.8: October 7, 2024
3+
## Version 1.22.9: October 10, 2024
44
### Performance Improvements
5-
* Switch to an alternative implementation of recursive includes (that sends all the paths instead of only the "used" paths). [#11780](https://github.com/microsoft/vscode-cpptools/issues/11780)
6-
- Performance improvement: Configuration is no longer blocked on tag parsing of all dependent headers.
7-
- Configuration change: Recursive include paths now take precedence over system include paths (similar to compiler behavior and non-recursive includes). [#11485](https://github.com/microsoft/vscode-cpptools/issues/11485)
85
* Initialization performance improvements. [#12030](https://github.com/microsoft/vscode-cpptools/issues/12030)
96
- Some processing is parallelized and started earlier (populating the filename cache, discovering files). [#11954](https://github.com/microsoft/vscode-cpptools/issues/11954), [#12169](https://github.com/microsoft/vscode-cpptools/issues/12169)
107
- Some compiler configuration queries are cached in the database, and processing of compile_commands.json was improved. [#10029](https://github.com/microsoft/vscode-cpptools/issues/10029), [#12078](https://github.com/microsoft/vscode-cpptools/issues/12078)
@@ -28,6 +25,7 @@
2825
### Bug Fixes
2926
* Fix the compiler selection control not keeping the list in sync with the contents of the textbox. [#7427](https://github.com/microsoft/vscode-cpptools/issues/7427)
3027
* Fix a string localization issue. [#7824](https://github.com/microsoft/vscode-cpptools/issues/7824)
28+
* Fix an issue with the 'Add #include' code action incorrectly using a relative path for a system include. [#12010](https://github.com/microsoft/vscode-cpptools/issues/12010)
3129
* Fix an issue with lingering IntelliSense squiggles after an edit. [#12175](https://github.com/microsoft/vscode-cpptools/issues/12175)
3230
* Fix hover over static constexpr variables sometimes not working. [#12284](https://github.com/microsoft/vscode-cpptools/issues/12284)
3331
* Fix completion not giving results in several scenarios. [#12412](https://github.com/microsoft/vscode-cpptools/issues/12412)
@@ -49,6 +47,7 @@
4947
* Fix an issue with 'Extract to Function' formatting. [#12677](https://github.com/microsoft/vscode-cpptools/issues/12677)
5048
* Fix an issue with duplicate tag parsing occurring after a Rename operation. [#12728](https://github.com/microsoft/vscode-cpptools/issues/12728)
5149
* Fix an issue preventing use of a full command line in `compilerPath`. [PR #12774](https://github.com/microsoft/vscode-cpptools/pull/12774)
50+
* Fix an issue with clang-format/tidy version checks for some builds. [#12806](https://github.com/microsoft/vscode-cpptools/issues/12806)
5251
* Fix an issue causing unnecessary TU updates for files opened during a Rename operation, when `"files.refactoring.autoSave": false` is used.
5352
* Fix some issues with recursive includes handling of symbolic links, multi-root, exclusion changes, and file/folder deletion.
5453
* Fix unnecessary IntelliSense resetting when a new file or folder was created.
@@ -1329,7 +1328,7 @@
13291328
## Version 0.29.0: July 15, 2020
13301329
### New Features
13311330
* Add Doxygen comment support (to tooltip display of hover, completion, and signature help). [#658](https://github.com/microsoft/vscode-cpptools/issues/658)
1332-
* The way comments are formatted is controlled by the `C_Cpp.simplifyStructuredComments` setting.
1331+
* The way comments are formatted is controlled by the `C_Cpp.simplifyStructuredComments` setting.
13331332
* Auto-convert `.` to `->` when the type is a pointer. [#862](https://github.com/microsoft/vscode-cpptools/issues/862)
13341333
* Switch to using the VS Code Semantic Tokens API for semantic colorization (works with remoting). [PR #5401](https://github.com/microsoft/vscode-cpptools/pull/5401), [#3932](https://github.com/microsoft/vscode-cpptools/issues/3932), [#3933](https://github.com/microsoft/vscode-cpptools/issues/3933), [#3942](https://github.com/microsoft/vscode-cpptools/issues/3942)
13351334
* Add support for LogMessage Breakpoints for debug type `cppdbg`. [PR MIEngine#1013](https://github.com/microsoft/MIEngine/pull/1013)
@@ -2034,7 +2033,7 @@
20342033
## Version 0.16.1: March 30, 2018
20352034
* Fix random deadlock caused by logging code on Linux/Mac. [#1759](https://github.com/Microsoft/vscode-cpptools/issues/1759)
20362035
* Fix compiler from `compileCommands` not being queried for includes/defines if `compilerPath` isn't set on Windows. [#1754](https://github.com/Microsoft/vscode-cpptools/issues/1754)
2037-
* Fix OSX `UseShellExecute` I/O bug. [#1756](https://github.com/Microsoft/vscode-cpptools/issues/1756)
2036+
* Fix OSX `UseShellExecute` I/O bug. [#1756](https://github.com/Microsoft/vscode-cpptools/issues/1756)
20382037
* Invalidate partially unzipped files from package manager. [#1757](https://github.com/Microsoft/vscode-cpptools/issues/1757)
20392038

20402039
## Version 0.16.0: March 28, 2018
@@ -2378,4 +2377,4 @@
23782377

23792378
## Version 0.5.0: April 14, 2016
23802379
* Usability and correctness bug fixes.
2381-
* Simplify installation experience.
2380+
* Simplify installation experience.

Extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "cpptools",
33
"displayName": "C/C++",
44
"description": "C/C++ IntelliSense, debugging, and code browsing.",
5-
"version": "1.22.8-main",
5+
"version": "1.22.9-main",
66
"publisher": "ms-vscode",
77
"icon": "LanguageCCPP_color_128x.png",
88
"readme": "README.md",

Extension/src/LanguageServer/settings.ts

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,6 @@ export class CppSettings extends Settings {
277277
if (cachedClangPath !== undefined) {
278278
return cachedClangPath;
279279
}
280-
const clangStr: string = isFormat ? this.clangFormatStr : this.clangTidyStr;
281280
const clangName: string = isFormat ? this.clangFormatName : this.clangTidyName;
282281
const setCachedClangPath: (path: string) => void = isFormat ? setCachedClangFormatPath : setCachedClangTidyPath;
283282
const whichPath: string | null = which.sync(clangName, { nothrow: true });
@@ -290,29 +289,24 @@ export class CppSettings extends Settings {
290289
return undefined;
291290
} else {
292291
// Attempt to invoke both our own version of clang-* to see if we can successfully execute it, and to get its version.
293-
let clangVersion: string;
292+
let bundledVersion: string;
294293
try {
295-
const exePath: string = getExtensionFilePath(`./LLVM/bin/${clangName}`);
296-
const output: string[] = execSync(quote([exePath, '--version'])).toString().split(" ");
297-
if (output.length < 3 || output[0] !== clangStr || output[1] !== "version" || !semver.valid(output[2])) {
298-
if (output.length === 3) {
299-
return path;
300-
}
301-
const versionIndex: number = output.findIndex((value: string) => value === "version");
302-
if (versionIndex < 0 || versionIndex + 1 >= output.length || !semver.valid(output[versionIndex + 1].trim())) {
303-
return path;
304-
}
294+
const bundledPath: string = getExtensionFilePath(`./LLVM/bin/${clangName}`);
295+
const output: string = execSync(quote([bundledPath, '--version'])).toString();
296+
bundledVersion = output.match(/(\d+\.\d+\.\d+)/)?.[1] ?? "";
297+
if (!semver.valid(bundledVersion)) {
298+
return path;
305299
}
306-
clangVersion = output[2];
307300
} catch (e) {
308301
// Unable to invoke our own clang-*. Use the system installed clang-*.
309302
return path;
310303
}
311304

312305
// Invoke the version on the system to compare versions. Use ours if it's more recent.
313306
try {
314-
const output: string[] = execSync(`"${path}" --version`).toString().split(" ");
315-
if (output.length < 3 || output[0] !== clangStr || output[1] !== "version" || semver.ltr(output[2], clangVersion)) {
307+
const output: string = execSync(`"${path}" --version`).toString();
308+
const userVersion = output.match(/(\d+\.\d+\.\d+)/)?.[1] ?? "";
309+
if (semver.ltr(userVersion, bundledVersion)) {
316310
path = "";
317311
setCachedClangPath(path);
318312
}

0 commit comments

Comments
 (0)