Compare commits

...
177 Commits
Author SHA1 Message Date
Sean McManus 69485c736d Merge pull request #14283 from microsoft/main
Fix a yarn.lock mismatch. (#14282)
2026-03-16 16:17:32 -07:00
Sean McManus c9e571a889 Fix a yarn.lock mismatch. (#14282) 2026-03-16 15:57:42 -07:00
Sean McManus 5e8ca66b5f Merge pull request #14280 from microsoft/main
Merge for 1.31.2
2026-03-16 12:32:54 -07:00
Sean McManus b0efdb5628 Update changelog for 1.31.2. (#14271)
* Update changelog for 1.31.2.
2026-03-16 11:25:12 -07:00
Sean McManus 886008ce84 Stop using yarn with extension pack (#14278)
* Use npm instead of yarn for the extension package vsix.
2026-03-16 11:20:36 -07:00
Sean McManus 9d161fb345 Update. (#14277) 2026-03-16 11:12:04 -07:00
dependabot[bot] 1a661ebd5b Bump undici from 6.23.0 to 6.24.0 in /.github/actions (#14275)
Bumps [undici](https://github.com/nodejs/undici) from 6.23.0 to 6.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.23.0...v6.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 19:06:19 -07:00
dependabot[bot]andSean McManus d84696e9a7 Bump undici from 7.22.0 to 7.24.0 in /Themes (#14274)
Bumps [undici](https://github.com/nodejs/undici) from 7.22.0 to 7.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2026-03-13 17:50:54 -07:00
dependabot[bot]andSean McManus de84f488f2 Bump undici from 7.22.0 to 7.24.0 in /ExtensionPack (#14273)
Bumps [undici](https://github.com/nodejs/undici) from 7.22.0 to 7.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2026-03-13 17:44:51 -07:00
dependabot[bot] a9609ef47b Bump undici from 7.22.0 to 7.24.0 in /Extension (#14272)
Bumps [undici](https://github.com/nodejs/undici) from 7.22.0 to 7.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 17:20:35 -07:00
Rohan Santhosh Kumarandrohan436 e83f362050 docs: remove duplicate word in developer readme (#14266)
Co-authored-by: rohan436 <[email protected]>
2026-03-12 03:35:31 -07:00
Sean McManus 38e074451a Fix warning "Cannot find" instead of "Path is not a file" for compilerPath. (#14265) 2026-03-11 11:08:50 -07:00
Sean McManus a651e53430 Update serialize-javascript. (#14262)
* Update serialize-javascript.
2026-03-10 18:24:01 -07:00
Sean McManus 77effb9b85 Merge pull request #14260 from microsoft/main
Merge for 1.31.1 (3rd time)
2026-03-10 10:55:26 -07:00
Sean McManus 304b92419f Add CFSClean2. (#14253)
* Add CFSClean2.
2026-03-10 17:20:31 +00:00
Sean McManus 5aaa9197c2 Update changelog a 2nd time for 1.31.1. (#14256)
* Update changelog a 2nd time for 1.31.1.
2026-03-10 17:19:31 +00:00
Sean McManus c239d6b162 Change fs.existsSync to check[File|Directory]ExistsSync for cases where it matters. (#14258) 2026-03-10 10:18:42 -07:00
Sean McManus 770ef315d5 Merge pull request #14255 from microsoft/main
Update TPN for 1.31.1. (#14254)
2026-03-09 16:50:27 -07:00
Sean McManus a66064beef Update TPN for 1.31.1. (#14254) 2026-03-09 16:44:33 -07:00
Sean McManus 4bc7ad3f6e Merge pull request #14240 from microsoft/main
Merge for 1.31.1 (pre-release)
2026-03-05 18:12:41 -08:00
Sean McManus b3c1b117c2 Add more CFSClean to pipelines. (#14245)
* Add more CFSClean to pipelines.
* Add --skip-duplicate.
2026-03-05 18:11:34 -08:00
Sean McManus a38624d1ef Add @vscode/vsce. (#14243) 2026-03-05 09:12:10 -08:00
Sean McManus 2c26037f43 Update changelog and version for 1.31.1 (#14239)
* Update changelog and version for 1.31.1
2026-03-04 18:04:42 -08:00
Sean McManus 318f7058b0 Update .github/actions dependencies. (#14237) 2026-03-04 23:31:52 +00:00
Sean McManus 8cadd2dac8 Update TPN for 1.31.1. (#14236) 2026-03-04 15:29:12 -08:00
Sean McManus c5fe03c8e6 Update loc. (#14232) 2026-03-04 03:01:19 +00:00
Sean McManus df350e6552 Update msvc versions. (#14231) 2026-03-04 03:00:54 +00:00
Sean McManus a8cb5375e9 Update to clang-tidy 22. (#14230) 2026-03-03 18:34:08 -08:00
Sean McManus 40e39acb0e Revert the shell-quote update. (#14229) 2026-03-02 16:56:15 -08:00
Sean McManus 8ff42d0d00 Update more dependencies. (#14224)
* Update more dependencies.
2026-03-02 21:25:38 +00:00
Sean McManus 597f29c39a Update licenses. (#14225) 2026-03-02 13:24:45 -08:00
dependabot[bot] fc048916c0 Bump minimatch in /.github/actions (#14222)
Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

Updates `minimatch` from 5.1.6 to 5.1.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 5.1.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 11:46:34 -08:00
Sean McManus 6de78e2d05 Update ajv. (#14221) 2026-02-27 19:31:47 +00:00
Sean McManus 6bddc0fb58 Update minimatch again. (#14219) 2026-02-27 11:31:06 -08:00
Sean McManus e0cf47d749 Update minimatch. (#14217) 2026-02-25 16:20:04 -08:00
dependabot[bot] adb6bcf8d5 Bump fast-xml-parser and @aws-sdk/xml-builder in /.github/actions (#14214)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [@aws-sdk/xml-builder](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages-internal/xml-builder). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 5.3.4 to 5.3.6
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.4...v5.3.6)

Updates `@aws-sdk/xml-builder` from 3.972.4 to 3.972.5
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages-internal/xml-builder/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/HEAD/packages-internal/xml-builder)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.6
  dependency-type: indirect
- dependency-name: "@aws-sdk/xml-builder"
  dependency-version: 3.972.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 11:04:32 -08:00
dependabot[bot] e80bd3b0d1 Bump minimatch from 4.2.3 to 4.2.4 in /Extension (#14213)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 4.2.3 to 4.2.4.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v4.2.3...v4.2.4)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 4.2.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-24 18:50:52 -08:00
Sean McManus 4a1150ebaa Merge pull request #14210 from microsoft/main
Merge to insiders -- this is to build a test vsix to confirm pipeline issues are resolved, not an actual release
2026-02-23 13:39:05 -08:00
Sean McManus a5d00e3123 Switch vsix packing to use Nuget.config (#14209)
* Add a NuGet.config file
2026-02-23 13:35:42 -08:00
Sean McManus b977587cb1 Update the C/C++ extension pack to 1.5.1. (#14203) 2026-02-19 14:06:28 -08:00
Sean McManus ca81d009fd Fix signing for extension pack and themes extensions. (#14202)
* Fix signing for extension pack and themes extensions.
* Fix README.md
2026-02-19 12:45:49 -08:00
Sean McManus 9b3b23fafa Merge pull request #14199 from microsoft/main
Merge for 1.31.0 (pre-release)
2026-02-18 18:19:31 -08:00
Bob Brown 5bbac4e637 update the url for the privacy statement (#14198) 2026-02-18 14:37:56 -08:00
Sean McManus ea1fbea183 Update changelog for 1.31.0. (#14195)
* Update changelog for 1.31.0.
2026-02-18 14:36:46 -08:00
Subham f681142c40 feat: Support program parameter in attach configurations (#14046) (#14108)
* feat: support program parameter in attach configs
2026-02-18 14:34:48 -08:00
Bob Brown 1cd186b3f3 co-install the new C++ Dev Tools extension (#14197) 2026-02-18 12:09:35 -08:00
dependabot[bot] e23c41835d Bump fast-xml-parser and @aws-sdk/xml-builder in /.github/actions (#14182)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [@aws-sdk/xml-builder](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages-internal/xml-builder). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 5.3.3 to 5.3.4
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.3...v5.3.4)

Updates `@aws-sdk/xml-builder` from 3.972.2 to 3.972.4
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages-internal/xml-builder/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/HEAD/packages-internal/xml-builder)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.4
  dependency-type: indirect
- dependency-name: "@aws-sdk/xml-builder"
  dependency-version: 3.972.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-11 17:27:22 -08:00
Sean McManus d9fe0c8874 Update webpack. (#14180)
* Update webpack.
2026-02-11 17:18:50 -08:00
dependabot[bot] 5ad75b4445 Bump axios from 1.13.4 to 1.13.5 in /.github/actions (#14179)
Bumps [axios](https://github.com/axios/axios) from 1.13.4 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.4...v1.13.5)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-11 13:18:17 -08:00
Ben McMorranandSean McManus 11b63666c5 Check unified Copilot API before legacy API (#14167)
Co-authored-by: Sean McManus <[email protected]>
2026-02-09 11:00:21 -08:00
Sean McManus 920997d1d8 Update changelog for 1.30.5 (#14171)
* Update changelog for 1.30.5.
2026-02-06 15:10:25 -08:00
Sean McManus 05d57e1c3c Update eslint from 8 to 9. (#14157)
* Update eslint from 8 to 9.
2026-02-05 14:20:32 -08:00
Sean McManus 19a86b5d2a Update changelog and version for 1.30.4. (#14165) 2026-02-03 11:25:30 -08:00
Sean McManus e9bf244599 Merge pull request #14147 from microsoft/main
Merge for 1.30.2 (pre-release)
2026-01-23 18:46:16 -08:00
Sean McManusandBen McMorran 3e3c93b814 Merge for 1.30.1 (pre-release) (#14134)
* Fix Copilot hover model selection (#14113)

* Update IntelliSense loc strings. (#14131)

* Update changelog for 1.30.1 (#14133)

* Update changelog for 1.30.1

---------

Co-authored-by: Ben McMorran <[email protected]>
2026-01-12 11:49:03 -08:00
Sean McManus fcaadd8ef5 Merge pull request #14107 from microsoft/main
Merge for 1.30.0 (pre-release)
2025-12-12 16:50:30 -08:00
Sean McManus 2b24151d93 Merge pull request #14059 from microsoft/main
Merge for 1.29.1 (pre-release)
2025-11-20 15:09:26 -08:00
Sean McManus e75c76070e Merge pull request #14034 from microsoft/main
Merge for 1.29.0
2025-11-03 11:30:16 -08:00
Sean McManusandBob Brown 97d3735bb2 Merge for 1.28.2 (2nd time) (#13997)
* Fix some invalid assumptions for tasks (#13989)

* Update changeling and version for 1.28.2 (#13990)

* Update changelog and version for 1.28.2.

* Remove llvm from cgmanifest. (#13994)

* Update changelog. (#13996)

---------

Co-authored-by: Bob Brown <[email protected]>
2025-10-13 14:29:28 -07:00
Sean McManus f33c3b6205 Merge pull request #13983 from microsoft/main
Update changleog (2nd time). (#13981)
2025-10-06 14:39:07 -07:00
Sean McManus 55e2ee962e Merge pull request #13978 from microsoft/main
Merge for 1.25.1 (pre-release)
2025-10-03 15:46:00 -07:00
Sean McManus 52620d638c Merge pull request #13964 from microsoft/main
Merge for 1.28.0
2025-09-24 17:13:46 -07:00
Sean McManus 31f8ee8814 Merge pull request #13935 from microsoft/main
Merge for 1.27.6
2025-09-15 16:42:11 -07:00
Sean McManus 1e19dd9f8d Merge pull request #13921 from microsoft/main
Merge for 1.27.5
2025-09-10 12:30:04 -07:00
Sean McManus 9f4077452f Merge pull request #13913 from microsoft/main
Merge for 1.27.4 (2nd time)
2025-09-09 10:23:41 -07:00
Sean McManus 17a1b3199a Merge pull request #13903 from microsoft/main
Merge for 1.27.4
2025-09-05 16:43:18 -07:00
Sean McManus 1ed7c869aa Merge pull request #13895 from microsoft/main
Merge for 1.27.3
2025-09-02 17:11:52 -07:00
Sean McManus b1ed550820 Merge pull request #13871 from microsoft/main
Fix changelog version. (#13870)
2025-08-21 16:15:22 -07:00
Sean McManus 0d6853ce6c Merge pull request #13869 from microsoft/main
Update changelog and version. (#13868)
2025-08-21 14:57:08 -07:00
Sean McManus 49aa6d7543 Merge pull request #13856 from microsoft/main
Merge for 1.27.1
2025-08-18 14:49:10 -07:00
Sean McManus 51615a38c6 Merge pull request #13833 from microsoft/main
Merge for 1.27.0 (4th time)
2025-08-06 18:51:41 -07:00
Bob Brown bcb0bc476b Merge for 1.27.0 (3rd time)
Merge for 1.27.0 (3rd time)
2025-08-04 16:43:29 -07:00
Bob Brown 59c08fba3e Merge branch 'main' into bobbrow/insiders-1.27.0.3 2025-08-04 16:37:10 -07:00
Bob Brown 7ccb51eead Merge pull request #13812 from microsoft/bobbrow/revertSquash
Revert accidental squash commit
2025-08-04 16:35:47 -07:00
Bob Brown 1f3963e9ef Revert "Merge for 1.27.0 (2nd time) (#13803)"
This reverts commit e340d858e7.
2025-08-04 16:25:04 -07:00
Colen Garoutte-Carson e340d858e7 Merge for 1.27.0 (2nd time) (#13803) 2025-08-01 16:47:49 -07:00
Sean McManus d8636d9057 Merge pull request #13759 from microsoft/main
Merge for 1.27.0 (pre-release)
2025-07-14 15:31:34 -07:00
Sean McManus f9199c761a Merge pull request #13714 from microsoft/main
Merge for 1.26.2 pre-release
2025-06-18 14:14:05 -07:00
Sean McManus eedc0a26cc Merge pull request #13631 from microsoft/main
fix typo (#13630)
2025-05-22 18:55:33 -07:00
Sean McManus ae056fd205 Merge pull request #13629 from microsoft/main
Update changelog for 1.26.1 (#13627)
2025-05-22 16:30:41 -07:00
Sean McManusandLuca 598411c6b8 add note about C++ Copilot suggestions improvement (#13624) (#13625)
Co-authored-by: Luca <[email protected]>
2025-05-21 14:01:11 -07:00
Sean McManus d14eb4ec1d Merge pull request #13623 from microsoft/main
Merge for 1.26.0
2025-05-21 12:29:13 -07:00
Sean McManus 68f7e902a5 Merge pull request #13555 from microsoft/main
Merge for 1.25.2 (2nd time)
2025-04-25 15:22:31 -07:00
Sean McManus 9cf7cda837 Merge pull request #13551 from microsoft/main
Merge for 1.25.2
2025-04-25 11:52:07 -07:00
Sean McManus 248788d4f6 Merge pull request #13542 from microsoft/main
Merge for 1.25.1
2025-04-22 09:41:05 -07:00
Sean McManus 4355f92dd8 Merge pull request #13488 from microsoft/main
Merge for 1.25.0 (2nd time)
2025-04-10 16:09:14 -07:00
Sean McManus 86332db0ed Merge pull request #13482 from microsoft/main
Merger for 1.25.0 (pre-release)
2025-04-10 08:37:52 -07:00
Sean McManus ee2fb39cb8 Merge pull request #13429 from microsoft/main
Merge for 1.24.4 (2nd time)
2025-03-26 14:20:09 -07:00
Sean McManus 7d58a314d9 Merge pull request #13419 from microsoft/main
Merge for 1.24.4
2025-03-26 11:10:08 -07:00
Colen Garoutte-Carson 2acdea1cc9 Merge pull request #13387 from microsoft/main 2025-03-18 15:14:59 -07:00
Sean McManus d24f781721 Merge pull request #13384 from microsoft/main
Merge for 1.24.3 (pre-release)
2025-03-18 13:23:26 -07:00
Colen Garoutte-Carson 399d558522 Merge pull request #13346 from microsoft/main 2025-03-06 15:21:29 -08:00
Sean McManus 0fd436f3ef Merge pull request #13280 from microsoft/main
Merge for 1.24.1
2025-02-13 15:03:59 -08:00
Sean McManus b6e18b00a9 Merge pull request #13271 from microsoft/main
Merge for 1.24.0 (2nd time)
2025-02-11 06:55:18 -08:00
Sean McManus cb3964f78e Merge pull request #13267 from microsoft/main
Fix Copilot hover reprompting. (#13266)
2025-02-10 11:51:03 -08:00
Sean McManus 50b4cd3bd5 Merge pull request #13257 from microsoft/main
Merge for 1.24.0 (2nd time)
2025-02-07 16:22:41 -08:00
Sean McManus 161f02dc49 Merge pull request #13250 from microsoft/seanmcm/1_24_0_insiders
Merge for 1.24.0
2025-02-07 13:42:21 -08:00
Sean McManus c48729b0e4 Merge branch 'main' into seanmcm/1_24_0_insiders 2025-02-06 21:18:02 -08:00
Sean McManus e7dff799fd Merge pull request #13179 from microsoft/seanmcm/1_23_4_cherrypicks2
More cherry picks for 1.23.4
2025-01-21 16:31:21 -08:00
Sean McManus ec41c3e481 Add a changelog entry. (#13177) 2025-01-21 16:30:13 -08:00
[email protected] 71cf89ce70 [Auto] Localization - Translated Strings (#13027) 2025-01-21 16:14:44 -08:00
Sean McManus f7863066f3 Merge pull request #13168 from microsoft/seanmcm/cherryPick1_23_4
Cherry-pick for 1.23.4
2025-01-17 18:21:21 -08:00
Sean McManus 0c2862c379 Update changelog for 1.23.4 (3rd time) (#13164)
* Update changelog (3rd time).
* Minor TPN changes.
2025-01-17 18:13:23 -08:00
Sean McManus 6026c84c6f Merge pull request #13163 from microsoft/main
Merge for 1.23.4 (2nd time)
2025-01-16 10:46:23 -08:00
Sean McManus e3ee2ee76a Merge pull request #13156 from microsoft/main
Merge for 1.23.4 (pre-release)
2025-01-15 15:44:30 -08:00
Sean McManus ff1cd88466 Merge pull request #13136 from microsoft/main
Merge for 1.23.3 (pre-release)
2025-01-08 14:04:36 -08:00
Colen Garoutte-Carson 98696368f4 Merge pull request #13025 from microsoft/main 2024-12-05 12:45:31 -08:00
Sean McManus 99d98afcec Merge pull request #13021 from microsoft/main
Merge to insiders for 1.23.2
2024-12-04 20:04:33 -08:00
Sean McManus 784f1450c0 Merge pull request #12939 from microsoft/main
Update changelog. (#12938)
2024-11-06 13:56:23 -08:00
Sean McManus 7d26dd1c4f Merge pull request #12932 from microsoft/main
Merge for 1.23.1
2024-11-05 17:29:22 -08:00
Sean McManus 381d69646b Merge pull request #12900 from microsoft/main
Merge for 1.23.0 (2nd time)
2024-10-29 13:02:21 -07:00
Sean McManus bfa36bc662 Merge pull request #12886 from microsoft/main
Merge for 1.23.0 (2nd time)
2024-10-24 16:59:12 -07:00
Sean McManus 5cbe83ec44 Merge pull request #12877 from microsoft/main
Preliminary merge for 1.23.0
2024-10-22 17:02:44 -07:00
Colen Garoutte-Carson d41ccfd497 Merge pull request #12818 from microsoft/main 2024-10-07 18:05:23 -07:00
Sean McManus c8b7f13c1a Merge pull request #12791 from microsoft/main
Merge for 1.22.7
2024-09-30 16:12:32 -07:00
Colen Garoutte-Carson 8d0d3601a7 Merge pull request #12770 from microsoft/main 2024-09-25 15:46:38 -07:00
Sean McManus e9613ae7ad Merge pull request #12764 from microsoft/main
Merge for 1.22.5
2024-09-24 16:55:39 -07:00
Colen Garoutte-Carson 3570705b5c Merge pull request #12742 from microsoft/main 2024-09-19 16:12:27 -07:00
Colen Garoutte-Carson 096b1463a6 Merge pull request #12740 from microsoft/main 2024-09-19 15:32:11 -07:00
Colen Garoutte-Carson 812318163d Merge pull request #12738 from microsoft/main 2024-09-19 15:04:30 -07:00
Colen Garoutte-Carson 225b776d99 Merge pull request #12734 from microsoft/main 2024-09-18 14:30:06 -07:00
Colen Garoutte-Carson 12d95f4708 Merge pull request #12707 from microsoft/main 2024-09-12 12:23:00 -07:00
Sean McManus 317df57496 Merge pull request #12658 from microsoft/main
Merge for 1.22.2
2024-08-29 19:31:09 -07:00
Sean McManus f63c3652f8 Merge pull request #12654 from microsoft/main
Merge for 1.22.1
2024-08-29 13:36:59 -07:00
Sean McManus 5d62607760 Merge pull request #12633 from microsoft/main
Merge for 1.22.0 (2nd time)
2024-08-26 15:23:50 -07:00
Sean McManus 26d0932972 Merge pull request #12610 from microsoft/main
Merge for 1.22.0 (pre-release)
2024-08-21 14:05:26 -07:00
Sean McManus 825033f768 Merge pull request #12467 from microsoft/main
Merge for 1.21.1 (pre-release)
2024-07-12 11:50:25 -07:00
Sean McManus d8426caacc Merge pull request #12389 from microsoft/main
Fix crash from loc message mismatch. (#12388)
2024-06-17 14:36:02 -07:00
Sean McManus 8942530744 Merge pull request #12386 from microsoft/main
Update changelog date. (#12385)
2024-06-17 11:03:29 -07:00
Sean McManus e663939e56 Merge pull request #12374 from microsoft/seanmcm/1_21_0_insiders
Merge for 1.21.0
2024-06-13 19:22:14 -07:00
Sean McManus 1fb5b63ab7 Merge branch 'main' into seanmcm/1_21_0_insiders 2024-06-13 14:47:55 -07:00
Sean McManus fd482d2169 Merge pull request #12274 from microsoft/seanmcm/1_20_4_cherrypick
Updates for 1.20.4 (#12273)
2024-05-02 11:16:42 -07:00
Sean McManus 2fafd831e5 Updates for 1.20.4 (#12273)
* Don't use the crash handler on macOS < 19.
* Update version and changelog.
2024-05-02 10:14:49 -07:00
Sean McManus 1ceae9d4ed Merge pull request #12266 from microsoft/seanmcm/1_20_3_cherryPicks
Cherry-picks for 1.20.3
2024-04-30 16:18:52 -07:00
Sean McManus d4d5d4551f Update version and changelog for 1.20.3 (#12245)
* Update version and changelog for 1.20.3
2024-04-30 13:11:53 -07:00
Sean McManus 0ef77b5616 Improvements to crash call stack logging. (#12247)
* Updates to crash call stack logging.
* Move crash logging to its own channel.
2024-04-30 13:11:10 -07:00
Sean McManus efdc8e90f6 Merge pull request #12235 from microsoft/seanmcm/1_20_2_cherryPicks2
Cherry-picks for 1.20.2
2024-04-19 17:17:01 -07:00
Sean McManus 9f020e9258 Update changelog for 1.20.2 (2nd time) (#12228)
* Update changelog
2024-04-19 16:57:13 -07:00
Bob Brown c058568767 rename the property again (#12233)
* rename the property again

* fail
2024-04-19 16:57:00 -07:00
browntarik 8809e69e91 Remove redundant variable resolution in handleSquiggles and fix error messaging for env and delimited paths under include paths in c_cpp_properties.json (#12188)
* remove redundant variable resolution

* fix lint

* remove resolveVariable redundancies

* change when resolve and split happens

* fix lint

* Resolve error checking for environment vars and delimited paths

* remove "path" from error messaging

* Adjust error messaging

* remove stray comment

* refactor error messaging + minor fix

* resolve lint

* Fix multi path squiggle regression

* Remove resolvedPath redundancies

* Refactor error messaging and squiggling

* Revert and improve error squiggling behavior

* fix linting

* properly proccess glob patterns + minor fixes

* fix comment positions

* Refactor error message + minor fix

* Fix telemetry metric + minor fix
2024-04-19 16:56:46 -07:00
Sean McManus 7af5c40dd0 Handle multiple cpptools-srv crashes. (#12225) 2024-04-19 16:56:33 -07:00
Sean McManus 1d2bd10691 Merge pull request #12223 from microsoft/main
Fix SettingsTracking treating numerical loggingLevel as invalid. (#12…
2024-04-18 15:11:30 -07:00
Sean McManus dac96fe852 Merge pull request #12209 from microsoft/main
Merge for 1.20.2
2024-04-16 18:43:48 -07:00
Sean McManus a1487e5e79 Merge pull request #12185 from microsoft/main
Merge for 1.20.1
2024-04-09 17:07:29 -07:00
Sean McManus 6f19496172 Merge pull request #12138 from microsoft/main
Merge for 1.20.0
2024-03-26 14:12:18 -07:00
Colen Garoutte-Carson 76ccb791ff Merge pull request #11947 from microsoft/main 2024-02-09 17:16:17 -08:00
Colen Garoutte-Carson a5a5735089 Merge pull request #11942 from microsoft/main 2024-02-08 17:07:45 -08:00
Sean McManus 5077edf585 Merge pull request #11886 from microsoft/main
Merge for 1.19.2 (2nd time)
2024-01-19 18:08:55 -08:00
Colen Garoutte-Carson f38926f8b1 Merge pull request #11874 from microsoft/main 2024-01-16 17:41:23 -08:00
Sean McManus 30de9bcc27 Merge pull request #11725 from microsoft/main
Update for 1.19.1 (#11724)
2023-11-21 17:12:17 -08:00
Sean McManus 100e2e0828 Merge pull request #11699 from microsoft/main
Merge for 1.19.0
2023-11-16 18:39:02 -08:00
Sean McManus e3b41771c6 Merge pull request #11639 from microsoft/main
Merge for 1.18.2 (2nd time)
2023-11-08 12:34:50 -08:00
Sean McManus 3f7f3090f6 Merge pull request #11633 from microsoft/main
Merge for 1.18.2
2023-11-07 15:59:34 -08:00
Sean McManus 4149493f2c Merge pull request #11607 from microsoft/main
Merge for 1.18.1
2023-11-01 17:55:01 -07:00
Sean McManus 43aad3f65c Merge pull request #11528 from microsoft/main
Update changelog (2nd time) (#11527)
2023-10-12 17:21:18 -07:00
Sean McManus bedcacb0a1 Merge pull request #11526 from microsoft/main
Merge for 1.18.0
2023-10-12 14:58:49 -07:00
Sean McManus a5f8f84b43 Merge pull request #11303 from microsoft/main
Merge for 1.17.1
2023-08-08 17:51:04 -07:00
Sean McManus e53b190380 Merge pull request #11253 from microsoft/main
Merge (again) for 1.17.0
2023-07-26 16:56:43 -07:00
Michelle Matias 1846fd4001 Merge pull request #11250 from microsoft/main 2023-07-26 14:15:17 -07:00
Colen Garoutte-Carson 62e09945e3 Merge pull request #11241 from microsoft/main 2023-07-24 17:32:28 -07:00
Michelle Matias c9b0db02fd Merge pull request #11230 from microsoft/main
Merge 1.17.0
2023-07-21 14:08:21 -07:00
Michelle Matias 51da619eec Merge pull request #11099 from microsoft/main
1.16.1 pre-release
2023-06-15 21:19:13 -07:00
Michelle Matias 3eb50568e9 Merge pull request #10986 from microsoft/main
[Auto] Localization - Translated Strings (#10889)
2023-05-22 13:53:52 -07:00
Michelle Matias 866b145645 Merge pull request #10975 from microsoft/main
1.16.0 pre-release
2023-05-19 15:52:02 -07:00
Sean McManus 9762fe5397 Merge pull request #10862 from microsoft/main
Merge for 1.15.3 (2nd time)
2023-04-21 19:00:16 -07:00
Sean McManus 377896c30a Merge pull request #10846 from microsoft/main
Merge for 1.15.3
2023-04-20 18:55:05 -07:00
Michelle Matias 98f13a6f11 Merge pull request #10815 from microsoft/main
Don't put the compiler selection in the global settings if using the …
2023-04-12 17:57:26 -07:00
Michelle Matias 0d85aea687 Merge pull request #10813 from microsoft/main
Revert walkthrough doc links until walkthrough is published (#10812)
2023-04-12 15:51:05 -07:00
Sean McManus 25d2b76514 Merge pull request #10811 from microsoft/main
Merge for 1.15.2
2023-04-12 11:03:43 -07:00
Sean McManus 42dfef3f6b Merge pull request #10728 from microsoft/main
Merge for 1.15.1
2023-03-22 11:43:15 -07:00
Sean McManus 1ce1e9cd71 Merge pull request #10716 from microsoft/main
Update changelog for 1.15.1. (#10708)
2023-03-21 09:53:45 -07:00
Sean McManus 65163966d5 Merge pull request #10679 from microsoft/main
Merge for 1.15.0
2023-03-15 17:17:35 -07:00
Sean McManus edf8e0a155 Merge pull request #10504 from microsoft/main
Merge for 1.14.2 (2nd time)
2023-02-09 16:30:37 -08:00
Sean McManus 4083075476 Merge pull request #10501 from microsoft/main
Merge for 1.14.2
2023-02-09 14:26:59 -08:00
Michelle Matias b745ebc218 Merge pull request #10453 from microsoft/main
1.14.1 pre-release merge
2023-02-01 14:29:00 -08:00
Michelle Matias b69d17a0f5 Merge pull request #10378 from microsoft/seanmcm/1_14_0_insiders
Merge for 1.14.0
2023-01-11 20:00:38 -08:00
Sean McManus be8b6fb693 Merge branch 'main' into seanmcm/1_14_0_insiders 2023-01-11 19:07:54 -08:00
85 changed files with 12983 additions and 2591 deletions
+633 -685
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -15,7 +15,7 @@
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"applicationinsights": "^2.5.1",
"axios": "^1.12.1",
"axios": "^1.13.5",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -39,7 +39,7 @@
"typescript": "^4.7.4",
"yargs": "^17.5.1"
},
"resolutions": {
"minimatch": "^3.0.5"
"overrides": {
"serialize-javascript": "^7.0.4"
}
}
+3 -12
View File
@@ -60,6 +60,8 @@ extends:
enabled: true
featureFlags:
autoBaseline: false
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2
stages:
- stage: build
@@ -90,11 +92,6 @@ extends:
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- script: mkdir $(Build.ArtifactStagingDirectory)\Extension
displayName: Create Extension Staging Directory
@@ -115,12 +112,6 @@ extends:
- script: |
cd $(Build.SourcesDirectory)\Extension
vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
npx @vscode/[email protected] package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
name: ProcessRunner_12
displayName: Run VSCE to package vsix
- task: Npm@0
displayName: Uninstall vsce
inputs:
command: uninstall
arguments: --global @vscode/vsce
+3 -1
View File
@@ -31,6 +31,8 @@ extends:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2
stages:
- stage: package
@@ -44,5 +46,5 @@ extends:
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
vsixName: cpptools-extension-pack
srcDir: ExtensionPack
+3 -1
View File
@@ -31,6 +31,8 @@ extends:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2
stages:
- stage: package
@@ -44,5 +46,5 @@ extends:
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
vsixName: cpptools-themes
srcDir: Themes
+36 -13
View File
@@ -11,7 +11,7 @@ parameters:
jobs:
- job: package
displayName: Build ${{ parameters.vsixName }}
displayName: Build ${{ parameters.vsixName }}.vsix
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
@@ -26,7 +26,7 @@ jobs:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}'
displayName: '${{ parameters.vsixName }}.vsix'
targetPath: $(Build.ArtifactStagingDirectory)\vsix
artifactName: vsix
@@ -38,24 +38,47 @@ jobs:
inputs:
version: 22.x
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
displayName: Use Yarn 1.x
- task: Bash@3
displayName: Build files
inputs:
targetType: 'inline'
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/${{ parameters.srcDir }}"
npm install
if [ $? -ne 0 ]; then
echo "npm install failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
retryCountOnTaskFailure: 3
- script: mkdir $(Build.ArtifactStagingDirectory)\vsix
displayName: Create Staging Directory
- script: |
cd $(Build.SourcesDirectory)\${{ parameters.srcDir }}
vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}
npx @vscode/[email protected] package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix
displayName: Run VSCE to package vsix
- task: Npm@0
displayName: Uninstall vsce
# sign the vsix
- script: npx @vscode/[email protected] generate-manifest -i $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest
displayName: generate manifest
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: copy $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: prepare manifest for signing
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- task: NuGetToolInstaller@1
displayName: Install NuGet
- task: NuGetAuthenticate@1
displayName: Authenticate NuGet
- script: nuget restore $(Build.SourcesDirectory)\Build\signing\SignVsix.proj -PackagesDirectory $(Build.SourcesDirectory)\Build\signing\packages -ConfigFile $(Build.SourcesDirectory)\Build\signing\NuGet.config
displayName: Restore MicroBuild Core
- task: MSBuild@1
displayName: Sign the vsix
inputs:
command: uninstall
arguments: --global @vscode/vsce
solution: $(Build.SourcesDirectory)\Build\signing\SignVsix.proj
msbuildArguments: /p:SignType=${{ parameters.signType }}
+1 -1
View File
@@ -39,5 +39,5 @@ extends:
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
vsixName: cpptools-extension-pack
+1 -1
View File
@@ -39,5 +39,5 @@ extends:
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
vsixName: cpptools-themes
+1 -7
View File
@@ -21,11 +21,6 @@ jobs:
inputs:
versionSpec: 22.x
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- task: AzureCLI@2
displayName: Generate AAD_TOKEN
inputs:
@@ -37,8 +32,7 @@ jobs:
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"
- script: |
vsce publish --packagePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}
npx @vscode/[email protected] publish --skip-duplicate -i $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.vsix --manifestPath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.manifest --signaturePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: Publish to Marketplace
env:
VSCE_PAT: $(AAD_TOKEN)
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="Engineering" value="https://pkgs.dev.azure.com/devdiv/_packaging/MicroBuildToolset/nuget/v3/index.json" />
</packageSources>
</configuration>
-4
View File
@@ -1,4 +0,0 @@
*.js
dist/
vscode*.d.ts
-155
View File
@@ -1,155 +0,0 @@
module.exports = {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/strict",
],
"env": {
"browser": true,
"es6": true,
"node": true
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": ["tsconfig.json", ".scripts/tsconfig.json"],
"ecmaVersion": 2022,
"sourceType": "module",
"warnOnUnsupportedTypeScriptVersion": false,
},
"plugins": [
"@typescript-eslint",
"eslint-plugin-jsdoc",
"@typescript-eslint/eslint-plugin",
"eslint-plugin-import",
"eslint-plugin-header"
],
"rules": {
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"camelcase": "off",
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "typeLike",
"format": ["PascalCase"]
}
],
"@typescript-eslint/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
}
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { "before": true, "overrides": { "this": { "before": false } } }],
"arrow-spacing": ["error", { "before": true, "after": true }],
"semi-spacing": ["error", { "before": false, "after": true }],
"no-extra-parens": ["error", "all", { "nestedBinaryExpressions": false, "ternaryOperandBinaryExpressions": false }],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-arguments": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/semi": "error",
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unified-signatures": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/space-infix-ops": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
"eqeqeq": [
"error",
"always"
],
"import/no-default-export": "error",
"import/no-unassigned-import": "error",
"jsdoc/no-types": "error",
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-debugger": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-eval": "error",
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1, "maxBOF": 0 }],
"no-new-wrappers": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"space-before-blocks": "error",
"no-var": "error",
"one-var": [
"error",
"never"
],
"prefer-const": "error",
"prefer-object-spread": "error",
"space-in-parens": [
"error",
"never"
],
"spaced-comment": [
"off",
"always",
{ "line": { "exceptions": ["/"] } } // triple slash directives
],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"space-infix-ops": "error",
"header/header": [
"warn",
"block",
[
" --------------------------------------------------------------------------------------------",
" * Copyright (c) Microsoft Corporation. All Rights Reserved.",
" * See 'LICENSE' in the project root for license information.",
" * ------------------------------------------------------------------------------------------ "
],
],
}
};
+9 -6
View File
@@ -18,18 +18,20 @@ export async function main() {
}
export async function all() {
await rimraf(...(await getModifiedIgnoredFiles()).filter(each => !each.includes('node_modules')));
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined && !each.includes('node_modules')));
}
export async function reset() {
verbose(`Resetting all .gitignored files in extension`);
await rimraf(...await getModifiedIgnoredFiles());
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
}
async function details(files: string[]) {
let all = await Promise.all(files.filter(each => each).map(async (each) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [filename, stats ] = await filepath.stats(each);
const results = await Promise.all(files.filter(each => each).map(async (each) => {
const [, stats] = await filepath.stats(each);
if (!stats) {
return null;
}
return {
filename: stats.isDirectory() ? cyan(`${each}${sep}**`) : brightGreen(`${each}`),
date: stats.mtime.toLocaleDateString().replace(/\b(\d)\//g, '0$1\/'),
@@ -37,6 +39,7 @@ async function details(files: string[]) {
modified: stats.mtime
};
}));
let all = results.filter((each): each is NonNullable<typeof each> => each !== null);
all = all.sort((a, b) => a.modified.getTime() - b.modified.getTime());
// print a formatted table so the date and time are aligned
const max = all.reduce((max, each) => Math.max(max, each.filename.length), 0);
@@ -56,7 +59,7 @@ export async function show(opt?: string) {
case 'ignored':
case 'untracked':
console.log(cyan('\n\nUntracked+Ignored files:'));
return details(await getModifiedIgnoredFiles());
return details((await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
default:
return error(`Unknown option '${opt}'`);
+7 -4
View File
@@ -54,11 +54,12 @@ export async function getModifiedIgnoredFiles() {
}
// return the full path of files that would be removed.
// eslint-disable-next-line @typescript-eslint/no-misused-promises
return Promise.all(stdio.filter("Would remove").map((s) => filepath.exists(s.replace(/^Would remove /, ''), $root)).filter(p => p));
}
export async function rimraf(...paths: string[]) {
const all = [];
const all: Promise<void>[] = [];
for (const each of paths) {
if (!each) {
continue;
@@ -82,6 +83,9 @@ export async function mkdir(filePath: string) {
}
throw new Error(`Cannot create directory '${filePath}' because there is a file there.`);
}
if (!fullPath) {
throw new Error(`Cannot create directory '${filePath}' because the path is invalid.`);
}
await md(fullPath, { recursive: true });
return fullPath;
@@ -258,7 +262,7 @@ export function position(text: string) {
return gray(`${text}`);
}
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string> {
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string | undefined> {
oneOrMoreFolders = is.array(oneOrMoreFolders) ? oneOrMoreFolders : [oneOrMoreFolders];
for (const each of oneOrMoreFolders) {
const result = await filepath.isFolder(each, $root);
@@ -275,7 +279,7 @@ export async function assertAnyFolder(oneOrMoreFolders: string | string[], error
}
}
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string> {
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string | undefined> {
oneOrMoreFiles = is.array(oneOrMoreFiles) ? oneOrMoreFiles : [oneOrMoreFiles];
for (const each of oneOrMoreFiles) {
const result = await filepath.isFile(each, $root);
@@ -325,7 +329,6 @@ export async function checkDTS() {
let failing = false;
failing = !await assertAnyFile('vscode.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.terminalDataWriteEvent.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.terminalDataWriteEvent.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.lmTools.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.lmTools.d.ts is missing.`)) || failing;
if (!failing) {
verbose('VSCode d.ts files appear to be in place.');
+1 -1
View File
@@ -19,7 +19,7 @@ export async function watch() {
verbose(`Watching ${source} folder for changes.`);
console.log('Press Ctrl+C to exit.');
// eslint-disable-next-line @typescript-eslint/no-unused-vars
for await (const event of watchFiles(source, {recursive: true })) {
for await (const event of watchFiles(source, { recursive: true })) {
await main();
}
}
@@ -3,8 +3,6 @@
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
/* eslint-disable no-prototype-builtins */
import { resolve } from 'path';
import { $root, read, write } from './common';
+6 -5
View File
@@ -75,7 +75,7 @@ filterStdio();
async function unitTests() {
await assertAnyFolder('dist/test/unit', `The folder '${$root}/dist/test/unit is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const mocha = await assertAnyFile(["node_modules/.bin/mocha.cmd", "node_modules/.bin/mocha"], `Can't find the mocha testrunner. You might need to run ${brightGreen("yarn install")}\n\n`);
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio:'inherit', shell: true });
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio: 'inherit', shell: true });
verbose(`\n${green("NOTE:")} If you want to run a scenario test (end-to-end) use ${cmdSwitch('scenario=<NAME>')} \n\n`);
return result.status;
}
@@ -161,23 +161,24 @@ interface Input {
id: string;
type: string;
description: string;
options: CommentArray<{label: string; value: string}>;
options: CommentArray<{ label: string; value: string }>;
}
export async function getScenarioNames() {
return (await readdir(`${$root}/test/scenarios`).catch(returns.none)).filter(each => each !== 'Debugger');
}
export async function getScenarioFolder(scenarioName: string) {
export async function getScenarioFolder(scenarioName: string | undefined) {
return scenarioName ? resolve(`${$root}/test/scenarios/${(await getScenarioNames()).find(each => each.toLowerCase() === scenarioName.toLowerCase())}`) : undefined;
}
export async function list() {
console.log(`\n${cyan("Scenarios: ")}\n`);
const names = await getScenarioNames();
const max = names.reduce((max, each) => Math.max(max, each), 0);
const max = names.reduce((max, each) => Math.max(max, each.length), 0);
for (const each of names) {
console.log(` ${green(each.padEnd(max))}: ${gray(await getScenarioFolder(each))}`);
const folder = await getScenarioFolder(each);
console.log(` ${green(each.padEnd(max))}: ${gray(folder || '')}`);
}
}
+2 -1
View File
@@ -7,6 +7,7 @@
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"esModuleInterop": true
"esModuleInterop": true,
"strictNullChecks": true
}
}
+1 -2
View File
@@ -29,8 +29,7 @@ jobs/**
cgmanifest.json
# ignore development files
.eslintignore
.eslintrc.js
eslint.config.js
.gitattributes
.gitignore
gulpfile.js
+37
View File
@@ -1,5 +1,42 @@
# C/C++ for Visual Studio Code Changelog
## Version 1.31.2: March 17, 2026
### Bug Fixes
* Fix an incorrect warning message with `c_cpp_properties.json` squiggles. [PR #14265](https://github.com/microsoft/vscode-cpptools/pull/14265)
* Fix cpptools getting stuck if C/C++ DevTools sends a workspace symbol request when the database is empty. [#14268](https://github.com/microsoft/vscode-cpptools/issues/14268)
* Update clang-tidy and clang-format from 22.1.0 to 22.1.1 (bug fixes).
## Version 1.31.1: March 10, 2026
### Enhancements
* Update clang-tidy and clang-format from 21.1.4 to 22.1.0.
* Update support for the latest compiler versions.
### Bug Fixes
* Fix workspace symbol search with `scope::variable` not working after symbols are deleted and then added back. [#14200](https://github.com/microsoft/vscode-cpptools/issues/14200)
* Fix bugs where a path was checked for existence but not whether it was a file or a folder. [#14257](https://github.com/microsoft/vscode-cpptools/issues/14257)
* Add IntelliSense support for `__builtin_is_implicit_lifetime`.
* Fix three IntelliSense process crashes.
* Fix a bug with `-embed-directory`.
* Add some missing translations.
## Version 1.31.0: February 19, 2026
### Enhancements
* Add support for `program` in attach debug configurations. [#14046](https://github.com/microsoft/vscode-cpptools/issues/14046)
* Thanks for the contribution. [@Subham-KRLX (Subham)](https://github.com/Subham-KRLX) [PR #14108](https://github.com/microsoft/vscode-cpptools/pull/14108)
* Update SQLite to the latest version.
### Bug Fixes
* Fix an IntelliSense error with deducing `this` (explicit object member functions) with conversion operators. [#14140](https://github.com/microsoft/vscode-cpptools/issues/14140)
* Fix `embed-dir` compiler arguments not being handled for IntelliSense. [#14154](https://github.com/microsoft/vscode-cpptools/issues/14154)
## Version 1.30.5: February 9. 2026
### Bug Fix
* Fix a potential language server deadlock after editing code.
## Version 1.30.4: February 3, 2026
### Bug Fix
* Fix signing of MIEngine. [PR MIEngine#1544](https://github.com/microsoft/MIEngine/pull/1544)
## Version 1.30.3: February 2, 2026
### Enhancements
* Add IntelliSense support for C++23 multidimensional subscript operators. [#11400](https://github.com/microsoft/vscode-cpptools/issues/11400), [#13798](https://github.com/microsoft/vscode-cpptools/issues/13798)
+1 -1
View File
@@ -75,4 +75,4 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
## Data and telemetry
This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://privacy.microsoft.com/en-us/privacystatement) to learn more.
This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more.
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,14 +1,14 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_ARM=7"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_ARM=7"
],
"defaults_op": "merge"
}
+15 -15
View File
@@ -1,15 +1,15 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_ARM64=1"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_ARM64=1"
],
"defaults_op": "merge"
}
+16 -16
View File
@@ -1,16 +1,16 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_X64=100",
"-D_M_AMD64=100"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_X64=100",
"-D_M_AMD64=100"
],
"defaults_op": "merge"
}
+15 -15
View File
@@ -1,15 +1,15 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_IX86=600",
"-D_M_IX86_FP=2"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_IX86=600",
"-D_M_IX86_FP=2"
],
"defaults_op": "merge"
}
+136
View File
@@ -0,0 +1,136 @@
const js = require("@eslint/js");
const tseslint = require("@typescript-eslint/eslint-plugin");
const tsparser = require("@typescript-eslint/parser");
const jsdoc = require("eslint-plugin-jsdoc");
const eslintImport = require("eslint-plugin-import");
module.exports = [
{
ignores: ["dist/", "vscode*.d.ts", "**/*.js"],
},
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: {
parser: tsparser,
parserOptions: {
projectService: true,
tsconfigRootDir: __dirname,
},
globals: {
window: "readonly",
document: "readonly",
console: "readonly",
process: "readonly",
module: "readonly",
require: "readonly",
global: "readonly",
__dirname: "readonly",
exports: "readonly",
},
},
plugins: {
"@typescript-eslint": tseslint,
jsdoc,
import: eslintImport,
},
rules: {
// TypeScript-specific rules
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/naming-convention": [
"error",
{
selector: "typeLike",
format: ["PascalCase"]
}
],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-arguments": "error",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/unified-signatures": "error",
// Core ESLint rules
"camelcase": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { before: true, overrides: { this: { before: false } } }],
"arrow-spacing": ["error", { before: true, after: true }],
"semi-spacing": ["error", { before: false, after: true }],
"no-extra-parens": ["error", "all", { nestedBinaryExpressions: false, ternaryOperandBinaryExpressions: false }],
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
"eqeqeq": ["error", "always"],
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-debugger": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-eval": "error",
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { max: 1, maxEOF: 1, maxBOF: 0 }],
"no-new-wrappers": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"no-unused-vars": "off",
"space-before-blocks": "error",
"no-var": "error",
"one-var": ["error", "never"],
"prefer-const": "error",
"prefer-object-spread": "error",
"space-in-parens": ["error", "never"],
"spaced-comment": ["off", "always", { line: { exceptions: ["/"] } }],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"space-infix-ops": "error",
// Import rules
"import/no-default-export": "error",
"import/no-unassigned-import": "error",
// JSDoc rules
"jsdoc/no-types": "error",
},
},
{
// Apply JS recommended rules only to JS files
...js.configs.recommended,
files: ["**/*.{js,mjs,cjs}"]
},
];
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "通过单独的 IntelliSense 流程提供上下文感知结果。",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供非上下文感知的“模糊”结果。",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "关闭 C/C++ 语言服务功能。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果 `disabled`,且你想要基于字词的补全功能,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (`c` 和 `cuda-cpp` 语言也类似)。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果值为 `disabled`且你想要基于字词的补全功能,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (`c` 和 `cuda-cpp` 语言也类似)。",
"c_cpp.configuration.autocomplete.default.description": "使用活动的 IntelliSense 引擎。",
"c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 提供的基于字词的补全。",
"c_cpp.configuration.errorSquiggles.description": "控制是否将 IntelliSense 引擎检测到的可疑编译错误报告回编辑器。还控制是否报告代码分析警告(如果找不到包含)。标记分析器引擎将忽略此设置。",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "如果为 true,则禁用集成终端支持所需的调试对象控制台重定向。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "传递到调试引擎的可选源文件映射。示例: `{ \"<原始源路径>\": \"<当前源路径>\" }`。",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "要将调试程序附加到的可选进程 ID。使用 `${command:pickProcess}` 获取要附加到的本地运行进程的列表。请注意,一些平台需要管理员权限才能附加到进程。",
"c_cpp.debuggers.symbolSearchPath.description": "用于搜索符号(即 pdb)文件的目录列表(以分号分隔)。示例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.program.attach.markdownDescription": "程序可执行文件的完整路径。调试器将搜索与此可执行文件路径匹配的正在运行的进程并附加到该进程。如果多个进程匹配,将显示选择提示。加载附加进程的调试符号需要此字段。",
"c_cpp.debuggers.symbolSearchPath.description": "用于搜索符号(即 pdb 或 .so)文件的目录的分号分隔列表。示例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.dumpPath.description": "指定程序的转储文件的可选完整路径。例如: \"c:\\temp\\app.dmp\"。默认为 null。",
"c_cpp.debuggers.enableDebugHeap.description": "如果为 false,将在禁用调试堆的情况下启动该进程。这会将环境变量 \"_NO_DEBUG_HEAP\" 设置为 \"1\"。",
"c_cpp.debuggers.symbolLoadInfo.description": "对符号加载的显式控制。",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "透過單獨的 IntelliSense 處理序提供內容感知結果。",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供不屬於內容意識的 `模糊` 結果。",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "關閉 C/C++ 語言服務功能。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自動完成提供者。若設為 `disabled` 且您想要以文字方式完成,您也必須設定 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (且 `c` 及 `cuda-cpp` 語言也相同)。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自動完成提供者。若設為 `disabled` 且您想要以文字方式完成,您也必須設定 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <>}` (且 `c` 及 `cuda-cpp` 語言也相同)。",
"c_cpp.configuration.autocomplete.default.description": "使用作用中 IntelliSense 引擎。",
"c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 所提供的文字型完成。",
"c_cpp.configuration.errorSquiggles.description": "該設定會控制是否將 IntelliSense 引擎偵測到的可疑編譯錯誤回報給編輯器。其也會在找不到內容時,控制是否回報程式碼分析警告。標籤剖析器引擎已忽略此設定。",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "若為 true,則停用整合式終端機支援需要的偵錯項目主控台重新導向。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "傳遞至偵錯引擎的選擇性來源檔案對應。範例: `{ \"<原始來源路徑>\": \"<目前來源路徑>\" }`。",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "要附加偵錯工具的選擇性處理序識別碼。使用 `${command:pickProcess}` 可取得要附加的本機執行中處理序清單。請注意,某些平台需要系統管理員權限才能附加至處理序。",
"c_cpp.debuggers.symbolSearchPath.description": "要用於搜尋符號 (即 pdb) 檔案的目錄清單 (以分號分隔)。範例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.program.attach.markdownDescription": "程式可執行檔的完整路徑。偵錯工具會搜尋符合此可執行路徑的執行中處理序,並連結至該處理序。如果有多個處理序相符,將會顯示選取提示。這是載入已連結處理序之偵錯符號的必要欄位。",
"c_cpp.debuggers.symbolSearchPath.description": "要用於搜尋符號 (即 pdb 或 .so) 檔案的目錄清單 (以分號分隔)。範例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.dumpPath.description": "指定程式之傾印檔案的選擇性完整路徑。範例: \"c:\\temp\\app.dmp\"。預設為 null。",
"c_cpp.debuggers.enableDebugHeap.description": "若為 false,將會啟動已停用偵錯堆積的處理序。這會將環境變數 '_NO_DEBUG_HEAP' 設為 '1'。",
"c_cpp.debuggers.symbolLoadInfo.description": "符號載入的明確控制。",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Pokud se nastaví na true, zakáže přesměrování konzoly laděného procesu, které se vyžaduje pro podporu integrovaného terminálu.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Ladicímu modulu se předala volitelná mapování zdrojových souborů. Příklad: `{ \"<původní cesta ke zdroji>\": \"<aktuální cesta ke zdroji>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Nepovinné ID procesu, ke kterému se má ladicí program připojit. Pokud chcete získat seznam místních spuštěných procesů, ke kterým se dá připojit, použijte `${command:pickProcess}`. Poznámka: Některé platformy vyžadují pro připojení k procesu oprávnění správce.",
"c_cpp.debuggers.symbolSearchPath.description": "Seznam středníkem oddělených adresářů, ve kterých se budou hledat soubory symbolů (tj. soubory pdb). Příklad: c:\\dir1;c:\\dir2",
"c_cpp.debuggers.program.attach.markdownDescription": "Úplná cesta ke spustitelnému souboru programu. Ladicí program vyhledá spuštěný proces odpovídající této cestě spustitelného souboru a připojí se k němu. Pokud se více procesů shoduje, zobrazí se výzva k výběru. Toto pole se vyžaduje k načtení symbolů ladění pro připojený proces.",
"c_cpp.debuggers.symbolSearchPath.description": "Seznam středníkem oddělených adresářů, ve kterých se budou hledat soubory symbolů (tj. soubory pdb nebo .so). Příklad: c:\\dir1;c:\\dir2.",
"c_cpp.debuggers.dumpPath.description": "Volitelná úplná cesta k souboru výpisu pro zadaný program. Příklad: c:\\temp\\app.dmp. Výchozí hodnota je null.",
"c_cpp.debuggers.enableDebugHeap.description": "Když se nastaví na false, proces se spustí se zakázanou haldou ladění. Tato možnost nastaví proměnnou prostředí _NO_DEBUG_HEAP na 1.",
"c_cpp.debuggers.symbolLoadInfo.description": "Explicitní řízení načítání symbolů",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Stellt kontextbezogene Ergebnisse über einen separaten IntelliSense-Prozess bereit.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Stellt „Fuzzy“-Ergebnisse bereit, die nicht kontextbezogen sind.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "Deaktiviert die Features des C/C++-Sprachdiensts.",
"c_cpp.configuration.autocomplete.markdownDescription": "Steuert den Anbieter für AutoVervollständigen. Wenn `disabled` festgelegt ist und Sie die wortbasierte Vervollständigung wünschen, müssen Sie auch `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` festlegen (und analog auch für die Sprachen `c` und `cuda-cpp`).",
"c_cpp.configuration.autocomplete.markdownDescription": "Steuert den Anbieter für AutoVervollständigen. Wenn `disabled` festgelegt ist und Sie die wortbasierte Vervollständigung wünschen, müssen Sie auch `\"[cpp]\": {\"editor.wordBasedSuggestions\": <Wert>}` festlegen (und analog auch für die Sprachen `c` und `cuda-cpp`).",
"c_cpp.configuration.autocomplete.default.description": "Verwendet das aktive IntelliSense-Modul.",
"c_cpp.configuration.autocomplete.disabled.description": "Verwendet die von Visual Studio Code bereitgestellte wortbasierte Vervollständigung.",
"c_cpp.configuration.errorSquiggles.description": "Steuert, ob vermutete Kompilierungsfehler, die von der IntelliSense-Engine erkannt wurden, an den Editor zurückgegeben werden. Außerdem wird gesteuert, ob Codeanalysewarnungen gemeldet werden, wenn keine Enthaltenen gefunden werden können. Diese Einstellung wird von der Tagparser-Engine ignoriert.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Wenn dieser Wert auf TRUE festgelegt ist, wird für die zu debuggende Komponente die Konsolenumleitung deaktiviert, die für die Unterstützung des integrierten Terminals erforderlich ist.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Optionale Quelldateizuordnungen, die an die Debug-Engine übergeben werden. Beispiel: `{ \"<ursprünglicher Quellpfad>\": \"<aktueller Quellpfad>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Optionale Prozess-ID, an die der Debugger angefügt werden soll. Verwenden Sie `${command:pickProcess}`, um eine Liste der lokalen ausgeführten Prozesse abzurufen, an die das Anfügen möglich ist. Beachten Sie, dass für einige Plattformen Administratorrechte erforderlich sind, damit an einen Prozess angefügt werden kann.",
"c_cpp.debuggers.symbolSearchPath.description": "Durch Semikolons getrennte Liste von Verzeichnissen, die für die Suche nach Symboldateien (PDB-Dateien) verwendet werden sollen. Beispiel: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Vollständiger Pfad zur ausführbaren Programmdatei. Der Debugger sucht nach einem laufenden Prozess, der diesem ausführbaren Pfad entspricht, und bindet ihn an. Wenn mehrere Prozesse übereinstimmen, wird eine Auswahlaufforderung angezeigt. Dieses Feld ist erforderlich, um Debugsymbole für den angehängten Prozess zu laden.",
"c_cpp.debuggers.symbolSearchPath.description": "Durch Semikolons getrennte Liste von Verzeichnissen, die für die Suche nach Symboldateien (d. h. PDB- oder .so-Dateien) verwendet werden sollen. Beispiel: „c:\\dir1;c:\\dir2“.",
"c_cpp.debuggers.dumpPath.description": "Optionaler vollständiger Pfad zu einer Dumpdatei für das angegebene Programm. Beispiel: \"c:\\temp\\app.dmp\". Standardwert ist NULL.",
"c_cpp.debuggers.enableDebugHeap.description": "Wenn dieser Wert auf FALSE festgelegt ist, wird der Prozess mit deaktiviertem Debug-Heap gestartet. Hiermit wird die Umgebungsvariable \"_NO_DEBUG_HEAP\" auf \"1\" festgelegt.",
"c_cpp.debuggers.symbolLoadInfo.description": "Explizite Steuerung des Symbolladevorgangs.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Si se establece en true, se deshabilita la redirección de la consola del depurado necesaria para la compatibilidad con el terminal integrado.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Asignaciones de archivo de origen opcionales pasadas al motor de depuración. Ejemplo: `{ \"<ruta de origen original>\": \"<ruta de origen actual>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Id. de proceso opcional al que debe asociarse el depurador. Use `${command:pickProcess}` para obtener una lista de los procesos locales en ejecución a los que se puede asociar. Tenga en cuenta que algunas plataformas requieren privilegios de administrador para poder asociar el depurador a un proceso.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista de directorios separados por punto y coma que debe usarse para buscar archivos de símbolos (es decir, pdb). Ejemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Ruta de acceso completa al ejecutable del programa. El depurador buscará un proceso en ejecución que coincida con esta ruta de acceso ejecutable y se asociará a él. Si coinciden varios procesos, se mostrará un mensaje de selección. Este campo es necesario para cargar símbolos de depuración para el proceso adjunto.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista separada por punto y coma de directorios que se van a usar para buscar archivos de símbolos (es decir, pdb o .so). Ejemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Ruta de acceso completa opcional a un archivo de volcado de memoria para el programa especificado. Ejemplo: \"c:\\temp\\app.dmp\". El valor predeterminado es null.",
"c_cpp.debuggers.enableDebugHeap.description": "Si se establece en false, el proceso se iniciará con el montón de depuración deshabilitado. Esta opción establece la variable de entorno \"_NO_DEBUG_HEAP\" en \"1\".",
"c_cpp.debuggers.symbolLoadInfo.description": "Control explícito de la carga de símbolos.",
@@ -15,7 +15,7 @@
"reinstall.extension.text4": "Exemples de chemins daccès aux répertoires dextension C/C++ installés :",
"reinstall.extension.text5": "Sur Windows :",
"reinstall.extension.text6": "Sur Linux :",
"reinstall.extension.text7": "Réinstallez ensuite via linterface utilisateur de la Place de marché dans VS Code.",
"reinstall.extension.text8": "Si la version correcte de lextension ne peut pas être déployée par VS Code, le VSIX approprié pour votre système peut être {0} et installé à laide de loption 'Installer à partir de VSIX...' sous le menu '...' de linterface utilisateur de la Place de marché dans VS Code.",
"download.vsix.link.title": "téléchargé à partir du site web de la place de marché VS Code"
"reinstall.extension.text7": "Réinstallez ensuite via linterface utilisateur du Marketplace dans VS Code.",
"reinstall.extension.text8": "Si la version correcte de lextension ne peut pas être déployée par VS Code, le VSIX approprié pour votre système peut être {0} et installé à laide de loption 'Installer à partir de VSIX...' sous le menu '...' de linterface utilisateur du Marketplace dans VS Code.",
"download.vsix.link.title": "téléchargé à partir du site web du Marketplace VS Code"
}
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Si la valeur est true, désactive la redirection de la console de l'élément débogué nécessaire pour prendre en charge le terminal intégré.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Mappages de fichiers sources facultatifs passés au moteur de débogage. Exemple : `{ \"<chemin source dorigine>\": \"<chemin source actuel>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "ID de processus facultatif auquel attacher le débogueur. Utilisez `${command:pickProcess}` pour obtenir la liste des processus locaux en cours d'exécution à attacher. Notez que certaines plateformes nécessitent des privilèges d'administrateur(-trice) pour attacher un processus.",
"c_cpp.debuggers.symbolSearchPath.description": "Liste de répertoires séparés par des points-virgules à utiliser pour rechercher les fichiers de symboles (c'est-à-dire, pdb). Exemple : \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Chemin complet du programme exécutable. Le débogueur recherche un processus en cours dexécution correspondant à ce chemin et sy attache. Si plusieurs processus correspondent, une invite de sélection saffiche. Ce champ est obligatoire pour charger les symboles de débogage du processus attaché.",
"c_cpp.debuggers.symbolSearchPath.description": "Liste de répertoires séparés par des points-virgules à utiliser pour rechercher les fichiers de symboles (c'est-à-dire, pdb ou .so). Exemple : « c:\\dir1;c:\\dir2 ».",
"c_cpp.debuggers.dumpPath.description": "Chemin complet facultatif d'un fichier d'image mémoire pour le programme spécifié. Exemple : \"c:\\temp\\app.dmp\". La valeur par défaut est null.",
"c_cpp.debuggers.enableDebugHeap.description": "Si la valeur est false, le processus est lancé avec le tas de débogage désactivé. Cette valeur définit la variable d'environnement '_NO_DEBUG_HEAP' sur '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Contrôle explicite du chargement des symboles.",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Fornisce risultati compatibili con il contesto tramite un processo IntelliSense separato.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Fornisce risultati 'fuzzy' che non sono compatibili con il contesto.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "Disattiva le funzionalità del servizio di linguaggio C/C++.",
"c_cpp.configuration.autocomplete.markdownDescription": "Controlla il provider di completamento automatico. Se è `disabled` e si vuole il completamento basato sulle parole, sarà necessario impostare anche `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (e analogamente per i linguaggi `c` e `cuda-cpp`).",
"c_cpp.configuration.autocomplete.markdownDescription": "Controlla il provider di completamento automatico. Se è `disabled` e desideri il completamento basato sulle parole, dovrai impostare anche `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (e analogamente per i linguaggi `c` e `cuda-cpp`).",
"c_cpp.configuration.autocomplete.default.description": "Usa il motore IntelliSense attivo.",
"c_cpp.configuration.autocomplete.disabled.description": "Usa il completamento basato su parole fornito da Visual Studio Code.",
"c_cpp.configuration.errorSquiggles.description": "Controlla se i possibili errori di compilazione rilevati dal motore IntelliSense verranno segnalati all'editor. Controlla inoltre se vengono segnalati avvisi di analisi del codice se non è possibile trovare le inclusioni. Questa impostazione viene ignorata dal motore del parser di tag.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Se è true, disabilita il reindirizzamento della console dell'oggetto del debug richiesto per il supporto del terminale integrato.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Mapping di file di origine facoltativi passati al motore di debug. Esempio: `{ \"<percorso di origine iniziale>\": \"<percorso di origine corrente>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "ID processo facoltativo a cui collegare il debugger. Usare `${command:pickProcess}` per ottenere un elenco dei processi locali in esecuzione a cui collegarsi. Tenere presente che alcune piattaforme richiedono privilegi di amministratore per collegarsi a un processo.",
"c_cpp.debuggers.symbolSearchPath.description": "Elenco di directory delimitate da punto e virgola da usare per la ricerca di file di simboli, ovvero PDB. Esempio: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Percorso completo dell'eseguibile del programma. Il debugger cercherà un processo in esecuzione che corrisponde a questo percorso dell'eseguibile e vi si collegherà. Se più processi corrispondono, verrà mostrato un prompt per la selezione. Questo campo è necessario per caricare i simboli di debug del processo collegato.",
"c_cpp.debuggers.symbolSearchPath.description": "Elenco di directory delimitate da punto e virgola da usare per la ricerca di file di simboli, ovvero PDB o .SO. Esempio: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Percorso completo facoltativo di un file dump per il programma specificato. Esempio: \"c:\\temp\\app.dmp\". L'impostazione predefinita è Null.",
"c_cpp.debuggers.enableDebugHeap.description": "Se è false, il processo verrà avviato con l'heap di debug disabilitato. Imposta la variabile di ambiente '_NO_DEBUG_HEAP' su '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Controllo esplicito del caricamento dei simboli.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "true の場合、統合ターミナルのサポートに必要なデバッグ対象のコンソール リダイレクトが無効になります。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "デバッグ エンジンに渡されるオプションのソース ファイル マッピング。例: `{ \"<元のソース パス>\": \"<現在のソース パス>\" }`。",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "デバッガーをアタッチするためのオプションのプロセス ID。ローカルで実行される、アタッチ先プロセスのリストを取得するには、`${command:pickProcess}` を使用します。一部のプラットフォームでは、プロセスにアタッチするために管理者特権が必要となることに注意してください。",
"c_cpp.debuggers.symbolSearchPath.description": "シンボル (つまり、pdb) ファイルの検索に使用する、セミコロンで区切られたディレクトリの一覧です。例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.program.attach.markdownDescription": "プログラム実行可能ファイルへの完全なパス。デバッガーは、この実行可能ファイルのパスに一致する実行中のプロセスを検索し、アタッチします。複数のプロセスが一致する場合は、選択プロンプトが表示されます。アタッチされたプロセスのデバッグ シンボルを読み込むには、このフィールドが必要です。",
"c_cpp.debuggers.symbolSearchPath.description": "シンボル (つまり pdb または .so) ファイルの検索に使用する、セミコロンで区切られたディレクトリの一覧です。例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.dumpPath.description": "指定したプログラムのダンプ ファイルへの完全なパスです (オプション)。例: \"c:\\temp\\app.dmp\"。既定値は null です。",
"c_cpp.debuggers.enableDebugHeap.description": "false の場合、プロセスはデバッグ ヒープを無効にして起動します。これにより、環境変数 '_NO_DEBUG_HEAP' は '1' に設定されます。",
"c_cpp.debuggers.symbolLoadInfo.description": "シンボルの読み込みを明示的に制御します。",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "별도의 IntelliSense 프로세스를 통해 컨텍스트 인식 결과를 제공합니다.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "\"유사\" 결과를 제공합니다. 컨텍스트를 인식하지 않는 결과입니다.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ 언어 서비스 기능을 해제합니다.",
"c_cpp.configuration.autocomplete.markdownDescription": "자동 완성 공급자를 제어합니다. `disabled`에서 단어 기반 완성을 원할 경우 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}`를 설정해야 합니다(`c`와 `cuda-cpp` 언어도 동일).",
"c_cpp.configuration.autocomplete.markdownDescription": "자동 완성 공급자를 제어합니다. `disabled`에서 단어 기반 완성을 원할 경우 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <>}`를 설정해야 합니다(`c`와 `cuda-cpp` 언어도 동일).",
"c_cpp.configuration.autocomplete.default.description": "활성 IntelliSense 엔진을 사용합니다.",
"c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code에서 제공하는 단어 기반 완성을 사용합니다.",
"c_cpp.configuration.errorSquiggles.description": "IntelliSense 엔진에서 감지한 의심스러운 컴파일 오류를 편집기에 다시 보고할지 여부를 제어합니다. 또한 포함 사항을 찾을 수 없는 경우 코드 분석 경고가 보고되는지 여부를 제어합니다. 이 설정은 태그 파서 엔진에서 무시됩니다.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "True이면 통합 터미널 지원에 필요한 디버기 콘솔 리디렉션을 사용하지 않도록 설정합니다.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "디버그 엔진에 전달되는 선택적 소스 파일 매핑입니다. 예: `{ \"<원래 소스 경로>\": \"<현재 소스 경로>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "디버거를 연결할 선택적 프로세스 ID입니다. `${command:pickProcess}`를 사용하여 연결할 로컬 실행 프로세스 목록을 가져옵니다. 일부 플랫폼에서는 프로세스에 연결하기 위해 관리자 권한이 필요합니다.",
"c_cpp.debuggers.symbolSearchPath.description": "기호(pdb) 파일 검색에 사용할 디렉터리의 세미콜론으로 구분된 목록입니다(예: \"c:\\dir1;c:\\dir2\").",
"c_cpp.debuggers.program.attach.markdownDescription": "프로그램 실행 파일의 전체 경로입니다. 디버거는 이 실행 파일 경로와 일치하는 실행 중인 프로세스를 찾아 연결합니다. 여러 프로세스가 일치하는 경우 선택 프롬프트가 나타납니다. 이 필드는 연결된 프로세스의 디버그 기호를 로드하는 데 필요합니다.",
"c_cpp.debuggers.symbolSearchPath.description": "기호(pdb 또는 .so) 파일 검색에 사용할 디렉터리의 세미콜론으로 구분된 목록입니다. 예: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "지정된 프로그램에 대한 코어 덤프 파일의 선택적 전체 경로입니다(예: \"c:\\temp\\app.dmp\"). 기본값은 null입니다.",
"c_cpp.debuggers.enableDebugHeap.description": "False이면 디버그 힙이 사용하지 않도록 설정된 상태로 프로세스가 시작됩니다. 이렇게 하면 환경 변수 '_NO_DEBUG_HEAP'이 '1'로 설정됩니다.",
"c_cpp.debuggers.symbolLoadInfo.description": "기호 로드를 명시적으로 제어합니다.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Jeśli wartość to true, wyłącza przekierowywanie konsoli debugowanego obiektu, które jest wymagane do obsługi zintegrowanego terminalu.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Opcjonalne mapowania plików źródłowych przekazane do silnika debugowania. Przykład: `{ \"<początkowa ścieżka źródłowa>\": \"<bieżąca ścieżka źródłowa>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Opcjonalny identyfikator procesu, do którego ma zostać dołączony debuger. Użyj polecenia `${command:pickProcess}`, aby uzyskać listę uruchomionych lokalnie procesów, do których można dołączyć. Pamiętaj, że niektóre platformy wymagają uprawnień administratora, aby dołączyć je do procesu.",
"c_cpp.debuggers.symbolSearchPath.description": "Rozdzielana średnikami lista katalogów, w których mają być wyszukiwanie pliki symboli (PDB). Przykład: „c:\\dir1;c:\\dir2”.",
"c_cpp.debuggers.program.attach.markdownDescription": "Pełna ścieżka do pliku wykonywalnego programu. Debuger wyszuka uruchomiony proces zgodny z tą ścieżką wykonywalną i dołączy do niego. Jeśli wiele procesów jest zgodnych, zostanie wyświetlony monit o zaznaczenie. To pole jest wymagane do załadowania symboli debugowania dla dołączonego procesu.",
"c_cpp.debuggers.symbolSearchPath.description": "Rozdzielana średnikami lista katalogów do wyszukiwania plików symboli (tj. pdb lub .so). Przykład: „c:\\dir1;c:\\dir2”.",
"c_cpp.debuggers.dumpPath.description": "Opcjonalna pełna ścieżka do pliku zrzutu dla określonego programu. Przykład: „c:\\temp\\app.dmp”. Wartość domyślna to null.",
"c_cpp.debuggers.enableDebugHeap.description": "W przypadku wartości false proces zostanie uruchomiony z wyłączoną stertą debugowania. Spowoduje to ustawienie zmiennej środowiskowej „_NO_DEBUG_HEAP” na wartość „1”.",
"c_cpp.debuggers.symbolLoadInfo.description": "Jawna kontrola ładowania symboli.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Se for true, desabilitará o redirecionamento do console do depurador requerido para o suporte do Terminal Integrado.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Mapeamentos opcionais de arquivo de origem passados para o mecanismo de depuração. Exemplo: `{ \"<caminho original do arquivo de origem>\": \"<caminho atual do arquivo de origem>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "ID do processo opcional ao qual anexar o depurador. Use `${command:pickProcess}` para obter uma lista de processos locais em execução aos quais anexar. Observe que algumas plataformas exigem privilégios de administrador para anexação a um processo.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista separada por ponto e vírgula de diretórios a serem usados para pesquisar arquivos de símbolo (ou seja, pdb). Exemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Caminho completo para o executável do programa. O depurador pesquisará um processo em execução que corresponda a esse caminho executável e anexará a ele. Se vários processos corresponderem, um prompt de seleção será mostrado. Esse campo é necessário para carregar símbolos de depuração para o processo anexado.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista separada por ponto e vírgula de diretórios a serem usadas para pesquisar arquivos de símbolos (ou seja, pdb ou .so). Exemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Caminho completo opcional para um arquivo de despejo para o programa especificado. Exemplo: \"c:\\temp\\app.dmp\". Usa nulo como padrão.",
"c_cpp.debuggers.enableDebugHeap.description": "Se for false, o processo será iniciado com o heap de depuração desabilitado. Isso define a variável de ambiente '_NO_DEBUG_HEAP' como '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Controle explícito do carregamento de símbolo.",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Предоставляет результаты, зависящие от контекста, с помощью отдельного процесса IntelliSense.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Предоставляет \"нечеткие\" результаты, не зависящие от контекста.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "Отключает компоненты службы языка C/C++.",
"c_cpp.configuration.autocomplete.markdownDescription": "Управляет поставщиком автозавершения. Если присвоено значение `disabled`, и вам требуется завершение по словам, также настройте `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (и аналогично для языков `c` и `cuda-cpp`).",
"c_cpp.configuration.autocomplete.markdownDescription": "Управляет поставщиком автозавершения. Если присвоено значение `disabled`, и вам требуется завершение по словам, также настройте `\"[cpp]\": {\"editor.wordBasedSuggestions\": <значение>}` (и аналогично для языков `c` и `cuda-cpp`).",
"c_cpp.configuration.autocomplete.default.description": "Использует активную подсистему IntelliSense.",
"c_cpp.configuration.autocomplete.disabled.description": "Использует завершение на основе слов, предоставляемое Visual Studio Code.",
"c_cpp.configuration.errorSquiggles.description": "Определяет, будут ли обнаруженные подсистемой IntelliSense предполагаемые ошибки компиляции возвращены в редактор. Также определяет, будут ли отображаться предупреждения на этапе анализа кода, если не удается найти включаемые данные. Этот параметр игнорируется подсистемой синтаксического анализа тегов.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Если задано значение true, отключается перенаправление консоли отлаживаемого объекта, необходимое для поддержки встроенного терминала.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Необязательные сопоставления исходных файлов, передаваемые подсистеме отладки. Пример: `{ \"<первоначальный путь к источнику>\": \"<текущий путь к источнику>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Необязательный идентификатор процесса, к которому требуется подключить отладчик. Используйте `${command:pickProcess}`, чтобы получить список локальных запущенных процессов для подключения. Обратите внимание, что для подключения к процессам на некоторых платформах требуются права администратора.",
"c_cpp.debuggers.symbolSearchPath.description": "Список каталогов, разделенных точкой с запятой, который следует использовать для поиска файлов символов (таких как PDB). Пример: \"c:\\каталог_1;c:\\каталог_2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Полный путь к исполняемому файлу program. Отладчик будет искать запущенный процесс, совпадающий с путем этого исполняемого файла, и подключаться к нему. Если процессов несколько, появится запрос выбора. Это поле обязательно с целью загрузки символов отладки для подключенного процесса.",
"c_cpp.debuggers.symbolSearchPath.description": "Список каталогов, разделенных точкой с запятой, который следует использовать для поиска файлов символов (таких как PDB или SO). Пример: \"c:\\каталог_1;c:\\каталог_2\".",
"c_cpp.debuggers.dumpPath.description": "Необязательный полный путь к основному файлу дампа для указанной программы. Пример: \"c:\\temp\\app.dmp\". Значение по умолчанию: null.",
"c_cpp.debuggers.enableDebugHeap.description": "Если задано значение false, процесс будет запущен с отключенной кучей отладки. При этом для переменной среды \"_NO_DEBUG_HEAP\" устанавливается значение \"1\".",
"c_cpp.debuggers.symbolLoadInfo.description": "Явный контроль загрузки символов.",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Ayrı bir IntelliSense işlemi aracılığıyla bağlama duyarlı sonuçlar sağlar.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Bağlama duyarlı olmayan \"belirsiz\" sonuçlar sağlar.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ dil hizmeti özelliklerini kapatır.",
"c_cpp.configuration.autocomplete.markdownDescription": "Otomatik tamamlama sağlayıcısını kontrol eder. `disabled` ise ve sözcük tabanlı tamamlama istiyorsanız, aynı zamanda `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (ve aynı şekilde `c` ve `cuda-cpp` dilleri için) ayarını da belirlemeniz gerekir.",
"c_cpp.configuration.autocomplete.markdownDescription": "Otomatik tamamlama sağlayıcısını kontrol eder. `disabled` ise ve sözcük tabanlı tamamlama istiyorsanız, aynı zamanda `\"[cpp]\": {\"editor.wordBasedSuggestions\": <değer>}` (ve aynı şekilde `c` ve `cuda-cpp` dilleri için) ayarını da belirlemeniz gerekir.",
"c_cpp.configuration.autocomplete.default.description": "Etkin IntelliSense altyapısını kullanır.",
"c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code tarafından sağlanan sözcük tabanlı tamamlamayı kullanır.",
"c_cpp.configuration.errorSquiggles.description": "IntelliSense altyapısı tarafından algılanan şüpheli derleme hatalarının düzenleyiciye geri rapor edilip edilmeyeceğini kontrol eder. Ayrıca, içermeler bulunamazsa kod analizi uyarılarının raporlanıp raporlanmayacağını da kontrol eder. Bu ayar, Etiket Ayrıştırıcı motoru tarafından yok sayılır.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Değer true ise, Tümleşik Terminal desteği için gerekli olan hata ayıklanan işlem konsol yeniden yönlendirmesini devre dışı bırakır.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Hata ayıklama altyapısına geçirilen isteğe bağlı kaynak dosya eşlemeleri. Örnek: `{ \"<orijinal kaynak yolu>\": \"<geçerli kaynak yolu>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Hata ayıklayıcının ekleneceği isteğe bağlı işlem kimliği. Eklenilecek yerel çalışan işlemlerin bir listesini almak için `${command:pickProcess}` kullanın. Bazı platformların bir işleme ekleme yapmak için yönetici ayrıcalıkları gerektirdiğini unutmayın.",
"c_cpp.debuggers.symbolSearchPath.description": "Sembol (yani pdb) dosyalarını aramak için kullanılacak, noktalı virgülle ayrılmış dizinlerin listesi. Örnek: \"c:\\dizin1;c:\\dizin2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Programın yürütülebilir dosyasının tam yolu. Hata ayıklayıcı, bu yürütülebilir dosya yoluyla eşleşen çalışan bir işlemi arayacak ve ona eklenecek. Birden çok çalışan işlem eşleşiyorsa bir seçim istemi gösterilecek. Ekli işlem için hata ayıklama sembollerini yüklerken bu alan gereklidir.",
"c_cpp.debuggers.symbolSearchPath.description": "Sembol (yani pdb veya .so) dosyalarını aramak için kullanılacak, noktalı virgülle ayrılmış dizinlerin listesi. Örnek: \"c:\\dizin1;c:\\dizin2\".",
"c_cpp.debuggers.dumpPath.description": "Belirtilen program için döküm dosyasının isteğe bağlı tam yolu. Örnek: \"c:\\temp\\app.dmp\". Varsayılan olarak null değerini alır.",
"c_cpp.debuggers.enableDebugHeap.description": "Değer false ise, işlem hata ayıklama yığını devre dışı bırakılarak başlatılır. Bu işlem '_NO_DEBUG_HEAP' ortam değişkenini '1' olarak ayarlar.",
"c_cpp.debuggers.symbolLoadInfo.description": "Sembol yüklemesinin açık denetimi.",
+95 -20
View File
@@ -2,7 +2,7 @@
"name": "cpptools",
"displayName": "C/C++",
"description": "C/C++ IntelliSense, debugging, and code browsing.",
"version": "1.30.3-main",
"version": "1.31.2-main",
"publisher": "ms-vscode",
"icon": "LanguageCCPP_color_128x.png",
"readme": "README.md",
@@ -63,6 +63,7 @@
"onFileSystem:cpptools-schema"
],
"main": "./dist/src/main",
"type": "commonjs",
"contributes": {
"languages": [
{
@@ -1992,6 +1993,7 @@
"abseil-time-*",
"abseil-time-comparison",
"abseil-time-subtraction",
"abseil-unchecked-statusor-access",
"abseil-upgrade-duration-conversions",
"altera-*",
"altera-id-dependent-backward-branch",
@@ -2032,14 +2034,22 @@
"bugprone-capturing-this-in-member-variable",
"bugprone-casting-through-void",
"bugprone-chained-comparison",
"bugprone-command-processor",
"bugprone-compare-pointer-to-member-virtual-function",
"bugprone-copy-constructor-*",
"bugprone-copy-constructor-init",
"bugprone-copy-constructor-mutates-argument",
"bugprone-crtp-constructor-accessibility",
"bugprone-dangling-handle",
"bugprone-default-operator-new-on-overaligned-type",
"bugprone-derived-method-shadowing-base-method",
"bugprone-dynamic-static-initializers",
"bugprone-easily-swappable-parameters",
"bugprone-empty-catch",
"bugprone-exception-*",
"bugprone-exception-escape",
"bugprone-exception-copy-constructor-throws",
"bugprone-float-loop-counter",
"bugprone-fold-init-type",
"bugprone-forward-declaration-namespace",
"bugprone-forwarding-reference-overload",
@@ -2052,6 +2062,7 @@
"bugprone-incorrect-roundings",
"bugprone-infinite-loop",
"bugprone-integer-division",
"bugprone-invalid-enum-default-initialization",
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
@@ -2074,6 +2085,8 @@
"bugprone-parent-virtual-call",
"bugprone-pointer-arithmetic-on-polymorphic-object",
"bugprone-posix-return",
"bugprone-random-generator-seed",
"bugprone-raw-memory-call-on-non-trivial-type",
"bugprone-redundant-branch-condition",
"bugprone-reserved-identifier",
"bugprone-return-const-ref-from-parameter",
@@ -2085,6 +2098,7 @@
"bugprone-sizeof-expression",
"bugprone-spuriously-wake-up-functions",
"bugprone-standalone-empty",
"bugprone-std-namespace-modification",
"bugprone-string-*",
"bugprone-string-constructor",
"bugprone-string-integer-assignment",
@@ -2105,8 +2119,11 @@
"bugprone-tagged-union-member-count",
"bugprone-terminating-continue",
"bugprone-throw-keyword-missing",
"bugprone-throwing-static-initialization",
"bugprone-too-small-loop-variable",
"bugprone-unchecked-*",
"bugprone-unchecked-optional-access",
"bugprone-unchecked-string-to-number-conversion",
"bugprone-undefined-memory-manipulation",
"bugprone-undelegated-constructor",
"bugprone-unhandled-*",
@@ -2326,6 +2343,7 @@
"cppcoreguidelines-prefer-member-initializer",
"cppcoreguidelines-pro-bounds-*",
"cppcoreguidelines-pro-bounds-array-to-pointer-decay",
"cppcoreguidelines-pro-bounds-avoid-unchecked-container-access",
"cppcoreguidelines-pro-bounds-constant-array-index",
"cppcoreguidelines-pro-bounds-pointer-arithmetic",
"cppcoreguidelines-pro-type-*",
@@ -2354,6 +2372,7 @@
"fuchsia-multiple-inheritance",
"fuchsia-overloaded-operator",
"fuchsia-statically-constructed-objects",
"fuchsia-temporary-objects",
"fuchsia-trailing-return",
"fuchsia-virtual-inheritance",
"google-*",
@@ -2378,6 +2397,7 @@
"google-readability-namespace-comments",
"google-readability-todo",
"google-runtime-*",
"google-runtime-float",
"google-runtime-int",
"google-runtime-operator",
"google-upgrade-googletest-case",
@@ -2429,12 +2449,16 @@
"llvm-prefer-static-over-anonymous-namespace",
"llvm-qualified-auto",
"llvm-twine-local",
"llvm-use-*",
"llvm-use-new-mlir-op-builder",
"llvm-use-ranges",
"llvmlibc-*",
"llvmlibc-callee-namespace",
"llvmlibc-implementation-in-namespace",
"llvmlibc-inline-function-decl",
"llvmlibc-restrict-system-libc-headers",
"misc-*",
"misc-anonymous-namespace-in-header",
"misc-confusable-identifiers",
"misc-const-correctness",
"misc-coroutine-hostile-raii",
@@ -2445,11 +2469,14 @@
"misc-misleading-bidirectional",
"misc-misleading-identifier",
"misc-misplaced-const",
"misc-multiple-inheritance",
"misc-new-delete-overloads",
"misc-no-recursion",
"misc-non-*",
"misc-non-copyable-objects",
"misc-non-private-member-variables-in-classes",
"misc-override-with-different-visibility",
"misc-predictable-rand",
"misc-redundant-expression",
"misc-static-assert",
"misc-throw-by-value-catch-by-reference",
@@ -2465,7 +2492,11 @@
"modernize-*",
"modernize-avoid-*",
"modernize-avoid-bind",
"modernize-avoid-c-*",
"modernize-avoid-c-arrays",
"modernize-avoid-c-style-cast",
"modernize-avoid-setjmp-longjmp",
"modernize-avoid-variadic-functions",
"modernize-concat-nested-namespaces",
"modernize-deprecated-*",
"modernize-deprecated-headers",
@@ -2586,7 +2617,9 @@
"readability-identifier-length",
"readability-identifier-naming",
"readability-implicit-bool-conversion",
"readability-inconsistent-*",
"readability-inconsistent-declaration-parameter-name",
"readability-inconsistent-ifelse-braces",
"readability-isolate-declaration",
"readability-magic-numbers",
"readability-make-member-function-const",
@@ -2605,11 +2638,13 @@
"readability-redundant-function-ptr-dereference",
"readability-redundant-inline-specifier",
"readability-redundant-member-init",
"readability-redundant-parentheses",
"readability-redundant-preprocessor",
"readability-redundant-smartptr-get",
"readability-redundant-string-*",
"readability-redundant-string-cstr",
"readability-redundant-string-init",
"readability-redundant-typename",
"readability-reference-to-constructed-temporary",
"readability-simplify-*",
"readability-simplify-boolean-expr",
@@ -2662,6 +2697,7 @@
"abseil-time-*",
"abseil-time-comparison",
"abseil-time-subtraction",
"abseil-unchecked-statusor-access",
"abseil-upgrade-duration-conversions",
"altera-*",
"altera-id-dependent-backward-branch",
@@ -2702,14 +2738,22 @@
"bugprone-capturing-this-in-member-variable",
"bugprone-casting-through-void",
"bugprone-chained-comparison",
"bugprone-command-processor",
"bugprone-compare-pointer-to-member-virtual-function",
"bugprone-copy-constructor-*",
"bugprone-copy-constructor-init",
"bugprone-copy-constructor-mutates-argument",
"bugprone-crtp-constructor-accessibility",
"bugprone-dangling-handle",
"bugprone-default-operator-new-on-overaligned-type",
"bugprone-derived-method-shadowing-base-method",
"bugprone-dynamic-static-initializers",
"bugprone-easily-swappable-parameters",
"bugprone-empty-catch",
"bugprone-exception-*",
"bugprone-exception-escape",
"bugprone-exception-copy-constructor-throws",
"bugprone-float-loop-counter",
"bugprone-fold-init-type",
"bugprone-forward-declaration-namespace",
"bugprone-forwarding-reference-overload",
@@ -2722,6 +2766,7 @@
"bugprone-incorrect-roundings",
"bugprone-infinite-loop",
"bugprone-integer-division",
"bugprone-invalid-enum-default-initialization",
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
@@ -2744,6 +2789,8 @@
"bugprone-parent-virtual-call",
"bugprone-pointer-arithmetic-on-polymorphic-object",
"bugprone-posix-return",
"bugprone-random-generator-seed",
"bugprone-raw-memory-call-on-non-trivial-type",
"bugprone-redundant-branch-condition",
"bugprone-reserved-identifier",
"bugprone-return-const-ref-from-parameter",
@@ -2755,6 +2802,7 @@
"bugprone-sizeof-expression",
"bugprone-spuriously-wake-up-functions",
"bugprone-standalone-empty",
"bugprone-std-namespace-modification",
"bugprone-string-*",
"bugprone-string-constructor",
"bugprone-string-integer-assignment",
@@ -2775,8 +2823,11 @@
"bugprone-tagged-union-member-count",
"bugprone-terminating-continue",
"bugprone-throw-keyword-missing",
"bugprone-throwing-static-initialization",
"bugprone-too-small-loop-variable",
"bugprone-unchecked-*",
"bugprone-unchecked-optional-access",
"bugprone-unchecked-string-to-number-conversion",
"bugprone-undefined-memory-manipulation",
"bugprone-undelegated-constructor",
"bugprone-unhandled-*",
@@ -2996,6 +3047,7 @@
"cppcoreguidelines-prefer-member-initializer",
"cppcoreguidelines-pro-bounds-*",
"cppcoreguidelines-pro-bounds-array-to-pointer-decay",
"cppcoreguidelines-pro-bounds-avoid-unchecked-container-access",
"cppcoreguidelines-pro-bounds-constant-array-index",
"cppcoreguidelines-pro-bounds-pointer-arithmetic",
"cppcoreguidelines-pro-type-*",
@@ -3024,6 +3076,7 @@
"fuchsia-multiple-inheritance",
"fuchsia-overloaded-operator",
"fuchsia-statically-constructed-objects",
"fuchsia-temporary-objects",
"fuchsia-trailing-return",
"fuchsia-virtual-inheritance",
"google-*",
@@ -3048,6 +3101,7 @@
"google-readability-namespace-comments",
"google-readability-todo",
"google-runtime-*",
"google-runtime-float",
"google-runtime-int",
"google-runtime-operator",
"google-upgrade-googletest-case",
@@ -3099,12 +3153,16 @@
"llvm-prefer-static-over-anonymous-namespace",
"llvm-qualified-auto",
"llvm-twine-local",
"llvm-use-*",
"llvm-use-new-mlir-op-builder",
"llvm-use-ranges",
"llvmlibc-*",
"llvmlibc-callee-namespace",
"llvmlibc-implementation-in-namespace",
"llvmlibc-inline-function-decl",
"llvmlibc-restrict-system-libc-headers",
"misc-*",
"misc-anonymous-namespace-in-header",
"misc-confusable-identifiers",
"misc-const-correctness",
"misc-coroutine-hostile-raii",
@@ -3115,11 +3173,14 @@
"misc-misleading-bidirectional",
"misc-misleading-identifier",
"misc-misplaced-const",
"misc-multiple-inheritance",
"misc-new-delete-overloads",
"misc-no-recursion",
"misc-non-*",
"misc-non-copyable-objects",
"misc-non-private-member-variables-in-classes",
"misc-override-with-different-visibility",
"misc-predictable-rand",
"misc-redundant-expression",
"misc-static-assert",
"misc-throw-by-value-catch-by-reference",
@@ -3135,7 +3196,11 @@
"modernize-*",
"modernize-avoid-*",
"modernize-avoid-bind",
"modernize-avoid-c-*",
"modernize-avoid-c-arrays",
"modernize-avoid-c-style-cast",
"modernize-avoid-setjmp-longjmp",
"modernize-avoid-variadic-functions",
"modernize-concat-nested-namespaces",
"modernize-deprecated-*",
"modernize-deprecated-headers",
@@ -3256,7 +3321,9 @@
"readability-identifier-length",
"readability-identifier-naming",
"readability-implicit-bool-conversion",
"readability-inconsistent-*",
"readability-inconsistent-declaration-parameter-name",
"readability-inconsistent-ifelse-braces",
"readability-isolate-declaration",
"readability-magic-numbers",
"readability-make-member-function-const",
@@ -3275,11 +3342,13 @@
"readability-redundant-function-ptr-dereference",
"readability-redundant-inline-specifier",
"readability-redundant-member-init",
"readability-redundant-parentheses",
"readability-redundant-preprocessor",
"readability-redundant-smartptr-get",
"readability-redundant-string-*",
"readability-redundant-string-cstr",
"readability-redundant-string-init",
"readability-redundant-typename",
"readability-reference-to-constructed-temporary",
"readability-simplify-*",
"readability-simplify-boolean-expr",
@@ -4774,11 +4843,6 @@
"program"
],
"properties": {
"program": {
"type": "string",
"description": "%c_cpp.debuggers.program.description%",
"default": "${workspaceRoot}/a.out"
},
"targetArchitecture": {
"type": "string",
"description": "%c_cpp.debuggers.targetArchitecture.description%",
@@ -4824,6 +4888,10 @@
"description": "%c_cpp.debuggers.useExtendedRemote.description%",
"default": false
},
"program": {
"type": "string",
"markdownDescription": "%c_cpp.debuggers.program.attach.markdownDescription%"
},
"processId": {
"markdownDescription": "%c_cpp.debuggers.processId.anyOf.markdownDescription%",
"anyOf": [
@@ -5789,15 +5857,17 @@
"attach": {
"type": "object",
"default": {},
"required": [
"processId"
],
"required": [],
"properties": {
"symbolSearchPath": {
"type": "string",
"description": "%c_cpp.debuggers.symbolSearchPath.description%",
"default": ""
},
"program": {
"type": "string",
"markdownDescription": "%c_cpp.debuggers.program.attach.markdownDescription%"
},
"processId": {
"markdownDescription": "%c_cpp.debuggers.processId.anyOf.markdownDescription%",
"anyOf": [
@@ -6718,7 +6788,7 @@
"code": "yarn install && (yarn verify compiled --quiet || yarn build) && yarn verify binaries && ts-node -T .scripts/code.ts",
"verify": "ts-node -T .scripts/verify.ts",
"prep": "yarn prep:dts && yarn copy-walkthrough-media && yarn generate-native-strings && yarn translations-generate",
"lint": "yarn install && eslint -c .eslintrc.js --report-unused-disable-directives src test ui .scripts",
"lint": "yarn install && eslint --report-unused-disable-directives src test ui .scripts",
"compile": "yarn install && (yarn verify prep --quiet || yarn prep) && yarn build",
"watch": "yarn install && (yarn verify prep --quiet || yarn prep) && tsc --build tsconfig.json --watch",
"rebuild": "yarn install && yarn clean && yarn prep && yarn build",
@@ -6748,15 +6818,16 @@
"@types/tmp": "^0.2.6",
"@types/which": "^2.0.2",
"@types/yauzl": "^2.10.3",
"@typescript-eslint/eslint-plugin": "^6.1.0",
"@typescript-eslint/parser": "^6.1.0",
"@typescript-eslint/eslint-plugin": "^8.54.0",
"@typescript-eslint/parser": "^8.54.0",
"@vscode/debugadapter": "^1.65.0",
"@vscode/debugprotocol": "^1.65.0",
"@vscode/dts": "^0.4.0",
"@vscode/test-electron": "^2.3.10",
"@vscode/vsce": "^3.7.1",
"async-child-process": "^1.1.1",
"await-notify": "^1.0.1",
"eslint": "^8.45.0",
"eslint": "^9.39.2",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^48.2.8",
@@ -6777,18 +6848,19 @@
"ts-node": "^10.9.2",
"typescript": "^5.4.5",
"vscode-nls-dev": "^4.0.4",
"webpack": "^5.94.0",
"webpack": "^5.105.1",
"webpack-cli": "^5.1.4",
"xml2js": "^0.6.2"
},
"dependencies": {
"@github/copilot-language-server": "^1.316.0",
"@vscode/extension-telemetry": "^0.9.6",
"@github/copilot-language-server": "1.434.0",
"@vscode/extension-telemetry": "^0.9.9",
"chokidar": "^3.6.0",
"comment-json": "^4.2.3",
"comment-json": "^4.5.1",
"escape-string-regexp": "^2.0.0",
"fast-glob": "^3.3.3",
"glob": "^7.2.3",
"minimatch": "^4.2.0",
"minimatch": "^4.2.6",
"mkdirp": "^3.0.1",
"node-fetch": "^2.7.0",
"node-loader": "^2.0.0",
@@ -6797,7 +6869,7 @@
"node-vswhere": "^1.0.2",
"plist": "^3.1.0",
"posix-getopt": "^1.2.1",
"shell-quote": "^1.8.1",
"shell-quote": "1.8.2",
"ssh-config": "^4.4.4",
"tmp": "^0.2.5",
"vscode-cpptools": "^7.1.1",
@@ -6808,6 +6880,9 @@
},
"resolutions": {
"postcss": "^8.4.31",
"gulp-typescript/**/glob-parent": "^5.1.2"
"gulp-typescript/**/glob-parent": "^5.1.2",
"serialize-javascript": "^7.0.4",
"@azure/msal-browser": "^4.29.1",
"flatted": "^3.4.1"
}
}
+7 -1
View File
@@ -931,7 +931,13 @@
"{Locked=\"`${command:pickProcess}`\"}"
]
},
"c_cpp.debuggers.symbolSearchPath.description": "Semicolon separated list of directories to use to search for symbol (that is, pdb) files. Example: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": {
"message": "Full path to the program executable. The debugger will search for a running process matching this executable path and attach to it. If multiple processes match, a selection prompt will be shown. This field is required to load debug symbols for the attached process.",
"comment": [
"{Locked=\"`program`\"}"
]
},
"c_cpp.debuggers.symbolSearchPath.description": "Semicolon separated list of directories to use to search for symbol (that is, pdb or .so) files. Example: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Optional full path to a dump file for the specified program. Example: \"c:\\temp\\app.dmp\". Defaults to null.",
"c_cpp.debuggers.enableDebugHeap.description": "If false, the process will be launched with debug heap disabled. This sets the environment variable '_NO_DEBUG_HEAP' to '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Explicit control of symbol loading.",
+1 -1
View File
@@ -52,7 +52,7 @@ The `launch.json` entries now specify a `preLaunchTask` that will build the exte
the `yarn watch` command, and will wait until the build is ready. The watch command will continue to watch from
that point.
If the extension is already built, the the watch will be very quick.
If the extension is already built, the watch will be very quick.
### From Inside VS Code
There are two tasks that can be run from inside VS Code to build the extension.
+59 -15
View File
@@ -4,7 +4,6 @@
* ------------------------------------------------------------------------------------------ */
import * as jsonc from 'comment-json';
import * as fs from 'fs';
import * as glob from 'glob';
import * as os from 'os';
import * as path from 'path';
@@ -22,6 +21,7 @@ import * as logger from '../logger';
import { PlatformInformation } from '../platform';
import { rsync, scp, ssh } from '../SSH/commands';
import * as Telemetry from '../telemetry';
import { AttachItem, showQuickPick } from './attachQuickPick';
import { AttachItemsProvider, AttachPicker, RemoteAttachPicker } from './attachToProcess';
import { ConfigMenu, ConfigMode, ConfigSource, CppDebugConfiguration, DebuggerEvent, DebuggerType, DebugType, IConfiguration, IConfigurationSnippet, isDebugLaunchStr, MIConfigurations, PipeTransportConfigurations, TaskStatus, WindowsConfigurations, WSLConfigurations } from './configurations';
import { NativeAttachItemsProviderFactory } from './nativeAttach';
@@ -179,7 +179,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
await cppBuildTaskProvider.runBuildTask(config.preLaunchTask);
config.preLaunchTask = undefined;
Telemetry.logDebuggerEvent(DebuggerEvent.debugPanel, { "debugType": DebugType.debug, "configSource": config.configSource || ConfigSource.unknown, "configMode": ConfigMode.launchConfig, "cancelled": "false", "succeeded": "true" });
} catch (err) {
} catch {
Telemetry.logDebuggerEvent(DebuggerEvent.debugPanel, { "debugType": DebugType.debug, "configSource": config.configSource || ConfigSource.unknown, "configMode": ConfigMode.launchConfig, "cancelled": "false", "succeeded": "false" });
}
return config;
@@ -245,7 +245,6 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
}
// Handle legacy 'externalConsole' bool and convert to console: "externalTerminal"
// eslint-disable-next-line no-prototype-builtins
if (config.hasOwnProperty("externalConsole")) {
void logger.getOutputChannelLogger().showWarningMessage(localize("debugger.deprecated.config", "The key '{0}' is deprecated. Please use '{1}' instead.", "externalConsole", "console"));
if (config.externalConsole && !config.console) {
@@ -303,7 +302,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
// Validate LLDB-MI
if (os.platform() === 'darwin' && // Check for macOS
fs.existsSync(lldb_mi_10_x_path) && // lldb-mi 10.x exists
util.checkFileExistsSync(lldb_mi_10_x_path) && // lldb-mi 10.x exists
(!macOSMIMode || macOSMIMode === 'lldb') &&
!macOSMIDebuggerPath // User did not provide custom lldb-mi
) {
@@ -354,13 +353,22 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
// Pick process if process id is empty
if (config.request === "attach" && !config.processId) {
let processId: string | undefined;
if (config.pipeTransport || config.useExtendedRemote) {
const remoteAttachPicker: RemoteAttachPicker = new RemoteAttachPicker();
processId = await remoteAttachPicker.ShowAttachEntries(config);
} else {
const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
const attacher: AttachPicker = new AttachPicker(attachItemsProvider);
processId = await attacher.ShowAttachEntries(token);
// If program is specified and not remote attach, try to find the matching process by name
if (config.program && !config.pipeTransport && !config.useExtendedRemote) {
processId = await this.findProcessByProgramName(config.program, token);
}
// Fall back to process picker if program wasn't specified or didn't match
if (!processId) {
if (config.pipeTransport || config.useExtendedRemote) {
const remoteAttachPicker: RemoteAttachPicker = new RemoteAttachPicker();
processId = await remoteAttachPicker.ShowAttachEntries(config);
} else {
const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
const attacher: AttachPicker = new AttachPicker(attachItemsProvider);
processId = await attacher.ShowAttachEntries(token);
}
}
if (processId) {
@@ -621,7 +629,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
if (response === applyButton || response === updateButton) {
try {
await vscode.commands.executeCommand('C_Cpp.SetVsDeveloperEnvironment', 'buildAndDebug');
} catch (e: any) {
} catch {
// Ignore the error, the user will be prompted to apply the environment manually.
}
}
@@ -648,7 +656,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
];
for (const searchPath of searchPaths) {
if (fs.existsSync(path.join(searchPath, LLDBFramework))) {
if (util.checkDirectoryExistsSync(path.join(searchPath, LLDBFramework))) {
// Found a framework that 'lldb-mi' can use.
return searchPath;
}
@@ -710,7 +718,6 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
const newSourceFileMapSource: string = util.resolveVariables(sourceFileMapSource, undefined);
if (sourceFileMapSource !== newSourceFileMapSource) {
message = "\t" + localize("replacing.sourcepath", "Replacing {0} '{1}' with '{2}'.", "sourcePath", sourceFileMapSource, newSourceFileMapSource);
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete config.sourceFileMap[sourceFileMapSource];
source = newSourceFileMapSource;
}
@@ -790,7 +797,6 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
}
private findDefaultConfig(configs: CppDebugConfiguration[]): CppDebugConfiguration[] {
// eslint-disable-next-line no-prototype-builtins
return configs.filter((config: CppDebugConfiguration) => config.hasOwnProperty("isDefault") && config.isDefault);
}
@@ -1157,6 +1163,44 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
}
return true;
}
private async findProcessByProgramName(
programPath: string,
token?: vscode.CancellationToken
): Promise<string | undefined> {
// Validate that the program path is valid
if (!await util.checkExecutableWithoutExtensionExists(programPath)) {
return undefined;
}
const programBaseName: string = path.basename(programPath);
// Get the process list using the same logic as interactive attach
const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
const processes: AttachItem[] = await attachItemsProvider.getAttachItems(token);
// Prepare target name for matching (case-insensitive on Windows only)
let targetName: string = programBaseName;
if (isWindows) {
targetName = targetName.toLowerCase();
targetName = targetName.endsWith(".exe") ? targetName : (targetName + ".exe");
}
// Find processes matching the program name
const matchingProcesses: AttachItem[] = processes.filter(p => {
const processName: string = isWindows ? p.label.toLowerCase() : p.label;
return processName === targetName;
});
if (matchingProcesses.length === 0) {
return undefined;
} else if (matchingProcesses.length === 1) {
return matchingProcesses[0].id;
} else {
// Multiple matches - let the user choose
return showQuickPick(() => Promise.resolve(matchingProcesses));
}
}
}
export interface IConfigurationAssetProvider {
+2 -2
View File
@@ -184,7 +184,7 @@ function spawnChildProcess(command: string, token?: vscode.CancellationToken): P
try {
process.kill();
} catch (e) {
} catch {
// Failed to kill process.
}
reject(new Error(localize("timeout.processList.spawn", '"{0}" timed out after {1} seconds.', command, seconds)));
@@ -198,7 +198,7 @@ function spawnChildProcess(command: string, token?: vscode.CancellationToken): P
try {
process.kill();
} catch (e) {
} catch {
// Failed to kill process.
}
reject(new Error(localize("cancel.processList.spawn", '"{0}" canceled.', command)));
+32 -34
View File
@@ -816,25 +816,25 @@ export interface Client {
didChangeActiveEditor(editor?: vscode.TextEditor, selection?: Range): Promise<void>;
restartIntelliSenseForFile(document: vscode.TextDocument): Promise<void>;
activate(): void;
selectionChanged(selection: Range): void;
resetDatabase(): void;
selectionChanged(selection: Range): Promise<void>;
resetDatabase(): Promise<void>;
deactivate(): void;
promptSelectIntelliSenseConfiguration(sender?: any): Promise<void>;
rescanCompilers(sender?: any): Promise<void>;
pauseParsing(): void;
resumeParsing(): void;
PauseCodeAnalysis(): void;
ResumeCodeAnalysis(): void;
CancelCodeAnalysis(): void;
pauseParsing(): Promise<void>;
resumeParsing(): Promise<void>;
PauseCodeAnalysis(): Promise<void>;
ResumeCodeAnalysis(): Promise<void>;
CancelCodeAnalysis(): Promise<void>;
handleConfigurationSelectCommand(config?: string): Promise<void>;
handleConfigurationProviderSelectCommand(): Promise<void>;
handleShowActiveCodeAnalysisCommands(): Promise<void>;
handleShowIdleCodeAnalysisCommands(): Promise<void>;
handleReferencesIcon(): void;
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): void;
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): void;
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): void;
handleAddToIncludePathCommand(path: string): void;
handleReferencesIcon(): Promise<void>;
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): Promise<void>;
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): Promise<void>;
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): Promise<void>;
handleAddToIncludePathCommand(path: string): Promise<void>;
handleGoToDirectiveInGroup(next: boolean): Promise<void>;
handleGenerateDoxygenComment(args: DoxygenCodeActionCommandArguments | vscode.Uri | undefined): Promise<void>;
handleRunCodeAnalysisOnActiveFile(): Promise<void>;
@@ -849,7 +849,7 @@ export interface Client {
onInterval(): void;
dispose(): void;
addFileAssociations(fileAssociations: string, languageId: string): void;
sendDidChangeSettings(): void;
sendDidChangeSettings(): Promise<void>;
isInitialized(): boolean;
getShowConfigureIntelliSenseButton(): boolean;
setShowConfigureIntelliSenseButton(show: boolean): void;
@@ -1285,7 +1285,7 @@ export class DefaultClient implements Client {
}
this.rootFolder = workspaceFolder;
this.rootRealPath = this.RootPath ? fs.existsSync(this.RootPath) ? fs.realpathSync(this.RootPath) : this.RootPath : "";
this.rootRealPath = this.RootPath ? util.checkDirectoryExistsSync(this.RootPath) ? fs.realpathSync(this.RootPath) : this.RootPath : "";
this.workspaceStoragePath = util.extensionContext?.storageUri?.fsPath ?? "";
if (this.workspaceStoragePath.length > 0) {
@@ -1612,7 +1612,7 @@ export class DefaultClient implements Client {
this.currentCaseSensitiveFileSupport = new PersistentWorkspaceState<boolean>("CPP.currentCaseSensitiveFileSupport", false);
let resetDatabase: boolean = false;
const serverModule: string = getLanguageServerFileName();
const exeExists: boolean = fs.existsSync(serverModule);
const exeExists: boolean = util.checkFileExistsSync(serverModule);
if (!exeExists) {
telemetry.logLanguageServerEvent("missingLanguageServerBinary");
throw String('Missing binary at ' + serverModule);
@@ -1780,7 +1780,7 @@ export class DefaultClient implements Client {
}
public async sendDidChangeSettings(): Promise<void> {
// Send settings json to native side
// Send settings json to native side.
await this.ready;
await this.languageClient.sendNotification(DidChangeSettingsNotification, this.getAllSettings());
}
@@ -1789,7 +1789,7 @@ export class DefaultClient implements Client {
const defaultClient: Client = clients.getDefaultClient();
if (this === defaultClient) {
// Only send the updated settings information once, as it includes values for all folders.
void this.sendDidChangeSettings();
void this.sendDidChangeSettings().catch(logAndReturn.undefined);
}
const changedSettings: Record<string, string> = this.settingsTracker.getChangedSettings();
@@ -2226,13 +2226,13 @@ export class DefaultClient implements Client {
if (!await provider.canProvideConfiguration(docUri, tokenSource.token)) {
return [];
}
} catch (err) {
} catch {
console.warn("Caught exception from canProvideConfiguration");
}
let configs: util.Mutable<SourceFileConfigurationItem>[] = [];
try {
configs = await provider.provideConfigurations([docUri], tokenSource.token);
} catch (err) {
} catch {
console.warn("Caught exception from provideConfigurations");
}
@@ -3418,7 +3418,6 @@ export class DefaultClient implements Client {
this.browseConfigurationLogging = "";
// This while (true) is here just so we can break out early if the config is set on error
// eslint-disable-next-line no-constant-condition
while (true) {
// config is marked as 'any' because it is untrusted data coming from a 3rd-party. We need to sanitize it before sending it to the language server.
if (timeoutOccured || !config || config instanceof Array) {
@@ -4249,7 +4248,6 @@ export class DefaultClient implements Client {
if (this.ReferencesCommandMode === refs.ReferencesCommandMode.Find) {
void this.languageClient.sendNotification(PreviewReferencesNotification);
}
}
private serverCanceledReferences(): void {
@@ -4372,25 +4370,25 @@ class NullClient implements Client {
didChangeActiveEditor(editor?: vscode.TextEditor): Promise<void> { return Promise.resolve(); }
restartIntelliSenseForFile(document: vscode.TextDocument): Promise<void> { return Promise.resolve(); }
activate(): void { }
selectionChanged(selection: Range): void { }
resetDatabase(): void { }
selectionChanged(selection: Range): Promise<void> { return Promise.resolve(); }
resetDatabase(): Promise<void> { return Promise.resolve(); }
promptSelectIntelliSenseConfiguration(sender?: any): Promise<void> { return Promise.resolve(); }
rescanCompilers(sender?: any): Promise<void> { return Promise.resolve(); }
deactivate(): void { }
pauseParsing(): void { }
resumeParsing(): void { }
PauseCodeAnalysis(): void { }
ResumeCodeAnalysis(): void { }
CancelCodeAnalysis(): void { }
pauseParsing(): Promise<void> { return Promise.resolve(); }
resumeParsing(): Promise<void> { return Promise.resolve(); }
PauseCodeAnalysis(): Promise<void> { return Promise.resolve(); }
ResumeCodeAnalysis(): Promise<void> { return Promise.resolve(); }
CancelCodeAnalysis(): Promise<void> { return Promise.resolve(); }
handleConfigurationSelectCommand(): Promise<void> { return Promise.resolve(); }
handleConfigurationProviderSelectCommand(): Promise<void> { return Promise.resolve(); }
handleShowActiveCodeAnalysisCommands(): Promise<void> { return Promise.resolve(); }
handleShowIdleCodeAnalysisCommands(): Promise<void> { return Promise.resolve(); }
handleReferencesIcon(): void { }
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): void { }
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): void { }
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): void { }
handleAddToIncludePathCommand(path: string): void { }
handleReferencesIcon(): Promise<void> { return Promise.resolve(); }
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): Promise<void> { return Promise.resolve(); }
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): Promise<void> { return Promise.resolve(); }
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): Promise<void> { return Promise.resolve(); }
handleAddToIncludePathCommand(path: string): Promise<void> { return Promise.resolve(); }
handleGoToDirectiveInGroup(next: boolean): Promise<void> { return Promise.resolve(); }
handleGenerateDoxygenComment(args: DoxygenCodeActionCommandArguments | vscode.Uri | undefined): Promise<void> { return Promise.resolve(); }
handleRunCodeAnalysisOnActiveFile(): Promise<void> { return Promise.resolve(); }
@@ -4408,7 +4406,7 @@ class NullClient implements Client {
this.stringEvent.dispose();
}
addFileAssociations(fileAssociations: string, languageId: string): void { }
sendDidChangeSettings(): void { }
sendDidChangeSettings(): Promise<void> { return Promise.resolve(); }
isInitialized(): boolean { return true; }
getShowConfigureIntelliSenseButton(): boolean { return false; }
setShowConfigureIntelliSenseButton(show: boolean): void { }
@@ -177,7 +177,7 @@ export class ClientCollection {
// read for new workspace folders. Send them up before creating new
// clients, so the native process is already aware of all workspace
// folders before receiving new CppProperties for new folders.
this.defaultClient.sendDidChangeSettings();
void this.defaultClient.sendDidChangeSettings();
e.added.forEach(folder => {
const path: string = util.asFolder(folder.uri);
const client: cpptools.Client | undefined = this.languageClients.get(path);
+1 -1
View File
@@ -379,7 +379,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno
docPage = `checks${checksGroup}/${checksPage}.html`;
}
// TODO: This should be checking the clang-tidy version used to better support usage of older versions.
const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/21.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`);
const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/22.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`);
diagnostic.code = { value: identifier.code, target: primaryDocUri };
if (new CppSettings().clangTidyCodeActionShowDocumentation) {
@@ -254,7 +254,7 @@ export class CppProperties {
// to the language server until the default include paths and frameworks have been sent.
const configFilePath: string = path.join(this.configFolder, "c_cpp_properties.json");
if (this.rootUri !== null && fs.existsSync(configFilePath)) {
if (this.rootUri !== null && util.checkFileExistsSync(configFilePath)) {
this.propertiesFile = vscode.Uri.file(configFilePath);
} else {
this.propertiesFile = null;
@@ -481,9 +481,9 @@ export class CppProperties {
list.forEach((entry) => {
if (entry !== "vcpkg") {
const pathToCheck: string = path.join(vcpkgRoot, entry);
if (fs.existsSync(pathToCheck)) {
if (util.checkDirectoryExistsSync(pathToCheck)) {
let p: string = path.join(pathToCheck, "include");
if (fs.existsSync(p)) {
if (util.checkDirectoryExistsSync(p)) {
p = p.replace(/\\/g, "/");
p = p.replace(vcpkgRoot, "${vcpkgRoot}");
this.vcpkgIncludes.push(p);
@@ -493,7 +493,7 @@ export class CppProperties {
});
}
}
} catch (error) {
} catch {
/*ignore*/
} finally {
this.vcpkgPathReady = true;
@@ -1171,7 +1171,7 @@ export class CppProperties {
this.configurationJson.configurations.forEach(c => {
c.compileCommands?.forEach((path: string) => {
const compileCommandsFile: string = this.resolvePath(path);
if (fs.existsSync(compileCommandsFile)) {
if (util.checkFileExistsSync(compileCommandsFile)) {
filePaths.add(compileCommandsFile);
}
});
@@ -1196,7 +1196,7 @@ export class CppProperties {
}, 1000);
}));
});
} catch (e) {
} catch {
// The file watcher limit is hit.
// TODO: Check if the compile commands file has a higher timestamp during the interval timer.
}
@@ -1571,7 +1571,7 @@ export class CppProperties {
if (dirty) {
try {
this.writeToJson();
} catch (err) {
} catch {
// Ignore write errors, the file may be under source control. Updated settings will only be modified in memory.
void vscode.window.showWarningMessage(localize('update.properties.failed', 'Attempt to update "{0}" failed (do you have write access?)', this.propertiesFile.fsPath));
success = false;
@@ -453,26 +453,6 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
resolver: this
};
type RegistrationResult = { message: string } | boolean;
const clientPromise: Promise<RegistrationResult> = getCopilotClientApi().then(async (api) => {
if (!api) {
throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot client is missing or inactive.");
}
const disposable = await this.installContextProvider(api, contextProvider);
if (disposable) {
this.contextProviderDisposables = this.contextProviderDisposables ?? [];
this.contextProviderDisposables.push(disposable);
return true;
} else {
throw new CopilotContextProviderException("getContextProviderAPI() is not available in Copilot client.");
}
}).catch((e) => {
console.debug("Failed to register the Copilot Context Provider with Copilot client.");
let message = "Failed to register the Copilot Context Provider with Copilot client";
if (e instanceof CopilotContextProviderException) {
message += `: ${e.message} `;
}
return { message };
});
const chatPromise: Promise<RegistrationResult> = getCopilotChatApi().then(async (api) => {
if (!api) {
throw new CopilotContextProviderException("getCopilotChatApi() returned null, Copilot Chat is missing or inactive.");
@@ -493,24 +473,50 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
}
return { message };
});
// The client usually doesn't block. So test it first.
clientPromise.then((clientResult) => {
chatPromise.then((chatResult) => {
const properties: Record<string, string> = {};
if (isBoolean(clientResult) && clientResult) {
if (isBoolean(chatResult) && chatResult) {
properties["cppCodeSnippetsProviderRegistered"] = "true";
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
return;
}
return chatPromise.then((chatResult) => {
const properties: Record<string, string> = {};
if (isBoolean(chatResult) && chatResult) {
// Don't even start checking the github.copilot extension until the chat API is confirmed to be unavailable,
// as users can only follow this code path if they temporarily opted out of Copilot extension unification.
const clientPromise: Promise<RegistrationResult> = getCopilotClientApi().then(async (api) => {
if (!api) {
if (vscode.extensions.getExtension('github.copilot') === undefined) {
return { message: "getCopilotApi() returned null, Copilot extension is not installed." };
}
throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot client is missing or inactive.");
}
const disposable = await this.installContextProvider(api, contextProvider);
if (disposable) {
this.contextProviderDisposables = this.contextProviderDisposables ?? [];
this.contextProviderDisposables.push(disposable);
return true;
} else {
throw new CopilotContextProviderException("getContextProviderAPI() is not available in Copilot client.");
}
}).catch((e) => {
console.debug("Failed to register the Copilot Context Provider with Copilot client.");
let message = "Failed to register the Copilot Context Provider with Copilot client";
if (e instanceof CopilotContextProviderException) {
message += `: ${e.message} `;
}
return { message };
});
return clientPromise.then((clientResult) => {
if (isBoolean(clientResult) && clientResult) {
properties["cppCodeSnippetsProviderRegistered"] = "true";
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
return;
} else if (!isBoolean(clientResult) && isString(clientResult.message)) {
properties["error"] = clientResult.message;
} else if (!isBoolean(chatResult) && isString(chatResult.message)) {
properties["error"] = chatResult.message;
} else if (!isBoolean(clientResult) && isString(clientResult.message)) {
properties["error"] = clientResult.message;
} else {
properties["error"] = "Failed to register the Copilot Context Provider for unknown reason.";
}
@@ -10,6 +10,7 @@ import { CustomExecution, Disposable, Event, EventEmitter, ProcessExecution, Pse
import * as nls from 'vscode-nls';
import * as util from '../common';
import * as telemetry from '../telemetry';
import { logAndReturn } from "../Utility/Async/returns";
import { Client } from './client';
import * as configs from './configurations';
import { getEffectiveEnvironment, isEnvironmentOverrideApplied } from "./devcmd";
@@ -93,7 +94,7 @@ export class CppBuildTaskProvider implements TaskProvider {
let activeClient: Client;
try {
activeClient = ext.getActiveClient();
} catch (errJS) {
} catch {
return emptyTasks; // Language service features may be disabled.
}
@@ -370,7 +371,7 @@ class CustomBuildTaskTerminal implements Pseudoterminal {
constructor(private command: string | util.IQuotedString, private args: (string | util.IQuotedString)[], private options: cp.ExecOptions | undefined, private buildOptions: BuildOptions) {
}
async open(_initialDimensions: TerminalDimensions | undefined): Promise<void> {
async openAsync(_initialDimensions: TerminalDimensions | undefined): Promise<void> {
if (this.buildOptions.taskUsesActiveFile && !util.isCppOrCFile(window.activeTextEditor?.document.uri)) {
this.writeEmitter.fire(localize("cannot.build.non.cpp", 'Cannot build and debug because the active file is not a C or C++ source file.') + this.endOfLine);
this.closeEmitter.fire(-1);
@@ -387,6 +388,10 @@ class CustomBuildTaskTerminal implements Pseudoterminal {
await this.doBuild();
}
open(_initialDimensions: TerminalDimensions | undefined): void {
void this.openAsync(_initialDimensions).catch(logAndReturn.undefined);
}
close(): void {
// The terminal has been closed. Shutdown the build.
}
+2 -1
View File
@@ -7,6 +7,7 @@
import * as fs from 'fs';
import { Minimatch } from 'minimatch';
import * as path from 'path';
import * as util from '../common';
import { isWindows } from '../constants';
export const cachedEditorConfigSettings: Map<string, any> = new Map<string, any>();
@@ -144,7 +145,7 @@ function getEditorConfig(filePath: string): any {
// Traverse from the file's directory to the root directory.
for (; ;) {
const editorConfigPath: string = path.join(currentDir, '.editorconfig');
if (fs.existsSync(editorConfigPath)) {
if (util.checkFileExistsSync(editorConfigPath)) {
const configFileContent: string = fs.readFileSync(editorConfigPath, 'utf-8');
const configData = parseEditorConfigContent(configFileContent);
+14 -14
View File
@@ -195,10 +195,10 @@ export async function activate(): Promise<void> {
await registerCommands(true);
vscode.tasks.onDidStartTask(() => getActiveClient().PauseCodeAnalysis());
vscode.tasks.onDidStartTask(() => void getActiveClient().PauseCodeAnalysis().catch(logAndReturn.undefined));
vscode.tasks.onDidEndTask(event => {
getActiveClient().ResumeCodeAnalysis();
vscode.tasks.onDidEndTask(async event => {
await getActiveClient().ResumeCodeAnalysis();
if (event.execution.task.definition.type === CppBuildTaskProvider.CppBuildScriptType
|| event.execution.task.name.startsWith(configPrefix)) {
if (event.execution.task.scope !== vscode.TaskScope.Global && event.execution.task.scope !== vscode.TaskScope.Workspace) {
@@ -353,7 +353,7 @@ function onDidChangeTextEditorSelection(event: vscode.TextEditorSelectionChangeE
if (!util.isCpp(event.textEditor.document)) {
return;
}
clients.ActiveClient.selectionChanged(makeLspRange(event.selections[0]));
void clients.ActiveClient.selectionChanged(makeLspRange(event.selections[0])).catch(logAndReturn.undefined);
}
async function onDidChangeVisibleTextEditors(editors: readonly vscode.TextEditor[]): Promise<void> {
@@ -507,7 +507,7 @@ async function selectClient(): Promise<Client> {
async function onResetDatabase(): Promise<void> {
await clients.ActiveClient.ready;
clients.ActiveClient.resetDatabase();
return clients.ActiveClient.resetDatabase();
}
async function onRescanCompilers(sender?: any): Promise<void> {
@@ -750,7 +750,7 @@ function onExpandSelection(r: Range) {
}
}
function onAddToIncludePath(path: string): void {
async function onAddToIncludePath(path: string): Promise<void> {
if (isFolderOpen()) {
// This only applies to the active client. It would not make sense to add the include path
// suggestion to a different workspace.
@@ -777,23 +777,23 @@ function onToggleDimInactiveRegions(): void {
}
function onPauseParsing(): void {
clients.ActiveClient.pauseParsing();
void clients.ActiveClient.pauseParsing().catch(logAndReturn.undefined);
}
function onResumeParsing(): void {
clients.ActiveClient.resumeParsing();
void clients.ActiveClient.resumeParsing().catch(logAndReturn.undefined);
}
function onPauseCodeAnalysis(): void {
clients.ActiveClient.PauseCodeAnalysis();
void clients.ActiveClient.PauseCodeAnalysis().catch(logAndReturn.undefined);
}
function onResumeCodeAnalysis(): void {
clients.ActiveClient.ResumeCodeAnalysis();
void clients.ActiveClient.ResumeCodeAnalysis().catch(logAndReturn.undefined);
}
function onCancelCodeAnalysis(): void {
clients.ActiveClient.CancelCodeAnalysis();
void clients.ActiveClient.CancelCodeAnalysis().catch(logAndReturn.undefined);
}
function onShowActiveCodeAnalysisCommands(): Promise<void> {
@@ -805,7 +805,7 @@ function onShowIdleCodeAnalysisCommands(): Promise<void> {
}
function onShowReferencesProgress(): void {
clients.ActiveClient.handleReferencesIcon();
void clients.ActiveClient.handleReferencesIcon().catch(logAndReturn.undefined);
}
function onToggleRefGroupView(): void {
@@ -964,7 +964,7 @@ function reportMacCrashes(): void {
});
}, 5000);
});
} catch (e) {
} catch {
// The file watcher limit is hit (may not be possible on Mac, but just in case).
}
});
@@ -1023,7 +1023,7 @@ export function watchForCrashes(crashDirectory: string): void {
});
}, 5000);
});
} catch (e) {
} catch {
// The file watcher limit is hit (may not be possible on Mac, but just in case).
}
});
@@ -36,7 +36,7 @@ export function createProtocolFilter(): Middleware {
const baseFileName: string = path.basename(document.fileName);
const mappingString: string = baseFileName + "@" + document.fileName;
client.addFileAssociations(mappingString, "cpp");
client.sendDidChangeSettings();
void client.sendDidChangeSettings();
// The following will cause the file to be closed and reopened.
void vscode.languages.setTextDocumentLanguage(document, "cpp");
return;
+7 -7
View File
@@ -5,7 +5,6 @@
'use strict';
import { execSync } from 'child_process';
import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import * as semver from 'semver';
@@ -13,6 +12,7 @@ import { quote } from 'shell-quote';
import * as vscode from 'vscode';
import * as nls from 'vscode-nls';
import * as which from 'which';
import * as util from '../common';
import { getCachedClangFormatPath, getCachedClangTidyPath, getExtensionFilePath, getRawSetting, isArray, isArrayOfString, isBoolean, isNumber, isObject, isString, isValidMapping, setCachedClangFormatPath, setCachedClangTidyPath } from '../common';
import { isWindows } from '../constants';
import * as telemetry from '../telemetry';
@@ -301,7 +301,7 @@ export class CppSettings extends Settings {
if (!semver.valid(bundledVersion)) {
return path;
}
} catch (e) {
} catch {
// Unable to invoke our own clang-*. Use the system installed clang-*.
return path;
}
@@ -314,7 +314,7 @@ export class CppSettings extends Settings {
path = "";
setCachedClangPath(path);
}
} catch (e) {
} catch {
path = "";
setCachedClangPath(path);
}
@@ -898,7 +898,7 @@ export class CppSettings extends Settings {
try {
await vscode.workspace.applyEdit(edits);
document = await vscode.workspace.openTextDocument(uri);
} catch (e) {
} catch {
document = await vscode.workspace.openTextDocument();
}
} else {
@@ -925,7 +925,7 @@ export class CppSettings extends Settings {
let foundEditorConfigWithVcFormatSettings: boolean = false;
const findConfigFile: (parentPath: string) => boolean = (parentPath: string) => {
const editorConfigPath: string = path.join(parentPath, ".editorconfig");
if (fs.existsSync(editorConfigPath)) {
if (util.checkFileExistsSync(editorConfigPath)) {
const editorConfigSettings: any = getEditorConfigSettings(document.uri.fsPath);
const keys: string[] = Object.keys(editorConfigSettings);
for (let i: number = 0; i < keys.length; ++i) {
@@ -954,11 +954,11 @@ export class CppSettings extends Settings {
}
}
const clangFormatPath1: string = path.join(parentPath, ".clang-format");
if (fs.existsSync(clangFormatPath1)) {
if (util.checkFileExistsSync(clangFormatPath1)) {
return true;
}
const clangFormatPath2: string = path.join(parentPath, "_clang-format");
return fs.existsSync(clangFormatPath2);
return util.checkFileExistsSync(clangFormatPath2);
};
// Scan parent paths to see which we find first, ".clang-format" or ".editorconfig"
const fsPath: string = document.uri.fsPath;
+1 -1
View File
@@ -182,7 +182,7 @@ export function getExitCode(output: string, marker: string): number | undefined
try {
const num: number = parseInt(match[1]);
return Number.isNaN(num) ? undefined : num;
} catch (err) {
} catch {
return undefined;
}
}
-1
View File
@@ -175,7 +175,6 @@ function parseFlags(input: string[], entries: { [key: string]: string }): number
// prefix with `:` to tell the library not to log anything itself
const parser: BasicParser = new BasicParser(`:${getOptDirective}`, input, 0);
// eslint-disable-next-line no-constant-condition
while (true) {
const next: IParsedOption | undefined = parser.getopt();
if (!next) {
+3 -3
View File
@@ -61,7 +61,7 @@ function extractHostNames(parsedConfig: Configuration): { [host: string]: string
let resolvedConfig: ResolvedConfiguration | undefined;
try {
resolvedConfig = parsedConfig.compute(host);
} catch (e) {
} catch {
getSshChannel().appendLine(localize("failed.to.find.user.info.for.SSH",
"Failed to find user info for SSH. This could be caused by VS Code being installed using 'snap'. Please reinstall VS Code using the 'deb' package if you are planning to use SSH features."));
}
@@ -160,7 +160,7 @@ async function getIncludedConfigFile(
let includedContents: string;
try {
includedContents = (await fs.readFile(includePath)).toString();
} catch (e) {
} catch {
getSshChannel().appendLine(localize("failed.to.read.file", "Failed to read file {0}.", includePath));
return;
}
@@ -181,7 +181,7 @@ export async function writeSshConfiguration(configurationPath: string, configura
try {
await vscode.workspace.fs.createDirectory(vscode.Uri.file(path.dirname(configurationPath)));
await fs.writeFile(configurationPath, configuration.toString());
} catch (e) {
} catch {
getSshChannel().appendLine(localize("failed.to.write.file", "Failed to write to file {0}.", configurationPath));
}
}
@@ -116,7 +116,6 @@ export function parse(triggerExpression: string, sourceToBindTo: ArbitraryObject
if (token.kind !== Kind.Slash) {
throw new Error(`unexpected token ${JSON.stringify(token)}`);
}
// eslint-disable-next-line no-constant-condition
} while (true);
// for each discriminator[filter]
-1
View File
@@ -5,7 +5,6 @@
/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable @typescript-eslint/unified-signatures */
/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */
import { ChildProcess, spawn } from 'child_process';
import { basename, resolve } from 'path';
-2
View File
@@ -13,8 +13,6 @@ import { finalize } from '../System/finalize';
import { is } from '../System/guards';
import { verbose } from '../Text/streams';
/* eslint-disable no-constant-condition */
/** An iterator/iterable wrapper to process a stream of lines. */
export class LineIterator implements AsyncIterable<string>, AsyncIterator<string> {
#current = 0;
+1 -2
View File
@@ -23,13 +23,12 @@ export function createSandbox(): <T>(code: string, context?: any) => T {
sandbox
);
for (const key of Object.keys(context)) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete sandbox[key];
}
} else {
try {
runInContext(`${response} = ${code}`, sandbox);
} catch (e) {
} catch {
sandbox[response] = undefined;
}
}
-1
View File
@@ -61,7 +61,6 @@ export class is {
return instance instanceof Socket;
}
// eslint-disable-next-line @typescript-eslint/ban-types
static function(instance: any): instance is Function {
return typeof instance === 'function';
}
+1 -2
View File
@@ -75,7 +75,6 @@ interface FunctionInfo {
/** a bound callable function for the member (saves us from having to do it later anyway) */
// eslint-disable-next-line @typescript-eslint/ban-types
fn: Function;
}
@@ -140,7 +139,7 @@ export function members(obj: any): Members {
result.fields.set(memberName, type);
}
}
// eslint-disable-next-line no-cond-assign
// eslint-disable-next-line no-cond-assign
} while (instance = Object.getPrototypeOf(instance));
}
return result;
-2
View File
@@ -117,11 +117,9 @@ export enum Kind {
Comma,
QuestionDot,
LessThan,
// eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member
OpenAngle = LessThan,
LessThanSlash,
GreaterThan,
// eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member
CloseAngle = GreaterThan,
LessThanEquals,
GreaterThanEquals,
+7 -9
View File
@@ -95,7 +95,7 @@ export async function getRawJson(path: string | undefined): Promise<any> {
let rawElement: any = {};
try {
rawElement = jsonc.parse(fileContents, undefined, true);
} catch (error) {
} catch {
throw new Error(failedToParseJson);
}
return rawElement;
@@ -146,10 +146,10 @@ export function getVcpkgRoot(): string {
if (!vcpkgRoot && vcpkgRoot !== "") {
vcpkgRoot = "";
// Check for vcpkg instance.
if (fs.existsSync(getVcpkgPathDescriptorFile())) {
if (checkFileExistsSync(getVcpkgPathDescriptorFile())) {
let vcpkgRootTemp: string = fs.readFileSync(getVcpkgPathDescriptorFile()).toString();
vcpkgRootTemp = vcpkgRootTemp.trim();
if (fs.existsSync(vcpkgRootTemp)) {
if (checkDirectoryExistsSync(vcpkgRootTemp)) {
vcpkgRoot = path.join(vcpkgRootTemp, "/installed").replace(/\\/g, "/");
}
}
@@ -501,7 +501,7 @@ export async function fsStat(filePath: fs.PathLike): Promise<fs.Stats | undefine
let stats: fs.Stats | undefined;
try {
stats = await fs.promises.stat(filePath);
} catch (e) {
} catch {
// File doesn't exist
return undefined;
}
@@ -562,7 +562,7 @@ export function createDirIfNotExistsSync(filePath: string | undefined): void {
export function checkFileExistsSync(filePath: string): boolean {
try {
return fs.statSync(filePath).isFile();
} catch (e) {
} catch {
return false;
}
}
@@ -595,7 +595,7 @@ export function checkExecutableWithoutExtensionExistsSync(filePath: string): boo
export function checkDirectoryExistsSync(dirPath: string): boolean {
try {
return fs.statSync(dirPath).isDirectory();
} catch (e) {
} catch {
return false;
}
}
@@ -1446,7 +1446,7 @@ export function findPowerShell(): string | undefined {
if (fs.statSync(candidate).isFile()) {
return name;
}
} catch (e) {
} catch {
// ignore, try next candidate
}
}
@@ -1474,9 +1474,7 @@ export function isVsCodeInsiders(): boolean {
export function stripEscapeSequences(str: string): string {
return str
// eslint-disable-next-line no-control-regex
.replace(/\x1b\[\??[0-9]{0,3}(;[0-9]{1,3})?[a-zA-Z]/g, '')
// eslint-disable-next-line no-control-regex
.replace(/\u0008/g, '')
.replace(/\r/g, '');
}
+4 -4
View File
@@ -20,7 +20,7 @@ export async function logMachineIdMappings(): Promise<void> {
// The first MAC address is the one Visual Studio uses
const primary = await getMachineId(macAddresses.shift());
if (primary) {
logLanguageServerEvent('machineIdMap', {primary});
logLanguageServerEvent('machineIdMap', { primary });
}
// VS Code uses os.networkInterfaces() which has different sorting and availability,
@@ -30,7 +30,7 @@ export async function logMachineIdMappings(): Promise<void> {
for (const macAddress of macAddresses) {
const additional = await getMachineId(macAddress);
if (additional) {
logLanguageServerEvent('machineIdMap', {additional});
logLanguageServerEvent('machineIdMap', { additional });
}
}
}
@@ -43,7 +43,7 @@ async function getMacAddresses(): Promise<string[]> {
const output = await execChildProcess('getmac');
const regex = /(?:[a-z0-9]{2}[:\-]){5}[a-z0-9]{2}/gmi;
return output.match(regex) ?? [];
} catch (err) {
} catch {
return [];
}
}
@@ -62,7 +62,7 @@ async function getMachineId(macAddress?: string): Promise<string | undefined> {
const crypto = await import('crypto');
const normalized = macAddress.toUpperCase().replace(/:/g, '-');
return crypto.createHash('sha256').update(normalized, 'utf8').digest('hex');
} catch (err) {
} catch {
return undefined;
}
}
+1 -1
View File
@@ -131,7 +131,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
const doc: vscode.TextDocument = await vscode.workspace.openTextDocument(config);
void vscode.languages.setTextDocumentLanguage(doc, "jsonc");
util.setWorkspaceIsCpp();
} catch (err) {
} catch {
// The c_cpp_properties.json might not be openable (e.g. an executable).
// Catching the exception prevents our extension activation from failing.
// VS Code itself will report an error message.
+2 -1
View File
@@ -7,6 +7,7 @@ import * as fs from 'fs';
import * as os from 'os';
import * as plist from 'plist';
import * as nls from 'vscode-nls';
import * as util from './common';
import { LinuxDistribution } from './linuxDistribution';
import * as logger from './logger';
import { SessionState, SupportedWindowsVersions } from './sessionState';
@@ -68,7 +69,7 @@ export class PlatformInformation {
let productDarwinVersion: string = "";
let errorMessage: string = "";
if (fs.existsSync(DARWIN_SYSTEM_VERSION_PLIST)) {
if (util.checkFileExistsSync(DARWIN_SYSTEM_VERSION_PLIST)) {
const systemVersionPListBuffer: Buffer = fs.readFileSync(DARWIN_SYSTEM_VERSION_PLIST);
const systemVersionData: any = plist.parse(systemVersionPListBuffer.toString());
if (systemVersionData) {
+1 -1
View File
@@ -70,7 +70,7 @@ export function activate(): void {
initializationPromise = getExperimentationServiceAsync(packageInfo.name, packageInfo.version, targetPopulation, experimentationTelemetry, util.extensionContext.globalState);
}
}
} catch (e) {
} catch {
// Handle error with a try/catch, but do nothing for errors.
}
}
@@ -9,9 +9,9 @@ import * as assert from 'assert';
import { suite } from 'mocha';
import * as vscode from 'vscode';
suite(`Debug Integration Test: `, function(): void {
suite(`Debug Integration Test: `, function (): void {
suiteSetup(async function(): Promise<void> {
suiteSetup(async function (): Promise<void> {
const extension: vscode.Extension<any> = vscode.extensions.getExtension("ms-vscode.cpptools") || assert.fail("Extension not found");
if (!extension.isActive) {
await extension.activate();
@@ -62,7 +62,6 @@ suite("resolveVariables", () => {
process.env[processKey] = "bar";
actual = resolveVariables(input, {});
} finally {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete process.env[processKey];
}
assert.equal(actual, "foobar");
+2303 -854
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
# ignore dependency packages
node_modules
+1
View File
@@ -1,3 +1,4 @@
.vscode/**
.vscode-test/**
.gitignore
.npmrc
+1
View File
@@ -3,4 +3,5 @@
This extension pack includes a set of popular extensions for C++ development in Visual Studio Code:
* [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
* [C/C++ Themes](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-themes)
* [C/C++ DevTools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpp-devtools)
* [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)
+3962 -2
View File
File diff suppressed because it is too large Load Diff
+8 -4
View File
@@ -6,10 +6,10 @@
"icon": "LanguageCCPP_color_128x.png",
"readme": "README.md",
"author": {
"name": "Microsoft Corporation"
"name": "Microsoft Corporation"
},
"license": "SEE LICENSE IN LICENSE.txt",
"version": "1.4.0",
"version": "1.5.1",
"engines": {
"vscode": "^1.48.0"
},
@@ -34,10 +34,14 @@
"color-theme",
"build",
"cmake"
],
],
"extensionPack": [
"ms-vscode.cpptools",
"ms-vscode.cpptools-themes",
"ms-vscode.cpp-devtools",
"ms-vscode.cmake-tools"
]
],
"devDependencies": {
"@vscode/vsce": "^3.7.1"
}
}
+104 -100
View File
@@ -10,37 +10,44 @@ These license terms are an agreement between you and Microsoft Corporation (or
one of its affiliates). They apply to the software named above and any
Microsoft services or software updates (except to the extent such services or
updates are accompanied by new or additional terms, in which case those
different terms apply prospectively and do not alter your or Microsofts
rights relating to pre-updated software or services). IF YOU COMPLY WITH THESE
LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT
THESE TERMS.
different terms apply prospectively and do not alter your or Microsofts rights
relating to pre-updated software or services). IF YOU COMPLY WITH THESE LICENSE
TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE
TERMS.
1. INSTALLATION AND USE RIGHTS.
a) General. You may install and use any number of copies of the software
only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code,
Azure DevOps, Team Foundation Server, and successor Microsoft products and
services to develop and test your applications. Further, you may install, use
and/or deploy these software copies via a network management system or as part
of a desktop image within your internal corporate network to develop and test
your applications.
a) General. You may install and use any number of copies of the software only
with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure
DevOps, Team Foundation Server, and successor Microsoft products and services
to develop and test your applications. Further, you may install, use and/or
deploy these software copies via a network management system or as part of a
desktop image within your internal corporate network to develop and test your
applications.
b) Third Party Components. The software may include third party components
with separate legal notices or governed by other agreements, as may be
described in the ThirdPartyNotices file(s) accompanying the software.
2. SCOPE OF LICENSE. The software is licensed, not sold. This agreement
only gives you some rights to use the software. Microsoft reserves all other
rights. For clarification Microsoft, or its licensors, retains ownership of
all aspects of the software. Unless applicable law gives you more rights
despite this limitation, you may use the software only as expressly permitted
in this agreement. In doing so, you must comply with any technical limitations
in the software that only allow you to use it in certain ways. For example, if
2. FEEDBACK. If you give feedback about the software to Microsoft, you give to
Microsoft, without charge, the right to use, share and commercialize your
feedback in any way and for any purpose. You will not give feedback that is
subject to a license that requires Microsoft to license its software or
documentation to third parties because we include your feedback in them. These
rights survive this agreement.
3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only
gives you some rights to use the software. Microsoft reserves all other rights.
For clarification Microsoft, or its licensors, retains ownership of all aspects
of the software. Unless applicable law gives you more rights despite this
limitation, you may use the software only as expressly permitted in this
agreement. In doing so, you must comply with any technical limitations in the
software that only allow you to use it in certain ways. For example, if
Microsoft technically limits or disables extensibility for the software, you
may not extend the software by, among other things, loading or injecting into
the software any non-Microsoft add-ins, macros, or packages; modifying the
software registry settings; or adding features or functionality equivalent to
that found in Microsoft products and services. You may not:
a) work around any technical limitations in the software that only allow
you to use it in certain ways;
a) work around any technical limitations in the software that only allow you
to use it in certain ways;
b) reverse engineer, decompile or disassemble the software, or otherwise
attempt to derive the source code for the software, except and to the extent
required by third party licensing terms governing use of certain open source
@@ -54,14 +61,14 @@ distributable code, subject to the terms above), provide the software as a
stand-alone offering for others to use, or transfer the software or this
agreement to any third party.
3. DATA.
a) Data Collection. The software may collect information about you and
your use of the software, and send that to Microsoft. Microsoft may use this
4. DATA.
a) Data Collection. The software may collect information about you and your
use of the software, and send that to Microsoft. Microsoft may use this
information to provide services and improve our products and services. You may
opt-out of many of these scenarios, but not all, as described in the product
documentation. There are also some features in the software that may enable
you to collect data from users of your applications. If you use these features
to enable data collection in your applications, you must comply with applicable
documentation. There are also some features in the software that may enable you
to collect data from users of your applications. If you use these features to
enable data collection in your applications, you must comply with applicable
law, including providing appropriate notices to users of your applications. You
can learn more about data collection and use in the help documentation and the
privacy statement at https://aka.ms/privacy. Your use of the software operates
@@ -69,35 +76,36 @@ as your consent to these practices.
b) Processing of Personal Data. To the extent Microsoft is a processor or
subprocessor of personal data in connection with the software, Microsoft makes
the commitments in the European Union General Data Protection Regulation Terms
of the Online Services Terms to all customers effective May 25, 2018, at
of the Microsoft Products and Services Data Protection Addendum to all
customers effective May 25, 2018, at
https://docs.microsoft.com/en-us/legal/gdpr.
4. EXPORT RESTRICTIONS. You must comply with all domestic and
international export laws and regulations that apply to the software, which
include restrictions on destinations, end users, and end use. For further
information on export restrictions, visit https://aka.ms/exporting.
5. EXPORT RESTRICTIONS. You must comply with all domestic and international
export laws and regulations that apply to the software, which include
restrictions on destinations, end users, and end use. For further information
on export restrictions, visit https://aka.ms/exporting.
5. SUPPORT SERVICES. Microsoft is not obligated under this agreement to
provide any support services for the software. Any support provided is “as
is”, “with all faults”, and without warranty of any kind.
6. SUPPORT SERVICES. Microsoft is not obligated under this agreement to
provide any support services for the software. Any support provided is “as is”,
“with all faults”, and without warranty of any kind.
6. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may
provide for supplements, updates, or third-party applications, is the entire
agreement for the software.
7. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide
for supplements, updates, or third-party applications, is the entire agreement
for the software.
7. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the
software in the United States or Canada, the laws of the state or province
where you live (or, if a business, where your principal place of business is
located) govern the interpretation of this agreement, claims for its breach,
and all other claims (including consumer protection, unfair competition, and
tort claims), regardless of conflict of laws principles. If you acquired the
8. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software
in the United States or Canada, the laws of the state or province where you
live (or, if a business, where your principal place of business is located)
govern the interpretation of this agreement, claims for its breach, and all
other claims (including consumer protection, unfair competition, and tort
claims), regardless of conflict of laws principles. If you acquired the
software in any other country, its laws apply. If U.S. federal jurisdiction
exists, you and Microsoft consent to exclusive jurisdiction and venue in the
federal court in King County, Washington for all disputes heard in court. If
not, you and Microsoft consent to exclusive jurisdiction and venue in the
Superior Court of King County, Washington for all disputes heard in court.
8. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain
9. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain
legal rights. You may have other rights, including consumer rights, under the
laws of your state or country. Separate and apart from your relationship with
Microsoft, you may also have rights with respect to the party from which you
@@ -105,8 +113,8 @@ acquired the software. This agreement does not change those other rights if the
laws of your state or country do not permit it to do so. For example, if you
acquired the software in one of the below regions, or mandatory country law
applies, then the following provisions apply to you:
a) Australia. You have statutory guarantees under the Australian Consumer
Law and nothing in this agreement is intended to affect those rights.
a) Australia. You have statutory guarantees under the Australian Consumer Law
and nothing in this agreement is intended to affect those rights.
b) Canada. If you acquired this software in Canada, you may stop receiving
updates by turning off the automatic update feature, disconnecting your device
from the Internet (if and when you re-connect to the Internet, however, the
@@ -117,76 +125,72 @@ c) Germany and Austria.
i. Warranty. The properly licensed software will perform substantially as
described in any Microsoft materials that accompany the software. However,
Microsoft gives no contractual guarantee in relation to the licensed software.
ii. Limitation of Liability. In case of intentional conduct, gross
negligence, claims based on the Product Liability Act, as well as, in case of
death or personal or physical injury, Microsoft is liable according to the
statutory law.
Subject to the foregoing clause ii., Microsoft will only be liable for slight
negligence if Microsoft is in breach of such material contractual obligations,
the fulfillment of which facilitate the due performance of this agreement, the
breach of which would endanger the purpose of this agreement and the compliance
with which a party may constantly trust in (so-called "cardinal obligations").
In other cases of slight negligence, Microsoft will not be liable for slight
negligence.
ii. Limitation of Liability. In case of intentional conduct, gross negligence,
claims based on the Product Liability Act, as well as, in case of death or
personal or physical injury, Microsoft is liable according to the statutory
law. Subject to the foregoing clause ii., Microsoft will only be liable for
slight negligence if Microsoft is in breach of such material contractual
obligations, the fulfillment of which facilitate the due performance of this
agreement, the breach of which would endanger the purpose of this agreement and
the compliance with which a party may constantly trust in (so-called "cardinal
obligations"). In other cases of slight negligence, Microsoft will not be
liable for slight negligence.
9. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR
THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR
CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES
ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT.
10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE
RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR
CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT
EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
10. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
11. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00.
YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS,
SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.
This limitation applies to (a) anything related to the software, services,
content (including code) on third party Internet sites, or third party
applications; and (b) claims for breach of contract, warranty, guarantee, or
condition; strict liability, negligence, or other tort; or any other claim; in
each case to the extent permitted by applicable law.
It also applies even if Microsoft knew or should have known about the
possibility of the damages. The above limitation or exclusion may not apply to
you because your state, province, or country may not allow the exclusion or
limitation of incidental, consequential, or other damages.
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S.
$5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST
PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. This limitation applies to
(a) anything related to the software, services, content (including code) on
third party Internet sites, or third party applications; and (b) claims for
breach of contract, warranty, guarantee, or condition; strict liability,
negligence, or other tort; or any other claim; in each case to the extent
permitted by applicable law. It also applies even if Microsoft knew or should
have known about the possibility of the damages. The above limitation or
exclusion may not apply to you because your state, province, or country may not
allow the exclusion or limitation of incidental, consequential, or other
damages.
Please note: As this software is distributed in Canada, some of the clauses in
this agreement are provided below in French.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans
ce contrat sont fournies ci-dessous en français.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce
contrat sont fournies ci-dessous en français.
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel
quel ». Toute utilisation de ce logiciel est à votre seule risque et péril.
Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier
de droits additionnels en vertu du droit local sur la protection des
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel
». Toute utilisation de ce logiciel est à votre seule risque et péril.
Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier de
droits additionnels en vertu du droit local sur la protection des
consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par
le droit locale, les garanties implicites de qualité marchande,
dadéquation à un usage particulier et dabsence de contrefaçon sont
exclues.
le droit locale, les garanties implicites de qualité marchande, dadéquation à
un usage particulier et dabsence de contrefaçon sont exclues.
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US.
Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y
compris les dommages spéciaux, indirects ou accessoires et pertes de
bénéfices.
compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
Cette limitation concerne:
• tout ce qui est relié au logiciel, aux services ou au contenu (y
compris le code) figurant sur des sites Internet tiers ou dans des programmes
tiers; et
• les réclamations au titre de violation de contrat ou de garantie, ou
au titre de responsabilité stricte, de négligence ou dune autre faute dans
la limite autorisée par la loi en vigueur.
• tout ce qui est relié au logiciel, aux services ou au contenu (y compris le
code) figurant sur des sites Internet tiers ou dans des programmes tiers; et
• les réclamations au titre de violation de contrat ou de garantie, ou au
titre de responsabilité stricte, de négligence ou dune autre faute dans la
limite autorisée par la loi en vigueur.
Elle sapplique également, même si Microsoft connaissait ou devrait
connaître l’éventualité dun tel dommage. Si votre pays nautorise pas
lexclusion ou la limitation de responsabilité pour les dommages indirects,
accessoires ou de quelque nature que ce soit, il se peut que la limitation ou
lexclusion ci-dessus ne sappliquera pas à votre égard.
Elle sapplique également, même si Microsoft connaissait ou devrait connaître
l’éventualité dun tel dommage. Si votre pays nautorise pas lexclusion ou la
limitation de responsabilité pour les dommages indirects, accessoires ou de
quelque nature que ce soit, il se peut que la limitation ou lexclusion
ci-dessus ne sappliquera pas à votre égard.
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
pourriez avoir dautres droits prévus par les lois de votre pays. Le
présent contrat ne modifie pas les droits que vous confèrent les lois de
votre pays si celles-ci ne le permettent pas.
pourriez avoir dautres droits prévus par les lois de votre pays. Le présent
contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
celles-ci ne le permettent pas.
+104 -100
View File
@@ -10,37 +10,44 @@ These license terms are an agreement between you and Microsoft Corporation (or
one of its affiliates). They apply to the software named above and any
Microsoft services or software updates (except to the extent such services or
updates are accompanied by new or additional terms, in which case those
different terms apply prospectively and do not alter your or Microsofts
rights relating to pre-updated software or services). IF YOU COMPLY WITH THESE
LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT
THESE TERMS.
different terms apply prospectively and do not alter your or Microsofts rights
relating to pre-updated software or services). IF YOU COMPLY WITH THESE LICENSE
TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE
TERMS.
1. INSTALLATION AND USE RIGHTS.
a) General. You may install and use any number of copies of the software
only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code,
Azure DevOps, Team Foundation Server, and successor Microsoft products and
services to develop and test your applications. Further, you may install, use
and/or deploy these software copies via a network management system or as part
of a desktop image within your internal corporate network to develop and test
your applications.
a) General. You may install and use any number of copies of the software only
with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure
DevOps, Team Foundation Server, and successor Microsoft products and services
to develop and test your applications. Further, you may install, use and/or
deploy these software copies via a network management system or as part of a
desktop image within your internal corporate network to develop and test your
applications.
b) Third Party Components. The software may include third party components
with separate legal notices or governed by other agreements, as may be
described in the ThirdPartyNotices file(s) accompanying the software.
2. SCOPE OF LICENSE. The software is licensed, not sold. This agreement
only gives you some rights to use the software. Microsoft reserves all other
rights. For clarification Microsoft, or its licensors, retains ownership of
all aspects of the software. Unless applicable law gives you more rights
despite this limitation, you may use the software only as expressly permitted
in this agreement. In doing so, you must comply with any technical limitations
in the software that only allow you to use it in certain ways. For example, if
2. FEEDBACK. If you give feedback about the software to Microsoft, you give to
Microsoft, without charge, the right to use, share and commercialize your
feedback in any way and for any purpose. You will not give feedback that is
subject to a license that requires Microsoft to license its software or
documentation to third parties because we include your feedback in them. These
rights survive this agreement.
3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only
gives you some rights to use the software. Microsoft reserves all other rights.
For clarification Microsoft, or its licensors, retains ownership of all aspects
of the software. Unless applicable law gives you more rights despite this
limitation, you may use the software only as expressly permitted in this
agreement. In doing so, you must comply with any technical limitations in the
software that only allow you to use it in certain ways. For example, if
Microsoft technically limits or disables extensibility for the software, you
may not extend the software by, among other things, loading or injecting into
the software any non-Microsoft add-ins, macros, or packages; modifying the
software registry settings; or adding features or functionality equivalent to
that found in Microsoft products and services. You may not:
a) work around any technical limitations in the software that only allow
you to use it in certain ways;
a) work around any technical limitations in the software that only allow you
to use it in certain ways;
b) reverse engineer, decompile or disassemble the software, or otherwise
attempt to derive the source code for the software, except and to the extent
required by third party licensing terms governing use of certain open source
@@ -54,14 +61,14 @@ distributable code, subject to the terms above), provide the software as a
stand-alone offering for others to use, or transfer the software or this
agreement to any third party.
3. DATA.
a) Data Collection. The software may collect information about you and
your use of the software, and send that to Microsoft. Microsoft may use this
4. DATA.
a) Data Collection. The software may collect information about you and your
use of the software, and send that to Microsoft. Microsoft may use this
information to provide services and improve our products and services. You may
opt-out of many of these scenarios, but not all, as described in the product
documentation. There are also some features in the software that may enable
you to collect data from users of your applications. If you use these features
to enable data collection in your applications, you must comply with applicable
documentation. There are also some features in the software that may enable you
to collect data from users of your applications. If you use these features to
enable data collection in your applications, you must comply with applicable
law, including providing appropriate notices to users of your applications. You
can learn more about data collection and use in the help documentation and the
privacy statement at https://aka.ms/privacy. Your use of the software operates
@@ -69,35 +76,36 @@ as your consent to these practices.
b) Processing of Personal Data. To the extent Microsoft is a processor or
subprocessor of personal data in connection with the software, Microsoft makes
the commitments in the European Union General Data Protection Regulation Terms
of the Online Services Terms to all customers effective May 25, 2018, at
of the Microsoft Products and Services Data Protection Addendum to all
customers effective May 25, 2018, at
https://docs.microsoft.com/en-us/legal/gdpr.
4. EXPORT RESTRICTIONS. You must comply with all domestic and
international export laws and regulations that apply to the software, which
include restrictions on destinations, end users, and end use. For further
information on export restrictions, visit https://aka.ms/exporting.
5. EXPORT RESTRICTIONS. You must comply with all domestic and international
export laws and regulations that apply to the software, which include
restrictions on destinations, end users, and end use. For further information
on export restrictions, visit https://aka.ms/exporting.
5. SUPPORT SERVICES. Microsoft is not obligated under this agreement to
provide any support services for the software. Any support provided is “as
is”, “with all faults”, and without warranty of any kind.
6. SUPPORT SERVICES. Microsoft is not obligated under this agreement to
provide any support services for the software. Any support provided is “as is”,
“with all faults”, and without warranty of any kind.
6. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may
provide for supplements, updates, or third-party applications, is the entire
agreement for the software.
7. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide
for supplements, updates, or third-party applications, is the entire agreement
for the software.
7. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the
software in the United States or Canada, the laws of the state or province
where you live (or, if a business, where your principal place of business is
located) govern the interpretation of this agreement, claims for its breach,
and all other claims (including consumer protection, unfair competition, and
tort claims), regardless of conflict of laws principles. If you acquired the
8. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software
in the United States or Canada, the laws of the state or province where you
live (or, if a business, where your principal place of business is located)
govern the interpretation of this agreement, claims for its breach, and all
other claims (including consumer protection, unfair competition, and tort
claims), regardless of conflict of laws principles. If you acquired the
software in any other country, its laws apply. If U.S. federal jurisdiction
exists, you and Microsoft consent to exclusive jurisdiction and venue in the
federal court in King County, Washington for all disputes heard in court. If
not, you and Microsoft consent to exclusive jurisdiction and venue in the
Superior Court of King County, Washington for all disputes heard in court.
8. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain
9. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain
legal rights. You may have other rights, including consumer rights, under the
laws of your state or country. Separate and apart from your relationship with
Microsoft, you may also have rights with respect to the party from which you
@@ -105,8 +113,8 @@ acquired the software. This agreement does not change those other rights if the
laws of your state or country do not permit it to do so. For example, if you
acquired the software in one of the below regions, or mandatory country law
applies, then the following provisions apply to you:
a) Australia. You have statutory guarantees under the Australian Consumer
Law and nothing in this agreement is intended to affect those rights.
a) Australia. You have statutory guarantees under the Australian Consumer Law
and nothing in this agreement is intended to affect those rights.
b) Canada. If you acquired this software in Canada, you may stop receiving
updates by turning off the automatic update feature, disconnecting your device
from the Internet (if and when you re-connect to the Internet, however, the
@@ -117,76 +125,72 @@ c) Germany and Austria.
i. Warranty. The properly licensed software will perform substantially as
described in any Microsoft materials that accompany the software. However,
Microsoft gives no contractual guarantee in relation to the licensed software.
ii. Limitation of Liability. In case of intentional conduct, gross
negligence, claims based on the Product Liability Act, as well as, in case of
death or personal or physical injury, Microsoft is liable according to the
statutory law.
Subject to the foregoing clause ii., Microsoft will only be liable for slight
negligence if Microsoft is in breach of such material contractual obligations,
the fulfillment of which facilitate the due performance of this agreement, the
breach of which would endanger the purpose of this agreement and the compliance
with which a party may constantly trust in (so-called "cardinal obligations").
In other cases of slight negligence, Microsoft will not be liable for slight
negligence.
ii. Limitation of Liability. In case of intentional conduct, gross negligence,
claims based on the Product Liability Act, as well as, in case of death or
personal or physical injury, Microsoft is liable according to the statutory
law. Subject to the foregoing clause ii., Microsoft will only be liable for
slight negligence if Microsoft is in breach of such material contractual
obligations, the fulfillment of which facilitate the due performance of this
agreement, the breach of which would endanger the purpose of this agreement and
the compliance with which a party may constantly trust in (so-called "cardinal
obligations"). In other cases of slight negligence, Microsoft will not be
liable for slight negligence.
9. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR
THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR
CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES
ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT.
10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE
RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR
CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT
EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
10. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
11. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00.
YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS,
SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.
This limitation applies to (a) anything related to the software, services,
content (including code) on third party Internet sites, or third party
applications; and (b) claims for breach of contract, warranty, guarantee, or
condition; strict liability, negligence, or other tort; or any other claim; in
each case to the extent permitted by applicable law.
It also applies even if Microsoft knew or should have known about the
possibility of the damages. The above limitation or exclusion may not apply to
you because your state, province, or country may not allow the exclusion or
limitation of incidental, consequential, or other damages.
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S.
$5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST
PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. This limitation applies to
(a) anything related to the software, services, content (including code) on
third party Internet sites, or third party applications; and (b) claims for
breach of contract, warranty, guarantee, or condition; strict liability,
negligence, or other tort; or any other claim; in each case to the extent
permitted by applicable law. It also applies even if Microsoft knew or should
have known about the possibility of the damages. The above limitation or
exclusion may not apply to you because your state, province, or country may not
allow the exclusion or limitation of incidental, consequential, or other
damages.
Please note: As this software is distributed in Canada, some of the clauses in
this agreement are provided below in French.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans
ce contrat sont fournies ci-dessous en français.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce
contrat sont fournies ci-dessous en français.
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel
quel ». Toute utilisation de ce logiciel est à votre seule risque et péril.
Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier
de droits additionnels en vertu du droit local sur la protection des
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel
». Toute utilisation de ce logiciel est à votre seule risque et péril.
Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier de
droits additionnels en vertu du droit local sur la protection des
consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par
le droit locale, les garanties implicites de qualité marchande,
dadéquation à un usage particulier et dabsence de contrefaçon sont
exclues.
le droit locale, les garanties implicites de qualité marchande, dadéquation à
un usage particulier et dabsence de contrefaçon sont exclues.
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US.
Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y
compris les dommages spéciaux, indirects ou accessoires et pertes de
bénéfices.
compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
Cette limitation concerne:
• tout ce qui est relié au logiciel, aux services ou au contenu (y
compris le code) figurant sur des sites Internet tiers ou dans des programmes
tiers; et
• les réclamations au titre de violation de contrat ou de garantie, ou
au titre de responsabilité stricte, de négligence ou dune autre faute dans
la limite autorisée par la loi en vigueur.
• tout ce qui est relié au logiciel, aux services ou au contenu (y compris le
code) figurant sur des sites Internet tiers ou dans des programmes tiers; et
• les réclamations au titre de violation de contrat ou de garantie, ou au
titre de responsabilité stricte, de négligence ou dune autre faute dans la
limite autorisée par la loi en vigueur.
Elle sapplique également, même si Microsoft connaissait ou devrait
connaître l’éventualité dun tel dommage. Si votre pays nautorise pas
lexclusion ou la limitation de responsabilité pour les dommages indirects,
accessoires ou de quelque nature que ce soit, il se peut que la limitation ou
lexclusion ci-dessus ne sappliquera pas à votre égard.
Elle sapplique également, même si Microsoft connaissait ou devrait connaître
l’éventualité dun tel dommage. Si votre pays nautorise pas lexclusion ou la
limitation de responsabilité pour les dommages indirects, accessoires ou de
quelque nature que ce soit, il se peut que la limitation ou lexclusion
ci-dessus ne sappliquera pas à votre égard.
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
pourriez avoir dautres droits prévus par les lois de votre pays. Le
présent contrat ne modifie pas les droits que vous confèrent les lois de
votre pays si celles-ci ne le permettent pas.
pourriez avoir dautres droits prévus par les lois de votre pays. Le présent
contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
celles-ci ne le permettent pas.
+104 -100
View File
@@ -10,37 +10,44 @@ These license terms are an agreement between you and Microsoft Corporation (or
one of its affiliates). They apply to the software named above and any
Microsoft services or software updates (except to the extent such services or
updates are accompanied by new or additional terms, in which case those
different terms apply prospectively and do not alter your or Microsofts
rights relating to pre-updated software or services). IF YOU COMPLY WITH THESE
LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT
THESE TERMS.
different terms apply prospectively and do not alter your or Microsofts rights
relating to pre-updated software or services). IF YOU COMPLY WITH THESE LICENSE
TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE
TERMS.
1. INSTALLATION AND USE RIGHTS.
a) General. You may install and use any number of copies of the software
only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code,
Azure DevOps, Team Foundation Server, and successor Microsoft products and
services to develop and test your applications. Further, you may install, use
and/or deploy these software copies via a network management system or as part
of a desktop image within your internal corporate network to develop and test
your applications.
a) General. You may install and use any number of copies of the software only
with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure
DevOps, Team Foundation Server, and successor Microsoft products and services
to develop and test your applications. Further, you may install, use and/or
deploy these software copies via a network management system or as part of a
desktop image within your internal corporate network to develop and test your
applications.
b) Third Party Components. The software may include third party components
with separate legal notices or governed by other agreements, as may be
described in the ThirdPartyNotices file(s) accompanying the software.
2. SCOPE OF LICENSE. The software is licensed, not sold. This agreement
only gives you some rights to use the software. Microsoft reserves all other
rights. For clarification Microsoft, or its licensors, retains ownership of
all aspects of the software. Unless applicable law gives you more rights
despite this limitation, you may use the software only as expressly permitted
in this agreement. In doing so, you must comply with any technical limitations
in the software that only allow you to use it in certain ways. For example, if
2. FEEDBACK. If you give feedback about the software to Microsoft, you give to
Microsoft, without charge, the right to use, share and commercialize your
feedback in any way and for any purpose. You will not give feedback that is
subject to a license that requires Microsoft to license its software or
documentation to third parties because we include your feedback in them. These
rights survive this agreement.
3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only
gives you some rights to use the software. Microsoft reserves all other rights.
For clarification Microsoft, or its licensors, retains ownership of all aspects
of the software. Unless applicable law gives you more rights despite this
limitation, you may use the software only as expressly permitted in this
agreement. In doing so, you must comply with any technical limitations in the
software that only allow you to use it in certain ways. For example, if
Microsoft technically limits or disables extensibility for the software, you
may not extend the software by, among other things, loading or injecting into
the software any non-Microsoft add-ins, macros, or packages; modifying the
software registry settings; or adding features or functionality equivalent to
that found in Microsoft products and services. You may not:
a) work around any technical limitations in the software that only allow
you to use it in certain ways;
a) work around any technical limitations in the software that only allow you
to use it in certain ways;
b) reverse engineer, decompile or disassemble the software, or otherwise
attempt to derive the source code for the software, except and to the extent
required by third party licensing terms governing use of certain open source
@@ -54,14 +61,14 @@ distributable code, subject to the terms above), provide the software as a
stand-alone offering for others to use, or transfer the software or this
agreement to any third party.
3. DATA.
a) Data Collection. The software may collect information about you and
your use of the software, and send that to Microsoft. Microsoft may use this
4. DATA.
a) Data Collection. The software may collect information about you and your
use of the software, and send that to Microsoft. Microsoft may use this
information to provide services and improve our products and services. You may
opt-out of many of these scenarios, but not all, as described in the product
documentation. There are also some features in the software that may enable
you to collect data from users of your applications. If you use these features
to enable data collection in your applications, you must comply with applicable
documentation. There are also some features in the software that may enable you
to collect data from users of your applications. If you use these features to
enable data collection in your applications, you must comply with applicable
law, including providing appropriate notices to users of your applications. You
can learn more about data collection and use in the help documentation and the
privacy statement at https://aka.ms/privacy. Your use of the software operates
@@ -69,35 +76,36 @@ as your consent to these practices.
b) Processing of Personal Data. To the extent Microsoft is a processor or
subprocessor of personal data in connection with the software, Microsoft makes
the commitments in the European Union General Data Protection Regulation Terms
of the Online Services Terms to all customers effective May 25, 2018, at
of the Microsoft Products and Services Data Protection Addendum to all
customers effective May 25, 2018, at
https://docs.microsoft.com/en-us/legal/gdpr.
4. EXPORT RESTRICTIONS. You must comply with all domestic and
international export laws and regulations that apply to the software, which
include restrictions on destinations, end users, and end use. For further
information on export restrictions, visit https://aka.ms/exporting.
5. EXPORT RESTRICTIONS. You must comply with all domestic and international
export laws and regulations that apply to the software, which include
restrictions on destinations, end users, and end use. For further information
on export restrictions, visit https://aka.ms/exporting.
5. SUPPORT SERVICES. Microsoft is not obligated under this agreement to
provide any support services for the software. Any support provided is “as
is”, “with all faults”, and without warranty of any kind.
6. SUPPORT SERVICES. Microsoft is not obligated under this agreement to
provide any support services for the software. Any support provided is “as is”,
“with all faults”, and without warranty of any kind.
6. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may
provide for supplements, updates, or third-party applications, is the entire
agreement for the software.
7. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide
for supplements, updates, or third-party applications, is the entire agreement
for the software.
7. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the
software in the United States or Canada, the laws of the state or province
where you live (or, if a business, where your principal place of business is
located) govern the interpretation of this agreement, claims for its breach,
and all other claims (including consumer protection, unfair competition, and
tort claims), regardless of conflict of laws principles. If you acquired the
8. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software
in the United States or Canada, the laws of the state or province where you
live (or, if a business, where your principal place of business is located)
govern the interpretation of this agreement, claims for its breach, and all
other claims (including consumer protection, unfair competition, and tort
claims), regardless of conflict of laws principles. If you acquired the
software in any other country, its laws apply. If U.S. federal jurisdiction
exists, you and Microsoft consent to exclusive jurisdiction and venue in the
federal court in King County, Washington for all disputes heard in court. If
not, you and Microsoft consent to exclusive jurisdiction and venue in the
Superior Court of King County, Washington for all disputes heard in court.
8. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain
9. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain
legal rights. You may have other rights, including consumer rights, under the
laws of your state or country. Separate and apart from your relationship with
Microsoft, you may also have rights with respect to the party from which you
@@ -105,8 +113,8 @@ acquired the software. This agreement does not change those other rights if the
laws of your state or country do not permit it to do so. For example, if you
acquired the software in one of the below regions, or mandatory country law
applies, then the following provisions apply to you:
a) Australia. You have statutory guarantees under the Australian Consumer
Law and nothing in this agreement is intended to affect those rights.
a) Australia. You have statutory guarantees under the Australian Consumer Law
and nothing in this agreement is intended to affect those rights.
b) Canada. If you acquired this software in Canada, you may stop receiving
updates by turning off the automatic update feature, disconnecting your device
from the Internet (if and when you re-connect to the Internet, however, the
@@ -117,76 +125,72 @@ c) Germany and Austria.
i. Warranty. The properly licensed software will perform substantially as
described in any Microsoft materials that accompany the software. However,
Microsoft gives no contractual guarantee in relation to the licensed software.
ii. Limitation of Liability. In case of intentional conduct, gross
negligence, claims based on the Product Liability Act, as well as, in case of
death or personal or physical injury, Microsoft is liable according to the
statutory law.
Subject to the foregoing clause ii., Microsoft will only be liable for slight
negligence if Microsoft is in breach of such material contractual obligations,
the fulfillment of which facilitate the due performance of this agreement, the
breach of which would endanger the purpose of this agreement and the compliance
with which a party may constantly trust in (so-called "cardinal obligations").
In other cases of slight negligence, Microsoft will not be liable for slight
negligence.
ii. Limitation of Liability. In case of intentional conduct, gross negligence,
claims based on the Product Liability Act, as well as, in case of death or
personal or physical injury, Microsoft is liable according to the statutory
law. Subject to the foregoing clause ii., Microsoft will only be liable for
slight negligence if Microsoft is in breach of such material contractual
obligations, the fulfillment of which facilitate the due performance of this
agreement, the breach of which would endanger the purpose of this agreement and
the compliance with which a party may constantly trust in (so-called "cardinal
obligations"). In other cases of slight negligence, Microsoft will not be
liable for slight negligence.
9. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR
THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR
CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES
ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT.
10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE
RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR
CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT
EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
10. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
11. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00.
YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS,
SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.
This limitation applies to (a) anything related to the software, services,
content (including code) on third party Internet sites, or third party
applications; and (b) claims for breach of contract, warranty, guarantee, or
condition; strict liability, negligence, or other tort; or any other claim; in
each case to the extent permitted by applicable law.
It also applies even if Microsoft knew or should have known about the
possibility of the damages. The above limitation or exclusion may not apply to
you because your state, province, or country may not allow the exclusion or
limitation of incidental, consequential, or other damages.
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S.
$5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST
PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. This limitation applies to
(a) anything related to the software, services, content (including code) on
third party Internet sites, or third party applications; and (b) claims for
breach of contract, warranty, guarantee, or condition; strict liability,
negligence, or other tort; or any other claim; in each case to the extent
permitted by applicable law. It also applies even if Microsoft knew or should
have known about the possibility of the damages. The above limitation or
exclusion may not apply to you because your state, province, or country may not
allow the exclusion or limitation of incidental, consequential, or other
damages.
Please note: As this software is distributed in Canada, some of the clauses in
this agreement are provided below in French.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans
ce contrat sont fournies ci-dessous en français.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce
contrat sont fournies ci-dessous en français.
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel
quel ». Toute utilisation de ce logiciel est à votre seule risque et péril.
Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier
de droits additionnels en vertu du droit local sur la protection des
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel
». Toute utilisation de ce logiciel est à votre seule risque et péril.
Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier de
droits additionnels en vertu du droit local sur la protection des
consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par
le droit locale, les garanties implicites de qualité marchande,
dadéquation à un usage particulier et dabsence de contrefaçon sont
exclues.
le droit locale, les garanties implicites de qualité marchande, dadéquation à
un usage particulier et dabsence de contrefaçon sont exclues.
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US.
Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y
compris les dommages spéciaux, indirects ou accessoires et pertes de
bénéfices.
compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
Cette limitation concerne:
• tout ce qui est relié au logiciel, aux services ou au contenu (y
compris le code) figurant sur des sites Internet tiers ou dans des programmes
tiers; et
• les réclamations au titre de violation de contrat ou de garantie, ou
au titre de responsabilité stricte, de négligence ou dune autre faute dans
la limite autorisée par la loi en vigueur.
• tout ce qui est relié au logiciel, aux services ou au contenu (y compris le
code) figurant sur des sites Internet tiers ou dans des programmes tiers; et
• les réclamations au titre de violation de contrat ou de garantie, ou au
titre de responsabilité stricte, de négligence ou dune autre faute dans la
limite autorisée par la loi en vigueur.
Elle sapplique également, même si Microsoft connaissait ou devrait
connaître l’éventualité dun tel dommage. Si votre pays nautorise pas
lexclusion ou la limitation de responsabilité pour les dommages indirects,
accessoires ou de quelque nature que ce soit, il se peut que la limitation ou
lexclusion ci-dessus ne sappliquera pas à votre égard.
Elle sapplique également, même si Microsoft connaissait ou devrait connaître
l’éventualité dun tel dommage. Si votre pays nautorise pas lexclusion ou la
limitation de responsabilité pour les dommages indirects, accessoires ou de
quelque nature que ce soit, il se peut que la limitation ou lexclusion
ci-dessus ne sappliquera pas à votre égard.
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
pourriez avoir dautres droits prévus par les lois de votre pays. Le
présent contrat ne modifie pas les droits que vous confèrent les lois de
votre pays si celles-ci ne le permettent pas.
pourriez avoir dautres droits prévus par les lois de votre pays. Le présent
contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
celles-ci ne le permettent pas.
+2
View File
@@ -0,0 +1,2 @@
# ignore dependency packages
node_modules
+3960
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -61,5 +61,8 @@
"path": "./themes/cpptools_light_vs.json"
}
]
},
"devDependencies": {
"@vscode/vsce": "3.7.1"
}
}